ユーザーマニュアル
MIDI構文
OnSong は MIDI コマンドを表現するためのテキストベースの構文を使用します。メタデータエディタで MIDI イベント を使用できますが、テキストで MIDI コマンドを表現することもできます。
区切られた値
まず第一に、複数の MIDI コマンドはさまざまな文字で区切ることができます。タブ文字、コンマ、セミコロン、縦棒、または改行が含まれます。コンマが最も一般的な区切り文字です。例えば:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
チャネル
各エントリは @ シンボルを含むことができます。シンボルの後の数値は、コマンドを送信するチャネルです。MIDI のチャネルはゼロから始まるため、チャネル 1 はゼロ (0)、チャネル 2 は 1 (1) などになります。
@ シンボルが使用されていない場合、コマンドはすべてのチャネルで送受信されます。
接頭辞
リストの各エントリには接頭辞が含まれます。この接頭辞は、送信する MIDI コマンドのタイプを決定します。これらには以下が含まれます:
- PC または接頭辞なしはプログラムチェンジイベントです。
- N はノートイベントです
- CC はコントロールチェンジイベントです。
- SS はソングセレクトイベントです。
- START はスタートコマンドです。
- STOP はストップコマンドです。
- CONTINUE はコンティニューコマンドです。
- F0 は SysEx メッセージの接頭辞です。
- WAIT は遅延を実装します。
値
コマンドの値は @ シンボルの直前、または @ が指定されていない場合はエントリの最後に表示されます。これは、接頭辞に基づいて、プログラムチェンジ、コントロールチェンジ、ノート、またはソングセレクトの値です。SysEx エントリの場合、SysEx の 16 進値は F0 接頭辞の直後に提供され、すべての SysEx コマンドのヘッダーとして使用されます。
サブ値
場合によっては、追加情報が MIDI コマンドにサブ値として伝達されます。たとえば、MSB と LSB、およびコントロール値のベロシティはこの方法で送信できます。これは、値部分にコロンを追加することで表現されます。サブ値は、送信される MIDI コマンドのタイプに応じて異なるコンテキストを持ちます:
- プログラムチェンジは、プログラムチェンジの MSB/LSB に合わせたサブ値を持ちます。これらの値はピリオドで区切られ、左側に MSB、右側に LSB があります。
- コントロールチェンジは、これを使用して設定されるコントロールの値を持ちます。数値は 0 から 127 の間です。省略された場合、127 の値が推定されます。
- ノートイベントは、ノートを再生するベロシティに関連するサブ値を持ちます。これは 0 から 127 の間の数値に設定できます。
例
シンプルなプログラムチェンジから始めましょう。このシナリオでは、プログラムチェンジ 8 を使用して、チャネル 1 の MSB 4 と LSB 2 も送信します。この例は、この変動の最も複雑なバリエーションから始まり、バンクセレクトとチャネルを削除してより広くなります:
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
次に、ノートイベントを見てみましょう。OnSong は MIDI C0 をスケール上で 0 としてカウント開始するため、チャネル 8 で C4 を 75% ベロシティで再生する場合は、以下を入力します:
N60:95@7, N60@7, N60:95, N60
繰り返しになりますが、MIDI 構文から値が削除されると、MIDI ステートメントはより広く、より具体性を欠くようになることを覚えておくことが重要です。たとえば、最後のバージョンのノートイベントは、すべてのチャネルで 100% ベロシティで C4 を送信します。
他の MIDI イベント間に遅延を実装するには、WAIT コマンドを数字と一緒に使用します。数値は整数値です。1 ~ 10 で秒を定義するか、ミリ秒として定義できます。以下は、2 秒、10 秒、および 0.5 秒待つ方法を示しています。
WAIT2, WAIT10, WAIT500