ユーザーマニュアル
MIDI構文
OnSongはMIDIコマンドを表現するテキストベースの構文を使用しています。Metadata EditorでMIDI Eventsを使用できますが、テキストでMIDIコマンドを表現することもできます。
区切り値
何より重要なこととして、複数のMIDIコマンドはタブ文字、コンマ、セミコロン、パイプ、または改行を含むさまざまな文字で区切ることができます。コンマが最も一般的な区切り文字です。例:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
チャンネル
各エントリには@シンボルが含まれる場合があります。シンボルの後の数値は、コマンドを送信するチャンネルです。MIDIではチャンネルがゼロから開始するため、チャンネル1はゼロ(0)、チャンネル2は1(1)などになります。
@シンボルが使用されない場合、コマンドはすべてのチャンネルで送受信されます。
プレフィックス
リスト内の各エントリにはプレフィックスが含まれています。このプレフィックスは、送信するMIDIコマンドのタイプを決定します。これらには以下が含まれます:
- PCまたはプレフィックスなしはプログラムチェンジイベントです。
- Nはノートイベントです
- CCはコントロールチェンジイベントです。
- NRPNは登録されていないパラメータ番号です。
- SSはソングセレクトイベントです。
- STARTはスタートコマンドです。
- STOPはストップコマンドです。
- CONTINUEはコンティニューコマンドです。
- WAITはより多くのイベントを送信する前に特定の時間を待機します。
- F0はSysExメッセージの前に付きます。
- @はMIDIグローバルタグの前に付きます。
値
コマンドの値は@シンボルの直前またはエントリの終わりに表示されます(@が指定されていない場合)。これはプレフィックスに基づくプログラムチェンジ、コントロールチェンジ、ノート、またはソングセレクトの値です。SysExエントリの場合、SysExの16進値はF0プレフィックスの直後に提供され、これはすべてのSysExコマンドのヘッダーとして使用されます。
サブ値
場合によっては、追加情報がサブ値としてMIDIコマンドで伝達されます。たとえば、MSBおよびLSB、ならびにコントロール値の速度をこの方法で送信できます。これは値部分にコロンを追加することで表現されます。サブ値は送信されるMIDIコマンドのタイプに応じて異なるコンテキストを持ちます:
- プログラムチェンジはプログラムチェンジのMSB/LSBに合わせたサブ値を持ちます。これらの値はピリオドで区切られ、左側がMSB、右側がLSBです。
- コントロールチェンジは、これを使用して設定されたコントロールの値を持ちます。数値は0〜127の間である必要があります。省略された場合、127の値が推論されます。ハイフンで複数の値を区切って値をステップスルーすることもできます。たとえば、127-0はオンとオフの状態の間で127の値をラッチします。
- ノートイベントは、ノートを再生する速度に関連するサブ値を持ちます。これは0〜127の数値に設定できます。ハイフンで複数のノート速度を区切って、複数のノート速度をステップスルーできます。
例
簡単なプログラムチェンジから始めましょう。このシナリオでは、チャンネル1でMSBが4、LSBが2も送信するプログラムチェンジ8を使用します。例は最も複雑なバリエーションから始まり、銀行選択とチャンネルを削除して、より広くなります:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
コントロールチェンジは似ていますが、構文の左側はコントロールチェンジ番号で、右側はオプション値です。値が指定されていない場合、127が代わりに送信されます。チャンネル3でコントロールチェンジ106と値64を送信します。
CC105:63@2, CC105:63. CC105@2, CC105
次に、ノートイベントを見てみましょう。チャンネル8でC4を75%速度で再生したい場合、OnSongはMIDIスケールで0としてMIDI C0をカウント開始するため、以下を入力します:
N60:95@7, N60@7, N60:95, N60
繰り返しますが、MIDI構文から値が削除されるにつれて、MIDI文がより広くなり、より具体的ではなくなることを覚えておくことが重要です。たとえば、ノートイベントの最後のバージョンは、すべてのチャンネルで100%速度でC4を送信します。
WAITコマンドを追加してMIDIを遅延させることもできます。以下は2秒およびMIDIを500ミリ秒(0.5秒)遅延させます。秒は1~10秒または、またはミリ秒で指定できます。
WAIT2, WAIT500
最後に、事前設定されたMIDIイベントのリストを参照できるMIDIグローバルを参照できます。「on」というタグ(引用符なし)を持つMIDIグローバルがある場合は、次のようにそのグローバルを参照できます:
@on