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.
- 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?
- 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.
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...
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.
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.
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.
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.
I hope this helps and if anyone has any questions, feel free to hit me up!
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
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!
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.