beets: Use bs1770gain by default for replaygain

After trying with a dozen files, it seems the bs1770gain backend is much
more reliable than the audiotools backend and especially does a better
job (well, compared to audiotools which either does doing nothing at all
or throws an exception) when used on alboms that contain different
sample rates/sizes.

Additionally, we already had a few issues regarding the audiotools
backend, even to the extent that @sampsyco almost wanted to drop it
upstream (see sampsyco/beets#1342).

Also related issues are #10376 and sampsyo/beets#1592.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>

aszlig 68c504fa 59455da5

+10 -5
+9 -4
pkgs/tools/audio/beets/default.nix
··· 8 , enableFetchart ? true 9 , enableLastfm ? true 10 , enableMpd ? true 11 - , enableReplaygain ? true 12 , enableThumbnails ? true 13 , enableWeb ? true 14 ··· 22 assert enableFetchart -> pythonPackages.responses != null; 23 assert enableLastfm -> pythonPackages.pylast != null; 24 assert enableMpd -> pythonPackages.mpd != null; 25 - assert enableReplaygain -> pythonPackages.audiotools != null; 26 assert enableThumbnails -> pythonPackages.pyxdg != null; 27 assert enableWeb -> pythonPackages.flask != null; 28 ··· 90 ++ optional enableEchonest pythonPackages.pyechonest 91 ++ optional enableLastfm pythonPackages.pylast 92 ++ optional enableMpd pythonPackages.mpd 93 - ++ optional enableReplaygain pythonPackages.audiotools 94 ++ optional enableThumbnails pythonPackages.pyxdg 95 ++ optional enableWeb pythonPackages.flask; 96 ··· 104 ]; 105 106 patches = [ 107 - ./replaygain-default-audiotools.patch 108 ]; 109 110 postPatch = '' ··· 119 s,"flac","${flac}/bin/flac", 120 s,"mp3val","${mp3val}/bin/mp3val", 121 }' beetsplug/badfiles.py 122 ''; 123 124 doCheck = true;
··· 8 , enableFetchart ? true 9 , enableLastfm ? true 10 , enableMpd ? true 11 + , enableReplaygain ? true, bs1770gain ? null 12 , enableThumbnails ? true 13 , enableWeb ? true 14 ··· 22 assert enableFetchart -> pythonPackages.responses != null; 23 assert enableLastfm -> pythonPackages.pylast != null; 24 assert enableMpd -> pythonPackages.mpd != null; 25 + assert enableReplaygain -> bs1770gain != null; 26 assert enableThumbnails -> pythonPackages.pyxdg != null; 27 assert enableWeb -> pythonPackages.flask != null; 28 ··· 90 ++ optional enableEchonest pythonPackages.pyechonest 91 ++ optional enableLastfm pythonPackages.pylast 92 ++ optional enableMpd pythonPackages.mpd 93 ++ optional enableThumbnails pythonPackages.pyxdg 94 ++ optional enableWeb pythonPackages.flask; 95 ··· 103 ]; 104 105 patches = [ 106 + ./replaygain-default-bs1770gain.patch 107 ]; 108 109 postPatch = '' ··· 118 s,"flac","${flac}/bin/flac", 119 s,"mp3val","${mp3val}/bin/mp3val", 120 }' beetsplug/badfiles.py 121 + '' + optionalString enableReplaygain '' 122 + sed -i -re ' 123 + s!^( *cmd *= *b?['\'''"])(bs1770gain['\'''"])!\1${bs1770gain}/bin/\2! 124 + ' beetsplug/replaygain.py 125 + sed -i -e 's/if has_program.*bs1770gain.*:/if True:/' \ 126 + test/test_replaygain.py 127 ''; 128 129 doCheck = true;
+1 -1
pkgs/tools/audio/beets/replaygain-default-audiotools.patch pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch
··· 11 'overwrite': False, 12 'auto': True, 13 - 'backend': u'command', 14 - + 'backend': u'audiotools', 15 'targetlevel': 89, 16 }) 17
··· 11 'overwrite': False, 12 'auto': True, 13 - 'backend': u'command', 14 + + 'backend': u'bs1770gain', 15 'targetlevel': 89, 16 }) 17