周波数変調
正弦波の次はその周波数変調。調べたところ2通りあるようで、その1つはOsciliの4番目の引数に周波数をコントロールするためにサウンドオブジェクトを代入できる、下のコードではmodですね。
from sndobj import * import time tab = HarmTable() mod = Oscili(tab, 2, 40) osc = Oscili(tab, 440, 3000, mod) #この部分 rtout = SndRTIO(1, SND_OUTPUT) rtout.SetOutput(1, osc) thread = SndThread() thread.AddObj(mod) thread.AddObj(osc) thread.AddObj(rtout, SNDIO_OUT) thread.ProcOn() time.sleep(5) thread.ProcOff()
当然もうひとつの方法にも触れておく。上のコードを書きなおしSetFreqというメソッドを使う場合。
from sndobj import * import time tab = HarmTable() mod = Oscili(tab, 2, 40) osc = Oscili(tab, 440, 3000) rtout = SndRTIO(1, SND_OUTPUT) osc.SetFreq(440, mod) #この部分 rtout.SetOutput(1, osc) thread = SndThread() thread.AddObj(mod) thread.AddObj(osc) thread.AddObj(rtout, SNDIO_OUT) thread.ProcOn() time.sleep(5) thread.ProcOff()