A side-scrolling endless runner whose stages are generated from whatever audio is playing around you — a song, a podcast, or just the room. Shout to jump. Hold the note to glide. Growl low to slide.
How it works
Two audio chains run side by side off one AudioContext. The stage chain listens to the music, tracks its tempo, and lays the level down a beat at a time — a beat landing at audio time t is placed where the player will be at t, so obstacles arrive under your feet on the beat rather than merely near it.
The control chain solves the awkward part: the microphone hears the music as well as you. Rather than separating the two, it tracks the background level asymmetrically — rising slowly, falling fast — and reacts to how far a sound rises above that background. Music raises the floor over seconds; a shout spikes over it in milliseconds. Pitch then decides between jumping and sliding.
The same codebase runs on the web, Android and iOS. Source, notes and architecture decisions are on GitHub.
