如何创建最简单的音频引擎?

4

我很好奇。如何实现最简单的音频引擎?我想到了使用默认音频设备的音频数据流。经过多次使用RtAudio,我认为如果能放弃一些功能,这是可能的。有人知道从哪里开始吗?


2
哪个平台?这个音频引擎会做什么,也就是说,它的输入和输出是什么? - Greg Hewgill
3个回答

2

0

其实你完全可以创建一个具有非常简单界面的音频引擎,这并没有什么不可能。

 audioEngine.PlayStream(myStream)

音频引擎会定期从该流中读取数据并将其发送到声卡。音频引擎之所以比这更复杂的原因是,您可能想要控制各种参数,包括播放延迟、采样率、位深度,以及通常需要在格式之间转换音频。加上重新定位流和同步多个流的问题,支持多个音频驱动程序API等,很快您就会拥有与任何其他引擎一样复杂的音频引擎。

0

感谢您的回答。

致Mark Heath:

当然,我知道可能有很多参数需要调整,例如滤波器截止频率、共振、延迟时间等等...

我只是好奇如何尽可能简单和模块化地构建音频引擎。我主要的意图是重新构建Gameboy声音芯片(同样在这里,有很多实现,例如JavaBoy)。

to.smcameron

看起来ccan/wwviaaudio有一个依赖于libvorbis/portaudio(版本>=19)的库,这将产生与使用rtaudio相同的效果(与其他具有内置asio支持的实时音频接口相比,它相对较小)。不过,我会尝试一下。

敬礼,

audax


不要创建另一个答案,而应该在每个答案中使用添加评论来评论其他人的解决方案。 - FurtiveFelon
1
听起来你最好忽略整个“创建音频引擎”的问题,集中精力于模拟芯片。VST或AU实现将更加普遍有用。 - Julian Birch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接