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.

A line-drawn robot in headphones plugs patch cords into the Wavelength Engine synthesizer, one at a time, and listens after each one while notes drift away. WAVELENGTH ENGINE ready
  1. 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}]}
    }
  2. 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
  3. 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.

    Loudness by section of Sublevel EIntro -18.1 LUFS, Rise -15.3 LUFS, Groove -13.3 LUFS, Turn -12.9 LUFS, Drive -13 LUFS, Breakdown -17.6 LUFS, Build -15.8 LUFS, Peak -12.7 LUFS, Outro -14.7 LUFSIntro-18.1Rise-15.3Groove-13.3Turn-12.9Drive-13.0Breakdown-17.6Build-15.8Peak-12.7Outro-14.7
  4. 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

Rendered 8d ago Song page

sublevel-e

BPM
128
Tracks
13
Notes
4,082
Length
3:08
LUFS
-14.0
True peak
-2.7

Arrangement

job.json · out/report.json
0:00 / 3:08 out/sublevel-e.mp3

Sections

integrated LUFS

    The 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

    InstrumentWhat loads by name
    VitalVital AudioAny .vital preset file, including community packs
    Surge XTSurge Synth TeamFactory patches by name
    OB-XfSurge Synth TeamFactory patches by name
    DexedDigital SuburbanEvery voice of every DX7 cartridge by name
    Odin2TheWaveWardenFactory presets by name
    Altitude, Apricot, ExtraBold, Fluctus, RegencynakstFactory presets by name (Altitude alone has 450)
    BBC Symphony Orchestra DiscoverSpitfire AudioEach instrument by name, with per-note articulations
    Relica 2HivetuneFactory presets, once extracted from the plugin
    TAL-NoiseMakerTAL SoftwareFactory presets, once extracted from the plugin
    Zebralette 3, Zebralette, TripleCheeseu-heFactory presets by name
    Vaporizer2VAST DynamicsAll 460 factory presets by name
    FB-02, FB3Full Bucket MusicEvery program of the factory banks by name
    Firefly Synth 2Sjoerd van KreelFactory presets by name
    JC303midilabA TB-303 driven by its parameters (it has no presets)
    AAS PlayerApplied Acoustics SystemsSound bank entries by name
    DecentSamplerDecidedlyInstalled libraries by name
    SoundboxAudiomodernInstalled instruments by name

    Paid

    InstrumentWhat loads by name
    Serum 2Xfer RecordsFactory and user presets by name
    DUNE 3Synapse AudioAll 1,071 factory presets by name
    Zebra2u-heFactory presets by name
    Analog Lab VArturiaPresets by name
    SynthMaster OneKV331 AudioPresets by name
    DCO-106 and other synthsCherry AudioPresets by name
    SynplantSonic ChargePatches by name
    MicrotonicSonic ChargeKits, and single drums onto any channel
    MPowerSynthMeldaProductionBank 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.

    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.

    1. Download wavelength-skill.zip and unzip it into your skills folder:
      unzip wavelength-skill.zip -d ~/.claude/skills/
    2. Ask for a song:
      /wavelength Write a three-minute synthwave track that builds to a big chorus
    Download the skill
    • 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.