我正在Unity3D標準版中工作。對於那些不知道的,它是一個支持C#/ .NET腳本的3D遊戲引擎(因此它可以訪問.NET 2.0 API)。使用C#/ .NET在Unity3D中接收的TCP/IP/UDP上的MIDI
我已經創建了我自己的合成器。 (目前它響應MIDI音序器咀嚼MIDI文件時產生的音符開啓事件。)
現在我希望從MIDI鍵盤捕捉音符開啓事件。
我打算至少將我的應用部署到iOS,希望其他操作系統可以遵循。因此,目標場景是:
- 有人跑我的應用程序在iPhone上,他們有一個MIDI鍵盤連接到他們的Windows機器
- 有人在Android平板電腦上運行我的應用程序,他們有一個MIDI鍵盤連接到他們的Linux機
- 有人跑我的OS X應用程序,他們有一個MIDI鍵盤連接到OS X
最後一個是我的,所以如果任何人有一個那並不是一個解決方案的情況不過,我仍然對它很感興趣 - 至少可以說所有這些都是讓我一起得到一個功能原型。
存在一個資產,MIDI Unified,它將連接一個MIDI設備。但是,它需要PRO版本。這是因爲PRO版本允許本機插件。
我相信應該可以在不使用本機插件的情況下將MIDI導入到Unity中,而是通過網絡連接。
(請注意,我不是說互聯網連接,以太網連接,TCP/IP,UDP,HTTP,因爲我完全不知道什麼是正確的長期使用會。)
這似乎在說明是通過網絡發送MIDI信號的實用程序:ipMIDI將爲Windows和OS X執行此操作。在Linux中可能需要執行此操作。
OSX有一個「Audio MIDI setup」實用程序,我被告知允許將MIDI信號從設備傳送到本地主機。 (也許這就是爲什麼IPMIDI的OS X是免費的?)
編輯:我剛剛發現,音頻MIDI設置實現RTP MIDI,這似乎是在網絡上傳送MIDI的最佳標準(它對付有損網絡)。
所以我很確定這個任務變成了:如何在C#/ .NET中實現RTP MIDI?
但也許有一些更容易(但功能更弱)的解決方案,例如,某些解決方案只適用於OSX上的本地主機,並接收來自本地主機的音符開MIDI消息。
如果我可以爲我的第一代應用程序獲得一個基本的解決方案,並且隨後在我有辦法時用一個強大的組件替換它,我將非常高興。
所以,就我所知,任何人都可以整理這一切,推動它前進?
π
編輯:http://u3d.as/content/sta-blockhead/websocket-sharp-for-unity/4X4莫非這幫助?
我的第一個問題是 - 爲什麼不能使用Pro版本的Unity3D?您現在可以每月以75美元的價格購買Unity3D,而不必花費您以前必須支付的大筆資金。我認爲這是值得的,基於你想要做的事情。 –