Support VCA and track grouping parameters
From ChocolateHawkins:
Another issue I've noticed with Realearn is when I map to a VCA master fader, the VCA follow functions (fader, solo, mute, etc.) do not work.
I think this needs to be implemented manually by evaluating GetSetTrackGroupMembership. Could be easier to do when implementing #4 by providing the foundation to allow resolving to multiple targets at once.
It works for record arm already, maybe for some other things as well?
From ChocolateHawkins:
Another issue I've noticed with Realearn is when I map to a VCA master fader, the VCA follow functions (fader, solo, mute, etc.) do not work.
To add a detail: it'd be nice to bypass grouping by holding down 'SHIFT' when toggling a parameter via ReaLearn.
Status quo
Legend:
- "no" = it doesn't work yet
- "yes" = it works already
Leads:
- Volume (
CSurf_OnVolumeChangeExdenying gang)- In general: no
- Reverse volume: no
- Pan (
CSurf_OnPanChangeExdenying gang)- In general: no
- Reverse pan: no
- Width (
CSurf_OnWidthChangeExdenying gang)- In general: no
- Reverse width: no
- Mute (
CSurf_OnMuteChangeExdenying gang +CSurf_SetSurfaceMutenotifying all): yes - Solo
- In-place (
GetSetMediaTrackInfo+CSurf_SetSurfaceSolonotifying all): no - Ignore routing (
GetSetMediaTrackInfo+CSurf_SetSurfaceSolonotifying all): no - Use REAPER preference (
CSurf_OnSoloChangeExdenying gang +CSurf_SetSurfaceSolonotifying all): yes
- In-place (
- Polarity/Phase (
SetMediaTrackInfo_Value): no - Record Arm (
CSurf_OnRecArmChangeExdenying gang): yes - Automation Mode (
SetTrackAutomationMode): yes - VCA (see volume): yes
Options:
- Do not lead when following: yes (works for all leads with "yes")
Findings:
GetSetMediaTrackInfoorSetMediaTrackInfo_Valueof course doesn't respect track grouping stuff (that was clear already)- Additional
CSurf_SetSurface*function calls don't have any effect on track grouping CSurf_On*ChangeExfunction calls which deny gang respect track grouping only for on/off-style things (solo, mute, record arm)CSurf_On*ChangeExfunction calls which allow gang respect track grouping always!
Solution:
- For volume, pan and width: Add a checkbox to respect track grouping (internally allows gang, off for old presets, by default off)
- For mute, arm, solo (use REAPER preference)
- Ask Justin why calling the
CSurf_On*ChangeExfunctions with denying gang still invokes track grouping. Maybe a bug? - If there's a way to disrespect track grouping, add a checkbox to respect it (on for old presets, by default off)
- Ask Justin why calling the
- For phase, solo (in-place, ignore routing): Ask Justin if there's a way to respect track grouping. Maybe temporarily change REAPER preference?
- If there's a way to respect track grouping, add a checkbox to respect it (off for old presets, by default off)
I renamed this to "Support track grouping parameters" because VCA works already!
I added a "Respect track grouping" and "Selection ganging" checkbox to all relevant targets.
One limitation: Volume, pan and width targets can respect track grouping only if selection ganging is also enabled.