VARNING: Personer med OCD bör inte läsa denna nod då den avsevärt kan förvärra deras symtom.
Såhär kan du fixa Replay Gain på dina musikfiler:
För mp3:
- Kör mp3gain -a *.mp3 i varje albums katalog.
- Kör mp3gain -r *.mp3 på filer som inte tillhör ett mer eller mindre komplett album.
För ogg vorbis:
- Kör vorbisgain -a *.ogg i varje albums katalog.
- Kör vorbisgain -r *.ogg på filer som inte tillhör ett mer eller mindre komplett album.
För FLAC:
- Kör metaflac --add-replay-gain *.flac i varje albums katalog.
- Kör metaflac --add-replay-gain <filnamn>.flac på varje lös fil (om man kör flera filer på en gång beräknas dom som ett album).
Skillnaden på -a och -r.
- Hur kan detta användas med find? för att tagga alla filer i ett katalogträd? Går det? —Tussi
- Ingen aning, är ingen fena på skalet. Kör för hand så länge själv... —Repabil
- Det är lite jobbigt när en har ~140GB musikfiler —Tussi
- Jo, vore trevligt med ett script för att automatisera detta. Det närmaste jag hittade var crip, men det verkar inte riktigt vara rätt verktyg. —Repabil
moget!!!! fy fan vad besviken jag blir på människan som vanligt får man själv styra upp!!!1
# för att beräkna som om varje subdir vore ett album:
find ~/Piratkopior -iregex '.*\.flac$' -execdir metaflac --add-replay-gain '{}' +
# för att beräkna som om hela skiten vore ett jättestort album!!! (datan lär ju crascha ahahaha! but try it)
find ~/Piratkopior -iregex '.*\.flac$' -exec metaflac --add-replay-gain '{}' +
## OBS plustecknet är grymt viktigt!!!
- Tack så mycket! Moget? Du hade inte behövt svara om det bara leder till besvikelse. Ska prova detta men vet inte om det är så bra att automatisera hela skiten då man t ex vill ha alla låtar i en box (som ligger i namn/CD1, namn/CD2, namn/CD3) beräknad som ett album. Kan ju automata allting sedan manuellt fixa det som kräver sådan hänsyn. —Repabil
- jag testade först att inte svara, det ledde till ännu mer besvikelse
- Med jämna mellanrum spottar find-scriptet ur sig saker som ./heart_of_air-blue_flow-single-2002-flac: ERROR: reading metadata, status = "FLAC__METADATA_CHAIN_STATUS_READ_ERROR", vilket jag tror kan bero på att den matchar mot allt som slutar på flac. Har jag rätt? Borde den sista punkten i namnet escapas kanske? —Tussi
- ja det stämmer tussi jag fixade ovan
Jag tänkte mig att jag skulle kunna göra ett cronjobb som räknade ut replay gain på filer utan Replay Gain-data, men jag insåg att det bara är mp3gain som faktiskt är smart nog att kontrollera om den behöver utföra några ändringar i en fil eller inte. Eller går det på något sätt att lura de andra programmen att göra det också (alternativt: finns det någon bättre lösning för att lägga till gain-metadata till vorbis- och FLAC-filer)? —Tuss
- Jag svarar mig själv. Ja, det går, här är en lösning för flac. Den verkar fungera, men jag är jättedålig på bashscript. N.B. att den nästan säkert kommer att få spader på konstiga filnamn (läs: filnamn med space i).
#!/bin/bash
# if any argument file has album gain set,
# abort.
# else apply album gain to all files.
files_to_tag=$*
while [ $# -ne 0 ]; do
if [ -n "`metaflac --show-tag=REPLAYGAIN_TRACK_GAIN $1`" ] # null len here = tag not found.
then
echo Error: tag found at $1! >&2
exit 20
fi
shift
done
# we got here, hence all arguments contain no replaygain tags.
metaflac --add-replay-gain $files_to_tag