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.
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
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.
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.
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)
Latest News & Releases
Join the Global Community
8th International Csound Conference (ICSC 2026)
Join composers, researchers, and instrument builders at the Chiostro di San Domenico in Trapani, Italy for concerts, paper sessions, and workshops.
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.