September 5, 2026 · 2 min · noisefloor · release · web
NOISEFLOOR 1.0.1: sound on phones, and one bar instead of two
The first patch, the same morning as launch: audio that unlocks on phones, a fullscreen button that no longer sits on top of the mute button, and a play shell that gets out of the game's way.
Version 1.0.1 of NOISEFLOOR changes nothing about the game. It changes whether you can hear it, and whether you can reach its buttons.
The two reports
The first phone reports after launch were the same two problems. There was no sound. And the site's fullscreen button, drawn by the play shell over the top of the game, landed on the game's own mute button, so tapping one hit the other.
Both were real, and both came from phones, which is where a one-thumb puzzle lives.
Audio
Mobile browsers will not start audio until the page asks from inside a user gesture, and iOS is stricter than that: it only honours the request when it is made synchronously inside a touch or click handler, and it suspends the audio graph again whenever the page goes to the background or a call comes in.
1.0.0 asked once, when you picked up a piece, and only resumed a context it had seen suspended. 1.0.1 asks on every gesture: pointer down, pointer up, touch end, click and key down all unlock the synth, and the context is resumed before every sound. When the tab comes back from the background, it resumes again.
There was a second iOS trap. WebAudio on its own runs in the "ambient" session and obeys the ringer switch, so a phone set to silent hears nothing at all. The fix is an old one: play a looping, silent <audio> element once and iOS moves the page to the playback session, where the ringer switch no longer applies. A single silent tick inside the same gesture primes Safari's output graph.
The end-to-end suite now taps the board and asserts that the audio context reports running.
One bar, owned by the game
In 1.0.0 the site drew its own HUD over the iframe, and the game drew its own top bar underneath. Two layers of controls on a phone screen is how a fullscreen button ends up covering a mute button.
The shell no longer draws anything. It is the iframe, the autoplay and fullscreen permissions the game needs, and a listener. The game owns its top bar: pause, mode, fullscreen where the browser's Fullscreen API exists, and mute, laid out next to each other. When it detects it is embedded, the pause menu gains a Back to MadCool Games entry, which the shell hears as an exit message and answers by returning you to the title page. The suite also asserts that no two bar buttons overlap.
What did not change
The rules. No file under the engine directory was touched: piece generation, scoring, the combo, Surge and the seeded daily boards are byte for byte what shipped in 1.0.0. Today's Daily Signal is the same board on 1.0.0 and 1.0.1.
The size. Ten files, just under 96 kilobytes, no runtime dependencies. Progress still lives in your browser and nothing is sent anywhere.
Disclosure
The patch was written with Claude and reviewed by a human before release, as before. No generated assets ship.