Acknowledgements

Tunetorch didn't come out of nowhere. Every feature you use rests on the work of people you'll probably never meet: a track plays because someone started writing a program more than twenty years ago that can read almost any audio format. An album has the right cover because volunteers all over the world entered it into an open database. A CD gets ripped accurately to the last bit because someone worked out how to get a CD drive to stop making read errors.

Most of these projects are free software. Anyone may use them, read them, improve them and pass them on, and many of them carry not just Tunetorch but a good part of the internet. They are often maintained in people's spare time, rarely paid for and hardly ever noticed as long as they work. The comic “Dependency” by xkcd puts it pretty much exactly.

This page is our thank-you to them. Every name links to the project's own site. If you're visiting one for the first time, it's worth a look.

This page is a thank-you, not a licence overview. Each project has its own licence, which you'll find on its site.

The data behind your music

These projects aren't programs, they're knowledge: gathered by people, open to everyone. Most of the entries come from volunteers.

ProjectWhat it does for you
MusicBrainzThe open music database. Recognises artists and albums, knows band members and releases, and works out which CD is in the drive when you rip.
Cover Art ArchiveA joint project of MetaBrainz and the Internet Archive. Supplies album covers when ripping CDs and in the image search.
WikidataConnects an artist to their image and their Wikipedia article.
Wikimedia CommonsFree photos for your artists' profile pages.
WikipediaThe biography on an artist's profile page.
AccurateRipCompares your ripped CD with the rips of many other people and confirms that every bit is right.

Listening

ProjectWhat it does for you
FFmpegReads almost any audio format, converts your music into smaller files for on the go and measures loudness for normalisation. Without FFmpeg there would be no Tunetorch.
AndroidX Media3The player in the Android app: in the background, on the lock screen, in Android Auto and offline.
cd-paranoiaReads your CDs sector by sector and corrects read errors along the way. It carries on the cdparanoia of Xiph.Org.
libdiscid and python-discidCalculate your CD's ID, which MusicBrainz uses to find it.
ejectEjects the CD when ripping is done. Small, but you'd miss it straight away. Part of util-linux.

The server

ProjectWhat it does for you
PythonThe language the server is written in.
FlaskAnswers every request your browser or the app sends to the server. Together with its extensions Flask-JWT-Extended for signing in, Flask-CORS and Flask-Compress for smaller responses.
GunicornThe web server Flask runs on inside the container.
SQLiteStores your library, playlists and statistics in a single file. SQLite is in the public domain, so it belongs to everyone.
RedisKeeps intermediate results in memory so your library loads quickly, and remembers failed sign-in attempts.
Requests and urllib3Talk to MusicBrainz, Wikipedia and the other data sources above.
PillowScales down and converts covers and artist images.
cryptographySigns Pro licences on this website and checks the signature on your server.
passlibMakes sure passwords are only ever stored as a secure hash.
supervisor, tini and gosuStart and watch over the services in the container and run them with the right permissions.
supercronicRuns the nightly maintenance tasks.
tz databaseThe time zone database, so your statistics count at the right time of day. A handful of people have maintained it for decades, and almost every computer in the world relies on it.

The interface

ProjectWhat it does for you
ReactBuilds the interface of the web player and of this website.
TanStack VirtualKeeps lists with tens of thousands of tracks smooth.
Chart.jsDraws the charts in your statistics.
LucideAlmost every icon you see in Tunetorch.
React Image CropCropping covers and images.
Vite PWAMakes the web player installable like an app.
Plus Jakarta SansThe typeface of the interface, designed by Tokotype.
FontsourcePackages the fonts so they come from your own server rather than someone else's.

The Android app

ProjectWhat it does for you
AndroidXThe foundation of the app, from what's on screen to the back button.
Material ComponentsButtons, dialogs and controls in Android's own style.
OkHttpFetches the music from your server.

The player itself is Media3, see Listening above.

This website

ProjectWhat it does for you
React RouterTakes you from page to page.
react-markdown and remark-gfmTurn the documentation texts into what you're reading right now, tables included.
TiptapThe editor the news posts are written in, together with tiptap-markdown.
JinjaPuts together the emails you get from us.
bcryptProtects the passwords of the accounts on this website.
OutfitThe typeface of the headings.

What Tunetorch is built with

You never see these tools, because their work is done before Tunetorch reaches you. Without them it could neither be written nor tested.

The foundation

ProjectWhat it does for you
LinuxThe operating system beneath the container, beneath Android and beneath almost every server on the internet.
DebianThe base of the Tunetorch image. A volunteer project, for more than thirty years.
DockerPackages Tunetorch so it runs on your server with a single command.

And everyone else

The list above names what Tunetorch uses directly. Each of these projects in turn builds on others, and those on still more. Together there are hundreds, most of them with only a few people behind them. They all have the same thanks.

If you like Tunetorch, you like a piece of their work too.

Back to the documentation overview