I usually make some very long playlist's, which takes ages to sort the way i'd like, even though it isn't really that advanced, it is practically:
then some requirements:
- never have two of the same podcast right after each other
- sort each podcast by release date; old -> new
that's it :)
Mike Blazanin commented
I voted for this, and have a slightly more specific idea of how this could be implemented such that it meets the requirements above. I also like to keep a long playlist, which makes manual sorting a pain. Typically I would simply sort by date, which largely works. However, I have started mixing old episodes of podcasts and new ones, and would still like to keep the playing order balanced. If I sort by date in the current scenario, I end up with large blocks of old podcasts at the bottom. My specific suggested method of sorting would be to have all of each podcast's episodes spread evenly through the playlist, oldest to newest.
For example, the code would go through each podcast and determine how many of that podcast's episodes are currently in the playlist. Then, it would divide 1 by that number of episodes and assign each episode a "score" which is the fraction which ascends from oldest to newest. For instance, if Podcast X had 4 episodes in the current playlist, the oldest episode would get a 0.25 (1/4), then the next oldest would get 0.5 (2/4), and so on. If Podcast Y has 5 episodes in the playlist currently, its episodes would get "scores" of 0.2, 0.4, 0.6, 0.8 and so on. And if Podcast Z has 6 episodes, its episodes would get "scores" of 0.17, 0.33, 0.5 and so on.
After each podcast has been examined and all the episodes have had scores assigned, then the playlist is simply sorted from lowest to highest, deciding ties in whatever method (randomly, alphabetically, by date, by priority, etc.). Continuing the example before, our playlist would be:
Z, Y, X, Z, Y, Z&X (tie), Y, Z, X, Y, Z, X&Y&Z (tie).
This method of smart sorting assures several things as noted in the original request:
A single podcast's episodes are spaced out, giving the feeling of random spread (which I am taking liberty to assume is what the original intent was, as a truly random arrangement would surprisingly often lead to runs of a single podcast)
A single podcast will never have episodes immediately sequential, unless its episodes constitute a very large portion of the total episodes in the playlist
Each podcast will be sorted from old to new, within the playlist
In addition, my proposal carries several other advantages:
It is likely computationally straightforward to implement, as most of the required pieces already exist in the app
Old and new episodes from different podcasts can be mixed freely
Please consider my idea whenever you have time Xavier, and thanks for all the great work you do on this app. It's really the best podcast app I've ever seen or heard of, and you're super responsive with requests and issues.