- Modern and maintained
- Open source
- Multiplatform
- Live coding support
- Actual sound output (not MIDI-only)
- Text-based
- Not Java (sorry JSyn :P)
In no particular order.
- Features:
- Language: sclang
- Object-oriented functional language.
- Message based (like Smalltalk) with C-like syntax.
- IDE: yes
- Multi-user: yes
- Multi-device/output: multiple servers with multiple audio buses
- Graphics: no (can be hacked in, but...)
- Time paradigm: ahead-of-time scheduling, tasks
- Language: sclang
- Client-server architecture (which allows other languages to use it as a backend).
- My impressions:
- Good:
- It JustWorks™
- Bad:
- sclang sucks (very 90's) and has a lot of gotchas.
- Synths have to be compiled and object-ified before being sent to scsynth, which introduces even more gotchas (e.g. numeric arguments get converted to a Controller class, which is not an integer anymore; same for arrays, which then can't be iterated over...)
- Neutral:
- DSP is based on UGens as building blocks, not actually programmable, which makes it more efficient but less baremetal-y.
- Good:
Same idiosyncrasies as SuperCollider's platform, but different language interface and libraries.
- Features:
- Language: Clojure
- IDE: no (but has text editor integration available)
- Multi-user: yes
- Multi-device/output: multiple servers with multiple audio buses
- Graphics: yes (integration with Processing via Quil and GLSL shaders via Shadertone)
- Time paradigm: ahead-of-time scheduling
- My impresssions:
- Good:
- Clojure rocks as a language.
- More intuitive and expressive than sclang and its library.
- Bad:
- Clojure sucks as a platform. Setting up the environment is painful. Very painful.
- Good:
I made some revisions to Csound + ChucK:
https://gist.github.com/PaulBatchelor/489b276d6a0443699fd8