ArduinoMidi関係まとめリンク/インターフェース製作レポ/Esp32,32U4

esp32_midi

Serial/USB/BLE/Wifiをつなげる ESP32+32U4/MIDIインターフェース実験レポート

esp32_midi

ArduinoのMIDI関連ライブラリが充実してきましたのでESP32と32U4ボードをSPI通信でつなげてみました。

SerialMidi/USBMidi(32u4)<-SPI->(ESP32)BLEmidi/rtpMIDI

両ボードに対のHardSPIとSoftSPIを組んでサークルバッファで受けてそれぞれのライブラリにパースしています。

ProMicroはSSpinがLEDになっています。写真でもうっすら見えますがそこに直接接続してもうまくいきました。

ProMicroはDean Camera様のHidBootloaderで書き換えています。

MidiOxでは、どれか1つ、例えばSerialMidiにコードを送るとほかの3つのディバイスからコードが帰ってきます。

MIDIファイルををUSBMIDIに送りSerialMidiにPitchChangeを送ると合成されたデータがBLEMIDIとrtpMIDIからでてきます。

最初すべてにループバックコードかいて試したらループが止まらなくなりクラッシュしました。入れるならSerialだけにしましょう。

3.3Vの32U4ボードにすれば5V/3.3V変換ICが省けていいかもしれません。

BleでMTCコードの出力は処理速度が追い付かずクラッシュしたので1/8のコードに間引きしました。MIDIクロックはレイテンシーはありますがクラッシュはしませんでした。

Bleはレイテンシーを確かに感じますがMidiOxのKeyboradで5和音以上いけました。

BLEドライバーは再起動後自動認識されますがそれでは動かず、一旦OFFにして再度認識させる必要があるようです。

rtpMIDIはレイテンシーもあまりなくスムーズです。

SysExのアウトはBleで4000byte、rtp16000byte(要libraryMod)位までいけした。USBとシリアルはライブラリのおかげで結構長いSYSEXでも大丈夫なようです。

この4000byteというのはスタックメモリサイズかなと思いDualCoreを試してみましたが、うまくいかず今後の課題としました。

esp32_midi

自前のWebMidiApiでも認識できましたがBLEとUSBはドライバの仕様で1つのアプリでしか使えないようです。LoopMidiでアプリ間は回すことはできるでしょう。ちなみにUM-1はROLANDのUSBMIDIインターフェースで32U4のSerialMidiがここにつながっています。


Serial Midi ~Uno 32U4

AMEI MIDI企画委員会

Midi規格が網羅されています。基本はMIDI 1.0規格書はMIDIコードについて網羅されています。

またハードウェアについてはMIDI 1.0 電気的仕様改訂(日本語版)は必読、3.3VのMidi回路も規格化されています


dkadrios/arduino_midi_library

dkadriosさんArduino Midi Library Mod版をお勧めします。LongSysExが扱えます。


Arduino MIDI Library の使い方

Arduino Midi Library の使い方を詳しくまとめてくださっています。


USB Midi ~ 32U4

Teensyduino

Teensy2.0(32U4)でOSのMIDIドライバを使いUSBMIDIインターフェース作成可能です。


arduino-librariesMIDIUSB

LeonardoでOSのMIDIドライバを使いUSBMIDIインターフェース作成可能です。


BLE Midi ~ ESP32

MIDIオーバー・ブルートゥースLE(英語版)

BLE- Midiの規格書です。ややこしい仕様になってますので必読です。


MIDI over BLE chegewaraさん

こちらのコードとkorgのBle Midi driverでWINDOWS10で動作しました。


Spark Fan MIDI BLE Tutorial

ESP32ではないのですがBLEmidiのコードがありBLEデータからMIDIにパースするとき参考にしました


RtpMidi AppleMidi ~ ESP32

AppleMidi 規格書

AppleMidiのdriver規格書です。


RFC4695 RTP Payload Format for MIDI(日本語)_PENTAN様

AppleMidiのコード規格書です。こちらもややこしい仕様でして必読です。


Tobias Erichsen rtpMidi

WindowsでWIFIでMidiがつかえるドライバです。


lathoub/Arduino-AppleMIDI-Library

rtpMIDIとあわせてWIFIでMidiがつかえるESP32のライブラリです。もちろんAppleMIDIでも使えます。


MIDI回路 | フォトカプラ

JO-MIDI-FM様

汎用 4 ピンフォトカプラを使った MIDI 入力  秋月、売切れの高速フォトカプラPC900の代替案を提示してくれています。凡庸フォトカプラ代替でもばっちり動きます。


logo