Custom Resonant Multi Bandpass Filter

with various parameters adjustable in real-time and random and manual control over the gain of each band


You need first to install the ejies package in your M4L, which comes with Max8 by default and you can find it there:

Point of departure

The custom ResRandMultiBP Filter is an audio processing tool based initially on the concept behind the classical analog device called 3rd octave filter. The well known for many Max users Peter Elsea has shared his digital Max/MSP implementation of this legendary analog device with which many electroacoustic studios were equipped in the 60’s and 70’s: . Taking his implementation as a point of departure, I started extending the possibilities for real-time control over the functionality of the 3rd octave filter, turning it into a flexible processing tool playable in real time. I first have built the ResRandMultiBP Filter as a Max/MSP patch to serve as a real-time processing unit in my compositions and only later it took its current shape as a kind of a prototype for a Max4Live plugin.


The current version of the ResRandMultiBP Filter has two (L & R) channels of 16 filter bands each for an incoming either mono or stereo signal. The gain level for each band is scaled in db’s and visually represented by a single orange bar. At the highest point the gain level of a bar would be 0 db, at the bottom -70 db. You can adjust the levels manually by dragging the mouse over the bars.

Each band represents a portion of the audible frequency spectrum. The distances (or frequency ratios) between the bands are presented in terms of both musical intervals and harmonic series. In the classic 3rd octave filter this distance is fixed to a tempered major third, therefore you have 3 equally spaced bands per octave and this is where its name comes from. In the ResRandMultiBP Filter the frequency ratios between the bands are adjustable in real time (via the ratios in semitones dial) and may vary between a semitone and an octave represented with numbers between 1 and 12 (1 is a semitone (minor second), 2 is a whole tone (major second), 3 is a minor third, 12 is an octave and etc. )

The 1st filter center freq or fundamental frequency of the ResRandMultiBP Filter (the lowest frequency on the top of which the bands (or paralel intervals)) are built is adjustable via 1st filter center freq dial and is set to a range between 20. and 120. Hz. You can also tune the ResRandMultiBP Filter to a fundamental frequency of your desire by typing it into the number box and hit the Return button on your keyboard.

Besides the operational mode representing ratios of equal musical intervals the ResRandMultiBP Filter has a second mode (or tuning) based on harmonic series. Therefore, if you type 100 in the number box under harm series mode and click on H, you will get the multiples of the fundamental frequency you have typed (100) – so 200, 300, 400 Hz an so on.

To return to frequency ratios mode just move the 1st filter center freq or freq ratios in semitones dial under frequency ratios mode or update the number in the number box and hit Return. To go back to harm series mode click again on H or move the dial under harm series mode.

The Q factor (the quality factor) for each band of the ResRandMultiBP Filter is presented by the filters Q dial which has a range between 1 and 120. This wide to narrow band or non resonant to extremely resonant range differs in therms of value ranges in the different DAW’s or plugins executing filtering. Just bare in mind that 1 on the dial means that the sound passes through (almost) undisturbed and 120 means the sound is so resonant that you rather hear the band itself sounding like a pitch than the sound which passes through.

The higher the Q, the higher the resonance and the lower the output gain is. The dial filters gain, which ranges from 0. to 40. would compensate that.

Causality and Randomness

First the incoming audio signal passes through a pitch detection algorithm. It was programmed to send triggers whenever a new frequency is detected. Usually it will react well also on unpitched, percussive sounds. The trigger gain dial controls the sensitivity of the pitch detection algorithm – how often it will react and output a bang.

The triggers causing new lists of random values to be sent to the bands gains may be bypassed by pressing bypass trigger. Then no changes in the gain levels occur anymore. Alternatively triggers can be also performed manually by a mouse click within the circle of the trigger manually area.

The concept of controlled or limited randomness has been applied as a strategy for control over the gain levels of the bands. By a trigger list of random values has been generated and sent to the bands causing them to change their gain levels. The range of the random values is controlled by the bands range dial. A dial value of 24 means that random values between 0 and 23 have been generated and sent out by a trigger. In other words random gain levels between 0 and -23 db have been sent to the bands. The dial’s range is between 0 and 70. The higher the bands range value, the lower the gain levels of the bands may drop – towards silence. Time for interpolation between current and next list of values can be adjusted via interpolation time dial.

ResRandMultiBPFilter version 1.0

Download the ResRandMultiBPFilter 1.0

Let me know what do you think about the ResRandMultiBPFilter, after you have tried it!

Leave a comment, like the page, share it with friends, say Thank You!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: