Synesthesia v1.19 Changelog
Synesthesia v1.19 is Live
v1.19 is packed with new features and improvements. It adds some long-requested Pro features, lots of new toys for Scene Developers, and some juicy performance boosts and QoL fixes for everyone.
New Features
OSC
- Synesthesia now supports OSC for Pro users, opening up a powerful channel of communication between other software and devices. Check out our documentation to learn more
- OSC Audio Analysis Output
- You can now output the Synesthesia Audio Engine’s data over OSC (like
syn_BassLevel
orsyn_Time
), allowing you to easily create audio reactive content in other software
- You can now output the Synesthesia Audio Engine’s data over OSC (like
- OSC Input
- You can use OSC to control Synesthesia from other software and devices using a fixed set of addresses — no mapping required
- Update both scene and meta controls by sending messages to
/controls/controlName
. You can set values, update specific dimensions, and randomize or default controls. You can also select scene controls globally, as with global MIDI mappings - Launch any scene by sending the message
/scenes/sceneName
- This is just the beginning — lots more OSC Input and Output functionality to come! Let us know if you have any requests
Built-in Scene Editor (Beta)
- We’re introducing a new feature that makes it easier for pros and beginners alike to create and modify Scenes. This Built-in Scene Editor is essentially a "Synesthesia Shader Format Integrated Development Environment" (SSF IDE).
- Since this is such a big feature, we want as much feedback as possible from artists and developers on how they'd like to see it progress. This is why we've added a Beta Version of the editor to the app in this release. Please try it out and let us know what you think!
- This does not replace the old way of editing scenes — you can still use an external code editor and the typical live coding workflow through the "dev tab" on the right-hand panel.
- You can toggle on the Built-in Scene Editor by clicking the new checkbox option in the settings page. Then get started by clicking the code icon in the left menu.
- IMPORTANT: Please back up your work before using the Built-in Scene Editor. While it is functional, it's not yet fully stable (for instance, there are known bugs that impact scene saving and action undoing). We wouldn't want anyone to lose critical work while using it, so for critical projects we recommend the old development workflow.
- Features of the Built-in Scene Editor:
- Includes tabs to edit main.glsl, scene.json, and script.js, all from within the editor.
- Includes side-by-side mode to quickly reference code (read-only) from other shaders while remaining in edit mode on your current project.
- Includes a toggle to show or hide the SSF documentation for quick reference.
- Includes auto-complete and interpolation for all built-in SSF functions and variables.
- Includes an auto-save option.
- Allows you to view the code of scenes without having to enter edit mode, by simply browsing to the built-in editor while any scene is currently running.
- Allows you to create a new scene or open the currently edited scene folder in Explorer/Finder.
- Scene reloading can be performed as usual by pressing "Crtl + R" or "Cmd + R" (Mac), or by clicking "reload scene"
Script.js JavaScript Updates
- We’ve added a host of new functionality to Synesthesia’s JavaScript engine, accessible through the
script.js
file you can add to any Scene folder. Check out our tutorial or documentation to learn more - Added built-in JavaScript functions that can update controls:
setControl
,setControlDimension
,randomizeControl
, anddefaultControl
. Control updates from the script will immediately show up in the control panel - You can now set vector uniforms by creating objects with
rgba
properties, along with the previously availablexyzw
- You can now define a
setup()
function within your script that will be run once when a scene is launched. This is useful for initializing variables and defining event handlers (more on that below) - Added an event system that allows you to run code conditionally based on the state of the scene inputs (controls, audio uniforms, standard uniforms, etc.). There are now five built-in functions you can use to register different types of event handlers —
onChange
,onOffToOn
,onOnToOff
,whileOn
, andwhileOff
- These new features open the door to lots of new complex functionality. Here are some examples (you can find more in the SFF docs):
- map customizable LFOs to controls
- trigger hard coded presets from the control panel
- randomize or default a subset of controls when a button is pressed
- use a “macro” control to set multiple other controls
- update local JavaScript data whenever a control changes
- These updates give Scene developers a lot more control and creative freedom with how their scenes function. We have more ideas to expand the JavaScript engine, and would appreciate any feedback from devs who try out these new features!
Miscellaneous
- Auto Transitions Toggle
- Users can now choose to turn off Synesthesia's "Auto Transitions." Transitions are what cause automatic changes in color palettes or other behaviors on classic scenes like Glassier or Churning, triggered by changes in audio
- When Auto Transitions are toggled off, Scenes will stay on their default transition option. You can still manually trigger a random transition by clicking the "Transition" button in the Meta Controls
- Pause Button
- For Pro users, there is now a pause button located in the scene preview toolbar next to the FPS display. This button can pause rendering, freeing up computer resources
- Console Improvements
- Added a button to clear the Console Output (scroll to top, click the trash can icon)
- Added timestamps to Console Output
- Added 4k to “Syphon/Spout Constant Output Resolution” options in settings
- Updated Community tab
Improvements and Bugfixes
NDI
- Updated to NDI 5
- Significantly improved NDI Output performance
- Media panel now shows all available NDI servers, rather than requiring you to select them individually in settings
- Media Refresh button in upper right of media panel now also refreshes NDI servers
- Increased NDI FPS cap to reduce unnecessary throttling
- Fixed a potential NDI crash related to changing resolution while NDI was active
Controls refactor
- Significantly overhauled the controls pipeline, which should increase control panel performance across the board, especially while interacting with controls via MIDI or OSC.
Scene JSON Bugfixes
- Duplicating or renaming a scene no longer adds "isMeta" to each control object in scene.json
- Duplicating or renaming a scene no longer adds unnecessary decimal places to floating point numbers in scene.json
Other bugfixes
- Fixed bug related to the control panel undo buttons — they used to update state for both scene and meta controls
- Removed scroll wheel feature from number boxes, since it often happened unintentionally
- Changed bangs to trigger on mouse down instead of mouse up
- Improved styles for locked content in trial mode