From e12dbff4dda5aafbaac98f75f0467ef00dc06c32 Mon Sep 17 00:00:00 2001 From: Nat Date: Thu, 13 Sep 2007 15:55:52 +0000 Subject: Activity split --- (limited to 'common/Resources/tamtamorc.csd') diff --git a/common/Resources/tamtamorc.csd b/common/Resources/tamtamorc.csd new file mode 100644 index 0000000..de2f24a --- /dev/null +++ b/common/Resources/tamtamorc.csd @@ -0,0 +1,1096 @@ + + +-n -m0 -W -s -d + + +sr=16000 +ksmps=64 +nchnls=2 +giScale = 1/sr +giAliasSr = sr/2.1 + +gainrev init 0 +gaoutL init 0 +gaoutR init 0 +gasynth init 0 +gkTrackpadX init 0 +gkTrackpadY init 0 + +/***************************** +matrix for TamTam's SynthLab +*****************************/ +zakinit 8, 32 + +/***************************** +opcodes needed by TamTam's SynthLab +*****************************/ + +opcode homeSine, a, kki +kpitch, kspread, iTable xin + +kspread = kspread + 1 + +kr1 randomi 0.99, 1.01, 3.45 +kr2 randomi 0.9901, 1.0101, 4.43 +kr3 randomi 0.9899, 1.0091, 5.25 +kr4 randomi 0.9889, 1.00921, 6.15 + +kpit1 = kpitch +kpit2 = kpit1*kspread +kpit3 = kpit2*kspread +kpit4 = kpit3*kspread +kpit5 = kpit4*kspread +kpit6 = kpit5*kspread +kpit7 = kpit6*kspread +kpit8 = kpit7*kspread + +a1 oscil 1000, kpit1*kr1, iTable +a2 oscil 1000, kpit2*kr2, iTable +a3 oscil 1000, kpit3*kr3, iTable +a4 oscil 1000, kpit4*kr4, iTable +a5 oscil 1000, kpit5*kr1, iTable +a6 oscil 1000, kpit6*kr2, iTable +a7 oscil 1000, kpit7*kr3, iTable +a8 oscil 1000, kpit8*kr4, iTable + +aout = a1+a2+a3+a4+a5+a6+a7+a8 +xout aout +endop + +opcode synthGrain, a, aaiiii +aindex, atrans, ifreq, iphase itable, itabdur xin +apha phasor ifreq, iphase +aenv tab apha, 42, 1 +atrig = int(1-aenv) +apos samphold aindex, atrig +adur samphold atrans, atrig + +aline = apha * adur * sr + apos +aline limit aline, 0 , itabdur +ag tablei aline, itable, 0 +aout = ag * aenv + +xout aout +endop + + +opcode ControlMatrice, i, iikkkk +iTable, iIndex, kc1, kc2, kc3, kc4 xin + +iSomme table iIndex, iTable+3 + +if iSomme == 0 then +goto noparams +endif + +iPar table iIndex, iTable + +if iSomme == 1 then +kp = iPar +elseif iSomme == 3 then +kp = iPar * kc1 +elseif iSomme == 5 then +kp = iPar * kc2 +elseif iSomme == 7 then +kp = iPar * ((kc1 + kc2)*.5) +elseif iSomme == 9 then +kp = iPar * kc3 +elseif iSomme == 11 then +kp = iPar * ((kc1 + kc3)*.5) +elseif iSomme == 13 then +kp = iPar * ((kc2 + kc3)*.5) +elseif iSomme == 15 then +kp = iPar * ((kc1 + kc2 + kc3)*.33) +elseif iSomme == 17 then +kp = iPar * kc4 +elseif iSomme == 19 then +kp = iPar * ((kc1 + kc4)*.5) +elseif iSomme == 21 then +kp = iPar * ((kc2 + kc4)*.5) +elseif iSomme == 23 then +kp = iPar * ((kc1 + kc2 + kc4)*.33) +elseif iSomme == 25 then +kp = iPar * ((kc3 + kc4)*.5) +elseif iSomme == 27 then +kp = iPar * ((kc1 + kc3 + kc4)*.5) +elseif iSomme == 29 then +kp = iPar * ((kc2 + kc3 + kc4)*.33) +elseif iSomme == 31 then +kp = iPar * ((kc1 + kc2 + kc3 + kc4)*.25) +endif + +if iTable == 5201 then +zkw kp, iIndex+1 +elseif iTable == 5202 then +zkw kp, iIndex+17 +endif + +xout iIndex + +noparams: +endop + +opcode SourceMatrice, i, iaaaa +iIndex, as1, as2, as3, as4 xin + +iSomme table iIndex-1, 5206 + +if iSomme == 0 then +goto noparams +endif + +if iSomme == 1 then +as = as1 +elseif iSomme == 2 then +as = as2 +elseif iSomme == 3 then +as = as1 + as2 +elseif iSomme == 4 then +as = as3 +elseif iSomme == 5 then +as = as1 + as3 +elseif iSomme == 6 then +as = as2 + as3 +elseif iSomme == 7 then +as = as1 + as2 + as3 +elseif iSomme == 8 then +as = as4 +elseif iSomme == 9 then +as = as1 + as4 +elseif iSomme == 10 then +as = as2 + as4 +elseif iSomme == 11 then +as = as1 + as2 + as4 +elseif iSomme == 12 then +as = as3 + as4 +elseif iSomme == 13 then +as = as1 + as3 + as4 +elseif iSomme == 14 then +as = as2 + as3 + as4 +elseif iSomme == 15 then +as = as1 + as2 + as3 + as4 +endif + +zaw as, iIndex +xout iIndex + +noparams: +endop + +opcode FxMatrice, i, iaaaa +iIndex, as1, as2, as3, as4 xin + +iSomme table iIndex-1, 5206 + +if iSomme == 0 then +goto noparams +endif + +if iSomme == 1 then +as = as1 +elseif iSomme == 2 then +as = as2 +elseif iSomme == 3 then +as = as1 + as2 +elseif iSomme == 4 then +as = as3 +elseif iSomme == 5 then +as = as1 + as3 +elseif iSomme == 6 then +as = as2 + as3 +elseif iSomme == 7 then +as = as1 + as2 + as3 +elseif iSomme == 8 then +as = as4 +elseif iSomme == 9 then +as = as1 + as4 +elseif iSomme == 10 then +as = as2 + as4 +elseif iSomme == 11 then +as = as1 + as2 + as4 +elseif iSomme == 12 then +as = as3 + as4 +elseif iSomme == 13 then +as = as1 + as3 + as4 +elseif iSomme == 14 then +as = as2 + as3 + as4 +endif + +zaw as, iIndex +xout iIndex + +noparams: +endop + +opcode controller, k, ii +iControlNum, idur xin + +iControlType table iControlNum-1, 5203 + +if iControlType == 0 then +goto nocontrol +endif + +ioffset = (iControlNum-1)*4 +iPar1 table ioffset, 5200 +iPar2 table ioffset+1, 5200 +iPar3 table ioffset+2, 5200 +iPar4 table ioffset+3, 5200 + +if iControlType == 1 then + kControl lfo iPar1, iPar2, int(iPar3) + kControl = kControl+iPar4 +elseif iControlType == 2 then + irange = (iPar2-iPar1)*.5 + kControl randi irange, iPar3, iPar4-.001, 0, irange+iPar1 +elseif iControlType == 3 then + kControl adsr iPar1*idur+.0001, iPar2*idur, iPar3, iPar4*idur +elseif iControlType == 4 then + if iPar3 == 0 then + kControl1 = ((gkTrackpadX+1)*.5)*(iPar2-iPar1)+iPar1 + elseif iPar3 == 1 then + kval = (gkTrackpadX+1)*.5 + kControl1 pow kval, 2 + kControl1 = kControl1 * (iPar2-iPar1) + iPar1 + endif + if iPar4 == 0 then + kControl = kControl1 + else + ktrig oscil 1, 1/iPar4, 45 + kControl samphold kControl1, ktrig, i(kControl1), 0 + endif +elseif iControlType == 5 then + if iPar3 == 0 then + kControl1 = ((gkTrackpadY+1)*.5)*(iPar2-iPar1)+iPar1 + elseif iPar3 == 1 then + kval = (gkTrackpadY+1)*.5 + kControl1 pow kval, 2 + kControl1 = kControl1 * (iPar2-iPar1) + iPar1 + endif + if iPar4 == 0 then + kControl = kControl1 + else + ktrig oscil 1, 1/iPar4, 45 + kControl samphold kControl1, ktrig, i(kControl1), 0 + endif +endif + +xout kControl + +nocontrol: +endop + +opcode source, a, ii +iSourceNum, ipitch xin + +iSourceType table iSourceNum+3, 5203 + +if iSourceType == 0 then +goto nosource +endif + +ioffset = (iSourceNum-1)*4 +kpara1 zkr ioffset+1 +kpara2 zkr ioffset+2 +kpara3 zkr ioffset+3 +kpara4 zkr ioffset+4 + +iPar1 table ioffset, 5201 +iPar2 table ioffset+1, 5201 +iPar3 table ioffset+2, 5201 +iPar4 table ioffset+3, 5201 + +if iSourceType == 1 then + aSource foscil 2000*kpara4, ipitch, kpara1, kpara2, kpara3, 1 +elseif iSourceType == 2 then + aSource gbuzz 5000*kpara4, ipitch*kpara1, int(abs(kpara2))+5, 0, kpara3+0.01, 2 +elseif iSourceType == 3 then + iPar2 = int(iPar2) + if iPar2 == 0 then + imode = 0 + elseif iPar2 == 1 then + imode = 10 + elseif iPar2 == 2 then + imode = 12 + endif + aSource vco2 2000*kpara4, ipitch*kpara1, imode, 0.1, 0, iPar3 +elseif iSourceType == 4 then + if iPar3 == 0 then + kvib = 0 + goto novib + else + kvibenv linseg 0, .3, 1, p3-.3, 1 + kvib oscil ipitch*.015, kpara3, 1 + endif + novib: + aSource pluck 5000*kpara4, ipitch*(abs(kpara1))+.001+kvib, 40, 0, 6 + aSource butterlp aSource, kpara2 +elseif iSourceType == 5 then + if int(iPar1) == 0 then + ar rand 5000*kpara4 + elseif int(iPar1) == 1 then + ar pinkish 5000*kpara4 + elseif int(iPar1) == 2 then + ar gauss 5000*kpara4 + endif + knoisebandwith limit abs(kpara3), 1, sr/2 + aSource butterbp ar, kpara2, knoisebandwith + aSource balance aSource, ar +elseif iSourceType == 6 then + iSndpitch = p4/261.626 + iLoopIndex = iPar2 * 3 + ils table iLoopIndex, 5755 + ile table iLoopIndex+1, 5755 + icd table iLoopIndex+2, 5755 + if ile == 0 then + ile = nsamp(5000+iPar2) * giScale - .01 + endif + if icd == 0 then + icd = .01 + endif + aSource flooper2 kpara4*.4, iSndpitch*abs(kpara1), ils, ile, icd, 5000+iPar2 + aSource butterlp aSource, abs(kpara3) +elseif iSourceType == 7 then + kvoy = int(kpara2*3) + kform1 table kvoy, 4 + kform2 table kvoy+1, 4 + kform3 table kvoy+2, 4 + kform1 port kform1, .1, 500 + kform2 port kform2, .1, 1500 + kform3 port kform3, .1, 2500 + kvibadev randomi -.0852, .0152, .5 + kvibfdev randomi -.032, .032, .5 + kvibfreqrand randomi kpara3-.75, kpara3+.75, .2 + kvibfatt linseg 0, .3, 1, p3-.3, 1 + kvib oscili (1+kvibadev)*kvibfatt, (kvibfreqrand+kvibfdev), 1 + kharm randomi 40, 50, 1.34 + kmul randomi .80, .84, 1.45 + kbam randomi 480., 510., 2.07 + kfunddev randomi -.0053, .0052, 1.05 + ar gbuzz kbam, (p4*kpara1*(1+kfunddev)+kvib), int(kharm), 0, kmul, 2 + a1 resonx ar, kform1, 140, 2, 1 + a2 resonx ar, kform2, 180, 2, 1 + a3 resonx ar, kform3, 220, 2 , 1 + aSource = ((a1*80)+(a2*55)+(a3*40))*kpara4 +elseif iSourceType == 8 then + iSndPitch = p4/261.626 + igrdur = .1 + itable = 5000+iPar2 + irealTable = 5500 + iSourceNum + itabdur = nsamp(itable) + ifreq = 1 / igrdur + kamp = kpara4 * .2 + aindex upsamp abs(kpara3) * itabdur + atrans upsamp kpara1 * igrdur * iSndPitch + + as1 synthGrain aindex, atrans, ifreq, 0.82, irealTable, itabdur + as2 synthGrain aindex, atrans, ifreq, .58, irealTable, itabdur + as3 synthGrain aindex, atrans, ifreq, .41, irealTable, itabdur + as4 synthGrain aindex, atrans, ifreq, 0.19, irealTable, itabdur + as5 synthGrain aindex, atrans, ifreq, 0, irealTable, itabdur + aSource = (as1+as2+as3+as4+as5)*kamp + aSource butterlp aSource, 7500 +elseif iSourceType == 9 then + aSource homeSine p4*kpara1, kpara2*0.1, iPar3+30 + aSource = aSource*kpara4 + +endif + +aSource dcblock aSource +xout aSource + +nosource: +endop + +opcode effects, a, ii +iFxNum, ipitch xin + +iFxType table iFxNum+7, 5203 + +if iFxType == 0 then +goto nofx +endif + +as1 zar iFxNum +as2 zar iFxNum+4 +as = as1+as2 + +ioffset = (iFxNum+3)*4 +kpara1 zkr ioffset+1 +kpara2 zkr ioffset+2 +kpara3 zkr ioffset+3 +kpara4 zkr ioffset+4 + +ioffset2 = (iFxNum-1)*4 +iPar1 table ioffset2, 5202 +iPar2 table ioffset2+1, 5202 +iPar3 table ioffset2+2, 5202 +iPar4 table ioffset2+3, 5202 + +if iFxType == 1 then + kwgfeed limit kpara3, 0, 1 + aFx wguide1 as, abs(kpara1)+1, kpara2, kwgfeed + aFx = aFx*kpara4 +elseif iFxType == 2 then + aFx lpf18 as*.0005, abs(kpara1)+20, kpara2, kpara3 + aFx = aFx*5000*kpara4 +elseif iFxType == 3 then + aFx bqrez as*kpara4, abs(kpara1)+20, abs(kpara2)+1, int(iPar3) + aFx balance aFx, as*kpara4 +elseif iFxType == 4 then + amod lfo 1, kpara1, int(iPar3) + aFx = ((as*amod*kpara2)+(as*(1-kpara2)))*kpara4 +elseif iFxType == 5 then + ain = as*kpara4 + krevLength limit kpara1, 0.01, 10 + arev reverb ain, krevLength + arev butterlp arev, kpara2 + aFx = (arev*kpara3)+(as*(1-kpara3)) +elseif iFxType == 6 then + fsig pvsanal as, 1024, 256, 1024, 1 + ftps1 pvscale fsig, kpara1 + aFx pvsynth ftps1 + adry delay as, iPar2 + aFx = ((aFx*kpara3)+(adry*(1-kpara3)))*kpara4 +elseif iFxType == 7 then + aeq1 butterbp as, 700, 400 + aeq2 butterbp as, 1500, 600 + aeq3 butterbp as, 3000, 1000 + aeq4 butterbp as, 5000, 2000 + aFx = (aeq1*kpara1)+(aeq2*kpara2)+(aeq3*kpara3)+(aeq4*kpara4) +elseif iFxType == 8 then + afeed init 0 + adel oscil kpara1, kpara2, 1 + adel = adel + kpara1 + kpara3 + adel limit adel, 0, 50 + aFx vdelay as+afeed, adel, 50 + afeed = aFx * kpara4 +endif + +xout aFx + +nofx: +endop + + +/**************************************************************** +Reverb + master out +*****************************************************************/ +instr 200 + +gktime timek + +kTrackpadX chnget "trackpadX" +gkTrackpadX = kTrackpadX / 600. +gkTrackpadX limit gkTrackpadX, -1, 1 + +kTrackpadY chnget "trackpadY" +gkTrackpadY = kTrackpadY / 450. +gkTrackpadY limit -gkTrackpadY, -1, 1 + +koutGain chnget "masterVolume" +koutGain = koutGain * 0.02 +gkduck init 1 +gkduck port gkduck, .03, 1. + +ain dcblock gainrev*0.05 +arev reverb ain, 2.5 +arev butterlp arev, 5000 + +aLeft butterlp gaoutL, 7500 +aRight butterlp gaoutR, 7500 + +aOutLeft dcblock (arev + aLeft) * koutGain * gkduck +aOutRight dcblock (arev + aRight) * koutGain * gkduck +gaRecL = aOutLeft +gaRecR = aOutRight + outs aOutLeft, aOutRight + + gaoutL = 0 + gaoutR = 0 + gainrev = 0 + +endin + +/**************************************************************** +ducking +****************************************************************/ +instr 5600 +gkduck linseg 1., 0.005, 0.05, 3.9, 0.05, 0.095, 1 +endin + +/**************************************************************** +Performance recording start +*****************************************************************/ +instr 5400 +Sname strcpy "/home/olpc/.sugar/default/tamtam/perf.wav" +ihandle fiopen Sname, 2 +fout Sname, 2, gaRecL, gaRecR +clear gaRecL, gaRecR +endin + +/**************************************************************** +Performance recording stop ( closing file ) +*****************************************************************/ +instr 5401 +Sname strcpy "/home/olpc/.sugar/default/tamtam/perf.wav" +turnoff2 5400, 8, 0 +ficlose Sname +endin + +/**************************************************************** +Handler audio input recording +****************************************************************/ +instr 5201 + +ktim timeinsts + +gkduck = .05 +itab = p4 +ain inch 1 +krms rms ain +ktrig trigger krms, 1500, 0 + +if ktrig == 1 then +event "i", 5202, 0 , 1, itab +turnoff +endif + +ithresh = p3 - 1 + +if ktim > ithresh then +gkduck linseg .05, .8, .05, .2, 1 +endif + +endin + +/**************************************************************** +Audio input recording +****************************************************************/ +instr 5202 +kenv adsr 0.005, 0.05, .9, 0.01 +gkduck linseg .05, .8, .05, .2, 1 +ain inch 1 + +adel delay ain, .01 + +Sname sprintf "/home/olpc/.sugar/default/tamtam/snds/mic%d", int(p4)-6 +ihandle fiopen Sname, 2 +event "i", 5212, 1 , .01, p4 + +fout Sname, 2, adel*kenv +adel = 0 +endin + +/**************************************************************** +Audio input recording ( closing file ) +****************************************************************/ +instr 5212 +Sname sprintf "/home/olpc/.sugar/default/tamtam/snds/mic%d", int(p4)-6 +ficlose Sname +endin + +/**************************************************************** +SynthLab input recording +****************************************************************/ +instr 5204 + +Sname2 sprintf "/home/olpc/.sugar/default/tamtam/snds/lab%d", int(p4)-85 +fout Sname2, 2, gasynth * 0.707 +clear gasynth +endin + +/************************ +TamTam's SynthLab instrument +************************/ +instr 5203 + +if p5 != 0 then +event_i "i", 5204, 0, p3, p5 +endif + +aSource1 init 0 +aSource2 init 0 +aSource3 init 0 +aSource4 init 0 +aFx1 init 0 +aFx2 init 0 +aFx3 init 0 +aFx4 init 0 +aout init 0 + +ipitch = p4 + +kc1 controller 1,p3 +kc2 controller 2,p3 +kc3 controller 3,p3 +kc4 controller 4,p3 + +is1p1 ControlMatrice 5201, 0, kc1, kc2, kc3, kc4 +is1p2 ControlMatrice 5201, 1, kc1, kc2, kc3, kc4 +is1p3 ControlMatrice 5201, 2, kc1, kc2, kc3, kc4 +is1p4 ControlMatrice 5201, 3, kc1, kc2, kc3, kc4 +is2p1 ControlMatrice 5201, 4, kc1, kc2, kc3, kc4 +is2p2 ControlMatrice 5201, 5, kc1, kc2, kc3, kc4 +is2p3 ControlMatrice 5201, 6, kc1, kc2, kc3, kc4 +is2p4 ControlMatrice 5201, 7, kc1, kc2, kc3, kc4 +is3p1 ControlMatrice 5201, 8, kc1, kc2, kc3, kc4 +is3p2 ControlMatrice 5201, 9, kc1, kc2, kc3, kc4 +is3p3 ControlMatrice 5201, 10, kc1, kc2, kc3, kc4 +is3p4 ControlMatrice 5201, 11, kc1, kc2, kc3, kc4 +is4p1 ControlMatrice 5201, 12, kc1, kc2, kc3, kc4 +is4p2 ControlMatrice 5201, 13, kc1, kc2, kc3, kc4 +is4p3 ControlMatrice 5201, 14, kc1, kc2, kc3, kc4 +is4p4 ControlMatrice 5201, 15, kc1, kc2, kc3, kc4 + +aSource1 source 1, ipitch*2 +aSource2 source 2, ipitch*2 +aSource3 source 3, ipitch*2 +aSource4 source 4, ipitch*2 + +ifx1p1 ControlMatrice 5202, 0, kc1, kc2, kc3, kc4 +ifx1p2 ControlMatrice 5202, 1, kc1, kc2, kc3, kc4 +ifx1p3 ControlMatrice 5202, 2, kc1, kc2, kc3, kc4 +ifx1p4 ControlMatrice 5202, 3, kc1, kc2, kc3, kc4 +ifx2p1 ControlMatrice 5202, 4, kc1, kc2, kc3, kc4 +ifx2p2 ControlMatrice 5202, 5, kc1, kc2, kc3, kc4 +ifx2p3 ControlMatrice 5202, 6, kc1, kc2, kc3, kc4 +ifx2p4 ControlMatrice 5202, 7, kc1, kc2, kc3, kc4 +ifx3p1 ControlMatrice 5202, 8, kc1, kc2, kc3, kc4 +ifx3p2 ControlMatrice 5202, 9, kc1, kc2, kc3, kc4 +ifx3p3 ControlMatrice 5202, 10, kc1, kc2, kc3, kc4 +ifx3p4 ControlMatrice 5202, 11, kc1, kc2, kc3, kc4 +ifx4p1 ControlMatrice 5202, 12, kc1, kc2, kc3, kc4 +ifx4p2 ControlMatrice 5202, 13, kc1, kc2, kc3, kc4 +ifx4p3 ControlMatrice 5202, 14, kc1, kc2, kc3, kc4 +ifx4p4 ControlMatrice 5202, 15, kc1, kc2, kc3, kc4 + +ifx1in SourceMatrice 1, aSource1, aSource2, aSource3, aSource4 +ifx2in SourceMatrice 2, aSource1, aSource2, aSource3, aSource4 +ifx3in SourceMatrice 3, aSource1, aSource2, aSource3, aSource4 +ifx4in SourceMatrice 4, aSource1, aSource2, aSource3, aSource4 + +ifx1in1 FxMatrice 5, aFx1, aFx2, aFx3, aFx4 +ifx2in1 FxMatrice 6, aFx1, aFx2, aFx3, aFx4 +ifx3in1 FxMatrice 7, aFx1, aFx2, aFx3, aFx4 +ifx4in1 FxMatrice 8, aFx1, aFx2, aFx3, aFx4 + +aFx1 effects 1, ipitch +aFx2 effects 2, ipitch +aFx3 effects 3, ipitch +aFx4 effects 4, ipitch + +iSourceOut1 table 8, 5206 +iSourceOut2 table 9, 5206 +iSourceOut3 table 10, 5206 +iSourceOut4 table 11, 5206 +iFxOut1 table 12, 5206 +iFxOut2 table 13, 5206 +iFxOut3 table 14, 5206 +iFxOut4 table 15, 5206 + +aout = (aSource1*iSourceOut1)+(aSource2*iSourceOut2)+(aSource3*iSourceOut3)+(aSource4*iSourceOut4)+(aFx1*iFxOut1)+(aFx2*iFxOut2)+(aFx3*iFxOut3)+(aFx4*iFxOut4) + +kenv adsr p3*p6+0.001, p3*p7, p8, p3*p9 +aout = aout*kenv + +vincr gasynth, aout + + outs aout, aout + +zacl 0, 8 + +endin + +/*********************** +DELETE RESOURCES +************************/ + +instr 5000 + +icount init 0 + +again: +ftfree 5000+icount, 0 +icount = icount+1 + +if icount < p4 goto again + +turnoff + +endin + +/************************* +Loop points editor +*************************/ +instr 5022 + +kstart chnget "lstart" +kend chnget "lend" +kdur chnget "ldur" + +idurfadein init 0.005 +idurfadeout init 0.095 +iampe0 init 1 +iampe1 init 1 +iampe2 init 1 + +itie tival +if itie == 1 igoto nofadein + +iampe0 init 0 +iskip = 1 + +nofadein: +iskip = 0 +igliss = 0.005 + +if p3 < 0 igoto nofadeout + +iampe2 init 0 + +nofadeout: + +idelta = idurfadein+idurfadeout +if idelta > abs(p3) then +idelta = abs(p3) +endif + +iampe0 = iampe0 +iampe2 = iampe2 +kenv linseg iampe0, idurfadein, iampe1, abs(p3)-idelta, iampe1, idurfadeout, iampe2 + + +ivibRand random 4.1, 5.7 + +kvibrato oscil .006, ivibRand, 1 + + tigoto tieskip + +a1 flooper2 1, 1+kvibrato, kstart, kend, kdur, 4999, 0, 0, 0, iskip + +a1 = a1*kenv + +gaoutL = a1*0.5+gaoutL +gaoutR = a1*0.5+gaoutR + +gainrev = a1*0.1+gainrev + + tieskip: +endin + +/************************* +Loop points editor, simple player +*************************/ +instr 5023 + +p3 = nsamp(4999) * giScale + +a1 loscil 1, 1, 4999, 1 + +kenv adsr 0.005, 0.05, .8, 0.1 + +a1 = a1*kenv + +gaoutL = a1*0.5+gaoutL +gaoutR = a1*0.5+gaoutR + +gainrev = a1*0.1+gainrev + +endin + +/**************************************************************** +Soundfile player with miniTamTam's tied notes +****************************************************************/ +/************************* +pitch, reverbGain, amp, pan, table, att, dec, filtType, cutoff, loopstart, loopend, crossdur +*************************/ +instr 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010 + +idump = p16 +idump2 = p17 +idump3 = p18 +idump4 = p19 + +iTrackId = int(p1-5001) +SvolTrackName sprintf "trackVolume%0d", iTrackId +kvol chnget SvolTrackName +kvol = kvol * 0.01 +kvol port kvol, .01, i(kvol) + +idurfadein init 0.005 +idurfadeout init 0.095 +iampe0 init 1 +iampe1 = p6 +iampe2 init 1 + +itie tival +if itie == 1 igoto nofadein + +idurfadein init p9 +iampe0 init 0 +iskip = 1 +kpitch init p4 +kamp init p6 +kpan init p7 +krg init p5 + +nofadein: +iskip = 0 +igliss = 0.005 + +if p3 < 0 igoto nofadeout + +idurfadeout init p10 +iampe2 init 0 + +nofadeout: + +idelta = idurfadein+idurfadeout +if idelta > abs(p3) then +idelta = abs(p3) +endif + +iampe0 = iampe0 * p6 +iampe2 = iampe2 * p6 +kenv linseg iampe0, idurfadein, iampe1, abs(p3)-idelta, iampe1, idurfadeout, iampe2 + +kpitchBend port gkTrackpadX, .03, i(gkTrackpadX) +kpitchBend pow kpitchBend + 1, 5 +kampBend port gkTrackpadY, .03, i(gkTrackpadY) +kampBend pow kampBend + 1, 5 + +ivibRand random 4.1, 5.7 + +kvibrato oscil .006*kampBend, ivibRand*kpitchBend, 1 + + tigoto tieskip + +kpitch portk p4, igliss, p4 +kpan portk p7, igliss, p7 +krg portk p5, igliss, p5 +kcutoff portk p12, igliss, p12 +kls portk p13, igliss, p13 +kle portk p14, igliss, p14 +kcd portk p15, igliss, p15 + +a1 flooper2 1, kpitch+kvibrato, kls, kle, kcd, p8, 0, 0, 0, iskip + +if (p11-1) != -1 then +acomp = a1 +a1 bqrez a1, kcutoff, 6, p11-1 +a1 balance a1, acomp +endif + +if kpitch < 1 then +kalias = giAliasSr*kpitch +else +kalias = giAliasSr +endif + +a1 tone a1, kalias + +a1 = a1*kenv*kvol + +gaoutL = a1*(1-kpan)+gaoutL +gaoutR = a1*kpan+gaoutR + +gainrev = a1*krg+gainrev + + tieskip: +endin + + +/************************* +Soundfile player with edit's looped notes +*************************/ +instr 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110 + +if p16 != -1 then + inum = frac(p16) * 10000 + itable2 = int(p16) + event_i "i", inum, 0, p3, p4, p5, p6, p7, itable2, p9, p10, p11, p12, p17, p18, p19, -1 +endif + +ipitch random p4*.995, p4*1.005 + +iTrackId = int(p1-5101) +SvolTrackName2 sprintf "trackVolume%0d", iTrackId +kvol chnget SvolTrackName2 +kvol = kvol * 0.01 +kvol port kvol, .01, 0 ;i(kvol) + +ivibRand random 4.1, 5.7 + +kvibrato oscil .006, ivibRand, 1 + +a1 flooper2 1, ipitch+kvibrato, p13, p14, p15, p8, 0, 0, 0 + +if (p11-1) != -1 then +acomp = a1 +a1 bqrez a1, p12, 6, p11-1 +a1 balance a1, acomp +endif + +;if p4 < 1 then +;ialias = giAliasSr*p4 +;else +;ialias = giAliasSr +;endif + +;a1 tone a1, ialias + +aenv adsr p9, 0.005, p6, p10 +a1 = a1*aenv*kvol + +gaoutL = a1*(1-p7)+gaoutL +gaoutR = a1*p7+gaoutR + +gainrev = a1*p5+gainrev + +endin + +/************************************************************** +Simple soundfile player (miniTamTam) +**************************************************************/ + +instr 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020 + +idump = p16 +idump2 = p17 +idump3 = p18 +idump4 = p19 + +iTrackId = int(p1-5011) +SvolTrackName3 sprintf "trackVolume%0d", iTrackId +kvol chnget SvolTrackName3 +kvol = kvol * 0.01 +kvol port kvol, .01 + +p3 = nsamp(p8) * giScale / p4 + +a1 loscil p6, p4, p8, 1 + +if (p11-1) != -1 then +acomp = a1 +a1 bqrez a1, p12, 6, p11-1 +a1 balance a1, acomp +endif + +if p4 < 1 then +ialias = giAliasSr*p4 +else +ialias = giAliasSr +endif + +a1 tone a1, ialias + +kenv adsr p9, 0.05, .8, p10 +a1 = a1*kenv*kvol + +gaoutL = a1*(1-p7)+gaoutL +gaoutR = a1*p7+gaoutR + +gainrev = a1*p5+gainrev + +endin + +/************************************************************** +Simple soundfile player (Edit) +**************************************************************/ + +instr 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120 + +if p16 != -1 then + inum = frac(p16) * 10000 + itable2 = int(p16) + event_i "i", inum, 0, p3, p4, p5, p6, p7, itable2, p9, p10, p11, p12, p17, p18, p19, -1 +endif + +iTrackId = int(p1-5111) +SvolTrackName4 sprintf "trackVolume%0d", iTrackId +kvol chnget SvolTrackName4 +kvol = kvol * 0.01 +kvol port kvol, .01 + +a1 loscil p6, p4, p8, 1 + +if (p11-1) != -1 then +acomp = a1 +a1 bqrez a1, p12, 6, p11-1 +a1 balance a1, acomp +endif + +;if p4 < 1 then +;ialias = giAliasSr*p4 +;else +;ialias = giAliasSr +;endif + +;a1 tone a1, ialias + +kenv adsr p9, 0.05, .8, p10 + +a1 = a1*kenv*kvol + +gaoutL = a1*(1-p7)+gaoutL +gaoutR = a1*p7+gaoutR + +gainrev = a1*p5+gainrev + +endin + + + +/******************************************************************** +soundfile player for percussion - resonance notes +********************************************************************/ +instr 5021 + +a1 flooper2 1, p4, .25, .750, .2, p8 + +if (p11-1) != -1 then +acomp = a1 +a1 bqrez a1, p12, 6, p11-1 +a1 balance a1, acomp +endif + +kenv expseg 0.001, .003, .6, p3 - .003, 0.001 +klocalenv adsr p8, 0.05, .8, p10 + +a1 = a1*kenv*klocalenv + +gaoutL = a1*(1-p7)+gaoutL +gaoutR = a1*p7+gaoutR + +gainrev = a1*p5+gainrev + +endin + + + + + +f1 0 8192 10 1 +f2 0 8192 11 1 1 + +f4 0 32 -2 250 2250 2980 420 2050 2630 590 1770 2580 + 750 1450 2590 290 750 2300 360 770 2530 520 900 2510 710 1230 2700 570 1560 2560 0 0 0 0 0 +f30 0 1024 10 1 0 .3 0 .1 +f31 0 1024 10 1 .5 .3 .25 .1 +f32 0 1024 10 1 0 .1 0 .3 .2 0 0 .1 +f33 0 1024 10 1 0 0 0 .1 0 0 .2 .1 0 0 .1 +f34 0 1024 10 1 .6 0 0 .4 .2 .1 0 0 .1 +f35 0 1024 10 1 .5 .3 0 .1 0 0 0 .1 .1 +f36 0 1024 10 1 0 .6 .4 .1 0 0 .2 .1 0 0 ,1 +f37 0 1024 10 1 0 0 0 .1 .2 .1 0 0 0 .1 0 0 .1 +f38 0 1024 10 1 .4 .3 0 .1 .2 .1 .1 .1 0 0 0 0 .1 .05 +f39 0 1024 10 1 0 .5 0 0 .3 0 0 .2 0 .1 0 0 0 0 .2 0 0 0 .05 0 0 0 0 .03 ; ADDITIVE SYNTHESIS WAVE +f41 0 8193 19 .5 .5 270 .5 ; SIGMOID FUNCTION +f42 0 8192 -20 2 1 +f44 0 8192 5 1 8192 0.001 ; EXPONENTIAL FUNCTION +f45 0 512 7 0 500 0 2 1 10 1 +f5150 0 32768 7 0 32768 0 +i200 0 600000 + + -- cgit v0.9.1