-
Notifications
You must be signed in to change notification settings - Fork 0
Browser Requirements and Performance
FWG is a self-contained browser application. The primary v3.0 target is a current desktop Brave/Chromium-family browser. Other current standards-based desktop browsers may work, but do not have the same release-test coverage.
For ordinary use you need Web Audio for auditioning, enough memory for the requested render, and permission to import/download files.
A downloaded local HTML file and the hosted HTTPS page are different browser origins. They can therefore have separate saved settings.
If settings seem to disappear after switching between hosted and local FWG, first check whether you simply changed origin. Private browsing, site-data clearing, or administrator/browser policy can also remove or disable stored state.
Depending on the feature, FWG uses standard browser APIs for:
- Web Audio;
- Web Crypto hashing/default seed generation;
- file import/download;
- local browser storage;
- gzip compression/decompression;
- Web MIDI where available;
- browser audio decoding for Drawn import.
Optional API failure does not necessarily disable the whole application. Plain .json, for example, remains importable if gzip decompression is unavailable.
🔧 Persistent settings normally use localStorage; a small cookie copy is fallback only when local storage is unavailable or invalid.
Persistence is browser/origin-specific, not a cloud account or project database. RAM save slots and the custom Scanning recipe library are intentionally session-only and disappear on reload.
Current hard guards include:
- maximum 24,000,000 output PCM samples for one render;
- maximum 768 MiB projected working memory for one render;
- separate bounded batch-retention/peak limits.
A job can still feel heavy below those limits because machines, other tabs, browser memory pressure, OS scheduling, and thermal behaviour differ.
Reduce one or more of render duration/cycle count, WAV output sample rate, Bulk/Explorer iterations, Forward+Reverse count, MPC single-cycle count, or visualiser Animation FPS.
Morph, Bulk Random, and Explorer render asynchronously and yield to the browser between chunks.
During a long job you should still be able to see status/progress, switch browser tabs, interact with safe controls, and cancel the owning batch with ESC.
Cancellation is cooperative rather than an OS process kill, so a small amount of already-scheduled work may unwind before the status settles.
See Keyboard Shortcuts.
Animated waveform/spectrum views can consume significant CPU.
If live editing feels sluggish:
- lower Animation FPS;
- collapse unused visualisers;
- use a static/Base table view;
- stop unnecessary audition audio;
- close other CPU-heavy tabs.
Collapsed visualisers skip hidden painting and repaint current state when reopened. See Visualisers.
🎹 Test a search with a small batch first. Confirm that the settings are producing the kind of material you want, then increase the count. This saves both rendering time and listening time.
🔧 Ordinary JSON import is limited to:
- 1 MiB compressed input;
- 512 KiB after decompression.
With Render Diagnostics enabled through the ?render_diagnostics=a URL query parameter, FWG deliberately bypasses these byte-size guards because its own diagnostic sidecars can be larger. Schema/content validation still applies.
.json.gz import uses browser DecompressionStream; plain .json remains importable.
Web Audio depends on the browser/audio device and may initially require a user gesture.
Web MIDI depends on browser support, permission, hardware, and OS policy. MIDI is optional for ordinary mouse/keyboard use.
First distinguish a genuinely stuck page from a large job that is still progressing.
Check whether:
- progress/status text is changing;
-
ESCcancels the active job; - the browser task manager shows high CPU rather than a crashed tab;
- the requested output PCM sample count or batch size is unusually large.
If an ordinary in-limit operation reproducibly hangs or throws an error, see Troubleshooting and Render Diagnostics and Support.
🔧 Offline Morph work is divided into adaptive chunks and yields to the browser. Bulk/Explorer status publication is throttled so UI updates do not dominate DSP. Completed batch entries are not all retained indefinitely as uncompressed audio, and render caches are bounded.
Those mechanisms are implementation details. Treat the documented limits and cancellation behaviour—not a particular chunk size/cache layout—as the public contract.
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