-
Notifications
You must be signed in to change notification settings - Fork 0
Signal Path and Core Concepts
This is the technical map of how FWG assembles a complete patch. For hands-on use, start with Start Here; use this page when you need to know where a control sits in the signal path or which stage owns a behaviour.
A patch, unless qualified, is the complete settings record for one output. It includes:
- START endpoint patch;
- END endpoint patch;
- Morph Render Mode, curve, FFT anchors when applicable, and cycle-stepped state;
- pitch, render, cleanup, and MPC/export settings;
- Drawn waveform data;
- relevant random-origin, import, and export context stored in JSON.
A START patch or END patch is one endpoint sound state. Playground edits one endpoint-style state and can copy it to START, END, or both, but Playground does not export WAV/JSON files directly.
A Morph patch is a complete patch built around a START→END relationship. When discussion is limited to sound construction, the term may focus on START, END, and Morph settings; the JSON sidecar also preserves render/export settings.
Each START or END patch contains:
- Generator Family and Smooth/Crunchy variant;
- three family-specific generator controls;
- four generated source taps plus the Drawn source;
- Input 1 and Input 2 routing;
- Wavetable Type;
- FM range and depth;
- PWM;
- Ring Mod;
- Pitch Offset;
- Source Window;
- Result Window;
- filter type, cutoff, and resonance;
- Drawn waveform data and optional initialisation context.
Generator Family + three controls
↓
Generated taps A / B / C / D
↘
Drawn source
↓
Input 1 + Input 2 routing
↓
Source Window
↓
Wavetable Type
↓
Result Window
↓
ordinary table range finalisation
↓
Table Safety
↓
Phase-Coherent registration (when enabled)
↓
Oscillator playback
↓
FM / PWM / Ring Mod
↓
Filter
↓
Morph strategy or endpoint branch relationship
↓
DC removal / normalisation / headroom
↓
WAV + JSON
Some Morph Render Modes restructure this path. Crossfades render complete endpoint branches before blending. Wavetable modes combine tables before one oscillator path. START Phase-Modulates END modes assign START and END explicit source/carrier roles: the effective source is filtered before its bipolar output drives carrier phase, and the carrier retains an independent audible-output filter.
For ordinary generated endpoint tables, full and partial Windows share one extrema-to-rails finalisation: the current minimum maps to −1 and maximum to +1 before Table Safety and Phase-Coherent registration. This is not arithmetic-mean DC removal; direct literal Drawn and literal-level Wavetable Types have their own preservation rules.
The simplified final cleanup box does not show every internal Morph-table operation. Current Wavetable one-oscillator modes centre and peak-normalise constructed intermediate tables. Current Spectral / FFT modes centre and peak-normalise before analysis and after reconstruction. These internal operations occur before the user-selected final DC Removal and Normalisation stage.
v3 uses an internal oscillator table and a Drawn table, each containing 512 internal cycle samples.
Source and Result Window controls use inclusive positions 1–512:
- 1→512 selects the complete cycle;
- Start greater than End wraps forward through 512 and resumes at 1;
- equal positions remain legal and may invoke table safety when the effective material collapses.
Older public 0–256 window JSON is migrated by its declared control range.
For why 512 internal cycle samples are a v3 design choice rather than a universal wavetable-synthesis optimum, see Meditations on the 512-Sample Core.
Some values interpolate naturally, such as generator controls, modulation depth, cutoff, or Pitch Offset.
Other values are categories, such as Generator Family, variant, tap, Wavetable Type, filter type, or Morph Render Mode. Different Morph strategies handle categorical changes differently.
A generated table may become unusable because it is non-finite, silent, all-DC, nearly flat, or impulse-like.
Table Safety is applied at three complete structural outputs: START Patch, END Patch, and Morph engine. Each fresh structural stream begins with a deterministic safety-square standby. A meaningful structural table replaces its own standby; a collapsed table reuses that standby without replacing it.
For live endpoint editing, continuous scalar changes can retain one bounded previous-valid table so a slider crossing a collapsed coordinate can hold the last meaningful result. Structural replacements clear that standby first. For Scanning/Morph audition and offline rendering, previous-valid state remains bounded to the current traversal: invalid-after-valid uses the previous valid table; invalid-before-any-valid uses the safety square. Internal helper tables never update these structural standbys.
The stored endpoint and complete patch remain unchanged.
The shared root frequency controls render planning, including Cycles duration, Cycle-stepped boundaries, and Per Cycle cleanup blocks.
Nominal freq is the endpoint oscillator rate after static Pitch Offset and before FM or other modulation. Playground, Morph, and Explorer display it beneath Pitch Offset and allow it to be edited inversely as a target Hz value.
FM, Pitch Offset, and START Phase-Modulates END can make audible periods differ from root timing. This distinction matters when choosing cleanup, WAV output sample rate, filter Cutoff, or wavetable geometry.
Documentation rule: The executable code is authoritative. This Wiki describes the supported Fractured Wavetable Generator v3.0 contract and workflows.
- Generator Families
- Classic Waveforms
- Classic Split
- Drawn Waveform
- Drawn Wave-Shape Recipes
- Source Taps and Routing
- Wavetable Types
- Modulation and Filter
- Pitch, MIDI, and Pitch Offset
- Source and Result Windows
- Visualisers
- Morph Render Modes
- Morph Curve and Cycle Stepping
- Phase-Coherent Mode
- Loop Safety and Table Safety
- Creating Wavetables
- Creating Samples, Drones, Hits, Transitions, and Multisamples
- MPC Wavetable Mode
- Installing and Auditioning on MPC
- Render and Export Settings
- Auditioning, Curation, and Building a Personal Library
- Saving, Loading, and JSON Sidecars
- Sharing and Cleaning JSON Sidecars
- Randomisation and Seeds
- Keyboard Shortcuts
- Browser Requirements and Performance
- Troubleshooting
- FAQ
- Glossary
- Compatibility and Versioning
- Version 3 Release Notes
- Drawn Mathematical Reference
- Signal Path and Core Concepts
- Meditations on the 512-Sample Core
- Scanning Generator Wrapper Architecture
- Deterministic Randomisation — Technical Reference
- Render Diagnostics and Support
- Proof of Zero Prior-Work Knowledge and Forensic Evidence
- Authenticating and Timestamping FWG Outputs
- License, Provenance, and Outputs