MIDI モニター

Web MIDIアプリケーション



アプリケーション はこちらをクリックして下さい。



MIDI Send And Receive

このアプリケーションは、MIDIデータをSystem Exclusiveを含めて受信、送信を行うことができます。



アプリケーション はこちらをクリックして下さい。



更新情報

Raspberry Pi Pico PWM

Raspberry Pi PicoのPWMの使い方を説明します。Picoは16bitのカウンターでPWM波形を生成します。 カウンターはPicoのクロック周期(8 nanosecond, nsecと記述します。)で1づつ増加します。 16bitなので、カウンターの値が65536に達するとゼロに戻ります。 このでできるノコギリ波の周期は8nsec x 65536 = 524,288 nsecとなり、周波数では約1,907Hzとなります。


Pico PWMで440Hzを設定

サンプルプログラムをGuithubにおきました。MIDIを受信して発信周波数が変化します。
pwm_midi

サンプルプログラムをGuithubにおきました。 受け取ったMIDIデータをprintします。シリアルをモニターすることで受信したMIDIを見ることができます。 解説は こちらに記載しています。

midi_thr_print

4系統のPWMで演奏する

PicoのPWMの発信器を4系統を使って音源を作ります。USB-MIDIでPCとPico繋いで、PCから音を鳴らします。

回路図を追加しました。



Pico Project Geneerator

picoのコンパイルは通常、cmake -> make を使います。cmake を行うにはCMakeLists.txt を作成するにはこつが必要です。Pico Project Generator は PicoのCMakeList.txtを含むプロジェクトのテンプレートを作成します。



USB MIDIのmidiEventPacket_t

ArduinoのUSB-MIDIのライブラリMIDIUSBでは、MIDIの送受信のための構造体が MIDIMIDIUSB_Defs.hに定義されています。byte1, byte2, byte3 はMIDIのイベントがそのまま 入ります。それではheaderには何が入っているのか調べてみました。


Raspberry Pi ZERO OTG

Raspberry Pi ZeroをOTGモードを使って、PCからMIDIデバイスとして認識できるように設定します。 Raspberry Pi Zero2、Ubuntu23.10の場合を追記しました。


USB-MIDI変換ケーブル

各種USB-MIDI変換ケーブルについてリンク切を修正しました。

ALSA MIDIプログラム - MIDI 受信(パーサー)

パーサーはMIDIを受信した時、その内容(イベント)を分析してそれぞれの処理を選びたい時に使う機能です。


Raspberry PiのOSインストール

Raspberry Pi に OSをRaspberry Pi Imager を使ってインストールします。 Raspberry Pi Imagerはhttps://www.raspberrypi.com/software/ からダウンロードできます。 下のイメージはRaspberry Pi Imager使ってインストールする手順を示しています。 「デバイスを選択」「OSを選択」「ストレージを選択」設定を編集する「書き込む」の順です。


このページについて

こちらのページにお越しいただきありがとうございます。このページは「Web MIDI API実験室」という名前のページでした。しかしながら、Web MIDI API以外のページが増えてきましたので名前を変更しました。それでもMIDIを切り口に技術的にトライしているページです。PCやMAC、ArduinoやRaspberry PiといったシングルボードコンピュータでのMIDIのつなぎ方やウェッブブラウザでのAudioの使い方を説明します。また、自作したMIDI, Audioのウェッブアプリケーションを紹介しています。電子回路はあまり得意ではありません。ですので、作成した回路はたまたま動作しているだけかもしれないことにご注意下さい。


ScratchでWeb MIDI

2022/12/18




MIDIについて

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