K3B and audio normalization


I’ve been using K3B for the last two decades to burn CDs and DVDs. I know burning has become obsolete, and for the past few years I’ve replaced all my installation CDs and DVDs by bootable USB. But still, I have a CD player in my battered VW Polo from 1992, and I like burning mix CDs for the road.

K3B relies on normalize, an external command-line tool for audio normalization, e. g. making sure audio tracks from various sources are recorded on approximately similar levels.

Most distributions ship normalize as a dependency for K3B, but this doesn’t seem to be the case for Rocky Linux 8. K3B is provided by EPEL, but normalize is nowhere to be found, neither in EPEL nor in RPMFusion.

The tool itself looks like it hasn’t been updated for ages: https://normalize.nongnu.org/

I found an SRPM for EL7 on rpm.pbone.net and tried to build it using Mock. As was to be expected, the build failed at a very early stage because of a handful of obsolete dependencies:

No matching package to install: 'gtk+-devel'
No matching package to install: 'lame'
No matching package to install: 'mad'
No matching package to install: 'xmms-devel'
Not all dependencies satisfied
Error: Some packages could not be found.

Any idea if there’s a way to build normalize on EL8 ? Or if there’s a more modern (and maintained) replacement for it ?

I’ll answer that myself, since I just managed to build normalize for Rocky Linux 8. It took quite some fiddling and some heavy editing of the specfile, but the build was successful:


I just tested this along with K3B, and it works perfectly.



The RHEL / Rocky way would be to use something like Gstreamer in 8.x or PipeWire in 9.x, or perhaps a media framework like MLT.
In GStreamer, the idea is to get the audio “level”, and then change the “volume” based on it. In MLT, something like ‘sox.analysis’ to get the level.

1 Like

A better SRPM can be found here: ftp://ftp.pbone.net/mirror/packman.iu-bremen.de/suse/openSUSE_Leap_15.4/Multimedia/src/normalize-0.7.7-pm154.4.1.src.rpm

It builds OOTB on Rocky 8, and also has a fix for libaudiofile detection. Your build of normalize can only read wav and mp3 files.

Edit: That’s not much of a deal. “The file formats currently supported are AIFF, AIFF-C, NeXT/Sun .snd/.au, WAVE, Berkeley/IRCAM/CARL Sound File, AVR, Amiga IFF/8SVX, Sample Vision, Creative VoiceFile, NIST SPHERE, and Core Audio Format.” :smile:

Edit2: Ah! The most recent version (from 2016) learned two new tricks: FLAC and ALAC. So it’s still useful.

1 Like

Again, thanks very much ! I just upgraded my last build and put it in my repository. That’s the second honorable mention you have in the ChangeLog in less than a week: