PySndObjはじめました。
ChucKも続けていきますがちょっと休憩。グループで書く日記もあるようなのでそちらのほうに移していこうかと。次はNyquistかCommonLispMusicなどの関数型の音響言語を勉強しようと思っていたんですが、なんかノイジーパイソンって事で。
さてPySndObjですが、サイン波を数秒鳴らすところからはじめてみましょう。
from sndobj import * import time tab = HarmTable() osc = Oscili(tab, 440, 3000) outp = SndRTIO(1, SND_OUTPUT) outp.SetOutput(1, osc) thread = SndThread() thread.AddObj(osc) thread.AddObj(outp, SNDIO_OUT) thread.ProcOn() time.sleep(5) thread.ProcOff()
スレッドを使わない方法も考えられますが、これが基本形だと思います。オシレータOsciliの第1引数に波形テーブルで、サイン波や矩形波を作るようにするようです。詳しくは明日以降って事で。
気になったのがOsciliの第3引数が振幅(音量)なのですが、マニュアルでは標準が1なんですがそれだと音が全く聞こえません。3000ぐらいに設定してみると聞こえます。