10 ‐ Change Log - FunkybotsEvilTwin/CSIUserGuide GitHub Wiki
CSI v7 Change Log
This page documents the changes, updates, and improvements made to Control Surface Integrator (CSI) over time. Future releases will be added to this list as new versions are published
Update: August 1, 2025
SetXTouchDisplayColors Now Clear on Shutdown
Simple fix: the SetXTouchDisplayColors action now clears on shutdown. If you were in a Sends zone, for example, and Shutdown Reaper, you may have had Cyan linger on the displays after shutdown. That's now been resolved.
Contributor: Funkybot
MeterMode=MCU Always Uses Reduced MIDI Traffic
This change restores the "only send meter values on change" behavior for MeterMode=MCU, drastically cutting back on MIDI traffic.
Contributor: Funkybot
New: ClipDetection=Precise Property
If you’re using the MCUVUMeter
or QConMasterVUMeter
widgets, there’s a new ClipDetection=Precise
property. By default, fast transient peaks that cause a clip may not always be reported on the control surface. Enabling ClipDetection=Precise
gives you much more accurate clip detection.
Important Note: If you have Reaper’s Meter Preference for "Sticky Clip Indicators" enabled, this property will override it! Clip indicators will automatically clear.
Zone Track
VUMeter| TrackOutputMeterMaxPeakLR ClipDetection=Precise
Contributors: jrauber.av (concept), Roy, funkybot.
New Actions: TracksSolo, TracksMute, TracksRecordArm with 'Quick Group' Behavior
The standard CSI actions TrackSolo
, TrackMute
, and TrackRecordArm
affect only the channel where the action is triggered, regardless of track selection (can be thought of as "unique" behavior). These original actions are unchanged.
New plural actions, TracksSolo
, TracksMute
, and TracksRecordArm
, are available to replicate Reaper’s Quick Group behavior. Here’s how they work:
- If multiple tracks are selected and you trigger one of these actions on a selected track, all selected tracks will be soloed, muted, or armed together.
- If multiple tracks are selected but you trigger the action on a non-selected track, only that specific track is affected.
- This matches the way Quick Group works in Reaper for Faders and Pans.
You can assign these new actions as your main Solo/Mute/Arm controls, or use them on a modifier (e.g., with Shift) for more flexibility.
Example (Tracks variants as default):
Zone Track
RecordArm| TracksRecordArm
Shift+RecordArm| TrackRecordArm // Unique RecordArm
Solo| TracksSolo
Shift+Solo| TrackSolo // Unique Solo
Mute| TracksMute
Shift+Mute| TrackMute // Unique Mute
Or, you can maintain the existing behavior and assign the Tracks variants to a modifier:
Zone Track
RecordArm| TrackRecordArm // Unique RecordArm
Shift+RecordArm| TracksRecordArm
Solo| TrackSolo // Unique Solo
Shift+Solo| TracksSolo
Mute| TrackMute // Unique Mute
Shift+Mute| TracksMute
Contributor: Funkybot
New: iCON Display Feedback Processors with Color Support
CSI now includes full support for the iCON V1M control surface, which features color displays and two sets of display rows (Upper and Lower). The new FB_iCON_V1MDisplayUpper
and FB_iCON_V1MDisplayLower
feedback processors handle color updates for the Icon V1M. FB_iCON_V1XDisplayUpper
and FB_iCON_V1XDisplayLower
feedback processors exist for use on the iCON V1M Extender.
Also added support files for the iCon V1M and Extender.
Contributor: jrauber.av
Improved: Auto Track Coloring for XTouch, iCON, Asparion Surfaces
Previously, CSI only updated track colors for the XTouch, Asparion, and iCON surfaces when a zone was rebuilt, meaning color changes weren’t reflected in real-time. With this update, track colors are updated instantly as they change—no need to reload or change zones.
Contributor: Geoff.
Update: June 25, 2025
Improvement: MCU/X-Touch Meters
The MCU/X-Touch channel meter code has been improved. Expect better calibration with the MCU spec, and improved behavior with steady-state signals for a much better overall metering experience.
Contributor: Roy
Important Note:
This is designed so that it will be easy to adjust the mapping to the LEDs. Please test it out and post your experiences. For example: does the transition from green to orange happen too early, or does it feel right?
If sharing feedback or requesting tweaks: please let us know which surface you're using. There’s a chance we may calibrate differently for different surfaces via a property.
New Feature: DoublePress Modifier and SetDoublePressTime Action
DoublePress allows any button to respond to a double-press. The default double-press window is 400ms, but you can change this using the SetDoublePressTime action.
When using DoublePress, the first action always fires immediately on press, and the second action fires if the button is pressed again within the double-press window.
Contributor: gaabora
Example usage:
Zone Home
OnInitialization SetDoublePressTime 500 // if you want to change from 400ms default
Stop Stop
DoublePress+Stop Reaper 40042 Feedback=No // Go to start of project
New Feature: RunCount Property
Instead of duplicating a line multiple times in zone files to run an action repeatedly, you can now use the new RunCount property to specify how many times an action should run.
Contributor: gaabora
Example:
Zone Home
Shift+Up Reaper 41327 RunCount=5 // Increase selected track height a little (run 5 times)
Shift+Down Reaper 41328 RunCount=5 // Decrease selected track height a little (run 5 times)
Previously, this would have required five separate lines for each press:
Zone Home
Shift+Up Reaper 41327
Shift+Up Reaper 41327
Shift+Up Reaper 41327
Shift+Up Reaper 41327
Shift+Up Reaper 41327
Shift+Down Reaper 41328
Shift+Down Reaper 41328
Shift+Down Reaper 41328
Shift+Down Reaper 41328
Shift+Down Reaper 41328
New Feature: MoveEditCursor Beat Option
The MoveEditCursor action now supports a new Beat option, in addition to the existing Bar and Marker options.
Contributor: funkybot
Example:
Zone Home
JogWheel MoveEditCursor Bar
Option+JogWheel MoveEditCursor Beat // New
Marker+JogWheel MoveEditCursor Marker
Fix: Hold Actions on Mac
Hold actions, which stopped working in the last Exp build, have been fixed.
Contributor: gaabora
Debugging Code
Gaabora's added zone debugging code. If there are any typos in your zone files, legacy actions or properties, or incorrectly configured actions, you'll see a ReaConsole window pop up at launch advising you of the errors.
Do not ignore these, but rather, locate the error and correct it. Contributor: gaabora
HoldDelay and HoldRepeatInterval Properties Now Work Together
You can now combine the HoldDelay
Property with HoldRepeatInterval
interval property. Using both together will ensure that the HoldRepeatInterval waits for the HolDelay length before repeating the action. Contributor: gaabora
Fixes for legacy Hold Modifier and SetHoldTime
The Hold modifier was reintroduced, along with fixes for SetHoldTime. This is in addition to the HoldDelay property. Contributor: gaabora
Fix for SetLatchTime
SetLatchTime also received fixes. Contributor: gaabora
Zone Deactivation Fix
This fixes an issue where deactivation was running on all zones, not just the active ones. Contributor: gaabora
Fix for Reaper Crashes With Some Actions
The following actions should no longer crash Reaper. Instead, CSI should essentially silently reload itself after running these actions. Contributor: gaabora
Reaper 41743 // Refresh all surfaces
Reaper 40023 // Open new project
Reaper 40025 // Open project
Reaper 40860 // Close current project tab
Reaper 46000 // Insert track from template
New Actions: TrackSendStereoMonoDisplay and TrackReceiveStereoMonoDisplay
Welcome ZeeByeZon as a first-time contributor! These new actions will show stereo/mono state for sends/receives. Contributor: ZeeByeZon
Zone SelectedTrackSend
Shift+DisplayLower| TrackSendStereoMonoDisplay
Zone SelectedTrackReceive
Shift+DisplayLower| TrackReceiveStereoMonoDisplay
New Action: TrackRecordArmDisplay
And another display action from a first-time contributor, profittlich! This one will show the text "ARM" for any Record Armed tracks, or blank if not armed. Why do we need this when TrackRecordArm already displays the arm state? Some surfaces like the Faderport8/16 don't have dedicated Arm buttons with feedback, so this allows the information to at least be displayed as text. Contributor: profittlich
Zone Track
ScribbleStripMode Mode=0 // default mode -> 3 lines + valuebar
ScribbleLine1_| TrackNameDisplay
ScribbleLine2_| TrackVolumeDisplay
ScribbleLine3_| NoAction
ScribbleLine4_| TrackPanDisplay
Shift+ScribbleLine4_| TrackRecordArmDisplay
CLAP, AU, JSFXParam Format Mapping Improvements!
Migrated the TrackFX_Param API calls to the ParamNormalized calls. This should improve, or entirely resolve, issues when mapping stepped CLAP, AU, and JSFXparams. This should also resolve the issue with JSFXParams with negative values failing. Contributor: Funkybot
New Feature: Free Form Text in FX Learn
The Advanced Param Edit window has received a new Free Form Text box. This is useful for adding comments, color instructions, and/or properties (e.g. Feedback=No) to your FX Zones while learning. Contributor: Funkybot
Step Size = 1 now defaults to 0.5 (instead of 0.1)
If a Step Size of 1 is selected in the Learn window, the default value that gets written to the zone has changed from 0.1 to 0.5. In most cases, a Step Size of 1 indicates a user is trying to "Reset" a parameter assigned to a press widget, and in those instances, 0.5 is the most common value by far. Contributor: Funkybot
Minor Cosmetic Fixes
Minor cosmetic changes throughout.
Update: April 19, 2025
Linux Build
Thanks to Higgins, CSI now offers official support for Linux! A Linux-compatible build is now available for users running REAPER on Linux.
HoldDelay
Property Replaces SetHoldTime
and Hold+
Modifier
New Roy contributed a new HoldDelay
property that replaces the older Hold+
modifier and SetHoldTime
action.
This property allows you to define hold durations per assignment, enabling more flexible behavior.
Old (legacy) format:
Select| TrackUniqueSelect
Hold+Select| TrackToggleFolderSpill Feedback=No
New format using SetHoldDelay:
Select| TrackUniqueSelect
Select| TrackToggleFolderSpill HoldDelay=1000 Feedback=No
HoldRepeatInterval
Property for Repeating Actions When Held
New Roy also added HoldRepeatInterval
, which triggers an action repeatedly while a button is held. The interval is defined in milliseconds.
Example:
F1 Reaper _XENAKIOS_NUDGSELTKVOLUP HoldRepeatInterval=100 // Nudge track volume up
F2 Reaper _XENAKIOS_NUDGSELTKVOLDOWN HoldRepeatInterval=100 // Nudge track volume down
Note: Minimum (i.e. fastest) repeat interval is 30 ms.
Improved X-Touch Color Code
Higgins and Roy improved the internal logic for X-Touch LED color handling. This provides more accurate color mapping to match REAPER’s native track color scheme.
No zone changes are required.
Return of Intel Mac Support
Intel Mac support has been restored. Higgins resolved a compiler issue that had previously prevented Intel-compatible builds. CSI now works on both Apple Silicon and Intel Macs.
MIDI Fighter Twister LEDs No Longer Turn Off on Launch
The MIDI Fighter Twister no longer turns off its LED rings when CSI is initialized. This gives users more flexibility in retaining LED states on startup.
You can still manually turn off LEDs using SendMIDIMessage
if desired.
Minor Cosmetic Changes to OSC Setup Window
Fixed minor UI glitches including some cut-off text in the OSC configuration window.
Original Release: CSI v7
Surface.txt Files Replace .mst/.ost Files
- Older
.mst
and.ost
files are now replaced with surface.txt files. - All surface.txt files now reside inside a dedicated folder for each device.
- More details: surface.txt.
New Folder Structure
- The folder organization has been overhauled. Instead of separate Surfaces and Zones folders, everything is now inside:
Surfaces[DeviceName]\
- Inside each device folder:
- FXZones/ → FX parameter mappings
- HomeZones/ → Home zone configuration
- GoZones/ → Navigation zone mappings
.zon
files should be placed in their corresponding subfolders.- More details: Installation and Folder Structure.
GoZone Action Replaces GoAssociatedZone
- The
GoAssociatedZone
action is deprecated. - It has been replaced with
GoZone
. - Zone files must be updated accordingly.
- More details: Activating Zones.
GoZones.zon Introduced
- The old AssociatedZones/AssociatedZonesEnd syntax from the Home.zon has been removed.
- Instead, associated zones are now listed in a new GoZones.zon file.
- These should be placed inside the GoZones folder.
- More details:
- Home Zones
- GoZones.
Enhanced FX Learning
- FX Learn has been significantly improved.
- This replaces many manual mapping tasks and provides a better user experience.
- Advanced options were added for parameter steps, deltas, acceleration, as well color options and more for supported surfaces
- More details: Learn Mode.
Automap Deprecated
- The Automap feature has been removed.
- The improved FX Learn system is the recommended replacement.
LastTouchedFXParam Replaces FocusedFXParam
- The
FocusedFXParam
action has been renamed LastTouchedFXParam. - Zone files must be updated accordingly.
- More details:
- LastTouchedFXParam.
Buttons Now Included in Home Zones
- Recommended change: Buttons should now be added directly to the Home Zone instead of being an IncludedZone.
- Optional: The old method using IncludedZones still works.
New CSI.ini Format
- The csi.ini file format has been completely revised.
- Broadcast and Listen options have been modified.
- Users should reconfigure CSI devices from scratch.
Performance Enhancements & Code Rewrite
- Various under-the-hood improvements for better stability and efficiency.
- This is a complete rewrite of CSI.