2011-06-01 72 views
1

我是一個基於MIDI的音樂應用程序作者。在我的應用程序中,我生成了一個帶有一個小型庫的.midi文件,我在MediaPlayer上編寫並播放了該文件,這對於該應用程序來說已經足夠了。然而,在未來的應用程序中,我打算有更多的交互性,這就是我可能需要流媒體API的地方。在Android中流式傳輸MIDI API

據我所知,Android泄漏實時MIDI合成器的API(至少官方)。但是我仍然可以看到一些以相當先進的方式使用midi的應用程序。問題是如何?他們是否直接使用NDK訪問Sonivox或者是否存在非官方的API?有任何想法嗎?

而且我很感興趣,如果谷歌正計劃改進的Android未來的版本中支持MIDI(在谷歌的情況下,任何人看到這個:))

感謝。

回答

3

您應該簽出libpd,它是Android和iOS的PureData本機端口。它將爲您提供對系統的MIDI驅動程序的訪問,同時仍然可以使用非常高級的工具對您的軟件進行原型設計。

+0

謝謝,尼克!我會檢查出來,讓我們知道結果。 – EvilDuck 2011-06-05 06:22:34

1

Java有一個非常重要的延遲,所以我認爲這應該與NDK完成。檢查這個question,它有幾個提示。這被報告爲Android issue(NDK支持低延遲音頻),也可能有一些提示或信息。

+0

感謝您的回覆ferostar。我查看了這些鏈接,似乎它們大多與低延遲音頻(PCM流等)有關。雖然我的問題是類似的,但我相信MIDI的東西仍然比音頻處理簡單得多。但似乎還沒有好的選擇。 – EvilDuck 2011-06-02 07:04:01

1

這是一個成功的流MIDI Android上https://github.com/billthefarmer/mididriver

您必須手動將MIDI信息雖然在一起(例子創建播放注二等MIDI信息,並停止注)一個簡單而偉大的示例應用程序。可以參考MIDI規範來進一步控制MIDI通道。問題在於Android上的默認聲音字體非常糟糕。