Live coding

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Live Coding)

Le Live coding[1] (parfois appelé « programmation à la volée »[2], ou « programmation juste-à-temps ») est une technique de programmation basée sur l'utilisation de programmation interactive improvisée. Le Live coding est souvent utilisé pour créer des médias digitaux basés sur des sons et des images, et est particulièrement représenté en musique assistée par ordinateur. Il combine musique algorithmique et improvisation[3]. Typiquement, le processus d'écriture est rendu visible par projection de l'écran d'ordinateur dans l'audience, avec des moyens de visualisation du code, et une aire de recherche active[4]. Il existe aussi des approches de live coding humain dans la danse[5]. Les techniques de live coding sont également employées hors audience, comme pour produire des bandes son[6] ou des œuvres audiovisuelles pour des installations d'art interactif [7]

Le live coding est également une technique de plus en plus populaire dans les cours et conférences ayant trait à la programmation, et a été décrit comme une bonne pratique pour les cours d'informatique par Mark Guzdial[8].

Techniques de live coding[modifier | modifier le code]

Différentes techniques ont été développées et adaptées pour les besoins du live coding.

Représentation et manipulation du temps[modifier | modifier le code]

Les pressions sur les médias basés sur le temps et l'interaction en temps réel avec le code ont conduit à beaucoup de nouveaux développements et usages dans la conception des langages de programmation. Le langage ChucK a introduit le concept de programmation « à tempo strict » (en anglais : « strongly timed ») en 2002, incluant un timing de précision dans le contrôle de flux, au moyen d'une syntaxe simple et directe.

La « récursivité temporelle » est un terme employé initialement en relation avec l'environnement de programmation Impromptu. Alors que la forme générale d'une récursivité temporelle, fonction asynchrone de récursivité à travers le temps, est utilisable pour tout système événementiel, Impromptu a mis spécialement l'accent sur cet aspect[9], en faisant la pièce centrale de l'architecture concurrentielle de cette plate-forme. Depuis, la récursivité temporelle a été implémentée dans l'environnement Fluxus, Overtone et le langage de programmation Extempore.

Programmation multi-utilisateurs et mémoire partagée[modifier | modifier le code]

La programmation multi-utilisateurs s'est développée dans le contexte de la création de musique en groupe, à travers la longue évolution du système Republic créé et utilisé par les membres du groupe réseau PowerBooks Unplugged[10]. Republic est développé en SuperCollider, et permet aux participants d'écrire en temps réel et de façon collaborative du code qui est distribué sur le réseau d'ordinateurs. Il y a eu des efforts similaires dans d'autres langages, comme l'espace tuple distribué utilisé par le langage Impromptu[11]. De plus, Overtone, Impromptu et Extempore permettent des sessions multi-utilisateurs, dans lesquelles un nombre quelconque de programmeurs peut intervenir en réseau dans un processus d'exécution donné[12].

Organisations[modifier | modifier le code]

TOPLAP (The (Temporary|Transnational|Terrestrial|Transdimensional) Organisation for the (Promotion|Proliferation|Permanence|Purity) of Live (Algorithm|Audio|Art|Artistic) Programming) [13] est une organisation informelle constituée en pour rassembler diverses communautés qui s'étaient formées autour des environnements de live coding[14]. Le manifeste TOPLAP définit plusieurs contraintes pour une représentation conforme TOPLAP, en particulier le fait que les écrans des interprètes doivent être projetés et non cachés. TOPLAP a organisé de nombreux événements, en particulier le « LOSS Livecode festival »(Archive.orgWikiwixArchive.isGoogleQue faire ?) à l'Access Space en 2007, et elle a reçu en 2009 une subvention de la PRS Foundation pour ses activités au Royaume-Uni.

La recherche académique sur le live coding est en cours dans de nombreuses institutions, y compris le Princeton Sound Lab, l'université de Cologne, l'université de technologie du Queensland, l'université Griffith, le centre inter-disciplinaire pour la recherche scientifique en musique à l'université de Leeds, et les studios digitaux de Goldsmiths, University of London. Cependant, les environnements de développement de live coding sont en général des initiatives logicielles libres / open source, et sont donc en partie ou complètement développés par des pratiquants indépendants.

Groupes notoires[modifier | modifier le code]

Environnements notoires[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), "Live Coding in Laptop Performance", Organised Sound 8(3): 321–30. DOI 10.1017/S135577180300030X
  2. Wang G. & Cook P. (2004) "On-the-fly Programming: Using Code as an Expressive Musical Instrument", In Proceedings of the 2004 International Conference on New Interfaces for Musical Expression (NIME) (New York: NIME, 2004).
  3. Collins, N. (2003) "Generative Music and Laptop Performance « Copie archivée » (version du sur Internet Archive)", Contemporary Music Review 22(4):67–79.
  4. McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). Visualisation of live code. In Electronic Visualisation and the Arts London 2010.
  5. « Tech Know: Programming, meet music », BBC News,‎ (lire en ligne, consulté le )
  6. (en) Julian Rohrhuber, Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen, Springer Berlin Heidelberg, , 60–70 p. (lire en ligne)
  7. « Communion by Universal Everything and Field.io: interview » (consulté le )
  8. Mark Guzdial, « What students get wrong when building computational physics models in Python: Cabellero thesis part 2 » (consulté le )
  9. Sorensen, A & Gardner, H (2010) "Programming With Time: Cyberphysical Programming In Impromptu, In proceedings of the ACM Splash Conference 2010"
  10. Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho, and H. Hölzl (2007). Purloined letters and distributed persons. In Music in the Global Village Conference 2007.
  11. Sorensen, A. (2010). A distributed memory for networked livecoding performance. In Proceedings of International Computer Music Conference 2010.
  12. Sorensen, A. (2005). Impromptu : an interactive programming environment for composition and performance, In proceedings of the Australasian Computer Music Conference 2005
  13. L'Organisation (Temporaire|Transnationale|Terrestre|Transdimensionnelle) pour la (Promotion|Prolifération|Permanence|Pureté) de la programmation (Algorithmique|Audio|Artistique) en temps réel (NDT)
  14. Ward, A., Rohrhuber, J., Olofsson, F., McLean, A., Griffiths, D., Collins, N., and Alexander, A. (2004). Live algorithm programming and a temporary organisation for its promotion. In Goriunova, O. and Shulgin, A., editors, read_me - Software Art and Cultures.
  15. [1]
  16. « Bonzomatic »
  17. « Presentation - Sardine Documentation », sur sardine.raphaelforment.fr (consulté le )