// STK Moog
// by: phil
Moog mog => dac;
440.0 => mog.freq;
0.0 => float t;
fun void varmod()
{
while ( true )
{
0.5 + 0.4 * Math.sin( t * 0.1 ) => mog.modDepth;
0.5 + 0.4 * Math.sin( t * 0.2 ) => mog.modSpeed;
0.5 + 0.4 * Math.sin( t * 0.3 ) => mog.filterQ;
0.5 + 0.4 * Math.sin( t * 0.4 ) => mog.filterSweepRate;
10::ms => now;
t + 0.01 => t;
}
}
fun void atouch( float imp)
{
imp => float atouch;
while ( atouch >= 0.0 )
{
atouch => mog.afterTouch;
atouch - 0.05 => atouch;
10::ms => now;
}
}
// spork varmod shred
spork ~varmod();
0.0 => float vel;
while ( true )
{
// Math.random2f ( 440.0, 880.0 ) => mog.freq;
278.43 => mog.freq;
Math.random2f(0.5, 0.8) => vel;
vel => mog.noteOn;
spork ~ atouch(vel);
// note: Math.randomf() returns value between 0 and 1
if ( Math.randomf() > 0.65 ) { 1::second => now; }
else { 0.5::second => now; }
}