Audio 操作:最简单的音频引擎?

Audio 操作:最简单的音频引擎?,audio,Audio,我很好奇。如何实现最简单的音频引擎?我有一个类似于音频数据流的东西在脑海中使用您的默认音频设备。我想如果你能放弃一些功能,这是可能的。有人知道从哪里开始吗?我会这样做(确实这样做了): 没有理由不创建一个界面非常简单的音频引擎: audioEngine.PlayStream(myStream) 然后,音频引擎将定期从该流读取数据并将其发送到声卡。音频引擎往往比这更复杂的原因是,您可能需要控制各种参数,包括播放延迟、采样率、位深度,以及经常需要在不同格式之间转换音频。再加上重新定位流、同步多个

我很好奇。如何实现最简单的音频引擎?我有一个类似于音频数据流的东西在脑海中使用您的默认音频设备。我想如果你能放弃一些功能,这是可能的。有人知道从哪里开始吗?

我会这样做(确实这样做了):

没有理由不创建一个界面非常简单的音频引擎:

 audioEngine.PlayStream(myStream)

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

谢谢您的回答

致马克·希思:

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

我只是好奇如何构建一个尽可能简单和模块化的音频引擎。我考虑的主要目的是重建gameboy soundchip(这里也有很多实现,比如JavaBoy)

到斯卡默隆

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

问候,


audax

哪个平台?这个音频引擎会做什么,也就是说,它的输入和输出是什么?与其创建另一个答案,不如在每个答案中使用add comment来评论其他解决方案。在我看来,你最好忽略整个“创建音频引擎”问题,专注于实际模拟芯片。VST或AU实现通常更有用。