Several words why I have written
AZ Controller.
That information is not essential for using the plug-in, feel free to ignore.
That was not plannedOnce I bought Akai MPK mini (just to play some kind of piano when there is no other options), I have tried to configure it as a SONAR Control Surface. But that was rather disappointing experience.
I have started with ACT MIDI Controller. I can see 16 buttons to configure, nice! I have 2 hardware banks, 16 buttons in total, perfect match! Oops. that is for 8 buttons plus one "Shift" button. Then sliders.. wait, I do not have any. Ok, more or less reconfigured buttons and assigned Rotors to control volume and pan. A kind of usable. No, not with Pan. I can not set Pan to center, no way. But at least I can control plugins. Well, with ACT remapping... no, next time I restart SONAR I have to start from scratch, not funny.
Generic Surface was more strait forward. But without banks, it is not practical in my case. And why it can not control buses?
Finally I have found that some notes are OFF once I press my controlling buttons. What the hell? Yes, MIDI Note Off codes from controlling buttons leak to the recording input. That was with that plug-ins.
If you do not like it, write it yourselfI am not a Musician, you do not want to hear what I am playing, even my family is not happy, at least not with my singing. Piano is ok, 8 years eduction when I was a child have not evaporated completely.
But I am a Programmer. From "old school", prefer Assembly and at most C, use C++ with caution and for not critical tasks only and hate Java. And I have found Cakewalk ACT API is available. I have even downloaded MS VS, just to find out that the library make use of MFC and that will cost me $300. No go.
I have installed Sonar X2 under Linux/Wine, GCC MinGW cross compiler and manually converted IDL into .h
I have written "FakeSONAR" first, to "load" plug-ins into controllable environment as well as for easy debugs/restarts (real Sonar starts too slow and I do not have the source code for it). That was working, and I have started to write my own plug-in.
Relatively soon I had the plug-in which was ok for me. It had no user interface - to reconfigure something it had to be recompiled. But I have decided to add at least some user interface, no intention to make it nice, just more or less working.
And current result you can test yourself. Have fun