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:

  1. General Properties: These properties work across various devices and surfaces.
  2. SCE-24-Specific Properties: Properties specific to the Sinicon SCE-24 surface.
  3. FaderPort8/16-Specific Properties: Properties specific to the Presonus FaderPort 8 and 16 surfaces.

Table of Contents

  1. General Widget Properties
  2. SCE24 Properties
  3. FaderPort8/16 Properties

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 Display Modes

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