(
play {
    u = [ 2, 3, 5, 7, 11, 13, 17, 19, 23 ].collect {|x,j|
        f = 1/x;
        t = Impulse.ar(f);
        p = Phasor.kr(t, f/ControlRate.ir);
        p = HPZ1.kr(p) < 0;
        o = 3.collect {|i| SinOsc.ar(((164*(j+1))/(i+1)), p * 0.5pi) * Decay.ar(t, 1/f+i) * 1/(i+1).sqrt };
        o.sum.softclip;
    };

    GVerb.ar(0.5*Splay.ar(u).sin,99,20).flop.sum.tanh
}
)