All books

Meet the workspace (2 minutes)

~4 min read · updated 2026-09-06 · markdown

Every button in this chapter opens the surface it describes, live — click it, look at what appeared, read the two sentences, move on. Nothing here changes your project or makes sound; it's a walk through the rooms before you start working in them. (Each button fires a registered action — the same one the AI or an MCP client would call. You'll see every click land in the Activity log later.)

Views — six postures

The window is arranged by views, named after what you are doing, switched on the topbar's rail. Each holds its own panes, columns and open documents; switching never opens or closes anything, a running instrument keeps running.

ViewPostureOn screen
Startyou do not need to know anything yetBooks · a book's text · Knowledge · Assistant
Buildmake a soundDocuments · the file · Inspector · Analysis · Keyboard
Composewrite the musicPatterns · piano roll · Mixer · Keyboard
Performplay the setPatterns (scene launcher) · Mixer · Modulators · Pads · Controller
Hubget and sharethe Hub, edge to edge
Signalsomething is wrongDevices · Activity · MIDI Monitor · Routing · Analysis

Anything else is one click away in each column's picker, and Arrange mode (the topbar toggle) lets you add, pin, rename or save views of your own.

actions:
  - action_id: view.open
    input: { view: build }
    label: "▶ Switch to Build"
  - action_id: view.list
    input: {}
    label: "▶ Every view with its panes and documents"

The topbar — always visible

Across the top: the Transport Widget in the centre (Play, BPM, the Bar.Beat.Sixteenth counter, loop, and the red Rec dot) and a cluster of icon buttons on the right (Master Control, search, AI Assistant). The transport is the global heartbeat — every sequencer and every transport-following DSP wakes up when you press Play. No button for this one; it's already on screen.

Documents — your files

actions:
  - action_id: surface.open
    input: { surface: library }
    label: "▶ Open the Documents panel"

The left rail's file home: OPEN (tabs open right now), PROJECT (every file saved in this project), NEW (spawn a fresh Builder, Faust DSP, or authoring file). Everything you build lives here as a plain file — instruments are documents, not opaque session state.

Patchbay — who talks to whom

actions:
  - action_id: patchbay.toggle
    input: { open: true }
    label: "▶ Open the Patchbay"

The routing matrix: Sources as rows, Sinks as columns, one click per cable. FaustWave never routes anything implicitly — if the Keyboard plays your synth, it's because a cell in this matrix is filled. When something is silent, this is the first place to look.

Sequencer — the step grid

actions:
  - action_id: surface.open
    input: { surface: sequencer-default#roll }
    label: "▶ Open the Sequencer"

A multi-track piano-roll grid driven by a shared Faust master clock (sample-accurate, no JS-timer jitter). Scale-aware highlighting and a diatonic chord palette live here too — § Your first pattern uses both.

Keyboard — play without hardware

actions:
  - action_id: surface.open
    input: { surface: keyboard-default }
    label: "▶ Open the Keyboard"

An on-screen MIDI keyboard. It's a real MIDI Source in the Patchbay — route it to any DSP and click keys. No hardware needed to test a synth.

Master Control — the mixer

actions:
  - action_id: surface.open
    input: { surface: faustwave-bundled/mixer }
    label: "▶ Show Master Control"

The right-pinned strip: one MixerTrack per attached source (gain, mute, solo, sends), the Master FX rack, and the master volume + meter at the top. The "+ ADD AUDIO" button here is how a saved DSP gets a path to your speakers.

Recorder — capture the master

actions:
  - action_id: surface.open
    input: { surface: recorder-default }
    label: "▶ Open the Recorder panel"

Your recordings library — every WAV you capture with the topbar Rec dot, newest first, with in-app preview. Lossless 32-bit float, exactly what the speakers heard.

Knowledge — this book lives here

actions:
  - action_id: surface.open
    input: { surface: knowledge }
    label: "▶ Open the Knowledge Base"

The local knowledge base: search across Faust libraries, node kinds, music theory, and the manual you're reading right now — every shipped book is listed under Installed Packs. Semantic search runs on a local embedding model; nothing leaves your machine.

Command Palette — everything by name

actions:
  - action_id: palette.overlay.toggle
    input: { open: true }
    label: "▶ Open the Command Palette"

Ctrl+K (or ⌘K). Every action in FaustWave is registered under a searchable id — the palette is the fastest route to anything you can't remember the location of. Press Escape to close it and come back.

AI Assistant — the second operator

actions:
  - action_id: chat.panel.toggle
    input: { open: true }
    label: "▶ Open the Assistant panel"
  - action_id: settings.open
    input: { section: ai-provider }
    label: "▶ Set up an AI provider (optional)"

The in-app AI (Ctrl+L) sees the same action registry you do — it can build instruments, route cables, fill patterns, and every move it makes lands in the Activity log for you to audit. It needs a provider (an API key, or a local endpoint like Ollama) — the second button jumps straight to that Settings section. Entirely optional: everything in this manual works without it.

Hub — the community

actions:
  - action_id: hub.open
    input: {}
    label: "▶ Open the Hub"

Publish and install instruments, sample packs, node packs, knowledge books, whole projects. Requires a (free) account for publishing; browsing installed content works offline.

That's the map

Also on the rails, when you need them: Audio Inputs / Audio Outputs (device pick), MIDI (hardware devices), Logs, and the Faust Compiler history. You now know where everything lives — continue to § Your first DSP and start using it.

Try it yourself — the IDE runs in your browser. Open the IDE → Get the desktop app

Text licensed under CC BY 4.0 — Mani Weber / FaustWave. For language models: llms.txt · llms-full.txt

AUDIO · 48k · 48.0ms FAUST · 3 KB · 1171 docs CPU · 8.4% BPM · 120.0 UTF-8 BETA· v0.90.0