Max4Live opens up a world of sound design possibilities for any hardware synth, as well as giving you the opportunity to automate and save parameter settings in a track. Maybe you need a big resonant filter sweep before the beat kicks in, or you want to engage the arpeggiator at sporadic moments. If it’s possible with your synth, its possible with Max4Live! So let’s look at how:

Start off by preparing yourself with as much information on your synth as you can – get the manual from the official site, and if possible the service manual (these hidden gems not only have detailed midi implementation, but often feature beautiful exploded diagrams and flow charts on fixing the synth, which come in very handy.

Many synths receive Control Changes (or CC’s) to change individual parameters, which are what we’ll focus on in this tutorial. This tutorial will apply to any synth which receives these messages, and as an example, we’ll make a patch for the Waldorf Pulse today.

Have a look at your synth manual to see how it’s controlled – this is likely to be in the MIDI Implementation Chart towards the back. Here’s the manual for the Waldorf Pulse.

Having the synth in front of you is a very important (but not essential) element, so you can test sent parameters are working. It’s also useful as a reference to find out what MIDI gets sent by the synth  when the manuals don’t quite cover or explain it – via the synths MIDI output*.

Setting up Max4Live

First, start a new Ableton session with one MIDI track and one Audio Track. Make sure you set up the MIDI outputs to match your synths input channel and create a short sequence to so you can hear it playing . Set the audio Monitor to IN on the audio track so you can hear it. Hurrah!


We’ll start on the most familiar and appealing parameter to edit – the filter cutoff frequency. Page 59 of the Pulse manual contains the parameters we need; Cutoff Frequency and also Resonance – which are CC numbers 50 and 56 respectively. You’ll notice both of these parameters have a 0…127 value range , which means you can send 128 values to each one.

Control change messages require a Controller Number and Controller Value joined, so for a fully open filter cutoff we’ll send a control change message with the following:

50 127 

How about for a fully closed filter?

50 0 

Yes, well done!

We want to control this filter value, so let’s get building! Load a MIDI Effect in the Max4Live menu and drop it onto your MIDI channel.

Sending a CC in Max4Live

You’ll see a midiin object connected to a midiout object, which allows MIDI notes to run through the patch. Press the edit button to open the patch!

We’re going to send CC messages using a specific Max4live object called ctlout which sends control change messages. It’s good to know that if you ever see an object and you are unsure of it, ALT + click (Option + Click on Mac) and you’ll see its accompanying help file – this is how you’ll learn to understand Max4live, seeing what any object can do in great detail. Now create a ctlout object.

This object is designed to send CC’s only, which is perfect for what we need – the more you use Max, the more you’ll find wonderful objects to help you do exactly what you need. Remember the values we had earlier? Make two message boxes with the numbers in and connect them to the first input of ctlout (note ctlout takes value first, then number).

Now save your patch and go back to Ableton, and run your sequence and guess what will happen when you click either of these. One will open the filter cutoff and the other will close it – does it work?! I hope so. Check your numbers and the manual again if not!

Creating More Advanced Controls

This is fun, but ideally we want to expertly twiddle these parameters, so create a Max4live dial found in the object window. Load one in and press CTRL + I (Command + I on Mac) to open the inspector window – here you can set its parameters and a myriad of details about it including appearance and behavior.

Use the inspector to change the long name to “Filter_Cutoff” and the short name to “Cutoff ” – Ableton will use this information to identify it in the automation lane, as well as for an optional title. As a rule, it’s useful to name the part of the synth with the parameter. Eg Amp_Attack, OSC1_Waveform, Modulation_Depth – this way if you have over 100 parameters they will be grouped conveniently.

The inspector will tell you that the ctlout object can have data written in the object box to specify Controller Number, Controller Value and MIDI Channel before any other values are received. We are going to let Ableton set the midi channel, and will now send multiple CCs to one ctlout box.

Creating a message box allows us to have a variable Controller Value (sent from the knob) with a Controller Number. In Max4Live, $1 represents any incoming number. So if you have a box which says

$1 50

This will output the value from the knob plus the CC number – so it’ll make a CC!

Hook up the message box to the first inlet of ctlout, and the output of the knob to the input of the message box. Save the patch then close Max4Live to find out what happens when you play the sequence in Ableton and get twiddling. Every time you turn the knob, a CC message will be sent!

And Finally…

With everything working – check the automation lane to see the long name you inputted on the inspector listed under the device you just made. Play your sequence and Ableton will send the messages for you! In the words of Keith Flint “It’s an omen, you just run an automation”. And so begins your journey into Max4Live.

See if you can set up a control for other parameters – like Resonance, or anything else that interests you. Next time, we’ll look at the different types of CC’s you’ll send, and how to customise the data for your synth.

*Very occasionally manuals have mistakes in them, and you’ll only be able to discover this by watching the MIDI from the synth! Get yourself a free copy of MIDI OX , a superb program which allows you to see what MIDI is being sent to and received from the synth.