Issue 001 · May 2026 · ArticleTech · 14 May 2026
Tech · 14 May 2026

Sound Without Files

Page size, licensing, latency, parametric control — four reasons we synthesise every sound instead of playing audio files. What this can do and what it cannot.

Sound Match (#12), Pulse Lock (#01), Tap Combo (#23) and several other games in our catalogue use sound. None of them include audio files. Every tone, every chime, every feedback sound is synthesised in real time by the browser. This article is about how that works and why we chose it over playing audio files.

The Web Audio API in one paragraph

Modern browsers expose the Web Audio API, a synthesis toolkit that runs in JavaScript. You create oscillators (simple waveforms — sine, square, sawtooth, triangle), connect them through filters and envelopes (which shape the volume over time), and route them to the output. The whole system is a small modular synthesiser in your browser, with the same primitives that have powered electronic music for sixty years. A single tone, including its envelope shape, takes about 15 lines of code.

Every sound in Sound Match is one such oscillator. The eight tones are picked from a musical scale (we use a major pentatonic), assigned to tiles, and played for 600 milliseconds with a percussive envelope when the tile is tapped. There is no audio file involved. The browser does not download a single byte of sound data.

Why we chose synthesis over files

The obvious benefit is page size. An audio file for a single piano note is roughly 30 to 50 kilobytes; eight such files would be 250 to 400 kilobytes, which is more than the entire rest of the game. Synthesising eight tones uses zero extra kilobytes. For a catalogue committed to 15-kilobyte pages, this is not a small saving.

The less obvious benefit is licensing. Every audio file we used would have a licence — sometimes public domain, sometimes a Creative Commons attribution, sometimes a commercial purchase. Tracking licences across 25 games would be a real overhead, and a single mis-attributed file could create legal liability. Synthesised tones are derived from mathematical formulae that cannot be owned. We do not have a licensing problem because we do not have any licensed material.

The least obvious benefit is parametric control. A synthesised tone can be adjusted at runtime — different pitch, different envelope, different waveform — without re-recording. Pulse Lock's tone gets slightly sharper at higher levels because we mix in more square-wave harmonics; this is one line of code. Doing the same with audio files would require recording or generating multiple variants, each adding to page weight.

What synthesis cannot do

The honest limit is realism. A synthesised piano note does not sound like a real piano. A synthesised guitar does not sound like a real guitar. The complex spectral content of a recorded acoustic instrument is genuinely hard to reproduce with simple oscillators; sophisticated synthesis can get close but uses more processing than we have available in a browser frame.

This is why our games use abstract tones rather than instrumental sounds. Sound Match's eight tiles play pure synthesised pitches, not eight piano keys. The tones are pleasant, distinct, and unmistakably digital. We accepted this aesthetic constraint rather than fight it. Players who want orchestral-quality audio should play games that include orchestral audio files. Our games sound the way they sound on purpose.

The latency consideration

Audio file playback in browsers has historically had unpredictable latency — the time between asking for a sound and hearing it. Web Audio synthesis is much more deterministic: a tone played in JavaScript starts within a few milliseconds reliably. For games where the sound is feedback (a successful tap, a wrong move) this difference is genuinely audible. Pulse Lock would feel meaningfully worse with file-based sound effects because the feedback would lag behind the action.

We did not benchmark this rigorously, but the difference is large enough that we recommend synthesis for any game where audio is part of the feedback loop. If audio is just background music, file playback is fine. For interactive feedback, synthesise.

The pattern generalises

The principle behind audio-without-files is the same as the principle behind procedural generation: anything you can compute, you should not store. Computed assets have zero weight, no licensing, and parametric flexibility. Stored assets have weight, licensing, and rigidity. For small games, computed almost always beats stored. The cost is that you have to learn how to compute the asset — but learning that once means you can do it for the next game, and the next.


Published · 14 May 2026 · Written and signed by Bill


Published · 14 May 2026 · Written and signed by Bill