我有兴趣将Linux和OS X系统用作数字乐器,用于实验目的。
我想知道,将数字数据数组(描述一些音频长度)发送到3.5mm音频输出的可能方法是什么。 (当然,可以使用一些发言者播放。)
我的要求是可以使用C ++完成,因为我需要实时生成音频样本。 (Python可能不会削减它。)理想情况下我想跨平台做这个,但对这个窗口不太感兴趣。
这个想法是做类似的事情:
1:将输出模式设置为44100KHz,24位单声道(L& R)。 2:生成44100个带符号24位整数的数组。 3:告诉计算机播放XYZ秒/样本数据的样本,从样本号XYZ开始。
在像Arduino这样的东西上很容易做到这一点。 (也可以用C ++编程)对于那些熟悉的人,你可以直接使用数字输出引脚,或者更复杂的东西,建立一个简单的子板,正确地修改你的信号,使其正弦和正极负电压摆动。 (而不仅仅是积极的。)
我想我需要像OpenAL这样的东西,据我所知,就像OpenGL一样。我似乎无法找到有关它的更多信息。似乎它不再发展,并且已经使用了好几年。我猜还有另外一种选择吗?
答案 0 :(得分:1)
OpenAL是一个非常好的选择。它比OpenGL更容易学习。剪切和粘贴编码。
最近可能没有变化,但仍在广泛使用。我个人在iOS / OS X上使用它。您应该仔细检查您的Linux风格。
我不知道它是否可以播放24位PCM。但如果基础音频芯片支持那么它肯定可以接受44100的16位PCM。
以下是一个可以帮助您的教程: