Skip to content

Pitch MIDI and Pitch Offset

atom edited this page Sep 3, 2026 · 1 revision

Pitch, MIDI, and Pitch Offset

FWG separates the shared Root Frequency from each endpoint's static Pitch Offset and resulting Nominal Frequency. That distinction matters both musically and when exact render geometry is involved.

Playground exposes the shared pitch controls in its Pitch panel. Morph, Bulk Random, and Bulk Explorer expose corresponding Pitch / MIDI controls for their render workspace; endpoint Pitch Offset remains part of each endpoint patch.

Shared root pitch

Root pitch is shared across Playground, Morph, Bulk Random, and Explorer render settings.

Set it with:

  • the logarithmic frequency slider;
  • exact Hz input;
  • note and octave controls;
  • Web MIDI note input where available.

The ordinary slider covers 20 Hz–20 kHz. Typed/note controls can reach 1 Hz for long-cycle or sub-audio work.

Typed sound-producing numbers remain provisional until Enter, change, or blur. Sliders and deliberate numeric stepping remain immediate. Arrow Up/Down changes by ±1 field unit; Shift+Arrow changes by ±10 while preserving any fractional part and clamping to the field bounds.

MIDI

🎹 Web MIDI is optional and browser-dependent. Select Off, Omni, or channel 1–16.

Note-on starts or retunes the active audition. Note-off releases it; the most recently held note has priority.

MIDI changes the shared Root Frequency. It does not overwrite endpoint Pitch Offset.

Pitch Offset

Pitch Offset belongs to the endpoint patch and is measured in cents.

  • Playground has one value.
  • Morph has independent START and END values.
  • Explorer can vary each endpoint independently.
  • Ordinary endpoint Randomise and curated Bulk presets use zero offset; Absurd can generate non-zero offsets across Off / ±1200 / ±24000 lanes.

Range

🔧 Exact range:

  • ordinary slider: ±1200 cents / ±1 octave;
  • typed/stored: ±24000.00 cents / ±20 octaves from Root Frequency;
  • precision: 0.01 cent.

At the extremes, an endpoint can run from 2^-20 to 2^20 times Root Frequency—about 1/1,048,576× to 1,048,576×. The complete minimum-to-maximum domain spans 40 octaves, a ratio of 2^40 (about 1.10 trillion×, or 12.04 orders of magnitude).

🎹 That range is useful beyond static transposition. An interpolating Morph can move through it, and START-mod-END can use an offset endpoint as a sub-audio or audio-rate modulation source. Nominal freq is the practical way to target an exact source/LFO frequency without calculating cents yourself.

Nominal freq

Nominal freq is the endpoint oscillator rate after static Pitch Offset and before FM or other time-varying modulation:

Nominal frequency = Root Frequency × 2^(Pitch Offset / 1200)

The compact readout uses engineering units such as 12.34 mHz, 1.00 Hz, or 1.23 kHz; mouse-over shows a higher-precision Hz value.

The readout is also an inverse Pitch Offset editor:

  • double-click it, or focus it and press Enter;
  • type a positive target frequency in Hz;
  • commit with Enter or blur;
  • press Escape to cancel.

FWG calculates the nearest supported 0.01-cent Pitch Offset and displays the frequency actually achieved. Editing Nominal freq changes Pitch Offset; Root Frequency remains unchanged.

Pitch Offset & Nominal Frequency calculator

The Calculators tab can solve Root Frequency, Pitch Offset, or Nominal Frequency from the other two values. The selected result is readonly and updates live while either input changes. The calculator does not change global settings or patch state.

Use Global Root Frequency – _value_Hz copies the current persistent global root into the calculator. If Root Frequency is already an input, the current solve target is preserved where possible; if Root Frequency itself was the calculated field, the tool switches to calculating Nominal Frequency so the copied root can become input data.

Out-of-domain results are reported as Out of Range rather than silently clamped.

Mode-specific behaviour

One-oscillator and interpolated modes

START and END Pitch Offset move as a cents trajectory.

Crossfades

START and END retain independent oscillator rates while their audio branches fade.

START Phase-Modulates END

START Pitch Offset changes the phase-warp source rate. END Pitch Offset changes the audible carrier rate.

Moving modes can move both roles through the Morph path. Fixed modes keep both offsets fixed.

Root frequency is not replaced

🔧 Equal Pitch Offset can make an oscillator rate numerically equivalent to changing Root Frequency, but the two controls do not own the same semantics.

Root Frequency still controls:

  • Cycles render length;
  • Cycle-stepped boundaries;
  • Per Cycle cleanup blocks;
  • root-note and render planning.

Nominal freq reports the offset-adjusted oscillator rate; those planning functions continue to use Root Frequency.

Aliasing

⚠️ Pitch Offset is applied after FWG's existing root+FM cap. Extreme positive offsets can therefore move oscillator traversal above Nyquist or above one table cycle per output PCM sample. Different WAV output sample rates can then produce different aliases.

Later playback, resampling, transposition, conversion, or nonlinear processing can change the audible result again.

Replacement and preservation

Classic presets and ordinary Randomise replacement reset inherited Pitch Offset to 0.00.

Copy, swap, RAM slots, Explorer transfer, and JSON with an explicit offset preserve it.

Older or partial JSON without the field imports at 0.00 without a warning.

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