Expand description
§auracle-grammar
The patch prior: a typed probabilistic context-free grammar (PCFG) over
quiver-backed synthesizer patch terms, plus the compiler from sampled terms
to playable quiver Patch graphs.
The genome is a term (term::PatchTree), not a raw patch graph. The
Audio/Mod sort distinction is enforced by the Rust type system — ill-sorted
terms are unrepresentable — and the grammar (prior::PatchGrammarPrior)
is a fugue generative program, so all three levels of evolution live in one
representation:
- node settings → leaf parameter sites (
F64/Usizedraws per module) - connectivity → interior structure (chains, mix, modulation slots)
- node set → which module productions fire
PatchTree implements fugue-evo’s genome traits with a
canonical trace encoding that is the grammar’s address scheme, so
subtree mutation/crossover are generic trace moves and tempered SMC / typed
MH come for free.
§v1 constraints (the reference: The genome, The vetting gate)
- Acyclic terms only — no feedback combinator productions. Modules with internal feedback (delay, chorus) are allowed.
- Curated palette: Vco, Supersaw, NoiseGenerator, Wavetable, KarplusStrong, FormantOsc, Svf, DiodeLadderFilter, ParametricEq, Wavefolder, Distortion, Bitcrusher, DelayLine, Chorus, Reverb, Phaser, Flanger, Tremolo, Vibrato, Granular, PitchShifter, RingModulator, Compressor, Ducker, NoiseGate, Vocoder, Adsr, Vca, Lfo, SampleAndHold, SlewLimiter, EnvelopeFollower.
- Every compiled patch gets the mandatory voice stage — amp ADSR → VCA → Limiter → StereoOutput — and bounded parameter mappings (resonance, feedback), so the grammar cannot express the most degenerate settings.
Re-exports§
pub use compile::compile;pub use compile::CompiledVoice;pub use compile::ParamHandle;pub use compile::ParamMap;pub use describe::describe;pub use describe::RackDescription;pub use diff::tree_diff;pub use diff::DiffEntry;pub use edit::set_param;pub use edit::EditError;pub use edit::ParamValue;pub use genome::in_domain;pub use genome::PARAM_DOMAIN;pub use mutate::apply_struct_op;pub use mutate::validate_tree;pub use mutate::ModKind;pub use mutate::NodeKind;pub use mutate::StructError;pub use mutate::StructOp;pub use presets::preset_bank;pub use presets::presets;pub use presets::Category;pub use presets::Preset;pub use presets::CATEGORIES;pub use prior::PatchGrammarPrior;pub use term::AudioNode;pub use term::ModNode;pub use term::PatchTree;pub use term::Uid;
Modules§
- compile
- Compile a
PatchTreeterm into a playable quiver [Patch]. - describe
- Rack description: a frontend-facing view of a
PatchTreeas modules, knobs, and wires. - diff
- Structural/parameter diff between two patch trees, in trace-address terms.
- edit
- Address-based knob edits: turning a panel knob is a write at a trace address, so hand edits and MH proposals move through the same encoding and cannot drift from the grammar.
- genome
PatchTreeas a fugue-evo genome.- mutate
- User-driven structural edits: create, delete, replace, and rewire nodes in a patch tree — the “reconnect anything” surface of the workbench.
- presets
- Hand-designed preset patches: a starting vocabulary for the bank, and a fast way to seed the taste model (“keep the ones you like”).
- prior
- The patch prior: a typed PCFG over
PatchTreeterms as a fugue program. - term
- The patch term: a typed tree over the v1 module palette.