[sdiy] Time-varying all-pass filters
cheater00social at gmail.com
Thu Jan 6 23:48:59 CET 2022
Hi Rutger, welcome to the list.
At a glance that digital filter doesn't seem to be using any memory,
so you should be able to implement it in analog.
Regarding your allpass filter's peaks. Even without any time variance
all pass filters will create very steep peaks. Bear in mind the
amplitude of your input signal depends on eg the fundamental having a
null while higher order partials have their maximum. With an APF it's
easy to line up all those peaks together. You're probably confused
right now because a sinewave doesn't have higher order partials (let's
put noise and distortion to the side). When varying the frequency of a
filter, even on a sinewave, consider it this way. Instead of thinking
that you're somehow shortening or lengthening the filter, imagine that
the filter is not changing at all, and instead what you're doing is
you're making the whole world around it faster or slower. So this
means that the filter is at a constant frequency, but you change the
frequency of the input sinewave. At that point it is not a sinewave
any more, and it has a bunch of harmonics, especially if you're
varying the frequency of this sinewave in a cyclic way. Do you want
peaks? Because that's how you get peaks ;-) I wouldn't be worried too
much: add a bunch of headroom by using overspecced op amps, and be on
your merry way. I'd say 24dB of headroom is just fine. With a 30Vpp
signal that means 240Vpp! Nice! Maybe your next thread will be about
discrete op amps using JFETs or vacuum tubes. You can follow that
headroom up with a hard limiter of some sort.
On Thu, Jan 6, 2022 at 11:08 AM Rutger Vlek via Synth-diy
<synth-diy at synth-diy.org> wrote:
> Dear list,
> In the last months I’ve been fantasising about a new mono synth (for personal use, nothing commercial), that could provide classic sounds, but also something slightly more original (at least for me). I’ve been reading a lot about FM/PM, about formant synthesis and pulse-forming, and about windowed-sync. I’ve done experiments with combinations of these on my Nord Modular G2 (digital) and found them musically really satisfying!
> So now I’m making small steps towards a first prototype of these ideas in analog. Originally, I planned to do a thru-zero triangle core oscillator, after I read older threads about how David Dixon and Bernie Hutchins implemented it, but felt the circuit complexity and potential impact on tuning stability was not really outweighing my limited use of FM/PM sounds. So, I decided to start looking for simpler ways to obtain some of the sounds characteristic of PM/FM, as well as the possibility to obtain sine-to-saw and sine-to-square waveshaping by means of self-modulation. Rob Hordijk made a nice implementation of this type of waveshaping in his OscHRM.
> Then it occurred to me that, assuming the input is a sine wave, a phase shifted version up to 180 degrees could be obtained from modulating an all-pass filter that is also tracking along with the pitch of the oscillator. The most important benefit of this approach is that the whole PM stuff becomes separated from the oscillator core, just like a wave shaper, and would guarantee stable tuning, even in cases of self-modulation (from the output of the all-pass filter back to it’s frequency input). So I prototyped it in my Nord Modular, and it works rather well! It’s not identical to true FM/PM, but provides sounds with very similar characteristics and allows for forms of self-modulation as well! When I searched the internet and archives of this list, I found the idea was not really new, and others have at least written about it.
> Then I moved to Spice modelling of an analog equivalent, and discovered something unexpected. Without modulation, the circuit operates at unity gain, preserving a sine wave of the same amplitude (10Vpp) as the input. However, depending on the modulation signal, excursions of up to 3 times this amplitude occur at the output. Going back to my Nord Modular, I realised the exact same thing is happening there, but the Nord’s headroom is sufficient to deal with it. So then I discovered that classic all-pass filter implementations do not generalise to time-varying applications….
> It turns out that there are special implementations for time-varying all-pass filters in the digital domain: https://www.researchgate.net/publication/3343262_Time-varying_generalizations_of_all-pass_filters. I have not been able to figure out if they exist (or can be designed along the same principles) in the analog domain. Does anyone have experience with this in analog? If not, I could consider designing for more headroom than I anticipated, or could try and soft-limit the output of the all-pass filter.
> Any suggestions or insights are appreciated!
> ps. Happy healthy new year!
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> Selling or trading? Use marketplace at synth-diy.org
More information about the Synth-diy