The colours of noise

White, pink, brown and their relatives are one idea seen from different sides: how a random signal shares its power across frequency. Listen to them, mix them, bend the exponent, and watch the mathematics hold in real time.

Open the playground

Playground

Every source is generated at the same RMS level, so the faders compare like with like. The dashed line in each plot is the exact spectrum the generators were built to have; the coloured line is what the analysers actually measure from the audio. Start quietly: brown noise keeps most of its energy below 100 Hz, where small speakers fall silent and headphones do not.

Power spectral density log–log, dB re 1 FS²/Hz

Fitted β – Level –

Measured with the browser's 8192-point Blackman-windowed FFT[16], converted to a one-sided density and averaged in power. The fitted β is minus the least-squares slope between 100 Hz and 10 kHz. Faint guides show β = −2…2 through the mix at 1 kHz.

Spectrogram log frequency, 20 Hz–20 kHz

Waveform auto-scaled

Amplitude distribution

Kurtosis –

Samples in units of σ, against the Gaussian density. Gaussian kurtosis is 3.

Autocorrelation ρ(τ)

Dashed: the Fourier transform of the target spectrum (Wiener–Khinchin).

Power per octave band

Pink noise is the flat one. White rises 3 dB per octave.

Field guide

Each trace below is 43 ms of the actual generator at 48 kHz, drawn at the same RMS. The names borrow from light: white light has equal power per unit frequency, and "redder" noises lean toward the low end.[1]

Violetβ = −2, +6.02 dB/octave

The derivative of white noise. Differentiation multiplies the spectrum by \((2\pi f)^2\). Sounds like a thin, piercing hiss with almost nothing below a few kilohertz. The thermal agitation of water produces an acoustic noise floor of this shape, which is why it dominates hydrophone recordings at very high frequencies.[1]

Blueβ = −1, +3.01 dB/octave

A half-derivative of white noise. Power grows in proportion to frequency, so each octave carries twice the power of the one below it. Blue-noise patterns are prized for dithering: they push quantisation error toward high frequencies, where it is least visible or audible.[11]

Whiteβ = 0, flat

Equal power per hertz, no memory. Successive samples are independent, so the autocorrelation is a single spike. Thermal noise in a resistor[3][4] and shot noise in a current are white to a very good approximation. Because the upper octaves are so wide, white noise sounds bright and hissy.

Pinkβ = 1, −3.01 dB/octave

Equal power per octave. The scale-free middle ground between white and brown, found as flicker noise in electronics and in the slow fluctuations of music and speech.[6][7] It is the audio engineer's test signal because an octave or third-octave analyser shows it as flat.

Brownβ = 2, −6.02 dB/octave

Integrated white noise, the random walk. Named after the botanist Robert Brown, not the colour. The waveform wanders; the sound is a deep rumble like distant surf. Pure integration is unbounded, so this generator flattens below 15 Hz, which is the Ornstein–Uhlenbeck fix described below.

Greyinverse equal-loudness

Shaped for the ear rather than for mathematics. Grey noise follows the inverse of an equal-loudness contour[14], aiming to sound equally loud at every frequency. This one inverts the A-weighting curve[15] with the boost capped at +30 dB, an approximation that is only right at one listening level.

Velvetsparse, roughly white

Same colour, different texture. One ±1 impulse at a random position in each 0.5 ms slot, zeros elsewhere. At around 1500–2000 pulses per second it sounds smooth, even smoother than Gaussian noise, and convolving with it needs no multiplications, which makes it popular in artificial reverberation.[12][13] Compare its histogram with white.

Free ββ = 1.50, −4.52 dB/octave

Any exponent you like. The power-law family is continuous; the named colours are just its integer points. Exponents above 2 are sometimes called "black", though no naming standard exists. Set β in the Sources panel and this trace follows.

The mathematics

From autocorrelation to fractal surfaces: the theory behind the playground, with the figures you need to check it.

A noise is a random process

A noise signal is one realisation of a stochastic process \(x(t)\). The useful class is the wide-sense stationary processes: the mean is constant and the autocorrelation depends only on the lag \(\tau\),

\[ R_x(\tau)=\mathbb{E}\,[\,x(t)\,x(t+\tau)\,]. \]

The Wiener–Khinchin theorem[2] says the power spectral density (PSD) is the Fourier transform of the autocorrelation, and that the variance is the area under it:

\[ S_x(f)=\int_{-\infty}^{\infty}R_x(\tau)\,e^{-i2\pi f\tau}\,d\tau,\qquad \sigma^2=R_x(0)=\int_{-\infty}^{\infty}S_x(f)\,df. \]

The PSD says how the power is distributed over frequency, and the colour of a noise is a statement about \(S_x(f)\) and nothing else. The plots above show the one-sided density \(S_1(f)=2S_x(f)\) for \(f\ge 0\); the autocorrelation panel shows \(\rho(\tau)=R_x(\tau)/R_x(0)\).

For white noise \(R_x(\tau)=\sigma^2\delta(\tau)\), so \(S_x\) is constant. In continuous time this is an idealisation with infinite total power; any real white noise is band-limited. In discrete time it is simply a sequence of independent, identically distributed samples, whose spectrum \(S(e^{i\omega})=\sigma^2\) is flat on \([-\pi,\pi]\).

Power laws

The named colours form the family

\[ S(f)=\frac{C}{f^{\beta}}, \]

a straight line of slope \(-\beta\) on log–log axes, since \(\log S=\log C-\beta\log f\). Each doubling of frequency changes the density by

\[ \Delta L_{\text{oct}}=10\log_{10}\frac{S(2f)}{S(f)}=-10\,\beta\,\log_{10}2\approx-3.01\,\beta\ \text{dB}. \]
ColourβDensity per octavePower per octave bandFilter on white noise
Violet−2+6.02 dB+9.03 dB\(i2\pi f\)
Blue−1+3.01 dB+6.02 dB\((i2\pi f)^{1/2}\)
White00 dB+3.01 dB\(1\)
Pink1−3.01 dB0 dB\((i2\pi f)^{-1/2}\)
Brown2−6.02 dB−3.01 dB\((i2\pi f)^{-1}\)

The power in a band \([f_1,f_2]\) follows by integration:

\[ P(f_1,f_2)=\int_{f_1}^{f_2}\frac{C}{f^{\beta}}\,df=\begin{cases}C\,\dfrac{f_2^{\,1-\beta}-f_1^{\,1-\beta}}{1-\beta}, & \beta\neq1,\\[2ex] C\,\ln\dfrac{f_2}{f_1}, & \beta=1.\end{cases} \]

An octave band \([f,2f]\) therefore holds power proportional to \(f^{\,1-\beta}\). For pink noise every octave carries exactly \(C\ln 2\); for white noise each octave carries twice the power of the one below. That is the whole reason white noise sounds bright despite being "flat".

1.00
−3.01dB per octave (density)
−10.0dB per decade (density)
0.0dB, power in 1–2 kHz relative to 100–200 Hz

Colour by filtering

Every power law can be made by passing white noise through a linear time-invariant filter \(H\), because

\[ S_y(f)=|H(f)|^2\,S_x(f). \]

An integrator \(H(f)=1/(i2\pi f)\) gives \(|H|^2=1/(4\pi^2f^2)\): brown. A differentiator \(H(f)=i2\pi f\) gives violet. Pink needs \(|H|^2\propto 1/f\), a half-integrator \(H\propto(i2\pi f)^{-1/2}\). That is not a rational function, so no finite set of poles and zeros produces it exactly; practical pink filters stagger poles and zeros about one per octave and accept a small ripple.

In discrete time, Kasdin's fractional differencing[10] realises any exponent with an infinite impulse response whose taps obey a one-line recursion:

\[ H(z)=(1-z^{-1})^{-\alpha/2}=\sum_{k\ge0}h_kz^{-k},\qquad h_0=1,\quad h_k=h_{k-1}\,\frac{k-1+\alpha/2}{k}. \]

Its spectrum is \(|2\sin(\pi f/f_s)|^{-\alpha}\), which equals \((2\pi f/f_s)^{-\alpha}\) to first order at low frequency.

Brown noise and the random walk

Integrating white noise \(\xi\) of intensity \(\sigma^2\) gives the Wiener process, the mathematical model of Brownian motion:

\[ W(t)=\int_0^t\xi(s)\,ds,\qquad \mathbb{E}\big[W(t)^2\big]=\sigma^2t. \]

The variance grows without bound, so Brownian motion is not stationary and has no PSD in the strict sense. The \(1/f^2\) law describes it through the filter picture above, or through the spectrum estimated over a finite window. Real systems leak, and the Ornstein–Uhlenbeck process[5] adds the leak as a restoring force:

\[ dX=-\theta X\,dt+\sigma\,dW,\qquad R(\tau)=\frac{\sigma^2}{2\theta}e^{-\theta|\tau|},\qquad S(f)=\frac{\sigma^2}{\theta^2+4\pi^2f^2}. \]

This Lorentzian is white below the corner \(f_c=\theta/2\pi\) and brown above it. In discrete time it is the leaky integrator \(y[n]=\lambda\,y[n-1]+x[n]\) with \(\lambda\) just below 1. The brown generator here has its corner at 15 Hz; set the autocorrelation panel to 10 ms to see the slow exponential decay.

Why pink noise is everywhere

Fluctuations with \(1/f\) spectra turn up in resistors and transistors, in the loudness and pitch contours of music and speech[6], and across physics and biology[7][8]. A classic mechanism is a superposition of many relaxation processes whose time constants are spread uniformly in \(\log\tau\), that is with density \(p(\tau)\propto1/\tau\). Each contributes a unit-variance Lorentzian, and

\[ \int_{\tau_1}^{\tau_2}\frac{1}{\tau}\,\frac{4\tau}{1+(2\pi f\tau)^2}\,d\tau=\frac{2}{\pi f}\Big[\arctan(2\pi f\tau)\Big]_{\tau_1}^{\tau_2}\approx\frac{1}{f}\quad\text{for}\quad\frac{1}{2\pi\tau_2}\ll f\ll\frac{1}{2\pi\tau_1}. \]
5
Ripple against 1/f between 0.1 and 10 –
Lorentzians with equal variance and corner frequencies spaced evenly in log between 0.01 and 100 (faint), their sum (solid) and the 1/f law they approximate (dashed). One process per decade already lands within about a decibel. Staggered-pole pink filters use exactly this idea.

A pure \(1/f\) law cannot hold at all frequencies: \(\int_{f_1}^{f_2}df/f=\ln(f_2/f_1)\) diverges at both ends, so the spectrum must flatten somewhere. The divergence is remarkably gentle, though. Stretching a \(1/f\) spectrum from one cycle per age of the universe (about \(2\times10^{-18}\) Hz) to the Planck frequency (about \(2\times10^{43}\) Hz) only gives \(\ln(10^{61})\approx140\) times the power found in a single factor of \(e\) in bandwidth.

Fractional Brownian motion

Mandelbrot and Van Ness[9] unified the family. Fractional Brownian motion \(B_H\) with Hurst exponent \(0 < H < 1\) is the Gaussian process with stationary increments and

\[ \mathbb{E}\big[(B_H(t)-B_H(s))^2\big]=|t-s|^{2H},\qquad B_H(at)\overset{d}{=}a^{H}B_H(t). \]

Its windowed spectrum is \(S\propto1/f^{\,2H+1}\), covering \(1<\beta<3\). Its increments, fractional Gaussian noise, are stationary with \(S\propto1/f^{\,2H-1}\), covering \(-1<\beta<1\), and autocorrelation[17]

\[ \rho(k)=\tfrac12\big(|k+1|^{2H}-2|k|^{2H}+|k-1|^{2H}\big)\;\sim\;H(2H-1)\,k^{2H-2}. \]

\(H=\tfrac12\) gives ordinary Brownian motion and white increments. \(H>\tfrac12\) means persistence and long-range dependence (the correlations are not summable); \(H<\tfrac12\) means anti-persistence, the blue side. Pink noise sits exactly on the boundary \(\beta=1\) between the two branches.

Noise in two dimensions

Spectral synthesis works in any dimension. Fill a 2D Fourier plane with Gaussian coefficients of amplitude \(|\mathbf k|^{-\beta/2}\) and invert, and you get a random field with \(S(\mathbf k)\propto|\mathbf k|^{-\beta}\). Two subtleties appear. An annulus of radius \(k\) in \(d\) dimensions has measure \(\propto k^{d-1}\), so equal power per octave of \(|\mathbf k|\) needs \(\beta=d\): in 2D, \(1/k^2\) is the pink field. And a straight transect through an isotropic 2D field has the 1D spectrum

\[ S_{1}(k_x)=\int S_2\!\left(\sqrt{k_x^2+k_y^2}\right)dk_y\;\propto\;k_x^{\,1-\beta}. \]

For \(2<\beta<4\) the field is a fractal surface with \(H=(\beta-2)/2\) and dimension \(D=3-H=(8-\beta)/2\): the textures of terrain, clouds and coastlines.

2.80
Transect slope –Hurst H –Fractal dimension D –
A 128 × 128 field rendered as shaded terrain. The animation rotates every Fourier coefficient's phase at its own rate, which changes the picture but never the spectrum. Low β gives television static; high β gives smooth hills.

How the generators work

Every source on this page except velvet uses spectral synthesis. Draw independent Gaussian pairs \(g_k,g_k'\), scale them by the target amplitude, enforce Hermitian symmetry so the result is real, and take one inverse FFT:

\[ X_k=\sqrt{S(f_k)}\,\big(g_k+i\,g_k'\big),\qquad X_{N-k}=X_k^{*},\qquad x[n]=\frac1N\sum_{k=0}^{N-1}X_k\,e^{i2\pi kn/N}. \]

The output is Gaussian, has the target PSD in expectation, and is exactly periodic, so it loops without a seam. Each source here is \(N=2^{18}\) samples, about 5.5 s at 48 kHz, computed in your browser when you first press play. The free-β source keeps its random coefficients and only rescales their magnitudes when you move β, which is why the sweep sounds continuous rather than like a series of different noises.

The Voss–McCartney method approaches pink noise from the other side. Keep several random generators; refresh row \(j\) only every \(2^j\) samples and output the sum. Each row is a sample-and-hold, a low-pass process with its corner one octave below the previous row, so the sum is the octave-spaced superposition you saw in the Lorentzian figure.

Rows refresh every 1, 2, 4, … samples; outlined cells changed on that step.

The spectrum is not the whole story

A PSD is a second-order statistic: it fixes \(R(\tau)\) and nothing more. A Gaussian process is completely described by its mean and autocorrelation, but most signals are not Gaussian. Velvet noise[12] is a sparse sequence in which only a fraction \(p\) of samples are non-zero, each \(\pm1\). Its spectrum is close to white, yet

\[ \kappa=\frac{\mathbb{E}[x^4]}{\mathbb{E}[x^2]^2}=\frac{p}{p^2}=\frac1p, \]

so at 2000 pulses per second and 48 kHz, \(\kappa=24\) against 3 for Gaussian noise. Play velvet and white side by side in the playground: identical slopes, entirely different histograms. In the other direction, randomising the Fourier phases of any recording preserves its PSD exactly while destroying its waveform structure.

Where noise comes from

Thermal agitation of charge carriers in a resistor produces Johnson–Nyquist noise[3][4] with one-sided voltage spectrum

\[ S_V(f)=4k_BTR\quad\text{for } hf\ll k_BT,\qquad S_V(f)=\frac{4Rhf}{e^{hf/k_BT}-1}\ \text{in general}, \]

white up to roughly \(k_BT/h\approx6\) THz at room temperature. Shot noise, from the discreteness of charge, is white with \(S_I=2qI\). Flicker noise in semiconductors and carbon resistors is pink.[8] Displacement of a particle in a fluid is brown. The acoustic thermal noise of water is violet, and Cherenkov radiation is cited as a natural example of blue.[1]

How noise is heard

The ear does not analyse on a linear frequency axis. Above a few hundred hertz its auditory filters have roughly constant relative bandwidth, so pink noise feeds them roughly equal power and sounds balanced, while white noise sounds tilted toward hiss. That is also why audio engineers measure rooms and loudspeakers with pink noise and a constant-percentage-bandwidth analyser: pink reads flat. Sensitivity further varies with frequency and with level, as the equal-loudness contours of ISO 226 describe[14], and grey noise is the attempt to undo that.

References

Sources for the claims above, in the order they are numbered.

  1. Colors of noise, Wikipedia.
  2. Wiener–Khinchin theorem, Wikipedia.
  3. J. B. Johnson, "Thermal agitation of electricity in conductors," Physical Review 32, 97 (1928). doi:10.1103/PhysRev.32.97
  4. H. Nyquist, "Thermal agitation of electric charge in conductors," Physical Review 32, 110 (1928). doi:10.1103/PhysRev.32.110
  5. G. E. Uhlenbeck and L. S. Ornstein, "On the theory of the Brownian motion," Physical Review 36, 823 (1930). doi:10.1103/PhysRev.36.823
  6. R. F. Voss and J. Clarke, "'1/f noise' in music and speech," Nature 258, 317 (1975). doi:10.1038/258317a0
  7. M. S. Keshner, "1/f noise," Proceedings of the IEEE 70, 212 (1982). doi:10.1109/PROC.1982.12282
  8. P. Dutta and P. M. Horn, "Low-frequency fluctuations in solids: 1/f noise," Reviews of Modern Physics 53, 497 (1981). doi:10.1103/RevModPhys.53.497
  9. B. B. Mandelbrot and J. W. Van Ness, "Fractional Brownian motions, fractional noises and applications," SIAM Review 10, 422 (1968). doi:10.1137/1010093
  10. N. J. Kasdin, "Discrete simulation of colored noise and stochastic processes and 1/f^α power law noise generation," Proceedings of the IEEE 83, 802 (1995). doi:10.1109/5.381848
  11. R. A. Ulichney, "Dithering with blue noise," Proceedings of the IEEE 76, 56 (1988). doi:10.1109/5.3288
  12. M. Karjalainen and H. Järveläinen, "Reverberation modeling using velvet noise," AES 30th International Conference (2007). AES E-Library; see also Fagerström et al., 2024 on pulse densities.
  13. V. Välimäki, B. Holm-Rasmussen, B. Alary and H.-M. Lehtonen, "Late reverberation synthesis using filtered velvet noise," Applied Sciences 7(5), 483 (2017). Open access
  14. Equal-loudness contour (ISO 226), Wikipedia.
  15. A-weighting, Wikipedia.
  16. W3C, Web Audio API, AnalyserNode: Blackman window and FFT normalisation.
  17. Fractional Brownian motion, Wikipedia.