ossia score is a sequencer for audio-visual artists, designed to enable the creation of interactive shows, museum installations, intermedia digital artworks, interactive music and more in an intuitive user interface.
- Sequence OSC, MIDI, DMX, sound, video and more, between multiple software and hardware.
- Script and live-code with JavaScript, ISF Shaders, Faust, PureData or C++.
- Leverage IoT protocols such as CoAP or MQTT for industrial-grade automation.
- Interact with joysticks, Wiimotes, Leapmotions, Web APIs and BLE sensors.
- 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.
- Use VST3, LV2 audio plug-ins and more.
Screenshots
Observed history
| App | Change | Version | When ↑ |
|---|
No observed changes yet.
The initial import establishes a baseline. Future version changes will appear here.
Browse the app catalogue →Upstream releases
Release notes supplied by the developer. These dates are not Flathub package publication times.
3.7.122 Sept 2025
ossia score 3.7.1 is a minor patch release on top of the large 3.7 version from two days ago, mainly to fix the build against newly-released clang-21.
Bugfixes and improvements
- Fix build on clang-21, necessary for MSYS2 packages.
- Fix that Wavecycle process had been inadvertently removed.
- Minor graphics pipeline improvements.
- Fix an issue with the drop of preset in hotswap mode.
- Math expressions: fix that pos was not always set to the correct value.
3.7.018 Sept 2025
ossia score 3.7.0 is a feature-packed back-to-school release, with a specific focus on deep bugfix, as well as UX and quality-of-life improvements.
New features and changes
- AirWindows: mono plug-ins will now be able to be used in polyphonic contexts (e.g. they will be scaled to the number of input channels.
- Array recombiner: add a transposition mode to turn for instance [ r, g, b, r, g, b ] into [ [ r r ] [ g g ] [ b b ] ].
- Audio: initial ADM-OSC support in the Spatialization device.
- Beat metronome: it now has inlets for every subdivision, and keeps track of the count.
- Execution: annotate the code base to ensure that execution things happen in the correct thread.
- GPU: allow the ossia::geometry class to carry GPU handles in addition of CPU buffers.
- Interpolator: make the alpha factor minimum lower to enable very, very smooth operation.
- JS: add a Score.createCable(outlet, inlet) function.
- JS: add a Utils.writeFile function.
- JS: allow to add additional script include paths through SCORE_ADDITIONAL_SCRIPT_INCLUDE_PATHS environment variable.
- JS: allow to create processes by UUID.
- JS: allow to introspect all the processes in the library.
- JS: allow to use Qt.exit(0).
- Library: allow to scan QML objects with imports that do not have versions (Qt 6 QML).
- Local tree: add a /script address that allows running JS console scripts.
- Local tree: if sending the OSC message /exit force then no dialog will be shown to ask the user to save modified scores. This will cause data loss if not careful!
- Local tree: properly support processes with variable numbers of ports.
- New process: Accumulator. Statistical tools on incoming values: outputs sum, count, mean, variance, median, kurtosis, min and max.
- New process: Array to texture. Turn a [ R G B A R G B A R G B A ] input array into a video texture.
- New process: Compute Shader. This allows to use compute shader to generate and process images. This is one of the last steps towards a useful GPU-based instancing node for massive particles rendering.
- New process: Counter. Counts the incoming messages. Can optionally loop over a provided max or clip when the max is reached.
- New process: Easetanbul. Delicately ease from one incoming value to another with the classic easing functions.
- New process: Pulse view. A simple LED that lights up on incoming messages.
- New process: Repetition Filter. A simple object to filter repeated values, useful for quick debounce.
- New process: Value Filter. A full-blown toolkit to filter incoming values according to multiple criterion: combines noise gate, range filter, repetition filter with a deadzone, hysteresis, clipping, and temporal filter.
- New process: Vertex Shader Art. This allows to create dynamic audio-reactive visuals from vertex shaders, based on the eponymous website. Be sure to update the user library to get the new shaders, imported from the website github!
- New processes: Bendage, a set of video-bending processes for real-time image destruction: JPeg, Xlippy and Safe Word. They had been developed years ago but sadly forgotten... More to come!
- New protocol: LSL (Lab Streaming Layer) for integration with scientific hardware and software.
- Object Loader: will now display .ply files in addition of .obj.
- QML: add an OSC packet processor to easily handle OSC packets in custom protocols.
- QML: add support for setting QVector2D / 3D / 4D values.
- Shaders: shaders with a mouse input will now automatically start mapped to the first Window devices mouse.
- Sound: clicking on the waveform will now select it.
- UX: add a shift+delete shortcut to remove a process in the middle of a chain while keeping the connections in the chain alive if the processes before and after are compatible.
- UX: allow to create nodes while dropping into an empty full view.
- UX: allow to drop a process or preset from the library onto a cable to insert it in the middle of a chain, if the first inputs and outputs are compatible. Drop will be indicated by the cable becoming dashed.
- UX: allow to drop a process or preset from the library onto a node to insert it in the middle of a chain, if the first inputs and outputs are compatible. Drop will be indicated by the node border becoming orange. This allows hot-swap behaviour, to easily switch for instance a shader or an audio effect for another live.
- UX: change the visualization of ports when they contain an address, to indicate better whether the address is active or not.
- UX: dropping multiple processes or files in nodal view will now properly offset them by a few pixels to improve clarity.
- Value display: it is now possible to request the process to log the last N received messages.
- Video: clicking on the thumbnail will now select it.
Bugfixes and improvements
- Algorithms: replace std:: implementations by custom ones to improve speed under ASAN.
- Audio: thorough rework of audio start / stop ; fix the annoying JACK warning when opening a new document.
- Avnd: add an automated RGBA from / to RGB conversion for processes that want to operate on CPU RGB textures.
- Avnd: improve the color handling API to allow more precise skinning of processes.
- Avnd: various small backend improvements especially for handling musical ticks.
- CI: force ffmpeg@7 on macOS homebrew as ffmpeg@8 does not export symbols?
- CI: ton of bugfixes and change tracking as usual.
- CLAP: implement more features of the spec, in particular tempo / time signature support.
- CLAP: make flush occur in the exec thread, not the main thread, per the spec.
- Execution: fix a long-lived execution bug where setting the speed too fast could cause an invalid token request to be submitted to processes.
- Execution: many smaller improvements and optimizations.
- FFT: multiple fixes to FFT implementation.
- GPU: various improvements and bug fixes to the render loop.
- ISF and other shaders: fix that the default shader had disappeared, when dropping the process without an existing preset.
- ISF: many backend improvements and simplifications. Deep rework of audio textures handling.
- ISF: remove now-unneeded values from UBOs.
- Library: ensure subcategories are sorted.
- Library: performance optimizations.
- Local tree: bugfixes.
- Metronome: fix a potential division by zero.
- Network: handle cases where socket shutdown throws an exception.
- Nodes: improve default node sizing and allow smaller nodes.
- ONNX: add a SCORE_ONNX_FORCE_PROVIDER env var to allow setting the ONNX provider manually.
- ONNX: many bugfixes to various models implementations.
- Sound: do not resize the main interval if dropping a sound file. This fixes a bug where dropping a sound in an empty node could have stopped playback due to the sound having a finite duration.
- Sound: fix that sound would sometimes disappear when changing the used soundfile live.
- Sound: fix that trying to load invalid audio files could lead to unhandled exceptions.
- Sound: update drwav to latest version which allows to handle more cases of ACID tags.
- Spline: fix that it did not loop.
- Time chooser widget: improvements to range handling.
- Tooling: various bugfixes and improvements to fetch-sdk.sh.
- UI: cosmetic adjustments to prevent process to sometimes leak by 1 pixel in the background.
- UI: do not show the PROJECT / LIBRARY paths in Button UI.
- UI: fix that the first switch between nodal and temporal mode could lead to a wrong zoom value being saved.
- UI: improve render performance in execution due to the little green bar constantly causing a repaint of the cables.
- UI: prevent cables seemingly plugging into nothing when objects are connected in the same interval. They will now be turned into short dashed stubs pointing to the direction of the other part.
- UI: prevent long labels from overflowing in nodes.
- UI: various fixes caused by cases where the mouse release event would not be delivered to graphical items, leading the score to possibly end up in an incoherent state.
- UI: various fixes to drag and drop getting stuck
- UX: fix that nodes for sound and video did not always have the correct size when switching to nodal view.
- VST/VST3: fix a crash that occured when dropping a port in a parent interval.
- VST/VST3: scanner will now also look in .vst / .vst3 in the HOME folder in all platforms.
- Video: playback bugfixes.
3.6.111 Aug 2025
ossia score 3.6.1 is a small series of bugfix on top of 3.6.0. Special SIGGRAPH2025 edition!
New features and changes
- Audio: Integrate the great Airwindows audio plug-ins.
- Primitives: plane can now have varying number of subdivisions.
- JS API: add a function to allow getting the current save file.
- Model display: add support for controlling blending options to enable better particle effects.
- Geometry filter: add support for reading .glsl files from the library directly. Check the new examples!
Bugfixes
- Core: fix an execution bug due to concurrency and threading in GPU threads.
3.6.07 Aug 2025
ossia score 3.6.0 is a major release introducing useful new features and objects.
New features and changes
- AI: new model support: FastVLM for video-to-text real-time inference.
- AI: new model support: GAN image generation e.g. with MobileStyleGAN, FBAnimeGAN. More to come!
- AI: new model support: GAN image processing e.g. with AnimeGANv3, DeblurGAN, FSRGan. More to come!
- AI: new model support: LLM inference with Qwen3.
- Audio: add initial support for CLAP plug-ins on Mac, Windows and Linux. Testing and feedback needed!
- Audio: new reverber inspired from vintage Alesis MIDIVerb (BarrVerb, ported from github.com/ErroneousBosh/BarrVerb).
- Avnd: improvements to the available APIs for UI to enable more use-cases with cross-controls interactions.
- Bytebeat: implement a safe mode to try and avoid SIGFPE errors when a division by zero happens due to wrong bytebeat code.
- Core: add xtensor, xsimd and xtl and eigen as official built-in libraries accessible to score addons.
- Core: AI prompt composer.
- Core: AI prompt tweener.
- Core: the codebase now officially requires C++23 to build.
- EGLFS / vkkhrdisplay: allow to exit the app with esc when running without X11 or Wayland for unattended installations.
- Gfx: add support for Shadertoy effects, by drag'n'drop of Shadertoy URLs into a score which will trigger an automated conversion to ISF.
- JIT: port to jitlink which fixes a lot of limitations when JIT-compiling plug-ins.
- Linux: add a --platform argument to the appimage, to replicate the functionality of the previous Raspberry Pi scripts (ossia-score-eglfs, etc).
- LV2: fixes for finding plug-ins in /usr/ with the AppImage.
- Patterns: add support for patterns from drumpatterns.onether.com.
- Processes: new data processing tool: Classifier (based on RapidLib, similar to Wekinator).
- Processes: new data processing tool: Regressor (based on RapidLib, similar to Wekinator).
- Processes: new object: interpolator. From a set of weights and a set of values, provides the linear interpolation of each values. Useful for navigating latent spaces!
- Processes: new object: Nodes, to allow interpolation across multiple states. Features both a "circular node" mode, as well as a Voronoi mode.
- Processes: new objects in the Puara toolkit: Correlation, Compass, Binarize, ERP, Clustering, PCA, Power Band. Thanks @pyandcpp-coder!
- Processes: new objects: Impulse, String, Float, Integer to force the casting of a value type.
- Processes: new objects: Knob, Multislider to have simple UI affordances to control parameters.
- QML UI: add a TextureSource object to allow custom UI to import a texture from the output of a process.
- QML UI: Qt Quick and Qt Quick Controls are now available to use for external UIs with official releases, which allows to make custom software with advanced UIs backed by a given score.
- Script console, mapper device: add objects to allow low-level access to TCP and UDP sockets (#1798) as well as OSC.
- Script editor: syntax highlighting for Faust code.
- SDK: update the platform to LLVM 20, Qt 6.10.
- UI: allow to copy the value of a Value Display easily.
Bugfixes and improvements
- #1720: CMake issues with concurrentqueue on FreeBSD.
- #1831: Missing includes.
- #1833: Sporadic macOS crash when inferring AI models.
- Avnd: processes with file ports will now relativize paths correctly to allow easier project portability across computers.
- Avnd: put message bus things in a thread for GUI objects.
- CI: a few hundred fixes as always.
- Core: use std::span everywhere consistently.
- Faust: fix live-coding a synth (#1829).
- Fix missing port count in process library.
- LV2: fixes to Suil and LV2 integration.
- Reworked categories.
- SDK: many bugfixes to features to allow building addons against the score SDK.
- SDK: rework the CI infrastructure to allow repos building score addons to use a shared set of Github actions on github.com/ossia/actions.
- UI: improve multi-xy pad rendering.
- UI: improve reliability of script editor GUI.
