Releases: ossia/score
Continuous
This list of changes was auto generated.
Full Changelog: v3.3.2...continuous
v3.5.3
ossia score is a sequencer for audio-visual artists, designed to create interactive shows.
Sequence OSC, MIDI, DMX, sound, video and more, between multiple software and hardware. Create interactive and intermedia scores, script and live-code with JavaScript, ISF Shaders, Faust, PureData or C++. Leverage IoT protocols such as CoAP or MQTT, interact with joysticks, Wiimotes, Leapmotions, Web APIs and BLE sensors and integrate programs from a wealth of creative programming languages such as Structure Synth, Context-Free Art and Bytebeat. Load any kind of audio or video format and process visuals through Spout, Syphon, NDI, Shmdata or Sh4lt ; sonify large datasets with CSV and HDF5 support.
ossia score 3.5.3 is another series of small bugfixes and improvements after the large 3.5.0 release.
Full Changelog: v3.5.2...v3.5.3
New features and changes
- Audio: Support using the
PIPEWIRE_QUANTUM
in addition toPIPEWIRE_LATENCY
to set buffer size and sample rate under pipewire. - Linux: add a small independent binary that will run to devise whether the app has all the necessary dynamic libraries available.
- OSC: allow to resolve by using DNS and not just IP addresses; refactor the DNS resolving code across the codebase. (#1689)
- Windows: implement camera resolution enumeration using the most atrocious Win32 API.
- Image node: add a stretch mode port.
- AI models: add EmotionNet support for detecting emotions, DepthAnythingV2 for converting RGB frames into depth frames, and YOLO-segmentation support.
- AI models: better default engine selection.
- Gestures: add many new gesture detection algorithms courtesy of Yash Tiwary, our GSoC student. Thanks @pyandcpp-coder!
Bugfixes
- UI: Fix an UI bug when reloading an item with an XY slider.
- Core: enforce using the same hash function in most places.
- UI: improve rendering performance of cables.
- Presets: fix loading presets of objects that may change ports.
- Core: large cleanup of codebase compiler warnings which had accumulated.
- Packaging: improve support for packaged KFR (#1819).
- Core: update to boost 1.88.
- Mapper: fix a concurrency bug which could have caused crashes when restoring a score which created and removed mapper devices.
- Windows: fix open dialog sometimes having issues (QTBUG-138093).
- Windows: fix that KFR was forced to SSE2.
- Windows / Mac: fix the Window devices being jittery when moved (#1783).
- CSV and audio recorder: ignore quotes in paths as they happen when using the "copy path" feature of Windows 11. (#1598)
- Graphics: fix some textures still being inverted on Metal and D3D11/D3D12.
- macOS: fix to enable running under Xcode frame capture.
- Graphics: allow offscreen renderers to use something else than OpenGL now that it works fine.
- MIDI: replace MIDI Pitch with MIDI Filter which is more powerful.
- Graphics: handle more cases of texture formats in different processes, e.g. support R8 or RGB as input instead of only RGBA in Avendish nodes.
- VST3: fix for some buggy plug-ins which do not follow the spec and do not allow deleting and recreating their IPlugView.
- macOS: fixes for GL rendering (#1807).
- UI: improvements to focus behaviour (#1811).
- Camera: fix #1814.
- UI: improvement to Graphics Combo ui widget.
- Scripting: add Score.availableProcesses() and Score.availableProtocols() for introspection of available features and processes.
- Scrpiting: implement removal of processes.
- Audio: update Miniaudio on macOS and set it as default backend. Fix #1797.
- Core: improvements to the quantization algorithm.
- Core: lots of work to prevent bogus UBSAN warnings on hash functions.
v3.5.2
ossia score 3.5.2 is another series of small bugfixes and improvements after the large 3.5.0 release.
Full Changelog: v3.5.1...v3.5.2
New features and changes
- New process: Deuterium is a drum machine specialized in loading Hydrogen drumkits.
- New process: Kabang is a more controllable drum machine with 8 potential samples, pitch shift, etc.
- New process: Minibang is a basic lo-fi vintage one-sample sampler.
- UI: owners of a mouse with a forward / backward button can now use it to scroll through presets on the preset button of processes.
- UI: double-clicking on a 2D pad will center it.
- Breaking change: the address for key press on Window devices has changed. A key release event has been added, too.
- Core: add an --ui-debug option to enable visualizing the score backend when creating a custom QML UI.
- Core: add a few new API functions to enable building more powerful apps accessing all the devices.
- Packaging: use distro Faust libraries when system libraries are requested.
Bugfixes
- Packaging: various flatpak-related fixes.
- OSCQuery: many compatibility improvements for various kinds of HTTP and mDNS implementations which may not always support all features.
- Graphics: performance optimization: do not render empty passes in unconnected ports, etc.
- Core: fix a deep logic bug which caused weird errors when restoring a document that had cables being edited.
- Graphics: fix auto-repeat blocking key input on Window device.
- Graphics: disable back-face culling on plane primitive.
- Graphics: fix an invalid vertex count issue with some primitive.
- Graphics: fix UV maps on model display with Vulkan.
- Core: UI performance optimization during execution of the score.
- Graphics: fix avnd graphics processes with custom render target size.
- VST: fix that reloading VSTs had broken on Windows and macOS.
- VST: enable -execstack flag on Linux as otherwise with newer glibc this break some proprietary VSTs.
v3.5.1
ossia score 3.5.1 is a series of small bugfixes and improvements after the large 3.5.0 release.
Full Changelog: v3.5.0...v3.5.1
New features and changes
- CI: use native ARM64 runners for building AArch64 flatpaks.
- JS: add support for ComboBox inlet.
- VST: make VST scanners much more lightweight.
- Video: update HAP library to support newer formats.
Bugfixes
- CoreAudio and ALSA: bugfixes for high channel count soundcards. Raise limit to 1024.
- Faust: fix potential errors due to disabled floating-point exceptions when instantiating instruments.
- Flatpak: use native dialogs as it seems Flatpak does not supports Qt dialogs.
- JS: fix that TextureOutlet was using an expensive RGBA32F texture instead of a RGBA8 one.
- Linux: improve GLES support on AArch64.
- Mapper device: fix a concurrency issue when closing a score.
- Signal display: fix a potential crash when reloading scores from older versions using it.
- VST: many small VST / VST3-related fixes in library scanning.
- VST: limit parallel processes being launched for VST scans.
v3.5.0
ossia score 3.5.0 is a large upgrade which paves the way towards many future improvements.
Full Changelog: v3.4.1...v3.5.0
Major platform changes
- Official releases now assume an AVX2 CPU and 64-bit on Intel and AMD CPUs. This does not apply to releases from various packages managers such as MSYS2, NixPkgs, Flathub, FreeBSD ports, only to official binaries from the official ossia website
- Updated libraries: Qt to 6.9, FFMPEG to 7.1.1, etc.
- On macOS, at least macOS 12.0 is now required as it is the minimum for recent Qt versions.
- On macOS, score will abort if DYLD_LIBRARY_PATH is set as this usually cause spurious crashes when using the app due to loading Homebrew libs such as libpng over Apple ones.
- The AArch64 Linux build (for Raspberry Pi, Asahi Linux, etc.) is now based on AppImage too and uses the same build scripts than x86_64 Linux.
- Build support for newer compilers, e.g. Clang 20, 21 as well as CMake 4.0.
- The entirety of MIDI processing inside score is now based on MIDI 2 UMP instead of MIDI 1 messages, which for now has no other user-facing effect than improving performance when using many MIDI objects, as UMP is more efficient.
New features
- Audio: add ALSA support through Miniaudio to handle some cases where MMAP (Alsa Raw) and PortAudio both cause issues, e.g. for the pulse ALSA plugin
- Audio: add an env var to force a global audio decoding method
- Core: support building in C++23 and C++26 mode.
- DMX: many interface improvements and features when creating a device. Allow to set universe length for special cases (DMX LEDs with 510 channels per universe). DMX addresses are more easily editable. Allow to add directly simple dimmers and RGB pars.
- DMX: work-in-progress UI for defining LED fixtures (strips, panes)
- Graphics: add a SCORE_DISABLE_SHADER_PREVIEW environment variable to disable shader preview widgets in the main score UI, as depending on the pipelines they can cause unwanted graphics lags in live performances.
- Graphics: add support for the Qt RHI D3D12 backend
- Graphics: allow running on the vkkhrdisplay backend, to support Vulkan rendering without any graphics server.
- Graphics: allow setting single, double or triple buffering in the settings.
- Graphics: enable NVidia and AMD card by default if available over integrated graphics
- Graphics: enable Vulkan 1.1+ if available
- Graphics: texture inlets can now specify a custom rendering resolution and filtering mode (ne.g. earest or linear).
- HTTP device: add onRead and onReadString to allow to handle streaming input
- HTTP device: add support for POST requests
- ISF: support shader controls with inverted min / max
- JS: add an UI mode to run a score with a custom Qt Quick user interface, through `--ui` command line flag.
- JS: add functions useful for creating and looking up devices from the console.
- JS: texture inlets will now receive mouse, touch and key events to enable user interaction with e.g. MouseArea.
- MIDI: add a MIDI to array plug-in
- Model display: implement a basic fulldome projection mode suitable for point clouds and detailed geometry
fulldome-small.mp4
- Spatialization: add the GBAP add-on which allows to generate grid-based spatialization coefficients. Thanks @bltzr @D3mh4!
- Spatialization: add the Matrix audio object which spatializes a source to a number of channels according to a list of coefficients.
- UI: add new widgets useful for spatialization trajectories: Multi-cursor and Path generator. Thanks @D3mh4!
- UI: Allow to open code in external editors. Thanks @samamou! For this feature to work an editor must be set in the settings.
- UI: indicate when an address is not found in the tree to help with error understanding
- UI: make address search recursive and fix some unhandled cases
Changes and bugfixes
- AI models: many improvements to support of the various ONNX models. Thanks @samamou!
- AI models: load onnxruntime dynamically so that score can still run on macOS < 13
- Audio: better handling of denormals across the board, allow to specifiy that some nodes actually needs denormals
- Audio: fix that dummy plug-in was always set back to 1024 buffer size
- Audio: fix using ossia with soundcards with more than 128 channels on Mac.
- Build fixes for various LV2 and Suil corner cases
- Camera: fix that custom camera type was not being saved
- Coreaudio: fix device names in selector and no device not coming back
- DMX: remove libartnet dependency which fixes a lot of ArtNet spurious errors
- Engine: fix play / pause remote control in no-gui mode
- GPIOs: add a timer to regularly poll inputs
- Graphics: add a way for render nodes to have a parent renderer, to allow synchronized multi-viewport
- Graphics: create less surfaces when scrolling ISF presets which makes interaction much smoother.
- Graphics: fix OpenGL support on Flatpak on GLES platforms.
- Graphics: fix window not coming back up for rendering once closed
- Graphics: many compatibility fixes for Spout and Syphon support
- Graphics: many fixes to Y being inverted in some cases with back-ends other than OpenGL.
- Graphics: more leniency towards invalid shaders, try to avoid crashes in much more cases.
- ISF: set default range to 0-1 to not break mappings if the shader does not provide a range
- JIT: fix target triple especially on Apple
- Library: improve startup times by deferring parsing of many file formats to when they get selected on the library.
- Local device: fix changing port
- LV2: look for plugins into $HOME/.lv2
- macOS: reenable JIT on AArch64
- Mappings: Fix conversion of int addresses into float nodes ; fix midi mapping of CCs into e.g. ISF shaders
- Micromap: fix that time-related variables were broken in non-array cases
- MIDI control surfaces: fix support for hardware BCF2000 protocol
- OSC: fix invalid widget for OSC over serial port
- Processes: fix that kurtosis analysis process had disappeared.
- Platform: bugfixes with snmalloc integration. Thanks @mjp41!
- RMS: fix that computation was broken when in stereo
- UI: fix copy-paste position of multiple nodes in nodal view
- UI: fix splash screen scaling on hidpi screens
- UI: fix that inspector comboboxes would not update when creating a new device
- UI: show address widgets if an address is set
- Vel to Note: fix that notes were killed instantly when no quantification
- VST: fix that resizeable plug-ins would not show up if a global UI scale factor was set in score.
- VST: look for plugins into $HOME/.vst
And of course numerous smaller bugfixes, code and performance improvements, in particular many fixes to the graphics pipeline.
v3.4.1
Full Changelog: v3.4.0...v3.4.1
ossia score 3.4.1 is a bugfix release following the large v3.4.0 release.
Bugfixes
- Bitfocus: handle regexes better in fields, fix that some configuration fields could not be typed into.
- CI: fix missing env. var when building tarballs.
- CI: fix build on Qt 6.2
- Scenario: disable min / max bounds when connecting to a trigger
- Local tree: add port min/max metadata for parameters
- Local tree: allow copy-paste of local tree address of inlets and objects
- Mapper device: safety fix, implement #1672 (Device.read and Device.write)
- BSD: look explicitly for linux/gpio.h as it seems that some BSDs have linux/types.h and not linux/gpio.h
- Tooling: developer.sh: fix that it would clone addons with sudo leading to end-user confusion
- Gfx: Fix cpu filter ports with multiple inputs
- Linux: disable custom qt.conf in distro builds
- Poles: fix count which had an improptu off-by-one error
- macOS: more Coreaudio fixes, for some devices such as Blackhole
v3.4.0
Full Changelog: v3.3.2...v3.4.0
ossia score 3.4.0 is a feature-packed release for the start of 2025.
New features
- Introduce initial (very alpha, mainly to set the base architecture) support for loading AI models through onnxruntime. Right now supported models are BlazePose, YOLOv7 (blob detection), YOLOv8 (pose), ResNet. More to come, please mention any model you'd be interested in on our Discord! Feat. a cute new icon by @aklevy!
- Introduce initial support for using Bitfocus Companion connections and modules directly from ossia score. This requires installing an additional package from the package manager.
- Introduce initial support for MIDI control surfaces using the MCU protocol. Selecting a process will now make its parameters available over the control surface UI.
- Introduce Array Combiner, Array Tool, Array Flattener, and Array Recombiner processes to efficiently process arrays in various ways.
- Add a new Envelope Follower based on Kevin Ferguson's algorithm. Unlike other analyzers, this one stays in the audio domain to enable CV-like control of things.
-
Add a new 2D Point View visualizer to visualize arrays of 2D positions.
-
Add an initial implementation for 2D and 3D DBAP spatialization algorithm. Note that the implementation just generates the coefficients, and thus can be applied to any kind of spatial content, not just audio data.
-
Arraygen / Arraymap now provide an
n
variable to get access to the current number of elements. -
Improve on-line help integration. Hitting F1 on any process will now open a browser with the help page of said object. Device explorer's protocol dialog now has a Help button linking to the relevant protocol documentation.
-
Integrate on-line help with Faust, VST and LV2 help page if available.
-
LED View now supports displaying input array as a lightness array.
-
Lightness Computer now supports RGBW output to facilitate use with this kind of LED strip.
-
LV2: add a locally-built Suil for showing LV2 UIs as the latest release does not yet support Qt 6. Note that this does not ship with the release yet, it's only for source builds.
-
macOS: more video format support.
-
macOS: port away from PortAudio to MiniAudio for audio backend. This finally allows to select a different input and output device and overall looks much more stable all while being much easier to integrate.
-
Patternist: add support for Accent and Slide features to enable sick acid bassline patterns.
-
Patternist: add support for legato notes.
-
Patternist: add TB-3 (303-like) patterns to the pattern library.
-
Patternist: add patterns from "260 Drum Machine Patterns" (René-Pierre Bardet) to the pattern library (thanks @danielmroczek).
- Soundfile: allow to choose three quality levels for the resampling mode (e.g. pitch shift instead of time stretch). Previous and default mode is the HQ one, based on high-quality sinc interpolation from libsamplerate.
-
score can now send MIDI and LTC timecode through specific objects.
-
Threedim addon moved into official score repo to track changes more easily.
Platform and CI changes
- Compatibility with Boost 1.87.
- Flatpak: add an AArch64 build in CI.
- Flatpak: update to the latest toolchain.
- Initial successful builds of libossia targetting ESP32, more to come :-)
- Many updates to dependencies
- Reduce duplication in Github Actions CI tasks.
- Replace Azure entirely with Github Actions.
- RPi build: improve the startup scripts to cleanup unwanted dependencies if running on more recent AArch64 operating systems, such as Arch Linux or Asahi Linux.
- Ubuntu Lunar (23.10) was removed from CI due end-of-life.
- Ubuntu Oracular (24.10) was added to CI.
Bugfixes and improvements
- Audio Recorder: support relative paths like elsewhere.
- Automation: big rework of the pen tool to make sure we never end up in invalid states.
- Automation: fix a rare crash when editing a curve point's X position.
- BSD: implement VST3 support.
- Calibrator: fix crash on remove on macOS. Thanks @led78 for finding and reproducing it!
- CSV Reader: multiple bugfixes, improve timestamping.
- Dev: allow to bypass some harmless ASAN warnings through SCORE_SANITIZE_SKIP_CHECKS=1 env var.
- Dev: fix missing include (thanks @aalex!).
- Fix some save format cable-related issues.
- Geometry Filter: allow to chain multiple identical filters (a small feature in appearance, which requires a full-blown GLSL parser in practice...).
- Geometry Filter: support livecoding better.
- Gfx: work on geometry output from nodes in the GPU node graph.
- GPS: fix a memory safety issue.
- JIT: re-add support on AArch64.
- JS: implement a deviceToOSCQuery function to export the OSCQuery JSON of a given device.
- JS: implement an enumerateDevices API to track added and removed devices like in the Device dialog.
- Kinect: fix build, initial try for a registered point-cloud output.
- MIDI: fix that devices would sometimes enumerate too early on macOS leading to them not being visible in the UI.
- MIDI: fix Computer Keyboard support on macOS. Note that this requires Accessibility permissions.
- MinGW: reenable addons on CI.
- MSVC: reenable addons on CI.
- OSC: add support for always sending bundles for devices that only understand bundles.
- OSC: disable broadcast being locked to 255.255.255.255.
- OSC: fix that OSC devices were not recreated leading to OSC not working after editing the device.
- OSCQuery: improve compatibility with weird embedded webservers.
- Package manager: support packages with multiple files to download.
- Patternist: fix crash when changing current pattern.
- Serial: work on allowing non-standard baud rates, if the system supports that.
- Signal display: fix scaling issues.
- UI: make a preset appear under the mouse when dropped.
- UI: performance optimizations for process and filesystem views.
- UI: improve behaviour of nodal view especially when rescaling and resizing things.
- UI: improve behaviour of copy-paste in nodal view.
- Video: do not hide cursor on embedded video windows.
- Video: multiple fixes to color space shaders introduced in 3.3.2.
- VNC: fill the requested screen resolution instead of a 1024x768 default square.
- VST3: fix crash when closing and reopening JUCE plug-ins. Fixes #1620.
- Many performance optimisations for the various math expression objects.
- As always a slew of smaller bugfixes and improvements !
v3.3.2
Full Changelog: v3.3.1...v3.3.2
ossia score 3.3.2 is a minor hotfix release following the major 3.3 release and hotfix 3.3.1 release.
New features
- Support for automatic detection of BT.601, BT.709 and Rec2020 colorspaces in videos. Rec2020 is currently downscaled to SDR via tonemapping until we support a proper HDR video pipeline.
- Signal Display will now display constant values as middle-centered dots
- Devices: raw evdev input access on Linux to enable reading any kind of global keyboard / tablet / mouse / ACPI event
Bugfixes
- Audio: fix that audio analysis nodes would crash if using a non-power-of-two sample rate.
- Audio: improve nomenclature for audio channel extractor.
- Merger: fix missing combobox items.
- Geometry filter: fix default filter which wasn't valid json
- Geometry filter: add a validation step
- Shmdata / Sh4lt: fix support of YUY2 video
- LV2: prevent plug-ins with atom ports to crash.
- MIDI: fix support for computer keyboard on non-X11 platforms.
v3.3.1
Full Changelog: v3.3.0...v3.3.1
ossia score 3.3.1 is a minor hotfix release following the major 3.3 release.
New features
-
Signal Display will now display multi-dimensional arrays in addition of single values
-
Artnet devices can now receive an array of [r,g,b] values directly for instance to more easily control LED universes.
Bugfixes
- Build: fix warnings coming from 3rdparty libraries
- CI: multiple fixes
- UI: do not center widgets in vertical layouts
- UI: fix precision issue with xy / xyz spinboxes and large ranges
- Signal Display: fix that it was stuck and could not be moved anymore
- Core: be more lenient with processes that have dynamic ports
- Core: fix that a QThread was deleted after QCoreApplication leading to a macOS crash
- OSC: fix a crash on editing OSC devices's OSCQuery port
v3.3.0
Full Changelog: v3.2.4...v3.3.0
ossia score 3.3.0 is a major release featuring a host of new capabilities.
New features
-
Automation: Make prettyName more descriptive
-
Avnd: initial support for objects defined as C++20 modules. See an example here.
-
Avnd: support for automatic reflection of enumeration names through magic_enum, removing the need for some macros
-
Avnd: support for CV-like data processing object with a very simple API. Example
-
Avnd: support for loading data files in GPU nodes. Example
-
Avnd: support making objects with dynamic port counts more easily. Example
-
CI: Migrated continuous builds to GH actions
-
Core: Use snmalloc as default allocator
-
Data processing: HDF5 explorer processes, which allow to expose HDF5 data as either a 1D dimension or a texture.
hdf5-processes.webm
- Data processing: initial work towards importing of CSV and HDF5 files as curves by drag-and-drop.
- Devices: initial work in allowing devices to specify the resources they are using such as ports, etc. in a more structured way.
- Devices: Move the Device QML object implementation from score to libossia ; add Device.read/write to HTTP device
- Devices: support for direct NeoPixel LED control over SPI.
- Devices: support for the Sh4lt protocol which supersedes Shmdata. Thanks @nicobou!
- Graphics: Add support for GPU decoding of RGB24 and BGR24 textures, useful for QuickTime Animation qtrle files
- Graphics: Efficient geometry filtering pipeline. Introduction of a Geometry Filter object which is able to inject transformations in the vertex shader stage and support for geometry processing relationships in the graphics thread.
geometry-filter.webm
- Graphics: Sprite Reader object for all your retro-gaming needs
sprite-reader.webm
- Graphics: Support for loading point clouds. Tested with point clouds up to 20M vertices.
point-cloud.webm
- Graphics: Support for point & line rendering in Model Display
- JS: Add utility functions to convert between types
- Mappings: Add a ArrayGen object to generate arrays easily
arraygen.webm
- Mappings: add Combine and Spread objects to enable simpler processing and recombination of values into arrays
combine-spread.webm
- Mappings: add initial gesture detection support through the Puara Gestures library
- Mappings: Mapping Tool object with a lot of feature for mapping data such as deadzone detection, re-scaling, etc.
mapping-tool.webm
- Math: Fix live editing of expression in arraygen / arraymap
- MIDI: initial support for computer keyboard input
- MIDI: Virtual ports will now be scanned
- OSC: add support for the SpatGRIS OSC API directly through a new device
- OSC: allow to expose a local OSC device as a TCP server
- OSC: allow to expose a local OSC device over an OSCQuery port
- OSCQuery: handle buggy HTTP implementations that do not properly close connection
- OSCQuery: implement dense mode which packs values according to an OSCQuery spec, especially useful for resource-constrained devices
- Pipewire Respect
PIPEWIRE_LATENCY
environment variable - Platforms: add CI script based on native packages for Debian Trixie
- Platforms: prevent the Intel version to run on AppleSilicon Macs as it is thoroughly incompatible
- Platforms: support for building in C++23 mode
- Platforms: support for macOS 15 and Xcode 16, clang-18, clang-19, Fedora 41
- PureData / libpd: revert to a version with working audio
- UI: Add icon for upcoming AI-based processes. Thanks @aklevy!
- UI: Add support for slowing down slider changes with CTRL / Command
- UI: implement reset-to-default-value-on-double-click on most central view UI controls
- UI: make the middle column resizeable in the Device dialog. Thanks @samamou!
- UI: tighter UI style
- VST3: Support for VST3 on AArch64 platforms
Improvements and bug fixes
- Audio: Fix saving / loading of propagate attribute
- Audio: many fixes to quantification.
- Audio: Various fixes for VST and LV2
- Automation: Fix that changing the address would reset the scale if it was a pattern
- Avnd: dynamic ports improvements
- Avnd: support for texture sizes in CPU texture filters
- BLE: Fix support on Win32 and Flatpak
- Core: Be more lenient when reloading if a cable isn't present in a save file due to dynamic operations
- Core: finish porting all the plug-ins written in the previous "Fx" API to Avendish which is now the one and only officially supported API for making ossia add-ons.
- Curve rendering: optimizations when we have more than a thousand points.
- Devices: Add a more optimized device_parameter implementation when we know the type beforehand
- Devices: DNSSD: force every execution to execute over the same thread as Avahi is not thread-safe nor reentrant
- Devices: Do not try to infer the min / max if things are patterns
- Execution: domain and range improvements, allow value ports with ranges, fix LFO output range
- Graphics: Fix missing Spout I/O on Windows
- Graphics: fix that shmdata input do not reconnect when writer quits
- Graphics: improve the amount of recomputations needed for geometry updates
- Images: fix render shader which had broken
- Items: Send signals to release mouse if a graphics item is deleted while being grabbed
- JS: thread safety fixes and improvements
- MIDI: fix some note-off cases that were not handled.
- MIDI: Use the proper app name in MIDI APIs
- Platform: Improve support of
QT_QPA_PLATFORM=minimal
- Raw I/O: improve PWM support
- Scenario: creating a state by double-click will now automatically make it auto-started
- Spline: Update and fix small bugs in tinyspline library
- UI: Add documentation links to most processes and devices. The process inspector and device dialog now have direct links to the relevant help pages.
- UI: Be more permissive with looping slot issues
- UI: fix connected port look in hi-dpi mode
- UI: fix the ugly ampersand that appeared some Qt versions ago.
- UI: Fix UI not resizing when a port is added to a node
- UI: LineEdit: improve relayout in nodes
- UI: make sure that controls always show up no matter what in the inspector panel
- UI: port UI improvements in inspector ; show more port names and always show port list.
- UI: respect Alt-key magnetism behaviour when dropping a state.
- UI: Update scene when node size changes to prevent background artefacts
- UI: use double-precision for storing slider data as it caused visible precision issues with large ranges
- VST / VST3: Disable GUI when running under wayland as plug-ins will crash
- VST and friends: Use the actual processed samples as timing information instead of a computation depending on speed
- YSFX: cmake improvements
- Many, many other bugfixes and code improvements...