楽器をスイッチ
ノイズをローパスフィルタに通している状態、今、ローパス・フィルタからハイパス・フィルタにスイッチしたい。この場合、変数に新たにハイパスフィルタを代入してもうまくない、落ちたり、グリッチが起きるだろう。楽器の上位のクラスであるSndObjを上手に使う。
from sndobj import * import time noise = Rand(5000) filter = LoPass(300, noise) #ローパス・フィルタ filter2 = HiPass(3000, noise) #ハイパス・フィルタ out = SndObj(filter) #SndObjにローパス・フィルタ rtout = SndRTIO(1, SND_OUTPUT) rtout.SetOutput(1, out) thread = SndThread() thread.AddObj(noise) thread.AddObj(filter) thread.AddObj(filter2) thread.AddObj(out) thread.AddObj(rtout, SNDIO_OUT) thread.ProcOn() time.sleep(5) out.SetInput(filter2) #5秒後にSndObjにハイパス・フィルタ time.sleep(5) thread.ProcOff()
5秒後にハイパス・フィルタにスイッチします。例えばノイズを正弦波のオシレータにスイッチするときも同様にSndObjを使用する。