rox

Un éditeur de tags que tu peux pointer sur dix mille fichiers

Mp3tag est l'outil auquel la plupart des gens pensent quand ils disent éditeur de tags, et il n'en existe pas de build Linux. rox embarque un éditeur complet, et un chemin d'écriture pensé pour le cas où un lot est assez gros pour que « ça marche en général » ne suffise plus.

Commençons par ce que ce n'est pas

rox est un lecteur de musique qui contient un éditeur de tags sérieux. Mp3tag est un tagueur dédié, et en tant que tagueur dédié il est meilleur : scripts, actions, chaînes de format composables, et vingt ans d'aspérités limées. Si ce que tu veux est un outil autonome à lancer sur un dossier puis à fermer, sous Windows, c'est celui-là.

L'argument pour le faire dans rox, c'est que taguer une bibliothèque n'est en général pas une tâche qu'on termine. C'est quelque chose qu'on fait en écoutant, sur le fichier qu'on vient de remarquer comme faux, et c'est pour ça que l'éditeur attaché au lecteur et à la bibliothèque est l'idée même et non un compromis.

Le chemin d'écriture

C'est la partie qui vaut la lecture même si tu n'installes jamais rox. La plupart des tagueurs modifient ton fichier sur place : ils ouvrent l'original, réécrivent la zone de métadonnées, et espèrent. Cela se passe bien des dizaines de milliers de fois, et une fois, c'est la catastrophe : un plantage, un disque plein ou un support arraché en cours de route laissent un fichier qui ne s'analyse plus, avec ton audio dedans.

rox n'écrit jamais dans un original. Chaque modification copie le fichier, applique le changement à la copie, vérifie le résultat en relisant les métadonnées et en hachant le flux audio pour confirmer qu'il est identique octet pour octet à ce qui est entré, et seulement ensuite renomme atomiquement la copie par-dessus l'original. Si une étape échoue, la copie est supprimée et ton fichier est intact, parce qu'il n'a jamais été ouvert en écriture.

Chaque fichier est aussi isolé, un fichier pathologique dans un lot de quatre mille échoue donc pour lui seul au lieu d'emporter tout le traitement.

Modifier un lot sans l'aplatir

Sélectionne autant de pistes que tu veux et l'éditeur s'ouvre comme un formulaire partagé. Un champ sur lequel tous les fichiers s'accordent affiche sa valeur ; les champs qui divergent restent vides sous un espace réservé indiquant plusieurs valeurs. Seuls les champs que tu touches réellement écrivent quelque chose, un champ intact ne réécrit donc aucun fichier, et ceux qu'il serait absurde d'écrire d'un bloc sur toute une sélection, le titre, le numéro de piste et le numéro de disque, se verrouillent d'eux-mêmes dans un lot.

Quand un fichier du lot est faux, le formulaire devient un tableau : une ligne par piste, une colonne par champ, les champs par piste verrouillés modifiables directement. C'est la vue pour l'import où chaque titre et chaque numéro est faux d'une manière différente, et elle vaut mieux que d'entrer dans les champs un par un. Les deux vues valident en un seul lot par le même chemin d'écriture, et le résultat arrive dans la bibliothèque sans nouvelle analyse.

Ce qu'il lit et écrit

  • Formats. ID3v2, commentaires Vorbis et atomes MP4 derrière un seul éditeur, MP3, FLAC et M4A sont donc le même écran.
  • Notes. Écrites dans les fichiers eux-mêmes via FMPS et POPM, pas dans une base que tu ne peux pas emporter.
  • Genres à valeurs multiples. De vraies listes, dont les fusions restent un avis de la bibliothèque plutôt qu'une réécriture de tes tags.
  • Pochettes. Pochettes d'album à plusieurs images, ajoutées et remplacées par le même chemin atomique.
  • Recherche. Tags et pochettes depuis MusicBrainz, iTunes et Deezer, appliqués via le même diff, tu vois donc ce qui change avant la moindre écriture.
  • Réparation. Une passe pour les fichiers dont les tags sont abîmés de façons connues plutôt que simplement faux, ceux qui font afficher aux autres tagueurs un titre sous forme de nom de fichier avec une durée nulle.
  • Motifs, dans les deux sens. Une chaîne de format comme %artist% - %title% lit les tags depuis un nom de fichier, et le même motif à l'envers renomme les fichiers d'après leurs tags. Les deux prévisualisent chaque piste avant d'écrire quoi que ce soit.
  • Rechercher et remplacer. Tout champ dont les valeurs diffèrent au sein d'un lot prend un texte à chercher et un texte de remplacement, littéral ou regex avec $1, et l'aperçu compte combien de pistes changent avant d'écrire quoi que ce soit.
  • Noms de tri et lectures. Les tags de tri que portent tes fichiers décident où un nom se classe. Là où il n'y en a pas, MusicBrainz remplit les noms de tri des artistes, et les noms japonais, coréens et chinois reçoivent une lecture latine qui alimente la recherche et les index de lettres. Les deux vivent dans la base de rox, et tes fichiers restent intacts.
  • Santé de la bibliothèque. Une fenêtre de tuiles, une par tag, chacune ouvrant la bibliothèque filtrée sur les pistes où il manque : genre, année, note, noms de tri, ReplayGain, plus la pochette, les doublons et les trous dans les numéros de piste.

Qui devrait rester sur Mp3tag

Si tu es sous Windows et que tu t'appuies sur les actions, les scripts ou le travail plus élaboré sur les chaînes de format, rox n'a pas d'équivalent et ce serait un retour en arrière. Si tu veux un tagueur qui ne soit pas aussi un lecteur, rox n'a tout simplement pas la bonne forme.

Si tu es sous Linux ou sur un Mac, ou si ton tagage se fait au milieu de l'écoute plutôt que comme une corvée séparée, c'est le vide que ceci comble.

Le chemin d'écriture est la partie qui n'a pas de contrepartie à comparer. Vérifier le hachage d'un flux audio avant de renommer par-dessus un original, un tagueur ne le fait pas s'il ne s'attend pas à être pointé sur tout ce que tu possèdes. Si c'est ce genre de prudence que tu veux entre une modification et tes fichiers, la voilà.

Pointe-le sur le dossier que tu évites

Libre et open source, sans compte, sans installeur. Le versant bibliothèque est détaillé à part, et si tu viens d'une installation Windows il y a aussi une comparaison MusicBee et une comparaison Foobar2000.