sr=44100 kr=44100 ksmps = 1 nchnls = 2 instr 6; simple output acar soundin "rights.aiff" outs acar,acar endin instr 1 ; 40 band vocoder - geometric bands idur = p3 igain = p4 ilow = p5 ; the lowest frequency for the vocoder ihigh = p6 ; the highest frequency for the vocoder itablec = p7 ; which waveform to use for the oscillators ibandadj = p8 ; an adjustment factor to make smaller-width bands acar soundin "rights.aiff" ; determine the frequency bands icoef pow ( ihigh / ilow ), ( 1. / 39. ) ib0=ilow; ib1 = ib0 * icoef ib2 = ib1 * icoef ib3 = ib2 * icoef ib4 = ib3 * icoef ib5 = ib4 * icoef ib6 = ib5 * icoef ib7 = ib6 * icoef ib8 = ib7 * icoef ib9 = ib8 * icoef ib10 = ib9 * icoef ib11 = ib10 * icoef ib12 = ib11 * icoef ib13 = ib12 * icoef ib14 = ib13 * icoef ib15 = ib14 * icoef ib16 = ib15 * icoef ib17 = ib16 * icoef ib18 = ib17 * icoef ib19 = ib18 * icoef ib20 = ib19 * icoef ib21 = ib20 * icoef ib22 = ib21 * icoef ib23 = ib22 * icoef ib24 = ib23 * icoef ib25 = ib24 * icoef ib26 = ib25 * icoef ib27 = ib26 * icoef ib28 = ib27 * icoef ib29 = ib28 * icoef ib30 = ib29 * icoef ib31 = ib30 * icoef ib32 = ib31 * icoef ib33 = ib32 * icoef ib34 = ib33 * icoef ib35 = ib34 * icoef ib36 = ib35 * icoef ib37 = ib36 * icoef ib38 = ib37 * icoef ib39 = ib38 * icoef ;create a bunch of oscillators with which to recreate the input signal ar0 oscil 1,ib0,itablec ar1 oscil 1,ib1,itablec ar2 oscil 1,ib2,itablec ar3 oscil 1,ib3,itablec ar4 oscil 1,ib4,itablec ar5 oscil 1,ib5,itablec ar6 oscil 1,ib6,itablec ar7 oscil 1,ib7,itablec ar8 oscil 1,ib8,itablec ar9 oscil 1,ib9,itablec ar10 oscil 1,ib10,itablec ar11 oscil 1,ib11, itablec ar12 oscil 1,ib12, itablec ar13 oscil 1,ib13, itablec ar14 oscil 1,ib14, itablec ar15 oscil 1,ib15, itablec ar16 oscil 1,ib16, itablec ar17 oscil 1,ib17, itablec ar18 oscil 1,ib18, itablec ar19 oscil 1,ib19, itablec ar20 oscil 1,ib20,itablec ar21 oscil 1,ib21,itablec ar22 oscil 1,ib22,itablec ar23 oscil 1,ib23,itablec ar24 oscil 1,ib24,itablec ar25 oscil 1,ib25,itablec ar26 oscil 1,ib26,itablec ar27 oscil 1,ib27,itablec ar28 oscil 1,ib28,itablec ar29 oscil 1,ib29,itablec ar30 oscil 1,ib30,itablec ar31 oscil 1,ib31, itablec ar32 oscil 1,ib32, itablec ar33 oscil 1,ib33, itablec ar34 oscil 1,ib34, itablec ar35 oscil 1,ib35, itablec ar36 oscil 1,ib36, itablec ar37 oscil 1,ib37, itablec ar38 oscil 1,ib38, itablec ar39 oscil 1,ib39, itablec amod=ar0+ar1+ar2+ar3+ar4+ar5+ar6+ar7+ar8+ar9+ar10+ar11+ar12+ar13+ar14+ar15+ar16+ar17+ar18+ar19+ar20+ar21+ar22+ar23+ar24+ar25+ar26+ar27+ar28+ar29+ar30+ar31+ar32+ar33+ar34+ar35+ar36+ar37+ar38+ar39 ; measure frequency band content of input abpc0 butterbp acar, ib0, ib0*(icoef-1.0)*ibandadj abpc1 butterbp acar, ib1, ib1*(icoef-1.0)*ibandadj abpc2 butterbp acar, ib2, ib2*(icoef-1.0)*ibandadj abpc3 butterbp acar, ib3, ib3*(icoef-1.0)*ibandadj abpc4 butterbp acar, ib4, ib4*(icoef-1.0)*ibandadj abpc5 butterbp acar, ib5, ib5*(icoef-1.0)*ibandadj abpc6 butterbp acar, ib6, ib6*(icoef-1.0)*ibandadj abpc7 butterbp acar, ib7, ib7*(icoef-1.0)*ibandadj abpc8 butterbp acar, ib8, ib8*(icoef-1.0)*ibandadj abpc9 butterbp acar, ib9, ib9*(icoef-1.0)*ibandadj abpc10 butterbp acar, ib10, ib10*(icoef-1.0)*ibandadj abpc11 butterbp acar, ib11, ib11*(icoef-1.0)*ibandadj abpc12 butterbp acar, ib12, ib12*(icoef-1.0)*ibandadj abpc13 butterbp acar, ib13, ib13*(icoef-1.0)*ibandadj abpc14 butterbp acar, ib14, ib14*(icoef-1.0)*ibandadj abpc15 butterbp acar, ib15, ib15*(icoef-1.0)*ibandadj abpc16 butterbp acar, ib16, ib16*(icoef-1.0)*ibandadj abpc17 butterbp acar, ib17, ib17*(icoef-1.0)*ibandadj abpc18 butterbp acar, ib18, ib18*(icoef-1.0)*ibandadj abpc19 butterbp acar, ib19, ib19*(icoef-1.0)*ibandadj abpc20 butterbp acar, ib20, ib20*(icoef-1.0)*ibandadj abpc21 butterbp acar, ib21, ib21*(icoef-1.0)*ibandadj abpc22 butterbp acar, ib22, ib22*(icoef-1.0)*ibandadj abpc23 butterbp acar, ib23, ib23*(icoef-1.0)*ibandadj abpc24 butterbp acar, ib24, ib24*(icoef-1.0)*ibandadj abpc25 butterbp acar, ib25, ib25*(icoef-1.0)*ibandadj abpc26 butterbp acar, ib26, ib26*(icoef-1.0)*ibandadj abpc27 butterbp acar, ib27, ib27*(icoef-1.0)*ibandadj abpc28 butterbp acar, ib28, ib28*(icoef-1.0)*ibandadj abpc29 butterbp acar, ib29, ib29*(icoef-1.0)*ibandadj abpc30 butterbp acar, ib30, ib30*(icoef-1.0)*ibandadj abpc31 butterbp acar, ib31, ib31*(icoef-1.0)*ibandadj abpc32 butterbp acar, ib32, ib32*(icoef-1.0)*ibandadj abpc33 butterbp acar, ib33, ib33*(icoef-1.0)*ibandadj abpc34 butterbp acar, ib34, ib34*(icoef-1.0)*ibandadj abpc35 butterbp acar, ib35, ib35*(icoef-1.0)*ibandadj abpc36 butterbp acar, ib36, ib36*(icoef-1.0)*ibandadj abpc37 butterbp acar, ib37, ib37*(icoef-1.0)*ibandadj abpc38 butterbp acar, ib38, ib38*(icoef-1.0)*ibandadj abpc39 butterbp acar, ib39, ib39*(icoef-1.0)*ibandadj ;recreate the input signal using an oscillator for each frequency band av0 balance ar0, abpc0 av1 balance ar1, abpc1 av2 balance ar2, abpc2 av3 balance ar3, abpc3 av4 balance ar4, abpc4 av5 balance ar5, abpc5 av6 balance ar6, abpc6 av7 balance ar7, abpc7 av8 balance ar8, abpc8 av9 balance ar9, abpc9 av10 balance ar10, abpc10 av11 balance ar11, abpc11 av12 balance ar12, abpc12 av13 balance ar13, abpc13 av14 balance ar14, abpc14 av15 balance ar15, abpc15 av16 balance ar16, abpc16 av17 balance ar17, abpc17 av18 balance ar18, abpc18 av19 balance ar19, abpc19 av20 balance ar20, abpc20 av21 balance ar21, abpc21 av22 balance ar22, abpc22 av23 balance ar23, abpc23 av24 balance ar24, abpc24 av25 balance ar25, abpc25 av26 balance ar26, abpc26 av27 balance ar27, abpc27 av28 balance ar28, abpc28 av29 balance ar29, abpc29 av30 balance ar30, abpc30 av31 balance ar31, abpc31 av32 balance ar32, abpc32 av33 balance ar33, abpc33 av34 balance ar34, abpc34 av35 balance ar35, abpc35 av36 balance ar36, abpc36 av37 balance ar37, abpc37 av38 balance ar38, abpc38 av39 balance ar39, abpc39 ; Mix and output aenv linseg 0, 0.01, 1, idur - 0.02, 1, 0.01, 0 amixl = 0.9*( av0 + av2 + av4 + av6 + av8 +av10+av12+av14+av16+av18+av20+av22+av24+av26+av28+av30+av32+av34+av36+av38) amixl = amixl * aenv * igain amixr = 0.9*(av1+av3+av5+av7+av9+av11+av13+av15+av17+av19+av21+av23+av25+av27+av29+av31+av33+av35+av37+av39) amixr = amixr * aenv * igain ; balance the vocoded signal with the input signal ;ar1 balance amixr, 0.7*acar ;al1 balance amixl, 0.7*acar outs p4*amixr, p4*amixl endin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; instr 2 ; 10 band vocoder - geometric bands idur = p3 igain = p4 ilow = p5 ; the lowest frequency for the vocoder ihigh = p6 ; the highest frequency for the vocoder itablec = p7 ; which waveform to use for the oscillators ibandadj = p8 ; an adjustment factor to make smaller-width bands acar soundin "rights.aiff" ; determine the frequency bands icoef pow ( ihigh / ilow ), ( 1. / 9. ) ib0=ilow; ib1 = ib0 * icoef ib2 = ib1 * icoef ib3 = ib2 * icoef ib4 = ib3 * icoef ib5 = ib4 * icoef ib6 = ib5 * icoef ib7 = ib6 * icoef ib8 = ib7 * icoef ib9 = ib8 * icoef ;create a bunch of oscillators with which to recreate the input signal ar0 oscil 1,ib0,itablec ar1 oscil 1,ib1,itablec ar2 oscil 1,ib2,itablec ar3 oscil 1,ib3,itablec ar4 oscil 1,ib4,itablec ar5 oscil 1,ib5,itablec ar6 oscil 1,ib6,itablec ar7 oscil 1,ib7,itablec ar8 oscil 1,ib8,itablec ar9 oscil 1,ib9,itablec ; measure frequency band content of input abpc0 butterbp acar, ib0, ib0*(icoef-1.0)*ibandadj abpc1 butterbp acar, ib1, ib1*(icoef-1.0)*ibandadj abpc2 butterbp acar, ib2, ib2*(icoef-1.0)*ibandadj abpc3 butterbp acar, ib3, ib3*(icoef-1.0)*ibandadj abpc4 butterbp acar, ib4, ib4*(icoef-1.0)*ibandadj abpc5 butterbp acar, ib5, ib5*(icoef-1.0)*ibandadj abpc6 butterbp acar, ib6, ib6*(icoef-1.0)*ibandadj abpc7 butterbp acar, ib7, ib7*(icoef-1.0)*ibandadj abpc8 butterbp acar, ib8, ib8*(icoef-1.0)*ibandadj abpc9 butterbp acar, ib9, ib9*(icoef-1.0)*ibandadj ;recreate the input signal using an oscillator for each frequency band av0 balance ar0, abpc0 av1 balance ar1, abpc1 av2 balance ar2, abpc2 av3 balance ar3, abpc3 av4 balance ar4, abpc4 av5 balance ar5, abpc5 av6 balance ar6, abpc6 av7 balance ar7, abpc7 av8 balance ar8, abpc8 av9 balance ar9, abpc9 ; Mix and output aenv linseg 0, 0.01, 1, idur - 0.02, 1, 0.01, 0 amixl = 0.9*( av0 + av2 + av4 + av6 + av8 ) amixl = amixl * aenv * igain amixr = 0.9*(av1+av3+av5+av7+av9) amixr = amixr * aenv * igain outs p4*amixr, p4*amixl endin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; instr 3 ; 40 band upside-down vocoder - geometric bands idur = p3 igain = p4 ilow = p5 ; the lowest frequency for the vocoder ihigh = p6 ; the highest frequency for the vocoder itablec = p7 ; which waveform to use for the oscillators ibandadj = p8 ; an adjustment factor to make smaller-width bands acar soundin "rights.aiff" ; determine the frequency bands icoef pow ( ihigh / ilow ), ( 1. / 39. ) ib0=ilow; ib1 = ib0 * icoef ib2 = ib1 * icoef ib3 = ib2 * icoef ib4 = ib3 * icoef ib5 = ib4 * icoef ib6 = ib5 * icoef ib7 = ib6 * icoef ib8 = ib7 * icoef ib9 = ib8 * icoef ib10 = ib9 * icoef ib11 = ib10 * icoef ib12 = ib11 * icoef ib13 = ib12 * icoef ib14 = ib13 * icoef ib15 = ib14 * icoef ib16 = ib15 * icoef ib17 = ib16 * icoef ib18 = ib17 * icoef ib19 = ib18 * icoef ib20 = ib19 * icoef ib21 = ib20 * icoef ib22 = ib21 * icoef ib23 = ib22 * icoef ib24 = ib23 * icoef ib25 = ib24 * icoef ib26 = ib25 * icoef ib27 = ib26 * icoef ib28 = ib27 * icoef ib29 = ib28 * icoef ib30 = ib29 * icoef ib31 = ib30 * icoef ib32 = ib31 * icoef ib33 = ib32 * icoef ib34 = ib33 * icoef ib35 = ib34 * icoef ib36 = ib35 * icoef ib37 = ib36 * icoef ib38 = ib37 * icoef ib39 = ib38 * icoef ;create modulator ;create a bunch of oscillators with which to recreate the input signal ar0 oscil 1,ib0,itablec ar1 oscil 1,ib1,itablec ar2 oscil 1,ib2,itablec ar3 oscil 1,ib3,itablec ar4 oscil 1,ib4,itablec ar5 oscil 1,ib5,itablec ar6 oscil 1,ib6,itablec ar7 oscil 1,ib7,itablec ar8 oscil 1,ib8,itablec ar9 oscil 1,ib9,itablec ar10 oscil 1,ib10,itablec ar11 oscil 1,ib11, itablec ar12 oscil 1,ib12, itablec ar13 oscil 1,ib13, itablec ar14 oscil 1,ib14, itablec ar15 oscil 1,ib15, itablec ar16 oscil 1,ib16, itablec ar17 oscil 1,ib17, itablec ar18 oscil 1,ib18, itablec ar19 oscil 1,ib19, itablec ar20 oscil 1,ib20,itablec ar21 oscil 1,ib21,itablec ar22 oscil 1,ib22,itablec ar23 oscil 1,ib23,itablec ar24 oscil 1,ib24,itablec ar25 oscil 1,ib25,itablec ar26 oscil 1,ib26,itablec ar27 oscil 1,ib27,itablec ar28 oscil 1,ib28,itablec ar29 oscil 1,ib29,itablec ar30 oscil 1,ib30,itablec ar31 oscil 1,ib31, itablec ar32 oscil 1,ib32, itablec ar33 oscil 1,ib33, itablec ar34 oscil 1,ib34, itablec ar35 oscil 1,ib35, itablec ar36 oscil 1,ib36, itablec ar37 oscil 1,ib37, itablec ar38 oscil 1,ib38, itablec ar39 oscil 1,ib39, itablec amod=ar0+ar1+ar2+ar3+ar4+ar5+ar6+ar7+ar8+ar9+ar10+ar11+ar12+ar13+ar14+ar15+ar16+ar17+ar18+ar19+ar20+ar21+ar22+ar23+ar24+ar25+ar26+ar27+ar28+ar29+ar30+ar31+ar32+ar33+ar34+ar35+ar36+ar37+ar38+ar39 ; measure frequency band content of input ( THIS IS THE BACKWARD PART) abpc39 butterbp acar, ib0, ib0*(icoef-1.0)*ibandadj abpc38 butterbp acar, ib1, ib1*(icoef-1.0)*ibandadj abpc37 butterbp acar, ib2, ib2*(icoef-1.0)*ibandadj abpc36 butterbp acar, ib3, ib3*(icoef-1.0)*ibandadj abpc35 butterbp acar, ib4, ib4*(icoef-1.0)*ibandadj abpc34 butterbp acar, ib5, ib5*(icoef-1.0)*ibandadj abpc33 butterbp acar, ib6, ib6*(icoef-1.0)*ibandadj abpc32 butterbp acar, ib7, ib7*(icoef-1.0)*ibandadj abpc31 butterbp acar, ib8, ib8*(icoef-1.0)*ibandadj abpc30 butterbp acar, ib9, ib9*(icoef-1.0)*ibandadj abpc29 butterbp acar, ib10, ib10*(icoef-1.0)*ibandadj abpc28 butterbp acar, ib11, ib11*(icoef-1.0)*ibandadj abpc27 butterbp acar, ib12, ib12*(icoef-1.0)*ibandadj abpc26 butterbp acar, ib13, ib13*(icoef-1.0)*ibandadj abpc25 butterbp acar, ib14, ib14*(icoef-1.0)*ibandadj abpc24 butterbp acar, ib15, ib15*(icoef-1.0)*ibandadj abpc23 butterbp acar, ib16, ib16*(icoef-1.0)*ibandadj abpc22 butterbp acar, ib17, ib17*(icoef-1.0)*ibandadj abpc21 butterbp acar, ib18, ib18*(icoef-1.0)*ibandadj abpc20 butterbp acar, ib19, ib19*(icoef-1.0)*ibandadj abpc19 butterbp acar, ib20, ib20*(icoef-1.0)*ibandadj abpc18 butterbp acar, ib21, ib21*(icoef-1.0)*ibandadj abpc17 butterbp acar, ib22, ib22*(icoef-1.0)*ibandadj abpc16 butterbp acar, ib23, ib23*(icoef-1.0)*ibandadj abpc15 butterbp acar, ib24, ib24*(icoef-1.0)*ibandadj abpc14 butterbp acar, ib25, ib25*(icoef-1.0)*ibandadj abpc13 butterbp acar, ib26, ib26*(icoef-1.0)*ibandadj abpc12 butterbp acar, ib27, ib27*(icoef-1.0)*ibandadj abpc11 butterbp acar, ib28, ib28*(icoef-1.0)*ibandadj abpc10 butterbp acar, ib29, ib29*(icoef-1.0)*ibandadj abpc9 butterbp acar, ib30, ib30*(icoef-1.0)*ibandadj abpc8 butterbp acar, ib31, ib31*(icoef-1.0)*ibandadj abpc7 butterbp acar, ib32, ib32*(icoef-1.0)*ibandadj abpc6 butterbp acar, ib33, ib33*(icoef-1.0)*ibandadj abpc5 butterbp acar, ib34, ib34*(icoef-1.0)*ibandadj abpc4 butterbp acar, ib35, ib35*(icoef-1.0)*ibandadj abpc3 butterbp acar, ib36, ib36*(icoef-1.0)*ibandadj abpc2 butterbp acar, ib37, ib37*(icoef-1.0)*ibandadj abpc1 butterbp acar, ib38, ib38*(icoef-1.0)*ibandadj abpc0 butterbp acar, ib39, ib39*(icoef-1.0)*ibandadj ;recreate the input signal using an oscillator for each frequency band av0 balance ar0, abpc0 av1 balance ar1, abpc1 av2 balance ar2, abpc2 av3 balance ar3, abpc3 av4 balance ar4, abpc4 av5 balance ar5, abpc5 av6 balance ar6, abpc6 av7 balance ar7, abpc7 av8 balance ar8, abpc8 av9 balance ar9, abpc9 av10 balance ar10, abpc10 av11 balance ar11, abpc11 av12 balance ar12, abpc12 av13 balance ar13, abpc13 av14 balance ar14, abpc14 av15 balance ar15, abpc15 av16 balance ar16, abpc16 av17 balance ar17, abpc17 av18 balance ar18, abpc18 av19 balance ar19, abpc19 av20 balance ar20, abpc20 av21 balance ar21, abpc21 av22 balance ar22, abpc22 av23 balance ar23, abpc23 av24 balance ar24, abpc24 av25 balance ar25, abpc25 av26 balance ar26, abpc26 av27 balance ar27, abpc27 av28 balance ar28, abpc28 av29 balance ar29, abpc29 av30 balance ar30, abpc30 av31 balance ar31, abpc31 av32 balance ar32, abpc32 av33 balance ar33, abpc33 av34 balance ar34, abpc34 av35 balance ar35, abpc35 av36 balance ar36, abpc36 av37 balance ar37, abpc37 av38 balance ar38, abpc38 av39 balance ar39, abpc39 ; Mix and output aenv linseg 0, 0.01, 1, idur - 0.02, 1, 0.01, 0 amixl = 0.9*( av0 + av2 + av4 + av6 + av8 +av10+av12+av14+av16+av18+av20+av22+av24+av26+av28+av30+av32+av34+av36+av38) amixl = amixl * aenv * igain amixr = 0.9*(av1+av3+av5+av7+av9+av11+av13+av15+av17+av19+av21+av23+av25+av27+av29+av31+av33+av35+av37+av39) amixr = amixr * aenv * igain ; balance the vocoded signal with the input signal ;ar1 balance amixr, 0.7*acar ;al1 balance amixl, 0.7*acar outs p4*amixr, p4*amixl endin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; instr 4 ; 40 band noise vocoder - geometric bands idur = p3 igain = p4 ilow = p5 ; the lowest frequency for the vocoder ihigh = p6 ; the highest frequency for the vocoder itablec = p7 ; which waveform to use for the oscillators ibandadj = p8 ; an adjustment factor to make smaller-width bands acar soundin "rights.aiff" ; determine the frequency bands icoef pow ( ihigh / ilow ), ( 1. / 39. ) ib0=ilow; ib1 = ib0 * icoef ib2 = ib1 * icoef ib3 = ib2 * icoef ib4 = ib3 * icoef ib5 = ib4 * icoef ib6 = ib5 * icoef ib7 = ib6 * icoef ib8 = ib7 * icoef ib9 = ib8 * icoef ib10 = ib9 * icoef ib11 = ib10 * icoef ib12 = ib11 * icoef ib13 = ib12 * icoef ib14 = ib13 * icoef ib15 = ib14 * icoef ib16 = ib15 * icoef ib17 = ib16 * icoef ib18 = ib17 * icoef ib19 = ib18 * icoef ib20 = ib19 * icoef ib21 = ib20 * icoef ib22 = ib21 * icoef ib23 = ib22 * icoef ib24 = ib23 * icoef ib25 = ib24 * icoef ib26 = ib25 * icoef ib27 = ib26 * icoef ib28 = ib27 * icoef ib29 = ib28 * icoef ib30 = ib29 * icoef ib31 = ib30 * icoef ib32 = ib31 * icoef ib33 = ib32 * icoef ib34 = ib33 * icoef ib35 = ib34 * icoef ib36 = ib35 * icoef ib37 = ib36 * icoef ib38 = ib37 * icoef ib39 = ib38 * icoef ;create a bunch of sound sources with which to recreate the input signal k1 linen 1, 0.01, idur, idur-0.01 a1 rand k1 ar0 butterbp a1,ib0,ib1 ar1 butterbp a1,ib1,ib2 ar2 butterbp a1,ib2,ib3 ar3 butterbp a1,ib3,ib4 ar4 butterbp a1,ib4,ib5 ar5 butterbp a1,ib5,ib6 ar6 butterbp a1,ib6,ib7 ar7 butterbp a1,ib7,ib8 ar8 butterbp a1,ib8,ib9 ar9 butterbp a1,ib9,ib10 ar10 butterbp a1,ib10,ib11 ar11 butterbp a1,ib11,ib12 ar12 butterbp a1,ib12,ib13 ar13 butterbp a1,ib13,ib14 ar14 butterbp a1,ib14,ib15 ar15 butterbp a1,ib15,ib16 ar16 butterbp a1,ib16,ib17 ar17 butterbp a1,ib17,ib18 ar18 butterbp a1,ib18,ib19 ar19 butterbp a1,ib19,ib20 ar20 butterbp a1,ib20,ib21 ar21 butterbp a1,ib21,ib22 ar22 butterbp a1,ib22,ib23 ar23 butterbp a1,ib23,ib24 ar24 butterbp a1,ib24,ib25 ar25 butterbp a1,ib25,ib26 ar26 butterbp a1,ib26,ib27 ar27 butterbp a1,ib27,ib28 ar28 butterbp a1,ib28,ib29 ar29 butterbp a1,ib29,ib30 ar30 butterbp a1,ib30,ib31 ar31 butterbp a1,ib31,ib32 ar32 butterbp a1,ib32,ib33 ar33 butterbp a1,ib33,ib34 ar34 butterbp a1,ib34,ib35 ar35 butterbp a1,ib35,ib36 ar36 butterbp a1,ib36,ib37 ar37 butterbp a1,ib37,ib38 ar38 butterbp a1,ib38,ib39 ar39 butterbp a1,ib39,ib39*icoef ; measure frequency band content of input abpc0 butterbp acar, ib0, ib0*(icoef-1.0)*ibandadj abpc1 butterbp acar, ib1, ib1*(icoef-1.0)*ibandadj abpc2 butterbp acar, ib2, ib2*(icoef-1.0)*ibandadj abpc3 butterbp acar, ib3, ib3*(icoef-1.0)*ibandadj abpc4 butterbp acar, ib4, ib4*(icoef-1.0)*ibandadj abpc5 butterbp acar, ib5, ib5*(icoef-1.0)*ibandadj abpc6 butterbp acar, ib6, ib6*(icoef-1.0)*ibandadj abpc7 butterbp acar, ib7, ib7*(icoef-1.0)*ibandadj abpc8 butterbp acar, ib8, ib8*(icoef-1.0)*ibandadj abpc9 butterbp acar, ib9, ib9*(icoef-1.0)*ibandadj abpc10 butterbp acar, ib10, ib10*(icoef-1.0)*ibandadj abpc11 butterbp acar, ib11, ib11*(icoef-1.0)*ibandadj abpc12 butterbp acar, ib12, ib12*(icoef-1.0)*ibandadj abpc13 butterbp acar, ib13, ib13*(icoef-1.0)*ibandadj abpc14 butterbp acar, ib14, ib14*(icoef-1.0)*ibandadj abpc15 butterbp acar, ib15, ib15*(icoef-1.0)*ibandadj abpc16 butterbp acar, ib16, ib16*(icoef-1.0)*ibandadj abpc17 butterbp acar, ib17, ib17*(icoef-1.0)*ibandadj abpc18 butterbp acar, ib18, ib18*(icoef-1.0)*ibandadj abpc19 butterbp acar, ib19, ib19*(icoef-1.0)*ibandadj abpc20 butterbp acar, ib20, ib20*(icoef-1.0)*ibandadj abpc21 butterbp acar, ib21, ib21*(icoef-1.0)*ibandadj abpc22 butterbp acar, ib22, ib22*(icoef-1.0)*ibandadj abpc23 butterbp acar, ib23, ib23*(icoef-1.0)*ibandadj abpc24 butterbp acar, ib24, ib24*(icoef-1.0)*ibandadj abpc25 butterbp acar, ib25, ib25*(icoef-1.0)*ibandadj abpc26 butterbp acar, ib26, ib26*(icoef-1.0)*ibandadj abpc27 butterbp acar, ib27, ib27*(icoef-1.0)*ibandadj abpc28 butterbp acar, ib28, ib28*(icoef-1.0)*ibandadj abpc29 butterbp acar, ib29, ib29*(icoef-1.0)*ibandadj abpc30 butterbp acar, ib30, ib30*(icoef-1.0)*ibandadj abpc31 butterbp acar, ib31, ib31*(icoef-1.0)*ibandadj abpc32 butterbp acar, ib32, ib32*(icoef-1.0)*ibandadj abpc33 butterbp acar, ib33, ib33*(icoef-1.0)*ibandadj abpc34 butterbp acar, ib34, ib34*(icoef-1.0)*ibandadj abpc35 butterbp acar, ib35, ib35*(icoef-1.0)*ibandadj abpc36 butterbp acar, ib36, ib36*(icoef-1.0)*ibandadj abpc37 butterbp acar, ib37, ib37*(icoef-1.0)*ibandadj abpc38 butterbp acar, ib38, ib38*(icoef-1.0)*ibandadj abpc39 butterbp acar, ib39, ib39*(icoef-1.0)*ibandadj ;recreate the input signal using an oscillator for each frequency band av0 balance ar0, abpc0 av1 balance ar1, abpc1 av2 balance ar2, abpc2 av3 balance ar3, abpc3 av4 balance ar4, abpc4 av5 balance ar5, abpc5 av6 balance ar6, abpc6 av7 balance ar7, abpc7 av8 balance ar8, abpc8 av9 balance ar9, abpc9 av10 balance ar10, abpc10 av11 balance ar11, abpc11 av12 balance ar12, abpc12 av13 balance ar13, abpc13 av14 balance ar14, abpc14 av15 balance ar15, abpc15 av16 balance ar16, abpc16 av17 balance ar17, abpc17 av18 balance ar18, abpc18 av19 balance ar19, abpc19 av20 balance ar20, abpc20 av21 balance ar21, abpc21 av22 balance ar22, abpc22 av23 balance ar23, abpc23 av24 balance ar24, abpc24 av25 balance ar25, abpc25 av26 balance ar26, abpc26 av27 balance ar27, abpc27 av28 balance ar28, abpc28 av29 balance ar29, abpc29 av30 balance ar30, abpc30 av31 balance ar31, abpc31 av32 balance ar32, abpc32 av33 balance ar33, abpc33 av34 balance ar34, abpc34 av35 balance ar35, abpc35 av36 balance ar36, abpc36 av37 balance ar37, abpc37 av38 balance ar38, abpc38 av39 balance ar39, abpc39 ; Mix and output aenv linseg 0, 0.01, 1, idur - 0.02, 1, 0.01, 0 amixl = 0.9*( av0 + av2 + av4 + av6 + av8 +av10+av12+av14+av16+av18+av20+av22+av24+av26+av28+av30+av32+av34+av36+av38) amixl = amixl * aenv * igain amixr = 0.9*(av1+av3+av5+av7+av9+av11+av13+av15+av17+av19+av21+av23+av25+av27+av29+av31+av33+av35+av37+av39) amixr = amixr * aenv * igain ; balance the vocoded signal with the input signal ;ar1 balance amixr, 0.7*acar ;al1 balance amixl, 0.7*acar outs p4*amixr, p4*amixl endin