如何在android / java中合成钢琴声音

Abi*_*lah 5 java audio android synthesis

我在android上做了一些简单的应用程序,以为是时候做一些更复杂的事情了。所以,我以为我会尝试一些已经存在的东西,但是要从头开始构建它。

这个想法是创建一个允许用户通过按显示器上的虚拟键来弹钢琴的应用程序。但是我不确定如何合成每个音符的声音,最好是将每个音符的副本存储在文件中,还是可以动态地合成音符和和弦?

我曾经使用过C ++,所以NDK的东西也还可以。谢谢你的帮助。

Chr*_*ton 2

声音播放(传递缓冲区)几乎必须通过 Android java api 完成

综合可以在本机或 java 中完成,无论它喜欢哪一个。

短(未压缩)样本可以重复播放,但您可能还需要攻击瞬态。也许你可以有一个起音、一个延音和释放,只要按下琴键就重复延音。理想情况下,每个样本应该是其基本分量的整数个周期,这样当您在起音到维持或维持到衰减之间切换时,就不会出现瞬变。

我确信您可以在某个地方找到 FM 或其他合成器的代码...您可能很想在本机库中实现此代码,该库将缓冲区交给 java 代码以传递给音频 api。

不幸的是,android已经有一个内部midi合成器,但显然缺乏一个动态接口,所以它只能播放midi文件。