在Mac上生成音调/正弦波的简单方法? (红宝石会很好)

时间:2009-10-19 05:14:23

标签: ruby cocoa macos audio core-audio

我正在编写一个程序,包括播放正弦波和正弦波组合......它必须在Mac上运行,我正在寻找一个可以使用的简单 API。我对ObjC,C,C ++,Ruby,Python等开放....我不关心什么语言,只要它只是几行代码。但Ruby会很好: - )

在Linux上,您可以写入/ dev / dsp,/ dev / sound等,但不能写入mac。我知道如何生成正弦波,但问题是将我创建的PCM样本传送到音频硬件。我知道/ Developer / Examples / CoreAudio / SimpleSDK / DefaultOutputUnit中的示例代码,但它有数百行荒谬的Core Audio / AudioUnit代码,我想要一些简单易用的东西。

3 个答案:

答案 0 :(得分:5)

一种方法是使用PyAudio

import pyaudio, array, math

p = pyaudio.PyAudio()
stream = p.open(rate=44100, channels=1, format=pyaudio.paFloat32, output=True)
stream.write(array.array('f',
    (.25 * math.sin(i / 10.) for i in range(44100))).tostring())
stream.close()
p.terminate()

不是很干净的代码,但它可以正常工作

PyAudio不是标准的,但是可以通过easy_install(我使用python2.5)

获得

答案 1 :(得分:1)

您可以将PCM转储到磁盘上的wave文件中,并使用/ usr / bin / afplay,它是OSX上的标准二进制文件。

答案 2 :(得分:0)

修改: Bloopsaphone

根据您的需要,CSound 可能需要查看,但可能并不完全是您的想法。