Grisey — Spectral Becoming Engine — User Guide

A Grisey-inspired additive process instrument that moves a harmonic field toward inharmonicity, component splitting, spectral blur, and extinction. Each primary partial has a weaker companion, while shared morph, family-instability, macroform, and optional noise/combination layers shape the transformation.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 2.1.3 (2026) License: MIT License Repo: Praat AudioTools
Contents:

What this does

Spectral Becoming Engine treats a spectrum as a time-dependent process rather than a fixed chord or static timbre. A harmonic starting field is continuously transformed toward an inharmonic target while nearby companion components, family-correlated instability, changing spectral weighting, optional combination frequencies, and filtered noise add further stages of differentiation.

Main signal path:
harmonic primary field → inharmonic morph → primary/companion splitting → spectral weighting + macroform → optional combination components → optional filtered-noise dissolution → adaptive-rate conversion → down-only peak protection

The engine is inspired by Grisey's compositional concerns with process, harmonicity/inharmonicity, perceptual thresholds, instrumental synthesis, and sound as temporal becoming. It is not a reconstruction of a Grisey score, a measured sonogram, or a universal “Grisey algorithm.” The five-stage process and the numerical threshold families are AudioTools compositional designs.

The Partiels-inspired Low-E Field preset should be understood in this same sense: it models a low-E harmonic field and a harmonic-to-noise process. It does not claim to reproduce a measured trombone spectrum or the exact opening of Partiels.

Quick start

  1. Run Grisey_Spectral_Becoming_Engine.praat. No input Sound is required.
  2. Choose a preset or Custom.
  3. Set Fundamental, Number of partials, Duration, Inharmonicity target, and Threshold split strength.
  4. Choose the temporal curve, spectral envelope, combination layer, and process form.
  5. Use Edit spectral details for emphasis peaks, spectral rolloff, companion level, and instability.
  6. Use Edit process details for noise dissolution, respiratory modulation, seed, output sample rate, and adaptive internal rendering.

Harmonic → inharmonic spectral field

For primary partial n, the starting and target frequencies are:

start = effectiveF0 × n
target = effectiveF0 × n^(1 + Inharmonicity target)

A single morph control moves every primary between those two states. The three available temporal curves are:

CurveBehavior
LinearUniform progression from harmonic start to inharmonic target.
Logarithmic (early change)Large spectral change occurs early, then slows.
Exponential (late change)Change begins slowly and accelerates toward the end.

Instantaneous frequency is converted to phase by sample-by-sample phase integration at the internal audio rendering rate. The engine therefore does not rely on a closed-form phase formula for each curve; arbitrary morph trajectories remain phase-continuous.

Threshold companions and correlated instability

Every primary partial is accompanied by a weaker second component. The companion initially coincides with the primary, then separates as the global morph progresses. This creates an actual frequency pair rather than assigning one detuned oscillator without a reference component.

FamilyPartialsNominal separation before strength/scale
Lowapproximately first quarter1 Hz
Midapproximately next portion through two-thirds8 Hz
Highremaining upper partials24 Hz

These values are multiplied by Threshold split strength and by any common frequency scaling required for headroom. The current separation also receives a smooth family-correlated stochastic modulation.

separation(t) ≈ familyBase × splitStrength × morph(t)
× [1 + instabilityDepth × familyControl(t)]

The low, mid, and high families each share one smooth stochastic controller. This means companions within a family fluctuate together over time rather than receiving unrelated one-time detuning values.

Low and mid families alternate upward and downward companions by partial number to avoid a systematic center-frequency shift. High-family companions always split upward.

The 1 / 8 / 24 Hz regions are compositional heuristics, not universal psychoacoustic boundaries. The perceptual transition among beating, pulsation, roughness, and resolved components depends on carrier frequency, level, bandwidth, and listening context.

Companion level

The companion reuses the primary amplitude trajectory and starting phase, then applies Companion mix. Its relative level grows from 40% of that mix at the beginning to the full mix at the end of the morph.

Spectral rolloff and emphasis

Spectral brightness is controlled independently of inharmonicity. The rolloff exponent moves continuously from Start rolloff alpha to End rolloff alpha:

partial amplitude ∝ 1 / n^alpha(t)

Lower alpha values retain more upper-partial energy; higher values produce steeper high-frequency attenuation. Changing Inharmonicity target does not automatically alter these alpha values.

Spectral envelope

Flat rolloff uses only the power-law rolloff. Three emphasis peaks adds three Lorentzian weighting regions centered on the user-defined peak frequencies. Their width is derived from each center frequency and Emphasis Q.

The emphasis is evaluated against each primary's current instantaneous frequency. A moving partial can therefore enter and leave an emphasis region during the process. The spectral weight never falls below 0.08.

Internal field scaling

Before synthesis, the engine estimates the start/end reference energy of the primary field and companion contribution and applies one common amplitude scale. This is an internal headroom/mix factor, not final peak normalization.

Process form, blur, and respiratory modulation

Simple process

The simple process uses a cosine-shaped fade-in and fade-out with a stable middle. Its blur control follows the same temporal morph used by the harmonic→inharmonic transformation, so filtered-noise dissolution can increase progressively through the piece.

Five-stage becoming (inspired)

This is an engine-specific macroform, not a documented Grisey five-stage formula:

StageTime regionMacro / spectral action
Emergence0–7%Level rises from 0 to 1.
Stabilization7–22%Level eases from 1 to 0.95; blur remains 0.
Magnification22–55%Level grows to 1.15; blur begins rising to 0.25.
Liminal blur55–82%Level falls toward 0.55 while blur rises strongly to 1.
Extinction82–100%Quadratic decay from 0.55 to 0; blur remains at 1.

Noise dissolution

If Noise dissolution is above zero, Gaussian noise is band-limited approximately from 2.5 × effectiveF0 up toward the primary spectral field, RMS-normalized, and mixed according to the blur and macro controls. The maximum noise contribution is proportional to 0.16 × Noise dissolution.

This creates a real harmonic/inharmonic/noise continuum. The “liminal” stage is therefore not merely a global amplitude dip.

Respiratory modulation

A shared sinusoidal amplitude modulation is applied to primary components and explicit combination components:

multiplier = 1 + depth × sin(2π × rate × t)

Combination-frequency layer

The optional layer explicitly synthesizes frequency relations derived from pairs among the first min(6, Number of partials) primary components.

SettingAdditional components
OffNo explicit combination components.
Difference frequencies|fj - fi| trajectories for eligible low-partial pairs.
Difference + sum frequenciesBoth |fj - fi| and fj + fi trajectories.

These components are deliberately quiet and follow the same morph, macroform, and respiratory modulation. They are a compositional externalization of nonlinear/combination-frequency relationships; the script does not claim to simulate distortion products physically generated by the ear or an acoustic instrument.

Components whose start or target frequency falls outside the internal 20 Hz–safeTop region are not synthesized.

v2.1.3 fix: when Difference + sum frequencies is active, adaptive render-rate planning now includes the highest sum component that can actually be generated from the participating low-partial pair set. Valid sum components are therefore no longer lost merely because the internal rendering rate was planned from the primary field alone.

Presets

Presets configure the main spectral/process controls and the advanced spectral/process defaults. They do not override Random seed, Output sample rate, Adaptive internal render rate, Peak protection, Draw visualization, or Play result.

PresetCore configurationProcess details
Partiels-inspired Low-E Field82.41 Hz; 18 partials; 30 s; inharm 0.045; split ×0.85; Linear; 3 emphasis peaks; combinations OffFive-stage; alpha 1.08→0.88; companion 0.17; instability 0.18; noise 0.22; respiration 0.11 Hz / 0.07
Gondwana-inspired Deep Drift32.70 Hz; 32 partials; 45 s; inharm 0.085; split ×1.20; Exponential late change; 3 peaks; Difference frequenciesFive-stage; alpha 1.00→0.68; companion 0.20; instability 0.28; noise 0.34; respiration 0.075 / 0.13
Fast Spectral Dissolution65.41 Hz; 20 partials; 15 s; inharm 0.20; split ×1.65; Logarithmic early change; Flat rolloff; Difference + sumFive-stage; alpha 0.95→0.42; companion 0.26; instability 0.38; noise 0.68; respiration 0.24 / 0.06
Static Harmonic Shimmer55 Hz; 16 partials; 60 s; inharm 0.01; split ×0.40; Linear; Flat rolloff; combinations OffSimple process; alpha 0.90→0.90; companion 0.10; instability 0.12; noise 0.04; respiration 0.055 / 0.16
Prologue-inspired Vowel Weighting110 Hz; 18 partials; 25 s; inharm 0.055; split ×0.90; Linear; 3 emphasis peaks; combinations OffFive-stage; peaks 700/1200/2600 Hz; Q 4.5; alpha 1.08→0.80; companion 0.16; instability 0.20; noise 0.14; respiration 0.17 / 0.11

Adaptive rendering, sample rate, and level

Common spectral scaling

The engine first estimates the requested spectral top from the highest inharmonic primary plus the maximum companion separation. In v2.1.3, the estimate also includes the highest explicit sum frequency when that layer is enabled.

Adaptive internal render rate

When enabled, the internal synthesis rate is chosen as the lowest rate that keeps the requested spectral top below approximately 32% of that rate, with a 16 kHz minimum and never above the requested output sample rate. The final Sound is sinc-resampled once to the requested output rate when the two rates differ.

If the requested field still exceeds the practical internal limit 0.45 × internal rate, one common frequency scale is applied to:

This preserves the geometry of the whole field better than deleting high primary partials individually. If the resulting effective fundamental would fall below 20 Hz, the script stops.

PropertyBehavior
InputNo input Sound required.
Output channelsMono.
DurationRequested/preset duration, up to 180 s.
Output sample rate8–192 kHz; default 44.1 kHz.
Random seed0 = unpredictable; positive integer reproduces family walks, component phases, and generated noise for identical settings. Praat's unpredictable RNG state is restored afterward.
Output nameSpectral_Becoming_<preset name>.

Peak protection

There is no unconditional final normalization. The final Sound is measured after synthesis and output-rate conversion. If Peak protection is enabled and the absolute peak exceeds 0.92, only then does the script run Scale peak: 0.92.

This is a down-only safety ceiling: quieter results retain their generated level.

Visualization and QC

PanelWhat it shows
A — Spectral BecomingModel primary trajectories plus nominal threshold-companion trajectories. Dashed companion guides omit the stochastic family fluctuation so the underlying separation scheme remains readable.
B — Actual Process ControlsThe actual shared morph, spectral-blur, and macro-level control Sounds used by the synthesis.
C — Threshold CompanionsThe actual time-varying low/mid/high family separation magnitudes, including correlated stochastic instability.
D — Model → MeasurementA measured spectrogram of the final Sound with selected primary model trajectories overlaid.

For faster visualization, Panel D may analyse a temporary downsampled copy whose rate is chosen from the plotted bandwidth. This does not alter the delivered output Sound.

The QC summary reports the conceptual status, effective F0, pair and combination counts, noise dissolution, requested spectral top, internal safe top, internal/output rates, common frequency scale, and pre/final level measurements.

Further Reading