🇺🇦 Українська
Stopped

About this simulation

Written by MySimulator Team · Reviewed by MySimulator Editorial Review

Last updated: 5 July 2026

This simulator renders a Shepard tone: a stack of sine oscillators, each exactly an octave apart, whose loudness is shaped by a Gaussian bell curve plotted in log₂-frequency space. As the base frequency glides upward and wraps modulo one octave, partials fade out at the top of the curve just as new ones fade in at the bottom — so the ear always hears the same middle register even though pitch chroma keeps climbing. The Web Audio API drives each partial through its own OscillatorNode and GainNode, summed live to the output.

🔬 What it shows

Octave-spaced sine partials (f₀·2ᵏ) are drawn as a rotating pitch wheel, a scrolling spectrogram and a live amplitude bar chart. The Gaussian envelope curve slides across the bar panel, always keeping the loudest partial near the same log-frequency centre — the mechanism behind the endless-ascent illusion.

🎮 How to use

Press ▶ Play to start the oscillators. Speed (0.1×–4.0×) sets how fast the base frequency climbs; Partials N (3–12) adds or removes octave layers; Gaussian σ (0.5–3.0) widens or narrows the envelope; Base freq (55–440 Hz) sets the lowest partial; ↑/↓ Dir flips ascending/descending; ⟲ Reset silences everything.

💡 Did you know?

Psychologist Roger Shepard devised this illusion in 1964 to show that pitch chroma (note name) and pitch height (register) can be perceived independently. Hans Zimmer used a rising Shepard tone to score the relentless Batpod chase in The Dark Knight.

Frequently asked questions

How many oscillators does this simulator use?

By default eight (N = 8), each tuned an exact octave above the last: f₀, 2f₀, 4f₀ … up to 2⁷f₀. Dragging the Partials N slider changes this from 3 to 12 layers in real time, instantly rebuilding the oscillator bank.

What does the Gaussian σ slider actually control?

σ sets the width of the bell-shaped envelope in log₂-frequency space that weights each partial's gain. A small σ (0.5) makes only one or two partials audible at once; a large σ (3.0) spreads loudness across nearly all of them, softening the illusion.

Why does the base frequency wrap instead of rising forever?

Each animation frame multiplies the base frequency by a small speed-dependent factor; once it reaches double its starting value it is halved again (and vice versa when descending). This modulo-one-octave wrap, hidden beneath the Gaussian fade, is what lets the pitch seem to climb without end.

What is the difference between Speed and the Direction button?

Speed (0.1×–4.0×) sets how many octaves per second the base frequency sweeps through, while ↑/↓ Dir simply flips the sign of that sweep, switching between an endlessly ascending and an endlessly descending glissando without changing its rate.

Can I see which partials are contributing most to what I hear?

Yes. The partial-amplitude bar chart shows each oscillator's current gain and frequency in hertz, and the pitch wheel plots each audible partial's chroma as a coloured dot, making it easy to track which frequencies dominate at any moment.