github ronitsingh10/FineTune v1.3.2

4 hours ago

🛡️ Audio Engine Hardening

This release is a comprehensive reliability overhaul of FineTune's audio engine — no new features, just a significantly more robust experience under the hood.

🔇 Crash Recovery

  • Orphaned device cleanup — If FineTune crashes or is force-quit, aggregate devices are now cleaned up automatically on next launch, preventing the "apps go silent" issue
  • Signal-safe crash guard — Aggregate devices are destroyed during crashes before the process exits, reducing orphaned devices in the first place

🎚️ EQ & Audio Quality

  • Soft limiter — Post-EQ clipping prevention catches digital distortion when bands are boosted aggressively
  • Preamp attenuation — Signal is reduced before EQ processing proportional to max boost, preventing internal clipping
  • Nyquist guard — EQ bands near or above the Nyquist frequency (e.g. 16kHz at 32kHz sample rate) now pass through cleanly instead of producing robotic artifacts
  • High sample rate support — Fixed unstable biquad filters on 96kHz+ devices

🎙️ Bluetooth & Voice Apps

  • Bluetooth HFP distortion — Fixed audio distortion when using Bluetooth headphones with voice apps like FaceTime, Discord, and Zoom
  • Extended Bluetooth warmup — Bluetooth device switches now use a 300ms warmup (vs 50ms wired) to account for firmware handshake latency
  • Rapid reconnect handling — Fixed race conditions during rapid Bluetooth connect/disconnect cycles

🔄 Device Switching

  • Crossfade state machine — Device switches use a proper RT-safe state machine, eliminating race conditions that could cause glitches
  • Correct teardown order — Tap lifecycle management enforces Stop → DestroyIOProc → DestroyAggregate → DestroyTap ordering, preventing resource leaks
  • Re-entrant switch guard — Rapidly switching devices no longer causes resource leaks from overlapping crossfades

🔊 Volume Control

  • Fallback chain — Volume reading now tries VirtualMainVolume → VolumeScalar → channel 1, supporting more diverse hardware
  • Correct API usage — VirtualMainVolume queries now use AudioHardwareService APIs (matches system volume slider behavior)

🐛 Bug Fixes

  • DDC monitor leak — Fixed io_service_t resource leak and observer cleanup race in DDC controller
  • Monitor deinit — Added proper observer cleanup on deallocation for DDC, audio device, and process monitors
  • Volume listener lifecycle — Overhauled DeviceVolumeMonitor to properly register and unregister HAL listeners
  • Mono device check — Fixed off-by-one in stream readiness check for mono output devices
  • Escape to dismiss — Press Escape to close the menu bar popup (with smooth animation)
  • Percentage width — Fixed UI jitter in the percentage display field

What's Changed

  • Fix percentage width UI glitch by using fixed width instead of minWidth by @fcsonline in #94
  • feat(ui): add Escape key to dismiss menu bar popup by @AbdulEmad in #97

New Contributors

Full Changelog: v1.3.1...v1.3.2

Don't miss a new FineTune release

NewReleases is sending notifications on new releases.