MIDIの話し方

Dec 04 2022
この記事はもともと 2019 年 5 月に書いたものですが、古い Web サイトを廃止したため、ここに移動しました。楽しみ!目次 付録 I: チャンネル モード メッセージ付録 II: MIDI ピッチ チャート付録 III: 標準 CC アサインメント付録 IV: バンク変更メッセージ付録 V: その他のリソース MIDI は古いものですが、非常に便利です。

この記事はもともと 2019 年 5 月に書いたものですが、古い Web サイトを廃止したため、ここに移動しました。楽しみ!

コンテンツ

  1. MIDI とは
    1.1 MIDI とは何か
  2. 仕組み
    2.1メッセージの分離
    2.2ステータスバイトとデータバイト
  3. メッセージの種類
    3.1ノートオフ / ノートオン (0x8n, 0x9n)
    → 3.1.1 MIDI ピッチナンバーについて
    3.2コントロールチェンジ (0xBn)
    3.3ピッチベンド (0xEn)
    3.4ポリフォニックキープレッシャーとチャンネルプレッシャー (0xAn, 0xDn)
    3.5プログラムチェンジ (0xCn) )
    3.6システム (0xFn)
  4. 16 進数について
  5. 応用例:ベートーベンの交響曲第5番
  6. ボーナス レッスン: 実行中のステータス

付録 I: チャンネル モード メッセージ
付録 II: MIDI ピッチ チャート
付録 III: 標準 CC 割り当て
付録 IV: バンク変更メッセージ
付録 V: その他のリソース

MIDI は古くからありますが、非常に便利です。ギター センターで見られるキーボードを駆動し、コンサートでの照明や花火¹ などを制御し、過去数十年間、事実上すべての映画のスコアリングに使用されてきました。

あなたが現代のミュージシャンなら、MIDI の実用的な知識は不可欠です。あなたがこのようなブログ記事を読んでいるような人なら、すでにある程度の作業経験がある可能性が高いです。ただし、使い方だけでなく、ビットごとの読み方を知っておくと役立つと思います。独自の MIDI メッセージを翻訳して組み立てる作業は、最初は難しく聞こえるかもしれませんが、実際には非常に簡単であり、現代の作曲家にとって重要なスキルだと思います。これは、レコーディング エンジニアとしてマイクがどのように機能するかを知ることに似ています。

この記事は、音楽制作に適用される MIDI メッセージの包括的な紹介とガイドとして役立ちます。このガイドは、MIDI 構成のチュートリアルや、DAW で MIDI エディターを使用する方法のチュートリアルではありません。ただし、このガイドは完全に作曲家を対象としています。MIDI の基本的な知識があれば、より高度な (そして複雑な) MIDI ツールを理解するのに大いに役立つことがわかるからです。始めましょう。

Prophet 600 は、MIDI をサポートした最初のシンセの 1 つです。

1. MIDIとは

私は物事を最初から教え始めるのが好きです。ただし、MIDI とは何か、またそれが何をするものなのかを既に理解している場合は、スキップしてHow It Worksに進んでください。そうでなければ、見直しましょう。

MIDIとは、「Musical Instrument Digital Interface」の略称です。本質的には、コンピューターが音楽のパフォーマンスを記述し、相互に送信する方法です。実際、その通りです。あなたが 80 年代以降に生まれた場合、これまでに見たキーボードやドラム マシンはすべて MIDI を使用していることでしょう。何年にもわたって MIDI のオーバーホールや置き換えを行う試みが数多く行われてきましたが、楽器のメーカーや開発者は、他のものを使用することにはまったく関心がないようです。

MIDI を使用すると、次のことができます。

  • 音楽演奏を録音し、外科的精度で編集する
  • ほとんどまたはまったく作業なしで、あらゆる楽器にパフォーマンスを「パッチ」します
  • パフォーマンスを手続き的に生成または再シーケンスする
  • 接続ひとつでアンサンブル演奏をアレンジ
  • 基本的なミキシングを「自動化」で完了

そして、それはスコアが実行された場合です。80 年代のバーチャル オーケストラは笑えるほど偽物に聞こえましたが、現代の楽器の音は非常に優れているため、何気なく聴いている人には違いさえわかりません。そして、それはすべてを変えました。低予算の映画やテレビ番組では、最終バージョンでサウンドトラックに MIDI オーケストラが使用されることが多く、視聴者はそれほど賢明ではありません。そして驚くべきことに、そのようなツールは、ほぼすべての収入レベルのミュージシャンが利用できます。

1.1 MIDIとは何か

先に進む前に、初心者が時々持ついくつかの誤解を払拭したいと思います。それほど時間はかかりません。

まず、MIDI は音楽を作成しません。他のデバイスに音楽の作成方法を伝えるだけです。しかし、それは他のこともできます。たとえば、業務用のビデオ ソフトウェアでは、アニメーション パラメータなどを制御するために MIDI メッセージが使用されます。多くのスタジオ コントロール サーフェスは MIDI を使用してミキシング ソフトウェアを制御します。ここで言いたいのは、MIDI データは主にバーチャル インストゥルメントの制御に使用されますが、実際には何にでも使用でき、それ自体では何のようにも聞こえないということです。

MIDI コンポーザーが使用するツールは、コンピューター コードを抽象化して視覚化しやすいものにします。(Nuendo 8 のスクリーンショット)

第二に、MIDI データは単なる「コンピュータ用の楽譜」ではありませんが、類推は有用です。西洋の楽譜は、歴史上最も表現力豊かな音楽のすべてをエンコードした媒体ですが、実際のところ、楽譜には解釈の余地がかなりあります。また、コンピュータはあいまいさをうまく処理できません。

代わりに、MIDI はおそらくプログラミング言語であり、MIDI エディターは視覚的なプログラミング環境であると考えるのが最も適切でしょう。MIDI エディタは、MIDI コマンドを実際の形ではなく、ピアノロールの形状として表現します。つまり、美化されたデジタル命令です。また、すべてのプログラミング言語と同様に、MIDI にはあらゆる種類のバグやグリッチが存在します。たとえば、「ノート オン」メッセージが「ノート オフ」と適切にペアリングされていない場合、コンピューターには停止するという常識がないため、ノートは永遠に再生され続けます。

とにかく、私はこの紹介を書くのにうんざりしています。抽象化のすべてのレイヤーを剥がして、基本的なレベルで、MIDI の話し方を学びましょう。

2. 仕組み

コンピューターのほとんどすべてのものと同様に、MIDI は 1 と 0 の集まりに要約されます。各桁はビット(「2 進数」の略) と呼ばれ、そのうちの 8 個が 1バイトを形成します。電子ピアノを演奏すると、内部で生成された MIDI メッセージが楽器の音源に送られ、そこで解釈されて可聴音に変換されます。シグナルを覗いてみると、生成されたメッセージは次のようになります。

これは単純な MIDI パフォーマンスのバイナリ形式です。ベートーベンの第 5 番の最初の 4 つのノートです。このシーケンスを録音し、配信されたとおりに別の MIDI 楽器に繰り返すと、結果はパフォーマンスの同一のコピーになります。タイミングを間違えると、パフォーマンスのペースが変わってしまいます。パフォーマンスに関する他のすべては、データ自体にエンコードされています。

最近の作曲家は、基本的に時間指定された数字の配信につながるものを作成、編集、調整することに時間を費やしていることを理解するのは興味深いことです。とにかく、この混乱を解釈するタスクを 1 つずつ分解してみましょう。

2.1 メッセージの分離

MIDI メッセージについて最初に知っておくべきことは、ほとんどの場合、メッセージは複数のバイトにまたがるということです。これは、一意の 8 ビット数が 256 しかないことを考えると理にかなっています。おそらく、音楽イベントのように表現力のあるものを記述するには、それよりもはるかに多くの情報をエンコードする必要があります。

では、メッセージをいくつかの小さなパッケージで、場合によっては一度に受信している場合、1 つのメッセージがどこで終わり、次のメッセージがどこで始まるかをどうやって知るのでしょうか? 現実的には、メッセージごとに予想されるバイト数を知っていて、一番上から始めると、送信中に失われない限り、それらを区別できるはずです。しかし、MIDI はすべてのメッセージを解析するための確実な方法を提供してくれます。それは、すべてのバイトの最初のビットを原因専用にすることです。

ルール 1: MIDI バイトの最初のビットが1の場合、そのバイトはステータス バイトであり、MIDI メッセージの最初の部分を示します。最初のビットが0の場合、それはメッセージの本文を形成するデータ バイトです。

簡単。バイトが1で始まるたびに、新しいメッセージの開始を読んでいることがわかり、最初のバイトと合わせて次のバイトを解釈できます。そのルールを使用して、上記の MIDI パフォーマンスを個別のメッセージに分解してみましょう。

もう少し整然としたものを見ているので、いくつかのパターンが飛び出していることに気付くかもしれません。1 つは、各バイトの一意のバージョンが 2 つしかないことです。これらのメッセージがベートーベンの交響曲第 5 番の最初の 4 つの音符を表していることを知っているので、その意味を推測できますか?

2.2 ステータスバイトとデータバイト

MIDI メッセージのステータス バイトはヘッダーとして機能し、最も重要な部分です。メッセージの内容と、次のデータ バイトをどのように解釈するかを示します。データ バイトがエンコードする内容はメッセージによって異なりますが、通常はメッセージを実行する上で重要な情報を提供します。ステータス バイトに「ジャンプ」と表示されている場合、データ バイトからその高さがわかる場合があります。

各バイトの最初のビットは 2 つのバイト型を区別するために予約されているため、どちらでも使用できるのは 7 ビットのみです。使用方法は次のとおりです。

ルール 2:ステータス バイトのビット2、3、および4は、そのメッセージ タイプを識別します。ビット5 ~ 8は、アドレス指定されているMIDI チャンネルを識別します。データ バイトは、メッセージ タイプに応じてさまざまな機能を果たします。

メッセージ タイプを決定する 3 ビットとチャネル番号の 4 ビットは、8 つの異なるメッセージ タイプと 16 の可能なチャネルがあることを意味します。データ バイトには、 0~127の任意の値を含めることができます。圧倒的多数のメッセージは 2 データ バイトを使用しますが、実際にはその数はメッセージのニーズによって異なります。たとえば、「プログラムチェンジ」メッセージは 1 データバイトしか必要とせず、「システムエクスクルーシブ」メッセージは任意の数を持つことができます。

以前に MIDI を使用したことがある場合は、おそらく MIDI チャンネルに既に精通しているでしょう。そうでない場合は、すべての MIDI 接続で最大 16 のボイスを制御できます。ステータス バイトは、最下位 4 ビットで、メッセージがこれらのチャンネルのどのチャンネルに宛てられているかを指定します。³

3. メッセージの種類

次の表は、さまざまな MIDI メッセージ タイプと、データ バイトの使用方法を示しています。以下のサブセクションでそれぞれについて説明します。

3.1 ノートオフ / ノートオン (0x8n、0x9n)

これらは MIDI メッセージの中で最も基本的なもので、最も理解しやすいものです。音を鳴らしたいときは「ノートオン」メッセージを送信し、終了したいときは「ノートオフ」メッセージを送信します。これらのメッセージは 2 つのデータ バイトを使用します。1 つ目は制御するピッチを識別し、2 つ目はベロシティを識別します。⁴ ベロシティ 0 の「ノート オン」は音を生成せず、「ノート オフ」メッセージと同等です。

考慮事項:

  • ゼロ ベロシティの「ノート オン」メッセージの存在は、「ノート オフ」メッセージがまったく不要であることを意味します。MIDI 規格では、「ノート オフ」メッセージとベロシティ ゼロの「ノート オン」メッセージは同等であり、同じように処理する必要があると明記されています。その結果、デバイスによってノートの解除方法が異なる場合があります。
  • 送信機はノートのトリガーを解除する方法を 1 つだけ使用する必要がありますが、受信機は両方を処理できる必要があります。
  • ベロシティ値は「ノートオフ」メッセージではあまり意味がありませんが、それでもメッセージの一部であり、送信する必要があります。値は使用されず、破棄されます。

ピッチ番号は、基本的に 1 対 1 でピアノのキーにマッピングされます。ただし、可能な値は 128 あり、ピアノのキーは 88 個しかないため、実際には MIDI はピアノにはない 40 個の半音をサポートしています。そのうちの 19 個は最高音の C7 の上にあり、残りの 21 個は最低音の A-1 の下にあります。MIDI ピッチ範囲は、ノート番号 60 であるミドル C をほぼ中心としています。

オクターブ数については、製造業者がすべて同意しているわけではないことに注意してください。アナログ ミュージシャンが使用する科学的なピッチ表記法では、ピアノの最も低い C をC1として識別し、中央の C C4を作成します。一方、プログラマーは 0 から数え始めることが多いため、最も低い C はC0で、真ん中の C はC3です。これは、私のすべての MIDI ツールが使用するものであるため、私が通常使用する表記法です。ただし、どのシステムを使用しても、ミドル C は常にノート番号 60 です。

付録 IIでは、MIDI ピッチ番号との間の変換表を提供します。

3.2 コントロールチェンジ (0xBn)

「コントロールチェンジ」メッセージは、チャンネルのコンティニュアスコントローラーを変更するために使用されます。コンティニュアス コントローラーは、オートメーション レーンに似ています。チャネルのパフォーマンスのさまざまな側面を継続的に制御できます。

最初のデータ バイトは CC 番号(0 ~ 119)を識別し、2 番目のデータ バイトはそれに値(0 ~ 127)を割り当てます。

考慮事項:

  • 名前が示すように、連続コントローラー データは連続ではありません。オートメーションのように値の間を滑らかに補間する代わりに、CC レーンの現在の値は個別のステップでしか変化できません。別の値にスムーズに変化させるには、多数の「コントロール チェンジ」メッセージを送信し、制御されたレートで値を増加または減少させる必要があります。
  • MIDI 仕様は、ほとんどの 120 CC の使用目的を定義しています。付録 IIIにすべての CC の表を示します。
  • 最後の 8 つの CC 番号(120 ~ 127)は、実際には CC をまったく表していません。代わりに、チャネル モードメッセージと呼ばれるメッセージの特別なカテゴリを表します。チャネル モード メッセージは、それを受信するデバイス全体に影響を与える特殊なコマンドです。実際には、あまり心配する必要はありませんが、付録 Iで詳細を説明します。
  • CC 番号0と32 は、多くのデバイスでパッチ選択の目的で使用されます。詳細については、付録 IVを参照してください。

ピッチを上下にベンドします。当たり前。

ピッチベンドは CC に少し似ています。実際、ほとんどの MIDI エディターはピッチベンドを別の CC のように扱います。ただし、128 の可能な値を持つ 7 ビットの CC 値は、ピッチ ベンド エフェクトを販売するのに十分な解像度を提供しません。私たちの耳はピッチの高さを解決することに優れているため、一度に 1/128 ずつ新しいピッチに近づいても、スムーズで有機的な音にはなりません。

より細かい解像度を得るために、「ピッチ ベンド」メッセージは 2 つのデータ バイトを使用して 1 つの大きな値を送信します。基本的に、あるメッセージの 7 ビットと別のメッセージの 7 ビットを一緒に圧縮すると、1 つの 14 ビット値を組み立てることができ、解像度が 27 倍、つまり 128 倍になります。

これで、ピッチ ベンドの可能な値は 128 ではなく、なんと 16,384 ステップになりました。これは、スムーズなピッチ ベンド エフェクトを作成するのに十分な数です。右半分は最初のデータ バイト (最下位バイト (LSB)) によって提供され、左半分は 2 番目 (最上位バイト (MSB)) によって提供されます。

考慮事項:

  • ピッチ ベンドの強さ (最大ピッチ ベンドが表す半音の上下数) は、楽器ごとに異なります。多くの場合、構成可能です。
  • ピッチ ベンドは8192を「中心」にしています(ここではピッチ変化はありません)。
  • ピッチ ベンドは、CC の場合と同様に、チャンネルで再生されているすべてのノートに影響します。
  • MSB と LSB を使用したプログラミングは、ビット単位の演算子を使用して行うのが最適です。ここでは詳しく説明しませんが、詳細を知りたい場合は、付録 Vにいくつかのリソースを提供しています。

Akai MPK225などの一部の MIDI コントローラーには、アフタータッチと呼ばれるものがあります。アフタータッチ コントローラーは、各キーを押す速度だけでなく、キーが押されている圧力にも常に敏感です。

アフタータッチには、チャンネル アフタータッチとポリフォニック アフタータッチの 2 種類があります。モノ プレッシャーとも呼ばれるチャンネル アフタータッチは、キーボード全体の圧力を測定しますが、ポリフォニック アフタータッチは、すべてのキーの圧力を個別に測定します。ハードウェアのコストが低いため、チャネル アフタータッチは 2 つの中でより一般的です。チャネル プレッシャー メッセージは、全体的なプレッシャー レベルを表す 1 データ バイトのみを使用します。ポリフォニック キーの圧力メッセージは 2 つを使用します。1 つ目はピッチ (標準のピッチ番号を使用) を報告し、2 つ目はその圧力を報告します。

考慮事項:

  • ポリフォニックアフタータッチは、ピッチごとに独立して設定できる唯一のコントロールです。他のすべてのコントロール (ノートのオンとオフを除く) は、チャネル全体に影響します。
  • 「MIDI ポリフォニック エクスプレッション」(MPE) と呼ばれる MIDI の拡張機能は、CC とピッチ ベンドをポリフォニックに適用できるように設計されています。MPE はあまり一般的ではありませんが、ROLI Seaboardなどのデバイスによって普及しています。付録 Vで、それをカバーするリソースへのリンクを提供しました。

多くの外部 MIDI ハードウェアを使用しない場合は、おそらくこのメッセージ タイプをあまり使用しないでしょう。「プログラム変更」メッセージは、デバイスに新しいプログラム (新しいパッチまたはプリセット) をロードするように命令します。パッチのインデックスを指定する 1 つのデータ バイトのみを使用します。

このメッセージ タイプは、外部 MIDI デバイスで作曲する場合に非常に役立ちます。ハードウェアがプリセットをサポートしている限り、プロジェクトまたはセッションはそれらの選択とロードを処理できます。開始時に適切な「プログラム変更」メッセージをシーケンスするだけです。

考慮事項:

  • 128 を超えるプリセットを持つインストゥルメントは、通常、パッチを複数のバンクに保存します。他のバンクに保存されたプログラムを呼び出すために、CC の0と32は「バンク選択」メッセージに再利用されます。付録 IVでは、これがどのように機能するかについて説明します。
  • プログラム変更メッセージの巧妙なスケジューリングにより、同時に再生されない限り、1 つのデバイスで 16 を超える異なるパッチを使用することができます。現実的ではありますが、単一のデバイスから多くの音声を抽出する必要がある場合は、おそらく複数のキャプチャに分割する必要があります。
  • Cubase と Nuendoでは、MIDI トラック インスペクタでプログラム チェンジ メッセージがネイティブにサポートされています。これをサポートしている DAW が他にいくつあるかはわかりません。

システム メッセージは、ここでは取り上げない高度なトピックです。彼らは本当に独自の記事に値します。それらはあらゆる種類のものに使用されます。巨大なデータ転送 (「ダンプ」と呼ばれる)、クロックの同期、タイムコードの送信など。

将来、システム メッセージのガイドを作成する可能性がありますが、今のところは気にしないでください。それらは存在し、通常は MIDI 構成では使用されないことに注意してください。

4. 16 進数について

先に進む前に、前のセクションで使用したすべての0xについて説明する必要があります。接頭辞0x は、数値が 16 進数であることを示しています⁵ 高度な MIDI ツールやデバイスのマニュアルを詳しく調べると、MIDI メッセージはほとんどの場合、2 進数や 10 進数ではなく 16 進数で表されていることに気付くでしょう。これは最初は直感に反するように思えるかもしれません — つまり、2 進数を変換するつもりなら、なぜ人間が読める 10 進数に変換しないのでしょうか?

答えは、より実用的だということです。バイナリは MIDI の学習を開始する最良の方法だと思いますが、実際に作業するのはかなり面倒です。すべてのバイトを 8 桁以上に広げると読み書きが面倒になります。2 進法ではすべてが 1 と 0 であるため、長いシーケンスを読み取ると場所を失いがちです。

2 進数のビットの反転は、16 進数表現の 1 桁にのみ影響します。

そのため、ビット単位のプログラマーは通常 16 進数で作業します。16 は 2 のべき乗であるため、変更した各ビットは 16 進数の 1 桁にのみ影響します。これにより、各 16 進数を独自の 4 ビット数と考えることができます。10 進表現でビット単位で作業したい場合は、バイト全体をバイナリに変換してから再度戻す必要があります。

16 進数で MIDI を操作する際に留意すべき点がいくつかあります。

  • ビットが 16 進数でグループ化されているため、右側の 16 進数を見るだけで、ステータス バイトがどの MIDI チャンネルにアドレス指定されているかがわかります。
  • バイトの左桁が0x7かそれ以下の場合、それはデータ バイトであることがわかり、同様に、0x8かそれ以上で始まるバイトはステータス バイトであることがわかります。
  • 最大データ バイト値 127 は0x7F 16 進数です。

5. 応用例: ベートーベンの交響曲第 5 番

この例を最後に中断したとき、生のバイナリを個別のメッセージに分割したところです。それは次のように見えました:

これを扱いやすくするために、16 進数に変換してみましょう。ステータス バイトは赤、データ バイトは青のままにします。

現在わかっていることから、ステータス バイトの先頭にある 0x9 と 0x8 は、メッセージをそれぞれ「ノート オン」と「ノート オフ」として識別していることがわかります。バイトの右桁は、MIDI チャンネル 1 をターゲットにしていることを示しています⁶。

変換されたステータス バイトのパフォーマンスは次のようになります。

「ノート オン」および「ノート オフ」メッセージ タイプでは、最初のデータ バイトはピッチをエンコードし、2 番目のデータ バイトはベロシティをエンコードします。速度値は単なる数値です。ピッチを把握するには、MIDI ノート テーブルを参照する必要があります。「ノートオフ」ベロシティは使用されないことを忘れないでください。

翻訳を終えましょう:

それでおしまい!これらは、ベートーベンの第 5 番の最初の 4 つのノートをエンコードする変換された MIDI 命令です。ダムダムダムデュウム!

今知っていることを知っていれば、一般的な MIDI メッセージを手作業で作成してデコードすることができます。MIDI トランスフォーマーや論理エディターなど、より高度なツールが利用できるようになりました。ただし、学ぶべきことは常にあります。あなたが知識欲旺盛な方のために、付録 Vで MIDI をさらに学習するために使用できるいくつかのリソースを提供しています。

6. ボーナス レッスン: 実行中のステータス

物事を単純にするために、これまで言及していなかった便利なショートカット MIDI が提供されています。仕組みは次のとおりです。ステータス バイトを送信すると、前回と異なる状態になるまで別のステータス バイトを送信する必要はありません。最後に受信したステータス バイトは「オン」のままで、後続のすべてのデータ バイトを解釈するために使用されます。これは、実行中のステータスと呼ばれます。

次のバイト文字列を検討してください。

あなたが見ているのは、適用例で翻訳したベートーベンの第 5 番とまったく同じパフォーマンスですが、ほとんどすべてのステータス バイトが欠落しています。ただし、Running Status のおかげで、このパフォーマンスは 1 つ目と同じように有効です。ステータス バイトを送信する0x90と、それが実行中のステータスになり、後続のバイトのすべてのペアは、独自の「 」が前に付いているかのように処理できます0x90。

これにより、多くの繰り返されるステータス バイトを削除できるため、MIDI ストリームを大幅に短縮できます。コンピューターの速度が遅く、ボー レートがより制限されていた時代には、これは非常に役に立ちました。しかし、現在、コンピューターは非常に高速であるため、Running Status を使用してもパフォーマンスが大幅に向上するわけではありません。ただし、MIDI プログラミングを行っていることに気付いた場合は、ステータス バイトがあちこちで省略されているのを確認する準備をしておく必要があるため、それでも取り上げます。

速度ゼロの「ノートオン」は「ノートオフ」としてカウントされるため、実行ステータスを壊すことなくノートを開始および終了できることに注意してください。少なくとも、コントロール チェンジまたはメッセージを別のチャネルに送信する必要があるまでは。

  1. これは、MIDI Show Control と呼ばれる MIDI の拡張機能で行われます。
  2. "あなたが見たもの、それがあなたの手に入れたものだ"。
  3. MIDI チャンネル番号は 1 から始まり、ここでの表現は 0 から始まります。値 0 はチャンネル 1 を意味し、値 15 はチャンネル 16 を意味します。
  4. ベロシティは、音符がどれだけ「強く」打たれたかということと考えることができます。
  5. もう 1 つの一般的な表記法は、「78H」のように数字の後に大文字の「H」を付けることです。
  6. メッセージ内の数字がゼロであっても、数字は 0 から数え始め、チャンネルは 1 から数え始めるので、これはチャンネル 1 に対応することに注意してください。

付録 I: チャネル モード メッセージ

「チャンネル モード」メッセージは、 MIDI モードを変更することによってデバイス全体の動作を変更する特別なコマンドです。そうですね。

実際には、「チャネル モード」メッセージは、特定の機能をオンまたはオフにしたり、特定のコマンドを送信したりするためにのみ使用されます。MIDI が「モード」として列挙するものは、本質的にオムニとポリ トグルの異なる構成です。正直なところ、「モード」はこれらのコマンドを考えるのに非常に適切な方法だとは思いません。しかし、少なくともコマンドが何をするかを説明します。

チャネル モード メッセージには、独自のメッセージ タイプがありません。代わりに、最後の 8 つの連続するコントローラー番号 (CC の 120 ~ 127) が別の目的で使用されます。チャネル モード メッセージは次のとおりです。

デバイスがチャネル モード メッセージに応答するには、基本チャネルでメッセージを受信する必要があります。デバイスの基本チャネルは、チャネル モード メッセージが有効と見なされる唯一の MIDI チャネルです。多くのデバイスでは、このチャネルは構成可能です。このようにして、チャネル モード メッセージは、デイジー チェーン内の特定のデバイスをターゲットにすることができます。

以下は、各チャネル モード メッセージの簡単な要約です。付録 V には、さらなる学習のためのリソースが含まれています。

  • All Sound Off (“CC” 120): ノートディケイやリバーブ効果を含め、現在楽器が発しているすべてのサウンドをカットします。
  • Reset All Controllers (“CC” 121): すべての CC、スイッチ コントローラー、ピッチ ベンド、アフタータッチ エフェクトをデフォルトに設定します。各コントローラーが返す値は、コントローラーによって異なり、MIDI 仕様で定義されています。
  • Local Control (“CC” 122): シンセサイザーのキーボードを音源から切り離します。これにより、シンセサイザーを MIDI コントローラーとして使用しながら、同時にシーケンス処理を行うことができます。に設定すると0x00、ローカル コントロールがオフになり、0x7Fオンに戻ります。
  • オールノートオフ(「CC」123):「パニックボタン」。All Notes Off は、すべてのチャンネルのすべてのピッチに対して「ノートオフ」メッセージを送信することと同じです。詰まったメモを解決するのに便利です。ローカルでトリガーされたノートは影響を受けません。
  • オムニ モード オフ/オン (「CC」124、125): オムニ モードがオンの場合、ステータス バイトでどのチャネルが示されているかに関係なく、すべてのチャネルがすべてのインバウンド メッセージに応答します。
  • Mono Mode / Poly Mode (「CC's」126、127): 1 つまたは複数のボイスをモノフォニック動作またはポリフォニック動作に強制します。「モノモードオン」の値が に設定されている場合0x00、基本チャンネルとその上のすべてのチャンネルがモノモードに設定されます。他の値nの場合、チャネルnからn+m-1 はモノラル モードに設定されます ( mは 2 番目のデータ バイトの値です)。「ポリ モード オン」メッセージは、すべてのチャンネルをポリ モードに戻します。

付録 III: 標準 CC 割り当て

MIDI 仕様では、CC の標準化された使用法が定義されており、ここにコピーしました。3、9、14、15、20–31、85–90、および102–119を除くすべての CC 番号が定義されています。最も広くサポートされている CC は、Modulation ( 0x01)、Foot Controller ( 0x04)、Channel Volume ( 0x07)、Pan ( 0x0A)、Expression ( 0x0B)、および Sustain ( 0x40) です。

これらの CC について詳しく知りたい場合は、付録 Vのリソースを参照してください。

付録 IV: バンク変更メッセージ

最新のシンセサイザーは、単一のプログラム変更メッセージで対処できるよりもはるかに多くのプリセットを保存および呼び出すことができます。これを回避するために、メーカーはプログラムをバンクに分類することがよくあります。各バンクには最大 128 個のプリセットと、一意の 7 ビットまたは 14 ビット アドレスがあります。

別のバンクからパッチをリコールするには、最初に「バンク セレクト」メッセージとそのアドレスを送信する必要があります。その後、通常どおりプログラムチェンジメッセージを送信すると、ロードされたパッチが新しいバンクから送信されます。

お気づきかもしれませんが、これらは実際には CC の0と32に対する「コントロール チェンジ」メッセージです。7 ビット アドレスの場合、CC 0のみが使用されます。14 ビット アドレスの場合、CC 0 はMSB を表し、32 はLSB を表します。MSB と LSB についての入門書が必要な場合は、メインの記事のピッチ ベンドのセクションにあります。

デバイスが 7 ビット アドレスと 14 ビット アドレスのどちらを使用するかは任意です。デバイスと通信するときにどちらを使用するかについては、マニュアルを確認する必要があります。

付録 V: 追加リソース

  • MIDI アソシエーション: MIDI アソシエーションは、MIDI テクノロジに関する、または関連する情報の主要なレポジトリです。登録は無料です。登録が完了したら、ここから完全な MIDI 1.0 詳細仕様をダウンロードできます。
  • Bitwise Operation (ウィキペディア) : ウィキペディアは優れた主要リソースではないことはわかっていますが、この記事は言語に依存せず、広告がないため気に入っています。MSB と LSB を扱うときに役立つ算術ビット シフトとビットごとの OR について調べます。
  • MPEとは何ですか?: Seaboard 製品のような多次元コントローラーで使用される MIDI ポリフォニック表現に関する ROLI のサポート データベースの記事。MPE は、2018 年 1 月に MIDI 製造業者協会によって正式に採用されました。仕様へのダウンロード リンクは、こちらから入手できます。
  • MIDI モード(エレクトロニック ミュージック インタラクティブ v2、オレゴン大学): このページでは、4 つの標準 MIDI モードの概要をわかりやすく説明しています。これは、電子音楽に関するより長いオンライン コースの一部です。
  • MIDI CC List (Nick Fever) : 標準 CC のリストとより詳細な説明。Nick のリストを読んでもさらに詳しい情報が必要な場合は、ここからダウンロードできる The Complete MIDI 1.0 Detailed Specification を参照してください。
  • MIDI システム コモン メッセージ、MIDI システム リアルタイム メッセージ、およびMIDI システム エクスクルーシブ メッセージ(RecordingBlogs Wiki): 各種類のシステム メッセージの優れた紹介。
  • MIDI Registered Parameter Number (RecordingBlogs Wiki): CC の拡張と考えることができる Registered Parameter Numbers の概要。RPN を理解すると、NRPN (非登録パラメータ番号) にもアクセスできるようになります。