Welcome Julian45 (and atj)!

I’m pleased to announce that Julian Anderson (julian45) and Adam James (atj) have joined our team as volunteer System Administrators. Julian has just now joined the team, where as Adam has been part of it for nearly 2 years and I failed to post the requisite blog post welcoming him. Mea culpa, Adam! Welcome to both of you!

We welcome volunteers to help us with our infrastructure, which continues to grow and become more complicated. The ListenBrainz project in particular has many moving parts in order to process the user’s data (stats, recommendations, fresh releases, etc.). On top of that, we’re working hard to make sure that our infrastructure is as automated as possible, so we welcome any help from people who know Ansible, like Julian and Adam.

Continue reading “Welcome Julian45 (and atj)!”

Towards Fair Streaming: Introducing the FairMusE project

Hello ListenBrainz community!

As you know, we’ve been working hard on building recommendations and other music discovery tools as part of ListenBrainz. Our frustrations with online streaming providers and their questionable discovery features have long been a source of frustration for us, so we worked hard to build recommendations with as little bias as possible.

Fortunately, we’re not alone in our frustration with the steaming providers – researchers at Aalborg University, Denmark and Lille University, France are currently questioning the fairness of these music recommendations and have asked ListenBrainz and its community to help them with this task.

The researchers are looking for ListenBrainz users to give their permission for their public ListenBrainz data to be used as part of this research. If fair music discovery services are of importance to you, please read on and consider granting the researchers permission to use your data:

Share your listening data with the researchers and help us fight for a fair and transparent music streaming ecosystem! 

Continue reading “Towards Fair Streaming: Introducing the FairMusE project”

GSoC 2024: Transferring Playlists Between SoundCloud, Apple Music and ListenBrainz

Introduction

Hello! My name is Rimma Kubanova (AKA rimskii on IRC and rimma-kubanova on GitHub). I’m an undergraduate Computer Science student at Nazarbayev University in Astana, Kazakhstan. My inspiration to participate in Google Summer of Code came from seeing my seniors’ experiences. I began contributing to MetaBrainz because I felt their goals and technologies aligned perfectly with my interests and skills. 

After making my first contributions, I decided to apply to GSoC, and to my delight, my proposal was accepted!

Proposal

ListenBrainz generates music recommendation playlists based on a user’s listening history and habits. These playlists can be enjoyed directly in ListenBrainz and automatically exported to the user’s Spotify account. However, currently, ListenBrainz only supports exporting to Spotify, which limits the user experience.

My project focused on expanding this functionality by integrating support for exporting these playlists to other external music services like SoundCloud and Apple Music. Additionally, I proposed adding an import feature to allow users to bring their playlists from these services into ListenBrainz.

My proposal can be found here.

Continue reading “GSoC 2024: Transferring Playlists Between SoundCloud, Apple Music and ListenBrainz”

GSoC 2024: Add Syndication Feeds to ListenBrainz

Hi everyone!

I am Eric Deng, known as ericd on MB element server and ericd23 on Github. From May through August, I worked on adding various syndication feeds (Atom feeds) to ListenBrainz, a project that was mentored by Mayhem.

Project Overview


ListenBrainz is a powerful platform that allows users to keep track of their listening history, share music tastes, and discover new music. The primary goal of my project was to extend ListenBrainz’s functionality by adding syndication feeds, specifically Atom feeds. This feature enables users to subscribe to various feeds, allowing them to access their data in a more unified (through a feed reader) and customized (with various options each feed offers) manner. This feature is an addition that builds on ListenBrainz’s existing strengths and open data nature.

The goals of this project includes:

  • Basic feed generation infrastructure
  • Various feed endpoints: user latest activity, user listens, user statistics, playlists, recommendations (weekly jam and exploration), fresh releases (user and site-wide) and statistic art creator.
  • UI for accessing feed URLs
Continue reading “GSoC 2024: Add Syndication Feeds to ListenBrainz”

GSoC 2024: Artist, Album, User Pages in ListenBrainz Android App for all users 

Introduction

Hola everyone!

I am Pranav Konidena (you may know me as pranav on IRC, or pranavkonidena on GitHub.). I am a junior at the Indian Institute of Technology Roorkee (IITR) pursuing a degree in engineering with a major in Electronics and Communication. I learnt about Google Summer of Code from my club seniors and was instantly drawn towards it. While I was going through the potential organizations to which I could contribute, I was instantly drawn towards MetaBrainz as it combined my love for music and programming. 

I wanted to explore further the field of Mobile Development, I had sound knowledge of Flutter, but I didn’t know Native Android Development and decided to try and contribute to ListenBrainz Android. With that goal in mind, I started learning about Kotlin and JetPack Compose, as they were mentioned as the tech stack for the LB Android app in its General Overview Doc on its GitHub Repository. My first contribution to LB Android was fixing a minor text overflow bug.

Continue reading “GSoC 2024: Artist, Album, User Pages in ListenBrainz Android App for all users “

ChatBrainz: IRC, Matrix & Discord

Have you ever joined the MetaBrainz chat? Team and community members have been getting up to mischief (and, occasionally, work) using IRC since 2003 and earlier – with the logs to prove it. Today, over twenty years later, we say ‘oh hi’ to ChatBrainz.

With the launch of ChatBrainz we have officially moved to Matrix! Matrix has ease of access and some modern conveniences that make access to chat possible for more contributors and users. Not a fan of the change? Not a problem – ChatBrainz also has IRC and Discord bridges, that allow cross-platform chat with the three main Matrix rooms/channels.

Click here to get chatting!

Continue reading “ChatBrainz: IRC, Matrix & Discord”

Downtime today for PostgreSQL / MusicBrainz schema change upgrade: 17:00 UTC (10am PT, 1pm ET, 7pm CEST)

Today (Monday, May 13) at 17:00 UTC (10am PT, 1pm ET, 7:00pm CEST), we’ll be:

  • Upgrading our production database server to PostgreSQL v16.
  • Performing the MusicBrainz schema change upgrade.

See the previous announcement on this topic for more information.

Expect MusicBrainz and services that depend on its database (MetaBrainz, ListenBrainz, the Cover Art Archive, CritiqueBrainz, BookBrainz) to be down for the hour, but we’ll be working to restore services as quickly as possible.

Afterward, we’ll post instructions here on how to upgrade your MusicBrainz mirror server (whether using musicbrainz-docker or otherwise).

P.S. The initially announced upgrades for MusicBrainz search engine are just about to reach our beta website, and thus are postponed for mirrors too.

Welcome Summer of Code 2024 contributors!

We are thrilled to announce the selection of 8 contributors to work with us for this year’s Google Summer of Code program! 

MetaBrainz received many great applications this year. Selecting the final contributors was tough and involved deliberating various factors – what these contributors did right is getting in early, engaging with our community, presenting specific and detailed proposals, and proving excellent communication skills and the ability to integrate our feedback back into their proposals.

Thank you to all contributors who submitted a proposal with us!

Continue reading “Welcome Summer of Code 2024 contributors!”

ListenBrainz Radio: New release now live!

Hello!

I’m pleased to announce that we’ve just released the latest version of LB Radio!

This release changes many things under the hood since the first release — given all the feedback you’ve given us, we were busy making improvements clear across the board. The improvements include:

  • Speed: LB Radio artist and tag elements are much faster now, since most of the work is being done by Postgres (and not AI!) and not in slower and wasteful Python code as part of our Troi recommendation engine.
  • More distinct modes: In our first version it was hard to tell the difference between the easy, medium and hard modes. This version fixes a few bugs and improves the overall algorithms used to make the artist and tag element playlists. The playlists generated for each mode should feel more distinct now.
  • Country element: We’ve added a new country element that creates a playlist of recordings from artists who are originally from the selected country. This doesn’t always ensure that the music that we serve us is actually from that country or even representative of that country. Right now, we’re making a best effort for making a playlist that is representative of the country, but we might be missing the mark — you tell us. Also, tiny countries (e.g Vatican City, Andorra) don’t usually generate enough recordings to make good playlists, since there isn’t a lot of data available. Also, good thing Antarctica is not a country. 😂
  • Streamlined syntax and improved error messages: The parsing library that LB Radio version 1 used was pretty cool, but its error messages were hated by everyone, even hard core geeks. Thus, we wrote a new parser that could give us better error messages and to make that process easier, the syntax of LB Radio has been made more consistent.

Let’s dive into a quick look of the improved syntax — all the following examples are valid LB Radio prompts:

David Bowie

#punk

artist:(Tina Turner)

tag:(trip hop, dreampop)

The most important thing to know is that any elements that accept free form text (e.g. tags and artist names), should always be enclosed in ( ). Please refer to our official documentation for all the details.

Have fun making new playlists! And as always, if you find a bug, please create a ticket in our bug tracker.

Thanks!

ListenBrainz: 2023 Recap

Strap in, because we’re going to recap all the ListenBrainz changes in the whirlwind year that was 2023! For the full ListenBrainz changelog you can visit: https://github.com/metabrainz/listenbrainz-server/releases

For those who peeped at the changelog, yes, the ListenBrainz team managed over 60 releases in 2023… let’s check out some of the highlights.

Continue reading “ListenBrainz: 2023 Recap”