FXMenu Zones - reaper-csi/reaper_csurf_integrator GitHub Wiki
Two Different FXMenu Zone Types
As of CSI version 1.1, there are 2 different types of FXMenu zones to choose from depending on your particular needs, workflow, and surface. They are:
- SelectedTrackFXMenu (Note: prior to CSI version 1.1, this was the only type of FXMenu zone and simple called "FXMenu")
- TrackFXMenuSlot
SelectedTrackFXMenu is best used when you have a surface with multiple channels and you want to map out the FXMenus on the selected track, across those various channels. Example: you have an 8 channel MCU type device. Using a SelectedTrackFXMenu zone will allow you to control up to 8 FXMenus from the selected channel on each of the surface's channels. You setup the number of FXMenus in the CSI device preferences for sends (there's not a separate item for FXMenus).
TrackFXMenuSlot is best used when you have a multiple channel surface, but you only want to see FX Slot for the channel that corresponds to the track navigator. Example: you have an 8 channel MCU type device. Using the TrackFXMenuSlot will show you FXMenu Slot #1 for channels 1-8. If you want to see the FX loaded in FXMenu Slot #2, you will use FXMenuSlotBank action to navigate to the next slot, at which point, you'll be looking at FXMenu Slot #2 for channels 1-8. You setup the number of tracks in the CSI device preferences.
Pre-condition for both zone types: the FX still need to be mapped with their own fx.zon files and those .zon files would need to use the SelectedTrackNavigator. See FX Zones for details on how to create fx.zon files.
FXMenu Mapping and Unmapping Actions
Depending on the type of FXMenu zone you are creating, you will need to create a CSI action to map the FXMenus.
SelectedTrackFXMenu uses the CSI action MapSelectedTrackFXToMenu for mapping.
TrackFXMenuSlot uses the CSI action MapTrackFXMenusSlotToWidgets for mapping.
Each of those has a corresponding Unmap action.
Activating a FXMenu Map
You can activate the FXMenu map one of three ways. First, you can assign the mapping action above to a button like this...
Zone "Buttons"
FXMenu MapSelectedTrackFXToMenu
ZoneEnd
Or, if you want the act of selecting a track to automatically map your FXMenus (works with SelectedTrackFXMenu and SelectedTrackFXMenuSlot), you could set that up in your Home zone like this...
Zone Home
OnTrackSelection MapSelectedTrackFXToMenu
IncludedZones
"Buttons"
"SelectedTrack"
IncludedZonesEnd
ZoneEnd
Or, if you can dedicate a portion of your surface to FXMenus and always want them to appear as part of your Home zone, you can simply add the FXMenu zone to the IncludedZones like this...
Zone Home
IncludedZones
"Buttons"
"Channel"
"SelectedTrackFXMenu"
IncludedZonesEnd
ZoneEnd
Unmapping FXMenu Zones
Assuming the FXMenu zone does not live in your Home zone, you'll also need a GoZone "Home" somewhere in your surface zone file to un-map FXMenus and get back Home.
Zone "Buttons"
Plugin MapSelectedTrackFXMenusToWidgets
Cancel GoZone "Home"
ZoneEnd
Or, if you'd want to manually unmap the FXMenus, you could assign the Unmap action to a button or modifer+button combo...
Shift+FXMenu UnmapSelectedTrackFXFromMenu
SelectedTrackFXMenu Zone Example
Note: SelectedTrackFXMenu zones are a special type of zone so your FXMenu zone must be named "SelectedTrackFXMenu" (exactly) and must use the SelectedTrackFXMenuNavigator as shown below.
Zone "SelectedTrackFXMenu"
SelectedTrackFXMenuNavigator
DisplayUpper| FXMenuNameDisplay
RotaryPush| GoFXSlot
ZoneEnd
TrackFXMenuSlot Zone Example
Note: TrackFXMenuSlot zones are a special type of zone so your FXMenu zone must be named "TrackFXMenuSlot" (exactly) and must use the TrackFXMenuSlotNavigator as shown below.
Here's an example of a typical TrackFXMenuSlot zone.
Zone "TrackFXMenuSlot"
TrackFXMenuSlotNavigator
DisplayUpper| TrackNameDisplay
DisplayLower| FXNameDisplay
RotaryPush| GoCurrentFXSlot
BankLeft FXMenuSlotBank "-1"
BankRight FXMenuSlotBank "1"
ZoneEnd
FXMenu Actions
The available FXMenu actions are shown below.
FXMenuNameDisplay
MapSelectedTrackFXToMenu
UnmapSelectedTrackFXFromMenu
MapTrackFXMenusSlotToWidgets
UnmapTrackFXMenusSlotFromWidgets
GoFXSlot (used with SelectedTrackFXMenu)
GoCurrentFXSlot (used with TrackFXMenuSlot)
FXMenuSlotBank (used with TrackFXMenuSlot)