Re: [music-dsp] Comb filter decay wrt. feedback
A comb filter has a certain purpose. Do you know it? Not everybody is good at electronics (where comb filters have a clearer meaning) or physics, but it does pay to take a little time to at least try to understand the difference between free wheel thinking about some glossy subject (DSP) and what actually goes on the computations, regardless where they were electronically or digitally published. The comb filter Z equation doesn't tell you what's right or wrong with a signal getting filtered in the digital domain. It's not easy to get a correct frequency idea in the head of DSP designers, usually, because they tend to think that their doings are the norm, and all the concepts (like frequency and filtering and phase shift, and linearity, etc.) will follow them along their thought journey. Unfortunately nature, and decent electronics are a natural science that will not yield to all kinds of DSP thoughts at all, so reverb and it's components would best be described and computed on using proper ideas. The problem with the tuning of any filter, FIR or IIR, state varying or linear, is that you need to know what those samples in you program actually stand for. In classic sampling theory, samples are equidistant signal samples of a continuous signal (like reverb creating a voltage in a microphone), that can be reconstructed to reform the original continuous signal under the condition that the signal was bandwidth limited to at most half the sampling frequency. Boringly familiar, I'm aware, and then then the actual Reconstruction Function that RBJ referred to is an infinite sum functions, which can also tell you the actual continuous domain effect of every DSP filter or whatever, in perfect sample thinking space. T.V. -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
[Peter S] but when i consider that part of designing comb filters tuned to musical notes, i have to at least pause and wonder which interpolation would be better or sufficient for whatever application and that's why it didn't seem trivial to me. Linear interpolation is fast and dirty, and gives muffled notes with reduced high freqs. Allpass interpolation has flat passband, so the Schroeder RT60 formula works precisely. (It may mess up the phase and create some Nyquist ringing, so that might be an issue in some cases.) Thiran allpass interpolation works very well for tuning feedback-delay string models, at very low computational cost. Its nonlinear phase causes slight inharmonicity in the partial frequencies, an effect which is also found in nature. Manual adjustments may be necessary to bring especially higher pitches into musical tune. Cheers, Tim -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 5/10/15 3:42 PM, Matthias Puech wrote: I have a recursive comb filter, implemented with a simple delay line of size N and feedback F in [0..1]. If feedback is high and I ping it, it decays exponentially as it should, to give the typical ringing effect. The decay time D is also proportional to N: if I double N, D is also doubled. My question: what is the value of F depending on N that will give a constant D. In other words, how can I play my comb filter on a scale à la Karplus-Strong and retain a constant decay time? i forgot to consider the less trivial part of the question (it wasn't about the gains of the teeth). repeating the setup: instead of z^-1 or e^(-sT), it's e^(-s*T0) where T0 is the reciprocal of the precise fundamental frequency of the ping and is not necessarily an integer number of samples. so designing your comb (both feedback and feedforward gains) is the same as designing an LPF and the comb teeth are spaced by 1/T0 (the specified fundamental frequency, f0) instead of 1/T (which is the sampling frequency) if H(s) = (1 + b*e(-s*T0)) / (1 + a*e(-s*T0)) (feedback gain is -a) so first consider the simple 1st-order digital LPF H(z) = (1 + b*z^-1) / (1 + a*z^-1) it has a discrete-time impulse response of +inf h[n] = d[n] + (1 - b/a) * SUM (-a)^i d[i-n] i=1 where d[n] is the Kronecker delta d[n] = 1 when n=0 = 0 otherwise translating back to analog (where z^-1 -- e^(-sT) ) +inf h(t) = d(t) + (1 - b/a) * SUM (-a)^i d(iT-t) i=1 now d(t) is a sorta bandlimited dirac delta d(t) = (1/T)*sinc(t/T) where T=1/Fs is the sampling period but let's pretend it's a regular dirac delta, whatever the hell that is. the decaying sum can be rewritten as (if the feedback gain is 0 -a 1) +inf SUM e^(log(-a)*i) * d(t-iT) i=0 so when t=iT the decay is down to e^(log(-a)*(t/T)) and the time constant is tau = -T/log(-a) and the decay rate is the reciprocal log(-a)/T now for the comb filter, replace T with T0, the delay of your precision delay. normally that T0 is the period of the note. 1/T0 = f0 where f0 = (440 Hz) * 2^((p-69)/12) = (8.17579891564371 Hz) * 2^(p/12) where p is the MIDI note number. now, if you want your decay rate to be independent of the note, the feedback gain, -a, cannot be independent log(-a) = -T0/tau -a = e^(-T0/tau) = e^(-1/(tau*f0)) = e^( -2^(-p/12)/(tau*(8.1758Hz) ) so, select a time constant, know which note you're playing (that will determine T0 and how you're doing interpolation in the precision delay line), and calculate your feedback coefficient from that. so Peter, this (the answer to the OP's question) is trivial? it's not string theory, but it's more than trivial. -- r b-j r...@audioimagination.com Imagination is more important than knowledge. -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 12/05/2015, robert bristow-johnson r...@audioimagination.com wrote: so Peter, this (the answer to the OP's question) is trivial? it's not string theory, but it's more than trivial. The poster's question was: how to solve F in a decaying exponential for a given D and T: http://morpheus.spectralhead.com/txt/exp-decay.txt If the initial impulse has an amplitude of 1, then the resulting impulses will have amplitudes of F, F^2, F^3, F^4, ... F^N. In other words, it is a geometric series, where you have to solve F^N = A where A is a given target amplitude, and N = T/D. I assume he already knows how to convert MIDI note to frequency. So he already knows D (1/f), and he knows what T he wants. Therefore, he knows N and A. The only unknown is F. For someone who claims to be a 'CS researcher', this shouldn't be too difficult to solve. Rearranging the equation gives: F = A^(1/N) No need to make it more complicated than it really is. Sure you can turn this into a more difficult problem, if you prefer. - Peter -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
Thank you very much to all of you for the great resources and the blazingly fast answers. It gives me much to digest. Indeed, my question was simply about a feedback path, no feedforward. I solved my problem, using Peter’s comment and with the great help of Matt (offline), simply by doing: F = Fa ^ D where Fa is an « amount » of feedback (I didn’t need real units). I guess I didn’t really think about it in terms of a geometrical suite. Thanks again, -m Le 10 mai 2015 à 23:41, Peter S peter.schoffhau...@gmail.com a écrit : On 11/05/2015, Peter S peter.schoffhau...@gmail.com wrote: By the way, the 'decay time' is also well defined in case of one-pole filters, and is called 'time constant' dspguide.com gives the following time constant formula for one pole filters: x = exp ( -1 / d ) where d is the desired decay time (to ~36.8%) in samples, and x is the feedback coefficient. See equation 19-4 at: http://www.dspguide.com/ch19/2.htm - Peter -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 11/05/2015, Peter S peter.schoffhau...@gmail.com wrote: By the way, the 'decay time' is also well defined in case of one-pole filters, and is called 'time constant' dspguide.com gives the following time constant formula for one pole filters: x = exp ( -1 / d ) where d is the desired decay time (to ~36.8%) in samples, and x is the feedback coefficient. See equation 19-4 at: http://www.dspguide.com/ch19/2.htm - Peter -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
Le 10 mai 2015 à 16:50, robert bristow-johnson r...@audioimagination.com a écrit : it's not trivial and it's not in the basic lit. This make me somehow relieved and disappointed at the same time. ;) lemme find and review my own notes/equations regarding that (i think i titled it Fun with Comb Filters), and i'll get back on it. Thank you! but to tune your comb filters to arbitrary pitches, you will need a precision tap delay line. Yes, I got this far. I’m using Hermite interpolation because it was already on my shelf. maybe need to get familiar with the Nyquist/Shannon Sampling and Reconstruction Theorem and the good ol' sinc() function. Ok; you mentioning these in this context make me think I missed something. Any self-contained reference to recommend? DAFX was kind of glossing over this IIRC. -m -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 5/10/15 3:42 PM, Matthias Puech wrote: This is my first post on this list, although I have been reading it for quite some time, with great interest. welcum I am a CS researcher in an unrelated field, but fascinated for as long as I can remember by DSP and sound synthesis. Unfortunately my knowledge is still basic, and now is the first time that I face real technical difficulties (while implementing this: http://mqtthiqs.github.io/parasites/). Witness this question: I have a recursive comb filter, implemented with a simple delay line of size N and feedback F in [0..1]. If feedback is high and I ping it, it decays exponentially as it should, to give the typical ringing effect. The decay time D is also proportional to N: if I double N, D is also doubled. My question: what is the value of F depending on N that will give a constant D. In other words, how can I play my comb filter on a scale à la Karplus-Strong and retain a constant decay time? Sorry if this sounds too trivial or if it is not the right place to ask. Don’t hesitate to redirect me if needed or point me to references, I am eagerly looking for basic literature. it's not trivial and it's not in the basic lit. lemme find and review my own notes/equations regarding that (i think i titled it Fun with Comb Filters), and i'll get back on it. but to tune your comb filters to arbitrary pitches, you will need a precision tap delay line. maybe need to get familiar with the Nyquist/Shannon Sampling and Reconstruction Theorem and the good ol' sinc() function. -- r b-j r...@audioimagination.com Imagination is more important than knowledge. -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 11/05/2015, robert bristow-johnson r...@audioimagination.com wrote: apologies for the hyperbole. if you consider both feedback and feedforward gain, Where does the 'feedforward' part come from? As I understand, poster has a delay line with a simple feedback loop, and no feedforward path: http://morpheus.spectralhead.com/txt/delay.txt Of course, when delay is reduced to 1 sample (= z^-1), it becomes a trivial one-pole filter, with tuning = half samplerate (Nyquist), without a gain or feedforward coefficient: http://morpheus.spectralhead.com/txt/onepole.txt In this model (and in the Shroeder model), there's no gain or feedforward coefficient, so it's not normalized for neither DC gain nor skirt gain (both of which would need a gain coefficient, turning this into either a cheap one-pole HP filter, or a Nyquist resonator). getting the gain no more or less trivial than designing a quick, oneth-order digital LPF. instead of z^-1 or e^(-sT), it's e^(-s*T0) where T0 is the reciprocal of the precise fundamental frequency of the ping and is not necessarily an integer number of samples. Yes, though that can be rounded to integer delay length, which will give frequency quantization for very high notes, which is shown on this graph: http://morpheus.spectralhead.com/img/delay-freq-quantization.png This figure is from a paper titled Extensions of the Karplus-Strong Plucked String by David A. Jaffe and JOS, which might be of interest to some readers: http://davidjaffesite.squarespace.com/storage/writings/Jaffe-Smith-Extensions-CMJ-1983.pdf so designing your comb (both feedback and feedforward gains) is the same as designing an LPF Yes, assuming you also have a feedforward coefficient :) I assumed the poster doesn't have one in his model, only a feedback coeff. In that case, the model is simpler, and Schroeder's figure apply for calculating RT60 time. When I consider adding a gain coeff, like this: http://morpheus.spectralhead.com/txt/onepole2.txt ...then the RT60 formula should still apply, since 'a' is just a global gain coeff, and the feedback loop isn't changed. By the way, the 'decay time' is also well defined in case of one-pole filters, and is called 'time constant', with formulas similar to what Schoeder's equation gives you, except it's usually defined for 1/e (~36.8%), not for -60 dB (RT60): https://en.wikipedia.org/wiki/Time_constant Probably by 'feedforward' gain you meant adding a zero, like this: http://morpheus.spectralhead.com/txt/onepole3.txt If you consider that, the Schoeder formula should still (roughly) apply, since the length of the IR is determined mainly by the feedback part, a0 is just a gain, and the feedforward part is a FIR filter, thus it increases IR length only by 1 sample in case of z^-1, or by N in case of z^-N. So I think this is also not difficult to analyze, since the feedforward and feedback parts can be analyzed independently, and the feedback part is the same as the Schoeder's comb filter model, for which he gives a precise formula to calculate RT60, and the feedforward part only modifies it slightly (though I have no precise equation for that). And I think the poster only has a feedback part and no feedforward part in his model, so the FIR part is not a concern. but when i consider that part of designing comb filters tuned to musical notes, i have to at least pause and wonder which interpolation would be better or sufficient for whatever application and that's why it didn't seem trivial to me. Linear interpolation is fast and dirty, and gives muffled notes with reduced high freqs. Allpass interpolation has flat passband, so the Schroeder RT60 formula works precisely. (It may mess up the phase and create some Nyquist ringing, so that might be an issue in some cases.) Hermite interpolation I found adequate for most musical needs, and has only little error. Higher order interpolators are more precise near Nyquist, but a lot more expensive. I think all of these are described in the literature. (JOS has a lot of material on these.) what's really cool (and also makes this a teeny bit less trivial) is that you can use this extend z^-1 design to comb filter design philosophy to second or higher order filters (more precision-delay taps offa the delay line) and *really* design the shape of the teeth of the comb. like do a butterworth design and the teeth are really flat (and won't complain too much if some harmonic is slightly offa its harmonic value). Sounds like an interesting proposition, and that one indeed sounds less trivial. Haven't actually seen that described in the literature. we should have a drink together (do you come to U.S. AES shows?) and all you do is mention one of several political topics and the hyperbole coming outa me will be worse than this. Heh... thanks for the invitation! I'm not much of a traveler (actually haven't been to the U.S. so far), but who knows? Maybe some day. - Peter -- dupswapdrop -- the music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 10/05/2015, robert bristow-johnson r...@audioimagination.com wrote: it's not trivial and it's not in the basic lit. It's trivial, and it's in the 1961 Schroeder paper linked in the previous post. - Peter -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 5/10/15 8:00 PM, Peter S wrote: On 10/05/2015, robert bristow-johnsonr...@audioimagination.com wrote: it's not trivial and it's not in the basic lit. It's trivial, and it's in the 1961 Schroeder paper linked in the previous post. apologies for the hyperbole. if you consider both feedback and feedforward gain, getting the gain no more or less trivial than designing a quick, oneth-order digital LPF. instead of z^-1 or e^(-sT), it's e^(-s*T0) where T0 is the reciprocal of the precise fundamental frequency of the ping and is not necessarily an integer number of samples. so designing your comb (both feedback and feedforward gains) is the same as designing an LPF and the comb teeth are spaced by 1/T0 (the specified fundamental frequency, f0) instead of 1/T (which is the sampling frequency) if H(s) = (1 + b*e(-s*T0)) / (1 + a*e(-s*T0)) (feedback gain is -a) the gain at the top of the teeth (assuming it's an LPF prototype) is (1+b)/(1+a) and you can dB-ize that. the gain at the valleys between teeth is (1-b)/(1-a). i think the teeth are taller than the valleys if b a. now it doesn't have to be modeled after an LPF, you could design a first-order HPF (with z^-1) and translating that to the longer delay, you would get a comb with teeth spaced by 1/T0, but instead of starting at DC, your first tooth is at 1/(2*T0). then the teeth gain is (1-b)/(1-a) and the valley gain is (1+b)/(1+a). now my brain cells are dying (i dunno how many zillions per second) so when i am first faced with a problem called precision delay, i have to at least wonder if i'm gonna do it with an APF (single z^-1 and negative feedback coef) or with the FIR polyphase method (where i get to use MATLAB to design an LPF). or maybe it'll be blanch Linear Interpolation. it's gonna be one or even some combination of two or these methods. but when i consider that part of designing comb filters tuned to musical notes, i have to at least pause and wonder which interpolation would be better or sufficient for whatever application and that's why it didn't seem trivial to me. what's really cool (and also makes this a teeny bit less trivial) is that you can use this extend z^-1 design to comb filter design philosophy to second or higher order filters (more precision-delay taps offa the delay line) and *really* design the shape of the teeth of the comb. like do a butterworth design and the teeth are really flat (and won't complain too much if some harmonic is slightly offa its harmonic value). we should have a drink together (do you come to U.S. AES shows?) and all you do is mention one of several political topics and the hyperbole coming outa me will be worse than this. -- r b-j r...@audioimagination.com Imagination is more important than knowledge. -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
On 10/05/2015, Matthias Puech pu...@cs.mcgill.ca wrote: I have a recursive comb filter, implemented with a simple delay line of size N and feedback F in [0..1]. If feedback is high and I ping it, it decays exponentially as it should, to give the typical ringing effect. The decay time D is also proportional to N: if I double N, D is also doubled. My question: what is the value of F depending on N that will give a constant D. In other words, how can I play my comb filter on a scale à la Karplus-Strong and retain a constant decay time? Schroeder's paper Colorless artificial reverberation gives RT60 formulas for comb filters: http://www.ece.rochester.edu/~zduan/teaching/ece472/reading/Schroeder_1961.pdf See figure (19). T = N * 60 / (-G) ...where T = delay time (RT60), N is delay length, and G is loop gain in decibels. Calculating F should be straighforward by rearranging the equation. maybe need to get familiar with the Nyquist/Shannon Sampling and Reconstruction Theorem and the good ol' sinc() function. Ok; you mentioning these in this context make me think I missed something. Any self-contained reference to recommend? DAFX was kind of glossing over this IIRC. Hermite interpolation is fine for delays, most of the time (unless you want something ultra-high quality and heavy). - Peter -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
[music-dsp] Comb filter decay wrt. feedback
Hello DSPists, This is my first post on this list, although I have been reading it for quite some time, with great interest. I am a CS researcher in an unrelated field, but fascinated for as long as I can remember by DSP and sound synthesis. Unfortunately my knowledge is still basic, and now is the first time that I face real technical difficulties (while implementing this: http://mqtthiqs.github.io/parasites/). Witness this question: I have a recursive comb filter, implemented with a simple delay line of size N and feedback F in [0..1]. If feedback is high and I ping it, it decays exponentially as it should, to give the typical ringing effect. The decay time D is also proportional to N: if I double N, D is also doubled. My question: what is the value of F depending on N that will give a constant D. In other words, how can I play my comb filter on a scale à la Karplus-Strong and retain a constant decay time? Sorry if this sounds too trivial or if it is not the right place to ask. Don’t hesitate to redirect me if needed or point me to references, I am eagerly looking for basic literature. Thank you in advance, -m -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
I'm about to build a clouds from pcb and quite interested in how to reprogram it. Seen your parasites on muffs and anxious to try it. Matt (From Ableton) Sent from a phone. On 10.05.2015, at 21:42, Matthias Puech pu...@cs.mcgill.ca wrote: Hello DSPists, This is my first post on this list, although I have been reading it for quite some time, with great interest. I am a CS researcher in an unrelated field, but fascinated for as long as I can remember by DSP and sound synthesis. Unfortunately my knowledge is still basic, and now is the first time that I face real technical difficulties (while implementing this: http://mqtthiqs.github.io/parasites/). Witness this question: I have a recursive comb filter, implemented with a simple delay line of size N and feedback F in [0..1]. If feedback is high and I ping it, it decays exponentially as it should, to give the typical ringing effect. The decay time D is also proportional to N: if I double N, D is also doubled. My question: what is the value of F depending on N that will give a constant D. In other words, how can I play my comb filter on a scale à la Karplus-Strong and retain a constant decay time? Sorry if this sounds too trivial or if it is not the right place to ask. Don’t hesitate to redirect me if needed or point me to references, I am eagerly looking for basic literature. Thank you in advance, -m -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Comb filter decay wrt. feedback
Oops that was meant as directly to Matthias. But as long as there is no filter in the feedback loop, Rt60 is your friend ;) http://www.sengpielaudio.com/calculator-RT60.htm Sent from a phone. On 10.05.2015, at 21:54, Matt Jackson matt.jack...@ableton.commailto:matt.jack...@ableton.com wrote: I'm about to build a clouds from pcb and quite interested in how to reprogram it. Seen your parasites on muffs and anxious to try it. Matt (From Ableton) Sent from a phone. On 10.05.2015, at 21:42, Matthias Puech pu...@cs.mcgill.camailto:pu...@cs.mcgill.ca wrote: Hello DSPists, This is my first post on this list, although I have been reading it for quite some time, with great interest. I am a CS researcher in an unrelated field, but fascinated for as long as I can remember by DSP and sound synthesis. Unfortunately my knowledge is still basic, and now is the first time that I face real technical difficulties (while implementing this: http://mqtthiqs.github.io/parasites/). Witness this question: I have a recursive comb filter, implemented with a simple delay line of size N and feedback F in [0..1]. If feedback is high and I ping it, it decays exponentially as it should, to give the typical ringing effect. The decay time D is also proportional to N: if I double N, D is also doubled. My question: what is the value of F depending on N that will give a constant D. In other words, how can I play my comb filter on a scale à la Karplus-Strong and retain a constant decay time? Sorry if this sounds too trivial or if it is not the right place to ask. Don’t hesitate to redirect me if needed or point me to references, I am eagerly looking for basic literature. Thank you in advance, -m -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp