Releases: ossia/score
v3.2.0
Full Changelog: v3.1.14...v3.2.0
New features
- A new start screen to celebrate the many new features in this release! Thanks @aklevy :)
- Protocols: MQTT support (over TCP and WebSocket).
- Protocols: CoAP support (over UDP, TCP and WebSocket).
- Protocols: LeapMotion / UltraLeap support (Driver v5 or v6 must be installed).
- Protocols: Proper support for raw ffmpeg support as camera input device.
- New process: Lightness Computer. Renders an input shader as a set of luminance values useable as controls.
- New process: Process Launcher. Runs an actual operating system process for the duration of this process.
- New process: Poles. Creates a list of values matching a gaussian curve.
- New process: Value Delay. Delays the input control values like the eponymous audio effect.
- New process: Array Mapper. Like Micromap, but applies the computation to every input value.
- New process: MIDI Glide. Useful for managing the weird MIDI input of instruments such as an Akai EWI4000s.
- New process: Audio Sum. Sums all the input channels into one output mono channel.
- New process: Silence. Generates N channels of silence.
- New process: Audio Particles. Generates sounds randomly according to the wav files contained in a folder (recursively).
- UI: add an XY integer spinbox widget.
- Faust: allow to control inlets of monophonic objects with arrays for spatialization effects.
- Audio: ALSA back-end on Linux rewritten with zita-alsa-pcmi to support full-duplex input and output. It will also likely be more efficient as it will use the ALSA MMAP API.
Note that this is only way to get the lowest latency / CPU usage on resource-constrained embedded platforms, for instance for doing audio processing on a Raspberry Pi Zero. - CI: add Debian Trixie and Ubuntu 24.04 to the build matrix.
- JS: enable a lot of ports to be used as controls: XYSlider, FloatKnob, etc. Note that the widgets leveraging vector2D, vector3D, etc will requires
import QtQuick
in the QML code.
Changes & improvements
- Pattern Combiner will now average input arrays member-wise.
- Device recorder now supports playback of recorded CSV files.
- Linux: force X11 until Qt 7, unless QT_QPA_PLATFORM is explicitly set, due to too many Wayland bugs.
- UI: increase the minimum required amount of controls necessary for default folding of items to 32.
- UI: protocols are now sorted by name in addition of priority.
- JS: added a NaN / Inf filter to the audio output.
Bugfixes
- Fixes with serial device, allow to set a custom serial path.
This is mostly useful on Linux to enable passing a USB-port-dependent path, e.g./dev/serial/by-path/...
instead of the unreliable device names such as/dev/ttyUSB0
. - Many more fixes to GPU JS livecoding and livecoding support in general.
- Network backend safety and stability fixes.
- UI: spinboxes are now clamped.
- Fixes for GFX processes using the UI bus.
- Fix issues with JS controls
- Fix dynamic loading of soundfiles in avendish processes
- Fix a rare crash when resizing the window of a Window device.
- Fix the UI colormap sometimes not restoring when launching score in --no-gui, forcefully exiting and then restoring once in GUI mode.
- Fix a frame leak in the video renderer.
- Fix the settings of the Dummy audio interface not saving / restoring in the GUI. GUI has also been improved to be more clear and precise.
- Fix filenames overlapping themselves in the start screen (thanks @yiids!)
v3.1.14
New features
- New process : Geo Zones. Takes a JSON specifying polygons and attributes and will interpolate. Can work in both latitude / longitude or scaled between 0/1. Thanks @aklevy for the cute Spatial category icon!
geozones.mp4
-
New process: Shell command / shell script executor. Mostly useful as state process.
-
NDI: support for PTZ control of connected cameras.
-
NDI: support for converting frames to UYVY instead of sending RGBA.
-
Many camera support improvements, new camera panel on macOS and Linux to make mode selection simpler (Windows TBD).
- Initial support for defining devices through avendish
- Library : allow to copy file path with right click, refactor between system and process library
- MIDI: suppport for PipeWire backend on Linux
- Update GUI when a state process is used
- DMX input & recording support for ArtNet, sACN
- DMX support for ENTTEC DMX USB Pro Mk2
Updates
- Compatibility with NDI SDK v6 (with NDI_RUNTIME_DIR_V6 pointing to the NDI folder)
- Raspberry Pi AArch64 : support for Pipewire
- Build fixes for FFMPEG 7, clang 18
- Allow texture input devices to have child nodes to allow for instance control parameters on them
- macOS AArch64 build is finally done on GH actions
- Many MIDI updates, MIDI input timing accuracy improvements
Bugfixes
- Fix GPIO not saving their state
- Many CI fixes as usual
- Fix build of Kinect device
- Clear initial persistent passes with ISF multipass shaders which may fix artifacts in some shaders in e.g. Nouveau drivers on Linux.
- Worker API support on GPU nodes
- Stability and bugfixes to GPU JS support
- Artnet: multiple bugfixes, allow multiple concurrent artnet devices
- Bugfix in spline2D / spline3D process due to expression library ExprTK underlying changes.
- AppImages should now work on any Linux distro thanks to Type2 runtime work.
- OSCQuery bugfixes, initial support for TouchDesigner OSCquery implementation when using https://github.com/jcelerier/td-osc-query-server
v3.1.13
Full Changelog: v3.1.12...v3.1.13
New features
- Native macOS AppleSilicon (M1 / M2 / M3) release :-)
- Experimental, Linux-only: support for directly controlling GPIOs, PWMs, ADCs, DACs. Mainly useful on embedded boards such as Raspberry Pi.
- Tested on Pi 4, Pi Zero 2 W, Orange Pi 5 Plus. You may need to add your user to the relevant groups or run as root.
-
Experimental, Linux-only: support for reading GPS data from a gpsd server. Needs a custom build with libgpsd, not built-in with the official releases yet.
-
Very experimental and buggy, feedback welcome: support for streaming output through FFMPEG directly, for instance to record (finally!) the output of the score to a file, both audio and video, or stream it over internet.
- Ports now indicate when an address is set, with a diagonal strike.
- Linux builds now come with more QPA back-ends built-in such as VNC. Also
minimal
QPA for ensuring a minimal memory footprint, for instance when using Score on a Pi Zero. - New process to spam an input to an OSC address pattern smoothly. A chef's favorite!
- VST3 support on Raspberry Pi
- CMake: add a flag to enable ignoring any library that may have been found through homebrew.
- ArtNet: use custom fixture names if given
Updates & improvements
- Updated built-in pd and libpd version to 0.54
- MIDI timing improvements. In particular, when using JACK under Linux with the JACK MIDI backend, live MIDI input will now be sample-accurate. Timing should also be tighter in general.
Bugfixes
- Bugfixes in curve edition
- Many shader fixes for better support of Metal, D3D etc.
- UI optimizations for usage on low-power computers, Raspberry Pi etc.
- Fixes for running under RPi with Bookworm.
- Bugfix on the JS rendering pipeline.
- Video: allow live-changing the video file.
- Fix some font issues that had cropped up with the Qt 6 migration.
- mac: many Syphon bugfixes.
- Fixes to JIT plug-in for newer LLVM versions (thanks @dave2309 !)
- Fix that VST detection was broken since update to Qt 6.5 changing the QtWebsocket API
- Various ArtNet / DMX fixes
- Fix issues with DMX USB PRO dmx backend
- UI fix: ports had stopped growing under the cursor since Qt 6 update.
- Fix for some shaders that didn't work because they weren't being transformed correctly by the ISF backend.
v3.1.12
New features
- [ui] Make visible when a port has an address
- [ux] Fix that there was no way to split between two intervals
- [console] Add the Utils.shell(...) command to enable running shell scripts
- Many small copy/paste improvements
- Crash restore files are now separated between users
- [ui] Allow to force play a child interval with ctrl-shift
- [ui] Explorer: trim and clean-up addresses added by the user
- [ui] Fix port lock regression (thanks @yiids)
- Back-end only so-far: MIDI 2 support. Next release will support it properly. Note that it will limit macOS support to 11.0+
- WIP on support for rendering graphics through Qt Quick
- Magnetism support for automation and gradient points
- Allow to disable magnetism by holding down Ctrl / Command
- [core] Add a --force-restore command line flag to automatically restore upon a crash - mainly useful for development workflows
- [gpu] Implement GPU decoding of YUV420P10LE YUV422P10LE YUV420P12LE and YUV422P12LE
- Allow to choose the execution commit algorithm through an env. var
- Threads are now named to make debugging easier
- It's now possible to configure the build to use system libraries as far as possible for linux distro packaging needs.
- [ui] Reinstate lost "State" submenu in scenario selection
- [ui] Refactor and fix the play state feature
- Lots of packaging work
- [avnd] Add missing control UI initialization
- [avnd] UI capabilities improvement, allow more flexibility for custom controls
Bug fixes & minor improvements
- Lots of CI and platform fix, clang 17 support...
- Fix that OSCQuery would sometimes not refresh due to a missing call to a boost.asio function
- Fixes for running on systems without Pipewire on Linux
- Fixes for running on Ubuntu 20.04
- Fix z value for tablet input
- [gradient] Improve color accuracy when zoomed with large gradients by drawing them independently
- [video] Improve frame timing accuracy
- [video] fix a potential crash on some systems due to AVFree having to be on the same thread than allocation depending on the codec
- [gradient] Fix crash when used with pattern matching
- [core] Fixes for getting the domains of int values in QML devices
- Many work towards freebsd support
- Humongous lot of CI & cmake work
- Remove references to libraries that have been replaced by more up-to-date things (e.g. Brigand -> boost.mp11), remove references to Qt 5
# Other changes
- This release is based on Qt 6.6, llvm 16, Xcode 15
- macOS: the app name is now
ossia score.app
v3.1.11
New features
- A new execution mode for scenarios, where only one interval can execute at the same time, useful for making easier the creation of scores with alternating sounds, videos, etc.
example.mp4
- New control type to be used in plug-ins: range spinbox.
mapping.mp4
- Big CI overhaul and update with newer platforms, e.g. Debian Bookworm, Ubuntu Lunar. Build with MSVC reinstated.
- Building with Pipewire is now also tested on CI.
- PureData integration: add the
extra
patches to the search path if they are found on the user's system. - Add a SCORE_AUDIO_BACKEND environment variable to allow forcing the audio backend and not load any other at all, mainly to save a bit on startup time.
Changes
- Linux: use PipeWire instead of ALSA / PortAudio by default for new installations.
Bugfixes
- Fix Smoother not updating internal data when type of smoothing applied changes, e.g. the controls would not reflect the reality when switching from 1€ to Median filter.
- Video: remove bogus 2* factor in video renderer. Fix #1470.
- Fix developer build on Fedora.
- LV2: Do not fail at startup if score was built with LV2 support but libsuil is not found.
- Pattern combiner: allow to work with devices with dynamically appearing / disappearing nodes.
- UI cleanup and refactor of some inspector widgets.
v3.1.10
This is a hotfix release for a bug that broke MIDI input on macOS.
New features
- Allow to expose custom OSC devices over Bonjour
- Fix MIDI issues on macOS due to a change in the build system in the previous releases
- Introduce a new UI widget which allows curves to be used as control ports directly, for enabling the creation of new objects
v3.1.9
New features
- Proper support for dynamically built and loaded addons, without requiring a complete clone of the score source tree.
Check the docs! https://ossia.io/score-docs/development/plugins/plugins-with-avendish.html - Add a Range Filter object to ignore values outside of a range.
- Implement UI for XY spinboxes and float spinbox
- Avendish plug-ins: allow to have source and sink video objects, not only filters.
- Avendish plug-ins: allow to smooth values over time.
- More GPU texture formats supported for Avendish plug-ins
- It is now possible to drop files directly on the File port to change them, e.g. for instance
in Granola. - Rework of the device enumeration UI to allow multiple categories
- Implement discovery of OSC devices over Bonjour/Zeroconf/DNSSD
- OSCQuery: allow to specify a port for OSC listening if the remote app only has partial OSCQuery support
but can still notify of changes over OSC. 0 will leave the port be randomly generated by the operating system. - OSCQuery: allow to interoperate with servers which use N or no type instead of I for impulses.
Changes
- Official releases are now based on Qt 6.5. This comes with numerous improvements:
- Multiple shader viewports now work correctly and don't reduce the framerate.
- Much better hidpi support, especially on Windows and with support for fractional DPI.
- Fix some memory leaks for visuals on Linux
- Large amount of bugfixes and performance improvements
- Enables us to port to ARM Macs soon
Due to this change, the lowest supported proprietary platforms are now Windows 10 and macOS 10.15
Bug fixes
- Improve detection of LV2 plug-in location
- Build fixes with clang 16, 17, gcc 13, etc.
- Improve reloading of Serial devices if they don't have a serial number associated.
- Fix that pitch detector only worked correctly for mono
- Rework the camera data flow to fix crashes with V4L2 on Linux
- MIDI: Fix the listening bug where nodes had to be unfolded for midi input to work
- Pipewire: support time position in nanoseconds for playback.
- OSCQuery: fix that WS_IP / WS_PORT were not being used when scanning for OSCQuery devices, nor advertised by score
- Images: fix that images were not being reloaded
v3.1.8
New features
- Round the duration of files with a detected tempo to the closest bar
- Only allow to drop cables between compatible ports
- Disable cable -> port magnetism when connection is impossible
Changes
- Dropped CI platforms: Ubuntu 18.04, Debian Buster
- Signal Display now loops by default when created
- Connecting objects without audio outputs will not disable signal propagation on previous audio objects, e.g. adding an RMS estimator after a sound file won't make the sound silent anymore
Bug fixes
- Fix video decoding on mac which had broken due to an FFMPEG update
- Fix for videos which still needed some CPU pixel format conversion after hardware decoding
- Fixes for Qt 6 on Mac
- Fixes to drag'n'drop of videos, it's now possible to drag multiple video files
- Fixes to filename loading in Avnd processes
- Fix that some widgets could not be automated
- Fix that right click value edition on some sliders did not work
- More improvements to relative path handling
- NV12: fix incorrect stride computations ; make sure that the size used is the size of the frame when recreating a decoder
- Fix description detection of some objects
- Fix that midi hi-res input was ignoring LSB
- macOS: fix that a permission is needed for signed apps to use camera
v3.1.7
New features
- Hardware video decoding support on Raspberry Pi build (only for AArch64 build)
- DMX: support for high-resolution channels
- DMX: support for wheel names in presets (#1441), and improve the way presets are handled.
Note that you will likely need to recreate your Artnet devices if loading old scores. - DMX: support for loading fixtures with LED matrixes defined.
- Camera input support on macOS.
- Better support for relative paths - if a file is in a folder relative to the score save file, its path will now be saved as a relative path to improve reloading of scores on different computers.
- Word wrap in the address view widget to support nodes with long descriptions or big value sets
- UI editor in the address view widget to easily edit parameters with values in a set.
Platforms
- Debian Buster (and GCC 8) are not supported anymore. Minimal GCC version is now 10.
- Removed support for MinGW i686 build as Qt 6 has removed support for it
Bugfixes and improvements
- Fix #1440: save the correct name of scenarios in preset files (thanks @yiids!)
- DMX: Fix that the UI was 0-indexed (DMX channel 1 was 0) (#1451, thanks @yiids!)
- DMX: 512 channels for ENTTEC DMX USB Pro (#1432)
- DMX: Fix fixtures with jumps in channels
- Various Qt6 fixes
- Performance improvements for JS
- Various video playback fixes and improvements
- Signal Display: fix UI bugging when the parent interval would loop
- Large amount of bug fixing through extensive testing with AddressSanitizer and friends
- Refactor all the hash maps, sets, etc. used around boost::flat_{map,set} and ankerl::unordered_dense::{map,set}.
Also ensure that the hash functions used are being unified against current state-of-the-art. - Fix that audio and audioFFT inputs were broken in ISF.
- Improvements to the performance and stability of OSC recording.
- Refactor the code to use concepts instead of enable_if_t as far as possible
- Performance improvements in scenario.
- Fix some issues with some processes on negative speeds.
v3.1.6
New features
- Video: support threaded decoding (see the settings)
- Video: support hardware-accelerated video decoding
- Note: on Windows and macOS the support is built-in, on Linux for now this needs a build of score against your distro's FFMPEG version as the one provided with score does not yet link with Cuda / Intel libs / VDPAU / VAAPI / ...
- Video: audio tracks will now be loaded when dropping a video file
- Video: add GLSL-based decoder for NV12 texture format, add support for 32-bit float textures
- Video: add support for loading .webm files
- Audio: a new streaming decoder has been implemented so that 5.1 1h30 movies' audio tracks do not take 10 GB of RAM but are decoded on the flight instead
- WASM: first steps towards audio & video file support in the web build: score now links with a WASM version of ffmpeg and the GFX plug-in providing the video & isf feature builds successfully (but does not work yet)
- New Raspberry Pi build targeting AArch64 Debian Bullseye. It performs better than the 32-bit one so if you can, use it! (64-bit OS is of course needed)
- Execution: allow to choose how many threads are used by the score engine in parallel mode
- Color automation: allow to choose in which unit the gradient outputs. Note that the default has been changed to RGBA instead of ARGB (#1444).
- Color automation: allow to drop colors from the explorer to create new points
- Gfx: Add support for GPU profiling with Renderdoc to the source code
- Mapper device: support returning
{address:, value:}
arrays when an address is bound
Bugfixes
- Improve conversions of various data types from / to javascript
- Various improvements and fixes to the Mapper processes
- Various small bugfixes all over the place
- Fix that "reinitialize" had stopped resetting the UI button for play
- Fix a bug when editing two points on a curve on the same abscissa
- Fix an ISF crash on invalid input
- Fix that moving the nodal layer did not work
- Many smaller fixes to video decoding, less memory used, faster load times, less CPU busywork, etc