8

我意识到这可能是相对利基的,但也许这就是为什么无论如何都可以问这个问题的原因。我正在寻找一个硬件多输入录音控制台(例如 Alesis IO 26)来接收一个 Adat 光管 8 通道输入来进行信号处理。由于我还没有购买该设备并且需要确定这是否可行(预算问题),我想问一下是否有人有使用 Java 中的所有这 8 个输入数据的经验?我已经看到了大量使用 Javax.sound.sampled 库录制声音的示例,但我找不到任何超过 2 的多通道信息。我感兴趣的是将 8 个通道单独作为单声道源进行采样对它们执行一些简单的 DSP。硬件设备会被视为一个混音器吗?8个通道被表示为8条线?我希望我的术语是正确的。

如果有人可以向我指出任何相关信息,我将不胜感激。谢谢!

4

4 回答 4

3

根据您运行的 Java 版本、运行的平台以及运行的声卡类型,Java 中应该可以实现多声道音频。有关更多详细信息,请参阅出色的Java 音频常见问题解答。我从来没有能够在所有平台上可靠地使用它。

如果您真的关心制作强大的多声道音频,我建议您使用 C API,例如PortAudioJucePulseAudio

我在使用 PortAudio 和 Juce 时都非常幸运。

要在 Java 中使用这些,您需要为 C API 创建一个JNI接口。

这显然比仅仅使用 javax.sound 需要更多的工作,但它可以让您更好地控制正在使用的音频硬件。根据我处理音频设备的经验,与硬件相距太远(即 4 层抽象而不是 2 层)通常会使您无法进行严肃的多通道、高位深度、高采样率音频。

于 2009-02-02T20:59:41.833 回答
1

我已经用级联到 32 个输入的 Terratec 卡实现了类似的东西,当时唯一的库是 Jsyn。

一旦你了解它,它就是一个非常好的图书馆。

http://www.softsynth.com/jsyn

我不确定是否还有其他可以提供帮助的。

于 2009-01-30T09:59:30.513 回答
1

我刚刚为 PortAudio 添加了一个 Java JNI 包装器。计划是与 PortAudio 源一起维护它。PortAudio 支持 N>2 的多声道音频。

今天,2012 年 9 月 3 日,JPortAudio 仍处于 alpha 模式。当你读到这篇文章时,它可能已经稳定了。

http://www.portaudio.com/docs/v19-doxydocs/java_binding.html

于 2012-09-03T23:39:24.313 回答
0

我无法直接回答 javax.sound API 是否适用于多通道(但根据 API 文档它应该)。

但是,我采用了另一种方式使用 Java 进行多通道音频处理,这可能也对您有用。我使用 Jack(Jack 音频连接套件)将信号从音频设备传输到音频设备,然后使用 Jack 库执行信号处理。你没有提到你的目标操作系统。我在 Linux 下成功地使用了这种方法。AFAIR 在路上有一个供 Jack 使用的 Windows 端口。

ciao,榆树

于 2009-01-28T14:41:47.360 回答