2011-11-13 54 views
3

我用下面的代碼進行試驗:如何檢測Java MIDI中的特定MIDI控制器?

http://www.jsresources.org/examples/MidiNote.java.html

操作我的更替的Launchpad MIDI控制器。

基本上我很感興趣,在接通指示燈剛剛發送MIDI音符/立方厘米。

而這部分作品 - 修改代碼以正確的MIDI發送到快速啓動後 - 我能實現我的效果。但是,它僅在使用默認MIDI設備時有效。

我想代碼檢測Lanchpad withing Java代碼,並直接將信號發送到他們..

我希望它夠清楚:)

+1

在Windows上,據我所知,使用MIDI設備的唯一方法是通過名稱。 Novation是否顯示爲「USB MIDI Device」以外的其他內容? – Brad

+0

嗯...我會檢查...設備數量是多少?在其他應用程序中,它們被重新編號。無論如何,我會檢查,謝謝。 – bluszcz

+1

任何數字只是它們被列舉的順序。你會發現,如果你有幾個同名的設備,他們的訂單往往會混淆在一起,而軟件將無法分辨哪個是哪個設備。有些設備可以用SysEx進行探測。例如,APC40有一個可選的握手程序。 – Brad

回答

1

正如其他建議,你可以通過USB設備名稱檢測到這種總線。爲此,有一個項目http://javax-usb.org。它的最後一個版本是從2008年開始的,所以我不確定它有多少可用或活着。

我不得不看的Launchpad程序員參考(以Launchpad downloads提供),其中有對發現的SysEx沒有提及。

如果您不想篡改USB,並且您滿足於「半自動」檢測,則可以要求用戶按下啓動板上的按鈕,然後在所有MIDI設備上收聽消息90(注)或B0(控制更改),可生成按鈕(Launchpad程序員參考,第11頁)。消息來自哪個接口,即連接Launchpad。

你可以得到更好的結果,B0消息,因爲這是控制變更其值的範圍Launchpad上從68-6F(十六進制),這是更具體的控制器比音符上的消息。

+0

聰明的想法與按下按鈕:) – bluszcz