[sdiy] Vocoder dabblings
Richie Burnett
rburnett at richieburnett.co.uk
Sat Dec 1 17:33:51 CET 2012
Achim, thanks for posting the link to that paper. Some good maths tricks in
there, and I'll likely refer back to it in my day job as well as for hobby
projects!
You make a good point about the narrow filter bands of the vocoder
inherently limiting the bandwidth (and slew rate) of the detected envelope
signal. Of course this is most true for the lowest frequency bands where
the absolute bandwidth in Hz is quite small, and indeed this is what limits
the bandwidth of the envelope CV signal I get out of the detector. For the
higher frequency analysis bands I curtail the envelope-follower output
bandwidths to keep all of the formant CV bandwidths in line and stop the
overall vocoder sound becoming too grainy/fluttery.
-Richie,
----- Original Message -----
From: "ASSI" <Stromeko at nexgo.de>
To: <synth-diy at dropmix.xs4all.nl>
Sent: Saturday, December 01, 2012 9:16 AM
Subject: Re: [sdiy] Vocoder dabblings
> Hi Richie,
>
> On Thursday 29 November 2012, 22:57:53, Richie Burnett wrote:
>> Eric, it's interesting to hear that you already use this technique for RF
>> stuff. Thanks for the magnitude estimation formula. I hadn't seen this
>> trick before!
>
> Additionally, this may give some more insight:
> http://www.iro.umontreal.ca/~mignotte/IFT2425/Documents/ARootOfLessEvil.pdf
>
>> Im currently using a MAC instruction to square a number inside a
>> successive-approximation loop in order to calculate the square-root to
>> 16-bits after 16 guesses. The sample rate is heavily decimated for the
>> bottom few vocoder bands so can do a bit more number crunching here than
>> I could afford in the top bands!
>
> The trick to shave off iterations is to start with a better guess.
>
> The equiripple-error estimator from the link above gives you seven correct
> bits for (roughly) the cost of two iterations, so you only need 9 more
> iterations to go to full precision.
>
> However, you are _tracking_ the magnitude of a bandpass analytic signal.
> The envelope of this signal is itself a lowpass signal, which means its
> slew
> rate has an upper limit. You should be able to chop off some (more)
> iterations if you use this fact to make an initial guess that is very
> close
> to the true value. The simplest estimator of a signal that doesn't change
> "fast" is the previous sample. The first order difference of your
> envelope
> signal will show you to how many bits this estimator is accurate and how
> many iterations you need to fully accuracy. Note that some iteration
> procedures assume that the estimate is lower than the true value, which
> means you can't directly use the previous sample in those cases. You can
> probably combine this with an estimator for either the magnitude itself or
> the change of magnitude from the previous sample (especially if you have
> the
> first order differences of the I and Q signal already around somewhere),
> but
> the added complexity of the estimator probably outweighs the saved
> iterations.
>
>
> Regards,
> Achim.
> --
> +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
>
> Waldorf MIDI Implementation & additional documentation:
> http://Synth.Stromeko.net/Downloads.html#WaldorfDocs
>
> _______________________________________________
> 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