波形など

入れ子

またまたWin32Tests.sc

{ SinOsc.ar(LFNoise0.kr([8, 12], 200, [300, 400]), 0, 0.1) }.play;

これというのはもしかして、SinOscの中にLFNoise0が入れ子になってるっていう。
気になったらすぐ書いて試してみる。

{ SinOsc.ar(1000, 0, SinOsc.ar(1)) }.play; 

SinOscの中にSinOsc。mulのところに入ってる。音量が変わるので、mulとは音量のことか。

{ SinOsc.ar(1000, 0, SinOsc.ar(10)) }.play; 

周波数を上げたらうわんうわんうわんがうろろろろとなった。

波形をみる

音のデータというのは、要は数字であって、数字で波形が書いてある。確か。
playではなくplotとしてやると、波形がグラフで見られる。

{ SinOsc.ar(1000) }.plot;

このように-1と1の間で波打ってるので、これをmulに当ててやると、音量がうわわわわとなる。

{ SinOsc.ar(10) }.plot;

倍率を変えると見やすいかも。0.1秒間で描画。

{ SinOsc.ar(10) }.plot(0.1);

10Hzのサイン波ですが、これ単体だと聴こえません。
音が低すぎる。というか波が遅すぎる。
これをさっきみたいに1000Hzのサイン波の中に入れてやると。

{ SinOsc.ar(1000, 0, SinOsc.ar(10)) }.plot(0.1);

10Hzのサイン波が音量の変化として聴こえてくることになる。LFOというやつですね。
ちなみに音量とは感じ方の話であって、正確には波形の振幅と言う。
つまり音のデータとは振幅データである。確か。
波の振れ幅が大きいと音量は大きくなるが、これが1を超えると音が割れる
振幅データは-1〜1の範囲内の数字しか使えない。
±1より大きい数字を出そうとするとどうなるかというと、単に波形がちょん切られる。ゆえに波形が壊れる。

{ SinOsc.ar(100, 0, SinOsc.ar(0.3, 0, 10)) }.plot(0.1);

波が壁にぶち当たって変形しておりますね。
これを音で聴くとどうなるか。波形が壊れると言っても別にPCが壊れるわけではない。

{ SinOsc.ar(100, 0, SinOsc.ar(0.3, 0, 10)) }.play;

何となく音色が変わったような。
ところでplotしてるうちにPost Windowが挙動不審になるかも知れません。
その場合、ある方によれば「SwingOSC.scというファイルを探し出し、deathBounces = 4をdeathBounces = 20とかに書き換えてやると良い」そうです。
なぜ良いのかは不明。
他にもGUI周りが未実装なのか動かないとか、何かと謎多きPsyColliderですが、感謝の心を胸に我々は前に進みませう。

{ SinOsc.ar(SinOsc.ar(0.5, 0, 1000)) }.play; 

今度は周波数のところにSinOscを入れてみた。
この場合は-1〜1だと大した変化がないので、中のSinOscの振幅を1000倍している。
周波数は直接音として出てくるわけではない(?)ので-1〜1以上でも大丈夫なのである。
つまり-1000〜1000Hzを往復しているわけだが負の周波数て何やねんと思うかも知れない。
負の周波数は波形が裏返しになるが、音の高さは変わらない。
こんどはscopeで見てみます。

{ SinOsc.ar(SinOsc.ar(0.5, 0, 1000)) }.scope; 

波形がバネみたいにのびたりちぢんだり。
波形って本当に面白いですね。
ところで

s.scope;

とやると現在の出音を見ることができるらしい。