带有Java的多轨音频

时间:2013-08-03 13:20:00

标签: java audio javasound

我计划每个音轨播放约100个同步音轨,并播放实时可控音量。音频来自wav个文件。

是否有任何库/最佳实践可以在Java中实现这一目标?

1 个答案:

答案 0 :(得分:1)

我建议你看一下Praxis和JAudioLibs。尼尔史密斯知道他的东西。

我有可能一次玩30到50个wavs,我的图书馆肯定不是最有效率的。而且我没有改变那些wav文件的容量或平底锅。如果你的某些声音足够短以存储在存储器中(例如,一组声音效果)那么你有更多机会成功拥有这么多音轨。我已经同时运行了100个短片段(使用自定义制作的片段,但是除了触发值之外,没有添加音量或平移)。

关于Java的实时问题有一篇很好的文章。问题是真实的,但并非不可克服。如果你坚持使用javax.audio.sampled库提供的最低级别的工具,那么Java是非常低级和快速的,并且不介意一点延迟。

http://quod.lib.umich.edu/cgi/p/pod/dod-idx?c=icmc;idno=bbp2372.2007.131

实时控制音量非常困难,因为它需要一个非常小的缓冲区或进入和执行每帧计算的方法,否则可能会产生拉链或点击等效果。当我为鼠标动作监听器输出加时间戳并计算中间音量时,我在实时音量变化方面取得了一些成功。但我没有尝试过一次将它应用于多个频道。 (这是一个虚拟的Theremin项目。)

然而,可能有一种方法可以预先建立一个非常有效的信封选择,并通过从这些信封的菜单中选择来控制音量。 Hmmmm。

这是一个具有挑战性的问题,我不知道即使是我的DAW(Cakewalk声纳,用某种C语言编写)也能够解决这个问题。