// run.ck // by Michael Svolos // used with gran.ck to control Gran object and play sound files granularly // for MUSIC 220b final project "glacial sky" //filenames ["28_E1_tuba.wav", "29_F1_tuba.wav", "30_F#1_tuba.wav", "31_G1_tuba.wav", "32_Ab1_tuba.wav", "33_A1_tuba.wav", "34_Bb1_tuba.wav", "35_B1_tuba.wav", "36_C2_tuba.wav", "37_C#2_tuba.wav", "38_D2_tuba.wav", "39_Eb2_tuba.wav", "40_E2_tuba.wav", "41_F2_tuba.wav", "42_F#2_tuba.wav", "43_G2_tuba.wav", "44_Ab2_tuba.wav", "45_A2_tuba.wav", "46_Bb2_tuba.wav", "47_B2_tuba.wav", "48_C3_tuba.wav", "49_C#3_tuba.wav", "50_D3_tuba.wav", "51_Eb3_tuba.wav", "52_E3_tuba.wav", "53_F3_tuba.wav", "54_F#3_tuba.wav", "55_G3_tuba.wav", "56_Ab3_tuba.wav", "57_A3_tuba.wav", "58_Bb3_tuba.wav"] @=> string tubaFilenames[]; ["44_Ab2_sax.wav", "45_A2_sax.wav", "46_Bb2_sax.wav", "47_B2_sax.wav", "48_C3_sax.wav", "49_C#3_sax.wav", "50_D3_sax.wav", "51_Eb3_sax.wav", "52_E3_sax.wav", "53_F3_sax.wav", "54_F#3_sax.wav", "55_G3_sax.wav", "56_Ab3_sax.wav", "57_A3_sax.wav", "58_Bb3_sax.wav", "59_B3_sax.wav", "60_C4_sax.wav", "61_C#4_sax.wav", "62_D4_sax.wav", "63_Eb4_sax.wav", "64_E4_sax.wav", "65_F4_sax.wav", "66_F#4_sax.wav", "67_G4_sax.wav", "68_Ab4_sax.wav", "69_A4_sax.wav", "70_Bb4_sax.wav", "71_B4_sax.wav", "72_C5_sax.wav", "73_C#5_sax.wav"] @=> string saxFilenames[]; ["50_D3_clarinet.wav", "51_Eb3_clarinet.wav", "52_E3_clarinet.wav", "53_F3_clarinet.wav", "54_F#3_clarinet.wav", "55_G3_clarinet.wav", "56_Ab3_clarinet.wav", "57_A3_clarinet.wav", "58_Bb3_clarinet.wav", "59_B3_clarinet.wav", "60_C4_clarinet.wav", "61_C#4_clarinet.wav", "62_D4_clarinet.wav", "63_Eb4_clarinet.wav", "64_E4_clarinet.wav", "65_F4_clarinet.wav", "66_F#4_clarinet.wav", "67_G4_clarinet.wav", "68_Ab4_clarinet.wav", "69_A4_clarinet.wav", "70_Bb4_clarinet.wav", "71_B4_clarinet.wav", "72_C5_clarinet.wav", "73_C#5_clarinet.wav", "74_D5_clarinet.wav", "75_Eb5_clarinet.wav", "76_E5_clarinet.wav", "77_F5_clarinet.wav", "78_F#5_clarinet.wav", "79_G5_clarinet.wav", "80_Ab5_clarinet.wav", "81_A5_clarinet.wav", "82_Bb5_clarinet.wav", "83_B5_clarinet.wav", "84_C6_clarinet.wav"] @=> string clarinetFilenames[]; ["76_E5_piccolo.wav", "77_F5_piccolo.wav", "78_F#5_piccolo.wav", "79_G5_piccolo.wav", "80_Ab5_piccolo.wav", "81_A5_piccolo.wav", "82_Bb5_piccolo.wav", "83_B5_piccolo.wav", "84_C6_piccolo.wav", "85_C#6_piccolo.wav", "86_D6_piccolo.wav", "87_Eb6_piccolo.wav", "88_E6_piccolo.wav", "89_F6_piccolo.wav", "90_F#6_piccolo.wav", "91_G6_piccolo.wav", "92_Ab6_piccolo.wav", "93_A6_piccolo.wav", "94_Bb6_piccolo.wav", "95_B6_piccolo.wav", "96_C7_piccolo.wav", "97_C#7_piccolo.wav", "98_D7_piccolo.wav", "99_Eb7_piccolo.wav"] @=> string piccoloFilenames[]; tubaFilenames.size() + saxFilenames.size() + clarinetFilenames.size() + piccoloFilenames.size() => int numNotes; //initializing pan, reverb objects Pan2 tubaPan[tubaFilenames.size()]; Pan2 saxPan[saxFilenames.size()]; Pan2 clarinetPan[clarinetFilenames.size()]; Pan2 piccoloPan[piccoloFilenames.size()]; //using gverb because it's better GVerb gverbL => dac.chan(0); GVerb gverbR => dac.chan(1); gverbL.roomsize(30); gverbL.revtime(4::second); gverbL.damping(0.7); gverbL.dry(0.5); gverbR.roomsize(30); gverbR.revtime(4::second); gverbR.damping(0.7); gverbR.dry(0.5); //initializing Gran object for each of the 120 sound files Gran tubas[tubaFilenames.size()]; <<< tubaFilenames.size() + " tubas">>>; <<< saxFilenames.size() + " saxes">>>; <<< clarinetFilenames.size() + " clarinets">>>; <<< piccoloFilenames.size() + " piccolos">>>; <<< numNotes + " total">>>; for( 0 => int i; i < tubaFilenames.size(); 1 +=> i ) { tubas[i] => tubaPan[i]; tubas[i].setFile("tuba/" + tubaFilenames[i]); tubas[i].setGain(0.3); tubaPan[i].pan(-1. + 2. * i / 120.); tubaPan[i].left => gverbL; tubaPan[i].right => gverbR; <<< -1. + 2. * i / 120. >>>; } Gran saxes[saxFilenames.size()]; for( 0 => int i; i < saxFilenames.size(); 1 +=> i ) { saxes[i] => saxPan[i]; saxes[i].setFile("sax/" + saxFilenames[i]); saxes[i].setGain(0.07); saxPan[i].pan(-1. + 2. * (31. + i) / 120.); saxPan[i].left => gverbL; saxPan[i].right => gverbR; <<< -1. + 2. * (31. + i) / 120 >>>; } //run this again with new sax gain - reverb probably good for now Gran clarinets[clarinetFilenames.size()]; for( 1 => int i; i < clarinetFilenames.size(); 1 +=> i ) { clarinets[i] => clarinetPan[i]; clarinets[i].setFile("clarinet/" + clarinetFilenames[i]); clarinets[i].setGain(0.13); clarinetPan[i].pan(-1. + 2. * (61. + i) / 120.); clarinetPan[i].left => gverbL; clarinetPan[i].right => gverbR; <<< -1. + 2. * (61. + i) / 120. >>>; } Gran piccolos[piccoloFilenames.size()]; for( 0 => int i; i < piccoloFilenames.size(); 1 +=> i ) { piccolos[i] => piccoloPan[i]; piccolos[i].setFile("piccolo/" + piccoloFilenames[i]); piccolos[i].setGain(0.1); piccoloPan[i].pan(-1. + 2. * (96. + i) / 120.); piccoloPan[i].left => gverbL; piccoloPan[i].right => gverbR; <<< -1. + 2. * (96. + i) / 120. >>>; } // -------------------------------------------------------------------------------------------------------- //Gesture 1: clusters w changing differences //this is achieved decently easily by changing the i++ value to something other than 1, a technique I used a few times //in this piece //I guess technology does shape art that's made by it.... //the changes are timed so that each instrument changes notes right when it ends now => time start; for( 0 => int i; i < tubaFilenames.size(); 7 +=> i ) { spork ~tubas[i].play(11::second + 12000::ms - i*(5)::ms, 0, 2000::ms, 10::ms); (3000/5)::ms => now; <<< i + " tubaa ">>>; } for( 0 => int i; i < saxFilenames.size(); 7 +=> i ) { spork ~saxes[i].play(11::second + 9000::ms - i*(5)::ms, 0, 2000::ms, 10::ms); (3000/5)::ms => now; <<< i + " sax " >>>; } for( 0 => int i; i < clarinetFilenames.size(); 7 +=> i ) { spork ~clarinets[i].play(9::second + 6000::ms - i*(5)::ms, 0, 2000::ms, 10::ms); (3000/5)::ms => now; <<< i + " clar " >>>; } for( 0 => int i; i < piccoloFilenames.size(); 7 +=> i ) { spork ~piccolos[i].play(5::second + 3000::ms - i*(4)::ms, 0, 2000::ms, 10::ms); (3000/4)::ms => now; <<< i + " picc " >>>; } //12 <<< 0 >>>; 5::second => now; <<< 5 >>>; //17 for( 0 => int i; i < piccoloFilenames.size(); 6 +=> i ) { spork ~piccolos[i].play(4::second, 0, 0::ms, 10::ms); //300::ms => now; } 4::second => now; <<< 9 >>>; //21 for( 0 => int i; i < piccoloFilenames.size(); 5 +=> i ) { spork ~piccolos[i].play(8::second, 0, 0::ms, 10::ms); //300::ms => now; } for( 0 => int i; i < clarinetFilenames.size(); 8 +=> i ) { spork ~clarinets[i].play(20::second, 0, 0::ms, 10::ms); //300::ms => now; } 2::second => now; <<< 11 >>>; //23 for( 0 => int i; i < tubaFilenames.size(); 9 +=> i ) { spork ~tubas[i].play(12::second, 0, 0::ms, 10::ms); //300::ms => now; } for( 0 => int i; i < saxFilenames.size(); 9 +=> i ) { spork ~saxes[i].play(10::second, 0, 0::ms, 10::ms); //300::ms => now; } 6::second => now; <<< 17 >>>; //29 for( 0 => int i; i < piccoloFilenames.size(); 4 +=> i ) { spork ~piccolos[i].play(5::second, 0, 0::ms, 10::ms); //300::ms => now; } 2::second => now; <<< 19 >>>; //31 for( 0 => int i; i < clarinetFilenames.size(); 10 +=> i ) { spork ~clarinets[i].play(11::second, 0, 0::ms, 10::ms); //300::ms => now; } 2::second => now; <<< 21 >>>; //33 for( 0 => int i; i < saxFilenames.size(); 10 +=> i ) { spork ~saxes[i].play(6::second, 0, 0::ms, 10::ms); //300::ms => now; } 1::second => now; <<< 22 >>>; //34 for( 0 => int i; i < piccoloFilenames.size(); 11 +=> i ) { spork ~piccolos[i].play(12::second, 0, 0::ms, 10::ms); //300::ms => now; } 1::second => now; <<< 23 >>>; //35 for( 0 => int i; i < tubaFilenames.size(); 11 +=> i ) { spork ~tubas[i].play(14::second, 0, 0::ms, 10::ms); //300::ms => now; } 4::second => now; <<< 27 >>>; //39 //these next few loops have "1" instead of "0" as the second parameter so that they decay naturally for( 1 => int i; i < saxFilenames.size(); 12 +=> i ) { spork ~saxes[i].play(17::second, 1, 0::ms, 10::ms); //300::ms => now; } 3::second => now; <<< 30 >>>; //42 for( 2 => int i; i < clarinetFilenames.size(); 12 +=> i ) { spork ~clarinets[i].play(14::second, 1, 0::ms, 10::ms); //300::ms => now; } 4::second => now; <<< 34 >>>; //46 for( 2 => int i; i < piccoloFilenames.size(); 12 +=> i ) { spork ~piccolos[i].play(10::second, 1, 0::ms, 10::ms); //300::ms => now; } 3::second => now; <<< 37 >>>; //49 for( 0 => int i; i < tubaFilenames.size(); 12 +=> i ) { spork ~tubas[i].play(7::second, 1, 0::ms, 10::ms); //300::ms => now; } 7::second => now; <<< 44 + " actually 56">>>; //56 7::second => now; // --------------------------------------------------------------------------------------------- // Solo 1: clarinet spork ~clarinets[14].play(3::second, 0, 20::ms, 10::ms); 3::second => now; spork ~clarinets[13].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[16].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[14].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[19].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[17].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[22].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[20].play(250::ms, 0, 10::ms, 10::ms); 250::ms => now; spork ~clarinets[25].play(140::ms, 0, 10::ms, 10::ms); 140::ms => now; spork ~clarinets[23].play(140::ms, 0, 10::ms, 10::ms); 140::ms => now; spork ~clarinets[28].play(140::ms, 0, 10::ms, 10::ms); 140::ms => now; spork ~clarinets[26].play(140::ms, 0, 10::ms, 10::ms); 140::ms => now; spork ~clarinets[31].play(140::ms, 0, 10::ms, 10::ms); 140::ms => now; spork ~clarinets[30].play(140::ms, 0, 10::ms, 10::ms); 140::ms => now; <<< "end of fast" >>>; //honk for (0 => int i; i < 8; 1 +=> i) { spork ~clarinets[32].play(20::ms, 0, 10::ms, 10::ms); spork ~clarinets[33].play(20::ms, 0, 10::ms, 10::ms); 20::ms => now; } spork ~clarinets[34].play(18::second, 0, 10::ms, 10::ms); 1::second => now; // ------------------------------------------------------------------------------------------- //Gesture 2 //lots of fifths, a brief key center for (6 => int i; i < 34; 7 +=> i) { spork ~clarinets[i].play(17::second, 0, 10::ms, 10::ms); } 4::second => now; <<< "about to start saxes" >>>; for (0 => int i; i < saxes.size(); 1 +=> i) { saxes[i].setGain(0.14); //move this (down) if it's too much } for (5 => int i; i < saxes.size(); 7 +=> i) { spork ~saxes[i].play(19::second, 0, 10::ms, 10::ms); } 3::second => now; <<< "about to start pics" >>>; for( 3 => int i; i < piccolos.size(); 5 +=> i ){ piccolos[i].setGain(0.08); spork ~piccolos[i].play(25::second, 0, 10::ms, 10::ms); } 4::second => now; <<< "about to start tubas" >>>; for( 7 => int i; i < tubas.size(); 7 +=> i ){ spork ~tubas[i] .play(10::second, 0, 10::ms, 10::ms); } 6::second => now; <<< "----------------------starting shifts for 2nd gesture-----------------------------" >>>; for (4 => int i; i < 34; 7 +=> i) { spork ~clarinets[i].play(22::second, 0, 10::ms, 80::ms); } 4::second => now; <<< "about to start tubas" >>>; for( 2 => int i; i < tubas.size(); 12 +=> i ){ spork ~tubas[i].play(7::second, 0, 10::ms, 10::ms); } for( 9 => int i; i < tubas.size(); 12 +=> i ){ spork ~tubas[i].play(7::second, 0, 10::ms, 10::ms); } 2::second => now; saxes[5].setGain(0.18); spork ~saxes[5].play(19::second, 0, 10::ms, 10::ms); for (5 + 12 => int i; i < saxes.size(); 12 +=> i) { saxes[i].setGain(0.11); spork ~saxes[i].play(16::second, 0, 10::ms, 200::ms); } for (10 => int i; i < saxes.size(); 12 +=> i) { saxes[i].setGain(0.11); spork ~saxes[i].play(16::second, 0, 10::ms, 200::ms); } 5::second => now; for( 0 => int i; i < tubas.size(); 12 +=> i ){ spork ~tubas[i].play(11::second, 0, 10::ms, 200::ms); } for( 7 => int i; i < tubas.size(); 12 +=> i ){ spork ~tubas[i].play(11::second, 0, 10::ms, 200::ms); } 4::second => now; for( 0 => int i; i < piccolos.size(); 4 +=> i ){ piccolos[i].setGain(0.08); spork ~piccolos[i].play(7::second, 0, 10::ms, 200::ms); } 7::second => now; 3::second => now; for (0 => int i; i < saxes.size(); 1 +=> i) { saxes[i].setGain(0.18); } // -------------------------------------------------------------------------------------- //Solo 2: sax spork ~saxes[7].play(200::ms, 0, 10::ms, 10::ms); 200::ms => now; spork ~saxes[9].play(200::ms, 0, 10::ms, 10::ms); 200::ms => now; spork ~saxes[11].play(200::ms, 0, 10::ms, 10::ms); 200::ms => now; spork ~saxes[13].play(200::ms, 0, 10::ms, 10::ms); 200::ms => now; spork ~saxes[15].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[14].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[13].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[12].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[19].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[18].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[17].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[16].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[17].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[15].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[16].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[14].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[15].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[13].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[14].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[12].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[21].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[19].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[20].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[18].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[19].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[17].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[18].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[16].play(100::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[18].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[12].play(100::ms, 0, 10::ms, 10::ms); 240::ms => now; spork ~saxes[15].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[9].play(100::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~saxes[22].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[16].play(100::ms, 0, 10::ms, 10::ms); 240::ms => now; spork ~saxes[19].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[11].play(100::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~saxes[20].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[14].play(100::ms, 0, 10::ms, 10::ms); 240::ms => now; spork ~saxes[18].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[12].play(100::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~saxes[23].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[17].play(100::ms, 0, 10::ms, 10::ms); 240::ms => now; spork ~saxes[21].play(100::ms, 0, 10::ms, 10::ms); spork ~saxes[15].play(100::ms, 0, 10::ms, 10::ms); 360::ms => now; for (0 => int i; i < saxes.size(); 1 +=> i) { saxes[i].setGain(0.07); } // ------------------------------------------------------------------------------------- //Gesture 3: alternating tritones spork ~saxes[0].play(5::second + 1000::ms, 0, 10::ms, 10::ms); 400::ms => now; spork ~saxes[6].play(5::second + 600::ms, 0, 10::ms, 10::ms); 200::ms => now; spork ~saxes[12].play(5::second + 400::ms, 0, 10::ms, 10::ms); 200::ms => now; spork ~saxes[18].play(5::second + 200::ms, 0, 10::ms, 10::ms); 100::ms => now; spork ~saxes[24].play(5::second + 100::ms, 0, 10::ms, 10::ms); 100::ms => now; 5::second => now; spork ~tubas[16].play(4::second, 0, 10::ms, 10::ms); spork ~tubas[24].play(4::second, 0, 10::ms, 10::ms); spork ~tubas[30].play(4::second, 0, 10::ms, 10::ms); spork ~clarinets[12].play(4::second, 0, 10::ms, 10::ms); spork ~clarinets[18].play(4::second, 0, 10::ms, 10::ms); 4::second => now; spork ~saxes[0].play(3::second, 0, 10::ms, 10::ms); spork ~saxes[6].play(3::second, 0, 10::ms, 10::ms); spork ~saxes[12].play(3::second, 0, 10::ms, 10::ms); spork ~saxes[18].play(3::second, 0, 10::ms, 10::ms); spork ~saxes[24].play(3::second, 0, 10::ms, 10::ms); 3::second => now; spork ~tubas[16].play(2::second, 0, 10::ms, 10::ms); spork ~tubas[24].play(2::second, 0, 10::ms, 10::ms); spork ~tubas[30].play(2::second, 0, 10::ms, 10::ms); spork ~clarinets[12].play(2::second, 0, 10::ms, 10::ms); spork ~clarinets[18].play(2::second, 0, 10::ms, 10::ms); 2::second => now; spork ~saxes[0].play(2.8::second, 0, 10::ms, 10::ms); spork ~saxes[6].play(2.8::second, 0, 10::ms, 10::ms); spork ~saxes[12].play(2.8::second, 0, 10::ms, 10::ms); spork ~saxes[18].play(2.8::second, 0, 10::ms, 10::ms); spork ~saxes[24].play(2.8::second, 0, 10::ms, 10::ms); 2.8::second => now; <<< "----------------------------------------------- picc time ----------------------------------------------" >>>; // ------------------------------------------------------------------------------------------ //Solo 3: picc time for (0 => int i; i < piccolos.size(); 1 +=> i) { piccolos[i].setGain(0.15); } spork ~piccolos[4].play(4::second, 0, 10::ms, 10::ms); spork ~piccolos[10].play(4::second + 150::ms, 0, 10::ms, 10::ms); spork ~piccolos[16].play(4::second + 300::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(6::second, 0, 10::ms, 10::ms); 6::second => now; 1::second => now; spork ~piccolos[20].play(375::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(250::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; 125::ms => now; spork ~piccolos[20].play(75::ms, 0, 10::ms, 10::ms); spork ~piccolos[21].play(75::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(75::ms, 0, 10::ms, 10::ms); 500::ms => now; 500::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[20].play(375::ms, 0, 10::ms, 10::ms); 375::ms => now; spork ~piccolos[20].play(375::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(250::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; 125::ms => now; spork ~piccolos[20].play(75::ms, 0, 10::ms, 10::ms); spork ~piccolos[21].play(75::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(75::ms, 0, 10::ms, 10::ms); 500::ms => now; 500::ms => now; 500::ms => now; for( 0 => int i; i < 15; 1 +=> i ) { spork ~piccolos[20].play(30::ms, 0, 10::ms, 10::ms); 30::ms => now; } spork ~piccolos[20].play(375::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(250::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; 125::ms => now; spork ~piccolos[20].play(75::ms, 0, 10::ms, 10::ms); spork ~piccolos[21].play(75::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(75::ms, 0, 10::ms, 10::ms); 500::ms => now; 500::ms => now; spork ~piccolos[20].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[20].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[20].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[19].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[23].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[20].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[18].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[23].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[23].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[20].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[17].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[20].play(125::ms, 0, 10::ms, 10::ms); spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[23].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[16].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[23].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[22].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; spork ~piccolos[21].play(125::ms, 0, 10::ms, 10::ms); 125::ms => now; <<< "beginning of big sweep" >>>; // ------------------------------------------------------------------------------------------ //Gesture 4: big sweep //these first four loops have complex timing so that, despite a staggered start, each note ends at the same time //but also every other note is held an extra 5 seconds for (piccolos.size() - 1 => int i; i >= 0; 1 -=> i) { piccolos[i].setGain(0.05); spork ~piccolos[i].play(5::second + (5*(i % 2))::second + (saxes.size() + clarinets.size() + tubas.size())*125::ms + i * 125::ms, 0, 10::ms, 10::ms); 125::ms => now; } for (clarinets.size() - 1 => int i; i >= 0; 1 -=> i) { clarinets[i].setGain(0.05); spork ~clarinets[i].play(5::second + (5*(i % 2))::second + (saxes.size() + tubas.size())*125::ms + i * 125::ms, 0, 10::ms, 10::ms); 125::ms => now; } for (saxes.size() - 1 => int i; i >= 0; 1 -=> i) { saxes[i].setGain(0.06); spork ~saxes[i].play(5::second + (5*(i % 2))::second + (tubas.size())*125::ms + i * 125::ms, 0, 10::ms, 10::ms); 125::ms => now; } for (tubas.size() - 1 => int i; i >= 0; 1 -=> i) { tubas[i].setGain(0.08); spork ~tubas[i].play(5::second + (5*(i % 2))::second + i * 125::ms, 0, 10::ms, 10::ms); 125::ms => now; } 10::second - 500::ms => now; //now the whole tone scales are swapped spork ~tubas[0].play(4::second, 0, 10::ms, 10::ms); for (2 => int i; i < tubas.size(); 2 +=> i) { spork ~tubas[i].play(5::second + 5::second + ((120 - i)*125)::ms, 0, 10::ms, 350::ms); } for (0 => int i; i < saxes.size(); 2 +=> i) { spork ~saxes[i].play(5::second + 5::second + ((120 - tubas.size() - i)*125)::ms, 0, 10::ms, 350::ms); } for (0 => int i; i < clarinets.size(); 2 +=> i) { spork ~clarinets[i].play(5::second + 5::second + ((120 - tubas.size() - saxes.size() - i)*125)::ms, 0, 10::ms, 350::ms); } for (0 => int i; i < piccolos.size(); 2 +=> i) { spork ~piccolos[i].play(5::second + 5::second + ((120 - tubas.size() - saxes.size() - clarinets.size() - i)*125)::ms, 0, 10::ms, 350::ms); } 5::second => now; tubas[0].setGain(0.35); spork ~tubas[0].play(25::second, 0, 100::ms, 10::ms); for (1 => int i; i < tubas.size(); 2 +=> i) { spork ~tubas[i].play(5::second + ((120 - i)*125)::ms, 0, 100::ms, 350::ms); } for (1 => int i; i < saxes.size(); 2 +=> i) { spork ~saxes[i].play(5::second + ((120 - tubas.size() - i)*125)::ms, 0, 100::ms, 350::ms); } for (1 => int i; i < clarinets.size(); 2 +=> i) { spork ~clarinets[i].play(5::second + ((120 - tubas.size() - saxes.size() - i)*125)::ms, 0, 100::ms, 350::ms); } for (1 => int i; i < piccolos.size(); 2 +=> i) { spork ~piccolos[i].play(5::second + ((120 - tubas.size() - saxes.size() - clarinets.size() - i)*125)::ms, 0, 100::ms, 350::ms); } 10::second => now; 10::second => now; 5::second => now; 2000::ms => now; // -------------------------------------------------------------------------------------------------- //Solo 4: tuba for (0 => int i; i < tubas.size() - 1; 1 +=> i) { tubas[i].setGain(0.35); } tubas[tubas.size() - 1].setGain(0.3); spork ~tubas[22].play(2::second + 500::ms, 0, 150::ms, 10::ms); 2.5::second => now; spork ~tubas[21].play(500::ms, 0, 10::ms, 10::ms); 500::ms => now; spork ~tubas[26].play(1000::ms, 0, 10::ms, 10::ms); 1000::ms => now; spork ~tubas[25].play(3500::ms, 0, 10::ms, 10::ms); 3500::ms => now; spork ~tubas[0].play(300::ms, 0, 10::ms, 10::ms); //maybe bad, remove if so 2500::ms => now; spork ~tubas[22].play(1200::ms, 0, 150::ms, 10::ms); 1.2::second => now; spork ~tubas[21].play(500::ms, 0, 10::ms, 10::ms); 500::ms => now; spork ~tubas[26].play(1200::ms, 0, 10::ms, 10::ms); 1200::ms => now; spork ~tubas[25].play(1200::ms, 0, 10::ms, 10::ms); 1200::ms => now; spork ~tubas[22].play(2500::ms, 0, 10::ms, 10::ms); 2.5::second => now; spork ~tubas[0].play(200::ms, 0, 10::ms, 10::ms); //maybe bad, remove if so 2500::ms => now; 0.4::second => now; spork ~tubas[21].play(1200::ms, 0, 150::ms, 10::ms); 1.2::second => now; spork ~tubas[23].play(160::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~tubas[25].play(160::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~tubas[26].play(160::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~tubas[28].play(160::ms, 0, 10::ms, 10::ms); 160::ms => now; spork ~tubas[30].play(53.9::second, 0, 10::ms, 1000::ms); 2::second => now; // Coda saxes[23].setGain(0.07); spork ~saxes[23].play(2::second, 0, 450::ms, 100::ms); //G4 clarinets[19].setGain(0.13); spork ~clarinets[19].play(2::second, 0, 450::ms, 100::ms); //A4 piccolos[9].setGain(0.09); spork ~piccolos[9].play(2::second, 0, 450::ms, 100::ms); //C#5 2::second => now; 3::second => now; saxes[22].setGain(0.07); spork ~saxes[22].play(2.5::second, 0, 450::ms, 100::ms); //F#4 clarinets[18].setGain(0.13); spork ~clarinets[18].play(2.5::second, 0, 450::ms, 100::ms); //Ab4 ?? piccolos[11].setGain(0.09); spork ~piccolos[11].play(2.5::second, 0, 450::ms, 100::ms); //Eb5 2.5::second => now; 3::second => now; saxes[20].setGain(0.07); spork ~saxes[20].play(3::second, 0, 450::ms, 100::ms); //F4 clarinets[21].setGain(0.13); spork ~clarinets[21].play(3::second, 0, 450::ms, 100::ms); //B4 piccolos[12].setGain(0.09); spork ~piccolos[12].play(3::second, 0, 450::ms, 100::ms); //E5 3::second => now; 3::second => now; saxes[19].setGain(0.07); spork ~saxes[19].play(3::second, 0, 450::ms, 100::ms); //E4 clarinets[22].setGain(0.13); spork ~clarinets[22].play(3::second, 0, 450::ms, 100::ms); //C4 spork ~piccolos[11].play(3::second, 0, 450::ms, 100::ms); //Eb5 3.5::second => now; 3::second => now; spork ~saxes[20].play(28.9::second, 0, 450::ms, 1000::ms); //F4 clarinets[19].setGain(0.13); spork ~clarinets[19].play(28.9::second, 0, 450::ms, 1000::ms); //A4 piccolos[14].setGain(0.09); spork ~piccolos[14].play(28.9::second, 0, 450::ms, 1000::ms); //F#5 2::second => now; 2::second => now; spork ~piccolos[9].play(24.9::second, 0, 450::ms, 1000::ms); //C#5 piccolos[17].setGain(0.09); spork ~piccolos[17].play(24.9::second, 0, 450::ms, 1000::ms); //A5 2.3::second => now; 2::second => now; clarinets[17].setGain(0.13); clarinets[12].setGain(0.13); spork ~clarinets[17].play(20.6::second, 0, 450::ms, 1000::ms); //G4 spork ~clarinets[12].play(20.6::second, 0, 450::ms, 1000::ms); //D4 2.6::second => now; 2::second => now; saxes[2].setGain(0.07); saxes[9].setGain(0.07); spork ~saxes[2].play(16::second, 0, 450::ms, 1000::ms); //Bb2 spork ~saxes[9].play(16::second, 0, 450::ms, 1000::ms); //F3 3::second => now; 2::second => now; spork ~tubas[6].play(11::second, 0, 450::ms, 1000::ms); // Bb1 spork ~tubas[18].play(11::second, 0, 450::ms, 1000::ms); // Bb2 11::second => now; 10::second => now; <<< "done" >>>;