User-Defined Opcode Database |
---|
channel vocoder with user-specified number of bands
Download UDO FileVocoder is a channel vocoder using 4th order butteworth filters. It takes an input signal and analyses it with a user-specified number of log-spaced (constant-Q) filter bands (between a min and max) and frequency) and then applies the analysed spectral envelope to an excitation signal.
asig Vocoder aexc, ain, kminf, kmaxf, kq, ibands
ibands - number of filter bands between kminf and kmaxf
asig - output
aexc - excitation signal, generally a broadband source (ie. lots of spectral components)
ain - input signal, generally a signal with a strong spectral envelope or contour, formants, etc. (such as vocal sound)
kminf - lowest analysis frequency
kmaxf - highest analysis frequency
kq - filter Q
opcode Vocoder, a, aakkkpp as1,as2,kmin,kmax,kq,ibnd,icnt xin if kmax < kmin then ktmp = kmin kmin = kmax kmax = ktmp endif if kmin == 0 then kmin = 1 endif if (icnt >= ibnd) goto bank abnd Vocoder as1,as2,kmin,kmax,kq,ibnd,icnt+1 bank: kfreq = kmin*(kmax/kmin)^((icnt-1)/(ibnd-1)) kbw = kfreq/kq an butterbp as2, kfreq, kbw an butterbp an, kfreq, kbw as butterbp as1, kfreq, kbw as butterbp as, kfreq, kbw ao balance as, an amix = ao + abnd xout amix endop
instr 1 asig inch 1 imax = 7000 imin = 300 ifun = imin/2 kra randh .05, 2 kfun = abs(1-kra)*ifun anoi buzz 1000, kfun, imax/ifun, 1 aout Vocoder anoi, asig,imin,imax,25,32 outs aout,aout endin
Victor Lazzarini, 2005
Previous | Home | Next |
tieStatus | vowel |