Ethan RobertsAI DJ for Running

AI DJ for Running

Music that anticipates the hill

session replay · representative data

00:00
the hillheart ratedrop 03:12

30-second replay of a real-shaped run, set to real music. Sound on — the drop is the point.

onTimerStart → t=0 backdated

HR 162 → drop scheduled 03:12

deck B cued ▸ armed

music via Mixkit (mixkit.co) · Mixkit License

Most music apps react to what you’re doing. This one plans ahead. The engine reads your heart rate, GPS, and the structure of the workout you planned, and times the drop to hit when the hill or the interval starts.

The run streams off a Garmin watch in real time through a Connect IQ data field. The core logic is written in TypeScript and ported line for line to Swift for the iOS app. A parity suite replays real sessions to make sure both versions behave the same. Every change to the engine gets checked by a critic that renders the actual audio and judges it before it ships.

Stack

  • TypeScript
  • Swift
  • Monkey C (Garmin)
  • Spotify + Strava APIs
  • Audio DSP
  • Vercel