A unique sound transformation toolkit, compiled to run anywhere.
The Composer's Desktop Project — hundreds of esoteric spectral, granular and waveset programs for offline audio processing — ported to run in node.js, as a plug-in, in Ableton Live and in the browser with a retro-computing themed node graph interface. Integrates the Faust compiler, for custom DSP development. Perfect for agentic sound design.
Each CDP program is a .wasm module loaded in a virtual filesystem. WASM is platform agnostic and works in the browser and with node.js and compatible javascript runtimes. The engine is published on npm as cdp-wasm: it includes a typed library plus a cdp command line tool that takes the same arguments as native CDP - making it very portable. The npm tarball is just 3.22 MB
Audio in and out as byte arrays — no files on disk, no toolchain, the same code in node and the browser.
CDP HISTORY
Developed since the late 1980s, the Composers Desktop Project is a powerful toolkit for digital sound transformation, built by composers and engineers for the hardware of the time — starting with the Atari ST. CDP has been developed over many years by many different people, in particular Trevor Wishart and Richard Dobson. There have been many frontends built around the command line tools over the years. This project takes a slightly different approach using the latest web technologies with the aim of making it a lot more portable, scriptable and generally more accesible and easier to use.
origin : 1987, York UK authors : Lots cdp-wasm: Oli Larkin programs: 200+
FREQUENTLY ASKED QUESTIONS
?How does this relate to Soundthread etc?
cdp-wasm is a new WebAssembly port of CDP, and cdp-web is a graphical frontend to the cdp-wasm engine. It is not related to Soundthread, Soundloom or Soundshaper, other than the fact that they are also frontends to CDP.
?Do I need to install CDP first?
No. Every program is compiled to WebAssembly and ships inside the apps and the npm package — there is no native CDP installation, no submodule and no toolchain to set up.
?Does it sound the same as native CDP?
It is the same code, not a reimplementation: the CDP8 C sources compiled to WASM, with the same programs, the same arguments and the same file formats.
On top of that sits a curated layer — 232 effects across 110 programs, each with named parameters, ranges and defaults, wrapping the pvoc analysis/resynthesis and per-channel handling that the raw programs leave to you. That is what the apps and the effect catalog are built from. It changes the ergonomics, never the DSP: every program is still reachable raw, with its original arguments.
?Does it process audio in realtime?
No — CDP is offline, file-based processing: you render a result and then play it back. The plug-in maps the render across a sampler keyboard; the Ableton Extension writes it back into the session or arrangement.
The files are not written to your disk, though. Each program reads and writes through an in-memory virtual filesystem, so the intermediate analysis and audio files of a chain never touch your drive — audio goes in and comes back as byte arrays. Only the cdp command line tool works on real files.
?How can I share a patch with someone?
Share patch ↗ in cdp-web packs the whole patch, every window, cable and setting, into the link itself. Nothing is uploaded: the link is the patch.
Audio is the exception. A Source loaded from disk opens empty for whoever follows the link, but one loaded with the URL… button stores its address and arrives with its sound, so a patch built on audio that lives on the web travels complete.
?What are the limitations vs native CDP?
The main one is file size. The modules are 32-bit WebAssembly and stage every file in memory, so one render has to hold the input, the output and CDP's working buffers in a single address space capped at 4 GB
Please help support this complex project by filing bug reports on github. Discuss features, ask questions and share sounds you have made on the bulletin board. You can also sponsor ongoing development on Patreon. Thank you!