<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><blockquote type="cite" class="">*post accumulation*.</blockquote><div class=""><br class=""></div>VERY fascinating.<div class=""><br class=""></div><div class="">I have some hardware on my bench that implements what you're saying is actually PM:</div><div class=""><br class=""></div><div class="">phase_accumulator += phase_increment</div><div class="">output = sine_wave[phase_accumulator + modulation] </div><div class=""><br class=""></div><div class="">and behaves exactly how I expect my DX7 to behave. This is in Super's 2OPFM module, too. Simple stuff.</div><div class=""><br class=""></div><div class="">vs FM: </div><div class=""><br class=""></div><div class="">phase_increment += modulation</div><div class="">phase_accumulator += phase_increment</div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">output = sine_wave[phase_accumulator]</span></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class=""><br class=""></span></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">which I guess I'm glad is non-intuitive enough for me to never have gotten hung up on! hah. </span></font></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class=""><br class=""></span></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Cheers, </span></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Chris McDowell </span></div><div class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 26, 2022, at 2:14 PM, Richie Burnett <<a href="mailto:rburnett@richieburnett.co.uk" class="">rburnett@richieburnett.co.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">FM and PM are equivalent except for the placement of the integration step. FM is essentially the same as PM with an integrated modulator waveform.<br class=""><br class="">You can think of PM as adding the modulator signal to the value pulled from the phase accumulator of the carrier oscillator just before it is used as the index into the carrier waveform lookup table. In this case there is a variable offset (the modulator waveform) applied to the carrier phase *post accumulation*.<br class=""><br class="">In contrast FM adds the modulator signal to the fixed phase increment (frequency) of the carrier NCO *before* it is added to the phase accumulator. So the modulator waveform gets integrated in the phase accumulator of the NCO.<br class=""><br class="">You can see that a tiny DC offset in the modulator signal just results in a (largely inaudible) phase shift with PM, but results in a fixed frequency shift with FM. That's one of the reasons why PM is more well behaved musically than true FM... With lots of operators modulating others and limited numerical precision it's easy for DC offsets to occur and it doesn't take much to throw FM out of tune!<br class=""><br class="">To anyone not familiar with PM and FM, it's worth pointing out that phase and frequency modulation result in a complex spectrum of sidebands even for the supposedly simple case where the carrier and modulator are pure sinewaves. The amplitudes of all of the resulting spectral components are described by Bessel functions, unlike the simple spectrum you get from using AM (ring modulation.) <br class=""><br class="">-Richie,<br class=""><br class=""><br class="">---- Chris McDowell via Synth-diy wrote ----<br class=""><br class=""><blockquote type="cite" class="">I'll add that the modulating waveform does not need to be the same frequency as, or an integer multiple of, the carrier waveform to qualify as phase modulation. PM refers to this implementation (chowning's, in this discussion) of what amounts to linear FM. It really is simply adding the output of one wavetable lookup to the accumulator of another. I -believe- (and I invite correction here) that the resulting harmonics are identical to those from linear frequency modulation. <br class=""><br class="">Chris McDowell <br class=""><br class=""><blockquote type="cite" class="">On Nov 26, 2022, at 1:31 PM, Donald Tillman <<a href="mailto:don@till.com" class="">don@till.com</a>> wrote:<br class=""><br class=""><br class=""><blockquote type="cite" class=""><br class=""><blockquote type="cite" class="">On Nov 25, 2022, at 4:15 PM, Neil Johnson <<a href="mailto:neil.johnson71@gmail.com" class="">neil.johnson71@gmail.com</a>> wrote:<br class=""><br class="">Donald Tillman wrote:<br class="">This field has a rich history of goofing up the terminology.<br class=""></blockquote><br class="">Yup, same with Ring Modulator - even for devices with no diode ring, just VCAs!<br class=""></blockquote><br class="">Indeed.  Although I'm inclined to give that one a pass as it sounds so much like bell ringing.<br class=""><br class="">The name "Phase Shifter" for the guitar effect makes it near impossible to describe how it works.<br class=""><br class="">"The phase shifter is based around an all-pass filter."<br class=""><br class="">"Wait... a what?  How can a filter pass everything?  That sounds like an oxymoron; like tight slacks."<br class=""><br class="">"An all-pass filter does indeed pass the full spectrum, but it shifts the phase as a side effect."<br class=""><br class="">"So it's a phase shifter?"<br class=""><br class="">"Yes."<br class=""><br class="">"So a phase shifter is based on a phase shifter?"<br class=""><br class=""> -- Don<br class="">--<br class="">Donald Tillman, Palo Alto, California<br class=""><a href="https://www.till.com" class="">https://www.till.com</a><br class="">_______________________________________________<br class="">Synth-diy mailing list<br class="">Synth-diy@synth-diy.org<br class="">http://synth-diy.org/mailman/listinfo/synth-diy<br class="">Selling or trading? Use marketplace@synth-diy.org<br class=""></blockquote><br class="">_______________________________________________<br class="">Synth-diy mailing list<br class=""><a href="mailto:Synth-diy@synth-diy.org" class="">Synth-diy@synth-diy.org</a><br class="">http://synth-diy.org/mailman/listinfo/synth-diy<br class="">Selling or trading? Use marketplace@synth-diy.org<br class=""></blockquote><br class="">_______________________________________________<br class="">Synth-diy mailing list<br class=""><a href="mailto:Synth-diy@synth-diy.org" class="">Synth-diy@synth-diy.org</a><br class="">http://synth-diy.org/mailman/listinfo/synth-diy<br class="">Selling or trading? Use marketplace@synth-diy.org<br class=""></div></div></blockquote></div><br class=""></div></div></body></html>