Before tackling the M-audio Code 49, i blew the dust off my old m-audio KeyRig 25 as a warm up.
Class compliant so no special drivers needed. All the original "Rig" software it came with is useless on windows 10. I used Sonar's Generic surface to manually program the dials and buttons in a strip parameter configuration (one strip, knobs controlling volume, pan, send level, etc and buttons controlling mute, solo, arm, write enable as well as global transport play, stop, RTZ and record). Then used ACT learn to set the master fader controller to master volume. The WAI shows green on the active strip and I setup two remaining buttons for shifting one strip left or right to move between strips. Having good fun with it. Although for a midi track i cloned to thicken, some of the parameters such as Solo button toggle both the original track as well as the cloned track, others do not. Assuming for now that's a Sonar "feature" ;). Through this process i also figured out how to configure a pre-set with knobs/buttons working multiple tracks (in banks or 4 or 8) for mixing.
Was hoping to plug-and-play the Code 49 in Mackie mode but seeing on other forums that's not going well. Code 49 stacks several functions on one button and the button color can change based on the toggle sequence. Arm, mute, solo, etc. Looks like i need to read a manual... Not sure when i'll have time to tinker. Sometimes plug-n-play is darn convenient.