2012-03-20 66 views
3

我正在連接幾個相同的USB-MIDI設備並使用Python和pyportmidi與他們交談。我注意到,當我在Linux上運行我的代碼時,偶爾會以不同的順序枚舉設備的MIDI端口,因此我會將消息發送到錯誤的設備。由於這些設備沒有唯一的標識符,因此我被告知應該通過它們連接的USB端口來識別它們。是否有可能找出哪個USB設備連接到portmidi/pyportmidi

有什麼方法可以檢索這些信息嗎?我的應用程序將在Linux上運行,但Mac OS支持對於開發很有用。

這很煩人,因爲它們通常按照合理順序枚舉 - 集線器中的第一個設備是portmidi中的第一個設備,但有時它們不是 - 通常前兩個設備被切換。我必須物理移動設備,而不必拔掉以修復它們。

+0

@Charles爲什麼這個問題不值得portmidi標籤? pyportmidi只是portmidi上的一個python包裝器。適用於portmidi的答案几乎肯定也適用於pyportmidi。 – rjmunro 2012-05-15 14:34:42

+0

這個問題實際上是關於pyportmidi,而不是portmidi。當它僅適用於一個問題時,創建一個新標籤是沒有意義的*實際上並不涉及標籤定義的主題。 – Charles 2012-05-15 16:02:47

+0

@Charles:答案几乎肯定會適用於任何使用portmidi的人,無論是直接通過pyPortMidi,還是通過portmidi-ruby或任何其他簡單的包裝器。如果一般的portmidi答案在pyPortMidi中不起作用,那將是pyPortMidi中的一個錯誤。 – rjmunro 2012-05-16 11:00:19

回答

0

lsusb應該做的伎倆。在那裏列出所有設備及其各自的集線器。

+0

如何將我從lsusb獲得的內容映射到pyPortMidi中的設備? – rjmunro 2012-03-20 16:34:04

+0

直到現在我還不知道pyPortMidi:我已經查看了源代碼,應該有類似'PmDeviceInfo'的東西,它有一個接口'interf'和一個名字'name',並且應該被映射到一個名爲'GetDeviceInfo '。也許你可以在那裏找到缺失的鏈接。不幸的是我現在無法自己測試它。 – devsnd 2012-03-20 16:55:04

+0

那麼,它是怎麼回事? – devsnd 2012-03-21 12:33:23

相關問題