Open protodrew opened 4 years ago
I like the idea - it could be similar to Spotify: a mix of what you recently listened, related albums/artists, random artists to discover new stuff, newly uploaded stuff.
Most of this stuff would need support from Funkwhale.
Recently added and played are already available as API calls (used in the Browse tab of the Web UI), so this could be implemented.
On the other hand, related artists/albums would need data I do not have currently and random artist would require support from Funkwhale, the app does not have access to your whole library to shuffle from (the lists are loaded as-needed when you scroll).
Thanks for the reply. I took the liberty to file a feature request against Funkwhale ;) https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1145
Thanks keunes! I'll follow that issue.
I'll try and conjure something up with the info already available, probably under the Experiments flag for the first release.
I'll post screenshots along the way so we can iterate on it. Starting tomorrow.
What we can reasonably do on Funkwhale side is implementing random sorting (e.g with anordering=random
query param).
For the other items, we'd have to figure a way to deliver smart recommendations without creating feedback loops (popular content becoming even more popular).
In the meantime, you coud use tags, e.g if you're listening to an artist tagged "rock" and "metal", you could find all artists with those tags via the following API call: https://open.audio/api/v1/artists/?tag=rock&tag=metal
It's already implemented :)
I already had tags on the list of items to add to this screen, so we concur on that point (as well as trying to avoid any negative feedback loop).
For now, the ideas for this screen (ProtoChoco's, yours, keunes's and mine) converge on this list:
I still need to see which are already supported by Funkwhale's API, but I'll try and give it a start.
As a wireframe, that would look something like this (dummy data for now):
I'm working on the actions to be performed when an item is clicked.
Clicking on random artists and albums is pretty obvious, we can open the related listing page. The required API endpoints are scheduled to be implemented in Funkwhale by 0.21.2.
For tags, I would need to implement #29 first, but those button will likely open the search page for the tag.
My question is related to newly listened and uploaded tracks (and maybe random track, if that makes sense): what should happend on click? Directly play the track (if so, where should we insert it if the queue is not empty)? Add it to the end of the queue? Add it in next position?
Maybe you could open a kind of context menu when clicking on a specific track, asking when to play it (not sure if you see what I mean).
I've implemented random ordering (?ordering=random
) in the following MR: https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1150.
I'm thinking about adding a similar=obj_id
filter that would use tags internally to return similar results.
I still need to see which are already supported by Funkwhale's API, but I'll try and give it a start.
@apognu You can:
/api/v1/tags
/api/v1/history/listenings
/api/v1/tracks/?ordering=-creation_date&playable=true
/api/v1/playlists/
/api/v1/radios/radios/
I'm not sure we'll have recommendation implemented anytime soon though.
Thank you! I already implemented most of them in my prototype and will get the rest of them done as soon as possible
I'll also try and implement random ordering to be ready when 0.21.2 is out.
No issue for the recommendations, it was wishful thinking and can always be added if and when you get to it.
@apognu I've also implemented a related
filter, (MR: https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1151).
It's based on tags, and you can use it like this GET /api/v1/artists?related=42&ordering=-related
(also works on albums and tracks). This example return all objects that share at least a tag with Artist 42. Objects that share more tags will be even higher in the list.
If we ever implement recommendations in the future, then you won't have to change anything on your side :)
That's dope! Thanks.
Is there a Funkwhale demo instance that is built from master or should I set up my own?
I've updated https://open.audio/ with the latest changes, and https://demo.funkwhale.audio/ will be updated automatically soon (it's reset every 3 hours to develop
, and I merge master
into develop
as often as I can)
I still have lots to do, but it is starting to take form:
Saw the screen recording just now β looks great! Some initial feedback: I would left-align the tags (rather than trying to equally align vertically, which I guess needs some extensive coding to make it look nice). I see the tab is called 'Otter' β I'd call it 'Home' or 'Discover'. It would be great if the sections could each be (dis)activated. I'll be using FW+Otter for a private pod and have all our music digitised already, so the 'Newly uploaded' will virtually always be the same.
Thanks for your feedback.
The tags are using a layout model similar to flexbox, so I can specify how they should be laid out horizontally. On this screencast, they are "equally spaced", but I can also instruct them to distribute their width equally, left or right align, center, etc. So the code complexity should be roughly the same between all those.
I'll post screenshots of the different candidates so we can choose the right one.
The tab was called Otter by default, I think discover could be the right one, indeed!
As for customization of the different sections, I could try and implement some kind of persisted folding, so you could "hide" some sections.
I'll start working on this feature again when 1.1.0
is out (should be quite soon, I'm hunting for bugs right now, and there are some).
This looks so good mate can't wait to get the update!!
Hi ! I was looking for that kind of feature, and I'l really excited by you screen share βΊοΈ I'd love to see this in the app π Are you still working on it ? Anyway, thanks to all contributors for the work they ve put in this project !
@jamendub I think the development stopped here and a fork has been made by the funkwhale collective. https://dev.funkwhale.audio/funkwhale/funkwhale-android/ You might want to subscribe there : https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/56
I'm not fundamentally against that, though I fear this could clutter the initial user path in the app.
Artists is the main tab right now because I feel this is the most frequent start path for a music player. But this is strictly personal.
I am interested to know what other users think about that, and I will only implement it if this is provably well-received.