Features
MBXHub provides complete network access to MusicBee with 155+ REST endpoints and full RPC access to all 137 MusicBee API methods.
Quick Navigation
Dashboard
Full-featured browser-based remote control. Works immediately out of the box - any device, any platform.
Light Mode
Dark Mode
Compact
Dashboard Features
- Live WebSocket updates (progress bar, track info, play state)
- Playback controls (play/pause, next, previous, stop)
- Volume control with mute toggle (shift-click for fine adjustment)
- 5-star rating, love/unlove, and ban buttons
- Shuffle mode toggle (Off / Shuffle / AutoDJ)
- Repeat mode toggle (Off / All / One)
- Album artwork display
- Playlist picker with split button (Play Now / Queue Next / Queue Last / Add Track)
- Mood channel selector with real-time reactions (fire, heart, dislike, ban)
- ARiA preset dropdown for quick automation
- Influence controls (thumbs up/down for artist/genre shuffle preferences)
- QR code connection dialog for quick mobile access
- Dark, Light, and Midnight themes
- Keyboard shortcuts (Space, arrows, M for mute)
Customizable Layout
The Dashboard's panel order and visibility are fully configurable from MBXHub Settings.
- 7 panels - Playback Controls, Mood/Reactions, Rating, Playlists, Shuffle/Repeat, ARiA, Volume
- Reorder - Drag panels up/down to arrange the layout to your preference
- Show/Hide - Check or uncheck panels to control which ones appear
- Collapsible sections - Set how many panels are always visible; the rest fold behind an expand toggle
- Server-rendered - No JavaScript required. Layout is baked into the HTML, works on any browser
- Configuration stored in
dashboardLayoutin mbxhub.json (order,hidden,collapseAfter)
Dashboard Settings
AutoQ Vibe Engine
AutoQ is MBXHub's intelligent queue engine. It classifies every track in your library by mood using audio analysis, then uses reactions and influence to shape what plays next. Every parameter is tunable from the AutoQ Tuning Console.
AutoQ Tuning Console
Mood Classification
AutoQ maps every track onto a 2D emotion space (valence x arousal) based on Russell's circumplex model. Audio features are extracted by Essentia and combined into valence (happy↔sad) and arousal (energetic↔calm) scores.
- 10 default mood channels - Euphoric, Energetic, Intense, Melancholic, Chill, Dreamy, Uplifting, Angry, Peaceful, Neutral
- 14 audio features extracted per track via Essentia (BPM, key, mode, MFCCs, dissonance, onset rate, and more)
- Valence formula (6 active inputs) - Mode, danceability, dissonance, pitch salience, chord changes, MFCCs
- Arousal formula (8 inputs) - BPM, loudness, spectral flux, centroid, danceability, onset rate, zero-crossing rate, RMS energy
- Genre-aware weight adjustment - Per-genre multipliers adapt feature weights to each genre's acoustic norms. 8 built-in profiles (Electronic, Metal, Jazz, Classical, Hip-Hop, Folk, R&B, Pop/Rock). Custom profiles via
autoQ.genreProfiles - Confidence scoring - Every mood estimate carries a confidence score (0–1). Essentia tracks score ~0.9, fallback tracks ~0.2–0.45. Color-coded badges on Dashboard, Player, and Tuning Console
- Mood combo labels - Tracks near channel boundaries get composite labels (e.g. "Upbeat + Energetic")
- All weights configurable - Tune every formula coefficient via
autoQ.estimationsettings or the Tuning Console - Custom mood channels - Define your own mood regions via
autoQ.moodChannels
Reactions
Guests and listeners react to tracks in real-time. Reactions feed directly into AutoQ's scoring engine to influence what plays next.
- Fire - This track is hot, play more like it
- Heart - Love it, strong positive signal
- Like / Dislike - Standard thumbs up/down
- Ban - Remove from rotation entirely
Reaction scores are configurable in autoQ.reactionScores. Each reaction type has a tunable weight that feeds into the track scoring formula.
TrueShuffle
MBXHub unifies the former MBXQ shuffle engine directly into the hub. TrueShuffle ensures every track in your library plays before any track repeats, with mood-aware ordering.
- Full-cycle guarantee - Tracks entire shuffle state across sessions
- Mood-weighted selection - Prefers tracks matching the current vibe
- Influence system - Artist/genre thumbs up/down to steer shuffle
- Ban list - Permanently exclude tracks from rotation
Setup: Mood Tagging
Mood data comes from Truedat, which runs Essentia audio analysis on your library and produces mbxmoods.json. Without it, AutoQ falls back to genre/BPM metadata estimates. See The Audio Features for details on the 14 features that drive mood estimation.
- Enable iTunes XML export in MusicBee (Edit → Preferences → Library)
- Run
truedat.exe "iTunes Music Library.xml"to generatembxmoods.json - Place
mbxmoods.jsonin your MusicBee Library folder or%APPDATA%\MusicBee\MBXHub\ - In MusicBee, go to Edit → Preferences → Tags (1) → Custom Tags and set one tag (e.g. Custom1) to "AutoQ Mood"
Custom Tags Setup
MBXHub writes the mood channel name (e.g. "Euphoric", "Chill") into the custom tag so you can see it in MusicBee's column browser, use it in auto-playlists, and sort by mood.
Static Pages
MBXHub can serve custom HTML pages from /pages/*. Build your own web UIs that call the REST API - like skins for your music server.
- Dashboard - Default experience, server-rendered, works everywhere, no JS required
- Player - Full-featured 3-column browser with queue management and library browsing
- Now Playing - Artwork, lyrics, queue, reactions with floating emoji animations
- PartyMode - Shared experience with Guest, DJ, and Display roles
- AutoQ - Tuning console for the vibe engine scoring parameters
- Library Browser - Album grid with artwork, search, and batch queue from any device
- Leaderboard - Top tracks and guest reaction stats
All are extracted to disk for customizing. Or just replace it all with your own files.
Pages Index
Desktop
Mobile
Library Browser
Standalone album browser at /pages/browse.html. Designed for phones and tablets - browse your library without the full player UI.
- Album grid - Artwork cards with artist and album name
- 7 tabs - Albums, Artists, Genres, Playlists, Podcasts, Radio, Moods
- Search - Filter across your entire library
- Queue controls - Play Now, Queue Next, or Queue Last from any result
- Playlist picker - Add tracks to existing playlists
Album Grid
Track List
Built-in Player Page
A full-featured 3-column desktop layout at /pages/player.html:
- Browse panel - Albums, Artists, Genres, Playlists, Podcasts, Radio, Moods with search
- Player panel - Now Playing with artwork, controls, ratings, lyrics
- Queue panel - Up Next with track management
- Queue buttons on every track: Now, Next, +Q
- Listen Here — stream audio directly to the browser via HTML5 audio
- Radio Stations tab — browse and play radio from MusicBee
- Influencer thumbs (when MBXQ enabled)
- ARiA preset buttons
- WebSocket live updates
Customizable
- Default pages extracted to
%APPDATA%\MusicBee\MBXHub\pages\ - Edit the HTML/CSS/JS to customize
- Add your own pages - anything in the folder is served
- Pages call REST API via fetch() - works across the network
- Delete the folder to reset to defaults on next restart
Build with AI
MBXHub serves /llms.txt - an AI-friendly API reference. Use it with Claude or any AI to generate custom pages:
- Tell Claude: "Read https://mbxhub.com/llms.txt and build me a Party-On-Mode page - big artwork, guest queue requests, vibe controls"
- Claude fetches the API cheat sheet (public URL works from any AI)
- Claude generates code using relative URLs (
/nowplaying,/player/play) that work on any MBXHub instance - Save to
%APPDATA%\MusicBee\MBXHub\pages\ - Open
http://my-pc:8080/pages/partyon.html
The generated code uses relative URLs, so it works on your local MBXHub without modification.
Listen Here
Stream audio directly from your MusicBee library to any browser. The player page shows a headphone icon on every track - tap it to start playing locally on that device. MusicBee stays as your library manager; the browser becomes the playback engine.
How It Works
- Tap the headphone icon on any track in search results or browse views
- Audio streams over HTTP with Range support for instant seeking
- Client-side queue with auto-advance, next/prev, and volume control
- Progress bar, time display, and play/pause all work locally
- Supports MP3, FLAC, M4A, OGG, WAV, OPUS, AAC, AIFF
- Can be disabled via Settings (kill switch)
CUE tracks: Supported. The player seeks to the correct offset, shows track-relative progress, and auto-advances at track boundaries.
Radio Stations
Browse and play radio stations from MusicBee's radio library. The player page includes a Radio tab that lists all configured stations.
Radio Features
- Browse all radio stations configured in MusicBee
- Play via MusicBee or stream locally with Listen Here
- Search/filter stations by name
- REST API:
GET /radio/stations
PartyMode
Web-based party music system for group listening. Three roles: Guest (browse/request), DJ (full control), Display (TV mode).
Guest Page
Guests scan a QR code, enter a PIN and nickname, then browse your library and request songs.
- Browse by Album, Artist, Genre, or Playlist
- Search your library
- Queue songs with one tap - requests attributed to nickname
- See Up Next queue (5 tracks)
- Vibes voting (thumbs up/down) on now playing and queued tracks
Browse Genres
Queue & Vibes
DJ Page
Full control for the party host. Manage the queue, see who requested what, control playback.
- Full playback controls (play/pause, prev/next, volume, seek)
- Drag-and-drop queue reordering
- See guest requests with attribution ("Mike requested...")
- Guest Vibes panel showing current influences
- Browse and add tracks directly
Desktop
Mobile
Display Page
TV-friendly display for the living room. Big artwork, lyrics, and a live feed of what guests are requesting.
- Large artwork with glow effect
- Live scrolling lyrics
- Request feed showing joins and song requests
- QR code overlay for easy guest access
- Current Vibes panel
- Floating emoji reactions - Teams-style animations float up when guests react (respects prefers-reduced-motion)
TV Display Mode
Floating Reactions
When guests react to tracks, Teams-style emoji animations float up across the Display page in real-time via WebSocket. Reactions are broadcast instantly to all connected display screens.
- Fire, Heart, Like, Dislike, Ban emojis
- Smooth float-up animation with randomized positions
- Respects
prefers-reduced-motionfor accessibility - Also available on the Now Playing page (
/pages/nowplaying.html)
How It Works
- DJ visits
/pages/partymode/and starts a party with a PIN - Display page shows QR code with embedded PIN
- Guests scan QR, enter nickname, browse and request songs
- Requests appear on DJ page and display feed
- Guests can vote on vibes (thumbs up/down) to influence shuffle
- Reactions trigger floating emoji animations on Display and Now Playing pages
Network Discovery
MBXHub announces itself on the local network using SSDP/UPnP. Find it automatically in Windows Explorer click on Network then find it under Network → Other Devices.
Windows Explorer
Network Discovery
Discovery Features
- SSDP broadcast on local network
- Appears in Windows Explorer Network view
- Click to open the Dashboard in your browser
- Unique device name includes machine identifier
REST API
Clean, resource-oriented endpoints for common operations. Perfect for web apps, mobile clients, and integrations.
Player Control
- Play, pause, stop, next, previous
- Volume and mute control
- Seek to position
- Shuffle and repeat modes
- Album navigation (next/previous album)
Now Playing
- Current track metadata (title, artist, album, duration)
- Album artwork (binary image)
- Lyrics
- Playback position
Queue Management
- View entire queue with pagination
- Add tracks (queue next or last)
- Remove tracks by index
- Move/reorder tracks
- Clear queue
- Play track immediately
Library Browsing
- Query files with MusicBee filter syntax
- Filter by artist, album, genre
- Full-text search
- Get/update file tags
- Browse distinct artists, albums, genres
- Pagination support (offset/limit)
Playlist Management
- List all playlists
- Create/delete playlists
- Get playlist tracks
- Add/remove tracks from playlists
- Play entire playlist
Audio Processing
- Equalizer on/off
- DSP effects on/off
- Crossfade on/off
- ReplayGain modes (off, track, album, smart)
- Scrobbling on/off
WebSocket Events
Real-time push notifications for player state changes. No polling required.
Event Types
- TrackChanged - Track change with full metadata
- PlayStateChanged - Play, pause, stop state changes
- VolumeChanged - Volume and mute changes
- PositionChanged - Playback position updates
- QueueChanged - Queue modifications
- ShuffleChanged - Shuffle mode changes
- RepeatChanged - Repeat mode changes
- MetadataChanged - Rating, love, or tag changes on a track
- Reaction - Real-time emoji reactions (fire, heart, like, dislike, ban) with nickname and track info
Clients subscribe to specific events via { subscribe: ['TrackChanged', 'Reaction'] }. Empty subscription receives all events.
ARiA Input Simulation
Remote keyboard and mouse control for automation and PC wake scenarios. Execute scripts, send hotkeys, and integrate with external systems.
ARiA Features
- Send keyboard input (SendKeys or DuckyScript format)
- Mouse control (move, click at coordinates)
- Wake sleeping/locked PC remotely
- Volume control (up, down, mute)
- Launch programs
- Send HTTP webhooks
- Show Windows notifications (toast)
- Restart MusicBee or system
Presets & Automation
- Pre-configured presets for MusicBee tab navigation (Ctrl+Alt+A through L)
- Custom presets via JSON configuration
- Command chaining with delays
- Macro support with recursion protection
AutoQ
Intelligent queue system combining TrueShuffle rules, mood analysis, reactions, and influences. Built directly into MBXHub - no separate plugin required.
Smart Shuffle Tracking
- View shuffle cycle progress (% complete)
- Reset shuffle cycle
- View played tracks in current cycle
- View remaining unplayed tracks
Influence System
Influence Controls
Pandora-style thumbs up/down for smart shuffle preferences.
- Target by Genre or Artist metadata
- Positive influences boost matching tracks in shuffle
- Negative influences (--) hard exclude matching tracks
- Dashboard thumbs up/down buttons
- REST API for programmatic control
Expanded Panel
Ban List Management
- View all banned tracks
- Ban tracks with optional reason
- Unban tracks
SMTC Shell (MBXHub.exe)
Standalone Windows EXE that provides proper Windows app identity for MusicBee. Owns the SMTC media session so the Windows media flyout shows the correct app name, artwork, and controls.
Why a Shell?
MusicBee (especially portable installs) has no registered Application User Model ID. Windows doesn't know who owns the SMTC session, so the media flyout shows a generic or wrong app name. The Shell solves this by being a registered Windows application that communicates with MusicBee over REST.
Same architecture used by Discord, Spotify, and other apps that offload SMTC to helper processes.
Shell Integration
SMTC Bridge Features
- Registered AUMID - Windows sees "MBXHub" in the media flyout
- Full metadata sync - Title, artist, album, album artist, artwork, track number
- Playback controls - Play, pause, stop, next, previous, seek
- Timeline - Position and duration with real-time updates
- Shuffle and repeat - Bidirectional sync with MusicBee
- Auto-reconnect - Survives MusicBee restarts, reconnects automatically
- Event-driven - WebSocket events, no polling
Setup
MBXHub.exe --install- Register AUMID and create Start Menu shortcutMBXHub.exe- Start SMTC bridge (auto-installs on first run)- Configure via
mbxhub-shell.json(host, port, retry settings) - Requires .NET 8.0 Desktop Runtime
MusicBee Detection
MBXHub.exe --detect finds MusicBee across all install types:
- Microsoft Store - Package lookup in AppData
- Installed - Registry (HKLM/HKCU Uninstall keys)
- Portable - Common locations (D:\MusicBee, C:\MusicBee, Program Files)
Library Sync (Preview)
File-based library synchronization between MBXHub instances. Currently in stub mode - API is defined, actual sync engine coming soon.
Sync Features (Coming Soon)
- Discover MBXHub instances on network
- Push/pull files between nodes
- Mirror or selective sync modes
- Track sync operation progress
RPC Interface
Direct access to the complete MusicBee plugin API. Call any of the 137 available methods with JSON parameters.
Method Categories
- Player_* - 30+ playback control methods
- NowPlaying_* - 20+ current track methods
- NowPlayingList_* - 15+ queue methods
- Library_* - 25+ library methods
- Playlist_* - 15+ playlist methods
- Setting_* - 10+ settings methods
- MB_* - 15+ application methods
- Podcasts_* - Podcast subscription methods
- Sync_* - Device sync methods
Security
Local Network Only
- CORS restricted to localhost and local network IPs
- Supports 192.168.x.x, 10.x.x.x, 172.16-31.x.x ranges
- No internet exposure by default
- Request body size limits (1MB max)
API Access Control
Restrict write operations via granular read-only settings.
- Master read-only mode - Disable all write operations API-wide
- Granular controls - Restrict Player, Queue, Library, or Playlists independently
- PartyMode exempt - PartyMode endpoints always functional (voting, requests)
- Returns 403 Forbidden with
READ_ONLYerror code when blocked - Configurable in MBXHub Settings panel
API Coverage
| Category | REST Endpoints | RPC Methods |
|---|---|---|
| System / Dashboard | 8 | - |
| Player Control | 20 | 30+ |
| Now Playing | 12 | 20+ |
| Queue | 8 | 15+ |
| Library | 15 | 25+ |
| Playlists | 8 | 15+ |
| Audio / Settings | 12 | 10+ |
| ARiA (Input Simulation) | 9 | - |
| Influences | 4 | - |
| PartyMode | 8 | - |
| AutoQ (TrueShuffle/Banlist) | 9 | - |
| Library Sync | 10 | - |
| Other (Podcasts, MB App) | 25 | 22+ |
| Total | 155+ | 137 |
Technical Details
- Protocol: HTTP/1.1
- Content-Type: application/json
- Default Port: 8080
- MusicBee API Version: 3.1 (ApiRevision 53)
- Framework: .NET Framework 4.8