github yuzicapp/yuzic 2.17.0
Yuzic 2.17.0

2 hours ago

Version 2.17.0

TestFlight build 138 · Play version code 159

Buttons that work both ways

  • A headphone or car button unpauses again. Pressing an AirPod stem paused the music and then did nothing at all — every press after it was read as another pause. Yuzic asked the system which state it was in, and that is a question the system is not obliged to answer truthfully; it goes by what it last said itself now

Crossfade

  • Album segues stay hard-cut. With crossfade on, a record mastered to run straight from one track into the next was faded through its own join — the overlap doubled, and the seam it was covering sounded worse than it does bare. Turning "Fade through segues" off has always promised this and never delivered it: the engine implemented it and waited on a flag the app never set
  • A crossfaded track counts as fully listened to. The fade-out is time you can still hear the song, and it was not being counted, so tracks at the boundary quietly fell short of the scrobble threshold. Measured at four seconds lost on an eight-second crossfade, on both platforms

Settings that only offer what your server can do

  • Loudness normalisation appears where your server measures loudness. It was offered to everyone while only Navidrome reports the figure it needs — on Jellyfin, Emby, Plex and local files the switch corrected against nothing
  • Streaming quality appears where the stream obeys it. Plex plays the file it is pointed at and takes no quality request, and a local file has nothing to transcode, so on both of them setting cellular quality to Low still pulled the original

Your library

  • Jellyfin and Emby: an artist's top songs, ranked by what you have played. The section was built for it and only ever appeared on Subsonic servers; the adapter contract had promised the fallback since it was written
  • Playlists are found when search asks your server. Switching Search from this device to your server quietly dropped them on every server — no server search endpoint returns playlists, and they are synced whole, so the on-device index is the authority on them
  • Album release dates on Jellyfin and Emby, which were requested where nothing read them and read where nothing requested them — so discographies sorted by a date that was always missing
  • A song's BPM and its path on the server, in its info sheet, using strings that had been translated into four languages and never shown

Under the hood

  • ios/Podfile.lock records what a clean install actually produces. Its Expo checksums had been wrong since 8 May, which costs nothing in CI — every build runs pod install --repo-update — and fails local builds at the "sandbox is not in sync" phase
  • The adapter contract file had reached its 400-line limit, so no new capability could be declared in it at all. SongsApi moved out to its own contract, which is what the two new capability flags needed

Don't miss a new yuzic release

NewReleases is sending notifications on new releases.