Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wishlist: "Favorited" column #12420

Open
fwcd opened this issue Dec 10, 2023 · 10 comments
Open

Wishlist: "Favorited" column #12420

fwcd opened this issue Dec 10, 2023 · 10 comments

Comments

@fwcd
Copy link
Member

fwcd commented Dec 10, 2023

Feature Description

Many streaming services feature the concept of 'liking' or 'favoriting' a track. Some media players, including Apple Music/iTunes, have adopted this concept too, even for local libraries:

image

The biggest advantage I see in adding this column to the Mixxx library (i.e. the database and UI) is that it would allow us to cleanly map 'favorites' between external models (e.g. Apple Music/iTunes) and Mixxx's model. It would of course also provide another way for Mixxx users to tag their tracks, though admittedly there is some conceptual overlap with the ratings system. In any case, I would propose to only show this column by default in external libraries that support it (e.g. Apple Music/iTunes).

Alternatively, we could of course also just add the column to the external libraries that support it and not to Mixxx's library itself, but if we already build the UI for it, I see no big disadvantage in doing that.

@daschuer
Copy link
Member

These are related issue:
#10483
#9477
#6341

Using a new column that IS synced system wide, works around the mentioned issues. So it is probably a good idea.

Since we already have a star feature I like that harts used by spottily more:
https://developer.spotify.com/documentation/design#liking-a-song

@fwcd
Copy link
Member Author

fwcd commented Dec 11, 2023

I agree that syncing ratings and/or "favoritedness" to the file tags would be nice, though I would consider that orthogonal to this feature. Apple Music/iTunes unfortunately seems to write neither the rating nor the "favoritedness" to the file tags, therefore we'd either have to come up with our own tag or check what other programs are using (at least for the ratings).

Since we already have a star feature I like that harts used by spottily more

That's a fair point. The star would have the advantage of potentially being able to reuse UI from the ratings UI, which at the same time is a disadvantage in terms of distinctiveness. Spotify and Apple Music both seem to switch between a star/plus/heart/thumbsup icon every few years, so I don't have a strong preference here. Since hearts are a pretty well-recognizable shape, that seems definitely reasonable.

@ronso0
Copy link
Member

ronso0 commented Dec 11, 2023

The star would have the advantage of potentially being able to reuse UI from the ratings UI,

After all it's just a styled checkbox, right?
And we do have some experience with that now x)

Tricky part will be to use a shape in the header I guess.

@mxmilkiib
Copy link
Contributor

mxmilkiib commented Dec 13, 2023

How might a binary star state relate to the 0-5 star scale state?

I'm fact, why not just use a 5 star trading to achieve the desired result?

Certainly the way the existing star system is currently displayed it's not as nicely compact as the example, but I could envision an option for "Compact the star scale so that 5 is the only star that shows" to achieve the same effect. No?

AFAIU only MP3 stores rating (0-5) but maybe that table is out of date? (Looking at Serato forum threads, people have worked around by using unused tag columns to insert emoji stars)

The point in a linked issue above about the difference between "personal listening" rating and "good to play to a crowd" rating is a good one. So there is directly differing opinion on whether there should or shouldn't be a mapping between Mixxx 5 stars and the MP3 (or other?) standard 0-5 rating tag?

(Personally, I'm giving up on the idea of having music that is in my personal music collection that I access using MPD being the same files that Mixxx access. There's to much cruft, non DJable tracks, the library bloat makes Mixxx less responsive, and there's no way to link a USB stored file with a, say , NAS sorted files, see #11520 n #10939)

@fwcd
Copy link
Member Author

fwcd commented Dec 13, 2023

How might a binary star state relate to the 0-5 star scale state?

They would be separate columns and completely independent.

I'm fact, why not just use a 5 star trading to achieve the desired result?

Because the primary goal is interoperability with systems that potentially use both. Mapping "favoritedness" onto a rating scale if the external playlist model uses both necessarily discards information.

Certainly the way the existing star system is currently displayed it's not as nicely compact as the example, but I could envision an option for "Compact the star scale so that 5 is the only star that shows" to achieve the same effect. No?

Yes, that is what I meant by "admittedly there is some conceptual overlap with the ratings system".

AFAIU only MP3 stores rating (0-5) but maybe that table is out of date? (Looking at Serato forum threads, people have worked around by using unused tag columns to insert emoji stars)

I would move the discussion about how ratings could be represented in tags to a separate issue to avoid confusion.

@JoergAtGithub
Copy link
Member

Wy not set the single iTunes star for all tracks that have 5 star rating in the standardize MP3 tag and vice versa?

@fwcd
Copy link
Member Author

fwcd commented Dec 18, 2023

See above:

Mapping "favoritedness" onto a rating scale if the external playlist model uses both necessarily discards information.

(Both iTunes and our integration already support the standard 5 star rating system, perhaps that is where the confusion stems from.)

@mxmilkiib
Copy link
Contributor

mxmilkiib commented Dec 18, 2023

For the record (pun intended), I agree that it would be nice to have all of these:

a) a 5 star music collection rating (the standard existing tag system),

b) a 5 star Mixxx rating (because DJing is quite a different context to sitting back in the sweet spot on a sofa to listen to music from the same set of files), something that can also live as a Mixxx specific tag in files and not just the library DB,

and c) having a binary Favourite rating (for utter bangers that aren't just 5 star DJable but also go-to/fallback/shit-hot-at-the-moment tracks that must not be lost in the regular DJing 5 star rating system), also not just as a DB thing but a tag thing also

@daschuer
Copy link
Member

ID3 V2.3.0 has a Popularimeter personalized with an email address:
https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2.3.0.html

How can we make use of this? For interoperability, we need to check how other applications deal with this email.
Which applications are relevant? So there is a open research task, before we can dive into code.

@mxmilkiib
Copy link
Contributor

mxmilkiib commented Dec 19, 2023

Ah, thanks for linking the exact definition! And 0/1-255, interesting.

There may be more than one “POPM” frame in each tag, but only one with the same email address

Ah, so ratings can be "namespaced" with that mechanism, good point. But yes, I wonder how robust various decoders are to multiple ratings and what the higher level behaviour of other applications would be.

Edit: oh, in v2.2 it is POP, in v2.3 it is POPM

(I notice the ID3v2.3 page lacks section anchors/ids, but the ID3v2.2 page has them: https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2.2.html#popularimeter. I've raised this quodlibet/mutagen-specs#2)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants