Skip to content

Releases: ossia/score

v3.3.0

12 Nov 15:50
Compare
Choose a tag to compare

Discord Open Collective backers and sponsors GitHub Sponsors

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

  • Audio: Add an audio channel selector object
  • Audio: mono merging mode in Merger object
  • Automation: Make prettyName more descriptive
  • Avnd: initial support for objects defined as C++20 modules
  • 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
  • Avnd: support for loading data files in GPU nodes
  • Avnd: support making objects with dynamic port counts more easily
  • CI: Migrated continuous builds to GH actions
  • Core: Use snmalloc as default allocator
  • Data processing: HDF5 explorer processses, which allow to expose HDF5 data as either a 1D dimension or a texture.
  • 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 Qt 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.
  • Graphics: Sprite Reader object for all your retro-gaming needs
  • Graphics: Support for loading point clouds
  • JS: Add utility functions to convert between types
  • Mappings: Add a ArrayGen object to generate arrays easily
  • Mappings: add Combine and Spread objects to enable simpler processing and recombination of values into arrays
  • 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.
  • 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...

v3.2.4

08 Jul 23:06
Compare
Choose a tag to compare

Discord Open Collective backers and sponsors GitHub Sponsors

Full Changelog: v3.2.2...v3.2.4

This is a minor release mainly focused in improving the compatibility of ossia with various operating systems, as well as making packaging easier.

New features:

Changes:

  • Update integrated puredata version to 0.55
  • Many fixes related to VST & LV2 integration on these platforms along with Nix
  • Work-in-progress for Qt 6 LV2 UIs, they are coming back in the next version !
  • Support for VST_PATH and VST3_PATH environment variables
  • libpd fixes for NixOS

Full Changelog: v3.2.2...v3.2.4

v3.2.3-3

04 Jul 09:17
Compare
Choose a tag to compare

Changes:

  • a235dfe [flatpak] More robust way to locate lv2

This list of changes was auto generated.

v3.2.3-2

02 Jul 21:53
Compare
Choose a tag to compare

Changes:

  • c7fb8bf [flatpak] Correct icon install folder

This list of changes was auto generated.

v3.2.3-1

02 Jul 17:07
Compare
Choose a tag to compare

Changes:

  • 43c865c [libremidi] Minor improvement
  • f6420f1 [flatpak] Improve packaging
  • 7c86f7f [libsimpleio] Update for RPi5 support

This list of changes was auto generated.

v3.2.3

01 Jul 23:56
Compare
Choose a tag to compare

Changes:

This list of changes was auto generated.

v3.2.2

28 Jun 13:59
Compare
Choose a tag to compare

Discord Open Collective backers and sponsors GitHub Sponsors

Full Changelog: v3.2.1...v3.2.2

New features

  • Bonjour / ZeroConf / DNSSD: Put DNS resolving in a thread to prevent stuckage on networks / OSes with buggy zeroconf
    • This fixes the "New device" dialog getting stuck for seconds when selecting e.g. OSC or OSCQuery

Bugfixes

  • OSC thread safety fix
  • PureData: support looking for GUI in /usr/lib/puredata in addition of /usr/lib/pd to handle Fedora packaging.
  • PureData: look for the exact version ossia in macOS first.
  • Device explorer: Do not try to display binary buffers
  • CoAP: recursive exploration implemented
  • Fix building against Qt 6.8
  • Fix that the copy-paste keyboard shortcut had been broken
  • Many CI fixes
  • Fix a potential crash when removing some devices
  • Avnd: support reloading processes with new ports
  • Avnd: Handle passing larger messages from exec to ui
  • Various smaller code and performances fixes and improvements
  • Fix BLE support in macOS info.plist (#1542) - thanks @coral for your first contribution !

v3.2.1

17 Jun 13:01
Compare
Choose a tag to compare

Discord Open Collective backers and sponsors GitHub Sponsors

Full Changelog: v3.2.0...v3.2.1

New features

  • New object : Mono Mix 8 (mixes 8 channels in a mono output)
  • New object : Quad Pan (pans front / back / left / right)
  • New object : Trigger (send an impulse when a value goes above / below thresholds)
  • New object : Teleplot (sends an OSC input pattern to a Teleplot server at a given rate)
  • New object : Context-Free Art image generator
  • f4eba84 [avnd] Add a loop mode to CSV
    Recorder playback mode
  • Nix support, checked on CI
  • Gain object revamped, will now smooth the gain changes to prevent clicks

Bugfixes

  • Fix crash on close if the Local device was added, general device cleanup fixes
  • Prevent warning loops which are apparently able to freeze a complete Asahi Linux system
  • Many fixes to running in console with QT_QPA_BACKEND=minimal
  • JS: Fix 3.2.0 regression : FloatSlider value returning undefined due to wrongly commented-out code 🤡
  • GeoZones was missing the GUI widget for normalization of coordinates
  • Fix audio textures continually recreating FFT objects and an FFT memory leak with KFR backend
  • Shmdata: Fix #1511 by adding type to caps

Changes

  • VST3 : update to SDK 3.7.11, which fixes support for MinGW builds

v3.2.0

27 May 00:31
Compare
Choose a tag to compare

Discord Open Collective backers and sponsors GitHub Sponsors

Full Changelog: v3.1.14...v3.2.0

oscar_fan_dance

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

14 Apr 22:19
Compare
Choose a tag to compare

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: Basic audio file recorder process.
    Screenshot 2024-04-14 203100

  • New process: Shell command / shell script executor. Mostly useful as state process.
    Screenshot 2024-04-14 203249

  • 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).

cam

  • 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