danbee / persephone

macOS MPD client written in Swift.
https://persephone.fm
MIT License
219 stars 19 forks source link

Bug: Persephone 0.17.2-alpha doesn’t recognise some compilations #70

Closed odkr closed 3 years ago

odkr commented 4 years ago

Yet another bug report, sorry!

I noticed that Persephone doesn’t group the tracks of some compilations together:

Screenshot 2020-10-04 at 21 25 41

Hyperdub 10.2 should be displayed in the same way as Hyperdub 10.3 and Hyperdub 10.4, as a single album.

The compilation flag is set for each track of those albums:

beet ls -p hyperdub | sort |
while read -r FNAME; do
        printf '%s: ' "$FNAME"
        ffprobe "$FNAME" 2>&1 |
        awk -v comp=0 -F':' '$1 ~ /compilation/ {comp=$2; exit} END {print comp}'
done

prints:

/Volumes/music/files/Compilations/Hyperdub 10.2/01 Signal.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/02 Shell of Light.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/03 5785021.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/04 Obsessed.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/05 Never Defeated.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/06 Solid.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/07 I Know (That You Are the 1).mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/08 Pusher, Taker.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/09 You and Me.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/10 Sticks & Stones.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/11 Just Vybe (Soule Power mix).mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/12 You Make Me Feel.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/13 Only One.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.2/14 Lies, Lies.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/01 In McDonalds.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/02 Urban.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/04 I Am Your Ambient Wife.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/05 Pink Sham Pain Down the Drain.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/06 Melt.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/07 Siren.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/08 Untitled 13.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/09 City of God.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/10 Blue.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/11 DSM.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/12 Mind.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/13 Night Bus.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/14 Completion.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/15 Ostkreuz.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/17 Time_Speed.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/18 Hexgonic Sound.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/19 Trying.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/20 Wow.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/22 Reach the Devil.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.3/23 Gage.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/01 Lambeth.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/02 Him da Biz.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/03 Ugly Observation.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/04 Vice Versa.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/05 Lazer War.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/06 Oh.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/07 Position VIP.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/08 Fuller (Rev VIP).mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/09 Megadrive Generation Dorian Concept (remix).mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/10 The Phoenix.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/11 Monophonic Nightmare.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/12 Fuck Diamonds (Bambounou remix).mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/13 Love Again.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/14 Kaychunk.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/15 Street Halo.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/16 Love Is the Drug.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/17 Love Dub Refix.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/18 Need to Feel.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/19 Gold (John Roberts remix).mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/20 Step 2 Funk.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/21 Boomslang.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/22 Bellion.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/23 Walk It Out.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/24 Narst.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/25 808 Vybzin.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/26 NOYFB.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/27 Polyphonic Dreams.mp3: 1 /Volumes/music/files/Compilations/Hyperdub 10.4/28 Chance of Rain.mp3: 1

I had a look at the tags, but I don’t see how they differ. Anything in particular I should look out for?

danbee commented 3 years ago

@odkr Persephone does not look at the compilation tag, so that should have no effect. Instead tracks are grouped by albumartist which would usually be set to something like "Various Artists" in compilations.

I might look into grouping on the compilation too if that makes more sense.

odkr commented 3 years ago

The thing is, album_artist is set to "Various Artists".

beet ls -p "album:Hyperdub 10.2" | sort |
while read -r FNAME; do
        printf '%s: ' "$FNAME"
        ffprobe "$FNAME" 2>&1 |
        awk -v r='<none>' -F: '$1 ~ /album_artist/ {r=$2; exit} END {print r}'
done

prints

/Volumes/music/files/Various Artists/Hyperdub 10.2/01 Signal.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/02 Shell of Light.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/03 5785021.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/04 Obsessed.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/05 Never Defeated.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/06 Solid.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/07 I Know (That You Are the 1).mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/08 Pusher, Taker.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/09 You and Me.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/10 Sticks & Stones.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/11 Just Vybe (Soule Power mix).mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/12 You Make Me Feel.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/13 Only One.mp3: Various Artists /Volumes/music/files/Various Artists/Hyperdub 10.2/14 Lies, Lies.mp3: Various Artists

I don’t see how these files differ.

$ ffprobe /Volumes/music/files/Various\ Artists/Hyperdub\ 10.2/01\ Signal.mp3
ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mp3, from '/Volumes/music/files/Various Artists/Hyperdub 10.2/01 Signal.mp3':
  Metadata:
    title           : Signal
    artist          : Dean Blunt & Inga Copeland
    track           : 1/14
    album           : Hyperdub 10.2
    disc            : 1/1
    date            : 2014-07-28
    genre           : Electronic
    compilation     : 1
    TKEY            : D
    TMED            : CD
    TBPM            : 122
    lyrics-XXX      : 
    publisher       : Hyperdub
    TIPL            : arranger
    TDOR            : 2014-07-28
    SCRIPT          : Latn
    album_artist    : Various Artists
    CATALOGNUMBER   : HDBCD026
    Source          : WEB
    artist-sort     : Blunt, Dean & Copeland, Inga
    REPLAYGAIN_ALBUM_GAIN: -6.04 dB
    REPLAYGAIN_ALBUM_PEAK: 1.109609
    REPLAYGAIN_TRACK_GAIN: -6.67 dB
    REPLAYGAIN_TRACK_PEAK: 1.003955
    ALBUMARTISTSORT : Various Artists
    TSO2            : Various Artists
    MusicBrainz Album Status: Official
    MusicBrainz Album Type: compilation
    Album Artist Credit: Various Artists
    MusicBrainz Album Release Country: GB
    Ripping tool    : EAC
    originalyear    : 2014
    Artist Credit   : Dean Blunt & Inga Copeland
    Rip date        : 2014-07-21
    Catalog #       : HDBCD026D 
    Acoustid Id     : 2b9144fd-2974-4b68-add8-22b921faa77c
    MusicBrainz Album Id: 2bad220c-f421-4578-b812-92efbe22bbc7
    MusicBrainz Artist Id: e8bd5b47-e8b4-4671-a9f6-590a92e88898
    Release type    : Normal release
    MusicBrainz Album Artist Id: 89ad4ac3-39f7-470e-963a-56509c546377
    MusicBrainz Release Group Id: eb164f0f-ce65-4c61-b031-db05e6ad5622
    MusicBrainz Release Track Id: c0f886b8-f2b9-47ce-ad78-c7f72eda0f1c
    Artists         : Dean Blunt/Inga Copeland
    encoder         : LAME 32bits version 3.99.5 (http://lame.sf.net)
    iTunNORM        :  00001225 00001225 00002D5D 00002D5D 00000000 00000000 00008081 00008081 00000000 00000000
    Acoustid Fingerprint: AQADtO-WKVmQfAivYAonHXcOrjETfId3412O_8inH2qTE-HhJT6ekfCJ5lGIvAV3PMcTqH6gG0weDv0RfSuuB08SdIqY0Gh2PDjSI7miHGXyYMqLxyu4K5h_mB-uS0GyT0da4Yfh_qiaJUecXPgiypjseAjzHF944U6J5g-Y58RxhR8-5SHxXojfDYna7Hh2GX3y4NtG5N6xLcs7VH6CcBONJs_Ro_lQKl9wJQ-DPwuKV_hjnBU-B_tCIqYSQyq
  Duration: 00:02:21.30, start: 0.025056, bitrate: 337 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Metadata:
      encoder         : LAME3.99r
    Side data:
      replaygain: track gain - -6.670000, track peak - 0.000023, album gain - -6.040000, album peak - 0.000026, 
    Stream #0:1: Video: png, rgba(pc), 440x440 [SAR 2835:2835 DAR 1:1], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Cover (front)

vs.

ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mp3, from '/Volumes/music/files/Various Artists/Hyperdub 10.3/01 In McDonalds.mp3':
  Metadata:
    title           : In McDonalds
    artist          : Burial
    track           : 1/23
    album           : Hyperdub 10.3
    disc            : 1/1
    date            : 2014-09-22
    genre           : Electronic
    compilation     : 1
    TKEY            : Am
    TBPM            : 114
    TLEN            : 126091
    artist-sort     : Burial
    publisher       : Hyperdub
    TIPL            : arranger
    TDOR            : 2014-09-22
    SCRIPT          : Latn
    TMED            : Digital Media
    album_artist    : Various Artists
    ASIN            : B00MZNYMQ8
    Artist Credit   : Burial
    CATALOGNUMBER   : HDBCD027
    REPLAYGAIN_ALBUM_GAIN: -8.39 dB
    REPLAYGAIN_ALBUM_PEAK: 1.439198
    REPLAYGAIN_TRACK_GAIN: -6.69 dB
    REPLAYGAIN_TRACK_PEAK: 0.969500
    ALBUMARTISTSORT : Various Artists
    TSO2            : Various Artists
    Artists         : Burial
    MusicBrainz Album Status: Official
    MusicBrainz Album Type: compilation
    Album Artist Credit: Various Artists
    MusicBrainz Album Release Country: XW
    originalyear    : 2014
    Acoustid Id     : 95d483dc-dece-4005-aa5a-a43b0c79cb45
    MusicBrainz Album Id: 20920961-cc54-498f-84c3-493ae7fcaa7b
    MusicBrainz Artist Id: 9ddce51c-2b75-4b3e-ac8c-1db09e7c89c6
    MusicBrainz Album Artist Id: 89ad4ac3-39f7-470e-963a-56509c546377
    MusicBrainz Release Group Id: 1de78c85-bbe7-441f-b3a1-9db3c5358e01
    MusicBrainz Release Track Id: 50584d55-b6ba-41bd-bbb3-9dbcf5e86e48
    iTunNORM        :  0000123B 0000123B 00002D92 00002D92 00000000 00000000 00007C18 00007C18 00000000 00000000
    encoder         : LAME 64bits version 3.98.2 (http://www.mp3dev.org/)
    lyrics-XXX      : Woman:
                    : ’Cause once upon a time, it was you I adored
                    : I could smile …
                    : ’Cause once upon a time, it was you I adored
                    : 
                    : Man:
                    : You look different
    Acoustid Fingerprint: AQADtGEUJcuUKMFH44ePPxB_fDeqHheP8Bf8oSeOnLjwx5gOSZh0aMdR4Edz9ArQ48dx2A164-iD5kBz9Madoz_-o8dxHCfwGz9OYcePwkTRH8ZxASb6ojso9DsmDXdwGCWKH0dxnDiDo8ctWfhxXMMPd8Rx8bgu-Djgh8eBD3sOesF0_Dhw9GhUDQ9-PEd9XDiaRkuBoyeMo_nxaEd9HH-BGt9RHx_K8jgu4Tl-NMcBYw8uHC6OHz56MO3xY0f
  Duration: 00:02:06.15, start: 0.025056, bitrate: 412 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Metadata:
      encoder         : LAME3.98r
    Side data:
      replaygain: track gain - -6.690000, track peak - 0.000023, album gain - -8.390000, album peak - 0.000034, 
    Stream #0:1: Video: png, rgb24(pc), 1500x1500 [SAR 2835:2835 DAR 1:1], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Cover (front)

Any ideas what it else it could be?

Thanks for taking the time!

danbee commented 3 years ago

@odkr Would you be ok with zipping up the album in question and sending it to me? This would give me chance to have a good play with it and figure out exactly what's going on.

Feel free to email me at my GitHub email address or DM me on Twitter (@_danbarber).

danbee commented 3 years ago

Well, this is awkward...

image

Nothing related to album grouping has changed from 0.17.2 to 0.17.3 but could you update and give it a try? If that doesn't work perhaps removing the album from MPD and re-adding it might help?

danbee commented 3 years ago

@odkr I noticed that some of the artists in your original screenshot do not match the artists in the tags. Is it possible that the MPD database still has outdated metadata?

odkr commented 3 years ago

So, I just checked. I did update the database before reporting the bug to be on the safe side. But that update didn't do what I thought it'd do.

I just had a look at MPD's database:

$ zcat /opt/var/lib/mpd/db | less
[...]
directory: Hyperdub 10.2
mtime: 1602192184
begin: Various Artists/Hyperdub 10.2
song_begin: 01 Signal.mp3
Time: 141.296000
Artist: Dean Blunt & Inga Copeland
Album: Hyperdub 10.2
Title: Signal 2012
Date: 2014
Genre: Electronic
Track: 1
Disc: 1
mtime: 1600454282
song_end

And regenerating the database from scratch doesn't make a difference. MPD ignores the album_artist field of those files.

Sorry for the wrong report!

danbee commented 3 years ago

Don't worry about it, I'm glad we figured it out!