Undertone Field — SR Reinterpretation — User Guide

Stereo undertone fields generated by sample-rate reinterpretation, filtering, gain shaping and equal-power panning.

Author: Shai CohenVersion: 3.4.1 (2026)Technique: SR ReinterpretationCategory: Synthesis / Spectral / Composition
Contents:

What this does

Undertone Field first makes a mono working source. A stereo input is therefore summed to mono for this effect; the original stereo image is not preserved. The mono source can be included at the centre or muted. Up to eight lower-rate reinterpretations are generated, returned to the original sample rate, low-pass filtered, gain-shaped and spread across a stereo equal-power arc.

Output is always stereo. Its duration is source duration + Tail_duration_s. Lowered partials can extend into the tail region, and the complete stereo mix is exponentially faded from the original end time to approximately -60 dB at the tail end.

Quick start

  1. Select one Sound of at least 50 ms.
  2. Choose one of seven built-in presets or Custom.
  3. Choose the undertone series and number of partials.
  4. Set gain curve, low-pass, micro-delay and tail.
  5. Use Mute_input to hear only the generated field.
  6. Run. Output is <source>_undertones_<preset>.
Preset scope: presets override undertone count, stretch, Series_mode, gain curve, base gain, rolloff, low-pass and tail. They do not override Micro_delay_ms, Custom_denominators, Mute_input, Draw_visualization or Play_result.

Series modes

ModeDenominator rule
Integer(n+1)^(1+stretch)
Odd denominators(2n+1)^(1+stretch)
Even denominators(2n)^(1+stretch)
Custom listValidated positive denominators >1. If fewer values than requested are supplied, missing values continue upward by +1. Stretch is not applied.
Geometricdenom[n] = 2 * (1.25^(1+stretch))^(n-1). At stretch=0: 2, 2.5, 3.125, 3.906...

The nominal pitch factor is 1/denominator. The requested override sample rate is rounded to an integer and clamped to 100 Hz .. source SR. The effective pitch factor used for reporting and visualization is the actual overridden rate divided by the original sample rate, so it agrees with synthesis.

Presets

PresetNSeries / stretchGainLPTail
Pure Harmonic4Integer / 0.00Linear, -12 dB, 3 dB rolloff2000 Hz1.5 s
Stretched Cloud5Integer / +0.20Gaussian, -10 dB1800 Hz2.0 s
Compressed Cluster4Integer / -0.20Exponential, -14 dB, 4 dB2500 Hz1.0 s
Bass Spectral6Integer / 0.00Inverse, -18 dB, 2 dB1500 Hz2.5 s
Spectral Haze5Geometric / +0.12Gaussian, -9 dB3000 Hz2.0 s
Dark Undertow4Integer / -0.10Exponential, -8 dB, 6 dB1200 Hz1.0 s
Microtonal Dense7Geometric / +0.05Flat, -20 dB2000 Hz3.0 s

Gain and stereo field

Flat: dB[n] = base Linear: dB[n] = base - (n-1)*rolloff Exponential: dB[n] = base - (n-1)*rolloff*(1-exp(-0.23*rolloff)) Gaussian: base + 20*log10(exp(-(n-mid)^2/(2*sigma^2))) Inverse: base + (n-1)*rolloff, capped at 0 dB

The source, when not muted, is placed at centre with L=R=1/sqrt(2). With more than one undertone, partial 1 is hard left, the last is hard right and intermediate partials follow an equal-power arc. With exactly one undertone, the script places it at normalized pan 0.25 (centre-left), not hard left.

Micro-delay is (n-1) * Micro_delay_ms. Silence is prepended correctly before the delayed partial and the result is trimmed back to the fixed total output duration.

Processing

  1. Convert/copy source to a mono 0-based working sound.
  2. For each partial, override sampling frequency to the effective lower rate.
  3. Resample to the original sampling frequency with 50-point sinc interpolation. This restores the sample rate, not the original duration; the lowered version remains longer.
  4. Trim or pad that partial to source + tail.
  5. Apply Filter (pass Hann band): 0, Lowpass_Hz, 100.
  6. Apply gain, micro-delay and stereo pan gains, then accumulate into L/R buffers.
  7. Combine to stereo and apply attenuation-only peak safety at 0.99.
  8. If Tail_duration_s > 0, exponentially fade the entire mix after the original end time.
The low-pass stage suppresses high-frequency content in the reinterpreted partials; the guide does not treat it as a guarantee that already folded alias components can be removed.

Visualization

Output