Le Live coding[1] (parfois appelé « programmation à la volée »[2], ou « programmation juste-à-temps ») est une forme de programmation interactive improvisée. Il 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 pour l’audience par une projection de l'écran de l'ordinateur du programmeur, avec des moyens de visualisation du code, et une aire de recherche active[pas clair][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

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

Représentation et manipulation du temps

modifier

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

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

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 février 2004 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.orgWikiwixGoogleQue 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

Environnements notoires

modifier

Voir aussi

modifier

Liens externes

modifier

Notes et références

modifier
  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 22 juillet 2018 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,‎ 28 août 2009 (lire en ligne, consulté le 25 mars 2010)
  6. (en) Julian Rohrhuber, Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen, Springer Berlin Heidelberg, 2008, 60–70 p. (lire en ligne)
  7. « Communion by Universal Everything and Field.io: interview » (consulté le 5 février 2013)
  8. Mark Guzdial, « What students get wrong when building computational physics models in Python: Cabellero thesis part 2 » (consulté le 5 février 2013)
  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 2 août 2023)

📚 Artikel Terkait di Wikipedia

Programming Without Coding Technology

Programming Without Coding Technology (PWCT) est un langage de programmation visuel à usage général pour le développement d'applications et de systèmes

Liste d'abréviations en informatique

(Anticrénelage) AAA : Authentication Authorization Accounting AAC : Advanced Audio Coding AAD : Analogique-Analogique-Digital AAL : ATM Adaptation Layer ABAP : Allgemeiner

Code d'effacement

compares to the near optimal codes mentioned above is unknown. Coding for Distributed Storage wiki for regenerating codes and rebuilding erasure codes

Code créatif

de John Maeda, voir Creative Code. Le code créatif (en anglais creative coding), ou programmation créative, consiste à utiliser la programmation informatique

OrientDB

Maîtrise de la gestion des données Base de données interaction humaine non-coding RNA Moteurs de recommandation Réseaux sociaux Systèmes de gestion du trafic

Codage de Rice

1971 Robert G. Gallager, David C. Van Voorhis, « Optimal source codes for geometrically distributed integer alphabets », IEEE Transactions on Information

Registre à décalage à rétroaction linéaire

utilisé comme source pour la rédaction de cet article. Registres à rétroaction linéaire sur www.apprendre-en-ligne.net (en) Simple VHDL coding for Galois

Chronologie des femmes en informatique

Paul; Boehm, Sharla P., « On Distributed Communications: II. Digital Simulation of Hot-Potato Routing in a Broadband Distributed Communications Network »