[sdiy] Vocoder dabblings
Tom Wiltshire
tom at electricdruid.net
Thu Nov 29 22:10:20 CET 2012
Very interesting, Richie. I'd heard of the Hilbert envelope detector but didn't know what it was.
Is there some particular reason to use "sum of squares, then square root" over "sum of absolute values"?
Often people use square-then-square-root as a way to get the absolute value, but it doesn't make much sense in most computer hardware, so what's the advantage?
Thanks,
Tom
On 29 Nov 2012, at 20:45, Richie Burnett wrote:
> I forgot to mention this before, but another thing I had been experimenting with for the vocoder was Hilbert envelope followers.
>
> The design of the envelope-follower filters in a vocoder is a compromise between responding quick enough to variations in formant amplitude but at the same time sufficiently attenuating the AC ripple from the full-wave rectified band output being "envelope followed." Excessive ripple present in the envelope follower CV output risks ring-modulating the carrier signal passing through it's VCA with horrible discordant results! The envelope-follower's filter design is particularly challanging for the lowest frequency bands where there is not much room for a filter to do its rolloff and an aggressive high-order filter introduce undesirable overshoot and ringing in the envelope CV output. The Hilbert envelope follower helps here...
>
> The Hilbert envelope detector generates two new versions of the audio to be "envelope followed". These are seperated from each other by 90 degrees by passing through two different allpass filters. The envelope level for this band is then calculated by summing the squares of the two instantaneous signals and square-rooting the result. This "magically" generates a value that follows the envelope of the signal being analysed but contains several orders of magnitude less ripple than a simple "rectify and low-pass filter" envelope follower. It therefore requires minimal post-filtering to make the envelope CV ripple-free. [The mathematical explanation comes from the trig identity: sin^2 + cos^2 = 1 or intuitively you can think of the positive & negative peaks of the 90 degree shifted waveform (the sine) "filling in the dips" in the envelope signal when the other waveform (the cosine) is passing through zero.]
>
> The Hilbert transformer circuit is familiar to RF engineers as it is used for SSB generation, and also appears in things like the moog/bode frequency shifter. The design is usually complex in order to maintain a precise 90 degree phase difference over the entire audio range. However, in the case of a vocoder each band is only something like 1/3 octave wide so it's easy to maintain a good 90 degree phase shift over this small frequency span using two simple allpass filters. The biggest hit in CPU cycles is the final square-root operation!
>
> Just thought i'd share a technique that might be useful in other electronic music applications. It doesn't seem to be that well known.
>
> -Richie,
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
More information about the Synth-diy
mailing list