top of page
  • GitHub
  • Qiitan
  • icon
  • Facebook
  • Instagram
  • Twitter-circle
  • Linkedin
  • Youtube
  • base_logo_vertical_black

USB-MIDIに挑戦

25/5/28

執筆者:

Hiroshi Okawa

まずはMIDIインターフェースを作る

昔から挑戦したいと思っていたUSB接続のMIDI機器開発。


USBのCommunication Device ClassはSTマイクロのSTM32シリーズで開発実績がありますが、USB-MIDIってどうするんだろう??


ん〜年間そう思いながら中々踏み出せなかったのですが、会社勤めを辞めて時間ができたことと、今後の開発実績も作らなきゃというわずかな焦り(笑)から、本格的に調査を始めました。


USB-MIDIでの決まりはUSB-IFがUSB Device Class Definition for MIDI Devicesというものを出しています。

UARTベースのMIDIとは違い、MIDIパケットとしてデータのやり取りをするので、システム・エクスクルーシブ以外の標準的なデータ処理はかなり楽です。


USBのベースとしてはHIDクラスということもわかり、STマイクロがSTM32用MIDIドライバのソースコードを配布していることもわかりました!


ここまでわかれば、あとは製品のアイデアです。

まず思いつくのは、MIDIインターフェースです。

市販で安いものはたくさんありますが、そういうは大抵USBでMIDIを扱うというのが主流です。


今回やってみたいと思ったのは、メルカリで手に入れたローランドのSC-88Proというハードウェア音源を

  1. Macの自作Standard MIDI File再生アプリで再生する

  2. iOSの自作Standard MIDI File再生アプリで再生する

  3. FANTOMでもSC-88Proの音を鳴らしたい

というもの。

SC-88ProはMIDI端子と古のRS232/422を備えています。

1を実現するにはUSB-MIDIインターフェースが必要です。

2を実現するにはBluetooth-MIDIインターフェースが必要です。

3はMIDIケーブルを繋げばいいだけです。


1と2は市販品があります。

でも、これらを同時に実現するには、MIDI信号のミキシング(MIDIマージ)が必要で、ミキシングした信号をSC-88Proに送る必要があります。


USB-MIDIだけではなく、MIDIマージやルーティングできると便利!

似たような海外製品はありますが、価格的には勝てそう!?

まずは手作りで作ってみました。

こちらに製作記を書きました。

最新ニュース

26/5/27

STM32F407でオーディオ再生

FreeRTOSでさらにスマートに

26/5/5

遅ればせながらFreeRTOSとC++

C++の便利さを再確認

26/3/26

NFCリーダーをSwiftネイティブで操作

Pythonの方が簡単だけど、やっぱりSwiftで!

bottom of page