Akai APC40 -> Max / Midi from scratch

Mark Kerr's icon

Allright, I've pretty much been reading all the posts about APC40 customization on this forum but I guess there must be something I don't get. Which would basically be how I get the APC40 lights to NOT do anything unless I tell em (via midi from max).

I was working on this patch yesterday and everything seemed to be working allright, today I switched on the APC and now the lights of the grid light by themselves when pressed, which is not what I want cause it fucks up my patch.

I don't get it. Can I get this controller to some kind of native mode or something ? or just to chill down.
It just seems to me like it behaves in a different way each time. For instance, sometimes when turned on the track select buttons change the midi channel for all of the knobs. Sometimes they don't, and the knowbs keep transmitting on one.

I'm a bit confused at this point. I wish this guy just did nothing.

g.

sysex's icon

If you search for:
APC40 Communications Protocol rev 1
You find a PDF-guide like the 'launchpad Programmers Reference'. I don't own a APC but there's written that the default mode is 'generic mode' (mode 0).
I guess that in case of Live's remote script another Outbound Message
Type 0 is sent to the APC in order to set it to mode '1'. Regardless what mode you want to use this document seems to contain all message formats and adresses.

jbl's icon

First time I hear that the APC doesn't behave the same all the time.. but I had struggle with the APC in max.

First of all, yeah the track selection buttons don't really send a midi message, they send one but it is going to be the value of the 8th encoder in the device control, minus 1 (yes, it's the exact same message, there is no practical way to know whether you press the track selector or turn the encoder)

The track selection will affect on which channel each of the 8 encoders (and buttons below it) will send their message, this is pretty annoying depending on what you are trying to do.

The only way I can think of to disable the apc led would be to send 0 (led off) to the button that you are using, whenever you are using it.

I actually sold the APC and got the livid cntrl:r instead because I got annoyed of fiddling around this weird piece of hardware. The cntrl:r offers much more customization.

Spip's icon

You should take a look to the documents available on the akai website : as mentioned before the Apc protocol and this one :

Don't hesitate to ask questions. I'm at the moment using it for building my "big patch" and so far so good found it pretty straight forward to program, much much more than the Launchpad, for example.

@jbl : Please, could elaborate a little bit on the cntrl:r ? I'm curious to know why is it so much better than the apc. It seems to have less encoders with leds and the pads seems smaller.

4002.MAPPINGTHEAPC40.jpg
jpg
Spip's icon

Here the protocol. I can't see it on the akai site anymore.

4003.APC40CommunicationsProtocolrev1.pdf
pdf
jbl's icon

First of all, my main reason to go with the cntrl:r is because its layout works much better with my project, also it offers more encoders/knobs directly on the controller, that means less pages to map all my stuff and more parameters available at the same time. It is also smaller and usb powered. The 7 led colors also offers some interesting capabilities. Then again, it has all that because it's much more expensive than the APC40. Finally, since I'm working with my custom interface, I'd rather have a blank controller than one with lots of text on it. All of these are small reasons that makes it better in my point of view.

The more technical reason explaining I did the switch is because of how the apc's device selection buttons work. As far as I know, you can't stop them from changing the encoder channel and the buttons are quite annoying to map compared to the other buttons... they send the same message as one of the encoder. (yes they do send a cc message in max and it's cc23) Tell me if this can be changed because this is what made the cntrl:r so much easier to map in my opinion: you have control over everything that is going on.

You can change what each of the control sends. You can even change the type of midi message it sends or which value lights up which led color. You also have on board control on how fast the encoders send data when turned, which can be altered on the fly via a sysex message. Sysex offers a lot of other possibilities, you have 100% control over what the controller receives and send. This also mean a much cleaner mapping in max.

edit:

as for the size of the pads, the 4x4 grid is bigger, the 16x2 is smaller. the pads do feel different, I got used to livid and now I like them better, they feel deeper.

and yes it has 12 encoders vs 16 on the apc, but you also have 24 knobs which can control your most global/important parameters and that you would need to recall all the time on the 16 encoders. Also, I prefer to have 1x 12 than 2x 8. For my project that layout is far more useful and less confusing.

One point that is very important to mention is the feel of the encoders. While the knobs feel heavy, the encoders feel light.. I kinda got used to them now but I think the encoders of the apc do feel better. but now that I mapped the press button of each encoder to the speed of the encoder, I like that style better, similar to the elektron machinedrum.

Spip's icon

Thank you very much for all these great details, it helps a lot ! It sounds interesting and I'm going to check the Livid website closer.
By any chance, do you know if the encoders of cntlr:r are the same than those of the ohmrgb ?

Concerning the track selection buttons of the APC, indeed you can't stop them to change the number channel of the device control encoders but you can still use them to trigger something. But not so useful, you're right.

jbl's icon

As far as I know, the encoders of the cntrl:r are the same than those on the code. The OhmRGB has knobs, the cntrl:r has 24 of these, they seem to be the exact same ones.

Spip's icon

Thanks for the details !
I'm not fully decided yet. I like the large number of encoders of the code, the grid and the crossfader of the Ohm and the full featured side of the Cntrl:r :) not easy... I've seen the "elements" but seem a little bit too heavy maybe and no encoders available.

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

I've found the way to remove the strange behavior of the APC40, concerning the track selection buttons and the device encoders.

jbl's icon

Oh.. if only I knew about that.. damn. it's a good fix. I still don't regret the switch because the cntrl:r happens to offer the layout that I need.

As for the elements, You get customization (but no encoders and only 1 color led on the pads) but it comes with the extra size and weight and the extra price. If the cntrl:r layout works for you, it's like getting 7 element modules in a much smaller case.

At first I was tempted by the code but since I work with "pages" a bit like what the APC40 has with its encoders in ableton live, that really extends the power of the cntrl:r. I have 16 pages of 12 encoders + the 16 pads below them. Of course the code would duplicate its encoders in the same way, but you don't really have pads and no faders. Also, for the number of controls available at all time, the code has 32 encoders + the pads which are mostly going to be used as different pages... the cntrl:r gives you 12 encoders, 24 knobs, 8 faders, 16 bigger pads, 32 smaller pads.. that's a lot of control. I don't think there is another controller with that much stuff on it for its size.

Mark Kerr's icon

hey everyone,
thanks for the replies.

shit I was receiving updates about this thread on an old email address.. anyways, I figured it out after a lot of googling and stuff and it's exactly what Spip posted. Putting the APC40 in mode2 from max with a sysex message. That's the one bit I was missing. I guess the same happens if you open Live and select the APC40 in the Control Surface menu and then deselect it right after.. dunno why. But yeah, once you put it in mode 2 then it's easy, it behaves always the same and there's no light going on ever if you don't tell em to do so.

clement-montreal's icon

Hi,
i Don;t know if that could help , but here is how I made the bottom buttons ( recordarm/solocue/activator) being lit ON one at a time.

Hope this can help .

let me know your other tips and tricks to controls LED from APC40!

PS: on my side, I Didn't have to activator any mode in Sysex after turning ON the APC with Max, it works instantly , and beware that the tracks selection row sets the channel of all the knobs . Which is very handy in most of cose where you want nto get different scenes layed out on the surface .

5310.LEDbottom.maxpat
Max Patch
Matt Ryan's icon

Thanks to SPIP for the protocol pdf. Without that, I wouldn't have been able to understand the order of the numbers coming out of the APC during and after a button press.

Spip's icon

You're welcome ! :)

Claudio Kiari's icon

Hi.

I need some help, please.
I've just got an used APC40. The buttons are ok, but all sliders and knobs doesn't work. When I turn a virtual knob on Ableton Live, the knob lights respond to the movement with accurate range displaying. When I do the oposite (moving the APC40 knob) nothing happens (software parameters do not change).

It was tested both on Mac and PC, with different USB cabbles and different power supply. It was also tested with 'Midi-OX' and 'Midi Translator" softwares and the sliders and knobs still doesn't work.

Anyone has passed throught this or something?
Would be the MODE swapping a solution?

Please, any hint would be good.

Cheers.