コマンド 0x0D: ビブラート(ディレイなし)
ディレイなしでビブラートを設定します。
構文
0x0D, byte length, byte rate, sbyte depth
パラメータ
| パラメータ | 型 | 内容 |
|---|---|---|
| length | byte | 折り返しの間隔(ステップ数) |
| rate | byte | 1ステップの時間 |
| depth | sbyte | 1ステップあたりのピッチの変化量(符号は無視される) |
解説
キーオンごとに、ピッチを三角波状に変化させるビブラートを有効にします(エフェクト有効フラグ bit1)。設定はコマンド 0x0E で解除するまで以降のすべてのノートに適用されます。
ビブラートの動作は次のとおりです。
- キーオン時に、depth を正の値にし、折り返しまでのステップ数を length ÷ 2 (切り捨て)に初期化する。
- rate の時間ごとにピッチに depth を加算する(1ステップ)。
- 折り返しまでのステップ数が0になると、depth の符号を反転し、ステップ数を length に戻す。
したがって、ピッチは本来のピッチを中心に、±(depth × length ÷ 2) の範囲で変化します。変化量はDSPのピッチレジスタの値に直接加算されます。
エフェクトの時間はテンポに依存しないタイマー周期(12.5ms)単位で数えられます。詳しくはシーケンスデータの構造を参照してください。
このコマンドの処理に時間はかからず、同じティックのうちに続くイベントが読み込まれます。
コマンド 0x0F で delay を0にした場合と同じです。
注意
- length には2以上の値を指定します。1を指定すると最初の折り返しまでのステップ数が0となり、256ステップ後まで折り返しません。
- length が奇数の場合、変化の中心が本来のピッチからずれます。
- ピッチベンドと同じピッチ値を変化させるため、両方を有効にすると効果は加算されます。
- SEチャネル5(論理チャネル13)では、ビブラートの各ステップでCPUコマンド $84 によるピッチシフト量の変化も反映されます。