Music / Audio Synthesis Languages Family Index
type: language-family-index family: music-audio languages_catalogued: 18 tags: [language-reference, family-index, music, audio, synthesis, dsp, live-coding]
Music / Audio Synthesis Languages — Family Index
Family overview
The lineage of computer music languages traces back to Max Mathews’s MUSIC I (Bell Labs, 1957) and the Music-N family that followed. That genealogy runs through MUSIC IV → MUSIC V → Cmix → Csound (Barry Vercoe at MIT, 1986) and branches into SuperCollider (James McCartney, 1996) and Pure Data (Miller Puckette, 1996). Puckette had earlier built Max at IRCAM, which Cycling ‘74 commercialized as Max/MSP — making Pd and Max a textbook open-source/commercial split with shared DNA. The Music-N model — orchestra (instruments/UGens) plus score (events in time) — still shapes nearly every language in this family.
Two architectural axes divide the field. First, synthesis vs composition: some languages emphasize DSP graph construction (Faust, Reaktor Core, Kyma), others emphasize event/pattern scheduling (TidalCycles, FoxDot, Sonic Pi, Common Music), and the survivors of the Music-N tradition do both (SuperCollider, Csound, Pd, Max). Second, real-time vs offline: Csound began as a renderer and grew real-time capabilities; SuperCollider split language (sclang) from server (scsynth) precisely so the audio graph runs in a hard-real-time process while the language drives it over OSC.
The third dimension is performance practice. Live-coding — writing and rewriting code on stage as the performance — emerged in the early 2000s and crystallized around the Algorave scene (TOPLAP manifesto, 2004). TidalCycles, Sonic Pi, FoxDot, Overtone, and Extempore are its primary instruments. Orthogonal to that is the text vs visual-dataflow split: Pd, Max, Reaktor, and Kyma are patcher languages where you wire boxes; SuperCollider, Csound, Faust, and the live-coding hosts are textual. The visual-dataflow story is its own family — see visual-dataflow for the broader patcher/node-graph world (LabVIEW, TouchDesigner, Houdini VEX, shader graphs).
In our deep library
Cross-reference:
- haskell — TidalCycles host (patterns are Haskell values)
- clojure — Overtone host (Clojure → SuperCollider scsynth via OSC)
- ruby — Sonic Pi host (Ruby DSL, also drives scsynth)
- python — FoxDot host (Python live-coding, also targets scsynth)
- scheme / common-lisp — Common Music ran on both; Extempore embeds Scheme alongside xtlang
- See also visual-dataflow for the patcher/node-graph cousins
Tier 3 family table
| Language | First appeared | Paradigm | Host / standalone | Status (2026) | URL |
|---|---|---|---|---|---|
| Csound | 1986 | Music-N orchestra/score, imperative DSP | Standalone (C core) | Active; Csound 7 dev line | https://csound.com/ |
| Max/MSP | 1985 (Max), 1997 (MSP) | Visual dataflow, message + signal patching | Standalone (commercial, Cycling ‘74) | Active; Max 9 | https://cycling74.com/products/max |
| Pure Data (Pd) | 1996 | Visual dataflow, real-time DSP | Standalone (open source) | Active; Pd-vanilla + Pd-extended/Plugdata fork | https://puredata.info/ |
| SuperCollider | 1996 | Smalltalk-influenced OO + functional; client/server | Standalone (sclang + scsynth) | Active; v3.13+ | https://supercollider.github.io/ |
| Common Music | 1989 | Algorithmic composition, Lisp-family DSL | Hosted on Common Lisp / Scheme | Maintained but quiet; CM3 in S7 Scheme | https://commonmusic.sourceforge.net/ |
| RTcmix | 1995 | Music-N descendant, real-time scheduler | Standalone + embeddable | Niche but maintained | https://rtcmix.org/ |
| Nyquist | 1991 | Functional, lazy sound expressions | Hosted on XLISP | Maintained via Audacity scripting | https://www.cs.cmu.edu/~music/nyquist/ |
| Kyma | 1986 | Visual signal-flow; Smalltalk-rooted | Standalone (Symbolic Sound, hardware-coupled) | Active; Kyma 7 + Pacarana/Paca(rana) DSP | https://kyma.symbolicsound.com/ |
| Reaktor Core | 2005 | Visual block-DSP at sample level | Hosted in Reaktor (Native Instruments) | Active; Reaktor 6 | https://www.native-instruments.com/en/products/komplete/synths/reaktor-6/ |
| Faust | 2002 | Pure functional signal processors; block-diagram algebra | Source language; compiles to C++/LLVM/Wasm/JUCE/VST | Very active; Faust IDE + faust2* toolchain | https://faust.grame.fr/ |
| ChucK | 2003 | Strongly-timed, concurrent (shreds) | Standalone | Active; ChucK 1.5+ | https://chuck.cs.princeton.edu/ |
| Extempore | 2011 | Live-coding; xtlang (LLVM-JIT’d, statically typed) + Scheme | Standalone | Maintained; less active than peers | https://extemporelang.github.io/ |
| Overtone | 2009 | Clojure DSL driving scsynth | Hosted on Clojure | Maintained; live-coding + studio use | https://overtone.github.io/ |
| Sonic Pi | 2012 | Ruby DSL, live-coding pedagogy | Hosted on Ruby; uses scsynth | Active; v5+ | https://sonic-pi.net/ |
| TidalCycles | 2009 | Pattern algebra (cyclic), live-coding | Hosted on Haskell; sends OSC to SuperDirt/scsynth | Very active; Algorave staple | https://tidalcycles.org/ |
| FoxDot | 2015 | Python live-coding patterns | Hosted on Python; drives scsynth | Maintained; Renardo fork active | https://foxdot.org/ |
| ABC notation | 1991 | Plain-text music notation (not synthesis) | Format + tooling (abcm2ps, abc2midi) | Active; community standard for folk/trad | https://abcnotation.com/ |
| LilyPond | 1996 | Functional engraving DSL (Scheme-extensible) | Standalone | Active; v2.24+ | https://lilypond.org/ |
Notable threads
- Live-coding and the Algorave: the TOPLAP manifesto (2004) and the first Algorave (Sheffield, 2012) made live-coded music a performance genre. Tidal, Sonic Pi, FoxDot, Overtone, and Extempore are the dominant instruments; their common substrate is usually scsynth (the SuperCollider audio server) accessed over OSC. The “show your screen” projection norm is part of the aesthetic — the code is the score and the visual.
- The SuperCollider client/server split: sclang and scsynth are separate processes connected by OSC. This means any language that can speak OSC can drive the audio graph — which is exactly how Overtone, Sonic Pi, TidalCycles, and FoxDot exist. SuperCollider is as much a protocol target as a language. SuperDirt (the Tidal sample engine) is itself written in sclang.
- Faust as a multi-target compiler: Faust isn’t just a language, it’s a compiler to C++, LLVM IR, WebAssembly, JUCE plugins, VST/AU/LV2, Pd/Max externals, Csound opcodes, and Web Audio. A pure functional signal-processor description compiles to whatever DSP host you need. This makes Faust the lingua franca for portable DSP code in 2026 — far beyond its own runtime.
- Pd vs Max — the open-source / commercial twins: Miller Puckette built Max at IRCAM in the mid-1980s; Cycling ‘74 took it commercial in 1997 (adding MSP for audio). Puckette then built Pd (1996) as an open-source rewrite addressing Max’s data-structure limits. They look almost identical, share concepts, but have diverged in patch format. Plugdata (a modern Pd fork with Juce-based UI) is closing the polish gap on the open-source side.
- Why DAW automation isn’t in this family: Ableton/Logic/Cubase clip envelopes, MIDI CC lanes, and parameter automation are data interpolation, not languages — there’s no syntax, no abstraction, no composition of expressions. Max-for-Live, Reaktor Core, and CLAP/AU plugins built in Faust are in the family because they have a programmable layer.
- Modular synthesis as a DSL: Reaktor Core and Kyma are the strongest case that a visual modular synth can be a programming language — they have data flow, abstraction (macros / classes), composition, and Turing-complete control structures. VCV Rack, Bitwig’s Grid, and Softube Modular sit in the same conceptual zone but are weaker as languages (no first-class abstraction over patches). The patcher-as-language idea bridges directly into visual-dataflow.
Citations
- https://csound.com/
- https://cycling74.com/products/max
- https://puredata.info/
- https://supercollider.github.io/
- https://commonmusic.sourceforge.net/
- https://rtcmix.org/
- https://www.cs.cmu.edu/~music/nyquist/
- https://kyma.symbolicsound.com/
- https://www.native-instruments.com/en/products/komplete/synths/reaktor-6/
- https://faust.grame.fr/
- https://chuck.cs.princeton.edu/
- https://extemporelang.github.io/
- https://overtone.github.io/
- https://sonic-pi.net/
- https://tidalcycles.org/
- https://foxdot.org/
- https://abcnotation.com/
- https://lilypond.org/
- https://toplap.org/ (live-coding manifesto)
- https://algorave.com/