BetterTrumpet

Release notes / the useful bits

Changelog

New controls, smoother corners, and the small fixes that make BetterTrumpet nicer to live with in the tray.

QuickTrumpet grows up, and the CPU calms down

Device-switching, editable QuickTrumpet presets, a large idle-CPU fix, settings polish, and a batch of community fixes.

QuickTrumpet rebuilt

  • Presets can now set the default output, communications output, microphone, and communications microphone, so speaker plus desk mic versus headset plus headset mic is one click. Devices switch first, then the saved volumes apply.
  • When saving a preset you choose any mix of default devices, device volumes, and app volumes, and device volumes use a checklist instead of the old all-or-default switch.
  • Presets are editable: expand one to see its default devices, devices, and apps with saved volume and mute, then tweak a slider, remove an entry, add a device, or use Update with current mix.
  • New Next preset and Previous preset shortcuts cycle through presets in order and loop, so you no longer need one hotkey per preset.
  • The confirmation toast now lists what actually changed, notes devices that were not connected, and stays on screen for a configurable 1 to 10 seconds.
  • Existing presets still apply unchanged, and the CLI gains bt preset next, bt preset prev, and bt save --defaults.

Performance

  • Fixed a 60 fps render loop that kept running on every volume slider after the flyout closed, because the flyout is hidden rather than destroyed.
  • Focus-lost no longer polls the registry four times a second when the feature is off.
  • In the same test setup, idle CPU dropped about 6x and CPU wake-ups per second fell around 97%, which should matter on battery.

Settings polish

  • Adding an app rule no longer turns on keep muted by default; it creates an empty rule like the classic window.
  • Clear all rules works again from the new settings window.
  • Deleting, clearing, and applying now confirm inline instead of opening gray Windows dialogs.
  • Every page fits the sidebar at the default window size, headers are tighter, and the French translation is complete.
  • Accordions, lists, and page changes animate, the active page indicator slides, and buttons confirm when something is saved.
  • Appearance gets a live flyout preview, editable hex codes, and a Custom chip, while dependent settings are greyed out with a reason and slider values follow your locale.

Flyout, tray, and devices

  • The tray tooltip now shows the right volume when you reverse the scroll wheel quickly.
  • The collapsed flyout follows the default device instead of getting stuck on another one.
  • The device that is already default no longer offers Set as default, and the default device shows a real check mark in the tray menu.
  • The scrollbar hides faster and the collapse and pin buttons move clear of it.
  • Default device switches commit immediately, so virtual and RDP devices no longer snap back.

Community fixes

  • Fixed a theme memory leak where every tray right-click left its menu alive because theme bindings never released.
  • Windows high contrast mode wins over custom colors again.
  • The tray menu no longer shows a white border or acrylic bleeding past its rounded corners, and the submenu fade is back.
  • Portable updates stay portable: they download the portable zip and update in place, keeping your config folder.

Installer

  • Add to PATH now explains what the bt command is for and greys out when BetterTrumpet is already in PATH.

Thank you for 15,000 downloads. Big thanks to @hiyochi for a solid batch of PRs, and to everyone filing issues.

View release on GitHub

The settings files that never shipped

A quick hotfix that puts the new WebView2 settings into the installer and portable builds, plus two crash fixes.

Packaging

  • The React settings UI and the What's-new page were built but left out of the installer and portable zip. The Inno Setup script and portable build now include them, so the 3.3.0 redesign actually reaches installed copies.

Fixes

  • Opening the Privacy & Data page no longer crashes. A // comment had slipped into the XAML template, which XAML does not support.
  • Fixed a startup NullReferenceException caused by a debounce timer that was initialized after the code that first touched it.

If 3.3.0 installed but the settings window looked unchanged, this hotfix is why.

View release on GitHub

Settings overhaul, focus-lost attenuation, and a subreddit

A modern settings redesign, focus-lost audio rules, per-device hotkeys, curated themes, a new What's-new feed, and a community subreddit.

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 rules for launch volume

Set launch volumes by folder, with nested rules and explicit app rules taking priority.

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

A calmer flyout across displays

Better positioning, display scaling, media refreshes, CLI verification, and adjustable window colors and opacity.

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

Volume rules, a calmer popup, and a cleanup

Per-app volume rules, a less twitchy media popup, and a round of reliability fixes from detailed community feedback.

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

The media popup gets a glow-up

A smoother, more Windows-native media experience, plus a few audio controls that are nicer to live with.

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

A small startup fix

A focused hotfix for one slightly awkward Windows startup path after the .NET 8 move.

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

A bigger foundation update

A broad update: .NET 8 under the hood, a calmer first run, better QuickTrumpet workflows, and a more polished mixer.

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

A smoother first launch

The tray shows up sooner, the first-run backdrop behaves, and device controls are less fussy.

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

A quick optimization pass

A small maintenance release that quietly trims a few rough edges.

Under the hood

  • Reduced overhead through a focused internal optimization pass.
View release on GitHub

Less CPU, sharper meters

Less repeated media work, snappier meters, and a handful of edge cases out of the way.

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

A few icon fixes

The Windows speaker option works again, and app surfaces get the right BetterTrumpet mark.

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