MIDI2.0を始めよう
MIDI2.0は2020年に誕生した電子楽器のための通信規格です。
従来のMIDIではできなかった高解像度データの送受信や、ノート毎に音色をコントロールする機能などが新たに追加されています。
MIDI2.0をサポートした製品は現状あまりなく、実際にMIDI2.0の新機能を体験できる機会はまだ多くありませんが、
まずはMIDI2.0のデータログを見て、新機能を確認することはできます。
このページでは、WindowsとMacの両環境でMIDI2.0の送受信データログを確認する方法を紹介します。
おしらせ
本題に入る前に少し宣伝させてください。
このたび、MIDI2USB CONVERTER 開発ボードをスイッチサイエンス様より販売させていただくことになりました。
このボードを使うと、MIDI1.0デバイスを簡単にMIDI2.0へアップコンバートすることができます。
MIDI2.0を使ったソフトウェア開発にぜひご利用ください。
本題
MIDI1.0のデータログを見てみる
まずは従来のMIDI1.0のデータログを確認する方法から説明します。
MIDI1.0のログを確認するツールはたくさんありますが、ここではWindows環境で使えるMIDI-OXというツールを紹介します。
使い方は簡単です。
こちらのサイトからダウンロードしてインストールした後、
MIDI-OXを起動してOptions -> MIDI Decisesを開き、ログを確認したいデバイスを選択します。
MIDI2USB CONVERTER 開発ボードを利用する場合は、このようにPCと接続してください。
また、接続後にMIDI-OXを開かないとデバイスが表示されないのでご注意ください。
MIDIキーボードを弾くとログが表示されます。
NoteOnは鍵盤を押したというメッセージ、NoteOffは鍵盤を離したというメッセージです。
実際に送信されているMIDIデータはこの3バイトです。
それぞれの意味はこのようになります。
データ(Hex) | 内容 |
---|---|
0x90 | NoteOn(鍵盤を押した) |
0x3C | 中央のドの鍵 |
0x50 | ベロシティ(鍵盤を弾く強さ) |
つまりは「鍵盤の中央ドを強さ0x50(0-127段階のうち80の強さ)で押した」というメッセージをこのログから確認することができます。
また、MIDIデバイスによってはこのようにタイミングクロック(F8)と呼ばれるテンポ(演奏曲の速さ)情報が大量に送られる場合があります。
これではMIDIメッセージを確認するときにデータが埋もれてしまうので、
Options -> MIDI Filter...の設定からフィルタを掛けるとログから見えなくなります。
Mac環境では、MIDI-OXは動作しませんが、
代わりにMIDI Monitorというツールが無料で利用可能です。
WinodwsでMIDI2.0のデータログを見てみる
!!!注意!!!
- 2025年10月1日現在、WindowsはMIDI2.0に正式対応していません
- WindowsでMIDI2.0の動作確認を行うためにはWindows Insider Programに登録してプレビュー版のWindows11をインストールする必要があります
- プレビュー版をインストールすると 正式版Winodwsに戻せなくなる 可能性があります
- この記事を試すときは 必ず動作テスト専用のPC をご用意してください
ここでは Windows11 Insider Preview(Canary 27950+) がインストールされた前提で説明します。
WinodwsではWinodws MIDI Serviceというツールを使ってMIDI2.0デバイスの動作を確認できます。
こちらのサイトからダウンロードしてインストールするとアプリからMIDI Serviceを開くことができます。
MIDI2USB CONVERTER開発ボードをMIDI2.0モードで起動して接続すると、このようにMIDI Devices and EndpointからMIDI2.0デバイスが表示されます。
デバイスの Monitor を開き、MIDIキーボードからMIDIを送信するとこのようなログが見えます。
これがMIDI2.0のNoteOnメッセージです。
データの意味はこのようになります。
- 前半(40903C00)
データ(Hex) | 内容 | 備考 |
---|---|---|
0x40 | MIDI2.0専用メッセージ | MIDI2.0新機能 |
0x90 | NoteOn(鍵盤を押した) | ---- |
0x3C | 中央のドの鍵 | ---- |
0x00 | Attribute Type(0x00はAttributeなし) | MIDI2.0新機能 |
- 後半(80000000)
データ(Hex) | 内容 | 備考 |
---|---|---|
0x8000 | ベロシティ(鍵盤を弾く強さ) | MIDI2.0新機能 |
0x0000 | Attribute Data(Attributeなし) | MIDI2.0新機能 |
前半はあまりMIDI1.0と変わりはないですが、
ベロシティのデータが2バイト(16bit)に拡張されている点が注目ポイントです。
従来のMIDI1.0では7bitだったので0~127段階でしか表現できませんでしたが、
MIDI2.0では16bitに拡張されているため、0~65535段階で鍵盤を弾く強さを細かく変えることができます。
また、AttributeはMIDI2.0から追加された新機能です。
この機能を使うと、NoteOn/Offメッセージにベロシティ以外の情報を追加することができます。
(しかし、まだこの機能を使ったアプリケーションは無さそうです)
Monitor機能はPowershellからも呼び出すことができて、
こちらのほうが表示が見やすくておすすめです。
Powershellから下記コマンドを実行するとMonitor機能が使えます。
midi endpoint monitor --verbose
エンドポイントを指定する表示が出るので、MIDI2.0デバイスを選択します。
表示内容が拡張されて、MIDI 2.0 Note On という表記を確認することができます。
MacでMIDI2.0のデータログを見てみる
MacでMIDI2.0を扱うためには、macOS 14 以上が必要です。
一部のDAWでもmacOS上でMIDI2.0を扱うことはできますが、
製品によってデバイスとの相性問題があり、うまく動作しないことがあります。
ここでは無料で使える開発者向けのMIDI2.0ツールを使ってデータログを確認する方法を紹介します。
使用するツールはMIDI2.0Workbenchです。
ただしバイナリ配布が無いため、自力でビルドする必要があります。
まず、Xcode コマンドラインツールが必要です。インストールされていない場合は下記コマンドからインストールしてください。
xcode-select --install
MIDI2.0Workbenchは Node.js 16系 を推奨しているのでnvm を使って管理します。
homebrewがインストールされている場合は下記のコマンドからインストールできます。
brew install nvm
mkdir ~/.nvm
.zshrc(Mac のデフォルトシェル設定ファイル)に以下を追記:
export NVM_DIR="$HOME/.nvm"
[ -s "$(brew --prefix nvm)/nvm.sh" ] && \. "$(brew --prefix nvm)/nvm.sh"
反映(またはターミナルを再起動)
source ~/.zshrc
次に、Node.js 16をインストールします。
nvm install 16
nvm use 16
nvm alias default 16 # デフォルトを16に固定
さらにYarnをインストールします。
brew install yarn
gitリポジトリをクローンしてyarnからMIDI2.0Workbenchを実行します。
git clone https://github.com/midi2-dev/MIDI2.0Workbench.git
cd MIDI2.0Workbench
yarn # 依存関係をインストール
yarn run build
yarn run start
MIDI2.0Workbenchを実行すると接続されているMIDIデバイスの一覧が表示されます。
緑で表示されたMIDI2.0デバイス(MIDI2USB Converter)をクリックするとデバイスの詳細を確認できます。
さらに、Debug -> UMPからMIDI2.0のデータログを確認できます。
最後に
記事を読んでいただきありがとうございました。
MIDI2.0のログを表示するだけでも、
険しい道のりであることがお判りいただけたかと思います。
MIDI2.0はまだまだ発展途上です。今回はオープンソースのツールをたくさん紹介しましたが、もしこの記事の内容を実践して、新たな不具合を見つけたら、ぜひGitHub Issuesを投げてほしいです。
オープンソースの力でMIDI2.0の開発が加速することを期待してます。
詳細資料