
June.10,2026
nodeのモジュールnoble/blenoを使って、Bluetooth MIDI でiPhoneとPCを接続する実験です。 Windows 10の時代の記事です。Windows 10ではBluetoothが一般的でなく苦労した覚えがあります。
iPhoneもMACもBluetooth MIDIをサポートしています。Bluetooth すなわち無線で、 iPhoneの音源アプリをMACから鳴らしたり、iPhoneをコントローラとしてMACの音源を鳴らすことができます。 一番基本的な使い方かもしれません。
RedBearLab.comのBluetooth 4.0 Low Energy BLEシールド v2.1というArduino用のボードを持っています。 8年程前に買ったモノと思われます。このボードを使って、ArduinoとMACをBluetooth MIDIでつないで見たいと思います。 特殊なBluetooth 4.0のシールドを使った記事です。
RedBearLab.comのBluetooth 4.0 Low Energy BLEシールド v2.1 をArduinoと接続し、 Bluetoorh MIDI機器として動作させます。これをWindows 11 から認識させます。 こちらもいずれESP32 BLE MIDIで作りなおしたいと思います。
Bluetooth MIDIと普通の5pin DIN MIDIの変換器を作ります。 ArduinoはBluetooth MIDIを受信し、 SerialポートからMIDIを5pin DINに出力します。 また、5pin DINから受け取ったMIDIはArdhinoのSerialポートで受け取り、 Bluetooth MIDIに変換します。 こちらの記事も、Bluetooth 4.0 Low Energy BLEシールド v2.1を使っています。 そのうち、ESP32 BLE MIDIで作りなおしたいと思います。
MacがBluetooh MIDIでSystem Exclusiveを送信する際、どのようなフォーマットで送信するかを確認します。 Arduino のプログラムは以下の通りです。Bluetoothを受け取って、シリアルに書き出しています。 System ExclusiveをBluetooh MIDIで送信するアルゴリズムを紹介しています。
ESP32-S3はBluetoothに対応してみます。ライブラリを見てみるとそのものずばりのESP32 BLE MIDIがありましたのでインストールしました。

Arduino ESP32-S3はUSB MIDIに対応しています。インストールすることでMIDIデバイスとしてPCとメッセージをやりとりすることができます。

Lubuntuは超軽量なUbuntuの公式派生版で、 古いPCや低スペックなPCでも快適に動作するよう設計されています。 次のような10年以上前のノートPCにも(快適かどうかは別として)インストールすることができます。 このPCにArduino IDEをインストールした時の記録です。
MIDI2.0の簡単な説明と、Raspberry Pi Zero 2Wでの試作について記載しています。 Raspberry Pi Zero 2WをMIDI 2.0のデバイスに設定して実験した時のソースファイルなどを Githubに置きました。
RWorld Wide Pianoを作成する際、AWS IoTを使いました。使い方を覚えて置くために記録として残します。 World Wide Piano(WW Pianoと略します)はWebがMQTTのパブりシャーであり、サブスクライバーです。 AWS がブローカーです。 WW Pianoのいずれかのパッドをクリックすると、mqttをブローカーへ投げます。ブローカーは接続されている サブスクライバー(WW Piano)にmqttを投げます。これによって、接続されているWW Pianoが同時に鳴ります。

Raspberry Pi Picoの開発環境を、Intel MacからApple siliconに移植したところ、動作しなくなりました。 Toolchainをsilicon用に差し替えました。
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プロトコルを持っているのかを確認します。
こちらのページにお越しいただきありがとうございます。このページは「Web MIDI API実験室」という名前のページでした。しかしながら、Web MIDI API以外のページが増えてきましたので名前を変更しました。それでもMIDIを切り口に技術的にトライしているページです。PCやMAC、ArduinoやRaspberry PiといったシングルボードコンピュータでのMIDIのつなぎ方やウェッブブラウザでのAudioの使い方を説明します。また、自作したMIDI, Audioのウェッブアプリケーションを紹介しています。電子回路はあまり得意ではありません。ですので、作成した回路はたまたま動作しているだけかもしれないことにご注意下さい。
ScratchでWeb MIDI
2022/12/18

MIDIはMusical Instrument Digital Interfaceの略称です。直訳すれば、楽器のデジタルインターフェースということになります。MIDIの誕生は1983年、任天堂「ファミリーコンピュータ」と同じ年です。この年の暮れには、シンセサイザDX7が発売になっています。Windows 95のはるか以前のことです。
もの凄くざっくりと書くならば、MIDIは電子楽器と電子楽器をつなぐデータの形(フォーマット)と通信経路の規格です。2つの楽器をMIDIで接続すると、一方の楽器を弾くと、もう一方の楽器が鳴ります。ちょっと前のコンサートでは舞台のちょっと奥にシンセサイザーを10台近く周りに並べて演奏するキーボーディストを見ることができました。大概の場合、キーボーディストはすべてのキーボードの鍵盤を弾くわけではありません。いずれかのキーボードがメインのキーボードになっていて、その他のキーボードはMIDIで接続されています。メインのキーボードを弾くとその他のキーボードの音が鳴るように設定されています。曲に合わせて、いろいろなキーボードの音色を使いたいということです。
その後MIDIはコンピュータのインターフェースとして取り込まれ、コンピュータから楽器を鳴らすことが一般的になりました。また、カラオケのデータとしても利用されるようになります。今日現在でも多くのポピュラー音楽の制作現場ではMIDIが使われています。MIDIの歴史は、2019年国立科学博物館の「かはく技術史大系(技術の系統化調査報告書)」I. 映像・情報・コンピュータ関連の一つとして調査された、「MIDI に関する技術系統化調査」井土秀樹著の中で詳しく書かれています。
さて、MIDIは楽器と楽器、コンピュータと楽器をつなぐインターフェースなのですが、私は楽器や音楽に関係無く使ってもとっても便利なインターフェースだと思っています。 コンピュータはPCでもMACでも、MIDIは簡単に扱えるようなドライバーやアプリケーションを持っています。また、iPhoneでもAndroidでもMIDIは扱えますし、ArdinoやRaspberry PiといったシングルボードコンピュータでもMIDIを扱うことができます。ですので、便利に何かと何かをつないでデータをやり取りするインターフェースとしてMIDIが使えるのでは無いかと思っています。
ここ数年では、MIDIやAudioを扱うWeb API(Web MIDI API, Web Audio API)が策定され、わりと簡単にウェッブアプリケーションを作成することができるようになりました。ウェッブアプリケーションはEdgeやChromeといったブラウザで動作します。アプリケーションをインストールしなくて使ええるのは良いですね。
このページでは、MIDIをつなぐ、つなぎ方を紹介するとともに、Web APIを使って製作したMIDI, オーディオのアプリケーションを紹介したいと思います。
2020年9月19日 MikataHara