FUNIX

Mettez un manchot dans votre PC


Encourager FUNIX

La consultation du site est totalement libre et gratuite, sans publicités. Les dons sont néanmoins appréciés pour payer l'hébergement et encourager son auteur


Outils multimédia

[ Présentation | Outils orientés audio ( Audacious , Clementine , lollypop  )  | Karaoke ( pyKaraoke , dmidiplayer , Kodi , OSD Lyrics )  ]

Lecteurs audio et karaoke

Dernière modification 25 décembre 2023

Présentation

Voilà une page un peu fourre tout avec des outils audio qui ne rentrent pas dans les catégories des autres pages (MAO, montage vidéo, transcodage, lecture vidéo , gérer les métadonnées audio et listes de lecture ) de ce site. On y trouve donc des logiciels pour écouter de l'audio tout en gérant une bibliothèque audio et pour faire du karaoké.

On part sur le principe que vous avez installé les bibliothèques de base pour faire de la vidéo.

Outils orientés audio

Audacious

Audacious est un logiciel pour gérer une bibliothèque audio, on pourra créer des listes de lecture, faire des tris, juste ce qu'il faut pour animer une soirée. Le site officiel est http://audacious-media-player.org/ on y récupère l'archive qu'on décompresse en tapant:

tar xvfj audacious-4.3.1.tar.bz2

cela donne le répertoire audacious-4.3.1 on installera maintenant lib64archive-devel, valgrind-devel, lib64qt5core-devel, lib64qt5gui-devel, lib64qt5widgets-devel et lib64gtk+2.0-devel et dans le répertoire préalablement créé on tape :

./configure --enable-qt --enable-valgrind --enable-gtk --enable-libarchive

voilà le résultat

Configuration:

  Install path:                           /usr/local

  D-Bus support:                          yes
  GTK+ support:                           yes
  Qt support:                             yes
  libarchive support:                     yes
  Valgrind analysis support:              yes

on tape ensuite

make

puis en tant que root

make install

on installe maintenant audacious-plugins qu'on trouve sur le même site en tapant

tar xvfj audacious-plugins-4.3.1.tar.bz2

cela donne le répertoire audacious-plugins-4.3.1, on installe préalablement les packages lib64wavpack-devel, lib64mpg123-devel et lib64neon-devel puis on revient au répertoire d'audacious plugins dans lequel on tape

./configure --enable-qt --enable-streamtuner

voilà le résultat

Configuration:

  Install path:                           /usr/local/lib/audacious

  GTK+ support:                           yes
  Qt support:                             yes

  Audio Formats
  -------------
  Audio CD:                               yes
  Free Lossless Audio Codec:              yes
  Ogg Vorbis:                             yes
  Opus:                                   yes
  MIDI (via FluidSynth):                  yes
  MPEG-1 Layer I/II/III (via mpg123):     yes
  MPEG-2/4 AAC:                           yes
  WavPack:                                yes

  External Decoders
  -----------------
  FFmpeg:                                 yes
  libsndfile:                             yes

  Chiptunes
  ---------
  AdLib synthesizer (adplug):             no
  Commodore 64 audio (sid):               no
  Game Music Emu (spc, nsf, gbs, etc.):   yes
  ModPlug:                                yes
  OpenMPT:                                no
  Nintendo DS audio (xsf):                yes
  PlayStation audio (psf/psf2):           yes
  Vortex Tracker (vtx):                   yes

  Other Inputs
  ------------
  Metronome:                              yes
  Tone Generator:                         yes

  Effects
  -------
  Bauer stereophonic-to-binaural (bs2b):  no
  Bitcrusher:                             yes
  Channel Mixer:                          yes
  Crystalizer:                            yes
  Dynamic Range Compressor:               yes
  Echo/Surround:                          yes
  Extra Stereo:                           yes
  LADSPA Host (requires GTK+):            yes
  Sample Rate Converter:                  yes
  Silence Removal:                        yes
  SoX Resampler:                          no
  Speed and Pitch:                        yes
  Voice Removal:                          yes

  Outputs
  -------
  Advanced Linux Sound Architecture:      yes
  Jack Audio Connection Kit:              yes
  Open Sound System:                      yes
  PipeWire:                               no
  PulseAudio:                             yes
  Simple DirectMedia Layer:               yes
  Sndio:                                  yes
  Win32 waveOut:                          no
  FileWriter:                             yes
    -> MP3 encoding:                      yes
    -> Vorbis encoding:                   yes
    -> FLAC encoding:                     yes

  Playlists
  ---------
  Cue sheets:                             no
  M3U playlists:                          yes
  Microsoft ASX (legacy):                 yes
  Microsoft ASX 3.0:                      yes
  PLS playlists:                          yes
  XML Sharable Playlist Format (XSPF):    yes

  Transports
  ----------
  FTP, SFTP, SMB (via GIO):               yes
  HTTP/HTTPS (via neon):                  yes
  MMS (via libmms):                       no

  General
  -------
  Ampache browser (requires Qt):          no
  Delete Files:                           yes
  libnotify OSD:                          yes
  Linux Infrared Remote Control (LIRC):   no
  MPRIS 2 Server:                         yes
  Scrobbler 2.0:                          yes
  Song Change:                            yes

  GTK+ Support
  ------------
  GTK Interface:                          yes
  Winamp Classic Interface:               yes
  Album Art:                              yes
  Blur Scope:                             yes
  OpenGL Spectrum Analyzer:               yes
  Playlist Manager:                       yes
  Search Tool:                            yes
  Spectrum Analyzer (2D):                 yes
  Status Icon:                            yes
  X11 Global Hotkeys:                     yes
  X11 On-Screen Display (aosd):           yes

  Qt Support
  ----------
  Qt Multimedia output:                   yes
  Qt Interface:                           yes
  Winamp Classic Interface:               yes
  Album Art:                              yes
  Blur Scope:                             yes
  LyricWiki viewer:                       yes
  OpenGL Spectrum Analyzer:               yes
  Playlist Manager:                       yes
  Search Tool:                            yes
  Song Info:                              yes
  Spectrum Analyzer (2D):                 yes
  Status Icon:                            yes
  Stream Tuner (experimental):            yes
  VU Meter:                               yes
  X11 Global Hotkeys:                     yes

on tape ensuite make puis en tant que root make install

voilà le résultat en le lançant


Clementine

Clementine est également un outil pour gérer une bibliothèque, il offre bien plus de fonctionnalités qu'Audacious, mais il est un peu plus compliqué à installer. Voilà la liste des fonctionnalités, qu'on peut trouver sur le site officiel https://www.clementine-player.org/fr/  :
  • Rechercher et écouter votre bibliothèque musicale locale.
  • Écouter de la musique sur Internet depuis SpotifySomaFM, Magnatune, Jamendo, SKY.fm, Digitally Imported, JAZZRADIO.com, Soundcloud, Icecast et Subsonic servers.
  • Rechercher et écouter les morceaux que vous avez envoyé sur Box, Dropbox, Google Drive, et OneDrive
  • Créer des listes de lecture intelligentes et dynamiques.
  • Listes de lecture avec onglets, import et export au formats M3U, XSPF, PLS et ASX.
  • Support des CUE sheet.
  • Écouter vos CD audios..
  • Paroles des chansons, et biographies et photos des artistes.
  • Transcoder votre musique en MP3, Ogg Vorbis, Ogg Speex, FLAC ou AAC.
  • Éditer les tags sur vos fichiers MP3 ou OGG, organisez votre musique.
  • Compléter les tags automatiquement avec MusicBrainz.
  • Chercher et télécharger des Podcasts.
  • Télécharger les jaquettes d'albums manquantes depuis Last.fm et Amazon
  • Contrôle à distance en utilisant un périphérique Android, une télécommande Wii, MPRIS ou la ligne de commande.
  • Copiez votre musique sur votre iPod, iPhone, périphérique USB ou MTP.
Sur le site officiel on laisse tomber la version 1.3.1 qui n'est pas compatible avec qt5 et avec les dernières versions de linux quelle que soit la distribution. Il faudra utiliser une version en développement qu'on trouvera par là https://github.com/clementine-player/Clementine on décompresse cette version en tapant

tar xvfz Clementine-1.4.0rc1-900-g3f572a413.tar.gz

cela donne le répertoire Clementine-1.4.0rc1-900-g3f572a413 il faudra récupérer le répertoire .git qui a été oublié dans l'archive, on récupère la dernière version en cours de développement en tapant

git clone https://github.com/clementine-player/Clementine.git

et on copie le répertoire Clementine/.git sous Clementine-1.4.0rc1-900-g3f572a413

On revient sous Clementine-1.4.0rc1-900-g3f572a413 dans lequel on tape successivement

mkdir build
cd build
cmake .. -DBUILD_WERROR=OFF

 il faudra sans doute installer préalablement le package lib64gmock-devel voilà le résultat

Building Clementine version: 1.4.0rc1-900-g3f572a413

The following components will be built:
   ALSA integration
   Box support
   D-Bus support
   Devices: Audio CD support
   Devices: GIO device backend
   Devices: MTP support
   Devices: UDisks2 backend
   Devices: iPod classic support
   Dropbox support
   Google Drive support
   Moodbar support
   Pulse audio integration
   Seafile support
   Skydrive support
   Translations
   Visualisations
   Wiimote support

The following components WILL NOT be built:
   Crash reporting (disabled in CMake config)
   Last.fm support (missing liblastfm)
   Sparkle integration (missing macOS, Sparkle)

-- Configuring done (5.0s)
-- Generating done (0.5s)
-- Build files have been written to: /usr/local/linux/multimedia/Clementine-1.4.0rc1-900-g3f572a413/build

on tape make puis en tant que root make install

voilà l'interface, je vous laisse découvrir sur le site officiel le manuel d'utilisation, mais d'emblée c'est très intuitif. Le mode biographie ci-dessous


et avec les modes de lecture intelligente qui font la force de Clementine.



lollypop est une autre alternative, l'interface est un peu confuse, avec des réglages dispersés un peu partout et pas toujours intuitif à trouver, mais il a l'avantage d'intégrer la fonctionnalité de liste intelligente avec un tri par année par exemple, fonctionnalité que je ne retrouve pas sur Clementine et qui marche assez mal sur kodi. Le mode plein écran est plutôt pas mal, il utilise la photo intégrée dans le fichier musical et va récupérer une image de l'artiste sur internet. Il souffre malheureusement encore de quelques bogues, mais il est s'avère assez prometteur.

Le site officiel est https://gitlab.gnome.org/World/lollypop avant d'aller plus loin il faudra installer les packages suivants:

urpmi lib64girepository-devel python-gobject3-devel lib64totem-plparser-devel python3-beautifulsoup4 python3-soupsieve lib64appstream-glib-devel vala-tools lib64gladeui2-devel  lib64handy1_0 lib64handy-devel lib64soup-devel

on revient à lollypop et on décompresse l'archive en tapant

tar xvfz lollypop-1.4.35.tar.gz

cela donne le répertoire lollypop-1.4.35 dans lequel on tape :

meson builddir --prefix=/usr/local

j'ai rencontré cette erreur

meson.build:45:0: ERROR: Subproject exists but has no meson.build file

pour la résoudre j'ai récupéré un fichier meson.build dans le répertoire subprojects/po qu'on trouvera dans l'arborescence du projet sur gitlab. On retape la commande meson puis en tant que root

ninja -C builddir install

et voilà ce que ça donne une fois la bibliothèque audio chargée


en mode configuration des listes intelligentes.

Et en mode plein écran


Karaoke

pyKaraoke

pyKaraoke est l'outil le plus simple pour faire du karaoke, le site officiel est http://www.kibosh.org/pykaraoke on y récupère l'archive qu'on décompresse en tapant

unzip pykaraoke-0.7.5.zip

cela donne le répertoire pykaraoke-0.7.5. Préalablement on installera les packages suivants en tapant la commande ci-dessous

urpmi python-pygame wxPython python-pygame-devel lib64python-devel

on revient dans le répertoire de pyKaraoke et en tant que root on tape

python setup.py install

maintenant il faudra installer un séquenceur midi, j'ai choisi TiMidity++ pour faire simple on prendra les packages par défaut de la distribution, sur une mageia ce sont les packages timidity-patch-freepats  et TiMidity++, on créera également le lien suivant

ln -s /etc/alternatives/timidity.cfg /etc

on lance le séquenceur en tapant :

timidity -iA -Os

voilà le résultat

Requested buffer size 32768, fragment size 8192
ALSA pcm 'default' set buffer size 32768, period size 8192 bytes
TiMidity starting in ALSA server mode
Opening sequencer port: 128:0 128:1 128:2 128:3

Voilà ce que ça donne en image en invoquant la commande pykaraoke maintenant:

pykaraoke

dmidiplayer

dmidiplayer ou plutôt Drumstick Multiplatform MIDI File Player est un logiciel de lecture de fichier .mid, .kar mais également fichiers .RMI (RIFF MIDI), et .WRK (Cakewalk). On peut l'interfacer à des périphériques MIDI ou des logiciels de MAO.

Avant de l'installer il y a un certain nombre de logiciels à installer. On commencera par sonyvox qui est un synthétiseur de tables d'onde, qu'on trouvera ici https://github.com/pedrolcl/sonivox. On décompresse l'archive en tapant

tar xvfz sonivox-3.6.12.tar.gz

cela donne le répertoire sonivox-3.6.12 dans lequel on tape

mkdir build
cd build
cmake ..

make

puis en tant que root make install

On installera ensuite Drumstrick qui est une bibliothèque MIDI qui utilise Qt5, le site officiel est https://drumstick.sourceforge.io/. On décompresse l'archive en tapant

tar xvfj drumstick-2.8.1.tar.bz2

Dans le répertoire drumstick-2.8.1 on tape

./configure

voilà le résultat

-- Drumstick v2.8.1
    Install prefix: /usr/local
    Build configuration: Release
    System: Linux
    Processor: x86_64
    Qt Version: 5.15.7
    D-Bus support: ON
    Network support: ON
    PulseAudio support: ON
    FluidSynth support: ON
    Sonivox support: ON
    Building libdrumstick-alsa: ON
    Building libdrumstick-file: ON
    Building libdrumstick-rt: ON
    Building libdrumstick-widgets: ON
    Building tests: ON
    Building docs: ON
    Building utils: ON
    Building frameworks: OFF
-- Found Doxygen: /bin/doxygen (found version "1.9.7") found components: doxygen dot
-- XSLTPROC Found: /bin/xsltproc
-- Found shared-mime-info version: 2.2
-- Configuring done (0.6s)
-- Generating done (0.1s)
-- Build files have been written to: /usr/local/linux/multimedia/drumstick-2.8.1/build

on tape ensuite

cd build

make

puis en tant que root make install

On en arrive enfin à dmidiplayer, le site officiel est https://sourceforge.net/projects/dmidiplayer/. On décompresse l'archive en tapant

tar xvfj dmidiplayer-1.7.2.tar.bz2

Dans le répertoire dmidiplayer-1.7.2 on tape

mkdir build
cd build
cmake ..
make

puis en tant que root make install

Et voilà le résultat



OSD Lyrics

OSD Lyrics présente l'intérêt de pouvoir s'interfacer avec Audacious. Le site officiel est https://github.com/osdlyrics/osdlyrics on décompresse la dernière version stable en tapant

tar xvfz osdlyrics-0.5.14.tar.gz

cela donne le répertoire osdlyrics-0.5.14.tar.gz. Préalablement on installera les packages suivants en tapant la commande ci-dessous

urpmi lib64notify-devel intltool python-future

on tape ensuite

./autogen.sh
make

puis en tant que root

make install

Couplé avec audacious, cela donne cela

L'affichage du texte est évidemment synchronisé avec la chanson. On peut le configurer pour afficher 2 lignes et voir en avance de phase celle à venir.

Le scrolling est également possible

Voilà, vous n'avez plus d'excuses pour faire la fête sous linux !

KODI

KODI en plus d'intégrer un lecteur audio classique

intègre également un module karaoke de base


Taguer ses fichiers audio

Tout d'abord juste un petit mot sur le format des métadonnées audio. ID3 est de facto le standard utilisé pour les métadonnées audio qui signifie " IDentify an MP3", mais en fait il ne s'applique pas qu'aux fichiers MP3, cela marche également pour les fichiers FLAC ou OGG. Il se décline en plusieurs versions:
  •     ID3v1: c'est la première version, où on retrouve le titre, l'artiste, l'album, l'année de parution, un commentaire et le genre musical
  •     ID3v1.1: idem avec le numéro de la piste sur l'album
  •     ID3v2: c'est beaucoup plus riche, on peut rajouter à peu près tout et n'importe quoi, en plus de l'image de l'album, on peut aller jusqu'aux paroles de la piste, le compositeur, l'arrangeur, etc. le champ ReplayGain fait son apparition, il donne le volume sonore de la piste et permet à un lecteur audio de normaliser le son. La dernière version de ce standard est la ID3v2.4 qui date de 2000.
ID3 n'est pas le seul format d'encodage des métadonnées audio, sans évoquer les formats propriétaires (iTunes, ASF/Windows media, ...) il existe également les formats documentés et ouverts:
  •     les tags APE qui existent dans les versions APEv1 et APEv2 dont on retrouvera ici la description de l'ensemble des champs, il a le défaut de ne pas embarquer d'image de l'album
  •     les tags vorbis qui peuvent être utilisés pour les fichiers audio Vorbis, FLAC, Theora et Speex, on retrouvera le format des différents champs par
C'est assez difficile de comparer ces différents formats, ils intègrent tous les différents champs qui vont bien dont le ReplayGain, ID3 est le format le plus utilisé et c'est l'assurance que la plupart des lecteurs le reconnaissent même dans sa dernière version, le format APE est donné pour être plus simple et plus flexible avec une meilleure reconnaissance des différentes langues, mais il n'intègre pas les images.

Dans tous les cas il faudra éviter le mixte de format de métadonnées rendu possible par le fait que les tags ID3 et APE peuvent se retrouver dans le même fichier au début et à la fin (et vice-versa), ça peut entraîner des conflits et des erreurs de lecture suivant le lecteur.

Taguer automatiquement avec MusicBrainz Picard

Sur la plupart des lecteurs audio modernes quel que soit le support (lecteur mp3, téléphone mobile, etc.), les tags des fichiers audio s’affichent pendant la lecture (artiste, titre, album, image d’illustration, ...) or il peut s'avérer qu'ils soient mal tagué (balisé pour parler correctement le français !) pour x raisons. Par ailleurs l’intérêt des tags est de pouvoir créer des listes de lecture en sélectionnant l’année, l'artiste ou le nom de l'album par exemple.
MusicBrainz Picard est un outil permettant d'identifier les titres audio et de les taguer proprement plus ou moin automatiquement. Pour la petite histoire et les amateurs de Star Trek, le nom Picard vient du nom du commandant du vaisseau Entreprise Jean Luc Picard dans la série Star Trek la nouvelle génération.
Pour l’installation de picard, rien de plus simple, on installera d’abord les packages chromaprint et python3-fasteners, python3-qt5-multimedia puis mutagen, qui est un module python pour manipuler les métadonnées audio, qu’on trouvera par là  https://github.com/quodlibet/mutagen. On le décompresse en tapant:

tar xvfz mutagen-release-1.47.0.tar.gz

puis dans le répertoire mutagen-release-1.47.0 ainsi créé on tape en tant que root:

python setup.py install

Sur le site de picard on récupère l’archive qu’on décompresse en tapant:

tar xvfz picard-2.10.tar.gz

cela donne le répertoire picard-2.10  dans lequel on tape en tant que root:

python setup.py install

Il m’a paru utile de créer un compte sur le site MusicBrainz qui se définit comme une encyclopédie musicale libre qui collecte les métadonnées musicales que tout le monde peut alimenter et enrichir.

On lance picard en tapant simplement picard dans un shell. Dans les options, j’ai indiqué mon compte MusicBrainz, picard me renvoie ensuite sur le site et me donne un code d'activation que je dois saisir alors, au final cela donne cela

J'ai laissé les paramètres par défaut, ou presque, voici quelques pages de configuration intéressantes, tout d'abord sur le format des balises.


Mes fichiers audio sont correctement nommés pour ma part (Artiste - titre.extension), aussi je ne veux pas que picard me les renomme, je l'ai donc explicitement indiqué dans la fenêtre ci-dessous, si c'est le bazard de votre côté, il est sans doute utile de cocher la case Renommer les fichiers à l'enregistrement.


Dans la fenêtre ci-dessous on doit indiquer l'outil pour relever l'empreinte audio d'un fichier c'est à dire fpcalc (acoustID fingerprinter en anglais) on saisit également la clé API qu'on obtiendra en cliquant sur Obtenir la clé d'API

Sur cette page, on peut activer des greffons, pour l'instant je n'ai pas jugé utile d'en rajouter


Voilà une page intéressante, il faut indiquer le port (par défaut 8000) qui servira de lien entre le navigateur par défaut et picard


Voilà la fenêtre principale de picard

A gauche on se déplace dans l’arborescence, on sélectionne les titres à identifier qu’on glisse par drag and drog dans la colonne du milieu, par défaut tous les fichiers sont sans concordance. On les sélectionne et on clique sur Rechercher, picard va rechercher dans sa base les fichiers dont les balises correspondent le mieux aux notres, à droite on va voir apparaître tous les albums correspondants que picard aura trouvé. On peut regretter juste que pour beaucoup ce soit des albums de compilation qui apparaissent et non pas l’album d’origine, il y a également des faux positifs, une chanson qui est attribuée à quelqu'un d'autre, mais on verra plus loin comment traiter cela. Pour certains on aura un message impossible de charger l’album, pour résoudre cela il faut sélectionner les albums non chargés et avec le menu accessible par un clic droit choisir Rafraîchir, il ne faut pas hésiter à insister, ça se charge parfois au bout de 4 ou 5 fois. Il reste un certain nombre de fichiers dans la colonne du milieu sans concordance, il faudra à nouveau les sélectionner et faire plusieurs fois Rechercher, car curieusement il continue à identifier des fichiers alors qu’il ne l’avait pas fait auparavant. Pour ceux qu’il n’aurait pas identifié, ça peut venir d’un fichier pas bien balisé à la base ou mal nommé, dans ce cas vérifier et modifier les tags Artist et Title et recommencer. Au final il me reste souvent moins de 5% de fichiers non identifiés ce qui n’est pas énorme, on sélectionne les albums dans le bandeau à droite qui ont été trouvés et on enregistre la totale à partir du menu contextuel. Tous les fichiers vont être modifiés avec les bons tags en rajoutant également une image d’illustration et le tour est joué. Les albums et fichiers non sauvegardés apparaissent dans le bandeau à droite avec une petite étoile sur le disque.

Si vos fichiers sont mal balisés à la base, la recherche peut être plus laborieuse, il faut commencer par les baliser correctement. Ça peut être laborieux de modifier un à un les balise des fichiers, donc s’ils sont bien nommés du style mon artiste – mon titre.mp3. On dispose d’un outil bien pratique qui va faire ça automatiquement, on sélectionne les fichiers, puis on clique sur Outils->Baliser à partir des noms de fichier. Pour le style de nommage ci-dessus, on prendra %artist% – %title% qui permettra de taguer proprement le fichier et de lancer ensuite une recherche plus efficace. Si les fichiers correctement tagués n’ont toujours pas été identifiés, je vous encourage a minima de les enregistrer (sélection des fichiers dans le bandeau du milieu puis enregistrer à partir du menu contextuel.

Quand la recherche devient infructueuse, on peut passer à la recherche à partir de leur signature acoutisque en cliquant sur Analyser, picard va calculter l'empreinte acoustique du fichier en la comparant avec celles présentes sur le serveur d'empreinte.

Pour les fichiers restants, on peut penser qu'ils ne sont pas dans la base de picard, on peut donc l'enrichir et en faire profiter la communauté avec les bonnes balises associées en sélectionnant la piste et en cliquant sur Envoyer AcoustIDs



Vous aurez remarqué que picard classe les fichiers audio par album et non par artiste (par exemple), chaque fichier est rattaché à un album et l'image associée au fichier visible dans le lecteur audio est celle rattachée à l'album. Pour ma part mes mp3 sont rangés dans des répertoires par genre musical, quand je passe d’un répertoire à l’autre je quitte picard et je le relance pour partir d’un écran vierge sans albums préchargés. Dans la philosophie de picard, les fichiers sont classés de base par album, avec un répertoire par album, il faudra dans ce cas plutôt utiliser la fonction Grappes, cette page (en anglais) explique comment faire. En résumé, on sélectionne le répertoire album, on le glisse dans le bandeau du milieu et on clique sur l'outil Regrouper, l'album va se retrouver au niveau de l'arborescence Grappe dans le bandeau du milieu et de la même manière on va cliquer sur Rechercher ou Analyser pour trouver l'album correspondant.

Maintenant que faire des fichiers sans concordance ? Il suffit de sélectionner le fichier correspondant dans le bandeau du milieu puis avec le menu contextuel on choisit Rechercher des pistes similaires


et là normalement on devrait trouver son bonheur, il faut parfois essayer plusieurs entrées, toutes ne sont pas forcément associées à une image de l'artiste ou de l'album. Une fois le fichier associé à une piste, il va basculer automatiquement dans le bandeau de droite, rattaché à l'album correspondant qui va faire son apparition (avec une petite étoile pour montrer qu'il n'a pas encore été sauvegardé).
Autre méthode, on sélectionne la piste puis on clique sur Rechercher dans le navigateur, automatiquement on est renvoyé sur le navigateur qui affiche les pistes concordantes


On sélectionne celle qui nous parait la plus proche et on clique sur le bouton TAGGER, ça nous renvoie alors automatiquement sur picard, le fichier se retrouve automatiquement basculé à droite dans l'arborescence de l'album. Il ne reste plus qu'à le sauvegarder à partir du menu contextuel.



Pour les faux positifs du bandeau à droite, c'est à dire les fichiers qui ont été associés à des mauvaises pistes, dans le bandeau de droite on sélectionnera la piste dans l'album correspondante, et de la même manière à partir du menu contextuel on choisira Rechercher des pistes similaires.
On procédera de la même manière pour les pistes associées à des compilations si vous souhaitez les associer aux albums de l'artiste concerné.

Le problème avec Picard c'est que tout est quasi automatique et qu'il n'y a pas moyen de modifier manuellement les métadonnées audio d'une piste audio, pour cela il faudra préalablement créer ou modifier une entrée directement sur la base du site MusicBrainz. Il y a bien d'autres outils qui permettent de les modifier mais peu permettent d'intégrer une image directement dans le fichier. Je me suis détourné d'easyTAG qui fait tout ça encore de manière automatique sans qu'on ait vraiment la main sur ce qui se passe.
Pour pouvoir vraiment contrôler ce qui se passe, je me suis tourné vers Kid3, qu'on récupérera sur le site https://kid3.kde.org/, je me suis contenté de la version fournie par mon système Mageia pour l'installation. A vrai dire Kid3 est également capable de remplir automatiquement les tags de piste audio mais on l'utilisera pour le faire de manière manuelle pour lequel il est très puissant.
Kid3 ressemble à cela

Une piste audio peut être identifiée par des tags ID3v1.1 et ID3v2.30, les informations sont évidemment bien plus riches avec la dernière version et les champs d'information plus long (notamment pour le nom des artistes et l'album), on y retrouve également l'image de l'album. Les champs des tags ID3v2.30, ils ont été remplis automatiquement par picard.

On notera qu'un certain nombre de pistes sont marquées en rouge, en fait c'est qu'elles ne respectent pas totalement le standard ID3. Si nous regardons la configuration, elles apparaissent car le champ "Marquer des violations de la norme" est coché par défaut.

Par défaut on choisira aussi la version ID3v2.30 qui est mieux reconnue de la plupart des lecteurs que la v2.40 même si celle-ci date de 2000 !

pour le jeu de caractère, on a le choix entre

  • l’ISO-8859-1, qui permet d’enregistrer presque tous les caractères du français ;
  • l’ISO-8859-15, une variation de l’ISO-8859-1, qui rajoute le symbole « euro » et le « l’e dans l’o»
  • l’UTF-8, qui permet théoriquement d’encoder toutes les langues, du français au japonais en passant par l’arabe.

Même si l'UTF-8 est à privilégier aujourd'hui, là aussi on préférera utiliser ISO-8859-1 qui reste encore le plus reconnu par les lecteurs audio.

Revenons à nos pistes dont les métadonnées ne respectent par le format, le champ concerné apparaît en rouge, ce problème pourrait poser problème sur certains lecteurs et il est préférable d'y remédier. Il suffit de sélectionner le champ concerné et de le modifier ou le supprimer (attention en utilisant le bouton Supprimer en bas de la liste, au dessus de l'image et non celui plus haut qui supprime l'ensemble des tags v2.30).


Dans le cas présent on voit que c'est le champ Arrangeur qui pose problème, on va pas le supprimer piste après piste, vous pouvez sélectionner plusieurs pistes et supprimer ce champ Arrangeur de manière globale


De la même manière on pourra modifier n'importe quel champ d'un groupe de piste en une seule manipulation. De la même manière on pourra filtrer les pistes suivant certains critères à partir du menu Outils->Filtre...
Dans le cas ci-dessous on va filtrer uniquement les pistes qui ne disposent pas d'image intégrée.

Le M3U (MPEG version 3.0 URL) est le format le plus courant qui a été créé à l'origine par le logiciel WinPlay3 édité par la société allemande Fraunhofer accessoirement créateur du MP3 et s'est imposé comme standard de fait. Il contient une liste de fichiers multimédia simplement repérés par leur adresse (URL). C'est un bête fichier avec une adresse par ligne avec l’extension .m3u si le texte est encodé avec un encodage non unicode ou avec l’extension .m3u8 si le texte est encodé en unicode UTF-8. L'adresse peut avoir le format suivant:
  • Chemin absolu vers le fichier
  • Chemin relatif vers le fichier par rapport au fichier M3U
  • URL d'un fichier distant
Le M3U étendu (Extended M3U) contient des champs supplémentaires identifiés en début de ligne par un "#" et se terminant avec un ":" s'il y a du texte qui suit, sans être exhaustif, on retrouve par exemple :
  • #EXTM3U - placé en en-tête de fichier indiquant qu'on utilise le format Extended M3U
  • #EXTINF : informations sur la piste
  • #PLAYLIST : Le titre de la playlist

Voilà un exemple de fichier au format M3U étendu

#EXTM3U
#EXTINF:227,Roé - Soledad
/ultra/data/musiques/classement par genre/pop/Roe - soledad.mp3
#EXTINF:141,Al Martino - Volare
/ultra/data/musiques/classement par genre/pop/Al Martino - Volare.mp3
#EXTINF:218,Nek - Laura non c'e
/ultra/data/musiques/classement par genre/pop/Nek and Cerena - Laura non ce.mp3

(...)

/ultra/data/musiques/classement par genre/pop/Manu Chao - Bongo Bong.mp3
#EXTINF:219,Gilberto Gil - Toda menina baiana
/ultra/data/musiques/classement par genre/pop/Gilberto Gil - Toda Menina Baiana.mp3
#EXTINF:248,Umberto Tozzi - tu
/ultra/data/musiques/classement par genre/pop/Umberto Tozzi - tu.mp3

Le chiffre devant le nom de la piste est la durée de la piste en seconde.

Autre format le XSPF c'est une alternative libre à M3U ou d'autres formats propriétaires de liste qu'on n'abordera pas ici comme PLS pour iTunes ou ASX pour Windows Media. Il fonctionne également sur le principe d'une liste d'adresse mais au format XML et supporte l'unicode. Cela donne quelque chose comme cela:

<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
  <trackList>
    <track>
      <location>/ultra/data/musiques/classement par genre/pop/Roe - soledad.mp3</location>
      <title>Soledad</title>
      <creator>Roé</creator>
      <album>Roé</album>
      <duration>227000</duration>
      <trackNum>1</trackNum>
      <image>(embedded)</image>
    </track>
    <track>
      <location>/ultra/data/musiques/classement par genre/pop/Al Martino - Volare.mp3</location>
      <title>Volare</title>
      <creator>Al Martino</creator>
      <album>Best of Al Martino</album>
      <duration>141000</duration>
      <trackNum>1</trackNum>
      <image>(embedded)</image>
    </track>

(...)

    <track>
      <location>/ultra/data/musiques/classement par genre/pop/Umberto Tozzi - tu.mp3</location>
      <title>tu</title>
      <creator>Umberto Tozzi</creator>
      <album>Tu</album>
      <duration>248000</duration>
      <trackNum>1</trackNum>
      <image>(embedded)</image>
    </track>
  </trackList>
</playlist>

Maintenant pour créer automatiquement ses listes de lecture, en partant du principe que les fichiers audio ont été correctement tagués ID3 on pourra le faire automatiquement par script bash. En première approche on peut toujours créer des simples listes de lecture qui ne tiendront pas compte des tags ID3 en se contentant de parcourir un répertoire et sous répertoire et de mettre tous les fichiers audio dans un fichier playlist.m3u

#!/bin/bash
read -p "Chemin absolu ou relatif (par défaut relatif) " chemin
if [ "$chemin" = "absolu" ]
then
    path=$(pwd)
else
    path="."
fi
playlist="playlist.m3u"
rm -f $playlist
IFS=$'\n'
for fichier in $(find $path type f | grep '/*.ogg\|/*.mp3\|/*.flac')
do
      echo "Fichier trouvé $fichier"
      echo $fichier>>$playlist
done;
unset IFS

Ce script a la particularité de laisser le choix entre mettre un chemin absolu ou relatif dans la liste de lecture, le chemin relatif sera intéressant si vous importez votre bibliothèque audio sur un téléphone mobile. Il faudra faire en sorte d'avoir une arborescence relative identique et le fichier de liste de lecture placé au même endroit pour qu'il puisse retrouver les fichiers audio sans se soucier de leur chemin absolu.

Maintenant si on veut exploiter les métadonnées ID3, on pourra utiliser la commande ffprobe qui vient avec la suite ffmpeg, le script ci-dessous va créer automatiquement une liste de lecture en filtrant sur le genre musical, toujours en demandant si l'on souhaite un chemin absolu ou relatif

#!/bin/bash
read -p "Genre musical : " genre
read -p "Chemin absolu ou relatif (par défaut relatif) " chemin
if [ "$chemin" = "absolu" ]
then
    path=$(pwd)
else
    path="."
fi
playlist="playlist-$genre.m3u"
rm -f $playlist
IFS=$'\n'
for fichier in $(find $path type f | grep '/*.ogg\|/*.mp3\|/*.flac')
do
   if ffprobe -loglevel quiet -hide_banner -show_entries format_tags=genre -of default=noprint_wrappers=1:nokey=1 $fichier 2>&1 | grep -i $genre ; then
      echo "Fichier trouvé $fichier"
      echo $fichier>>$playlist
   fi
done;
unset IFS

Pour convertir vos listes de lecture .m3u en .m3u8 ou .xspf qui peuvent être plus portables sur d'autres supports, on pourra simplement utiliser vlc, on charge la liste de lecture au format M3U puis à partir du menu Média->Enregistrer la liste de lecture... on choisira le format de sortie à partir de la liste déroulante.



Pour créer ses listes de lecture manuellement et simplement on pourra utiliser une application, personnellement j'utilise clementine qui intègre une gestion des listes de lecture intelligente multi critères basés sur les métadonnées ID3.



On aura le choix ensuite de sauvegarder sa liste de lecture dans différents formats M3U, XSPF, PLS et ASX comme déjà évoqués ici mais également CUE et WPL.

Quel que soit le format, clementine va sauvegarder les chemins en absolu, pour les convertir en relatif pour la raison évoquée plus haut, on pourra utiliser ce petit script

#!/bin/bash
read -p "Entrez le nom du fichier : " fichier
read -p "Entrez la chaine à remplacer : " chaine1
read -p "Entrez la chaine de remplacement : " chaine2
echo "Traitement de $fichier ..."
fichiertemp=$(basename "$fichier" | cut -d. -f1)
extension="${fichier##*.}"
sed "s|$chaine1|$chaine2|g" $fichier  > "$fichiertemp-relatif.$extension"


[Retour à l'accueil]
[Retour haut de la page]