[機能詳細]
・アップデートサイクル
フラグレジスタ: なし
整数レジスタ: i00~01
拡張コントロールの再計算間隔を設定するもの。
キーオンアクション,キーオフアクション以外のエフェクトが対象となる。
実際の再計算間隔は拡張コントロールの更新毎に、i00~(i00+i01)の間でランダムに決定される。間隔を長くすると処理を軽くできる他、エクスポートするSMFのサイズを小さくできる。
また、ランダマイズすることにより複数トラックで同時に拡張コントロール処理を実行する際に負荷を分散させることができる。
・キーオンアクション
フラグレジスタ: f01,f09
整数レジスタ: i02~04
ノートオンが送信される直前にコントロールの設定値を書き換えるもの。
動作モードは2種類(f09で切替)あり、1ポイントモードのときは常にi02,2ポイントモードのときはノート番号に対応してi02~i03の間で変化させたものが使われる。
また、どちらの場合も-i04~+i04の範囲でランダムに加算される。
(注)
フェードと共存できない。フェード実行中にノートオンが送信された場合はフェード動作が中断される。
・キーオフアクション
フラグレジスタ: f02,f10
整数レジスタ: i05~07
ノートオフが送信される直前にコントロールの設定値を書き換えるもの。
動作モードは2種類(f10で切替)あり、1ポイントモードのときは常にi05,2ポイントモードのときはノート番号に対応してi05~i06の間で変化させたものが使われる。
また、どちらの場合も-i07~+i07の範囲でランダムに加算される。
(注)
フェードと共存できない。フェード実行中にノートオフが送信された場合はフェード動作が中断される。
・フェード
フラグレジスタ: f07,f14,f15
整数レジスタ: i24~26
f07を+にした瞬間の値から、i24を目標に補間する。
f14が+の場合、補間時間の中央でi25となるような曲線的変化となる。
補間処理中にf15を+にすると、処理を中断して開始値を再設定し、補間処理をリスタートさせる。
f15はリスタート処理後自動的に - へ切り替わる。
(注)
キーオンアクション,キーオフアクションと共存できない。これらを含め、当該コントロールに対して何らかの書き換え動作が行われると処理が中断される。
[補足]
フェード開始処理にバグがあり、f07だけ+にしても正常動作しない。同時にf15も+にする必要がある。
・エンヴェロープ
フラグレジスタ: f03~05,f11~13
整数レジスタ: i08~16
ノートオン(アタック)やノートオフ(リリース)をトリガとしてコントロールを変化させるもの。また、アタック動作完了をトリガとするディケイ機能もある。
エンヴェロープ処理自体はf03,f04,f05のどれかが+になっていれば有効で、この場合 - になっている機能は補間時間が0であるものとして扱われる。
リリース目標値に達した後でも、f03,f04,f05のどれかが+である限り効果が持続する。効果を完全に消すためには、f03,f04,f05の全てを-にする必要がある。
エンヴェロープが有効である場合、ノートオンからi10で指定した時間をかけて補間しながらi8で指定した値に近づいていく。その後すぐディケイに移行し、i16で指定した時間をかけてi14で指定した値に近づいていき、完了後は待機する。ノートオフを検知するとそれまでのエンヴェロープ動作を中断し、i13で指定した時間をかけて補間しながらi11で指定した値に近づいていく。
補間動作はフェードと同じように補間方式,目標値,中間値,補間時間を参照して行われるが、この動作はコントロールの設定値から相対的に作用するものであり、コントロールに対する書き換え動作は行わない。
・キーモジュレーション
フラグレジスタ: f06
整数レジスタ: i17~23
ノートオン,ノートオフに連動してコントロールを振幅させるもの。
和音の場合は最初のノートオンと最後のノートオフがトリガとなる。
コントロールの設定値から相対的に作用するものであり、コントロールに対する書き換え動作は行わない。
i17は波形,初期位相の情報が混在しており、(波形番号)*256+(初期位相)で表す。波形番号は0~5までで、それぞれ矩形波,正弦波,三角波,上鋸波,下鋸波,ノイズに対応している。初期位相位置は0を原点とした0~255の値で指定する。
波形と位相の関係による倍率は以下の通り。
0 | 32 | 64 | 96 | 128 | 160 | 192 | 224 | 255 | |
0:矩形波 | +1.00 | +1.00 | +1.00 | +1.00 | -1.00 | -1.00 | -1.00 | -1.00 | -1.00 |
1:正弦波 | 0.00 | +0.71 | +1.00 | +0.71 | 0.00 | -0.71 | -1.00 | -0.71 | -0.00 |
2:三角波 | 0.00 | +0.50 | +1.00 | +0.50 | 0.00 | -0.50 | -1.00 | -0.50 | -0.01 |
3:上鋸波 | 0.00 | +0.25 | +0.50 | +0.75 | -1.00 | -0.75 | -0.50 | -0.25 | -0.00 |
4:下鋸波 | 0.00 | -0.25 | -0.50 | -0.75 | +1.00 | +0.75 | +0.50 | +0.25 | +0.00 |
5:ノイズ | rnd | --- | --- | --- | --- | --- | --- | --- | --- |
(V0.22 rel.1以降) | |||||||||
6:ユーザ波形(無補間) | |||||||||
7:ユーザ波形(リニア補間) | |||||||||
8:ユーザ波形(エルミート補間らしきものォ) |
デプス,サイクルはどちらもモジュレーション開始時にリニア補間で変化させることができる。補間したくない場合は変化時間を0にするか、開始値と目標値を同じにする(処理が軽い前者を推奨)
・オートモジュレーション
フラグレジスタ: f08,f16
整数レジスタ: i27~31
状態に関わらず常にコントロールを振幅させるもの。
コントロールの設定値から相対的に作用するものであり、コントロールに対する書き換え動作は行わない。
波形についてはキーモジュレーションと同じ。デプスやサイクルはキーモジュレーションのような変化はできないが、代わりにr30,r31でデプスのフェードインやフェードアウトができる。
[コントロールチャネル]
0~127 | コントロールチェンジ | MIDIのCC#0~#127に対応しており、MIDIチャネル毎に用意されている。 実際の機能は音源のマニュアルを参照のこと。 中には拡張コントロールによる操作が好ましくないものも含まれるが、そこらへんは利用者の良識におまかせ(ォ |
-1 | ピッチベンド | MIDIのピッチベンドに対応しており、MIDIチャネル毎に用意されている。 |
-2 | ノートオンヴェロシティ | ノートオン時に参照されるヴェロシティ値を操作するもので、トラック毎に用意されている。 |
-3 | ゲートタイム(レート) | ノートオン時に参照されるゲートタイム値を操作するもので、トラック毎に用意されている。 動作の詳細はQ コマンドを参照。 |
-4 | ゲートタイム(ステップ) | |
-5 | テンポ | テンポを操作するもので、1系統だけ用意されている。 |
-6 | ノートオフヴェロシティ | ノートオフ時に参照されるヴェロシティ値を操作するもので、トラック毎に用意されている。 |
[フラグレジスタ]
1 | キーオンアクション | 処理スウィッチ(-:off,+:on) |
2 | キーオフアクション | 処理スウィッチ(-:off,+:on) |
3 | エンヴェロープ | アタック処理スウィッチ(-:off,+:on) |
4 | リリース処理スウィッチ(-:off,+:on) | |
5 | ディケイ処理スウィッチ(-:off,+:on) | |
6 | キーモジュレーション | 処理スウィッチ(-:off,+:on) |
7 | フェード | 処理スウィッチ(-:off,+:on) |
8 | オートモジュレーション | 処理スウィッチ(-:off,+:on) |
9 | キーオンアクション | 動作モード(-:1ポイント,+:2ポイント) |
10 | キーオフアクション | 動作モード(-:1ポイント,+:2ポイント) |
11 | エンヴェロープ | アタック補間方式(-:リニア,+:スプライン) |
12 | リリース補間方式(-:リニア,+:スプライン) | |
13 | ディケイ補間方式(-:リニア,+:スプライン) | |
14 | フェード | 補間方式(-:リニア,+:スプライン) |
15 | 制禦スウィッチ(-:現状維持,+:リセット) | |
16 | オートモジュレーション | 制禦スウィッチ(-:現状維持,+:リセット) |
[整数レジスタ]
0 | アップデートサイクル | 再計算間隔基本量(0~65535)msec |
1 | 再計算間隔ランダム追加量(0~65535) | |
2 | キーオンアクション | 設定値A(-32768~+32767) |
3 | 設定値B(-32768~+32767) | |
4 | 設定値ランダマイズ範囲(0~65535) | |
5 | キーオフアクション | 設定値A(-32768~+32767) |
6 | 設定値B(-32768~+32767) | |
7 | 設定値ランダマイズ範囲(0~65535) | |
8 | エンヴェロープ | アタック目標値(-32768~+32767) |
9 | アタック中間値(-32768~+32767) | |
10 | アタック補間時間(0~65535) | |
11 | リリース目標値(-32768~+32767) | |
12 | リリース中間値(-32768~+32767) | |
13 | リリース補間時間(0~65535) | |
14 | ディケイ目標値(-32768~+32767) | |
15 | ディケイ中間値(-32768~+32767) | |
16 | ディケイ補間時間(0~65535) | |
17 | キーモジュレーション | 波形,初期位相(0~2303) |
18 | デプス開始値(0~65535) | |
19 | デプス目標値(0~65535) | |
20 | デプス変化時間(0~65535) | |
21 | サイクル開始値(0~65535) | |
22 | サイクル目標値(0~65535) | |
23 | サイクル変化時間(0~65535) | |
24 | フェード | 目標値(-32768~+32767) |
25 | 中間値(-32768~+32767) | |
26 | 補間時間(0~65535) | |
27 | オートモジュレーション | 波形,初期位相(0~2303) |
28 | デプス(0~65535) | |
29 | サイクル(0~65535) | |
30 | デプスフェードイン時間(0~65535) | |
31 | デプスフェードアウト時間(0~65535) |
(V0.22 rel.1以降)
時間はセッティングレジスタ#33,#35,#37,#39の設定によりステップ単位での指定,処理も可能。
また、従来の処理では初期位相の初期化位置が原点からずれてしまっており、256の倍数を指定しても原点から開始されない。この問題を改善するために、セッティングレジスタ#31でパッチを当てることができる。