Skip to content

Phase Coherent Mode

atom edited this page Sep 3, 2026 · 1 revision

Phase-Coherent Mode

Phase-Coherent Mode is for cases where changing completed wavetables seem to rotate around the cycle and you want their orientations to track more consistently. It is especially useful for discrete wavetable-frame scanning, including MPC work.

You will find the Phase-Coherent Mode switch in Morph, Bulk Random, and Bulk Explorer, beside and outside each workspace's MPC Wavetable Mode / Layout box. It is a workspace-local render policy; Playground has no separate Phase-Coherent Mode switch.

When should I use it?

🎹 Turn it On when wavetable frames sound as though their circular orientation is wandering, or when a destination synth scans more cleanly with stable phase registration.

Leave it Off when you want raw generator orientation, when phase wandering is part of the sound, or when comparing against unregistered behaviour. Fresh Morph/Bulk/Explorer workspaces start Off.

The practical test is simple: audition/render the same design Off and On and keep the version that behaves better in the destination instrument.

Phase-Coherent Mode changes circular orientation at the registration stage. It does not retune, smooth, normalise, or replace internal cycle sample values.

Where it operates

🔧 Conceptually:

Generator
  → A/B/C/D construction
  → Wavetable Type / source routing
  → Source/Result Windows
  → generator finalisation / Table Safety
  → Phase-Coherent registration
  → Morph / FM / PWM / Ring / filtering / render DSP
  → output

The placement matters. Difference, Product, Comparator, threshold/collision, splice, and similar Wavetable Types can depend strongly on relative input phase. FWG therefore builds the ordinary completed result first and rotates only that completed wavetable.

Exact integer rotation

🔧 v3.0 uses nearest-integer circular rotation of the completed 512-internal-cycle-sample table.

The registered table is an exact circular permutation of the ordinary table:

  • every internal cycle sample value is preserved;
  • root mean square (RMS) level is preserved;
  • spectral magnitudes are preserved;
  • registration itself cannot turn a valid table into silence.

Nearest-integer rounding limits phase quantisation to 0.5 / 512 cycle = 0.3515625°.

Best-effort TRACK/HOLD behaviour

🔧 FWG follows a stable phase landmark where one can be tracked reliably. Difficult, discontinuous, symmetric, FM-heavy, folded, quantised, or otherwise ambiguous material may hold a previous valid orientation rather than jump to an unrelated crossing.

That makes registration potentially path-dependent: reaching the same control coordinates by another trajectory does not guarantee the same registered orientation.

Downstream processing is allowed to change phase

⚠️ Registration happens before later Morph, Phase/Offset processing, START-mod-END, filtering, and other time-domain DSP. Those stages remain authoritative and may intentionally move or destroy apparent seam coherence.

A final rendered state away from zero is therefore not automatically a Phase-Coherent Mode failure.

Workspace ownership and persistence

Phase-Coherent Mode is local to Morph, Bulk Random, and Bulk Explorer. Each workspace remembers its value between browser sessions; a fresh workspace starts Off.

Enabling or applying MPC Wavetable Mode turns Phase-Coherent Mode On in that workspace. Turning MPC Mode off does not restore a hidden previous value or force Phase-Coherent Mode off. The phase setting remains independently editable and persistent.

JSON compatibility

🔧 Schema-13 JSON stores:

"phase_coherent_mode": true

or false.

Current explicit values restore exactly. Historical schema-12 JSON from before the feature existed imports Phase-Coherent Mode Off.

Coherent Preview

🎹 Coherent Preview in Morph applies a fresh/static registration to the current completed wavetable for quick visual/audible comparison. It is Morph-only, session-only derived state.

🔧 It does not affect Playground or Bulk/Explorer Phase-Coherent settings and does not replay a complete deterministic render trajectory. A full render can choose another valid orientation because it carries its own path-dependent tracking history. The preview flag becomes dormant outside Morph and is cleared only when Morph Phase-Coherent Mode itself is turned Off.

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