Skip to content

Musical Movers

https://musical-mover.web.app/ (check it out!) Musical movers help uncoordinated people move to the beat of the music.

Core trick

Estimates tempo from microphone spectral-flux onsets and autocorrelation, committing only once consecutive estimates agree.

Tags

Description

https://musical-mover.web.app/ (check it out!) Musical movers help uncoordinated people move to the beat of the music. Users just have to tap to the beat or use their microphone to input the beat of the music, and they can copy the movement in their walks, runs or on the dance floor.
caveman-sg/musicmover★ 00 forksTypeScriptCreated Mar 7, 2026 · last push Sep 6, 2026

README excerpt

# Musical Mover

A mobile-first web app that helps you *find the beat*. A holographic dancer moves in perfect time with your music — tap the tempo or let the microphone listen — and you copy the moves.

Live: https://musical-mover.web.app

## Features

- **Tap tempo** — tap the big button (or `Space`) on the beat. Every tap also re-aligns the downbeat, so the dancer's "1" is your "1".
- **Listen** — the mic tracks the tempo continuously using spectral-flux onset detection and autocorrelation, and only commits once consecutive estimates agree. A tap always overrides it.
- **Walk** — a natural gait, one step per beat, with the floor scrolling at the matching speed.
- **Dance** — two routines: the club **Two-Step** and the **Grapevine**. Glowing footprints appear half a beat before each foot lands; the beat strip names every count.
- **Look around** — drag on the dancer to orbit the camera and study a move from the side or behind; a *Front view* button snaps back.
- **Click track** — optional metronome, accented on beat 1.
- Home-screen installable, safe-area aware, works on desktop too. No accounts, no keys, nothing recorded.

## Run it

```bash
npm install
npm run dev              # http://localhost:5173
```

```bash
npm test                 # unit tests for the beat engine, tempo detection, choreography
npm run lint
npm run build            # typecheck + production bundle in dist/
npm run deploy           # build + firebase deploy
```

## How it works

```
src/
  engine/     

Team