Navigation Actions - FunkybotsEvilTwin/CSIUserGuide GitHub Wiki

Bank

Use the Bank action followed by the zone name and the number of channels you'd like to bank the surface by to navigate your hardware. It's common to place the Bank action for a track.zon and selectedtrack.zon in your Home zone, then have the bank actions for FXMenus, Sends, and Receives in their respective zone files.

Here's the new syntax in a typical Track zone...

     BankLeft                   Bank Track -8
     BankRight                  Bank Track 8
     ChannelLeft                Bank Track -1
     ChannelRight               Bank Track 1 

For comparison, here is the new syntax in a SelectedTrack zone...

     BankLeft                   Bank SelectedTrack -8
     BankRight                  Bank SelectedTrack 8
     ChannelLeft                Bank SelectedTrack -1
     ChannelRight               Bank SelectedTrack 1 

And here's the full list of supported Bank zones/types...

    Bank Track
    Bank VCA
    Bank Folder
    Bank TrackSend
    Bank TrackReceive
    Bank TrackFXMenu
    Bank SelectedTrack
    Bank SelectedTrackSend
    Bank SelectedTrackReceive
    Bank SelectedTrackFXMenu
    Bank MasterTrackFXMenu

GoHome, AllSurfacesGoHome

Assign this action to a button to return to the Home Zone and effective reset your Control Surface. If your surface supports feedback, you will see a light engaged when the Home zone is active.

Zone Home
    GlobalView                  GoHome
ZoneEnd

If you would like all surfaces on your Page to return home with a single CSI action, you can use the AllSurfacesGoHome action to return all Home at once.

Zone Home
    F1                           AllSurfacesGoHome
ZoneEnd

GoZone

Use the GoZone action to activate GoZones in CSI such as Sends, Receives, FX Menus, etc. The syntax for this action is GoZone folowed by the GoZone name. Here is an example below for an MCU/X-Touch style Home zone. If your surface supports feedback, you will see a light engaged when the Zone is active.

Zone Home

    Track                       GoHome
    Pan                         GoZone VCA
    EQ                          GoZone Folder
    Send                        GoZone SelectedTrackSend
    Global+Send                 GoZone TrackSend
    Plugin                      GoZone SelectedTrackFXMenu
    Global+Plugin               GoZone TrackFXMenu
    Instrument                  GoZone SelectedTrackReceive
    Global+Instrument           GoZone TrackReceive
    MidiTracks                  GoZone SelectedTrackTCPFX
    Inputs                      GoZone MasterTrackFXMenu

    F5                          GoSelectedTrackFX

GoSubZone, LeaveSubZone

Use the GoSubZone action when you want to create custom SubZones to be called up on-demand. The SubZones need to be listed as SubZones within the surface definition. In the below example, we've got two SubZones, one for a "Marker" zone and another for a "Zoom" SubZone. The syntax to flag the included SubZones and the buttons to activate them would look like this...

Zone Home
    SubZones
        Marker
        Zoom
    SubZonesEnd
     Marker                             GoSubZone Marker
     Zoom                               GoSubZone Zoom

The SubZone itself would look like any other standalone .zon file. Also note that once we are in one of those custom SubZones, we need a way to exit the SubZone. You may want to use the same button you used to activate the SubZone in order for it to behave like a toggle. See the example below from the Marker SubZone.

Zone Marker
    Up                   Reaper 40613   // Delete marker near cursor
    Down                 Reaper 40157   // Insert marker at current or edit position
    Right                Reaper 40173   // Go to next marker or project end
    Left                 Reaper 40172   // Go to previous marker or project start

    Increase+Jogwheel    Reaper 40173   // Go to next marker or project end    
    Decrease+Jogwheel    Reaper 40172   // Go to previous marker or project start
    
    Marker               LeaveSubZone
ZoneEnd

Click here to learn about FX SubZones.

GoPage, NextPage, PageNameDisplay

If using multiple Pages, the buttons on surface can be assigned to switch between Pages. Use the CSI GoPage action to jump between Pages in CSI. Use NextPage to cycle between Pages. In the below example, I have a Page called Home and another called Mix. Those Pages will point to different zone folders that are configured to function differently based on the page. See Pages for more details about when and how to use Pages in CSI, for now we'll just focus on the actions to change pages.

On my Home page, I may want to utilize the "Channel" button on my surface to enter the Mix Page.

Zone Home
        Channel         GoPage Mix  // Activates the Mix page
ZoneEnd

But in order to get back to the HomePage, I probably want to make sure I have the opposite happening when the Mix page is active.

Zone Home
        Channel         GoPage HomePage  // Activates the Home page
ZoneEnd

You could also use the NextPage action to just cycle through the Pages in your CSI setup. In a two-page setup this would essentially be a toggle but if you had 3 or more pages it will cycle through them.

Zone Home
        Channel         NextPage  // Cycles through the list of pages
ZoneEnd

Finally, while not a Navigation Action, the PageNameDisplay action can be assigned to a Display widget in order to show the name of the currently active Page.

MainDisplay     PageNameDisplay

ToggleSynchPageBanking

This action will toggle whether or not surface banking stays in sync when you change Pages in CSI. Example: if your surface is banked to show channels 25 to 32 on your HomePage, then you switch to a second page, do you want to maintain the banking position? This is enabled by default. This action will toggle the behavior.

Zone Home
     F8     ToggleSynchPageBanking
ZoneEnd

ToggleScrollLink

This action toggles the behavior where Reaper's MCP will follow CSI's banking and scroll in sync with the surface. Note: as of the August 5, 2022 CSI release, this defaults to Off (previously defaulted to On).

Zone Home
     F7     ToggleScrollLink
ZoneEnd

if you want to have ToggleScrollLink default to "On", you could include it in your Home.zon along with an OnInitialization virtual widget as shown below. Important note: ToggleScrollLink is actually a "Page-level" action. So if you had included "OnInitialization ToggleScrollLink" in two surface zone files, or shared one zone folder between two devices, the action would actually fire twice thus not actually changing the state (changing it from it's default off state, to on, to off again). The current workaround would be to only include this action in one surface home.zon and not to share zone folders between two surfaces if you want ScrollLink enabled by default.

Zone Home
	OnInitialization ToggleScrollLink
     	IncludedZones
     	   	Track
     	   	SelectedTrack
		     MasterTrack
     	IncludedZonesEnd
ZoneEnd

ClearFXSlot

ClearFXSlot deactivates the currently mapped FX slot. Very handy if you have an 8-channel surface like an MCU, X-Touch etc., that you use to map FX using FXMenu and want to return to the menu.

Typical usage:

Zone "VST: UAD Harrison 32C (Universal Audio, Inc.)" "Har32C"

	Plugin      		ClearFXSlot

When you press Plugin you will be returned to the FXMenu.

If you would like this included in Auto-Generated FX Zones, you can also add this to your FXEpilogue.zon

Zone FXEpilogue
     Plugin              ClearFXSlot
ZoneEnd

ClearFocusedFX

Use the ClearFocusedFX action if you're using FocusedFX and find that after unfocusing the FX, that your prior zone is not returning. Example: you're calling up FocusedFX from a Track zone, and after unfocusing the FX, you expect the track zone to return. You would use the ClearFocusedFX action to let CSI know that you're no longer in a FocusedFX state and restore the Track.zon.

Zone Home
     Alt+Plugin     ClearFocusedFX
ZoneEnd

ClearLastTouchedFXParam

If you're calling a separate LastTouchedFXParam zone and want to clear it and return to the prior zone, you'd use the ClearLastTouchedFXParam action.

Zone LastTouchedFXParam
     Fader1           LastTouchedFXParam
     DisplayUpper1    LastTouchedFXParamNameDisplay
     DisplayLower1    LastTouchedFXParamValueDisplay
     F1               ClearLastTouchedFXParam
ZoneEnd

ClearSelectedTrackFX

If you're using a SelectedTrackFX setup, and need to clear that zone(s) and return to the prior setup, you would use the ClearSelectedTrackFX action.

Zone Home
     F8       ClearSelectedTrackFX
ZoneEnd