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

Enhancement - Allow user to select preferred version of a track #60

Open
h0rnman opened this issue May 10, 2023 · 5 comments
Open

Enhancement - Allow user to select preferred version of a track #60

h0rnman opened this issue May 10, 2023 · 5 comments

Comments

@h0rnman
Copy link

h0rnman commented May 10, 2023

For those of us with large collections that contain multiple versions of the same track by different vendors, it would be extremely helpful to allow users to either set their own version preferences on a per-track basis, or at least allow them to select the version of the track after they've added it into the queue. Persistence across rooms/sessions would be great, but just having the option each time you select a track would be useful.

@bhj
Copy link
Owner

bhj commented May 12, 2023

Hi, currently admins can set a preferred version via the Info modal (swipe left on a song in the Library or Queue view).

Tip: If you always want to prefer songs from one producer over another, put them in their own Media Folder and make that folder the first one in the list.

Let me know if that helps!

@bhj bhj added the question label May 12, 2023
@h0rnman
Copy link
Author

h0rnman commented May 15, 2023

Yeah, I know that I can pick a preferred version as an admin, but my library is around 82,000 tracks with 37,000 unique titles. Most of what I have is 1:1 or 2:1, but there are several hundred more popular tunes that I have 8-10 versions for, and not all of my guests prefer the same versions of some tracks (person A prefers SoundFly exclusively, person B prefers Zoom for these 8 favorites, but likes a random internet find for one of person A's tracks, etc). Being able to offload this to the guest would be very helpful to this kind of situation.

@bhj
Copy link
Owner

bhj commented Jun 25, 2023

Gotcha. The reason this will be tricky is that queue entries are currently based on songId (rather than mediaId). Logic being that media could be added/removed and the queue entries would be intact as long as there's at least one media file for a song.

Not an insurmountable problem; just more than a UI addition. Will leave this open if anyone wants to discuss tackling it. Thanks!

@h0rnman
Copy link
Author

h0rnman commented Jun 25, 2023

Yeah, I was looking at the data structures and wondered if it might be a bigger ask than it seems on the surface. Would it be possible (or easier) to add something like a user_media_preferred_xref table that maps users.UserID to media.MediaID? Something like that would allow for the default version to be the MediaID for the SongID being selected (if present) otherwise, use the current behavior (Admin preferred or First Found). This could probably even be handled in the user account management screen if it's too fiddly to implement into the main flow of the application. I know this is kind of a niche use-case. I wish I knew more about node development - i can see the db side of it pretty clearly, but I don't know enough about node to be able to create a PR. Thanks for taking the time to look, I appreciate it.

@bhj
Copy link
Owner

bhj commented Jul 9, 2023

That's a good point! It'd make sense to remember users' preferences, so +1 on the new table you described.

I think two things that will also help are 1) per-room preferences, which a lot of pending features depend on and is definitely planned, and 2) ability for users to preview songs, which is something I've wanted for a while, and have been trying to push the Player component to be more modular.

And yeah, this project actually began as a way to learn Node/React, so maybe not a bad starting point. Just throwing that out there :-D

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

2 participants