APC 40 mkII related topics

hdgmax's icon

If you have experience with controlling the APC 40 mkII, then please share it here.

Problem 1: Looking for a solution to control the LEDs of the buttons of the APC40 directly from Max 6.x, such as for instance the RGB buttons.

Evan's icon

AFAIK, the APC receives midi to control it's LED states, so it's just a matter of figuring out which message type (Note I am guessing), value, and channel correspond
to the buttons. I'd search the APC documentation, or the web for information regrading this. It's probably also in the Live script somewhere, which you can find decompiled on github.

Wetterberg's icon

yeah, they apparently haven't released the midi specs for the v2 yet?

Here's the v1 stuff, I'm guessing most of those are the same on the v2, except of course the rgb buttons, hehe.
http://www.akaipro.com/files/misc/APC40map_500b.png

What I usually do is just set up some UZI things and spam midi into controllers, to see what makes them tick.

hdgmax's icon

- Link to the PDF with the communications protocol for the APC40: http://www.akaipro.com/apc40map. Unfortunately no such file for mkII yet.
- I also took a look at definitions and mappings files on the Virtual DJ website. It also helps to understand the mappings.
- And I used a MIDI Trace tool to get the MIDO signals from APC40mkII. Then I used those to derive the midi signals to control the LEDs (and their color).

- After that research I am now already using APC40mkII in combination with virtual DJ 8. But still some things I need to check more in detail. I can switch the leds on and off and change their colors, but when I press the button it becomes green by default and when I release it the light is off. I just want to press the buttons without changing or disabling the color. Any ideas?

- One of the problems is that I don't know how to switch the APC to a different mode. I find something about it in the communications protocol of the APC, but I did not yet found how to do this in practice. Did anyone ever change the mode? How did you do it?

nickel_alloy's icon

- One of the problems is that I don’t know how to switch the APC to a different mode. I find something about it in the communications protocol of the APC, but I did not yet found how to do this in practice. Did anyone ever change the mode? How did you do it?

You need to send a sysex message to the APC to set the different modes. Have a look on page 7 of the PDF you linked.
In MAX, use the object "sxformat" followed by the numbers given in the table as a list of arguments. The numbers in the PDF are shown in hex, you can type them in to the object as shown (E.g. "0xF0") and max will automatically convert them to a decimal when you hit enter, For example 0xF0 will be replaced with 240.
Or you can just convert them to decimal before you type them in.

So, for the apc40 mk1, the object would be "sxformat 240 71 1 115 96 0 4 XX 1 1 1 247" where XX is the following:
0x40 (64) - Generic Mode
0x41 (65) - Ableton Live Mode
0x42 (66) - Alternate Ableton Live Mode
as described in the manual on page 6.
Mode 1 (65) is probably the one you want. It will make all buttons a note on when pressed, and note off when released (not latching) and all leds will be completely independent of button presses. The LED rings around the encoders will still be controlled internally.

The output of this object needs to go to a midiout object (not noteout, or cltout etc), then send the sxformat a bang and the APC will go into the mode you choose.

For the APC40 mk2 you need to change the "Product model ID" byte (4th byte) from 0x73 (115) to 0x29 (41).
So for mode 1, use:sxformat 240 71 1 41 96 0 4 65 1 1 1 247
Or, for mode 2:sxformat 240 71 1 41 96 0 4 66 1 1 1 247

For anyone who's interested, I found the model ID by sending a device enquiry sysex message to the mk2 and looking at the bytes that came back from it (See page 4 of the Communication protocol PDF). This will give you all sorts of other info like serial number etc.

Hope this helps.

hdgmax's icon

Thank you all for your feedback. Appreciated!

M4RV, your feedback was very detailed and mode 1 is indeed the one I was looking for.

I also want to thank J. who created a max patch based on the feedback from M4RV. I tried it on my APC40 mkII and it works fine.

I attached the max patch here. I hope it will also help other people.

APCcontrol.maxpat
Max Patch
findingthesound's icon

Hi,
Is there any update about a file with all the midi infos received and send from the APC40MKII?

hdgmax's icon

Hi Findingthesound, in August I asked Akai to provide the midi communications protocol, but they never replied. I have asked it again now. Not sure if they will reply this time...

findingthesound's icon

Thank you HDGMAX, hope you'll get a positive answer this time!

Lee's icon

Hi, I wouldn't hold your breath - Akai are not usually forthcoming with details MIDI specs, other than basic note layout. The usual way to find out what these controllers send/receive is to decompile the Live remote script and see what it's doing I'm afraid...

nickel_alloy's icon

Is there any specific command you're looking for?

The majority of the commands are pretty much the same from the APC40 MK1 although the actual note numbers/control change numbers might be different.

For example:
The metronome button will output note number 90 (decimal) on channel 1. Sending a command back to the APC with the same note number on the same channel will manipulate the LED. So sending channel 1, note 90 to any level above 0 will turn the LED on and sending level 0 will turn it off.

The "clip stop" buttons have leds which flash if you set them to level 2 (0 = off, 1 = on, 3-127 = on). The A|B buttons have two different shades of orange, a value of 1 is light orange and 2-127 is dark orange. The main clip grid buttons have RGB leds so they use the entire 127 values to display different colours.

The same is true for setting the levels of the encoders. Just send a control change on the same channel and CC number with the value you want to change it to.

I had success with setting the encoder ring style in the same way as is described on page 12 of the APC 1 communication protocol doc. I think the note numbers were the same too, although I cant remember.

I hope that helps. I don't have my APC2 to hand at the moment, the info above is just from some notes I made a while ago and I'm pretty sure it's correct. Have a play around using MAX to read and send commands to and from the APC and see what it does. If you have any more specific questions, I'll help if I can. If I have time at some point, I'll compile a document with all the information I've found out so far.

Afrothief's icon

Many thanks to the above folks for the Mk2 info and the patch, which seems to work in Max Runtime - However, I'm stuck trying to find a way to change the APC modes *within* Ableton. Not only does Max For Live not play ball with sysex, but, from what I've seen, Live sends handshake info on new set load, bootup etc back to the APC40, which overwrites any previous sysex request.

I am admittedly a noob in some of these matters, but I find it baffling that these modes exist (esp "Alternate Ableton Mode", the one I'm after) yet are not accessible through the application they're designed for.

Any advice or tips very much appreciated, thanks!

hdgmax's icon

Hi everyone, good news... the APC40mkII communications protocol is now available on the website of AKAI: http://www.akaipro.com/index.php/product/apc40-mkii#downloads

arreges's icon

Hey y'all. Figured I'd share this here.

I've done quite a bit of programming for the MKII and have a DJ template for free download on my website. It is built for managed workflow and enhancements not native (or not quickly accessible) in Live. Download it here to check out the code and how it works with the MKII: http://www.drewreges.com/BLTDownload/BLTTemplate.zip

Anywho. I am building a custom shop dealio for another artist and am helping them figure out the lighting controls. I built this little animal to quickly reference which colors correspond to which value (0 through 127). Select the MKII control surface from the drop down menu and then roll the number box up and down to see the top-left-most clip launch pad change colors.

Max Patch
Copy patch and select New From Clipboard in Max.

I hope this helps and if anyone has any questions, feel free to hit me up!

Nathan M's icon

Hey everybody,

I have been messing around quite a bit with my MKII and everything seems to go quite smoothly. The one thing I can't find out is how to change the mode of the led-rings. I can set them to an absolute value by just sending a control out midi message to the appropriate control ID (the same as the control input ID). However I would really love the leds to function like they do when you are in "send" mode in Ableton, lighting up the whole ring instead of just the current value of the controller.
Can anyone help me to do this? It would be greatly appreciated

Tony's icon

Did anyone find away of switching modes on the apc mk2?

Aaron's icon

here's a little patch I threw together. It's kind of a crappy etch-a-sketch. Keys 1, 2, and 3 switch the APC to generic, ableton, and ableton alt mode, respectively, and macro knobs 5,6,7 (CCs 20,21,22) control X,Y, and color on the apc's grid. I just used a modulo to keep looping x and y, because it was late and I'm lazy. it's kind of a *really* shitty painting program!

Max Patch
Copy patch and select New From Clipboard in Max.

doesn't matter which mode the apc mk2 is in to paint the grid, but if you want visual feedback on knobs, mode 1 or 2.

hdgmax's icon

Hi Tony. Take a look at the maxpat which I posted on 4 Sept 2014. It is an easy patch to switch modes on APC40 MK1 and MK2.

Daniele Daniele's icon

Hi guys i need some serious help! I've downloaded the patch made by HDGMAX, it opens.. all ok... but i can't figure out how it works.. my apc mk2 acts the same way, i do not know what i've to do, i try to click on the mode i want but nothing happens! Max is correctly installed and ableton recognizes it without any problems. please guys i need help!