-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Start with the symptom. 🎹 marks practical sound/workflow fixes, 🔧 marks technical state or file-format issues, and
🎹 Check:
- browser volume and system output;
- FWG Volume;
- whether another tab change muted audition;
- whether the AudioContext needs a user gesture;
- whether
ESCstopped playback; - whether MIDI channel is Off;
- whether the current table collapsed and triggered safety;
- browser console and visible error banner.
Press Reset in Playground. The fresh Classic Waveforms / Wavetable Type 0 patch auto-auditions; if needed, set Topology = 0 for a sine and move Root Frequency to a comfortable audible pitch.
A render shorter than one complete cycle at the root frequency may capture only a constant or nearly constant part of the waveform. Whole File DC Removal turns a perfectly constant fragment into digital silence, and Peak Normalisation cannot restore it. This is a valid expert edge case rather than necessarily a DSP failure. Longer renders can also appear flat or silent because of very low frequencies, low filter Cutoff, windows, modulation, attenuation, collapsed states, or other extreme settings. See Render and Export Settings.
- While continuously adjusting an endpoint scalar control, FWG keeps one bounded previous valid table for that endpoint. If the next coordinate collapses, the visualiser/audition can hold that table and reports using previous valid table.
- Structural replacements — such as changing generator/variant/routing/Wavetable Type, applying a preset or Reset, loading another patch, or replacing the entire Drawn source with Copy/Reset/Clear/Undo/Import — clear that standby first. If the new structure collapses, FWG reports using safety square. Pointer drawing itself remains continuous.
- During an ongoing Scanning/Morph audition or render, START, END, and Morph keep separate bounded standbys. Invalid-after-valid uses the previous valid table; invalid-before-any-valid uses the safety square.
Neither substitute changes the stored patch. See Loop Safety and Table Safety.
🎹 Open the search up:
- Smooth → Edge.
- Edge → Glitch & Noise.
- use Unrestricted.
- enable random Morph mode.
- increase batch size after confirming the setup.
🎹 Pull it back:
- Glitch & Noise → Edge or Smooth.
- use Classic Waveforms.
- use Cycle-coherent random.
- disable random Morph mode.
- select fewer pools.
🎹 Check:
- fixed-endpoint START Phase-Modulates END;
- identical or near-identical endpoints;
- Curve Amount concentrating movement outside the heard region;
- collapsed windows;
- insufficient render length;
- destination wavetable Position not being modulated.
🎹 Load the JSON into Morph.
Audition START/END separately, then change one stage at a time:
- endpoint patch;
- routing;
- Morph mode;
- curve;
- cycle stepping;
- cleanup;
- sample rate.
🎹 Explorer Export does not make a result current.
Load the numbered result sidecar, then continue or Copy To Morph.
🎹 Expected:
- recipe = pre-batch source/rules;
- numbered sidecar = rendered result.
A recipe may be renamed and kept as a personal preset; FWG identifies it from JSON content, not the filename.
🔧 Confirm:
- same compatible code;
- same seed;
- same pools/rules;
- same current source;
- same count/direction;
- same render settings;
- same Morph/FFT choices.
Successful batches advance the visible seed.
🔧 The entire decoded duration is deterministically resampled to 512 internal cycle samples.
Trim/edit the source before import when only one region is desired.
Fourier, Haar, and Walsh can deliberately rebuild the completed waveform from selected components, but they are creative transforms, not automatic seam/DC/spike repair. Downstream Window, filter, and export cleanup remain separate tools.
🔧 Direct sparse Fourier may physically contain fewer orders than the public 0…256 selector domain. A valid requested order that is unavailable in that particular sparse input contributes zero rather than causing an import error.
🎹 That can be completely correct. The -clip sibling differs only when the selected reconstruction overshoots ±1 before Drawn admission. If no overshoot occurs, ordinary and -clip outputs are identical.
🔧 Expected. Haar uses fixed dyadic boundaries, so moving a feature across half/quarter/eighth/etc. boundaries can redistribute energy between partial Haar bands. Full Haar reconstruction remains exact; partial selection is alignment-sensitive.
🔧 Final Drawn normalise can apply a very large uniform gain when a meaningful waveform peak is tiny but still above the 1e-9 numerical-dust floor. Values at or below that floor are left alone.
🔧 Check the public domain for the selected basis: Fourier 0…256, Haar 0…9, Walsh 0…511. Negative terms are singleton coefficient inversions; negative range endpoints are not valid selector syntax.
🔧 Check:
- target firmware/content supports User Wavetables;
- exact
Oscillators/Wavetables/<LibraryFolder>/path; -
format.jsonbeside WAV files; - no nested folder inside the library;
- no sidecars/README inside it;
- WAV was not edited after packaging;
- output PCM sample count matches manifest geometry.
🎹 Move/modulate Position. One held wavetable frame behaves like an ordinary oscillator.
🎹 Try:
- increase XFade;
- slow/reduce Position modulation;
- choose Smooth/Classic/Cycle-coherent material;
- inspect whether roughness is deliberate.
Direct low-rate rendering is not equivalent to rendering high then converting. Choose by listening in the destination workflow.
🎹 Typed Cutoff can reach 0.01 Hz. Very low Cutoff and high Resonance may require many seconds or oscillator cycles to settle, so a short audition or export can be dominated by startup behaviour. Increase the audition/export length and compare with lower Resonance.
The slider and Explorer mini-graph remain clipped to their normal 20 Hz–20 kHz range even when an expert typed value below 20 Hz is active.
🎹 Use Whole File or Off.
Per Cycle follows nominal root blocks, not every audible modulated period.
🔧 Reduce:
- duration;
- sample rate;
- bit depth;
- file count;
- direction count;
- MPC geometry;
- FFT anchors.
Then split the job.
🔧 A downloaded file:// build and the hosted HTTPS build are different browser origins and may have separate saved settings. Confirm which URL is open. Private mode, site-data clearing, browser policy, or moving/renaming a local file may also create a fresh storage context.
FWG prefers valid local storage and uses a bounded cookie only as fallback. A malformed or obsolete cookie should not override a valid current local-storage snapshot.
🔧 Use a current Chromium/Brave build with DecompressionStream support. In an ordinary session, compressed input is limited to 1 MiB and decoded JSON to 512 KiB. Render Diagnostics, enabled with the ?render_diagnostics=a URL query parameter, deliberately bypasses those byte-size guards so large FWG support sidecars can be re-imported; schema/content validation still applies. Decompress externally and import ordinary .json if browser gzip support is unavailable.
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