2011-06-01 39 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上的默认声音字体非常糟糕。