コマンド 0x0D: ビブラート(ディレイなし)

ディレイなしでビブラートを設定します。

構文

0x0D, byte length, byte rate, sbyte depth

パラメータ

パラメータ型内容
lengthbyte折り返しの間隔(ステップ数)
ratebyte1ステップの時間
depthsbyte1ステップあたりのピッチの変化量(符号は無視される)

解説

キーオンごとに、ピッチを三角波状に変化させるビブラートを有効にします(エフェクト有効フラグ bit1)。設定はコマンド 0x0E で解除するまで以降のすべてのノートに適用されます。

ビブラートの動作は次のとおりです。

  1. キーオン時に、depth を正の値にし、折り返しまでのステップ数を length ÷ 2 (切り捨て)に初期化する。
  2. rate の時間ごとにピッチに depth を加算する(1ステップ)。
  3. 折り返しまでのステップ数が0になると、depth の符号を反転し、ステップ数を length に戻す。

したがって、ピッチは本来のピッチを中心に、±(depth × length ÷ 2) の範囲で変化します。変化量はDSPのピッチレジスタの値に直接加算されます。
エフェクトの時間はテンポに依存しないタイマー周期(12.5ms)単位で数えられます。詳しくはシーケンスデータの構造を参照してください。

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

コマンド 0x0F で delay を0にした場合と同じです。

注意

  • length には2以上の値を指定します。1を指定すると最初の折り返しまでのステップ数が0となり、256ステップ後まで折り返しません。
  • length が奇数の場合、変化の中心が本来のピッチからずれます。
  • ピッチベンドと同じピッチ値を変化させるため、両方を有効にすると効果は加算されます。
  • SEチャネル5(論理チャネル13)では、ビブラートの各ステップでCPUコマンド $84 によるピッチシフト量の変化も反映されます。

参照

シーケンスデータの構造
コマンド 0x0E
コマンド 0x0F