void audioCB(AudioIOData& io){ using namespace gam::rnd; while(io()){ if(tmr()){ if(prob()) rng++; } float mx = mix.hann(); float s = (oscA.up() - oscB.up())*mx + (osc1.up() - osc2.up())*(1-mx); fshift1.freq(modfs1.tri()*2); fshift2.freq(modfs2.tri()*2); s = ((fshift1(s) + fshift2(s))/2 + s)/1; if(stft(s)){ rnd::push(rng); float prb = rnd::uni(0.3, 0.1); for(unsigned k=0; k<stft.numBins(); ++k){ //float frac = double(k)/stft.numBins(); float m = pick(pick(2,1, 0.1),0, prb); stft.bins(k) *= m; } rnd::pop(); stft.zeroEnds(); } s = stft()*0.5; //float s0=s, s1=s; float s0 = chrA3(chrA2(chrA1(s))); float s1 = chrB3(chrB2(chrB1(s))); io.out(0) = s0; io.out(1) = s1; } }