There are 3 messages in this thread.
You are currently looking at messages 0 to 3.
Hi, i´m new to dsp (since few weeks) , so i hope anyone could help me: I´m coding a audio dynamik-tool (vst) and need a good Envelope-Follower/Detection. I´ve allready tried some different ways: 1. Simply abs and lowpass filter - problems: - ripples in low frequencies, - not linear in frequency reaction below ~100 Hz 2. same as (1) but with different Attack & Release rates for inc/dec - problems: - same as (1) + attack/release in LP is cricical, one way to many ripples, other way to slow reaction on the peaks. 3. 90° Phase Shift (Hilbert-Transform) and something like env=sqrt(x(n)^2 + ht(n)^2) - problems: - to slow: my Hilbert Code had 2 Loops, so Buffersize^2 calcs. Can use a FIR Filter but: - does not work in realtime on low frequencyies with small buffers (128/256 or 512 Samples), because the needed Samples are not yet present. It would help me very much if anybody knows a fast efficient way for an Envelope-Follower which is linear in frequency reaction and produces an Envelope without much ripples but also detects new peaks fast enough. The envelope-curve should be as smooth as the LP-Version but without the ripples and linear on all frequencies. I know *all* this together is not 100% possible, but i try to find the best solution :-) Thanx in advance ... Guru Bug______________________________
"Guru Bug" <g...@sound-labs.com> wrote in message news:c82q9a$s2s$07$1...@news.t-online.com... > Hi, > > i´m new to dsp (since few weeks) , so i hope anyone could help me: > > I´m coding a audio dynamik-tool (vst) and need a good > Envelope-Follower/Detection. > > I´ve allready tried some different ways: > > 1. Simply abs and lowpass filter - problems: > - ripples in low frequencies, > - not linear in frequency reaction below ~100 Hz You need to define your requirements better. For example, if you're going to admit very low frequencies then how do you differentiate between envelope and the underlying waveform? Maybe one way to envision what you want is to high-pass filter the data first and then abs and then lowpass such that the lowpass is below the high pass that was applied. Have you considered a sample-hold sort of process where the output is: yn(nT) = peak picked out of x at t=T yk(kT) = next peak picked out of x at k>n etc. where k is related to n by some integral multiple of the underlying sample interval "T". so you have: y(iT)=yn for t=nT to (k-1)T y(it)=yk for t=kT to ...... etc. Then lowpass filter the result according to your requirements. This is equivalent to lowpass filtering with a sinc-shaped filter first and may be easier computationally than actually applying the same filter. Fred______________________________
On Fri, 14 May 2004 15:21:27 -0700, "Fred Marshall" <fmarshallx@remove_the_x.acm.org> wrote: > >"Guru Bug" <g...@sound-labs.com> wrote in message >news:c82q9a$s2s$07$1...@news.t-online.com... >> Hi, >> >> i´m new to dsp (since few weeks) , so i hope anyone could help me: >> >> I´m coding a audio dynamik-tool (vst) and need a good >> Envelope-Follower/Detection. >> >> I´ve allready tried some different ways: >> >> 1. Simply abs and lowpass filter - problems: >> - ripples in low frequencies, >> - not linear in frequency reaction below ~100 Hz > >You need to define your requirements better. >For example, if you're going to admit very low frequencies then how do you >differentiate between envelope and the underlying waveform? This is a "known problem" for audio envelope followers. Go to http://www.fmraudio.com, go to the FAQ and to the question: "Why does the RNC distort my bass guitar?" ----- http://mindspring.com/~benbradley______________________________