ユーザーマニュアル

MIDI構文

OnSongはMIDIコマンドを表現するテキストベースの構文を使用しています。Metadata EditorMIDI 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
OnSong 2026 — 最後に更新: March 11, 2020