The board has nice keys and many controlling elements. Yet there is not way to use it with Sonar "out of the box".
* You can get some functionality with "ACT MIDI" and/or "Generic surface". But even when you get throw all assignments, you will "hit the wall" of limits and bugs. So I repeat, that way you get some functionality, but for sure not "the maximum", not even reasonable.
3) in the Sonar Preferences, Control Surfaces, add "MackieControl". Set "Input" and "Output" to mentioned before ports (NOT to other!). In the Control Surface toolbar module you should see "MackieControl" / "Connecting...". And nothing works... that is expected (M-Audio has not implemented Mackie emulation correctly).
4) exit Sonar, follow http://www.azslow.com/index.php/topic,341.0.html (http://www.azslow.com/index.php/topic,341.0.html). Including "Configuration" section to set "Disable handshake". Your Code should be able to control Sonar now. Tricky part is to find which function is triggered by which buttons (M-Audio has "forgotten" to write the documentation).
* For "the maximum". AZ Controller (and there is no other options). You will need to invest a lot of time into deciding what you want the device does in Sonar, have patience waiting till I implement that in preset and again time to test the result is working (I do not have the device). "Maximum" does not come for free (in terms of your time, money are not involved since AZ Controller is free to use).
All content is read in this thread. It was a new knowledge for me. I see it as a really useful thing.