Open Stage Control Changelog

What's new in Open Stage Control 1.26.2

Apr 3, 2024
  • Bug fixes:
  • User resources not loading when using an external browser
  • Advanced syntaxes resolution order issue
  • Advanced syntaxes:
  • Display an error in the console in some unsupported advanced syntaxes use cases

New in Open Stage Control 1.26.1 (Feb 22, 2024)

  • Bug fixes:
  • Mac: unable to show launcher windows when starting minimized

New in Open Stage Control 1.26.0 (Feb 21, 2024)

  • Bug fixes:
  • Scripting: getProp() now correctly returns a copy of the property if it is an object
  • Prevent infinite loop when loading widgets with complex inter-dependencies
  • Modal: layout issue on iOS 15+
  • Widgets:
  • Dropdown: allow resubmitting the same value
  • Switch: allow resubmitting the same value
  • Plot: missing logScaleX and logScaleY properties
  • Xy/multixy: add axisLock property; allow locking one the axis by holding Shift while dragging if axisLock is not set, bypasses it otherwise.
  • Knob/fader/range: add colorKnob property
  • Launcher:
  • On Mac, start hidden if Start minimized is set
  • Allow dropping files into file fields
  • Custom module:
  • Expose tcpServer to allow monitoring the state of tcp connections

New in Open Stage Control 1.25.7 (Jan 17, 2024)

  • Bug fixes:
  • Rare issue that made the last widget(s) in a container disappear when other widgets in the same container had a specific property dependency pattern
  • Remote control:
  • /EDIT* commands sent by a custom module are not affected by the server's read-only option anymore
  • Widgets:
  • Input: allow using a number in numeric to specify stepping value for mousewheel interaction
  • Root: add onPreload scripting property

New in Open Stage Control 1.25.6 (Nov 23, 2023)

  • Bug fixes:
  • Sliders: error when steps is an array
  • Scripting:
  • StateSet: add optional {send: false} flag

New in Open Stage Control 1.25.5 (Sep 13, 2023)

  • Changelog:
  • Bug fixes
  • Code editor: issue when middle clicking in the editor on linux
  • Code editor: modern js operators such as ** not recognized
  • Sliders: prevent error when steps is not a number, add auto mode for using ranges values as steps (it did not work before)
  • Pads, range: value not initialized as an array, causing errors in some cases
  • Modal: popup not closing when doubleTap is true

New in Open Stage Control 1.25.4 (Sep 6, 2023)

  • Bug fixes:
  • Custom module: receive() not passing boolean arguments properly
  • Fix --authentication on iOS clients
  • Editor:
  • Display current widget value in the value property's help modal

New in Open Stage Control 1.25.3 (Aug 22, 2023)

  • docs: update

New in Open Stage Control 1.25.2 (Jul 3, 2023)

  • Bug fixes:
  • textarea: escape key not restoring previous value
  • scripting: setFocus(id) not affecting textarea widgets
  • led, text, variable: value not synchronized between different clients
  • error when running from sources on Mac

New in Open Stage Control 1.25.1 (Jul 3, 2023)

  • Bug fixes:
  • textarea: escape key not restoring previous value
  • scripting: setFocus(id) not affecting textarea widgets
  • led, text, variable: value not synchronized between different clients
  • error when running from sources on Mac

New in Open Stage Control 1.25.0 (May 15, 2023)

  • bug fixes:
  • multixy: doubleTap not working on touch devices
  • button: x and y variables not passed to onValue when doubleTap is true on touch devices
  • advanced syntax: update issue with clones using their own value in their properties
  • client: minor keyboard shortcut issues
  • panel: mitigate client synchronization issue with scrollbars
  • widgets:
  • menu: add a background to menu items to help distinguish them
  • menu: merge different interaction modes into a single mode property
  • menu: add swipe mode
  • remote control:
  • /STATE/SET: add optional argument to prevent widgets from sending their value

New in Open Stage Control 1.24.0 (Apr 6, 2023)

  • bug fixes:
  • widgets: circular value feedback issues
  • editor: ctrl + e not working when hit multiple times without releasing ctrl
  • mobile: "prevent sleep" feature not working
  • widgets:
  • patchbay: add in, out and both modes to exclusive property
  • panel: replace verticalTabs property with tabsPosition (supports 4 directions)
  • custom module:
  • add optional errorCallback argument toloadJSON and saveJSON
  • server:
  • print multiple qrcodes if multiple network interfaces are available and prevent printing a qrcode for the localhost address
  • misc:
  • add linux rpm packages

New in Open Stage Control 1.23.0 (Mar 15, 2023)

  • Bug fixes:
  • LinkId not working between two encoder widgets
  • Fader: gradient breakpoints not positioned correctly
  • Canvas: onDraw() called twice when calling updateCanvas()
  • Midi:
  • Optional rpn/nrpn parsing as single messages
  • Widgets:
  • Keyboard: incoming values different than the off property are now interpreted as on
  • Editor:
  • When focusing the label property with F2, select all text in the text area
  • Preserve scroll position in code editor when validating
  • Display the id of selected widget in the inspector's header
  • Scripting:
  • Expose file browser (from the file widget) as a scripting function
  • Custom module:
  • Don't restrict file extension in loadJSON() and saveJSON functions
  • Misc:
  • Add polish locales (@ Manz4rk)
  • Add css classes to some notification popups to allow targetting them with css themes

New in Open Stage Control 1.22.0 (Jan 3, 2023)

  • Bug fixes:
  • Keyboard widget: linkId not working (unable to link 2 keyboard widgets)
  • Slides: issues with ranges containing decimal keys
  • Launcher:
  • Add menu options to show the qr code again
  • Mac: change "List MIDI devices" keyboard shortcut to Ctrl+m
  • Widgets:
  • Image: add support for special value "qrcode"
  • Misc:
  • Add german locales (@ Magnus Reichel)
  • Package file names changed to follow debian's convention
  • Add a cli option to disable the qr code (--no-qrcode)

New in Open Stage Control 1.21.0 (Nov 29, 2022)

  • Custom module: fix autoreload on nested submodules

New in Open Stage Control 1.20.0 (Nov 9, 2022)

  • Bug fixes:
  • Scripting: prevent some functions to be marked as undefined
  • Advanced syntaxes: ignores quotes around file path in IMPORT{}
  • Launcher:
  • Add Start minimized menu option
  • Misc:
  • Change noFocus client option behavior: the defalt client window now doesn't take the focus at all, even when a text input is clicked.
  • Colorize debug messages for sent and received osc/midi messages
  • Scripting:
  • Add setFocusable() function to change the focusability of the window on the fly (allows reenabling focus temporarely to interact with a text widget using a dedicated toggle button for example)
  • Add reload() function
  • Expose Navigator object with getNavigator()
  • Widgets:
  • Fragment: add fallback property

New in Open Stage Control 1.19.2 (Nov 1, 2022)

  • Bug fixes:
  • Regression breaking touch move events on desktop touchscreens

New in Open Stage Control 1.19.1 (Oct 31, 2022)

  • Bug fixes:
  • Editor zoom: adjust root widget size when zooming out

New in Open Stage Control 1.19.0 Beta 2 (Oct 28, 2022)

  • Changelog:
  • editor:
  • add keyboard shortcut "h" to hide selection and widget drag / resize handles while pressed
  • widgets:
  • add folder widget (flat container that doesn't affect layout)
  • input: add maxLength property
  • multixy: allow setting its own value from onValue script while touched
  • ui:
  • add a virtual onscreen keyboard for desktop clients (can be enabled from the clients main menu)
  • change local zoom (alt+scroll) behavior so that it only affect widgets and add scrollbars to navigate while zooming instead of following the mouse
  • server:
  • client-options: add virtualKeyboard option to enable virtual keyboard by default (desktop clients only)

New in Open Stage Control 1.19.0 Beta 0 (Oct 26, 2022)

  • editor:
  • add keyboard shortcut "h" to hide selection and widget drag / resize handles while pressed
  • widgets:
  • add folder widget (flat container that doesn't affect layout)
  • input: add maxLength property
  • ui:
  • add a virtual onscreen keyboard for desktop clients (can be enabled from the clients main menu)
  • change local zoom (alt+scroll) behavior so that it only affect widgets and add scrollbars to navigate while zooming instead of following the mouse
  • server:
  • client-options: add virtualKeyboard option to enable virtual keyboard by default (desktop clients only)

New in Open Stage Control 1.18.3 (Oct 23, 2022)

  • Bug fixes:
  • Button: regression in push mode (on value not passed to onValue script when triggered from another widget).
  • Button: decoupled push mode returning wrong value when activated from a widget script.

New in Open Stage Control 1.18.2 (Oct 23, 2022)

  • Bug fixes:
  • Canvas: onTouch not triggered on iOS when when event.force, event.altitudeAngle or event.azimuthAngle changes
  • Switch: interaction issue when value labels contain icons
  • Ios: attempt to fix rendering glitch when waking up after sleep

New in Open Stage Control 1.18.2 Beta 3 (Oct 22, 2022)

  • canvas: ios: different touch.force implementation

New in Open Stage Control 1.18.0 (Oct 19, 2022)

  • Bug fixes:
  • Client script source map not loading (helps providing useful error messages)
  • Widgets:
  • Button: add decoupled mode (toggle mode that only updates its state when it receives a value from osc/midi messages)
  • Button: add client option altTraversing to allow one-way response to traversing gestures for toggle buttons
  • Knob: add snap-alt mode (snap mode that allows jumping between range.min and range.max)
  • All: add borderRadius property
  • Scripting:
  • Add updateCanvas() function (forces a canvas widget to redraw)
  • Remote control:
  • /NOTIFY: if multiple arguments are provided, interpret the first one as the icon's name for the client notification
  • Server:
  • Client-options: add clientSync option to allow disabling client synchronization
  • Client-options: add altTraversing option
  • Editor:
  • Add F2 keyboard shortcut to bring label property input into view if selected widget has one

New in Open Stage Control 1.17.1 Beta 2 (Oct 17, 2022)

  • widgets:
  • button: add decoupled property (restrict visual feedback to values received from osc/midi messages)
  • canvas: iOS: trigger onTouch when event.force, event.altitudeAngle or event.azimuthAngle updates
  • scripting:
  • add updateCanvas() function (forces a canvas widget to redraw)
  • remote control:
  • /NOTIFY: if multiple arguments are provided, interpret the first one as the icon's name for the client notification
  • midi:
  • on Mac, name virtual ports after the device name to avoid confusion

New in Open Stage Control 1.17.1 Beta 0 (Oct 16, 2022)

  • widgets:
  • button: add decoupled property (restrict visual feedback to values received from osc/midi messages)
  • canvas: iOS: trigger onTouch when event.force, event.altitudeAngle or event.azimuthAngle updates
  • scripting:
  • add updateCanvas() function (forces a canvas widget to redraw)
  • remote control:
  • /NOTIFY: if multiple arguments are provided, interpret the first one as the icon's name for the client notification
  • midi:
  • on Mac, name virtual ports after the device name to avoid confusion

New in Open Stage Control 1.17.0 (Jul 4, 2022)

  • Bug fixes:
  • Editor: error when ctrl+clicking on a root's child
  • Range: multitouch interaction issue
  • Widget:
  • Knob / encoder: sensitivity and ctrl+drag gesture preserve circular mode behavior
  • Knob / encoder: snap mode now works like circular mode except for the touch start event (value can't jump from start to end anymore)
  • Patchbay: add exclusive option
  • Editor:
  • Allow interacting with a widget without selecting it by using the middle mouse button or by holding shift+win (shift+cmd on mac).

New in Open Stage Control 1.16.6 (Jun 8, 2022)

  • Bug fixes:
  • Visibility property update issues.

New in Open Stage Control 1.16.5 (Jun 2, 2022)

  • Bug fixes:
  • Modal: display issue when a modal receives the same value mutliple times
  • Patchbay: outputs property not handling object value properly
  • Server: resolution conflict between app files and user files
  • Widgets:
  • Patchbay: trigger onValue script when a connection changes
  • Misc:
  • Windows: allow accessing other drives than the default one (list drives when the file browser reaches the filesystem's root)

New in Open Stage Control 1.16.4 (Jun 1, 2022)

  • Bug fixes:
  • modal: display issue when a modal receives the same value mutliple times
  • patchbay: outputs property not handling object value properly
  • server: resolution conflict between app files and user files
  • Widgets:
  • patchbay: trigger onValue script when a connection changes
  • Misc:
  • windows: allow accessing other drives than the default one (list drives when the file browser reaches the filesystem's root)

New in Open Stage Control 1.16.3 (May 31, 2022)

  • Bug fixes:
  • Custom module: submodules not loading their own submodules with relative paths properly
  • Custom module: issue with circular submodule requires
  • Server: harmless error message when importing css files from the main theme file
  • Server: allow using folder names "client" and "assets" for user files (eg for images used in a session)
  • Widgets:
  • Canvas: add onResize script property
  • Scripting: expose javascript's Image constructor

New in Open Stage Control 1.16.2 (May 4, 2022)

  • Bug fixes:
  • Widget visibility not updated properly when set as a non-boolean value
  • Widgets:
  • Tabs: detach hidden tabs from the DOM (reduces lag caused by heavy tabs)

New in Open Stage Control 1.16.1 (May 1, 2022)

  • Bug fixes:
  • Eq widgets not properly converted when importing v0 sessions
  • Image paths with url queries not loaded properly
  • @{} syntax not returning truncated value according to the widget's precision property (fixed for primitive values only, object values are still returned as is)

New in Open Stage Control 1.16.0 (Apr 21, 2022)

  • Advanced syntaxes:
  • @{} and VAR{} do not return a copy of their value anymore as it may introduce a significant overhead when used extensively. Mutating these objects in #{} and JS{} scripts will now affect the actual values and should be avoided at all cost.
  • Widgets:
  • Comments property flagged as dynamic
  • Multixy: add doubleTap property

New in Open Stage Control 1.15.8 (Apr 9, 2022)

  • Bug fixes:
  • Range: value update issue (internal touch state not updated properly)
  • Scripting: send(): ignore ignoreDefaults property
  • Script: onKeyboard script not cleaned upon edition / removal
  • Editor: some variables not appearing as defined in onKeyboard

New in Open Stage Control 1.15.7 (Mar 31, 2022)

  • bug fixes:
  • matrix: property resolution issue with object/array items in props
  • bypass client option nofocus=1 when the editor is enabled
  • menu/dropdown: display label when value is undefined
  • misc:
  • updated midi bridge: provide more information when loading fails; may fix some compatibility issue on windows

New in Open Stage Control 1.15.6 (Mar 21, 2022)

  • Changelog:
  • Bug fixes
  • Ios: prevent server error related to the use of cookies
  • Scripting: getVar() now returns a copy of the variable to prevent mutations on saved object

New in Open Stage Control 1.15.5 (Mar 11, 2022)

  • bug fixes:
  • matrix: avanced property issue inprops property (bis)
  • editor:
  • inspector: add solo mode with alt+click for category panels

New in Open Stage Control 1.15.4 (Mar 3, 2022)

  • Bug fixes:
  • matrix: avanced property issue inprops property

New in Open Stage Control 1.15.3 (Mar 1, 2022)

  • Bug fixes:
  • interaction issue ("deadzone") on touch screens
  • main menu not hidden when read-only is set
  • osc messages containing unicode characters not encoded correctly

New in Open Stage Control 1.15.2 (Feb 27, 2022)

  • Bug fixes:
  • Modal: scroll state not restored when the modal container is recreated
  • Server: allow spaces and accentuated characters in client id

New in Open Stage Control 1.15.1 (Feb 26, 2022)

  • Bug fixes:
  • Prevent flickering on canvas based widgets when they are recreated
  • Editor:
  • Added code editor for html and css properties
  • Remote control:
  • Add /RELOAD command

New in Open Stage Control 1.15.0 (Feb 18, 2022)

  • Bug fixes:
  • editor: prevent accessing non-editable widgets with right arrow
  • multixy: regression causing interaction issue
  • Widgets:
  • add lock property to all widgets
  • Launcher:
  • add Autostart menu option
  • Misc:
  • update FontAwesome icon font to version 6

New in Open Stage Control 1.14.6 (Feb 10, 2022)

  • Bug fixes:
  • Inspector: script editor: cursor alignment issue in indented lines
  • Clone: prevent freeze and print an error when attempting to create a circular clone
  • Modal: regression on android that prevents focusing input widgets in modals

New in Open Stage Control 1.14.5 (Feb 8, 2022)

  • Bug fixes:
  • session loading error with some malformed property cases

New in Open Stage Control 1.14.4 (Feb 5, 2022)

  • bug fixes:
  • broken console interpreter since v1.14.0
  • widgets:
  • button: add momentary mode for sending messages with no value; prevent button from getting stuck when on and off are equal in momentary and tap modes
  • inspector:
  • color picker: inline picker widget (no longer in a modal); show color changes on the fly
  • code editor: validate input with cmd+enter instead of ctrl+enter on Mac
  • scripting:
  • screen.height and screen.width always returns the current screen dimensions
  • added screen.orientation global variable
  • misc:
  • some performance improvements

New in Open Stage Control 1.14.2 (Jan 22, 2022)

  • Bug fixes:
  • Context-menu: double click issue in submenus on small touch screens
  • Clone/fragment: broken onDraw / onTouch scripts if cloned widget is a canvas

New in Open Stage Control 1.14.1 (Jan 18, 2022)

  • Bug fixes:
  • misc: sending typed arguments ({type, value} objects) should override the widget's typeTags definition
  • multixy: errors when ephemeral is true
  • scripting: setVar not affecting all widgets when mutliple widgets match provided id
  • Widgets:
  • renamed script to onValue, draw to onDraw, touch to onTouch
  • added onCreate script property to all widgets
  • added onTouch script to widgets that supported the touch state variable in scripts (now deprecated)
  • script: added onKeyboard property, removed event property
  • canvas: expose additional touch event informations (radiusX, radiusY, rotationAngle and iOS-only altitudeAngle, azimuthAngle and touchType)
  • Scripting:
  • special keyword this now returns the string "this"
  • Advanced syntaxes:
  • added IMPORT{file} syntax to allow loading external files in properties
  • Editor:
  • add fullscreen mode for properties with code editor enabled

New in Open Stage Control 1.14.0 (Jan 17, 2022)

  • Bug fixes:
  • Misc: sending typed arguments ({type, value} objects) should override the widget's typeTags definition
  • Multixy: errors when ephemeral is true
  • Scripting: setVar not affecting all widgets when mutliple widgets match provided id
  • Widgets:
  • Renamed script to onValue, draw to onDraw, touch to onTouch
  • Added onCreate script property to all widgets
  • Added onTouch script to widgets that supported the touch state variable in scripts (now deprecated)
  • Script: added onKeyboard property, removed event property
  • Canvas: expose additional touch event informations (radiusX, radiusY, rotationAngle and iOS-only altitudeAngle, azimuthAngle and touchType)
  • Scripting:
  • Special keyword this now returns the string "this"
  • Advanced syntaxes:
  • Added IMPORT{file} syntax to allow loading external files in properties
  • Editor:
  • Add fullscreen mode for properties with code editor enabled

New in Open Stage Control 1.13.2 (Dec 22, 2021)

  • Bug fixes:
  • editor: keep relative sizes and positions when resizing multiple widgets at a time
  • Widgets:
  • canvas: expose touch pressure (as event.force) in the touch script.
  • canvas: expose touch events for extra elements added with the html propery

New in Open Stage Control 1.13.1 (Dec 19, 2021)

  • Bug fixes:
  • Editor: data loss when leaving the editor's focus with no modifications.

New in Open Stage Control 1.13.0 (Dec 18, 2021)

  • Bug fixes:
  • Scripting: storage.getItem() not returning anything
  • Editor:
  • New code editor for script, touch, draw and props properties with syntax hilighting, line numbers, etc
  • Scripting:
  • Set(): add an option to prevent target widget's script
  • Widgets:
  • Root: add hideMenu property
  • Misc:
  • Minor cosmetic changes

New in Open Stage Control 1.13.0 Beta 0 (Dec 15, 2021)

  • Bug fixes:
  • Scripting: storage.getItem() not returning anything
  • Editor:
  • New code editor for script, touch and draw properties with syntax hilighting, line numbers, etc
  • Scripting:
  • Set(): add an option to prevent target widget's script
  • Widgets:
  • Root: add hideMenu property
  • Misc:
  • Minor cosmetic changes

New in Open Stage Control 1.12.0 (Dec 6, 2021)

  • Widgets:
  • new canvas widget (under pads): allows creating custom widgets
  • button: expose normalized touch coordinates in scipts as locals.touchCoords
  • print a warning in the console when using advanced syntaxes in the script property

New in Open Stage Control 1.11.1 (Nov 20, 2021)

  • Bug fixes:
  • client options specified in server config not working unless lowercased
  • make disconnection detection less aggressive (don't display notification if reconnection succeeds quickly)
  • panel: initial scroll state issue

New in Open Stage Control 1.11.0 (Oct 27, 2021)

  • Bug fixes:
  • Menu: interaction issue on iOS
  • Script: prevent script functions from being called in the wrong scope (ie when leaked using the globals object) and print an explicit error
  • Containers: prevent errors with some color formats in colorWidget
  • Theme: relative url not resolved correctly
  • Widgets:
  • When a panel contains widgets and has scroll set to true, its value will be used to represent the scroll position for x-axis and y-axis between 0 and 1.

New in Open Stage Control 1.10.3 (Oct 7, 2021)

  • Bug fixes:
  • Config not persistent on windows
  • Misc:
  • Read-only mode now hides and disables the main menu

New in Open Stage Control 1.10.2 (Oct 3, 2021)

  • Bugg fixes:
  • Certificate expiration issue
  • Regression breaking colors in canvas-based widgets

New in Open Stage Control 1.10.0 (Sep 29, 2021)

  • Bug fixes:
  • sliders: ignore key order in range
  • sliders: handle mousewheel increment when starting from a value between two steps with steps property defined
  • inspector: allow scrolling in the help modal
  • console: fix command history behavior and increase history size
  • Widgets:
  • encoder: expose angle in script (as locals.angle)
  • new textarea widget (multi line input)
  • expose the computed dimensions of canvas-based widgets in css (as --widget-width and --widget-height) and script (as locals.width and locals.height)
  • Client:
  • add Save backup menu action (saves a backup copy of current session with an incremented suffix appended to the file name)

New in Open Stage Control 1.9.14 (Sep 14, 2021)

  • Bug fixes:
  • modal: remove html property
  • matrix: nested property inheritance (eg. @{id_@{id_x}}) not working in props

New in Open Stage Control 1.9.13 (Aug 26, 2021)

  • Bug fixes:
  • nested property inheritance (eg. @{id_@{id_x}}) not updating properly
  • canvas based widgets not updating when hidden

New in Open Stage Control 1.9.12 (Aug 5, 2021)

  • bug fixes:
  • client options: options ignored if not lowercased
  • sliders: prevent errors for some edge-case range values

New in Open Stage Control 1.9.11 (Jun 26, 2021)

  • Bug fixes:
  • Range: value not properly updated with set()
  • Misc:
  • (built-in client only) add nofocus client option to prevent the client window from taking focus unless a text input or a dropdown is clicked.

New in Open Stage Control 1.9.10 (Jun 12, 2021)

  • Bug fixes:
  • Matrix: regression from 1.9.8 (broken nested @{} syntax in props property)
  • Misc:
  • Midi: detect missing binary (eg when deleted by antivirus) and print a message

New in Open Stage Control 1.9.9 (Jun 4, 2021)

  • Bug fixes:
  • Matrix: regression from 1.9.8

New in Open Stage Control 1.9.8 (May 20, 2021)

  • Bug fixes:
  • Matrix: update children when props is modified even when the result for $ = 0 doesn't change
  • Fragments: fragment widgets empty when reloading
  • Panel: scrollbar issue on iOS 13+
  • Scripting:
  • Expose console.clear()

New in Open Stage Control 1.9.7 (May 9, 2021)

  • Bug fixes:
  • Issue when resizing widget using keyboard shortcuts
  • Advanced syntaxes (VAR{}): avoid storing default value as string if it can be parsed as a javascript primitive (boolean, number, etc)
  • Advanced syntaxes (VAR{}): ignore quotes around variable name
  • Editor:
  • Change keyboard shortcuts for moving widgets (now mod + arrows) and navigating in widgets (now arrows) to feel more natural with the project tree view.
  • Widgets:
  • Script: bypass keyboard shortcuts already used by the editor if it is enabled
  • Matrix: removed ambiguous start property
  • Matrix: advanced syntax blocks can be passed to children without being resolved at the matrix' scope by adding an underscore before the opening bracket
  • Text: add soft mode for the wrap property

New in Open Stage Control 1.9.6 (May 7, 2021)

  • Bug fixes:
  • Advanced syntaxes: VAR{} not updating when the default value is edited
  • Editor: fix "Bring to front" and "Send to back" context menu actions
  • UI:
  • Add keyboard shortcuts mod + "+" and mod + "-" to control zoom level
  • Widgets:
  • Input: add numeric property (allows numeric values only and displays numeric keyboard on mobile devices)
  • Button: add soft mode for the wrap property
  • Switch: add wrap property
  • Editor:
  • Display dropdown and checkbox for boolean properties with extra choices

New in Open Stage Control 1.9.5 (May 5, 2021)

  • Bug fixes:
  • advanced syntaxes: various isses and regressions
  • editor: preserve advanced syntaxes in left and top when pasting a widget
  • Editor:
  • tree: update widget visibility when it changes dynamically

New in Open Stage Control 1.9.3 (May 1, 2021)

  • Bug fixes:
  • Scripting: set() not working from a slider to a pad
  • Tabs not sending messages / triggering scripts when clicked in editing mode
  • Prevent hang with some syntax errors in advanced syntaxes
  • Don't show project tree if minimized when creating a new widget (1.9.2 regression)
  • Fix "ID + 1" paste for widgets with numeric ids
  • Dropdown: reset the underlying dropdown when the widget's value is undefined
  • Editor:
  • Tree: allow specifying multiple type filters
  • Tree: add "Show in session" context menu action

New in Open Stage Control 1.9.2 (Apr 28, 2021)

  • Bug fixes:
  • Visualizer: remove bars and dots option
  • Plot: fix bars option
  • Project tree: clear filter input when loading a session
  • Server: fix serving files from paths containing accents
  • Editor: keep editor open when loading a session
  • Menu: prevent clipping in container on iOS
  • Widgets:
  • Image: add pre defined values for size, position and repeat properties
  • Text: add vertical alignment choices to align
  • Editor:
  • Tree: add icons before widget ids depending on the category
  • Tree: activate tab when selecting it in the project tree
  • Tree: allow dragging widgets from a container to another
  • Tree: expand container when a new widget is created inside it
  • Tree: add support for filtering widgets by type (by typing type:fader for example)
  • Smarter shift+drag selection: allow selecting widgets in the area when the event started on the parent container
  • Select newly created widgets/tab except when copy-pasting
  • Remote control:
  • Add /STATE/SEND command

New in Open Stage Control 1.9.1 (Apr 23, 2021)

  • Bug fixes:
  • Button: allow writing strings like "1.0" in label without removing the decimals
  • Editor: use css variable --grid-width at startup and after disabling & enabling the grid
  • Launcher: regression preventing server halt when built-in client is closed manually beforehand
  • Scripting: prevent crash (built-in client only) when using the variable navigator
  • Widgets:
  • Menu/switch/dropdown: reset value to undefined when receiving a value that's not defined in values
  • Scripting:
  • Expose instance of navigator Clipboard as globals.clipboard
  • Midi:
  • Allow sending note off with velocity
  • Add option for receiving note off with velocity
  • Misc:
  • V0->v1 session conversion: remove JS{{}} in script property

New in Open Stage Control 1.9.0 (Apr 19, 2021)

  • Warning Sessions saved with this version will not open in older versions (sessions saved with older version will open in this version).
  • Bug fixes:
  • Remote-root option not applied on resources loaded by the client app (css images, etc)
  • Input: display issue when resizing the window
  • Launcher: cancel stopping the server when there are unsaved changes in the built-in client
  • Editor:
  • Context menu: add export action to export a widget as a fragment file
  • Show project tree if minimzed when clicking on "Show in tree"
  • Widget:
  • New fragment widgets (under containers): embedded session or fragment file with overridable properties.
  • Add comments property to all widgets
  • Launcher:
  • Add Always on top menu toggle

New in Open Stage Control 1.8.15 (Mar 28, 2021)

  • bug fixes:
  • editor: error when duplicating widget while if the clipboard is empty
  • ui: local zoom move issue when not in fullscreen
  • custom module: clearInterval() not working
  • regression breaking style attribute in html property
  • misc:
  • faster local zoom

New in Open Stage Control 1.8.14 (Mar 22, 2021)

  • Bug fixes:
  • Alt+shift+c not working when pressed before dragging
  • Incremental pasting issue with address property
  • Generate scrollbars for panels on iOS 13+
  • Fix scrolling on chrome for iOS 13+
  • Editor:
  • Add mod+d and mod+shift+d for duplicating widgets
  • Use a temporary clipboard when duplicating widgets
  • Misc:
  • Inspector: move script property to scripting category
  • Ui: minor style tweaks

New in Open Stage Control 1.8.13 (Mar 20, 2021)

  • widgets:
  • file: show save icon when mode is set to save
  • file: center icon when hidePath is set to true
  • sliders/pads: apply spring property dynamically
  • ui:
  • add alt+wheel for local zoom centered on cursor
  • editor:
  • add alt+c+drag and alt+shift+c+drag for duplicating dragged widgets

New in Open Stage Control 1.8.12 (Mar 11, 2021)

  • Bug fixes:
  • Project tree: filter input position issue when scrolling
  • Project tree:
  • Select range of contiguous widgets with shift + click
  • Misc:
  • Plot: remove unused filters property; fix description for rangeX and rangeY
  • Console: focus input when the console opens

New in Open Stage Control 1.8.11 (Mar 3, 2021)

  • Bug fixes:
  • Switch:
  • Widget not reacting at first touch when traversing is enabled on parent
  • Sliders: disable mousewheel when spring is enabled
  • Widgets:
  • Script: add once event mode
  • Encoder: remove spring property
  • Custom module:
  • Expose process global
  • Scripting:
  • Add openUrl function

New in Open Stage Control 1.8.10 (Mar 1, 2021)

  • bug fixes
  • modal: issues with children's visibility
  • console: allow multiple arguments in console.log()
  • launcher: add many keyboard shortcuts
  • client: add keyboard shortcuts for clearing the console
  • scripting
  • add setFocus function to focus an input widget programmatically
  • misc
  • add usePercents client option

New in Open Stage Control 1.8.9 (Feb 22, 2021)

  • Bug fixes:
  • Script: issue when using the options argument in set() (options leaked to subsequent set() calls in the script)
  • Multixy: decimals property not applied
  • Multixy: spring behavior not working until all points are released
  • Custom module: prevent require() from reading submodules files each time and instead return the object in memory

New in Open Stage Control 1.8.8 (Feb 18, 2021)

  • Launcher:
  • Add file browser button for the theme option and fix parsing path containing spaces if only one theme is set
  • Windows:
  • Remove ctrl+w shortcut for closing a window (use alt+f4 instead)

New in Open Stage Control 1.8.7 (Feb 14, 2021)

  • Midi:
  • Add active sensing messages support (received as sysex)
  • Remote control:
  • Restore /TABS command (for opening tabs by ids)
  • Widgets:
  • Encoder: expose rotation speed in script (as locals.speed)

New in Open Stage Control 1.8.6 (Feb 8, 2021)

  • Bug fixes:
  • Range: per-fader touch event not emitted properly
  • Rgb: fix spring property
  • Rgb: touch event not emitted

New in Open Stage Control 1.8.5 (Feb 7, 2021)

  • Bug fixes:
  • Midi: debug messages displayed as errors
  • Launcher: broken context menu

New in Open Stage Control 1.8.3 (Jan 17, 2021)

  • Changelog:
  • Bug fixes
  • Keyboard: allow note numbers up to 127
  • Server: return http 404 error when a user-requested resource is not found instead of keeping a pending request
  • Modal: visible property not applied correctly
  • Project tree:
  • Add an input for filtering displayed widget by id

New in Open Stage Control 1.8.2 (Jan 7, 2021)

  • Bug fixes:
  • Menu: allow manual line breaks ("n") in labels / values
  • Custom module: parsing issue when sending widget data using receive() (type attribute errouneously parsed as an osc typetag)
  • Widgets:
  • Html property: allow "href" attribute on "a" elements

New in Open Stage Control 1.8.1 (Dec 16, 2020)

  • Bug fixes:
  • Script: stops triggering osc messages under some circumstances

New in Open Stage Control 1.8.0 (Dec 16, 2020)

  • BUG FIXES:
  • project tree: layout issue with deeply nested widgets
  • ios 10.3 regression
  • file browser: layout issue with long paths
  • CUSTOM MODULE:
  • add nativeRequire function (allows loading native node modules or locally installed moduled)

New in Open Stage Control 1.7.8 (Dec 10, 2020)

  • Bug fixes:
  • Canvas-based widgets not drawn when placed in a modal while having a conditional visibility set
  • Text: missing decimals property
  • Clone: fix usage of osc listener syntax (acts as if clone has an address property set to auto)
  • Widgets:
  • Clone: make props property dynamic (avoid full widget rebuild when possible)
  • Misc:
  • Increase client console history size and allow changing it with client url options

New in Open Stage Control 1.7.7 (Dec 9, 2020)

  • Bug fixes:
  • (harmless) error raised when starting the server from the launcher with debug set to true
  • Editor:
  • Display/save color picked values with css rgba notation instead of hexadecimal
  • Widgets:
  • Modal: add ignoreTabs option (allows overflowing tab ancestors)
  • Menu: add ignoreTabs option

New in Open Stage Control 1.7.6 (Dec 9, 2020)

  • Changelog:
  • Bug fixes
  • (Harmless) error raised when starting the server from the launcher with debug set to true
  • Editor:
  • Display/save color picked values with css rgba notation instead of hexadecimal
  • Widgets:
  • Modal: add ignoreTabs option (allows overflowing tab ancestors)
  • Menu: add ignoreTabs option

New in Open Stage Control 1.7.5 (Dec 4, 2020)

  • Bug fixes:
  • Ios: cloned menu not displayed correctly
  • Engine: downgrade to fix startup issue on windows

New in Open Stage Control 1.7.4 (Dec 4, 2020)

  • Bug fixes
  • Editor: cloned dropdown and input widgets not opening when selected
  • Widgets: prevent value-stateless widgets (tap buttons, clone, scripts, html and svg) from sending a value for cross-client synchronization (leads to unexpected script execution) and exclude them from state saves
  • Input: apply decimals number before checking the value against the validation expression
  • Range: steps and dashed property not working; remove origin property

New in Open Stage Control 1.7.3 (Nov 23, 2020)

  • Bug fixes:
  • Custom module / theme: prevent reloading the module while the file is being written to
  • Server: if a theme is used, attempt to resolve image urls against the theme file's location
  • Modal/button: prevent error when label is updated
  • Widgets:
  • Encoder: add ticks property back

New in Open Stage Control 1.7.2 (Nov 20, 2020)

  • Bug fixes:
  • Editor: missing context menu (copy, paste) in inspector inputs
  • Widgets: osc listeners not resolving "auto" address
  • Cli: ELECTRON_RUN_AS_NODE headless mode not working without --no-gui option
  • Ios: clone widget not laid out properly in horizontal panels
  • Ui: missing vertical scrollbar when root's height overflows the workspace
  • Server: provide readable error when a file requested by the client file is not found
  • Tab: content not drawn when changing visible property
  • Matrix: addresses not generated property when matrix' address is auto
  • Custom module: hot reload cache issue on windows
  • UI:
  • Add console bottom panel with a simple script interpreter
  • Widgets:
  • Keyboard: add velocity property (allows mapping the touch coordinates between off (top) and on (bottom))
  • Input: add validation property (allows defining a regular expression that the value must match)
  • Modal: add relative position property
  • Midi:
  • Accept sending sysex strings without spaces between the bytes
  • Load prebuilt midi binary on 64bit linux/windows/osx
  • Add support for midi time code messages
  • Misc:
  • Sessions converted from v0 will use the widget's html property to display the former label property

New in Open Stage Control 1.7.1 (Nov 19, 2020)

  • Bug fixes:
  • Editor: missing context menu (copy, paste) in inspector inputs
  • Widgets: osc listeners not resolving "auto" address
  • Cli: ELECTRON_RUN_AS_NODE headless mode not working without --no-gui option
  • Ios: clone widget not laid out properly in horizontal panels
  • Ui: missing vertical scrollbar when root's height overflows the workspace
  • Server: provide readable error when a file requested by the client file is not found
  • Tab: content not drawn when changing visible property
  • Matrix: addresses not generated property when matrix' address is auto
  • UI:
  • Add console bottom panel with a simple script interpreter
  • Widgets:
  • Keyboard: add velocity property (allows mapping the touch coordinates between off (top) and on (bottom))
  • Input: add validation property (allows defining a regular expression that the value must match)
  • Modal: add relative position property
  • Midi:
  • Accept sending sysex strings without spaces between the bytes
  • Load prebuilt midi binary on 64bit linux/windows/osx
  • Add support for midi time code messages
  • Misc:
  • Sessions converted from v0 will use the widget's html property to display the former label property

New in Open Stage Control 1.7.0 Beta 2 (Nov 12, 2020)

  • Important change:
  • Prebuilt binaries are now supplied only for 64bit Linux/MacOs/Windows. Other platforms should use the node package or build it from sources.
  • MIDI support:
  • As of this version, packages except the node package are bundled with a midi binary that will be used whenever midi's path option is not set. It is no longer necessary to install python and python-rtmidi.
  • Bug fixes:
  • Missing context menu (copy, paste) in inspector inputs
  • Osc listeners not resolving "auto" address
  • ELECTRON_RUN_AS_NODE headless mode not working without --no-gui option
  • Ios: clone widget not laid out properly in horizontal panels
  • Editor:
  • Add console bottom panel
  • Widgets:
  • Keyboard: add velocity property (allows mapping the touch coordinates between off (top) and on (bottom))
  • Input: add validation property (allows defining a regular expression that the value must match)
  • Midi:
  • Accept sending sysex strings without spaces between the bytes
  • Load prebuilt midi binary on 64bit linux/windows/osx
  • Misc:
  • Sessions converted from v0 will use the widget's html property to display the former label property

New in Open Stage Control 1.7.0 Beta 1 (Nov 10, 2020)

  • Important change:
  • Prebuilt binaries are now supplied only for 64bit Linux/MacOs/Windows. Other platforms should use the node package.
  • MIDI support:
  • As of this version, packages except the node package are bundled with a midi binary that will be used whenever midi's path option is not set. It is no longer necessary to install python and python-rtmidi.
  • bug fixes:
  • missing context menu (copy, paste) in inspector inputs
  • osc listeners not resolving "auto" address
  • ELECTRON_RUN_AS_NODE headless mode not working without --no-gui option
  • editor
  • add console panel under the inspector to ease debugging
  • widgets:
  • keyboard: add velocity property (allows mapping the touch coordinates between off (top) and on (bottom))
  • input: add validation property (allows defining a regular expression that the value must match)
  • midi:
  • accept sending sysex strings without spaces between the bytes
  • load prebuilt midi binary on 64bit linux/windows/osx
  • misc:
  • sessions converted from v0 will use the widget's html property to display the former label property

New in Open Stage Control 1.6.2 (Nov 7, 2020)

  • Bug fixes:
  • Matrix: issues when changing non-dynamic properties (content not properly removed)
  • Input: apply default value when receiving an empty value or no value at all

New in Open Stage Control 1.6.1 (Nov 4, 2020)

  • Bug fixes:
  • Keyboard: prevent script property from being copied to each key
  • Widgets:
  • Keyboard: make on and off properties dynamic
  • Script: add getIndex function
  • Matrix/keyboard: id variable in script is now the id of the child widget that triggered the event

New in Open Stage Control 1.6.0 (Oct 30, 2020)

  • Bug fixes
  • Range: error when setting default property
  • Range: fix doubleTap property
  • Widgets:
  • All: add html property to allow inserting custom content in widgets (label, value, etc) and style it with the css property.
  • Scripting:
  • Send(): ignore the widget's bypass property (allows bypassing default messages and define custom ones)
  • Set(): add supports for wildcards in the id parameter
  • Set(): add a 3rd optional parameter for preventing further script executions and/or osc messages from being sent
  • Custom module:
  • Automatically reload custom module when the file is modified
  • Add support for loading submodules with require()
  • Theme:
  • Automatically reload theme when the file is modified

New in Open Stage Control 1.5.4 (Oct 25, 2020)

  • Bug fixes
  • Ssl: generate unique certificates (with random serial numbers) to avoid reuse errors. Certificates generated with older versions of o-s-c will be updated automatically.
  • ~/ path prefix not recognized when using remote control commands like /SESSION/SAVE
  • ~/ path prefix not recognized in remote-root option
  • Editor: paste ID+1: midi-related addresses should not be incremented
  • Remote control:
  • Add /STATE/OPEN and /STATE/SAVE commands
  • Ignore unsaved changes when loading a session with /SESSION/OPEN
  • Resolve relative file paths against remote-root setting

New in Open Stage Control 1.5.3 (Oct 19, 2020)

  • Changelog:
  • Bug fixes:
  • Launcher: midi device names containing multiple spaces not parsed correctly
  • Fullscreen: lack of support not detected on some ios devices
  • Multixy: labels not hidden when ephemeral is true
  • Editor: error when preArgs and address are modified at the same time (affects /EDIT command and matrix/clone widgets)
  • Remote control:
  • Add /SESSION/OPEN and /SESSION/SAVE commands

New in Open Stage Control 1.5.1 (Oct 5, 2020)

  • BUG FIXES:
  • widgets: touch state scripts not triggering some synchronization mechanism
  • WIDGETS:
  • encoder: remove steps, ticks and origin properties
  • encoder: make sensitivity work with values below 1

New in Open Stage Control 1.5.0 (Oct 4, 2020)

  • Bug fixes:
  • Image: broken value validation
  • Menu/dropdown: use correct z-index
  • Dropdown: prevent dropdown from opening when selecting the widget for edition
  • Editor:
  • Holding alt extends the north-west handle to the widget's size to ease dragging
  • Widget properties reordered (e.g. style-related properties, even widget-specific, are now under the "style" category)
  • Widgets:
  • Remove colorBg for all widgets except containers
  • Widgets background color is now transparent by default (can be overridden with css)
  • Keyboard: added colorBlack and colorWhite properties to customize key colors
  • Dropdown/menu: add label property (with support easy key/value display)
  • Dropdown/menu: add icon toggle property
  • Modal: add popupPadding property to control the button's and the container's padding independently

New in Open Stage Control 1.4.1 (Oct 2, 2020)

  • Bug fixes:
  • project tree: error when dropping a widget at its initial position
  • multixy/range: prevent some extra touch state events (v1.4.1)
  • Editor:
  • validate property change when clicking on a widget
  • cancel property change when hitting escape
  • add menu and keyboard shortcuts to reorder widgets
  • add keyboard shortcut to show widget in project tree
  • selected widget is not showed on top of the others anymore
  • Widgets:
  • expose widgets unique identifiers with property name "uuid"
  • xy/multixy: add ephemeral property
  • fader/knob/xy/range/multixy: remove touchAddress property
  • fader/knob/xy/range/multixy: expose touch state in script property (touchAddress usages will be converted automatically)

New in Open Stage Control 1.4.0 (Oct 1, 2020)

  • bug fixes:
  • project tree: error when dropping a widget at its initial position
  • editor:
  • validate property change when clicking on a widget
  • cancel property change when hitting escape
  • add menu and keyboard shortcuts to reorder widgets
  • add keyboard shortcut to show widget in project tree
  • selected widget is not showed on top of the others anymore
  • widgets:
  • expose widgets unique identifiers with property name "uuid"
  • xy/multixy: add ephemeral property
  • fader/knob/xy/range/multixy: remove touchAddress property
  • fader/knob/xy/range/multixy: expose touch state in script property (touchAddress usages will be converted automatically)

New in Open Stage Control 1.3.0 (Sep 21, 2020)

  • Bug fixes:
  • Editor: hide impossible actions from context-menu (eg adding widgets in tab containers)
  • Editor: error when selecting a tab/root widget while a property field contains unsubmitted changes
  • Panel: layout issue with tabs & lineWidth property
  • Input: extend focusable area
  • Midi:
  • Remove variable args in sysex messages (dynamic properties and scripting can be used to this effect)
  • Add support for sending sysex bytes as integers
  • Allow sending any system message (eg MIDI time code)
  • Add support for receiving MIDI time code messages (as raw sysex) (requires adding the mtc flag to the midi configuration)

New in Open Stage Control 1.2.1 (Sep 16, 2020)

  • Scripting:
  • Expose toolbar menu actions
  • Remote control:
  • Optimise small changes made with /EDIT
  • Widgets:
  • Button: add wrap and vertical properties
  • Root: add width and height properties (helps building mobile layouts)

New in Open Stage Control 1.2.0 (Sep 7, 2020)

  • Changelog:
  • Bug fixes
  • Editor: id not incremented when pasting multiple widgets with id+1
  • Main:
  • Remove support for extra args in the custom-module option (fixes some path issues)
  • Widgets:
  • All: add lineWidth style property
  • Knob: add solid & line designs
  • Fader: add knobSize property
  • Editor:
  • Preserve percentages in position/size
  • Add 'Relative units (%)' option to use percents automatically on new widgets

New in Open Stage Control 1.1.0 (Sep 2, 2020)

  • bug fixes:
  • iOS 14+ scrolling issue
  • midi:
  • add support for channel pressure and key pressure messages
  • widgets:
  • svg: remove support for non-standard %x and %y units; fixed layout update when resized;
  • knob: add support for custom dash/gap size in dashed property

New in Open Stage Control 1.0.4 (Aug 24, 2020)

  • Bug fixes:
  • script: broken storage.getItem and storage.removeItem
  • regression breaking remote-root option when starting with the launcher

New in Open Stage Control 1.0.3 (Aug 10, 2020)

  • Bug fixes:
  • modal - layout issue on iOS
  • Widgets:
  • panels - added contain property to allow scrolling in vertical/horizontal layouts
  • Midi:
  • add support for named ports in midi configuration

New in Open Stage Control 1.0.2 (Jul 28, 2020)

  • Bug fixes:
  • Broken scrolling on iPhone iOS 13
  • Window geomtry issue

New in Open Stage Control 1.0.1 (Jul 27, 2020)

  • UI:
  • Windows' dimensions and position are now saved upon closing and restored at startup.

New in Open Stage Control 1.0.0 (Jul 27, 2020)

  • Compatibility:
  • Dropped support for iOS 9
  • Firefox (75+) support
  • UI:
  • Overhaul design reworked
  • Foldable sidepanels
  • Removed lobby
  • Added toolbar menu
  • Dispay loading (spinner) in a notification instead of a modal
  • Mod + w to close window
  • Context-menu now use click event to trigger actions, not mousedown/touchstart
  • No more uppercase text by default
  • Themes:
  • Built-in themes removed except orange
  • Translations:
  • Incomplete russian translation removed
  • Editor:
  • Project tree
  • Dropdown for properties with multiple choices
  • Color picker
  • Preview numeric values for style-related properties set to auto
  • Context menu: added "show in tree" action
  • Context menu: removed "edit parent" action
  • Allow copying tabs (to tab containers only)
  • Shared clipboard accross all clients
  • Prevent interaction with widgets when shift or ctrl is held
  • Ensure @{} bindings are always updated upon edition
  • Widget changes:
  • All: removed label option except for buttons, tabs and modals (one should use text widgets if needed)
  • All: removed support for null and "self" targets
  • All: added ignoreDefaults property (allows ignoring the server's default targets)
  • All: precision property to decimals, don't set osc integer typetag when 0
  • All: added typeTags property
  • All: multiple style properties to control visibility, colors, alphas and padding
  • All: added interaction (=> css pointer-events: none;)
  • All: added expand (=> css flex: 1;)
  • All: prevent html tags in label
  • Pads: removed split property -> use custom-module or script instead
  • Root: can contain widgets or tabs
  • Panels: added layout, justify and gridTemplate to help managing layouts (especially responsive ones)
  • Panels: added verticalTabs property
  • Panels: added traversing property, allow restricting traversing to a specific widget type
  • Fader: removed input
  • Fader: removed meter
  • Fader: added gradient
  • Fader: added round design style
  • Fader: support setting dash size and gap size in dashed property
  • Switch: added layout (including grid)
  • Switch: added click mode
  • Plot/eq: removed smooth
  • Plots/sliders/pads: reversed logScale behavior to match standard implementations; can be either false (disabled), true (logarithmic scale) or number (manual log scale, negative for exponential scale)
  • Visualizer: added framerate property
  • Visualizer: added freeze property
  • Menu: always centered menu
  • Modal: modals can't overflow parent tab boundaries
  • Input: removed vertical
  • Pads, range: when touchAddress is set, one message per touched point is sent, in addition to the former touch state message
  • Eq: removed logScaleX property, always draw logarithmic frequency response
  • Eq: logarithmic x-axis scale fixed
  • Eq: filters ared now defined with the filters property, leaving the value to its default purpose
  • Eq: added rangeX
  • Html: allow class, title and style attributes
  • Dropdown: close menu when receiving a value
  • Dropdown: removed empty 1st option
  • Switch: removed showValues (inconsistent with menu/dropdown, feature covered by values property)
  • Frame: allow loading non local urls
  • Widget removals:
  • Push, toggle: merged into button
  • Strip: features now covered by panel
  • Meter: duplicate of fader with design to compact and interaction to false
  • Switcher, state, crossfader: removed => state managment functions added to the script widget
  • Keys: merged with script
  • Gyroscope: not compatible since chrome 74 unless o-s-c goes HTTPS
  • Remote control:
  • Removed /TABS
  • Added /NOTIFY
  • Scripting (general):
  • Removed MathJS language
  • Reuse #{} syntax as as shorthand for JS{{}} (one liner, implicit return)
  • Added locals variable, a variable store scoped to the widget
  • Renamed global to globals
  • Expose environment variables in globals: url, env (query parameters), platform, screen (width/height)
  • Script widget:
  • Always hidden except in project tree
  • Script property must not be wrapped in a JS{{}} block anymore
  • Added stateGet and stateSet functions
  • Added storage object, proxy to the document's localStorage object (allows storing data that persist after refresh/close (cleared with the browser's cache)
  • Added setTimeout, clearTimeout, setInterval, clearInterval function proxies with an extra id argument (they clear automatically when called multiple times and upon widget removal. id is scoped to the widget)
  • State:
  • Quickstate (store/recall from menu) is now stored in the clients cache and persists after refresh/close (cleared with the browser's cache)
  • Custom module:
  • Settings.read(name): name is now the long name of command-line options (not a camelCased one)
  • Receive(): optional last argument to pass extra options such as clientId
  • Client id persist upon page refresh and can be set manually with the client url option id
  • Launcher:
  • Config save/load
  • Allow starting/stopping server without rebooting
  • Syntax check on --midi option
  • Server:
  • Renamed --url-options to --client-options and make them apply even in remote browsers (can be overridden with url queries)
  • Removed --blank, --gui-only, --examples
  • Hide --disable-gpu (cli-only)
  • Added cli-only --cache-dir and --config-file
  • Added --authentication option
  • Added --use-ssl option
  • Misc:
  • Canvas: better visibility checks to avoid unnecessary draw calls
  • Visualizer: perf improvement (avoid data processing when not visible), all visualizers hook on the same loop to avoid concurrent timeouts
  • Button: in 'tap' mode (formerly push with noRelease), never send/sync off value, automatically reset to off when receiving on
  • More detached DOM for lighter nested canvas widgets (ie multixy)
  • Unified (kind of) dom html structure for widgets, known css tricks will require adjustments.
  • Cache and config files are now stored in a folder named open-stage-control (located in the system's default location for config file). The .open-stage-control is no longer used.
  • Added support for icons rotate/flip transform suffixes (example: ^cog.spin, ^play.rotate-horizontal)

New in Open Stage Control 0.49.12 (Mar 24, 2020)

  • bug fixes:
  • dropdown: value update issue on iOS 13
  • widgets:
  • html: allow class, title and style attributes

New in Open Stage Control 0.49.11 (Mar 18, 2020)

  • Bug fixes:
  • Regression (0.49.10) breaking icon with short names (minimum valid length set to 2 characters)
  • Html widget: content not initialized properly

New in Open Stage Control 0.49.10 (Mar 17, 2020)

  • bug fixes:
  • svg files not loading
  • canvas glitches when hardware acceleration is disabled (--disable-gpu) (built-in gui only)
  • misc:
  • prevent --disable-gpu from bypassing the launcher window
  • prevent converting "^icon-name" to an icon (in text widgets and labels) when icon-name is too short to be a valid icon name (minimum 4 characters)

New in Open Stage Control 0.49.9 (Mar 17, 2020)

  • Bug fixes:
  • Downgrade electron engine to fix regression (v0.49.8) on some systems

New in Open Stage Control 0.49.8 (Mar 16, 2020)

  • Bug fixes:
  • rgb: range not applied when receiving value

New in Open Stage Control 0.49.7 (Mar 5, 2020)

  • BUG FIXES:
  • sync issues when widgets have a single target set

New in Open Stage Control 0.49.6 (Feb 24, 2020)

  • Bug fixes:
  • Windows users launching the app from a terminal now need to add a double dash (--) before their options
  • Launcher: disabled unstable Relaunch action

New in Open Stage Control 0.49.4 (Feb 23, 2020)

  • bug fixes:
  • image: fixed absolute paths
  • image: reset to 'default' instead of 'value' when receiving an empty value
  • launcher: use current midi config for "List devices" action
  • fader built-in meter: use fader's target (allows midi sync)

New in Open Stage Control 0.49.3 (Feb 9, 2020)

  • Bug fixes:
  • Windows: process not terminated properly when exiting the app

New in Open Stage Control 0.49.2 (Feb 9, 2020)

  • Bug fixes:
  • Plots: prevent plot/* widgets from sending messages when using the sidepanel's "send all" function
  • Editor: assign correct address when emptying the field
  • Sidepanel: shadow color issue
  • Misc:
  • Alt-buttons & flat theme tweaks

New in Open Stage Control 0.49.1 (Feb 7, 2020)

  • Bug fixes:
  • Modal: error when label depends on a child's property
  • Custom module: send() function casting numbers to integers instead of floats by default
  • Menu: push mode not working on touch devices

New in Open Stage Control 0.49.0 (Feb 6, 2020)

  • Bug fixes:
  • Multiclient sync not working when targets is empty
  • Widgets: missing target property for plots/* widgets, required for MIDI bindings
  • Editor: set label to auto instead of true when using the toggle button
  • Editor: errors when hitting mod + a and unselecting widgets
  • Modal: correct popup title color
  • Options: allow midi:port_name pairs in --send option
  • Sidepanel/state: opening a state file now properly sets it as the next default save location
  • Widgets:
  • New menu widget, circular alternative to the dropdown & switch widgets
  • File: allow selecting folders
  • Text: optimize value update when there's no icon to draw
  • Editor:
  • Convert invalid quote characters automatically to avoid errors
  • Tab: added detached property (set to false to prevent iframes from reloading when the tab opens)

New in Open Stage Control 0.48.8 (Jan 15, 2020)

  • Bug fixes:
  • strip: layout issues when moving widget in a strip (min width/height still active)
  • tcp: prevent sending osc messages on udp port when the same port number is set as a tcp target
  • midi: take server default targets into account to determine widget matching
  • save dialog: prevent keys widgets from capturing keystrokes when typing the filename

New in Open Stage Control 0.48.7 (Dec 23, 2019)

  • Bug Fixes:
  • xy: broken spring property
  • macOs: add support for emulated right click via ctrl+click
  • midi: messages received from a midi port now only affect widgets that send to this port

New in Open Stage Control 0.48.6 (Dec 14, 2019)

  • bug fixes
  • ios: prevent color issues with sliders
  • editor: prevent all keyboard shortcuts from triggering default browser actions
  • main:
  • detect http server silent setup failure

New in Open Stage Control 0.48.5 (Nov 29, 2019)

  • Bug fixes:
  • regression breaking support for utf-8 strings in received osc messages

New in Open Stage Control 0.48.4 (Nov 27, 2019)

  • bug fixes:
  • launcher: limit terminal history size to prevent slowdown/freeze
  • widgets:
  • knob: text pips support
  • fader: add css variable --gauge-width

New in Open Stage Control 0.48.3 (Nov 20, 2019)

  • bug fixes widgets: prevent update errors when widgets are not fully initialized prevent pinch-zoom on touch screen

New in Open Stage Control 0.48.2 (Oct 30, 2019)

  • Bug fixes:
  • Editor: checkbox position in multiline fields
  • Patchbay: widget not responding to osc after being edited
  • Widgets:
  • Script: added httpGet function for simple local http requests

New in Open Stage Control 0.48.1 (Oct 24, 2019)

  • bug fixes:
  • modal: popupLabel update issues
  • modal: popupTop not correctly interpreting percents
  • editor: scrollbar issue in editor's input fields on recent chromium

New in Open Stage Control 0.48.0 (Sep 12, 2019)

  • bug fixes:
  • package: broken build from sources on Windows
  • editor: incorrect position when moving a widget from an edge with the keyboard
  • modal: prevent touchend event from reaching the inner widgets when opening the container
  • matrix: clone matrices not properly storing their children's values
  • multipad/range: errors when dragging over when the gesture was initiated on a traversing widget (ie matrix)
  • widgets:
  • new html widget
  • frames: allow loading local html files without requiring a web server to serve them
  • text: escape html tags characters (< & >)
  • input: added asYouType property
  • sliders/pads: added sensitivity property

New in Open Stage Control 0.47.4 (Sep 4, 2019)

  • bug fixes
  • keys: prevent default browser actions when a combo is bound to a widget (for example print dialog with ctrl+p)
  • xy: broken doubleTap
  • widget: error when two sibling widgets have a non-dynamic property depending on each others and on another widget at the same time
  • cli: broken --version option

New in Open Stage Control 0.47.3 (Jul 19, 2019)

  • bug fixes:
  • regression causing errors with the value property

New in Open Stage Control 0.47.2 (Jul 19, 2019)

  • Bug fixes:
  • Midi: path option not applied to launcher's list contextual action
  • Midi: pitchbend messages not received correctly
  • Style: layout issues in recent chromium
  • Encoder: 0 value in back property not working
  • Editor: state not completely restored under some conditions
  • Push: force release when the widget is removed/recreated while pressed

New in Open Stage Control 0.47.1 (Jul 11, 2019)

  • bug fixes:
  • css font faces not loading from absolute/relative paths
  • midi:
  • added path option for setting python binary path manually

New in Open Stage Control 0.46.2 (Jun 26, 2019)

  • Bug fixes:
  • Auncher: spaces not properly escaped in quoted strings
  • Widgets:
  • Sliders: default and spring properties are now dynamic
  • Server:
  • Images urls are now resolved relatively to the session file location directory by default (fallback to absolute path resolution if not found) custom module
  • Added loadJSON and saveJSON functions

New in Open Stage Control 0.46.2 (Jun 26, 2019)

  • Improved canvas rendering speed on chrome v69 and above
  • Widgets
  • Modalscroll option
  • Scriptget(id) function added in scriptexecution context
  • ScriptgetProp(id, property) function added in scriptexecution context
  • Scriptid variable added in scriptexecution context (id of the widget that triggered the script)

New in Open Stage Control 0.46.1 (May 2, 2019)

  • Bug fixes:
  • Windows: midi debug strings not printed

New in Open Stage Control 0.46.0 (Apr 27, 2019)

  • bug fixes:
  • modal: css not properly applied if the property was previously empty and the modal had been opened at least once
  • image: allow overriding css background-image when value is empty
  • widgets
  • switchers: new state widget
  • remote control
  • added /STATE/[GET|SET|STORE|RECALL] methods
  • midi
  • print port name in debug messages
  • added pc_offset option to act as if program change numbers where between 1 and 128

New in Open Stage Control 0.45.7 (Apr 23, 2019)

  • Bug fixes:
  • Image: cache option inverted
  • Image: allow whitespaces in url
  • Widgets:
  • Keyboard: toggles options

New in Open Stage Control 0.45.6 (Apr 19, 2019)

  • bug fixes:
  • bottom horizontal scrollbar not responding on small screens
  • remote file browser: hitting a letter to select a file based on its name was looping on the first two matches only
  • editor: preserve backslashes in enquoted strings (not in objects/arrays)
  • editor: clear the editor when selected widget is removed by an undo/redo action
  • widgets
  • logScale can be set to a number to use a logarithm base different from the default
  • knob: compact mode is back

New in Open Stage Control 0.45.5 (Apr 16, 2019)

  • Bug fixes:
  • Absolute file paths not resolved under windows
  • Nested @{} calls issue (#516)

New in Open Stage Control 0.45.4 (Apr 13, 2019)

  • Bug fixes
  • Handle network drops correctly (notify immediately and fix reconnection mechanism)
  • Formulas breaking the property update mechanism when not resolved
  • Modal: title layout issue

New in Open Stage Control 0.45.3 (Apr 12, 2019)

  • Bug fixes:
  • Broken client sync for widgets with split set
  • Custom module: receive function not working when omitting host/port and sending only one argument
  • File browser: prevent error when files/folders cannot be read

New in Open Stage Control 0.45.2 (Apr 9, 2019)

  • Bug fixes:
  • Potential security issue in JS{{}} parser

New in Open Stage Control 0.45.1 (Apr 9, 2019)

  • Bug fixes:
  • Broken session local export

New in Open Stage Control 0.45.0 (Apr 9, 2019)

  • Changelog:
  • Bug fixes:
  • Regression (v0.44) breaking sync between clients
  • Sessions not added to history when opened
  • Switch: traversing mode issue
  • Remote file browser reactivity issue
  • Encoder: broken because ticks default was auto instead of 360
  • Main:
  • State files can be saved remotely
  • Widgets:
  • Removed deprecated widgets multifader, multitoggle, multipush and formula
  • New JS{{}} property syntax, allows writing formulas using javascript
  • Errors encountered in #{} blocks are now printed to the client console (F12)
  • Keys: renamed formula context variable super to meta

New in Open Stage Control 0.44.0 (Apr 5, 2019)

  • Bug fixes:
  • Ios: clone widget not displaying properly
  • Keys: error when leaving the window with the cursor while holding a key-combbo pressed
  • Session: disable saving when --read-only is set
  • Main:
  • Sessions can be opened and saved from/to the server's filesystem directly
  • Widgets:
  • New file input widget (allows selecting a file on the the serve and sending its absolute filename)
  • Midi:
  • Breaking changes:
  • Replaced python dependency rtmidi with python-rtmidi (provides pre-compiled binaries for all major platforms)
  • Sysex messages are now discarded by default, they can be enabled by adding sysex to the midi options

New in Open Stage Control 0.43.0 (Mar 28, 2019)

  • Bug fixes:
  • Sidepanel: resize handle overflow issue
  • UI:
  • Sidepanel: hidden resize handle; show edge resize handle on hover
  • Launcher:
  • Added context menu action to display midi device list without starting the server
  • Widgets:
  • Switch: add traversing option (true by default)
  • Knob: act as a relative encoder when traversing gestures are enabled and snap is false
  • Keys: key variable in keydown and keyup is now always lowercased when referencing a single character
  • Keys; expose code variable from the keyboard event object (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code#Code_values)
  • Custom module:
  • Expose shorthand functions send and receives
  • Expose a client object instead of just an id in app event handlers to allow retrieving the client's ip address as well
  • Custom modules can now be written like standard nodejs modules (using module.exports assignement instead of a self-invoking function pattern)

New in Open Stage Control 0.42.0 (Mar 18, 2019)

  • widgets:
  • OSC{} syntax accepts an optional third argument (false) to bypass the host widget's preArgs
  • editor:
  • sticky header to remind selected widget's id
  • sidepanel can now be resized by dragging its edge

New in Open Stage Control 0.41.7 (Mar 5, 2019)

  • Bug fixes:
  • matrix: ⚠️ $ variable not starting at start
  • matrix: properties not reset to default when removed from props

New in Open Stage Control 0.41.6 (Mar 4, 2019)

  • Bug fixes:
  • keys: binding conflict with editor
  • xy: drawing performance issue

New in Open Stage Control 0.41.5 (Feb 18, 2019)

  • Widgets:
  • Sliders: when steps is set, scrolling on the widget makes it go directly from one step to another
  • Bug fixes:
  • Editor: changes applied to wrong widget when clicking on a widget while editing another widget's property
  • Push: allow setting value property
  • Allow whitespaces in path for --custom-module
  • Error when changing a property that's inherited by a widget to define its address and at least one non-dynamic property

New in Open Stage Control 0.41.4 (Jan 25, 2019)

  • Bug fixes:
  • Broken --remote-saving option*
  • Fader: built-in meter not updating its address, preArgs & color properties
  • Incorrect osc messsages when widget's split and preArgs are set

New in Open Stage Control 0.41.2 (Jan 9, 2019)

  • Geometry properties not properly applied when reset to auto
  • Strip layout not properly applied when changing the widget's horizontal property
  • Modal glitch on chromium v70

New in Open Stage Control 0.41.1 (Jan 7, 2019)

  • Bug fixes:
  • Error when loading session file
  • Prevent sidepanel issue when toggling quickly

New in Open Stage Control 0.41.0 (Jan 7, 2019)

  • Main:
  • Send accepts ip:port and domain:port targets
  • Removed previously deprecated --sync option
  • Custom-module now accepts extra options that can be consumed from the custom module's code
  • Sessions located on the server can now be saved remotely, this becomes the default behavior for keyboard shortcut mod + s, local export is still available via mod + shift + s
  • Added --remote-saving options to limit remote session saving feature to hosts that match the provided regular expression
  • UI:
  • Added notifications
  • Widgets:
  • Matrices: new patchbay widget
  • Bug fixes:
  • Layout break when hitting tab with sidepanel closed and editor enabled
  • Crash when running the server in an environnement without user home folder

New in Open Stage Control 0.40.5 (Jan 2, 2019)

  • bug fixes
  • clone: editor's selection rectangle appearing after editing the clone's target widget
  • windows: midi issue (python path not found)
  • widgets
  • input: hitting tab now validates the value before focusing the next input (hitting esc or clicking outside the widget still cancels); when focusing an input widget, its whole value is selected by default; focused/selected text color hint changes.
  • matrix: widgets inherit from the matrix' id and osc properties by default

New in Open Stage Control 0.40.3 (Dec 29, 2018)

  • Bug fixes:
  • Editor: widgets/tabs not properly reordered when changing a widget or tab's index by more than 1
  • Main: --no-gui switch not working when running the app from a different directory
  • Regression causing osc receivers (OSC{}) to conflict with property listeners (@{})
  • Widgets:
  • Push: add doubleTap option
  • Osc listeners (OSC{}) now accept relative addresses (without leading '/'), automatically prefixed with the widget's address

New in Open Stage Control 0.40.3 (Nov 23, 2018)

  • Bug fixes:
  • Editor: sidepanel & dragging handles not always updated after edition
  • Widgets: parsing error when a property contains more than 10 variables

New in Open Stage Control 0.40.2 (Nov 21, 2018)

  • Bug fixes
  • Regression reversing tabs order

New in Open Stage Control 0.40.1 (Nov 20, 2018)

  • Bug fixes:
  • Editor - issue with tabs selection / edition
  • Regression breaking svg

New in Open Stage Control 0.40.0 (Nov 20, 2018)

  • bug fixes:
  • --read-only option not properly working
  • keyboard: dynamic properties target, precision & preArgs not being updated dynamically
  • widgets:
  • formulas: added indexOf function
  • deprecated multifader / multipush / multitoggle in favor of the generic matrix widget
  • meter: gradient can be set as an object to define uneven color breakpoints

New in Open Stage Control 0.39.8 (Nov 14, 2018)

  • Bug fixes:
  • Meter's properties not accessible (overridden with fader's properties)
  • Mobile:
  • Button for preventing device sleep

New in Open Stage Control 0.39.7 (Nov 9, 2018)

  • Changelog:
  • bug fixes:
  • iOS 9.3 compatibility
  • widgets:
  • sliders: steps property is now dynamic

New in Open Stage Control 0.39.6 (Nov 7, 2018)

  • Bug fixes:
  • Modal widgets not working since chrome v70

New in Open Stage Control 0.39.4 (Nov 5, 2018)

  • widgets:
  • multiXy: added .pad-N class to inner xy pads to help with css customization
  • xy/multiXy: added css variables --background, --color-pips, --pips-opacity and --point-opacity
  • rgb: added alpha option
  • xy/multiXy/rgb: design impovements;
  • sliders: new steps option

New in Open Stage Control 0.39.3 (Nov 2, 2018)

  • Bug fixes:
  • Broken tabs color property
  • Broken /TABS command; this command doesn't makes panels send osc messages anymore

New in Open Stage Control 0.39.2 (Nov 1, 2018)

  • Bug fixes:
  • Regresssion: broken --theme option
  • Regression: missing 'edit parent' action in editor's context menu

New in Open Stage Control 0.39.1 (Nov 1, 2018)

  • Bug fixes:
  • Regression breaking icons in switches' labels

New in Open Stage Control 0.39.0 (Nov 1, 2018)

  • Performance:
  • Rendering speed improved (session loading time reduced by about 30%)
  • Widgets:
  • Remove support for deprecated properties path, noPip and noSync
  • Sliders/pads: precision is no longer a dynamic property

New in Open Stage Control 0.38.7 (Oct 29, 2018)

  • Bug fixes:
  • launcher compatibility issues with electron v3

New in Open Stage Control 0.38.5 (Oct 27, 2018)

  • Packaging:
  • Regression causing the client js bundle to be much bigger than needed
  • Added node-only package built without electron for unsupported platforms (armv6, etc)

New in Open Stage Control 0.38.4 (Oct 24, 2018)

  • Bug fixes:
  • @{parent} calls not working consistently in clone widgets
  • Slider/pads: inteverted ranges not working
  • Fix doubleTap for sliders with snap set to true
  • Undo/redo errors
  • Widgets:
  • 1-level nested property inheritance calls (@{id_@{id_2}}) are now updated dynamically
  • Support special css property class for adding custom classes to widgets
  • Added "smart" traversing gestures mode that limits affected widgets by the type of the first touched widget
  • Root: added traversing property
  • Editor:
  • Major performance improvements (containers' children are reused whenever possible instead of being recreated)
  • Removed widget deletion confirmation popup
  • Properties categories can now be folded
  • Added keyboard shortcut F2 for editing the label quickly
  • Added keyboard shortcut mod + s for saving the session
  • Added keyboard shortcut mod + o for opening a session
  • Use backspace instead of delete for deleting widgets on MacOs
  • Added keyboard shortcut mod + e for enabling / disabling the editor
  • Added keyboard shortcuts mod + arrows for selecting widgets
  • Added keyboard shortcut mod + a for selecting a widget's siblings and itself
  • Added keyboard shortcut mod + shift + a for cancelling selection
  • Added multi widget selection with mouse when shift is pressed
  • Right-click doesn't modify current selection when mod or shift is pressed
  • Formulas:
  • Added extend(x, y) function for merging two objects
  • Objects' closing brackets (}) don't need to be escaped with a backslash anymore
  • Show property's computed value in the help popup

New in Open Stage Control 0.38.3 Pre-release (Oct 23, 2018)

  • Bug fixes:
  • @{parent} calls not working consistently in clone widgets
  • Slider/pads: inteverted ranges not working
  • Fix doubleTap for sliders with snap set to true
  • Undo/redo errors
  • Widgets:
  • 1-level nested property inheritance calls (@{id_@{id_2}}) are now updated dynamically
  • Editor:
  • Major performance improvements (containers' children are reused whenever possible instead of being recreated)
  • Removed widget deletion confirmation popup
  • Properties categories can now be folded
  • Added keyboard shortcut F2 for editing the label quickly
  • Added keyboard shortcut mod + s for saving the session
  • Added keyboard shortcut mod + o for opening a session
  • Use backspace instead of delete for deleting widgets on MacOs
  • Added keyboard shortcut mod + e for enabling / disabling the editor
  • Added keyboard shortcuts mod + arrows for selecting widgets
  • Added keyboard shortcut mod + a for selecting a widget's siblings and itself
  • Added keyboard shortcut mod + shift + a for cancelling selection
  • Added multi widget selection with mouse when shift is pressed
  • Right-click doesn't modify current selection when mod or shift is pressed
  • Formulas:
  • Added extend(x, y) function for merging two objects
  • Objects' closing brackets (}) don't need to be escaped with a backslash anymore
  • Show property's computed value in the help popup

New in Open Stage Control 0.38.2 Pre-release (Oct 22, 2018)

  • Bug fixes
  • @{parent} calls not working consistently in clone widgets
  • Slider/pads: inteverted ranges not working
  • Fix doubleTap for sliders with snap set to true
  • Undo/redo errors
  • Widgets:
  • 1-level nested property inheritance calls (@{id_@{id_2}}) are now updated dynamically
  • Editor:
  • Major performance improvements (containers' children are reused whenever possible instead of being recreated)
  • Removed widget deletion confirmation popup
  • Properties categories can now be folded
  • Added keyboard shortcut F2 for editing the label quickly
  • Added keyboard shortcut mod + s for saving the session
  • Added keyboard shortcut mod + o for opening a session
  • Use backspace instead of delete for deleting widgets on MacOs
  • Added keyboard shortcut mod + e for enabling / disabling the editor
  • Added keyboard shortcuts mod + arrows for selecting widgets
  • Added keyboard shortcut mod + a for selecting a widget's siblings and itself
  • Added keyboard shortcut mod + shift + a for cancelling selection
  • Added multi widget selection with mouse when shift is pressed
  • Right-click doesn't modify current selection when mod or shift is pressed
  • Formulas:
  • Added extend(x, y) function for merging two objects
  • Objects' closing brackets (}) don't need to be escaped with a backslash anymore
  • Show property's computed value in the help popup

New in Open Stage Control 0.38.1 Pre-release (Oct 21, 2018)

  • Bug fixes:
  • @{parent} calls not working consistently in clone widgets
  • Slider/pads; inteverted ranges not working
  • Fix doubleTap for sliders with snap set to true
  • Undo/redo errors
  • Editor:
  • Major performance improvements (containers' children are reused whenever possible instead of being recreated)
  • Removed widget deletion confirmation popup
  • Properties categories can now be folded
  • Added keyboard shortcut F2 for editing the label quickly
  • Added keyboard shortcut mod + s for saving the session
  • Added keyboard shortcut mod + o for opening a session
  • Use backspace instead of delete for deleting widgets on MacOs
  • Added keyboard shortcut mod + e for enabling / disabling the editor
  • Added keyboard shortcuts mod + arrows for selecting widgets
  • Added keyboard shortcut mod + a for selecting a widget's siblings and itself
  • Added keyboard shortcut mod + shift + a for cancelling selection
  • Added multi widget selection with mouse when shift is pressed
  • Right-click doesn't modify current selection when mod or shift is pressed
  • Formulas:
  • Added extend(x, y) function for merging two objects
  • Objects' closing brackets (}) don't need to be escaped with a backslash anymore
  • Show property's computed value in the help popup

New in Open Stage Control 0.37.4 (Oct 8, 2018)

  • Bug fixes:
  • osc receivers (OSC{}) not working in non-dynamic properties
  • Remote control:
  • Added /GET/# to get a widget's value without using /GET as reply address

New in Open Stage Control 0.37.3 (Sep 21, 2018)

  • Bug fixes:
  • Gyroscope osc sendings not properly triggered on value updates

New in Open Stage Control 0.37.2 (Sep 6, 2018)

  • Bug fixes:
  • osc: regression making empty preArgs count as one empty string argument

New in Open Stage Control 0.37.1 (Sep 5, 2018)

  • Bug fixes:
  • Closing popups when clicking precisely on the "x"
  • Translations:
  • Fr: corrections
  • Ru: added russian translation

New in Open Stage Control 0.37.0 (Sep 3, 2018)

  • Bug fixes:
  • Editor: opening the sidepanel doesn't select the root widget anymore
  • Ios: fix doubleTap
  • Widgets:
  • New gyroscope widget
  • New frame widget
  • Breaking change in panel: dropped Visual Format Language support (layout and spacing properties)
  • Maths: added timestamp() function
  • Editor:
  • Widget property names can be clicked to show documentation
  • Misc:
  • The client app can be translated (#302)

New in Open Stage Control 0.36.0 (Aug 26, 2018)

  • Changelog:
  • bug fixes
  • linkId synchronizations now correctly trigger property updates
  • widgets with multiple linkId are now properly handled
  • synchronization issue between visualizer widgets
  • widgets
  • keys (breaking changes): formulas in keydown and keyup must be explicitely written using the #{} syntax; variable value got removed from these formulas context (use @{this} instead); removed widgetId property, the value emitted by the widget on keypress events can be linked with other widgets via the linkId property or the property inheritance syntax;
  • visualizer: update rate set to default canvas framerate
  • editor
  • new keyboard shortcuts (undo, redo, copy, paste, etc)

New in Open Stage Control 0.35.0 (Aug 7, 2018)

  • main:
  • added --state option for loading a state file with a session file
  • state:
  • loading a state file doesn't replace the quick save slot anymore
  • widgets:
  • new script widget
  • misc:
  • reduced session file size (indentation set to 2 instead of 4)

New in Open Stage Control 0.34.4 (Aug 4, 2018)

  • Bug fixes:
  • Widgets: dynamic address when split is true
  • Strip: missing osc properties (address and preArgs) for remote control
  • Switcher: update linked widgets' osc properties before sending if they depend on the switcher's value

New in Open Stage Control 0.34.3 (Jul 31, 2018)

  • Bug fixes:
  • Launcher: regression breaking the port option

New in Open Stage Control 0.34.2 (Jul 29, 2018)

  • Bug fixes:
  • Matrices: spacing issue when wrapped in strips
  • Launcher: regression preventing options to be applied

New in Open Stage Control 0.34.1 (Jul 27, 2018)

  • Changelog:
  • Bug fixes:
  • Switch: display object-values properly when showValues is set to true
  • Prevent non-dynamic properties updates from breaking an osc sending event chain
  • Deprecations:
  • Formula has been removed from the editor's context menu
  • Custom module:
  • Expose app to the custom module's scope: an event emitter for monitoring the events sent by the different clients
  • Misc:
  • Fixed rpi build

New in Open Stage Control 0.34.0 (Jul 26, 2018)

  • Bug fixes:
  • Switch: display object-values properly when showValues is set to true
  • Prevent non-dynamic properties updates from breaking an osc sending event chain
  • Deprecations:
  • Formula has been removed from the editor's context menu
  • Custom module:
  • Expose app to the custom module's scope: an event emitter for monitoring the events sent by the different clients
  • Misc:
  • Fixed rpi build

New in Open Stage Control 0.33.3 (Jul 22, 2018)

  • Bug fixes:
  • Matrix: recreation loop issue with matrices of clones
  • Multixy: glitch when some letters are used in the points' labels

New in Open Stage Control 0.33.2 (Jul 9, 2018)

  • Bug fixesmatrix: set initial value at widget's creation; missing border under widget's label
  • Widgets
  • Property math syntax: add values() and keys() functions

New in Open Stage Control 0.33.1 (Jul 4, 2018)

  • Bug fixes:
  • Widgets: remove unnused properties to avoid having hidden properties laying around when the type changes (especially dangerous when those properties where linked to other widgets)

New in Open Stage Control 0.32.6 (Jun 21, 2018)

  • bug fixes:
  • css border-radius not applying correctly for some widgets
  • themes:
  • multiple adjustments

New in Open Stage Control 0.32.5 (Jun 21, 2018)

  • Bug fixes:
  • Missing feedback support for widgets with typed preArgs
  • Themes:
  • Improved dark theme
  • Added flat

New in Open Stage Control 0.32.4 (Jun 9, 2018)

  • Bug fixes
  • Regression breaking typed osc args

New in Open Stage Control 0.32.2 (Jun 1, 2018)

  • Changelog:
  • bug fixes ◦sliders colors not displayed correctly on iOS
  • widgets ◦xy: tiny knob style change
  • editor ◦reallow editing disabled properties

New in Open Stage Control 0.32.0 Beta (May 25, 2018)

  • Main - add tcp support

New in Open Stage Control 0.31.0 (May 17, 2018)

  • Bug fixes:
  • Regression breaking multitouch widgets
  • Widgets:
  • Fader/knob/pad: right-click / long tap doesn't give focus to the input anymore

New in Open Stage Control 0.30.4 (May 10, 2018)

  • Changelog
  • bug fixes
  • regression breaking touch traversing gestures
  • clone widgets becomming unselectable for edition
  • preArgs property still being coerced to an array

New in Open Stage Control 0.30.3 (May 9, 2018)

  • Big regression breaking many touch gestures

New in Open Stage Control 0.30.1 (May 7, 2018)

  • Midi prevent the main process from exiting when MIDI setup fails

New in Open Stage Control 0.30.0 (May 5, 2018)

  • widgets:
  • target and preArgs properties are no longer coerced to arrays and can be written as single string values
  • linkId supports master and slave modes with >> and << prefixes
  • the special target token null can now be used in conjunction with regular targets, it disables the default global targets set via the --send option
  • editor:
  • disabled widget properties are now greyed out

New in Open Stage Control 0.29.2 (Apr 30, 2018)

  • launcher: parsing errors are not fatal anymore
  • css parsing error on iOS

New in Open Stage Control 0.29.1 (Apr 18, 2018)

  • BUG FIXES:
  • editor: "wrap" deleting the widget just before the one being wrapped
  • regression breaking traversing gestures and high precision gestures (0.29.0)
  • SERVER:
  • allow sending osc to broadcast ip addresses
  • WIDGETS:
  • limited support for property inheritance nesting (@{id_@{id_2}})
  • support using property inheritance syntax in osc listeners' addresses

New in Open Stage Control 0.29.1 Beta 2 (Apr 13, 2018)

  • Bug Fixes:
  • regression breaking traversing gestures and high precision gestures (0.29.0)

New in Open Stage Control 0.29.1 Beta (Apr 13, 2018)

  • Server:
  • Allow sending osc to broadcast ip addresses
  • Widgets:
  • Limited support for property inheritance nesting (@{id_@{id_2}})
  • Support using property inheritance syntax in osc listeners' addresses

New in Open Stage Control 0.29.0 (Apr 11, 2018)

  • beaking changes
  • dropped support for .js sessions (deprecated in 0.20.0)
  • bug fixes
  • zeroconf: unpublish when shutting down
  • ios 9.3 compatibility issue
  • function mispelling in rgb widget
  • widgets
  • modal: added popupLeft and popupTop properties
  • faders/meter: add css variable --gauge-opacity to allow setting a fixed gauge opacity for meters and compact faders
  • custom module
  • messages converted from midi inputs can be filtered

New in Open Stage Control 0.28.3 (Apr 6, 2018)

  • bug fixes ?widgets not correctly drawn when hidden/shown with dynamic css
  • iOS: file upload failing sometimes
  • widgets ?knob: small design improvements (pips don't take extra space anymore)

New in Open Stage Control 0.28.2 (Mar 30, 2018)

  • Bug fixes:
  • Session list: fix "remove from history" always removing the first item in the list
  • Custom module:
  • Expose setInterval
  • Expose clearTimeout and clearInterval
  • Prevent errors when failing to run the module

New in Open Stage Control 0.28.1 (Mar 27, 2018)

  • regression in nested clones structures handling

New in Open Stage Control 0.28.0 (Mar 23, 2018)

  • widgets
  • matrices: support setting split property as a string to allow using children's indexes in their address ($ is replaced with the index number)
  • text: wrap property doesn't break words by default anymore
  • rgb: added range property
  • launcher
  • right-click context menu (copy, paste, clear console, toggle console autoscoll, relaunch app)
  • better font for the console

New in Open Stage Control 0.27.2 (Mar 21, 2018)

  • bug fixes:
  • session/state file upload sometimes failing silently
  • regression breaking the app for iOS

New in Open Stage Control 0.27.1 (Mar 20, 2018)

  • Bug fixes:
  • Error when resizing a widget and its clone(s) at the same time
  • Error with non string css property
  • Session list not reappearing when failing to load
  • Broken state file loading
  • Misc:
  • Added a loading indicator when uploading a session file or a state file

New in Open Stage Control 0.27.0 (Mar 19, 2018)

  • Bug fixes
  • Strip: nested strips were inheriting their parent's spacing
  • Modal: prevent error when retrieving a child's property
  • Modal: prevent touch event from affecting elements behind the popup when closing it
  • Clone: some properies in target widget were not applied to the clone
  • Clone: prevent clone from resetting its target value when created
  • Text: vertical centering issues in narrow widgets
  • Dynamic properties: when using a widget's own value to determine its osc settings, these are checked and updated if needed before sending the message
  • Prevent error when loading a session containing invalid property inheritance calls
  • Broken build for iOS 9.3
  • Editor
  • Wrap in: insert wrapper at selected widget's index
  • Wrap in: set label to false by default when wrapping in a strip or a panel
  • Css property pointer-events:none; is now ignored when the editor is enabled
  • Preverve pecentages when dragging/resizing a widget that has its position/size written in percents
  • Widgets
  • New OSC{/address, default_value} syntax
  • Sidepanel is now resizable
  • Themes
  • Responsive-fonts: increase size for big screens
  • Build
  • Dropped support for node < 4.8

New in Open Stage Control 0.26.3 (Mar 10, 2018)

  • bug fixes:
  • ios: broken default accent color in clone Widgets
  • ios/android: closing the sidepanel opened the tab next to the menu button
  • editor:
  • mac: use shift instead of command for multi widget selection to match native behaviour and prevent unwanted zoom with trackpads
  • widgets:
  • strip: spacing now accepts percents

New in Open Stage Control 0.26.2 (Mar 7, 2018)

  • BUG FIXES:
  • regression preventing glass effect from using the widget's color
  • missing last key in keyboard widget
  • editor: select parent widget after deleting a widget
  • regression letting user to scroll the main document
  • editor: wrap/cut/delete multiple widget not working properly
  • WIDGETS:
  • text: set line-height relative to font size
  • meter: added gradient feature

New in Open Stage Control 0.26.1 (Mar 6, 2018)

  • BUG FIXES:
  • ios: text input fields not editable
  • EDITOR:
  • mac: use command instead of ctrl for multi widget selection

New in Open Stage Control 0.25.0 (Mar 4, 2018)

  • bug fixes:
  • launcher: parse array options correctly when an item contains spaces,
  • launcher: the terminal now grows and scrolls to bottom automatically
  • editor: broken children reordering; children
  • list display bug with long ids
  • main:
  • add --fullscreen switch (default gui only, bypasses the sidepanel fullscreen button)
  • added/updated some themes: orange, light, dark, alt-buttons (the latter can be combined with other themes)
  • widgets:
  • knob: big knobs design tweaks
  • new default property that sets a widgets initial/doubleTap/spring value. The value property does no longer serve this purpose.
  • new bypass property that disable osc messages (except when requested via /GET and /EDIT/GET)
  • panel: removed noSync property (backward compatible fallback to bypass)
  • property inheritance: @{widget_id.value}, @{widget_id} and @{widget_id._value} now all refer to the widget's current value (the latter being kept for backward compatibility); If a property update triggers an osc message, it will now be sent after the other dynamic properties changes are resolved (such as osc address, target, etc)
  • text: added align and wrap properties
  • input: added align property
  • sliders/xy: doubleTap can be an osc address to send a special message instead of resetting the widget's value
  • editor:
  • allow selecting multiple widgets (ctrl + click) if they share the same parent. Context-menu and sidepanel editing actions apply to all selected widgets

New in Open Stage Control 0.24.3 (Feb 27, 2018)

  • Bug fixes:
  • property maths: variables names declared in a formula were replaced by their associated value if found in the formula's result
  • UI:
  • add iOS fullscreen support via add-to-home feature
  • Editor:
  • ask for confirmation when closing or refreshing the page if the editor has been enabled at least once
  • prevent default widget interaction when selecting a widget for edition
  • Widgets:
  • knob: small design tweaks
  • Misc:
  • remove proprietary ffmepg codec from package

New in Open Stage Control 0.24.2 (Feb 18, 2018)

  • Bug fixes:
  • server/client communication errors
  • prevent error windows from spawning
  • Main:
  • added some menu items on macOs (including "Quit" !)

New in Open Stage Control 0.24.0 (Feb 17, 2018)

  • bug fixes:
  • regression preventing dropdown to display no option selected
  • crossfaders display issue on iOS
  • restored compatibility options for server-client communications
  • xy: doubleTap option
  • range: spring option
  • plot: crash when drawing only one point
  • widget css: fixed @media queries @Keyframes parsings
  • main:
  • theme files changes are automatically applied
  • server-client communication system rewritten -> HUGE latency reduction and stability improvement especially under stress conditions
  • engine update ([email protected])
  • widgets:
  • new svg plot widget
  • switch: wrap non-array values property in an array
  • dropdown: wrap non-array values property in an array; always add a default empty
  • value:
  • property inheritance: added shorthand default to _value when no property is specified (@{widgetId}); some properties can now be dynamically changed without recreating the widget entirely
  • property maths: added support for math expressions everywhere via #{}
  • input: add glass effect when editable is false
  • linkId can now be set as an array of linkIds
  • plot: added dots options; removed points options (use value and property inheritance instead)
  • eq: removed filters options (use value and property inheritance instead)
  • plot/meter/led/rgbled/text: removed widgetId option
  • input: removed widgetId option
  • math: deprecated formula widget

New in Open Stage Control 0.23.1 (Feb 16, 2018)

  • bug fixes:
  • regression breaking modal's position in scrolled tab containers
  • widget with a touchAddress set now send their touch-off message when removed or recreated while being interacted with
  • broken windows builds (long path issue)