└── README.org /README.org: -------------------------------------------------------------------------------- 1 | * File comment :noexport: 2 | 3 | - Copyright (C) 2016-2018 Michael Brand 4 | - Licensed under GPLv3, see http://www.gnu.org/licenses/gpl-3.0.html 5 | - URL: http://github.com/brandm/music-coding-references 6 | 7 | * Summary 8 | - This is a collection of references to live coding music etc. 9 | - Each top level section after "Miscellaneous" is dedicated to one of the 10 | tools used to live coding music, there are many more than listed here. 11 | - Often there are more songs than listed here for one person, always also 12 | check the sites of the person who wrote a song. 13 | * Miscellaneous 14 | *** Live coding and "immediate connection" 15 | ***** Bret Victor - Talk: Inventing on Principle :@: 16 | - This talk is an absolute must! 17 | - Video on YouTube: http://www.youtube.com/watch?v=PUv66718DII 18 | - Same video on Vimeo: http://vimeo.com/36579366 19 | - Excerpts 20 | - 04m48s: "[...] How would I ever have discovered that if I had to 21 | compile and run between every change? So much of art, so much of 22 | creation is discovery, and you can't discover anything if you 23 | can't see what you're doing." 24 | - 16m07s: "[...] But if we're writing our code on a computer... 25 | why are we simulating what a computer would do in our head? Why 26 | doesn't the computer just do it... and show us?" 27 | - Transcript 28 | - Blog with reader comments: 29 | http://blog.ezyang.com/2012/02/transcript-of-inventing-on-principleb 30 | - Source: 31 | http://github.com/ezyang/cusec2012-victor/blob/master/transcript.md 32 | - Nice example of an interactive website: http://worrydream.com/Tangle 33 | ***** AREPL: Python code tracer 34 | - Project page: http://github.com/Almenon/AREPL 35 | ***** Colt Adobe Flash Live Coding Tool 36 | - Video: http://www.youtube.com/watch?v=GsK_syADzQ8 37 | ***** Event Notify Test Runner, entr(1): Notify an application upon file change 38 | - Project page: http://entrproject.org 39 | ***** Figwheel: Live coding ClojureScript :@: 40 | - Project page: http://github.com/bhauman/lein-figwheel 41 | ***** hydrogen: Partial live coding with any Jupyter kernel in Atom 42 | - Project page: http://atom.io/packages/hydrogen 43 | ***** IBNIZ: Live coding bare metal demoscene demo 44 | - Project page: http://pelulamu.net/ibniz 45 | - Video (warning: turn the volume down): 46 | http://www.youtube.com/watch?v=aKMrBaXJvMs 47 | ***** Impatient mode: Live coding HTML in Emacs 48 | - Project page: http://github.com/netguy204/imp.el 49 | ***** JS Bin: Live coding HTML, CSS and JavaScript 50 | - Project page: http://jsbin.com 51 | - Example: http://jsbin.com/quhujowota/1/edit?html,js,output 52 | ***** KLIPSE: Live coding for several languages 53 | - Project page: http://github.com/viebel/klipse 54 | - Clojurescript example: 55 | [[http://app.klipse.tech/?cljs_in=(let%20%5Bn%2040%5D%20(println%20(+%20n%202)))]] 56 | ***** LIVEditor: Live coding a website 57 | - Project page: http://liveditor.com 58 | - Video: http://www.youtube.com/watch?v=Cy8OIzr6azw 59 | ***** live-py-plugin: Python code tracer, Python live coding turtle :@: 60 | - Shows a trace of every run of every source code line. 61 | - Project page: http://donkirkby.github.io/live-py-plugin 62 | - Introduction: 63 | http://donkirkby.github.io/live-py-plugin/gettingstarted 64 | - Video: https://www.youtube.com/watch?v=Vdr2l3yNFH4 (older versions: 65 | https://www.youtube.com/watch?v=LV3aFRHlAEQ, 66 | https://www.youtube.com/watch?v=ZrbIVMdChDQ) 67 | - Plugin for Eclipse, Emacs or PyCharm 68 | ***** Tributary.io: Live coding JavaScript 69 | - Project page: http://tributary.io 70 | *** Hy (Lisp on Python) 71 | - Don't miss this wonderful Lisp. Its source is translated to the Python 72 | AST like any "normal" Python code and then takes the usual Python 73 | path: The Python AST is compiled into byte code and executed like any 74 | module.pyc. 75 | - Try Hy interactively in a browser without the need to install 76 | anything: http://try-hy.appspot.com 77 | - Project page: http://hylang.org 78 | * Clojure: MAD (Music as Data) 79 | - For coding with Clojure, written in Clojure. 80 | - Project page: http://mad.emotionull.com 81 | * Clojure: Music Compojure 82 | - For coding with Clojure, written in Clojure. 83 | - Project page: http://github.com/mhowlett/music-compojure 84 | *** Examples 85 | ***** Matt Howlett 86 | - GitHub: http://github.com/mhowlett 87 | ******* Matt Howlett - example_1 88 | - Source: 89 | http://github.com/mhowlett/music-compojure/blob/master/examples/example_1.clj 90 | ******* Matt Howlett - example_2 91 | - Source: 92 | http://github.com/mhowlett/music-compojure/blob/master/examples/example_2.clj 93 | ******* Matt Howlett - example_3 94 | - Source: 95 | http://github.com/mhowlett/music-compojure/blob/master/examples/example_3.clj 96 | ******* Matt Howlett - example_4 97 | - Source: 98 | http://github.com/mhowlett/music-compojure/blob/master/examples/example_4.clj 99 | * Clojure: Overtone 100 | - For coding with Clojure, written in Clojure. 101 | - Project page: http://overtone.github.io 102 | *** Details 103 | - Defines scales with incremental intervals. 104 | - Quick Intro to Overtone, Sam Aaron: 105 | - Video: http://vimeo.com/22798433 106 | - Source: 107 | http://github.com/overtone/overtone/blob/master/src/overtone/examples/getting_started/video.clj 108 | - Podcast with Sam Aaron: 109 | http://twit.tv/shows/floss-weekly/episodes/197 110 | - Meetup with Sam Aaron (see link to audio file): 111 | http://www.meetup.com/de-DE/zh-clj-Zurich-Clojure-User-Group/events/108855442 112 | - Emacs Org and Overtone quick intro, Bastien Guerry: 113 | http://github.com/bzg/org-overtone-intro 114 | - MIDI: http://github.com/overtone/overtone/wiki/MIDI 115 | - Play samples: 116 | http://github.com/overtone/overtone/blob/master/src/overtone/examples/synthesis/samples.clj 117 | - Instrument B3 organ (see ~definst b3~): 118 | http://github.com/overtone/overtone/blob/master/src/overtone/inst/synth.clj 119 | - "Once you've caught the bug, check out Sonic Pi's big brother: 120 | Overtone." -- Sam Aaron in 121 | http://www.raspberrypi.org/blog/sonic-pi-free-music-and-computing-resource/#comment-266194 122 | *** Enhancements 123 | ***** Leipzig 124 | - Project page: http://github.com/ctford/leipzig 125 | - Leipzig get started: 126 | http://github.com/ctford/leipzig/blob/master/README.md#get-started 127 | - For Leiningen the suggestion is to use the Leipzig Template: 128 | http://github.com/ctford/leipzig-template 129 | - In case of dependency problems when not using the Leipzig Template 130 | try with ~tempo~ and ~all~ added: 131 | #+BEGIN_SRC clojure :eval no 132 | (require '[leipzig.melody :refer 133 | [tempo all bpm is phrase then times where with]]) 134 | #+END_SRC 135 | ***** Disclojure UI 136 | - Project page: http://github.com/pjagielski/disclojure-ui 137 | ***** Musical Universes of Discourse 138 | - Project page: http://github.com/josephwilk/mud 139 | ***** Oberon 140 | - Project page: http://github.com/blinks/oberon 141 | *** Examples 142 | ***** Adam Blinkinsop 143 | - GitHub: http://github.com/blinks 144 | - SoundCloud: http://soundcloud.com/hackerblinks 145 | ******* Adam Blinkinsop - Oberon Opus 1 146 | - Audio: http://soundcloud.com/hackerblinks/oberon-opus-1 147 | ******* Adam Blinkinsop - Oberon Opus 2 148 | - Audio: http://soundcloud.com/hackerblinks/oberon-opus-2 149 | ***** Chris Ford 150 | - Blog: http://literateprogrammer.blogspot.ch 151 | - GitHub: http://github.com/ctford 152 | - SoundCloud: http://soundcloud.com/ctford 153 | ******* Chris Ford - Goldberg Variations 154 | - Source: http://github.com/ctford/goldberg 155 | ******* Chris Ford - Kraftwerk 156 | - Source: http://github.com/ctford/kraftwerk 157 | ******* Chris Ford - Overtunes 158 | - Source: http://github.com/ctford/overtunes 159 | ******* Chris Ford - Row Row Row Your Boat 160 | - Source: 161 | http://github.com/ctford/leipzig/blob/master/src/clj/leipzig/example/row_row_row_your_boat.clj 162 | ******* Chris Ford - Song 163 | - Source: 164 | http://github.com/ctford/leipzig-template/blob/master/src/leiningen/new/leipzig/song.clj 165 | ******* Chris Ford - Talk: Functional Composition :@: 166 | - Video of [2015-05-11 Mon]: http://vimeo.com/128467879 167 | - Video of [2013-08-27 Tue] (the later video of [2015-05-11 Mon] 168 | has better readable slides and is overall better but the graph 169 | at 24m35s is missing there): 170 | http://www.infoq.com/presentations/music-functional-language 171 | - Source: http://github.com/ctford/functional-composition 172 | ******* Chris Ford - Talk: Kolmogorov music :@: 173 | - Video: http://www.youtube.com/watch?v=Qg3XOfioapI 174 | ******* Chris Ford - Talk: Leipzig from Scratch :@: 175 | - Video: http://www.youtube.com/watch?v=Lp_kQh34EWA 176 | - Source: http://github.com/ctford/leipzig-from-scratch 177 | ******* Chris Ford - Whelmed :@: 178 | - Audio: http://soundcloud.com/ctford/whelmed 179 | - Source: http://github.com/ctford/whelmed 180 | ***** Piotr Jagielski 181 | - Blog "Overtone Recipes": http://overtone-recipes.github.io 182 | - GitHub: http://github.com/pjagielski 183 | ******* Piotr Jagielski - Functional Coldplay 184 | - Source and sound snippets: 185 | http://overtone-recipes.github.io/remake/2016/09/01/functional-coldplay-saws.html 186 | ******* Piotr Jagielski - Recreating Daft Punk's Da Funk 187 | - Source and sound snippets: 188 | http://overtone-recipes.github.io/remake/2016/04/03/recreating-da-funk.html 189 | ******* Piotr Jagielski - Smack My Lazer 190 | - Video: http://www.youtube.com/watch?v=JUq-YnuFt8w 191 | - Source and sound snippets: 192 | http://overtone-recipes.github.io/live-coding/remake/2016/04/25/smack-my-lazer.html 193 | ***** Sam Aaron 194 | - Personal page: http://sam.aaron.name 195 | - GitHub: http://github.com/samaaron 196 | ******* Sam Aaron - MAD 197 | - Adapted from MAD project. 198 | - Source: 199 | http://github.com/overtone/overtone/blob/master/src/overtone/examples/notation/mad.clj 200 | ******* Sam Aaron - MAD2 201 | - Adapted from MAD project. 202 | - Source: 203 | http://github.com/overtone/overtone/blob/master/src/overtone/examples/notation/mad2.clj 204 | * Clojurescript: Klangmeister 205 | - For coding with Clojurescript, written in Clojurescript. 206 | - Project page: http://ctford.github.io/klangmeister 207 | * Haskell: Tidal 208 | - For coding with a Haskell DSL. 209 | - Project page: http://slab.org/tidal 210 | *** Details 211 | - Toplap: http://toplap.org/tidal 212 | - Guide: http://github.com/yaxu/tidal-guide 213 | * Python or Hy: FoxDot 214 | - For coding with Python or Hy, written in Python. 215 | - Project page: http://github.com/Qirky/FoxDot 216 | *** Details 217 | - Defines scales with absolute intervals which seems to be unusual but 218 | advantageous for microtuned scales. 219 | - It has a nice notation for drum patterns with repeating variations: 220 | http://github.com/Qirky/FoxDot#sample-player-objects 221 | - Toplap: 222 | http://toplap.org/foxdot-live-coding-with-python-and-supercollider 223 | *** Examples 224 | ***** Ryan Kirkbride 225 | - GitHub: http://github.com/Qirky 226 | - YouTube: http://www.youtube.com/channel/UCoFrvfpBHPMvXi9kWsZyGCQ 227 | ******* Ryan Kirkbride - Gooey 228 | - Video: http://www.youtube.com/watch?v=GETf4tyjrZQ 229 | - Drum patterns: http://www.youtube.com/watch?v=GETf4tyjrZQ&t=2m15s 230 | * Python or Hy: Blender live coding 231 | - Not music, but at least live coding. 232 | - For coding with Python or Hy, written in Hy. 233 | - Project page: 234 | http://mccormick.cx/news/entries/live-coding-blender-with-hy 235 | *** Details 236 | - Video: http://www.youtube.com/watch?v=vRBdqsaKmuU 237 | * Python or Hy: Hyasynth 238 | - For coding with Python or Hy, written in Python. 239 | - Project page: http://github.com/oubiwann/hyasynth 240 | * Python or Hy: muse 241 | - For coding with Python or Hy, written in Python. 242 | - Project page: http://github.com/paultag/python-muse 243 | *** Examples 244 | ***** Paul Tagliamonte 245 | - Personal page: http://pault.ag 246 | - GitHub: http://github.com/paultag 247 | ******* Paul Tagliamonte - lysergide 248 | - Source: http://github.com/paultag/lysergide 249 | - Some drum pattern: 250 | http://github.com/paultag/lysergide/blob/master/eg/drum.hy 251 | * Python or Hy: python-sonic 252 | - For coding with Python or Hy, written in Python. 253 | - Project page: http://pypi.python.org/pypi/python-sonic 254 | *** Details 255 | - Defines scales with incremental intervals. 256 | - Using python-sonic is expected to leave the path open to run the coded 257 | music on the Raspberry Pi. 258 | - GitHub: http://github.com/gkvoelkl/python-sonic 259 | * Ruby: Sonic Pi 260 | - For coding with Ruby written in Ruby, Clojure, C++, and Qt. On the 261 | desktop computer or Raspberry Pi. 262 | - Project page: http://sonic-pi.net 263 | *** Details 264 | - Wikipedia: http://en.wikipedia.org/wiki/Sonic_Pi 265 | *** Examples 266 | ***** Sébastien Rannou aka mxs 267 | - Personal page: http://aimxhaisse.com 268 | - GitHub: http://github.com/aimxhaisse 269 | ******* Sébastien Rannou - Daft Punk, Aerodynamic :@: 270 | - Video: http://www.youtube.com/watch?v=cydH_JAgSfg 271 | - About, with detailed instructions: 272 | http://aimxhaisse.com/aerodynamic-en.html 273 | * Scheme: Extempore (successor of Impromptu) 274 | - For coding in Scheme, written in Scheme and C. 275 | - Project page: http://extempore.moso.com.au 276 | *** Examples 277 | ***** Andrew Sorensen 278 | - GitHub: http://github.com/digego 279 | ******* Andrew Sorensen - A Study in Keith 280 | - Solo piano, a study in Keith Jarrett. 281 | - Video (no sound until 1m53s): http://vimeo.com/2433947 282 | - Referenced on: http://en.wikipedia.org/wiki/Live_coding 283 | ******* Andrew Sorensen - Talk: Guide To Western Music :@: 284 | - A guide to history of western music. 285 | - Video: http://www.youtube.com/watch?v=xpSYWd_aIiI 286 | ***** Ben Swift 287 | - Personal page: http://benswift.me 288 | - Vimeo: http://vimeo.com/benswift 289 | ******* Ben Swift - Another Late Christmas 290 | - Video: http://vimeo.com/86664303 291 | * File config :noexport: 292 | 293 | # Do not indent "#+" for compatibility with any exporter. 294 | 295 | # For any possibly not so perfect exporter with an issue like 296 | # http://github.com/wallyqs/org-ruby/issues/26 297 | #+EXCLUDE_TAGS: noexport 298 | # Support the old name too. 299 | #+EXPORT_EXCLUDE_TAGS: noexport 300 | 301 | #+STARTUP: hidestars odd 302 | 303 | # Local Variables: 304 | # coding: utf-8-unix 305 | # fill-column: 76 306 | # End: 307 | --------------------------------------------------------------------------------