packages feed

hsc3-graphs-0.15: gr/slow-beating-harmonic-sines.scd

// slow beating harmonic sines (jmcc) #7

"/home/rohan/sw/hsc3-graphs/gr/overlap-texture.scd".load;

~xfade_texture.({
    var n = 8; // number of notes
    var d = 0.4; // beat freq deviation
    var m = 5; // harmonics per note
    var p = Array(m*n);
    var q = Array(m*n);
    var k = 24 + 12.rand;
    n.do({
        var freq = (#[0,2,4,5,7,9].choose + (7.rand*12) + k).midicps;
        p.add(freq + d.rand2);
        p.add(freq*2 + d.rand2);
        p.add(freq*4 + d.rand2);
        p.add(freq*5 + d.rand2);
            p.add(freq*6 + d.rand2);
    });
    n.do({
        arg i;
        var freq = p.at(m*i);
        q.add(freq + d.rand2);
        q.add(freq*2 + d.rand2);
        q.add(freq*4 + d.rand2);
        q.add(freq*5 + d.rand2);
        q.add(freq*6 + d.rand2);
    });
    z = [`[p, nil, Array.rand(m*n, 0, 2pi)],
         `[q, nil, Array.rand(m*n, 0, 2pi)]
            ];
    Klang.ar(z) * (0.1/n);
}, 6, 3);