Python でプロシージャル サウンドを作成し、ファイルに保存するのではなく、即座に再生したいと考えています。これには何を使用すればよいですか?組み込みモジュールをそのまま使用できますか、それとも追加のモジュールが必要ですか?
たぶん、ピッチやボリュームなどを変更したくなるでしょう。
Using numpy along with scikits.audiolab
should do the trick. audiolab
has a play
function which supports the ALSA and Core Audio backends.
Here's an example of how you might produce a simple sine wave using numpy:
from __future__ import division
import numpy as np
def testsignal(hz,amplitude = .5,seconds=5.,sr=44100.):
'''
Create a sine wave at hz for n seconds
'''
# cycles per sample
cps = hz / sr
# total samples
ts = seconds * sr
return amplitude * np.sin(np.arange(0,ts*cps,cps) * (2*np.pi))
To create five seconds of a sine wave at 440 hz and listen to it, you'd do:
>>> from scikits.audiolab import play
>>> samples = testsignal(440)
>>> play(samples)
Note that play
is a blocking call. Control won't be returned to your code until the sound has completed playing.
この Python wiki ページを確認してください。特に「Python での音楽プログラミング」セクション。