"Proposal" to add a Listen Together feature to BrainzPlayer

Hi, I am failure. This isn’t a GSoC proposal (yet). Consider it a gauging of the community’s interest in the idea.

The Idea

The idea I have is to implement a “Listen Together” feature for BrainzPlayer similar to those available in Spotify and Discord. I imagine it behaving pretty similarly to the music bots available on Discord in the old days (like FredBoat).

If you have never used those, here is a summary of how it works.

  • Users join with the host having the perms to add songs / playlists.
  • The bot loads and streams the music via the VC it is in.
  • You enjoy music that is extremely crusty, and sounds like it’s passing through butter in your ears (I would know) in sync with your friends.

I liked it, and I would like to recreate it but without the crusty ear bleeding screeches.

A more technical difference will be that unlike with FredBoat where the bot plays the music, BP will only be syncing the various tracks being played to make sure everyone gets to listen to the same tracks in the same order and at the same time (with a small margin for error).

Why?

Would it really be better than Spotify and Discord and whatever Apple is doing in their own corner?

Yes! Because it’s going to be free (as in Freedom). While that is enough to sell me on anything really, I will add some USPs for this to convince the normal people.

  1. There isn’t a similar option (to the best of my knowledge) available across such a wide variety of music sources. Jams is for Spotify and requires Premium for listening remotely (and Lord knows I would die before I have to pay a dime to Spotify). Discord Listen Along only works with Spotify Premium as well.
  2. The music won’t be crusty.
  3. It’s free, which means more people who don’t care for scrobbling will become a part of the MetaBrainz ecosystem for this feature. And one day, we might even have enough to create a cult.

What about Jellyfin and Rave?

I don’t have much experience with either, but I know Jellyfin (because I was a part of the self-hosted community) and well it’s …self-hosted, and that already turns enough people away to make this feature worth it for BP. Rave seems to be more oriented towards regular streaming as well.

But what really are the advantages?

If you are still not convinced, I think it’s just one more good feature to add to BP that will make people want to use it more (both regular users and new users). I use Metrolist everyday, because it’s more convenient. but if and when I feel like jamming with my friends, I will switch to BP because that’s a feature it has, and that Metrolist doesn’t, making BP a more relevant feature of LB.

Is it even possible / feasible?

I would assume yes, in part because the “Listening Now” feature already exists. It only feels a hop and a skip away from using that information in conjunction with BP.

But, I am yet to do a proper analysis of it, and how complex it will truly be, and I have a feeling it won’t be the easiest thing I have ever done.

I will do that after I get some "Woo!"s and "YEAHHH"s, so if you like the idea, drop something along those lines.

Extended features

These may or may not be part of my GSoC proposal, but I like the sound of them.

  • I think this could be extended by using the existing “similarity” scores and allowing people to discover rooms and the like.

FAQs

Questions that I got in IRC / Element. Not exactly frequently asked, but you get the gist.

What about users having different services?

Let’s say User A has two friends (big ask, I know), User B and User C.

User A is rich and has Spotify, AppleMusic, SoundCloud, and YouTube.
User B has Spotify, and YouTube.
User C is me, and will not pay for Spotify and only has YouTube.

When searching for the track, we would limit it to only searching YouTube.

Will this make User A and B upset? Yes. But unless all users have the same services available, listening together doesn’t really work, does it?

5 Likes

This would be rad! I actually tried to shoehorn something similar into the LB redesign mockups, but it was out of scope.

I have now stored my initial concepts and mockups in a new ticket:

It looks like those differs a bit from your GSoC proposal - feel free to align or not align your proposal as you please.

Features that need a lot of UI/UX work can get rejected if the developer doesn’t have a strong grasp of those design concepts, so make sure to mention in your proposal/discussion with the team that I have expressed interest in working with you as a co-mentor/support on this, provided the scope doesn’t get too massive.

1 Like

Thanks! I will make sure to keep you in the loop and get your opinion on designs / features that might change as the idea evolves. And of course mention your support for the idea!

That’s nice, and something I could love to use. I know that I used to use that discord bit a bit, and this rally brought that back for me.

I definitely would love if we could try and have it work with Navidrome, or some similar self-hosted solution, as the web player has recently added support, and this definitely would be a useful thing with that. I know I’ve been trying to get up and connected for this transitioning over from Plex for a few reasons involving sharing along with ease.
In theory it might not be too bad after initial connection, as I know Navidrome prioritizes using MBIDs as how they recognize underlying although it can be changed. (But then again, what is assumed to simple can often end up the most complex, that is just what I was looking for as a potential.)

2 Likes