Comparison of audio synthesis environments

Last updated

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.

Contents

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

NameCreatorPrimary Purpose(s)First release dateMost recent updateMost recent versionCostLicenseMain user interface typeDevelopment status
Bidule Plogue Realtime synthesis, live coding, algorithmic composition, acoustic research, all-purpose programming language20022017-060.9757Non-freeProprietaryGraphicalMature
ChucK Ge Wang and Perry CookRealtime synthesis, live coding, pedagogy, acoustic research, algorithmic composition 20042023-121.5.2.1Free GPL DocumentImmature
Csound Barry Vercoe Realtime performance, sound synthesis, algorithmic composition, acoustic research 19862022-10-22v6.18.0Free LGPL Document, graphicalMature
Impromptu Andrew Sorensen Live coding, algorithmic composition, hardware control, realtime synthesis, 2d/3d graphics programming20062010-10v2.5FreeProprietaryDocumentStable
Keykit Tim Thompson MIDI synthesis and algorithmic composition 19952021-03-15v7.7eFree GPL GraphicalMature
Kyma Carla Scaletti Realtime audio synthesis, hardware control, acoustic research, algorithmic composition, data sonification, live-performance multi-effects processing19862018-9-03v7.23Non-freeProprietaryGraphicalMature
Max/MSP Miller Puckette Realtime audio + video synthesis, hardware control, GUI design1980s (mid)2024-01-17v8.6.0Non-freeProprietaryGraphicalMature
Pure Data Miller Puckette Realtime synthesis, hardware control, acoustic research 1990s2023-07-04v0.54Free BSD-likeGraphicalMature
Reaktor Native Instruments Realtime synthesis, hardware control, GUI design19962023-04-196.5Non-freeProprietaryGraphicalMature
SuperCollider James McCartneyRealtime synthesis, live coding, algorithmic composition, acoustic research, all-purpose programming language1996-032023-02-19v3.13.0Free GPL DocumentMature
Sporth Paul BatchelorSound design, algorithmic composition, live coding, embedded systems20152016-05-Free MIT DocumentImmature
SynthEdit Jeff McClintockRealtime synthesis, live coding, effects coding, GUI design199920211.4Non-freeProprietary/BSDGraphicalMature
VCV Rack Andrew BeltRealtime audio synthesis2017-092022-02-262.1.0Free GPL GraphicalImmature

Programming language features

NameTextual/graphical Object-oriented Type system
BiduleGraphicalNo
ChucK TextualYesStatic
Csound Textual/Graphical (FLTK/Qt/HTML5)NoIn development
Impromptu Mostly textual-Dynamic & static
Kyma Mostly GraphicalYesDynamic
Max/MSP GraphicalNo
Pure Data GraphicalNo
Reaktor GraphicalNo
SuperCollider Textual/Graphical (Cocoa/Swing/Qt)YesDynamic
SynthEdit GraphicalYesStatic
MPEG-4/SA TextualNoNo

Data interface methods

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

NameShell scripting MIDI OSC HID VST Audio Units Other
InOutInOutInOutAs hostAs unit
BiduleYesYesYesYesYesYesYesYes
ChucK YesYesYesYesYesYesYesChunity allows to run ChucK in the Unity game engine
Csound YesYesYesYesYesYesNobinding from Haskell (hCsound), C, C++, Java, JavaScript, Lisp, Lua, Python
Impromptu YesYesYesYesYesNoBidirectional Scheme to Objective-C bridge
Kyma YesYesYesYesYes
Max/MSP YesYesYesYesYesYesYes
Pure Data YesYesYesYesYesYesYesYesSomeSome
  • bindings for GStreamer, Java, Lua, Python
  • the Camomile plug-in may host PD as plug-in within DAW
  • PD-extended presently has multiple options to host LADSPA plug-ins within PD environment
Reaktor YesYesYesYesYesNoYes
SuperCollider YesYesYesYesYesYesYesNoYesLADSPA Host, scsynth can be controlled by OSC messages (Haskell, Scala, Python, Ruby, Scheme etc.)
SynthEdit YesYesNoNoYesNoYes
VCV Rack YesYesYesYesYes

Technical

NameOperating system(s)Source code language(s)Programming (plug-in) API language(s)Other technical features
Bidule macOS, Windows C++ C++ ASIO/ CoreAudio (Mac)/ ReWire support. Possible to write custom modules via API if NDA accepted.
ChucK macOS, Linux, Windows C++ C++ Unified timing mechanism (no separation between audio-rate and control-rate), command-line access
Csound macOS, Linux, Windows C, C++ C; also C++, Java, Lisp, Lua, Python, Tcl IDE (QuteCsound), multitrack interface (blue); several analysis/resynthesis facilities; can compute double-precision audio; Python and LuaJIT algorithmic composition library; multi-threaded processing
Impromptu macOS Lisp, Objective-C, Scheme C, C++, Objective-C, Scheme Native access to most macOS 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 macOS, Windows Smalltalk, C, Objective-C Smalltalk The Kyma hardware processes user algorithms at sample-rate, as opposed to a vector of samples [1] Kyma has a Frequency resolution of .0026 Hz, and large multi-dimensional arrays can be transferred through spectral algorithms at the speed of a single Frame.
Max/MSP macOS, Windows C, Objective-C C, Java, JavaScript, also Python and Ruby via externals
Pure Data macOS, Linux, Windows, iPod, Android C C, C++, FAUST, Haskell, Java, Lua, Python, Q, Ruby, Scheme, others
Reaktor macOS, Windows
SuperCollider macOS, Linux, Windows, FreeBSD C, C++, Objective-C C++ Client-server architecture; client and server can be used independently, command-line access
Sporth Linux, macOS C C, Scheme Many frontends built using the API exist, including Chuck, PD, and LADSPA
SynthEdit Windows, macOS C++ C++
VCV Rack macOS, Linux, Windows C++ C++

See also

References

  1. "Symbolic Sound Kyma: Products ChoosingTheRightConfigurationForYourApplication". www.symbolicsound.com. Retrieved 2018-10-13.