Improvisation musicale algorithmique

Raphaël Forment
Raphaël Bastide

Photo : Guillaume Kerjean — Artistes: AZERTYPE et Rémy Georges

Présentation

Raphaël Bastide

  • Artiste, développeur, live coder
  • Designer, typobricoleur, faiseur d’outils
  • Enseignant :
    • ENSAD (Paris)
    • ENSBA (Paris)
    • Hfg (Karlsruhe)
  • Velvetyne Type Foundry, PrePostPrint

Raphaël Forment

Doctorant en musicologie, laboratoire ECLLA (Univ. Jean Monnet, Saint-Étienne)

  • Dirigé par Laurent Pottier (ECLLA)
  • Co-dirigé par Alain Bonardi (Paris 8, MUSIDANSE/IRCAM)
  • Doctorant invité, laboratoire Numérique, Réalités Virtuelles (ENSBA, Lyon)
  • Études à l’École Normale Supérieure (Paris),
    à l'EHESS et Paris IV (Sorbonne)

Musicien et développeur actif au sein de la scène française du live coding (et sur les réseaux dédiés)

  • Ateliers, conférences, enseignement (dans un cadre académique et / ou informel, hackerspaces).

  • Performances avec le Cookie Collective et autres collectifs (PlasmaPunk, etc.)

  • Développement d’outils pour la performance et la création musicale, documentation logicielle.

Musicien passionné par la synthèse sonore, les synthétiseurs, l'électronique musicale, etc.

Rencontre et collaborations

  • Algorave au Zorba (15 octobre 2021)
  • NØ LAB : Montre-moi ton code (20 janvier 2022)
  • Algorave au Grrrnd Zero (6 mars 2022)
  • Algorave au Grrrnd Zero (8 avril 2023)

Conception d’outils open source pour le live coding :

  • Sardine : environnement pour le live-coding en Python 3.10+ (RF)
  • Cascade : live coding par transformation / sonification du CSS (RB)
  • Été : environnement de performance en Web Audio (RB)

Actifs au sein du collectif TOPLAP,
autour du collectif Cookie Collective.

Fenêtre principale de l’outil Été, sans / avec plugins.

À gauche, SliderWolf, à droite éditeur web de Sardine.

Performance le 8 avril dernier, Grrrnd Zero, Lyon.

Performance le 8 avril dernier, Grrrnd Zero, Lyon.

Live Coding : improvisation musicale et / ou visuelle au travers du code source.

  • Devant un public, pour explorer, expérimenter
  • Approche performative de la programmation
  • Jeu sur l'instrument ~= édition du code source

Le live-coding est une pratique nourrie des mêmes logiques que celles du développement open source :

  • Processus de création / conception communautaire des outils et des interfaces pour la performance
  • Processus de création ouvert, rendu visible pour le public. Théâtralisation / mise en scène du code
  • Réification : code ouvert / outils ouverts / dialogue

Algorave à Brighton en 2017, British Science Festival

Sédimentation de valeurs idéologiques / politiques au travers de la pratique du live coding :

  • Transparence et lisibilité du code source. Jeu autour de la matérialité et de la malléabilité du code
  • partage du code, partage des outils
  • Proximité / porosité avec l’informatique libre et approche militante / prosélyte de l’informatique

Objectif : Offrir une introduction ainsi qu’un regard critique sur les pratiques de création, de médiation et d'échange dans le domaine :

  • En tant que créateurs d’outils open-source
  • En tant que musiciens / artistes / performers
  • Pour mieux comprendre cet art, les tendances
    et les tensions qui en composent le champ

I Ordinateurs et musiciens

Situer la pratique du live coding :

  • Une spécificité du geste, une intention particulière
  • Un positionnement axiologique vis à vis de l’informatique
    et des interfaces pour la création musicale algorithmique.
  • Une pratique ancienne et marginale, toujours renouvelée car sans cesse redécouverte et exercant une fascination (1980 - ~)

Quelques grands pôles de l'interaction musicien / ordinateurs :

  • CAO : composition assistée par ordinateur, algorithmique
  • MAO : musique assistée par ordinateur, synthèse, contrôle
  • Recording studio as an instrument : l’ordinateur comme méta-outil pour le mixage, le mastering, le travail en studio

Iannis Xenakis, Formalized Music: Thought and Mathematics in Composition, p. 150-151,
Pendragon Press; 2nd edition (January 1, 1992)

Session de travail sur le logiciel Cockos Reaper : vue classique pour l’édition multipiste,
timeline, tranches de console, vuemètres, blocs objets, temps mesuré.

Images promotionnelles pour l’interface tactile Erae Touch de Embodme.
Phénomène du “computer is lava” : réduction/détournement de l’interaction.

Stratégies de détournement ou d’invisibilisationde l’ordinateur :

  • Claviers, contrôleurs physiques, surfaces de contrôle
  • Outil de contrôle sans interaction directe
  • Skeumorphisme et dissimulations de l’ordinateur (!)

Capture d’écran issue du site officiel du logiciel VCVRack. Miroir skeumorphique.

Émulation du Yamaha CS-80 par Arturia (V Collection). Des sliders.. une souris.

OpusModus, environnement de CAO pour la musique algorithmique. Collection de
représentations autour d’un environnement LISP : tables, pianoroll.

Le live coding témoigne d’un autre positionnement possible :

  • L’écriture à l’ordinateur comme geste / performance
  • Le code comme langage pour l’expression musicale
  • Le texte comme interface et communication
  • Le programme comme proposition d’une théorie embarquée : idées, gestes, processus, techniques
  • Le programme comme objet d’art, objet signifiant

Laurie Spiegel

A lot of attention in music system design is being given to data entry and score storage formats, timbral synthesis techniques, and to user interfaces refinements. Such considerations often say more about the problems of computer implementation of music than they do about problems or structures inherent to musical activity itself.

Laurie Spiegel - Manipulation of Musical Patterns, Proceedings of the Symposium on Small Computers in the Arts, 1981

That the description of music in terms of a transformationally oriented conceptual vocabulary will help evolve a more appropriate vocabulary and syntax for the description, understanding, and creation of experiences in time, for all self-referential temporal arts, of which music is a very pure example

Laurie Spiegel - Manipulation of Musical Patterns, Proceedings of the Symposium on Small Computers in the Arts, 1981

ORCA, environnement bi-dimensionnel pour le live coding musical par Devine Lu Linvega.

J. Simon van der Walt, performance de gamelan javanais (Pays-Bas, Écosse, États-Unis) à Utrecht (Pays-Bas, ICLC 2023) sur Estuary de David Ogborn. Photographie : Paulus van Dorsten.

J. Simon van der Walt, performance de gamelan javanais (Pays-Bas, Écosse, États-Unis) à Utrecht (Pays-Bas, ICLC 2023) sur Estuary de David Ogborn. Photographie : Paulus van Dorsten.

Crash Server : Performance audiovisuelle techno, Strasbourg.


              config:
                comment: Cold Dusts - made with été v1.3
                synth:
                  note: sh(900,990,800)
                  type: sawtooth
                  gain: .04
                  dur: r(0.5,1.4)
                  dyn: 0
                  env: 0,1,0,1,0,1,0
                itv: 3200
                exe: null
                mode: type
              patterns:
                - id: 0
                  cycle:  [0,0]
                  state: p
                  duration: itv / 1
                  note: 140
                  pan: 0
                  synth:
                    type: sine
                    gain: 1
                    dur: 1.2
                    dyn: note, 0.8, 1 
                    env: 1, 0 
                  beats:
                    - id: 1
                      offset: 50
                - id: 5
                  cycle:  [0,0]
                  state: p            
            

Extrait de code source (YAML/JavaScript): Été


 @swim # bien entendu
 def lesalut(p=1/2, i=0):
        D('s a l u t', p=.5, shape=.5, d='[1 3]!!4', i=i)
        D('[g r r n d  z e r o]:4', p=.5, speed='1', 
          shape=.5, leg=.2, i=i)
        D('(pal [j e  s u i s  b u b o]:[1~8] ::cond (beat 0 2))', p=.5, 
          speed=8, leg=.2, krush=0.8, d='[1 2]!!4', pan='rand’)
        D('[j e  j o u e  a v e c  s a r d i n e]:9', p='0.25!4', i=i, 
          speed=2, leg=.2, orbit=2, pan='1', hpf=5000)
        D('[s a u v e z  m o i]:8', speed='(pal 2 4 8)', leg=.2, i=i,
               pan='{-1 0}', lpf='(abs (sin $))*4000', p=.25)
        again(lesalut, p=1/2, i=i+1)
					

Extrait de code source Sardine (Python/SPL)

We demand:

  • Give us access to the performer's mind, to the whole human instrument
  • Obscurantism is dangerous. Show us your screens
  • Programs are instruments that can change themselves
  • The program is to be transcended - Artificial language is the way
  • Code should be seen as well as heard, underlying algorithms viewed as well as their visual outcome
  • Live coding is not about tools. Algorithms are thoughts. Chainsaws are tools. That's why algorithms are sometimes harder to notice than chainsaws

En somme :

  • Programmation conversationnelle (Julian Rohrhuber) : réactivité, interaction, logique discursive
  • Ouverture / transparence / partage de l’interaction et des programmes
  • Méfiance à l’égard des boîtes noires logicielles
  • L’algorithme comme outil, support et langage pour l’expression artistique

Forme un programme artistique qui était déjà dans l’air du temps. Pose également les fondements pour une "école de recherche" consacré à la place de l’algorithmique temps réel dans le domaine de la performance musicale.

Extrait du manifeste TOPLAP (2003 - 2004)

II Réseau d’outils / de musiciens

Un réseau international

Photographie de groupe : ICLC 2023. Photographie : Maren van der Burght.

Organisés autour de plusieurs lieux d’échange


Historique académique / artistique


Prehistory of Live Coding (2008) : tentative d’une rétrospective sonore.

Réseaux d’outils / de logiciels

Un réseau plus éclaté, moins sédimenté, moins intégré, souvent en dehors d’un espace délimité par les réseaux artistiques d’Europe du Nord ou des pays anglo-saxons. Le terreau essentiel menant à son apparition reste très fréquemment inchangé :

  • Un lien avec les institutions académiques / de recherche.
  • Une sensibilité à l’open source et à l’informatique libre.
  • Réseaux techniques autour du DIY, de l’électronique.
  • Une pénétration des esthétiques de l’avant-garde américaine.

Conséquences volontaires / involontaires :

  • Peu de musiciens issus de circuits institutionnels ou académiques
  • Domaine de recherche très ouvert et volontiers pluridisciplinaire
  • Plus grande porosité / malléabilité de la notion d’oeuvre ou de création
    • Absence de muséification, de logique d’autorat, de rôles traditionnels
    • Fluidité des supports de l’art : le logiciel est art, la performance aussi
    • Cette culture d’entretien du rapport au logiciel est elle aussi tantôt une préoccupation technique, tantôt une aspiration esthétique
  • Faiblesse des soutiens institutionnels, réseaux underground
  • Champ de réflexion intéressant concernant la mutation des techniques musicales contemporaines : oeuvre, instrument, geste, etc…

Dispositif scénique de Ralt144mi, Le Diamant d’Or, Strasbourg, 29 octobre 2022.
Photographie : Léon Denise.

Dispositif de jeu hybride mélangeant platines tourne-disques et algorithmique
par Graham Dunning. En surimposition : Tidal Cycles (Alex McLean).

Une communauté d’esprit, de geste :

  • Voisinage avec le domaine de l’informatique (musicale)
  • Voisinage des arts de la performance et du creative coding
  • Proximité avec les musiques électroniques / expérimentales
  • Communautés autour des médias numériques : jeu vidéo, retro-computing, shader coding (Cookie Collective), etc

Olivia Jack et son outil Hydra

Les dynamiques d’échange se retrouvent intégrées dans les outils et participent à leur formation / implémentation :

  • Intercommunications logicielles : Link, éditeurs (Flok, Troop, Estuary)
  • Similitudes : langages de patterns algorithmiques, design patterns, mêmes affordances. Échange d'idées et de savoirs.
  • Un geste musical suscité par l'instrument devient si commun qu'il peut devenir une fonction / feature dans une librairie : jux rev.
  • Encourage la confusion entre développeur et utilisateur : redéfinition du end user ou du power user.
In light of new notational practices, we might ask how sonic writing is constituted in the current networked computational multimedia. We are witnessing the formation of a new type of oral culture (or rather aural culture), with improvisation and live coding on new instruments, one that is established through electronic media of audiovisual documentation. This is a culture where the text, picture, video, tweet, Snapchatc pic, Instagram (what an appropriate name !) is speedily disseminated, but without being carefully composed, thoughtfully consumed, or achieved.

Thor Magnusson, Sonic Writing: Technologies of Material, Symbolic, and Signal Inscriptions, p. 180

III La musique au travers du code

Le code, un choix et/ou une contrainte :

  • Ce que l’on perd au contact de l'algorithme
  • Ce que l’on gagne à s'y confronter

Ce que l’on perd

Perte d’agence, de contrôle : parler le langage d’un autre

In every [programming] language, certain ideas and design patterns will be easier or more convenient than others, perhaps relating to what a language makes explicit versus what it leaves implicit. In the same way that idiomatic patterns of a traditional instrument affect improvisation and composition, what is idiomatic in a music language affects the in-situ exploration that characterises much of digital musical instrument design.

Andrew McPherson et Koray Tahıroğlu, Idiomatic Patterns and Aesthetic Influence in Computer Music Languages, Organised Sound, Volume 25, Issue 1, avril 2020, pp. 53 - 63.

Coût d’entrée de connaissances musicales / techniques / informatiques

Limites de l'expressivité / déplacement de l'expressivité

  • Le live coding est-il live ?
  • Quelle présence à l'instrument ?
  • Collaboration / dialogue musicien

Retrouver l’expressivité : à Gauche : Jules Cipher et Martin Digard. À droite : Raphaël Bastide

L’erreur / le glitch est omniprésent

Autres griefs :

  • Nature expansive de l'algorithme, tout est programmable
  • L'énergie du musicien est dépensée dans le contrôle
    • Contrôle de l'outil, coût cognitif
    • Au contraire d'un instrument, l'énergie n'est pas dépensée pour intensifier

Ce que l’on gagne

Des outils personnels, conçus pour une pratique, un projet esthétique, une exploration idiosyncratique des langages et approches du musical.

Le glitch, le déraillement et l'attrait du spectateur pour l'échec / la surprise

Les outils de cette pratique sont les outils de notre quotidien : algorithmes, programmes, claviers, etc.

xlStudio par Dylan TallChief : détourner Microsoft Excel pour créer.

Des outils critiques de la technologie :

  • Faire soi-même -> comprendre (??)
  • Autonomie / maîtrise de son environnement créatif
  • Appropriation des savoirs, des techniques

L'ordinateur comme instrument et compagnon,
non comme simple outil

Illustration : Clippy Didn’t Just Annoy You — He Changed the World, Brian Feldman

Conclusion

Comment soutenir la pratique du live coding :

  • Être à la hauteur du message idéaliste inscrit en filigrane dans les outils et visible les discours autour de la pratique
  • Par conséquent : inclusion mais aussi pédagogie, incitation à développer un rapport plus direct à l'ordinateur, au code
  • Transmettre, montrer, diffuser, publier, enregistrer, etc.
  • Hybrider, explorer, perfectionner, construire autour
    de l'héritage de cette scène (+ de 30 ans de systèmes)
  • Émouvoir, créer, rendre sensible la création live codée.

Le live coding hérite de la culture libre

Le live coding est une émanation particulière du logiciel libre, de sa culture, de ses us et coutumes.

  • Dépasse la seule question des licences et de la propriété intellectuelle
  • Doit se maintenir comme un espace critique (de la tech et de lui-même)
  • Existe-t-il une culture du live coding à l'instar d'une culture du libre ?
  • Ces outils sont-ils réellement accessibles ? Pour qui ? Ont-ils un intérêt ? Pourquoi ?

Raphaël Bastide et Cascade au Grrrnd zero. Photo: Comenottaris

Raphaël Forment : première démo de programme live codé en Python (2021)

Intéressé·e ?




Ce soir 20:30, double Raphaël

La présentation est déjà en ligne:

https://raphaelbastide.com/talks/openopen-2023

Merci !