Skip to content

v3.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Nov 15:50

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
    small-audio-channel-extractor

  • Audio: mono merging mode in Merger object
    small-audio-merger

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

small-hdf5-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...