回答
我建议看看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
控制音量的实时是艰难的,因为它需要或者非常小的缓冲区或进入和做每一帧计算,否则就会越来越像zippering或点击效果的手段。当我使用时间标记的鼠标动作监听器输出并计算出中间音量时,我在实时音量变化方面取得了一些成功。但我还没有尝试将它应用于多个频道。 (这是一个虚拟的Theremin项目)。
但是,可能有一种方法可以预先构建一个非常高效的信封选择,并通过从这些信封的菜单中选择来控制音量。 Hmmmm。
这是一个具有挑战性的问题,我不知道即使我的DAW(Cakewalk Sonar,写成C的某种味道)也能够处理这个问题。
感谢您的见解。我早些时候已经偶然发现了JAudioLibs,并会试用它。也许我可以减少必要的同步音轨。实际上对于大多数情况下,这些曲目中的大部分曲目都有0音量,但我担心不会加载它们,直到它们需要引入大量的crack啪声。我想在曲目中进行一些混合,因此他们需要同步并准备好听到。我知道我无法与商业DAW的性能竞争,所以也许我只是首先检查我的想法在DAW(我的FL Studio)中是否可行。 – fabb
如果wavs本身都共享一个共同的第0帧,那么同步应该没问题。您可以将它们全部加载到调音台中,随时准备就绪,以便在每次调音台迭代时读取每个文件,然后将调音台作为一个单独的动作打开。 (我在音乐工作室意义上使用术语“混音器”,而不是Java定义)。还可以从0音量的音轨中读取和丢弃数据。有时裂纹来自音量溢出:将多条音轨加在一起时很容易做到。如果这是长时间播放,可能太过于将所有内存放在内存中作为“剪辑”类型的数据。我很好奇你想出了什么。 –
- 1. Android多轨音频库?
- 2. mlt将音轨添加到多音轨音频而不混音
- 3. 播放多音轨音频在线
- 4. html5视频mp4的多音轨
- 5. HTML5视频的多个音轨
- 6. 将音频静音一段音轨
- 7. AVMutableComposition删除视频音轨
- 8. 加入多个音轨时的音频持续时间匹配
- 9. 循环多个音频轨道(混音器)Flash AS3
- 10. html5/javascript音频同时播放多个音轨
- 11. 从Android音轨播放音频
- 12. Java - 音频URL
- 13. 插孔音频和多个音频设备与alsa_out
- 14. 音频与AJAX
- 15. 音频与AudioContext
- 16. 音频轨道JS功能没有播放或暂停音频
- 17. 播放音频上树莓派与Java
- 18. 很多webrtc音频/视频噪音
- 19. HTML5音频标签与JQuery音频
- 20. 循环Java音频
- 21. Java音频比较
- 22. FFMPEG-如何将多音频流与嵌入音频的视频混合?
- 23. HTML5音频标签与多个来源
- 24. 播放多种音频文件与howlerjs
- 25. Java:如何读取视频文件中的可用音轨?
- 26. iOS6多路音频
- 27. 多个立体声音轨
- 28. 的ActionScript 3,多音轨
- 29. Android:VideoView中有多个音轨?
- 30. Android:播放多个音轨
你想使用Java作为实时播放音频的环境吗? – chrylis
是的,我有一个带有Processing库的Java应用程序,喜欢添加一些音频。 – fabb
尽管我是Java的粉丝,但这可能不是最好的方法; Java没有实时保证,并且你永远不知道什么时候(例如)由于垃圾收集或热点重新编译而最终导致口吃。 – chrylis