オーディオレートとコントロールレートとベクトルの大きさ
大幅に書き換えました。(2007 4/13)
昨日の日記で取り上げたローパスフィルタは引数が省略されていました。多くの(すべてではない)SndObjにおいて最後2つの引数はvector sizeとサンプリングレートです。
まずvector size(ベクトルの大きさ)ですが、これはコンピュータが1度に計算する数です。音質には関係無くタイミングや動作に影響を与え、サイズを小さくすると処理の遅れは少なくなるが動作が重くなるんでしたか。
次にサンプリングレートをわざわざ1つ1つのSndObjで指定できるのは、音を出すオシレータ(キャリア)か、コントロールするオシレータ(モジュレータ)かでサンプリングレートを変更したいからです。つまりコントロールする場合は低いレートで良いのです、直接に音質にかかわらないから。
tab = HarmTable() mod = Oscili(tab, 2, 40, None, None, 256, 64) osc = Oscili(tab, 440, 3000, mod, None, 256, 44100) rtout = SndRTIO(1, SND_OUTPUT) rtout.SetOutput(1, osc)
もちろんこれを意図的に応用し、歪んだ音を作るということも考えられます。