Albums are split into multiple albums

I’m in the process of cleaning up my music library as I discovered that some albums are split into multiple when some songs are in one and there rest in another.

I opened one of these Albums in Picard MusicBrainz app which recognizes the Album as a single album, resaved it and rescanned it back into Mopidy without any luck (I even cleared the db first). I then tried clearing all the ID tags, reset the album in Picard, but Mopidy still split it into two albums.

Any idea what’s going on and how I can fix it?

Running on a RaspberryPi 4B with 4GB with the latest OS, Mopidy and plugins.

[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy
max_tracklist_length = 10000
restore_state = false

[logging]
verbosity = 0
format = %(levelname)-8s [%(threadName)s] %(name)s %(message)s
color = true
config_file =

[audio]
mixer = software
mixer_volume =
output = autoaudiosink
buffer_time =

[proxy]
scheme =
hostname =
port =
username =
password =

[tunein]
enabled = true
timeout = 5000
filter =

[orfradio]
enabled = true
stations =
  oe1
  oe3
  fm4
  campus
  vbg
afterhours = false
archive_types =
  M
  B
  BJ
  N
[musicbox_webclient]
enabled = true
musicbox = false
websocket_host =
websocket_port =
on_track_click = PLAY_ALL

[muse]
enabled = false  ; Extension disabled by user config.

[local]
enabled = true
max_search_results = 100
media_dir = /mnt/cab/music
scan_timeout = 15000
scan_flush_threshold = 100
scan_follow_symlinks = false
included_file_extensions =
excluded_file_extensions =
  .cue
  .directory
  .html
  .jpeg
  .jpg
  .log
  .nfo
  .pdf
  .png
  .txt
  .zip
  .itlp
  .mov
directories =
  Albums                  local:directory?type=album
  Artists                 local:directory?type=artist
  Composers               local:directory?type=artist&role=composer
  Genres                  local:directory?type=genre
  Performers              local:directory?type=artist&role=performer
  Release Years           local:directory?type=date&format=%25Y
  Tracks                  local:directory?type=track
  Last Week's Updates     local:directory?max-age=604800
  Last Month's Updates    local:directory?max-age=2592000
timeout = 10
use_artist_sortname = false
album_art_files =
  cover.jpg
  cover.jpeg
  cover.png
  album.jpg
  album.jpeg
  album.png
[iris]
enabled = true
country = US
locale = en_US
verify_certificates = true
snapcast_enabled = false
snapcast_host = localhost
snapcast_port = 1780
snapcast_ssl = false
snapcast_stream = Default
spotify_authorization_url = https://jamesbarnsley.co.nz/iris/auth_spotify.php
lastfm_authorization_url = https://jamesbarnsley.co.nz/iris/auth_lastfm.php
genius_authorization_url = https://jamesbarnsley.co.nz/iris/auth_genius.php
data_dir = $XDG_DATA_DIR/iris

[file]
enabled = false  ; Extension disabled by user config.

[http]
enabled = true
hostname = ::
port = 6680
zeroconf = Mopidy HTTP server on $hostname
allowed_origins =
csrf_protection = true
default_app = mopidy

[m3u]
enabled = true
base_dir =
default_encoding = latin-1
default_extension = .m3u8
playlists_dir = /mnt/cab/music/playlists

[softwaremixer]
enabled = true

[stream]
enabled = true
protocols =
  http
  https
  mms
  rtmp
  rtmps
  rtsp
metadata_blacklist =
timeout = 5000

Dependencies

Executable: /usr/bin/mopidy
Platform: Linux-5.10.103-v7l+-armv7l-with-glibc2.31
Python: CPython 3.9.2 from /usr/lib/python3.9
Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
Mopidy-TuneIn: 1.1.0 from /usr/local/lib/python3.9/dist-packages
  Pykka: 2.0.3 from /usr/lib/python3/dist-packages
  Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
  setuptools: 52.0.0 from /usr/lib/python3/dist-packages
  requests: 2.25.1 from /usr/lib/python3/dist-packages
Mopidy-Local: 3.2.1 from /usr/local/lib/python3.9/dist-packages
  Pykka: 2.0.3 from /usr/lib/python3/dist-packages
  Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
  uritools: 3.0.2 from /usr/local/lib/python3.9/dist-packages
  setuptools: 52.0.0 from /usr/lib/python3/dist-packages
Mopidy-Muse: 0.0.27 from /usr/local/lib/python3.9/dist-packages
  Pykka: 2.0.3 from /usr/lib/python3/dist-packages
  Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
  setuptools: 52.0.0 from /usr/lib/python3/dist-packages
Mopidy-MusicBox-Webclient: 3.1.0 from /usr/local/lib/python3.9/dist-packages
  Pykka: 2.0.3 from /usr/lib/python3/dist-packages
  Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
  setuptools: 52.0.0 from /usr/lib/python3/dist-packages
Mopidy-ORFRadio: 2.1.0 from /usr/local/lib/python3.9/dist-packages
  Pykka: 2.0.3 from /usr/lib/python3/dist-packages
  python-dateutil: 2.8.2 from /usr/local/lib/python3.9/dist-packages
    six: 1.16.0 from /usr/lib/python3/dist-packages
  Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
  beaker: 1.11.0 from /usr/local/lib/python3.9/dist-packages
  setuptools: 52.0.0 from /usr/lib/python3/dist-packages
Mopidy-Iris: 3.62.0 from /usr/local/lib/python3.9/dist-packages
  Pykka: 2.0.3 from /usr/lib/python3/dist-packages
  Mopidy: 3.2.0 from /usr/lib/python3/dist-packages
  setuptools: 52.0.0 from /usr/lib/python3/dist-packages
GStreamer: 1.18.4.0 from /usr/lib/python3/dist-packages/gi
  Detailed information:
    Python wrapper: python-gi 3.38.0
    Relevant elements:
      Found:
        uridecodebin
        souphttpsrc
        appsrc
        alsasink
        osssink
        oss4sink
        pulsesink
        id3demux
        id3v2mux
        lamemp3enc
        mpegaudioparse
        mpg123audiodec
        vorbisdec
        vorbisenc
        vorbisparse
        oggdemux
        oggmux
        oggparse
        flacdec
        flacparse
        shout2send
      Not found:
        flump3dec
        mad

Take a look at Troubleshooting — Mopidy 3.2.0-8-g145c1d1e documentation and compare how Mopidy sees the metadata and what you think it should be.

Thanks for the pointer about how to find out what mopidy scans. I checked what mopidy “sees” via mopidy.audio.scan for two files from the split album – one file from each split. There are differences, but it’s not clear to me what’s causing the split.

Only thing I did to the output is sort the tags section alphabetically to make it easier to look at:

uri                    file:///...
mime                   None
duration               486248
playable               True
seekable               True
tags
album                  ['Live at the Pershing & The Spotlight']
album-artist           ['Ahmad Jamal']
album-artist-sortname   ['Jamal, Ahmad']
album-disc-count       [1]
album-disc-number      [1]
artist                 ['Ahmad Jamal']
artist-sortname        ['Jamal, Ahmad']
audio-codec            ['MPEG-4 AAC']
bitrate                [128000]
container-format       ['ISO MP4/M4A']
date                   ['1989-01-01']
datetime               ['1989']
genre                  ['Jazz']
image                  [b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x0...
maximum-bitrate        [128000]
musicbrainz-albumartistid   ['cf816800-4e0e-4d80-9cca-50a725e93787']
musicbrainz-albumid    ['d859a078-4340-447b-8a22-bb5b93265bc9']
musicbrainz-artistid   ['cf816800-4e0e-4d80-9cca-50a725e93787']
musicbrainz-trackid    ['69ab99ec-635d-4921-92b1-05c30eae8264']
title                  ['Poinciana']
track-count            [15]
track-number           [6]
uri                    file:///...
mime                   None
duration               155559
playable               True
seekable               True
tags
acoustid-id            ['d8964c89-3854-4920-97d9-64a93fe32618']
album                  ['Live at the Pershing & The Spotlight']
album-artist           ['Ahmad Jamal']
album-disc-count       [1]
album-disc-number      [1]
artist                 ['Ahmad Jamal']
artist-sortname        ['Jamal, Ahmad']
audio-codec            ['MPEG-1 Layer 3 (MP3)']
bitrate                [191999]
channel-mode           ['stereo']
container-format       ['ID3 tag']
datetime               ['1989']
genre                  ['Jazz']
has-crc                [False]
image                  [b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x0...
maximum-bitrate        [192018]
minimum-bitrate        [191712]
musicbrainz-albumartistid   ['cf816800-4e0e-4d80-9cca-50a725e93787']
musicbrainz-albumid    ['d859a078-4340-447b-8a22-bb5b93265bc9']
musicbrainz-artistid   ['cf816800-4e0e-4d80-9cca-50a725e93787']
musicbrainz-releasegroupid   ['caa33726-a4b0-44b1-966c-2d12d09896cf']
musicbrainz-releasetrackid   ['879d968b-a944-3d91-a885-6146d8fda9ad']
musicbrainz-trackid    ['cffe456e-b125-472d-936a-d129596aeaa2']
nominal-bitrate        [192000]
private-id3v2-frame    [b'TMED\x00\x00\x00\t\x00\x00\x01\xff\xfeC\x00D\x00\x0...
publisher              ['Jazz Hour']
title                  ['Surrey With the Fringe on Top']
track-count            [15]
track-number           [2]

I’d say the only difference of note is

diff <(grep "album|artist" track2.txt) <(grep "album|artist" track6.txt)
2a3
> album-artist-sortname   ['Jamal, Ahmad']

Not sure why that would make a difference but I am not 100% familiar with Mopidy-Local source. I’ll try take a look

I finally found out the reason why this album was imported as two. Mopidy requires that all media files are of the same file type. One of the the files is an .mp3 and the other .m4a.

I searched the docs if there is a way to turn that restriction off without any luck. Any idea if that restriction can be turned off?

Interesting but I’m very surprised to hear this, I didn’t think file type/codec mattered. Do you know where in the code this is enforced or is this more of a theory?

It’s all been trial and error. It’s been working for the few albums that I tried it with. All of those albums had musicbrainz ids from the beginning, which made it so odd that it split them up when the file type/codec was different.

And I do have other albums that are being split that are all the same file type. Turns out that the Date tag has to match too. I could solve those by updating the dates.

I had one album where dates were off and file type/codex was wrong. Fixing the dates and converting the files to the same codex (not just file type) finally combinded it into one album.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.