Research preview

The framework for modern audio software.

Write your instrument once in TypeScript — ship it to the browser, to VST3, and to the desktop. Designed from the start to be built with AI, and to run AI models inside your sound.

or read the docs

One codebase, every format

Write it once. Export it everywhere.

Audio software usually means picking a lane: a native plugin, or a web demo that is a second, lesser implementation. Here the DSP is written once and the compiler produces every target from that single source.

Web
Your module compiles to WASM and runs in an AudioWorklet at full quality — no install, no plugin host, nothing to download. Give anyone a URL and they can play it.
VST3
The same source compiles to a native plugin for the DAW. It is the same compiled DSP, not a re-implementation kept loosely in sync — so there is only ever one version of your module to maintain.
Standalone
Ship a desktop application from the same project, with your web UI as the interface. AU and CLAP are on the roadmap; adding a target does not change the code you wrote.
terminalone project, many targets
npx codex export vst3    # → MyModule.vst3
npx codex export web     # → AudioWorklet + WASM

Built for the AI era

Make instruments with AI — and instruments that use it.

Audio frameworks were designed for a world where a person typed every line of C++ and every model lived on a server. Both assumptions expired. This one is built for how audio software actually gets made now.

Built with a coding model
The framework is shaped to be legible to a model: TypeScript instead of C++, plain process functions and declarative parameter schemas instead of deep class hierarchies, and errors specific enough to act on. Describe the effect you want, get a module you can hear.
Models inside your instruments
Ship modules that carry a model with them — timbre transfer, separation, generative accompaniment, smarter parameter mapping. Inference and real-time audio share one runtime, so what you build runs on device in the browser and in the DAW.
A loop tight enough to iterate in
Change the code, hear it in the browser, change it again. AI assistance is only useful when the feedback is immediate, so the whole toolchain is built around a fast edit-to-sound path rather than a per-platform native build.
See how it works

The developer story

It's TypeScript. All the way down.

You write a process function and a parameter schema. The compiler turns that into real-time-safe code for every target — you never touch a native toolchain, a build matrix, or a plugin SDK header. Your interface is a web page, in whatever framework you already use, and it renders the same in the browser and inside the DAW.

No C++ and no DSP degree required. If you have shipped a web app, you have most of the skills already.

my-module.ts
import { defineModule, lowpass, saw } from "@codex-music/audio-sdk";

export default defineModule({
  params: {
    cutoff: { min: 20, max: 18000, default: 2200, unit: "Hz" },
    drive: { min: 0, max: 1, default: 0.35 },
  },
  process(ctx, p) {
    return lowpass(saw(ctx.pitch) * (1 + p.drive), p.cutoff);
  },
});

Built with the framework

Modules you can play right now.

Every one of these is an ordinary project built on the framework — running here in your browser, and exportable to your DAW from the same source. Open one to hear it, or read its code as a starting point for your own.

All modules
InstrumentsAvailable
A small subtractive synth with nothing to hide.
EffectsAvailable
Tube-style drive into a real cabinet.
MIDI & ModulationAvailable
Play one note, get a voiced chord.
MIDI & ModulationAvailable
Your camera becomes a mod wheel.

Made something good? Share it.

Publish a module to the directory and anyone can play it in the browser from a link, or download it for their DAW. Set your own terms, or put it in the shared pool and earn from usage.

How publishing works

A research preview, in active development. Modules are free to play in your browser.