コマンド 0x09: ピッチベンド(負方向)

ピッチベンドを設定します。変化量の符号を反転して使用します。

構文

0x09, byte delay, byte interval, byte count, sbyte delta, byte reverse

パラメータ

パラメータ型内容
delaybyte最初の変化までの時間(0の場合は interval)
intervalbyte変化の間隔
countbyte変化の総回数
deltasbyte1回あたりのピッチの変化量。符号を反転して設定される
reversebyte最初に符号を反転して変化させる回数

解説

キーオンごとに、ピッチを一定間隔で一定量ずつ変化させるピッチベンドを有効にします(エフェクト有効フラグ bit0)。設定はコマンド 0x0A で解除するまで以降のすべてのノートに適用されます。

ピッチベンドの動作は次のとおりです。

  1. キーオン時に各カウンタを初期化する。
  2. delay が0でない場合は、delay の時間が経過した時点で最初の変化を行う。delay が0の場合は、interval の時間が経過した時点で最初の変化を行う。
  3. 以後 interval の時間ごとにピッチを変化させる。最初の reverse 回は変化量の符号を反転して適用し、その後は変化量をそのまま適用する。
  4. count 回(reverse 回を含む)変化させた時点でピッチベンドを終了する。

変化量はノート・ナンバーではなく、DSPのピッチレジスタの値(14ビット、$1000 で原音)に直接加算されます。そのため、同じ変化量でも高い音ほど音程の変化は小さくなります。
エフェクトの時間はテンポに依存しないタイマー周期(12.5ms)単位で数えられます。詳しくはシーケンスデータの構造を参照してください。

このコマンドの処理に時間はかからず、同じティックのうちに続くイベントが読み込まれます。

コマンド 0x08 との違いは、delta の符号を反転して設定する点のみです。

注意

  • count に0を指定すると256回変化します。
  • ビブラートと同じピッチ値を変化させるため、両方を有効にすると効果は加算されます。
  • SE割込中のBGMチャネルでは、キーオンが行われないためカウンタは初期化されません。

参照

シーケンスデータの構造
コマンド 0x08
コマンド 0x0A
コマンド 0x26
コマンド 0x27