3

如何在 Lazarus/Free Pascal 中播放和合成自定义波形?该解决方案必须是实时友好的,因为它适用于游戏引擎。它也应该是多平台的,所以它可以在win32、Linux和Mac上使用。FMOD/BASS 已经过时(即使适用),因为如果我想在商业上使用它,我不想支付费用。

4

1 回答 1

1

有解决方案。我最喜欢的库是 Steinberg 的 ASIO。这是一个非常简单的 API,它有 Linux、Windows、MAC 的包装器,我猜还有一些其他平台。它是用于低延迟录制/播放的专业 API。您通常需要支持它的声卡,但最近出现了一些驱动程序,使用本机平台 API 来模拟 ASIO 设备(例如 Windows 中的 ASIO4ALL)。

ASIO 有一个简单的功能,其中缓冲区被交换,您可以在其中生成波形,以便几乎立即播放(延迟以毫秒为单位)。那是为了实时性。

API 本身是免版税的,这意味着您可以在商业项目中使用它而无需支付任何费用。

至于 Pascal 绑定,我相信你必须自己做。但是 ASIO 的整个初始化和操作是 <100 行 C/C++ 代码(实际上你只需要控制声音合成和设备选择——只有两个需要由包装器导出的函数)所以真的不应该很难。

于 2012-11-04T18:56:23.287 回答