• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

USB MIDI適配器

2021/03/18
541
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

usb_midi_interface_twiE32gvR3.fzz

共2個文件

基于Arduino Micro或Leonardo的簡單USB轉(zhuǎn)MIDI適配器,可以過濾MIDI數(shù)據(jù)(可選)。
硬件部件:

  • Arduino Micro    ×    1個    
  • 6n137光耦合器×    1個    
  • 1N4148 –通用快速開關(guān)    ×    1個    
  • 電容100 nF    ×    1個    
  • 電阻220歐姆    ×    3    
  • 電阻10k歐姆    ×    1個    
  • 通孔電阻,470歐姆    ×    1個    
  • LED(通用)    ×    1個    
  • LED支架×    1個    
  • DIN音頻/視頻連接器,5觸點    ×    2個    
  • 一塊通用PCB×    1個    
  • PCB安裝座×    1個    

軟件應用程序和在線服務:

  • Arduino IDE    

我在網(wǎng)上搜索了如何使用Arduino構(gòu)建USB轉(zhuǎn)MIDI適配器的方法,但不幸的是,我只找到了效果不佳的解決方案(不良的MIDI軟件或硬件實現(xiàn))。因此,我決定自己構(gòu)建一個并將結(jié)果放在hackster.io上。

我使用帶有面包板的Arduino Leonardo構(gòu)建了第一個原型。一切正常后,我改用Arduino Micro構(gòu)建了焊接版本。兩者均基于ATmega32u4,后者具有本地USB,可將其作為USB MIDI接口呈現(xiàn)給您所連接的PC。

MIDI使用光耦合器和一些電阻器來創(chuàng)建完全隔離的電流環(huán)路。該電路是非常標準的電路,我使用了6n137,因為它的速度很快且廣泛可用。如電路圖所示,只有MIDI OUT連接器的引腳2接地,這是MIDI的標準配置。

最終結(jié)果的一些照片:

在軟件方面,我決定使用出色的Control Surface庫。與某些其他庫或手動編碼的實現(xiàn)不同,Control Surface可以正確處理稍微復雜的MIDI協(xié)議的所有不同方面。

Control Surface還允許您添加各種附加功能。例如,您可以添加一些電位計,踏板或連接到模擬/數(shù)字輸入的按鈕,以添加額外的MIDI控件。只需在Control Surface網(wǎng)站上查看更多信息,它就很容易做到!

您還可以注冊回調(diào),以便可以在從MIDI傳遞到USB或其他方向之前處理數(shù)據(jù)。就我而言,我使用它來修復Roland D50合成器的MIDI實施損壞。每次按下最后一個鍵時,D50都會發(fā)送“關(guān)閉所有音符”命令?,F(xiàn)代實現(xiàn)(例如我使用的大多數(shù)VST樂器)都將其解釋為所有運行中音符延音的立即硬性中斷。通過過濾掉“所有音符”,D50可以再次用作主鍵盤。

我在Control Surface庫中遇到的一個問題是,它不能很好地處理大型SysEx軟件包。嘗試使用D50編輯器/圖書管理員時,這會導致錯誤,因為它發(fā)送了相當大的SysEx軟件包。我在源代碼的注釋標題中添加了有關(guān)如何解決此問題的說明。編寫該庫的人表示,一旦2.x版本問世,此問題將得到解決。

我提供了基本的USB到MIDI接口的源代碼,以及帶有“所有音符已關(guān)閉”過濾功能的版本。

當然,您也可以使用其他庫或編寫自己的MIDI實現(xiàn),該硬件應與任何具有USB MIDI和串行MIDI支持的MIDI庫一起使用。

  • usb_midi_interface_twiE32gvR3.fzz
    下載
    描述:原理圖
  • 源碼.rar
    下載
    描述:源碼

相關(guān)推薦