Comparison of audio synthesis environments

This is an old revision of this page, as edited by Mcld (talk | contribs) at 15:04, 16 February 2007 (General). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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