Hybrid SACD w/ multi-channel

It’s not uncommon for SACDs to come with both a stereo and a multi-channel layer. I have a few of those, and run into issues importing them with beets. As both layers have the exact same tracks, I often time end up with directories that contain a fix of both layers.

Here’s a concrete example: https://musicbrainz.org/release/c4f4d4f8-33d9-4ddc-aa44-3cbd134fadf9

When importing both the stereo and the multi-channel tracks, they import is matched against the release above. It does all the metadata magic it’s supposed to be doing, however, I end up with my Disc 01 directory containing all the stereo tracks - except for track 2&3, which are from the multi-channel layer. On Disc 02, it the exact opposite of course - track 2&3 are from the stereo layer.

Few questions:
a) I can’t determine from the output upon import that such a thing is happening. Or can I?
b) Is there an easy way to fix this? Especially since the title of the tracks will differ after import?
c) Are there any other ways to influence the import?


Interesting corner case! No, I believe if your existing metadata doesn’t contain an indication about which medium (disc) a track belongs too, the beets output won’t be able to indicate that the swapping is occurring either.

Perhaps a way to resolve this would be to set the disc field for the tracks: put 1 in the field for the first set of audio files, and 2 in the field for the second. I believe beets should be able to sort out the order from that.

I tried that in the past, and for some reason, it isn’t working. Here’s the output of my current attempt:

The Police - Every Breath You Take: The Classics
(Similarity: 98.6%) (year, media, country, tracks) (2xHybrid SACD, 2005, US, A&M Records)
Hybrid SACD 1: CD / SACD stereo

  • Roxanne
  • Can’t Stand Losing You (5.1 mix) (#2-2) -> Can’t Stand Losing You (#1-2) (title)
  • Message in a Bottle (5.1 mix) (#2-3) -> Message in a Bottle (#1-3) (title)
  • Walking on the Moon
  • Don’t Stand So Close to Me
  • De Do Do Do, De Da Da Da
  • Every Little Thing She Does Is Magic
  • Invisible Sun
  • Spirits in the Material World
  • Every Breath You Take
  • King of Pain
  • Wrapped Around Your Finger
  • Don’t Stand So Close to Me '86
  • Message in a Bottle (new classic rock mix)
    Hybrid SACD 2: SACD 5.1 mixes
  • Roxanne (5.1 mix)
  • Can’t Stand Losing You (#1-2) -> Can’t Stand Losing You (5.1 mix) (#2-2) (title)
  • Message in a Bottle (#1-3) -> Message in a Bottle (5.1 mix) (#2-3) (title)
  • Walking on the Moon (5.1 mix)
  • Don’t Stand So Close to Me (5.1 mix)
  • De Do Do Do, De Da Da Da '86 (5.1 mix)
  • Every Little Thing She Does Is Magic (5.1 mix)
  • Invisible Sun (5.1 mix)
  • Spirits in the Material World (5.1 mix)
  • Every Breath You Take (5.1 mix)
  • King of Pain (5.1 mix)
  • Wrapped Around Your Finger (5.1 mix)
  • Don’t Stand So Close to Me '86 (5.1 mix)
  • Message in a Bottle (new classic rock mix) (5.1 mix)

As you can see, beets reverts all the changes that I have made. I did:

  • Change the medium
  • Renamed the tracks
  • Moved them to back to the directory corresponding with the medium

So there must be something else in there, that beets uses to determine where those items are supposed to be going.

Huh, that’s strange!

When odd matches come up like this, sometimes it’s because of embedded MBIDs in the tags or because of Acoustid fingerprinting. Might either be the case here?

If not, is there some way you can share a representative example so we can try to reproduce the problem?

Obviously, I cannot provide those files, but I can say this:

  • Fingerprinting of DSF files does not work.
  • I tried with a clean copy that definitely does not include MBIDs. Worse, I tried to manually add the correct MBIDs for the tracks, but it still mixes them up.

Is there any way to enable logging for the track matching algorithm?

That’s the problem; we don’t have any more verbose logging than the -vv level—which is why I may need to dig into the matching algorithm to add a little more to help expose what’s going on.

One strategy, which is tricky but possible, is to tag a few silence tracks (e.g., copies of test/rsrc/full.mp3 from the beets distribution) with the right metadata so the problem gets triggered.

Good news. I found a way to fix the import: the 5.1 tracks in MusicBrainz contain ‘(5.1 mix)’ as part of the track title. If I add that to the metadata before starting the import, beets doesn’t mix up anything.

1 Like