【问题标题】:What's a simple way to output homebrewed synthesized sound on Unix?在 Unix 上输出自制合成声音的简单方法是什么?
【发布时间】:2011-01-08 05:20:35
【问题描述】:

我想在 Mac OS X(最好是其他类 Unix 操作系统)上使用 ANSI C 进行声音合成。

这是为了学习目的,而不是“我需要一个解决方案,任何解决方案,快点!”

假设我的 C 程序中有一个 8 位缓冲区,我每秒更新 22050 次。如何让我的扬声器将其输出为波形?

【问题讨论】:

  • 不完全符合您的要求,但也许它也可以帮助您:stackoverflow.com/questions/379353/…
  • @quinmars libao 确实看起来很棒而且很轻巧。请把它作为一个答案,这样你就可以获得一些代表点。
  • 完成了,但是我没有找到任何关于libao支持OSX的参考

标签: c unix audio sound-synthesis


【解决方案1】:

没有 POSIX 音频 API 或类似的东西。因此,如果您想要 Linux、OSX 等上的声音支持,您需要一个包含不同操作系统的本机声音 API 的库。看看这个SO question。它不是直接要求 OSX,但大多数答案也应该适用于它,除了 libao。至少我在他们的主页上没有找到任何东西,说他们支持 OSX。

【讨论】:

  • libao-0.8.8\src\plugins\macosx :-)
  • 接受了这个,因为它更简单一些。 OS X 上的其他任何人,如果您无法使用手动编译的版本初始化驱动程序,请使用 MacPorts 安装它
【解决方案2】:

SDL 可以播放声音缓冲区。但是 PortAudio 可能会更好 PA 会在需要更多数据时调用您的 C 回调,然后您可以将其交给下一个缓冲区。其实很简单。

【讨论】:

  • +1 用于端口音频。一个简单的声音输出可以写在不到 20 行。打开一个输出流并写入它。完成!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 2010-10-30
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多