Ripping CDs and converting audio with fre:ac
It has been a little while since LWN last surveyed tools for managing a digital music collection. In the intervening decades, many Linux users have moved on to music streaming services, found them wanting, and are looking to curate their own collection once again. There are plenty of choices when it comes to ripping, managing, and playing digital audio; so many, in fact, that it can be a bit daunting. After years of tinkering, I've found a few tools that work well for managing my digital library: the first I'd like to cover is the fre:ac free audio encoder for ripping music from CDs and converting between audio formats.
Building a music library starts with acquiring music rather than renting it; when I decided to ditch my Spotify subscription a few years ago, I already had a sizable CD collection that I'd started accumulating in the late 1980s. Unfortunately, I had been haphazard about converting to digital formats; some of it was ripped to MP3, some to FLAC, and I had not yet gotten around to digitizing hundreds of CDs. The metadata for what I had converted was a mess. It was time to standardize things and get serious about archiving everything in a digital format.
Step one was to pick the format or formats of choice; I settled on FLAC as the lossless format of choice for long-term archiving, and MP3 as a lossy-but-acceptable format to be stored on my laptop and copied over to my media player. I have a hardware player that reads from Micro SD cards rather than keeping my collection on my phone; it's quite impressive how compact storage has become over the years, and it's nice to have 128GB cards to work with rather than the paltry 6GB of storage my first MP3 player (a Creative Nomad 2) had.
No doubt some folks will wonder "why not Ogg?" That is a fair question. The primary reason is that I often share music files with family members who do not have Ogg-compatible devices. Standardizing on MP3 means that I could buy a dirt-cheap music player for my daughter and populate a few Micro SD cards with playlists without worrying about compatibility. MP3, despite its warts, is universally supported but Ogg support is not guaranteed.
fre:ac
Step two is, of course, ripping the CDs. There are countless Linux applications for extracting audio from CDs. After sampling many of these I've settled on fre:ac because it serves as a one-stop shop for ripping CDs and converting audio. None of its features are unique to fre:ac, of course, but it's rare to find them all collected in a single tool that offers (for me, anyway) the right mix of features, customization, and ease of use. For example, many rippers will convert audio from a CD to Flac, MP3, Ogg, or other formats; fewer have the ability, as fre:ac offers, to convert to multiple formats in a single run, and write the appropriate metadata for each.
Fre:ac is a multi-platform application; builds are available for Linux, FreeBSD, Haiku, macOS, and Windows. The project offers official Flatpak and Snap builds, in addition to AppImage builds for x86_64, 32-bit x86, as well as 32-bit and 64-bit Arm. It is licensed under the GPLv2, and uses a custom component framework to provide an interface to the encoders, decoders, taggers, and other applications fre:ac uses, such as LAME for MP3 encoding, libcdio to decode CDs, and many others. Fre:ac smoothes over the complexity of using the various libraries and command-line tools while stitching together the chain of utilities that extract audio, convert it to the desired format, and so forth.
The project began in the early 2000s under the name "BonkEnc", and was renamed in 2010. Fre:ac is mostly a one-person operation; its maintainer, Robert Kausch, is responsible for the vast majority of commits to its repository. There are 16 other contributors, all of whom have made fewer than 30 commits. He is actively developing fre:ac, but formal releases are few and far between: the most recent, 1.1.7, was announced in March 2023. However, the project also provides a set of continuous builds that track current development. In September 2025, Kausch said that a 1.1.8 release is in the works, but he couldn't say when it would be finished. At least for my purposes, this is fine—fre:ac is a mature program that does not really need much in the way of new features. It only needs to be maintained so that it continues to work as various libraries and helper programs are updated.
Settings
Using fre:ac is straightforward; the first order of business is to set the encoder to be used when converting a set of files or ripping from CD. The available encoders vary by platform; Linux versions of fre:ac include FFmpeg, LAME, Xiph's FLAC encoder, and quite a few others. The multi-encoder hub (meh!) component allows users to select two or more encoders to be used in the same processing run; so, for example, meh! can be used for converting a CD to FLAC and MP3 in one go. Fre:ac has sensible defaults for encoders, but it's also possible to set encoder options, such as the bit rate for MP3s, manually.
In addition to the encoder, users can choose from an assortment of filters for signal processing, such as the volume adjustment component to raise or lower the default volume of an encoded file. This might be useful, for example, when converting CDs that are victims of the loudness war. I've noticed a distinct difference in the loudness of CDs purchased in the 1980s and early 1990s versus more recent releases, but don't take my word for it; there is a Dynamic Range Database online with information about more than 190,000 releases. Each entry has a rating on its dynamic range; CDs with a higher score are more likely to sound better, at least as a representation of the recorded music. Reducing the volume won't improve the dynamic range of an album, but it can help to ensure that tracks from different albums play at the same relative volume; it can be annoying when creating a playlist and some tracks are markedly quieter or louder than the rest.
ReplayGain is a standard that is designed to normalize loudness for audio formats. Unfortunately, fre:ac does not have support for adding ReplayGain tags at this time. Kausch has said that he plans to add support at some point, but he couldn't commit to when it would be available.
Users will also want to pay a visit to fre:ac's settings (Options -> General Settings) to configure its other CD-ripping options, such as the output filename pattern, the CDDB source for album metadata (Gnudb by default), and the metadata tag formats. Assuming fre:ac finds CDDB data for a CD, it uses the metadata to populate the output filename; for example, I use the following structure when creating new files:
The Cure/(2024) Songs of a Lost World/01-Alone.mp3
That is, the artist or band name, the year the album was released (in parentheses) and its title, the track number, title of the song, and the extension for the audio format (e.g. mp3). If fre:ac does not find metadata for a CD in Gnudb, which is extremely rare in my experience, it can be added manually before converting audio or added later with a tag editor such as Kid3 or MusicBrainz Picard.
Fre:ac also supports saving multiple configurations, so it's possible to have a configuration for ripping CDs, another for converting FLAC to MP3, and yet another for adjusting the loudness of audio from badly mastered CDs.
Ripping and converting
After configuring fre:ac, it's time to put it to the test. Users can add a CD and/or audio files with the File menu or toolbar icons; fre:ac even allows adding all files by filename pattern (e.g., "*flac") throughout a set of folders. This makes it quite convenient for converting an existing collection in one format to another. In addition to handling the format conversion, fre:ac will translate the metadata from one format to another so the collection does not need to be re-tagged.
After tracks are added to be processed, they will show up in the "Joblist" tab. The tags that will be added to the files are shown in the "Tags" tab; these can be edited before conversion if any of the metadata is wrong or missing. When ripping CDs, I find that a lot of the metadata pulled from Gnudb is mostly accurate, but I often disagree with the genre and the artist metadata often needs tweaking as well. This is not helped by bands that variously style the "and" in their name across releases as "and", "&" and "'N". Once all is well with the metadata, it's time to start the encoding process.
When converting CDs, fre:ac will attempt to verify the checksums of the ripped audio against the AccurateRip database, which houses checksum values for millions of CDs. If there is a mismatch, fre:ac will throw an error with a list of tracks that have a bad checksum. Note that it is possible that the conversion is fine and that the checksums do not match because it's a different version of the same album. Fre:ac also has a "Logs" tab where, as the name implies, it writes out the log of its operations, which displays the file checksums, if they were successfully verified, and how long each operation took.
Overall, I've found fre:ac to be a reliable workhorse for digitizing CDs and converting audio files. The only real downside I've encountered with fre:ac is its documentation. The basics of its operation are self-explanatory or easily uncovered with a bit of poking around. However, there are features that would benefit from documentation, such as what each filter does and suggestions for best results, but fre:ac's documentation is sparse and dated. The project does have a GitHub discussion forum, though a number of questions remain unanswered after quite some time. Trial and error is, currently, the best way to learn its ins and outs.
