SuperColliderをやる5(和音鳴らす)
さっさと寝ようと思ったのに寝れなかったのでちょっと書いた。クラス定義とか見るよりもやっぱり鳴らす方が本懐(?)だろと思ったので鳴らす。再生するとドレミファソラシのどれかの9thが鳴るコード。
{ var array = [0,2,4,5,7,9,11]; var add = (array.size - 1).rand; var freq = 57 + array.at(add); var freqs = []; var synths = []; var first = 4; var second = 3; /* if((add == 0 || add == 3 || add == 4),{ second = second - 1; } ,{ first = first - 1; }); */ freqs = freqs.add(freq); freq = freq + first; freqs = freqs.add(freq); freq = freq + second; freqs = freqs.add(freq); freq = freq + first; freqs = freqs.add(freq); freq = freq + second; freqs = freqs.add(freq); add.postln; freqs.postln; freqs.do({ arg freq; synths = synths.add(SinOsc.ar([freq.midicps,freq.midicps * 1])); }); Mix(synths) * Line.kr(0.05, 0, 1.5, doneAction: Done.freeSelf); }.play;
解説というか備忘録はまたそのうち(忘れる)。
とりあえず最後の方のfreqs.do内のsynths = synths.add(SinOsc.ar([freq.midicps,freq.midicps * 1]));
の箇所を変えるとちょっと楽しい。配列の右側(変な表現)は右チャンネルの周波数が入っているので * 1の数値を弄ると変なうねりが出る。1.0005くらいだとちょうどいい感じ。だんだん上げていくと違和感が強くなってきて1.2だとまぁ当たり前だけどかなり気持ち悪い。けど1.5だと割と聴ける感じだったりする。感覚的に当たり前といえば当たり前って感じだけど(5度を足したみたいなシンセプリセットはたくさんあるし)実際に動かしてみるとへーな感じ(語彙なし)。