google tag

My Soundcloud Channel --- Testing :D

Sunday, June 05, 2011

今日の LinuxでMIDIシンセのパッチの送受信

Linux メモ
amidi や aplaymidi でシンセのパッチの送受信ができる..
---
KAWAI K1 のSRAMカードを発見して、その中に残っていたパッチをあれこれ楽しんでいるうちに、ちと欲が出てきた。KAWAI USAからパッチのデータが落とせるので、そいつをK1に入れてみたいのだが、さてLinuxマシンからどうやってK1に送ればよいのやら..

という事で調べてみたら何の事はない、 amidi という Debianではalsa-toolsパッケージに含まれるコマンドを利用すればよい事が分かった。先のパッチデータ .syx というのは、シンセのMIDI エクスクルーシブデータをダンプしたものらしい、のだ。で、amidiはMIDIインターフェースを介してシンセへバイナリデータを送受信するコマンドというわけだ。

---
まずMIDIインターフェース、買ったきり動作確認だけして使って無かった、EDIROLのUM-1EXというUSBインターフェースをPCに繋げて、 amidi の lオプションでポート名を調べる

amidi -l
Dir Device Name
IO hw:1,0,0 UM-1 MIDI 1

で、A101.SYX を転送したければ、

amidi -p hw:1 -s A101.SYX

とやると転送できる..

---
KAWAI K1でうまく行ったので、KORGのmicroKORGもいけるのでは、と言うことで試してみたら、これもOKであった。

ネットで拾ったmicroKORG用データには .prg という拡張子がついていたのだが、これは1音色単体のバイナリの様である。
amidi -p hw:1 -s EchoOrgan.prg
とやると、microKORGにデータが送られた。また.syx形式のパッチのセットも同様に送信できた。


microKORG側からPCへデータダンプも可能であった。
amidi -p hw:1 -r microkorg_data.syx
とコマンドを打ってからmicroKORG側でデータダンプ操作するとPC側にデータがダンプされる。転送が終わったら Ctrl+c で止めればOK..これでシンセ側のパッチがPCに保管できる...

---
ネットで拾ったパッチデータの中には amidiだと転送できないものがあった..
.mid というファイルとか.. で、これはどうも 普通のというか楽曲と同じmidiデータ扱いなのでamidiだと
転送できない。
Bonus_Bank_MicroKorg.mid is a Standard MIDI File; use aplaymidi to send it
なんてエラーメッセージが出る、ので、この場合はメッセージどおり aplaymidi を使う。
aplaymidi -l
Port Client name Port name
14:0 Midi Through Midi Through Port-0
20:0 UM-1 UM-1 MIDI 1

でポートを調べて、
aplaymidi -p 20:0 Bonus_Bank_MicroKorg.mid
とやると転送できる... amidi とポート名の指定方法が違う...
aplaymidi は普通の楽曲データを再生するmidiプレーヤーコマンド。

---
と言うことで、LinuxからもMIDIシンセのデータのやりとりができる事が分かった。元々Linuxからのやり取りはできなくてもしかたがないと諦めてたので、目から鱗というか、もっと早く気がつくべきだった..