Le projet
Les logiciels développés par ossia reposent en partie sur des spécifications produites au cours du projet de recherche i-score, mené par le LaBRI (avec plusieurs partenaires académiques, industriels et artistiques) depuis la fin des années 1990 afin de concevoir de nouveaux modèles et de nouvelles applications pour l’écriture et l’exécution de partitions interactives, d’abord pour la composition musicale avec Boxes et IScore.
Le support de l’intermédia et du multimédia a ensuite été ajouté à partir de 2008 avec le projet de recherche Virage, puis avec le séquenceur i-score.
À la suite du projet de recherche ANR OSSIA, qui s’est déroulé de 2012 à 2015, une nouvelle version du séquenceur a été réalisée par Jean-Michaël Celerier dans le cadre de sa thèse de doctorat. Plusieurs artistes et développeurs se sont joints à ce travail et ont formé le collectif ossia. Le séquenceur a été nommé ossia score, et la bibliothèque sur laquelle il repose libossia. Tous deux sont disponibles sur GitHub et documentés sur ce site.
Contribuer
Le code source de score est hébergé sur GitHub. Il repose sur libossia.

- Contribuer à la bibliothèque utilisateur
- Étendre l’API de script
- Implémenter de nouveaux protocoles
- Implémenter de nouveaux processus et effets
Le projet score est ouvert aux contributions. Nous avons besoin d’aide pour :
- Fournir des partitions d’exemple
- Créer des espaces de noms pour votre application préférée
- Créer des tutoriels
- Créer des thèmes graphiques
- Corriger les TODO du code
- (bientôt) Les traductions
- L’empaquetage pour les distributions Linux
L’essentiel des discussions sur les fonctionnalités de score a lieu sur le gestionnaire de tickets. Pour aider, on peut rejoindre le forum, le salon Discord ou le chat sur Gitter. Nous pouvons vous accompagner dans vos premières contributions au projet.
Voici une vidéo qui explique comment contribuer au code d’ossia score :
Feuille de route
La version stable actuelle est la 3.9.0
Projets à venir
- Édition et exécution en réseau (fait dans la 3.0.11 !).
- Enregistrement de l’audio et du MIDI directement dans la partition. Améliorations de l’enregistrement OSC.
- Processus paramétriques : comment disposer de paramètres et de variables utilisés dans la portée d’une boîte donnée et les modifier facilement d’une instance à l’autre de cette boîte.
- Panneau de mixage : rendre le mixage plus simple à l’intérieur de score.
- Support de WebAssembly : des expériences ont été menées il y a quelques années ; l’essentiel du moteur et de l’interface de score compile pour WebAssembly, mais tous les processus ne fonctionnent pas encore.
- Support des transformations géométriques et des compute shaders (fait dans la 3.2.0 !).
- Meilleur support des séquences.
- Support du MIDI 2.0.
- Support de Spout et Syphon (fait dans la 3.0.4 !).
ossia score v3 (sortie en janvier 2022)
ossia score 3 atteint l’objectif à long terme d’en faire une véritable plateforme multimédia, en intégrant des capacités vidéo synchronisées avec le reste de la partition, ainsi que des capacités musicales avec le support du tempo, des métriques musicales et de la quantification. Enfin, le moteur a été étendu pour permettre des cycles dans les scénarios grâce à un nouveau type de connexion, ce qui permet de réaliser des comportements de type machine à états dans les scénarios.
- Lecture de vidéos, pour l’instant en H.264 et HAP. L’implémentation utilise Vulkan, Metal, D3D ou OpenGL selon la plateforme, pour des performances maximales. Plusieurs viewports sont supportés, ainsi que la sortie Spout.
- Application de filtres à base de shaders sur ces vidéos. L’Interactive Shader Format est supporté.
- Support des plug-ins JSFX et VST3.
- Support du tempo, des mesures musicales, etc. Il est désormais possible, par exemple, de synchroniser le déclenchement d’un timenode sur le début de la mesure suivante. La polyrythmie est supportée : chaque intervalle peut avoir sa propre timeline de tempo et de métrique.
- Support des cycles et des boucles dans le scénario principal.
- Mécanisme de presets pour les processus intégrés.
- Mise en boucle intégrée des processus individuels, pour boucler facilement des fichiers audio.
- Les intervalles peuvent désormais être affichés en mode nodal pour interconnecter facilement leurs processus.
- De nombreux petits processus utiles : visualisation de signal, séquenceur de motifs…
- Support de la compilation JIT. Il s’agira d’une fonctionnalité expérimentale pendant le cycle de la version 3.0 ; elle permet d’écrire et d’exécuter des extensions C++ directement depuis le logiciel.
ossia score v2.5
Cette version est une mise à jour importante de la 2.0, qui ajoute deux nouveaux processus :
- Control surface : permet de disposer d’interfaces pour contrôler des paramètres distants dans la partition
- Nodal : permet de disposer les processus dans une interface en graphe, comme de nombreux langages de programmation visuelle célèbres. Les processus temporels peuvent être imbriqués dans les processus nodaux.
- RemoteControl : permet de contrôler la partition au moyen d’une simple API WebSockets.
- Énormément de travail sur l’interface
ossia score v2.0
La version 2.0 est un changement de paradigme : elle introduit le traitement de données et d’audio dans score. Le nom a été changé pour rappeler l’héritage du projet OSSIA. Il est désormais possible de jouer des sons, d’appliquer des effets sonores, parmi bien d’autres changements. Les points principaux sont :
- L’exécution repose désormais sur des API de traitement audio synchrones
- Lecture de sons
- Support des effets et instruments LV2 et VST
- Support des effets Faust. Le compilateur Faust est intégré directement dans score.
- Support de nombreux nouveaux protocoles : OSCQuery, ArtNet…
- De nombreux nouveaux processus : LFO, séquenceur pas à pas, expressions mathématiques, etc.
- Pattern matching
- Glisser-déposer à de nombreux endroits
- Création d’un panneau de bibliothèque et d’une bibliothèque utilisateur
- Une nouvelle mascotte super mignonne, Oscar !
La première version 2.0 est sortie en avril 2018.
i-score v1.0
La version 1.0 est l’aboutissement de la dernière année de travail du projet OSSIA. Grâce à une réécriture complète, le logiciel a été fortement modularisé, et offre désormais les fonctionnalités suivantes :
- Annuler/rétablir
- Restauration après un plantage
- Plusieurs API de plug-ins
- Boucles, mappings, processus JavaScript
- Hiérarchie arbitraire
- Branchements conditionnels et déclenchements complets
- Un nouveau thème bleu foncé
La version 1.0 est sortie en 2016.
i-score v0.3
Toujours grâce au projet OSSIA, un travail de recherche sera mené du début de 2014 à 2015 afin d’implémenter des scénarios logiques dans i-score. Il comprendra :
- Le support des boîtes et (sous-)scénarios en boucle
- Une meilleure représentation graphique des branchements conditionnels
- Le support multi-utilisateur
- Un cadre pour le futur support des boîtes « plug-in » :
- Boîtes de mapping (pour plusieurs mappings un à un entre paramètres distants)
- Boîtes génériques et SDK pour des boîtes tierces (par exemple des boîtes audio utilisant JamomaAudioGraph, des boîtes vidéo/OpenGL utilisant QuartzComposer, etc.)
i-score v0.2
Grâce au projet de recherche OSSIA, certains services d’i-score ont été améliorés par l’intégration du framework Jamoma Modular dans libIscore, et par un framework dédié à la gestion des partitions interactives.
Cela apporte plusieurs nouvelles fonctionnalités et améliorations :
- Meilleur support des périphériques et des espaces de noms, notamment :
- meilleure configuration des périphériques et découverte automatique
- support des attributs des paramètres des périphériques (dont l’intervalle de valeurs, le type, etc.)
- meilleure gestion des courbes
- enregistrement des actions de jeu sous forme de courbes
- déclaration et gestion des paramètres des boîtes d’i-score (comme la vitesse, les points de déclenchement, etc.)
- Support initial des branchements conditionnels
v0.1
Version initiale, comprenant (à la 0.1-alpha1, décembre 2012) :
- Édition linéaire (pas de boucles, pas de branchements)
- Un seul périphérique Minuit statique (MinuitDevice1)
- Courbes simples (pas d’édition de l’intervalle de valeurs)
- Support des scénarios imbriqués (hiérarchie)
- Lecture simple (fonction GOTO inachevée)
Plusieurs versions alpha incrémentales sont sorties en chemin, avec notamment :
- Le support d’OSC simple
- La configuration des périphériques Minuit
- Plusieurs améliorations de l’interface
Recherche scientifique
Présentations
Des présentations du projet sont régulièrement données dans des conférences et des rencontres. En voici une liste :
Publications avec comité de lecture, thèses de doctorat
2023
- A Notation System for Distributed Media Art, Jean-Michaël Celerier, Akané Levy, @TENOR2023
- Proof of Concept of a Generic Toolkit for Sonification: the Sonification Cell in ossia score, Maxime Poret, Jean-Michaël Celerier, Myriam Desainte-Catherine, Catherine Semal, @ICAD2023
2022
- Networked Performances with Ossia Score (demo), Jean-Michaël Celerier, Pia Baltazar, @SMC2022. Vidéo de la présentation
- Rage Against The Glue: Beyond Run-Time Media Frameworks with Modern C++, Jean-Michaël Celerier, @ICMC2022
- ossia score 3, Jean-Michaël Celerier, Pia Baltazar, Myriam Desainte-Catherine, @TENOR2022
2021
- Patches in a timeline with ossia score, Jean-Michaël Celerier, Vortex Music Journal
2020
- Architecture logicielle du projet ossia, Jean-Michaël Celerier, Revue Française d’Informatique Musicale
2019
- A Cross-Platform Development Toolchain For JIT-Compilation in Multimedia Software, Jean-Michaël Celerier, @LAC2019
2018
- Authoring interactive media: a logical & temporal approach, thèse de doctorat, Jean-Michaël Celerier
- Leveraging domain-specific languages in an interactive score system, par JM. Celerier, @JSSA (réunion régulière)
- i-Berlioz: Interactive Computer-Aided Orchestration with Temporal Control, par E. Miranda et al., @ICNMC2018
- Generating Orchestral Sequences with Timbral Descriptors, par A. Antoine et al., @TIMBRE2018
2017
- Extending dataflows with temporal graphs, par JM. Celerier et al. @ICMC2017
- Exécution répartie de scénarios interactifs, par JM. Celerier et al. @JIM2017
2016
- Authoring and automatic verification of interactive multimedia scores, par J. Arias et al. dans le Journal of New Music Research.
- Graphical Temporal Structured Programming for Interactive Music, par JM. Celerier et al. @ICMC2016
- Rethinking the audio workstation: tree-based sequencing with i-score and the LibAudioStream, par JM. Celerier et al. @SMC2016
- Automatic Construction of Interactive Machine Improvisation Scenarios from Audio Recordings, par J. Arias et al. @MUME2016
- Présentation d’un formalisme graphique pour l’écriture de scénarios interactifs, par T. de la Hogue et al. @JIM2016
- Outils d’écriture spatiale pour les partitions interactives, par JM. Celerier et al. @JIM2016
2015
- Sémantique Formelle et Vérification Automatique de Scénarios Hiérarchiques Multimédia avec des Choix Interactifs, thèse de doctorat, J. Arias.
- Le séquenceur interactif multimédia i-score, par J. Arias et al. @JDEV2015
- Foundations for Reliable and Flexible Interactive Multimedia Scores, par J. Arias et al. @MCM2015
- Exploiting Parallelism in FPGAs for the Real-Time Interpretation of Interactive Multimedia Score, par J. Arias et al. @JIM2015
- A Framework for Composition, Verification and Real-Time Performance of Multimedia Interactive Scenarios, par J. Arias et al. @ACSD2015
- OSSIA : Towards a unified interface for scoring time and interaction, par JM. Celerier et al. @TENOR2015
2014
- Modelling Data Processing for Interactive Scores Using Coloured Petri Nets, par J. Arias et al. @ACSD2014
- Executing Hierarchical Interactive Scores in ReactiveML, par J. Arias et al. @JIM2014
- OSSIA : Open Scenario System for Interactive Applications, (FR) par T. de la Hogue et al. @JIM2014
- i-score, an Interactive Sequencer for the Intermedia Arts par P. Baltazar et al. @ICMC2014
2012
- An Extension of Interactive Scores for Multimedia Scenarios with Temporal Relations for Micro and Macro Controls, par M. Toro-Bermudez et al. @SMC2012
2011
- Real-Time Temporal Control of Musical Processes, par R.Marczak et al. @NMEDIA11
2010
- A Model for Interactive Scores with Temporal Constraints and Conditional Branching, par M. Toro-Bermudez et al. @JIM2010
- Concurrent Constraint Conditional Branching Interactive Scores, par M. Toro-Bermudez et al. @SMC2010
- Virage, designing an interactive intermedia sequencer from users requirements and theoretical background, par A. Allombert et al., @ICMC 2010, version longue
2009
- Virage : une réflexion pluridisciplinaire autour du temps dans la création numérique, par P. Baltazar et al., @JIM 2009
NB : Virage est un séquenceur intermédia. On peut le considérer comme un prototype dont i-score s’est inspiré. - Aspects temporels d’un système de partitions musicales interactives pour la composition et l’exécution, thèse de doctorat d’A. Allombert, résumé
2008
- A system for writing interaction, par A. Allombert et al. @DIMEA2008
- A system of Interactive Scores based on qualitative and quantitative temporal constraints, par A. Allombert et al. @Artech2008
- De Boxes à IScore : vers une écriture de l’interaction, par A. Allombert et al. (en français), publié aux JIM 2008
2007
- A system of interactive scores based on Petri nets, par A. Allombert et al. @SMC07
2006
- Concurrent Constraints Models for Interactive Scores, par A. Allombert et al. @SMC06
- A Model for specifying temporal relations between interactive and static events, par M. Desainte-Catherine et al. @Journal of New Music Research
2004
- Specification of Temporal Relations Between Interactive Events, par M. Desainte-Catherine et al. @SMC04
- Boxes, un logiciel pour la composition musicale combinant modèle spectral, structures hiérarchiques et constraintes, par A. Beurivé (en français)
L'arbre généalogique des logiciels ossia :
