Product manual

Back to V-PitchShift

V-PitchShift

What it is

V-PitchShift is a Fwuzeem Audio octave-only realtime pitch shifter for full-mix material. It uses WSOLA (waveform-similarity overlap-add): a variable-speed reader runs over a delay line, finds a waveform-similar landing point with normalised cross-correlation, and hides each jump with a short equal-power crossfade. It is not a formant shifter, has no pitch tracker, and does not use an FFT.

Controls & parameters

ControlRange or choicesDefaultFunction
ShiftOctave Down, Off, Octave UpOffSelects a 0.5 reader ratio for one octave down, the latency-matched dry path, or a 2.0 reader ratio for one octave up.
QualityFast, Balanced, SmoothBalancedSelects the nominal WSOLA analysis window. Larger windows trade more latency for smoother low-frequency behavior.
Mix0.00 to 1.00, step 0.01, displayed as 0 to 100 percent1.00 (100 percent)Linear dry/wet blend. The dry signal is delayed to the current reported latency before mixing.
BypassOn/OffOffFades the wet path to zero with a 10 ms ramp and leaves the latency-matched dry path active.

Quality and latency

The analysis windows are nominal values at 48 kHz and scale with the host sample rate. The current source reports a worst-case wet-path latency of 8 + window + window/4 + window/8 + 4 samples.

QualityAnalysis window at 48 kHzCurrent reported latency at 48 kHz
Fast512 samples, about 11 ms716 samples, about 14.9 ms
Balanced1024 samples, about 21 ms1420 samples, about 29.6 ms
Smooth2048 samples, about 43 ms2828 samples, about 58.9 ms

The approximately 11/21/43 ms figures are the analysis-window durations. The larger values in the last column are the host-reported latency used for plugin delay compensation and the dry ring. The editor presents the Shift choices as -1 OCT, OFF, and +1 OCT, and the Quality choices as FAST, BALANCED, and SMOOTH.

Workflow / how to use it

  1. Insert V-PitchShift on a mono or stereo track. The input and output layouts must match.
  2. Choose Fast, Balanced, or Smooth. Fast has the shortest analysis window; Smooth gives the longest window and the highest reported latency.
  3. Select Octave Down for a 0.5x pitch ratio, Octave Up for a 2.0x ratio, or Off to hear the latency-matched dry path.
  4. Set Mix to 100 percent for the octave-shifted signal, or lower it to blend the shifted and dry signals. The dry ring is delayed so the two paths are time-aligned to the plugin’s current reported latency.
  5. Use Bypass for a comparison. Engage and disengage are covered by a 10 ms wet-gain ramp rather than an abrupt wet-path switch.
  6. Allow the host to update plugin delay compensation after changing Quality. For a layered setup, use the same Quality setting on both instances unless different timing is intentional.

Use cases

  • Octave doubling for leads: Use Octave Up on a lead or a duplicate lead layer to add a one-octave voice. Lower Mix when the shifted voice should support rather than replace the source.
  • -1 octave bass layers: Use Octave Down on a bass or instrument bus to create a low layer without asking the plugin to estimate a note or track a monophonic fundamental.
  • Harmonizing two instances: Run two instances with matching Quality settings, one at Octave Down and one at Octave Up, then blend their outputs around the original. Matching the quality settings keeps their reported delays consistent.
  • Mix-blended octave: Keep Shift at Octave Up or Octave Down and use Mix as a parallel-style blend. At intermediate values, the dry and wet paths are latency-compensated, although the WSOLA wet lag can vary with the material.
  • Full-mix safety vs single-voice: Use it on a chord, loop, or full mix when a pitch tracker would be undesirable. Because WSOLA uses waveform similarity rather than a pitch estimate, it does not require a monophonic input; listen for the normal transient and splice artifacts of realtime time-domain shifting.

Specs & requirements

  • Brand: Fwuzeem Audio; manufacturer code Fwzm.
  • Formats: AU and VST3.
  • Audio I/O: Mono or stereo input/output, with matching layouts. Stereo channels share the same jump decision, based on a mid-channel correlation search, to keep the stereo image stable. No MIDI processing is enabled.
  • Sample rates: No fixed sample-rate list is declared by the plugin. Analysis windows and reported latency scale with the host sample rate relative to 48 kHz.
  • Latency: Quality-dependent latency is reported to the host. The dry path is delayed by the current reported latency, and getTailLengthSeconds() follows that latency value.
  • Processing: WSOLA uses 0.5x and 2.0x reader ratios, normalised cross-correlation for jump placement, Catmull-Rom interpolation, and an octave-up-only low-pass write filter near 0.22 times the sample rate.
  • State: Parameters are stored as APVTS XML state. The plugin exposes one host program and does not implement preset programs.
  • Platform: Workspace audio-toolbox build guidance targets macOS 10.15 or later.

Notes / caveats

  • This is an octave-only WSOLA processor, not a continuous pitch shifter or formant shifter. Shift offers only one octave down, Off, and one octave up.
  • There is no pitch tracker and no FFT. Jump placement uses normalised cross-correlation of recent waveform material, and both stereo channels take the same jump.
  • Bypass and Shift Off still use the latency-matched dry path, so the plugin continues to incur its reported Quality latency rather than becoming a zero-latency pass-through.
  • Mix is a linear crossfade, not an equal-power crossfade. Its target is smoothed over 50 ms; the wet engage/bypass gain uses a 10 ms ramp.
  • Changing Quality rebuilds the WSOLA geometry, resets the delay line, and changes the reported latency. Changing between octave directions also resets the shifter state. These changes are not the same as the click-free bypass ramp.
  • The fixed dry delay follows the reported worst-case latency, while the WSOLA wet lag can vary with jump placement and material. Intermediate Mix settings should be checked by ear on transients.
  • Processing is allocation-free after preparation for supported host block sizes. The processor has a defensive resize path if a host supplies a block larger than the prepared samplesPerBlock.
Back to V-PitchShift plugin page