Release notes / the useful bits
Changelog
New controls, smoother corners, and the small fixes that make BetterTrumpet nicer to live with in the tray.
Settings redesign
- The settings window is now a modern React/Fluent UI interface with a near-black shell, violet accent, and translucent glass cards covering every settings page.
- The sidebar has a real search engine with fuzzy matching, accent folding, and bilingual synonyms.
- Record a custom hotkey for each playback device in Shortcuts to switch defaults instantly.
- The theme registry went from 30 presets to 12 fully crafted ones across 5 categories, with per-theme window background opacity.
Focus-lost and device switching
- Apps can now be attenuated or muted when they lose focus, with configurable fade and per-app scope.
- When Windows leaves an old audio session on a previous endpoint after switching defaults, it is now hidden instead of showing as a duplicate.
- New setting to show a notification when Windows changes the default audio device.
Polish
- Volume slider click position now aligns with the thumb center, and held track clicks glide smoothly instead of jumping.
- New audio sessions now grow into the flyout smoothly instead of making the window pop taller.
- The mixer window remembers its size between sessions.
- Toast notifications redesigned with a dark theme and proper stacking when switching devices quickly.
- Chinese localization improved for zh-CN and zh-TW.
- Hotkey recording no longer gets trapped by focused buttons, and stuck paused states are cleaned up on unmount.
Telemetry and What's-new feed
- BetterTrumpet now sends a simple anonymous ping on startup for rough usage stats. No Sentry, no breadcrumbs, no device names. Toggle it off from Settings > Privacy.
- A new What's-new page in the tray menu shows updates, polls, and surveys directly inside BetterTrumpet (beta).
- You can vote on polls and surveys right from the feed, with a free-text option for specific feedback.
- The whole feed is disableable from Settings > Privacy.
There is also a new subreddit now: r/BetterTrumpet — come hang out, report bugs, or just say hi.
View release on GitHub ↗Folder-based launch volume rules
- Set a default volume for a folder so new desktop apps launched from it start at the level you choose.
- Nested folders use the deepest matching rule, so a specific game or tools folder can override a broader rule.
- Explicit per-app Set at launch or Lock rules stay more specific than folder defaults, while hard mute continues to compose normally.
- Folder rules can be added, browsed, edited, and removed from Settings, and they are included in settings export and import.
A small but useful quality-of-life update for apps that regularly start louder than expected.
View release on GitHub ↗Better positioning
- The flyout stays attached to the correct taskbar edge and enters the topmost band before its opening animation.
- Custom display scaling now converts tray and monitor coordinates correctly and reacts to DPI changes instead of drifting or overflowing.
- The media popup refreshes its title and artwork when a media provider misses a track-change event.
CLI reliability
- set-default now sets both the Console and Multimedia playback roles and verifies that Windows accepted the selected device.
Appearance
- Custom window colors keep the Windows Acrylic look instead of painting over the material.
- Window background opacity is adjustable, and Midnight Studio, Graphite, and Night Shift join the preset palette.
Nothing dramatic, just less UI drifting, fewer stale media details, and a CLI that verifies the result.
View release on GitHub ↗Per-app volume rules
- Set a volume when an app starts — BetterTrumpet applies it once at launch and then stays out of your way.
- Lock an app to a volume and BetterTrumpet will put it back when Windows or the app changes it.
- Hard mute and volume rules now live in the same app rule, work together, and are editable from the flyout or Settings.
- Existing hard-mute data and older settings exports are migrated instead of being thrown away.
Media popup
- Less twitchy hover: the popup now gets out of the way when the flyout opens, waits longer before closing, and tolerates a wider mouse gap around the edge.
- When several media apps are around, an actively playing session gets priority over a paused one.
- Artwork cache is refreshed when Windows switches the active media session, cutting down on stale thumbnails.
CLI and reliability fixes
- Device names, app names, help text, and JSON output no longer mangle Unicode through the CLI or named pipe.
- Microsoft Store installs no longer show or initialize the GitHub/Inno updater. GitHub, Chocolatey, and Winget installs keep the normal updater.
- Peak meters are now centered in Dotted, Blocks, Bars, and Wave styles (contributed by @DARKFiB3R in PR #26).
- The app, CLI, installer, and packages all agree that this is 3.2.1.
Thank you for 8,000 downloads. Big thanks to @vertigo220 for the detailed reports and to @DARKFiB3R for the peak-meter fix.
View release on GitHub ↗Media popup
- The popup now uses the same translucent acrylic treatment as the main flyout.
- The timeline interpolates between Windows updates, so playback feels smooth and seeking works with both clicks and drags.
- Volume changes now affect the app that owns the active media session, not every app at once.
- Track, artwork, accent, and expand/collapse transitions are smoother and skip the old first-use stall.
- An optional setting lets you open the popup while media is paused, ready for a quick resume.
- Compact Phosphor Bold icons and clearer chevrons make the controls easier to scan.
Audio controls
- Volume tick feedback can now be disabled, is fully localized, and survives settings export/import.
- Hard mute can stick with an app whenever its audio session comes back, even after a relaunch or reboot.
- Separate monitored inputs stay separate when Windows exposes them as distinct session groups.
- Mute, solo, hide, and app entrance feedback all got a smoother pass.
Tray and reliability
- Tray menus are easier to scan, localized, and a little more acrylic.
- Tray initialization and launch-at-startup handling are more dependable on .NET 8.
- Troubleshooting and crash bundles now include more useful recent support context.
View release on GitHub ↗What changed
- The in-app startup setting now writes BetterTrumpet.exe instead of BetterTrumpet.dll.
- Onboarding and settings now find the real running process before updating the Windows startup entry.
- The installer was already fine, so its executable path stays unchanged.
Already hit it? Install 3.1.1, then toggle “Launch at startup” off and on once. That repairs the entry.
View release on GitHub ↗Under the hood
- Moved BetterTrumpet to .NET 8 while keeping the existing x86 desktop workflow intact.
- Brought installer, portable, Chocolatey, Winget, and Microsoft Store packaging into the same 3.1 release line.
First run and privacy
- The first run now goes straight through audio setup, appearance, privacy, readiness, and tray pinning.
- Telemetry choices explain what diagnostics are for and ask for a clear confirmation when disabled.
- You can pick the system look or BetterTrumpet palette during onboarding.
QuickTrumpet and the CLI
- QuickTrumpet presets can now be saved, previewed, created, and applied as reusable audio setups.
- Automation gets app resolution, rule previews, batch execution, preset helpers, and friendlier aliases.
- Scripts and shortcuts can mute, unmute, or toggle a specific app.
Mixer polish
- Theme fallbacks, slider motion, optional volume ticks, peak meters, and session animations all got a tune-up.
- Early tray startup is sturdier, and support/crash reports now include zipped diagnostic bundles.
- The changelog window is more reliable with localized copy and cleaned-up resources.
View release on GitHub ↗Startup cleanup
- Fixed the first-launch backdrop issue that used to send you on a detour through settings.
- Theme initialization is calmer now, with fewer flyout flashes at startup.
- Device loading happens in the background, so the tray appears sooner.
Devices and UI
- Right-click a device to hide it individually.
- Device header actions and the quick default-device switch are easier to reach.
- Hidden devices and context menus behave more consistently.
CLI
- bt doctor gives you a quick audio checkup, while bt batch chains commands together.
- Shorthand aliases make common app volume and mute actions quicker to type.
View release on GitHub ↗Under the hood
- Reduced overhead through a focused internal optimization pass.
View release on GitHub ↗Performance
- Album artwork is fetched once and cached instead of being requested three times on every track change.
- Album-art theme updates react to real track changes instead of polling continuously.
- Tray animation work, legacy player polling, and hot-path trace logging are all a little lighter.
Fixes
- Fixed peak-meter frame limiting so meters feel smooth again.
- Large device lists now stay inside the screen instead of making the flyout disappear.
- Hidden apps can be restored one at a time, and closing after solo no longer re-mutes the selected app.
Controls
- Middle-click an app icon to hide it instantly.
- Ctrl-click an app row to toggle solo on and off.
- App icon tooltips can be switched on or off from classic settings.
View release on GitHub ↗What changed
- The legacy icon option now displays the Windows system speaker icon as intended.
- Tray animation starts and stops correctly when the legacy icon setting changes during playback.
- Alt+Tab and taskbar surfaces now use the BetterTrumpet logo instead of the old EarTrumpet icon.
View release on GitHub ↗