Re: Surface SDK Question
2016/12/28 14:56:30
(permalink)
I have not updated VS-700, but MackieControl...
In former times, Sonar had build-in effects which are called "FILTER" in SDK. The position was fixed, EQ (0), Compressor (1), other "not implemented yet". When CW has introduced ProChannel, originally that was the "filter" replacements. So they have adopted Filter SDK API to access it. They have introduced "dynamic ProChannel" then, when modules can have arbitrary position and there can be more modules.
They have tried to adopt to the change, I guess when working with VS-700 plug-in. But probably the "knowledge" how to do this correctly was lost and so the API is not working in any logical way. They have made the decision to use Plug-ins Dynamic Mapping (AKA "ACT Learn") only for VS-700 (unlike Mackie Control, which does not support it at all), so the code responsible for ProChannel direct access was no longer in focus and so it is still in half-made state.
The logic for ProChannel access throw Filter API is the following: if you access ProChannel for strip in focus (as seen in the Track Inspectors), the index (what is defined as EQ, COMP, etc.) is not valid, the index is "normal" in respect to current modules sequence. And you can access all modules. If you try to access ProChannel for strip which is NOT in focus, you can access EQ and Compressor only. But the index is still not as defined in SDK, it depends from positions of EQ and Compressor in focused strip (so, think it is "random").
SDK also has a bug, it can not return the name of ProChannel module (what it can do for FXes and Synth Rack). AZ Controller and my moded MackieControl are "searching" for ProChannel modules by the number of parameters and when required by the name of the last parameter. Note that names are localized, in German version it is not the same as in English and so on. But that method is pretty "stable" for me so far. Also that is the only way to distinguish between different "FX Chain"s, they are all represented as a singed "FX Chain", also for Dynamic Mapping. Since they can have different number of controls, the mapping is never right then...
Recently found bug: do not try to get the name for ProChannel Compressor parameter 0, which is always "Type". Getting this string, when done continuously, for example to update display with parameter name, crash Sonar.
I think the simplest way to work with ProChannel is using Dynamic Mapping ("ACT Learn"). You just need "Focus" the module (with "Filter" API) and then "ACT Lock". You will have to evaporate current ACT XML files (another nasty Sonar bug) and then use "AZ ACT Fix" periodically (after "ACT Learning") or "ACT Editor" from MarKo. But that should work fine.
I hope that information can help you to advance.
Sonar 8LE -> Platinum infinity,
REAPER, Windows 10 pro
GA-EP35-DS3L, E7500, 4GB, GTX 1050 Ti, 2x500GB
RME Babyface Pro (M-Audio Audiophile Firewire/410, VS-20), Kawai CN43, TD-11, Roland A500S, Akai MPK Mini, Keystation Pro, etc.
www.azslow.com - Control Surface Integration Platform for SONAR, ReaCWP, AOSC and other accessibility tools