// patch
BlowHole hole => dac;
// scale
[0, 2, 4, 7, 9, 11] @=> int scale[];
<<< "reed stiffness:", hole.reed() >>>;
<<< "noise gain:", hole.noiseGain() >>>;
<<< "tonehole state:", hole.tonehole() >>>;
<<< "register state:", hole.vent() >>>;
<<< "breath pressure:", hole.pressure() >>>;
// infinite time loop
while( true )
{
// change parameters
if( Math.random2f(0,1) > .75 )
{
Math.random2f( 0, 1 ) => hole.reed;
Math.random2f( 0, 1 ) => hole.noiseGain;
Math.random2f( 0, 1 ) => hole.tonehole;
Math.random2f( 0, 1 ) => hole.vent;
Math.random2f( 0, 1 ) => hole.pressure;
// print
<<< "going...", "" >>>;
<<< "reed stiffness:", hole.reed() >>>;
<<< "noise gain:", hole.noiseGain() >>>;
<<< "tonehole state:", hole.tonehole() >>>;
<<< "register state:", hole.vent() >>>;
<<< "breath pressure:", hole.pressure() >>>;
}
// set freq
scale[Math.random2(0,scale.size()-1)] => int note;
33 + Math.random2(0,4)*12 + note => Std.mtof => hole.freq;
<<< "note: ", Std.ftom( hole.freq() ) >>>;
// go
.8 => hole.noteOn;
// advance time
1::second => now;
}