Tutorial: Customizing Push With max4live Part 1

It is possible to do - here's how      14/06/13

Tutorial: Customizing Push With max4live Part 1

So, by some miracle you've already got your hands on an Ableton Push (see our review). And you have a copy of Ableton Live 9 Suite complete with all the max4live goodness it contains. You've had a good play with the Push and put the step sequencer and scale modes through their paces...

But you want more. You want to keep up with all those Monome kids and their fancy grid-based, algorithmic step sequencers, right?

Well, that's what I wanted to do, so armed with a vaguest knowledge of max4live and an Internet connection I set out to find the way.

First we need to see how the various components of Live fit together to turn it into a programmable, reconfigurable environment, rather than a simple point-and-click driven application we're accustomed to. Cue diagram:

We have several parts in our system:

  • The Live Application. This is where your music lives.

  • The Live Application Programming Interface (API) - this is the part of Live that exposes all your clips, the mixer, devices, transport controls - basically everything in your Live Set - to outside programs. Using the API we can manipulate these elements in two ways:

    • Using max4live - programs written in the max programming language

    • Using controller scripts - written in the Python programming language

  • The Push controller. This communicates with Live via a special set of Python scripts.

  • ...and, in a final twist, these scripts also expose an API to max4live.

(If you don't know any Python, don't worry - we won't be going anywhere near that! I'm sure it's a lovely language and all, but unfortunately the controller scripts are encrypted, entirely undocumented and changing them is unsupported by Ableton. However if you do feel like taking the plunge, visit Julien Bayle's Live 9 MIDI Remote scripts site.)

The interesting upshot of this Controller-Scripts-API model, with max4live mediating between them, is that the the Push control surface is just that - a fairly generic MIDI control surface that just sends and receives notes, Continuous Controllers and System Exclusive data. The actual magic that runs the step sequencer, the session view, instant mapping of device parameters and so on happens in the Controller Scripts that sit between the Push USB port and Live's API. Even the messages displayed on the Push's screen are defined in, and sent to the Push by, these scripts.

Which is brilliant for us, because we never have to worry about looking up arcane hexadecimal numbers in the blurry back pages of a manual (remember how much fun that used to be?). In theory we should have a nice well-documented and clearly named functions to pipe messages between max4live and the Push. Now, while I'm certain such documentation exists in Ableton's office, I'm sad to say it hasn't found its way onto the Internet, yet.


Click Here: Next Page

More From: ABLETON
Even more news...


More Videos

Featured Video
Superbooth 17: Presonus Quantum DC Coupled Thunderbolt Interface 

DC Coupled means eurorack friendly!

Featured Video
Superbooth 17: Pittsburgh Modular Double Helix In Depth 

Richard Nichols gives us a detailed overview of their new oscillator

Featured Video
Superbooth 17: Yamaha MX88 Motif Power With Portability 

88 Keys and only 13kg

NAMM 2017: Birdkids New Eurorack Bits for 2017 

Mike takes us through their new modules for 2017

Superbooth 2017: Syntonovo - Ex Synton Guys are Planning Something 

A synth and a new expressive keybed

NAMM 2017: Doepfer Latest Additons 

Patrick was on hand to run through the latest modules on offer from Doepfer

MESSE 2017: Focusrite Show Red4 Pre and Red8 Pre 

Two New Interfaces from Audio Gurus