Metadata is confusing for classical music. The artist field typically only lists the composer, which makes it hard to search by the performer's (orchestra's? conductor's? soloist's?) name unless it happens to be included in the album name.
Metadata:
title : Suite española, Op.47 - Granada (serenata)
artist : Isaac Albéniz
track : 1/22
album : The American Decca Recordings 1
disc : 1/6
date : 2009-05-26
TMED : CD
MusicBrainz Album Type: album
MusicBrainz Album Artist Id: 443aad48-c7e7-476f-96bf-90f123a4829b
MusicBrainz Artist Id: 0a46cf2a-61bd-447d-b8fd-a2b32eb20282
TDOR : 2009-05-26
ASIN : B001TN0V6U
TSO2 : Segovia, Andrés
album_artist : Andrés Segovia
CATALOGNUMBER : 028947781332
compilation : 1
MusicBrainz Release Group Id: 58b99c13-12fe-4827-9014-47518b071feb
artist-sort : Albéniz, Isaac
MusicBrainz Album Id: cd0b7289-57e8-44c1-9627-fbcc97990012
publisher : Deutsche Grammophon
MusicBrainz Album Status: official
Metadata:
title : Suite No. 1 in G major, BWV 1007: I. Prélude
artist : Johann Sebastian Bach
track : 1/18
album : Six Unaccompanied Cello Suites
disc : 1/2
date : 1983
TMED : CD
SCRIPT : Latn
MusicBrainz Album Type: album
MusicBrainz Album Artist Id: 24f1766e-9635-4d58-a4d4-9413f9f98a4c
MusicBrainz Artist Id: 24f1766e-9635-4d58-a4d4-9413f9f98a4c
TDOR : 1983
MusicBrainz Album Id: 99d76582-422f-493d-b83a-be52072edf54
TSO2 : Bach, Johann Sebastian; Ma, Yo-Yo
album_artist : Bach; Yo-Yo Ma
CATALOGNUMBER : M2K 37867
MusicBrainz Release Group Id: 01e23da3-2cba-3a44-b7fc-3f8d4a3f2056
artist-sort : Bach, Johann Sebastian
TSRC : USSM18200515
ASIN : B0000025QM
publisher : CBS Records Masterworks
MusicBrainz Album Release Country: US
MusicBrainz Album Status: official
This makes me think that I should also be storing the album_artist field, which appears to correspond to the TPE2 tag. The performer field, corresponding to TPE3, seems more appropriate, but it looks like it might not get set by default in some taggers.
Metadata:
title : Sonata, BWV 1020 in G minor, Adagio
artist : Johann Sebastian Bach
track : 17/21
album : Bach Sonatas (feat. flute: James Galway)
date : 1995
BARCODE : 090266255528
publisher : BMG Music
ALBUMARTISTSORT : Bach, Johann Sebastian
MusicBrainz Album Type: album
MusicBrainz Album Id: d180b66f-be41-43c8-92f4-b4e5c7c2987a
MusicBrainz Album Status: official
artist-sort : Bach, Johann Sebastian
album_artist : Johann Sebastian Bach
CATALOGNUMBER : 09026-62555-2
MusicBrainz Album Artist Id: 24f1766e-9635-4d58-a4d4-9413f9f98a4c
MusicBrainz Artist Id: 24f1766e-9635-4d58-a4d4-9413f9f98a4c
MusicBrainz Album Release Country: US
I luck out in that case since the soloist's name already appears in the album name.
Remixes are another issue. I don't think that TPE4 is typically set either, but it seems like using TPE2 may help here too. See 26 Mixes for Cash by Aphex Twin:
Metadata:
title : Time to Find Me (AFX Fast mix)
artist : Seefeel
track : 1/13
album : 26 Mixes for Cash (disc 1)
date : 2003-03-25
compilation : 1
ALBUMARTISTSORT : Aphex Twin
MusicBrainz Album Type: remix
artist-sort : Seefeel
MusicBrainz Album Status: official
MusicBrainz Album Id: cd20ee48-328b-4c24-8b37-2070f8a57c54
ASIN : B000088EGP
album_artist : Aphex Twin
MusicBrainz Album Artist Id: f22942a1-6f70-4f48-866e-238cb2308fbd
TSRC : GBBNZ9300032
MusicBrainz Artist Id: 8ffcd7d7-6293-4fbf-b0f6-46aef9ce9f69
MusicBrainz Album Release Country: US
I think that the title often contains the remixer's name in the case where they aren't the album artist:
Metadata:
title : Holdon (Modeselektor remix)
artist : Apparat & Raz Ohara
track : 4/11
album : Things to Be Frickled
disc : 2/2
date : 2008-04
TMED : CD
TDOR : 2008-04
album_artist : Apparat
TSO2 : Apparat
SCRIPT : Latn
publisher : Shitkatapult
TSST : Remix Apparat
ASIN : B00133QSWM
originalyear : 2008
artist-sort : Apparat & Raz Ohara
BARCODE : 881390168927
CATALOGNUMBER : Strike 89
Artists : Apparat
MusicBrainz Album Status: official
MusicBrainz Album Release Country: DE
MusicBrainz Album Type: album
MusicBrainz Album Id: 3d070d8e-aba9-4141-813d-c50a4e0e0ff6
MusicBrainz Album Artist Id: dc3dbfc1-f1f1-49c6-9d7c-425fabf3ae12
MusicBrainz Release Group Id: cf1aad97-b8f6-31bb-9933-8adc74c0bd9e
MusicBrainz Release Track Id: 76b4e5cf-3271-3d48-bd8a-d3aa664c11c5
MusicBrainz Artist Id: dc3dbfc1-f1f1-49c6-9d7c-425fabf3ae12
Metadata:
title : Ventolin (Cylob mix)
artist : Aphex Twin
track : 4/6
album : Ventolin EP (The Remixes)
date : 1995-03-27
BARCODE : 5021603060982
publisher : Warp Records
ALBUMARTISTSORT : Aphex Twin
MusicBrainz Album Type: remix
artist-sort : Aphex Twin
MusicBrainz Album Status: official
MusicBrainz Album Id: e846e716-d6ef-43d9-a296-e2460ca35185
ASIN : B00004WULX
MusicBrainz Artist Id: f22942a1-6f70-4f48-866e-238cb2308fbd
album_artist : Aphex Twin
CATALOGNUMBER : WAP60CDR
MusicBrainz Album Artist Id: f22942a1-6f70-4f48-866e-238cb2308fbd
TIPL : producer
composer : Richard David James
MusicBrainz Album Release Country: GB
So I should think about this some more and check more songs, but my initial thoughts are:
Add an AlbumArtist field to the Song struct and make nup update fill it.
Make the server include AlbumArtist when generating the Keywords field.
Figure out how to backfill the field (probably through a one-off hack).
Figure out how clients should display AlbumArtist (if at all).
Just to mention it, there are various sort order fields too, but I don't think I'm going to store them for now since I don't know anything about the quality of the data:
Metadata is confusing for classical music. The artist field typically only lists the composer, which makes it hard to search by the performer's (orchestra's? conductor's? soloist's?) name unless it happens to be included in the album name.
The American Decca Recordings 1 by Andrés Segovia has metadata like the following (per
ffmpeg -i
-- fields are described here):Another example is The Six Unaccompanied Cello Suites performed by Yo-Yo Ma:
This makes me think that I should also be storing the
album_artist
field, which appears to correspond to theTPE2
tag. Theperformer
field, corresponding toTPE3
, seems more appropriate, but it looks like it might not get set by default in some taggers.https://en.wikipedia.org/wiki/ID3#ID3v2_frame_specification has the following descriptions:
TPE1
- Lead performer(s)/Soloist(s)TPE2
- Band/orchestra/accompanimentTPE3
- Conductor/performer refinementTPE4
- Interpreted, remixed, or otherwise modified byhttps://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html has the following:
TPE1
- ArtistTPE2
- Album ArtistTPE3
- ConductorTPE4
- RemixerThis still isn't perfect. See Bach Sonatas (feat. flute: James Galway):
I luck out in that case since the soloist's name already appears in the album name.
Remixes are another issue. I don't think that
TPE4
is typically set either, but it seems like usingTPE2
may help here too. See 26 Mixes for Cash by Aphex Twin:I think that the title often contains the remixer's name in the case where they aren't the album artist:
So I should think about this some more and check more songs, but my initial thoughts are:
AlbumArtist
field to theSong
struct and makenup update
fill it.AlbumArtist
when generating theKeywords
field.AlbumArtist
(if at all).Just to mention it, there are various sort order fields too, but I don't think I'm going to store them for now since I don't know anything about the quality of the data:
TSO2
- Album Artist Sort OrderTSOA
- Album Sort OrderTSOP
- Artist Sort Order