Wavelength
A music engine for AI agents. It plays notes through the synthesizers installed on your Mac and hands back a mastered song, its stems, and the numbers to judge it by.
Works in Claude Code, Claude Desktop, Cursor, VS Code, Codex and any other MCP client.
How an agent makes a song
No DAW and no screen. The agent writes the music as data, Wavelength performs it with real instruments, and the report tells the agent what it can't hear.
-
Write a job
Notes in beats, sounds by preset name, effects, sends and a master chain, all in one JSON file. Orchestral parts carry their own articulations.
{ "tempo": 138, "tracks": [ {"name": "Lead", "plugin": "Altitude", "preset": "LD Trance Spectrum", "transpose": 12, "notes": [{"beat": 0, "dur": 1, "key": "D5", "vel": 0.9}]}, {"name": "Violins", "plugin": "BBC Symphony Orchestra", "preset": "Violins 1", "articulations": {"long": 0, "spiccato": 1}, "notes": [{"beat": 0, "dur": 4, "key": "A5", "art": "long"}]} ], "master": {"loudness": -14, "fx": [{"type": "limiter", "ceiling": -1}]} } -
Render through real plugins
CLAP and VST3 synths and sample libraries play offline: Vital, Serum 2, Surge XT, Dexed, BBC Symphony Orchestra and about 17,000 presets by name.
$ wavelength render job.json --out out --json rendered 31 tracks in 67 s: out/mix.wav, out/report.json -
Measure what it can't hear
Loudness per track and per section, true peak, pitch, brightness and stereo width. The agent balances the mix from the numbers and asks you to listen when it's a matter of taste.
-
Master it
EQ, multiband compression, limiting and a loudness target such as -14 LUFS for streaming, with a second of silence up front for upload.
$ wavelength master out/mix.wav --chain mastering.json --lead-in 1 input -9.4 LUFS 7.4 dBTP output -14.0 LUFS -1.0 dBTP
Listen with your agent
wavelength serve opens a page on your machine for reviewing songs together: the arrangement, loudness by section and track, and quick previews of any bars. Pin a comment to bars, tracks or notes; the agent reads it, renders the fix and answers there.
sublevel-e
- BPM
- 128
- Tracks
- 13
- Notes
- 4,082
- Length
- 3:08
- LUFS
- -14.0
- True peak
- -2.7
Arrangement
job.json · out/report.jsonSections
integrated LUFSThe page, rebuilt with the songs on this site: pick a song and play it, click the arrangement to seek, drag across it to pick bars and leave a comment. Comments stay in this page, and the agent's answer is a sample.
Instruments it plays
Any CLAP or VST3 instrument on your Mac can play a part. These have been tested, and Wavelength loads their sounds by name, so an agent can ask for a preset instead of setting knobs.
Free
| Instrument | What loads by name |
|---|---|
| VitalVital Audio | Any .vital preset file, including community packs |
| Surge XTSurge Synth Team | Factory patches by name |
| OB-XfSurge Synth Team | Factory patches by name |
| DexedDigital Suburban | Every voice of every DX7 cartridge by name |
| Odin2TheWaveWarden | Factory presets by name |
| Altitude, Apricot, ExtraBold, Fluctus, Regencynakst | Factory presets by name (Altitude alone has 450) |
| BBC Symphony Orchestra DiscoverSpitfire Audio | Each instrument by name, with per-note articulations |
| Relica 2Hivetune | Factory presets, once extracted from the plugin |
| TAL-NoiseMakerTAL Software | Factory presets, once extracted from the plugin |
| Zebralette 3, Zebralette, TripleCheeseu-he | Factory presets by name |
| Vaporizer2VAST Dynamics | All 460 factory presets by name |
| FB-02, FB3Full Bucket Music | Every program of the factory banks by name |
| Firefly Synth 2Sjoerd van Kreel | Factory presets by name |
| JC303midilab | A TB-303 driven by its parameters (it has no presets) |
| AAS PlayerApplied Acoustics Systems | Sound bank entries by name |
| DecentSamplerDecidedly | Installed libraries by name |
| SoundboxAudiomodern | Installed instruments by name |
Paid
| Instrument | What loads by name |
|---|---|
| Serum 2Xfer Records | Factory and user presets by name |
| DUNE 3Synapse Audio | All 1,071 factory presets by name |
| Zebra2u-he | Factory presets by name |
| Analog Lab VArturia | Presets by name |
| SynthMaster OneKV331 Audio | Presets by name |
| DCO-106 and other synthsCherry Audio | Presets by name |
| SynplantSonic Charge | Patches by name |
| MicrotonicSonic Charge | Kits, and single drums onto any channel |
| MPowerSynthMeldaProduction | Bank presets by name |
Kontakt, Komplete Kontrol, UVI Workstation, ZENOLOGY (needs a Roland Cloud login) and Spitfire LABS (its patches are encrypted, so only the default plays) need their own window, which Wavelength never opens.
Songs
Made by Claude with Wavelength, each with the prompt that started it and every instrument and patch it used.
- Sublevel E A dark, driving descent built from two riffs in Austin's riff library and a one-line prompt: a D-A-F-E fall and an E pedal that circles F and D#, on a Blooo bass he picked. 3:09 .wavelength file of Sublevel E 8 MB
- Operation Nightwood Dark trance built on a two-bar riff Austin recorded on Wavelength's Sounds page, played only on the two sounds he tuned there: Driven Bass at 640 Hz and Trance Strings. 3:37 .wavelength file of Operation Nightwood 9 MB
- Clockwork Partita A Baroque partita in A minor that runs out of a game cartridge and into a techno club: harpsichord and BBC strings, then NES and Game Boy chips, then a 909 and a 303. 3:11 .wavelength file of Clockwork Partita 8 MB
- Dawnbreaker 2000s uplifting trance in F minor, made entirely with free synthesizers: a hypersaw anthem, a rolling bass, a 303 acid line and a piano breakdown. 3:38 .wavelength file of Dawnbreaker 15 MB
- Sound Test A video game sound effects reel: 50 sounds and scenes, from menu clicks and coins to a four-layer explosion, a storm and a boss fight, every one from a real synthesizer. 3:02 .wavelength file of Sound Test 8 MB
- Tidal Lock Pumping techno-trance on three chords: arpeggios that change every phrase and climb into a two-bar melody, driven by filters and sidechain. 3:43 .wavelength file of Tidal Lock 15 MB
Give your agent Wavelength
Two ways in. The /wavelength skill teaches Claude Code the whole process, from installing the engine to handing you a mastered song. The MCP server gives the same engine to Claude Desktop, Cursor, VS Code, Codex and any other MCP client.
- Download wavelength-skill.zip and unzip it into your skills folder:
unzip wavelength-skill.zip -d ~/.claude/skills/ - Ask for a song:
/wavelength Write a three-minute synthwave track that builds to a big chorus
- Installs Wavelength if it's missingIt downloads the release build for macOS, Linux or Windows, or clones the source and compiles it.
- Uses only what you have installedIt lists your plugins, presets and sample libraries and checks each lead sound across its range.
- Mixes and masters by measurementGain staging from stem loudness, section rides, a mastering chain and a -14 LUFS target.
- Asks you to listenYou name a moment that sounds wrong; it finds the track responsible and fixes it.
Connect it over MCP
wavelength mcp is a server on stdin and stdout, built into the engine. Download Wavelength, then add it to the client's MCP settings:
{"mcpServers": {"wavelength": {
"command": "/path/to/wavelength",
"args": ["mcp"]}}}
In Claude Code, the plugin brings the skill and the server together, and installs the engine on first use:
/plugin marketplace add austinginder/wavelength
/plugin install wavelength@wavelength
Setup for every client
- Finds soundsYour instruments, presets, sample libraries and parameters, and a patch card that shows how a preset sounds before it goes in a song.
- Renders and reportsEvery render answers with loudness per track and section, warnings with their fixes, and a picture of the song.
- Works on songsRevisions, undo, a diff by track and bar, your review comments, and imports from MIDI, MusicXML, DAWproject, Bitwig and GarageBand.