SynthMaker

18dB filter code?

Archive · 2011 15 old posts

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].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.