rox

Il lettore musicale di oggi, non di ieri.

Un lettore desktop per chi ha una libreria locale grande e taggata con cura. I pannelli li componi tu, e un tema intero sta in un file solo, da passare a chi vuoi. Nativo su Linux, macOS e Windows.

  • 0,3 s dall'avvio alla finestra
  • 134 MB di memoria con 50.000 brani caricati
  • AGPL-3.0 libero e open source

Una finestra in meno di un secondo

rox è un solo binario e parte prima che tu abbia mollato il mouse.

Avvio, memoria e CPU a riposo di sette lettori musicali su una libreria da 50.000 tracce
LettoreFinestra prontaCaricato del tuttoMemoriaCPU a riposo
rox0,3 s2,3 s 134 MB 0,5%
Elisa0,7 snon si stabilizza mai 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%

Ho misurato tutto io stesso, su una sola macchina (Ryzen 9 5950X, Linux/Wayland), con la stessa libreria da 50.000 tracce su un SSD esterno, ogni lettore attraverso lo stesso banco di prova con la libreria caricata. La memoria è il PSS sull'intero albero dei processi. «Caricato» è quando la CPU si stabilizza dopo l'avvio; a riposo è un lettore in pausa con la finestra visibile. DeaDBeeF si sarebbe fermato a 44 MB e avrebbe vinto sulla memoria, ma non ha mai avuto una riga: il suo parser MP3 va in segmentation fault a metà dell'importazione di questa libreria, a ogni tentativo. rox indicizza tutte le 50.000 tracce, compresi i file troncati che lo fanno inciampare.

Libreria

  • Una libreria che regge

    Uno scanner parallelo legge i tag completi, le durate reali e il codec di ogni singolo file, non una scorsa all'intestazione. Il monitoraggio delle cartelle sopravvive alle rinomine, e niente sparisce in silenzio.

    Cosa si rompe a 50.000 tracce
  • Tagging di cui fidarsi

    Un editor completo, con scritture atomiche, modifiche in blocco e trova e sostituisci. I voti stanno nei file stessi tramite FMPS e POPM. Ricerca via MusicBrainz, iTunes e Deezer.

    A confronto con Mp3tag
  • I rip CUE si comportano da tracce

    Un FLAC che copre un disco intero, accanto al suo cue sheet, si indicizza come righe vere. Ogni segmento si scorre, si scrobbla, si ordina e passa senza stacchi al successivo, esattamente come un file.

    Come funzionano i segmenti
Equalizer Flat
C1C2C3C4C5C6C7C8C9

Riproduzione

  • Riproduzione senza stacchi

    Un solo flusso, con riproduzione casuale, ripetizione, riproduci dopo e ripetizione A-B. I segnalibri e i segni di sessione, che non restano, stanno sulla barra di avanzamento. I tasti multimediali e il brano in riproduzione funzionano su tutte e tre le piattaforme.

  • Dieci bande e bit-perfect

    Un equalizzatore in una finestra tutta sua, con i preset che salvi tu e dentro il database di cuffie AutoEq. La dissolvenza incrociata lascia stare gli attacchi voluti di un album, e l'uscita esclusiva dice cosa ha accettato l'hardware.

    ReplayGain e bit-perfect
  • Ordinato per come suona

    rox descrive le tue tracce a partire dal loro stesso audio, tempo compreso, e ordina quello che viene dopo per somiglianza. Gira sulla tua macchina sui tuoi file, senza servizi di mezzo.

Look

  • Pannelli che componi tu

    Una quarantina di tipi di pannello, dalla libreria e la coda alle griglie di artisti e agli indicatori. Duplicane uno con la sua configurazione o staccalo in una finestra. Le copertine si etichettano con anno, genere o ultimo ascolto.

    A confronto con Foobar2000
  • Temi come file condivisibili

    Uno spazio di lavoro è un file con layout, palette, aspetto e shader. Le palette possono tingersi dalla copertina in riproduzione, virando al chiaro o allo scuro con l'immagine.

    Quelli inclusi, otto in tutto
  • Visual che ascoltano

    Scrivi uno shader WGSL su un pannello o sull'intera finestra, oppure fai girare preset Milkdrop tramite projectM. Segnali con un nome ricavati dallo spettro viaggiano sugli ingressi degli shader.

    Shader e segnali

Ogni giorno

  • Testi e cronologia

    Sincronizzati o semplici, da file sidecar, dai tag o da lrclib, con un editor che riscrive dove ha letto. Un registro degli ascolti alimenta il pannello cronologia e le statistiche, e gli scrobble di Last.fm si importano con le loro date.

  • Playlist che sopravvivono

    Preferiti, riordino con il trascinamento, M3U, PLS e XSPF in entrata e in uscita, e playlist intelligenti che rieseguono una query salvata invece di conservare un'istantanea. Le voci sopravvivono a un file che se ne va e torna.

  • Un binario, nessun installer

    Un tarball, un AppImage, un Flatpak, un DMG o uno zip, più l'AUR e un flake Nix. La modalità portatile tiene libreria e impostazioni in una cartella accanto all'eseguibile.

    Prendilo

Sorgenti

Oltre la finestra

Una radio che si riavvolge

Incolla l'URL di uno stream o pesca una stazione nella directory di radio-browser. Una stazione va in coda e fa scrobble come un brano, e un buffer live ti lascia mettere in pausa la diretta e riavvolgerla.

Il tuo server nella libreria

Un server Subsonic o OpenSubsonic sincronizza qui il suo catalogo, e le righe si sfogliano, si cercano e si suonano come file. Gli stream chiedono l'originale, quindi senza stacchi e ReplayGain reggono.

Canzoni prese dall'etere

La cattura salva intere le canzoni che una stazione manda in onda in una cartella tua, nel formato dello stream, taggate, con la copertina accanto. Spenta finché non la accendi.

Un socket, non un server

JSON-RPC su un socket locale: trasporto, modifiche alla coda, ricerca nella libreria ed eventi push. L'auth sono i permessi dei file, niente in ascolto su una porta.

Cosa ci puoi costruire sopra

Il lettore come strumenti MCP

Un proxy accanto all'app porta il socket su MCP, così un client AI può chiedere cosa suona o comandare il trasporto. Spento di default, ricontrollato a ogni chiamata.

In streaming verso Icecast

Un client sorgente spinge ciò che rox riproduce come MP3 sul tuo mount. Solo in uscita: il lato rete è di Icecast, e un server morto non blocca mai la riproduzione.

Plugin

E per tutto il resto

La tua libreria copre quello che c'è sul tuo disco. Un plugin porta dentro musica da qualche altra parte, come un catalogo sul web o un server che gestisci tu. rox lo sfoglia, lo cerca e lo riproduce negli stessi pannelli e nella stessa coda dei tuoi file.

  1. Mettici dentro una cartella

    Un plugin è una cartella con un piccolo manifest e un programma. Attiva i plugin nelle Impostazioni, premi Mostra cartella e copiacela dentro.

  2. Accendilo

    Accenderlo è l'approvazione. Una scheda dice cosa fa il plugin e cosa esegue, e una modifica a uno qualsiasi dei suoi file lo spegne di nuovo.

  3. Sfoglialo

    Si apre in un pannello Sorgenti esterne con la home propria della sorgente, scaffali di copertine, ricerca e colonne ordinabili, disegnato nel tuo tema.

  4. Riproducilo, tienilo, o avvia una radio

    Le sue tracce vanno in coda, suonano senza stacchi e finiscono nelle playlist come le tue. Tieni un album e entra nella tua libreria. Avvia una radio e il servizio sceglie cosa viene dopo.

Il plugin di esempio Internet Archive in un pannello Sorgenti esterne: un avviso in alto, righe da sfogliare, scaffali di copertine delle uscite, e colonne per download e anno.
  1. Un pannello suo, agganciato e nel tema come il resto
  2. Colonne che il servizio conosce, ordinate con un clic
  3. Una riga dal plugin, con un link
  4. Scaffali di copertine che scorrono lateralmente

L'esempio Internet Archive, mentre sfoglia pubblicazioni Creative Commons dalla collezione di netlabel dell'Archivio. È nel repository di rox, pronto da copiare.

Fallo tuo

Ci sono otto spazi di lavoro inclusi, a un clic dalla finestra di benvenuto. Ognuno è un singolo file che contiene il layout, la palette e gli shader che usa: lo modifichi, lo rompi, lo passi a qualcun altro. Guardali tutti.