Introducing brutha: sync FLAC to Ogg Vorbis, the best way possible


It all started from a simple objective: I needed to have my music collection available somewhere else. However, since I usually keep the highest quality available, it means a lot of storage is required. When I started brutha, 3 terabyte hard drives were not even available, and a RAID array, while fine at home, is not what I would call portable.
There’s also the issue of players not being able to play high bit depth or frequency; live resampling is not going to be the highest quality either. My portable media player can’t handle them, and my work/holiday setup would require live resampling.

There are sound converters out there, but they were mostly GUIs, and when they weren’t chocked by the amount of files I needed to transcode, they missed a critical feature: avoiding transcoding files that were processed already, and removing outdated files. They also weren’t focused on maximizing audio quality.

brutha just takes a source, a destination, and recreates the same directory structure, keeps all the tags, the only change being smaller files, by converting lossless files to lossy Ogg Vorbis, and keeping lossy as-is. Also, running it again after all the files are converted is very fast. Transcoding operations are ran in parallel, making it even faster.

As a bonus, there is ReplayGain support. While it should be computed on all my source files, when enabled it is only computed if not present already, adding minimal overhead. It can also be useful for files that were downsampled, as ReplayGain can’t be computed for higher frequencies yet.

So far, it’s been the only tool able to process all my collection. You will find a better overview of all its features here.

I chose the name brutha as it’s less boring and overused than flac2ogg or oggsync, and related to Terry Pratchett’s Vorbis character. It evokes something brutish to me, which is kind of what brutha is.

Try it out now!

There are many ways to try out brutha.

If you are a lucky Gentoo user, it’s as simple as:

layman -a laurentb && emerge brutha

On other distributions, for now you can install it via pip (your distribution might force you to use a virtualenv, which is a good thing):

virtualenv --system-site-packages brutha
cd brutha
source bin/activate
pip install brutha

You should also install sox and it would be a good idea to install make.

You can now run it either by brutha or python -m brutha.

If you don’t want to install it at all, or want to jump into the development right in, you can run it straight from the source. You will have to take care of the dependencies yourself, though.

git clone git://
cd brutha
python -m brutha

More information, especially how to use it, is available on brutha’s pypi page.

This entry was posted in Development, Python. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>