Introduction au live coding
Support de cours — TOPLAP Strasbourg. Arts numériques, VJing et scène strasbourgeoise.
1. Qu'est-ce que le live coding ?
Définition
Le live coding est une pratique artistique qui consiste à écrire et modifier du code informatique en temps réel devant un public, pour produire du son, de l'image, ou les deux simultanément. Le code n'est pas préparé puis exécuté lors d'un concert : il est tapé, transformé, cassé et reconstruit pendant la performance elle-même.
C'est un déplacement important : le code devient l'instrument, et l'acte d'écrire devient l'acte de jouer. Là où un guitariste manipule des cordes, le live codeur manipule des fonctions, des boucles, des paramètres.
Ce qui distingue le live coding
Trois éléments le différencient des pratiques électroniques voisines :
- Par rapport au DJ : le live codeur ne mixe pas des œuvres existantes, il génère le matériau. Le son ou l'image n'existe pas avant la performance.
- Par rapport au musicien « laptop » classique : il ne déclenche pas un set figé préparé en studio. Tout — ou presque — est ouvert à la modification.
- Par rapport à la programmation classique : pas de séparation entre écrire et exécuter. Le langage est conçu pour que toute modification soit prise en compte immédiatement, sans interruption du flux sonore ou visuel. C'est le principe du hot-swapping.
Cette dernière contrainte technique est fondamentale : un environnement de live coding est, avant tout, un environnement où on peut changer le programme pendant qu'il tourne.
TOPLAP et le manifeste
En février 2004, à Hambourg, un groupe d'artistes-chercheurs (Alex McLean, Click Nilson, Julian Rohrhuber, entre autres) fondent TOPLAP — Temporary Organisation for the Promotion of Live Algorithm Programming. Ils rédigent un manifeste qui pose les principes encore référents aujourd'hui :
« 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. »
« Algorithms are thoughts. Chainsaws are tools. Chainsaws are dangerous. »
Deux exigences à retenir :
- « Show us your screens » — montrer le code projeté est devenu une signature esthétique et politique de la pratique. Le public voit la pensée à l'œuvre. Ce qui est en jeu : la transparence, le refus de la magie noire, la dimension pédagogique de la performance.
- L'erreur fait partie du jeu — un crash, une boucle infinie, un son saturé : ces accidents sont assumés. Cela rapproche le live coding de l'improvisation jazz plus que du concert classique.
Une généalogie courte
Le live coding ne sort pas de nulle part. Il s'inscrit dans plusieurs lignées :
- La musique algorithmique (Xenakis, Koenig, puis les premiers travaux sur ordinateur dans les années 1950–1960) : composer en formalisant des règles plutôt qu'en écrivant des notes.
- Les langages de synthèse sonore : Music-N de Max Mathews (années 1950), puis CSound, plus tard SuperCollider (1996, James McCartney) — ce dernier sera décisif car il introduit une architecture client/serveur qui rend le hot-swapping naturel.
- La démoscène : ces compétitions de programmation graphique en temps contraint ont popularisé l'idée d'un code performé, esthétique en soi.
- L'improvisation libre et le free jazz : pour le rapport au temps, à l'écoute, à l'erreur.
Le tournant est l'apparition de TidalCycles (Alex McLean, 2009) pour la musique, puis d'environnements visuels comme Hydra (Olivia Jack, 2018) qui démocratisent radicalement la pratique en la mettant dans un navigateur.
Le mouvement Algorave
En 2012, Alex McLean et Nick Collins inventent le terme Algorave : des soirées où des live codeurs jouent de la musique dansante générée par algorithme, le code projeté derrière eux. C'est aujourd'hui le format de diffusion principal de la scène, avec des éditions partout dans le monde.
L'Algorave a deux conséquences importantes :
- Le live coding sort des conférences académiques et des galeries pour entrer dans des contextes festifs.
- Il revendique une dimension populaire : on peut danser sur du code, et le code peut être laid, brut, inachevé.
Ce que le live coding n'est pas
- Ce n'est pas du VJing : on y reviendra (OBS Studio, partie 4), mais le VJ assemble des clips et des effets via une interface, là où le live codeur écrit des instructions textuelles.
- Ce n'est pas de la musique assistée par ordinateur classique (Ableton, Logic) : pas de timeline, pas de clips préparés, pas de mixage en aval.
- Ce n'est pas réservé aux informaticiens : la plupart des outils du cursus (Sonic Pi, Strudel) sont conçus pour entrer par la musique, pas par le code.
2. Pourquoi le live coding aux arts numériques ?
Le live coding n'est pas une bizarrerie née d'un bricolage de geeks. C'est l'aboutissement contemporain d'une lignée artistique longue, qui traverse la musique, les arts visuels, la performance et la pensée du code. Cette section trace cette filiation pour situer la pratique : un live codeur ne joue pas contre l'histoire de l'art, il la prolonge avec un nouvel instrument.
Le code comme matériau, pas comme outil
Première bascule conceptuelle : aux arts numériques, le code n'est pas un outil au service d'une œuvre extérieure (un script qui rendrait une image), il est la matière de l'œuvre. Le geste artistique consiste à manipuler des symboles, des règles, des structures formelles — pas seulement à appuyer sur un bouton qui les exécute.
Cette bascule a un nom dans le champ académique : les software studies, portées notamment par Lev Manovich (The Language of New Media, 2001) et Wendy Hui Kyong Chun (Programmed Visions, 2011). Le code est étudié comme un fait culturel, pas seulement technique.
Filiation historique
La musique algorithmique
Bien avant les ordinateurs, des compositeurs ont cherché à formaliser la composition par des règles. Iannis Xenakis (1922–2001) écrit dans les années 1950 des œuvres stochastiques — Pithoprakta, Achorripsis — où les nuées de notes sont calculées à partir de distributions de probabilités. Sa Musique formelle (1963) est un texte fondateur : la composition y est explicitement décrite comme un programme.
Gottfried Michael Koenig, à Utrecht puis à Cologne, développe dès les années 1960 des programmes de composition (Project 1, Project 2). John Cage et l'usage du I Ching, Karlheinz Stockhausen et la sérialisation intégrale, Pierre Boulez et ses structures formelles : tous explorent l'idée d'une partition comme ensemble d'instructions plutôt que comme suite de notes.
Le live codeur hérite directement de cette tradition. Quand on écrit en Strudel n("0 3 7 12").scale("minor"), on déclare une règle, pas un événement.
L'art génératif visuel
Parallèlement, dès les années 1960, des artistes utilisent des ordinateurs pour générer des images :
- Vera Molnár (1924–2023), franco-hongroise, pionnière de l'art génératif. Ses séries de carrés perturbés ((Dés)Ordres, années 1970) explorent la déformation systématique d'une grille par des règles paramétrables.
- Frieder Nake et Georg Nees, Allemagne, exposent dès 1965 des œuvres faites par traceurs.
- Manfred Mohr, qui transforme l'hypercube en motif graphique récurrent.
- Roman Verostko et le mouvement des algorists, défini par Jean-Pierre Hébert avec une formule programmatique : « Si l'algorithme avait une part dans votre œuvre, alors vous étiez un algorist. »
Ces artistes pratiquent un live coding différé : ils écrivent un programme, le lancent, observent, modifient. Le live codeur compresse cette boucle dans le temps de la performance.
Sol LeWitt et l'instruction comme œuvre
En dehors du numérique, l'art conceptuel a posé une question parallèle. Sol LeWitt, dans ses Wall Drawings (à partir de 1968), définit une œuvre comme une instruction écrite que des assistants exécutent — l'œuvre est l'instruction. Sa formule de 1967 : « The idea becomes a machine that makes the art. »
Le parallèle avec le live coding est frappant : la performance live coding rend visible cette « machine de l'idée » pendant qu'elle tourne.
La démoscène
À partir des années 1980, sur Commodore 64, Amiga, puis PC, des collectifs (les demogroups) produisent des démos : courtes performances audiovisuelles temps réel, calculées par le programme lui-même, pas pré-rendues. Compétitions célèbres : Assembly en Finlande, Revision en Allemagne. Catégories « 4k » ou « 64k » : produire une œuvre audiovisuelle de plusieurs minutes en moins de 64 kilo-octets de code.
La démoscène apporte trois choses au live coding :
- L'esthétique du code performé, où le code lui-même peut être beau.
- La culture du shader GLSL en temps réel (cf. Hydra, partie 3).
- L'idée que la contrainte technique est une matière esthétique.
Glitch art, net art et culture du dysfonctionnement
Dans les années 1990–2000, des artistes comme JODI (Joan Heemskerk et Dirk Paesmans), Cory Arcangel, ou Rosa Menkman (Glitch Studies Manifesto, 2010) revendiquent l'erreur, le bug, l'incompréhension du code par lui-même comme matière artistique. Le live coding accueille cet héritage : un crash en performance n'est pas une honte, c'est un événement.
Le code comme partition
Une métaphore travaille toute la pratique : le programme est une partition. Cette métaphore a des conséquences concrètes dans le design des langages dédiés :
- En TidalCycles et Strudel, la mini-notation décrit des cycles temporels comme une partition.
"bd sd [bd cp] sd"se lit littéralement comme une mesure rythmique. - En SuperCollider, les
Pbindsont des suites d'événements paramétrables — une partition événementielle. - En Hydra, la chaîne d'opérateurs est une partition de transformations visuelles :
osc().rotate().out()se lit de gauche à droite comme une mesure.
L'élève musicien retrouve donc, à un niveau plus abstrait, la logique d'une portée : on déclare un matériau et un traitement temporel.
Dimension politique : code visible, code partagé
Le live coding est traversé par une éthique — héritée de la culture du logiciel libre, du hacker, et du DIY :
- Code visible. « Show us your screens » (TOPLAP) refuse l'effet boîte noire des laptops dont on ne sait pas s'ils jouent ou s'ils lisent un fichier.
- Code libre. Tous les outils du cursus (Sonic Pi, Strudel, SuperCollider, Hydra, OBS Studio) sont open source — y compris côté VJing, où l'industrie « pro » (Resolume, MadMapper) reste majoritairement propriétaire.
- Code partageable. Les sessions sont souvent diffusées intégralement (le
.scd, le.tidal) : la performance est aussi un objet pédagogique. - Communautés horizontales. Algoraves, Toplap Slack, forums TidalCycles, serveurs Discord : la transmission est faite pair à pair plus que par des canaux institutionnels.
C'est pourquoi initier quelqu'un au live coding, ce n'est pas seulement enseigner des outils — c'est l'introduire à une culture.
Repères bibliographiques
- Geoff Cox & Alex McLean, Speaking Code: Coding as Aesthetic and Political Expression, MIT Press, 2013.
- Nick Collins & Alex McLean (dir.), The Oxford Handbook of Algorithmic Music, Oxford University Press, 2018.
- Iannis Xenakis, Musique formelle, 1963 ; rééd. Stock, 1981.
- Lev Manovich, The Language of New Media, MIT Press, 2001.
- Florian Cramer, Words Made Flesh: Code, Culture, Imagination, 2005, disponible librement en ligne.
- Wendy Hui Kyong Chun, Programmed Visions: Software and Memory, MIT Press, 2011.
- Casey Reas & Chandler McWilliams, Form+Code in Design, Art, and Architecture, Princeton Architectural Press, 2010.
- Rosa Menkman, The Glitch Moment(um), Institute of Network Cultures, 2011.
Et deux conférences fondatrices à voir en captation : Andrew Sorensen, The Concert Programmer (TEDx Queensland, 2014) ; Sam Aaron, Programming as Performance.
3. Cartographie des outils du cursus
Le cursus mobilise cinq outils, couvrant trois familles : les environnements pédagogiques (Sonic Pi, Strudel), les environnements professionnels de synthèse (SuperCollider), le live coding visuel (Hydra), et la composition scénique libre (OBS Studio). Chacun a un paradigme — une manière de penser le temps, le matériau et la performance — qu'il faut comprendre avant la syntaxe.
Sonic Pi
Auteur : Sam Aaron, université de Cambridge, 2012. Plateforme : Linux, macOS, Windows, Raspberry Pi. Langage : dérivé de Ruby. Sous le capot : le serveur SuperCollider (scsynth).
Paradigme
Sonic Pi est conçu comme un instrument pédagogique d'abord, instrument de scène ensuite. La syntaxe est verbale, lisible (play 60 = joue le do médian). Le concept central est la live_loop : une boucle nommée qui peut être réécrite à chaud pendant qu'elle tourne.
live_loop :kick do
sample :bd_haus
sleep 0.5
end
live_loop :melody do
use_synth :prophet
play choose([:c4, :e4, :g4, :a4]), release: 0.3
sleep 0.25
end Deux boucles tournent en parallèle. Modifier le choose ou le sleep, recharger : la nouvelle version remplace l'ancienne au prochain cycle, sans coupure.
Forces : courbe d'apprentissage très douce, excellent pour l'éducation musicale, communauté pédagogique active. Limites : moins puissant que SuperCollider en synthèse, pas de patterns aussi riches que TidalCycles/Strudel. Ressources : sonic-pi.net.
Strudel
Auteur : Felix Roos, à partir de 2022. Plateforme : navigateur web. Langage : JavaScript + mini-notation inspirée de TidalCycles. Filiation : portage JS de TidalCycles (Alex McLean, 2009), écrit en Haskell.
Paradigme
Strudel pense la musique comme des cycles. Un cycle dure par défaut une seconde. Tout pattern est une fonction du temps qui découpe ce cycle en événements — paradigme fonctionnel pur, pas d'état mutable, pas de boucle visible.
La mini-notation
"bd sd [bd cp] sd" Lecture : un cycle est divisé en 4 temps. Aux temps 1, 2, 4 : kick, snare, snare. Au temps 3, deux subdivisions imbriquées : kick puis clap.
"a b c" // séquence
"a [b c]" // subdivision
"a*3" // répétition (a a a)
"a/2" // étirement (a sur deux cycles)
"a@2 b" // pondération de durée
"a(3,8)" // rythme euclidien : 3 pulsations sur 8 pas
"a | b | c" // alternance (random sur cycles)
"<a b c>" // alternance déterministe sur cycles Rythmes euclidiens
L'opérateur (k,n) génère un rythme euclidien : distribuer k pulsations le plus régulièrement possible sur n pas (algorithme de Bjorklund, appliqué aux rythmes par Godfried Toussaint en 2005). Il produit des rythmes traditionnels du monde entier :
(2,5) // x . x . . : khafif-e-ramal (Perse)
(3,8) // x . . x . . x . : tresillo (Cuba)
(5,8) // x . x x . x x . : cinquillo
(7,16) // x . . x . x . x . . x . x . x . : Samba Exemple complet
stack(
s("bd(3,8)"),
s("hh*8").gain(0.4),
n("0 3 5 7 12".add("<0 -3 2>"))
.scale("D:minor")
.s("sawtooth")
.lpf(sine.range(400, 2000).slow(4))
).cpm(120) Trois couches superposées : kick euclidien, charley, ligne de basse en mineur naturel transposée par cycles, avec un filtre passe-bas modulé par un sinus lent.
Forces : rien à installer, très expressif, communauté active. Limites : sons par défaut limités. Ressources : strudel.cc, workshop interactif intégré (Learn).
SuperCollider
Auteur : James McCartney, 1996, libre depuis 2002. Langage : sclang, inspiré de Smalltalk. Architecture : client (sclang) / serveur audio (scsynth) via OSC.
Paradigme
SuperCollider est l'environnement adulte de la synthèse temps réel — le moteur qu'utilisent Sonic Pi (en interne) et TidalCycles (par OSC). On y descend pour définir ses propres synthés (SynthDef), faire de la synthèse fine (FM, granulaire, soustractive, additive, physique), travailler avec des patterns sophistiqués (Pbind, Pmono, Pdef).
SynthDef(\bass, { |freq=110, amp=0.3, gate=1, cutoff=800|
var env, sig;
env = EnvGen.kr(Env.adsr(0.01, 0.2, 0.6, 0.3), gate, doneAction: 2);
sig = Saw.ar(freq) + Saw.ar(freq * 1.005);
sig = RLPF.ar(sig, cutoff, 0.3);
sig = sig * env * amp;
Out.ar(0, sig ! 2);
}).add; Un synthé soustractif : deux scies légèrement désaccordées passées dans un filtre passe-bas résonant, modulées par une enveloppe ADSR.
Pdef(\groove,
Pbind(
\instrument, \bass,
\scale, Scale.minor,
\degree, Pseq([0, 2, 4, 7, 4, 2], inf),
\octave, 3,
\dur, Pseq([0.25, 0.25, 0.5, 0.25, 0.25, 0.5], inf),
\cutoff, Pwhite(400, 2000)
)
).play; Forces : puissance maximale en synthèse, stabilité (en production depuis 1996). Limites : courbe d'apprentissage raide, documentation parfois aride. Ressources : supercollider.github.io.
Hydra
Auteur : Olivia Jack, 2018. Plateforme : navigateur web. Sous le capot : compile vers du GLSL fragment shader, exécuté par WebGL sur le GPU.
Paradigme
Hydra pense l'image comme un réseau de buffers vidéo qui se modulent les uns les autres — inspiré des video synthesizers analogiques (Sandin, Rutt-Etra, années 1970).
Quatre sortes d'objets : sources (osc, noise, shape, voronoi, gradient, solid, src(o0)), géométrie (rotate, scale, kaleid, pixelate, repeat), couleur (color, invert, contrast, luma, posterize), combinaisons (add, mult, blend, diff, modulate, modulateScale, modulateRotate). Quatre buffers de sortie : o0 à o3.
osc(20, 0.1, 1.2)
.rotate(0.3)
.kaleid(5)
.modulate(noise(3, 0.2))
.out() Un oscillateur sinusoïdal coloré, tourné, kaléidoscopé, dont les coordonnées UV sont déformées par un bruit. Quatre lignes pour une vidéo musicale entière.
Audio-réactivité
a.show() // visualise les bandes (réglage)
a.setBins(4) // découpe en 4 bandes
a.setSmooth(0.8) // lissage temporel
osc(10, 0.1, 1)
.modulate(noise(3))
.scale(() => 1 + a.fft[0] * 2) // graves font respirer l'image
.rotate(() => time * 0.1)
.out() Le () => ... est crucial : c'est une fonction réévaluée à chaque frame. Sans elle, la valeur serait figée à l'instant du chargement.
Forces : aucune installation, esthétique riche obtenue très vite, couplage audio simple. Limites : tout est en mémoire GPU dans le navigateur, peu d'options pour intégrer de la vidéo lourde ou de la 3D complexe. Ressources : hydra.ojack.xyz, The Book of Shaders pour le GLSL en général.
OBS Studio
Auteur : Hugh « Jim » Bailey, premier lancement 2012 ; développé depuis par l'OBS Project, communauté ouverte. Plateforme : Windows, macOS, Linux. Licence : GPL v2, libre et gratuit.
Paradigme
OBS Studio n'est pas du live coding et n'a pas été conçu pour le VJing — à l'origine, c'est un outil de composition et de diffusion vidéo (streaming, enregistrement). Mais son modèle de scènes composées de sources empilées, avec effets, filtres et bascules à la volée, en fait une alternative libre crédible aux séquenceurs visuels propriétaires comme Resolume, une fois complété par quelques extensions.
Architecture mentale
- Sources : capture d'écran, fenêtre, webcam, fichier média, Browser Source (une page web entière, rendue en direct — voir plus bas), entrée NDI/Spout via plugin.
- Scènes : une combinaison de sources empilées, avec position, effets, filtres. L'équivalent d'une « colonne » Resolume.
- Collections de scènes : ensembles de scènes, basculables à la volée (raccourcis clavier, Stream Deck, OSC via plugin).
- Extensions clés pour le VJing : Move Transition (anime des propriétés de source dans le temps), Advanced Scene Switcher (automatisation, y compris par OSC/MIDI), obs-ndi et obs-spout2-plugin (entrées/sorties réseau ou GPU).
Pont avec le live coding
Deux approches, complémentaires :
- Capture réseau/GPU — comme avec Resolume : Hydra tourne dans un navigateur, sa sortie est envoyée en NDI ou Spout, OBS la reçoit comme n'importe quelle source vidéo.
- Browser Source directe — plus simple et propre à OBS : on charge l'URL d'un sketch Hydra (ou Strudel, ou toute page web) directement comme source, sans capture d'écran intermédiaire. Rendu net, latence minimale, plusieurs sketches superposables sur des couches différentes.
Forces : libre, gratuit, multiplateforme, communauté et écosystème de plugins considérables, intégration NDI de premier ordre. Cohérent avec l'éthique open source du reste du cursus. Limites : pensé pour le streaming, pas le VJing — les fonctions typiquement attendues d'un séquenceur visuel (grille de clips synchronisée au BPM, transitions avancées prêtes à l'emploi) demandent plus de configuration manuelle ou des plugins tiers. Ressources : obsproject.com.
Vue d'ensemble
| Outil | Famille | Paradigme | Niveau | Intégration |
|---|---|---|---|---|
| Sonic Pi | Audio LC | Boucles nommées | Débutant | SC en interne |
| Strudel | Audio LC | Patterns fonctionnels | Débutant–avancé | WebAudio, OSC |
| SuperCollider | Audio LC | Synthèse client/serveur | Avancé | OSC, MIDI |
| Hydra | Visuel LC | Chaînage GLSL | Débutant–avancé | NDI/Spout/Syphon |
| OBS Studio | Composition scénique libre | Scènes + sources | Débutant–scène | NDI/Spout (plugins), OSC (plugin), Browser Source |
Une chaîne typique de fin de cursus : Strudel (motif rythmique, envoie OSC) → SuperCollider (synthèse) → analyse audio → Hydra (visuel) → OBS Studio (composition de scène et diffusion).
4. Live coding et VJing : deux gestes pour l'image en direct
Cette section est l'articulation théorique du cursus. Il faut penser ensemble ce qui sépare et ce qui rapproche le live coding et le VJing, parce que la pratique contemporaine ne respecte plus la frontière — et c'est tant mieux.
Brève histoire du VJing
Le VJ (video jockey) hérite de plusieurs lignées : les light shows psychédéliques des années 1960 (Joshua Light Show, Mark Boyle, l'Exploding Plastic Inevitable d'Andy Warhol) ; les video synthesizers analogiques des années 1970 (Dan Sandin, Rutt-Etra) ; le cinéma élargi (Gene Youngblood, 1970) ; les clubs et raves des années 1980–90, où le VJ devient un métier.
Jalons logiciels : VDMX (1999), Modul8 (2003), Resolume Avenue (2003), VVVV (2002), TouchDesigner (2008), MadMapper (2010) — tous propriétaires. OBS Studio (2012) arrive plus tard dans cet écosystème, non pas comme outil VJ dédié mais comme alternative libre détournée par la communauté.
Deux gestes différents
| VJing (OBS Studio type) | Live coding visuel (Hydra type) | |
|---|---|---|
| Matériau de base | Clips vidéo préparés | Code écrit en direct |
| Geste de scène | Déclencher, mixer, modifier paramètres | Écrire, modifier, recharger |
| Préparation | Très lourde (banque de clips) | Légère (quelques snippets de départ) |
| Improvisation | Sur l'enchaînement et les effets | Sur le contenu lui-même |
| Risque scénique | Faible (clips testés) | Élevé (un crash est possible) |
| Identité visuelle | Donnée par les clips choisis | Émergente, parfois imprévue |
| Public visible | Interface, parfois cachée | Code projeté |
Ce ne sont pas deux versions d'une même chose : ce sont deux esthétiques de la performance. Le VJ assume un répertoire visuel, comme un DJ assume sa discothèque. Le live codeur assume un processus dont le résultat n'est pas connu d'avance.
Ce que les deux ont en commun
- Le temps réel. Tout est calculé/déclenché pendant que ça joue.
- L'audio-réactivité. FFT envoyée à un filtre audio-réactif OBS ou à
a.fft[0]dans Hydra. - L'improvisation. Aucun set n'est jamais figé.
- La performance comme objet. Le geste de l'opérateur compte, pas seulement le résultat à l'écran.
- Une économie d'attention partagée avec un musicien, un public, une lumière.
Zones de recouvrement et hybrides
Hydra utilisé comme outil VJ
De plus en plus de VJ « purs » utilisent Hydra en préparant des sketches qu'ils déclenchent comme des clips : Hydra devient une source dans un setup VJ, sans que le code soit projeté.
TouchDesigner et le node-based
TouchDesigner (Derivative, Toronto) brouille la frontière autrement : environnement node-based, on patche visuellement (comme Max/MSP), avec du Python à l'intérieur. C'est l'équivalent visuel de Pure Data / Max/MSP pour le son : programmation visuelle, pas live coding au sens TOPLAP, mais générative et temps réel.
Routage entre mondes
Hydra (navigateur)
--[Browser Source directe, ou capture Spout/Syphon/NDI]-->
OBS Studio (composition et scéno)
--[HDMI, ou sortie NDI]-->
Vidéoprojecteurs / LED walls Strudel (rythme + OSC out)
--[OSC]--> SuperCollider (synthèse audio)
--[audio bus]--> analyse FFT
--[OSC]--> Hydra (audio-réactivité) Live coding dans OBS ?
Plus direct qu'avec un séquenceur fermé : une source Browser pointée sur un sketch Hydra hébergé en ligne se recharge dès que le fichier change. On peut donc éditer le code du visuel pendant que la scène OBS tourne, sans jamais quitter le navigateur — la frontière avec le live coding s'efface presque complètement.
Audio-réactivité : techniques communes
Analyse FFT
Décomposition d'un signal audio en bandes de fréquences. En général 4, 8 ou 16 bandes pour une réactivité de scène : la basse module les éléments lents/grands, les hautes les détails fins. Dans Hydra : a.fft[i]. Dans OBS : plugin audio-réactif tiers (ex. obs-audio-visualizer) ou pilotage externe par OSC. Dans SuperCollider : FFT.kr et Onsets.kr.
OSC (Open Sound Control)
Protocole UDP textuel, conçu en 1997 à Berkeley pour remplacer le MIDI. Format : /path/to/something <args>.
// dans Strudel
s("bd").osc("/kick") // dans Hydra (avec extension OSC)
osc(20, 0.1).out(o0)
oscReceive("/kick", () => { osc(40, 0.2, 1).out(o0) }) MIDI
Plus ancien (1983), moins flexible mais universel. Utile pour brancher un contrôleur physique (Akai LPD8, Korg nanoKONTROL, Launchpad).
Synthèse
La distinction live coding / VJing est utile au début pour cadrer la pratique. Elle s'efface ensuite : sur scène, ce qui compte est la cohérence entre le geste et le rendu, pas l'étiquette de l'outil.
Le VJ choisit ce qu'il joue, le live codeur choisit ce qu'il invente, et le bon performeur sait quand basculer de l'un à l'autre.
5. Scène strasbourgeoise et glitch art en profondeur
La scène strasbourgeoise
La scène live coding strasbourgeoise s'organise autour de TOPLAP Strasbourg, antenne locale de l'organisation internationale TOPLAP fondée à Hambourg en 2004. Le format de diffusion principal est l'évènement Chaos Lab, série de soirées qui réunissent live codeurs, vidéastes en temps réel et public dans une logique d'algorave francophone.
Chaos Lab
Plusieurs éditions ont eu lieu depuis les débuts du collectif. Chaque édition rassemble plusieurs performeurs sur une même soirée, dans une logique de plateau partagé plutôt que de tête d'affiche. Le public est invité à voir le code, à poser des questions ; la plupart des sets sont captés vidéo et archivés.
- Un format hybride : performances individuelles, duos, et pièces collectives parfois improvisées entre live codeurs et VJ.
- Une attention pédagogique : pré-soirée parfois ouverte, ateliers en parallèle.
- Une diffusion en « cadavre exquis » parfois pratiquée, où chaque performeur reprend la matière du précédent.
Lieux et écosystèmes proches
- Le Shadok, fabrique du numérique de l'Eurométropole : ateliers, résidences, lieu d'accueil pour des évènements arts numériques.
- HEAR (Haute École des Arts du Rhin) : terrain pour les expérimentations de jeunes artistes.
- Ososphère, festival historique de musiques électroniques et arts numériques (depuis 1997).
- La Laiterie, Stimultania, et d'autres lieux qui programment ponctuellement des artistes proches.
Sociologie de la scène
- Une pratique transverse. Les Chaos Labs croisent musiciens noise, codeurs, plasticiens, danseurs ponctuellement.
- Un fonctionnement DIY. Pas de subvention massive, beaucoup d'auto-organisation.
- Une culture du partage. Captations en ligne, code parfois publié, ateliers gratuits ou à prix libre.
Glitch art en profondeur
Le glitch est l'esthétique du dysfonctionnement assumé. Plutôt que de masquer l'erreur, on l'invite, on la provoque, on l'organise. C'est l'une des esthétiques les plus directement compatibles avec le live coding : le code visible, le bug visible, la machine qui montre ses entrailles.
Origines
Nam June Paik, Magnet TV (1965). Un téléviseur cathodique avec un aimant posé dessus déforme le faisceau d'électrons : un acte glitch avant le mot.
Steina et Woody Vasulka. Dès les années 1970, exploration systématique des artefacts vidéo (drop-out, tearing, boucles de signaux), transformés en grammaire.
Émergence du terme. Le mot glitch s'impose dans la culture numérique des années 1990, d'abord côté musique (Oval, Pole, Alva Noto), puis côté arts visuels.
Théoriciens
Rosa Menkman — Glitch Studies Manifesto (2010), The Glitch Moment(um) (2011) — pose la distinction fondatrice entre glitch (pur), accident réel non reproductible, et glitch-alike, reproduction délibérée et contrôlée de cette esthétique.
Iman Moradi, thèse Glitch Aesthetics (2004), un des premiers travaux universitaires sur le sujet. Hugh S. Manon & Daniel Temkin, Notes on Glitch (2011) : le glitch comme expérience du réel matériel de l'image numérique.
Techniques — panorama
1. Databending. Ouvrir un fichier image (BMP, RAW, TIFF) avec un éditeur audio (Audacity), lui appliquer des effets sonores (réverb, écho, delay), le ré-enregistrer.
# Exemple : ouvrir un BMP dans Audacity
# 1. File > Import > Raw Data (U-Law / 8-bit / mono)
# 2. Sélectionner la zone après l'en-tête (54 octets pour BMP)
# 3. Appliquer un effet : Echo, Reverb, Phaser
# 4. Export > Other uncompressed > même format brut
# 5. Renommer en .bmp, ouvrir 2. Datamoshing. Les codecs vidéo (H.264) distinguent images-clés (I-frames) et images-différences (P-frames). Supprimer les I-frames fait que les P-frames suivantes « appliquent leur différence » à une image incohérente : écoulements, morphings. Référence : Takeshi Murata, Monster Movie (2005).
3. Pixel sorting. Popularisé par Kim Asendorf (2010). Pour chaque segment d'une ligne vérifiant un critère (luminosité, teinte), on trie les pixels selon une mesure.
# Pseudo-code (Python + PIL)
from PIL import Image
img = Image.open('input.jpg').convert('RGB')
w, h = img.size
pix = img.load()
for y in range(h):
row = [pix[x, y] for x in range(w)]
start, end = 100, 500
row[start:end] = sorted(
row[start:end],
key=lambda c: 0.299*c[0] + 0.587*c[1] + 0.114*c[2]
)
for x, p in enumerate(row):
pix[x, y] = p
img.save('output.png') 4. Mauvaise interprétation de codec / format. Forcer un programme à lire un fichier comme s'il était dans un autre format (ex : interpréter un fichier audio comme image).
5. Bit shifting et XOR. Manipuler les octets d'une image par décalage de bits ou XOR avec une clé. PNG résiste (CRC) ; BMP, TIFF, RAW se laissent faire.
# Python : XOR sur les pixels d'un BMP (saute les 54 octets d'en-tête)
with open('in.bmp', 'rb') as f: data = bytearray(f.read())
key = 0x37
for i in range(54, len(data)):
data[i] ^= key
with open('out.bmp', 'wb') as f: f.write(data) 6. JPEG — coups dans la quantification. Modifier les tables de quantification DCT pour obtenir des artefacts de blocs caractéristiques (projet jpglitch de Daniel Temkin).
7. Compression à outrance et générations. Sauver, recompresser, répéter : la perte se cumule (équivalent visuel de I Am Sitting in a Room de Lucier).
8. Glitch GLSL en temps réel. Plutôt que de corrompre des fichiers, écrire des shaders qui simulent le glitch — l'approche de référence pour la performance.
// Hydra : un glitch numérique
osc(40, 0.1)
.modulateScale(noise(2, 1).pixelate(20, 20), 0.3)
.pixelate(50, () => 50 + a.fft[0]*200)
.modulate(noise(10).thresh(0.5))
.out() 9. Glitch matériel : circuit bending. Reed Ghazala, années 1970–90 : court-circuiter volontairement des jouets sonores et synthétiseurs bon marché.
10. Mojibake et corruptions de texte. Encodages mélangés (UTF-8/ISO-8859-1) produisant des séquences de caractères absurdes, utilisées comme matière par Jodi, Daniel Temkin.
Glitch et live coding : ce qui s'aligne
- Le code visible. Le glitch montre la matière numérique, le live coder montre l'instruction.
- Le risque. Une performance live coding peut crasher ; un glitch artist provoque le crash. Le crash est l'évènement.
- La critique de la « propreté » numérique. Refuser le rendu lisse au profit d'une matière brute.
Pour aller plus loin
- Rosa Menkman, The Glitch Moment(um), INC, 2011 (téléchargeable libre).
- Iman Moradi, Glitch Aesthetics, mémoire de Master, 2004.
- Jon Cates, Dirty New Media, à partir de 2007.
- Daniel Temkin, blog esoteric.codes.
- Le festival GLI.TC/H (2010–2014, Chicago/Birmingham/Amsterdam).
- Kim Asendorf, ASDFPixelSort sur GitHub.
6. Le feedback en profondeur
Le feedback — la rétroaction — est l'un des grands principes esthétiques et techniques du temps réel. Une sortie qui revient en entrée, un système qui s'écoute lui-même, et qui dérive ou s'auto-stabilise. Aussi vieux que le micro qui siffle devant une enceinte, aussi neuf qu'un src(o0) dans Hydra.
Origine cybernétique
Le terme feedback entre dans le langage scientifique avec Norbert Wiener, Cybernetics: Or Control and Communication in the Animal and the Machine (1948). Deux régimes : feedback négatif (corrige l'écart, stabilise — thermostat) et feedback positif (amplifie l'écart, diverge, sature, oscille).
L'art du feedback en arts numériques navigue presque toujours dans la zone positive ou à la frontière : juste assez de divergence pour que le système ait l'air vivant, juste assez de stabilité pour qu'il ne sature pas instantanément.
Feedback audio
Feedback acoustique : le Larsen
Un microphone capte une enceinte qui amplifie ce qu'il capte ; certaines fréquences sont renforcées à chaque tour de boucle. Jimi Hendrix, à Monterey en juin 1967, joue Wild Thing avec la guitare collée à l'ampli, le Larsen comme matière musicale. Glenn Branca, Rhys Chatham en feront un vocabulaire dans les années 1980 à New York.
Alvin Lucier, I Am Sitting in a Room (1969)
Lucier enregistre lui-même prononçant un texte, puis rejoue et ré-enregistre cet enregistrement dans la même pièce, en boucle. À chaque génération, les résonances propres de la pièce sont accentuées, la voix se désintègre, et il ne reste qu'une nappe harmonique — la signature acoustique de la pièce. Manifeste : le médium est la composition.
Stockhausen, Mikrophonie I (1964)
Deux musiciens frottent un grand tam-tam ; deux autres déplacent des micros directionnels ; deux autres filtrent et spatialisent en direct. Un dispositif de feedback contrôlé.
No-input mixer (Toshimaru Nakamura)
Une table de mixage branchée sur elle-même, sans signal source : elle entre en oscillation et devient un instrument dont on « joue » en bougeant les potentiomètres (fin des années 1990).
Feedback synthétique : bouclages internes
- Filtre en peigne (comb filter) : un délai court rebouclé, cœur du flanger, du chorus, de la synthèse de Karplus-Strong.
- Synthèse FM (Chowning, 1973) : auto-modulation d'un opérateur → spectres saturés (DX7).
- Synthèse par modèles physiques : l'instrument modélisé comme système à feedback.
- Karplus-Strong (1983) : une corde simulée comme un délai bouclé avec un filtre passe-bas.
// SuperCollider : Karplus-Strong minimal
SynthDef(\karplus, { |freq=220, amp=0.3|
var sig, in;
in = WhiteNoise.ar() * EnvGen.kr(Env.perc(0.001, 0.05));
sig = LocalIn.ar(1) * 0.99; // lit le buffer feedback
sig = LPF.ar(sig + in, freq * 4);
sig = DelayC.ar(sig, 0.05, 1.0/freq);
LocalOut.ar(sig); // écrit dans le buffer feedback
Out.ar(0, sig * amp ! 2);
}).add; Trois lignes de feedback (LocalIn, DelayC, LocalOut) suffisent à transformer un bruit blanc bref en corde pincée. Le coefficient 0.99 contrôle la décroissance ; 0.999 prolonge à l'infini.
Feedback vidéo
Le feedback analogique : caméra-écran
Filmer un écran de TV qui affiche ce que la caméra filme : au moindre angle, un motif émerge (couloirs infinis, fractales, vortex). Steina et Woody Vasulka, Joan Jonas (Vertical Roll, 1972) ont systématiquement exploité cette boucle.
Feedback numérique : Hydra
Hydra a fait du feedback un primitif central avec src(o0) (lire le buffer de sortie comme une source).
// Feedback simple — le couloir infini
osc(10, 0.1, 0.8).out()
src(o0)
.scale(0.98) // chaque image est légèrement réduite
.layer(osc(10, 0.1, 0.8).mask(shape(4, 0.3)))
.out() // Feedback modulé — le "Lucier visuel"
osc(20, 0.05, 1.4)
.modulate(src(o0), 0.005)
.blend(src(o0), 0.92)
.out() // Feedback chaotique
src(o0)
.rotate(() => 0.01 + a.fft[0]*0.05)
.scale(1.01)
.modulateHue(src(o0), 0.4)
.layer(osc(40, 0.1).luma(0.3).color(1, 0, 0))
.out() Concept clé : le coefficient de fuite
Tout feedback artistique repose sur un dosage entre persistance (combien on garde du passé) et nouveauté (combien on injecte). 0.95 et 0.99 ne donnent pas du tout la même musique.
Feedback en code : auto-modification
Extempore (Andrew Sorensen) permet de redéfinir des fonctions pendant qu'elles sont en cours d'exécution. Gibber (Charlie Roberts) intègre des notions de réflexivité où l'éditeur peut être modifié par le code joué — la limite asymptotique du live coding : le code s'auto-réécrit.
Feedback comme matière mathématique
La carte logistique (May, 1976)
x(n+1) = r · x(n) · (1 − x(n)) — un système discret à feedback dont le comportement varie selon r : convergence (r<3), oscillation (3<r<3.45), régime chaotique (r>~3.57).
// SuperCollider : carte logistique comme LFO
SynthDef(\logistic_lfo, { |out=0, r=3.8, freq=4|
var x;
x = LocalIn.kr(1, 0.5);
x = r * x * (1 - x);
LocalOut.kr(x);
Out.kr(out, x);
}).add; L'attracteur de Lorenz (1963)
Trois équations différentielles couplées (σ=10, ρ=28, β=8/3) tracent l'attracteur étrange en forme de papillon — trois signaux de contrôle corrélés mais imprévisibles.
Feedback : pratique pédagogique
- Acoustique. Un micro, une enceinte, on écoute le Larsen, on apprend à le contrôler.
- Numérique audio. Un Karplus-Strong en SuperCollider ou Sonic Pi, coefficient de 0.5 à 0.999.
- Numérique visuel. En Hydra,
osc().out()puissrc(o0), doser leblend.
Pour aller plus loin
- Norbert Wiener, Cybernetics, 1948.
- Alvin Lucier, Reflections / Réflexions, MusikTexte, 1995.
- David Toop, Sinister Resonance, Continuum, 2010.
- Robert M. May, « Simple Mathematical Models with Very Complicated Dynamics », Nature, 1976.
- Karplus & Strong, « Digital Synthesis of Plucked-String and Drum Timbres », Computer Music Journal, 1983.
7. Pure Data : programmation visuelle pour le temps réel
Présentation
Pure Data (Pd) est un environnement de programmation visuelle pour le son, l'image et l'interactivité, créé par Miller Puckette en 1996. On y « patche » en branchant des boîtes les unes aux autres, comme on connecterait des modules eurorack. C'est l'outil de référence des arts numériques depuis vingt-cinq ans : installations interactives, scénographies, instruments embarqués, prototypage temps réel.
Filiation : Patcher, Max, Pd
- 1985–1990, IRCAM, Paris. Miller Puckette développe Patcher sur Macintosh — le grand-père commun.
- 1990, IRCAM puis Cycling '74. Patcher devient Max — aujourd'hui Max/MSP/Jitter, commercial.
- 1996, UCSD. Puckette repart d'une page blanche, plus modulaire et libre : Pure Data. Open source dès l'origine.
Pd et Max sont conceptuellement frères, mais Pd est libre, Max payant et plus poli graphiquement.
Versions
- Pd Vanilla : la distribution officielle. Minimaliste, stable.
- Pd Extended : abandonnée depuis 2013, à éviter.
- Purr Data : fork actif de Pd Extended (Jonathan Wilkes).
- PlugData (Timothy Schoen, 2022–) : recommandé pour les débutants, fonctionne en plugin VST/AU, 100% compatible Pd.
Concepts fondamentaux
Patch
Un programme Pd est un patch : un canevas où l'on dispose des boîtes (objets, messages, nombres, atomes) reliées par des cordons.
Types de boîtes
- Objets :
[osc~ 440],[+ 1],[delay 500]. Le~en suffixe indique un objet audio rate ; sans lui, message rate. - Messages :
[hello],[set 100]. Données envoyées à la demande. - Nombres, symboles, sliders, radio buttons, bangs, etc.
Inlets et outlets
L'inlet de gauche est « chaud » : tout message reçu déclenche le calcul. Les inlets suivants sont « froids » : ils mettent à jour des valeurs internes sans déclencher. Conséquence : pour qu'un [+] additionne A et B, il faut envoyer B en froid d'abord, puis A en chaud.
Audio rate vs message rate
Message rate : asynchrone, événementiel (un bang, un nombre). Audio rate (~) : flux continu à la fréquence d'échantillonnage (44100, 48000 Hz).
Premier patch : un oscillateur
[number 440] <-- fréquence ajustable
|
[osc~ 440] <-- oscillateur sinusoïdal audio
|
[*~ 0.3] <-- multiplication par 0.3 (volume)
|
[dac~] <-- sortie audio Quatre boîtes, trois cordons, on entend un sinus à 440 Hz. Modifier le number change la fréquence en temps réel.
Feedback en Pd
On connecte une sortie à une entrée précédente. Pour des feedbacks sans larsen numérique, on utilise les paires [send~ bus] / [receive~ bus]. Karplus-Strong en Pd : [noise~] pulse bref → [delwrite~ corde 50] ← [delread~ corde] multiplié par 0.99 et filtré, rebouclé.
GEM et le visuel
GEM (Graphics Environment for Multimedia), extension graphique historique (Mark Danks, 1995) : 2D, 3D, vidéo, OpenGL en patch. Concurrence aujourd'hui avec Ofelia (openFrameworks) et des solutions externes via OSC vers Hydra/TouchDesigner.
Cas d'usage typiques
- Installations interactives. Capteurs (Arduino, Kinect, OSC) → Pd → son et image.
- Performance live électronique non-textuelle. Patch préparé, modulé en live avec contrôleurs.
- Embarqué.
libpd(Peter Brinkmann, 2010) embarque un moteur Pd dans une appli mobile, un Raspberry Pi, un Bela. - Recherche musicale. Standard à l'IRCAM, à STEIM, dans les laboratoires académiques.
Pure Data et live coding : le faux opposé
| Pd / Max | Live coding textuel |
|---|---|
| Programmation visuelle | Programmation textuelle |
| Patch préparé, modulé en live | Code écrit/modifié pendant la performance |
| Le geste est dans les contrôleurs | Le geste est dans la frappe |
| Le « programme » est figé visuellement | Le programme est en mouvement permanent |
Mais Pd permet de modifier le patch en cours d'exécution ; beaucoup de live codeurs textuels travaillent à partir de templates préparés ; des outils hybrides (Bespoke Synth, vvvv, TouchDesigner) brouillent encore plus la frontière. Pd est un cousin du live coding plus qu'un opposé.
Pour aller plus loin
- Site officiel : puredata.info.
- PlugData : plugdata.org.
- Andy Farnell, Designing Sound, MIT Press, 2010.
- Johannes Kreidler, Loadbang: Programming Electronic Music in Pd, 2009 (téléchargeable libre).
- Floss Manual Pure Data (en français, en partie).
8. Open source, art libre et Creative Commons
Cette section n'est pas un appendice juridique. C'est l'ossature politique et éthique du live coding, qu'il faut transmettre en même temps que la technique. Faire du live coding sans comprendre la culture du logiciel libre, c'est manquer la moitié du sujet.
Free software : l'origine politique
Richard Stallman et le projet GNU (1983)
Stallman, chercheur au MIT AI Lab, démissionne en 1983 et lance le projet GNU. En 1985, il fonde la Free Software Foundation. Il définit le logiciel libre par quatre libertés :
- Liberté 0 : exécuter le programme, pour tout usage.
- Liberté 1 : étudier le programme, le modifier.
- Liberté 2 : redistribuer des copies.
- Liberté 3 : distribuer des copies modifiées.
Le mot free est ici « libre », pas « gratuit ». La distinction « libre vs gratuit » est essentielle.
Copyleft et licence GPL
La licence GPL (1989, v2 en 1991, v3 en 2007) introduit le copyleft : tout dérivé d'une œuvre GPL doit lui-même être distribué sous GPL. Une logique virale et délibérée : la liberté se propage.
Open source : la reformulation pragmatique (1998)
En 1998, Eric Raymond, Bruce Perens et d'autres lancent l'Open Source Initiative. Discours plus pragmatique : l'open source, c'est efficace (Raymond, The Cathedral and the Bazaar, 1999 : « Given enough eyeballs, all bugs are shallow. »). Free software (FSF) : argument éthique. Open source (OSI) : argument pragmatique. En pratique, les licences agréées se recouvrent à 99%.
Familles de licences logicielles
Copyleft fort : GPL v2/v3 (SuperCollider est en GPL), AGPL. Copyleft faible : LGPL, MPL. Permissif : MIT, BSD (Pure Data, Hydra sont proches), Apache 2.0.
Les outils du cursus, leurs licences
| Outil | Licence | Famille |
|---|---|---|
| SuperCollider | GPL v3 | Copyleft fort |
| Sonic Pi | MIT | Permissif |
| TidalCycles | GPL v3 | Copyleft fort |
| Strudel | AGPL v3 | Copyleft fort + réseau |
| Hydra | AGPL v3 | Copyleft fort + réseau |
| Pure Data | BSD-3 | Permissif |
| OBS Studio | GPL v2 | Copyleft fort |
Sept outils sur sept de l'écosystème du cursus sont libres — y compris côté VJing, en s'écartant volontairement du standard propriétaire de l'industrie (Resolume, MadMapper) au profit d'OBS Studio.
Creative Commons : libérer les œuvres, pas les programmes
En 2001, Lawrence Lessig fonde Creative Commons pour combler le manque de licences adaptées aux œuvres artistiques. Quatre clauses : BY (Attribution), SA (Share-Alike), NC (Non-Commercial), ND (No Derivatives).
Six combinaisons, de la plus libre à la plus restrictive : CC BY, CC BY-SA (licence de Wikipédia), CC BY-NC, CC BY-NC-SA, CC BY-ND, CC BY-NC-ND. Et hors combinaisons : CC0, équivalent du domaine public.
Critique des clauses NC et ND
NC est juridiquement flou et freine la circulation autant qu'un copyright classique. ND interdit le remix — contraire à l'esprit des arts numériques. Pour un live codeur, CC BY ou CC BY-SA sont les choix naturels, cohérents avec le manifeste TOPLAP.
Free Art License (LAL)
La Licence Art Libre, publiée en 2000 par le collectif Copyleft Attitude à Paris. Conçue spécifiquement pour l'art, copyleft pur. Compatible avec CC BY-SA depuis 2014.
Open art, art libre, art en partage
- Code source publié. GitHub, Codeberg, Bitbucket regorgent de patchs Pd, sketches Hydra, projets SuperCollider.
- Captations en ligne. Algoraves, Chaos Labs, conférences diffusées sur YouTube/PeerTube.
- Workshops gratuits. TOPLAP, Sonic Pi (Live Coding Education), Strudel (workshops intégrés).
- Forums et chats horizontaux. TidalCycles Discord, Sonic Pi Slack, TOPLAP Mattermost.
Limites et tensions
- Travail invisible. Maintenir un outil open source comme SuperCollider est une charge énorme, souvent bénévole.
- Modèles économiques. Performance live, résidences, financements publics, donations (ko-fi, Liberapay, GitHub Sponsors), enseignement.
- NC et l'ambiguïté. Beaucoup choisissent NC par défaut sans réaliser qu'ils restreignent fortement la diffusion.
- Limites du copyleft musical. La SACEM française n'accepte pas les œuvres sous licence libre (sauf exceptions).
Qu'enseigner concrètement
- Lire les licences des outils qu'on utilise.
- Choisir une licence pour son propre travail dès le début (par défaut : CC BY-SA 4.0 pour les œuvres, MIT ou GPL v3 pour le code).
- Créditer systématiquement.
- Publier le code de ses performances, pas « quand ce sera propre ».
- Utiliser des plateformes neutres (Codeberg, Gitea auto-hébergé).
Pour aller plus loin
- Richard Stallman, Free Software, Free Society, FSF, 2010.
- Lawrence Lessig, Free Culture, 2004 (téléchargeable gratuitement).
- Eric S. Raymond, The Cathedral and the Bazaar, 1999.
- Christopher Kelty, Two Bits: The Cultural Significance of Free Software, Duke, 2008.
- Florent Latrive, Du bon usage de la piraterie, La Découverte, 2004.
- Site officiel Creative Commons : creativecommons.org.
- Licence Art Libre : artlibre.org.