When it comes to accessing the several aspects of Live then we have access to some outstanding documentation (such as the Live Object Model
). But when it comes to control surfaces we're left a bit to fend for ourselves.
I say "a bit" because Max / M4L does come with some helpful abstractions which provide access, but the thing is... I don't like them. No offense intended, and I do recognize (and respect!) the work that went into those. Its just that I like to do things myself and cut out as much overhead as I can.
Alas; to make a long story longer: last weekend I had some quality time to hack away at the APC40 and managed to gain control over its transport section (play, stop, rec buttons) and the matrix and wrote it all up, including some false assumptions. I also packed up my whole project including all the m4l test devices I made and provided that for download too.
If interested, and I hope you'll find it useful, you can find my blog post here.