MIDI 2.0

目次
  • MIDI 2.0とは

    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とは?

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 データ フォーマット(※2) は、Discoveryメカニズムに加えて、下記のいずれか1つ以上の機能を実装していること。

(B)のUMPデータフォーマットの方がわかりやすいと思います。 冒頭の「UMP データ フォーマット(※2) は、Discoveryメカニズムに加えて」(*1)というところは横に置いておきます。 「下記のいずれか1つ以上の機能を実装していること。」、

  1. Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol規格で定義されているMIDI 2.0 チャンネル・ボイス・メッセージ。
  2. Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol規格で定義されているJitter Reduction Timestamp。
  3. Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol規格で定義されているSystem Exclusive 8。
  4. Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol規格で定義されているMixed Data Set。

その中でも 「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)とは

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で扱えるMIDIメッセージ

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とMIDI1.0のメッセージ比較

それではMIDI 2.0 Channel Voice Messages(MT=4)でどのように拡張されているのか、仕様書[M2-104-UM UMP and MIDI 2.0 Protocol バージョン1.1 仕様」を見てみます。 この仕様書は英語ですし、長いので、図だけ見てみます。

1.ノートオフ

MIDI2.0ではベロシティが16ビットに拡張、アトリビュートという新しい情報(8ビットのタイプと16ビットの値)が追加されています。



2.ノートオン

ノートオフと同様、MIDI2.0ではベロシティが16ビットに拡張、アトリビュートという新しい情報(8ビットのタイプと16ビットの値)が追加されています。



3.ポリプレッシャー

ポリプレッシャーは単純にプレッシャー値が32ビットに拡張されています。



4.コントロールチェンジ

コントロールチェンジも単純にコントロール値が32ビットに拡張されています。



5.プログラムチェンジ

MIDI1.0のプログラムチェンジは2つのコントロールチェンジを用いてバンクを設定します。 バンクセレクトLSB/MSBと名前が付いています。 MIDI2.0ではこの2つのバンクセレクトを1つのメッセージに取り込んでいます。選択できるプログラムの数は増えてはいません。



6.チャンネルプレッシャー

チャンネルプレッシャーもポリプレッシャー同様、単純にプレッシャー値が32ビットに拡張されています。



7.ピッチベンド

MIDI1.0のピッチベンドの精度は14ビット、MIDI2.0は32ビットに拡張されています。



MIDI 2.0対応製品

2024年12月時点でのMIDI2.0に対応した製品

カタログスペックからのみの読み解きです。

  • Roland A-88MKII

    ニュースリリースによると 「『A-88MKII』をMIDI 2.0対応にアップデートすることで、鍵盤ベロシティーや、パネル上のノブの操作の分解能が格段に高まり、…」 との記載がありますので、MIDI 2.0 チャンネル・ボイス・メッセージに対応しています。

  • Yamaha MONTAGE M v2.0/v3.0 /MODX M

    こちらの解説のページの一番下によると、 「MONTAGE Mは下記のパラメーターがMIDI 2.0に対応します。物理的なコントローラー類は10 bits (1,024 steps)で動作します。」 とのことですので、こちらもMIDI 2.0 チャンネル・ボイス・メッセージに対応しています。

  • Korg keystage

    「MIDI2.0のプロパティ・エクスチェンジを搭載した…」とのことですので、 上の2台とは違って、 「5. MIDI 2.0 最小互換性要件」のAの項目にある「MIDI-CI Property ExchangeメッセージによってPropertyデータのやりとりを行う。」 に対応しています。

  • Cubase pro 13以降 (MAC版のみ)

    MIDI 2.0 チャンネル・ボイス・メッセージを録音、再生可能と思われる。(すべてのメッセージで可能なのか未確認)

  • Logic pro

    MIDI 2.0 チャンネル・ボイス・メッセージを録音、再生可能と思われる。(すべてのメッセージで可能なのか未確認)



参考リンク