Skip to content

v3.1.4

Compare
Choose a tag to compare
@jcelerier jcelerier released this 09 Nov 15:59

Breaking changes

  • The CHAR type has been removed as we could not find any one using it. It is instead replaced by a much more useful feature in the back-end which will be developed over the next few versions: a MAP type which will allow more advanced communication from / to JS scripts and groups of OSC addresses.

New features

  • JS: support for using external libraries as JS modules. For now one has been added to the user library: total-serialism. Two examples have been implemented: euclidean-melody and claves to show how to use the library to generate randomized musical patterns. Further versions will provide examples that can convert that into MIDI to feed software synths
  • JS: add support for onValueChanged callbacks on inlets
  • JS: add Impulse / Button widget types
  • Explorer: Make device disconnected state more visible (#1433).
  • UI: add a proper int spinbox widget
  • UI: allow to copy the path of an object for remote control (right-click on an object name in the object tree view at the top right)
  • JS console / scripting: add a prompt function to show an interactive UI prompt to the user. See the script below for an example.
  • JS console / scripting: allow to create WS and Serial devices from code directly. This has been used to create an script that would automatically create a WS device that matches a specific JSON format (https://github.com/ossia/score-user-library/blob/master/Scripts/ImportWebsocket.mjs).
  • JS console / scripting: add a deviceToJson function which converts a given device to json which can be useful for saving presets
  • Serial protocol: add the ability to coalesce messages in order to not spam slow serial ports too much. Docs will be updated soon: https://ossia.io/score-docs/devices/serial-device.html
  • Serial protocol: add the ability to return data through byte arrays in order to send raw binary data for protocols that need it.

New features (plug-in API)

  • Allow to define processes with groups of ports to simplify creating new processes with the same kind of ports duplicated many times (EQ strips, etc)
  • Write many plug-in API tests, for instance to make sure that any kind of data can safely be passed between processes
  • Add support for more texture formats in Avendish GPU nodes
  • Add support for plug-ins that may need to access the ossia device tree to send custom OSC messages directly

Bugfixes

  • Fix the default LFO range so that it always gives the full range when connected to another process
  • Fix file watcher sometimes stopping working
  • JS: many small bugfixes & perf optimizations for sending / receiving messages
  • UI: fix bugs with processes that have file choosers in the inspector
  • UI: fix bad library path used on start screen for th examples button
  • ArtNet: allow more fixture formats to be supported.
  • Fix WASM build due to SIMD issues
  • Fix that closing scores with processes using compute shaders would crash
  • Fix that image node would not work on some OpenGL driver due to using a reserved name for a variable in GLSL 4.5
  • VST3: fix that MIDI output did not work. Note that right now only note-on / note-off messages are supported.
  • Remote Control: allow simpler websocket message format for triggering parts of the score remotely
  • Rework include paths handling. Not finished yet.
  • Fix the LFO phase change.
  • Fix invalid scaling for double slider
  • Usual fixes for build platforms, Xcode 14, Qt 6.4, etc
  • Execution: Fix that position changes were not processed when there was no other process than a tempo process in an interval
  • Execution: code optimizations