001 / 016
Sound engine
The Faust compiler runs inside the app — no external toolchain, no export step.
- libfaust/WASM compiles DSP straight into audio worklets.
- Disk compile cache: 6.3 s on the first build, 4 ms on repeat.
- 4, 8 or 16 voices per patch with per-voice MIDI.
- One transport feed writes every [bpm] slider — phasors, master clock and sequencer notes land on the same sample.
- Timed parameter writes: 20 ms of jitter down to 0.02 ms.
LIBFAUST · WASM WORKLETS
002 / 016
Builder
A visual patch editor whose graph is real Faust code you can read at any moment.
- ≈155 node kinds: 11 built in, 144 from 7 bundled packs.
- faust (70), vintage (46 — 18 tubes, 25 amps), reverbs (7), analysis (7), physical models (5), spatial (3), conventions (6).
- Groups, auto-layout, per-node bypass with live recompile, unison per kind.
- Install your own packs as .nodepack.json, from disk or from the hub.
- Export and import as .builder; three-stage engine lifecycle with pre-arm.
155 NODE KINDS · 7 PACKS
003 / 016
Faust code
The same patch, written by hand — editors, library mounting and MIDI by metadata.
- Monaco editors for .dsp and .lib, plus Markdown and JSON documents.
- Libraries mount into the libfaust VFS — import("mine.lib") resolves immediately.
- MIDI in the code: [midi:on], [midi:chan N], [midi:ctrl N].
- Modulators are ordinary .dsp files with a [modout] output — editable, versionable, publishable.
MONACO · VFS · HOT RECOMPILE
004 / 016
Sequencer
Multi-track, pattern-based, and driven by the same sample-accurate clock as the audio.
- Unlimited tracks, up to 8 patterns each, 8/16/32/64 steps, C0–C8.
- Scenes across all tracks, with launch quantize in 5 steps.
- Value tracks automate any parameter, sample-accurate, with ramps.
- 12 scales colour the grid; 16 chords, 13 qualities, 9 progression templates.
- MIDI export as a standard file (SMF type 1, 480 PPQ).
SCENES · AUTOMATION · SMF EXPORT
005 / 016
Live surfaces
Keyboard, pads and hardware bindings — the parts you play rather than edit.
- On-screen keyboard: channels 0–16, hold/latch, the full octave range.
- Pads: up to 64 widgets in 4 types (pad, knob, fader, button), configured per project.
- Bound knobs show the live value of their parameter — automation and AI writes become visible.
- MIDI learn: a trigger fires an action, a continuous control owns a parameter's base.
- An LFO on a pad knob turns into outgoing CC — the bridge back to hardware.
64 WIDGETS · MIDI LEARN
006 / 016
Mixer & master
A full channel path with insert chains, sends and a master that refuses to blow up.
- Mixer tracks with dual-mono faders, mute/solo, sends and smart reconnect.
- Serial insert slots per track — each one is also an address for automation.
- Linked FX slots follow their source file: stale detection, one-click refresh, or deliberately frozen.
- Master rack with insert and send slots, Faust source per slot.
- Permanent soft clipper plus a watchdog that bypasses a broken insert instead of killing the sum.
- Master recorder to 32-bit float WAV, crash-safe.
TRACK FX · MASTER RACK · RECORDER
007 / 016
Modulation
One address space for every parameter in the project — and modulation that never overwrites your hand.
- 4 templates: LFO (4 shapes), macro, random drift, sample & hold — each a .dsp file.
- Sinks everywhere: builder patches, .dsp instruments, master slots, track FX, pads.
- Non-destructive maths: clamp(base + Σ amount·source).
- Assign mode — arm a source, click a target widget, the edge exists.
- LFO and S&H sync to tempo through the same [bpm] tags.
ONE ADDRESS SPACE · TEMPO SYNC
008 / 016
Routing & patchbay
A JACK-style matrix for everything that moves between modules.
- Sources × sinks with port addresses, three channel kinds.
- Audio with per-edge gain, MIDI, modulation with amount.
- Patchbay overlay (⌘B) with a filter per channel kind.
- Cables survive restart; edges to endpoints that don't exist yet wait for them.
AUDIO · MIDI · MODULATION
009 / 016
Analysis
Measurement built into the environment, offline on files and live inside a patch.
- Offline: crest/PLR, 6-band energy plan, band correlation, onsets and click score, tonality.
- Reference profiles to hold a mix against.
- In-patch nodes: spectrum, FFT, goniometer, peak hold, RMS, Goertzel, bass meter.
OFFLINE + IN-PATCH METERING
010 / 016
MIDI
External gear, and the tools to see what it is actually sending.
- WebMIDI devices with a picker and per-device routing.
- Monitor taps the bus before any routing or filter — "is anything arriving?" is one glance.
- Follow an external MIDI clock.
- CC map: who listens to which controller, across nodes, tags, bindings and last-seen values.
MONITOR · CLOCK FOLLOW · CC MAP
011 / 016
Projects & files
Self-contained projects that carry their samples with them.
- project.json, workspace.json and assets/ — create, open, rename, delete from actions.
- Export as .fwproject.zip: every referenced sample travels along, sha-addressed.
- Global sha256 sample store with garbage collection and a dry-run report.
- project.prune clears orphaned mixer and routing entries, dry run first.
- Two demo projects ship with the app: Around the World and C64 Demo.
RELOCATABLE · SHA-ADDRESSED
012 / 016
Hub
Publish what you build, install what others made — versioned, forkable, content-hashed.
- 7 item kinds: builder patches, Faust DSPs, libraries, books, sample packs, node packs, whole projects.
- Search and browse, install with dependency resolution, publish, version with changelogs, fork, star.
- Visibility per item: public, unlisted or private.
- Logto sign-in — and the IDE stays fully usable without an account.
7 KINDS · VERSIONED · FORKABLE
013 / 016
Knowledge
A local, semantic knowledge base — and documentation that runs itself.
- SQLite + sqlite-vec with on-device embeddings (MiniLM, ~25 MB, CPU).
- 6+ corpora: node kinds, Faust idioms, your patches, libraries, music theory, installed books.
- 15 books ship with the app and update through the hub.
- Tutorials execute: YAML blocks become buttons that run real actions in your session.
- Music theory is data — the same source feeds the sequencer UI and the AI.
ON-DEVICE VECTORS · 15 BOOKS
014 / 016
AI integration
Not a chat bolted on: the AI and the interface share one registry of actions.
- Action parity, enforced by a CI lint — ~250 actions, ~132 projected as tools.
- What you can click, the AI can call, and every call lands in the activity log.
- Built-in assistant against any OpenAI-compatible endpoint, including local Ollama or LM Studio.
- MCP server on 127.0.0.1:3737 with a bearer token — external agents drive the whole IDE.
- Command palette (⌘K) as the human side of the same registry.
ACTION PARITY · MCP · BYO MODEL
015 / 016
Shell
A workspace you arrange, with a memory of everything that happened in it.
- Views and zones: 6 bundled views, all editable, plus your own.
- ~20 surfaces — library, inspector, analysis, routing, patchbay, compiler, logs, devices and more.
- Activity log: every action, human or AI, as a readable feed.
- Two themes from one token source, following the system.
6 VIEWS · ~20 SURFACES
016 / 016
Platform
A desktop app on all three platforms, hardened and self-updating.
- Windows (NSIS), macOS (DMG + ZIP, signed & notarized), Linux (AppImage).
- Auto-update from a public feed per platform; nothing blocks the start.
- Electron fuses burned, MCP on loopback only, secrets in OS safeStorage, path guard in main.
- Monorepo of 16 packages; 7 extensions deliver the features, the app is the stage.
WIN · MACOS · LINUX