Hi, I’m using Navidrome as server. My use case is to play music, including cases when I know I’ll be in places with very poor (or very expensive) internet connectivity for weeks. And I don’t want to manually select songs to play while driving, so I need an infinite playlist, and pre-download it over wifi.
The current solution I’m using is DSub, which allows to have up to 100 songs in the playlist, and to pre-download them, and to automatically add more songs when first songs in the playlist are played. But DSub has numerious bugs, so I tried Symfonium to replace it. There are two missing features though:
Unfortunately, Symfonium only allows to pre-cache only up to 9 next songs from the playlist according to what I saw in settings (and even that doesn’t work properly - I’ll open a separate issue for that).
Symfonium has a “Continuous playbak” feature in auto actions, which seems to intend to do what I want - to add more songs to the playlist automatically, but from my tests it’s only triggered when I’m about to listen the last song in the playlist - which makes it impossible to pre-cache anything, since the songs to download are not decided yet until I almost ran out of them.
I also enabled option of adding songs from pre-cache to rolling cache to have more songs downloaded; but that relies on playback to already happen, without pre-downloading songs which were not played yet.
Problem solved:
Being offline for weeks.
Brought benefits:
I will be able to drive the car in remote areas without worrying about music not playing - either because it wasn’t downloaded, or because the playlist finished
Other application solutions:
DSub solves this by allowing to download many more songs from the playlist, and by adding more songs to the playlist sooner
Additional description and context:
I uploaded the logs from the app. But since my trial is about to expire, I probably won’t able to test the fix, if it’s ever implemented. Maybe it’s possible to reset the trial though, we’ll see.
The setting with the max. 9 cached tracks is the playback cache, which is only intended for short network disruptions.
There is a permanent cache where you can put stuff. If you want your playlist to be cached automatically, go to the playlist view, hit the three dots next to your playlist, and use “Configure auto offline cache”.
Symfonium has excellent offline support, I think there is no scenario left open. You can offline-cache your whole library if you want. Use the permanent cache for, well, permanent caching, and the rolling cache if you want a size-limited cache (does not work with smart playlists though). Read more about it here: Offline media cache and downloads
Thanks for answer, but my music library is too large to put it all to the permanent cache. And I specifically don’t want to select manually certain songs/albums to download and only ever play them.
does not work with smart playlists though
Yeah, this seems to be the issue. My “smart playlist” doesn’t need to be very smart, just all my tracks mixed
Use the permanent cache for that playlist only then.
Offline caching is not done from the queue, btw., except for the “playback cache to rolling cache” option, but that’s not what you want for hundreds of songs. Create a smart playlist with random order (for the mix), limit it to 500 or how many songs you think you need, and then enable auto-offline cache for that list.
But that’s not a playlist in navidrome’s sense, not an m3u file. It’s whatever queue is generated when I click “mix tracks” in the home screen of Symfonium. It doesn’t have an option to create permanent cache, does it?
But in that case the playlist won’t be infinite - when all the 500 songs are played, the music will stop. Or I’ll need to manually regenerate the playlist with new songs.
Yes. How would you cache infinite songs anyway if you do not want to cache your whole library?
You can use “Sort by: Random” and the playlist contents will update every time you open the playlist (and at least on every sync I think). If you use “random (stable)” instead, it will be only randomized on playlist creation.
There is no concept of a “rotating playlist” though that always updates itself when some songs have been played.
Well no it’s not possible in DSub since as you said it’s limited to 100 songs.
So it’s exactly the same issue, just that the number is bigger, it absolutely does not fix your global need.
And the automatic playlist is there, you can auto queue new media and you already know that.
The solution is actually quite simple you create a smart playlist and enable offline cache on it with the amount of songs you want to cache.
Then when you enable offline mode, only offline songs will be played with the mix and the auto queue will only add new songs that are available offline.
The way you express your need is that you want to be able to download infinite amount of things, but don’t want to download infinite amount of things at the same time.
So download the amount you want then play what you have cached via the normal mechanism.
You can also create a now playing queue that is very large, press the button to save it as a playlist then offline cache it.
But again, the way you express your need is just not possible. You can’t have it both ways.
That’s a large enough number. Definitely bigger than 9. And it’s automatically increased with new songs (which are not cached yet but will when I get to wifi) when old songs are played and therefore removed from the queue. So it actually works.
The solution is actually quite simple you create a smart playlist and enable offline cache on it with the amount of songs you want to cache.
But then I’ll have to listen only to the 500 songs I have in this playlist (or however big number I configure there), and no other songs, until I create a new smart playlist. I don’t want to ever touch the player’s UI, but it should download (pre-cache) the next N songs automatically.
Yes, this is correct.
I don’t care about permanent cache, but literally the 2 features about playback cache mentioned in the first post: make it possible to download more than 9 songs at a time from the queue, and automatically extend the queue sooner than the last song from it plays (e.g. make the number configurable - to auto extend the queue when the number of songs remaining in the queue is less than X)
This seems possible to me. Because DSub already does it, and has both numbers configurable to a value bigger than 9.
If DSub works better then you can continue to use it
Symfonium only have predictable behaviors.
And it’s automatically increased with new songs (which are not cached yet but will when I get to wifi)
This is completely contradictory with your need. To resume it might or not cache and be or not, but I absolutely need a way that works…
I guess this confirm that you want something that is not realistic for an app like Symfonium.
Then in the end Symfonium is probably not the proper app for you.
Even with such controls, you’d be limited to X + Y songs and would reach a point where it does not work anymore.
As said you can’t have both things, and something that is not possible to do correctly does not have it’s place in Symfonium.
So if you can’t embrace the way Symfonium as been built, it’s probably not the app you need.
Yeah, due to lack of this feature in Symfonium, DSub currently works better for me. It has many other bugs, which don’t exist in Symfonium, which is why I wanted to switch.
That is correct. However, when the number X+Y is big enough, it rarely actually happens. It happens so rarely, it stops being an issue.
Oh well. I hoped the two features I needed here were easy enough to implement.
During the trial I enjoyed other features Symfonium has (and luck of DSub’s bugs ) but will keep searching for a better app then.
I think there has been a misunderstanding in your conversation. I think what @DarthGandalf would like to have is a smart playlist, with N music files which are permanently downloaded. These are N random songs from your library.
Now after a song of this playlist has been played, it gets removed (if you are online), also from permanent cache. Furthermore, a new random song should be added and downloaded so that the playlist contains N songs again.
This garantuees 2 things.
You always have N songs downloaded to your phone
These N songs change all the time when you listen to them, (only when being connected to the server at least once when listening to more than N songs, otherwise they will of course repeat)
The whole feature is like the Songmix feature, but the next N songs are always precached and after playing them they are removed again. (I think it is better though to implement this in a smart playlist, to not accidently remove songs from cache that were cached already before)
I hope this clears most confusion. Because I think the feature has a right to be properly debated.
From what I saw, the smart playlists do not automatically remove songs from them after those are played. So the smart playlists’ contents do not automatically update while playing. Maybe I misused them. Idk. I think this is also @DarthGandalf problem. When do smart playlists update there contents automatically?
The idea is to always have N unplayed songs cached. So we want to update the contents of a playlist immediately after the first song has been played (add new one at the end and remove played song)
First you are wrong about OP, he “knows” his solution to the need is the only solution and did not want to hear the solution for how Symfonium works and is built for.
Second, smart playlists are instantly updated with the rules you set. To remove the recently played songs you just need to add the corresponding filter as told in previous post. And then songs no more targeted by auto rules are removed from cache.
I did not think of the option to use the “last played” filter to dynamically exclude played songs.
Nevertheless, the OP insisted on caching the current queue (not creating a playlist and setting how many songs they wanted to be cached), because that is how they saw it on DSub.
I, however just tried it out together with auto offline cache and it just keeps updating the playlist. It is downloading and removing songs constantly as well. My assumption is that by downloading a file with auto cache it changes the “last played” attribute and therefore the song gets removed by the smart filter again. Thus, the playlist constantly updates, and with it also the songs which need to be downloaded. (I will also open an issue if needed).