USB MIDI アダプタ経由だと DeviceInfo が正確に取れない件
CASIOの電子ピアノ Privia 720C を購入しました。
[rakuten:menet:10002898:detail]
ピアノを買うのにCASIOっていう迷いはなくはなかったですが、実際に現物を見て、このコンパクトさと値段の安さに惹かれました。無駄な物があんまりないというのもいいですね。ただ、MIDI接続がUSBじゃない(他のもほとんどそうだった)ので、以下のUSBアダプタを購入。
接続して以下のコードでデバイスを確認
public static void dumpDeviceInfo() { ArrayList<MidiDevice> devices = getDevices(); for (int i = 0; i < devices.size(); i++) { MidiDevice device = devices.get(i); MidiDevice.Info info = device.getDeviceInfo(); System.out.println("[" + i + "] devinfo: " + info.toString()); System.out.println(" name:" + info.getName()); System.out.println(" vendor:" + info.getVendor()); System.out.println(" version:" + info.getVersion()); System.out.println(" description:" + info.getDescription()); if (device instanceof Synthesizer) { System.out.println(" SYNTHESIZER"); } if (device instanceof Sequencer) { System.out.println(" SEQUENCER"); } System.out.println(""); } }
するとこんな感じで
[0] devinfo: nanoKEY - KEYBOARD name:nanoKEY - KEYBOARD vendor:KORG INC. version:1.0 description:KEYBOARD [1] devinfo: UM-1G - UM-1G name:UM-1G - UM-1G vendor:Roland version:1.0 description:UM-1G [2] devinfo: nanoKEY - CTRL name:nanoKEY - CTRL vendor:KORG INC. version:1.0 description:CTRL [3] devinfo: UM-1G - UM-1G name:UM-1G - UM-1G vendor:Roland version:1.0 description:UM-1G [4] devinfo: Real Time Sequencer name:Real Time Sequencer vendor:Sun Microsystems version:Version 1.0 description:Software sequencer SEQUENCER [5] devinfo: Java Sound Synthesizer name:Java Sound Synthesizer vendor:Sun Microsystems version:Version 1.0 description:Software wavetable synthesizer and receiver SYNTHESIZER
UM-1G というUSBアダプタしか見えてないようなのです(cakewalkはRolandのブランド)。入力に関しては [1] devinfo: UM-1G - UM-1G の方から普通に取れてるっぽいのでいいのですが、[3] devinfo: UM-1G - UM-1G のほうが instanceof Synthesizer じゃないのでピアノの内部音源で音を鳴らす事が出来ないのです。これでは魅力半減です。。
フォーラムでだいぶ昔に同じようなシチュエーションの質問を見つけましたが、レス付いてないですね。
Sound.midi.*; need to create an instance of an external synthesizer.
サウンドカードのJOYSTICKポートとかと接続するとちゃんと見えるのかな、、謎です。ググってもそれっぽいものがないので、僕が何か根本的な勘違いをしてる可能性もあり、長時間ハマってます。
うーんうーん。