User:LordSputnik/Track System Redesign: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(43 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page is a constantly evolving work in progress. It will never be finished! But hopefully it'll get to a point where the ideas are coherent enough to be implemented!
=Introduction=
Read: http://en.wikipedia.org/wiki/Functional_Requirements_for_Bibliographic_Records
==Terminology==
===Work===
A '''work''' is an artistic creation. Examples of a work include a song or some form of classical piece. Works are near enough perfect in their current form. They are well defined and already serve the intended purpose.


The aim of this wiki page is to present a comprehensive, clear and purposeful system to replace recordings.
===Performance===
A '''performance''' is realization of a work. A performance can be a studio recording or a live recording. A performance refers to one or more recording sessions for the same work.


==Why Recordings are Bad==
Performances can be merged, but this will usually only happen in rare circumstances, since tracks aren't assigned to performances by default. An editor must make an edit to associate a track with a performance, and this edit is subject to the voting process, like any other non-auto-edit.
Consider this: A release is audio that you can buy or obtain in some format in some country. A work is an audio composition. A label is an organization which publishes audio. An artist is a person or group which creates audio. All MusicBrainz entities relate to something concrete and real. All except the Recording entity. A recording is defined as "representing distinct audio". It is an abstract, conceptual entity. This is why it should have no place in MusicBrainz.


What exactly is meant by "distinct audio"? This could refer to the audio created when a performance is recorded in a studio. It could just as easily refer to the audio on a CD track. Both interpretations are equally valid, but the Recording guidelines have nothing to say as to which interpretation is to be used. The recording level is a mixture of two more realistic levels - the mix and the master.
===Track===
A '''track''' is the embodiment of a performance. When a release is added, tracks are created, assigned MBIDs, and given titles. The track names are displayed on the release main page. Clicking a track name will take the editor to the track.


This proposal creates these '''two new entities, mix and master''', to replace the recording with more meaningful levels. It also creates '''unique track entities''' which cannot be merged, to remove the need to deal with cases of "unique audio".
=Overview=
For example, if an EP is added to the DB:


As '''Caller#6''' put it:
"Some Songs" by "RandomBandom"
#An Old Song
#A New Song
#A Borrowed Song
#A Blue Song


''"It seems clear that some people want to track the minutia of audio-quality data. That's awesome.''


''And it seems clear that some people don't. Some of us primarily want a place to store personnel-level metadata.''
Then four tracks will be created:


''Why are we trying to do those two things in the same place?"''
{| style="width:100%;"
| width="25%"|'''Add Track'''
''2b54064a-8739-447f-bb05-288462d98f7c''
*Title: An Old Song
*Release: Some Songs
*Artist: RandomBandom
|'''Add Track'''
''115898e8-f35c-448c-a376-4f0ee126e49f''
*Title: An Old Song
*Release: Some Songs
*Artist: RandomBandom
|'''Add Track'''
''322b7246-5046-4ff8-909c-4fd899790e11''
*Title: An Old Song
*Release: Some Songs
*Artist: RandomBandom
|'''Add Track'''
''bd66b032-4391-4c79-8706-f99e6261ddf5''
*Title: An Old Song
*Release: Some Songs
*Artist: RandomBandom
|}


==Overview==
Works, mixes, masters and tracks can all be related to each other. A track can be related to all or none of the higher level entities. There should also be some way of lower level relationships overwriting higher level relationships. For example, both a track and a master are related to the same work. If an editor creates a relationship between the track and the master, the track's work relationship should somehow disappear and be replaced by the master's work relationship. In other words, a relationship on a higher-level entity should be inherited by a lower-level entity. Higher level entities can be related to multiple lower level entities, but lower level entities should generally only be related to one of each type of higher level entity.


==Definitions==
The release will store tracks like this:
===Work===
A '''work''' is an artistic creation. It is the highest level entity of the four. Examples of a work include a song or some form of classical piece. Works are near enough perfect in their current form. They are well defined and already serve the intended purpose.


===Mix===
{|
A '''mix''' is a version of a performance of a work. A mix can be made of a studio performance or a live performance. A mix does not refer to changes to the way the audio sounds. It refers to major, structural changes to the audio. For example, the removal of half of the song to create a radio edit, or the separating of instruments into two channels to create stereo audio.
!Position!!MBID
|-
|1||2b54064a-8739-447f-bb05-288462d98f7c
|-
|2||115898e8-f35c-448c-a376-4f0ee126e49f
|-
|3||322b7246-5046-4ff8-909c-4fd899790e11
|-
|4||bd66b032-4391-4c79-8706-f99e6261ddf5
|}


Mixes can be merged, but this will hopefully happen less frequently than for recordings, due to the more objective nature of a mix. An editor must make an edit to associate a track with a mix, and this edit is subject to the voting process, like any other non-auto-edit.


If mixes are to have a length, then this should be set as the average length of all related tracks.
When tracks are reordered on a release, the MBIDs are simply swapped. For example, swapping track 2 with track 3:


Performance ARs should be attached at the mix level. These relationships will need to be duplicated if parts of the performance feature on two separate mixes.
{|
!Position!!MBID
|-
|1||2b54064a-8739-447f-bb05-288462d98f7c
|-
|2||'''322b7246-5046-4ff8-909c-4fd899790e11'''
|-
|3||'''115898e8-f35c-448c-a376-4f0ee126e49f'''
|-
|4||bd66b032-4391-4c79-8706-f99e6261ddf5
|}


===Master===
A '''master''' is a mix which has been edited or altered to change the sound, in preparation for the creation of a release. This entity isn't as common as the others mentioned here - relating a track to a master is optional, and should only be done where '''documented evidence''' supports the relationship being made. In general, this means that masters should correspond to the original master for a mix, or subsequent remasters of that original master.


Mastering ARs should nearly be attached at the master level, and not at the release level, with the possible exception of the "mastered by..." relationship itself, because that can sometimes apply to a specific format of a release (eg. vinyl mastering).
If a track name is changed in the release, it simply updates the name on the track:


If masters are to have a length, then this should be set as the average length of all related tracks.
1. An Old Song -> 1. Ye Olde Songe


'''Edit Track'''
===Track===
A '''track''' is the master after it has been copied onto a particular release. It is the lowest level entity of the four. It is unique to the single release it appears on, and lives and dies with that release. When a release is added, tracks are created, assigned MBIDs, and given titles. A mix could optionally be assigned to a track on release creation: we should have three options here: "Search for mix", "Add new mix", "Don't know" (leaves track with no mix relationship). The last two of these options could be batch applied to tracks.

''2b54064a-8739-447f-bb05-288462d98f7c''
*Title: '''An Old Song''' | '''Ye Olde Songe'''


All of these tracks will automatically link to works, selected when the release is added. Tracks using a work will be stored in a tab, on the work itself. They will be grouped by release group, and all release groups should be collapsed initially:


'''Ye Olde Songe'''

'''- Song'''

Overview|Aliases|Tags|Details|'''Tracks'''|Edit
*'''Some Songs''' by ''RandomBandom''
**1/4 - ''Ye Olde Songe'' on ''Some Songs''
**1/4 - ''Ye Oldey Song'' on ''Some Songs''
*'''Longer Songs''' by ''RandomBandom''
**1/14 - ''Ye Olde Songe (single version)'' on ''Longer Songs''
*'''We Made an Awesome Cover''' by ''Band on Tandems''
**1/1 - ''Ye Olde Songe'' on ''We Made an Awesome Cover''


=Relationships=
==Work==
*A work can be associated with one or more composers, arrangers, instrumentators, orchestrators, lyricists, librettists, translators or publishers.
*A work can be associated with one or more performances.
*A work can be associated with one or more tracks.
*A work can be expressed as a part of another work.
*A work can be expressed as being derived from one or more other works. Examples: instrumental work with lyrics added later, translation of a work into a different language, mashup.

==Performance==

----


<span style="color: red; font-size: 20px;">Stop Reading Here! :)</span>


----

=Track Groups=

*Instead of selecting a recording when adding a release, you select the work. The track is added to the work, which contains a long list of all associated tracks in some non-default tab.
*The list of tracks is arranged into track groups, which correspond to specific versions of the work. Track groups each have a corresponding artist and optionally a description.
*All works have a new field, called "original performer". This contains the artist(s) who originally performed the track. The system uses this field to designate some track groups as "covers".
*When a track is added to a work, it gets put into the default track group for the track artist. The default track group is probably where most tracks on compilations would end up.
*You can move a track between track groups, and make new track groups. A track group would be made for every significantly different version of a track. This includes notable remasters.
*Tracks in a group can have varying lengths. The length is unimportant, as long as the portion of audio that is in a track is the same as other audio in the group.

For example:

==Song - "Waterloo"==

*Type: Song
*Lyrics Language: English
*Original Performer: ABBA

===Track Group by ABBA===
*Track 1: 3:20 (from 1974 US vinyl "Ring Ring")
*Track 2: 3:20 (from 1974 Swedish vinyl "Ring Ring")
*Track 3: 3:01 (from 1999 CD "Best of the 70s")

===Track Group (single) by ABBA===
*Track 1: 2:32 (from 1975 Swedish single "Waterloo")

===Track Group "2001 Remaster" by ABBA===
*Track 1: 3:20 (from 2001 CD "Ring Ring")
*Track 2: 3:21 (from 2002 CD "ABBA: The Complete 2001 Remasters")

===Track Group (cover) by Bjorn Again===
*Track 1: 2:19 (from 1995 CD "Rung Rung")

----


The track names are displayed on the release main page. Clicking a track name will take the editor to the track.
There are no recordings here.


In an ideal system, '''AcoustID'''s should be related only to tracks. However, this is a matter for luks to decide on, and until he's reviewed any change to the MusicBrainz schema and decided on a course of action, MusicBrainz should stop displaying AcoustIDs on any entity. With no changes to AcoustID, the links in the AcoustID database would still point to recordings, now redefined as mixes.
By default, "Waterloo" album tracks by ABBA will go in the top group, which is the default album track group. "Waterloo" tracks from singles by ABBA will go in the second group by default.


You can move tracks and merge tracks in edits after they've been added. Track groups can also be merged, created and split. In this case, the track group "2001 Remaster" by artist "ABBA" has been created by a user, and the two tracks in there have been moved there after they were added. Alternatively, there's an option when adding a release to put tracks in a specific group, to save editing afterwards, and to create a new group for the track. But these options are hidden by default.


==Implementation==
The cover by Bjorn Again has its own group. This is the default group for the artist Bjorn Again, and all "Waterloo" tracks by Bjorn Again will go there. This group was automatically labelled cover, because the original performer is listed as ABBA.
#Create a track entity. Replace all tracks in the db with this new entity, and relate them to recordings attached to releases through the current system.
#Create the master entity, and master-* relationship types.
#Rename recording entity to mix. Update style guidelines to explain the migration process and the new roles of the entities.
#Create a few wizards/scripts to help with moving mastering relationships from mixes to masters, and to move them from releases to masters.
#Get editors to redo all the relationships!


https://moqups.com/LordSputnik/K1hgjNTY
A '''track group''' is a group of tracks.

Latest revision as of 14:51, 9 January 2013

This page is a constantly evolving work in progress. It will never be finished! But hopefully it'll get to a point where the ideas are coherent enough to be implemented!

The aim of this wiki page is to present a comprehensive, clear and purposeful system to replace recordings.

Why Recordings are Bad

Consider this: A release is audio that you can buy or obtain in some format in some country. A work is an audio composition. A label is an organization which publishes audio. An artist is a person or group which creates audio. All MusicBrainz entities relate to something concrete and real. All except the Recording entity. A recording is defined as "representing distinct audio". It is an abstract, conceptual entity. This is why it should have no place in MusicBrainz.

What exactly is meant by "distinct audio"? This could refer to the audio created when a performance is recorded in a studio. It could just as easily refer to the audio on a CD track. Both interpretations are equally valid, but the Recording guidelines have nothing to say as to which interpretation is to be used. The recording level is a mixture of two more realistic levels - the mix and the master.

This proposal creates these two new entities, mix and master, to replace the recording with more meaningful levels. It also creates unique track entities which cannot be merged, to remove the need to deal with cases of "unique audio".

As Caller#6 put it:

"It seems clear that some people want to track the minutia of audio-quality data. That's awesome.

And it seems clear that some people don't. Some of us primarily want a place to store personnel-level metadata.

Why are we trying to do those two things in the same place?"

Overview

Works, mixes, masters and tracks can all be related to each other. A track can be related to all or none of the higher level entities. There should also be some way of lower level relationships overwriting higher level relationships. For example, both a track and a master are related to the same work. If an editor creates a relationship between the track and the master, the track's work relationship should somehow disappear and be replaced by the master's work relationship. In other words, a relationship on a higher-level entity should be inherited by a lower-level entity. Higher level entities can be related to multiple lower level entities, but lower level entities should generally only be related to one of each type of higher level entity.

Definitions

Work

A work is an artistic creation. It is the highest level entity of the four. Examples of a work include a song or some form of classical piece. Works are near enough perfect in their current form. They are well defined and already serve the intended purpose.

Mix

A mix is a version of a performance of a work. A mix can be made of a studio performance or a live performance. A mix does not refer to changes to the way the audio sounds. It refers to major, structural changes to the audio. For example, the removal of half of the song to create a radio edit, or the separating of instruments into two channels to create stereo audio.

Mixes can be merged, but this will hopefully happen less frequently than for recordings, due to the more objective nature of a mix. An editor must make an edit to associate a track with a mix, and this edit is subject to the voting process, like any other non-auto-edit.

If mixes are to have a length, then this should be set as the average length of all related tracks.

Performance ARs should be attached at the mix level. These relationships will need to be duplicated if parts of the performance feature on two separate mixes.

Master

A master is a mix which has been edited or altered to change the sound, in preparation for the creation of a release. This entity isn't as common as the others mentioned here - relating a track to a master is optional, and should only be done where documented evidence supports the relationship being made. In general, this means that masters should correspond to the original master for a mix, or subsequent remasters of that original master.

Mastering ARs should nearly be attached at the master level, and not at the release level, with the possible exception of the "mastered by..." relationship itself, because that can sometimes apply to a specific format of a release (eg. vinyl mastering).

If masters are to have a length, then this should be set as the average length of all related tracks.

Track

A track is the master after it has been copied onto a particular release. It is the lowest level entity of the four. It is unique to the single release it appears on, and lives and dies with that release. When a release is added, tracks are created, assigned MBIDs, and given titles. A mix could optionally be assigned to a track on release creation: we should have three options here: "Search for mix", "Add new mix", "Don't know" (leaves track with no mix relationship). The last two of these options could be batch applied to tracks.

The track names are displayed on the release main page. Clicking a track name will take the editor to the track.

In an ideal system, AcoustIDs should be related only to tracks. However, this is a matter for luks to decide on, and until he's reviewed any change to the MusicBrainz schema and decided on a course of action, MusicBrainz should stop displaying AcoustIDs on any entity. With no changes to AcoustID, the links in the AcoustID database would still point to recordings, now redefined as mixes.


Implementation

  1. Create a track entity. Replace all tracks in the db with this new entity, and relate them to recordings attached to releases through the current system.
  2. Create the master entity, and master-* relationship types.
  3. Rename recording entity to mix. Update style guidelines to explain the migration process and the new roles of the entities.
  4. Create a few wizards/scripts to help with moving mastering relationships from mixes to masters, and to move them from releases to masters.
  5. Get editors to redo all the relationships!

https://moqups.com/LordSputnik/K1hgjNTY