Software audio synthesis environments typically consist of an audio programming language (which may be graphical) and a user environment in which to design/run the language. These tables compare noteworthy audio synthesis environments.
Note: Aspects which can't be compared
Please note that many things about audio synthesis languages/environments cannot be directly compared. In particular, some of the questions which newcomers would most like to know the answers to - "Which one sounds better?", "Which is easiest to learn/use?" - can't be answered objectively enough for a comparison chart like this. Similarly, it is not at all straightforward to compare languages' efficiency or stability, because many factors impinge upon these such as hardware, operating system, software version, plugins, and use case.
Audio software often has a slightly different "sound" when compared against others. This is because there are different ways to implement the basic building blocks (such as sinewaves, pink noise, or FFT) which result in slightly different aural characteristics. Although people can of course prefer one system's "sound" over another, there is typically no objective way to evaluate these differences.
The interface to an audio system often has a significant on the creative flow of the user, not because of what is possible (the stable/mature systems listed here are fully-featured enough to be able to achieve an enormous range of sonic/compositional objectives), but because of what is made easy and what is made difficult. This is again very difficult to boil down to a brief comparitive statement.
General
Name | Creator | Primary Purpose(s) | First release date | Most recent update | Cost | License | Main user interface type | Development status |
---|---|---|---|---|---|---|---|---|
ChucK | Ge Wang and Perry Cook | Realtime synthesis, live coding | Free | GPL | Document | Immature | ||
Csound | Barry Vercoe | Offline audio rendering | 1990s | v5 released February 2005 | Free | LGPL | Document | Mature |
Max/MSP | Miller Puckette | Realtime synthesis, hardware control | mid-1980s | Commerical software | Graphical | Mature | ||
Pure Data | Miller Puckette | Realtime synthesis | 1990s | Free | BSD-like | Graphical | Stable | |
SuperCollider | James McCartney | Realtime synthesis, live coding, algorithmic composition, acoustic research | March 1996 | v3 released 2002; continuously updated | Free | GPL | Document | Stable |
Technical
Name | Operating system(s) | Source code language(s) | Programming (plugin) API language(s) | Other technical features |
---|---|---|---|---|
ChucK | Mac OSX, Linux, Windows | |||
Csound | Linux, Windows, Mac OSX | C | C; also Python, Java, LISP, Tcl, C++ | |
Max/MSP | Mac OSX, Windows | C, Java | ||
Pure Data | Windows, Mac OSX, Linux, iPod | C; also Java, Python, Ruby, others | ||
SuperCollider | Mac OSX, Linux, and beta for Windows | C, C++, Objective C | C | Client-server architecture; client and server can be used independently |
Data interface methods
This table is concerned with ways to interface between the language environment and other software or hardware.
Name | Shell scripting | MIDI | OSC | HID | Other | |||
---|---|---|---|---|---|---|---|---|
In | Out | In | Out | In | Out | |||
ChucK | Yes | Yes | Yes | Yes | ||||
Csound | Yes | |||||||
Max/MSP | Yes | Yes | Yes | Yes | ||||
Pure Data | Yes | Yes | Yes | Yes | ||||
SuperCollider | Yes | Yes | Yes | Yes | Yes | Yes | Yes |