Max-MSP

Bleep Factory

Sound Sample : kfw.bleep.factory.01

In all the years I'd been using Max-MSP I'd never attempted to do any sort of "proper" synthesis (other than the Playthroughs style pure-wave generation), so I set out in Spring of 2004 to make a "lightweight" synth patch that I could use for playing in improvised music contexts. Lo and behold, Bleep Factory, a six-voice synth that produces a very wide range of traditional "analog" synthesizer sounds. Each voice consists of an oscillator whose pitch inlet is fed from the output of another oscillator, whose output is tempered by a pulsewidth control. There's one instance each the following wave combination: sine controlled by sine, sine controlled by square, sine controlled by triangle, pink noise through a low-pass filter controlled by a sine, square with pulsewidth controlled by another square, and "kink" controlled by triangle. Modules 1, 3, and 5 are panned hard left, the others hard right.

The effects section consists of a reverb (I used Tim Place's "tap.verb~") and a tape-echo I built from "tapin~" and "tapout" objects (it has a band-pass filter in the feedback loop). The image above is of v1.0, by v1.5 I had implemented an automation section (switchable patch point to randomly generate values for each parameter) and a portamento using line objects.

I use this patch regularly when I play live, it cuts through the Hrvatski material especially well (it's all over the "Irrevocably Overdriven Break Freakout Megamix" disc), and is very "playable" via the Evolution UC-33 controller I've been using over the past year or so.

MIDI Control - First 6 Faders control individual voice levels, 3 Knobs per voice controlling the PulseWidth, Pitch, and LFO Rate, Effects return on 2 Faders, 5 Knobs controlling Delay and Reverb Parameters, 1 Knob controlling overall sawtooth slew.

H-Mod

 Left Half  : 

Sound Sample : kfw.hmod3x

This is my master Hrvatski live patch (aka the "Happy Smile Machine"), which has been steadily gaining in complexity since v1.0 in 2001 (pictured above: v3.0 ca. summer 2003). It's a great catch-all patch that performs a wide range of what Max-MSP offers in munging digital audio signals, and does it at a surprisingly high level of efficiency (I've been running it on a G4 Powerbook 400 with CPU cycles left to spare). Listen to the sound sample and try to pick out how many discrete elements/sounds/samples are all firing at once in different ways... stultifying.

The four colored modules to the top left are all for buffer-based "groove~" recording and playback. The stereo input can be mapped to any one of these four modules from the gang of "record~" objects in the middle left of the patch, or they can be populated with an audio file of up to around 3 minutes in length. From the "record~" bank you can also tell Max to switch which buffer(s) are currently record-enabled every, say, 16 seconds (the length of each buffer at patch launch) so that you can begin manipulating the contents of each buffer while as audio is recording into the next (even while the current buffer is recording!).

At the top of each module are four checkboxes for routing the audio currently active to any of the four eVSTorator modules at the top right of the patch (below right, in what I call "rainbow city"). The three checkboxes after that do some very special things... The first divides the contents of the buffer into an evenly spaced number of segments according the value in the number box in the top right of the waveform object, then begins playing them back at the correct speed only in random order (this sounds especially good when the buffer is populated with an even bar-length rhythm or part). The second checkbox activates a very gritty and un-interpolated (read: computationally cheap) granular synthesis mode, of which the period length, sweep speed/direction, and density are controlled by the three number boxes and up/down buttons at the bottom right of the waveform. These values can also be controlled by MIDI. The third checkbox begins playing the selected audio bidirectionally, allowing for some nice hovering tones (even percussive sounds such as cymbal hits can be turned into drones).

At the left of the waveform object there's a toolbar that allows you to select a range of buffered sound graphically, another to extend the range points in and out, another to zoom in and out on the buffer, and one to actually draw audio data (!). The various buttons at the bottom have two functions: the majority of the ones to the left correspond to preset playback pitches/speeds, which can be scanned through via MIDI. The four buttons all the way to the right trigger portamento settings, which, when clicked on followed by a speed box will travel linearly from the current speed to the one selected over one of four lengths of time (100ms, 1 second, 5 seconds, 3o seconds). One of my favorite sounds has always been starting a very dense mix of music from absolute zero and slowly raising the playback speed until it reaches normal 30 seconds later. Once you hear I think you will agree...

Moving on, the four skinnier colored modules at the top right above are for disk-based playback... one of the best ways to optimize the number of samples/sounds that your computer can handle at any given time is to split them up between ones that play back from memory and ones that are read directly from disk. On the aforementioned G4 Powerbook with 512MB of RAM, Max will scrape by producing 4 stereo sounds (given they're less than 3 minutes each) from buffers and four from disk (these can be longer). Again, the output of any one of these can be routed to any of of the VST effects via the checkboxes at the top, or even back to one of the buffer-based modules for further processing. The solid color bar shows the filename of the currently active soundfile, the one below it shows the current position in the soundfile being played. The next row has a checkbox for starting/stopping the audio file, a number box that reflects the speed (this can be clicked on and manipulated via the mouse), a checkbox that copies both channels of a mono audio file to both outputs, a button for centering the pan, a slider for panning the sound, and a number box with the length of the soundfile in seconds. Much like the buffer/waveform modules, there's also an array of preset playback speeds that can be cycled through via MIDI, plus I've programmed a button on my UC-33 to simultaneously start any pair, another to start all four at once at the normal speed. This comes in handy when populating each module with various, synchronized elements of a piece of music... for example I can load 4 stereo audio files of the same length into all four of these disk-based modules... say one containing the drum parts of a song, one containing the bassline, one containing the noises and one containing the melodic information. I can then manipulate the playback speed, panning, and effects of each part individually...

At the bottom left of the patch is the "mixer"... 14 stereo input channels controlled by 14 single faders. Each channel has a series of buttons on top that change the output volume to prest values (unity, -3db, -6db, -12db, -24db, off) and a series of buttons that, much like the buffer and disk modules, fade between volumes at present speeds (5 seconds, 15 seconds, and one minute). These are especially useful for long fade-ins/outs of particular elements. The giant box in the middle bottom lets Max-MSP take over the entire screen (the finder title bar disappears) for a little extra real-estate. The giant bars at the bottom above and below are the master level meters, visible from quite a distance away... Some say even from space (much like the Garden State Parkway)

 Right Half  : 

At the top of the right half of the patch (above) are four eVSTorator modules (see below for a deeper rundown of their features). Screen real estate is always an issue, so i went ahead and broke up the VST plugins I like to use into groups based on the number of parameters (less than 6, between 6 and 12, between 12 and 18, between 18 and 24). Below them are the two "selekta" bpatchers containing a variety of popup menus that are auto-populated on patch startup with the contents of every directory on my Powerbook with playable audio and a "title". These are broken up between longer audio files suitable for disk-based playback (the smaller, orange-background module on the right) and shorter audio filed for populating buffers (grey-backed module to the left), including varying lengths of silence. The colored buttons to the left of each module correspond to the colors on the buffer and disk playback modules. All I need to do to load any sound into any location is press the relevant button, then select the file from one of the menus. Max-MSP will then find the file on the PowerBook and queue it up.

Finally, there's an input section at the very bottom right of the patch that allows for control over the signal coming in to the computer to the buffer and eVSTorator modules. This also has buttons for present volumes. Above and below it are the standard Max-MSP graphic ADC and DAC objects (I still use them, I like the way they look).

MIDI Control - Volume of all 4 buffer and disk-based playback modules on 8 Faders, Knobs 1-3 control pitch, selection/fragment, and sweep speed in the buffer modules, pitch, pand and direction in the disk-based modules. The last fade controls the input level.

Strummer / Piano

Sound Sample : kfw.piano

As the name implies, this patch started out as my attempt to produce computer-controlled variants on Charlemagne Palestine's "Strumming Music", although it has by now derivated from that original modus (listen to the sound sample). The output is designed to be fed via MIDI into a Yamaha Disklavier piano, which can then be "played" remotely via Max-MSP. It allows the user to micro-manage very gradual dynamic ascents and descents, and has a "humanizing" feature that allows for certain notes/events to be delayed just slightly in randomly generated increments.

Super.Proc

Sound Sample : kfw.super.proc

Semi-recent sound-mangling patch constructed for Fur Plasm concerts (my duo with Petra-Pixmaven). 4 eVSTorators than can be patched in parallel or series (or points in between), plus a granular module, a 8-way bi-directional looper, and some nice cheap spring reverb emulation for "sass". Petra generally plays objects with a contact mic into the patch (Happy Apple, Hello Kitty Vibrator, etc...) and I capture and process the signals. It is entirely controlled by random values generated any time a "bonk~" object detects any sort of attack in the incoming audio signal. It is quite unpredictable...

MIDI Control - Just Volume on the 9 Faders... controlling the input level, the Tracker, the Granular, the Bi-Directional Looper, the 4 eVSTorators, and the Reverb.

Taaltronixxx

Sound Sample : kfw.taaltronixxx

This one's kind of a mess, but very fun to play with. I created it to add a "rhythmic" element to one of my guitar-drone patches... before I realized that the load of running 3 instances of the "SwarPlug" VST would send the CPU meter off the charts... mainly as I'm not sending any note-offs until the same note re-occurs (we're talking polyphony in the 24-30 note range at all times). It sounded far more realistic with the long decays of the beautifully sampled instruments in the plugin cut off artificially...

The section at the left is essentially a random sequencer that sends note-events to the SwarPlug... alas it does not adhere to any known taals, instead producing some very scattered sounding tabla and tanpura playing. There are drop down boxes at the top of each instance of the plugin that allow for changing of sound-banks on the fly. Each instance can be muted (entirely disabled actually, saving valuable CPU resources), panned across the stereo spectrum, and pitch-shifted up and down 2 octaves in either direction. The "spacing" can be controlled as well... i.e. you can tell each module to "ignore" note events from the sequencer at a set frequency, and the overall volume of each module can be set as well. All the way at the bottom there's a reverb Wet/Dry mix ratio number box, also controllable per module.

MIDI Control - Volume on 3 Faders, 1 Knob per voice controlling Pan, Pitch Bend, and Note-Spacing, another set of 3 Knobs controlling Dry/Wet reverb mix, another set of 3 Knobs controlling the Metronome tempo, the percentage of swing, and the "Human Feel".

Various eVSTorators

Sound Sample : kfw.dpolefreakoutEDIT

The original eVSTorator was probably the first true "hardcore" MSP bpatcher I took on... With a elephant-sized amount of help from Mr. Greg Davis (for years my Max-MSP sparring partner). MAx-MSP uses a fantastic implementation of the VST Plugins engine, allowing for control over every aspect of a VST plugin down to very minute floating point values for all of its parameters. Plus one can very easily mute or disable plugins (saving CPU power), even swapping out old ones for new while the DAC is running. With that in mind I designed the original eVSTorator (pictured above left) to listen for attacks at the input, then generate various kinds of events or "bangs" based on what it was hearing.

The column of buttons at the left selects the entire range of each parameter (the top button does this for all parameters). The column of checkboxes at the left switches between setting values of 0 (off) and 1 (on) for each parameter. The lighter "rainbow" column consists of range sliders for each parameter, and the next over displays the name of each parameter (this was very hard to do BTW). The column of number boxes shows the active value for each parameter, the column of checkboxes to the right of that gates the ability of the random values generated by input-attacks to change the value of said parameter. Finally, the rightmost column of number boxes and the checkboxes at their right selectthe speed at which the values within each parameter's selected range will be bidirectionally oscillated through, and turns the oscillation on and off.

At the top is a pop-up menu that auto-populates at patch startup according to the plugins in a predeterminded folder, to the left of this is a small checkbox that mutes/disabled the plugin loaded. The button opens the plugin's native editing window, and the small checkbox at the top right route the output out of a second pair of outlets (usually this leads to the next eVSTorator in the chain).

Listen to the Sound Sample of an eVSTorator patch tearing through Steinberg's D-Pole filter (i believe the input was me simply tapping on the body of the Powerbook using the built-in microphone). Yowza...

Various Hardware controls

The two pictured above are for the Akai MPD-16 and the Behringer FCB-1010. I've also built some nice patches for routing input from the Evolution UC-33 to just about anything within the Max-MSP enviroment.

Back