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.

Oscar, l'adorable mascotte d'ossia

  • 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

2021

2020

2019

2018


2017


2016


2015


2014


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


2010


2009


2008


2007


2006


2004

L'arbre généalogique des logiciels ossia :

Arbre généalogique des logiciels i-score et ossia, de Boxes (2000) et Iscore à Acousmoscribe, Virage et i-score 0.1 à 0.3, jusqu'à ossia score 1.0 et libossia (2016)