Releases: jordanmgibson/WindowsLosslessSwitcher
Releases · jordanmgibson/WindowsLosslessSwitcher
Release list
Windows Lossless Switcher v1.0.0-beta.7
Added
- Complete "Nocturne" redesign of every surface. The main window is now a
compact now-playing hero card with album artwork, a large format readout,
the previous format ("was …"), and a live status line; "All settings"
opens a new dashboard window with Status, Switching, Notifications, Cache,
and Updates pages. Bundles the Inter typeface (OFL) and Phosphor icon
path data (MIT). - A live mini-spectrograph replaces the static brand mark in the hero title
bar and the dashboard's nav tile. It follows Apple Music's audio only —
capture is scoped to the Apple media agent's process tree via WASAPI
process-loopback, so audio from other apps never moves the bars. Capture
runs only while a window showing it is visible, pauses when playback is
idle, and restarts itself after every device format switch. On Windows 10
the audio engine only allows one process-loopback stream per target process
for the app's lifetime (later attempts fail permanently), so there the
capture session is kept alive across window hide/show and playback idling,
and is only re-created when Apple Music's media agent restarts under a new
process id. - The switch popup was redesigned and now follows the notification settings:
with "Include song, artist, and album" on it is a rich card with artwork
and the old→new format transition; with it off, a minimal pill with just
the new format. - The tray icon now opens a flyout with a mini now-playing row (artwork,
track, current format chip), the live switch status, and the menu actions;
double-click still opens the main window. - The Status page shows the active device's rate/bit-depth chips (current
format lit, allow-list exclusions struck through), the resolver source
("Catalog match" / "Local file"), a collapsible raw-details card, and an
activity log of recent switches and cache events. - The cache page shows live cache statistics ("N cached lookups · storefront:
xx") and the storefront detected from the Windows region. - "Allowed hardware formats" section in the app window: check exactly the
sample rates and bit depths your physical hardware accepts (listed from the
active target device), backed byallowedSampleRatesand the new
allowedBitDepthssetting. At least one of each stays enabled; checking
everything applies no restriction. - The remaining settings that previously existed only in settings.json are
now editable from the app window: the Apple Music storefront override
(applies after restart), verbose diagnostics, and the automatic Apple
Music restart on playback-recovery failure.
Changed
- Both app windows use custom dark chrome (rounded on Windows 11, square on
Windows 10) with the caption drag region and minimize/close buttons drawn
by the app; closing still hides to the tray. - The old Win32 tray context menu was replaced by the flyout.
Full changelog: https://github.com/jordanmgibson/WindowsLosslessSwitcher/blob/main/CHANGELOG.md
Windows Lossless Switcher v1.0.0-beta.6
Added
- Persistent format cache — successful catalog matches are cached locally (
format-cache.json), so repeat plays of the same track switch instantly without a network lookup. Capped, versioned, storefront-scoped, re-verified in the background on a configurable interval (formatCacheRefreshDays), and clearable from the app window. Contributed by @memoz (#5). - A toast notifies when a background re-check finds a track's format changed (applies next playback).
allowedSampleRatessetting — an allow-list of rates your physical hardware accepts. Resolved rates are clamped to the list (preferring the same 44.1/48 family, so 88.2 clamps to 44.1 rather than 96) before being applied — for chains where a virtual cable or ASIO bridge between the switched endpoint and the real DAC reports rates the hardware can't lock to. Proposed and prototyped by @mg42ns (#7).
Changed
- Tracks no resolver can identify now fall back to a conservative 24-bit / 44.1 kHz instead of a format guessed from the Apple Music audio-quality tier (previously Hi-Res Lossless → 24/192, Lossless → 24/48). The tier only describes the account's ceiling, not the playing track's real rate. A toast (when enabled) says the rate was undetermined.
- Catalog lookups use the Apple Music storefront matching the Windows region (previously always "us"), overridable with the new
appleMusicStorefrontsetting. - Catalog matching considers per-track performer credits and album-part metadata, improving matches for compilations, multi-artist albums, and classical recordings.
- Local ALAC files resolve to their true bit depth read from the ALAC magic cookie (the container's legacy field frequently claims 16-bit for 24-bit Hi-Res files); lossy local files apply the lowest supported device depth instead of inflating to the device maximum.
- Verbose per-operation diagnostics are now actually gated by
enableVerboseDiagnostics.
Fixed
- Update dialogs show the full version including the prerelease suffix (previously "Version 1.0.0 is available" when offering 1.0.0-beta.N).
Thanks to @memoz (format cache, device-table report) and @mg42ns (allowedSampleRates design and prototype) for the contributions.
Device report (README table): Chord Hugo 2 confirmed working, reported by @memoz (#6).
Windows Lossless Switcher v1.0.0-beta.5
v1.0.0-beta.5
Windows Lossless Switcher v1.0.0-beta.4
Fixes bit depth stuck at 16-bit on USB DACs that only accept 24-bit audio in a 32-bit container (#1). The format probe now tests padded (24-in-32) and 32-bit integer PCM layouts, so these devices are correctly detected as 24/32-bit capable.
Windows Lossless Switcher v1.0.0-beta.3
Match Apple Music's Windows 10 media session by executable name On Windows 10 (verified live on 19045), GSMTC attributes Apple Music's media session to the bare executable name "AppleMusic.exe" rather than the package AUMID it reports on Windows 11, so the session filter never matched and the app sat at "Waiting for Apple Music" forever. Accept both identifiers. Verified end-to-end in a Windows 10 22H2 VM: track detection, PlayCache resolution, a live 48 kHz to 44.1 kHz device switch, and nudge-based playback recovery all work.
Windows Lossless Switcher v1.0.0-beta.2
Lower OS floor to Windows 10 2004 and harden GSMTC diagnostics Every API the app uses shipped by Windows 10 1809; the Windows 11 24H2 floor was inherited from Apple Music's Store listing, which a community tester has shown to be wrong in practice (Apple Music runs on 10). Retarget to net8.0-windows10.0.19041.0, log the OS version at startup, survive a failed GSMTC manager request instead of crashing startup, and re-enumerate sessions every 30 s while no Apple Music session is attached so exported diagnostics show whether the session is visible on Windows 10 at all.
Windows Lossless Switcher v1.0.0-beta.1
Initial open source release