The house hums
Until today the game was silent, and now it isn’t, and the audio directory doesn’t exist. Every sound is synthesized at runtime — sine waves, noise, and envelopes assembled into WAV bytes in memory when the game boots. Zero assets. The whole soundscape costs about 14 KB of code, which is less than one second of an MP3.
What you actually hear, from the bottom up:
- The house tone. A low drone around mains-hum frequency, slowly beating against a slightly detuned twin. The CRT look, made audible — the room hums the way the screen glows.
- The hum. Fainter, a register up. If you’ve read the intercom’s remarks about a certain door, you know exactly which hum this is. It is normal. They’re at a delicate stage. It is always there once you listen for it, and it will never be explained.
- The music box. A sparse lullaby in A minor pentatonic, “heard through a wall” — soft plinks with long decays, seconds of rest between notes, wandering the scale by random walk. It never repeats, because it’s not a recording; it’s a set of rules deciding, forever, what note comes next. Somewhere in this house there was, at some point, a nursery.
- The mood. When one of the kids has chosen you, the drone swells darker, the lullaby quickens, and roughly one note in seven comes out wrong — a half-step off, the music box equivalent of a smile held one second too long. When you’re safe again it all exhales back to calm over a couple of seconds.
- Punctuation. Digging lands an earthen thud, a seal closes with the heaviest sound in the game (a door, not an explosion — the taste law in the spec says restraint outranks impact, same as the writing), getting caught is a short dissonant cluster, clearing a room is a soft resolved chime, and every intercom line opens with a tiny static blip — the speaker crackling on before Dad talks.
The nerdy bit: browsers refuse to play audio before the user interacts with the page, which is usually an annoyance to engineer around. Here it required no engineering at all, because the game already opens on a newsletter that waits for you to press any key to clock in — and the moment you clock in, the house starts humming. The autoplay police and the fiction wanted the same thing. First time for everything.
The synthesis half is pure functions with twelve headless tests of its own — WAV headers valid, loops seam-checked sample-against-sample so they cycle without clicks, every sound checked for actual signal and against clipping, and one test that literally asserts the seal is the loudest thing in the game so nobody un-decides that by accident. M mutes everything, next to C for the visuals — the whole presentation layer is optional; the clockwork underneath neither knows nor cares.
Total damage: 775 KB of WebAssembly, still assetless, still smaller than the screenshots of it.