╔══════════════════════════════════════╗
║ BetterTrumpet v2.4.0 ║
╚══════════════════════════════════════╝
Features
- 28 built-in themes in 7 categories (Dark, Light, Neon, Pastel, Nature, Retro, Special). Transitions are animated with color morphing between themes.
- You can now save your own themes, delete them, and import/export as
.bttheme files.
- Volume profiles — capture your current per-app volume setup and restore it later. Exports as
.btprofile.
- Added a volume slider in the media popup. Uses a custom track with translucent fill + gradient that picks up the album art dominant color.
- Cover art in the expanded view now applies a light gaussian blur (radius 2) when the source image is low-res (< 300px, typical for YouTube/Chrome SMTC thumbnails at 150x83). High-res sources like Spotify render sharp.
Technical
RenderOptions.BitmapScalingMode=HighQuality on both AlbumArtBackground and ExpandedCoverImage — uses Fant resampling instead of default Linear
- SMTC async wait timeouts bumped from 500ms to 2000ms (
TryGetMediaPropertiesAsync, OpenReadAsync, ReadAsync) — Chrome is slow to deliver thumbnails
- Extracted named color brush resources +
ActionButtonBorder style in SettingsWindow.xaml to DRY up ~20 identical button borders
- Legacy media polling is now adaptive: 5s interval when idle, 500ms when media is active. Cuts CPU usage when nothing is playing.
- Removed dead
EarTrumpetCustomizationSettingsPageViewModel (928 lines). Extracted ColorTheme model to its own file.
- Fixed
VolumeSlider rendering on DeviceView, fixed album art timer not disposing on window close
ColorPickerPopup fix: was using stale color reference
VolumeIconGenerator: cleaned up redundant path generation