Comparison of audio synthesis environments

Software audio synthesis environments typically consist of an audio programming language (which may be graphical) and a user environment to design/run the language in. Although many of these environments are comparable in their abilities to produce high-quality audio, their differences and specialties are what draw users to a particular platform. This article compares noteworthy audio synthesis environments, and enumerates basic issues associated with their use.

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 comparison include:

These attributes can vary strongly depending on the tasks used for evaluation.

Some other common comparisons include:

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, perhaps the best output can be determined by using sophisticated audio analyzers in combination with the listener's ears. The idea of this would be to arrive at what most would agree is as "pure" a sound as possible.

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. One issue may be which interface metaphors are used (e.g. boxes-and-wires, documents, flow graphs, hardware mixing desks).

General

Name Creator Primary Purpose(s) First release date Most recent update Most recent version Cost License Main user interface type Development status
ChucK Ge Wang and Perry Cook Realtime synthesis, live coding, pedagogy, acoustic research, algorithmic composition 2004 2015-10-21 v1.3.5.2 Free GPL Document Immature
Csound Barry Vercoe Realtime performance, sound synthesis, algorithmic composition, acoustic research 1986 2016-05-19 v6.07 Free LGPL Document, graphical Mature
Impromptu Andrew Sorensen Live coding, algorithmic composition, hardware control, realtime synthesis, 2d/3d graphics programming 2006 2010-10 v2.5 Free Proprietary Document Stable
Kyma Carla Scaletti Realtime audio synthesis, hardware control 1986 2016-11-14 v7.10 Non-free Proprietary Graphical Mature
Max/MSP Miller Puckette Realtime audio + video synthesis, hardware control 1980s (mid) 2016-09-25 v7.2.5 Non-free Proprietary Graphical Mature
Pure Data Miller Puckette Realtime synthesis, hardware control, acoustic research 1990s 2016-07-12 v0.47-1 Free BSD-like Graphical Mature
Reaktor Native Instruments Realtime synthesis, hardware control, GUI design 1996 2015-09 6.0 Non-free Proprietary Graphical Mature
SuperCollider James McCartney Realtime synthesis, live coding, algorithmic composition, acoustic research, all-purpose programming language 1996-03 2016-07-09 v3.7.2 Free GPL Document Mature
Sporth Paul Batchelor Sound design, algorithmic composition, live coding, embedded systems 2015 2016-05 - Free MIT Document Immature

Programming language features

Name Textual/graphical Object-oriented Type system
ChucK Textual Yes Static
Csound Textual/Graphical (FLTK/Qt/HTML5) No In development
Impromptu Mostly textual - Dynamic & static
Kyma Graphical Yes Dynamic
Max/MSP Graphical No
Pure Data Graphical No
Reaktor Graphical No
SuperCollider Textual/Graphical (Cocoa/Swing/Qt) Yes Dynamic
MPEG-4/SA Textual No No

Data interface methods

Interfaces between the language environment and other software or hardware (not user interfaces).

Name Shell scripting MIDI OSC HID VST Audio Units Other
In Out In Out In Out As host As unit
ChucK Yes Yes Yes Yes Yes
Csound Yes Yes Yes Yes Yes Yes Yes binding from Haskell (hCsound), C, C++, Python, Java, Lua, Lisp, JavaScript
Impromptu Yes Yes Yes Yes Yes No Bidirectional Scheme to Objective-C bridge
Kyma Yes Yes Yes Yes
Max/MSP Yes Yes Yes Yes Yes Yes Yes
Pure Data Yes Yes Yes Yes Yes Yes Yes Yes No No bindings for Python, Lua, Java, GStreamer
Reaktor Yes Yes Yes Yes Yes No Yes
SuperCollider Yes Yes Yes Yes Yes Yes Yes No Yes LADSPA Host, scsynth can be controlled by OSC messages (Haskell, Scala, Python, Ruby, Scheme etc.)

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), command-line access
Csound Mac OS X, Linux, Windows C, C++ C; also Python, Java, Lisp, Lua, Tcl, C++ IDE (QuteCsound), multitrack interface (blue); several analysis/resynthesis facilities; can compute double-precision audio; Python and LuaJIT algorithmic composition library; multi-threaded processing
Impromptu Mac OS X Lisp, Objective-C, Scheme C, C++, Objective-C, Scheme Native access to most OS X APIs including Core Image, Quartz, QuickTime and OpenGL. Impromptu also includes its own statically typed (inferencing) systems language for heavy numeric processing - OpenGL, RT AudioDSP etc..
Kyma Mac OS X, Windows Smalltalk, C, Objective-C
Max/MSP Mac OS X, Windows C, Objective-C C, Java, JavaScript, also Python and Ruby via externals
Pure Data Mac OS X, Linux, Windows, iPod, Android C C, C++, FAUST, Haskell, Java, Lua, Python, Q, Ruby, Scheme, others
Reaktor Mac OS X, Windows
SuperCollider Mac OS X, Linux, Windows, FreeBSD C, C++, Objective-C C++ Client-server architecture; client and server can be used independently, command-line access
Sporth Linux, Mac OS X C C, Scheme Many frontends built using the API exist, including Chuck, PD, and LADSPA

See also

This article is issued from Wikipedia - version of the 11/13/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.