箇条書き
{ SinOsc.ar(SinOsc.ar(1, 0, 1000)) }.play;
入れ子でもずらずら書けるんだけど、見にくいよね。
{ a = SinOsc.ar(1, 0, 1000); b = SinOsc.ar(a); // 周波数をaにする }.play;
さっきと同じ意味だが、こんな感じに分解して書ける。
箇条書き、と言うのかわかりませんが、だいぶ見やすくなった。
また変数を再利用するつもりでなければこうも書ける。
{ a = SinOsc.ar(1, 0, 1000); a = SinOsc.ar(a); }.play;
それにしてもさっきから音が左に寄っててきもすけわり
{ a = SinOsc.ar(1000); b = Pan2.ar(a, 0); // 定位を中央(0)にする }.play;
真ん中になった。何故かというのはPan2のヘルプを見よ。
(追記:定位を中央にするだけなら以下の書き方でもありだそうです)
{ a = SinOsc.ar(1000); b = [a,a]; // 左右に並べる }.play; // または a = SinOsc.ar(1000); b = a!2; // 上と同じ意味 }.play;
いたずらしてPan2にSinOscを入れてしまいました。
{ a = SinOsc.ar(1000); b = SinOsc.ar(1); c = Pan2.ar(a, b); // 定位をbにする }.play;
左右に動く。
こうなればもう何でもありじゃ
{ a = SinOsc.ar(3, 0, 1000); b = SinOsc.ar(1); c = SinOsc.ar(a, 0, b); d = SinOsc.ar(0.3); e = Pan2.ar(c, d); }.play;
いきなりわけわからんコードになった。
何やら妙に緊迫した雰囲気の出音。
{ a = SinOsc.ar(400); b = SinOsc.ar(500); c = a + b; // aとbを足す d = Pan2.ar(c, 0, 0.5); }.play;
SinOscどうしを足す?と思ったら、単に2つの音が混ざる。
音データは数字だから、計算できる。って書くと当たり前なようだが、やっぱり面白い。
振幅1の音を2つ足したから振幅の合計が2になった。ゆえにPan2で半分にしてあげる。
{ a = SinOsc.ar(400); b = SinOsc.ar(10); c = a * b; // aとbを掛ける d = Pan2.ar(c, 0); }.play;
掛け算でも音量の変化が作れる。慣れるとこの方がわかりやすい。
{ a = SinOsc.ar(1, 0, 1000); b = SinOsc.ar(a); c = SinOsc.ar(500); d = b * c; e = Pan2.ar(d, 0); }.play;
これまた掛け算ですが、今度はなんかゴエゴエ言ってる。
音どうしを掛けるのはリングモジュレーションと呼ばれるが、可聴域内の2音を掛けるとこういう謎の音色になる。
モジュレーションによる音作りにもいろいろあるようだが、それはともかく、箇条書きでいろんな事ができそうだとわかった。