FX Sub Zones - reaper-csi/reaper_csurf_integrator GitHub Wiki

CSI version 1.1 introduced FX Sub Zones. These are useful when you are trying to map an FX that has more parameters than your surface has controls for, or maybe the plugin has multiple FX types or modes and you'd like to put them into different zones you can switch between. This could even be useful for mapping instruments if you wanted to have filter controls on one zone, oscillator controls in another, envelopes and LFO's in another, etc. The sky is the limit with FX sub zones.

For FX Sub Zones to work you basically need a few key elements:

  1. Your initial fx.zon file. This should include the parameter mapping you want to see when the plugin is mapped just like any other fx.zon. It should also have a name that matches the plugin, just like any typical fx.zon file. Example: [plugin].zon

  2. One or more separate files for each sub zone. Remember: in CSI version 1.1, each zone must be in a separate .zon file (it's one per). The sub zones should not include a navigator. It is recommended you number these Sub Zone FX files using the same plugin name, but appending a number to the end of the file in ascending order for each Sub Zone. Example: [plugin]-1.zon and [plugin]-2.zon

  3. Instructions in the initial fx.zon file about which SubZones are to be included. See the "SubZones" and "SubZonesEnd" section in the example below.

  4. GoSubZone actions in all of the .zon files so CSI knows how to move from zone to zone.

Example

In this example, I've mapped Limiter 6 GE from Tokyo Dawn Labs across 3 different zones. The primary [plugin].zon has the Compressor controls, the first Sub Zone has the Peak Limiter controls, and the second Sub Zone has the High Frequency Limiter, Clip and Output controls.

I have dedicated banking buttons on my surface (BankA, BankB, and BankC) that I will use to switch between each zone. You can see that each zone includes the GoSubZone action to jump to the other Banks. You could of course assign different buttons to switch between zones.

First file: VST__TDR_Limiter_6_GE__Tokyo_Dawn_Labs_.zon

Zone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)" "Limiter6 GE"
SelectedTrackNavigator
     SubZones
          "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-1"
	  "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-2"
     SubZonesEnd
/
BankA         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)" "Compressor"
BankB         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-1" "Peak Lim"
BankC         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-2" "HF Lim+Clip"
/ 
RotaryA1 FXParam 6 "Comp Thresh"
RotaryA2 FXParam 8 "Comp Ratio" 
RotaryA3 FXParam 9 "Comp Attack"
RotaryA4 FXParam 10 "Comp Release"
/
ZoneEnd

First Sub Zone file: VST__TDR_Limiter_6_GE__Tokyo_Dawn_Labs_-1.zon

Zone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-1" "Peak Lim"
/
BankA         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)" "Compressor"
BankB         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-1" "Peak Lim"
BankC         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-2" "HF Lim+Clip"
/  
RotaryA1 FXParam 18 "Peak Lim Gain"
RotaryA2 FXParam 20 "Peak Lim Thresh"
RotaryA3 FXParam 25 "Peak Lim Focus"
RotaryA4 FXParam 26 "Peak Lim Release"
/
ZoneEnd

Note: Only the initial [plugin].zon should include a navigator. Do not include a navigator in any Sub Zones.

Second Sub Zone file: VST__TDR_Limiter_6_GE__Tokyo_Dawn_Labs_-2.zon

Zone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-2" "HF Lim+Clip"
/
BankA         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)"   "Compressor"
BankB         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-1" "Peak Limiter"
BankC         GoSubZone "VST: TDR Limiter 6 GE (Tokyo Dawn Labs)-2" "HF Lim+Clip"
/  
RotaryA1 FXParam 34  "HF Lim Threshold"
RotaryA2 FXParam 38 "HF Lim Frequency"
RotaryA3 FXParam 36 "HF Lim Range"
RotaryA4 FXParam 41 "HF Lim Dry Amt"
/
ZoneEnd