History:Getting Rid Of Featuring Artist Style

From MusicBrainz Wiki
Status: This Page is Glorious History!

The content of this page either is bit-rotted, or has lost its reason to exist due to some new features having been implemented in MusicBrainz, or maybe just described something that never made it in (or made it in a different way), or possibly is meant to store information and memories about our Glorious Past. We still keep this page to honor the brave editors who, during the prehistoric times (prehistoric for you, newcomer!), struggled hard to build a better present and dreamed of an even better future. We also keep it for archival purposes because possibly it still contains crazy thoughts and ideas that may be reused someday. If you're not into looking at either the past or the future, you should just disregard entirely this page content and look for an up to date documentation page elsewhere.

Attention.png Note that this page may still contain valuable ideas for the future! History doesn't always mean useless ;) Attention.png

Getting Rid of Featuring Artist Style

Subject: This page tries to sum all problems of and possible solutions to the FeaturingArtistStyle. This is part of the short term SG5DisasterRelief and the long term effort to create the NextGenerationSchema of the database.

The idea to create this page comes from a post from DonRedman on mb-users (start of discussion here).

As of 15/11/2005 the compromise has been made an official guideline. FeaturingArtistStyle reflects this now. This page has however not been changed since then. It sums up all agruments for and against a change. To understand the secision process you will have to real the StyleMailingList archives.

Problems with the current Guideline

The current FeaturingArtistStyle has a couple of severe issues. This section should identify them:

  • Storing artist information as a section of the Title field is incorrect.
    • The Title field should contain a track's title.
    • The Artist field should contain a track's primary artist. The primary artist can be a Person, a Group or a Collaboration.
    • Any other contributors should be stored as Relationships to the track.
  • There is no clear definition on when a new collaborative artist should be used, or the (feat.) style should be used
  • Unless the featured artist is added as an AR in addition to the text in the title field, there is no way to track at a database level guest performances, collaborations, etc.
  • A search for A & B doesn't list artists that have tracks Track Name (feat. B).

On the other hand the current Guideline is not completely void of sense. the pro's for it are:

  • The hierarchy between the CoreEntities Artist-Release-Track is kept (well, at the expense of one artist being completely dropped out of this hierarchy). Most media players categorize tracks this way.
  • This presentation of the 'featuring' artists is often done in this exact format on the real world tracklisting.
  • The track shows up in the release listing of at least one of the two collaborating artsts. If, on the other hand, the track is filed under a collaboration-artist, it will only show up in the release listing of that collaboration.
  • This system makes a lot of sense where the track is (only) on a SingleArtistRelease, but the particular track features additional 'guest' performers. Most people wouldn't want to convert it to a VariousArtistsRelease in this case.

Proposed Solutions

This section should help to get a clearer picture of the proposed solutions and their pros/cons. Currently there are three proposals, which are tentatively called the "pragmatic", the "correct", and the "conservative" one. These names do not imply any valuation.

Tentative Compromise

It seems that there is a compromise appearing at the horizon. This has been proposed by RodBegbie in this post and by DonRedman (although reluctantly) in this post. On the other hand the same debate has shown that there are some fundamental differences in the way people think about this problem. See DisentangleInterfacesFromSchema for details.

We change FeaturingArtistStyle to read:

  • When two or more artists collaborate on a track or release, file the track/release under the primary artist, and * add "performed on" relationships to the secondary artists. * append the name of the secondary artist to the name of the track/release as follows:
    • "Put Your Lights On (feat. Everlast)"

    If no artist can be considered secondary, create a new artist in the form 'Artist 1 & Artist 2', file the track/release under that artist, and add "collaborated on" relationships to the artists.

This is, however, still under discussion. There are a couple of votes cast, but I am not sure, whether they refer to this new proposal, nor did I check who is a member of the StyleCouncil:

Name Vote SC Member Comment/Changes
DonRedman -0.1 Y changed from --1 and +1
DylanSteinberg +0.7 Y changed from ?
Dupuy -0.33 Y
Fuchs -0.5 N -.5 for changing the guideline and ++1 for explaining the correct interpretation of the current guideline.
Keschte ++1 Y
mcymd +1 Y
DJKC ++1 Y
RodBegbie +1 N
TarragonAllen ++1 Y
Trongersoll +1 N
Zout ++1 Y
LukasLalinsky ++1 N
Gecks +0.5 Y Changed from -0.9 (then proposal was reviewed)
bawjaws ++1 N

Replace "feat." by a Collaboration-Artist

This seems to be the most "pragmatic" proposal. In this solution only the FeaturingArtistStyle guideline would be changed to something like:

  • "When two or more artists collaborate on a track or release, file the track/release under the primary artist, and then add Performance relationships to the secondary artists. If no artist can be considered secondary, create a new artist in the form 'Person A & Person B' and add the artists as collaborators."


  • Removes cruft from Title fields, since they are no longer cluttered with artist names.
  • Stores richer information (what did the secondary artist perform?)
  • Creates a more relational and future-proof database.
  • Requires no coding changes. (but see con below)


  • Secondary artist information will not be added to ID3 tags. To solve this the PicardTagger would need to be able to process AdvancedRelationships.
  • Secondary artists vanish from the visible part of the database. The current website design doesn't give visibility into relationships attached to Tracks.
  • Current website design to add members to a Group is clunky.
  • This increases the number of artist entities in the database to include more collaborations.
  • The releases will not show up in the release listings on either of the collaborating artist's artist pages. I do not know how much work would be needed to solve this, maybe the ArtistPageRedesign can easily be expanded to display releases from collaborations of an artist.
  • This is exactly the same problem as tracking performances across bands. The mythical "Show me all tracks performed on by Eric Clapton" query currently has to span "The Yardbird" and "Cream", as well as things like "Eric Clapton & Jimmy Page". --RodBegbie

Wait for Picard to Be Able to Handle AdvancedRelationships

This is the "conservative" approach. It would mean to continue without changing the style guide until Picard can deal with giving users options on how they want AR data applied to tags.


  • Requires no changes to anything now.


  • Will compound the current problem.
  • Will make it harder to switch to a "correct" approach in the future.

Implement 1:n relationships of Artists to Tracks

This is a development intensive approach. It would allow to store one to many artists who collaborated on a track in the core database tables, but would not require any complicated styleguide decisions anymore. LukasLalinsky proposed a database schema change which could handle the requirements sketched above, and Ruaok agreed that this would be the most satisfactory solution to the problems plaguing us since SG5 was introduced. Please read the chatlog of the discussion about the database schema change.

Media-Libraries and Players which support hierarchical types only, will be provided a flattened representation (e.g. Artist x (rowid=x, seqnr=1) + linktype (one of vs.,and,& or whatever else is possible) + Artist y (rowid=y, seqnr=2)) which will

  • allow to reproduce what's written exactly on the release cover
  • allow to have Artist A & Artist B on one release, and Artist B vs. Artist A on another, with no need for additional artists but the two individual artists.


  • Getting rid of unnamed (Artist A & Artist B ) collaboration artists and replace them with references to the collaboration participants
  • SG5 can be adapted to deal with Guest artist only (which as noted elsewhere, sometimes appear on the tracklisting with feat.)
  • Is a more complex implementation of the pragmatic approach, and implements the Replace "feat." by a Collaboration-Artist solution in a more correct, futureproof way. There is no need for additional collaboration artists, because the individual artists are listed as artists on the track


  • Major change to the website
  • Significant changes to the documentation
  • Wrong data entered by non-habitual users due to misunderstanding of the new concept
  • Increases number of database joins to display an release track listing. In the vast majority (99%, I'd SWAG) of cases, track:artist will be a 1:1 mapping.
  • Increases complexity for adding/importing a VariousArtistsRelease.
  • contradiction with the point above, because this will be a rare (1% if that's true) case --Keschte Not a contradiction. It increases the complexity of the UI for *every* import (since you need, at a minimum, for every track, a checkbox and some text explaining the checkbox, to indicate that "more than one artist" performed on a track), even if it's only useful in 1% of cases. --RodBegbie
  • This is a different pair of shoes IMHO, because this is more a "Band" than a "Collaboration" in the musicbrainz sense (uses the collaborated on relationships, because a band is expected to be releasing a certain number of releases, or if the genre (e.g. Rock) commonly uses the "Band" term to describe a number of musicians playing together) --Keschte Not at all. Both of these examples are of a group of solo artists who got together for one day and recorded one track. They're temporal collaborations which just happen to have names. --RodBegbie
  • Requires a great deal of planning to generate "correct" display names. eg.
    • Putting artists in the "right" order. ('Foo & Bar' versus 'Bar & Foo'. Users will get upset if this is "wrong")
    • Using the appropriate "join" ('Foo & Bar', 'Foo et Bar', 'Foo vs. Bar', 'Foo, Bar and Baz', etc.)
    • Using the artists' names in the "expected" way (Russ gave the example "William Gilbert & Arthur Sullivan" versus the correct "Gilbert & Sullivan")
  • Difficult to apply consistently. (Should a track by "Simon & Garfunkel" be treated differently from a track peformed by "Aimee Mann & Michael Penn". If so, can you succinctly explain how, in a way that is easily understandable and not liable to confusion?)
  • Cannot be re-applied to another track between the same collaboration.
  • Why? You'll be able to select 1-n artists for a track, and do this for how many tracks of an release you like --Keschte Do I have to do it over and over? The track "Well, Did you evah?" performed by Iggy Pop and Deborah Harry is on various compilations. Currently "Iggy Pop & Deborah Harry" is one artist. If someone loads another compilation, they only have to point to that joint artist, and the AR queries trickle it down to the collaboration members. If they have to go through a process of picking two artists, deciding on a sort order, and deciding on a join character *every* time, then it's a lot of extra work. --RodBegbie

Abandon the guideline and let people use whichever solution above they want

The guideline would contain at least two suggested styles for representing collaborations, but wouldn't mandate either one. The guideline should, however, request that people don't change any existing cases from one style to another.

This option is working on the assumption that eventually, down the road, we'll have a Picard tagger that can take full advantage of AR, or a database schema that allows multiple primary artists, or something along those lines. To that end, it's trying to avoid wasting time coming up with a foolproof solution now, and editing all the existing collaborations, in favour of waiting for something that we can all agree on.


  • Doesn't involve changing any existing artists
  • Avoids arguments and complaints
  • Lets the community decide on a case by case basis, rather than the StyleCouncil imposing a solution


  • The database will get inconsistent, which causes confusion - users don't know where to expect information, applications can't rely on AR links being in place.
  • This will make it harder to automatically migrate to a "good" solution in future.

Concrete Examples

Discussions like this often get confused because of referrals to anonymous and generic items such as Artist X and Track Y. It might be worth pointing to actual releases in the DB and showing how different methods would treat them.

Judgment Night Soundtrack

The Judgment Night Soundtrack is a release consisting entirely of collaborations, see release cover with artists This release has the concept of bringing together a 'rock' and 'rap' artist to collaborate for each track e.g.

Track 1: "Just Another Victim" produced as a collaboration by Helmet (a 'rock' group) and House of Pain (a 'rap' act)

Current State

The current state (as of 20th Oct 05) follows the styleguide exactly and renders this as:

  • Track Name: "Just Another Victim (feat. House of Pain)"
    Artist: "Helmet"

The track also has an AR that claims the track was performed by House of Pain. The track (including a single release and remix) occurs in the database 3 times in total, the other two tracks don't have any AR attached to them, probably a moderator oversight. I assume they should have the same AR.

The rest of the release in MB follows the same format with the 'rap' artist feat.ured in the track title and an AR to the 'rap' artist as performing the track.

"Pragmatic" Solution"

My (bawjaws) preference, and following the "pragmatic" sketch of a revised FeaturingArtistStyle given above would be for:

  • Track Name: "Just Another Victim"
    Artist: "Helmet & House of Pain"

This collaboration "Helmet & House of Pain" would then be listed as an artist and marked as a collaboration via AR to both artists e.g. "Helmet collaborated on Helmet & House of Pain" & "House of Pain collaborated on Helmet & House of Pain"

Pros and Cons

Advantages for this case remaining as is now:

  • If you are a fan of, in this case, the 'rock' artists rather than the 'rap' artists then the songs will appear, on the website and in your music app, listed under the artist you like.

Advantages for this case if SG5 was changed:

  • The track title field contains what is unambiguously the correct title of the track
  • The artist field contains the text of both collaborating artists for use in searching
  • This track appears three times, that means 3 AR's. It would seem likely that popular collaborations (that therefore turn up on multiple releases) would result in a forest of ARs on the 'lesser' artist's page. If the track appears once in the DB (i.e. only on version of one release or single) and the collaborators never do anything else together then the current SG5 is less work, as soon as the track or any other by the same collaboration appears on a second release the change is less manual work to set up (for every track: one artist and one performer AR per feat. artist vs. fixed cost of one collaboration AR per collaborator + one artist link per track)
  • The two artist are treated equivalently and equally.
  • If you wish to consider the collaboration as a separate entity it is difficult to do so under the current system
  • This is closer to what a MusicBrainz naive user would expect to find and to enter
  • It would be harder for duplicates to be filed in the DB (a reversed "House of Pain & Helmet" artist would show up in searches and be easily merged)
  • Is identical to what would be need to be done for a collaboration that had a unique name, therefore requiring less coding and less learning by users, see collaborations such as Saint Etienne Daho or Smokin' Mojo Filters

Other Examples

Other useful examples that could be expanded on:

  • Elvis vs. Junkie XL (see discussion and note later disappearance of this collaboration 'artist', the various versions of this track are currently listed, semi-randomly, under both Elvis and Junkie XL, primarily without any credit or AR for the other artist.)
  • Tom Jones and friends. Primarily through the release Reload, Tom Jones has performed many celebrity duets/collaborations. As many of these were released as singles and turn up on multiple VA hits releases the database currently has multiple collaborations with Tom Jones as artists.
  • Marvin Gaye's duet releases: United and You're All I Need with Tammi Terrell, Take Two with Kim Weston, Together with Mary Wells. Some of these tracks are soul classics, and appear on a ridiculous number of compilations.
  • It would be good if someone could propose rap and dance examples as both these genres seem to have embraced the feat. terminology.