(max) matrix~, suboptimal reverb, and an accidental forbidden planet patcher

example patchers

echo and reverb

Max does not come with a reverb processor, and most people get around this by using plugins or routing through a DAW. But we can make something of low quality that gives some approximation by using delay lines. We can try to simulate one by using allpass filters and delay lines, but allpass filters won’t work in our matrix~ (coming later), so let’s just make a simple one with delay lines.

Echo is easy. The <delayEcho.maxpat> shows a simple echo, using tapin~/tapout~ with feedback. Adjust the amount of feedback for to adjust the amount of time the echo lasts.

The <delayReverbSuboptimal.maxpat> just uses three tapin~/tapout~ delay line pairs with feedback. Use higher amounts of feedback (around .9) and times that are not too short to produce resonant pitch and not multiples of each other. I used 90 ms, 100 ms, and 130 ms for delay values. It’s not a great reverb, but it does simulate the general crappiness of old spring reverbs.

The [click~] object is being used in both demo patchers. It is used for creating short time (technically one sample) sounds. The multislider object allows for you  to adjust frequencies present in the click.

matrix~ and matrixctrl

The [matrix~] object allows for you to connect multiple audio inputs and outputs, and switch between them like a patchbay. The <ForbiddenPlanet-matrix.maxpat> demonstrates an example using three sound sources (pluck, Theremin, and sequencer). These sound sources are all from previous patchers. There are also three effects (echo, reverb, and degrade). The matrix~ object (down towards the bottom of the patcher) specifies 6 inputs, 5 outputs, and a default connection gain of 1.

IMPORTANT: Some Max objects don’t allow for feedback circuits. If you connect any object in a way that feedback is possible (like inputs and outputs to a matrix~), even if the connections are not active, Max will shut down audio and you will hear no sound. I can’t find a definitive list of these objects, so you have to use trial and error. In the course of setting up this patcher, I discovered that [degrade~] is one of those objects. So [degrade~] connects its outputs directly to the ezdac~.

The easiest way to control a [matrix~] is throught a [matrixctrl] object. Towards the top right is the [matrixctrl], with a rows of dots. Clicking on the dots turns connections on and off. Columns represent inputs, and rows represent outputs. Counting of columns and rows starts with 0, so the input columns are (0) pluck, (1) Theremin, (2) sequence, (3) echo, (4) reverb, and (5) degrade (which is not connected). The outputs are (0) L (to ezdac~), (1) R, (2) echo, (3) reverb, (4) degrade.

Start by clicking in the zero column (pluck) and rows zero and one (L and R) output. Play your MIDI keyboard. You should hear the pluck output for a Karplus-Strong Algorithm. Next, click zero column row two. The pluck should now be going out and to the echo processor. To hear the output of the echo processor you must click on rows zero and one in column three.

Experiment. You can send something to echo, then reverb, then degrade. I named the patcher after the movie Forbidden Planet, which was the first movie to have an all electronic soundtrack. Being from the 1950s, it has lots of stereotypical sci-fi sounds. Try using the Theremin with a band-limited noise source with reverb and make fast, swooping gestures along with short gestures. Then go listen to the main title from the movie.


Leave a Reply