Tracks detected in wrong order
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 2.1k
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 31
Description
### Problem
Running this command in verbose (`-vv`) mode:
```sh
Success. Distance: 0.73
Evaluating 5 candidates.
/home/lapo/Music/Library/Low Roar/Once In a Long, Long While (12 items)
Sending event: import_task_before_choice
Sending event: before_choose_candidate
Finding tags for album" - ".
Candidates:
1. (30.5%) Various Artists - Strange Games and Things
≠ tracks, album, source
MusicBrainz, CD, 1997, GB, BBE, BBE CD 005, None
2. (29.0%) Various Artists - Dance Fever: Hits of the 70’s
≠ tracks, album, source
MusicBrainz, CD, None, US, Rebound Records, 314-520-265-2, None
3. (27.0%) Various Artists - Goin’ Home: A Tribute to Duke Ellington
≠ tracks, album, source
MusicBrainz, CD, 2001, US, None, None, None
4. (24.0%) Various Artists - Alternator
≠ tracks, missing tracks, album, ...
MusicBrainz, 2xCD, 1996, GB, Synchro Digital Recordings, SYNCHRO 007 CD, None
5. (23.8%) Various Artists - Almighty: The Definitive Collection 6
≠ tracks, missing tracks, album, ...
MusicBrainz, 2xCD, 2009, GB, Almighty Records, ALMYCD66, None
➜ # selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? i
Enter release ID: bc506aa8-12cf-47b3-9553-f35c65e6dcac
Tagging -
Searching for album ID: bc506aa8-12cf-47b3-9553-f35c65e6dcac
musicbrainz: Requesting MusicBrainz release bc506aa8-12cf-47b3-9553-f35c65e6dcac
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Low Roar - Once in a Long, Long While… (bc506aa8-12cf-47b3-9553-f35c65e6dcac)
Computing track assignment...
...done.
Success. Distance: 0.65
Evaluating 1 candidates.
Sending event: before_choose_candidate
Match (35.3%):
Low Roar - Once in a Long, Long While…
≠ tracks, album, artist, source
MusicBrainz, Digital Media, 2017, AF, Tonequake Records, None, iTunes, Deezer, Spotify
https://musicbrainz.org/release/bc506aa8-12cf-47b3-9553-f35c65e6dcac
≠ Artist: -> Low Roar
≠ (#0) 01 Don't Be So Serious.wav (6:13) -> (#1) Don’t Be so Serious (6:13)
≠ (#0) 02 Bones.wav (2:49) -> (#2) Bones (2:49)
≠ (#0) 04 Give Me An Answer.wav (3:43) -> (#3) St. Eriksplan (3:41)
≠ (#0) 03 St. Eriksplan.wav (3:41) -> (#4) Give Me an Answer (3:43)
≠ (#0) 07 Gosia.wav (4:13) -> (#5) Waiting (10 Years) (4:04)
≠ (#0) 11 Miserably.wav (3:55) -> (#6) Without You (3:54)
≠ (#0) 09 Crawl Back.wav (4:08) -> (#7) Gosia (4:13)
≠ (#0) 12 13.wav (5:24) -> (#8) Once in a Long, Long While (5:16)
≠ (#0) 05 Waiting (10 Years).wav (4:04) -> (#9) Crawl Back (4:08)
≠ (#0) 10 Poznań.wav (2:03) -> (#10) Poznań (2:03)
≠ (#0) 06 Without You.wav (3:54) -> (#11) Miserably (3:55)
≠ (#0) 08 Once In A Long, Long While.wav (5:16) -> (#12) 13 (5:24)
➜ Apply, More candidates, Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort?
```
Led to this problem: tracks are detected in the wrong order, even if track length (and also filenames) could allow them to be matched correctly. E.g. track 3 and 4 have been switched around, and they have different lengths. Same goes for 7→5→9→7.
Here's a link to the music files that trigger the bug (if relevant):
Digital download as bought from [official website](https://www.lowroarmusic.com/).
How can I import the album? Is there a way to force track order?
### Setup
* OS: FreeBSD
* Python version: 3.11.13
* beets version: 2.4.0
My configuration (output of `beet config`) is:
```yaml
% beet config
directory: /data/local/music
# --------------- Main ---------------
library: /data/local/music/beets.db
import:
move: yes
match:
strong_rec_thresh: 0.1
paths:
default: $albumartist/$year $album%aunique{}/$track $title
singleton: Non-Album/$artist/$title
comp: Compilations/$year $album%aunique{}/$track $title
convert:
format: flac
no_concert: format:AAC
# --------------- Plugins ---------------
plugins: musicbrainz fetchart lyrics lastgenre
disabled_plugins: []
musicbrainz:
search_limit: 5
source_weight: 0.5
host: musicbrainz.org
https: no
ratelimit: 1
ratelimit_interval: 1
genres: no
external_ids:
discogs: no
bandcamp: no
spotify: no
deezer: no
tidal: no
extra_tags: []
fetchart:
auto: yes
minwidth: 0
maxwidth: 0
quality: 0
max_filesize: 0
enforce_ratio: no
cautious: no
cover_names:
- cover
- front
- art
- album
- folder
sources:
- filesystem
- coverart
- itunes
- amazon
- albumart
- cover_art_url
store_source: no
high_resolution: no
deinterlace: no
cover_format:
google_key: REDACTED
google_engine: REDACTED
fanarttv_key: REDACTED
lastfm_key: REDACTED
lyrics:
auto: yes
translate:
api_key: REDACTED
from_languages: []
to_language:
dist_thresh: 0.11
google_API_key: REDACTED
google_engine_ID: REDACTED
genius_api_key: REDACTED
fallback:
force: no
local: no
print: no
synced: no
sources:
- lrclib
- google
- genius
- tekstowo
lastgenre:
whitelist: yes
min_weight: 10
count: 1
fallback:
canonical: no
source: album
force: no
keep_existing: no
auto: yes
separator: ', '
prefer_specific: no
title_case: yes
extended_debug: no
```
Contributor guide
Research direction
Reproduce the issue by importing the linked Low Roar album in verbose (-vv) mode with beets 2.4.0, using the provided release ID and configuration. Compare the detected assignments with the filenames, track lengths, and MusicBrainz order shown in the report. Done means the affected tracks are matched in the correct order or the import provides a reliable way to force that order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100