<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">There's also differences in *where* the errors are worst between PWM and PDM.<div class=""><br class=""></div><div class="">Generally, you worry most about the fundamental and lowest harmonics of the pulse output frequency, since they're the hardest to filter. For PWM, you get the worst fundamental and 3rd harmonic at the midpoint value, when the output is a 50/50 square wave. You get the worst 2nd harmonic at the 25% and 75% values, since that's where that harmonic peaks for pulse waves. This is all fairly "central" and very likely to be values you're using all the time. In short, if your PWM output is at 100KHz, then 100KHz is what you'll get, and your filtering had better be able to deal with that.</div><div class=""><br class=""></div><div class="">For PDM, the central values are the best-case, rather than the worst. With PDM, the worst-case comes as you get to extreme values, so <5% or >95%. This happens because there's so few pulses going out that the effective output rate drops. Imagine we're using a 2MHz PDM output to create a 10-bit DAC. If we output our midpoint value of 512, we get a lovely squarewave at 1MHz - one period on, one period off. If we output a value of 1, we get one period on followed by 1023 periods off - a very narrow pulse wave at 2MHz/1024= 1953Hz. That's terrible! Of course, as you approach these extremes, the amount of fundamental and lower harmonics in such a narrow pulse drops off markedly, but still - you probably weren't thinking of a 2KHz output when you designed your 2MHz PDM DAC.</div><div class="">My view is that the secret with PDM is to discard the extremes and use the good bit in the middle!</div><div class=""><br class=""></div><div class="">Tom</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 20 Mar 2026, at 09:30, Mike Bryant <<a href="mailto:mbryant@futurehorizons.com" class="">mbryant@futurehorizons.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">This is why you use PDM, not PWM. The pulses are at much higher frequency and easier to filter to the correct DC level with less noise.</div><div style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><hr style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; display: inline-block; width: 722.25px;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""></span><div id="divRplyFwdMsg" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt;" class=""><b class="">From:</b> Synth-diy <<a href="mailto:synth-diy-bounces@synth-diy.org" class="">synth-diy-bounces@synth-diy.org</a>> on behalf of brianw <<a href="mailto:brianw@audiobanshee.com" class="">brianw@audiobanshee.com</a>><br class=""><b class="">Sent:</b> 20 March 2026 08:22<br class=""><b class="">To:</b> <a href="mailto:synth-diy@synth-diy.org" class="">synth-diy@synth-diy.org</a><span class="Apple-converted-space"> </span><<a href="mailto:synth-diy@synth-diy.org" class="">synth-diy@synth-diy.org</a>><br class=""><b class="">Subject:</b> Re: [sdiy] Linear response VCOs?</div><div style="direction: ltr;" class=""> </div></div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-size: 11pt;" class="">The challenge with PWM is that changing a rail-to-rail square wave into a steady DC value requires a lot of filtering. That filter must remove the sharp rise and fall of the raw PWM output, and thus the DC output value cannot sharply rise or fall either. The problem gets worse if a single channel needs to feed multiple unrelated CV values through a mux+S&H. The slew rate is horrible.<br class=""><br class="">Brian<br class=""><br class=""><br class=""></div><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">________________________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">This is the Synth-diy mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Submit email to:<span class="Apple-converted-space"> </span></span><a href="mailto:Synth-diy@synth-diy.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">Synth-diy@synth-diy.org</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">View archive at:<span class="Apple-converted-space"> </span></span><a href="https://synth-diy.org/pipermail/synth-diy/" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://synth-diy.org/pipermail/synth-diy/</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Check your settings at:<span class="Apple-converted-space"> </span></span><a href="https://synth-diy.org/mailman/listinfo/synth-diy" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://synth-diy.org/mailman/listinfo/synth-diy</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Selling or trading? Use<span class="Apple-converted-space"> </span></span><a href="mailto:marketplace@synth-diy.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">marketplace@synth-diy.org</a></div></blockquote></div><br class=""></div></body></html>