├── .travis.yml ├── README.md ├── contributing.md └── package.json /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 'node' 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

TOPLAP Logo

2 | 3 | # All things live coding [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 4 | 5 | > A curated list of live coding languages and tools 6 | 7 | This list was created with the intention of giving a quick-glance over the many possibilities to engage in this practice. For further information, head over to [TOPLAP](https://toplap.org). 8 | 9 | ## Contents 10 | 11 | - [What is live coding](#what-is-live-coding) 12 | - [Websites](#websites) 13 | - [Community](#community) 14 | - [Languages](#languages) 15 | - [Libraries and tools](#libraries-and-tools) 16 | - [To Watch](#to-watch) 17 | - [To Read](#to-read) 18 | - [To Dance](#to-dance) 19 | - [Conferences](#conferences) 20 | - [Related lists](#related-lists) 21 | - [Acknowledgement](#acknowledgement) 22 | - [How to Contribute](#how-to-contribute) 23 | - [Code of Conduct](#code-of-conduct) 24 | 25 | 26 | ## What is live coding 27 | 28 | Quoting [Wikipedia](https://en.wikipedia.org/wiki/Live_coding) 29 | 30 | > Live coding (sometimes referred to as 'on-the-fly programming', 'just in time programming' and 'conversational programming') is a performing arts form and a creativity technique centred upon the writing of source code and the use of interactive programming in an improvised way. 31 | 32 | 33 | ## Websites 34 | 35 | - [TOPLAP](https://toplap.org/) - The home of Live Coding. 36 | - [LiveCoding.fr](https://livecoding.fr) - French-speaking information website on Live Coding 37 | 38 | ## Community 39 | 40 | - Directory of local TOPLAP nodes / live coding collectives: https://toplap.org/nodes/ 41 | - [livecode mailing list](https://we.lurk.org/mailman3/lists/livecode.we.lurk.org/) - Old school email discussion list, going since 2004! 42 | - [Archive from February 2004 - August 2023](https://toplap.org/livecode-archive/) 43 | - [Current archive](https://we.lurk.org/archives/list/livecode@we.lurk.org/latest) 44 | - Web forums 45 | - [TOPLAP Forum](https://forum.toplap.org) - A web-based 'discourse' forum for in-depth discussion and exchange around live coding. 46 | - [Tidal club](https://club.tidalcycles.org) - A discourse forum for TidalCycles (including for the [video course](https://club.tidalcycles.org/c/course/14?ascending=true&order=created)) 47 | - [Lines Forum](https://llllllll.co/) - from the monome community, with loads of general music tech threads including [on live coding](https://llllllll.co/t/live-coding/5032) 48 | - Discord servers for live chat around live coding 49 | - [TOPLAP](https://discord.gg/D4Enr5u7Rp) - cross-community live coding chat + discussion 50 | - [Estuary](https://discord.gg/twqWteAFA2) 51 | - [Hydra](https://discord.gg/cJBs9smhWE) 52 | - [Cane](https://discord.gg/UVYAtpYYD2) 53 | - [gwion](https://discord.gg/KmHqbTKSmS) 54 | - [Pure Data](https://discord.com/invite/AZ43djV) 55 | - [SuperCollider](https://discord.gg/ktz4xQZv7b) 56 | - [TidalCycles, Strudel and friends](https://discord.gg/CqWhZEfNbq) 57 | - [Bubo Tools](https://discord.gg/uJFF6rPKHH) 58 | - Mastodon 59 | - Official TOPLAP mastodon instance: [TOPLAP Social](https://social.toplap.org/) 60 | - List of livecode communities and projects on mastodon: https://social.toplap.org/@toplap/111703319382988669 61 | - Other live coding-related and -adjacent instances include: [sonomu.club](https://sonomu.club/), [assemblag.es](https://assemblag.es) and [post.lurk.org](https://post.lurk.org) 62 | - General live coding-related accounts include: [@toplap@toplap.org](https://social.toplap.org/@toplap) [https://social.toplap.org/@algorave](@algorave@toplap.org) 63 | - [/r/livecoding](https://www.reddit.com/r/livecoding/) - The Live Coding subreddit. 64 | - [livecode.demozoo.org](https://livecode.demozoo.org) - Archive of demoscene related live coding events. 65 | - [pastagang](https://pastagang.cc/) - A creative live coding group that anyone can join 66 | 67 | ## Languages 68 | 69 | (In Alphabetical Order) 70 | 71 | - [afterglow](https://github.com/brunchboy/afterglow) - A live-coding lighting controller, building on the Open Lighting Architecture with Clojure and bits of Overtone. 72 | 73 | `Windows | macOS | GNU/Linux` `lisp` `FLOSS` `audio` 74 | 75 | - [Alda](https://github.com/alda-lang/alda) - A music programming language for musicians. 76 | 77 | `Windows | macOS | GNU/Linux` `FLOSS` `audio` 78 | 79 | - [Atomiix](https://github.com/rumblesan/atomiix) - A re-implementation and re-invigoration of ixi lang. (inactive) 80 | 81 | `Windows | macOS | GNU/Linux` `JavaScript` `FLOSS` `SuperCollider` `audio` 82 | 83 | - [Bacalao](https://github.com/totalgee/bacalao) - A live-coding library for SuperCollider inspired by Tidalcycles syntax. 84 | 85 | `Windows | macOS | GNU/Linux` `SuperCollider` `audio` 86 | 87 | - [Bitrhythm](https://bitrhythm.xyzzyapps.link/) - A dsl inspired by bitpatterns and tracker notation to make music with javascript, midi, vsts and webaudio. 88 | 89 | `Web | Windows | macOS` `javascript` `JUCE` `audio` `midi` `CC BY-NC-SA` 90 | 91 | - [Cane](https://github.com/Jackojc/cane) - A small MIDI sequencer DSL designed around vectors and euclidean rhythms. 92 | 93 | `Windows | macOS | GNU/Linux` `FLOSS` `audio` `MIDI` `Jack` 94 | 95 | - [ChucK](http://chuck.cs.princeton.edu/) - Strongly-timed, Concurrent, and On-the-fly Music Programming Language. 96 | 97 | `Windows | macOS | GNU/Linux` `FLOSS` `audio` 98 | 99 | - [clive](https://mathr.co.uk/clive/) - Live-coding audio in C. 100 | 101 | `GNU/Linux` `C` `FLOSS` `audio` 102 | 103 | - [Conductive](https://hackage.haskell.org/package/conductive-base) - A set of Haskell libraries for livecoding and real-time music applications. (inactive) 104 | 105 | `Windows | macOS | GNU/Linux` `haskell` `SuperCollider` `FLOSS` `audio` 106 | 107 | - [Cyril](http://cyrilcode.com/) - A programming language designed for fast prototyping of visualisations and livecoding visuals. (inactive) 108 | 109 | `Windows | macOS | GNU/Linux` `openFrameworks` `FLOSS` `visuals` 110 | 111 | - [Extempore](https://extemporelang.github.io) - (Previously [Impromptu](http://impromptu.moso.com.au/)) A programming language and runtime environment designed to support 'cyberphysical programming'. 112 | 113 | `Windows | macOS | GNU/Linux` `lisp` `FLOSS` `audio` 114 | 115 | - [Facet](https://github.com/mjcella/facet) - An open source livecoding environment in NodeJS with a text editor in the browser. 116 | 117 | `Windows | macOS | GNU/Linux` `NodeJS` `JavaScript` `midi` `Open Sound Control` `audio` `synthesis` 118 | 119 | - [FaustLive](https://faustdoc.grame.fr/manual/overview/#faustlive) - FaustLive is an advanced self-contained prototyping environment for the Faust programming language with an ultra-short edit-compile-run cycle. 120 | 121 | `Windows | macOS | GNU/Linux` `faust` `llvm` `FLOSS` `audio` `DSP` 122 | 123 | - [Fluxus](http://www.pawfal.org/Software/fluxus_/) - A rapid prototyping, playing and learning environment for 3D graphics, sound and games. 124 | 125 | `Windows | macOS | GNU/Linux | Android | PS2` `racket-lang` `lisp` `FLOSS` `visuals` 126 | 127 | - [FoxDot](http://foxdot.org/) - Live Coding with Python and SuperCollider. See also the [pitchglitch](https://gitlab.com/iShapeNoise/foxdot) actively maintained fork. 128 | 129 | `Windows | macOS | GNU/Linux` `Python` `SuperCollider` `FLOSS` `audio` 130 | 131 | - [Gibber](https://gibber.cc/) - Creative coding for JavaScript. 132 | 133 | `Google Chrome | Mozilla Firefox` `web` `JavaScript` `FLOSS` `audio` `visuals` 134 | 135 | - [Glicol](https://glicol.org/) - A graph-oriented live coding language written in Rust. 136 | 137 | `Google Chrome | Mozilla Firefox` `web` `Rust` `JavaScript` `WebAssembly` `FLOSS` `audio` `visuals` 138 | 139 | - [gwion](https://github.com/Gwion/Gwion) - :musical_note: strongly-timed musical programming language 140 | `Windows | macOS | GNU/Linux` `FLOSS` `audio` 141 | 142 | - [hydra](https://github.com/hydra-synth/hydra) - Live Coding networked visuals in the browser. 143 | 144 | `Google Chrome | Mozilla Firefox` `web` `JavaScript` `FLOSS` `visuals` 145 | 146 | - [Improviz](http://github.com/rumblesan/improviz) - An environment for using and abusing primitive shapes and animated textures. (inactive/deprecated) 147 | 148 | `Windows | macOS | GNU/Linux` `Haskell` `FLOSS` `visuals` 149 | 150 | - [Iannix](https://www.iannix.org/en/) - A graphical open-source sequencer for digital art 151 | 152 | `Windows | macOS | GNU/Linux` `JavaScript` `FLOSS` `audio` `Open Sound Control` `visuals` 153 | 154 | - [ixi lang](https://github.com/thormagnusson/ixilang) - An experimental project concerned with the creation of digital musical instruments and environments for generative music. (inactive) 155 | 156 | `Windows | macOS | GNU/Linux` `FLOSS` `SuperCollider` `audio` 157 | 158 | - [ossia score](https://ossia.io/) - An interactive sequencer that allows live programming of intermedia, inter-protocol artworks, through a custom visual language. 159 | 160 | `Windows | macOS | GNU/Linux` `C++` `FLOSS` `audio` 161 | 162 | - [kilobeat](https://ijc8.me/kilobeat) - A collaborative web-based dsp livecoding instrument inspired by bytebeat and Gibber. 163 | 164 | `Google Chrome | Mozilla Firefox` `web` `JavaScript` `FLOSS` `audio` 165 | 166 | - [Krill](https://github.com/Mdashdotdashn/krill) - Tidal cycle like live coding in NodeJS / Browser. (inactive) 167 | 168 | `Windows | macOS | GNU/Linux` `NodeJS` `Browser` `FLOSS` `midi` 169 | 170 | - [Limut](https://github.com/sdclibbery/limut) - Live code music and visuals in a web browser. 171 | 172 | `Google Chrome | Mozilla Firefox | Safari` `web` `JavaScript` `FLOSS` `audio` `visuals` 173 | 174 | - [line](https://github.com/pd3v/line) - A tiny command-line midi sequencer and language for live coding. 175 | 176 | `Windows | macOS | GNU/Linux` `c++` `FLOSS` `midi` `audio` 177 | 178 | - [LiveCodeLab](http://livecodelab.net) - A web-based language and environment for VJs, musicians and graphic artists. Allows for immediate and engaging run-as-you-type prototyping, also used in education. (inactive) 179 | 180 | `Windows | macOS | GNU/Linux` `web` `FLOSS` `visuals` `audio` 181 | 182 | - [Max](https://cycling74.com/products/max/) - A visual programming language for media. 183 | 184 | `Windows | macOS` `graphical-language` `Commercial` `audio` `visuals` 185 | 186 | - [Melrōse](https://melrōse.org) - a MIDI producing environment for creating (live) music 187 | 188 | `Windows | macOS | GNU/Linux` `golang` `web` `midi` `MIT` 189 | 190 | - [Mégra.rs](https://github.com/the-drunk-coder/megra.rs) - A high-level, LISP-y live coding language implemented in Rust. Prominently features Markov chains. 191 | 192 | `Windows | macOS | GNU/Linux` `FLOSS` `audio` `LISP` `rust` 193 | 194 | - [Mercury](https://github.com/tmhglnd/mercury) | [Mercury Playground](https://mercury.timohoogland.com) - A highly abstracted minimal language for the live coding of algorithmic music, designed to make code more accessible for both the performer and the audience. Runs in Max or the Browser. 195 | 196 | `Windows | macOS` `Chrome | Firefox` `audio` `visuals` `MaxMSP` `JavaScript` 197 | 198 | - [MicroBlocks](https://microblocks.fun) - A stack VM-based, small, live and concurrent visual programming language for 32 bit microcontrollers inspired in Scratch and Snap!. It includes libraries for interacting with MIDI devices, as well as libraries for musical abstractions. 199 | 200 | `Windows | macOS | GNU/Linux | Chromebook | Chrome-based browsers` `FLOSS` `graphical-language` `microcontrollers` `midi` `audio` 201 | 202 | - [Moonlet](https://github.com/elihugarret/Moonlet) - Lua live coding. (inactive) 203 | 204 | `Windows | GNU/Linux` `FLOSS` `audio` 205 | 206 | - [Mosaic](https://mosaic.d3cod3.org/) - An openFrameworks based Visual Patching Creative-Coding Platform. 207 | 208 | `Windows | macOS | GNU/Linux` `FLOSS` `graphical-language` `audio` `visuals` 209 | 210 | - [Motifn](https://www.motifn.com/) - Code music in Javascript that plays in your DAW or browser 211 | 212 | `Google Chrome | Mozilla Firefox` `web` `JavaScript` `MIDI` `audio` `WebAudio` 213 | 214 | - [mutate4l](https://github.com/carrierdown/mutate4l) - Live coding integrated into Ableton Live's session view. 215 | 216 | `Windows | macOS` `Max for Live` `C#` `FLOSS` `audio` 217 | 218 | - [Negasonic](https://github.com/merongivian/negasonic) - Live coding in the browser with Ruby. 219 | 220 | `Google Chrome | Mozilla Firefox` `web` `Ruby` `FLOSS` `audio` 221 | 222 | - [ORCΛ](https://github.com/hundredrabbits/Orca) - An esoteric live coding environment with two-dimensional syntax. 223 | 224 | `Windows | macOS | GNU/Linux` `audio` `FLOSS` 225 | 226 | - [OSCII](https://adelfaure.net/tools/liblab/) - OSCII is a web software for drawing and live-coding textmode visuals and sounds. 227 | 228 | `Google Chrome | Mozilla Firefox` `web` `JavaScript` `FLOSS` `audio` `visuals` 229 | 230 | - [Overtone](http://overtone.github.io/) - An open source audio environment designed to explore new musical ideas from synthesis and sampling to instrument building, live-coding and collaborative jamming. 231 | 232 | `Windows | macOS | GNU/Linux` `SuperCollider` `lisp` `FLOSS` `audio` `FLOSS` 233 | 234 | - [PraxisLive](http://www.praxislive.org/) - Hybrid visual IDE for live creative coding. 235 | 236 | `Windows | macOS | GNU/Linux` `Java` `Processing` `GLSL` `graphical-language` `FLOSS` `visuals` `audio` 237 | 238 | - [Pulchra](https://pulchra.netlify.app/) - Live coding language for 3D graphics. 239 | 240 | `Google Chrome | Microsoft Edge | etc.` `Web` `WebGL` `visuals` 241 | 242 | - [Punctual](https://github.com/dktr0/Punctual) - Browser-based, zero-installation, audiovisual live coding language, built into the Estuary collaborative platform. 243 | 244 | `Google Chrome | Mozilla Firefox` `web` `WebGL` `JavaScript` `FLOSS` `visuals` 245 | 246 | - [Pure Data](https://puredata.info/) - An open source visual programming language that can be used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. 247 | 248 | `Windows | macOS | GNU/Linux` `graphical-language` `FLOSS` `audio` `visuals` 249 | 250 | - [Re:code](https://machiaworx.net/recode/doku.php?id=start) - Midi and Playback Samples Sequencer using MiniScript and unique MML(Music Macro Language) 251 | 252 | `Windows` `MiniScript` `Freeware` `audio` `midi` 253 | 254 | - [re](https://github.com/lvm) 514 | [](https://github.com/yaxu) 515 | [](https://github.com/NewAlexandria) 516 | [](https://github.com/rumblesan) 517 | [](https://github.com/sicchio) 518 | [](https://github.com/znmeb) 519 | [](https://github.com/a-1219) 520 | [](https://github.com/hvillase) 521 | [](https://github.com/fpesari) 522 | [](https://github.com/hellocatfood) 523 | [](https://github.com/ddovod) 524 | [](https://github.com/jcelerier) 525 | [](https://github.com/grz0zrg) 526 | [](https://github.com/charlieroberts) 527 | [](https://github.com/carrierdown) 528 | [](https://github.com/ajrussellaudio) 529 | [](https://github.com/Almenon) 530 | [](https://github.com/neuromancer85) 531 | [](https://github.com/benswift) 532 | [](https://github.com/bobvanluijt) 533 | [](https://github.com/bgrayburn) 534 | [](https://github.com/Bubobubobubobubo) 535 | [](https://github.com/chr15m) 536 | [](https://github.com/claudeha) 537 | [](https://github.com/munshkr) 538 | [](https://github.com/davidedc) 539 | [](https://github.com/d3cod3) 540 | [](https://github.com/alvare) 541 | [](https://github.com/psenough) 542 | [](https://github.com/jarmitage) 543 | 544 | 545 | 546 | ## How to Contribute 547 | 548 | - Fork this repository. 549 | - Add the changes you feel appropriate (be it a language, something to read, something to watch, a tool, a conf, etc). 550 | - Create a Pull Request with a description of what you've modified. 551 | - ??? 552 | - PROFIT ! 553 | 554 | 555 | [Here](contributing.md) is a friendly guide of how to proceed. 556 | 557 | ## Code of Conduct 558 | 559 | This list follows the [Contributor Covenant](http://contributor-covenant.org/) Code of Conduct v1.4.0, available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html). 560 | 561 | > In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 562 | 563 | TL;DR: _Be nice to each other_. 564 | 565 | 566 | ## License 567 | 568 | [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/) 569 | This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). 570 | 571 | To the extent possible under law, [Mauro Lizaur](http://lvm.github.io) has waived all copyright and related or neighboring rights to this work. 572 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | * First of all, you'll need a [GitHub account](https://github.com/join). 4 | * Point your browser to the [README.md](https://github.com/lvm/awesome-livecoding/blob/master/README.md) file 5 | ![](https://raw.githubusercontent.com/lvm/awesome-livecoding/images/readme.md.png) 6 | * Click on the edit icon 7 | ![](https://raw.githubusercontent.com/lvm/awesome-livecoding/images/click-edit.png) 8 | * Edit the file and add whatever you feel appropriate. Make sure you follow the CoC guidelines! 9 | ![](https://raw.githubusercontent.com/lvm/awesome-livecoding/images/edit-file.png) 10 | * Create a new `commit` (_save the changes_) with your work. Be descriptive and concise! 11 | ![](https://raw.githubusercontent.com/lvm/awesome-livecoding/images/save-commit.png) 12 | * Create a `Pull Request` (_prepare to send your changes to the original repository_) 13 | ![](https://raw.githubusercontent.com/lvm/awesome-livecoding/images/new-pull-request.png) 14 | * Review your changes and if everything looks good... _Send your changes!_ 15 | ![](https://raw.githubusercontent.com/lvm/awesome-livecoding/images/create-pull-request.png) 16 | 17 | If everything looks good, your change will be integrated to the list soon enough. 18 | 19 | ## Tips and content formatting 20 | 21 | * Make sure your suggestion isn't already there 22 | * New categories or improvements to the existing categorization are welcome 23 | * Check your spelling and grammar (nobody is perfect anyway) 24 | * Make sure your text editor is set to remove trailing whitespace 25 | * The pull request and commit should be clear of what has been updated 26 | 27 | 28 | When adding a new language, make sure that: 29 | 30 | 1. Is ordered alphabetically 31 | 2. follows the following format: 32 | ``` 33 | * [Language](http://language.com), brief description of this language. `OS SUPPORTED | SEPARATED BY | A PIPE` `RELEVANT-TAG` `ANOTHER-RELEVANT-TAG` `LICENSE` 34 | ``` 35 | 36 | * When adding tool/library, make sure that: 37 | 38 | 1. Is ordered alphabetically 39 | 2. follows the following format: 40 | ``` 41 | * [Library-or-tool](http://Library-or-tool.com), brief description of the Library-or-tool 42 | ``` 43 | _Note the missing dot (.) at the end of the line_ 44 | 45 | When adding a anything else, make sure that: 46 | 47 | 1. Is added to the bottom of the list 48 | 2. follows the following format: 49 | ``` 50 | * [Title](http://url.com), brief description of the link added 51 | ``` 52 | _Note the missing dot (.) at the end of the line_ 53 | 54 | 55 | Here are a couple of articles that might come in handy while working: 56 | 57 | * [GitHub Markdown](https://help.github.com/categories/writing-on-github/) 58 | * [Pull requests](https://help.github.com/articles/using-pull-requests/) 59 | * [Amending a Pull Request](https://github.com/RichardLitt/docs/blob/master/amending-a-commit-guide.md) 60 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "test": "awesome-lint" 4 | }, 5 | "devDependencies": { 6 | "awesome-lint": "*" 7 | } 8 | } 9 | --------------------------------------------------------------------------------