Fire Sound: Spectral Bandwidth Extension

Adding mid- and high-frequency power-law noise to a low-frequency physically based fire sound.

Algorithm 1, §4 of Chadwick & James, Animating Fire with Sound (SIGGRAPH 2011) · paper PDF · attribution · parity check · Python source · Companion demo: Texture Synthesis

Example signal

 

Pick a flame-simulation example, load your own WAV, or use the built-in synthetic burst. Adjust the sliders below and click Process (or just change a slider with auto-process on) to extend the spectrum, then play or download both the original and the extended signal.

Algorithm parameters

idle

Input spectrum & power-law extension

input PSD (Welch) β·f−α/2 blended target blend region [start, end] Gaussian fit region (±width/2) cutoff fc

Playback

Original

(no signal loaded)

Extended

(not yet processed)

Per-window β (noise scaling)

startend

Spectrograms

Input

Extended

About this sound model

The setting

A physically based flame simulator reproduces visual fire behavior convincingly but doesn't directly produce sound: time- stepping a 3D combustion simulation at audio sample rates is impractically expensive, and small-scale combustion noise comes from thermo-acoustics that those simulators don't resolve at typical resolutions (Chadwick & James 2011, §1).

The paper's workaround (§§2.2, 3) is a simplified analytical sound model. Combustion noise can be derived from a wave equation forced by the rate of change of the heat release rate (Crighton et al. 1992; equation 2 in the paper). Under the premixed-flame assumption (Strahle 1972), the heat release happens essentially at the moving flame front, so the volume integral over the combustion region can be rewritten as a surface integral over that front. Ignoring propagation delays, 1/r distance attenuation, and overall scaling constants (all fixed multiplicative factors at a chosen listener position), the radiated pressure reduces to p(t) = d/dt ∫S(t) u(x, t) · n(x, t) dS (equation 6), the time derivative of the velocity flux integrated over the moving flame front. This is also proportional to the time derivative of the total heat release rate.

The flame solver runs at hundreds of steps per second (360 Hz for the paper's examples). After interpolating its pressure output up to audio sample rate, the resulting signal is band- limited to roughly the simulation's Nyquist (≈ 180 Hz): a slow-envelope rumble that captures the flame's overall rate of activity but contains essentially no audible structure above that. Real fire is broadband (audible content out to several kHz), so the simulated signal alone sounds dull rather than crackling. The job of spectral bandwidth extension (Algorithm 1, §4 of the paper) is to fill in the missing mid and high frequencies in a way that sounds plausible and stays time- locked to the simulated bursts.

Why “partially” physically based

The low-frequency input is physical: it comes from the §3 sound model derived above. The high-frequency content added here is statistical: random-phase noise whose power-spectral-density (PSD) slope and time-varying amplitude are chosen to match measured fire spectra, not derived from a wave- level model of small-scale flame turbulence. The empirical justification is that real fire spectra are well approximated by a power law P(f) ∝ f−α over a wide band:

So the high-frequency content has the right spectral shape and (because it is gain-modulated by the simulated envelope) the right burst timing, but the individual high-frequency samples are random draws, not predictions of a finer-resolution simulation. Two flame simulations with very different small-scale combustion structure but the same envelope will sound similar at high frequency.

How the algorithm works

One noise field is built up front for the whole clip; a windowed loop then matches and blends it into the input.

  1. Envelope extraction. Apply a zero-phase order-2 Butterworth lowpass at fc (default 180 Hz) to the input p(t), producing pL(t). The absolute value |pL(t)| is the slow amplitude envelope that will gain-modulate the high-frequency noise.
  2. Power-law noise field (built once). Construct a complex spectrum N(f) = f−α/2 · eiφ(f) with phases φ(f) drawn uniformly from [0, 2π). The exponent −α/2 on magnitude gives the desired −α on PSD. Multiply N(f) by the high-pass blend filter blend2(f) to remove its low-frequency content (which would compete with the input), then inverse-FFT to get a time-domain noise signal n(t). The same n(t) is reused across all windows; this is what makes overlap-added windows blend without phase seams.
  3. Per-window match. For each triangular analysis window wi, compute the FFT of the windowed signal Y(f) = FFT(p · wi) and the FFT of the envelope-shaped noise YN(f) = FFT(|pL| · wi · n). Then split: YL(f) = blend1(f) Y(f) is the lowpass branch and YN′(f) = blend2(f) YN(f) is the highpass branch. Solve for the positive scalar β that makes the Gaussian-weighted energy of YL + β YN′ equal to that of the unfiltered windowed signal Y:
∫ |YL(f) + β YN′(f)|2 g(f) df  =  ∫ |Y(f)|2 g(f) df

where g(f) is a Gaussian weighting centered on fc with standard deviation fit_width / 3. Expanding gives a quadratic 2 + bβ + c = 0 whose coefficients are integrals of bilinear forms in YL, YN′, and Y; the implementation evaluates each integral with the trapezoidal rule and picks the positive root via Vieta's identity.

  1. Blend & overlap-add. Inverse-FFT the blended spectrum YL + β YN′, take its real part, and overlap-add into the running output. The triangular window with stride halfWidth satisfies the constant-overlap-add identity (sums to 1), so the in-band content is reconstructed from window to window without amplitude modulation (modulo the half-amplitude effect noted below).

What the controls do

Things to notice

Caveats and things this model is not

References

  1. Chadwick, J. N., and James, D. L. (2011). Animating Fire with Sound. ACM Transactions on Graphics (SIGGRAPH 2011), 30(4). cs.cornell.edu/projects/Sound/fire · paper PDF
  2. Clavin, P., and Siggia, E. D. (1991). Turbulent premixed flames and sound generation. Combustion Science and Technology, 78(1–3), 147–155. (theoretical f−5/2 derivation)
  3. Rajaram, R., and Lieuwen, T. (2009). Acoustic radiation from turbulent premixed flames. Journal of Fluid Mechanics, 637, 357–385. (empirical exponents α ∈ [2.1, 3.4])
  4. Zölzer, U., and Amatriain, X., eds. (2002). DAFX: Digital Audio Effects. Wiley. (general reference for frequency-domain noise synthesis and the spectral-blend approach.)