Live coding: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Ho corretto creada con creata, probabilmente un frutto di traduzione automatica |
Recupero di 4 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.3 |
||
Riga 1:
[[File:Study_in_keith.ogv|alt=Example live coding performance|miniatura|200x200px|''A Study in Keith'' è una performance musicale di live coding con il software Impromptu eguita da Andrew Sorensen.]]
Il '''live coding''',<ref>Collins, N., McLean, A., Rohrhuber, J. & Ward, A. (2003), "[http://akustik.hfbk.net/publications/LiveCodingInLaptopPerformance.pdf Live Coding in Laptop Performance] {{Webarchive|url=https://web.archive.org/web/20110811070509/http://akustik.hfbk.net/publications/LiveCodingInLaptopPerformance.pdf |date=11 agosto 2011 }}", ''Organised Sound'' 8(3): 321–30. {{Doi|10.1017/S135577180300030X}}</ref> a volte indicato anche con i termini '''on-the-fly programming''',<ref name="auto" /> '''just in time programming''' e '''conversational programming''', è una tecnica che rende l'attività di programmazione parte integrante del programma in esecuzione.<ref>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.</ref>
Il live coding è maggiormente praticato come forma d'[[Arti performative|arte performativa]] e tecnica creativa. L'attività è caratterizzata dalla scrittura del [[codice sorgente]] dal vivo e sull'uso della programmazione interattiva in modo [[Improvvisazione|improvvisato.]] Il live coding viene spesso impiegato per creare media digitali basati su suoni e immagini, nonché per gestire sistemi di illuminazione, [[danza]] e poesia<ref>Magnusson, T. (2013). [https://liveprogramming.github.io/2013/papers/thor.pdf The Threnoscope. A Musical Work for Live Coding Performance]. In Live 2013. First International Workshop on Live Programming.</ref><ref>{{Cita news|url=http://news.bbc.co.uk/1/hi/technology/8221235.stm|titolo=Tech Know: Programming, meet music|editore=BBC News|data=2009-08-28|accesso=2010-03-25}}</ref>. Tuttavia, è maggiormente diffuso per la creazione di [[computer music]] o musica informatica a carattere improvvisativo, anche se possiamo trovarlo impiegato anche in combinazione con la composizione algoritmica .<ref>Collins, N. (2003) "[https://wiki.brown.edu/confluence/download/attachments/74258672/Collins,+Generative+Music.pdf Generative Music and Laptop Performance] {{Webarchive|url=https://web.archive.org/web/20140514102233/https://wiki.brown.edu/confluence/download/attachments/74258672/Collins,+Generative+Music.pdf|data=2014-05-14}}", ''Contemporary Music Review'' 22(4):67–79.</ref> Tipicamente, il processo di scrittura del codice sorgente è reso visibile proiettando lo schermo del computer nello spazio del pubblico, mostrando quindi l'attività di continua ricerca compiuta dal performer.<ref>McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). [http://yaxu.org/visualisation-of-live-code/ Visualisation of live code] {{Webarchive|url=https://web.archive.org/web/20110321224717/http://yaxu.org/visualisation-of-live-code/ |date=21 marzo 2011 }}. In Electronic Visualisation and the Arts London 2010.</ref> Le tecniche di live coding sono impiegate anche al di fuori della performance dal vivo, come nella produzione di colonne sonore per film<ref>{{Cita libro|autore=Rohrhuber|nome=Julian|titolo=Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen|url=http://akustik.hfbk.net/publications/rohrhuber_artificial_natural_historical.pdf|anno=2008|editore=Springer Berlin Heidelberg|pp=60–70|accesso=1 agosto 2021|dataarchivio=11 agosto 2011|urlarchivio=https://web.archive.org/web/20110811070536/http://akustik.hfbk.net/publications/rohrhuber_artificial_natural_historical.pdf|urlmorto=sì}}</ref> o lavori audiovisivi per installazioni artistiche interattive.<ref>{{Cita web|url=http://www.creativeapplications.net/scripts/communion-cinder-scripts-events-special/}}</ref> Inoltre, i computer dei performer possono essere interconnessi grazie a una rete creata ad hoc, rendendo possibile la realizzazione di performance collaborative e l'interazione in gruppo.
Il o la '''live coder''' è la persona che esegue l'atto del live coding, solitamente "artisti o artiste che vogliono imparare a programmare, e programmatori che vogliono esprimersi"<ref>{{Cita web|url=http://www.britishscienceassociation.org/blog/live-coding-brings-programming-to-life-an-interview-with-alex-mac|titolo=Copia archiviata|accesso=1 agosto 2021|dataarchivio=4 marzo 2016|urlarchivio=https://web.archive.org/web/20160304142548/http://www.britishscienceassociation.org/blog/live-coding-brings-programming-to-life-an-interview-with-alex-mac|urlmorto=sì}}</ref> o, utilizzando i termini di Wang & Cook il "programmatore/esecutore/compositore" .<ref name="auto">Wang G. & Cook P. (2004) [http://soundlab.cs.princeton.edu/publications/on-the-fly_nime2004.pdf "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).</ref>
Il live coding è anche una tecnica sempre più popolare nelle lezioni e nelle conferenze relative alla programmazione ed è stata descritta come una "buona pratica" per le lezioni di informatica da Mark Guzdial .<ref>{{Cita web|url=http://computinged.wordpress.com/2011/08/01/what-students-get-wrong-when-building-computational-physics-models-in-python-cabellero-thesis-part-2/}}</ref>
Riga 20:
"Ricorsività temporale" era un termine coniato inizialmente in relazione all'ambiente di programmazione Impromptu. Gli elementi tecnici all'interno di un ambiente di programmazione continuano a risolvere i problemi di tempo attraverso l'uso di compressori e soluzioni basate sulla ricorsività, ma la sincronizzazione e la scansione temporale rimane comunque un problema significativo. Mentre la forma generale di una ripetizione, essendo qualsiasi ricorsività di funzione asincrona nel tempo, è disponibile per qualsiasi sistema guidato da eventi, Impromptu ha posto un'enfasi speciale su questo particolare modello di progettazione,<ref>Sorensen, A & Gardner, H (2010) "[http://eprints.qut.edu.au/55712/1/sorensen_ow_2010.pdf Programming With Time: Cyberphysical Programming In Impromptu, In proceedings of the ACM Splash Conference 2010]"</ref> rendendolo il pezzo centrale dell'architettura della concorrenza su quella piattaforma. La ricorsività temporale è stata ripetutamente utilizzata in [[SuperCollider]] e da allora è stata implementata anche nell'ambiente Fluxus .
Un altro approccio funzionale alla rappresentazione del tempo è mostrato nel caso del [[Domain-specific language|DSL]] Tidal,<ref>{{Cita libro|autore=McLean|nome=Alex|titolo=In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design|url=https://github.com/yaxu/Tidal/blob/master/doc/farm/farm.pdf?raw=true|anno=2014|città=Gothenburg|capitolo=Making programming languages to dance to: Live Coding with Tidal}}</ref> che rappresenta gli schemi temporali come combinatori che operano attraverso funzioni del tempo, simili alle tecniche di programmazione reattiva funzionale .<ref>{{Cita web|url=https://yaxu.org/tidal/|titolo=Copia archiviata|accesso=1 agosto 2021|dataarchivio=21 novembre 2015|urlarchivio=https://web.archive.org/web/20151121190435/http://yaxu.org/tidal/|urlmorto=sì}}</ref>
=== Programmazione multiutente e memoria condivisa ===
|