// STK BandedWG // patch BandedWG bwg => dac; // scale [0, 2, 4, 7, 8, 11] @=> int scale[]; // infinite time loop while( true ) { // ding! Math.random2f( 0, 1 ) => bwg.pluck; Math.random2f( 0, 128 ) => float bowPressure; Math.random2f( 0, 128 ) => float bowMotion; Math.random2f( 0, 128 ) => float strikePosition; Math.random2f( 0, 128 ) => float vibratoFreq; Math.random2f( 0, 128 ) => float gain; Math.random2f( 0, 128 ) => float bowVelocity; Math.random2f( 0, 128 ) => float setStriking; Math.random2f( 0, 3 ) => float preset; Math.random2f( 0, 1) => bwg.bowRate; bwg.controlChange( 2, bowPressure); bwg.controlChange( 4, bowMotion); bwg.controlChange( 8, strikePosition); bwg.controlChange( 11, vibratoFreq); bwg.controlChange( 1, gain); bwg.controlChange( 128, bowVelocity); bwg.controlChange( 64, setStriking); <<< "---", "" >>>; <<< "strike position:", bwg.strikePosition() >>>; <<< "bow rate:", bwg.bowRate() >>>; <<< "bow Pressure:", bwg.bowPressure() >>>; // set freq scale[Math.random2(0,scale.size()-1)] => int winner; 57 + Math.random2(0,2)*12 + winner => Std.mtof => bwg.freq; // go .8 => bwg.noteOn; // advance time 1::second => now; 1.0 => bwg.noteOff; .5::second => now; <<< "pluck -> bow", "" >>>; .8 => bwg.startBowing; 1::second => now; 1.0 => bwg.stopBowing; <<< "--", "" >>>; bwg.controlChange(16, Math.random2(0, 3)); <<< "preset:", bwg.preset() >>>; <<< "strike position:", bwg.strikePosition() >>>; <<< "bow rate:", bwg.bowRate() >>>; <<< "bow Pressure:", bwg.bowPressure() >>>; // set freq 57 + Math.random2(0,2)*12 + winner => Std.mtof => bwg.freq; // go .8 => bwg.noteOn; // advance time 1::second => now; 1.0 => bwg.noteOff; .5::second => now; <<< "pluck -> bow", "" >>>; .8 => bwg.startBowing; 1::second => now; 1.0 => bwg.stopBowing; }