I've seen so many "music programming languages" recently that I'm getting really quite confused about which one was which and does what. Has anyone done a comparison, or even just have a list of links?

Keep in mind there are actually two domains in music: instruments (sound synthesis) and orchestration. Both Skoar and Alda (which was linked yesterday) are only orchestration languages.

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