bootsy ·
Hi there,
is there some standard 18dB LP/HP filter code floating around here?
Cheers, bootsy
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
bootsy ·
Hi there,
is there some standard 18dB LP/HP filter code floating around here?
Cheers, bootsy
DigitalWhiteByte ·
I believe that the filter used in the TB 303, is a filter 18db/3pole. or try 3POLE in Dozius Filter Pack, in the registered users. but I think you have already found them. 🙂
bootsy ·
are there HP versions as well?
DigitalWhiteByte ·
bootsy wrote: are there HP versions as well?
be possible by using (LP - INPUT)?
bootsy ·
DigitalWhiteByte wrote: bootsy wrote: are there HP versions as well?
be possible by using (LP - INPUT)?
I've removed all the tanh/distortion stuff from the Dozius 3-pole filter and it looks quite promising. I did not get your LP-INPUT trick working, osm attached - that just looks scary in the analyzer.
infuzion ·
bootsy wrote: I've removed all the tanh/distortion stuff from the Dozius 3-pole filter and it looks quite promising. I did not get your LP-INPUT trick working, osm attached - that just looks scary in the analyzer.
Cool, but did you take it out, since the module is still labeled "3-pole LP w/ distortion"? BTW, I thought to get 18dB filters, you would just cascade 3 6dB filters? Like in the OSM you posted: y1 = (i + xz) * p2 - p*y1; y2 = (y1 + y1z) * p2 - p*y2; y3 = (y2 + y2z) * p2 - p*y3; out = y3;
stw ·
bootsy wrote: I did not get your LP-INPUT trick working, osm attached - that just looks scary in the analyzer.
You have to subtract the other way round: Original-Lopass
martinvicanek ·
Here is a 18 dB/Octave complementary filter, if that's what you are after. That is a lowpass and a highpass which add to unity (or, more precisely, an allpass), so you can use it as a band splitter. I have also included a 6 dB/Octave band splitter in an attempt to improve the one from the wiki. (I had noticed that the wiki LP stopband will not go to zero for high freqencies, and also the HP will slightly overshoot around the crossover frequency.)
infuzion ·
Nice stuff Martin!
trogluddite ·
Many thanks - not just for the modules, but also for the lesson. Took me a while toying with FFT's to understand how the phase cancellations worked . but that was a real insight into the workings of filtering.
A question for you... If been playing a lot lately on the 'complex plane', using quadrature oscillators etc. and I would like to construct a Hilbert Transform (i.e. 90 phase shift for as much of the audio bandwidth as possible) . I understand that this can be approximated using the correct network of all-pass filters, but the maths has gone some way beyond my comprehension! Is there any chance you might have some insights into how I would go about creating this?
bootsy ·
many thanks!
martinvicanek ·
trogluddite wrote: 90 phase shift for as much of the audio bandwidth as possible
I found this recipe from Olli Niemitalo and implemented it in SM. It seems to be somewhat tricky to calculate the coefficients. Surprising how well it generates a 90 +-0.7 deg phase shift from some 20Hz up to 11kHz (Ny/2).
trogluddite ·
That's beautiful - many thanks! 🙂 Those chains of four blocks will optimise beautifully to mono4, too.
martinvicanek ·
Very welcome, glad to be able to give something back!
trogluddite ·
Made a Bode Frequency Shifter using the Hilbert, and it works really nicely (LINK). You can grab an optimised assembly version of the Hilbert from the shifter schematic - those repeated blocks of allpass condensed down really well into mono/mono4.
Wrote something here? To have a post removed or your name hidden, write to [email protected].