Create or select a playlist, then add tracks from the Search tab.
Search YouTube or your own Nextcloud library, then pick a playlist and tap
Add — or send a track straight to the playback queue without adding
it to a playlist at all.
Account
Logged in as
Admin only, this browser only. Logs extra diagnostics (e.g. track durations when a deck loads) to the browser console.
On by default. When on: logging in on a device loads your playlists, queue, and settings from the server automatically, and every change you make afterwards is saved to the server automatically. When off: nothing happens automatically — use the buttons below to choose the direction yourself.
Sync to Server saves this device's playlists, queue, and settings (fade duration, AUTOMIX lead, cache size) to the server. Sync Server to Client replaces this device's copies with the ones saved on the server.
Nextcloud
Connected to as
Crossfade
sec
How long the A → B / B → A crossfade takes, manual or AUTOMIX.
sec
When AUTOMIX is on, start crossfading this many seconds before the playing track ends.
Search
results
How many results a YouTube search returns. More results take a bit longer to arrive.
Playback cache
tracks
Tracks kept fully cached in this browser (IndexedDB): both decks, plus the next
few in the queue — so AUTOMIX/AUTOLOAD can crossfade into one instantly instead of
fetching it right as the fade fires. The 2 loaded decks always count first; minimum 2.
About
Playlists are stored locally in your browser (IndexedDB). Audio is cached and re-used
for every listener/session. Only mix content you have the rights to use.
Playback Queue
Manage Users
Download History
Documentation
Overview
OnlineMusicMixer is a two-deck mixer for YouTube audio and, optionally, your own
Nextcloud music library. Each track's audio is cached once, then mixed in your
browser — so you get real crossfades, automatic loudness matching and per-deck trim,
on desktop and mobile (including iOS, where playback keeps running with the screen locked).
The app has four tabs: Player, Playlist,
Search and Settings. Switching tabs never stops
playback.
Player
Decks A & B
Each deck shows the loaded track's cover, title and position. Drag the scrubber to seek; ▶ / ❚❚ plays and pauses.
Cue next ▶|
Loads the next track from the playback queue into that deck without playing it. Replaces whatever the deck had.
Trim
Manual per-deck gain (0–150 %) on top of the automatic loudness matching.
Move / copy ⇄
Copies the deck's track into a playlist. Tick Move to also empty the deck.
Clear ✕
Stops and empties that deck.
Master
Overall output volume.
Crossfader
Drag between A and B for a manual, equal-power blend of the two decks.
A → B / B → A
Runs an automatic crossfade to the other side over the configured fade duration. If the destination deck is loaded but paused, it starts playing.
Spectrum (desktop only)
Below the mix buttons: deck A's frequencies rise from the center line, deck B's hang below it. Each deck shows even when it's faded out (drawn dimmed), so you can start a track with a slow intro early, pause it once it gets going, and crossfade into it from there.
Playback queue
Shows the next tracks; Open ▸ opens the full queue editor.
Automation toggles
AUTOLOAD
Fills empty decks from the queue, and refills a deck when its track ends. Only one deck is started automatically; the other is preloaded, ready for the next crossfade.
AUTOMIX
Starts the crossfade automatically when the playing track is within the AUTOMIX lead time of its end. Turning it on with nothing playing starts a loaded deck (or pulls one from the queue if AUTOLOAD is on).
ADDAGAIN
A track that finishes — or gets replaced with Cue next — goes back onto the end of the queue, so the mix keeps rotating.
SHUFFLE
Every pick from the queue is a random one instead of the first, skipping the last few added so re-queued tracks don't come straight back.
Tip: AUTOLOAD + AUTOMIX + ADDAGAIN together give an endless, hands-off mix of whatever is in the queue.
Playback queue editor
Reorder
Drag a track by its ⠿ handle at the front of the row. Dragging near the top or bottom edge scrolls a long queue along.
▸ Next
Moves a track straight to the top of the queue, so it plays next.
⇄ Move / copy
Files a queued track into a playlist — copy it, or move it (removes it from the queue).
✕ Remove
Takes a track out of the queue.
Shuffle / Clear
Randomises the whole queue order once, or empties it.
Playlist
Manage playlists
+ creates a playlist, ✎ renames and ✕ deletes the selected one. Tracks are sorted by title.
Share
Logged in only. Publishes a copy of the selected playlist for every registered user (find them under Search → Shared). The button is highlighted while the playlist is shared; tap it again to Update the shared copy with your current tracks or Stop sharing. It's a snapshot, so later edits only show up after an update. Nextcloud tracks are left out, since only you can play them.
→ A / → B
Loads a track straight into a deck, ready to play — replacing whatever that deck had.
▸ Next / End ▸
Adds a track to the front or the end of the playback queue.
Add All ▸
Adds every track of the playlist to the end of the queue.
⇄ Move / copy
Copies a track to another playlist, or moves it there.
✕ Remove
Removes the track from this playlist.
Search
Search
Searches YouTube — 10 results by default; change how many in Settings → Search. After 3 characters, YouTube's own suggestions appear below the box: tap one (or use the arrow keys and Enter) to search for it.
Paste link
Looks up a YouTube URL (watch, youtu.be, shorts or embed links) or a bare video ID.
Nextcloud
Searches your own Nextcloud music library. Requires being logged in and a connected Nextcloud account (see Settings).
Shared
Playlists shared by registered users (logged in only). Pick one and its tracks show up like search results. Add All ▸ queues them all, Import… copies the whole playlist into yours under a name you choose, and Unshare removes one you shared.
For each result, choose a playlist and tap Add (or pick
+ New playlist…), or send it straight to the queue with
▸ Next / End ▸ — no playlist needed.
Settings
Account
Register with your email (you'll get a link to set a password), log in, or reset a forgotten password. An account is needed for syncing and Nextcloud.
AUTOSYNC
On by default. Loads your playlists, queue and settings from the server when you log in, and saves every change afterwards — so all your devices stay in step.
Sync to Server / Sync Server to Client
With AUTOSYNC off, choose the direction yourself: upload this device's data, or replace it with the server's copy.
Nextcloud
Connect your Nextcloud Music app (Subsonic API) with its URL, username and password. The Music app's settings show the URL and can generate a dedicated app password.
Fade duration
How long a crossfade takes, whether started by the button or by AUTOMIX.
AUTOMIX lead time
How many seconds before the end of a track AUTOMIX starts fading.
Cache size
How many tracks are kept cached in this browser: both decks, plus the next ones in the queue, so automatic transitions start instantly.
YouTube results
How many results a YouTube search returns (1–50, default 10). More results take a bit longer to arrive. Stored per device.
Loudness matching
Every track's loudness is analysed once, in your browser, and the result is cached.
A gain correction is then applied so both decks play at a similar level and a
crossfade doesn't jump in volume. It is a fast approximation, not broadcast-grade
metering — use Trim for fine-tuning.
Mobile & lock screen
Add the page to your home screen for an app-like experience. The playing track and
play/pause controls appear on the lock screen, and crossfades (including AUTOMIX)
keep working while the screen is locked. On iOS this needs Safari 16.4 or newer.
Your toggles, volumes and last-used tab are remembered on this device, and the tracks
loaded into the decks are restored (paused) when you come back.
Good to know
A track needs to be fully cached before it can play, so a first play may take a
moment — the deck shows its progress. Only mix content you have the rights to use.