NewA beat tracker that lands on 91% of beats

Music-synced lighting for WLED and smart lights

Tempolight hears the beat, the build-up and the drop, picks one look for the song, and plays it across every light in your room.

Open the live demo

Free and open sourceRuns on a Raspberry PiMIT licence

13

kinds of lights, from WLED strips to Hue, Nanoleaf and DMX

0

dependencies: Node.js 20 and nothing else

95

effects that work on every layout

5

places to run it: Windows, macOS, Linux, Raspberry Pi, Home Assistant

It follows the song, not just the volume

Most music-reactive lighting reacts to how loud the music is right now. Tempolight knows where the beat is, which part of the song you are in, and what comes next.

Sync engine

Every light flashes on the same beat

The new beat tracker lands on 91% of beats in the test songs, up from 64%. Each light gets its own delay, so Hue, WiZ and WLED flash within a few milliseconds of each other.

One look per song

One look, held for the whole song

When a song is analysed, Tempolight picks one effect and palette that fit it and keeps it on the beat, getting stronger through build-ups. Try another look swaps it; Keep this look locks it in.

Drop countdown

The room builds toward the drop

While listening live, Tempolight hears a drop coming 3 to 5 seconds ahead, even in a song it has never heard. The lights get brighter and faster, dip on the last beat, then flash.

Song map and sync meter

See where you are in the song

The Stage draws the playing song: its sections, its drops and a moving playhead. The sync meter says Locked, Finding the beat or Not hearing, with one plain hint when something is off.

Four screens, one question each

The dashboard asks you one thing at a time. The Stage shows what the lights do right now; Songs, Looks and Lights hold the rest, and everything else waits under More.

Stage

What the lights are doing right now

Your room, live and big, with the song, the beat and the song map on its bottom edge. Below it: the look, Punch and Drama, and the pads.

#/stage
Songs

Which music it knows, and how it hears it

Pick how Tempolight hears your music, then find every song it knows in one list: your folder, songs it learned and songs played here.

#/songs
Looks

What the lights can look like

Every effect as a small live preview, grouped into drops, build-ups and calm. Tap one to play it, heart the ones you like, hide the ones you don't, and save a look to bring back.

#/looks
Lights

Which lights you have, and whether they are on time

Your room layout with every light on it, each light's status and delay, Find lights and Add a light, and the one-tap timing fix.

#/lights

Fits the rest of your setup

Bring the music you already have, the smart home you already run, and the gear on your desk.

Chord colours and stereo

Each chord gets its own shade of the palette, stepping on the bar line. With a stereo source, the side of the room a hit came from lights up.

Stage → Feel

Your own music folder

Add a folder and every song in it is analysed ahead, so it is followed exactly from its first play in VLC, Music on a Mac and other players.

Songs → Add a music folder

Smart home

Home Assistant finds it through MQTT discovery. It is a HomeKit bridge too, so Siri and the Home app work without Homebridge.

Home Assistant · HomeKit

Creators

Map OBS scenes to looks, run scenes and pads from a Stream Deck, and let Twitch chat commands and alerts flash the room.

OBS · Stream Deck · Twitch

DMX and Art-Net

Drive pars, dimmers, strobes and moving heads through an Art-Net or sACN node. Lasers stay off until you turn them on, and fire only in drops.

Art-Net · sACN

Phones as lights

Guests scan a QR code and their screen joins the show, as one more light or as a remote for the pads. Each phone shows its own part of the room, so a crowd moves with it.

Stage → All pads and MIDI

Set up in 2 minutes

Every way runs the same app and keeps your settings in the same place. Start it and the setup wizard takes you through five steps.

  1. Find your lights on the network
  2. Pick a room layout
  3. Choose how it hears your music
  4. Fix the timing with one tap
  5. Play a test song

With Node.js 20 or newer. No download and nothing else to install.

npx tempolight --open

Set up with Claude

Paste one prompt into Claude Code, or the Claude desktop app with access to your terminal. Claude installs Tempolight, finds your lights, picks how it hears your music, sets the room and plays a test song.

Open the prompt as text

It asks before it installs anything for the whole computer or changes your sound settings.

Setup prompt for Claude
Set up Tempolight on this computer for me. Tempolight is open-source, music-reactive lighting for WLED and other lights: https://github.com/D4RKGEEK/tempolight. Its HTTP API (docs/api.md there) runs at http://localhost:8080/api.

Work one step at a time and tell me what you do in plain words. Ask me before you install anything system-wide (Node.js, BlackHole, ffmpeg, a service), change my sound settings or open the firewall.

1. Check for Node.js 20 or newer. If it is there, run "npx tempolight --open" and keep it running. If not, ask me whether to install Node.js or to download the one-file app for this computer from the latest GitHub release.
2. Wait until GET /api/health answers.
3. Find my lights with POST /api/discover {"scan": true} and add each one with POST /api/devices. Ask me about lights it missed, such as Philips Hue, Nanoleaf or an IP address.
4. Set how Tempolight hears music. Read GET /api/hearing and explain the choices: this computer's sound (BlackHole on a Mac, the output monitor on Linux, Stereo Mix on Windows) or the microphone. Follow its checklist, then POST /api/hearing/use.
5. Ask me how my lights are placed in the room, then pick the closest layout from "presets" in GET /api/state with POST /api/room/preset.
6. Ask me to open Music and press "Play the demo track".
7. Explain the "In sync" meter on the Music page: Locked, Finding the beat, Not hearing, and the hint under it.

End with a short summary of what is set up and what I can try next.

What people ask first

Do I need to flash anything to my ESP32?

No. Stock WLED works. Tempolight streams with DDP, which WLED supports out of the box.

Can it hear Spotify, YouTube or Apple Music?

Yes. Sync with Spotify follows Spotify's exact position. For anything else it listens to this computer's sound or a microphone, and remembers songs it has heard.

The lights are a little behind the music.

Use the one-tap timing fix on the Lights screen: it plays clicks and listens with the microphone. Bluetooth speakers usually need −150 to −250 ms.

How many LEDs can it drive?

Thousands. About 7% of one CPU core drives 700 LEDs at 60 frames a second. Wi-Fi is usually the limit, so big rooms do best on wired controllers.

Is it safe for photosensitive epilepsy?

Turn on Photosensitive-safe mode: at most three big flashes a second (WCAG 2.3.1). Night mode turns strobes off.

Does it need the cloud or an account?

No. Everything runs on your network. Spotify's Web API, shared beat maps, Twitch and Discord connect only when you turn them on.

Play a song. The whole room follows it.