CDP WASM SUITE
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.
CLI • WEB APP • DAW PLUGIN • DAW EXTENSION
vocal_take_03.wav0:04.812
$ pick a process — this scope is live
chord_sus.ana0:04.812
$ pvoc anal — spectral scope is live
SCREENSHOTS
CDP for Web: a chord generator wired through PVOC analyse, time stretch and resynthesise, white-on-black CRT theme
A SUITE OF APPS BUILT USING CDP-WASM
WEB APP
CDP Web App
BROWSER INSTALLABLE PWA
cdp-web: A retro-computing themed node graph patcher CDP frontend in a web application.
PLUG-IN
Composer’s Desktop Plug-in
VST3 AU CLAP
cdp-plugin: An instrument plugin that embeds the cdp-web environment and lets you play back rendered wav files polyphonically across the keyboard.
ABLETON EXTENSION
Composer’s Desktop Extension
ABLETON LIVE
cdp-extension: An Ableton Extension that embeds the cdp-web environment and and lets you process audio offline from the session or arrangement.
THE ENGINE & AGENTIC CONTROL
WebAssembly logo
Built on CDP WASM
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
PACKAGE
npm       : cdp-wasm
programs  : 215
effects   : 232
generators: 16
node      : >= 18
license   : MIT/LGPL
COMMAND LINE
$ npm install -g cdp-wasm
$ cdp modify speed 2 in.wav out.wav -12
$ cdp --pvoc blur blur in.wav out.wav 10
Every program, invoked exactly like native CDP — --pvoc wraps the spectral processes
NODE + BROWSER
import { CDP } from 'cdp-wasm'
const cdp = new CDP()
const { bytes } = await cdp.process('modify',
  ['speed', '2', '$IN', '$OUT', '-12'], wav)
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.
composersdesktop.com ↗
SPEC SHEET
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
Support on Patreon ♥
CDP WASM SUITE by Oli Larkin • © 2026