04 ‐ Zones - FunkybotsEvilTwin/CSIUserGuide GitHub Wiki
Introduction
Zones
are easily modifiable text files where the control surface behavior within Reaper is defined. They perform two primary tasks:
- Mapping widgets defined in
surface.txt
files to specific Reaper actions - Grouping multiple action/widget mappings into related groups for easier organization.
One Zone Per File
Each .zon
file must contain only one zone. This approach simplifies management and allows for easier sharing or modification of individual zones without impacting others.
Example of the CSI folder structure for an X-Touch including the .zon files:
├── CSI/
│ ├── csi.ini
│ ├── Surfaces/
│ ├── XTouch/
│ ├── surface.txt
│ ├── FXZones/
│ │ └── AutoGeneratedFXZones/
│ ├── Zones/
│ │ ├── HomeZones/
│ │ │ ├── Home.zon
│ │ │ ├── MasterTrack.zon
│ │ │ └── Track.zon
│ │ ├── GoZones/
│ │ │ ├── GoZones.zon
│ │ │ ├── Folder.zon
│ │ │ ├── MasterTrackFXMenu.zon
│ │ │ ├── SelectedTrackFX.zon
│ │ │ ├── SelectedTrackFXMenu.zon
│ │ │ ├── SelectedTrackReceive.zon
│ │ │ ├── SelectedTracks.zon
│ │ │ ├── SelectedTrackSend.zon
│ │ │ ├── SelectedTrackTCPFX.zon
│ │ │ ├── TrackFXMenu.zon
│ │ │ ├── TrackReceive.zon
│ │ │ ├── TrackSend.zon
│ │ │ └── VCA.zon
│ │ └── LearnZones/
│ │ ├── FXEpilogue.zon
│ │ ├── FXPrologue.zon
│ │ ├── FXRowLayout.zon
│ │ └── FXWidgetLayout.zon
Each zone must have a header row with the word Zone
followed by the zone name (no spaces allowed). And a footer row that reads ZoneEnd
.
Zone Home
ZoneEnd
Mapping an Action to a Control (Widget)
Widgets and their associated actions are defined within zones. A zone serves as a container for related widget-action mappings, allowing a structured approach to assigning functions to your control surface.
Here I'm assigning a widget named "PlayButton" to the CSI "Play" action.
PlayButton Play
However, we can't just have that anywhere. We need to put that mapping in a zone. Example: the Home zone.
Zone Home
PlayButton Play
ZoneEnd
Zone Types
- Home- This zone is required and is the 'starting state' for CSI. It's also recommended that surface buttons get mapped in the home.zon.
- Track- Used when you want to control multiple channels across multiple widgets (e.g. 8 faders assigned to 8 channels).
- SelectedTrack- Used for controlling the selected track in Reaper (commonly used for 1 fader surfaces).
- SelectedTracks- Used to control the selected tracks (plural) in Reaper. Updates dynamically as the track selection changes. Track control (volume, pan, mute, solo, etc.) behavior will be grouped for selected tracks.
- MasterTrack- This is for assigning the master track fader to your surface.
- MasterTrackFXMenu- This is for assigning FX on the master track. Note: there is no Reaper API which would allow CSI to access Monitor FX so these cannot currently be mapped.
- SelectedTrackFXMenu- Used for activating FX.zon files - shows the FX slots of the selected channel.
- SelectedTrackSend- Used for controlling the various sends on the selected channel.
- SelectedTrackReceive- Used for controlling the various Receives (if any) on the selected channel.
- TrackFXMenu- Used for activating FX.zon files - shows the same FX Slot across multiple channels.
- TrackSend- Used for controlling the same Send slot across multiple channels.
- TrackReceive- Used for controlling the same Receive slot across multiple channels.
- SelectedTrackFX- This works to enable any FX on the selected track you have a mapping for and relies on the FX Zone. You can have multiple plugins on the selected track mapped simultaneously with careful planning of your FX zones.
- Folder- Used to map folder tracks to the surface. Hides non-folder tracks.
- VCA- Used to map VCA tracks to the surface. Hides non-VCA tracks.
- Custom - Users can create custom zones.
Home Zone, IncludedZones
Every surface requires a Home zone as the default state. This zone initializes the surface by defining buttons and IncludedZones
. Place all of the .zon files that will be included in your Home zone within the CSI\HomeZones\
folder.
Below is an example of a typical MCU-style home.zon. IncludedZones
, like "Track" and "MasterTrack" in the below example, will be active within the home zone.
Zone Home
IncludedZones
Track
MasterTrack
IncludedZonesEnd
ZoneEnd
On the other hand, here's an example of a home.zon where the Track zone, SelectedTrackFXMenu, and SelectedTrackSend zones are all active in the home.zon itself. This can be useful in a multi-row, multi-channel surface like the C4. For this particular device/use-case, RowA of the surface covers the Track zone, RowB covers the SelectedTrackFXMenu, and RowC covers SelectedTrackSend, and we want all 3 active simultaneously, which is why we have all 3 listed as IncludedZones in the Home.zon.
Zone Home
IncludedZones
Track
SelectedTrackFXMenu
SelectedTrackSend
IncludedZonesEnd
ZoneEnd
The Home.zon is also a great place to define actions assigned to Virtual Widgets to set the starting state of your surface. Example: you can use it to disable FocusedFXMapping on initialization.
Zone Home
OnInitialization DisableFocusedFXMapping
IncludedZones
Track
MasterTrack
IncludedZonesEnd
Lastly, the Home zone is where button assignments are encouraged as you'd typically want a standard set of button assignments active within the Home zone.
Zone Home
OnInitialization ToggleRestrictTextLength 7
OnInitialization ToggleEnableFocusedFXMapping
OnInitialization SetLatchTime 100
IncludedZones
Track
MasterTrack
IncludedZonesEnd
// Encoder Assign Buttons
Track GoZone SelectedTracks
Global+Track GoZone MasterTrackFXMenu
Pan GoZone Folder
Global+Pan GoZone VCA
EQ GoZone SelectedTrackReceive
Global+EQ GoZone TrackReceive
Send GoZone SelectedTrackSend
Global+Send GoZone TrackSend
Plugin GoZone SelectedTrackFXMenu
Global+Plugin GoZone TrackFXMenu
Instrument LearnFocusedFX
// Display Section
nameValue GoHome
nameValue Reaper _S&M_WNCLS4 // Closes all FX chain windows
nameValue Reaper _S&M_WNCLS3 // Closes all floating FX windows
AssignmentDisplay GlobalModeDisplay
TimeDisplay MCUTimeDisplay
smpteBeats CycleTimeDisplayModes
// View Buttons
GlobalView Global
MidiTracks ToggleEnableLastTouchedFXParamMapping
Inputs ToggleEnableFocusedFXMapping
AudioTracks ToggleScrollLink
AudioInstrument GoZone SelectedTrackFX
Aux ClearSelectedTrackFX
Busses GoZone SelectedTrackTCPFX
Outputs Reaper 41827 // Show crossfade editor window
User Reaper 42678 // View: Show envelope manager window
// Function Buttons
F1 Reaper 40605 // Show Actions List
F2 Reaper 40271 // Show FX Browser window
F3 Reaper 40078 // Toggle Mixer visible
F4 Reaper 41157 // Show project bay window
F5 Reaper 50124 // Media explorer: Show/hide media explorer
F6 Reaper 40906 // Show track manager window
F7 Reaper 40268 // Show navigator window
F8 Reaper 41050 // Toggle show master track and tempo envelope
// Modifiers
Flip Flip
Shift Shift
Option Option
Control Control
Alt Alt
// Automation Buttonsg
Read TrackAutoMode 1
Write TrackAutoMode 3
Trim TrackAutoMode 0
Touch TrackAutoMode 2
Latch TrackAutoMode 4
Group TrackAutoMode 5
Global+Read GlobalAutoMode 1
Global+Write GlobalAutoMode 3
Global+Trim GlobalAutoMode 0
Global+Touch GlobalAutoMode 2
Global+Latch GlobalAutoMode 4
Global+Group GlobalAutoMode 5
// Utility Buttons
Save SaveProject Feedback=No
Undo Undo Feedback=No
Shift+Undo Redo Feedback=No
Option+Undo Reaper 40072 // View: Show undo history window
Cancel ClearModifiers
Enter Reaper 40021 // File: Project settings...
// Transport Section
Marker Marker
Nudge Nudge
Cycle CycleTimeline
Drop Reaper 1157 // Toggle snapping
Replace Reaper 1155 // Cycle ripple editing mode
Click Reaper 40364 // Toggle metronome
Shift+Click Reaper _SWS_AWCOUNTRECTOG // Toggle count-in before recording
Option+Click Reaper 40363 // Show metronome settings
Rewind Rewind
FastForward FastForward
Stop Stop
Hold+Stop Reaper 40042 Feedback=No // Go to start of project
Play Play
Record Record
Solo ClearAllSolo
Option+Solo Reaper 40745 // Solo in front (dim solo)
// Banking
BankLeft Bank Track -8
BankLeft Bank SelectedTrack -8
BankRight Bank Track 8
BankRight Bank SelectedTrack 8
ChannelLeft Bank Track -1
ChannelLeft Bank SelectedTrack -1
ChannelRight Bank Track 1
ChannelRight Bank SelectedTrack 1
Shift+ChannelLeft Bank Track -999
Shift+ChannelLeft Bank SelectedTrack -999
Shift+ChannelRight Bank Track 999
Shift+ChannelRight Bank SelectedTrack 999
// Navigation and Zoom
Zoom Zoom
Up Reaper _XENAKIOS_TVPAGEUP // Xenakios/SWS: Scroll track view up (page)
Down Reaper _XENAKIOS_TVPAGEDOWN // Xenakios-SWS: Scroll track view down
Left Reaper 40842 // Move edit cursor back one beat (no seek)
Right Reaper 40841 // Move edit cursor forward one beat (no seek)
Zoom+Up Reaper 40111 // Zoom in vertical
Zoom+Down Reaper 40112 // Zoom out vertical
Zoom+Right Reaper 1012 // Zoom in horizontal
Zoom+Left Reaper 1011 // Zoom out horizontal
Marker+Up Reaper 40613 // Delete marker near cursor
Marker+Down Reaper 40157 // Insert marker at current or edit position
Marker+Right Reaper 40173 // Go to next marker or project end
Marker+Left Reaper 40172 // Go to previous marker or project start
Nudge+Up Reaper 41925 // Item: Nudge items volume +1dB
Nudge+Down Reaper 41924 // Item: Nudge items volume -1dB
Nudge+Left Reaper 41279 // Item edit: Nudge left by saved nudge dialog settings 1
Nudge+Right Reaper 41275 // Item edit: Nudge right by saved nudge dialog settings 1
Scrub Scrub
// JogWheel
Decrease+JogWheel MoveEditCursor Bar
Increase+JogWheel MoveEditCustor Bar
Shift+Decrease+JogWheel Reaper 40286 // Track: Go to previous track
Shift+Increase+JogWheel Reaper 40285 // Track: Go to next track
Zoom+Decrease+JogWheel Reaper 40112 // Zoom out vertical
Zoom+Increase+JogWheel Reaper 40111 // Zoom in vertical
Zoom+Shift+Decrease+JogWheel Reaper 1011 // Zoom out horizontal
Zoom+Shift+Increase+JogWheel Reaper 1012 // Zoom in horizontal
Marker+Decrease+JogWheel MoveEditCursor Marker
Marker+Increase+JogWheel MoveEditCusror Marker
Scrub+Decrease+Jogwheel Reaper 40084 // Transport: Rewind a little bit
Scrub+Increase+Jogwheel Reaper 40085 // Transport: Fast forward a little bit
// Footswitches
Footswitch1 Reaper 40003 // Transport: Start/stop recording at next measure
Footswitch2 Reaper 40328 // Transport: Play/stop (move edit cursor on stop)
ZoneEnd
GoZones
GoZones are predefined zones with specific purposes, such as controlling track sends, receives, or FX menus. Place all of your GoZones that are not part of your HomeZones within the CSI\GoZone folder.
Any GoZones must be defined within a GoZones.zon file, that exists in your GoZones folder.
Zone GoZones
SelectedTracks
SelectedTrackSend
SelectedTrackReceive
SelectedTrackFXMenu
MasterTrackFXMen
TrackSend
TrackReceive
TrackFXMenu
VCA
Folder
SelectedTrackTCPFX
ZoneEnd
Activating Zones
To activate zones, use the appropriate CSI actions. Predefined zones have dedicated actions for quick activation. Custom zones can be activated using similar actions defined within your configuration.
Zone you want to activiate... ActionName...
Home GoHome
SelectedTrackFXMenu GoZone SelectedTrackFXMenu
SelectedTrackSend GoZone SelectedTrackSend
SelectedTrackReceive GoZone SelectedTrackReceive
TrackFXMenu GoZone TrackFXMenu
TrackReceive GoZone TrackReceive
TrackSend GoZone TrackSend
MasterTrackFXMenu GoZone MasterTrackFXMenu
SelectedTrackTCPFX GoZone SelectedTrackTCPFX
SelectedTrackFX GoZone SelectedTrackFX
LearnFocusedFX LearnFocusedFX
Custom Zones
You can create custom zones in CSI for whatever purposes you'd like. Custom zones can have any name, and must be defined in your GoZones.zon. Note: the Zone name can contain spaces, however, if it does, the name must be wrapped in quotes.
Zone GoZones
SelectedTracks
SelectedTrackSend
SelectedTrackReceive
SelectedTrackFXMenu
MasterTrackFXMenu
TrackSend
TrackReceive
TrackFXMenu
VCA
Folder
SelectedTrackTCPFX
"Custom Zoom" SelectedTrackNavigator
Trackzone_alternate TrackNavigator
ZoneEnd
In addition, Custom zones allow you to choose the "Navigator Type" you'd like to use for that zone. A Navigator defines the context (Track, SelectedTrack, SelectedTrackSends, etc.) that the Custom zone will operate in the context of. For instance, you could have an alternate Track zone that operates in the same "Track" context but has completely different assignments.
Don't forget to create GoZone assignments to activate these zones.
F7 GoZone "Custom Zoom"
F8 GoZone Trackzone_Alternate
The available Navigator types for custom zones are:
TrackNavigator
MasterTrackNavigator
SelectedTrackNavigator
FocusedFXNavigator
FX Zones
FX Zones are covered extensively in the FX Zones portion of the documentation.
SubZones
SubZones are custom zones that can be called up from their parent zone. If your SubZone name includes a space, wrapping the name in quotes is required (e.g. if your zone name is "Mix Zone"), however, it's a common CSI practice to include quotes in all zone names, though technically not required.
First, the SubZones need to be defined and within the parent zone (lines 2-4 below). You also need a way to activate the SubZone using the GoSubZone action (in this case, the Zoom button). Here is one example where a "Zoom" subzone is being called from the Home.zon:
Zone Home
IncludedZones
Track
MasterTrack
IncludedZonesEnd
SubZones
Zoom
SubZonesEnd
Zoom GoSubZone Zoom
ZoneEnd
The SubZone itself would look like any other standalone .zon file. Below is our Zoom.zon example. 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 and assign that to the LeaveSubZone action in order for it to behave like a toggle.
Zone Zoom
Up Reaper 40111 // Zoom in vertical
Down Reaper 40112 // Zoom out vertical
Left Reaper 1011 // Zoom out horizontal
Right Reaper 1012 // Zoom in horizontal
Shift+Up Reaper 40113 // View: Toggle track zoom to maximum height
Shift+Down Reaper 40110 // View: Toggle track zoom to minimum height
Shift+Left Reaper 40295 // View: Zoom out project
Shift+Right Reaper 41190 // View: Set horizontal zoom to default project setting
Zoom LeaveSubZone
ZoneEnd
If you have multiple SubZones, you can go directly from SubZone to SubZone, as long as each SubZone is contained within the same enclosing Zone. Example: you can have "Zoom", "Marker", and "Scroll" SubZones, and navigate directly from SubZone to SubZone without needing to return home.
SubZones are also commonly used in FX, for example, where a mastering suite plugin may have lots of different sections and more automation than you have on your surface. In those instances, you could create a "compressor" SubZone, and a "limiter" SubZone, etc. See FX SubZones for more information.
Home and Track Zone Examples
Putting some of these concepts together, a common surface setup might include a Home.zon that has various CSI and Reaper actions that can be called up from the surface. Some of these buttons may even call other zones. Here's what a typical home.zon might look like for reference:
Zone Home
OnInitialization ToggleRestrictTextLength 7
OnInitialization ToggleEnableFocusedFXMapping
OnInitialization SetLatchTime 100
IncludedZones
Track
MasterTrack
IncludedZonesEnd
// Encoder Assign Buttons
Track ClearModifiers
Track GoHome
Track DisableLastTouchedFXParamMapping Feedback=No
Global+Track GoZone SelectedTracks
Pan GoZone Folder
Global+Pan GoZone VCA
EQ GoZone SelectedTrackReceive
Global+EQ GoZone TrackReceive
Send GoZone SelectedTrackSend
Global+Send GoZone TrackSend
Plugin GoZone SelectedTrackFXMenu
Global+Plugin GoZone TracGoSelectedTrackFXkFXMenu
Instrument LearnFocusedFX
// Display Section
nameValue Reaper 40696 // Track: Rename last touched track
AssignmentDisplay GlobalModeDisplay
TimeDisplay MCUTimeDisplay
smpteBeats CycleTimeDisplayModes
// View Buttons
GlobalView Global
MidiTracks ClearModifiers
MidiTracks AllSurfacesGoHome
MidiTracks Reaper _S&M_WNCLS4 // Closes all(!) FX chain windows
MidiTracks Reaper _S&M_WNCLS3 // Closes all(!) floating FX windows
Inputs GoZone SelectedTrackTCPFX
AudioTracks GoZone MasterTrackFXMenu
AudioInstrument ToggleEnableFocusedFXMapping
Aux ToggleEnableLastTouchedFXParamMapping
Busses ToggleScrollLink
Outputs GoSelectedTrackFX
User ClearSelectedTrackFX
// Function Buttons
F1 Reaper 40454 // Screenset 1
F2 Reaper 40455 // Screenset 2
F3 Reaper 40456 // Screenset 3
F4 Reaper 40457 // Screenset 4
F5 Reaper 40021 // File: Project settings..
F6 Reaper 43466 // Item Edit: Phase alignment
F7 Reaper 40293 // Track: View routing and I/O for current/last touched track
F8 Reaper 40327 // View: Show track group manager window
// Modifiers
Flip Flip
Shift Shift
Option Option
Control Control
Alt Alt
// Automation Buttons
Read TrackAutoMode 1
Write TrackAutoMode 3
Trim TrackAutoMode 0
Touch TrackAutoMode 2
Latch TrackAutoMode 4
Group TrackAutoMode 5
Global+Read GlobalAutoMode 1
Global+Write GlobalAutoMode 3
Global+Trim GlobalAutoMode 0
Global+Touch GlobalAutoMode 2
Global+Latch GlobalAutoMode 4
Global+Group GlobalAutoMode 5
// Utility Buttons
Save SaveProject
Undo Undo
Hold+Undo Reaper 40072 NoFeedback // View: Show undo history window
Shift+Undo Redo
Cancel NoAction
Enter NoAction
// Transport Section
Marker Marker
Nudge Nudge
Cycle CycleTimeline
Drop Reaper 1157 // Toggle snapping
Replace Reaper 1155 // Cycle ripple editing mode
Click Reaper 40364 // Toggle metronome
Shift+Click Reaper _SWS_AWCOUNTRECTOG NoFeedback // Toggle count-in before recording
Hold+Click Reaper 40363 NoFeedback // Show metronome settings
Rewind Rewind
FastForward FastForward
Stop Stop
Hold+Stop Reaper 40042 NoFeedback // Go to start of project
Play Play
Record Record
Solo ClearAllSolo
Option+Solo Reaper 40745 // Solo in front (dim solo)
// Banking
BankLeft Bank Track -8
BankRight Bank Track 8
ChannelLeft Bank Track -1
ChannelRight Bank Track 1
// Navigation and Zoom
Zoom Zoom
Up Reaper _XENAKIOS_TVPAGEUP // Xenakios/SWS: Scroll track view up (page)
Down Reaper _XENAKIOS_TVPAGEDOWN // Xenakios-SWS: Scroll track view down
Left Reaper _SWS_SCROLL_L10 // SWS: Scroll left 10%
Right Reaper _SWS_SCROLL_R10 // SWS: Scroll right 10%
Zoom+Up Reaper 40111 // Zoom in vertical
Zoom+Down Reaper 40112 // Zoom out vertical
Zoom+Right Reaper 1012 // Zoom in horizontal
Zoom+Left Reaper 1011 // Zoom out horizontal
Marker+Up Reaper 40613 // Delete marker near cursor
Marker+Down Reaper 40157 // Insert marker at current or edit position
Marker+Right Reaper 40173 // Go to next marker or project end
Marker+Left Reaper 40172 // Go to previous marker or project start
Nudge+Up Reaper 41925 // Item: Nudge items volume +1dB
Nudge+Down Reaper 41924 // Item: Nudge items volume -1dB
Nudge+Left Reaper 41279 // Item edit: Nudge left by saved nudge dialog settings 1
Nudge+Right Reaper 41275 // Item edit: Nudge right by saved nudge dialog settings 1
// JogWheel
Decrease+JogWheel Reaper 40840 // Move edit cursor back one measure (no seek)
Increase+JogWheel Reaper 40839 // Move edit cursor forward one measure (no seek)
Shift+Decrease+JogWheel Reaper 40286 // Track: Go to previous track
Shift+Increase+JogWheel Reaper 40285 // Track: Go to next track
Option+Decrease+JogWheel Reaper 40172 // Go to previous marker or project start
Option+Increase+JogWheel Reaper 40173 // Go to next marker or project end
ZoneEnd
As another example, this is what a typical track.zon may look like
Zone Track
VUMeter| TrackOutputMeterMaxPeakLR
DisplayUpper| TrackNameDisplay
Fader| TrackVolume
Touch+DisplayLower| TrackVolumeDisplay
Flip+Fader| TrackPan
Rotary| TrackPanAutoLeft RingStyle=Dot // Pan
Toggle+Rotary| TrackPanAutoRight RingStyle=Dot // Width
DisplayLower| TrackPanAutoLeftDisplay
Toggle+DisplayLower| TrackPanAutoRightDisplay
RotaryPush| ToggleChannel
Control+RotaryPush| TrackPan [ 0.5 ]
Option+RotaryPush| TrackPanWidth [ 1.0 ]
RecordArm| TrackRecordArm
Option+RecordArm| CycleTrackAutoMode
Option+DisplayLower| TrackAutoModeDisplay
Alt+RecordArm| TrackInvertPolarity
Alt+DisplayLower| TrackInvertPolarityDisplay
// For recording -- latch Alt modifier
Alt+Option+RotaryPush| CycleTrackInputMonitor
Alt+Option+DisplayLower| TrackInputMonitorDisplay
Alt+Control+DisplayLower| TrackRecordInputDisplay
Solo| TrackSolo
Mute| TrackMute
Select| TrackUniqueSelect
Shift+Select| TrackRangeSelect
Control+Select| TrackSelect
ZoneEnd
Using the Pipe "|" Character
The pipe (|
) character is a shorthand notation used in CSI to automatically expand assignments across multiple channels. This is particularly useful for multi-channel control surfaces where a single definition should apply to multiple widgets.
How the Pipe Works
For example, the following definition in a .zon
file:
Fader| TrackVolume
CSI will internally expand that to multiple zones for...
Fader1 TrackVolume
Fader2 TrackVolume
Fader3 TrackVolume
Fader4 TrackVolume
Fader5 TrackVolume
Fader6 TrackVolume
Fader7 TrackVolume
Fader8 TrackVolume
This ensures that each fader on an 8-channel surface automatically maps to its corresponding track volume.
When to Use the Pipe Character
The pipe character should only be used in contexts where CSI dynamically generates multiple Zones. Some examples include:
- Track (expands to
Track1
,Track2
, etc.) - SelectedTracks
- TrackFXMenu/SelectedTrackFXMenu
- TrackSend/SelectedTrackSend
- TrackReceive/SelectedTrackReceive
- Folder/VCA
These contexts create multiple instances of a Zone, so using |
allows a single definition to apply across all of them.
When NOT to Use the Pipe Character
For Zones that are not automatically expanded into multiple instances (e.g., SelectedTrack
, FX zones
), the pipe should not be used. In these cases, each widget should be explicitly defined.
Adding Comments to Zones
When triggering custom actions or using actions whose meanings may otherwise not be obvious, it's a good idea to add comments to your in your .zon files. CSI allows for two types of comments:
- / Lines that begin with a forward slash are completely ignored by CSI and are good for commenting sections of code. Hint: these also work in
surface.txt
files. - // Trailing comments are preceeded by two forward slashes and can be used after an action in a .zon file
Here is an example from a .zon file that uses both types of comments.
Zone Home
/ Using the GlobalView button to activate the Home zone and then run the actions to close the floating FX windows.
GlobalView GoHome
GlobalView Reaper _S&M_WNCLS3 // Close all floating FX windows
GlobalView Reaper _S&M_WNCLS4 // Close all FX chain windows
GlobalView Reaper _S&M_TOGLFXCHAIN // Toggle FX Chain for selected tracks