How and why use "advanced" filters?

Hello,

When i write SynthDefs, I only use LPF, BPF, HPF, RLPF, RHPF. Each one have a specific and well understood use.

But often I look at the documentation and see all kind of filters, but I don’t know what could be their use. A low pass filter is a low pass filter, no ? what could be different when using another filter ?

For example, IIUC, second order filters have a more steep cut off, but what is the difference between chaining two first order filters ?

BPZ2: what is the use to cut 0 and nyquist frequency ? apart for writing a DAC ?
BPR2: same question with nyquist/2
HPZ2, LPZ2: same

FOS, SOS: if this is the same filter but you have to compute yourself the cut off frequency, it’s more work for nothing. Is this only useful to put random value in the coef to get strange sound ? And here I wonder again if theses strange sounds can’t be created with a standard filter since there is a formula to convert between the two

TwoPole/TwoZero: doc say lower level, but I see two parameter: cutoff and radius which could be equivalent to rq, I don’t see any more possibilities than a regular filter

BLowPass: why equalize with this instead of LPF ? is it useful to use in a non-equalizing purpose ?

BLowShelf: why not use a BLowPass ? I’m using BLowShelf only because people seems to use it for cutting the bottom part, but it’s a bit of cargo cult

DFM1, BMoog, MoogFF: I seldom hear any difference with regular filters, maybe my sound source is too poor ?

LTI, NL2: i will stop here, so many more cryptic Ugens =)

I know theses questions only show my lack of understanding of filter/signal theory, I’m able to read on this and understand, but I miss something and hope that seeing practical use in sound design will help me

Maybe I am limiting myself with basic filters and there is a new world of sound to discover with others filters, that’s the goal of my post

2 Likes

“Low pass” means only that the frequency response curve begins at unity gain (at 0 Hz) and drops to -inf gain at Nyquist.

That doesn’t define any other characteristics of the response – how quickly the energy drops off, or resonance, or distortion (or other nonlinearities).

RLPF is a good “baseline” linear filter – clean and reliable. But if that were enough, then VST plug-in companies wouldn’t spend research money emulating the “dirtiness” of analog filters. “Dirty” filters are musically useful.

As for the special-case filters, if you don’t need them, then don’t worry about them. I’ve never used SOS for a musical purpose. You can calculate biquad coefficients matching RLPF, and then SOS can give you the same result as RLPF, but there’s no need to do that.

(But, e.g., HPZ1 is very useful for measuring changes in control signals – for example, if you want a trigger when a Phasor or LFSaw resets to its starting point, HPZ1.ar(phasor) < 0 does the job.)

There may be some subtle differences in frequency response between BLowPass and RLPF. I never investigated that.

Lowpass and low shelf are totally different frequency responses. They aren’t compatible at all.

For controlling the low end, yes, you can use a low shelf with negative gain. (I usually use a highpass filter with some resonance.)

Typically, a low pass filter’s gain at the lowest frequencies is unity – there is no way to force a ®LPF to boost or cut the lowest frequencies.

I’d expect not much difference unless resonance is high.

hjh

3 Likes

James is right here, just going to add to it: just as there is no generic reverb, no generic compressor, and no generic oscillator, there’s no such thing as a generic lowpass filter. Even the humble, nonresonant LPF.ar is part of a larger family of Butterworth filters incl. 3-pole, 4-pole, etc., with multiple choices each for discretization method and digital filter topology. Lots of fun options to explore, not all of them have been implemented in SC.

Here’s a link worth checking out, detailing an experiment on how to explore the unique character of a synthesizer filter: http://science-of-sound.net/2016/04/test-synth-filter/

1 Like

Hi,

a basic question would be if you want a filter for clearly defined tasks / properties or if you want to experiment with the filter concept to search for new stuff: the filter as a main source of sound synthesis / sound transformation (clearly my preference, as, at least for my purposes, the basic “filter jobs” are well done by the main SC implementations).

You can use the Fb1 class from miSCellaneous_lib for both, implementations of special well-researched filter types (a) or more experimental ones (b).

As an example for (a) see a TPT filter implementation:

As an example for (b) see the Dobson-Ffitch filter:

In my recent Berlin workshop I gave a gui example of Dobson-Ffitch, it’s Ex. 2c in the file

UOS_04_single_sample_feedback.scd

contained in this zip:

https://daniel-mayer.at/materials/Berlin_2020/UOS_2020_TUBerlin.zip

You could also explore the concept of “filtered maps” as described by Risto Holopainen:

https://www.researchgate.net/publication/263905411_LOGISTIC_MAP_WITH_A_FIRST_ORDER_FILTER

and do it with any non-linear map

Clearly such weird filters are, in general, highly unstable, so when experimenting please note the possibility of blowups and consider the option of using sigmoid functions in the feedback loop (as described in the Dobson-Ffitch example).

2 Likes