-
Media Server v0.2.0
Stablereleased this
2026-04-25 15:34:35 +03:00 | 35 commits to master since this releasev0.2.0 (2026-04-25)
A major UI overhaul — the Studio Reference editorial hi-fi redesign — plus a fullscreen "Listening Room" mode, a Pocket Edition mobile layout, and a fully audio-driven VU/spectrum cluster.
Features
- Studio Reference redesign — editorial hi-fi aesthetic across the entire UI (8110c15)
- Player view rebuilt to match the Studio Reference mockup (14e9f22)
- Live VU meter + audio-driven spectrum, editorial banner, subtler dynamic background (d937c15)
- Fullscreen "Listening Room" mode for the player (59840a1)
- Pocket Edition mobile layout + tablet tab range fix (f85ce77)
UI Improvements
- Editorial styling for Library, Quick Access, Settings, Display + tab fix (2049850)
- Search icon overlap fix, Display cards, compact view, dark dropdowns (588a303)
- Widen spectrum to fill column; volume control moved to left of VU cluster (153424e)
- VU: narrower 44° swing, peak-based level, faster response; mini progress bar fix (f2c8216)
- Soften vinyl-stage halo, transparent-bg album placeholder, crossfade artwork swaps (4c93bfb)
Bug Fixes
- VU needle now driven from RMS-dB loudness instead of peak-of-bins (b09569f)
- VU: drop conic-gradient mask, draw lines explicitly in 0–90° range (9b84fdd)
- VU: clip grid arc to match needle swing range so rest = proper zero (3de2b44)
- Centred toolbar icons; full-width spectrum; needle at rest; drop dynamic bg (d7f488a)
- Real audio level on VU; full-width spectrum; hide canvas under vinyl (968eb15)
- Visualizer: full-width spectrum + device pick auto-starts capture (a0f74df)
- Visualizer: auto-enable actually starts capture; persist audio device (6066b4a)
- Full-width spectrum + log-mapped bars; deeper sepia + soft art fade (336d596)
- Editorial toolbar + sepia album art (d157388)
- Close more gaps with mockup (tabs, mini player, volume control) (e9e4165)
- Snap player view directly from Studio Reference mockup (77b39e5)
- Drop redundant Elapsed/Length cells; restore timeline (d9d4672)
- Close gaps with Studio Reference mockup (265b001)
- Player redesign cleanup pass — sleeve, tonearm, AGC, dead code (2a474ea)
All Commits
Hash Message Author 4c93bfb ui(player): soften vinyl-stage halo, transparent-bg album placeholder, crossfade artwork swaps alexei.dolgolyov 59840a1 feat(player): fullscreen "Listening Room" mode alexei.dolgolyov 2a474ea fix(player): redesign cleanup pass — sleeve, tonearm, AGC, dead code alexei.dolgolyov f85ce77 ui(mobile): Pocket Edition layout + tablet tab range fix alexei.dolgolyov b09569f fix(vu): drive needle from RMS-dB loudness instead of peak-of-bins alexei.dolgolyov f2c8216 ui(vu): narrower 44deg swing, peak-based level, faster response; mini progress bar fix alexei.dolgolyov 588a303 ui: fix search icon overlap, Display cards, compact view, dark dropdowns alexei.dolgolyov 2049850 ui: editorial styling for Library/Quick Access/Settings/Display + tab fix alexei.dolgolyov 9b84fdd fix(vu): drop conic-gradient mask, draw lines explicitly in 0-90 range alexei.dolgolyov 3de2b44 fix(vu): clip grid arc to match needle swing range so rest = proper zero alexei.dolgolyov d7f488a fix(ui): centred toolbar icons; full-width spectrum; needle at rest; drop dynamic bg alexei.dolgolyov 968eb15 fix(player): real audio level on VU; full-width spectrum; hide canvas under vinyl alexei.dolgolyov a0f74df fix(visualizer): full-width spectrum + device pick auto-starts capture alexei.dolgolyov 6066b4a fix(visualizer): auto-enable actually starts capture; persist audio device alexei.dolgolyov 153424e ui(player): widen spectrum to fill column; swap volume control to left of VU cluster alexei.dolgolyov 336d596 fix(ui): full-width spectrum + log-mapped bars; deeper sepia + soft art fade alexei.dolgolyov d937c15 feat(ui): live VU + audio-driven spectrum, editorial banner, subtler dynamic bg alexei.dolgolyov d157388 fix(ui): editorial toolbar + sepia album art alexei.dolgolyov e9e4165 fix(ui): close more gaps with mockup (tabs, mini player, volume control) alexei.dolgolyov 77b39e5 fix(ui): snap player view directly from Studio Reference mockup alexei.dolgolyov d9d4672 fix(ui): drop redundant Elapsed/Length cells; restore timeline alexei.dolgolyov 265b001 fix(ui): close gaps with Studio Reference mockup alexei.dolgolyov 14e9f22 feat(ui): rebuild player view to match Studio Reference mockup alexei.dolgolyov 8110c15 feat(ui): Studio Reference redesign — editorial hi-fi aesthetic alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.2.0-setup.exeWindows (portable) MediaServer-v0.2.0-win-x64.zipLinux MediaServer-v0.2.0-linux-x64.tar.gzDownloads
-
Media Server v0.1.8
Stablereleased this
2026-04-18 19:49:49 +03:00 | 60 commits to master since this releasev0.1.8 (2026-04-18)
Bug Fixes
- Fix visualizer toggle button not reflecting actual availability after audio device load (ee51849)
- Fix visualizer WebSocket re-subscription firing before availability is confirmed from the API — moved from
connectWebSockettoloadAudioDevices(ee51849)
Development / Internal
Other
- Broaden audio library import errors from
ImportErrortoExceptionand log atwarninglevel with error details (ee51849)
All Commits
Hash Message Author ee51849 fix(visualizer): sync state and re-subscribe from audio device load alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.8-setup.exeWindows (portable) MediaServer-v0.1.8-win-x64.zipLinux MediaServer-v0.1.8-linux-x64.tar.gzDownloads
-
Media Server v0.1.7
Stablereleased this
2026-04-17 23:40:45 +03:00 | 66 commits to master since this releasev0.1.7 (2026-04-17)
Changes
- Bundle the audio visualizer by default.
soundcardandnumpyare now mandatory dependencies instead of gated behind the optional[visualizer]extra, so the visualizer works out of the box on every install.
Development / Internal
CI/Build
- Simplify
build-dist-linux.shto install.instead of.[visualizer]now that the deps are part of the base install.
Contributors
- @alexei.dolgolyov — 1 change
Downloads
Platform File Windows (installer) MediaServer-v0.1.7-setup.exeWindows (portable) MediaServer-v0.1.7-win-x64.zipLinux MediaServer-v0.1.7-linux-x64.tar.gzDownloads
- Bundle the audio visualizer by default.
-
Media Server v0.1.6
Stablereleased this
2026-04-11 03:36:55 +03:00 | 67 commits to master since this releasev0.1.6 (2026-04-11)
Bug Fixes
- Bundle
wmiexplicitly in the Windows distribution. It's a transitive dependency ofscreen-brightness-controlgated onplatform_system == "Windows", but pip evaluates environment markers against the host (Linux in CI), so it was silently skipped during cross-build. Now listed explicitly in bothpyproject.tomlandbuild-dist-windows.shso the wheel lands in the Windows bundle.
Contributors
- @alexei.dolgolyov — 1 change
Downloads
Platform File Windows (installer) MediaServer-v0.1.6-setup.exeWindows (portable) MediaServer-v0.1.6-win-x64.zipLinux MediaServer-v0.1.6-linux-x64.tar.gzDownloads
- Bundle
-
Media Server v0.1.5
Stablereleased this
2026-04-11 02:09:29 +03:00 | 68 commits to master since this releasev0.1.5 (2026-04-11)
Bug Fixes
- Make WebSocket token query parameter optional to prevent connection failures for clients that authenticate via other means (34eb7c7)
- Fetch playback status eagerly on new WebSocket connection instead of waiting for the next poll cycle (d09a0b9)
All Commits
Hash Message Author 34eb7c7 fix(ws): make WebSocket token parameter optional alexei.dolgolyov d09a0b9 fix(ws): fetch status eagerly on new WebSocket connection alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.5-setup.exeWindows (portable) MediaServer-v0.1.5-win-x64.zipLinux MediaServer-v0.1.5-linux-x64.tar.gzDownloads
-
Media Server v0.1.4
Stablereleased this
2026-04-07 22:57:26 +03:00 | 72 commits to master since this releasev0.1.4 (2026-04-07)
Bug Fixes
- Prevent dialog
showModalfrom auto-focusing first input (db777fa)
Development / Internal
CI/Build
- Replace
uvicorn[standard]with explicit Windows-safe extras; avoids uvloop cross-build deadlock (28293c6) - Move
pystrayinto the unified cross-deps resolve so its Pillow matches the core one (8450040) - Hybrid pip-download: single call for cross-platform deps (consistent
pydantic-core), per-dep loop with--prefor Windows-only (39b3aed) - Normalize non-PEP440 versions before stamping
pyproject.toml(69df9b6) - Pass
--pretopip downloadfor winsdk beta wheels (760c3df) - Revert broken action caching (Gitea cache backend not configured) (60f287b)
All Commits
Hash Message Author 8450040 fix(ci): move pystray to VIS_DEPS so its Pillow resolves with core alexei.dolgolyov 28293c6 fix(ci): replace uvicorn[standard] with explicit extras for cross-build alexei.dolgolyov 39b3aed fix(ci): hybrid pip download - single call for cross-platform deps alexei.dolgolyov ba90dff fix(ci): revert to per-dep pip download loop with --pre alexei.dolgolyov 69df9b6 fix(ci): normalize non-PEP440 versions before stamping pyproject.toml alexei.dolgolyov 760c3df fix(ci): pass --pre to pip download for winsdk beta wheels alexei.dolgolyov 60f287b ci: revert action caching, gitea cache backend not configured alexei.dolgolyov f52af51 ci: cache pip wheels, npm deps, and embedded Python in release workflow alexei.dolgolyov db777fa fix: prevent dialog showModal from auto-focusing first input alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.4-setup.exeWindows (portable) MediaServer-v0.1.4-win-x64.zipLinux MediaServer-v0.1.4-linux-x64.tar.gzDownloads
- Prevent dialog
-
Media Server v0.1.3
Stablereleased this
2026-04-07 22:35:24 +03:00 | 74 commits to master since this releasev0.1.3 (2026-04-07)
Bug Fixes
- Prevent dialog
showModalfrom auto-focusing first input (db777fa)
All Commits
Hash Message Author db777fa fix: prevent dialog showModal from auto-focusing first input alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.3-setup.exeWindows (portable) MediaServer-v0.1.3-win-x64.zipLinux MediaServer-v0.1.3-linux-x64.tar.gzDownloads
- Prevent dialog
-
Media Server v0.1.2
Stablereleased this
2026-03-29 20:00:38 +03:00 | 84 commits to master since this releasev0.1.2 (2026-03-29)
Features
Bug Fixes
- Make folder status visible with dot + text label (c50a8f4)
All Commits
Hash Message Author c50a8f4 fix: make folder status visible with dot + text label alexei.dolgolyov cad6e8a feat: redesign media browser UI alexei.dolgolyov c9ee41a feat: add media folder management from WebUI alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.2-setup.exeWindows (portable) MediaServer-v0.1.2-win-x64.zipLinux MediaServer-v0.1.2-linux-x64.tar.gzDownloads
-
Media Server v0.1.1
Stablereleased this
2026-03-28 18:53:13 +03:00 | 88 commits to master since this releasev0.1.1 (2026-03-28)
Bug Fixes
- Use custom app icon for Windows shortcuts instead of the default Python executable icon (5e5e503)
- Check if port is already in use before starting the server (5219263)
Improvements
- Replace
packaginglibrary with lightweight built-in version comparison — one fewer dependency (5219263)
Development / Internal
CI/Build
- Add manual build workflow for testing artifacts without tagging a release (4f9e99e)
All Commits
Hash Message Author 5219263 fix: port-in-use check and remove packaging dependency alexei.dolgolyov 5e5e503 fix: use custom icon for Windows shortcuts instead of python.exe alexei.dolgolyov 4f9e99e ci: add manual build workflow for testing artifacts alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.1-setup.exeWindows (portable) MediaServer-v0.1.1-win-x64.zipLinux MediaServer-v0.1.1-linux-x64.tar.gzDownloads
-
Media Server v0.1.0
Stablereleased this
2026-03-25 23:20:00 +03:00 | 93 commits to master since this releasev0.1.0 (2026-03-25)
Initial public release of Media Server — a standalone REST API server (FastAPI) for controlling system-wide media playback on Windows, Linux, macOS, and Android.
Features
- Remote media control: play, pause, stop, next, previous, volume, seek (83acf5f)
- Built-in Web UI for media control and monitoring (a0d138b)
- Media browser with grid/compact/list views and single-click playback (e16674c)
- Low-latency volume control via WebSocket (32b058c)
- Audio visualizer with spectrogram, beat-reactive art, and device selection (0691e3d)
- Dynamic WebGL background with audio reactivity (be48318)
- Runtime script management with Home Assistant integration (d7c5994)
- Typed script parameters with validation and icon-grid selector (1410a8d)
- Callback management API/UI and theme support (a0af855)
- Multi-token authentication with client labels (71a0a6e)
- Optional authentication — no tokens = no auth (4d1bb78)
- Internationalization (i18n) with English and Russian locales (9bbb8e1)
- PWA support: installable standalone app with safe area handling (a20812e)
- System tray icon with Show UI, Restart, and Shutdown actions (6500d6f, 3f14512)
- Display brightness and power control (a568608)
- Custom accent color picker and primary display indicator (397d38a)
- 3D album art rotation and vinyl desaturation effect (4112367)
- Friendly media source names with brand icons (73a6f38)
- Browser search/filter for media items (5f474d6)
- Header quick links with CRUD management (99dbbb1)
- Swagger API docs button in header toolbar (2b1e09d)
- Update-available notification system (795a15c)
- Persist audio capture device selection to config (fb56e6c)
- UI animations: dialogs, tabs, settings, browser stagger, banner pulse (3cfc437)
- Tabbed UI with browse caching and bottom mini player (98a33bc)
- Slider tracks tinted with accent color (1c0a011)
Bug Fixes
- Tray restart uses
python -mfor reliable process respawn (415231f) - Tray main-thread message loop, numpy <2.0 pin, installer config copy (4021837)
- Loopback device status showing 'Unavailable' after change (0eca829)
- Error handling for unavailable network shares (d1ec27c)
- HTTPException handling in folder endpoints (c5f8c7a)
- FOUC (Flash of Untranslated Content) issues (4f8f59d)
- Windows Task Scheduler auto-start (8077181)
- Vinyl angle persistence on toggle (00d313d)
Development / Internal
CI/Build
- CI/CD pipelines with Gitea Actions, NSIS installer, ES module bundling, ruff linting (5439af1)
- Linux build in release workflow (ddd8788)
- NSIS installer with custom icon, launch-after-install, running-instance detection (26b5f74)
- CI/build improvements and version detection (4ef11c8)
- Warning annotation for existing release fallback (d0830cb)
Refactoring
- Modular frontend: refactor monolithic app.js into 8 modules (92d6709)
- Codebase audit: stability, performance, accessibility fixes (9404b37)
All Commits (82)
Hash Message Author d0830cb ci: use warning annotation for existing release fallback alexei.dolgolyov 4ef11c8 chore: CI/build improvements and version detection alexei.dolgolyov fb56e6c feat: persist audio capture device selection to config.yaml alexei.dolgolyov ff67126 chore: bump version to 1.0.1 alexei.dolgolyov 795a15c feat: add update-available notification system alexei.dolgolyov 1410a8d feat: typed script parameters with validation and icon-grid selector alexei.dolgolyov 1c0a011 feat: tint slider tracks with 15% accent color alexei.dolgolyov 2b1e09d feat: add Swagger API docs button to header toolbar alexei.dolgolyov 415231f fix: tray restart uses python -m for reliable process respawn alexei.dolgolyov 32e2ff5 fix: add --only-binary to pip download fallback (CI compatibility) alexei.dolgolyov 309f547 feat: add default MDI icons to example config scripts alexei.dolgolyov 4021837 fix: tray main-thread message loop, numpy <2.0 pin, installer config copy alexei.dolgolyov d7e10b1 fix: interpolate tag in release body template (f-string) alexei.dolgolyov 3f14512 feat: add Restart and Shutdown tray actions with confirmation dialogs alexei.dolgolyov 26b5f74 feat: improve installer with custom icon, launch-after-install, and running-instance detection alexei.dolgolyov 1f6e4f6 feat: add Launch option to installer finish page alexei.dolgolyov 6500d6f feat: add system tray icon with Show UI and Exit actions alexei.dolgolyov 4d1bb78 feat: make authentication optional — no tokens = no auth alexei.dolgolyov f80f6e9 fix: correct ._pth path in Windows build script alexei.dolgolyov 0216851 docs: comprehensive README update with all API endpoints and features alexei.dolgolyov c76ffb9 fix: handle existing release in create-release job alexei.dolgolyov ddd8788 Add Linux build to release workflow, fix pytest exit code 5 alexei.dolgolyov 5439af1 Add CI/CD pipelines, NSIS installer, ES module bundling, and ruff linting alexei.dolgolyov be48318 Add dynamic WebGL background with audio reactivity alexei.dolgolyov 0eca829 Fix loopback device status showing 'Unavailable' after change alexei.dolgolyov 3cfc437 Add UI animations: dialogs, tabs, settings, browser stagger, banner pulse alexei.dolgolyov a20812e Add PWA support: installable standalone app with safe area handling alexei.dolgolyov 652f10f Reduce visualizer latency, tighten UI paddings, fix mobile browser toolbar alexei.dolgolyov 3846610 On-demand audio visualizer capture + UI fixes alexei.dolgolyov 92d6709 Refactor monolithic app.js into 8 modular files alexei.dolgolyov 9404b37 Codebase audit fixes: stability, performance, accessibility alexei.dolgolyov 73a6f38 Add friendly media source names with brand icons alexei.dolgolyov b11edc2 Redesign header as pill-shaped toolbar group alexei.dolgolyov 3d01d98 Style audio device select, hide mini player volume on tablet alexei.dolgolyov 4112367 Add 3D album art rotation and vinyl desaturation effect alexei.dolgolyov 00d313d Fix vinyl angle persistence on toggle, group player toggle buttons alexei.dolgolyov 0691e3d Add audio visualizer with spectrogram, beat-reactive art, and device selection alexei.dolgolyov 8a8f00f Persist vinyl rotation angle across page reloads alexei.dolgolyov 397d38a Add primary display indicator, custom accent color picker, restart script alexei.dolgolyov adf2d93 Consolidate tabs, Quick Access links, mini player nav, link descriptions alexei.dolgolyov 99dbbb1 Add header quick links with CRUD management and icon enhancements alexei.dolgolyov 6f6a4e4 Improve slider track visibility in both themes alexei.dolgolyov a568608 Add display brightness and power control alexei.dolgolyov 03a1b30 Comprehensive WebUI improvements: security, UX, accessibility, performance alexei.dolgolyov ef1935c Update README with current features alexei.dolgolyov 7ee0a60 Update media browser screenshot alexei.dolgolyov 7f28145 Update documentation screenshots alexei.dolgolyov 80d4dbc Fix browser grid card sizing alexei.dolgolyov caf24db Compact browser grid cards alexei.dolgolyov babdb61 Update media-server: Vinyl record mode and accent color picker alexei.dolgolyov 65b513c Update media-server: UI polish and bug fixes alexei.dolgolyov 84b985e Backend optimizations, frontend optimizations, and UI design improvements alexei.dolgolyov d1ec27c Improve error handling for unavailable network shares alexei.dolgolyov 13df69a Show media title (Artist – Title) instead of filename when available alexei.dolgolyov 4c13322 Show bitrate in browser, remove type labels and Play All text alexei.dolgolyov 5f474d6 Add browser search/filter for media items alexei.dolgolyov 98a33bc Tabbed UI, browse caching, and bottom mini player alexei.dolgolyov 8db40d3 UI polish: refresh button, negative thumbnail cache, and style fixes alexei.dolgolyov f275240 Add Play All, home navigation, and UI improvements alexei.dolgolyov e16674c Add media browser with grid/compact/list views and single-click playback alexei.dolgolyov 32b058c Add low-latency volume control via WebSocket alexei.dolgolyov c5f8c7a Fix HTTPException handling in folder endpoints and install script path alexei.dolgolyov 8d15a2a Update Web UI: Header redesign, thumbnail fix, and title fallback alexei.dolgolyov 1cb83ea Add screenshots to README alexei.dolgolyov 62c42f7 Move install_task_windows.ps1 to scripts folder alexei.dolgolyov eb2aed4 Update media browser UI with fade-in animations and improvements alexei.dolgolyov 7c631d0 Add media browser feature with UI improvements alexei.dolgolyov d5ec5c6 Update Web UI: Improve volume slider responsiveness alexei.dolgolyov 29e0618 Update Web UI: Add server management scripts and improve UX alexei.dolgolyov 4f8f59d Update media-server: Fix FOUC (Flash of Untranslated Content) issues alexei.dolgolyov 40c2c11 Update media-server: Improve script/callback table layout and command editor UX alexei.dolgolyov 4635cac Update media-server: Add execution timing and improve script/callback execution UI alexei.dolgolyov 957a177 Update media-server: Add backdrop click-to-close for dialogs alexei.dolgolyov 8077181 Fix Windows Task Scheduler auto-start alexei.dolgolyov 9bbb8e1 Add internationalization (i18n) support with English and Russian locales alexei.dolgolyov a0af855 Add callback management API/UI and theme support alexei.dolgolyov d7c5994 Add runtime script management with Home Assistant integration alexei.dolgolyov 71a0a6e Add multi-token authentication with client labels alexei.dolgolyov 5342cff Add script execution to Web UI alexei.dolgolyov a0d138b Add built-in Web UI for media control and monitoring alexei.dolgolyov 1a1cfba Add callbacks support for all media actions alexei.dolgolyov 83acf5f Initial commit: Media Server for remote media control alexei.dolgolyov Downloads
Platform File Windows (installer) MediaServer-v0.1.0-setup.exeWindows (portable) MediaServer-v0.1.0-win-x64.zipLinux MediaServer-v0.1.0-linux-x64.tar.gzDownloads