Space Soundscape — Synthesizing the Sounds of Space
An ambient experience synthesizing 8 cosmic phenomena into freely mixable sound layers — Web Audio 8-channel synthesis, reactive Canvas visuals
The Starting Point — Is Space Really Silent?
Space is a vacuum, so there is no sound. At least, that's what physics tells us.
But when NASA released audio data from a black hole, converted to audible frequencies, people were deeply captivated. The B♭ fifty-seven octaves below middle C from the Perseus cluster black hole — a frequency no instrument can play — sounded hauntingly beautiful once translated.
This page began with that curiosity. If cosmic phenomena could make sound, what would they sound like? And what if you could freely mix them together?
Eight Layers
Each layer translates a cosmic phenomenon into sound. Every sound is synthesized purely with Web Audio API — no external samples.
| Layer | Sound Source | Represents |
|---|---|---|
| Pulsar | sine 440Hz, short bursts | Neutron star radio pulses |
| Solar Wind | Pink noise + BPF 500Hz + LFO 0.02Hz | Solar particle stream |
| Black Hole | sine 35Hz + 50.3Hz, LPF 150Hz | Event horizon low-frequency rumble |
| Nebula | sine 220/221.5/330Hz | Gas cloud harmonics |
| Gravity Wave | sine chirp 35→260Hz (3s) | LIGO-detected frequency sweep |
| Magnetosphere | White noise burst + BPF + random schedule | Earth's magnetic field disturbance |
| CMB | White noise LPF 200Hz | Echo of the Big Bang |
| Spacecraft | sawtooth 60Hz + pink noise LPF 300Hz | Cabin engine hum |
Playing 35Hz and 50.3Hz simultaneously produces 15.3Hz beating. This infrasonic pulsation evokes the spacetime distortion near an event horizon.
// Black hole: interference between two close low frequencies
_blackHoleOsc1 = ctx.createOscillator();
_blackHoleOsc1.frequency.value = 35; // ~B0
_blackHoleOsc2 = ctx.createOscillator();
_blackHoleOsc2.frequency.value = 50.3; // ~A♭1 (15.3Hz beating)
const lpf = ctx.createBiquadFilter();
lpf.frequency.value = 150; // low-pass only
The Gravity Wave Chirp
The most dramatic feature of LIGO-detected gravitational waves is the rising frequency. As two black holes spiral closer, their orbital speed increases, and the gravitational wave frequency rises with it. This is called a "chirp."
function scheduleChirp() {
const dur = 3.0;
osc.frequency.setValueAtTime(35, now);
osc.frequency.exponentialRampToValueAtTime(260, now + dur);
env.gain.setValueAtTime(0, now);
env.gain.linearRampToValueAtTime(0.3, now + dur * 0.7);
env.gain.linearRampToValueAtTime(0, now + dur);
// Repeats every 8–15 seconds
}
A sweep from 35Hz to 260Hz over three seconds. Volume peaks at 70% and fades away. It represents the time compression of the moment two black holes merge.
Presets — Four Universes
You can adjust all eight sliders manually, or switch moods instantly with four presets.
- Deep Space — Black hole and nebula dominant. Deep, quiet void.
- Orbit — Spacecraft and magnetosphere dominant. Inside a cabin in orbit.
- Storm — Solar wind and magnetosphere emphasized. Violent space weather.
- Zen — Nebula pad dominant. Gentle meditation backdrop.
Each preset is just a combination of eight volume values, yet the character of the space changes completely depending on which layers are emphasized.
Drift — Organic Change
After selecting a preset, the sound stays fixed. But nothing in actual space is static. Drift mode applies an independent slow LFO to each layer, gradually shifting volumes over time.
// Drift: each layer modulated at a different period
const DRIFT_PERIODS = [23, 31, 37, 29, 19, 41, 47, 33]; // seconds
const DRIFT_AMPLITUDE = 0.15;
const lfo = Math.sin((now * Math.PI * 2) / DRIFT_PERIODS[i]) * DRIFT_AMPLITUDE;
driftedVolume = Math.max(0, Math.min(1, baseVolume + lfo));
23, 31, 37 seconds — all prime numbers. Using prime-number periods means the LFO phases rarely align, producing endlessly novel combinations without repeating patterns.
Sound You Can See
Each of the eight layers has a corresponding visual that reacts in real time. Raise a volume and the visual intensifies; lower it and it fades.
Pulsar: radial flashes from the center. Solar wind: particle streams flowing left to right. Black hole: light bending around a dark center.
function drawSoundscapeScene(ctx, cw, ch, volumes, tick) {
ctx.drawImage(ensureStars(cw, ch), 0, 0); // Star field
drawCMB(ctx, cw, ch, volumes[6]); // CMB noise
drawNebula(ctx, cw, ch, volumes[3], min); // Nebula glow
drawBlackHole(ctx, cw, ch, volumes[2], tick); // Black hole
drawSolarWind(ctx, cw, ch, volumes[1], tick); // Solar wind
drawPulsar(ctx, cw, ch, volumes[0], tick); // Pulsar
// ...
}
These aren't sound visualizations — they're the same phenomena expressed through a different sense. One volume slider controls both hearing and sight simultaneously.
Closing Thoughts
Space is silent. But silence doesn't mean nothing is happening.
Pulsars rotate hundreds of times per second. Gas near black holes moves close to the speed of light. The afterglow of the Big Bang still permeates the entire universe. It simply doesn't reach our ears.
This page is an attempt to pull those unreachable things into audible frequencies and place them in a single space. When you layer nebula harmonics over black hole rumble, with gravitational wave chirps in the background — you begin to imagine how noisy space actually is.
Move the sliders. Build your own universe.