Repolode
freeman-jiang

freeman-jiang/beatsync

A high-precision web audio player that keeps audio playing in sync across multiple devices, with spatial audio controls.

Stars
3,185
Forks
303
Open issues
52
Last commit
4 months ago

What is it?

Beatsync is a web-based audio player designed to play the same audio on several devices at once, with the devices kept in tight time alignment. It uses NTP-inspired time synchronization primitives to aim for millisecond-level accuracy between clients, so playback on different screens and speakers stays together.

The app runs in any modern browser, with Chrome recommended for the best performance. Beyond synchronization, it includes a spatial audio mode that controls each device's volume through a virtual listening source, letting the group produce moving or directional sound effects. Mobile support is available but still experimental.

The project is a Turborepo monorepo: a Bun HTTP and WebSocket server, a Next.js client styled with Tailwind and Shadcn/ui, and a shared package of type-safe schemas. It can be self-hosted with a few commands after setting the API and WebSocket URLs in the client's environment file.

Key features

  • 01Millisecond-level synchronized playback across multiple devices
  • 02Runs in any modern browser, with Chrome recommended
  • 03Spatial audio control through a virtual listening source
  • 04Built-in loading states and status indicators
  • 05Self-hostable with Bun, Next.js, and WebSocket server

Use cases

  • Playing music across several speakers or phones at a party
  • Experimenting with spatial or directional sound effects using multiple devices
  • Learning how browser-based time synchronization works in practice
  • Hosting a private synchronized listening session on your own server

Topics

FAQ

What is beatsync?
A high-precision web audio player that keeps audio playing in sync across multiple devices, with spatial audio controls. Beatsync is a web-based audio player designed to play the same audio on several devices at once, with the devices kept in tight time alignment. It uses NTP-inspired time synchronization primitives to aim for millisecond-level accuracy between clients, so playback on different screens and speakers stays together.
Is beatsync free to use? What license does it have?
beatsync is open source under the MIT license. Check the license terms before using it in commercial products.
Is beatsync still maintained?
Updated within 6 months. The last commit to beatsync was on Jun 12, 2026.
What can I use beatsync for?
Playing music across several speakers or phones at a party Experimenting with spatial or directional sound effects using multiple devices Learning how browser-based time synchronization works in practice Hosting a private synchronized listening session on your own server
Where can I get beatsync?
The source code and installation instructions are on GitHub: https://github.com/freeman-jiang/beatsync

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects