Android声音合成

dos*_*214 4 audio android sound-synthesis audiotrack

我正在尝试使用AudioTrack类播放合成声音(基本上是2个正弦波和一些噪声).它似乎与javax.sound.sampled中的SourceDataLine没有任何不同,但合成真的很慢.即使对于ARM标准,认为32768个样本(16位,立体声,总共65536)在Nexus 4上渲染需要1秒钟(用System.nanotime()测量,写入AudioTrack除外)是不现实的.合成部分与此http://audioprograming.wordpress.com/2012/10/18/a-simple-synth-in-android-step-by-step-guide-using-the-java-sdk/几乎完全相同,唯一的区别是我播放立体声(我无法将其降低为单声道,因为它是双耳音).

有任何想法吗?我能做什么?

提前致谢

Dig*_*ara 6

Marko的回答似乎非常好.但是,如果您仍处于项目的实验/研究阶段,您可能需要考虑使用Pure Data,它已经作为Android库/ NDK库的组合实现,它允许您合成许多声音并与它们交互以一种相对简单的方式.

libpd分布是Android实现纯数据的.一些好的起始参考可以在SoundOnSound网站这个网站上找到.

附录:我通过此讨论链接找到了Android Midi驱动程序的基本但功能实现.相关代码可以在这里找到(github,项目由billthefarmer,名为mididriver).

您可以在我的Android应用程序(imSynt链接引导您访问Google Play)YouTube上查看我如何使用它.


小智 0

您是否尝试过分析您的代码?听起来可能是其他原因导致你的速度变慢,分析将有助于找出原因。

麦克风