Skip to content
This repository has been archived by the owner on Apr 18, 2023. It is now read-only.

Improve indexing of classical music and remixes #31

Closed
derat opened this issue Feb 5, 2022 · 1 comment
Closed

Improve indexing of classical music and remixes #31

derat opened this issue Feb 5, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@derat
Copy link
Owner

derat commented Feb 5, 2022

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):

  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

Another example is The Six Unaccompanied Cello Suites performed by Yo-Yo Ma:

  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.

https://en.wikipedia.org/wiki/ID3#ID3v2_frame_specification has the following descriptions:

  • TPE1 - Lead performer(s)/Soloist(s)
  • TPE2 - Band/orchestra/accompaniment
  • TPE3 - Conductor/performer refinement
  • TPE4 - Interpreted, remixed, or otherwise modified by

https://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html has the following:

  • TPE1 - Artist
  • TPE2 - Album Artist
  • TPE3 - Conductor
  • TPE4 - Remixer

This still isn't perfect. See Bach Sonatas (feat. flute: James Galway):

  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:

  • TSO2 - Album Artist Sort Order
  • TSOA - Album Sort Order
  • TSOP - Artist Sort Order
@derat derat added the enhancement New feature or request label Feb 5, 2022
@derat derat self-assigned this Feb 5, 2022
@derat
Copy link
Owner Author

derat commented Feb 5, 2022

Since the album artist is probably almost always the same as the (track) artist, I'm tempted to leave the field unset unless it's different.

derat added a commit that referenced this issue Feb 5, 2022
Make 'nup update' set a new AlbumArtist field from the TPE2
ID3 frame if it differs from the Artist (TPE1) field, and
update the server to include it in the Keywords fields. This
should make it possible to search by performers' or
remixers' names in many cases. See #31 for details.

I ran the following commands to add album artists to the
1s.mp3 and 5s.mp3 files:

eyeD3 --text-frame='TPE2:The Remixer' 1s.mp3
eyeD3 --text-frame='TPE2:Third Artist' 5s.mp3
@derat derat closed this as completed Feb 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant