Ask someone to imagine the sound of a fighter jet and they will give you the airshow: a roar that shakes your ribs. Sit inside one, behind a sealed canopy, under a helmet with its earcups and an oxygen mask, and almost all of that roar is gone. The reference clip VIPER 11 grew out of has almost no audible engine at all. Its soundtrack is music, and between the notes, near-silence. Building the game’s sound meant taking almost everything out, and then placing the few things left very carefully.
A mix built around quiet
Every sound in the game runs through a small mixing desk built in the Web Audio API. Each kind of sound has its own bus: music, engine, air, mechanical, the pilot’s breathing, the radio, the menus. The master bus has a deliberately gentle compressor, because the browser’s automatic make-up gain would otherwise lift the quiet floor, and the quiet is the point.
The engine is real: a synthesised low rumble and turbine whine that follow the RPM, blended with generated recordings of idle and full power. But the whole engine is summed at about −21 dB, and then everything outside the cockpit passes through a canopy filter. That filter is a low-pass at 1,400 Hz with a 4 dB boost below 160 Hz: the hull lets the sub-bass through and eats the rest. Once airborne and fast, the engine drops by another 5 dB, and by 16,000 ft it sits about 9 dB below where it was on the runway. You feel it more than you hear it.
Figure 1 · The takeoff, bus by bus
Breathing
The loudest thing in the cockpit, most of the time, is you. The pilot breathes through a mask: a slow inhale hiss and the click of the exhale valve, pitched down a little and filtered as if heard through rubber. The rate follows what the jet is doing. On the ground, a breath comes about every 4.3 s. In the climb it is a little quicker, and level at altitude it slows and softens. Breathing pauses while the radio talks and picks up again just after.
Pull more than 2.6 g and the breath turns into strain. Pull harder, toward 4 g and beyond, and the pilot starts the anti-G straining manoeuvre. That is a sharp inhale, a held breath against a closed throat, and a forced exhale, repeated every 2.5–3 s. It is deliberately unvoiced. The generated grunts that were tried first sounded like a video game, so they were cut. The G note explains what drives this.
The radio
The radio calls are the only voices in the game: Nellis Tower clears you for takeoff, hands you to Departure, and Departure asks you to climb to one-six thousand and ident. The lines were generated with ElevenLabs’ text-to-speech using stock voices, then played 7% slower, so that they come out lower and calmer, and pushed through a chain that imitates a UHF radio heard inside a helmet.
Figure 2 · The radio chain
Each transmission opens with a key click (a 700 Hz tick, 18 ms long) and runs over a faint hiss of carrier noise. It ends with a short squelch burst, the receiver opening for a moment after the carrier drops. The pilot’s own calls come back as sidetone through the same chain, a little cleaner. And the music ducks under every call: it dips 6 dB starting 0.15 s before the key click and comes back up just after the squelch.
Figure 3 · Ducking
The body
Under G the body gets loud. A G-suit inflates, with a generated hiss and thump that follow how fast the pressure rises, and deflates when you let go. As the grey-out sets in, everything outside the mask closes down. The world’s sound slides through a low-pass that falls toward 280 Hz and loses up to 6 dB, while a synthesised heartbeat at 105–125 bpm fades in. The canopy creaks when you snap past 4.5 g, and keeps creaking if you hold 7. The radio and the breathing bypass all of this, because they are the sounds closest to your head.
Clouds get their own treatment. Inside a cloud, the outside sound passes through a low-pass that slides from open to 700 Hz, and gets a long, soft reverb whose impulse response is synthesised from filtered noise, as is the small, tight reverb of the cockpit itself. A bed of cloud noise and a whoosh mark the way in and the way out.
The score that waits for the sky
The game includes a small music director, adapted from an earlier beat-aware scheduler, for a score built of sections: pre, drop, lift, swell and open. Flight events cue them. Brake release drops the beat, rotation lifts it, breaking out of the cloud swells it by 2.5 dB over two bars, and the level-off opens it out. Each cue lands on the next bar line, and the first bar line is placed exactly on brake release. If you are slower than the music, a section holds on whole phrases until you catch up, so the music waits for the flight, never the other way round.
To be precise about what ships: the live game currently plays an original synthwave track instead of the generated score. It starts with the tower’s first call, fades in over six seconds, loops, ducks under the radio, and slows to 0.9× for a few seconds after a landing. The director and its cues are still in the code, driving the audio lab and the offline renders.
Where the sounds came from
Almost nothing here is a recording of a real jet. The sound effects (engine, breath, wind, buffet, gear whine, G-suit, cloud) came from about a hundred generations with ElevenLabs’ sound-effects model, and the long beds from a dozen with Stable Audio 2.5, each auditioned in a lab with a mixer and the event timeline. The exceptions are recorded and released into the public domain (CC0) on Freesound. The gear coming up and going down is a composite of five recordings, by kr15h, kyles, Marschal, Ramstar757 and schots, and two cockpit switches come from Moulaythami and cambrianman. Everything else is synthesised live in the browser: the engine’s sub-bass and whine, the runway joints and the nosewheel shimmy, the radio’s click, carrier and squelch, the heartbeat, and every reverb.