<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Helvetica;
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:Helvetica;
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
span.gmail-m-5253579429799083610apple-converted-space
{mso-style-name:gmail-m_-5253579429799083610apple-converted-space;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-serif";
mso-fareast-language:EN-GB;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Well I might be misunderstanding what the OP is trying to do as the conversation did seem to go off in several directions, but I’ve seen comments that the group
delay introduced by higher order filters or the output lag if using a lower order filter is a problem.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">If you use wavelet decomposition you’re going to generate a moving output array of scale factors which represent the instantaneous amplitude of the wavelets
the input has been decomposed into. These won’t appear at the same time – the lower frequencies lag the upper ones. These can either be used separately to reconstruct something based on the incoming signal, which is how some voice synthesisers or some autotunes
(but not the original) work, or the scale factors could be combined to produce a series of envelopes which is what I do in my additive synth.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">But I don’t see why you couldn’t produce just a single envelope amplitude if that is what the OP wanted. But maybe it isn’t what he wanted in which case you’re
right, this isn’t the correct approach.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Guy McCusker [mailto:guy.mccusker@gmail.com]
<br>
<b>Sent:</b> 18 December 2021 12:03<br>
<b>To:</b> Mike Bryant<br>
<b>Cc:</b> Mr&MrsAccount; Jean-Pierre Desrochers; Tom Wiltshire; synth-diy@synth-diy.org<br>
<b>Subject:</b> Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Can you give us a clue on how a wavelet transform would be useful in an envelope follower? I don't know much about the area but at first glance it does not seem like the right tool for the job. <o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Fri, Dec 17, 2021 at 11:25 PM Mike Bryant <<a href="mailto:mbryant@futurehorizons.com">mbryant@futurehorizons.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">If anybody is thinking of doing this digitally, you might want to read up on the Continuous Wavelet
Transform. Then once you realise your DSP isn’t up to it, have a look at the Discrete Sub Band Transform, aka Wavelet Packet Decomposition. This gives as accurate results as the Discrete Wavelet Transform with less group delay problems, and given enough
processing power is able to decompose even the human voice in real time.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Synth-diy
[mailto:<a href="mailto:synth-diy-bounces@synth-diy.org" target="_blank">synth-diy-bounces@synth-diy.org</a>]
<b>On Behalf Of </b>Mr&MrsAccount<br>
<b>Sent:</b> 17 December 2021 21:41<br>
<b>To:</b> Jean-Pierre Desrochers; 'Tom Wiltshire'<br>
<b>Cc:</b> <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
<b>Subject:</b> Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Remember that high order filters don't come without their own baggage...</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">They suffer from greater group delay (which could be a problem) and poor transient response (also a problem).</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Especially in a use where the input could start at zero or suddenly return to zero, the overshoots can be a killer.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">I've been making filters to isolate the fundamental of Guitars for many (now many mnay) years. The settling times are longer than the delay of the guitar
signal itself, therefore the delays...</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
</div>
<div>
<div id="gmail-m_-5253579429799083610OLK_SRC_BODY_SECTION">
<div id="gmail-m_-5253579429799083610OLK_SRC_BODY_SECTION">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 12.0pt;margin-left:9.6pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div class="MsoNormal" align="center" style="text-align:center"><span style="color:black">
<hr size="5" width="100%" align="center">
</span></div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><strong><span style="color:black">From:
</span></strong><span style="color:black">Jean-Pierre <<a href="mailto:jpdesroc@oricom.ca" target="_blank">jpdesroc@oricom.ca</a>><br>
<strong>To: </strong>'Tom <<a href="mailto:tom@electricdruid.net" target="_blank">tom@electricdruid.net</a>><br>
<strong>Cc: </strong>synth-diy <<a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a>><br>
<strong>Date: </strong>Friday, 17 December 2021 10:39 AM EST<br>
<strong>Subject: </strong>Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?</span><o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black">> This would be the digital equivalent to the single pole RC. It should be possible to get better ripple suppression by using higher order
filters. Harald showed that he got a better response using a fourth-order filter.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black"><br>
So.. how can I modify the C1 section to get for example a fourth-order filter ?<br>
To do it the way the signal flows across C1 is a bit confusing..<br>
The signal comes from the left side but the clamping comes from D1 at right side.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black">I know how to implement high order filters in circuits but only<br>
if I know the signal flow direction..</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><strong><span lang="FR" style="color:black">De :</span></strong><span lang="FR" style="color:black"> Synth-diy <<a href="mailto:synth-diy-bounces@synth-diy.org" target="_blank">synth-diy-bounces@synth-diy.org</a>>
<strong>De la part de</strong> Tom Wiltshire<br>
<strong>Envoyé :</strong> 17 décembre 2021 08:37<br>
<strong>À :</strong> Martin Klang <<a href="mailto:mars@pingdynasty.com" target="_blank">mars@pingdynasty.com</a>><br>
<strong>Cc :</strong> <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
<strong>Objet :</strong> Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">This would be the digital equivalent to the single pole RC. It should be possible to get better ripple suppression by using higher order filters. Harald
showed that he got a better response using a fourth-order filter.</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><span style="color:black"> </span><o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">On 16 Dec 2021, at 16:26, Martin Klang <<a href="mailto:mars@pingdynasty.com" target="_blank">mars@pingdynasty.com</a>> wrote:</span><o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">I think an envelope follower with no lag is called a rectifier.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">Jokes aside, there are a number of options available but ultimately it comes down to filtering.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">For digital envelope followers, I like to use a simple exponential average (aka leaky integrator, a first-order IIR filter) on the fully rectified signal and tune the time constant
to the expected input signal. Generally you want it to be fast, but not so fast as to track the waveform oscillations, even at say 20 Hz. This makes a computationally very efficient follower with predictable results.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">best,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">Martin</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;word-spacing:0px">
<span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black"> </span><o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">On 16/12/2021 01:36, Jean-Pierre Desrochers wrote:</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt;word-spacing:0px">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Here is my goal..</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black">I need a circuit that will take an AC signal and will shift level it from<br>
a DC offset extracted from its min & max Peaks..<br>
Ex: Suppose you have steady +/- 5v peak sine wave coming in this circuit,<br>
The output would be the same waveform but shifted up to +5vdc.<span class="gmail-m-5253579429799083610apple-converted-space"> </span></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black">So 0 to +10vdc.<br>
That final waveform would be much usable for a 0-5vdc control voltage input<br>
than the original AC waveform.<br>
Now the challenge is to do the same with a level changing AC signal.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><span lang="EN-CA" style="color:black">In the case of a<span class="gmail-m-5253579429799083610apple-converted-space"> </span><u>steady waveform</u><span class="gmail-m-5253579429799083610apple-converted-space"> </span>this
‘level shifter’ could be an opamp that would add half of the peak to peak voltage as an offset DC voltage,<br>
But here I’m looking for something that will be more versatile<br>
to handle varying level waveform.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-CA" style="color:black"> </span><o:p></o:p></p>
</div>
</blockquote>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:9.0pt;font-family:"Helvetica","sans-serif";color:black">_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">
marketplace@synth-diy.org</a></span><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black"> </span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">
marketplace@synth-diy.org</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>