Product manual

Back to V-Shift

V-Shift

Fwuzeem Audio V-Series

What it is

V-Shift is a volume utility whose gain control is a literal IEEE-754 exponent shift. For a nonzero shift, normal finite (non-subnormal) samples receive the exact power-of-two ratio while their mantissa and sign stay unchanged. ScopedNoDenormals and the zero-skip handling keep subnormal inputs out of the exponent path, avoiding denormal processing. NaN and overflow cases are sanitized to finite values or clamped to the largest finite value. The gain control provides -20 to +20 integer shifts. This is not a conventional multiply, a decibel fader, or a smoothed gain ramp: the unit is the number of exact doublings or halvings.

Controls & parameters

Gain and readouts

Parameter IDDisplay nameRangeDefaultWhat it does
gainV-Shift-20.0 to +20.0, step 1.00.0Adds the selected integer to the IEEE-754 exponent. Positive shifts increase amplitude; negative shifts reduce it.
masterPolarityLPolarity Invert LBooleanfalseDeferred sign-bit polarity inversion for the left channel.
masterPolarityRPolarity Invert RBooleanfalseDeferred sign-bit polarity inversion for the right channel.

The main gainSlider is a rotary control for gain. The large value readout shows the signed shift count, for example +1 or -3; the caption is SHIFT (STEPS). The context readout names the operating region and gives its ratio: Unity: x 1, Increase: x N, Reduce: 1 / N, Line to mic level at exactly -7 shifts, and Deep attenuation at -8 shifts and below.

The headroom meter/readout reports the shifted output peak as HEADROOM N.N dB, or NO SIGNAL and OVER when appropriate. It is a peak status readout, not a second gain control. The precision readout reports FP32 or FP64 in Full view; the host chooses the processing precision.

The polarity button controls both channels with a normal click. Alt-clicking the left or right half toggles that channel independently, exposing the L/R split state.

The three-tier GUI detail selector is stored as the guiDetail state property, with values 0 to 2 and a default of 1:

  • 0 Simple: gain control and value.
  • 1 Standard: context readout, SHIFT (STEPS), and headroom status.
  • 2 Full: Standard controls plus the FP32/FP64 readout.

All rotary controls use the house range pi*0.82 to pi*2.18 with stop at the ends.

The law: think in doublings

One shift is one exponent step:

  • +1 shift = x2 exactly.
  • -1 shift = x1/2 exactly.
  • One shift represents 6.0206 dB of ratio change.
  • +2 shifts = x2 x 2 = x4 (shown as +12.0 dB, to one decimal place).
  • -2 shifts = x1/4 (shown as -12.0 dB, to one decimal place).
  • +1 followed by -1 returns to unity: x2 x 1/2 = x1.

Think “how many doublings?” rather than “how many decibels?” If a signal should be twice its current amplitude, set +1 shift. If it should be half, set -1 shift. At the extremes, +20 is x1,048,576 and -20 is x1/1,048,576.

Workflow / how to use it

  1. Insert V-Shift at the gain-staging point.
  2. Start at 0 for unity and confirm the context readout says Unity: x 1.
  3. Decide the ratio in halves or doubles. Add one shift for every doubling, or remove one shift for every halving.
  4. Watch the headroom status after a positive shift. If the next stage needs room, remove shifts until the required ratio is restored.
  5. Use the polarity button only when a sign inversion is required; use Alt-click for a channel-specific inversion.

For automation, draw integer shift steps intentionally. The direct gain parameter has no smoothing, so a moving value produces the expected stepped, zipper-like character.

Use cases

  • Double one channel, halve it elsewhere. Set the first V-Shift to +1 shift (x2) and the compensating V-Shift to -1 shift (x1/2). The pair returns to unity while making the ratio explicit.
  • Ratio-based level matching. Match a copy, return, or parallel path by counting doublings instead of chasing a dB display. +2 means x4; -3 means x1/8.
  • Line-to-mic staging. Set -7 shifts for x1/128. The GUI identifies this exact setting as Line to mic level; it is a shift choice, not a separate pad parameter.
  • Deep attenuation. Use -8 shifts or below when a large reduction is needed. -8 is x1/256, and further negative shifts continue the same exact halving pattern.
  • Parallel compensation with V-ShiftOut. Put V-ShiftIn/V-ShiftOut around an external or parallel path, then use V-Shift itself to make any local ratio correction in whole doublings. Keep the compensation leg expressed as the inverse number of shifts.
  • Stepped gain automation. Automate integer shifts as deliberate level states: unity, x2, x4, x8, then back down by the matching negative shifts. The unsmoothed transitions are part of the sound.

Specs & requirements

  • Formats: AU and VST3.
  • Main audio bus: stereo in and stereo out. Matching mono input/output layouts are also accepted by the processor.
  • Processing: FP32 and FP64, selected by the host.
  • Reported latency: 0 samples; tail length is 0 seconds.
  • Platform target: macOS 10.15 or later.
  • MIDI: not a MIDI effect; no MIDI input or output.
  • Programs: one host program; state is stored as APVTS XML.

Notes / caveats

  • This is literal exponent-field manipulation. For nonzero shifts, normal finite (non-subnormal) samples get the exact ratio with mantissa and sign preserved. ScopedNoDenormals and the zero-skip handling keep subnormal inputs out of the exponent path, avoiding denormal processing. NaN and overflow cases are sanitized to finite values or clamp to the largest finite value; zero samples are skipped. Boundary handling is not a substitute for unlimited numeric range.
  • There is no gain smoothing. Parameter changes can produce zipper noise by design. The gain is not an interpolated filter or a conventional continuous fader.
  • Polarity is separate from gain. It is a deferred sign-bit XOR with a zero-crossing/DC guard, and is applied independently to L and R. The guard is not reported as plugin latency.
  • Unity is bit-transparent on the gain path. Zero samples are skipped by the exponent-shift path.
  • The .jucer identity is retained for provenance; current products are built as AU/VST3 CMake targets.
Back to V-Shift plugin page