Widget Properties - FunkybotsEvilTwin/CSIUserGuide GitHub Wiki
Introduction to Widget Properties
Widget Properties are used to send additional, specific instructions to a widget. These properties are defined in Zone files and appear after, but on the same row as, the action. The syntax for defining widget properties is [PropertyName]=[PropertyValue]
.
For example, on an MCU-style device, you can set the feedback of a rotary encoder to vary between modes such as Dot, BoostCut, Fill, and Spread. Alternatively, you can disable feedback for a particular action.
Widget Properties can be surface-specific, meaning some properties only apply to certain devices or surfaces. Others work across multiple surfaces and feedback processor types. This page organizes the properties into three categories:
- General Properties: These properties work across various devices and surfaces.
- SCE-24-Specific Properties: Properties specific to the Sinicon SCE-24 surface.
- FaderPort8/16-Specific Properties: Properties specific to the Presonus FaderPort 8 and 16 surfaces.
Table of Contents
General Widget Properties
The properties outlined in this section are not specific or unique to any one surface.
Feedback
CSI automatically provides feedback for all actions by default. However, there may be situations where you want to disable feedback. For example, if you have a button that stays lit continuously because the action does not report a toggle state, disabling feedback would prevent that. Additionally, you may want CSI to report the feedback state for actions beyond just the first action in a macro list.
We can use the Feedback
property to control the feedback behavior.
Example 1: Disabling feedback for a single action
If you have a single action assigned to a widget but want to disable feedback for that action:
SomeButton SomeAction Feedback=No
Example 2: Feedback only on the first action
If you want feedback only on the first action, you can disable feedback for the subsequent actions:
SomeButton SomeAction
SomeButton AnotherAction Feedback=No
SomeButton YetAnotherAction Feedback=No
Example 3: Feedback only on the middle action
If you want feedback on the middle action only, use the Feedback
property to disable feedback for the others:
SomeButton SomeAction Feedback=No
SomeButton AnotherAction
SomeButton YetAnotherAction Feedback=No
Example 4: Feedback only on the last action
If you want feedback on the last action only, disable feedback for the earlier actions:
SomeButton SomeAction Feedback=No
SomeButton AnotherAction Feedback=No
SomeButton YetAnotherAction
Example 5: HoldDelay Actions
As a general rule of thumb, feedback should also be disabled for HoldDelay actions as shown in the below example:
Stop Stop
Stop Reaper 40042 HoldDelay=1000 Feedback=No // Go to start of project
RingStyle
The RingStyle
property defines the visual feedback behavior of "encoder rings" based on the assigned parameter's value. The available RingStyle options are:
- Dot: A single dot appears on the ring to indicate the current value.
- BoostCut: The encoder ring will fill to the left or right of the center line, depending on the value.
- Fill: The ring will be progressively filled from low to high values.
- Spread: The ring will fill outward from the center in both directions.
Rotary| TrackPan RingStyle=Dot
DisplayLower| TrackPanDisplay
Toggle+Rotary| TrackPanWidth RingStyle=BoostCut
Toggle+DisplayLower| TrackPanWidthDisplay
HoldDelay
HoldDelay
replaces the legacy Hold
modifier and SetHoldTime
action. This property allows you to define hold durations per assignment, enabling more flexible behavior. When using HoldDelay
, the first action will fire on button press, and the second action will trigger after the specified delay (in milliseconds).
Important: For HoldDelay
to function properly, your surface must send both press and release messages for the button. Additionally, you must use Feedback=No
on the delayed action to avoid button flicker or feedback glitches.
Example: Pressing and holding the Select button will immediately trigger TrackUniqueSelect
, and after 1 second (1000 ms), TrackToggleFolderSpill
will fire.
Zone Folder
Select| TrackUniqueSelect
Select| TrackToggleFolderSpill HoldDelay=1000 Feedback=No
HoldRepeatInterval
HoldRepeatInterval
allows an action to repeat continuously while a button is held, based on a specified interval in milliseconds.
Example: Holding the F1 button will repeatedly nudge the volume up every 100ms, while F2 nudges it down.
F1 Reaper _XENAKIOS_NUDGSELTKVOLUP HoldRepeatInterval=100
F2 Reaper _XENAKIOS_NUDGSELTKVOLDOWN HoldRepeatInterval=100
Note: The minimum (fastest) interval is 30 ms. Use higher values (e.g. 100–200 ms) for more controlled repetition depending on your surface responsiveness.
SCE24 Properties
The properties outlined in this section are specific to the Sinicon SCE-24.
SCE24 LED Button Properties
Used with FB_SCE24LEDButton
to control LED button behavior.
Properties
-
OffColor
Specifies the color of the LED button when it is in the "Off" state.
Example:OffColor=#00000000
(fully transparent) -
OnColor
Specifies the color of the LED button when it is in the "On" state.
Example:OnColor=#2f0f0000
(semi-transparent red)
LEDButton1 Shift OnColor=#2f0f0000 OffColor=#00000000
LEDButton2 Option OnColor=#2f0f0000 OffColor=#00000000
LEDButton3 Control OnColor=#2f0f0000 OffColor=#00000000
LEDButton4 Alt OnColor=#2f0f0000 OffColor=#00000000
SCE24 OLED Button Properties
Used with FB_SCE24OLEDButton
to define the text, margins, fonts, and colors for OLED button displays.
Properties
-
DisplayText
Sets the text displayed on the OLED screen.
Example:DisplayText=STOP
-
TopMargin
Adjusts the top margin (in pixels) of the displayed text.
Example:TopMargin=0
-
BottomMargin
Adjusts the bottom margin (in pixels) of the displayed text.
Example:BottomMargin=63
-
Font
Specifies the font size used for the text.
Example:Font=6
-
TextColorOff
Specifies the color of the text when the OLED button is "Off."
Example:TextColorOff=#ffffffff
(white) -
TextColorOn
Specifies the color of the text when the OLED button is "On."
Example:TextColorOn=#0000ff00
(green) -
BackgroundColorOff
Specifies the background color when the OLED button is "Off."
Example:BackgroundColorOff=#000000ff
(blue) -
BackgroundColorOn
Specifies the background color when the OLED button is "On."
Example:BackgroundColorOn=#ffff0000
(red)
Zone Home
OLEDButton1 Stop
OLEDButtonDisplay11 Stop DisplayText=STOP TopMargin=0 BottomMargin=63 Font=6 TextColorOn=#0000ff00 BackgroundColorOn=#ffff0000 TextColorOff=#ffffffff BackgroundColorOff=#000000ff
OLEDButtonDisplay21 NoAction
OLEDButtonDisplay31 NoAction
OLEDButtonDisplay41 NoAction
SCE24 Encoder Properties
Used with FB_SCE24Encoder
to customize encoder functionality and LED rings.
Properties
-
RingStyle
Defines the LED ring style for the encoder.
Example:RingStyle=Fill
-
LEDRingColor
Specifies the color of the LED ring.
Example:LEDRingColor=#0000ffff
(blue) -
LEDRingColors
Allows a range of colors for multi-colored LED rings.
Example (one color):LEDRingColors=#0000ffff
Example (multiple colors):LEDRingColors="3-7-#00ff00ff+8-12-#ffff00ff+13-18-#ff0000ff"
One LED Ring Color...
Zone Track
RotaryA| TrackVolumeWithMeterAverageLR RingStyle=Fill LEDRingColor=#0000ffff
RotaryPushA| TrackVolume [ 0.716 ]
Multiple LED Ring Colors...
Zone Track
RotaryA| TrackVolumeWithMeterAverageLR RingStyle=Fill LEDRingColors="3-7-#00ff00ff+8-12-#ffff00ff+13-18-#ff0000ff"
RotaryPushA| TrackVolume [ 0.716 ]
SCE24 Encoder Display Properties
Used with FB_SCE24EncoderText
to control the text and appearance of encoder displays.
Properties
-
TopMargin
Adjusts the top margin (in pixels) of the displayed text.
Example:TopMargin=0
-
BottomMargin
Adjusts the bottom margin (in pixels) of the displayed text.
Example:BottomMargin=63
-
Font
Specifies the font size used for the text.
Example:Font=2
-
TextColor
Specifies the color of the text.
Example:TextColor=#ffffffff
(white) -
BackgroundColor
Specifies the background color for the encoder display.
Example:BackgroundColor=#000000ff
(blue)
Zone Track
Display1A| TrackNameDisplay TopMargin=0 BottomMargin=31 Font=2 TextColor=#ffffffff BackgroundColor=#000000ff
Display2A| TrackVolumeDisplay TopMargin=32 BottomMargin=63 Font=4 TextColor=#ffffffff BackgroundColor=#000000ff
Display3A| NoAction
Display4A| NoAction
RotaryA| TrackVolumeWithMeterAverageLR RingStyle=Fill LEDRingColor=#0000ffff PushColor=#003f00ff
RotaryPushA| TrackVolume [ 0.716 ]
FaderPort8/16 Properties
The properties described in this section are specific to the Faderport8 and Faderport16 displays.
FaderPort Scribble Strip Mode Properties
When using FB_FP8ScribbleStripMode, the following Mode
options are available:
Mode=0
Mode=1
Mode=2
Mode=3
Mode=4
Mode=5
Mode=6
Mode=7
Mode=8
Mode=9
Zone Track
ScribbleStripMode Mode=0 // default mode -> 3 lines + valuebar
ScribbleLine1_| TrackNameDisplay
ScribbleLine2_| TrackVolumeDisplay
ScribbleLine3_| NoAction
ScribbleLine4_| TrackPanDisplay
ValueBar| TrackPanAutoLeft BarStyle=BiPolar
Alt+ValueBar| TrackPanAutoRight BarStyle=Fill
Toggle+ValueBar| TrackPanAutoRight BarStyle=Fill
From the Faderport Owner's Manual:
FaderPort Value Bar Properties
When using the FB_FaderportValueBar, the following BarStyle
options are available:
BarStyle=Normal
BarStyle=BiPolar
BarStyle=Fill
BarStyle=Spread
Zone Track
ScribbleStripMode Mode=0 // default mode -> 3 lines + valuebar
ScribbleLine1_| TrackNameDisplay
ScribbleLine2_| TrackVolumeDisplay
ScribbleLine3_| NoAction
ScribbleLine4_| TrackPanDisplay
ValueBar| TrackPanAutoLeft BarStyle=BiPolar
Alt+ValueBar| TrackPanAutoRight BarStyle=Fill
Toggle+ValueBar| TrackPanAutoRight BarStyle=Fill
FaderPort Scribble Strip Text Properties
When using FB_FP8ScribbleLine1, FB_FP8ScribbleLine2, etc., the following text properties can be set:
-
TextAlign=Center
-
TextAlign=Left
-
TextAlign=Right
-
TextInvert=Yes
-
TextInvert=No
Zone Track
ScribbleStripMode Mode=0 // default mode -> 3 lines + valuebar
ScribbleLine1_| TrackNameDisplay TextAlign=Left
ScribbleLine2_| TrackVolumeDisplay TextAlign=Center
ScribbleLine3_| NoAction
ScribbleLine4_| TrackPanDisplay
ValueBar| TrackPanAutoLeft BarStyle=BiPolar
Alt+ValueBar| TrackPanAutoRight BarStyle=Fill
Toggle+ValueBar| TrackPanAutoRight BarStyle=Fill