Out of the box, Akai’s APC40 has some lovely features for plug-and-play control of Ableton Live, with clip triggering, track control, device control, and dedicated buttons for command shortcuts. It also sends and receives standard MIDI messages for every last button and encoder. But what if you still want more? What if you need more controls to do multiple duties, or get bored with simple clip triggering and decide you want additional interaction? Enter the hackers. Already, using MIDI, clever APC40 users are squeezing more function out of this box. And while it isn’t solved yet, there are some clues to the infamous hardware handshake – a System Exclusive string exchanged between the APC and Live that locks certain Live software features to the APC and not to other hardware you might like to use.
Before we get too fancy, for power tricks, your first stop should be Akai’s own site:
Tips and Tricks June – APC40
Live allows you to manually override the APC’s dynamic control assignments using the standard MIDI Map. Let’s say you don’t use headphones for cueing. You can select the MIDI Map, pick a control to which you want the Cue Level encoder to be assigned, and you’ll manually assign just that control – the rest of the dynamic template remains in place. Akai has some tips for scrolling through scenes, selecting scenes with one of the two footswitch jacks on the back of the unit, scrubbing and nudging clips, fine-tuning tempo control, and more.
monome Emulation for APC40 and Korg padKONTROL
Our friend Michael Hatsis of trackteamaudio has been hard at work in Max/MSP patching an emulator for the creative patches for the open-source monome hardware. (Thanks on Twitter to ruaridhTVO, too.) By translating from the (and, cough, superior) OpenSoundControl messages the monome supports natively to MIDI, the emulator supports not only the APC but Korg’s padKONTROL, as well. This opens up the use of the APC for creative microsampling and other tasks.
Video demo at top (updated late Sunday night, so if you saw this over the weekend, here’s a tighter version).
And be sure to check out the Java- and Python-powered open-source library for the monome on which Michael’s work is based:
You’ll find plenty of documentation in Michael’s download, and the hope is that this is just the beginning — you Max patchers out there (and Pd, if we can port this) can keep hacking on it and try out some new ideas. One reason you might want to keep hacking on the padKONTROL is that you could find uses for velocity – unlike the monome and APC, Korg’s 4×4 drum pads are velocity sensitive.
APC40 Customization, Performance Tweaks
This is the best video I’ve seen yet with the APC40. The APC itself is strikingly limited for a MIDI device, without even basic abilities like preset switching or the ability to change default MIDI assignments. But because it’s connected to a computer, if you’ve got some MIDI programming skills and time on your hands, you don’t have to stop there. Stray411, the creator of the brilliant nativeKONTROL software for the padKONTROL, Korg nano series, and Akai MPD32 has turned his MIDI hacking superpowers to the APC.
First, he demos the manual remapping technique. But from 1:38 onward, he remaps and reroutes messages via Bome’s MIDI Translator, commercial Windows (and now Mac) software for more sophisticated mapping of MIDI messages. This allows him to create his own dynamic template for control that applies more functionality to the onboard hardware controls on the APC.
I’m not even sure you’ll want to do this – it can make for a more complex control scheme – but it’s impressive just seeing the ideas out there.
Note that this sort of thing should also be possible via any software that does MIDI input and output, including the free Pure Data (Pd) patching environment and Max for Live when it ships in the fall. (I’m not entirely sure how intercepting MIDI with Max for Live will work, though, especially with the hardware handshake to contend with… more on that in a moment.)
…and really, that deserves a separate post.
MIDI for Lights
Akai left out the MIDI Implementation that’s traditionally included with MIDI hardware (cough), but it does use standard MIDI messages both for outgoing control data (when you move an encoder or press a button) and incoming messages (like Live switching a light from off to amber to green).
I’m going to publish the Missing MIDI Implementation later this week here on CDM, but to get you started, Danny P on the Cycling ’74 forum has deciphered the toughest part – the messages that light up the clips:
And even better, CerebralNektar (of the nativeKONTROL) project has already built a full-blown Max/MSP template for the clip grid:
The Hardware Handshake: First Clues
Ableton has worked with Akai to add a specialized MIDI implementation to Ableton Live, using a set of System Exclusive messages to prevent the hacker community from emulating certain APC features in other hardware. Specifically, this includes several abilities:
- Using bank buttons to trigger different sets of clips in a larger set, without running out of MIDI messages to do so
- Providing a red rectangle overlay to show which 8×5 (40 clip) array is selected in Live
- Sending MIDI messages for clip status back to the hardware (thus lighting up the lights)
Now, granted, as implemented this functionality may be of limited to use to hardware that isn’t the APC40 – particularly because it’s hard coded for an 8×5 grid of buttons, which is a non-standard size. But having talked even to some passionate fans of the APC, I know it’s bothering a lot of people. I think there are several reasons why.
In short, it’s the first time I know of that standard MIDI messages were used not for the purpose of interoperability, but to actually prevent you from using your own hardware. The APC itself won’t work properly with Live if this string is interrupted (and you’ll see complaints on the user forum in which people are having related problems). Also, while the functionality here is hard-coded to the 8×5 array on the APC, that raises another question – why not make a generic implementation for other hardware? Why not a rectangle that shows a 4 x 4 grid for hardware like the Akai MPD series, Native Instruments’ Maschine controller, and the popular Korg padKONTROL and M-Audio Trigger Finger?
In the meantime, cracking the handshake could be useful for owners of the monome or upcoming Ohm64, even with their 8×8 grid – you can use the last three rows for shortcuts.
Michael Hatsis writes (consistent with what I saw running MIDI through MIDI-OX):
from what I can see both the APC’s 2nd string and Live’s 3rd string have 24 bytes, both with bytes 8-23 different each time
– There’s your handshake…
I have set up two max patches that parse and output the SYSEX sent by both the APC and Live. the one called handshake only outputs the unique bytes for both the APC and Live to the Max window. There are more details inside.
Have a download, folks – this gives you some of the MIDI to look at even if you don’t have an APC40:
I couldn’t figure out what the algorithm was, but then, I’m not terribly good at that sort of thing. So we’ll be interested to see if anyone else can sort it out.
By the way, this is sent in the clear as MIDI messages. There’s no real reverse engineering here. It’d be like printing the secret password for your speakeasy on a billboard at a rush-hour bottleneck on the 101 highway. Nor is there any kind of theft involved. These are capabilities built into Ableton Live, which Ableton has effectively blocked from use with this System Exclusive communication.
In a matter of days since the hardware shipped, the APC40 user community has already done some incredible work. This to me makes a powerful argument for openness – and it says that the same community could do even more if hardware and software used more intelligent communication schemes like OpenSoundControl instead of being locked to the limitations of MIDI.
A Video to Close us Out
To close, here’s a reminder that part of why we expend this much energy on controllers is to make them personal instruments for ourselves. Here’s a YouTube demo that shows people can make the APC, well … shake.