SuperCollider

Starting with version 3, the SuperCollider environment has been split into two components: a server, scsynth; and a client, sclang.

[6] The SC Server application supports simple C and C++ plugin APIs, making it easy to write efficient sound algorithms (unit generators), which can then be combined into graphs of calculations.

Further features typical of functional languages are supported, including creating closures via partial application (explicit currying), tail call optimization, list comprehensions, and coroutines.

Its constant-time message lookup and real-time garbage collection allows large systems to be efficient and to handle signal processing flexibly.

[14] SuperCollider code is most commonly edited and used from within its own cross-platform IDE, which is Qt-based and supports Linux, Mac, and Windows.

[18] Specific kinds of proxies serve as high level placeholders for synthesis objects which can be swapped in and out or modified at runtime.

[19] Various extension libraries support different abstraction and access to sound objects, e.g. dewdrop_lib[20] allows for the live creation and modification of pseudo-classes and pseudo-objects.

Screenshot of SuperCollider running the ixiQuarks GUI tools.
Screenshot of SuperCollider on Mac OS X with various user-generated GUI elements.
Screenshot of SuperCollider Vim on puredyne linux .