如何使用C在Linux中播放音调?

时间:2010-02-04 20:55:01

标签: c linux audio random

我正在尝试编写一个程序,根据一组简单的规则随机生成音乐。我希望程序能够生成自己的声音,而不是每个音符都有一个带音频的文件。有谁知道这样做的简单方法?将声音变成多声道会很好(但不是必不可少的),而且我想要一个使用C的Linux解决方案。

3 个答案:

答案 0 :(得分:5)

我建议你试试PortAudio库。它是一个精简的跨平台库,可以抽象出音频输出功能。

它附带了一些小例子。其中一个播放单个正弦波,一个同时播放一串正弦波。由于这些示例已经完成了您所需要的90%,因此您应该在不到半小时的时间内启动并运行音频。

提示:PortAudio的最佳文档在头文件中!

答案 1 :(得分:0)

您可以尝试查找C midi音序器(例如MIDI Sequencer)。另请参阅构建.au格式的音频文件(即查看.au标头和声音数据格式的规格)。您将无法使用.wav格式,因为它需要在播放前填充标题中的长度。

答案 2 :(得分:0)

Here is an ALSA example播放纯正弦波音调。不幸的是,我猜,它也证明了为什么你可能不想直接针对ALSA库这样做。