Hid hi; HidMsg msg; 0 => int device; if( me.args() ) me.arg(0) => Std.atoi => device; if( !hi.openKeyboard( device ) ) me.exit(); 1 => int setting1; 1 => int setting2; 1 => int setting3; 1 => int setting4; 105 => int beat; 0 => int beat1Active; 0 => int beat2Active; 0 => int beat3Active; 0 => int beat4Active; 0 => int beat5Active; 0 => int beat6Active; fun void beat1() { 16*beat::ms => dur T; T - (now % T) => now; Shakers shake => JCRev r => dac; .025 => r.mix; 23 => shake.which; 5 => shake.freq; 200 => shake.objects; while (beat1Active == 1) { 1 => shake.noteOn; beat::ms => now; if (setting1 >= 4) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; if (setting1 >= 2) { 1 => shake.noteOn; } beat::ms => now; if (setting1 >= 4) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; 1 => shake.noteOn; beat::ms => now; if (setting1 >= 4) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; if (setting1 >= 5) { 1 => shake.noteOn; } (beat/3)::ms => now; if (setting1 >= 5) { 1 => shake.noteOn; } (beat/3)::ms => now; if (setting1 >= 5) { 1 => shake.noteOn; } (beat/3)::ms => now; if (setting1 >= 3) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; if (setting1 >= 3) { 1 => shake.noteOn; } beat::ms => now; if (setting1 >= 4) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; beat::ms => now; } } fun void beat2() { 16*beat::ms => dur T; T - (now % T) => now; Shakers shake => JCRev r => dac; .025 => r.mix; 9 => shake.which; 5.490665 => shake.freq; 93.533102 => shake.objects; while (beat2Active == 1) { 1 => shake.noteOn; beat::ms => now; if (setting2 >= 3) { 1 => shake.noteOn; } beat::ms => now; if (setting2 >= 3) { 1 => shake.noteOn; } beat::ms => now; if (setting2 >= 3) { 1 => shake.noteOn; } beat::ms => now; 1 => shake.noteOn; beat::ms => now; beat::ms => now; if (setting2 >= 3) { 1 => shake.noteOn; } beat::ms => now; if (setting2 >= 3) { 1 => shake.noteOn; } beat::ms => now; 1 => shake.noteOn; beat::ms => now; if (setting2 >= 2) { 1 => shake.noteOn; } beat::ms => now; if (setting2 >= 2) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; beat::ms => now; beat::ms => now; beat::ms => now; beat::ms => now; } } fun void beat3() { 16*beat::ms => dur T; T - (now % T) => now; Shakers shake => JCRev r => dac; .025 => r.mix; 7 => shake.which; 1 => shake.freq; 200 => shake.objects; while (beat3Active == 1) { beat::ms => now; beat::ms => now; 1 => shake.noteOn; beat::ms => now; beat::ms => now; beat::ms => now; beat::ms => now; if (setting3 >= 2) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; beat::ms => now; beat::ms => now; 1 => shake.noteOn; beat::ms => now; beat::ms => now; if (setting3 >= 3) { 1 => shake.noteOn; } beat::ms => now; if (setting3 >= 3) { 1 => shake.noteOn; } beat::ms => now; if (setting3 >= 2) { 1 => shake.noteOn; } beat::ms => now; beat::ms => now; } } fun void beat4() { 16*beat::ms => dur T; T - (now % T) => now; ModalBar modey => JCRev r => dac; .025 => r.mix; 0.5 => modey.gain; ModalBar modey2 => JCRev r2 => dac; .025 => r2.mix; 0.5 => modey2.gain; [69, 72, 74, 76, 79, 81] @=> int pent[]; 1 => float short; 2 => float long; while (beat4Active) { if (setting4 == 1) { 8 => long; 4 => short; } else if (setting4 == 2) { 4 => long; 2 => short; } else if (setting4 == 3) { 2 => long; 1 => short; } Std.mtof(pent[Math.random2(0,5)]) => float pitch; pitch => modey.freq; 1 => modey.noteOn; if (setting4 == 4) { pitch*2 => modey2.freq; 1 => modey2.noteOn; } if (Math.random2f(0,1) > 0.25) { short*beat::ms => now; } else { long*beat::ms => now; } 1 => modey.noteOff; 1 => modey2.noteOff; } } 0 => int shift; 0.9 => float hard; fun void beat5() { 16*beat::ms => dur T; T - (now % T) => now; 12*beat::ms => now; ModalBar modey => JCRev r => dac; .025 => r.mix; 0 => modey.preset; hard => modey.stickHardness; [67, 70, 72, 72, 70, 67, 72, 65, 72, 70, 72, 65, 67] @=> int notes[]; [2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 8, 4] @=> int lengths[]; 0 => int position; while (beat5Active == 1) { if (position == 13) { 0 => position; } Std.mtof(notes[position] + shift) => modey.freq; 0.5 => modey.noteOn; (lengths[position]*beat)::ms => now; 1 => modey.noteOff; position++; } } fun void beat6() { 16*beat::ms => dur T; T - (now % T) => now; 12*beat::ms => now; ModalBar modey => JCRev r => dac; .025 => r.mix; 0 => modey.preset; hard => modey.stickHardness; [60, 63, 65, 60, 58, 57, 63] @=> int notes[]; [2, 2, 2, 6, 8, 8, 4] @=> int lengths[]; 0 => int position; while (beat6Active == 1) { if (position == 7) { 0 => position; } Std.mtof(notes[position] + shift) => modey.freq; 0.5 => modey.noteOn; (lengths[position]*beat)::ms => now; 1 => modey.noteOff; position++; } } while (true) { hi => now; while( hi.recv( msg ) ) { if( msg.isButtonDown() ) { <<>>; if (msg.which == 20) { if (setting1 < 5) { setting1++; } } else if (msg.which == 4) { if (setting1 > 1) { setting1--; } } else if (msg.which == 26) { if (setting2 < 5) { setting2++; } } else if (msg.which == 22) { if (setting2 > 1) { setting2--; } } else if (msg.which == 8) { if (setting3 < 5) { setting3++; } } else if (msg.which == 7) { if (setting3 > 1) { setting3--; } } else if (msg.which == 21) { if (setting4 < 5) { setting4++; } } else if (msg.which == 9) { if (setting4 > 1) { setting4--; } } else if (msg.which == 30) { if (beat1Active == 1) { 0 => beat1Active; 1 => setting1; } else { spork ~ beat1(); 1 => beat1Active; } } else if (msg.which == 31) { if (beat2Active == 1) { 0 => beat2Active; 1 => setting2; } else { spork ~ beat2(); 1 => beat2Active; } } else if (msg.which == 32) { if (beat3Active == 1) { 0 => beat3Active; 1 => setting3; } else { spork ~ beat3(); 1 => beat3Active; } } else if (msg.which == 33) { if (beat4Active == 1) { 0 => beat4Active; 1 => setting4; } else { spork ~ beat4(); 1 => beat4Active; } } else if (msg.which == 34) { if (beat5Active == 1) { 0 => beat5Active; } else { spork ~ beat5(); 1 => beat5Active; } } else if (msg.which == 35) { if (beat6Active == 1) { 0 => beat6Active; } else { spork ~ beat6(); 1 => beat6Active; } } else if (msg.which == 82) { 16*beat::ms => dur T; T - (now % T) => now; shift++; beat - 4 => beat; } else if (msg.which == 81) { shift--; } else if (msg.which == 44) { 1 => beat5Active; spork ~ beat5(); 1 => beat6Active; spork ~ beat6(); 12*beat::ms => now; 0 => beat1Active; 1 => setting1; 0 => beat2Active; 1 => setting2; 0 => beat3Active; 1 => setting3; 0 => beat4Active; 1 => setting4; } else if (msg.which == 40) { 16*beat::ms => dur T; T - (now % T) => now; 0 => beat1Active; 0 => beat2Active; 0 => beat3Active; 0 => beat4Active; 0 => beat5Active; 0 => beat6Active; } } } }