Raspberry piでUSB-MIDIとレガシーMIDIのお手軽相互変換

現在手に入る小型のMIDIキーボードやコントローラはほぼ全てがUSB-MIDIだけに対応したものでレガシーな5ピンDINのMIDIコネクタ/ケーブルを使った接続には使用できません。ですがまだまだ使用したいシチュエーションは多いものです。そこで、Raspberry piを使って簡単にUSB-MIDIをMIDIに変換しましょう!

要するに、KENTON ( ケントン ) >MIDI USB HOST http://www.soundhouse.co.jp/shop/ProductDetail.asp?Item=436%5Emidiusbhost%5E%5Eと同じことをRaspberryPiでやります。

用意するもの

  • Raspberry Pi(モデルはどっちでも可)
  • 変換したいUSB-MIDIコントローラ
  • MIDIポートのついたUSB接続のオーディオインターフェースか、USB-MIDIケーブル(こういうのとか、もっと安いのでも大丈夫だと思いますが相性はあります)
  • あれば安心セルフパワー(ACアダプタの刺さる)USBハブ
    ※ Rapberry piモデルAの場合は必須です

方法

  1. Raspberry piにraspbianあたりを入れてSSH接続かシリアルコンソールかGUIのコンソールでコマンドを打てるようにする
  2. Raspberry piにUSBデバイスを2つとも接続する。セルフパワーのUSBハブを介して接続すると電源が不安定にならないので安心。
  3. lsusb とコンソールにコマンドを打って、デバイスが2つ増えているか確認。

    rpi1.png
  4. aconnect -i -l と打って入力側のデバイスの番号を確認。
  5. aconnect -i -oと打って出力側のデバイスの番号を確認。

    rpi2.png 
  6. aconnect [入力側のデバイス] [出力側のデバイス] と打つ。
    例:aconnect 20:0 24:0

    接続状態を確認するにはもう一度 aconnect -i -l

    rpi3.png
  7. 入力側から出力側へMIDIコマンドがスルーされているか確認。
    もし、接続を間違えていた場合は aconnect -x で全ての接続が解除されます。 

補足

linux上で動いているALSAというオーディオ用のアプリケーションの一機能を使っています。なので、BeagleBoneBlackとか他の1ボードLinuxでも大体入ってるorインストールすれば動くはず。

自動で接続するには.bashrcあたりに 6のコマンドを入力しておけば起動時に勝手に実行されます。

接続ポートなどでデバイスの番号が変わってしまうかもしれないので現場で急に動かない対策は必要です。