Comparison of Audio Synthesis Environments
From Wikipedia, the free encyclopedia
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. This article compares noteworthy audio synthesis environments, and enumerates basic issues associated with their use.
Contents |
[edit] Subjective comparisons
Audio synthesis environments comprise a wide and varying range of software and hardware configurations. Even different versions of the same environment can differ dramatically. Because of this broad variability, certain aspects of different systems cannot be directly compared. Moreover, some levels of comparison are either very difficult to objectively quantify, or depend purely on personal preference.
Some of the commonly considered subjective attributes for comparision include:
- Usability (how difficult is it for beginners to generate some kind of meaningful output)
- Ease of use (how steep is the Learning curve for average and advancing users)
- Sound "quality" (which environment produces the most subjectively appealing sound)
- Creative flow (in what ways does the environment affect the creative process - e.g. guiding the user in certain directions)
These attributes can vary strongly depending on the tasks used for for evaluation.
Some other common comparisons include:
- Audio performance (issues such as throughput, latency, concurrency, etc.)
- System performance (issues such as buggyness or stability)
- Support and community (who uses the system and who provides help, advice, training and tutorials)
- System capabilities (what is possible and what is not possible [regardless of effort] with the system)
- Interoperability (how well does the system integrate with other systems from different vendors)
[edit] Building blocks of sound and sound "quality"
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.
[edit] User interface
The interface to an audio system often has a significant influence 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 comparative statement.
[edit] 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, pedagogy, acoustics research, algorithmic composition | 2004 | v1.2.0.7, Oct 2006 | Free | GPL | Document | Immature |
Csound | Barry Vercoe | Realtime synthesis, Offline audio rendering, Algorithmic composition, acoustic research | 1990s | v5.04.1, Nov 2006 | Free | LGPL | Batch processing | Mature |
Max/MSP | Miller Puckette | Realtime synthesis, hardware control | mid-1980s | Commercial software | Graphical | Mature | ||
Pure Data | Miller Puckette | Realtime synthesis | 1990s | v0.40.1, Oct 2006 | Free | BSD-like | Graphical | Stable |
SuperCollider | James McCartney | Realtime synthesis, live coding, algorithmic composition, acoustic research | March 1996 | v3 released 2002; continuously updated (no explicit versioning) | Free | GPL | Document | Stable |
[edit] Programming language features
Name | Textual/graphical | Object-oriented | Statically-typed |
---|---|---|---|
ChucK | Textual | Yes | Yes |
Csound | Textual | No | |
Max/MSP | Graphical | No | |
Pure Data | Graphical | No | |
SuperCollider | Textual | Yes | No |
[edit] Data interface methods
Interfaces between the language environment and other software or hardware (not user interfaces).
Name | Shell scripting | MIDI | OSC | HID | Other | |||
---|---|---|---|---|---|---|---|---|
In | Out | In | Out | In | Out | |||
ChucK | Yes | Yes | Yes | Yes | Yes | |||
Csound | Yes | Yes | Yes | Yes | Yes | Yes | ||
Max/MSP | Yes | Yes | Yes | Yes | Yes | |||
Pure Data | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
SuperCollider | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
[edit] Technical
Name | Operating system(s) | Source code language(s) | Programming (plugin) API language(s) | Other technical features |
---|---|---|---|---|
ChucK | Mac OS X, Linux, Windows | C++ | Unified timing mechanism (no separation between audio-rate and control-rate, unlike many others) | |
Csound | Mac OS X, Linux, Windows | C, C++ | C; also Python, Java, LISP, Tcl, C++ | |
Max/MSP | Mac OS X, Windows | not open-source | C, Java, Javascript, also Python via externals | |
Pure Data | Mac OS X, Linux, Windows, iPod | C | C; also Java, Python, Ruby, others | |
SuperCollider | Mac OS X, Linux, and beta for Windows | C, C++, Objective C | C | Client-server architecture; client and server can be used independently |