Danksagung
Tunetorch ist nicht aus dem Nichts entstanden. Unter jeder Funktion, die du benutzt, liegt die Arbeit von Menschen, die du vermutlich nie kennenlernen wirst: Ein Titel spielt ab, weil jemand vor über zwanzig Jahren angefangen hat, ein Programm zu schreiben, das fast jedes Audioformat lesen kann. Ein Album hat das richtige Cover, weil Freiwillige auf der ganzen Welt es in eine offene Datenbank eingetragen haben. Eine CD wird Bit für Bit genau gerippt, weil jemand herausgefunden hat, wie man einem CD-Laufwerk seine Lesefehler austreibt.
Die meisten dieser Projekte sind freie Software. Jeder darf sie benutzen, lesen, verbessern und weitergeben, und viele davon tragen nicht nur Tunetorch, sondern einen guten Teil des Internets. Sie werden oft in der Freizeit gepflegt, selten bezahlt und fast nie bemerkt, solange sie funktionieren. Der Comic „Dependency“ von xkcd bringt das ziemlich genau auf den Punkt.
Diese Seite ist unser Dank an sie. Jeder Name führt zur Seite des Projekts. Wenn du dort zum ersten Mal vorbeischaust, lohnt sich ein Blick.
Diese Seite ist ein Dank, keine Lizenzübersicht. Jedes Projekt steht unter seiner eigenen Lizenz, die du auf seiner Seite findest.
Die Daten hinter deiner Musik
Diese Projekte sind keine Programme, sondern Wissen: von Menschen zusammengetragen, für alle offen. Die meisten Einträge stammen von Freiwilligen.
| Projekt | Was es für dich tut |
|---|---|
| MusicBrainz | Die offene Musik-Datenbank. Erkennt Interpreten und Alben, kennt Bandmitglieder und Veröffentlichungen und findet beim Rippen heraus, welche CD im Laufwerk liegt. |
| Cover Art Archive | Ein gemeinsames Projekt von MetaBrainz und dem Internet Archive. Liefert die Albumcover beim CD-Rippen und in der Bildsuche. |
| Wikidata | Verbindet einen Interpreten mit seinem Bild und seinem Wikipedia-Artikel. |
| Wikimedia Commons | Freie Fotos für die Profilseiten deiner Interpreten. |
| Wikipedia | Die Biografie auf der Profilseite eines Interpreten. |
| AccurateRip | Vergleicht deine gerippte CD mit den Rips vieler anderer Menschen und bestätigt, dass jedes Bit stimmt. |
Hören
| Projekt | Was es für dich tut |
|---|---|
| FFmpeg | Liest fast jedes Audioformat, wandelt deine Musik für unterwegs in kleinere Dateien um und misst die Lautheit für die Normalisierung. Ohne FFmpeg gäbe es Tunetorch nicht. |
| AndroidX Media3 | Der Player der Android-App: im Hintergrund, auf dem Sperrbildschirm, in Android Auto und offline. |
| cd-paranoia | Liest deine CDs Sektor für Sektor und korrigiert dabei Lesefehler. Es führt das cdparanoia von Xiph.Org fort. |
| libdiscid und python-discid | Berechnen die Kennung deiner CD, mit der MusicBrainz sie wiederfindet. |
| eject | Wirft die CD aus, wenn das Rippen fertig ist. Klein, aber man vermisst es sofort. Teil von util-linux. |
Der Server
| Projekt | Was es für dich tut |
|---|---|
| Python | Die Sprache, in der der Server geschrieben ist. |
| Flask | Beantwortet jede Anfrage, die dein Browser oder die App an den Server stellt. Dazu kommen seine Erweiterungen Flask-JWT-Extended für die Anmeldung, Flask-CORS und Flask-Compress für kleinere Antworten. |
| Gunicorn | Der Webserver, auf dem Flask im Container läuft. |
| SQLite | Speichert deine Bibliothek, Playlists und Statistiken in einer einzigen Datei. SQLite ist gemeinfrei und gehört damit allen. |
| Redis | Hält Zwischenergebnisse im Speicher, damit deine Bibliothek schnell lädt, und merkt sich fehlgeschlagene Anmeldeversuche. |
| Requests und urllib3 | Sprechen mit MusicBrainz, Wikipedia und den anderen Datenquellen oben. |
| Pillow | Verkleinert Cover und Interpretenbilder und wandelt sie um. |
| cryptography | Unterschreibt Pro-Lizenzen auf dieser Webseite und prüft die Unterschrift auf deinem Server. |
| passlib | Sorgt dafür, dass Passwörter nur als sicherer Hash gespeichert werden. |
| supervisor, tini und gosu | Starten und überwachen die Dienste im Container und lassen sie mit den richtigen Rechten laufen. |
| supercronic | Führt die nächtlichen Wartungsaufgaben aus. |
| tz database | Die Zeitzonen-Datenbank, damit deine Statistik zur richtigen Uhrzeit zählt. Sie wird seit Jahrzehnten von einer Handvoll Menschen gepflegt, und fast jeder Computer der Welt verlässt sich auf sie. |
Die Oberfläche
| Projekt | Was es für dich tut |
|---|---|
| React | Baut die Oberfläche des Web-Players und dieser Webseite. |
| TanStack Virtual | Hält Listen mit zehntausenden Titeln flüssig. |
| Chart.js | Zeichnet die Diagramme in deiner Statistik. |
| Lucide | Fast jedes Symbol, das du in Tunetorch siehst. |
| React Image Crop | Zuschneiden von Covern und Bildern. |
| Vite PWA | Macht den Web-Player installierbar wie eine App. |
| Plus Jakarta Sans | Die Schrift der Oberfläche, gestaltet von Tokotype. |
| Fontsource | Verpackt die Schriften so, dass sie von deinem eigenen Server kommen und nicht von einem fremden. |
Die Android-App
| Projekt | Was es für dich tut |
|---|---|
| AndroidX | Das Fundament der App, von der Bildschirmanzeige bis zur Zurück-Taste. |
| Material Components | Knöpfe, Dialoge und Bedienelemente im Stil von Android. |
| OkHttp | Holt die Musik von deinem Server. |
Der Player selbst ist Media3, siehe oben unter Hören.
Diese Webseite
| Projekt | Was es für dich tut |
|---|---|
| React Router | Bringt dich von Seite zu Seite. |
| react-markdown und remark-gfm | Machen aus den Texten der Dokumentation das, was du gerade liest, Tabellen eingeschlossen. |
| Tiptap | Der Editor, in dem die Neuigkeiten entstehen, zusammen mit tiptap-markdown. |
| Jinja | Setzt die E-Mails zusammen, die du von uns bekommst. |
| bcrypt | Schützt die Passwörter der Konten auf dieser Webseite. |
| Outfit | Die Schrift der Überschriften. |
Womit Tunetorch gebaut wird
Diese Werkzeuge siehst du nie, denn sie sind fertig, bevor Tunetorch bei dir ankommt. Ohne sie ließe es sich aber weder schreiben noch prüfen.
- TypeScript, Vite, Sass, Babel mit dem React Compiler und Node.js bauen die Oberflächen.
- ESLint mit typescript-eslint und Ruff finden Fehler, bevor sie jemand anderes findet.
- Vitest, Testing Library, jsdom, pytest, fakeredis und JUnit prüfen, dass alles tut, was es soll.
- uv verwaltet die Python-Pakete, Gradle baut die Android-App.
- curl holt beim Bauen Werkzeuge aus dem Netz, wie in unzähligen anderen Projekten auch.
- Git bewahrt jede Änderung auf.
Das Fundament
| Projekt | Was es für dich tut |
|---|---|
| Linux | Das Betriebssystem unter dem Container, unter Android und unter fast jedem Server im Internet. |
| Debian | Die Grundlage des Tunetorch-Images. Ein Projekt von Freiwilligen, seit über dreißig Jahren. |
| Docker | Verpackt Tunetorch so, dass es mit einem Befehl auf deinem Server läuft. |
Und alle anderen
Die Liste oben nennt, was Tunetorch direkt benutzt. Jedes dieser Projekte steht wiederum auf anderen, und die auf weiteren. Zusammen sind es Hunderte, die meisten mit wenigen Menschen dahinter. Ihnen allen gilt derselbe Dank.
Wenn dir Tunetorch gefällt, dann gefällt dir auch ein Stück ihrer Arbeit.