Viboplr help

The short version of every setting lives in the app. This page is the long version — what each option actually does and when you'd want it.

Playback engine

Viboplr can play audio through two different engines: the browser engine and mpv.

The Browser engine plays audio through the system webview. It works everywhere with nothing to install, and it is the default.

The mpv engine is a native audio engine built on libmpv, the same playback core used by the mpv media player. Compared to the browser engine it:

  • Decodes every supported format natively — FLAC, ALAC, Opus, and friends — without transcoding.
  • Plays back-to-back tracks with sample-accurate gapless transitions.
  • On macOS, also renders video natively (beta).
  • Unlocks exclusive audio access for bit-perfect output.

The mpv engine component is the one-time download that contains libmpv. The "Viboplr Full" build ships with it bundled; the standard build downloads it on demand from Settings → Playback and you can remove it there at any time. If the engine can't play a particular track, Viboplr automatically falls back to the browser engine for that track.

Switching engines stops the current playback — playback resumes on the new engine with the next track you play.

Exclusive audio access

Bypass the operating system's mixer and talk to your audio device directly.

Normally every app's sound goes through the OS mixer, which can resample and requantize audio before it reaches your DAC. With exclusive access (CoreAudio "hog mode" on macOS, WASAPI exclusive mode on Windows), Viboplr opens the output device for itself: samples travel from the file to the device untouched. This is the foundation of bit-perfect playback, and it matters most with an external DAC and lossless files.

For truly bit-perfect output, the whole chain has to leave the samples alone:

  • Turn the equalizer off — EQ reshapes the signal by design.
  • Set ReplayGain to Off — volume normalization changes sample values.
  • Keep the volume at 100% — any software attenuation rewrites samples.

You don't have to keep that checklist in your head: while exclusive access is on, the settings row shows a live ● Bit-perfect indicator, and when the stream isn't bit-perfect it names exactly what's in the way.

Trade-offs while it's active:

  • No other app can play sound — the device is yours alone, including system sounds.
  • Crossfade is disabled — fading needs two overlapping audio streams, and an exclusive device only allows one. Gapless playback still works.
  • Changes apply from the next track, when the device is reopened.
Available only with the mpv playback engine.

Crossfade

Fade the current track out while the next one fades in.

The slider sets the overlap length, up to 10 seconds. At 0 (Off), tracks instead play gapless — the next track starts the instant the current one ends, which is what you want for live albums and continuous mixes. With the mpv engine, gapless transitions are sample-accurate.

Video tracks never crossfade, and crossfade is unavailable while exclusive audio access is active.

ReplayGain

Even out loudness differences between tracks, using tags stored in your files.

Albums are mastered at wildly different loudness levels, so shuffling your library means riding the volume knob. ReplayGain fixes this: a tagging tool analyzes each file once and writes the measured loudness into its tags, and players adjust playback volume to match. Viboplr reads these tags — it doesn't compute them. Popular taggers include foobar2000, MusicBrainz Picard, and loudgain; files without tags simply play at their original volume.

  • Track mode gives every track the same loudness — best for shuffle and mixed playlists.
  • Album mode applies one adjustment per album, preserving the intended quiet-to-loud dynamics between its songs — best when you listen to full albums.
  • Pre-amp adds a fixed gain on top, since ReplayGain's reference level is fairly quiet.
  • Prevent clipping caps the total gain using the track's peak tag, so a loud master pushed further by pre-amp never distorts.

Beta updates

Get pre-release builds through the normal auto-updater.

With beta updates on, the updater also offers beta releases — new features land there first, with a bit less polish. You're never stranded on the beta track: as soon as a stable release newer than your beta ships, the updater moves you back to stable automatically. Every update, beta or stable, is cryptographically signature-verified before install.

External dependencies

A few features rely on well-known command-line tools — currently ffmpeg and yt-dlp.

Some plugins and features (YouTube playback and downloads, video thumbnails, format conversion) shell out to these tools rather than reimplementing them. Settings → Dependencies shows what's needed, what's installed, and where each copy comes from:

  • Managed — Viboplr installed it for you ("Install for me") into its own folder, and can update or remove it. A managed copy always takes precedence over a system one.
  • System — found on your PATH, e.g. installed via Homebrew or winget. Viboplr never modifies these; update them with your package manager.

Keep dependencies up to date automatically applies only to managed copies: Viboplr checks daily and silently installs new releases. This matters most for yt-dlp, where an outdated version is the usual reason YouTube stops working.

Profiles

Completely separate libraries in one app — like browser profiles.

Each profile has its own library database, collections, play history, settings, plugins, and skin. Nothing is shared. Use them to keep contexts apart: your music vs. a shared family library, audiobooks, DJ sets, or a scratch profile for experiments.

Create and switch profiles from Settings → General. Switching restarts the app into the chosen profile, and the window title shows the profile name whenever you're not on the default one. You can also create a desktop shortcut that launches straight into a specific profile.

Track video history

Choose whether video playback counts toward your listening history.

By default, only audio tracks are recorded to play history (and scrobbled to Last.fm, if you use the plugin) — watching music videos won't skew your most-played charts. Turn this on if you want video plays recorded too. The usual rules still apply: a play counts after half the track or 4 minutes, whichever comes first, and tracks under 30 seconds are never recorded.

Still stuck?

Ask a question or report a problem — issues and ideas are equally welcome.