Skip to content

v1.7.0

Latest

Choose a tag to compare

@kushalpandya kushalpandya released this 03 Sep 22:33
· 1 commit to main since this release
524f361

Internet Radio, Crossfade & ReplayGain, AirPlay 2, redesigned Library and Discover, custom playlist artworks, and up to 4x lower CPU usage

Important

This is the last release to support macOS 14 (Sonoma) and Intel Macs.
v1.7.x will continue to receive point fixes on macOS 14 and Intel when necessary, but the next major release will require macOS 15 or later and Apple Silicon.

Features

  • Add support for Internet Radio with manual HLS stations, popular stations from radio-browser.info, and station collections (#352, fixes #100)
  • Add AirPlay 2 support to play music on compatible devices (#363, fixes #112)
  • Add Crossfade between tracks, configurable in Settings > General > Playback (#347, fixes #266)
  • Add ReplayGain volume normalization with gain source and preamp selection (#348, fixes #102)
  • Redesign Discover with Featured, Recently Played, and Most Loved & Played sections (#350)
  • Redesign Library tab into a 3-column layout, and allow pinning any entity type to the Home sidebar (#356)
  • Add support for using a custom local or online image as artwork for artists and playlists (#359)
  • Add support for negative operators (is not, does not contain, does not start with, does not end with) and regular expressions in Smart Playlists (#358)
  • Group tracks by album when viewed under Artist, Album Artist, and Composer, with per-group sorting and play controls (#371, fixes #90, #95, #99)
  • Add disc number sections for tracks within multi-disc albums (#369, fixes #120)
  • Show the full list of supported audio formats in a grouped popover, reachable from Settings > Library (#346, fixes #211)
  • Add Mini Player action to the menubar dropdown (#365)
  • Revamp the onboarding experience for new users (#353)

Enhancements

  • Remove SFBAudioEngine and make CrescendoKit the default (and only) media engine for playback and metadata extraction (#343)
    • Note: this drops playback support for the MOD, IT, S3M, and XM tracker formats, and adds a large number of new formats in return. See the updated list in the README or the in-app formats popover.
    • Thanks to Stephen Booth for building and maintaining SFBAudioEngine all these years.
  • Reduce CPU usage during playback by up to 4 times, idle to ~0% CPU when nothing is playing, and automatically engage macOS App Nap when eligible (#364, fixes #274)
  • Speed up app launch by rewriting state management and restoration (#353)
  • Adapt playback queue management and Now Playing publishing to Crescendo APIs (#344)
  • Add Years to the Discover carousels alongside albums, artists, genres, and playlists (#373)
  • Allow toggling off Internet Radio and artist info refreshing, and make artist info fetching fail-safe (#366)
  • Give Genre, Year, Decade, and Folder entities their own distinct procedural artwork, and animate dominant artwork colours on first load (#356)
  • Harden database integrity against invalid album years, make track and orphan cleanup atomic and scalable, and clear dangling pins and entities (#372)
  • Hide scrollbars in the lyrics view for a cleaner, more immersive look (#340) (Thanks @akkva!)

Fixes

  • Fix the track Go-to menu incorrectly splitting artist names containing separators like & or / (#338, fixes #337)
  • Fix tracks occasionally showing incorrect artwork (#368, fixes #357)
  • Fix bilingual lyrics highlighting for lines sharing the same timestamp (#342) (Thanks @akkva!)
  • Prevent the track details sidebar from shrinking past a minimum width while resizing (#367, fixes #355)
  • Fix a regression where advancing tracks could behave incorrectly, plus assorted UI polish across the app (#356, #374)

Others

  • Consolidate all post-v1.6.1 database migrations into a single migration for a clean schema ledger (#372)
  • Add a preflight check for missing API keys when building the installer (#334)
  • Isolate debug builds with a distinct app icon and debug configuration for --dev installers (#341)
  • Run release checks on pull requests in CI (#366)
  • Replace .aspectRatio(contentMode: .fill) with .scaledToFill() to clear SwiftLint violations (#362)
  • Update Sparkle to 2.9.6, refresh the README and Acknowledgements, and bump the build version (#374)

Full Changelog: v1.6.1...v1.7.0