print_off() tempo = 140 // SET TEMPO <-- dur4 = 60/tempo; dur8 = 30/tempo; dur12 = 20/tempo; dur16 = 15/tempo; st = 0; maxVol = 20000 // SET MAXIMUM VOLUME <-- dynFF = maxVol*6/7; dynF = maxVol*5/7; dynMF = maxVol*4/7; dynMP = maxVol*3/7; dynP = maxVol*2/7; dynPP = maxVol/7; dynPPP = maxVol/10; dynPPPP = maxVol/20; pullLRough = makeconnection("inlet", 1, 0) // all GameTrak values are clamped to 0.0 - 1.0 before inlet sideLRough = makeconnection("inlet", 2, 0) // input values have zipper noise ... forwardLRough = makeconnection("inlet", 3, 0) pullL = makefilter(pullLRough, "smooth", 80) // ... so input values should be smoothed sideL = makefilter(sideLRough, "smooth", 80) forwardL = makefilter(forwardLRough, "smooth", 80) pullRRough = makeconnection("inlet", 4, 0) // and the same for the right side (with cord facing outward) of the controller sideRRough = makeconnection("inlet", 5, 0) forwardRRough = makeconnection("inlet", 6, 0) pullR = makefilter(pullRRough, "smooth", 80) // "pull" refers to amount of string pulled out sideR = makefilter(sideRRough, "smooth", 80) // "side" refers to lateral angle (with cord facing outward) forwardR = makefilter(forwardRRough, "smooth", 80) // "forward" refers to back-and-forth angle // Must initialize outputs: bus_config("AMINST", "out0-1") bus_config("FMINST", "out0-1") bus_config("WAVETABLE", "out0-1") bus_config("VWAVE", "out0-1") bus_config("STEREO", "in0-1", "out0-1") bus_config("TRANS", "in0-1", "out6-7") // send hi hats to binaural aux process in channel 6 bus_config("MMODALBAR", "in0-1", "out0-1") // TABLES: envPerc = maketable("curve", 1000, 0,0,0, 5,1,0, 95,1,0, 100,0) envSuperPerc = maketable("line", 1000, 0,1, 10,1, 99,0 ) envCurveUp = maketable("curve", 1000, 0,0,3, 1,1) envCurveUpAmp = maketable("curve", 1000, 0,0,1, 252,1,20, 255,0) envRev = maketable("line", 1000, 0,0, 95,1, 100,0 ) envSharpRev = maketable("curve", 1000, 0,0,3, 95,1,0, 100, 0 ) envDown = maketable("line", 1000, 0,1, 1,0 ) envUp = maketable("line", 1000, 0,0, 1,1 ) envFlat = maketable("line", 1000, 0,1, 1,1 ) envSharp = maketable("curve", 1000, 0,0,0, 500,0,1, 999,1 ) envTri = maketable("line", 1000, 0,0, 1,1, 2,0 ) envHann = maketable("window", 1000, "hanning") waveSaw8 = maketable("wave", 1000, "saw8") waveSaw = maketable("wave", 1000, "saw") waveTri17 = maketable("wave", 1000, "tri17") waveSine = maketable("wave", 1000, "sine") waveSquare = maketable("wave", 1000, "square") waveSquare5 = maketable("wave", 1000, "square5") waveSquare9 = maketable("wave", 1000, "square9") waveTransUp = maketable("wave", 1000, 0, 1, 0, 0.4, 0, 0.2, 0, 0.1, 0, 0.05, 0, 0.025, 0, 0.0125) // simulates 8va transposition waveCello = maketable("wave3", 1000, 1,0.003689,0, 2.0167,0.206561,0, 3.0234,0.038787,0, 4.03,0.094815,0, 5.039,0.247546,0, 6.0454,0.049762,0, 7.054,0.046767,0, 8.0624,0.036586,0, 9.067,0.038633,0, 10.077,0.058350,0, 11.0926,0.025122,0, 12.0972,0.009955,0, 13.1005,0.042133,0, 14.1079,0.041724,0, 15.1214,0.008821,0, 16.1241,0.017887,0, 19.1457,0.014579,0) waveBassoon = maketable("wave3", 1000, 1,0.926994,0, 3,0.645786,0, 6,0.412348,0, 7,0.436233,0, 8,0.547544,0, 12,0.690852,0, 16,0.485354,0, 18,0.191528,0, 19,0.410545,0, 21,0.735466,0, 24,0.229833,0, 25,0.305543,0) waveBrass = maketable("wave3", 1000, 1,0.021460,0, 3,0.009213,0, 6,0.001567,0, 7,0.392916,0, 8,0.001070,0, 10,0.022249,0, 12,0.002323,0, 14,1.000000,0, 15,0.003873,0, 16,0.357763,0, 17,0.018961,0, 19,0.003503,0, 20,0.358359,0, 22,0.002245,0, 23,0.039743,0, 24,0.015839,0, 26,0.000723,0, 27,0.022608,0, 30,0.001054,0, 32,0.034359,0, 34,0.032466,0, 38,0.000480,0, 41,0.002036,0, 46,0.007188,0, 49,0.002422,0, 61,0.008005,0, 65,0.005335,0, 68,0.009941,0, 69,0.036334,0, 75,0.002278,0, 81,0.005031,0, 92,0.000706,0, 103,0.168356,0, 106,0.000419,0, 116,0.000348,0, 137,0.042452,0, 138,0.059201,0, 139,0.001026,0, 170,0.001716,0, 171,0.016539,0, 172,0.026519,0, 186,0.000932,0, 204,0.000215,0, 205,0.032372,0, 206,0.115786,0, 208,0.000337,0, 224,0.000756,0, 233,0.000463,0, 240,0.088098,0, 242,0.000596,0, 266,0.000182,0, 274,0.016054,0, 275,0.032858,0, 308,0.001219,0, 342,0.003095,0, 343,0.016319,0, 344,0.008005,0, 376,0.004551,0, 378,0.000392,0, 410,0.003349,0, 412,0.003288,0, 445,0.004292,0, 446,0.007608,0, 479,0.001330,0) waveFlute = maketable("wave3", 1000, 1,1.000000,0, 2,0.030521,0, 3,0.032712,0, 4,0.038703,0, 5,0.008928,0, 6,0.004686,0, 7,0.005373,0) // SCORE: srand() pModArr7 = { 0.40,0,0,0, 0.31,0,0,0, 0,0,0,0, 0,0,0,0 } // used to calculate bell pitches from bass line dArr7 = { 16,0,0,0, 16,0,0,0, 0,0,0,0, 0,0,0,0 } // SECTION A MAXMESSAGE(0, 15) // sends to teeth~ and selects preset MAXMESSAGE(0.01, 1) // enable groove~ (can't be exact same time as previous message? or that could be another issue with default 0 message to groove~ at start) rtinput("MMBUF", "introNoise"); STEREO(0, 0, 30, 0.7, 0, 1) for ( k = 0; k < 7; k += 1 ) { // section repeats 8 times pArr1 = { 6.07,6.07,6.10,6.08, 6.07,6.07,6.10,7.00, 6.08,6.08,6.10,6.07, 6.08,6.08,6.05,7.01 } pArr5 = { 7.02,7.02,7.02,7.00, 7.02,7.03,7.02,7.07, 7.03,7.03,7.02,7.03, 7.05,7.03,7.00,7.05 } if ( k == 0 ) { vArr = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } // mute bassline in i loop below dyn3 = dynPPP // off-beat chords cross fade here and below dyn5 = dynPPPP dyn5c = 0 // octave higher countermelody muted in first section } else if ( k == 1 ) { vArr = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } dyn3 = dynPPPP dyn5 = dynPPP dyn5c = dynPPPP/2 // (really really soft at first) } else if ( k == 2 ) { vArr = { 0,0,0,0, 0,0,0,1, 0,1,0,1, 0,0,2,2 } dyn3 = dynPPPP dyn5 = dynPP dyn5c = dynPPP } else if ( k == 3 ) { MAXMESSAGE(st, 12) // sends to teeth~ and selects preset vArr = { 0,1,1,2, 0,0,1,1, 0,1,2,2, 0,0,2,2 } dyn3 = dynPPPP dyn5 = dynP dyn5c = dynPP } else if ( k == 4 ) { MAXMESSAGE(st, 15) // sends to teeth~ and selects preset vArr = { 0,1,1,2, 2,3,3,2, 0,1,2,2, 0,3,2,2 } dyn3 = dynPPPP dyn5 = dynMP dyn5c = dynPP } else if ( k == 5 ) { vArr = { 0,1,1,2, 2,3,3,2, 0,1,2,2, 0,3,2,2 } dyn3 = dynPPPP dyn5 = dynMP dyn5c = dynP } else { vArr = { 0,1,1,2, 2,3,3,2, 0,1,2,2, 0,3,2,4 } dyn3 = dynPPPP dyn5 = dynMP dyn5c = dynP } for ( j = 0; j < 16; j += 1 ) { // 4 phrases (with 4 measures per phrase) in 1 section dArr3 = { 0,0,0,0, 0,0,0,0, 8,0,0,0, 0,0,0,0 } if ( k > 2 ) dArr3 = { 0,0,0,0, 4,0,0,0, 0,0,0,0, 4,0,0,0 } env3 = envRev env6 = envHann // by default. this will change if ( vArr[j] == 0 ) { dArr1 = { 16,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } env1 = envTri dArr6 = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } bus_config("WAVETABLE", "out4-5") bus_config("VWAVE", "out4-5") } else if ( vArr[j] == 1 ) { dArr1 = { 8,0,0,0, 0,0,0,0, 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5 } env1 = envSuperPerc // reset envelope on longer note in i loop dArr3 = { 0,0,0,0, 0,0,0,0, 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5 } dArr6 = { 0,0,0,0, 0,0,0,0, 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5 } bus_config("WAVETABLE", "out2-3") // must filter out weird noise. outputs 2 and 3 have lores~ filter bus_config("VWAVE", "out2-3") } else if ( vArr[j] == 2 ) { dArr1 = { 0,0,2,0, 0,0,2,0, 0,0,2,0, 0,0,2,0 } env1 = envRev dArr6 = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } bus_config("WAVETABLE", "out2-3") // must filter out weird noise. outputs 2 and 3 have lores~ filter bus_config("VWAVE", "out2-3") } else if ( vArr[j] == 3 ) { dArr1 = { 0,0,0,0, 12,0,0,0, 0,0,0,0, 0,0,0,0 } env1 = envPerc dArr6 = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } bus_config("WAVETABLE", "out4-5") bus_config("VWAVE", "out4-5") } else { dArr1 = { 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5, 0,0,0,0, 0.5,0.5,0.5,0.5 } env1 = envSuperPerc // reset envelope on longer note in i loop dArr3 = { 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5, 0,0,0,0, 0.5,0.5,0.5,0.5 } dArr6 = { 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5, 0,0,0,0, 0.5,0.5,0.5,0.5 } bus_config("WAVETABLE", "out2-3") // must filter out weird noise. outputs 2 and 3 have lores~ filter bus_config("VWAVE", "out2-3") } if ( k == 6 ) { tempo = 140 + 10*(j/15) // accelerates 10 clicks in last section of A dur4 = 60/tempo; dur8 = 30/tempo; dur12 = 20/tempo; dur16 = 15/tempo } st12 = st // set first value for triplet subdivision from global start value. reset each j-loop to preserve synchrony (though i doubt this would be a problem) for ( i = 0; i < 16; i += 1 ) { // i loop controls 16th-note subdivision of note (which is like one measure of 4/4 with half-time feel) if ( vArr[j] == 1 && i == 0 ) { MAXMESSAGE(st+dur4*2, 0) // disable groove~ on beats 3 and 4 MAXMESSAGE(st+dur4*4, 1) // ... and then re-enable env1 = envTri // only envSuperPerc on 16th notes bus_config("WAVETABLE", "out4-5") // process longer note like others bus_config("VWAVE", "out4-5") } if ( vArr[j] == 1 && i > 7 ) { bus_config("WAVETABLE", "out2-3") // process longer note like others bus_config("VWAVE", "out2-3") } if ( k == 0 ) dArr1 = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } // bassline is muted during first section if ( k < 4 ) dArrK = { 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } else dArrK = { 12,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 } pBend = 0 // no pitch bend by default if ( k == 6 && j == 15 ) { pBend = 1 dArrK = { 0.5,0.5,0.5,0.5, 0.5,0.5,0.5,0.5, 0,0,0,0, 0.5,0.5,0.5,0.5 } } VWAVE(st, dur16*dArr1[i], pArr1[j]+0.003+pBend*(i/15)*0.13, dynMP*env1, envUp, 0.4+envTri*0.2, waveSquare5, waveCello) // INST 1a <-- VWAVE(st, dur16*dArr1[i], pArr1[j]-1+pBend*(i/15)*0.13, dynF*env1, 0.5+envUp*0.5, 0.4+(1-envTri)*0.2, waveSquare5, waveBassoon) // INST 1b <-- WAVETABLE(st, dur16*dArr1[i], dynFF*env1, pArr1[j]-1.998+pBend*(i/15)*0.13, 0.4, waveCello) // INST 1c <-- VWAVE(st, dur16*dArr1[i], pArr1[j]-3+pBend*(i/15)*0.13, dynMF*env1, 0.3+envUp*0.3, 0.5, waveBassoon, waveTransUp, waveBrass) // INST 1d <-- bus_config("VWAVE", "out4-5") // don't need to filter these bus_config("FMINST", "out4-5") VWAVE(st, dur16*dArr3[i], pArr1[j]+0.40, dyn3*env3, forwardR, 0.4, waveFlute, waveBassoon, waveCello) // INST 3a <-- (up 3 octaves and M3) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.402, dyn3*env3, sideR, 0.6, waveSaw8, waveFlute, waveCello) // INST 3b <-- (up 3 octaves and M3) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.31, dyn3*env3, forwardR, 0.4, waveFlute, waveBassoon, waveCello) // INST 4 <-- (up 2 octaves and P5) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.312, dyn3*env3, sideR, 0.6, waveSaw8, waveFlute, waveCello) // INST 4 <-- (up 2 octaves and P5) VWAVE(st, dur16*dArr3[i], pArr5[j]+pBend*(i/15)*0.09, dyn5*env3, forwardL, 0.4, waveFlute, waveBassoon, waveCello) // INST 5a <-- (countermelody - cross fade over higher partials of bass) VWAVE(st, dur16*dArr3[i], pArr5[j]+0.003+pBend*(i/15)*0.09, dyn5*env3, sideL, 0.6, waveSaw8, waveFlute, waveBrass) // INST 5b <-- (countermelody - cross fade over higher partials of bass) VWAVE(st, dur16*dArr3[i], pArr5[j]+2.001, dyn5c*env3, forwardL, 0.4, waveFlute, waveBassoon, waveCello) // INST 5c <-- (countermelody - gradually cross fade over higher partials of bass) VWAVE(st, dur16*dArr3[i], pArr5[j]+2.004, dyn5c*env3, sideL, 0.6, waveSaw8, waveFlute, waveBrass) // INST 5d <-- (countermelody - gradually cross fade over higher partials of bass) if ( dArr6[i] > 0 ) { envSwitch6 = pickrand(0,1,2) if ( envSwitch6 == 0 ) env6 = envPerc else if ( envSwitch6 == 1 ) env6 = envHann else env6 = envRev } FMINST(st, dur16*dArr6[i], dynPPPP*env6*pullL, pArr5[j]+sideL*0.24, pArr5[j]+0.003+sideL*0.24, 2+forwardL*5, 2+forwardL*5, 0, waveSquare5, envFlat) // INST 6a <-- FMINST(st, dur16*dArr6[i], dynPPPP*env6*pullR, pArr5[j]+sideR*0.24, pArr5[j]+0.003+sideR*0.24, 2+forwardR*5, 2+forwardR*5, 1, waveSquare5, envFlat) // INST 6a <-- MMODALBAR(st, dur16*dArr7[i], dynMF, cpspch(pArr1[j]+pModArr7[i]), 0.5, 0.8, 1, 0, envPerc) // INST 7a <-- MMODALBAR(st, dur16*dArr7[i], dynMF, cpspch(pArr1[j]+pModArr7[i]+0.003), 0.3, 0.5, 1, 1, envPerc) // INST 7b <-- rtinput("MMBUF", "wetKick"); STEREO(st, 0, dur16*dArrK[i], 0.6, 0, 1) // INST K <-- // TRANS(outsk, insk, dur, AMP, TRANSP[, inputchan, PAN]) if ( k > 4 ) { dModH = pickrand(0,1,1) // probability of hi hat sounding transH = pickrand(1, 1.5, 2) // transposition level (NB: 1.5 means up 50 half steps if ( dArr1[i] > 0 && dArr1[i] < 1 ) { dModH = 1 // when bassline strobes transH = 2 } rtinput("MMBUF", "shortHiHat"); TRANS(st, 0, dur16*dModH, 0.8, transH, 0, 1) // INST H <-- (sends to binaural process in aux 6) } st = st + dur16 } // close i loop for ( t = 0; t < 12; t += 1 ) { // t loop controls triplet subdivision of note (which is like one measure of 4/4 with half-time feel) mute2 = 1 if ( k < 3 ) mute2 = 0 // no triplet sub bass first two sections dArr2 = { 1,1,1, 1,1,1, 1,1,1, 1,1,1 } if ( vArr[j] == 1 ) dArr2 = { 1,1,1, 1,1,1, 0,0,0, 0,0,0 } else if ( vArr[j] == 2 ) dArr2 = { 2,0,2, 0,2,0, 2,0,2, 0,2,0 } else if ( vArr[j] == 3 ) dArr2 = { 0,0,0, 0,0,0, 2,0,2, 0,2,0 } else dArr2 = { 0,0,0, 0,0,0, 0,0,0, 0,0,0 } bus_config("VWAVE", "out2-3") // must filter out weird noise. outputs 2 and 3 have lores~ filter VWAVE(st12, dur12*dArr2[t]*0.8*mute2, pArr1[j]-1+0.003, dynMP*envTri*pullL, envUp, 0, waveSquare5, waveCello) // INST 2a <-- VWAVE(st12, dur12*dArr2[t]*0.8*mute2, pArr1[j]-1+0.003, dynMP*envTri*pullR, envUp, 1, waveSquare5, waveCello) // INST 2b <-- st12 = st12 + dur12 } // close t loop } // close j loop } // close k loop // SECTION B tempo = 150 // a little faster dur4 = 60/tempo; dur8 = 30/tempo; dur12 = 20/tempo; dur16 = 15/tempo MAXMESSAGE(st, 16) // sends to teeth~ and selects preset dArrK = { 1,0,0 } halfCounter = 0 // used for pitch bend. off at first for ( m = 0; m < 2; m += 1 ) { // 2 (for now) sections for ( k = 0; k < 4; k += 1 ) { // 4 phrases in one section if ( k == 0) { pArr1 = { 6.02,6.03,6.02,6.03, 6.02,6.03,6.00,6.03, 6.02,6.05,6.03,6.05, 6.02,6.03,6.07,6.08 } } else if ( k == 1) { pArr1 = { 6.03,6.05,6.03,6.05, 6.02,6.05,6.03,6.02, 6.05,6.07,6.03,6.05, 6.00,6.08,6.05,6.08 } } else if ( k == 2) { pArr1 = { 6.02,6.03,6.02,6.03, 6.02,6.03,6.00,6.03, 6.02,6.05,6.03,6.05, 6.02,6.03,6.07,6.08 } } else if ( k == 3 && m == 1 ) { pArr1 = { 6.03,6.05,6.03,6.05, 6.02,6.05,6.03,6.05, 6.02,6.00,6.02,6.00, 5.11,6.00,5.11,5.11 } // changes last note as transtion to C } else { pArr1 = { 6.03,6.05,6.03,6.05, 6.02,6.05,6.03,6.05, 6.02,6.00,6.02,6.00, 5.11,6.00,5.11,6.00 } } for ( j = 0; j < 16; j += 1 ) { // 16 beats in one phrase dSwitch1 = pickrand(0,0,0,1,2) // changes rhythm of bassline and offbeat chords, etc. if ( dSwitch1 == 0 ) { dArr1 = { 0.8,0.8,0.8 } pMod1b = 2.001 pMod1c = 0.003 pMod1d = 1.004 env1 = envTri dArr3 = { 0,0,2,0 } } else if ( dSwitch1 == 1 ) { dArr1 = { 2,0,0.8 } pMod1b = 2.001 pMod1c = 0.003 pMod1d = 1.004 env1 = envTri dArr3 = { 0,0,3,0 } } else { dArr1 = { 0,2,0 } pMod1b = 3.001 pMod1c = 0.073 pMod1d = 2.074 env1 = envRev dArr3 = { 0,0,2,0 } // extends offbeat chord } if ( m == 1 ) { tempo = 150 + 10*((j+k*16)/63) // accelerates 10 clicks in last half of B dur4 = 60/tempo; dur8 = 30/tempo; dur12 = 20/tempo; dur16 = 15/tempo } st12 = st // set first value for triplet subdivision from global start value. reset each j-loop to preserve synchrony (though i doubt this would be a problem) for ( i = 0; i < 4; i += 1 ) { // 1 beat divided into 16th notes counter = ( i + j*4 + k*64 + m*256 ) / 511 if ( m == 1 ) halfCounter = ( i + j*4 + k*64 ) / 255 bus_config("VWAVE", "out4-5") VWAVE(st, dur16*dArr3[i], pArr1[j]+0.28+halfCounter*0.08, dynP*counter*envRev, forwardR, 0.4, waveFlute, waveBassoon, waveCello) // INST 3a <-- (up 2 octaves and M3) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.282+halfCounter*0.08, dynP*counter*envRev, sideR, 0.6, waveSaw8, waveFlute, waveCello) // INST 3b <-- (up 2 octaves and M3) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.19+halfCounter*0.05, dynP*counter*envRev, forwardR, 0.4, waveFlute, waveBassoon, waveCello) // INST 4 <-- (up 1 octave and P5) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.192+halfCounter*0.05, dynP*counter*envRev, sideR, 0.6, waveSaw8, waveFlute, waveCello) // INST 4 <-- (up 1 octave and P5) VWAVE(st, dur16*dArr3[i], pArr1[j]+0.12, dynMP*(1-counter)*envRev, forwardR, 0.4, waveFlute, waveBassoon, waveCello) // INST 5a <-- doubles bassline VWAVE(st, dur16*dArr3[i], pArr1[j]+0.122, dynMP*(1-counter)*envRev, sideR, 0.6, waveSaw8, waveFlute, waveCello) // INST 5b <-- doubles bassline VWAVE(st, dur16*dArr3[i], pArr1[j]+0.48, dynPP*(1-counter)*envRev, forwardR, 0.4, waveFlute, waveBassoon, waveCello) // INST 5c <-- doubles bassline VWAVE(st, dur16*dArr3[i], pArr1[j]+0.482, dynPP*(1-counter)*envRev, sideR, 0.6, waveSaw8, waveFlute, waveCello) // INST 5d <-- doubles bassline dModH = pickrand(0,1,1,1) // probability of hi hat sounding transH = pickrand(2, 2.5, 3) // transposition level (NB: 1.5 means up 50 half steps rtinput("MMBUF", "shortHiHat"); TRANS(st, 0, dur16*dModH, 0.7, transH, 0, 1) // INST H <-- (sends to binaural process in aux 6) dModH2 = pickrand(0,1,1,1) // probability of hi hat sounding transH2 = pickrand(1, 1.5, 2) // transposition level (NB: 1.5 means up 50 half steps rtinput("MMBUF", "shortHiHat"); TRANS(st, 0, dur16*dModH2, 0.7, transH2, 0, 0) // INST H <-- (sends to binaural process in aux 7) st = st + dur16 } // close i loop for ( t = 0; t < 3; t += 1 ) { // 1 beat divided into triplets if ( m == 1 && k == 3 && j > 11 ) dArrK = { 1,1,1 } rtinput("MMBUF", "kick1"); STEREO(st12, 0, dArrK[t], 0.5, 0, 1) // INST K <-- dSwitchR = 0 if ( t == 0 && ( j % 2 == 1 ) ) dSwitchR = 1 // cymbal on offbeat only rtinput("MMBUF", "crispRide"); STEREO(st12, 0, dSwitchR, 0.1, 0, 1) // INST R <-- bus_config("VWAVE", "out2-3") VWAVE(st12, dur12*dArr1[t], pArr1[j]-1, dynF*env1, env1, 0.3, waveSquare5, waveCello) // INST 1a <-- VWAVE(st12, dur12*dArr1[t], pArr1[j]+pMod1b, dynPP*env1, env1, 0.3, waveBassoon, waveBrass) // INST 1b <-- VWAVE(st12, dur12*dArr1[t], pArr1[j]+pMod1c, dynF*env1, env1, 0.7, waveSquare5, waveCello) // INST 1c <-- VWAVE(st12, dur12*dArr1[t], pArr1[j]+pMod1d, dynPP*env1, env1, 0.7, waveBassoon, waveBrass) // INST 1d <-- st12 = st12 + dur12 } // close t loop } // close j loop } // close k loop } // close m loop // SECTION C tempo = 160 pArr1 = { 6.07,6.07,6.10,6.08, 6.07,6.07,6.10,7.00, 6.08,6.08,6.10,6.07, 6.08,6.08,6.05,7.01 } for ( k = 0; k < 4; k += 1) { for ( j = 0; j < 16; j += 1) { for ( i = 0; i < 16; i += 1) { MMODALBAR(st, dur16*dArr7[i], dynF, cpspch(pArr1[j]+pModArr7[i]), 0.5, 0.8, 1, 0, envPerc) // INST 7a <-- MMODALBAR(st, dur16*dArr7[i], dynF, cpspch(pArr1[j]+pModArr7[i]+0.003), 0.3, 0.5, 1, 1, envPerc) // INST 7b <-- st += dur16 } // close i loop } // close j loop } // close k loop