github jmshrv/finamp 0.9.16-beta
Finamp Beta Update 0.9.16 - The Hackathon Update

latest releases: 0.9.19-beta, 0.9.18-beta
pre-release4 months ago

Note

This release was previously available through Testflight for a few hours before we pulled it due to upgrade issues for some users. We hope that the issues have now been resolved, but if you experience startup errors after upgrading, please make sure to save the logs and then open an issue here on GitHub to let us know about it! Without logs it's extremely difficult to diagnose what went wrong :)

Hi everyone!

As you might have heard, we recently held Finamp's first Hackathon, "Finamplify".
The hackathon was a success, and we received many contributions from both long-standing and new contributors alike!
That's why there are a ton of new features and improvements in this release, so a huge thanks to everyone who participated! Many long-standing bugs and issues were resolved as well, making this a very well-rounded update!
To learn about everything new, read on! And have fun trying it out!

If you're not using the beta yet (how to join) (click to expand)

The beta is free and open to everyone, but we'd like to get as much feedback as possible. So please do try it out and then let us know what you think!

  1. Join the Finamp Beta Testers Discord server
    • This step is optional, but since we're looking for feedback, it would be great if you could join!
    • Alternatively, there's a discussion for the beta right here on GitHub: Redesign Beta discussion
  2. Take note of your current Finamp settings, since this is a beta it could happen that the update changes some of them.
    • Downloads should be migrated, but since the new download system is completely different, there might be inconsistencies.
  3. On Android, join the beta on Google Play or download the APK file from below.
    On iOS, join the beta on TestFlight.
    • We're currently not able to offer a beta on F-Droid (more info here), but you can use an app like Obtainium to automatically download the latest APK from GitHub.
  4. Open Finamp and enjoy!

Keep in mind that not all of the text in the beta has been translated yet. If you're missing a translation, you can now contribute it on Weblate!

Bug Fixes

  • Finally fixed the "hanging/freezing on splash screen" issue! Huge thanks @corngood!
  • @corngood also fixed resuming from the media notification when Finamp was killed in the background (on Android)
  • Fixed the parent album opening after deleting a track (thanks @flloschy!)
  • Fixed library downloads missing from the downloads screen (thanks @Komodo5197!)
  • Prevent Finamp starting to play right-away on desktop (thanks @Komodo5197!)
  • Don't show sync button for media that hasn't been downloaded yet (thanks @Komodo5197!)
  • Tried to fix missing album art in media notification

What's New

Proper Differentiation Between Album Artists and Performing Artists (thanks @lukaslindnermusic!)

It's a Bird! It's a Plane! Meme - But with Performing Artist and Album Artist

For a while now Finamp hasn't properly handled artists. Online mode showed performing artists, offline mode showed album artists, but there was no clear distinction between the two.
This has now been fixed, and you can now choose between browsing/searching (performing) artists and album artists on the artists tab, both in online and offline mode!
As part of this change, performing artists now have a section with albums which they appear on, but aren't an album artist. This matches Jellyfin's "Appears On" secion.

Note

Since previously only performing artists were downloaded, you'll need to run an automatic "repair" of the downloads in order for album artists to show up in offline mode.
For that, go to the Downloads screen, and then click the little hammer/tools icon at the top right (the center icon of the three). The repair might take a few minutes to complete.

Additionally, it's now possible to collapse the various sections (top tracks, albums, appears on) on the artist screen.

Shoutout to @Komodo5197 for assisting with the offline mode integration!

Automatic Offline Mode (thanks @flloschy!)

Finamp will now automatically enable offline mode if all network connectivity is lost (WiFi *and mobile data). This will behave just like the regular offline mode, aside from automatically returning back to online mode once connectivity becomes available again.
If you manually enable offline mode, it will still active indefinitely.

There is a new setting (see below) that lets you choose in which scenarios offline mode should be enabled. You can choose between all connectivity being lost, WiFi/Ethernet connection being lost, or never switching automatically.

This should be a nice improvement for anyone who hasn't exposed their Jellyfin server to the internet or via a VPN, or who does lives in an area with poor reception.

Keep in mind that the queue will not be reloaded when toggling offline mode, so if you start playback during online mode, Finamp will still try to fetch your media from the server, even in offline mode. That is of course unless you have the tracks downloaded already, since Finamp currently always prefers downloaded media.

New Transcoding Options (thanks @felix920506!)

Ever since its humble beginnings, Finamp supported transcoding to AAC when streaming from the server.
Now it is finally possible to choose alternative formats to transcode to, enabling not only more flexibility, but much more efficient transcoding with modern codecs such as OPUS.
We even have support for transcoding to FLAC now, for all you HiFi lovers out there who want to stay as lossless as possible while staying compatible with all kinds of devices. This should now allow Finamp to play virtually any source format without suffering an immense loss in quality compared to the original media.

For lossless target formats, such as FLAC, it's not possible to choose a bit rate.

Shoutout to @em1lyy for trying to add this over three years ago! Jellyfin and the mobile OSs simply weren't ready for it back then...

Customizable Track Swipe Gestures (thanks @lukaslindnermusic!)

A while ago we added a setting to change what happens when swiping left or right on a track within an album or playlist.
We have now enhanced this feature, allowing different actions for different directions, adding more possible actions, and also allowing to disable the swipe gesture for one or both directions completely. The latter should help to avoid accidentally adding a track to the queue when using gesture-based navigation.

You can customize this in the "Interactions" settings.

Support for Remote Controlling Finamp via 'Play On' (thanks @pinsarda!)

We added partial support for Jellyfin's 'Play On' feature!
This means you can now control Finamp remotely from other Jellyfin clients which support this feature, like the official (web) apps! Playback controls will now also show up on the admin dashboard. You can even send a message to Finamp 🤯
The feature is enabled by default but can be disabled if desired.

Now, you might be asking yourself: "Why? What's the use in controlling a mobile app?"
There are several reasons:

  • We agree that the more useful feature would be using Finamp to control other clients, like the headless Jellyfin mpv Shim, or the Android TV app. This uses the same technical foundation, but is more complicated to support in Finamp, so we decided to start with the easier part.
  • Finamp has (alpha) support for desktop platforms. You could theoretically have a media center PC connected to your stereo, or even just an old Android tablet. With Play On support, you can controll playback on either the player device itself or remotely via your phone or laptop.
  • Consistency and feature parity is important to us. We don't want the Jellyfin client ecosystem to become even more fragmented, with each client supporting some features but not others. That's why we're trying to implement any existing Jellyfin features that apply to a music-only client.

We are also trying to add support for the inverse direction (using Finamp to control other clients) soon, but don't have a concrete timeline yet.

Caveats

Play On is a complex feature, and since only a few clients support it, the documentation and compatibility aren't great. We did our best to provide you with a pleasant experience, but there are some things you should keep in mind:

  • Right now only admin accounts can remote-control other clients. This is a known bug with the Jellyfin server, with a fix in the pipeline
    • If you aren't logged into Finamp with an admin account, you should log into one within the Jellyfin app that you want to use for remote controlling
  • Playlists are currently not played in the correct order. This is also a known bug with the Jellyfin server
    • You can simply click on the first track in the playlist; this will result in the correct order. Shuffle works in any case.
  • If Finamp is suspended in the background to save battery, you won't be able to connect to it
    • If you want Play On to work reliably and don't mind additional battery drain, turn off "Enable low-priority state on pause" in Finamp's "Audio Service" settings, and disable any battery optimizations for the Finamp app in your system settings.
  • Sometimes the remote control / playback info doesn't show up right-away when connecting from another client. It should show up eventually, and any controls should still work fine
  • Some buttons might not work yet, for example toggling the loop and shuffle modes or removing tracks from the queue

If you notice anything else that doesn't seem to work, please let us know!

Volume Control & New Output Menu

Together with support for the 'Play On' feature, we also added an internal volume for Finamp that lets you reduce playback volume independently of the system volume if needed.
This is also used to allow controlling the volume remotely via Play On.

The volume slider can be found in the new Output menu, which you can access via the "Output" button in the lower left corner of the player screen.
The cast/AirPlay button was also moved into this menu for consistency.

On Android, the output menu has some additional tricks up its sleeve. It shows available output devices, and you can switch between these directly from within Finamp (e.g. switching between Bluetooth headphones and the device's loudspeaker).
There's also a button to connect to more devices, which currently opens the Bluetooth settings.

Fading In and Out on Play and Pause (thanks @fmuehlis!)

You can now configure durations for gradually increasing the volume when resuming or lowering it when pausing.
You can set two different durations for fade in and fade out.

While the volume is being faded, a small animation will be shown around the play/pause button.

New Settings

  • Added settings for configuring fade in / fade out durations
    • Settings > "Audio Service" > "Audio Fade-In Duration" and "Audio Fade-Out Duration"
    • Default is 0 ms for both (unchanged)
  • Added setting for choosing in which scenario offline mode will be activated automatically
    • Settings > "Interactions" > "Automated Offline Mode"
    • Default is "Disconnected" (when no network connection is available at all) (changed, previous behavior equivalent to the "Disabled" option)
  • Added settings for configuring what happens when swiping tracks left and right
    • Settings > "Interactions" > "Swipe to Right Action" and "Swipe to Left Action"
    • Default is "Add to Next Up" when swiping left (unchanged), and "Disbled" when swiping right (changed, previous behavior equivalent to the "Add to Next Up" option)
  • Added settings category for "Playback Reporting & Play On"
  • Added setting for enabling Play On support
    • Settings > "Playback Reporting & Play On" > "Enable 'Play On' Support"
    • Default is enabled (changed)
  • Added setting for configuring Play On session timeout
    • Settings > "Playback Reporting & Play On" > "'Play On' Session Timeout"
    • Default is 90 seconds
  • Added setting for configuring how soon Finamp will try to reconnect the Play On connection
    • Settings > "Playback Reporting & Play On" > "'Play On' Session Reconnection Delay"
    • Default is 5 seconds
  • Moved "Playback Session Update Frequency" and "Report current queue to server?" settings into the "Playback Reporting & Play On" settings

Other Changes

  • Improved top spacing on the lyrics screen (thanks @F-4Dev!)
  • Added haptic feedback when swiping on the Now Playing bar to switch between tracks (thanks @flloschy!)
  • Your last-used download location will now be remembered for the next download (thanks @matty-r!)
    • This only applies if you have multiple and don't already have a default location selected
  • Playlists can now always be deleted, even if you haven't enabled the setting for deleting media from the server (thanks @flloschy!)
  • Haptic feedback should feel more natural/normal now (thanks @edeuss!)
  • Improved menu and queue positioning on foldable devices (thanks @Maxr1998!)
  • Some internal house keeping by @Bond-009, @Maxr1998, and of course @Komodo5197. Thanks a ton!

Upcoming Features

We have a lot of features planned for the future, and we're always open to new ideas. Here are some of the things that we're planning to add:

  • A proper home screen
  • Redesign of more menus and screens
  • Separate server addresses for home networks
  • Sleep timer improvements
  • More contrast and accent color improvements
  • Desktop Support
    • This is now in a "soft release" stage, where it might already be available for your platform. An official release will happen in the future, but is currently not a priority.

You can take a look at the full list and current progress in the Redesign project.
We also have a more up-to-date hackathon project board: https://github.com/users/jmshrv/projects/5


Wow, that was a lot!
But we're not done yet: this update doesn't include all the improvements from Finamplify, so stay tuned for another big beta update in a bit!
We're now ramping up the development pace, with hopes to bring all the recent improvements to the stable version of Finamp very soon. And it would be awesome if you would like to help us with that!

Thank you for using Finamp!

- Chaphasilor


Download Links

Don't miss a new finamp release

NewReleases is sending notifications on new releases.