【问题标题】:Streaming MIDI API in Android在 Android 中流式传输 MIDI API
【发布时间】:2011-06-01 14:51:52
【问题描述】:

我是一位基于 MIDI 的音乐应用程序作者。在我的应用程序中,我正在生成一个带有小库的 .midi 文件,我编写并在 MediaPlayer 上播放它,这对于该应用程序来说已经足够了。然而,在未来的应用程序中,我计划有更多的交互性,这就是我可能需要流式 API 的地方。

据我所知,Android 泄露了用于实时 midi 合成器的 API(至少是官方的)。但我仍然可以看到一些应用程序确实以非常先进的方式使用了 midi。问题是如何?他们是使用 NDK 直接访问 Sonivox,还是毕竟有非官方的 API?有什么想法吗?

如果 Google 计划在未来的 Android 版本中改进 MIDI 支持,我也非常感兴趣(以防 Google 的任何人看到这一点:))

谢谢。

【问题讨论】:

    标签: android midi


    【解决方案1】:

    您应该查看libpd,它是适用于 Android 和 iOS 的 PureData 本地端口。它将使您能够访问系统的 MIDI 驱动程序,同时仍然能够使用非常高级的工具对您的软件进行原型设计。

    【讨论】:

    • 谢谢,尼克!我会检查并告知结果。
    【解决方案2】:

    Java 有一个非常重要的延迟,所以我认为这应该使用 NDK 来完成。检查这个question,它有一些提示。这被报告为 Android issue(NDK 支持低延迟音频),那里也可能有一些提示或信息。

    【讨论】:

    • 感谢ferostar的回复。我查看了链接,似乎它们主要与低延迟音频(PCM 流等)有关。尽管我的问题很相似,但我相信 MIDI 仍然比音频处理简单得多。但似乎仍然没有好的选择。
    【解决方案3】:

    这是一个简单但很棒的示例应用程序,它可以在 Android https://github.com/billthefarmer/mididriver 上成功流式传输 MIDI

    您必须手动将 MIDI 信息放在一起(该示例为播放音符和停止音符创建了两条 MIDI 信息)。可以参考 MIDI 规范来进一步控制 MIDI 通道。问题是 Android 上的默认声音字体听起来很糟糕。

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多