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.
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.
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.
Quick start
- Run
Grisey_Spectral_Becoming_Engine.praat. No input Sound is required. - Choose a preset or Custom.
- Set Fundamental, Number of partials, Duration, Inharmonicity target, and Threshold split strength.
- Choose the temporal curve, spectral envelope, combination layer, and process form.
- Use Edit spectral details for emphasis peaks, spectral rolloff, companion level, and instability.
- 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:
target = effectiveF0 × n^(1 + Inharmonicity target)
A single morph control moves every primary between those two states. The three available temporal curves are:
| Curve | Behavior |
|---|---|
| Linear | Uniform 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.
| Family | Partials | Nominal separation before strength/scale |
|---|---|---|
| Low | approximately first quarter | 1 Hz |
| Mid | approximately next portion through two-thirds | 8 Hz |
| High | remaining upper partials | 24 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.
× [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.
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:
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:
| Stage | Time region | Macro / spectral action |
|---|---|---|
| Emergence | 0–7% | Level rises from 0 to 1. |
| Stabilization | 7–22% | Level eases from 1 to 0.95; blur remains 0. |
| Magnification | 22–55% | Level grows to 1.15; blur begins rising to 0.25. |
| Liminal blur | 55–82% | Level falls toward 0.55 while blur rises strongly to 1. |
| Extinction | 82–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:
Combination-frequency layer
The optional layer explicitly synthesizes frequency relations derived from pairs among the first min(6, Number of partials) primary components.
| Setting | Additional components |
|---|---|
| Off | No explicit combination components. |
| Difference frequencies | |fj - fi| trajectories for eligible low-partial pairs. |
| Difference + sum frequencies | Both |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.
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.
| Preset | Core configuration | Process details |
|---|---|---|
| Partiels-inspired Low-E Field | 82.41 Hz; 18 partials; 30 s; inharm 0.045; split ×0.85; Linear; 3 emphasis peaks; combinations Off | Five-stage; alpha 1.08→0.88; companion 0.17; instability 0.18; noise 0.22; respiration 0.11 Hz / 0.07 |
| Gondwana-inspired Deep Drift | 32.70 Hz; 32 partials; 45 s; inharm 0.085; split ×1.20; Exponential late change; 3 peaks; Difference frequencies | Five-stage; alpha 1.00→0.68; companion 0.20; instability 0.28; noise 0.34; respiration 0.075 / 0.13 |
| Fast Spectral Dissolution | 65.41 Hz; 20 partials; 15 s; inharm 0.20; split ×1.65; Logarithmic early change; Flat rolloff; Difference + sum | Five-stage; alpha 0.95→0.42; companion 0.26; instability 0.38; noise 0.68; respiration 0.24 / 0.06 |
| Static Harmonic Shimmer | 55 Hz; 16 partials; 60 s; inharm 0.01; split ×0.40; Linear; Flat rolloff; combinations Off | Simple process; alpha 0.90→0.90; companion 0.10; instability 0.12; noise 0.04; respiration 0.055 / 0.16 |
| Prologue-inspired Vowel Weighting | 110 Hz; 18 partials; 25 s; inharm 0.055; split ×0.90; Linear; 3 emphasis peaks; combinations Off | Five-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:
- Fundamental and all primary trajectories
- the three spectral-emphasis peak frequencies
- threshold-companion separations
- combination components derived from the scaled primary field
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.
| Property | Behavior |
|---|---|
| Input | No input Sound required. |
| Output channels | Mono. |
| Duration | Requested/preset duration, up to 180 s. |
| Output sample rate | 8–192 kHz; default 44.1 kHz. |
| Random seed | 0 = unpredictable; positive integer reproduces family walks, component phases, and generated noise for identical settings. Praat's unpredictable RNG state is restored afterward. |
| Output name | Spectral_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
| Panel | What it shows |
|---|---|
| A — Spectral Becoming | Model 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 Controls | The actual shared morph, spectral-blur, and macro-level control Sounds used by the synthesis. |
| C — Threshold Companions | The actual time-varying low/mid/high family separation magnitudes, including correlated stochastic instability. |
| D — Model → Measurement | A 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
- Grisey, Gérard (1987). “Tempus ex Machina: A Composer's Reflections on Musical Time.” Contemporary Music Review, 2(1), 239–275. DOI: 10.1080/07494468708567060. Direct source for Grisey's thinking about musical time and perceptual process.
- Féron, François-Xavier (2010). “Gérard Grisey : première section de Partiels (1975).” Genesis, 31, 77–97. DOI: 10.4000/genesis.352. Genetic/archival study directly relevant to how the opening of Partiels was constructed.
- Grisey, Gérard (2008). Écrits ou l'invention de la musique spectrale, edited by Guy Lelong with Anne-Marie Réby. Éditions MF. Collection of Grisey's writings, including texts on sound, process, and spectral composition.