Comparison of audio synthesis environments explained

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

NameCreatorPrimary Purpose(s)First release dateMost recent updateMost recent versionCostLicenseMain user interface typeDevelopment status
BidulePlogueRealtime synthesis, live coding, algorithmic composition, acoustic research, all-purpose programming language20022017-060.9757ProprietaryGraphicalMature
ChucKGe Wang and Perry CookRealtime synthesis, live coding, pedagogy, acoustic research, algorithmic composition20042023-121.5.2.1GPLDocumentImmature
CsoundBarry VercoeRealtime performance, sound synthesis, algorithmic composition, acoustic research19862022-10-22v6.18.0LGPLDocument, graphicalMature
ImpromptuAndrew SorensenLive coding, algorithmic composition, hardware control, realtime synthesis, 2d/3d graphics programming20062010-10v2.5ProprietaryDocumentStable
KeykitTim ThompsonMIDI synthesis and algorithmic composition19952021-03-15v7.7eGPLGraphicalMature
KymaCarla ScalettiRealtime audio synthesis, hardware control, acoustic research, algorithmic composition, data sonification, live-performance multi-effects processing19862018-9-03v7.23ProprietaryGraphicalMature
Max/MSPMiller PucketteRealtime audio + video synthesis, hardware control, GUI design1980s (mid)2024-01-17v8.6.0ProprietaryGraphicalMature
Pure DataMiller PucketteRealtime synthesis, hardware control, acoustic research1990s2023-07-04v0.54BSD-likeGraphicalMature
ReaktorNative InstrumentsRealtime synthesis, hardware control, GUI design19962023-04-196.5ProprietaryGraphicalMature
SuperColliderJames McCartneyRealtime synthesis, live coding, algorithmic composition, acoustic research, all-purpose programming language1996-032023-02-19v3.13.0GPLDocumentMature
SporthPaul BatchelorSound design, algorithmic composition, live coding, embedded systems20152016-05-MITDocumentImmature
SynthEditJeff McClintockRealtime synthesis, live coding, effects coding, GUI design199920211.4Proprietary/BSDGraphicalMature
VCV RackAndrew BeltRealtime audio synthesis 2017-092022-02-262.1.0GPLGraphicalImmature

Programming language features

NameTextual/graphicalObject-orientedType system
BiduleGraphicalNo
ChucKTextualYesStatic
CsoundTextual/Graphical (FLTK/Qt/HTML5)NoIn development
ImpromptuMostly textual-Dynamic & static
KymaMostly GraphicalYesDynamic
Max/MSPGraphicalNo
Pure DataGraphicalNo
ReaktorGraphicalNo
SuperColliderTextual/Graphical (Cocoa/Swing/Qt)YesDynamic
SynthEditGraphicalYesStatic
MPEG-4/SATextualNoNo

Data interface methods

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

NameShell scriptingMIDIOSCHIDVSTAudio UnitsOther
InOutInOutInOutAs hostAs unit
Bidule
ChucKChunity allows to run ChucK in the Unity game engine
Csoundbinding from Haskell (hCsound), C, C++, Java, JavaScript, Lisp, Lua, Python
ImpromptuBidirectional Scheme to Objective-C bridge
Kyma
Max/MSP
Pure Data
  • 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
SuperColliderLADSPA Host, scsynth can be controlled by OSC messages (Haskell, Scala, Python, Ruby, Scheme etc.)
SynthEdit
VCV Rack

Technical

NameOperating system(s)Source code language(s)Programming (plug-in) API language(s)Other technical features
BidulemacOS, WindowsC++C++ASIO/ CoreAudio (Mac)/ ReWire support. Possible to write custom modules via API if NDA accepted.
ChucKmacOS, Linux, WindowsC++C++Unified timing mechanism (no separation between audio-rate and control-rate), command-line access
CsoundmacOS, Linux, WindowsC, 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
ImpromptumacOSLisp, Objective-C, SchemeC, C++, Objective-C, SchemeNative 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.
KymamacOS, WindowsSmalltalk, C, Objective-CSmalltalkThe 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/MSPmacOS, WindowsC, Objective-CC, Java, JavaScript, also Python and Ruby via externals
Pure DatamacOS, Linux, Windows, iPod, AndroidCC, C++, FAUST, Haskell, Java, Lua, Python, Q, Ruby, Scheme, others
ReaktormacOS, Windows
SuperCollidermacOS, Linux, Windows, FreeBSDC, C++, Objective-CC++Client-server architecture; client and server can be used independently, command-line access
SporthLinux, macOSCC, SchemeMany frontends built using the API exist, including Chuck, PD, and LADSPA
SynthEditWindows, macOSC++C++
VCV RackmacOS, Linux, WindowsC++C++

See also

Notes and References

  1. Web site: Symbolic Sound Kyma: Products ChoosingTheRightConfigurationForYourApplication. www.symbolicsound.com. en. 2018-10-13.