History:Object Model/Track Object

From MusicBrainz Wiki
(Redirected from Object Model/Track Object)
Jump to navigationJump to search

This page describes the track or title object and its role in the ObjectModel.


A track is the result of the whole music production process that started with the idea described in the ../SongObject. The track is defined by a name and a position on a ../ReleaseObject (e.g. a track number on a CD) on a ../MediumObject. The ../TrackObject defines the smallest directly identifiable and unsharable object on exactly one ../ReleaseObject.

Note, that the track object itself does not contain any information about audible data. Instead the track object belongs to exactly one ../MasterObject, that encapsulate the related audio data.

Again: Each track is unique with respect to its ../MasterObject and ../ReleaseObject. That means there is only one instance of a track or in other terms: 2 tracks belong to the same ../TrackObject, if

  1. They belong to the same ../MediumObject.
  2. They belong to the same ../MasterObject.
  3. They have the same attributes (track title, position on the medium, etc.)


Boundaries to the MasterObject

The master that isn't directly accessible by the public needs to be used to create the track on a release. When a single identifiable piece of music can be listened to, it is a track on a release.

Boundaries at the bottom

There are no boundaries at the bottom. Each ../TrackObject is unique in audio and meta-data.


Relationships to the MasterObject

  • The master represents the audio data that the track contains, so there can be only one master for each track.


Relationships to the ReleaseObject

  • The track is defined by its position on a unique release.

Relationships to the ArtistObject

There is no direct relationship of a ../TrackObject to an ../ArtistObject. As a track described the representation on exactly one release and an artist identifies a person, we need to be able to relate the track to a textual representation of an artist, that might be different for different releases. Or simply, an artist can have different names on different releases and we want to relate the track to the exact name that was used for the release the track belongs to.

Instead of relationships to ../ArtistObjects we use:

Relationsships to the ReleaseArtistObject

  • Attention.png 1 to many or exactly 1, this depends on the implementation of the release artist The release artist of a track is the representation of an artist in relation to the release the track belongs to. In other words, a track is related to an artist string, that is identical to what is "on the cover" of its release.