Benutzer:Markus van Well/Live Coding
Dieser Artikel (Live Coding) ist im Entstehen begriffen und noch nicht Bestandteil der freien Enzyklopädie Wikipedia. | |
Wenn du dies liest:
|
Wenn du diesen Artikel überarbeitest:
|
Live Coding,[1] manchmal auch als on-the-fly programming,[2] just in time programming und conversational programming bezeichnet, macht die Programmierung zu einem integralen Bestandteil des laufenden Programms.[3]
Es ist vor allem eine Form der darstellenden Kunst und eine Kreativitätstechnik, die sich auf das Schreiben von Quellcode und den Einsatz von interaktiver Programmierung in improvisierter Weise konzentriert. Live Coding wird oft eingesetzt, um klang und bildbasierte digitale Medien sowie von Lichtanlagen, improvisiertem Tanz und Poesie,[4][5] zu erzeugen, ist jedoch in der Computermusik besonders häufig als Improvisation anzutreffen, obwohl es auch mit algorithmischer Komposition kombiniert werden kann.[6] In der Regel wird der Prozess des Schreibens von Quellcode durch die Projektion des Computerbildschirms in den Zuschauerraum sichtbar gemacht, wobei die Möglichkeiten der Visualisierung des Codes ein aktiver Forschungsbereich sind.[7] Live Coding-Techniken werden auch außerhalb von Performances eingesetzt, z. B. bei der Produktion von Filmsound[8] oder audiovisuellen Arbeiten für interaktive Kunstinstallationen.[9] Weiterhin ermögicht es die Vernetzung von Computern, diese Praxis in Gruppen zu realisieren.
Live Coder ist derjenige, der den Akt des Live Codings durchführt, in der Regel "Künstler, die programmieren lernen wollen, und Codierer, die sich selbst ausdrücken wollen"[10] oder mit den Worten von Wang & Cook "Programmierer/Performer/Komponisten".[2]
Live Coding ist auch eine zunehmend beliebte Technik in programmierbezogenen Vorlesungen und Konferenzpräsentationen und wurde von Mark Guzdial als "Best practice" für Informatikvorlesungen beschrieben.[11]
Techniken
Es wurde eine Reihe von Techniken entwickelt und für die Zwecke des Live Codings eingesetzt.
Darstellung und Manipulation von Zeit
Die spezifischen Möglichkeiten von zeitbasierten Medien und der Live-Interaktion mit Code haben zu einer Reihe neuartiger Entwicklungen und Anwendungen im Design von Programmiersprachen geführt. Durch die gegenseitige Einbettung von imperativen und deklarativen Teilsystemen ermöglichte die Programmiersprache SuperCollider[12] den Aufbau einer Bibliothek, die unvollständige und vorläufige Spezifikationen erlaubt, die zur Laufzeit umgeschrieben werden können.[13]
Mit der Programmiersprache ChucK wurde 2002 ein Ansatz zur "stark zeitgesteuerten" Programmierung eingeführt, bei dem eine präzise Zeitsteuerung durch eine prägnante Syntax in den Kontrollfluss eingebettet wird.
"Temporale Rekursion" war ein Begriff, der ursprünglich im Zusammenhang mit der Programmierumgebung Impromptu geprägt wurde. Die technischen Elemente innerhalb einer Programmierumgebung suchen weiterhin nach Kompressoren??? und Rekursionslösungen, aber die Zeit war ein großes Problem. Während die allgemeine Form einer zeitlichen Rekursion, d. h. jede asynchrone Funktionsrekursion durch die Zeit, jedem ereignisgesteuerten System zur Verfügung steht, hat Impromptu einen besonderen Schwerpunkt auf dieses spezielle Entwurfsmuster gelegt[14] und es zum Kernstück der Gleichzeitigkeitsarchitektur auf dieser Plattform gemacht. Die zeitliche Rekursion wurde wiederholt in SuperCollider verwendet und ist seitdem in der Programmierumgebung Fluxus implementiert worden.
Ein weiterer funktionaler Ansatz zur Darstellung von Zeit wird in der TidalCycles Pattern-DSL gezeigt,,[15] die Patterns als Kombinatoren darstellt, die über Funktionen der Zeit operieren, ähnlich den Techniken der funktionalen reaktiven Programmierung.[16]
Die Multi-User-Programmierung hat sich im Kontext des gemeinsamen Musizierens entwickelt, besonders durch die lange Entwicklung des Republic-Systems, das von den Mitgliedern der Netzwerkband PowerBooks Unplugged entwickelt und eingesetzt wurde.[17] Republic ist in die SuperCollider-Sprache integriert und ermöglicht es den Teilnehmern, gemeinsam LiveCode zu schreiben, der über das Computernetzwerk verteilt wird. Es gibt ähnliche Bemühungen in anderen Sprachen, wie z. B. den verteilten Tupelraum, der in der Sprache Impromptu verwendet wird.[18] Darüber hinaus unterstützen Overtone, Impromptu und Extempore Mehrbenutzersitzungen, bei denen eine beliebige Anzahl von Programmierern über das Netzwerk in einen bestimmten Laufzeitprozess eingreifen kann. Das Schreiben von Code in der Gruppe kann im selben Raum über ein lokales Netzwerk oder von entfernten Orten aus erfolgen, die auf einen gemeinsamen Server zugreift.[19] Begriffe wie Laptop-Band, Laptop-Orchester, kollaboratives Live-Coding oder kollektives Live-Coding werden verwendet, um eine vernetzte Live-Coding-Praxis sowohl lokal als auch aus der Ferne zu beschreiben.
Organisationen
TOPLAP (The (Temporary|Transnational|Terrestrial|Transdimensional) Organisation for the (Promotion|Proliferation|Permanence|Purity) of Live (Algorithm|Audio|Art|Artistic) Programming) ist eine informelle Organisation, die im Februar 2004 gegründet wurde, um die verschiedenen Interessengruppen zusammenzubringen, die sich um Live-Coding-Entwicklungsumgebungen gebildet hatten.[20] Das TOPLAP-Manifest stellt mehrere Anforderungen an eine TOPLAP-konforme Performance, insbesondere, dass die Bildschirme der Ausführenden projiziert und nicht verdeckt werden sollten.[21]
Seit 2020 fördert On-the-fly die Praxis des Live-Codings. Dieses Projekt wird vom Creative European Program kofinanziert und von Hangar, ZKM, Ljudmila und Creative Code Utrecht durchgeführt.[22]
Forschung
Eine Reihe von Forschungsprojekten und -gruppen wurde ins Leben gerufen, um Live Coding zu erforschen, wobei häufig interdisziplinäre Ansätze verfolgt werden, die eine Brücke zwischen den Geistes- und Naturwissenschaften schlagen. Erste Versuche, sowohl Live-Coding-Systeme zu entwickeln als auch das entstehende Feld in einen breiteren theoretischen Kontext einzubetten, fanden im Forschungsprojekt Artistic Interactivity in Hybrid Networks von 2005 bis 2008 statt, das von der Deutschen Forschungsgemeinschaft finanziert wurde.[23]
Darüber hinaus wurde das Live Coding Research Network ab Februar 2014 für zwei Jahre vom britischen Arts and Humanities Research Council finanziert und unterstützte eine Reihe von Aktivitäten wie Symposien, Workshops und eine jährliche internationale Konferenz, die International Conference on Live Coding (ICLC).[24]
LiveCoding-Community
? Eventuell ergänzen ?
Beispiele für Live-Coding-Umgebungen
Siehe auch
- Algorave—Veranstaltung, bei der Musik und/oder visuelle Darstellungen durch in der Regel live gecodete Algorithmen erzeugt werden
- Demoszene—Subkultur rund um das Coden audiovisueller Präsentationen (Demos)
- Exploratory programming— eine Praxis zur Erstellung von Software, um deren Anforderungen und Struktur zu verstehen ???
- Interactive programming—Programmierpraxis des Live Codings in der Softwareentwicklung ???
- NIME—Akademische und künstlerische Konferenz zu den Fortschritten in der Musiktechnologie, manchmal mit Live-Coding-Performances und Forschungspräsentationen
Referenzen
Literatur
- Andrews, Robert. “Real DJs Code Live.” Wired (online), 7 March 2006.
- Brown, Andrew R. “Code Jamming.” M/C Journal 9/6 (December 2006).
- Magnusson, Thor. "Herding Cats: Observing Live Coding in the Wild." "Computer Music Journal" Spring 2014, Vol. 38, No. 1, pp. 8–16.
- Ramsay, Stephen. “Algorithms are Thoughts, Chainsaws are Tools.” Critical Code Studies Workshop, March 2010. A short film on live coding and the TOPLAP manifesto.
- Sorensen, Andrew and Henry Gardner. “Programming With Time: Cyber-physical programming with Impromptu.” 22 September 2010.
- Di Próspero, Carolina. "Live coding. Arte computacional en proceso." Contenido. Arte, Cultura y Ciencias Sociales 2015, Vol. 5, pp. 5–19.
- ICLC 2015. "Proceedings of the First International Conference on Live Coding." Leeds, UK.
Weblinks
- Official TOPLAP website
- /*vivo*/ symposium on live coding
- Live Code Research Network
- International Conference on Live Coding
[[Category:Live coding| ]] [[Category:Algorave]] [[Category:Experimental music]] [[Category:Live music]] [[Category:Computer music]] [[Category:Computer programming]] [[Category:Digital art]] [[Category:User interface techniques]]
- ↑ Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), "Live Coding in Laptop Performance", Organised Sound 8(3): 321–30. doi:10.1017/S135577180300030X
- ↑ a b 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).
- ↑ Alan Blackwell, Alex McLean, James Noble, Jochen Otto, and Julian Rohrhuber, "Collaboration and learning through live coding (Dagstuhl Seminar 13382)", Dagstuhl Reports 3 (2014), no. 9, 130–168.
- ↑ Magnusson, T. (2013). The Threnoscope. A Musical Work for Live Coding Performance. In Live 2013. First International Workshop on Live Programming.
- ↑ Tech Know: Programming, meet music, BBC News. 28. August 2009. Abgerufen am 25. März 2010.
- ↑ Collins, N. (2003) "Generative Music and Laptop PerformanceBitte entweder wayback- oder webciteID- oder archive-is- oder archiv-url-Parameter angeben", Contemporary Music Review 22(4):67–79.
- ↑ McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). Visualisation of live code. In Electronic Visualisation and the Arts London 2010.
- ↑ Julian Rohrhuber: Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen. Springer Berlin Heidelberg, 2008, S. 60–70.
- ↑ Communion by Universal Everything and Field.io: interview. Abgerufen im 5 February 2013.
- ↑ Sarah Bell: Live coding brings programming to life - an interview with Alex McLean. Abgerufen im 2 March 2016.
- ↑ Mark Guzdial: What students get wrong when building computational physics models in Python: Cabellero thesis part 2. August 2011. Abgerufen im 5 February 2013.
- ↑ James McCartney (1996), SuperCollider: a new real time synthesis language, ICMC Proceedings, 1996.
- ↑ Julian Rohrhuber, Alberto de Campo, and Renate Wieser (2005), Algorithms today - Notes on Language Design for Just In Time Programming, Proceedings of International Computer Music Conference (Barcelona), ICMC, 2005, pp. 455–458.
- ↑ Sorensen, A & Gardner, H (2010) "Programming With Time: Cyberphysical Programming In Impromptu, In proceedings of the ACM Splash Conference 2010"
- ↑ Alex McLean: Making programming languages to dance to: Live Coding with Tidal. In: In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design 2014.
- ↑ Alex McLean: Tidal homepage. 2. August 2013.
- ↑ Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho, and H. Hölzl (2007). Purloined letters and distributed personsBitte entweder wayback- oder webciteID- oder archive-is- oder archiv-url-Parameter angeben. In Music in the Global Village Conference 2007.
- ↑ Sorensen, A. (2010). A distributed memory for networked livecoding performance. In Proceedings of International Computer Music Conference 2010.
- ↑ Sorensen, A. (2005). Impromptu : an interactive programming environment for composition and performance, In proceedings of the Australasian Computer Music Conference 2005
- ↑ 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.
- ↑ ManifestoDraft. In: Toplap.org .
- ↑ On-the-flly project. In: onthefly.space .
- ↑ [1] (Seite nicht mehr abrufbar)
- ↑ Live Coding Network. In: Gtr.ukri.org .