User:Nikki/Recordings

From MusicBrainz Wiki

What I want from recordings

  • I want to have a list of versions of songs (i.e. mixes), because for artists I like, I typically want to get a copy of each one.
  • I want to take advantage of shared relationships, because shared relationships means less work (for people adding the data) and less duplication (for people using the data).
  • I don't want to have to worry about masters, because they don't interest me and more importantly, I have no idea how to determine whether something is a new master.
  • I don't want to be forced to compare audio of every single recording before I can merge it, because it's too time consuming for me to bother at best, impossible at worst.
  • I want to be able to see a list of releases each version is available on, so that I can see how widely available the song is and what releases I can get to obtain a copy.
  • I want the definition of recordings to take into account that until NGS, we had been merging releases with the same tracklist regardless of whether they were separate masters or not, because cleaning a decade's worth of information up is very difficult.
  • I want recordings to be reasonably intuitive for new users, to maximise the chance of them using them correctly. The more people who agree that two recordings are separate, the better.
  • I want recording lengths to be set automatically somehow (I really don't care how), because copying them from tracks manually is retarded so I don't bother.

If I had my way, I would simply define recordings as mixes and put mastering at the release level. However, in an attempt to satisfy masterists, here's my proposal:

Proposal

Presumptions

The following presumptions are being made:

  • Some people want to distinguish mixes while others want to distinguish masters, so a second level is needed for us to make any progress.
  • Due to pre-NGS release events and post-NGS recording merging, recordings often represent a higher level than masters.
  • Masters are harder to distinguish than mixes, so exposure to masters should be limited.
  • The interface is already complicated, so exposure to multiple levels should be minimalised.
  • More changes means more work, so it should fit into the existing model as much as possible.

Proposal

  • Define recordings as mixes.
  • Add a master level.
  • Automatically create masters for tracks, so that editors never have to deal with masters unless they want to.
  • Automatically add mastering relationships to the master, so that we don't have to add a new level in the relationship editor.
  • Make it possible to manage (merge, split) masters from the recording page.

The outcome should hopefully be that people can merge recordings (i.e. mixes) much more easily without having to worry about making sure they're not different masters, while people who care about and/or can find information about the masters can manage those without having people attempting to blindly merge them all the time.

One possible approach to implementing it

Yes, I know we weren't supposed to be thinking about this bit. You'll live.

Stage 1: Schema changes

  • Schema changes: A new "master" level is added in the database between tracks and recordings with the ability to link artists to the master (requires as a minimum the following tables: master (id, name, recording), track_master (track, master), l_artist_master (id, link, entity0, entity1)).
  • Migration involves creating a master for every track.
  • No visible changes are made to the interface. Whenever a track is created, a new master is created with it.

At this point, we have the necessary schema changes but nothing has actually changed yet.

Stage 2: Move mastering to masters

  • Recordings are now defined as "mixes", since masters are their own level.
  • Migration involves copying existing mastering relationships for a recording to all the masters linked from that recording.
  • Interface changes: The recording page would list masterers somehow. Possibly as "mastering: Artist Name on Release Name".
  • The relationship editor will automatically add mastering relationships to masters rather than recordings behind the scenes, so no visible changes there.
  • What about the individual "Relate to ..." pages?

At this point we have masters and information is on and is being added to the correct level. Now people can merge recordings a bit more freely since merging the recordings will not merge the masters. However, in cases where people have already identified and split masters, it would probably make sense to wait before merging those.

Stage 3: Manage masters

  • Add a "Manage masters" link to the recording page. The master management page would let editors manage masters, including merging/splitting and giving a master a name. This would require new edit types.

At this point, it should be possible to merge recordings even for cases where masters have been identified (merge all masters for the recordings, then merge the recordings)

Stage 4: Better display of information

  • Change the recording page to display master information better. Somehow.