<figure><img src="image_1.png" /></figure>

HAL
open science

# Études pour système distribué et états partagés dans Max

Etienne Démoulin, Matéo Fayet, Benjamin Matuszewski

► To cite this version:

Etienne Démoulin, Matéo Fayet, Benjamin Matuszewski. Études pour système distribué et états partagés dans Max. Marées Max, Logelloù, Sep 2024, Penvénan, France. hal-04866493

HAL Id: hal-04866493

https://hal.science/hal-04866493v1

Submitted on 6 Jan 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Études pour système distribué et états partagés dans Max

Etienne Démoulin - Ircam, département production

Matéo Fayet - Ircam, département production

Benjamin Matuszewski - STMS Ircam-CNRS-Sorbonne Université

## Introduction

Depuis plusieurs années l'équipe Interaction Son Musique Mouvement de l'Ircam développe une plateforme de prototypage open source basés sur les technologies Web et dédiée à la création de systèmes musicaux co-localisés, distribués et embarqués<fnref n="1" />. Cette plateforme vise en particulier à permettre le développement d'un large éventail d'applications musicales, telles que des installations sonores, des performances ou des outils dédiés aux compositeurs et interprètes. Notre approche se concentre sur la promotion des pratiques de prototypage rapide et expérimentales dans le contexte de systèmes distribués colocalisés pour la recherche, la création et la performance musicales.

Dans ce contexte général, nous explorons également les possibilités d'interfaçage et d'interopérabilité de ces systèmes et de ces technologies avec des systèmes existants et largement utilisés tels que Max, en particulier à travers l'utilisation de l'objet node.script introduit depuis la version 8.

Notre proposition pour les Marées Max 2024 concerne ces deux aspects, qui pourront être présentés dans des moments ou des contextes différents (e.g. une démonstration / performance et une présentation plus formelle) à définir avec les organisateurs.

## Objets musicaux distribués

<figure><img src="image_3.png" /></figure>

Le système expérimental développé dans le cadre du projet de recherche DOTS<fnref n="2" /> est composé d'un ensemble d'agents, chacun composé : d'un Raspberry Pi, d'un shield audio Hifiberry, d'une batterie portable, d'une petite enceinte, d'une LED et d'un microphone. Cette configuration matérielle, relativement générique et polyvalente dans un contexte expérimental, se veut ouverte et évolutive pour pouvoir être facilement adaptée à des contextes de création plus précis et mieux définis.

<footnote n="1">¹ https://soundworks.dev/ - BSD-3-Clause</footnote>

<footnote n="2">² https://dots-project.ircam.fr/</footnote>
Les agents / micro-ordinateurs sont connectés via un réseau Wi-Fi local, et orchestrés grâce à une application Web dédiée permettant de monitorer leur état et de lancer différentes applications spécifiques (e.g. pièces musicales, installations) pouvant chacune intégrer des briques logicielles diverses (e.g. synchronisation) en fonction des besoins spécifiques de la pièce.

Au cours l'année écoulée, les différents acteurs du projet (Etienne Démoulin, Matéo Fayet, Jean-Brice Godet, Aliénor Golvet, Jean-Philippe Lambert, Benjamin Matuszewski et Suzanne Saint-Cast) ont imaginé et développé des études musicales conçues spécifiquement pour le système et en présentant chacune une approche originale. Cette méthodologie de recherche / création nous a permis à la fois de démontrer les spécificités et possibilités offertes par le système (e.g. du point de vue l'interaction humain-machine, du temps-réel ou de la synchronisation), mais également de vérifier la relative généricité du système en explorant des esthétiques et approches artistiques différentes.

## Max et technologies Web

Dans cette seconde partie, nous présentons différentes applications explorant les possibilités offertes par les technologies Web intégrées avec ou au sein de l'environnement Max.

### modular.matrix~³

<figure><img src="image_4.png" /></figure>

L'objet *modular.matrix~* basé sur l'objet *node.script* permet de scripter dynamiquement la création de l'objet *matrix~* ainsi que son interface de contrôle. Cet objet permet également de définir et de contrôler dynamiquement les connexions en adressant les entrées / sorties par des identifiants définis par l'utilisateur plutôt que par des index. Cela permet par exemple de modifier la topologie de la matrice au cours de

l'élaboration d'un projet sans avoir à adapter l'entièrement du patch en retour. Par ailleurs, la topologie de la matrice est définie dans un fichier JSON évalué dynamiquement, permettant à l'utilisateur d'ajouter, d'enlever ou de modifier des entrées / sorties en éditant un simple fichier texte, mais également de partager simplement une même configuration entre plusieurs projets.

### soundworks shared-state

<figure><img src="image_5.png" /></figure>

L'objet *soundworks shared-state*⁴ a pour but de faciliter la communication et l'interopérabilité entre Max et le framework JavaScript *soundworks* à la
base des développements présentés dans la première partie. L'objectif est de cet objet est double : 1. simplifier l'accès et la prise en main d'applications existantes à des utilisateurs familiers de Max et 2. permettre la mise en place d'architectures hybrides permettant à l'environnement JavaScript de contrôler des processus et de déclencher des événements à l'intérieur de Max et inversement. Ce pont entre les deux environnements a été permis par la mise en place d'une communication par WebSocket via node.script..

## midi.mixer<fnref n="5" />

<figure><img src="image_6.png" /></figure>

L'objet midi.mixer est un gestionnaire de données distribuées, triées par pistes et échangeables de manière transparente entre MIDI (via Mackie-Control), OSC et Max (sous la forme de paires send/receive). L'utilisateur peut configurer chaque piste via un objet de configuration permettant de définir les bornes et une fonction de transfert pour chaque paramètre, et d'assigner ce paramètres aux interfaces de contrôle (i.e. *fader*, *knob*). Par ailleurs, une interface Web générée par l'outil permet de l'utiliser simplement comme interface déportée. L'application est distribuée sous trois formats : une application *soundworks* directement exécutable dans l'environnement Node.js, un objet Max et une application Electron installable.

## Remerciements

Nous tenons à remercier nos collègues Aliénor Golvet, Jean-Brice Godet, Jean-Philippe Lambert et Suzanne Saint-Cast pour leurs précieuses contributions artistiques, scientifiques et techniques dans les différents projets présentés ici. Ces travaux ont reçu le support du projet DOTS financé par l'Agence Nationale de la Recherche (ANR-22-CE33-0013-01) et du projet UPI SO(a)P financé par l'Ircam.

## Bibliographie indicative

* Matuszewski, B. (2020). A Web-Based Framework for Distributed Music System Research and Creation. Journal of Audio Engineering Society, 68(10). https://hal.science/hal-03033143v1

* Matuszewski, B., & Golvet, A. (2023). Rapid Prototyping of Distributed Musical Things using Web Technologies. Proceedings of the 4th International Symposium on the Internet of Sounds. IS2, Pise. https://hal.science/hal-04352459v1

* Matuszewski, B., & Rottier, O. (2023). The Web Audio API as a standardized interface beyond Web browsers. Journal of Audio Engineering Society, Special Issue on Fostering Creativity through Web Audio. https://hal.science/hal-04352384v1

<footnote n="5">⁵ https://github.com/etiennedemoulin/midi-mixer</footnote>
Biographies

**Étienne Démoulin** est un réalisateur en informatique musicale vivant. Il réalise des œuvres de musique mixte, en axant ses recherches autour de techniques alternatives de production du son (transducteurs, audio embarqué et distribué). Il est interprète de musique électronique en concert, notamment avec des ensembles comme le Balcon et les Percussions de Strasbourg. Il sonorise des concerts et contribue au développement de nouvelles techniques de sonorisation pour le spectacle vivant. En septembre 2022, il intègre l'ensemble Next, au sein de la formation de 3ème cycle "Artist Diploma" au Conservatoire National Supérieur de Musique et de Danse de Paris.

**Mateo Fayet** est diplômé du Master Acoustique et Musicologie (AMU), il réalise en 2023 son mémoire de recherche sur une toolbox Max destinée à la synthèse concaténative par corpus audiovisuelle (vivo) au sein de l'équipe ISMM de l'Ircam et du laboratoire PRISM (AMU, CNRS). En 2024, il intègre le cursus de Recherche-Création (ARRC) de l'École Normale Supérieure Paris-Saclay, au cours duquel il réalise son stage de fin d'année dans l'équipe des réalisateurs en informatique musicale de l'Ircam.

**Benjamin Matuszewski**, docteur en esthétique, sciences et technologies des arts, a étudié la musique et la musicologie avant de travailler plusieurs années comme développeur dans l'industrie des médias. Depuis 2014, il est chercheur et développeur dans l'équipe Interaction Son Musique Mouvement à l'Ircam, où il conduit une recherche interdisciplinaire entre ingénierie, musique, design et IHM, sur les systèmes interactifs et distribués pour la musique basés sur les technologies Web.