7.0 RELEASE Csound 7.0.0 is here — Modern syntax, structs, and new APIs

Build your own world of sound.

Create synthesizers, audio effects, interactive installations, and generative music with Csound — the free, open-source audio programming language with over 1,500 unit generators running on desktop, web, mobile, and embedded hardware.

1,500+ Synthesis & DSP Opcodes Desktop, WebAssembly, Mobile & Embedded Free & Open Source (LGPLv2.1+) since 1985
Live Browser Engine (WASM)

Pling — Self-scheduling modal resonator percussion in 8 lines of code.

instr Pling
  // Modal filter excited by an impulse with random pitch & damping
  aMode = mode(mpulse(ampdb(random:i(-22, 0)), p3),
               mtof:i(random:i(80, 100)), 10^(p3 - 1))
  aL, aR pan2 aMode, random:i(0, 1)
  out(aL, aR)
  // Recursively schedule the next event
  schedule(Pling, rnd:i(1), random:i(1, 4))
endin
schedule(Pling, 0, 3)
instr start_sequences
  krate = scale(rspline:k(0, 1, 0.1, 2)^2, 10, 0.3)
  kcps  = cpsoct(rspline:k(4.3, 9.5, 0.1, 1))
  kpan  = rspline:k(0.1, 4, 0.1, 1)
  kwg1  = rspline:k(6, 9, 0.05, 1)
  kwg2  = rspline:k(6, 9, 0.05, 1)
  schedkwhen(metro(krate), 0, 0, wguide2_note, 0, 4, kcps, kwg1, kwg2, kpan)
endin
schedule(start_sequences, 0, -1)
instr Tone
  iamp, ifreq = p4, p5
  ihrd = random:i(0.1, 0.9)
  ipos = random:i(0, 1)
  ares = vibes(iamp, ifreq, ihrd, ipos, 1, 6, 0.05, 2, 0.1)
  adryl, adryr pan2 linen:a(ares, 0, p3, p3/2), random:i(0, 1)
  out(adryl, adryr)
  garev1 += 0.3 * adryl
  garev2 += 0.3 * adryr
endin
Why Csound

One audio engine. Every sonic paradigm.

From classic additive and FM synthesis to spectral phase vocoders, granular clouds, and physical models—Csound gives you sample-accurate control and unmatched longevity.

Deep Sound Design

Combine over 1,500 built-in opcodes for subtractive, FM, granular, spectral (PVS), waveguide, and modal synthesis—or write custom DSP with User-Defined Opcodes.

Plugins & Standalone Apps

Design custom graphical interfaces with Cabbage to export VST3/AU plugins for any DAW, build interactive instruments in CsoundQt, or score in Blue.

Host APIs & Live Coding

Drive Csound from Python (Jupyter notebooks, ctcsound, csoundengine), C/C++, JavaScript/WASM, Max/MSP, or PureData.

Run Anywhere

Deploy the exact same .csd orchestra on macOS, Windows, Linux, iOS, Android, Unity, Godot, WebAssembly, Raspberry Pi, Bela, ESP32, and ARM Cortex-M7.

What's New in Csound 7

Expressive modern syntax meets 40 years of stability.

Csound 7.0 introduces explicit colon type annotations (sig:a, cutoff:k), user-defined struct types, function-style UDO definitions, and a modernized host API—while running classic Csound pieces from the 1980s without modification.

  • Explicit Types & Structs: Descriptive variable names and custom data structures.
  • Functional & Classic Styles: Write outall(moogladder:a(vco2:a(0.2, 440), 2000, 0.4)) or classic orchestra lines.
  • Zero-Install Browser Workflow: Learn interactively in the Csound Web IDE and FLOSS Manual.
Csound 7 Syntax Example subtractive-synth.csd
instr SubSynth
  // Explicit variable typing in Csound 7
  amp:i    = p4
  freq:i   = p5
  env:k    = madsr:k(0.05, 0.3, 0.6, 0.4)
  osc1:a   = vco2:a(amp, freq)
  osc2:a   = vco2:a(amp, freq * 0.995)
  filtered:a = moogladder:a((osc1 + osc2) * 0.5, 4500 * env, 0.35)
  outall(filtered * env)
endin

schedule(SubSynth, 0, 2.5, 0.25, 220)
schedule(SubSynth, 0, 2.5, 0.25, 330)
Events & Heritage

Join the Global Community

Four Decades of Sound Exploration

With roots in Max Mathews' pioneering MUSIC-N series and released by Barry Vercoe at MIT in 1985, Csound is one of the longest-running open-source audio systems in computing history.