// logistic equation // chaotic for 3.57 < lambda < 4 3.57 => float lambda; 0.1 => float x; 0.15 => float y; now + 500::second => time later; SinOsc m => SinOsc c => LPF l => HPF h => JCRev r => Gain g => dac; c => m; SinOsc funs => r => g => dac; SinOsc funs2 => r => g => dac; c.freq() * 0.03 => funs.freq; 0.5 => funs.gain; 0.5 => funs2.gain; 0.1 => g.gain; 0.1 => r.mix; 2000.0 => l.freq; 10.0 => h.freq; 2200 => c.freq; 500 => m.freq; 100 => m.gain; 2 => c.sync; 2 => m.sync; //"../220b/hw0/powersnareverb.wav" => buf.read; 1 => int increase; while( x < 1 && now < later ) { <<< lambda >>>; // logistic function lambda*(x-Math.pow(x, 2)) => x; lambda*(y-Math.pow(y, 2)) => y; 500*x => m.freq; 600*y => m.gain; 50*x => l.Q; 100*y => h.Q; // ramp up if( lambda < 4.0 && increase == 1 ) { lambda + 0.001 => lambda; c.freq() * 0.03 => funs.freq; m.freq( ) * 0.3 => funs2.freq; } // switch if( lambda > 3.999999 && increase == 1 ) { 0 => increase; } // ramp down if( lambda > 3.57 && increase == 0 ) { lambda - 0.001 => lambda; m.freq( ) * 0.3 => funs2.freq; } // switch if( lambda <= 3.57 && increase == 0 ) { 1 => increase; } (x*1020)::ms => now; } 50::second => now;