The software developed by ossia partly relies on specifications produced during the i-score research project, which has been led by LaBRI (with several academic, industrial and artistic partners) since the late 1990s, in order to devise new models and applications for designing and executing interactive scores, first for musical composition with Boxes, and IScore.
Intermedia and multimedia support has then been added starting from 2008 with the Virage research project, and then with the i-score sequencer.
Following the ANR OSSIA research project, which took place between 2012 and 2015, a new version of the sequencer has been implemented by Jean-Michaël Celerier, as part of his doctoral thesis. This endeavour has been joined by several artists and developers, which established itself as the ossia collective. The sequencer has been named ossia score, and its underlying library libossia. They are both available on GitHub, and documented on this very website.
- Contributing to the user library
- Extending the scripting API
- Implementing new protocols
- Implementing new processes and effects
The score project is open to contributions. We need help on :
- Contribution of example scores
- Creation of namespaces for your favorite application
- Creating tutorials content
- Creating skins
- Fixing TODO’s in the code
- (soon) Translations
- Linux distribution packaging
Most of the discussion regarding score features occurs on the issue tracker. If you wish to help, you can join the forum, the Discord channel or the chat on Gitter. We can help you into making your first contributions to the project.
Here is a video explaining how to contribute to the code of ossia score:
- Networked edition and execution (done in 3.0.11!).
- Support for recording audio, midi directly in the score. Improvements for OSC recording.
- Parametric processes. How to have parameters and variables used within the scope of a given box and changed easily across different instances of that box.
- Mixer panel : making mixing from within score more straightforward.
- WebAssembly support : experiments have been made a few years ago – most of the score engine and user interface builds for WebAssembly, but not every process works yet.
- Support for geometry transformations and compute shaders (done in 3.2.0!).
- Better support for sequences.
- Support for MIDI 2.0.
- Spout, Syphon support (done in 3.0.4!).
ossia score 3 fulfills the long-term goal of being a proper multi-media platform, by providing integrated video abilities, in sync with the rest of the score, as well as musical abilities with support for tempo, musical metrics and quantization. Finally, the core engine has been extended to allow cycles in scenarios with a new kind of connection. This allows to implement state-machine-like behaviours in scenarios.
- Support for reading videos, right now H.264 and HAP. Implementation uses Vulkan, Metal, D3D or OpenGL depending on the platform for maximal performance. Multiple viewports are supported. Spout output is supported.
- Support for applying shader-based filters on these videos. Interactive Shader Format is supported.
- Support for JSFX plug-ins, VST3.
- Support for tempo, musical bars, etc. It is now possible to sync the triggering of a timenode to the beginning of the following bar for instance. Polyrythmy is supported : each interval can have its own tempo and metrics timeline.
- Support for cycles and loops in the main scenario.
- Preset mechanism for built-in processes.
- Built-in looping for individual processes, to easily loop audio files.
- Intervals can now be viewed in nodal mode to easily interconnect their processes.
- Many small and useful new processes – signal visualization, pattern sequencer…
- JIT compilation support. This will be an experimental feature for the 3.0 release cycle, allowing you to write and run C++ extensions directly from within the software.
This version is a big update to 2.0, adding two new processes :
- Control surface : allows to have UIs to control remote parameters in the score
- Nodal : allows to layout processes in a graph interface, like many other famous visual programming languages. Temporal processes can be nested in nodal processes.
- RemoteControl : control your score through a simple WebSockets API.
- Tons of UI work
The 2.0 version is a paradigm shift : it introduces data and audio processing in score. The name was changed to reflect the OSSIA project legacy. It is now possible to play sounds, apply sound effects, among many other changes. The main highlights are :
- Execution is now based on synchronous audio processing APIs
- Playback of sounds
- Support for LV2, VST effects and instruments
- Support for Faust effects. The Faust compiler is integrated directly to score.
- Support for many new protocols : OSCQuery, ArtNet…
- Many new processes: LFO, step sequencer, math expressions, etc
- Pattern matching
- Drag’n’drop in a lot of places
- Creation of a library panel and a user library
- A super cute new mascot, Oscar !
The first release for the 2.0 version was released in April 2018.
The 1.0 version is the concretization of the last year of effort of the OSSIA project. Thanks to a from-scratch rewrite, the software has been highly modularized, and now offers the following features :
- Restore on crash
- Various plug-in APIs
- Arbitrary hierarchy
- Complete conditional branching and triggering
- A new dark blue theme
The 1.0 version was released in 2016.
Thanks again to the OSSIA project, a research effort will be carried on from early-2014 to 2015 in order to implement logic scenarios in i-score. This will include:
- Support for looping boxes and (sub-)scenarios
- Better graphic support for the conditional branching
- Multi-user support
- Framework for the future support of “plug-in” boxes:
- Mapping boxes (for several one-to-one mappings between remote parameters)
- Generic boxes and SDK for third-party boxes (e.g. audio boxes using JamomaAudioGraph, video/openGL boxes using QuartzComposer, etc…)
Thanks to the OSSIA research project, some services of i-score have been improved by implementing the Jamoma Modular framework into libIscore, and a dedicated framework for Interactive scores management
This allows some new features and improvements :
- Better devices/namespace support, including:
- better devices configuration and automatic discovery
- devices’ parameters’ attributes support (including range, type, etc….)
- better curve management
- recording of performance actions as curves
- declaration and management of i-score’s boxes parameters (such as speed, trigger points….)
- Initial support of the conditional branching
Initial version, including (as of 0.1-alpha1 – December 2012):
- Linear edition (no loops, no branching)
- One static Minuit device only (MinuitDevice1)
- Simple curves (no range editing)
- Nested scenarios (hierarchy) support
- Simple playing (unfinished GOTO function)
Several incremental alpha versions, have been released along the way, including:
- Plain OSC support
- Minuit devices configuration
- Several interface improvements
Talks about the project are regularly given in conferences and meetups. Here is a list:
Research articles and Ph. D. dissertations
- Patches in a timeline with ossia score, Jean-Michaël Celerier, Vortex Music Journal
- Architecture logicielle du projet ossia, Jean-Michaël Celerier, Revue Française d’Informatique Musicale
- A Cross-Platform Development Toolchain For JIT-Compilation in Multimedia Software, Jean-Michaël Celerier, LAC2019
- Authoring interactive media: a logical & temporal approach, Ph. D. thesis, Jean-Michaël Celerier
- Leveraging domain-specific languages in an interactive score system, By JM. Celerier, @JSSA regular meeting
- i-Berlioz: Interactive Computer-Aided Orchestration with Temporal Control, By E. Miranda et al., @ICNMC2018
- Generating Orchestral Sequences with Timbral Descriptors, By A. Antoine et al., @TIMBRE2018
- Extending dataflows with temporal graphs, By JM. Celerier et al. @ICMC2017
- Exécution répartie de scénarios interactifs, By JM. Celerier et al. @JIM2017
- Authoring and automatic verification of interactive multimedia scores, By J. Arias et al. In Journal of New Music Research.
- Graphical Temporal Structured Programming for Interactive Music, By JM. Celerier et al. @ICMC2016
- Rethinking the audio workstation: tree-based sequencing with i-score and the LibAudioStream, By JM. Celerier et al. @SMC2016
- Automatic Construction of Interactive Machine Improvisation Scenarios from Audio Recordings, By J. Arias et al. @MUME2016
- Présentation d’un formalisme graphique pour l’écriture de scénarios interactifs, By T. de la Hogue et al. @JIM2016
- Outils d’écriture spatiale pour les partitions interactives, by JM. Celerier et al. @JIM2016
- Sémantique Formelle et Vérification Automatique de Scénarios Hiérarchiques Multimédia avec des Choix Interactifs, Ph. D thesis, J. Arias.
- Le séquenceur interactif multimédia i-score, by J. Arias et al. @JDEV2015
- Foundations for Reliable and Flexible Interactive Multimedia Scores, by J. Arias et al. @MCM2015
- Exploiting Parallelism in FPGAs for the Real-Time Interpretation of Interactive Multimedia Score, by J. Arias et al. @JIM2015
- A Framework for Composition, Verification and Real-Time Performance of Multimedia Interactive Scenarios, by J. Arias et al. @ACSD2015
- OSSIA : Towards a unified interface for scoring time and interaction, by JM. Celerier et al. @TENOR2015
- Modelling Data Processing for Interactive Scores Using Coloured Petri Nets, by J. Arias et al. @ACSD2014
- Executing Hierarchical Interactive Scores in ReactiveML, by J. Arias et al. @JIM2014
- OSSIA : Open Scenario System for Interactive Applications, (FR) by T. de la Hogue et al. @JIM2014
- i-score, an Interactive Sequencer for the Intermedia Arts by P. Baltazar et al. @ICMC2014
- An Extension of Interactive Scores for Multimedia Scenarios with Temporal Relations for Micro and Macro Controls, by M. Toro-Bermudez et al. @SMC2012
- Real-Time Temporal Control of Musical Processes, by R.Marczak et al. @NMEDIA11
- A Model for Interactive Scores with Temporal Constraints and Conditional Branching, by M. Toro-Bermudez et al. @JIM2010
- Concurrent Constraint Conditional Branching Interactive Scores, by M. Toro-Bermudez et al. @SMC2010
- Virage, designing an interactive intermedia sequencer from users requirements and theoretical background, by A. Allombert et al., @ICMC 2010 – long version
- Virage : une réflexion pluridisciplinaire autour du temps dans la création numérique, by P. Baltazar et al., @JIM 2009
NB : Virage is a intermedia sequencer. It can be considered as a prototype from which i-score has been inspired.
- Aspects temporels d’un système de partitions musicales interactives pour la composition et l’exécution, by A. Allombert PhD. Thesis – Abstract
- A system for writing interaction, by A. Allombert et al. @DIMEA2008
- A system of Interactive Scores based on qualitative and quantitative temporal constraints, by A. Allombert et al. @Artech2008
- De Boxes à IScore : vers une écriture de l’interaction, by A. Allombert et al. (in French), published at JIM 2008
- A system of interactive scores based on Petri nets, by A. Allombert et al. @SMC07
- Concurrent Constraints Models for Interactive Scores, by A. Allombert et al. @SMC06
- A Model for specifying temporal relations between interactive and static events, by M. Desainte-Catherine et al. @Journal of New Music Research
- Specification of Temporal Relations Between Interactive Events, by M. Desainte-Catherine et al. @SMC04
- Boxes, un logiciel pour la composition musicale combinant modèle spectral, structures hiérarchiques et constraintes, by A. Beurivé (in French)