Skip to content
atom edited this page Sep 3, 2026 · 1 revision

Frequently Asked Questions

Short answers live here. 🎹 marks practical/musical answers, 🔧 marks technical ones, and ⚠️ marks traps or limits worth noticing.

What does “patch” mean in this Wiki?

Unless qualified, a patch is the complete settings record for one output: START patch, END patch, Morph settings, render/export settings, Drawn data, and relevant JSON context.

A START patch or END patch is one endpoint sound state. Playground edits one endpoint-style state but does not export files directly.

Is FWG only a wavetable generator?

🎹 No. It also creates ordinary samples, drones, pads, hits, transitions, riffs, textures, and resampling material.

Is every exported WAV a good wavetable?

🎹 No. A WAV can be mechanically valid and musically poor as a scanned table, or poor as a table but useful as ordinary audio.

Why are the internal table and window controls both 512?

🔧 v3 uses internal oscillator and Drawn tables containing 512 internal cycle samples, and Source/Result Window controls use inclusive positions 1–512.

512 is a v3 engineering choice, not a claim that 512 internal cycle samples are universally sufficient. See Meditations on the 512-Sample Core.

Older public 0–256 window JSON is migrated by its declared control range.

Does Smooth mean low-pass or soft?

No. It means the controlled, high-yield Bulk profile and the rounded variant of each Generator Family. The actual sound can still be bright.

Are Glitch and Noise separate Bulk presets?

No. They are merged into the public Glitch & Noise preset. Internal source lanes used by that preset are implementation details rather than separate user-facing pools.

What is Absurd?

⚠️ Absurd is the mutually exclusive Bulk Random preset with no musical, audibility, loop-safety, wavetable-frame-coherence, or wavetable sanity checks in its planner.

It may create silent, inaudible, unstable, or extreme files. Ordinary table-safety fallback and finite-file protections remain active.

Does Drawn auto-fix seams?

⚠️ No. v3 keeps Drawn data literal after unavoidable decode/resample operations.

Why can the default Drawn sine omit 512 values?

🔧 Schema 13 gives the exact untouched built-in sine the stable identity default_sine_v1 when no pristine construction is retained. A pristine numeric Drawn construction may instead retain its compact stage-1 recipe and, where present, stage-2 transform and final normalise:true as one pipeline authority; FWG materialises the bounded 512-internal-cycle-sample Float32 table at runtime. After ordinary editing or deliberate flattening, custom Drawn is stored as human-readable Float32 numeric data. Legacy Base64-packed Float32, historical int16_bipolar / signed-int16, and old dual-definition schema-13 Drawn records remain importable.

What does Drawn initialisation metadata mean?

🔧 It records only the most recent file import or generated Input 1 copy that populated the table.

It is not an edit history. Later drawing does not change it, and population provenance is separate from waveform authority. While a pristine schema-13 construction/transform/normalise pipeline is retained, that pipeline is the saved authority and its bounded 512-internal-cycle-sample Float32 table is runtime materialisation. After ordinary Drawn editing or deliberate flattening, the literal 512-internal-cycle-sample table becomes authoritative. An exact untouched built-in sine with no retained construction may use the compact default_sine_v1 representation.

Can I export WAV without JSON?

Not in ordinary Morph/Batch export. WAV and sidecar are produced as a pair.

Do I need the JSON to play the WAV?

No. JSON is for FWG reconstruction, templates, provenance, analysis, and editing.

Do I put FWG JSON in an MPC wavetable folder?

⚠️ No. Keep only WAV file(s) and format.json in the actual library folder. Refer to the official manual section, “To add wavetable content to your MPC”.

Can MPC Wavetable Mode help prepare files for another synthesizer?

🎹 Yes. Its fixed MPC-single-cycle-count × output-PCM-samples-per-single-cycle controls can be a convenient way to create simple, repeatable wavetable geometry for other instruments. The generated format.json and MPC folder layout are specific to MPC, however. Another synthesizer may need only the WAV, or may require different metadata, naming, wavetable-frame counts, or output-PCM-samples-per-cycle limits.

Will you add support for my wavetable synth?

🎹 I'll consider it. My consideration increases dramatically if you can get one of those synthesizers into my hands for testing. Documentation and community reports can justify researching an experimental compatibility profile, but access to the actual instrument makes it possible to test real import/playback behaviour, metadata and filename conventions, supported wavetable geometry, and leave behind permanent regression fixtures for whatever FWG claims to support.

How do Moving and Fixed START-mod-END differ?

🔧 Moving keeps START as modulation source and END as audible carrier while both branches travel through the Morph path; Reverse changes traversal direction only. Fixed applies no parameter interpolation inside either branch; Forward uses START as source and END as carrier, while Reverse swaps those complete roles.

Is SHA-256 a security feature here?

⚠️ No. It is a deterministic sound-design mixing primitive.

FWG uses FWG-SHA256-v1 / named-draws-v1, retains 32 bits per named draw, and generates default tokens from a 2^130 namespace. Under the browser-RNG assumption and uniform token-generation model, those tokens are intended to carry 130 bits of generated uncertainty. The 256-bit digest, 32-bit draw, and 130-bit token namespace describe different parts of the system; none is automatically the entropy, uniqueness, or search hardness of a final patch or WAV.

Scope note: Do not describe FWG as having “256-bit security” or a universal “130-bit security level.” It is an unkeyed reproducibility system with a 130-bit default token namespace and 32 retained bits per path.

Seed text is exact: case, spaces, punctuation, and Unicode representation matter. FWG does not Unicode-normalise seed text, so copy and paste a recorded seed rather than retyping a visually similar form.

SHA-256 was chosen for the first public named-draw contract primarily to avoid a distracting “SHA-1 is broken” argument. It is also a current standard primitive, has no known practical weakness relevant to this construction, and costs essentially the same to implement in the browser as SHA-1.

FWG does not provide passwords, authentication, signatures, secrecy, trusted timestamps, tamper-evident records, or formal zero-knowledge proofs. Browser RNG quality affects honest seed uncertainty and accidental duplication, but post-hoc target construction is a different problem: an attacker can choose candidate seeds directly and still must find one whose archived seed-to-output path satisfies the target.

Are named draws perfectly uniform?

🔧 Not for every possible range. Integer ranges and ordinary choices use one 32-bit value reduced modulo the range size. The result is exactly uniform when the range divides 2^32; otherwise some outcomes receive one additional 32-bit source value.

For any one outcome, the absolute probability error is less than 2^-32, about one part in 4.3 billion of absolute probability. The relative skew can be larger for a very large range, but it remains immaterial to FWG's intended sound-design use. Rejection sampling would change deterministic outputs and is not warranted for a non-security application. See Randomisation and Seeds.

Does a matching JSON prove when or how the sound was created?

⚠️ No. It demonstrates that the disclosed recipe can reproduce the FWG output under the identified publicly archived implementation. JSON is editable. FWG records created_utc, but it does not sign the record or obtain a trusted timestamp. Historical provenance needs corroborating records such as project files, backups, cloud-storage/version history, version-control history, publication, transfers, or a documented chain of custody.

For most users, ordinary cloud, project, backup, publication, and transfer metadata will be the practical solution. Users with specialised cryptographic or forensic requirements can additionally hash, sign, or externally timestamp the final WAV/JSON pair or package without changing FWG. See Authenticating and Timestamping FWG Outputs.

That limitation concerns history and authentication. It does not make post-hoc construction trivial: starting with a fixed arbitrary target and producing a seed/recipe that regenerates it is the inverse problem, while starting with a disclosed seed and verifying the output is easy.

What if two producers independently receive the same generated seed?

🔧 With healthy uniform 130-bit generation, any duplicate among one million seeds has a birthday probability of only about 3.7 × 10^-28; the 50% point is about 4.34 × 10^19 generated seeds. A defective RNG could make repetition more likely.

Even then, identical output also requires the same version and other effective inputs. Both results must then be selected, used, distributed, noticed, and important enough to justify a dispute. If the routes were genuinely independent, both can still be source-blind. FWG cannot decide priority, ownership, publication history, or legal significance.

Why not append a timestamp to every generated seed?

🔧 It has been considered. A timestamp suffix could separate repeated RNG output at different times and bind a claimed seed-generation time into the seed-to-output mapping. It would not authenticate the clock or prove historical possession, and seed-generation time is not necessarily file-creation time: FWG can use multiple seeds and a batch can produce outputs over several minutes.

Current JSON already records per-result created_utc. For now FWG retains the plain 26-character, 130-bit generated token. Timestamped seeds remain an openly documented design option rather than current behaviour.

What is “proof of zero knowledge”?

⚠️ It is a term coined here as a deliberate inversion of “zero-knowledge proof.” A formal zero-knowledge proof establishes possession of hidden knowledge without revealing it: loosely, proof with zero disclosed knowledge. FWG instead reveals and audits a qualifying recipe to show that specified prior-work material was absent from the audited generator path's disclosed inputs: proof of zero knowledge. The more precise expanded term is “proof of zero prior-work knowledge.”

Scope note: This is project-specific wordplay, not a cryptographic claim, algorithm, protocol, or formal proof system. The source-blind computational route can be verified directly; identifying that route as the historical creation event requires ordinary provenance. Absence from FWG's inputs also does not establish a human curator's motives or knowledge.

For a fully random, generator-only patch, the JSON/WAV record can disclose the seed-derived recipe, reproduce the sound, and show that the earlier work was excluded from the generator's inputs. When the patch itself produces a riff, the same record can account for the generated sequence as well as the timbre.

FWG is not AI. It has no trained model, weights, latent space, training corpus, or body of prior works from which material can be retrieved, memorised, or leaked.

The claim applies only to the reproducible FWG computation and the features attributable to it. Drawn or user-supplied waveform data, later hand edits, manually selected Morph/render behaviour, downstream processing, target-guided external selection, or later use of the exported output may fall partly or wholly outside that proof.

This is speculative technical commentary, not legal advice, and assumes no jurisdiction. See Proof of Zero Knowledge: Random Patch Generation and Forensic Evidence.

What is Nominal Frequency?

🎹 It is Root Frequency after applying a patch's static Pitch Offset, before FM or other time-varying modulation. Playground, Morph, and Explorer show it as Nominal freq beneath Pitch Offset. Double-click the value—or focus it and press Enter—to enter a target frequency in Hz and have FWG calculate the required Pitch Offset.

The Pitch Offset & Nominal Frequency tool in the Calculators tab can instead solve any one of Root Frequency, Pitch Offset, or Nominal Frequency from the other two without changing application state.

Can Filter Cutoff go below 20 Hz?

🔧 Yes. The ordinary slider and Explorer mini-graph are optimised for 20 Hz–20 kHz, but typed Cutoff values extend down to 0.01 Hz for expert and LFO-rate filtering. Values outside the normal visual range remain authoritative in audition, rendering, JSON, and Explorer. Very slow filters may need long auditions or exports to settle.

Does the source filter work in START-mod-END?

🔧 Yes. The effective source is filtered before it becomes the external modulation signal. Phase, FM, and PWM inject that signal at the carrier stage appropriate to the operation; AM and Ring Modulation use completed filtered endpoint outputs. The carrier retains its ordinary output filter. Fixed Reverse swaps the complete source/carrier roles.

Why does a high Pitch Offset change with WAV output sample rate?

⚠️ It can push oscillator traversal above Nyquist, producing sample-rate-dependent aliasing.

Are RAM slots saved after reload?

No. They are current-session scratch memory.

Which Bulk pool should a beginner use?

🎹 Smooth for broad controlled material; Classic Waveforms for the cleanest reference; Cycle-coherent random for broader wavetable-oriented sources.

Why not document every hidden mode?

Hidden compatibility identities are not ordinary user-facing features. The manual describes them only where they affect import, deterministic reconstruction, or compatibility.

Does the newest FWG reproduce every old FWG file exactly?

⚠️ No. Supported older JSON is imported on a best-effort current-semantics basis with minimal special accommodation. Exact historical behaviour belongs to the archived executable identified by the sidecar's application version. New sidecars record live and version-derived archive application URLs. Import UI displays only FWG GitHub/GitHub-Pages links that pass a strict allowlist; arbitrary URLs from imported JSON are not trusted for display.

Is a 256-internal-cycle-sample schema-12 Drawn waveform a special compatibility format?

🔧 Yes. Public v2.9c/schema-12 used a periodic Drawn table containing 256 internal cycle samples. v3 migrates that historical table to 512 with cyclic linear 2× interpolation, preserving every old sample exactly at an even destination index. This compatibility rule is separate from new schema-13 linear / steps authoring semantics.

What do Drawn linear and steps mean?

🔧 They define how a schema-13 numeric Drawn sequence whose length is not exactly 512 maps into the fixed 512-internal-cycle-sample Drawn table. linear connects evenly spaced control points from the first stored value to the last. Bare steps / steps=0 hold each supplied value exactly for an equal share of the cycle, so [1, -1] can produce a mathematically exact square wave.

Nonzero steps=N accepts finite signed floats in [-1,+1], keeps each authored state at the beginning of its ordinary Steps interval, and is deliberately a Steps-centred reciprocal spelling of intrinsically wrapped signed Power: where 1/N is finite, steps=N is exactly pow=1/N with wrap:true. Thus steps=-0.05 is wrapped pow=-20, while steps=+1 and steps=-1 both become linear. Exact steps=0 has no finite-Power equivalent.

Sequences longer than 512 authored values are accepted only for non-wrapped linear, where FWG treats them as a dense continuous contour and uses weighted-bin reduction rather than dropping most values. steps, wrapped linear, and the mathematical construction modes accept at most 512 authored values. Steps is intrinsically cyclic and therefore uses effective wrap:true; wrap:null means the ordinary default false only for topology-sensitive local modes where wrap is optional. Missing resample_mode defaults to linear.

See Drawn Waveform for the practical workflow and Drawn Mathematical Reference for the complete mode table.

What are Drawn Cardinal, Fourier, Haar and Walsh for?

🔧 The Cardinal family is stage-1 neighbour-aware cubic reconstruction from authored values: cardinal uses ordinary proportional admission if the sampled reconstruction exceeds ±1, cardinal-limit limits shared tangents so the continuous cubic stays inside the rails, and cardinal-clip deliberately hard-clips excursions.

Fourier can be used either as a direct periodic stage-1 reconstruction or as an optional stage-2 transform of the completed 512-internal-cycle-sample Drawn waveform. Haar and Walsh-Hadamard are transform-only. The shared transform selector language uses N for one component, -N for that component with coefficient polarity inverted, :B, A:, A:B, and comma unions. Fourier exposes components 0…256, Haar bands 0…9, and Walsh sequencies 0…511. A syntactically valid Fourier order that is unavailable in a smaller direct sparse Fourier input contributes zero rather than causing an import failure. See Drawn Mathematical Reference.

Why does standalone Export Drawn flatten a mathematical Drawn construction?

🎹 The mathematical construction is a formula and set of anchors supplied by the user. If you want to preserve that formula exactly for later reuse, keep the original formula JSON or a full sidecar while that pristine construction remains its authoritative Drawn representation. Standalone Export Drawn has a different purpose: it exports the current materialized 512-internal-cycle-sample waveform so the rendered result of the formula can be edited point by point. Once you begin editing those rendered points, the point data—not the original formula—is the waveform you are editing.

Fractured Wavetable Generator

Start here

🎹 Workspaces

🎹 Build and shape sounds

🎹 Make and keep results

🎹 Scanning and custom trajectories

Help and reference

🔧 Advanced / technical reference

Clone this wiki locally