"Composition" Tables


All -
Has there been any discussion of adding a set of tables (with corresponding service and UI changes) to support the concept of a composition? This is particularly important in classical music. Due to it’s complexity, it would need to be a full-fledged high-level entity that allows many-to-many mapping relationships to movements/parts, tracks, and releases. I didn’t see anything like this in the schema diagram, but haven’t been able to get to the FTP site to see if it happens to be in the database schema anyway (but not documented).

The reason I mention it is that this is not the kind of data that is easy to maintain in tags alone. A single track may represent just one part of a movement of a larger composition. Compositions may span discs and a release may have multiple multi-part compositions. My desire is to fully represent how a track relates back to a composition (if there is one), so ultimate meaningful tags can be applied downstream to actual files.

Just curious



This is called “Work” in MusicBrainz verbiage. See these documentation pages:

and every “-Work” relationship type in https://musicbrainz.org/relationships.


Ok I see that, and now I see that work parts are just reflexive work entities themselves.

However, I don’t see a meaningful relationship between a work and a track.

For example, let’s say there is a composition called symphony No.1 that contains 2 movements. This would be a work for the symphony itself, plus one each for the movements.

Now say I have a CD of this composition that has three tracks:

  1. movement 1, part 1.
  2. movement 1, part 2
  3. Movement 2.

How would this track-to-part relationship be handled?


Tracks 1 and 2 would be linked to Movement 1 with the “recording of” recording-work relationship with the “partial” attribute.
Track 3 would be linked to Movement 2 with the “recording of” recording-work relationship (without “partial”).
One issue that admittedly exists is that there’s no way currently to specify that tracks 1, 2 and 3 together are a recording of the full Symphony no. 1 work. Usually it’s possible to guess that if a release includes recordings of all movements, it includes the full work, but if some are set to partial then it becomes trickier (it might just include excerpts of the movements).


If you want to tag music files with this information, then I suggest you look at my “Classical Extras” plugin for Picard. This is only available for Picard 1.4.2 at the moment, but I plan to release a version for Picard 2.0 when I’m happy with it. Use this version of the plugin https://github.com/MetaTunes/picard-plugins/releases/tag/v0.9.3 and please read the extensive help at https://github.com/MetaTunes/picard-plugins/blob/1.0/plugins/classical_extras/Readme.md as this stuff does get pretty complicated.