diff --git a/paper/README.md b/paper/README.md new file mode 100644 index 00000000..3cac29ce --- /dev/null +++ b/paper/README.md @@ -0,0 +1,8 @@ +Work in progress on a paper about strudel + +To build you will need +* pandoc + * pandoc-url2cite (`npm install -g pandoc-url2cite`) +* latex/xelatex +* python + * pandocfilters (`pip3 install pandocfilters`) diff --git a/paper/filter.py b/paper/bin/code-filter.py similarity index 100% rename from paper/filter.py rename to paper/bin/code-filter.py diff --git a/paper/citation-cache.json b/paper/citation-cache.json new file mode 100644 index 00000000..042541db --- /dev/null +++ b/paper/citation-cache.json @@ -0,0 +1,109 @@ +{ + "_info": "Auto-generated by pandoc-url2cite. Feel free to modify, keys will never be overwritten.", + "urls": { + "https://www.tandfonline.com/doi/abs/10.1080/14794713.2016.1227602?journalCode=rpdm20": { + "fetched": "2022-03-24T12:17:27.481Z", + "bibtex": [ + "", + "@article{roberts_code_2016,", + " title = {Code as information and code as spectacle},", + " volume = {12},", + " issn = {1479-4713},", + " url = {https://doi.org/10.1080/14794713.2016.1227602},", + " doi = {10.1080/14794713.2016.1227602},", + " abstract = {In this artist statement, I will discuss the tension between source code as an interactive system for performers and source code as information and entertainment for audiences in live-coding performances. I then describe augmentations I developed for the presentation of source code in the live-coding environment Gibber, including animations and annotations that visually reveal aspects of system state during performances. I briefly describe audience responses to these techniques and, more importantly, how they are critical to my own artistic practice.},", + " number = {2},", + " urldate = {2022-03-24},", + " journal = {International Journal of Performance Arts and Digital Media},", + " author = {Roberts, Charles},", + " month = jul,", + " year = {2016},", + " keywords = {Live coding, psychology of programming, notation, audiences, algorithms},", + " pages = {201--206},", + "}", + "" + ], + "csl": { + "DOI": "10.1080/14794713.2016.1227602", + "ISSN": "1479-4713", + "URL": "https://doi.org/10.1080/14794713.2016.1227602", + "abstract": "In this artist statement, I will discuss the tension between source code as an interactive system for performers and source code as information and entertainment for audiences in live-coding performances. I then describe augmentations I developed for the presentation of source code in the live-coding environment Gibber, including animations and annotations that visually reveal aspects of system state during performances. I briefly describe audience responses to these techniques and, more importantly, how they are critical to my own artistic practice.", + "accessed": { + "date-parts": [ + [ + 2022, + 3, + 24 + ] + ] + }, + "author": [ + { + "family": "Roberts", + "given": "Charles" + } + ], + "container-title": "International Journal of Performance Arts and Digital Media", + "id": "https://www.tandfonline.com/doi/abs/10.1080/14794713.2016.1227602?journalCode_x61_rpdm20", + "issue": "2", + "issued": { + "date-parts": [ + [ + 2016, + 7 + ] + ] + }, + "keyword": "Live coding, psychology of programming, notation, audiences, algorithms", + "page": "201-206", + "title": "Code as information and code as spectacle", + "type": "article-journal", + "volume": "12" + } + }, + "https://zenodo.org/record/5788732": { + "fetched": "2022-03-24T12:20:17.218Z", + "bibtex": [ + "", + "@misc{mclean_alternate_2021,", + " address = {Valdivia, Chile},", + " title = {Alternate {Timelines} for {TidalCycles}},", + " url = {https://zenodo.org/record/5788732},", + " abstract = {The TidalCycles (or Tidal for short) live coding environment has been developed since around 2009, via several rewrites of its core representation. Rather than having fixed goals, this development has been guided by use, motivated by the open aim to make music. This development process can be seen as a long-form improvisation, with insights into the nature of Tidal gained through the process of writing it, feeding back to guide the next steps of development. This brings the worrying thought that key insights will have been missed along this development journey, that would otherwise have lead to very different software. Indeed participants at beginners’ workshops that I have lead or co-lead have often asked questions without good answers, because they made deficiencies or missing features in the software clear. It is well known that a beginner’s mind is able to see much that an expert has become blind to. Running workshops are an excellent way to find new development ideas, but the present paper explores a different technique – the rewrite.},", + " urldate = {2022-03-24},", + " collaborator = {McLean, Alex},", + " month = dec,", + " year = {2021},", + " keywords = {live coding, algorithmic pattern, tidalcycles, haskell, python},", + "}", + "" + ], + "csl": { + "URL": "https://zenodo.org/record/5788732", + "abstract": "The TidalCycles (or Tidal for short) live coding environment has been developed since around 2009, via several rewrites of its core representation. Rather than having fixed goals, this development has been guided by use, motivated by the open aim to make music. This development process can be seen as a long-form improvisation, with insights into the nature of Tidal gained through the process of writing it, feeding back to guide the next steps of development. This brings the worrying thought that key insights will have been missed along this development journey, that would otherwise have lead to very different software. Indeed participants at beginners’ workshops that I have lead or co-lead have often asked questions without good answers, because they made deficiencies or missing features in the software clear. It is well known that a beginner’s mind is able to see much that an expert has become blind to. Running workshops are an excellent way to find new development ideas, but the present paper explores a different technique – the rewrite.", + "accessed": { + "date-parts": [ + [ + 2022, + 3, + 24 + ] + ] + }, + "id": "https://zenodo.org/record/5788732", + "issued": { + "date-parts": [ + [ + 2021, + 12 + ] + ] + }, + "keyword": "live coding, algorithmic pattern, tidalcycles, haskell, python", + "publisher-place": "Valdivia, Chile", + "title": "Alternate Timelines for TidalCycles", + "type": "" + } + } + } +} \ No newline at end of file diff --git a/paper/cc.png b/paper/images/cc.png similarity index 100% rename from paper/cc.png rename to paper/images/cc.png diff --git a/paper/make.sh b/paper/make.sh index 4c2d9d2f..0abdda34 100755 --- a/paper/make.sh +++ b/paper/make.sh @@ -7,9 +7,11 @@ fi # --template=templates/template.latex \ pandoc -s paper.md \ - --from markdown+auto_identifiers --pdf-engine=xelatex --template latex-template.tex -V colorlinks --number-sections --citeproc --pdf-engine=xelatex \ - --dpi=300 --bibliography strudel.bib -o paper.pdf + --from markdown+auto_identifiers --pdf-engine=xelatex --template tex/latex-template.tex -V colorlinks --number-sections \ + --filter=pandoc-url2cite --citeproc --pdf-engine=xelatex \ + --dpi=300 -o paper.pdf -pandoc -s paper.md --filter filter.py --citeproc --bibliography strudel.bib \ +pandoc -s paper.md --filter bin/code-filter.py --filter=pandoc-url2cite \ + --citeproc \ -t markdown-citations -t markdown-fenced_divs \ -o paper-preprocessed.md diff --git a/paper/paper-preprocessed.md b/paper/paper-preprocessed.md index 7c4b7c3e..a845d9c5 100644 --- a/paper/paper-preprocessed.md +++ b/paper/paper-preprocessed.md @@ -1,14 +1,131 @@ --- -bibliography: strudel.bib date: 2022-03-22 +references: +- abstract: In this artist statement, I will discuss the tension between + source code as an interactive system for performers and source code + as information and entertainment for audiences in live-coding + performances. I then describe augmentations I developed for the + presentation of source code in the live-coding environment Gibber, + including animations and annotations that visually reveal aspects of + system state during performances. I briefly describe audience + responses to these techniques and, more importantly, how they are + critical to my own artistic practice. + accessed: + date-parts: + - - 2022 + - 3 + - 24 + author: + - family: Roberts + given: Charles + container-title: International Journal of Performance Arts and Digital + Media + DOI: 10.1080/14794713.2016.1227602 + id: "https://www.tandfonline.com/doi/abs/10.1080/14794713.2016.1227602?journalCode_x61_rpdm20" + ISSN: 1479-4713 + issue: 2 + issued: + date-parts: + - - 2016 + - 7 + keyword: Live coding, psychology of programming, notation, audiences, + algorithms + page: 201-206 + title: Code as information and code as spectacle + type: article-journal + URL: "https://doi.org/10.1080/14794713.2016.1227602" + volume: 12 +- abstract: The TidalCycles (or Tidal for short) live coding environment + has been developed since around 2009, via several rewrites of its + core representation. Rather than having fixed goals, this + development has been guided by use, motivated by the open aim to + make music. This development process can be seen as a long-form + improvisation, with insights into the nature of Tidal gained through + the process of writing it, feeding back to guide the next steps of + development. This brings the worrying thought that key insights will + have been missed along this development journey, that would + otherwise have lead to very different software. Indeed participants + at beginners' workshops that I have lead or co-lead have often asked + questions without good answers, because they made deficiencies or + missing features in the software clear. It is well known that a + beginner's mind is able to see much that an expert has become blind + to. Running workshops are an excellent way to find new development + ideas, but the present paper explores a different technique -- the + rewrite. + accessed: + date-parts: + - - 2022 + - 3 + - 24 + id: "https://zenodo.org/record/5788732" + issued: + date-parts: + - - 2021 + - 12 + keyword: live coding, algorithmic pattern, tidalcycles, haskell, + python + publisher-place: Valdivia, Chile + title: Alternate Timelines for TidalCycles + URL: "https://zenodo.org/record/5788732" title: Strudel +url2cite: all-links --- # Introduction -That @roberts2015 are excellent, I reference their work at least twice -per sentence [@roberts2015, p. 3]. +That +@https://www.tandfonline.com/doi/abs/10.1080/14794713.2016.1227602?journalCode_x61_rpdm20 +are excellent, I reference their work at least twice per sentence +[@https://www.tandfonline.com/doi/abs/10.1080/14794713.2016.1227602?journalCode_x61_rpdm20, +p. 3]. Another reference [@https://zenodo.org/record/5788732]. -# References {#references .unnumbered} +# Background + +General motivations / related work. Reference vortex paper and summarise +its background. + +# Introducing TidalStrudel + +(do we want to call it TidalStrudel once, and Strudel for short from +then on as with vortex? Or just stick with Strudel? Should we start +calling TidalCycles just Cycles??) + +- Motivating musical example + +# Tidal patterns + +- Some comparisons of -Strudel with -Vortex and -Cycles code? +- Mininotation + +# Strudel/web specifics + +Some discussion about whether strudel is really a port of TidalCycles, +or whether javascript affordances mean it's going its own way.. + +- Recursive Scheduling: "calling itself in the future" +- Optimizing Syntax for minimal keystrokes / readability: "AST + Hacking" via shift-ast pseudo variables + - Handling mininotation - double quoted and template strings to + mini calls + - Operator overloading +- Fixing inconsistencies (e.g. with stut/echo) adding source locations +- Dynamic HUD: Highlighting + drawing +- Translation of Tidal concepts to Javascript - different constraints, + affordances, aesthetics +- Dynamic Harmonic Programming? +- emulating musician thought patterns +- microtonal features? webserial + +# Musical examples + +... + +# Ongoing work/future aims + +- WASM Sound Backend +- OSC -\> Supercollider +- mininotation as the 'regex' of metre + +# References diff --git a/paper/paper.md b/paper/paper.md index f5882c5f..3f5e55b8 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -1,15 +1,62 @@ --- title: 'Strudel' date: '2022-03-22' +url2cite: all-links --- # Introduction -That @roberts2015 are excellent, I reference their work at least twice per sentence [@roberts2015, p. 3]. +That @roberts2016 are excellent, I reference their work at least twice per sentence [@roberts2016, p. 3]. Another reference [@mclean21]. ```javascript "1 2 3" ``` +# Background + +General motivations / related work. +Reference vortex paper and summarise its background. + +# Introducing TidalStrudel + +(do we want to call it TidalStrudel once, and Strudel for short from then on as with vortex? Or just stick with Strudel? Should we start calling TidalCycles just Cycles??) + +* Motivating musical example + +# Tidal patterns + +* Some comparisons of -Strudel with -Vortex and -Cycles code? +* Mininotation + +# Strudel/web specifics + +Some discussion about whether strudel is really a port of TidalCycles, or whether javascript affordances mean it's going its own way.. + +* Recursive Scheduling: "calling itself in the future" +* Optimizing Syntax for minimal keystrokes / readability: "AST Hacking" via shift-ast +pseudo variables + * Handling mininotation - double quoted and template strings to mini calls + * Operator overloading +* Fixing inconsistencies (e.g. with stut/echo) +adding source locations +* Dynamic HUD: Highlighting + drawing +* Translation of Tidal concepts to Javascript - different constraints, affordances, aesthetics +* Dynamic Harmonic Programming? +* emulating musician thought patterns +* microtonal features? +webserial + +# Musical examples + +... + +# Ongoing work/future aims + +* WASM Sound Backend +* OSC -> Supercollider +* mininotation as the 'regex' of metre + # References +[@roberts2016]: https://www.tandfonline.com/doi/abs/10.1080/14794713.2016.1227602?journalCode=rpdm20 +[@mclean21]: https://zenodo.org/record/5788732 \ No newline at end of file diff --git a/paper/paper.pdf b/paper/paper.pdf index 71072aeb..05a99753 100644 Binary files a/paper/paper.pdf and b/paper/paper.pdf differ diff --git a/paper/strudel.bib b/paper/strudel.bib deleted file mode 100644 index 756a0734..00000000 --- a/paper/strudel.bib +++ /dev/null @@ -1,16 +0,0 @@ - -@inproceedings{roberts2015, - title = {Beyond {{Editing}}: {{Extended Interaction}} with {{Textual Code Fragments}}}, - shorttitle = {Beyond {{Editing}}}, - booktitle = {Proceedings of the International Conference on {{New Interfaces}} for {{Musical Expression}}}, - author = {Roberts, Charles and Wright, Matthew and Kuchera-Morin, JoAnn}, - date = {2015-05-30}, - series = {{{NIME}} 2015}, - pages = {126--131}, - publisher = {{The School of Music and the Center for Computation and Technology (CCT), Louisiana State University}}, - location = {{Baton Rouge, Louisiana, USA}}, - abstract = {We describe research extending the interactive affordances of textual code fragments in creative coding environments. In particular we examine the potential of source code both to display the state of running processes and also to alter state using means other than traditional text editing. In contrast to previous research that has focused on the inclusion of additional interactive widgets inside or alongside text editors, our research adds a parsing stage to the runtime evaluation of code fragments and imparts additional interactive capabilities on the source code itself. After implementing various techniques in the creative coding environment Gibber, we evaluate our research through a survey on the various methods of visual feedback provided by our research. In addition to results quantifying preferences for certain techniques over others, we found near unanimous support among survey respondents for including similar techniques in other live coding environments.}, - isbn = {978-0-692-49547-6} -} - - diff --git a/paper/latex-template.tex b/paper/tex/latex-template.tex similarity index 99% rename from paper/latex-template.tex rename to paper/tex/latex-template.tex index 2a2d41bc..e972a843 100755 --- a/paper/latex-template.tex +++ b/paper/tex/latex-template.tex @@ -1,5 +1,5 @@ -\documentclass{sig-alternate} +\documentclass{tex/sig-alternate} \usepackage{hyperref} diff --git a/paper/sig-alternate.cls b/paper/tex/sig-alternate.cls similarity index 97% rename from paper/sig-alternate.cls rename to paper/tex/sig-alternate.cls index e7d00f01..4b484186 100755 --- a/paper/sig-alternate.cls +++ b/paper/tex/sig-alternate.cls @@ -1502,7 +1502,7 @@ % Copyright -\RequirePackage{waccopyright} +\RequirePackage{tex/waccopyright} \setcopyright{none} % diff --git a/paper/waccopyright.sty b/paper/tex/waccopyright.sty similarity index 99% rename from paper/waccopyright.sty rename to paper/tex/waccopyright.sty index 22502f28..bf33fdcf 100755 --- a/paper/waccopyright.sty +++ b/paper/tex/waccopyright.sty @@ -221,7 +221,7 @@ this article, or to allow others to do so, for Government purposes only. \or % waclicense - \frame{\includegraphics[scale=.54]{cc}}\vspace{1mm}\vfill + \frame{\includegraphics[scale=.54]{images/cc}}\vspace{1mm}\vfill Licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0). \textbf{Attribution}: owner/author(s). \fi} \endinput