コマンド 0x08: ピッチベンド(正方向)
ピッチベンドを設定します。変化量をそのまま使用します。
構文
0x08, byte delay, byte interval, byte count, sbyte delta, byte reverse
パラメータ
| パラメータ | 型 | 内容 |
|---|---|---|
| delay | byte | 最初の変化までの時間(0の場合は interval) |
| interval | byte | 変化の間隔 |
| count | byte | 変化の総回数 |
| delta | sbyte | 1回あたりのピッチの変化量 |
| reverse | byte | 最初に符号を反転して変化させる回数 |
解説
キーオンごとに、ピッチを一定間隔で一定量ずつ変化させるピッチベンドを有効にします(エフェクト有効フラグ bit0)。設定はコマンド 0x0A で解除するまで以降のすべてのノートに適用されます。
ピッチベンドの動作は次のとおりです。
- キーオン時に各カウンタを初期化する。
- delay が0でない場合は、delay の時間が経過した時点で最初の変化を行う。delay が0の場合は、interval の時間が経過した時点で最初の変化を行う。
- 以後 interval の時間ごとにピッチを変化させる。最初の reverse 回は変化量の符号を反転して適用し、その後は変化量をそのまま適用する。
- count 回(reverse 回を含む)変化させた時点でピッチベンドを終了する。
変化量はノート・ナンバーではなく、DSPのピッチレジスタの値(14ビット、$1000 で原音)に直接加算されます。そのため、同じ変化量でも高い音ほど音程の変化は小さくなります。
エフェクトの時間はテンポに依存しないタイマー周期(初期値で約7.5ms。コマンド 0x2A で変更可能)単位で数えられます。詳しくはシーケンスデータの構造を参照してください。
このコマンドの処理に時間はかからず、同じティックのうちに続くイベントが読み込まれます。
注意
- count に0を指定すると256回変化します。
- ビブラートと同じピッチ値を変化させるため、両方を有効にすると効果は加算されます。
- SE割込中のBGMチャネルでは、キーオンが行われないためカウンタは初期化されません。