Raphaël Forment

BONJOUR
QUI ?
QUOI ?
????????????
PLAN.
LC LC LC LC
TECHN. (I)
TECHN. (II)
TECHN. (III)
PRAT. (I)
PRAT. (II)
ORIG. (I)
ORIG. (II)
CULT. (I)
CULTURE (II)
CULTURE (III)
MOI (I)
MOI (II)
MOI (III)
PLUS DE CODE
BONJOUR

NØ LAB : Montre-moi ton code

20 Janvier 2022 – Gaîté Lyrique

« Il se dessine alors une pratique musicale du futur qui n’attend plus le développement d’instruments de musique d’un type nouveau, mais s’empare d’instruments qui n’ont pas été spécialement construits pour la musique. Et c’est justement à cause de leur utilisation musicale limitée, idéologiquement restreinte, qu’ils deviennent pertinents pour la musique… » (Edgard Varèse, Rückblick auf die Zukunft, Munich, Heinz Klaus Metzger / Reiner Riehn, s.d. (c. 1930).

QUI ?

Raphaël Forment — doctorant contractuel en musicologie

  • Université Jean Monnet de Saint Étienne.
    • École doctorale 3LA (ED 484).
    • Laboratoire ECLLA.
  • Direction : Laurent Pottier (UJM), Alain Bonardi (Paris 8).
  • Sujet : Techniques et esthétiques de la programmation improvisée temps-réel
  • Cours d’informatique musicale (L2 et M2), recherche, etc…
  • Formation en musicologie et sciences humaines.
 
 

Pratique(s) musicale(s) et expérimentation sonore

  • Live-coding, informatique musicale.
  • Synthétiseurs et synthèse modulaire.
  • Claviers, guitares, etc…

 

Activités diverses

  • Réseau TOPLAP / Algorave global.
  • À Paris : avec le Cookie Collective et TOPLAP.
  • À Lyon : membre de LocalHost (Générateur 9).

 

Pour en savoir plus —> raphaelforment.fr (ici-même)

QUOI ?

? ? ? ? ? ? ? ? ? ? 

 
 

????????????

? ? ? ? ? ? ? ? ? ? 

 

 
 
 
PLAN.

Plan de vol

 
 

Objectif : offrir un aperçu synoptique du live-coding et de tout ce que le terme englobe / embrasse en une demi-heure.

Méthodologie : aller vite.

 

I – Aspect technique et matériel

II – Art de la performance

III – Culture et pratique du code

IV – Et moi dans tout ça ?

 

 

 

 

Note : je vais principalement me préoccuper de live-coding sonore. Raphaël Bastide et Florine Fouquart aborderont plus en détail le live-coding visuel.

LC LC LC LC

Live Coding Live Coding Live Coding Live Coding

  • Le mot ne désigne rien de bien précis, ce qui permet à tout le monde de tomber d’accord. Tout au plus sait-t-on qu’il va s’agir de programmation et que cela se fait en temps réel, ou avec un certain degré d’immédiateté.

 

« Ultimately the most interesting purpose I have found is in meta live coding, which I define (presently) as live coding the very definition of live coding. For some years I have been engaged in a protracted argument with myself about what this means… » (Click Nilson, Collected Rewritings, p. 22)

 

  • En réalité, un consensus commence à apparaître sur le fait que le live-coding désigne trois choses bien disjointes :
    • un domaine de recherche et un art particulier de la programmation.
    • une pratique artistique centrée sur l’expression en temps-réel au travers du code.
    • une culture issue de la rencontre entre hackers, DIY, open-source, composition algorithmique, rave parties, musique contemporaine, synthétiseurs, etc..

 

  • Un domaine très vaste des arts numériques, avec une histoire qui remonte facilement jusqu’aux années 1970 et qui continue aujourd’hui au travers d’évènements comme celui-ci.

 

 

 

Technique

TECHN. (I)

Un champ de la recherche universitaire en informatique

Live-coding, on-the-fly programming, cyber-physical programming, live algorithms

(I) L’art de concevoir des environnements de programmation capables d’évaluer du code source et/ou de recompiler une partie d’un programme en temps réel. Le live-coding possède des origines et un ancrage fort dans le milieu universitaire. Technique permettant la mise à jour d’un programme au cours de son exécution, sans interruption du fonctionnement ou de l’interaction :

  • interpréteurs et langages pensés pour la programmation « conversationnelle ».
  • interfaces d’édition (Read Eval Print Loop), Human Computer Interaction (HCI).
  • gestion des erreurs, récupération d’un crash, garanties d’exécution, etc… 
  • gestion du temps, mesures du temps d’exécution, précision temporelle (musique).

 

(II) En soi, la technique n’est pas nécessairement liée au monde des arts ou à toute application artistique… Aujourd’hui, a contrario, un domaine de la recherche qui étudie l’application des techniques de programmation temps réel à la création multimédia (musique, image, danse, cinéma, animation, jeu-vidéo, etc…). Un domaine de la recherche au croisement de l’informatique musicale, de l’algorithmique, des computer science et des humanités. 

  •  
 

 

(III) Il existe plusieurs techniques permettant de live-coder un programme, allant des plus simples aux plus techniques et virtuoses :

  • modifier les données utilisées par les algorithmes (variables, fichiers, flux).
  • modifier les algorithmes eux-mêmes (remplacement à chaud, recompilation, etc.).
  • modifier ou patcher les instruments et les algorithmes de traitement du signal.
  • programmer une nouvelle fonctionnalité ? modifier l’environnement ? 
  • utiliser l’ordinateur pour qu’il se live-code tout seul (Magnusson, Kindohm) ? 

 

 

(IV) Intrinsèquement, le live-coding peut se passer d’ordinateurs et de langages de programmation. On peut parler de live-coding pour toute modification par un agent créateur d’un processus algorithmique en cours de déroulement (danse, tricot,  peinture, poésie, etc).

 

Trois petits chats, trois petits chats, trois petits chats, chats, chats, chapeau paille, chapeau paille, chapeau paille, paille, paille, paillasson, paillasson, paillasson, son, son, somnanbule, somnanbule, somnanbule, bule, bule, bulletin, bulletin, bulletin, tin, tin, tintamarre tintamarre tintamarre, mare, mare, marre de l’ordinateur, marre de l’ordinateur, marre de l’ordinateur, teur, teur, etc…

 

TECHN. (II)

Un champ de la recherche universitaire en informatique

(I) Le live-coding est un domaine de recherche s’étant principalement développé dans le milieu universitaire anglo-saxon, souvent en lien direct avec l’informatique. Live-coder revient à faire une expérience de pensée intéressante, encourage à réimaginer le rapport de l’utilisateur à l’ordinateur, à reconsiderer la nature des programmes informatiques, à imaginer de nouveaux modèles de computation, etc… De fait, un cadre plutôt fécond et gratifiant pour marier recherche fondamentale et applications pratiques :

  • environnements pour la création : programmes sans but(s) ni finalité(s).
  • qu’est-ce qu’un programme ? comment encadrer leur modification en temps réel ?
  • un utilisateur doit-t-il pouvoir modifier un programme ? pourquoi ? comment ?
  • implémentation et conception des langages / interfaces / programmes / outils.

 

(II) L’informatique musicale ou le traitement du signal ne sont que des applications particulières. Elles sont toutefois pertinentes pour réfléchir à ces questions car la création et l’expression artistique exige performance, rigueur, stabilité, tout en offrant le plus de souplesse et le contrôle le plus granulaire et le plus fin possible à l’artiste.

 

(III) Le live-coding invite naturellement les chercheurs et les artistes à explorer et à multiplier les interfaces, les tentatives, les modèles, les langages. Il existe aujourd’hui un très grand nombre d’environnements, de librairies, etc… Chacune explore une idée particulière, un modèle de représentation, d’interaction, etc…

 

^  : Threnoscope, Thor Magnusson

<- : Scheme Bricks, David Griffiths.

TECHN. (III)

Quelques questions importantes

 

Ordonnancement / garanties

  • comment modifier un algorithme alors même que ce dernier est en cours d’exécution ?
  • comment s’assurer que le code sera exécuté en temps voulu et de manière synchrone ?
  • comment modifier un dispositif audiovisuel / sonore de manière fluide et sans aucune interruption du signal ?

 

 

Réintroduire le temps dans la computation

  • comment visualiser un algorithme et percevoir l’évolution de son exécution au fil du temps ? 
  • comment écrire le temps et le prendre en compte dans la syntaxe d’un langage de programmation ?
  • comment articuler différentes perceptions / modélisations du temps (temps musical, temps machine, temps processeur) ? 
 

 

La place de l’utilisateur dans le processus algorithmique

  • permettre à l’utilisateur de corriger / de modifier / de personnaliser un algorithme.
    • implications humaines, politiques, philosophiques, etc…
  • applications pour la pédagogie et l’enseignement de la programmation / arts numériques
    • immersion dans un processus algorithmique temporel et sonifié
    • composition et improvisation algorithmique
      • hyper-complexité rythmique, patterns, superpositions, hoquets, etc…
      • timbre et synthèse : expérimentation, contrôle, altération virtuose.
      • objets musicaux et structures musicales : processus génératifs, stochastiques, aléatoires, génétiques. Structures ultra-répétitives, avec décalages de phase, etc..
 

 

 

 

Art de la performance

PRAT. (I)

Un art de la performance

 

(I) Une pratique artistique centrée autour de la manipulation in media res du code source, dans un environnement de programmation. Il s’agit d’une nouvelle forme d’improvisation musicale au même titre que le jazz, avec ses codes, ses habitudes, sa technique. La programmation n’est plus envisagée seulement comme un outil pour parvenir à une fin mais comme une fin en soi. Il s’agit de faire de la programmation un acte d’expression directe :

  • La projection du code source offre un retour sur l’action et l’intention du musicien.
  • Le code est l’interface première utilisée par le musicien. Le geste musical devient un acte de manipulation textuelle / symbolique.
  • Le code est le reflet direct de la performance en cours. Le programme en cours d’exécution existe sous plusieurs représentations, toutes perceptibles par le public.
  • Le musicien fait corps avec l’algorithme et devient partie prenante dans l’exécution du programme.
  • Les langages de programmation et environnements d’éditions sont modifiés pour rendre l’édition plus lisible, rapide et moins périlleuse. La syntaxe joue le rôle d’interface et de notation.
  • Le texte peut être plus ou moins intelligible :
    • canal de communication supplémentaire entre musiciens (synchronisation)
    • canal de communication avec le public.
    • /!\ Tout les langages de programmation ne sont pas nécessairement textuels !

 

 

(II) Il s’agit de faire de l’ordinateur un instrument de musique à part entière en jouant sur les contraintes et sur les affordances de l’objet, en acceptant de se confronter pleinement à ce qu’il est et surtout à ce qu’il n’est pas (une mixette, un téléphone, un grille-pain) :

    • une machine faite pour computer, exécuter des programmes, planter.
    • une machine qui excelle pour le traitement des données et des flux.
    • une machine faite pour communiquer : mise en réseau, synchronisation.
    • un objet technique que l’on peut modifier, bichonner, maltraiter.

 

« Many have claimed that ‘The laptop is the new folk guitar’; if this is so, then PB_UP is the first acoustic computer music folk band: The laptop is their only instrument. It was synthesizer, realtime sound processor, networking device, and now it is understood as a fully autonomous musical instrument, including being its own hand-held sound system » (Powerbooks Unplugged)

 

(III) En pratique, on observe un redéploiement de plusieurs aspects du jeu instrumental traditionnel :

  • Fausses notes : crashs, fautes de frappe, erreur de programmation.
  • Virtuosité : dextérité manuelle / mentale, habileté du live-coder.
  • Sublime ou nul : sensation d’avoir affaire à un système vivant ou à une répétition stérile. Moments de grâce et accidents heureux. Génération spontanée de moments musicaux intéressants ou au contraire totalement chaotiques. Construction progressive d’un groove, d’une pièce ou d’une oeuvre.

 

  •  
PRAT. (II)

Un art de la performance

 

(I) Le code n’est pas à proprement parler une trace écrite ou une partition

  • Culture « aurale » (Thor Magnusson) : transmission par la reproduction phonographique / la captation vidéo. Digitalisation et prolifération de l’écrit, données fluides, etc..
  • Beaucoup de perte : on ne note pas l’impro. ou les altérations successives d’un fichier.
  • Obsolescence : environnements évolutifs, le code n’offre aucune garantie de rejouabilité.
    • dépend de l’environnement du musicien : machines, logiciels, connexions, routages.

 

 

(II) Le live-coding est une pratique parfois difficile à comprendre en dehors du contexte :

  • Pas un outil de composition bien que cela puisse l’être.
  • Pas un instrument / une groovebox à proprement parler.
  • Différents niveaux de live-coding : from scratch, préparation méticuleuse, etc…
  • Une temporalité propre à cette patique : une algorave n’est pas une soirée en club.

 

 

 

 

Culture et organisation

ORIG. (I)

Live-Coding avant l’heure

Le live-coding ne constitue pas une nouveauté radicale dans le domaine de l’informatique musicale. Cette technique s’est plus ou moins développée et greffée autour d’environnements existants et autour de technologies qui permettaient déjà, de manière détournée, cette pratique. La quête des origines est donc particulièrement vaine, bien qu’intéressante. L’histoire de l’informatique musicale toute entière semble préluder l’apparition du live-coding, d’une manière ou d’une autre.

  • Développement de contrôles temps réel d’instruments analogiques /mécanique.
  • Développement progressifs d’environnements de synthèse temps réel.
  • Optimisations et progrès dans le traitement digital du signal (DSP). 
  • Langages symboliques pour la composition musicale / composition orientée objet.
  • Développement d’une culture du logiciel libre et de l’open-source.
  • Popularisation des arts numériques, d’une culture DIY, etc…

 

1950 –

  • 1950 : le CSIRAC joue quelques sons, et bientôt des mélodies. Les sons sont générés par envoi d’impulsions électriques directement dans les hauts-parleurs. Pas de synthèse sonore.
  • 1957 : MUSIC par Max Mathews sur IBM 704. Début de la famille MUSIC-N toujours accessible aujourd’hui au travers de CSound (live-coding possible depuis peu, cf. Steven Yi).
  • 1958-1965 : développement de la première version d’un langage LISP avec interpréteur. Débuts de la programmation interprétée et « conversationnelle ». Les langages de type LISP conservent aujourd’hui une certaine influence dans le domaine du live-coding (cl-collider, ORCA, Scheme for Max, ExTempore, OpusModus, et bien d’autres…). La famille LISP demeure omniprésente dans nombre de logiciels de composition algorithmique (Open Music à l’IRCAM, etc…).
    • Premiers REPL : Read – Eval – Print – Loop.
  • 1965 : PIPER par James Gabura et Gustav Ciamaga. Système de contrôle digital d’instruments analogiques. Les instructions au clavier permettent le contrôle temps réel d’instruments.
  • 1969 : GROOVE par Max Mathews. Système hybride digital-analogique. Contrôle digital d’instruments analogiques
    • « Recently I have added improvisational options which make it easy to write compositional algorithms. These can involve precomposed sequences, random functions, and live performance gestures. The algorithms are written in the C language. We have taught a course in this area to Stanford undergraduates for two years. To our happy surprise, the students liked learning and using C. Primarily I believe it gives them a feeling of complete power to command the computer to do anything it is capable of doing.” (Max Mathews. “Horizons in Computer Music,” March 8-9, 1997, Indiana University.)

1970 –

  • 1978 : The League of Automatic Music Composers. Musique cybernétique et Silicon Orchestra. Synthèse 8-bits. Branchement d’ordinateurs en réseau et composition de musique générative contrôlée en temps réel. Une performance débute dès l’installation du matériel avec participation du public. Pas de live-coding à proprement parler mais les programmes sont visibles.
    • Dernièrement : redécouverte de leur travail et valorisation de leur oeuvre.

1980 –

  • Hierarchical Music Specification Language : interface tirée de Forth, entièrement dédiée à la génération temps réel d’informations musicales et non à la synthèse sonore (limitation technique de puissance). Le Mills College, lieu de conception, est un lieu historique de l’expérimentation sonore en informatique musicale.
  • 1985 : The Patcher par Miller Puckette à l’IRCAM. Début de la famille Patcher (Pure Data, Max/MSP). Pas de synthèse sonore, messages vers processeur de synthèse (4X)
  • 1985 : Water Surface par Ron Kuivila considéré par Nick Collins comme l’une des premières pièces représentatives du live-coding moderne. Piste recrée sur le TOPLAP CD N°1.
  • 1989 : Max/FTS (Faster than sound)
  • Premières traces de performances s’apparentant à du live-coding, souvent dans des environnements LISP. Apparition de paradigmes de composition et de contrôle temps réels analogues à ceux disponibles aujourd’hui.

1990 –

  • 1996 : Pure Data, toujours par Miller Puckette
  • 1996 : première version de SuperCollider par James McCartney. Langage pour la composition algorithmique et la synthèse sonore, aujourd’hui utilisé comme base par l’écrasante majorité des interfaces de live-coding.
    • SuperCollider 1 et SuperCollider 2 ne permettent pas encore réellement le live-coding. Contournement de cette limitation par la librairie JITLIB (Just in Time) de Julian Rohrhuber (2002 – 2003 ?).
    • SuperCollider 3, version actuelle (toujours mise à jour) avec intégration. par défaut de JITLIB. Tidal repose sur un autre outil développé par Julian Rohrhuber, SuperDirt. 
2000 –
  • 2003 : Ge Wang implémente le langage ChucK et l’utilise dans le contexte de Laptop Orchestras (PLOrK puis SLOrK, etc..). Langage conçu spécifiquement. pour répondre aux contraintes posées par le live-coding (garanties temporelles, etc..).
  • 2004 : Fondation de TOPLAP à Hambourg par Alex McLean, Julian Rohrhuber et al. à l’occasion. d’un séminaire consacré au live-coding, Changing Grammars.
    • « Some computer languages allow changing a running process on the fly by rewriting
      the code that defines it. Applied to computer music this means that one can
      write sound compositions while they are already playing. »
  • 2007 : Andrew Sorensen publie ExTempore, nouvelle version d’un programme déjà existant, Impromptu. Un langage pour la synthèse, un langage. pour le contrôle et le séquençage.
  • 2010 : Petrol  : REACTIVE PATTERN LANGUAGE FOR IMPROVISED MUSIC. Ancêtre proche de TidalCycles.
  • 2011 : Artist Programmers and Programming Languages for the Arts, thèse de doctorat par Alex McLean et première version expérimentale de Tidal Cycles.
 
ORIG. (II)

Live Coding avant l’heure

 

CULT. (I)

Un mouvement artistique / culturel

(I) Le live-coding est une culture « de niche » qui a su trouver son identité et sa place à partir d’une collision esthétique et culturelle entre plusieurs choses :

  • Informatique musicale : environnements de programmation musicale open-source.
  • Culture club / post-club : principalement dans le contexte britannique.
  • Culture hacker / maker : démonter, remonter, améliorer, partager les outils.
  • Net-art / art contemporain : software art, net art, arts numériques, etc…
  • Culture universitaire : recherche, expérimentation, enseignement, etc…

 

« Dans la même perspective, le concept de hacking musical peut également jouer un rôle heuristique, en autorisant des rapprochements insoupçonnés entre des communautés souvent considérées comme très éloignées les unes des autres – par exemple en révélant le substrat commun existant entre la culture gamer et les musiques expérimentales d’inspiration rétrotechnique. » (Baptiste Bacot et Clément Canonne. « Musique et hacking : de l’éthique aux pratiques ». Volume !, numéro 16 : 1, décembre 2019, p. 7-14.

 

(II) Existe aujourd’hui dans une situation d’entre-deux parfois difficile :

  • les musiciens pensent qu’il s’agit d’une affaire d’informaticiens.
  • les informaticiens pensent qu’il s’agit d’une affaire de musiciens.
  • à peu près tout le monde n’exprime aucun avis sur la question.

(III) Comme toute culture, celle-ci possède ses paradoxes et ses points de friction : 

  • La programmation/les domaines techniques et la question de l’inclusion
  • Transparence du code /= lisibilité | Culture de l’ouverture / coût d’entrée
  • Problème de visibilité et de reconnaissance : justification permanente.

(IV) Un mouvement artistique / culturel qui promeut l’utilisation du code source comme support pour l’expression artistique (danse, musique, image, chorégraphie, etc…) :

    • TOPLAP : Transnational Organisation for the Promotion of Live Algorithm Programming
    • TOPLAP : Transnational Organisation for the Pragmatics of Live AudioVisual Programming
    • TOPLAP : Temporary Organisation for the Proliferation for Live Algorithm
    • TOPLAP : C’est accessoirement LAPTOP à l’envers…
    • Algorave : rave-parties algorithmiques (depuis 2011 sous sa forme actuelle).
    • Eulerroom, etc…

« For a long time computer scientists have been erasing time from programming, and we’re now putting it back in. For a long time computer musicians have been trying to hide the computation in their music, and we’re celebrating it. »

CULTURE (II)

CULTURE (III)

TOPLAP

  • Organisation décentralisée, sans hiérarchie, fondée en 2004 par un groupe de compositeurs et de doctorants en arts numériques : Adrian Ward, Julian Rohrhuber, Fredrik Olofsson, Alex McLean, Dave Griffiths, Nick Collins, Amy Alexander.
    • Un manifeste, publié à la hâte, attaché au nom du collectif (qui l’a lu ?).
    • Synthèse de culture hacker / maker, d’info. musicale, de militantisme open source. Parodie de manifestes antérieurs, volontairement emphatique et excessif.

… This is only one approach to combining software with music, one that this paper wishes to counter quite strongly. We advocate the humanisation of generative music, where code isn’t left alone to meander through its self-describing soundscape, but is hacked together, chopped up and moulded to make live music. And what works for generative music should extend to further time based algorithmic arts …

 

Context

Live coding is a new direction in electronic music and video: live coders expose and rewire the innards of software while it generates improvised music and/or visuals. All code manipulation is projected for your pleasure. TOPLAP has been collectively developing, exploring and promoting live coding since it was formed in a smoky bar in Hamburg in 2004.

Draft Manifesto

‘Original’ TOPLAP draft manifesto (with focus on music performance)

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.

We recognise continuums of interaction and profundity, but prefer:

  • Insight into algorithms
  • The skillful extemporisation of algorithm as an expressive/impressive display of mental dexterity
  • No backup (minidisc, DVD, safety net computer)

We acknowledge that:

  • It is not necessary for a lay audience to understand the code to appreciate it, much as it is not necessary to know how to play guitar in order to appreciate watching a guitar performance.
  • Live coding may be accompanied by an impressive display of manual dexterity and the glorification of the typing interface.
  • Performance involves continuums of interaction, covering perhaps the scope of controls with respect to the parameter space of the artwork, or gestural content, particularly directness of expressive detail. Whilst the traditional haptic rate timing deviations of expressivity in instrumental music are not approximated in code, why repeat the past? No doubt the writing of code and expression of thought will develop its own nuances and customs.

Performances and events closely meeting these manifesto conditions may apply for TOPLAP approval and seal.

 
MOI (I)

MOI (II)
Élément de design dont la forme n’est pas directement liée à la fonction, mais qui reproduit de manière ornementale un élément qui était nécessaire dans l’objet d’origine (Wiktionnaire).
A skeuomorph (also spelled skiamorph, /ˈskjuːəˌmɔːrf, ˈskjuːoʊ-/) is a derivative object that retains ornamental design cues (attributes) from structures that were necessary in the original. Skeuomorphs are typically used to make something new feel familiar in an effort to speed understanding and acclimation (Wikipedia).

 

Arturia DX7 V (émulation digitale du  Yamaha DX7 de 1983 avec amélioration de l’interface utilisateur.)

    U-He Diva (synthétiseur analogique « virtuel », imaginé sur un modèle traditionnel).

Renoise (un tracker moderne, échantillonneur et hôte VST/VST3, largement personnalisable)

Ableton Live 10 Suite (logiciel « standard » de la production musicale moderne)

VCV Rack (émulateur virtuel de synthétiseur modulaire au format Eurorack)

MOI (III)

PLUS DE CODE

 

Tous droits réservés