Ignore small changes in ReplayGain/SoundCheck values caused by storage format
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 2.1k
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 31
Description
### Problem
Hey,
I keep getting these errors when running `beet write`.
``` sh
$ beet write howard
Ben Howard : Every Kingdom : 01/00 Old Pine
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 01/00 Old Pine
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 02/00 Diamonds
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 03/00 The Wolves
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 03/00 Wolves
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 04/00 Everything
rg_album_gain: 0.8 -> 1.0
Ben Howard : Every Kingdom : 04/00 Everything
rg_album_gain: 0.8 -> 1.0
Ben Howard : Every Kingdom : 05/00 Only Love
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 05/00 Only Love
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 06/00 The Fear
rg_album_gain: 1.1 -> 1.0
Ben Howard : Every Kingdom : 06/00 The Fear
rg_album_gain: 1.1 -> 1.0
Ben Howard : Every Kingdom : 07/00 Keep your Head up
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 07/00 Keep Your Head Up
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 08/00 Black Flies
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 08/00 Black Flies
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 09/00 Gracious
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 10/00 Promise
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 11/00 7 Bottles
rg_album_gain: 1.0 -> 1.0
Ben Howard : Every Kingdom : 11/00 Seven Bottles (Bonus Track)
rg_album_gain: 1.0 -> 1.0
```
The fields don't seem to update. Running either `beet mod kingdom rg_album_gain=1.0` or `beet mod -a kingdom rg_album_gain=1.0` changes the number to the right of the arrow, so I'm guessing the number to the left is the number recorded in the database?
As I understand it, if the number in the database is wrong, I ought to be able to run `beet up` to fix the discrepancy, right? However, `beet up` does nothing and produces no output whatsoever..
### Setup
- OS: Arch Linux
- Python version: 3.5.1 and 2.7.11
- beets version: 1.3.17
- Turning off plugins made problem go away (yes/no): no
My configuration (output of `beet config`) is:
``` yaml
paths:
albumtype:soundtrack: Soundtracks/$album/$track. $title
media:podcast: Podcasts/$album/$title
default: $albumartist/$album/$track. $title
singleton: Non-Album/$artist/$title%aunique{}
comp: Compilations/$album%aunique{}/$track. $title
format_item: '$albumartist : $album : $track/$tracktotal $title'
duplicates:
checksum: ffmpeg -i {file} -f crc -
format: '$albumartist : $album : $track/$tracktotal $title : $format @ $bitrate'
keys: [ffmpeg]
count: no
full: no
move: ''
tag: ''
path: no
copy: ''
tiebreak: {}
album: no
strict: no
merge: no
delete: no
library: ~/.config/beets/musiclib_final.blb
edit:
ignore_fields: id path artpath
itemfields: track title artist album
albumfields: album albumartist
replaygain:
backend: gstreamer
overwrite: yes
targetlevel: 89
auto: yes
plugins: web bpd duplicates ftintitle edit replaygain info
directory: ~/music_final
import:
move: yes
timid: yes
autotag: no
ftintitle:
auto: yes
drop: no
format: feat. {0}
bpd:
volume: 100
host: ''
password: REDACTED
port: 6600
web:
host: 127.0.0.1
port: 8337
cors: ''
```
Contributor guide
Research direction
Start by reproducing the report with `beet write` using the replaygain plugin, then trace the ReplayGain/SoundCheck comparison and tag-writing path. Identify the relevant tests if present; done means storage-format-only changes no longer produce write reports, while meaningful gain changes still do.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100