project / audio software

experimental

FF00 Studio

A local-first music-production environment for Waveform, isolated VST3 hosting, deterministic audio tools, and a replaceable local language model. Not ready for use yet.

  • Rust
  • C++20
  • JUCE
  • VST3
  • Tauri 2
  • Waveform
  • Ollama

FF00 Studio is the flagship program I am beginning now: a local music-production environment that can inspect a session, discuss direction, preview reversible ideas, and apply only the changes I approve. The first host is Waveform 14.0.49; the first deeply supported synth is Surge XT; local reasoning starts through Ollama but remains replaceable.

It is not ready for musicians to install or use yet. The current work is a pre-alpha engineering foundation, not a release announcement.

Why it exists

The goal is not an unattended DAW robot. I want a system that understands the available tools without inventing capabilities, can work with reference stems without uploading them, and can turn language such as “more metallic” or “shorter” into an inspectable proposal rather than a mysterious mutation.

FF00 Studio separates that work into four boundaries:

  • FF00 Rack: the Waveform-facing VST3 and safe audio fallback
  • worker: isolated child-plugin and DSP processing outside Waveform
  • Master: intent, session context, analysis, previews, and local-model access
  • deterministic core: capability truth, graph legality, state revisions, validation, and action reporting

The language model may reason and propose. It does not get to claim that a plugin parameter exists, that an operation succeeded, or that a project is safe to rewrite.

What exists now

  • a Rust workspace for authority, protocol, graph, latency, and sidecar contracts
  • a JUCE VST3 Rack with a separate development identity and bounded state
  • one bundled worker per retained Rack using shared-memory audio/MIDI and named-pipe control
  • latency-aligned dry fallback when worker output misses its deadline
  • fixed-block component tests from 64 through 1024 samples
  • a Tauri 2 Master shell
  • a strict loopback-only Ollama endpoint check
  • seven passing Rust tests plus documentation and source-contract validation
  • a pinned JUCE 8.0.13 baseline and a Windows release build of the Master
  • an AGPL-3.0-or-later legal and contribution baseline matching the FF00 family

The Rack has passed its first Waveform load/save/reopen and worker-lifecycle gate. One worker was observed per retained Rack; closing the edit cleaned them up; reopening restored a fresh worker; and Waveform survived deliberate worker termination. Exact host PDC, automatic restart, callback allocation proof, offline behavior, child-plugin hosting, Surge control, transcription, semantic edits, and mix/master assistance remain open work.

Milestone map

Milestone Scope Current state
0 Contracts, feasibility harnesses, dependencies, legal and safety boundaries Foundation compiled; Waveform script inventory remains open
1 Transparent Rack load, state, and Waveform capability proof Core host proof passed; script capability matrix remains open
2 Shared-memory worker bridge, reported latency, supervision, and fallback Host lifecycle checkpoint passed; measured PDC, automatic restart, allocation proof, ACLs, and offline behavior remain open
3 Surge XT hosting, plugin state, editor, parameters, and constrained graph Planned
4 Master discovery, local protocol, and Discuss / Preview / Apply authority Planned
5 Atomic session sidecar, references, generated assets, and read-only Waveform context Planned
6 Ollama provider, PluginKnowledge, and curated Surge semantic operations Planned
7 Basic Pitch, analysis, MIDI, drums, one-shots, and optional UVR stem import Planned
8 Mix/master measurements, packaging, network validation, and staged public alphas Planned

Release direction

The first public alpha is deliberately narrower than the final vision: Rack, worker isolation, Surge, a constrained graph, Master control, explicit authority, save/reload, and recovery. Creation tools, reference assistance, and mastering follow only after that foundation survives real host tests.

The repository will become public when the implementation and documentation are sanitized enough to make the public record useful. Until then, this page is a development marker, not a download link.