-
-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple file normalization in master release (aka "album") context #145
Comments
Interesting use case – I never considered that before. It's not possible to do this at the moment; each file is normalized in isolation. It'd be nice to implement this behavior, but it seems like that's a bit more work. You can achieve what you want with a manual approach, basically replicating what
For point 1, you may use the new version I just released (it had a bug with printing multiple JSON values) and extract the mean volume using ffmpeg-normalize --print-stats --dry-run -nt rms --quiet ~/Downloads/test1.wav ~/Downloads/test2.wav | jq '.[].mean' |
I was doing something close to that but left off why the output was 4 single item json arrays rather than an array of 4 items. I am parsing the results. It was still very useful.
Then, finding the highest max_volume (for example -4.6 dB) and applying the same gain adjustment to all files with:
This issue becomes more obvious when you get into these 4-sided 45rpm releases where you're much more likely to end up with a side consisting of 2-3 quieter songs, etc. Thanks for the response, very helpful! |
Yeah, I just fixed the JSON bug when I responded to you, so please try with the newest version! Sorry for not being able to provide a getter solution. It'd require quite a bit if work. I'll keep this open as an enhancement suggestion though. |
I'm working a bash script to do this, and I'm not sure on the logic. I've got the individual loudnesses, I've got the average. I'm then getting the differences by Once I've got the difference, how do I apply it? Is using RMS different than the default EBU? |
You would apply the difference by calculating the new target loudness and using that with the I am not sure that EBU-type normalization would even work for this type of album context. Wouldn't you just set everything to the same LUFS level and keep that? This is assuming albums have been mixed for more-or-less equal loudness — which I would do as a mastering engineer, so that people don't constantly turn the volume up or down between songs. (This is also why YouTube and Spotify and all other services have LUFS targets they apply to all tracks equally.) An RMS-based album normalization makes sense for me, basically shifting everything up and down together by a specified amount in case you need more gain for some output devices. |
If LUFS works how I think it works, then yeah, it should. I must try that next - I've been trying lots of different things this afternoon as I've been working on the bash script. When I just let EDIT: To be honest, I don't really care how it's done, all I want is for audio to be at the same comparative loudness, and the comparative loudness of tracks within an album to remain (so I don't get stepped loudness like I described). |
Ok, now that they This is the line that I'm using:
and that produces a noticeable change in loudness between the two reference tracks. I even tried |
Perhaps this can best be explained with an excerpt from the manual of normalize-audio:
Variations per track and side can be seen here is Side A of Radiohead's 45RPM In Rainbows:
I rip my vinyl per side but I end up with two (or 4) 24bit pcm files. Is there currently a way to analyze across multiple files and apply the same normalization (ebu, peak or rms) to the entire lot? If Side D is quiet, I want it to maintain its quiet in relation to Side A, etc. I typically rip with a fair amount of headroom in 24bit converters.
Regarding #43 (comment) I can't seem to determine any alternative to the default behavior mentioned here.
The text was updated successfully, but these errors were encountered: