-
Notifications
You must be signed in to change notification settings - Fork 0
Meditations on the 512 Sample Core
FWG v3 constructs its internal oscillator and Drawn tables using 512 internal cycle samples.
Is that enough?
Enough for what?
Those are different questions.
Some wavetable synthesizers use 2048 PCM samples per wavetable frame. Some support 4096 PCM samples per wavetable frame. Some use 256 PCM samples per wavetable frame. Some accept several wavetable-frame sizes. Some interpolate heavily between wavetable frames; some expect intermediate wavetable frames to be supplied explicitly. Some playback engines go to considerable lengths to suppress aliasing. Other instruments are valued precisely because they do not.
FWG v3 uses 512 internal cycle samples. That is an engineering choice for this version, not a universal limit or a claim that every synthesis problem has the same ideal cycle-sample count.
For the sound-design use cases considered by FWG's developer, 512 internal cycle samples are enough for v3. That is a personal engineering judgement informed by particular musical interests, experience, intended uses, computational costs, and listening. Someone with different goals may reasonably reach a different conclusion.
No claim is made that 512 is enough for everyone. The useful questions are what 512 internal cycle samples constrain, what they enable, what a larger internal cycle table would actually buy, and what enough is supposed to mean in a particular use.
🔧 Wavetable synthesis has unusually overloaded terminology.
Words such as sample, frame, cycle, wave, table, and resolution can mean different things in different file formats, synthesizers, signal-processing discussions, and manufacturers' documentation.
Those nouns are therefore qualified wherever the distinction matters.
For this page:
- an internal cycle sample is one of the 512 amplitude values in an FWG internal oscillator or Drawn cycle;
- an output PCM sample is one amplitude value written to an FWG mono WAV;
- a PCM sample frame is an audio-file term for the simultaneous channel sample or samples at one instant; one PCM sample frame in a mono FWG WAV contains one PCM sample;
- a wavetable frame is one discrete waveform state intended to occupy one position along a destination wavetable;
- a nominal root cycle is one period at FWG's Root Frequency, used for render planning and cycle boundaries;
- the WAV output sample rate is the selected number of PCM sample frames per second, such as 44.1, 48, 96, or 192 kHz;
- the internal-cycle point count is the number of independently stored sample positions around an FWG internal cycle;
- wavetable-axis detail concerns how many distinct waveform states are supplied, how they are distributed, and what changes between them.
Other software and hardware may use the same nouns differently.
Serum, for example, calls a single-cycle subtable within a wavetable a frame. Other synthesizers may call essentially the same object a wave or waveform. In ordinary PCM terminology, sample frame means something else.
FWG terminology is intended to make FWG documentation internally clear. It is not an attempt to impose one vocabulary on the rest of wavetable synthesis.
A broader terminology audit belongs in the Glossary.
There is an important philosophical difference between sound reproduction and sound synthesis.
In sound reproduction, it is often meaningful to ask which representation more faithfully preserves an original signal. A wider reproduced bandwidth, lower unwanted distortion, lower noise, or finer amplitude precision can make a result objectively closer to the source being reproduced.
FWG is primarily a sound-synthesis tool.
There may be no original waveform that the generated sound is supposed to reproduce.
Two generated waveforms can be measurably different without one of them being universally better. One representation may permit waveform structure that another cannot independently specify. One may preserve more high-frequency content. One may have less aliasing. None of those observations, by itself, decides which sound should exist.
In synthesis, limitations themselves are often the desired result.
Aliasing may be the sound. Quantisation may be the sound. A discontinuity may be the sound. A stepped wavetable scan may be the sound. A crude transition, clipped contour, narrow spike, broken periodicity, or obviously digital artefact may be exactly why a patch works.
A user trying to approach the smooth movement and warmth associated with a classic analogue synthesizer may regard stepping, discontinuities, and audible digital aliasing as defects.
A user constructing a cold, broken, glitchy digital soundscape may deliberately seek the same behaviour.
What is wrong in one context may be perfect in another.
There is no universally One Right Answer™ because there is no single artistic intention.
🔧 A periodic waveform represented by 512 equally spaced internal cycle samples has a finite number of independently specifiable positions around that cycle.
There is a useful table-domain analogue to the ordinary Nyquist limit.
If a periodic table contains N equally spaced internal cycle samples and is traversed once per oscillator period at fundamental frequency f₀, its independent discrete harmonic information extends to approximately:
(N ÷ 2) × f₀
For a 512-sample internal cycle:
approximately 256 × f₀
The Nyquist-bin edge case has special mathematical properties, so this should be understood as an approximate description of independent table-domain harmonic capacity rather than a promise of 256 completely unrestricted harmonics.
The larger point is simpler: a finite internal cycle table cannot independently specify unlimited within-cycle detail.
| Internal-cycle point count | Approx. table-domain harmonic ceiling | Ceiling at a 20 Hz fundamental | Fundamental where ceiling reaches ~20 kHz |
|---|---|---|---|
| 256 | 128th | 2.56 kHz | 156.25 Hz |
| 512 | 256th | 5.12 kHz | 78.125 Hz |
| 1024 | 512th | 10.24 kHz | 39.0625 Hz |
| 2048 | 1024th | 20.48 kHz | 19.53125 Hz |
| 4096 | 2048th | 40.96 kHz | 9.765625 Hz |
This helps explain why some wavetable formats use 2048 PCM samples per wavetable frame, particularly when bright bass waveforms are important.
At a 20 Hz fundamental, a 512-sample internal cycle cannot independently specify arbitrary table-domain harmonic structure all the way to 20 kHz. A 2048-sample internal cycle approximately can.
For a more extreme design built around a 10 Hz fundamental, a 2048-sample internal cycle reaches only about 10.24 kHz in that same sense. If the purpose is to construct a very low fundamental together with independently specified ultrasonic harmonic content, even 2048 internal cycle samples may not be enough.
None of this demonstrates that every synthesizer should use 4096 or 8192 internal cycle samples.
It demonstrates that the answer depends on what the sound designer wants to represent.
It also does not mean that an FWG render based on a 512-sample internal cycle can never contain energy above the corresponding table-domain harmonic ceiling. Interpolation, discontinuities, nonlinear processing, FM, later DSP, and aliasing can all produce additional spectral content. The point is that such content is not the same thing as independently specifying arbitrary additional harmonic detail in the original 512-sample internal cycle.
Notice: FWG constructs its internal oscillator and Drawn cycles using 512 internal cycle samples. Exporting one nominal root cycle as 1024, 2048, 4096, 8192, or 16384 output PCM samples does not retroactively turn the source into a 1024-, 2048-, 4096-, 8192-, or 16384-sample internal cycle.
A denser output representation can describe the rendered result with more PCM samples. Later DSP can alter the signal or generate additional spectral content. But output resampling cannot recover independent source detail that was never represented in the original 512 internal cycle samples.
This distinction matters when preparing an FWG WAV for a destination synthesizer that expects, for example, 2048 PCM samples per wavetable frame.
FWG can produce that output geometry.
FWG did not become a 2048-sample internal wavetable generator while doing so.
🔧 Suppose an FWG patch is rendered at a WAV output sample rate of 192 kHz.
The output Nyquist frequency is 96 kHz.
That does not mean the 512-sample internal cycle suddenly contains independently specified harmonic detail to 96 kHz.
The internal-cycle point count constrains what can be independently described around the constructed source cycle. The WAV output sample rate constrains the sampled output signal at a later stage.
They are different quantities operating at different places in the signal path.
Likewise, increasing the internal-cycle point count would not remove the output Nyquist limit imposed by a 44.1 kHz WAV.
Calling both things simply resolution makes the distinction harder to see.
🎹 FWG explicitly facilitates sound design that can produce digital aliasing.
Extreme FM, Pitch Offset, discontinuities, nonlinear operations, deliberately coarse digital processing, and other techniques can create spectral components that interact strongly with the selected WAV output sample rate.
Changing the WAV output sample rate changes the output Nyquist frequency.
Spectral components that alias in a 44.1 kHz render might remain below Nyquist at a higher WAV output sample rate. They might instead remain above Nyquist and fold differently. Different components may cross the Nyquist boundary in different ways. The resulting aliases may move, disappear, appear, or form different relationships with the rest of the spectrum.
A 44.1 kHz render and a 192 kHz render are therefore not necessarily the same sound with different amounts of “quality.”
They can be different sounds.
For a user trying to avoid audible aliasing, one result may be preferable.
For a user deliberately exploiting digital aliasing, the other may be preferable.
The selected WAV output sample rate can itself become part of the sound design.
See Pitch, MIDI, and Pitch Offset and Render and Export Settings.
🔧 Modern synthesis and sampling systems may use oversampling, pitch-dependent band-limited tables, interpolation, reconstruction filtering, resampling, spectral techniques, or combinations of these to control aliasing and other artefacts.
Ideal brick-wall filtering is a mathematical abstraction. Practical systems always make implementation choices.
More importantly for FWG, those downstream choices are outside FWG's scope and control.
An FWG WAV might be played by a state-of-the-art software wavetable synthesizer with sophisticated pitch-dependent processing. It might be loaded into a modern hardware sampler. It might be passed through an old sampler with distinctive conversion behaviour. It might eventually find its way into something as deliberately primitive as a circuit-bent SK-1.
FWG does not control the destination oscillator, interpolator, resampler, oversampling system, anti-aliasing system, reconstruction filter, DAC, or subsequent signal chain.
A downstream anti-aliasing system cannot know whether an alias is a defect or the sound the user was trying to make.
FWG can describe what it constructs and what it writes to the WAV. It can document likely consequences. It cannot dictate what another instrument will do with those PCM samples.
🔧 It is tempting to say that a 4096-sample internal cycle “contains more information” than a 512-sample internal cycle.
That is not specific enough.
A 4096-sample internal cycle provides eight times as many independently stored positions around the cycle. It therefore permits finer independently specified within-cycle structure and a wider range of independent discrete table-domain harmonic components.
Whether any of that additional representational capacity is useful depends on the waveform and what happens to it.
A simple sine-like waveform does not automatically acquire musically useful complexity merely because thousands of additional internal cycle samples are available to describe the same curve.
A waveform containing very narrow features, sharp transitions, dense upper harmonics, a very low fundamental, or material intended for later nonlinear processing may benefit substantially from the additional internal-cycle point count.
So “more information” raises more questions than it answers:
Information about what?
Useful to whom?
At what oscillator pitch?
At what WAV output sample rate?
Before or after what processing?
For what artistic purpose?
For what destination?
And at what computational and engineering cost?
🔧 The number of PCM sample positions inside one wavetable frame is only one dimension of a wavetable.
Another is the sequence of waveform states through which the destination synthesizer scans.
Some wavetable synthesizers allow 64 source wavetable frames. Others permit 256. FWG ordinary WAV rendering does not impose a corresponding fixed 64- or 256-wavetable-frame architecture.
But wavetable-frame count by itself tells us remarkably little about how smooth or coarse a wavetable will sound.
A destination synthesizer may interpolate continuously between adjacent wavetable frames. If those wavetable frames already describe a gradual trajectory, a relatively small number of supplied states may produce perceptually continuous movement.
Conversely, thousands of supplied waveform states do not guarantee smoothness.
FWG can deliberately create evolving material in which successive nominal root cycles jump, fracture, alternate between unrelated structures, collapse and recover, or otherwise behave in intentionally discontinuous ways.
Adding more wavetable states does not transform that artistic intention into smoothness.
Neither “64 wavetable frames is coarse” nor “64,000 wavetable frames is smooth” is meaningful without knowing what is in those wavetable frames, what happens between them in the destination synthesizer, how they are scanned, and what the user is trying to achieve.
A wavetable intended to emulate gentle analogue movement and a wavetable intended to sound cold, digital, damaged, and unstable should not be judged by the same idea of smoothness.
There is a loose analogy with digital video.
Imagine spending most of a data budget on extremely detailed individual images while providing relatively few images over time.
Each still image may contain enormous spatial detail. Motion can still appear sparse.
Likewise:
64 wavetable frames × 2048 PCM samples per wavetable frame
= 131,072 PCM sample values
while:
256 wavetable frames × 512 PCM samples per wavetable frame
= 131,072 PCM sample values
The total number of stored PCM sample values is identical.
The allocation is not.
The first file spends more of that storage budget describing each individual wavetable frame.
The second spends more of it describing different states along the wavetable axis.
In that limited sense, a wavetable with very high within-frame sample detail and relatively few supplied wavetable frames can resemble UHD video at 5 fps: extraordinary detail in one dimension does not automatically provide extraordinary detail in another.
The analogy should not be pushed too far. A wavetable synthesizer may interpolate between supplied wavetable frames, and audio perception is not video perception.
Its value is simply to show why a single number cannot describe overall wavetable detail.
🔧 Even the two-dimensional picture above is incomplete.
Wavetable-frame count matters differently depending on the amount and type of change between adjacent waveform states.
Consider two hypothetical wavetables.
The first contains only a modest number of source wavetable frames, each differing slightly from its neighbours. The destination synthesizer interpolates well between them. At the intended scan rate, the transitions are already below the listener's threshold for perceiving stepping.
Adding hundreds or thousands of additional intermediate wavetable frames may make no perceptible difference.
The second wavetable deliberately alternates among sharply different, alias-heavy, discontinuous waveform states.
Increasing its wavetable-frame count may simply give it more opportunities to be discontinuous.
There is no wavetable-frame count at which the second artistic intention is required to become smooth.
The artistic objective is part of the specification.
Mathematical representability and perceptual importance are different questions.
A high harmonic may exist mathematically while being masked by stronger nearby content, attenuated by subsequent filtering, lost in a mix, beyond a listener's hearing, or irrelevant at the playback level and listening distance involved.
Another high-frequency component may be critical because the sound is later transposed downward, distorted, clipped, ring-modulated, resampled, or otherwise transformed.
A very small discontinuity may be obvious in one exposed patch and completely irrelevant beneath a dense arrangement.
A wavetable transition may sound stepped during a slow isolated sweep but perfectly continuous during a fast modulation buried in a larger sound.
There is no universal psychoacoustic point at which additional internal cycle samples or additional wavetable frames become useless.
There is only a point at which they cease to matter for a particular sound, listener, process, or context.
🔧 An FWG waveform does not normally travel directly from its internal cycle table into an idealised listening experiment.
It may pass through some combination of:
FWG internal cycle construction
↓
FWG synthesis and render DSP
↓
PCM quantisation
↓
destination import or resampling
↓
wavetable playback and interpolation
↓
transposition
↓
filters
↓
distortion and other effects
↓
performance
↓
DAW processing
↓
EQ
↓
mixing
↓
mastering
↓
sample-rate conversion
↓
lossy or lossless distribution
↓
streaming or wireless transmission
↓
DAC and amplifier
↓
speakers or earbuds
↓
a real listening environment
At each stage, information may be preserved, interpolated, transformed, generated, discarded, filtered, quantised, masked, or aliased.
A distinction that is important and measurable at one stage may become irrelevant later. Another apparently minor distinction may survive the entire chain and remain obvious.
The final recording may be EQed, effected, mixed, mastered, re-recorded, downsampled, remuxed, encoded for streaming, and played through earbuds on a crowded train.
This is not an argument against careful engineering.
It is an argument against assuming that one isolated technical specification determines the eventual artistic result.
🔧 Increasing FWG's internal-cycle point count would provide real capabilities.
Moving from 512 to 1024 internal cycle samples would approximately double the range of independently specifiable table-domain harmonics at a given fundamental.
Moving from 1024 to 2048 would approximately double it again.
Each doubling buys approximately another octave of independent table-domain harmonic capacity for the same fundamental frequency.
A larger internal-cycle point count would also provide finer positioning for any operation whose behaviour depends on discrete locations around the internal cycle.
Those are real benefits.
They are not free.
The current 512-sample internal cycle is woven through FWG's generators, Drawn data, Source and Result Windows, Wavetable Types, Scanning, phase-coherent circular rotation, visualisation, table-safety behaviour, caching, JSON representation, regression fixtures, CPU use, memory use, and other implementation assumptions.
Changing the internal-cycle point count is therefore not equivalent to adding another export option.
It changes the synthesis architecture.
The relevant engineering question is not whether 1024 or 2048 is numerically larger. It is whether the additional capabilities justify their costs for the version of FWG being designed.
For v3, the answer is 512.
That does not answer the question for every future version.
🔧 Some destination wavetable formats impose explicit wavetable-frame limits such as 64 or 256 states.
FWG ordinary WAV rendering does not have a general rule that an evolving WAV may contain only 64 or 256 nominal root cycles.
It does have real resource limits.
v3 currently limits one render to 24,000,000 output PCM samples, along with browser-memory protections and mode-specific construction limits. Those boundaries should not be described as unlimited.
But they are not a fixed wavetable architecture in which every wavetable must stop after a small predetermined number of wavetable frames.
At exactly 512 output PCM samples per nominal root cycle, the general 24,000,000-output-sample ceiling would allow 46,875 nominal root cycles. At 2048 output PCM samples per nominal root cycle, it would allow 11,718 complete nominal root cycles before reaching that same ceiling.
Whether a destination wavetable synthesizer can use such a file is a completely separate question.
This means FWG makes an unusual trade.
Its internal oscillator cycle is fixed at 512 internal cycle samples in v3, while its ordinary rendered WAV can contain far more successive nominal root cycles than the 64- or 256-state structures common in some wavetable synthesizers.
One axis is deliberately bounded quite tightly.
Another is comparatively open.
Neither fact, by itself, tells us whether the resulting sound is good.
At least four different questions are hiding inside the word enough.
Does the internal representation have the degrees of freedom needed to specify the mathematical object the user has in mind?
For some very low-frequency, very bright, sharply featured, or ultrasonic-rich designs, 512 internal cycle samples may not.
Would additional internal cycle samples, output PCM samples, or wavetable states produce a perceptible difference under the relevant listening conditions?
That depends on the material, listener, playback chain, processing, pitch, level, masking, and context.
Does the result produce the intended sound?
A waveform can be alias-heavy, stepped, bandwidth-limited, quantised, discontinuous, or crude and still be exactly right.
Does increasing the internal-cycle point count improve FWG enough to justify the additional implementation cost, computational work, memory, testing, migration, complexity, and changed behaviour?
That answer belongs to a particular version of a particular project.
There is no inherent correlation among being mathematically enough, perceptually enough, artistically enough, and engineered enough.
A mathematically richer representation is not necessarily perceptually more sufficient. A perceptually cleaner representation is not necessarily artistically more successful. An artistically ideal limitation may be mathematically crude. An engineering decision may be entirely sensible even though it does not maximise mathematical capacity.
These questions measure different things. Trying to combine them into one scale called “quality” or “resolution” obscures the actual trade-offs.
FWG began with a 256-sample internal cycle.
That was enough to get the project started.
Moving to 512 internal cycle samples doubled the number of stored positions around each internal cycle and approximately doubled the range of independently specifiable table-domain harmonics for a given fundamental frequency.
That made 512 a worthwhile target for v3.
It does not establish that 256 was wrong.
It does not establish that 512 is final.
It does not establish that 1024 would be wasteful.
It does not establish that 2048 would be better.
It establishes what FWG is using now.
There is no internal-cycle point count at which a periodic digital waveform becomes universally finished.
Every finite internal cycle table has finite representational capacity.
Every WAV output sample rate has an output Nyquist frequency.
Every PCM bit depth has finite amplitude precision.
Every wavetable contains finite information along its scan axis.
Every practical destination synthesizer eventually has to interpolate, filter, resample, approximate, generate, or discard something.
But those limits are not all defects.
For one musician, preserving another octave of independent high-frequency harmonic structure may be essential.
For another, those harmonics are irrelevant.
For another, losing them creates the desired sound.
For one patch, 64 well-chosen source wavetable frames may provide movement beyond any practical perceptual requirement.
For another, thousands of waveform states may remain deliberately jagged.
For one destination, aggressive anti-aliasing may be a virtue.
For another sound, it may remove exactly the digital ugliness the user wanted.
FWG does not need to decide which of those users is correct.
It needs to make its own architecture understandable enough that users can decide whether its trade-offs suit what they are trying to make.
256 internal cycle samples were enough to get FWG started.
512 internal cycle samples are enough for v3.
The future is not yet written.
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