2009-10-19 41 views
3

我正在寫一個程序,涉及回放正弦波和正弦波的組合...它必須在Mac上運行,我正在尋找一個簡單的我可以使用的API。我對ObjC,C,C++,Ruby,Python等都是開放的......我不在乎什麼語言,只要它只是幾行代碼即可。但Ruby會很好:-)在mac上生成音調/正弦波的簡單方法是什麼? (紅寶石會很好)

在Linux上,您可以寫入/ dev/dsp,/ dev/sound等,但不能在mac上寫入。我知道如何產生一個正弦波,但問題是我創建的音頻硬件PCM樣本。我知道/ Developer/Examples/CoreAudio/SimpleSDK/DefaultOutputUnit中的示例代碼,但它有幾百行荒謬的Core Audio/AudioUnit代碼,我想要一些簡單的工作。

回答

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

看起來我也可以直接在ObjC應用程序中使用PortAudio。 – 2009-10-19 18:25:44

1

您可以將您的PCM轉儲到磁盤上的波形文件,並使用/ usr/bin/afplay這是OSX上的標準二進制文件。

+0

關於磁盤速度和空間。將其保存在RAM中。 – 2010-06-10 21:24:28

0

編輯:Bloopsaphone

根據您的需要,CSound可能是可以研究的東西,雖然它可能不是你想到的。