如何在Android上合成乐器声音(钢琴、鼓、吉他等...)

4

有人能给我一些关于如何合成乐器声音(钢琴、鼓、吉他等)的方向吗?

我甚至不知道该找什么。

谢谢。


有没有现成的谷歌API可以帮忙? - Abhinav Singi
5个回答

7

我不确定现在是否仍然存在这个问题,但是Android似乎存在延迟问题,无法进行真正的音频合成。在我看来,NanoStudio是iOS上最好的音频应用程序,而作者迄今为止拒绝制作Android版本,因为该框架尚未准备好。

请参考以下链接:

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=nanostudio+android#hl=en&q=+site:forums.blipinteractive.co.uk+nanostudio+android&bav=on.2,or.r_gc.r_pw.&fp=ee1cd411508a9e34&biw=1194&bih=939

这完全取决于您正在创建的应用程序类型,如果它将成为Akai APC触发声音的应用程序,则可能没问题。如果您想要进行真正的合成(制作波形以复制钢琴,吉他和鼓),这就是JASS上面提到的内容,那么Android可能无法处理。

如果您正在寻找有关通过合成模拟有机乐器的指南,请查看Fred Welsh的书籍 http://www.synthesizer-cookbook.com/


4
合成吉他、钢琴或自然鼓会很困难。触发通过合成引擎的采样则较为容易。如果你想合成模拟合成器的声音,那就更容易了。
这里有一个项目,您可以从中获取代码。

https://sites.google.com/site/androidsynthesizer/

最终,如果您想创建一个完整的合成器或多轨应用程序,您将不得不将您的振荡器、滤波器等渲染为可以输入到MediaPlayer的音频流。您不一定需要MIDI来做到这一点。
以下是一个人的经验:

http://jazarimusic.com/2011/06/audio-on-android-a-developers-perspective/

有趣的阅读。

1

1

Android上的MIDI支持很糟糕。(音频支持也是如此,但这是另一回事。)有一篇有趣的博客文章讨论了Android上(缺乏)MIDI功能。以下是他为解决某些限制所做的工作:

就我个人而言,我通过以下方式解决了动态MIDI生成问题:以编程方式生成一个MIDI文件,将其写入设备存储器,使用该文件启动媒体播放器并让其播放。如果您只需要播放动态MIDI声音,则速度足够快。我怀疑它对于创建用户控制的MIDI东西(如序列器)没有用处,但对于其他情况非常好。


0

很遗憾,Android在官方Java SDK中取消了MIDI支持。

也就是说,您无法直接播放音频流。您必须使用提供的MediaStream类。

您将需要使用一些DSP(数字信号处理)知识和NDK来完成此操作。

如果有一个通用包(不一定是针对Android),可以让您做到这一点,我不会感到惊讶。

希望这能为您指明正确的方向!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接