rox

Der Medienplayer von heute, nicht von gestern.

Ein Desktop-Musikplayer für Leute mit großen, sorgfältig getaggten lokalen Sammlungen. Die Oberfläche baust du dir selbst aus Panels zusammen, und ein ganzes Theme passt in eine Datei zum Weitergeben. Nativ auf Linux, macOS und Windows.

  • 0,3 s vom Start bis zum Fenster
  • 134 MB Arbeitsspeicher bei 50.000 geladenen Titeln
  • AGPL-3.0 frei und quelloffen

Ein Fenster in unter einer Sekunde

rox ist eine einzige Binärdatei und startet, bevor du die Maus losgelassen hast.

Start, Speicher und Leerlauf-CPU von sieben Musikplayern auf einer Sammlung mit 50.000 Titeln
PlayerFenster daVollständig geladenSpeicherCPU im Leerlauf
rox0,3 s2,3 s 134 MB 0,5 %
Elisa0,7 sberuhigt sich nie 206 MB 74 %
fooyin0,3 s18 s 364 MB 0 %
Quod Libet-19 s 384 MB 0,2 %
Strawberry0,3 s32 s 434 MB 0,8 %
Museeks-3 s 436 MB 0 %
Tauon8,7 s12 s 2,8 GB 0 %

Alle Werte habe ich selbst gemessen, auf einer Maschine (Ryzen 9 5950X, Linux/Wayland), mit derselben Sammlung aus 50.000 Titeln auf einer externen SSD, jeder Player über dieselbe Testumgebung mit geladener Bibliothek. Speicher ist PSS über den gesamten Prozessbaum. „Geladen“ heißt, dass sich die CPU nach dem Start beruhigt hat; Leerlauf ist ein pausierter Player mit sichtbarem Fenster. DeaDBeeF wäre bei 44 MB gelandet und hätte beim Speicher gewonnen, bekam aber keine Zeile: sein MP3-Parser stürzt beim Import dieser Sammlung jedes Mal mittendrin ab. rox indiziert alle 50.000 Titel, auch die abgeschnittenen Dateien, über die er stolpert.

Bibliothek

  • Eine Bibliothek, die standhält

    Ein paralleler Scanner liest vollständige Tags, echte Laufzeiten und den Codec jeder einzelnen Datei, kein überflogener Header. Die Ordnerüberwachung übersteht Umbenennungen, und nichts verschwindet stillschweigend.

    Was bei 50.000 Titeln kaputtgeht
  • Tagging, dem du trauen kannst

    Ein vollwertiger Editor mit atomaren Schreibvorgängen, Stapelbearbeitung und Suchen und Ersetzen. Bewertungen stehen über FMPS und POPM in den Dateien selbst. Abgleich über MusicBrainz, iTunes und Deezer.

    Neben Mp3tag
  • CUE-Rips spielen wie Titel

    Ein FLAC über eine ganze CD wird neben seinem Cue-Sheet als echte Zeilen indiziert. Jeder Abschnitt lässt sich spulen, scrobbeln, sortieren und läuft lückenlos in den nächsten, genau wie eine Datei.

    Wie die Abschnitte funktionieren
Equalizer Flat
C1C2C3C4C5C6C7C8C9

Wiedergabe

  • Lückenlose Wiedergabe

    Ein Stream, mit Zufallswiedergabe, Wiederholung, „Als Nächstes spielen“ und A-B-Schleife. Lesezeichen und flüchtige Sitzungsmarken sitzen auf der Suchleiste. Medientasten und die Titelanzeige des Systems funktionieren auf allen drei Plattformen.

  • Zehn Bänder und bitgenau

    Ein Equalizer in einem eigenen Fenster, mit gespeicherten Presets und der AutoEq-Kopfhörerdatenbank darin. Das Crossfade lässt die eigenen Übergänge eines Albums in Ruhe, und die exklusive Ausgabe sagt, worauf die Hardware sich eingelassen hat.

    ReplayGain und bitgenau
  • Sortiert danach, wie es klingt

    rox beschreibt deine Titel anhand ihres eigenen Audiomaterials, Tempo inklusive, und ordnet das Nächste nach Ähnlichkeit. Das läuft auf deiner Maschine über deine Dateien, ohne Dienst dazwischen.

Aussehen

  • Panels, die du zusammenstellst

    Rund vierzig Panel-Typen, von Bibliothek und Warteschlange bis Künstlerraster und Pegelanzeigen. Eins mit seiner Konfiguration duplizieren oder in ein eigenes Fenster auskoppeln. Album-Kacheln beschriften sich mit Jahr, Genre oder zuletzt gespielt.

    Neben Foobar2000
  • Themes als teilbare Dateien

    Eine Arbeitsfläche ist eine Datei mit Layout, Palette, Erscheinungsbild und Shadern. Paletten können sich am laufenden Cover einfärben und mit dem Bild hell oder dunkel werden.

    Die acht mitgelieferten
  • Visuals, die zuhören

    Schreib einen WGSL-Shader über ein Panel oder das ganze Fenster, oder lass Milkdrop-Presets über projectM laufen. Benannte Signale aus dem Spektrum liegen auf den Shader-Eingängen.

    Shader und Signale

Alltag

  • Songtexte und Verlauf

    Synchronisiert oder einfach, aus Begleitdateien, Tags oder lrclib, mit einem Editor, der dorthin zurückschreibt, wo er gelesen hat. Ein Hörprotokoll speist Verlaufs-Panel und Statistiken, und die Scrobbles von Last.fm kommen mit ihren eigenen Daten dazu.

  • Playlists, die überleben

    Favoriten, Umsortieren per Drag, M3U, PLS und XSPF rein und raus, und intelligente Playlists, die eine gespeicherte Abfrage neu ausführen statt eine Momentaufnahme festzuhalten. Einträge überstehen es, wenn eine Datei geht und wiederkommt.

  • Eine Binärdatei, kein Installer

    Ein Tarball, ein AppImage, ein Flatpak, ein DMG oder ein Zip, dazu das AUR und ein Nix-Flake. Der portable Modus hält Bibliothek und Einstellungen in einem Ordner neben der ausführbaren Datei.

    Hol es dir

Quellen

Über das Fenster hinaus

Radio, das sich zurückspulen lässt

Eine Stream-URL einfügen oder eine Station im Verzeichnis von radio-browser suchen. Eine Station reiht sich ein und scrobbelt wie ein Titel, und ein Live-Puffer lässt dich eine Sendung anhalten und zurückspulen.

Dein Server in der Bibliothek

Ein Subsonic- oder OpenSubsonic-Server spielt seinen Katalog herein, und die Einträge lassen sich durchsuchen und abspielen wie Dateien. Streams holen das Original, also bleiben Gapless und ReplayGain.

Songs aus dem Äther

Der Mitschnitt speichert ganze Songs, die eine Station spielt, in einen eigenen Ordner, im Format des Streams, getaggt, mit dem Cover daneben. Standardmäßig aus.

Ein Socket, kein Server

JSON-RPC über einen lokalen Socket: Transport, Warteschlange, Bibliothekssuche und gepushte Ereignisse. Zugriff regeln Dateirechte, nichts lauscht auf einem Port.

Was du darauf bauen kannst

Der Player als MCP-Werkzeuge

Ein Proxy neben der App legt den Socket auf MCP, damit ein KI-Client fragt, was läuft, oder den Transport bedient. Standardmäßig aus, bei jedem Aufruf neu geprüft.

Streamt raus zu Icecast

Ein Quell-Client schiebt, was rox spielt, als MP3 an deinen Mount. Nur nach draußen: die Seite zum Netz gehört Icecast, und ein toter Server bremst die Wiedergabe nie.

Plugins

Und für alles andere

Deine Bibliothek deckt ab, was auf deiner Platte liegt. Ein Plugin holt Musik von woanders her, etwa einen Katalog im Netz oder einen Server, den du selbst betreibst. rox durchsucht, sucht und spielt sie in denselben Panels und derselben Warteschlange wie deine eigenen Dateien.

  1. Einen Ordner reinlegen

    Ein Plugin ist ein Ordner mit einem kleinen Manifest und einem Programm. Schalte Plugins in den Einstellungen ein, drück auf Ordner zeigen und kopier ihn rein.

  2. Einschalten

    Es einzuschalten ist die Freigabe. Eine Karte sagt, was das Plugin tut und was es ausführt, und eine Änderung an einer seiner Dateien schaltet es wieder aus.

  3. Durchsuchen

    Es öffnet sich in einem Externe-Quellen-Panel mit der eigenen Startseite der Quelle, Regalen aus Covern, Suche und sortierbaren Spalten, gezeichnet in deinem Theme.

  4. Abspielen, behalten oder ein Radio starten

    Seine Titel reihen sich ein, laufen lückenlos und landen in Playlists wie deine eigenen. Behalte ein Album, und es kommt in deine Bibliothek. Starte ein Radio, und der Dienst wählt, was als Nächstes kommt.

Das Internet-Archive-Beispiel-Plugin in einem Externe-Quellen-Panel: ein Hinweis oben, Zeilen zum Durchsuchen, Regale aus Release-Covern, und Spalten für Downloads und Jahr.
  1. Sein eigenes Panel, angedockt und im Theme wie der Rest
  2. Spalten, die der Dienst kennt, sortiert mit einem Klick
  3. Eine Zeile vom Plugin, mit einem Link
  4. Regale aus Covern, die seitwärts scrollen

Das Internet-Archive-Beispiel, beim Durchsuchen von Creative-Commons-Veröffentlichungen aus der Netlabels-Sammlung des Archivs. Es liegt im Repository von rox, bereit zum Kopieren.

Mach was Eigenes draus

acht Arbeitsflächen sind mit dabei, einen Klick entfernt im Willkommensfenster. Jede davon ist eine einzelne Datei mit dem Layout, der Palette und den Shadern, die sie benutzt: du kannst sie bearbeiten, kaputtmachen und weitergeben. Alle ansehen.