From 45a0f340b60a5d4d72f0211ee710b929f19cb2a1 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 24 Mar 2022 12:30:54 +0000 Subject: [PATCH] tidy up, get citations by URL --- paper/README.md | 8 ++ paper/{filter.py => bin/code-filter.py} | 0 paper/citation-cache.json | 109 +++++++++++++++++++++ paper/{ => images}/cc.png | Bin paper/make.sh | 8 +- paper/paper-preprocessed.md | 125 +++++++++++++++++++++++- paper/paper.md | 49 +++++++++- paper/paper.pdf | Bin 31575 -> 37811 bytes paper/strudel.bib | 16 --- paper/{ => tex}/latex-template.tex | 2 +- paper/{ => tex}/sig-alternate.cls | 2 +- paper/{ => tex}/waccopyright.sty | 2 +- 12 files changed, 294 insertions(+), 27 deletions(-) create mode 100644 paper/README.md rename paper/{filter.py => bin/code-filter.py} (100%) create mode 100644 paper/citation-cache.json rename paper/{ => images}/cc.png (100%) delete mode 100644 paper/strudel.bib rename paper/{ => tex}/latex-template.tex (99%) rename paper/{ => tex}/sig-alternate.cls (97%) rename paper/{ => tex}/waccopyright.sty (99%) 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 71072aeb70b6e69965a7337a4ee1b290ff424ef4..05a99753a73e982dd3440acdc9db2508c819a70f 100644 GIT binary patch delta 34927 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