Score Versions Save

ossia score, an interactive sequencer for the intermedia arts

v3.1.14

1 month ago

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!

https://github.com/ossia/score/assets/2772730/224ec035-09dc-436c-bb5d-5f98a9ae5894

  • 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

v3.1.13

3 months ago

Discord Open Collective backers and sponsors GitHub Sponsors

Full Changelog: https://github.com/ossia/score/compare/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.

gpio

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

libav

  • 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! x
  • 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

6 months ago

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

10 months ago

Discord Open Collective backers and sponsors GitHub Sponsors

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.

https://github.com/ossia/score/assets/2772730/ac6bbf91-2d12-460a-ba5d-d8023d41f9c8

  • New control type to be used in plug-ins: range spinbox.

https://github.com/ossia/score/assets/2772730/bc5422e8-d92a-4d4e-a727-08e6a8277eb6

  • 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

1 year ago

Discord Open Collective backers and sponsors GitHub Sponsors

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

1 year ago

Discord Open Collective backers and sponsors GitHub Sponsors

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

1 year ago

Discord Open Collective backers and sponsors GitHub Sponsors

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

1 year ago

Discord Open Collective backers and sponsors GitHub Sponsors

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

1 year ago

Discord Open Collective backers and sponsors GitHub Sponsors

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

v3.1.5

1 year ago

New features and stuff

  • A library of example files is being developed. Check it out here: https://github.com/ossia/score-examples

  • Multiple new processes are now part of the release!

    • Granola: a granulator developed by @bltzr, based on Rama Gottfried’s granubuf object for Max / PureData. Works very well with a graphics tablet!
    • Calibrator: calibrates an input signal of unknown bounds to make sure that we get meaningful values, e.g. when a sensor does not have a precise well-known range.
    • Pattern combiner: combines the values of multiple addresses described by an OSC pattern match, e.g. to take their average, etc. Described in detail in an upcoming blog post.
    • Pattern applier: takes a list and applies it to multiple addresses described by an OSC pattern match. Described in detail in an upcoming blog post.
    • Sweeper: forwards the input value to the addresses defined by an OSC pattern match one-by-one with a configurable time interval. e.g. This can send its input to address foo:/bar.1 for 100 milliseconds, then to foo:/bar.2, then foo:/bar.3, etc. and circle back to foo:/bar.1. Described in detail in an upcoming blog post.
    • Entropy: computes the entropy of an input signal. Ported from Essentia.
    • Gradient scrub: allows to manually scrub between two colours.
    • Patternal: will play a rhythmic pattern passed in input. Described in detail in an upcoming blog post.
    • Melodial: will play a melodic pattern passed in input. Described in detail in an upcoming blog post.
    • Tweener: tween a value between an unknown input and output.
  • NDI support has been merged in the releases, and supports NDI 5. Note that you must install the NDI libraries yourself on your computer and define the environment variable NDI_RUNTIME_DIR_V5 to the path of the libraries for it to work. For instance, on Linux, it can be something like:

    export NDI_RUNTIME_DIR_V5=/opt/ndi/lib/x86_64-linux-gnu
    

    The folder should contains files such as libndi.so (Linux), libndi.dylib (Mac) or NDI.dll (Windows).

  • Work-in-progress on a find-and-replace dialog, accessible through the magnifying glass in the object inspector search field. Thanks @RobinMontferme for your hard work on this!

Bugfixes

  • Fix UYVY422 video shader (mostly used by NDI)
  • Fix the broken Lygia include path so that one can use @patriciogonzalesvivo's Lygia again. Two examples of usage are provided in the mentioned examples.
  • Fix that geometry would not update when multiple meshes were following each other into the same process over time
  • Fix that the RPi build was broken due to a LLVM issue when using the Mesa graphics driver (which uses another version of LLVM causing incompatibilities)
  • Fix that addresses with pattern match characters did not get saved
  • Fix a thread safety error when creating intervals while the score is playing
  • Fix group selection issues in scenario (triggers and conditions were not always selected)
  • Fix various division-by-zero issues which could lead to crashes when rescaling a scenario to a size of zero
  • Many fixes to the supported attributes, e.g. unit, domain, critical, vecf domains, when declaring devices in QML (thanks @bltzr for all the testing !)