ユーザーマニュアル

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はコントロール変更イベントです。
  • SSはソングセレクトイベントです。
  • STARTはスタートコマンドです。
  • STOPはストップコマンドです。
  • CONTINUEはコンティニューコマンドです。
  • F0はSysExメッセージをプリフィックスします。
  • WAITは遅延を実装します。

コマンドの値は@記号の直前、または@が指定されていない場合はエントリの最後に表示されます。これはプリフィックスに基づいたプログラム変更、コントロール変更、ノート、またはソングセレクトの値です。SysExエントリの場合、SysExの16進値はすべてのSysExコマンドのヘッダーとして使用されるF0プリフィックスの直後に提供されます。

サブ値

場合によっては、追加情報がMIDIコマンドのサブ値として伝達されます。例えば、MSBおよびLSB、ならびにコントロール値の速度をこのように送信できます。これはvalue部分にコロンを追加することで表現されます。サブ値は、送信される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

次にノートイベントを見てみましょう。チャネル8でC4を75%速度で演奏したい場合、OnSongがMIDI C0をMIDIノートスケールの0としてカウント開始するため、次のように入力します:

N60:95@7, N60@7, N60:95, N60

繰り返しになりますが、MIDI構文から値が削除されると、MIDIステートメントはより広く、より具体的でなくなることを覚えておくことが重要です。例えば、ノートイベントの最後のバージョンは、すべてのチャネルで100%速度でC4を送信します。

他のMIDIイベント間に遅延を実装するには、WAITコマンドを数値と一緒に使用します。数値は整数値にすることができます。秒を待つ場合は1〜10として定義でき、ミリ秒として定義することもできます。以下は、2秒、10秒、および0.5秒待つ方法を示しています。

WAIT2, WAIT10, WAIT500
OnSong 2023 — 最後に更新: January 17, 2018