MIDI 2.0は、 AMEI(音楽電子事業協会)のページによると、「2020年02月22日AMEI/MMAはMIDI 2.0規格書に署名しMIDI 2.0規格が誕生しました。」 と書かれています。それでは、MIDI 2.0の内容は、というと… わかる範囲で記載しました。
MIDI 2.0 on Linuxのページ を見ながら、MIDI 2.0に対応したデバイスをRaspberry Pi Zero 2W(以下Zero2Wと略します)上に構築してみます。 Zero2Wを選択した理由はUbuntuが動作すること、OTGモードでUSB-MIDIのデバイス としてPCから認識できるように設定できることにあります。
Raspberry Pi Zero 2Wで作成したMIDI 2.0デバイスを使って、 MIDI 2.0プロトコルのMIDIメッセージを送信し、 Cubase 14 Pro(体験版)でレコーディングしてみます。 MIDI 2.0で拡張されたメッセージがどの程度Cubaseで録音できるのかを確認します。 パソコンとZero2WはUSB-MIDI 2.0で接続します。2024年暮れの現在、USB-MIDI 2.0はMACとLinuxで対応しているようです。
Cubase 14 Pro(体験版) で録音したデータを再生し、Zero2Wで受信します。 Cubase 14 ProがどのようにMIDI 2.0プロトコルを持っているのかを確認します。
MIDI 2.0プロトコルでは コントロールチェンジメッセージのコントロール値が 32ビット精度に拡張されています。MIDI1.0では7bitの精度でした。
MIDI 2.0プロトコルでは ポリフォニックキープレッシャー、チャンネルプレッシャのプレッシャー値が 32ビット精度に拡張されています。両者ともMIDI1.0では7bitの精度でした。
MIDI 2.0のプログラムチェンジメッセージは3つの情報、 プロフラムナンバー、バンク(MSB)、バンク(LSB)の組み合わせになっています。 このメッセージをCubase 14が受信すると3つのメッセージに分解されます。
MIDI 2.0プロトコルでは ピッチベンドの値が32ビット精度に拡張されています。 MIDI1.0では14bitの精度でした。
レジスタードコントローラ、アサイナブルコントローラは MIDI2.0になって新しく追加されたメッセージです。
MIDI 2.0のテストで使ったRaspberry Pi 2Wの環境 をGithubに置きました。
MIDI 2.0は、 AMEI(音楽電子事業協会) のページによると、「2020年02月22日AMEI/MMAはMIDI2.0規格書に署名しMIDI2.0規格が誕生しました。」 と書かれています。それでは、MIDI2.0の内容は、というと AMEI(音楽電子事業協会) のページに次のように記載されています。
「MIDI 2.0は、MIDI1.0との互換性を保ちつつ、大幅に拡張された新たなMIDIメッセージによって 音楽の表現力と利便性を高めます。」
それでは何が大幅に拡張されたのか?同じページの続き 「5. MIDI 2.0 最小互換性要件」には、MIDI2.0というのは、(A) か(B)かのどちらか(あるいは両方)である必要があると書かれています。
A. MIDI-CI(※1) として、MIDI-CI Discovery機能に加えて、下記のいずれか1つ以上の機能を実装していること。(B)のUMPデータフォーマットの方がわかりやすいと思います。 冒頭の「UMP データ フォーマット(※2) は、Discoveryメカニズムに加えて」(*1)というところは横に置いておきます。 「下記のいずれか1つ以上の機能を実装していること。」、
その中でも 「1. Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol規格で定義されているMIDI 2.0 チャンネル・ボイス・メッセージ」 を見てみます。 この一行の中で、チャンネル・ボイス・メッセージとは、ノートオン、ノートオフ、コントロールチェンジといったMIDIのメッセージのことです。 これらのメッセージが、Universal MIDI Packet (UMP) Formatに書かれている、MIDI2.0プロトコルを 使うことで拡張できるという意味になります。
(*1)「Discoveryメカニズム」については、以降で説明しているRaspverri Pi Zero 2Wの試作ではALSAがやってくれています。
UMP(Universal MIDI Packet)は、MIDIのメッセージをやり取りするための共通のデータ形式です。
MIDI 1.0では、MIDIメッセージは「バイト列」という形式で送られていました。MIDI 2.0では、より多くの情報を扱えるようになり、UMPというパケット形式が使われます。
UMPの大きな特徴は、MIDI 1.0のメッセージとMIDI 2.0のメッセージの両方を、同じ共通の形式で扱えることです。つまり、UMPはMIDI 1.0とMIDI 2.0をつなぐ、共通の「入れ物」のような役割を持っています。
UMPは32ビットを基本単位として構成され、メッセージの種類によって32、64、96、128ビットのパケットになります。パケットの先頭にはMessage Type(メッセージタイ/以降MTと略して書きます)などの情報が含まれており、受信側はその情報から、後に続くデータがどのようなMIDIメッセージなのかを判断できます。
また、UMPは特定の通信方式だけに限定されたものではありません。USBやネットワークなど、MIDIで利用されるさまざまな通信方式で利用できるように設計されています。
簡単に言えば、UMPは「MIDI 1.0とMIDI 2.0のメッセージを、コンピューターが扱いやすい共通のパケット形式にまとめる仕組み」です。
UMP(Universal MIDI Packet)は、MIDI 1.0とMIDI 2.0のさまざまなMIDIメッセージを共通の形式で扱うことができます。 UMPの先頭には Message Type(MT) という4ビットのフィールドがあり、これによって「これはMIDI 1.0 Channel Voiceなのか、 MIDI 2.0 Channel Voiceなのか、SysExなのか……」を判断できます。 先頭4ビットがMT、この例では、グループの番号、16ビットのメッセージが入っています。
UMPで扱えるメッセージには、次のようなものがあります。
| MT | メッセージ | ビット数 |
|---|---|---|
| 1 | System Common / System Real Time | 32 |
| MIDIシステム全体に関係する情報や、タイミングなどに関するメッセージ | ||
![]() |
||
| 2 | MIDI 1.0 Channel Voice Messages | 32 |
| ノートオン、ノートオフ、コントロールチェンジなど、MIDI 1.0で使われてきた基本的な演奏情報 | ||
![]() |
||
| 3 | System Exclusive(SysEx) | 64 |
| MIDI機器固有の情報や、大きなデータを扱うためのメッセージ | ||
![]() |
||
| 4 | MIDI 2.0 Channel Voice Messages | 64 |
| MIDI 2.0で拡張された演奏情報です。MIDI 1.0よりも高い分解能で音の強さやコントロール情報 | ||
![]() |
||
| 5 | System Exclusive(SysEx8)/Mixed Data Set | 128 |
| システムエクスクルーシブよりも大きなデータ転送に使用、SysEx8では8ビットのデータ | ||
| D | Flex Data | 128 |
| 歌詞やテキストなど、演奏情報以外のさまざまな情報を扱うためのメッセージ | ||
| F | UMP Stream | 128 |
| MIDI EndpointやFunction Blockの情報交換など、MIDIシステムそのものを管理するためのメッセージ | ||
MT=6,7,8,9,A,B,C は未定義
それではMIDI 2.0 Channel Voice Messages(MT=4)でどのように拡張されているのか、仕様書[M2-104-UM UMP and MIDI 2.0 Protocol バージョン1.1 仕様」を見てみます。 この仕様書は英語ですし、長いので、図だけ見てみます。
MIDI2.0ではベロシティが16ビットに拡張、アトリビュートという新しい情報(8ビットのタイプと16ビットの値)が追加されています。
ノートオフと同様、MIDI2.0ではベロシティが16ビットに拡張、アトリビュートという新しい情報(8ビットのタイプと16ビットの値)が追加されています。
ポリプレッシャーは単純にプレッシャー値が32ビットに拡張されています。
コントロールチェンジも単純にコントロール値が32ビットに拡張されています。
MIDI1.0のプログラムチェンジは2つのコントロールチェンジを用いてバンクを設定します。 バンクセレクトLSB/MSBと名前が付いています。 MIDI2.0ではこの2つのバンクセレクトを1つのメッセージに取り込んでいます。選択できるプログラムの数は増えてはいません。
チャンネルプレッシャーもポリプレッシャー同様、単純にプレッシャー値が32ビットに拡張されています。
MIDI1.0のピッチベンドの精度は14ビット、MIDI2.0は32ビットに拡張されています。
2024年12月時点でのMIDI2.0に対応した製品
カタログスペックからのみの読み解きです。
ニュースリリースによると 「『A-88MKII』をMIDI 2.0対応にアップデートすることで、鍵盤ベロシティーや、パネル上のノブの操作の分解能が格段に高まり、…」 との記載がありますので、MIDI 2.0 チャンネル・ボイス・メッセージに対応しています。
こちらの解説のページの一番下によると、 「MONTAGE Mは下記のパラメーターがMIDI 2.0に対応します。物理的なコントローラー類は10 bits (1,024 steps)で動作します。」 とのことですので、こちらもMIDI 2.0 チャンネル・ボイス・メッセージに対応しています。
「MIDI2.0のプロパティ・エクスチェンジを搭載した…」とのことですので、 上の2台とは違って、 「5. MIDI 2.0 最小互換性要件」のAの項目にある「MIDI-CI Property ExchangeメッセージによってPropertyデータのやりとりを行う。」 に対応しています。
MIDI 2.0 チャンネル・ボイス・メッセージを録音、再生可能と思われる。(すべてのメッセージで可能なのか未確認)
MIDI 2.0 チャンネル・ボイス・メッセージを録音、再生可能と思われる。(すべてのメッセージで可能なのか未確認)