Journey in Push Programming

    During the month of November, I took a little journey into a new programming area: creating content specifically for the Ableton Push control device. This hardware has a unique place within the Max community due to its tight integration with Ableton Live (and therefore Max for Live), but it is also a powerful control surface in its own right.
    With help from Mark Egloff of Ableton, I started with a goal: to create a device that would be a usable performance tool, but would “take over” the button grid on the Push to make it easy to manipulate in real time. I chose an 8-band EQ-like device that I called the Frequency Mixer, and created the code necessary to run it solely from the Push. See the result (along with some video).
    While this first device used Mark’s comprehensive Push programming abstractions, I really wanted to dive into the depths of the Push – regardless of how difficult it might be. Since I’m comfortable with the Javascript implementation in Max (using the js object), I also wanted to see how difficult it would be to program an entire device based on Javascript interaction with the Push. See the result -- a MIDI-based gating device.
    Next up was to work directly with the Push in Max – completely outside the Live environment. Based on some information that Mark (Egloff) provided, I was able to determine the values needed to update the Push button matrix RGB values, and created an interesting, if rather useless, 8x8 image display. I can imagine using this to modify a program based on the display values, but have left this as an exercise for the willing Push student!
    Finally, based on feedback received on YouTube, I modified the first (Frequency Mixer) project to act on other tracks in a Live set. This way, you could either mix multiple channels, or (by inverting the values) crossfade multiple tracks from a single instance of the Frequency Mixer. This is based on the use of send and receive objects that share a specific name, which is propagated through the entire Live set. See the result -- a fun extension to the original device.
    While I create some specific devices and projects, the implication should be much greater – that the Push, like many other controller devices, is an interesting playground for the creative coder. Hopefully you will find tips and techniques that can help you get more extensive use out of your Push!

    by Darwin Grosse on
    Dec 2, 2013 5:33 PM