(Screen shots from the performance.)
Introduction
Orderly Anarchy Emerges is an audio-visual performance created with Max 6 (including Max for Live), and Processing 2. I was originally going to call it Experiments in Chaos, but I changed the name to Orderly Anarchy Emerges after hearing this phrase in a talk on Zen and Taoism. The chaotic patterns of beats are contrasted by the repetitively looping sample, an idea I stole from the Autechre track “Flutter”, although the sweeping delay effect applied to the sample sometimes makes it hard to distinguish any two loops as being the same.
The creative goal of this project was to investigate randomness and chaos, I was inspired by the idea of Generative Art (https://en.wikipedia.org/wiki/Generative_art). Whereby you create a system with certain predefined constraints, set it in motion, then watch what it does, and what it does is normally hard to predict. The technical goal of the project was to further my knowledge of Max and Processing, and to learn how to get Max and Processing to communicate with each other.
Check here for a screenshot video of the audio-visual output as well as the Max patch back-end while it is playing; https://vimeo.com/84056909
Check here for me talking about it; https://vimeo.com/83830361
Instructions
(Note: Orderly Anarchy Emerges requires Max 6 and Processing 2, there is also a version for Max users with Max for Live.)
1. Download the Orderly Anarchy Emerges.zip from; https://www.dropbox.com/sh/3cikgvkcsc4ihj9/A5yNpffZ73
2. Unzip and open the unzipped “Orderly Anarchy Emerges” folder, go to the “Open Me First” folder and follow the instructions in the “Read Me First” on installing MaxLink, [xsample~], and [bonk~].
3. Go back to the “Orderly Anarchy Emerges” folder and open the Orderly Anarchy Emerges (without M4L).maxpat (or if you have Max for Live open the Orderly Anarchy Emerges.maxpat.) The Max patcher will start in presentation mode and will look like this;
Or this;
4. Drag and drop the “Samples” folder from the “Orderly Anarchy Emerges” folder into the box in the Max patcher, check the Audio Status is on.
5. Open the appropriate Processing application, e.g. If using a Mac, open the application in the; /Orderly Anarchy Emerges/application.macosx folder.
6. Click on the opened Processing application window to toggle the presentation on and off, make sure to turn it off before closing.
7. Watch, listen and enjoy (or become irritated).
Techniques Used
Max patch in edit mode;
At the top right hand corner of the patch is matrix of 8 rows and 16 columns;
This matrix is updated at irregular intervals with messages triggering a new random pattern, these messages are coming from the Random Pattern Generator subpatch to the top right of the matrix. The expanded Random Pattern Generator subpatch looks like this;
The information from the matrix is then used to program the various drum patterns, each column being triggered at regular intervals from column 1 to 16. After the 16th column is triggered, the time intervals between the triggers randomly changes up or down and the first column is triggered again at the new tempo.
The drum sounds are assigned to trigger various shapes to be drawn in the Processing application window, these messages are sent to Processing using the [mxj jk.link] object here;
There are also messages coming from Processing via the [mxj jk.link] object, these are triggering the presentation to start and stop.
The drum sounds are being fed into the [bonk~] object. “The [bonk~] object takes an audio signal input and looks for “attacks” defined as sharp changes in the spectral envelope of the incoming sound. Optionally, and less reliably, you can have [bonk~] check the attack against a collection of stored templates to try to guess which of two or more instruments was hit. Bonk’s two outputs are the raw spectrum of the attack (provided as a list of 11 numbers giving the signal “loudness” in the 11 frequency bands used), and the “cooked” output which gives only an instrument number (counting up from zero) and a “velocity”.” (Quoted text taken from the [bonk~] help file.)
The outputs of [bonk~] are used to determine parameters of a flanger effect, and a simple monaural reverberator effect called [cverb~] (this is part of Max for Live doesn’t appear in the Orderly Anarchy Emerges (without M4L).maxpat). The sound of the beats is passed through these effects as well as a state-variable filter [svf~] which cuts off the low frequencies at random intervals, and this chorus effect;
The sample, taken from “Halcyon & On & On” by Orbital is played with the [xgroove~] object, looping forwards and backwards alternately by setting the [xgroove~] loop mode to “bidirectional”. The sound is then passed through this sweeping delay effect;
I played around with the parameters of the sweeping delay until I found settings which produced interesting effects, I then set a random counter to choose a different setting for each loop.
There’s quite a few interesting little features in the Max patch, so please have a look around it as well as the Processing source code. They are all in the Orderly Anarchy Emerges.zip from; https://www.dropbox.com/sh/3cikgvkcsc4ihj9/A5yNpffZ73
(Note: If you are having trouble hearing the audio then go to the Max patcher and check in Max; Options > Audio Status, and check the output device.)
Ideas for further work
Building on the “Generative Art” idea, a further extension of this project would be to build an audio visual presentation which uses some sort of iterative algorithm. For example, you could measure some output data from each 16-step sequence and use this to control a parameter of the following sequence and then allow the process to organically unfold.
You could possibly use [bonk~] for a music information retrieval project, such as a beat tracker, as its ability to store templates allows for greater a scope of applications than the way it was used in this project.
References
– Communication between Max and Processing thanks to Maxlink (jklabs.net/maxlink/), one of the MaxLink example Processing sketches I heavily modified to create the visuals.
– Chorus, flanger , and sweeping delay effect taken and modified from; cnmat.berkeley.edu/files/maxdl/ALL/CNMAT-Everything-OSX-MachO.tar.gz.
– The [xgroove~] object was part of the [xsample~] extension to Max found here; grrrr.org/research/software/xsample/
– The [bonk~] object used to gather data on the sounds was found here; crca-archive.ucsd.edu/~tapel/software.html
– Looping sample taken from “Halcyon & On & On” by Orbital.
– Inspiration from;
James Gleick – “Chaos: The Amazing Science Of The Unpredictable”
Lao Tzu – “Tao Te Ching”
Alan Watts – “You’re It!” audio lectures.