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度を足したみたいなシンセプリセットはたくさんあるし)実際に動かしてみるとへーな感じ(語彙なし)。