Gapless.js – gapless web audio playback
Hey HN, I just released v4 of my gapless playback library that I first built in 2017 for https://relisten.net. We stream concert recordings, where gapless playback is paramount. It's built from scratch, backed by a rigid state machine (the sole dependency is xstate) and is already running in production over at Relisten. The way it works is by preloading future tracks as raw buffers and scheduling them via the web audio API. It seamlessly transitions between HTML5 and web audio. We've used this technique for the last 9 years and it works fairly well. Occasionally it will blip…
In plain words
Gapless.js is a web audio playback library that eliminates silence between tracks during streaming. Built for developers playing consecutive audio files, such as concert recordings, it preloads upcoming tracks as buffers and schedules them via the web audio API. The library uses a state machine architecture with minimal dependencies and seamlessly transitions between HTML5 and web audio playback. It is production-tested and includes fallback support for mobile browsers with limited web audio capabilities.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
Hey HN, I just released v4 of my gapless playback library that I first built in 2017 for https://relisten.net. We stream concert recordings, where gapless playback is paramount. It's built from scratch, backed by a rigid state machine (the sole dependency is xstate) and is already running in production over at Relisten. The way it works is by preloading future tracks as raw buffers and scheduling them via the web audio API. It seamlessly transitions between HTML5 and web audio. We've used this technique for the last 9 years and it works fairly well. Occasionally it will blip slightly from HTML5->web audio, but there's not much to be done to avoid that (just when to do it - lotta nuance here). Once you get on web audio, everything should be clean. Unfortunately web audio support still lacks on mobile, in which case you can just disable web audio and it'll fallback to full HTML5 playback (sans gapless). But if you drive a largely desktop experience, this is fine. On mobile, most people use our native app. You can view a demo of the project at https://gapless.saewitz.com - just click on "Scarlet Begonias", seek halfway in the track (as it won't preload until >15s) and wait for "decoding" on "Fire on the Mountain" to switch to "ready". Then tap "skip to -2s and hear the buttery smooth segue.
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 1d ago · opentrailpaper.com

Launched alongside, March 2026
the whole month →

Switch from ChatGPT to Claude with import memory feature
AI · Mar 2026 · claude.com


