Sonification de données avec Python et Csound

transcription approximative de ce qui a été présenté à Montréal-Python le 30 octobre 2023.

Par Édith Viau pour finartcialist.

pour écouter des projets de sonification de données réalisés dans le cadre de finartcialist: finartcialist.bandcamp.com

En 2019, je vous avais présenté lors de Montréal-Python un de mes projets nommé LuminX, ici même dans les locaux de Plotly. Cela fait maintenant quatre ans et je voulais vous donner une petite mise-à-jour en Python sur mes projets d'art, d'économie et de finance.

Cette photo a été prise lors d'une résidence organisée par Art souterrain à l'automne 2022. Dans le cadre du projet Créer des ponts, qui vise à rendre disponible des locaux commerciaux vacants pour des projets artistiques temporaires, j'ai pu accéder aux magnifiques locaux d'une ancienne succursale d'une banque située au 936 Sainte-Catherine est, à Montréal.

La photo a été prise par Amelia Moses et montre la porte du hall d'entrée, surmontée d'une horloge, ainsi qu'une de mes oeuvres, escarcelle, le marché aux sentiments. Ce marché prend la forme d'un échange de cartes postales.

Aujourd'hui je souhaite vous parler d'art sonore en vous présentant mon utilisation de Python et de Csound.

Je m'appelle Édith Viau et ces oeuvres ont été réalisés dans le cadre du projet finartcialist. Ce projet est une exploration du monde de l'économie, de la finance et du marché du travail en général par le biais de méthodes artistiques, notamment la sonification de données.

La présentation initiale était prévue pour le 25 septembre, mais j'avais un bon rhume ce jour-là et je souhaitais vous l'épargner.

Sur cette diapositive, on voit une photo prise par Thierry Du Bois à l'automne 2022. Cette photo montre l'intérieur des locaux de la banque où a eu lieu ma résidence avec Art souterrain.

On peut voir différents objets en lien avec ma pratique, notamment un projecteur pour faire des présentations, une table de travail, un comptoir de banque, un tableau d'idéation avec des post-its.

J'aime bien savoir à quoi m'attendre d'une présentation, donc voici mes trois points principaux à retenir. J'ai voulu ressortir des points qui viennent de ma pratique mais qui sont suffisamment généraux pour être utile à l'extérieur de ce cadre.

Le premier: connaître le vocabulaire juste souligne qu'un bon lexique facilite grandement l'apprentissage de nouveaux concepts... ainsi que les recherches sur Internet.

En second: choisir le bon outil pour la tâche nous rappelle que même s'il est techniquement possible de planter un clou avec un tournevis, ça va tout de même vraiment mieux avec un marteau.

Et le dernier: manipuler des données avec Python, c'est génial! vise à souligner le rôle de facilitateur que Python joue dans ma pratique, et à mettre de l'avant cette qualité certaine de l'écosystème Python.

Nous pouvons commencer avec un peu de contexte sur le projet finartcialist et sur moi-même.

En 2014 - il y a déjà dix ans - je termine à l'Université du Québec à Montréal un baccalauréat en mathématiques, avec des cour d'économie financière.

À l'automne, alors que je commence ma maîtrise en ingénierie financière à HEC Montréal, je visite le Musée d'art contemporain de Montréal pour voir l'exposition Les prophètes. Au coeur de cette exposition: une oeuvre monumentale composée d'une pléthore de micro-sculptures réalisées avec des matériaux du quotidien par le duo d'artistes Ibghy et Lemmens. Chaque sculpture démontre ou illustre un concept économique ou des données financières.

Cette oeuvre marque mon imaginaire et ouvre une porte: on peut parler de choses un peu aride, un peu intellectuelles, de façon très créative, et ce, sans remuer ciel et terre dans les moyens employés.

Par la suite, je continue mes études à HEC Montréal.

Un samedi soir un peu quelconque, genre un soir d'hiver sombre, je suis attablée à mon bureau pour travailler sur un devoir du cours de Simulation Monte Carlo... et je pense à comment rendre le tout plus intéressant. Quels sont les moyens à ma disposition pour mieux percer les secrets des méthodes mathématiques que j'emploi et des données utilisées par ces algorithmes ?

Je ne suis plus certaine si à ce moment, j'avais déjà entendu des oeuvres d'art sonore réalisées à base de données... je pense que oui - probablement - mais p'être pas aussi ?

Toujours est-il que je me mets rapidement à imaginer écouter les données et les algorithmes: comment sonifier les procédés de mes devoirs ?

Cette question deviendra une obsession pour moi, et formera le socle du projet finartcialist.

Donc quand je parlais du choix des outils, voici quelques-uns de mes premiers essais.

Au début, je me débrouillais pour générer des fichiers MIDI avec le programme MATLAB. C'était très limitant au point de vue de l'esthétique sonore de la création, donc j'ai continué mes recherches pour trouver des outils plus appropriés.

Au fil de mes lectures, je découvre le terme synthèse sonore. Au début de mes démarches, je n'avais pas les bons mots et cela m'a pris du temps pour me constituer un vocabulaire me permettant de m'exprimer adéquatemment.

Des fois, je cherchais des trucs tel que "comment faire musique ordinateur"...

Après MATLAB, j'ai cherché des projets en C parce que c'était le langage utilisé dans le cours de Simulation Monte Carlo. J'ai trouvé la bibliothèque libsndfile, qui a été utile pour me faire comprendre que ce que je voulais faire était en fait plutôt complexe. C'est une bibliothèque plutôt low-level et c'était fastidieux de créer avec celle-ci. Je continuai mes recherches.

De fil en aiguille, j'ai mis la main sur le projet Csound, et ce fût le coup de foudre.

Donc Csound, c'est un projet qui ressemble à du XML mélangé avec des opcodes style assembleur. L'implémentation originale est en C, d'où le nom. Et la rétrocomptabilité est assurée autant que faire se peut dans l'idée originale du projet - sur le site web, on peut lire qu'on travaille fort sur le fait qu'il soit possible en 2023 d'écouter une pièce de 1986, et qu'une pièce de 2023 devrait pouvoir être écoutée même en 2050.

Ça c'est intéressant pour les artistes car cela facilite grandement les tâches liées à l'archivage, à la conservation et à la préservation des oeuvres numériques.

Cette image montre un fichier Csound de base, avec les tags XML, les opcodes, et les données.

(Lors de la présentation, j'ai donné de longues explications reprises d'un atelier archivé dans un repo github de datasonification. Veuillez vous y référer pour l'essentiel du propos.)

Comment sonifie-t-on des données qui ne sont pas a priori musicales ?

Voici quelques-unes des techniques utilisées:

  • Associer une note spécifique à une donnée: par exemple, chaque fois que j'ai le nombre 5, je joue la note do.
  • Associer une plage de données à une note: si le nombre de valeurs possibles pour les données est plus grand que le nombre de notes possibles, je peux regrouper les données et associer chaque groupe à une note. Par exemple, je peux associer les valeurs de 5 à 10 à la note do.
  • Associer une ou des données à plusieures notes: pour générer une certaine musicalité, dans le cas de données plus aléatoires par exemple, je peux associer les données à un extrait d'une mélodie, remixant la pièce originale.

La raison principale qui me fait choisir Python dans mon processus en est une d'efficacité.

Je dois souvent traiter des centaines, voire des milliers de lignes de données dans des fichiers .csv, et Python est tout-à-fait adéquat pour manipuler les données.

J'utilise Python pour me faciliter la tâche du traitement des données afin de générer des partitions musicales dans Csound.

Pour moi, c'est plus simple de faire cette partie dans Python que dans Csound.

(Durant la présentation, je fais un survol de ce qui se trouve dans le repo datasonification sur Github, en exécutant les fichiers Csound s'y trouvant afin de faire une démo du logiciel. Je vous invite à consulter le repo.)

Quelles sont les techniques que j'utilise actuellement pour la sonification de données ?

Voici deux examples: frozen music --- one, sortie en 2022, et implied weather, sorti en 2023 et présenté lors du concert de l'International Conference of Auditory Display, en Suède.

Dans frozen music, j'utilise les données des marchés finanicers afin de générer les ondes sonores qui seront utilisées par l'oscillateur pour créer le son. Le titre vient de la réflexion que l'architecture est une forme de musique congelée, au sens de potentielle: il suffirait d'utiliser le tracé des immeubles et d'envoyer ces données à un oscillateur pour générer du son.

Dans implied weather, j'utilise les données des marchés de produits basés sur la météo pour changer la vitesse à laquelle un échantillon sonore est joué. Cet échantillon est constitué d'un enregistrement d'eau en train de bouillir sur un four électrique.

Voilà qui conclut ma présentation pour ce soir. Petit rappel de ce qui est à retenir: connaître le vocabulaire juste; prendre le temps de trouver le bon outil pour la tâche; manipuler des données avec Python, c'est génial !

Pour me contacter directement par courriel: info@eviau.net

site web du projet: finartcialist.com

site web avec tous mes projets: eviau.net

Merci pour votre écoute et votre attention :) Merci à Montréal-Python pour l'invitation et l'organisation, et à Plotly pour l'accueil.