Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Rethinking “time” in 3.1 Programming Languages Adam M. Smith ([email protected]) My goal Convince you that livecoding… – is practical – is interesting – invalidates commonly held assumptions – raises new language-design questions (hint: they all involve time) Livecoding Livecoding is the process of making substantial modifications to an algorithm even as it runs. ????!?!!! Why would you do such a thing? Who can pull this off? Wtf does it even look like? TOPLAP QuickTime™ and a decompressor are needed to see this picture. (Temporary|Transnational|Terrestrial|Transdimensional) Organisation for the (Promotion|Proliferation|Permanence|Purity) of Live (Algorithm|Audio|Art|Artistic) Programming http://toplap.org “Generative music is about sowing seeds, comparable with genetic modification; altering DNA, putting the DNA in eggs, and watching it grow to see/hear the effects. In contrast, live coding is more about piecing animals together from scratch in the womb, splicing different live animals together, modifying their DNA while they're still growing, then experimenting with different ways of slaughtering them to get the best audio/visual/aromatic effects.” Strange Places by Andrew Sorensen QuickTime™ and a decompressor are needed to see this picture. A 15 minute masterpiece from the world’s foremost livecoding virtuoso. (some dude on the Internet from Austrialia) A few languages for livecoding music Language Paradigm Syntax Temporality PureData Patcher (data-flow) Boxes and wires (similar to Max) implicit time, continuous recomputation as in a spreadsheet ChucK OO-imperative C++-like with superpowered => operator explicit scheduling of synchronous shreds in abstract time, time types Impromptu Functional Scheme asynchronous, explicit scheduling of temporally tail-recursive functions, samples as only t-unit Cfml* Document(?) (think of XML) Scheme implicit time, JIT composition, general temporal recusion *an internal DSL hosted by Impromptu Demo time! “Time” • Software development – – – – Design-time Compile-time Run-time Dynamic-? Agile methods? • Music composition – Composition-time – Performance-time – Notation? Improvisation? • Generative music – Waveform period – Onset time – Note duration – Generation delay – Algorithm? Output? Where will time fit into your language? It’s over now; you may begin asking questions. • • • • PureData - http://puredata.info/ ChucK - http://chuck.cs.princeton.edu/ Impromptu - http://impromptu.moso.com.au/ Cfml - http://github.com/rndmcnlly/cfml/ That’s me