Hacking into the APC40 (I)

Have you ever felt frustrated with your MIDI Controller because it couldn’t do this one thing or that one thing. I love controlling things live using MIDI controllers. I have gone to the point of automating my entire set so I had no button presses, and I realized I got bored. And so began the search to do more and think less live. Have a setup wherein I can zone out and just let the controllers create the music.

With this intention, I started hacking into the APC40. Why the APC40? To be very honest, I have the Push, and Touchable on my iPad. I just never used the APC40, not to mention I hated how it was setup. I just never found it intuitive! This is, of course, subjective, and what floats my boat might sink yours. But follow along if you’re interested in either MIDI mapping, Max For Live, Max, or just general tomfoolery.

Understanding the insides of the APC40

The first step into hacking into, and writing a custom script for the APC40, was to figure what it was defaulted to do — the messages it sends out. I used MAX to write a simple patch to read the MIDI data and this is what it looks like:

MIDI Signals sent by the APC40

The A/B notation denotes midi note/cc number as numerator, and midi channel as denominator. Yellow are MIDI Notes, and Green are MIDI CC. Red are toggles that send out MIDI CC. x refers to the Fader bank selected, and y refers to the Track selection. This x and y (i.e. varying by button selections) gives the APC40 the ability to be really extended. More details in future posts, but for instance, the knobs usually used for device parameters, 16–23/y, are essentially 8 knobs but depending on the track selection (y), they are actually 9*8 = 72 knobs. Such methodologies can be extended, depending on the script written to create a super-controller with hundreds of mappable knobs and buttons.

**

In the next post, we will look at a simple Max Patch to begin re-designing the APC40.

Oh and as a taste of things to come, here’s a demo of the APC40 talking to an iPad conveying bank information: