# Background music

Source: https://visuelize.com/docs/music
Updated: 2026-10-01

Music is one playlist for the whole room, not a track per screen.
      The server owns the queue, the playhead and the clock; a screen only decides whether
      it makes noise. That is what stops two screens with speakers playing
      different bars of different songs.

### The Music tab

Control | What it does |

Transport | Play / Pause, previous, next, Mute, volume, loop playlist |

Playlist | Ordered queue: reorder with ↑ ↓, play any track, remove |

Plays on | A checkbox per screen by name, plus All screens: which screens are equipped for sound |

Mute (per screen) | Silence one screen on the spot, independent of the sound set and the room-wide mute: on its Live Control card, or beside its name in the Music tab |

Auto-mute | Modes where music drops out by itself. Presentation and Live Share by default |

Library | Everything uploaded: add to playlist, preview, delete |

      Uploads land in the playlist automatically and show a progress bar with the real
      transfer percentage. Accepted: .mp3 .m4a .aac
      .ogg .oga .wav .flac, plus .mp4 .m4v
      (their audio track plays), up to 400 MB.
      Track length is read on upload with ffprobe.

      Presenters get the transport on /remote: Play/Pause, next, and Mute.
      Muting the room is something you do mid-sentence. The playlist itself stays admin-only.

### How the sync works

- Every music frame carries startedAt and the server clock, so a display that joins mid-track seeks to where the room already is instead of restarting the song.

- With two or more tracks queued, looping is disabled on the audio element. Whichever screen's track ends reports it; the server advances once (duplicate reports inside 2 seconds are ignored) and broadcasts the next track to everyone together.

- A single track with loop on simply repeats in the browser, no round trip.

- Measured drift between two screens: about half a second.
