From a file structure standpoint, I havenāt deviated from the suggested defaults. I have a music folder with Album and non-Album subfolders. The source directory is one that I randomly named Junk since I was moving incomplete albums and true singles into that folder while I was doing the initial complete album imports.
The specific test that I did was for the artist Alan Jackson. I have 17 complete albums of his that were migrated into beets and appropriately stored into the Albums directory. In the Junk folder, I had a subfolder named Alan Jackson with a couple of subfolders there that represented incomplete albums.
I did a simple command line of ābeet import ./Alan\ Jacksonā from the Junks directory so all configuration was from my config.yaml file. I am posting up the full config file below.
As you describe, once I noticed the count discrepancies, I looked for where the missing files came from. Most were from one album which is a greatest hits sort of album (Genuine: The Alan Jackson Story). This clearly has tracks that span many original albums, but this album was imported successfully previously as a single album. It turns out that the missing songs are now in non-Album directory. Also when I query beets for the original album, it is updated with the songs removed.
What I canāt say with confidence (I didnāt back up the Junk folder before I started) is whether the songs in question were in the Junk folder as potentially duplicates to what was already in beets as a complete album, so I canāt say definitively whether the original track was moved from its location in Albums over to non-albums or if maybe the song was reimported and beets viewed the original track as a duplicate and deleted it.
I will see if I can construct another test to pin that question down.
Here is my config.yaml
directory: /Volumes/share/music
library: /Volumes/share/beets/library1.db
import:
copy: no
move: yes
write: yes
log: /Volumes/share/beets/import.log
group_albums: true
duplicate_action: remove
default_action: skip
singletons: yes
asciify_paths: yes
per_disk_numbering: yes
bell: yes
incremental: yes
incremental_skip_later: yes
resume: yes
paths:
default: Albums/$albumartist/$album%aunique{}/$disc-$track $artist - $title
singleton: Non-Album/$artist ($year) - $title
comp: Compilations/$album%aunique{}/$disc-$track $artist - $title
albumtype_soundtrack: Soundtracks/$album/$disc-$track $artist - $title
#replace:
ā[\/]ā: _
ā^.ā: _
ā[\x00-\x1f]ā: _
ā[<>:"?*|]ā: _
ā.$ā: _
ā\s+$ā: āā
ā^\s+ā: āā
ā^-ā: _
match:
strong_rec_thresh: 0.2 # match 60% or better for auto import
max_rec:
missing_tracks: low
unmatched_tracks: low
preferred:
countries: [āUSā, āGB|UKā]
media: [āCDā, āDigital Media|Fileā]
original_year: yes
#using the lastgenre plugin for genre setting
musicbrainz:
genre: no
#plugins: badfiles duplicates embedart fetchart info lyrics mbsync scrub unimported web
plugins: scrub embedart fetchart lyrics lastgenre replaygain #convert
scrub:
auto: yes
embedart:
compare_threshold: 70
fetchart:
cover_names: front art album folder
sources: filesystem coverart amazon albumart
lyrics:
auto: yes
google_API_key: AIzaSyBsVfIIN1tOZLA9Q3FXyp0X8qs2O4cziog
google_engine_ID: 009217259823014548361:lndtuqkycfu
sources: google musixmatch genius tekstowo
lastgenre:
auto: yes
canonical: no
count: 3
fallback: none
force: yes
min_weight: 10
prefer_specific: no
source: album
whitelist: yes
title_case: yes
separator: A separator for multiple genres. Default: ', '.
replaygain:
auto: no
backend: command
per_disc: no
convert:
auto: yes
#unimported:
ignore_extensions: png
ignore_subdirectories: NonMusic data temp