Skip to content
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

Replaygain backend r128gain #3055

Closed
wants to merge 6 commits into from

Conversation

zsinskri
Copy link
Contributor

Add a replaygain backend using the r128gain python module.
It makes for an easier to install (as r128gain is on PyPI) alternative to the bs1770gain backend to create R128_* replaygain tags.

Previously using EBU R128 forced the use of the bs1770gain backend.
This change adds a whitelist of backends supporting R128. When the configured
backend is in that list it will also be used for R128 calculations. Otherwise
bs1770gain is still used as a default.

This should not change the overall behaviour of the program at all, but allow
for further R128-supporting backends to be added.
Add a ReplayGain backend using the r128gain python module.
Its structure is largely based on the bs1770gain and GStreamer backends.
Add documentation on the r128gain ReplayGain backend and list it as supporting
R128_ tags.
Add tests for the r128gain ReplayGain backend that only run when r128gain is
present in the testing environment. This uses the existing ReplayGain test suite.
Remove a print statement originally used for debugging purposes.
Add a note to the documentation, that r128gain used by the r128gain replaygain
backend describes itself as beta software.
@sampsyo
Copy link
Member

sampsyo commented Oct 18, 2018

Wow; this looks awesome! Thank you for looking into this!

It seems like perhaps we should just forge ahead with this as is, but it’s also worth considering (for the slightly longer term) whether the dependency on the Python library is really necessary. It looks like a good library, but it does lots of stuff we don’t need here—namely, file walking and tag manipulation. For the actual gain analysis, it just shells out to ffmpeg (see the function get_r128_loudness), which wouldn’t be too hard for us to do directly. That could help us avoid the beta-status intermediary. Would that make sense to you?

I’m in favor of this in any case!

@zsinskri
Copy link
Contributor Author

It looks like #3056 will be merged. That will make this pull request rather uninteresting, as this backend uses ffmpeg (indirectly), too.
Closing. Or is this r128gain backend still useful?

@zsinskri zsinskri closed this Oct 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants