In that thread, another HN commenter posted this:
https://en.m.wikipedia.org/wiki/List_of_audio_programming_la...
I used ChucK in college, and considering its functional use in performance art of many kinds, I'm seeing a lot of these proverbially "reinventing the wheel" in different syntax....ad nauseum.
Where I see the real potential is using the native language of DAWs (digital audio workstation) like Protools, Ableton, and leveraging their native languages to write new scripts and library extensions for hardware.
Most of these DAWs are written in C/C++. In many cases, things are really closed down (looking at you ProTools), so its difficult/impossible to write extensions unless you intend to sell it commercially.
Renoise has a pretty good API in Lua for building plugins, which I thought was kind of neat.
Ableton has Max4Live which I think counts for an extension language.
As far as "native" code goes, I've been working a library of high quality DSP modules that you can use to build plugins called Soundpipe:
I've been researching about this and narrowed down by these criteria: (1) Modern and maintained (2) Open source (3) Multiplatform (4) Supports live coding (5) Not MIDI-only output (6) Text-based (7) Not Java (sorry JSyn :P)
For me live coding is important since I prefer to compose music in an exploratory fashion. Also, live performances are cool. Read more about live coding and resources in http://toplap.org
The list in no particular order (beware of the brain dump):
·
## Overtone (https://overtone.github.io/)
The coolest kid on the block is actually a frontend to SuperCollider.
- Clojure based.
- VJ-ready. Integration with Processing via Quil (https://github.com/quil/quil) and GLSL shaders via Shadertone (https://github.com/overtone/shadertone).
- Lots of tooling: https://github.com/overtone
·
## SuperCollider (https://supercollider.github.io/)
- Object-oriented functional language (similar to Smalltalk/Ruby/C/JS).
- Basically Overtone minus Clojure minus VJ plus IDE.
- Client-server architecture (which is what allows Overtone to use it as a backend).
·
## Sonic Pi (http://sonic-pi.net/)
- Ruby DSL + IDE.
- Built for Raspberry PI (but runs anywhere SuperCollider and Ruby are available).
- Another frontend to SuperCollider.
- Designed to be suitable for teaching children. Teacher resources available (http://www.sonicpiliveandcoding.com/ http://www.raspberrypi.org/learning/sonic-pi-lessons/)
·
## Extempore (https://github.com/digego/extempore)
- Scheme-like.
- Supports both audio and graphics.
- Defines itself as a 'cyberphysical' programming environment (http://dl.acm.org/citation.cfm?id=1869526).
·
## ChucK (http://chuck.cs.princeton.edu/)
- Real-time sound synthesis and music creation (real-time meant it used to take a real amount of CPU time in non-RT kernels, not sure if it's changed).
- Time-based, concurrent programming model (they call it 'strongly-timed').
·
## Fluxus (http://www.pawfal.org/fluxus/)
- Racket based.
- Full-fledged environment.
- Defined as 'a 3D game engine for livecoding worlds into existence', though it supports sound too.
- Doesn't seem to be actively maintained (most recent release dates from April 2012).
·
## Nyquist (https://www.cs.cmu.edu/afs/cs.cmu.edu/project/music/web/musi...)
- (Still researching...)
·
## Csound (http://www.csounds.com/)
- (Still researching...)
- Live coding added in a recent version.
- Orchestration and synthesis are separate languages.
·
## Tidal (http://yaxu.org/tidal/)
- Haskell based.
- Seems to support audio and graphics (defines itself as live coding of patterns).
- (Still researching... I just came to know it in a link here.)
·
## Skoar (https://github.com/sofakid/Skoarcery)
- Another SuperCollider frontend.
- Only orchestration, though I guess it supports different instruments created in SuperCollider.
- Doesn't seem to support live coding? (Added to the list until I research more.)
·
## MORE
I just found these in the TOPLAP wiki (and Googling around) but had no time to comb through them. Listed in no particular order:
- https://github.com/edne/pineal
- https://github.com/createuniverses/praxis
- http://charlie-roberts.com/gibber/about-gibber/
- https://github.com/LuaAV/LuaAV
- http://hyperyarn.criticalartware.net
- http://www.renickbell.net/conductive/doku.php/
- EXTRA: Live coding light shows https://github.com/brunchboy/afterglow
http://daveyarwood.github.io/alda/2015/09/05/alda-a-manifest...
> Both Skoar and Alda (which was linked yesterday) are only orchestration languages.
I'm also interested in instrument generation and, while Skoar plugs into SuperCollider, Alda seems to be specifically MIDI output. You could probably hook Alda -> MIDI -> synthesizer though, but you'd still have to program the synthesizer in a different language, which kind of defeats the purpose.
https://www.safaribooksonline.com/blog/2014/11/07/making-com...
I also wrote one myself:
Sporth reminds me a lot of https://forthsalon.appspot.com/ They'd make great partners :)
[0] https://gist.github.com/alvaro-cuesta/dc714c06a8e672bebd90
It was only after I built Sporth that I realized how expressive a Forth can be for creative coding.