MusicBrainz Gallery of Apps?

Has anyone created a list of apps and websites that use musicbrainz data?

2 Likes

Maybe you can start with this page I found from the FAQ:

https://musicbrainz.org/doc/MusicBrainz_Enabled_Applications

6 Likes

Thanks! Interesting list, most of the links work. It would be nice to see comments and ratings from this community about the apps and websites.

I have an ulterior motive in asking the question, I wanted to submit my new app for the list:

https://headliners-and-sidemen.herokuapp.com/

It answers the question: What were the musicians who played on this album doing before and after?

6 Likes

Wow it’s super interesting!
It would be useful maybe to have a small link back to the MB entity.

I don’t know exactly how it is all presented but I guess most of it.

However I see some strange things, on THE MAN WHO SOLD THE WORLD for instance.
I was expecting to see MICK RONSON (guitar), but I don’t see him.

Thanks!

I will add the gid so I can link back, just have the int id now.

Will check on Mick Ronson. The usual reason someone is missing is that there is no begin_date on the recording.

Yes, that was it and thanks for pointing it out. No date. Like 6 others on that recording!

I can fix it on my end by assuming he and the others recorded on the same day 1971-02-25 as the other 5. Working on that…

Maybe this the kind of straightforward data wrangling that should go into musicbrainz itself?

 release_group |           title            |  headliner  | headliner_id |       artist        | artist_id |    instrument    | begin_date |  end_date  
---------------+----------------------------+-------------+--------------+---------------------+-----------+------------------+------------+------------
         66623 | The Man Who Sold the World | David Bowie |          956 | David Bowie         |       956 | guitar           | 1971-02-25 | 1971-02-25
         66623 | The Man Who Sold the World | David Bowie |          956 | David Bowie         |       956 | lead vocals      | 1971-02-25 | 1971-02-25
         66623 | The Man Who Sold the World | David Bowie |          956 | John Cambridge      |    541804 | drums (drum set) |            | 
         66623 | The Man Who Sold the World | David Bowie |          956 | Mark Carr-Pritchard |    704497 | guitar           | 1971-02-25 | 1971-02-25
         66623 | The Man Who Sold the World | David Bowie |          956 | Mick Ronson         |     42012 | guitar           |            | 
         66623 | The Man Who Sold the World | David Bowie |          956 | Mick Woodmansey     |    348037 | drums (drum set) |            | 
         66623 | The Man Who Sold the World | David Bowie |          956 | Pete De Somogyl     |    704503 | bass guitar      | 1971-02-25 | 1971-02-25
         66623 | The Man Who Sold the World | David Bowie |          956 | Ralph Mace          |    977107 | synthesizer      |            | 
         66623 | The Man Who Sold the World | David Bowie |          956 | Tim Broadbent       |    704504 | drums (drum set) | 1971-02-25 | 1971-02-25
         66623 | The Man Who Sold the World | David Bowie |          956 | Tim Renwick         |    387800 | guitar           |            | 
         66623 | The Man Who Sold the World | David Bowie |          956 | Tony Visconti       |    334522 | bass guitar      |            | 
         66623 | The Man Who Sold the World | David Bowie |          956 | Trevor Bolder       |    298185 | bass guitar      |            | 
(12 rows)

The query:

select rg.id as release_group,
  rg.name as title,
  rga.name as headliner, 
  rga.id as headliner_id,
  a.name as artist,
  a.id as artist_id,
  lat.name as instrument, 
  min(make_date(l.begin_date_year, 
       coalesce(l.begin_date_month,1), 
       coalesce(l.begin_date_day,1))) as begin_date, 
  max(make_date(l.end_date_year, 
       coalesce(l.end_date_month,1), 
       coalesce(l.end_date_day,1))) as end_date
from release_group as rg
join release as r on r.release_group = rg.id
join artist as rga on rga.id = rg.artist_credit
join medium as m on m.release = r.id
join track as t on t.medium = m.id
join l_artist_recording as ar on ar.entity1 = t.recording
join artist a on a.id = ar.entity0
join link as l on l.id = ar.link
join link_attribute as la on la.link = l.id
join link_attribute_type as lat on lat.id = la.attribute_type
where rg.id = 66623
-- and l.begin_date_year is not null
group by 1,2,3,4,5,6,7
;

Are you sure that you want to test dates?

We wouldn’t link an artist to the release of recording, if the artist is not involved.

Also about the ID, I think you should use MBID everywhere visible, including in URL.
They are the public entity ID.

The integer row ID is not intangible.
One day it can be David Bowie, another day it can disappear then, maybe, it can designate someone else.

1 Like

Check out that link again. Mick Ronson is there and there is a link back to MB.

This is 3x the data I had before, because the date is missing from so many recordings. I filled in by using the date from another recording on the same album. If no recordings have dates, I use the earliest release date.

3 Likes

Yes of course, it is not often that you get recording dates in booklets, outside of jazz and classical. :slight_smile:

You are right, I switched to uuid (aka MBID, release_group.gid) for musicbrainz.

https://headliners-and-sidemen.herokuapp.com/release_group/2536a41d-fde9-35d5-a6c6-cd4d94ffd916

1 Like

Super, and there is the MusicBrainz link at the release group page bottom, great!

Maybe an MB link for artist page would be great too.

Now, here is a strange date showing for Mick Ronson:

https://headliners-and-sidemen.herokuapp.com/release_group/57f862f4-3a93-425f-b801-be674c814b8d

1925-05-27
Mick Ronson
brass, strings

When he was not yet born. :wink:

Better. Ronson had no recording date and that compilation had recordings from other musicians from 1925. So my fill-in query gave him that date. I’m now assigning him the latest date, not the earliest.

Same link.

(I need to add a check to make sure you don’t get assigned a recording date that’s after you died.)

I think you shouldn’t make up dates.
It’s maybe because you are checking dates.
But why are you even checking dates?
All relationships should be shown.
You should just show known dates, but not filtering or making up. :thinking:

“But why are you even checking dates?”

Then none of this must make any sense to you! It’s all about time.

You could make an app that showed everything done by every artist on a release, but the pages would be huge. Instead, I’m showing the last one before and the first one after, which I define to be the neighborhood of the album. So dates are essential.

1 Like

Oh yes, I see!
I thought you just looked at release dates for this timeline.

New URL:

https://headliners-and-sidemen.vercel.app/

Same github:

https://github.com/johndimm/headliners-and-sidemen

2 Likes

Maybe it would be interesting to filter compilations out and keep only originals (including lives)?
Otherwise, the timeline is quite cluttered with misleading releases. :wink:
Maybe an optional checkbox?