[ Présentation | Outils orientés audio ( Audacious , Clementine )  | Karaoke ( pyKaraoke , kmid , PerformousOSD Lyrics )  | MusicBrainz Picard  ]

Outils audio divers

Dernière modification 16 juillet 2017

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) de ce site. On y trouve donc des logiciels pour écouter de l'audio tout en gérant une bibliothèque audio, pour faire du karaoke et pour baliser automatiquement des fichiers audio MP3.

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

[Retour haut de la page]

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-3.8.2.tar.bz2

cela donne le répertoire audacious-3.8.2 dans lequel on tape :

./configure --enable-qt

voilà le résultat

Configuration:

  Install path:                           /usr/local

  Automatic character code detection:     no
  D-Bus support:                          yes
  GTK+ support:                           yes
  Qt support:                                yes
  Valgrind analysis support:              no

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-3.8.2.tar.bz2

cela donne le répertoire audacious-plugins-3.8.2, 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 --disable-wavpack

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
  MIDI (via FluidSynth):                  no
  MPEG-1 Layer I/II/III (via mpg123):     yes
  MPEG-2/4 AAC:                           yes
  WavPack:                                no

  External Decoders
  -----------------
  FFmpeg/Libav:                           ffmpeg
  libsndfile:                             yes

  Chiptunes
  ---------
  AdLib synthesizer (adplug):             yes
  Commodore 64 audio (sid):               no
  Game Music Emu (spc, nsf, gbs, etc.):   yes
  ModPlug:                                yes
  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
  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
  PulseAudio:                             yes
  Simple DirectMedia Layer:               yes
  Sndio:                                  no
  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
  -------
  Alarm (requires GTK+):                  yes
  Ampache browser (requires Qt):          no
  Delete Files:                           yes
  GNOME Shortcuts:                        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
  LyricWiki viewer:                       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
  LyricWiki viewer:                       yes
  OpenGL Spectrum Analyzer:               yes
  Playlist Manager:                       yes
  Search Tool:                            yes
  Song Info:                              yes
  Status Icon:                            yes


on tape ensuite make puis en tant que root make install

voilà le résultat en le lançant



[Retour haut de la page]

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/  :
Sur le site officiel on y récupère l'archive qu'on décompresse en tapant :

tar xvfz Clementine-1.3.1.tar.gz

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

urpmi python-gobject-devel pygtk2.0-devel lib64dbusmenu-glib-devel dbus-glib-devel lib64gtk+3.0-devel lib64mygpo-qt-devel lib64qtwebkit2.2-devel lib64fftw-devel lib64protobuf-devel lib64taglib-devel lib64mtp-devel lib64qca2-devel lib64gpod-devel lib64glew-devel qt4-linguist lib64mygpo-qt-devel lib64indicate-devel lib64cryptopp-devel lib64echonest-devel

On installe maintenant sparsehash qui fournit des fonctions pour l'accès mémoire (si j'ai bien compris...), le site officiel est

https://code.google.com/p/sparsehash/

on y récupère l'archive qu'on décompresse en tapant

tar xvfz sparsehash-sparsehash-2.0.3.tar.gz

cela donne le répertoire sparsehash-sparsehash-2.0.3/ dans lequel on tape

./configure
make

puis en tant que root

make install

maintenant on installera la librairie lastfm qui permet d'accèder comme son nom l'indique aux services de lastfm. Le site officiel est https://github.com/lastfm/liblastfm on y récupère l'archive qu'on décompresse en tapant

tar xvfz liblastfm-1.0.9.tar.gz

cela donne le répertoire liblastfm-1.0.9 dans lequel on tape successivement

mkdir build
cd build
cmake ..
make

puis en tant que root make install on rajoutera la ligne /usr/local/lib64 dans le fichier /etc/ld.so.conf puis on tapera ldconfig

on installe maintenant la bibliothèque chromaprint qui implémente un algorithme pour extraite les empreintes de n'importe quel source audio. A noter que cette bilbliothèque se trouve sous la forme de package mais comme il est dépendant du package des sources de ffmpeg pour éviter tout risque de conflit, j'ai dû installer chromaprint à partir des sources. Le site officiel est  https://acoustid.org/chromaprint, on y récupère l'archive qu'on décompresse en tapant

tar xvfz chromaprint-1.4.2.tar.gz

cela donne le répertoire chromaprint-1.4.2 dans lequel on tape successivement

mkdir build
cd build
cmake ..
make

puis en tant que root

make install

On en arrive enfin à Clementine, sur le site officiel on y récupère l'archive qu'on décompresse en tapant :

tar xvfz Clementine-1.3.1.tar.gz

cela donne le répertoire Clementine-1.3.1 dans lequel on tape successivement

mkdir build
cd build
cmake ..

voilà le résultat

Building Clementine version: 1.3.1

The following components will be built:
   Box support
   D-Bus support
   Devices: Audio CD support
   Devices: DeviceKit backend
   Devices: GIO device backend
   Devices: MTP support
   Devices: iPod classic support
   Dropbox support
   Google Drive support
   Last.fm support
   Moodbar support
   Skydrive support
   Ubuntu One file support
   Visualisations
   Wiimote support

The following components WILL NOT be built:
   Crash reporting (disabled in CMake config)
   Sparkle integration (missing Mac OS X, Sparkle)
   Spotify support: non-GPL binary helper (missing libspotify)

-- Configuring done
-- Generating done

on tape ensuite

make

j'ai buté sur l'erreur suivante

/usr/local/linux/multimedia/Clementine-1.3.1/src/podcasts/gpoddersync.h:30:24: erreur fatale: ApiRequest.h : Aucun fichier ou dossier de ce type

y a sûrement plus simple, mais j'ai créé les liens suivants en tant que root

ln -s /usr/include/mygpo-qt/ApiRequest.h /usr/include
ln -s /usr/include/mygpo-qt/mygpo_export.h /usr/include
ln -s /usr/include/mygpo-qt/AddRemoveResult.h /usr/include
ln -s /usr/include/mygpo-qt/EpisodeList.h /usr/include
ln -s /usr/include/mygpo-qt/Episode.h /usr/include
ln -s /usr/include/mygpo-qt/EpisodeActionList.h /usr/include
ln -s /usr/include/mygpo-qt/EpisodeAction.h /usr/include
ln -s /usr/include/mygpo-qt/PodcastList.h /usr/include
ln -s /usr/include/mygpo-qt/Podcast.h /usr/include
ln -s /usr/include/mygpo-qt/TagList.h /usr/include
ln -s /usr/include/mygpo-qt/Tag.h /usr/include
ln -s /usr/include/mygpo-qt/Settings.h /usr/include
ln -s /usr/include/mygpo-qt/DeviceUpdates.h /usr/include
ln -s /usr/include/mygpo-qt/DeviceList.h /usr/include
ln -s /usr/include/mygpo-qt/Device.h /usr/include
ln -s /usr/include/mygpo-qt/DeviceSyncResult.h /usr/include

on retape 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.



si au démarrage vous avez une erreur d'exécution du style qu'il ne trouve pas la biblio /usr/lib64/libsamplerate.so, vous n'avez qu'à créer le lien suivant

ln -s /usr/lib64/libsamplerate.so.0.1.8 /usr/lib64/libsamplerate.so

maintenant sous des versions plus récentes de linux, c'est bourré d'erreurs à la compilation, du coup j'ai récupéré la version en développement en tapant

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

sous clementine-player on tape

mkdir build
cd build
cmake ..
make
et enfin en tant que root

make install

quand on lance clementine ça peut planter avec ce résultat

12:22:44.667 INFO  main:329                         Clementine 1.3.1-242-g804d716
12:22:44.703 WARN  Database:274                     Couldn't register FTS3 tokenizer
12:22:44.704 DEBUG Database:444                     Applying database schema update 13 from ":/schema/schema-13.sql"
12:22:44.704 ERROR Database:573                     db error:  QSqlError(1, "Impossible de récupérer la rangée", "unknown tokenizer: unicode")
12:22:44.704 ERROR Database:574                     faulty query:  "CREATE VIRTUAL TABLE songs_fts USING fts3(
  ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,
  tokenize=unicode
)"
12:22:44.704 ERROR Database:575                     bound values:  QMap()
12:22:44.704 ERROR unknown                          Unable to update music library database
Abandon (core dumped)

pour éviter cela on édite le fichier ./src/core/database.cpp et on fait le rajout suivant

  {
    #ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
     QVariant v = db.driver()->handle();
      if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
       sqlite3* handle = *static_cast<sqlite3**>(v.data());
       if (handle) {                                                                                                                                        
        sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, NULL);                                                                         
       }                                                                                                                                                    
      }                                                                                                                                                      
    #endif
    QSqlQuery set_fts_tokenizer("SELECT fts3_tokenizer(:name, :pointer)", db);

on retape make puis en tant que root make install
[Retour haut de la page]

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

Voilà ce que ça donne en image:

pykaraoke

[Retour haut de la page]

kmid

kmid présente l'intérêt de s'interfacer avec KDE. Le site officiel est http://sourceforge.net/projects/kmid2/ on y récupère l'archive qu'on décompresse en tapant

tar xvfj kmid-2.4.0.tar.bz2

Cela donne le répertoire kmid-2.4.0/ Préalablement on installera les packages suivants en tapant la commande ci-dessous

urpmi kdelibs4-devel qt5-devel lib64qt5svg-devel drumstick-devel


on installera également le lien suivant

ln -s /usr/bin/kde4-config /usr/bin/kde-config

on revient au répertoire kmid-2.4.0/ on y tape

./configure.sh
cd build
make

puis en tant que root make install

maintenant kmid a besoin d'un séquenceur midi, j'ai choisi TiMidity++, le site officiel est http://timidity.sourceforge.net/ on y récupèrera l'archive qu'on décompresse en tapant

 tar xvfj TiMidity++-2.14.0.tar.bz2

cela donne le répertoire TiMidity++-2.14.0 dans lequel on tape

./configure  --enable-audio=alsa --enable-alsaseq --enable-gtk --enable-spectrogram --with-x  --enable-interface=ncurses,gtk
make

puis en tant que root make install

on va récupérer maintenant des bibliothèques de son (soundfount), on prendra la biblio libre freepats qu'on trouvera par ici  http://freepats.zenvoid.org/ on récupèrera l'archive qu'on décompresse dans le répertoire /usr/local/share/timidity qu'il faudra créer préalabement

tar xvfj freepats-20060219.tar.bz2

cela donne le répertoire freepats, maintenant on tapera les commandes suivantes

cd freepats
mv * ..
cd ..
rmdir freepats
mv freepats.cfg timidity.cfg

Pour lancer kmid, il faut d'abord lancer le séquenceur TiMidity++ en tapant

timidity -iA -Os

L'option -iA permet d'invoquer le séquenceur ALSA. 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

ALSA a créé 4 ports de séquenceur de 128:0 à 128:4. Vous pouvez lancer TiMidity++ en mode graphique mais ça ne présente aucun intérêt. Pour lancer kmid il suffit de taper kmid. Une fenêtre apparait demandant "veuillez choisir un port MIDI maintenant", je choisis timidity:0.

Quand j'’ouvre un fichier .kar ou .mid, voilà ce que ça donne

kmid

S’il y a un problème d’'accent, il faut mettre comme jeu de caractères Européen de l’ouest (ISO 8859-1). Il y a bien sûr possibilité de créer des listes de lecture.

[Retour haut de la page]

Performous

performous est un logiciel qui regroupe une fonction de karaoke et un clone de Guitar Hero et de Dance Revolution. Pour le karaoke c'est l'objet de ce chapitre, pour guitar hero il peut s'interfacer avec des instruments de musique, pour danve revolution, il faut danser au rythme de la chanson.
Attention par défaut performous ne connait pas le format .kar ou .mid, il ne reconnait que les fichiers au format ultrastar qui est un clone libre de SingStar qu'on peut trouver sur console. Un titre ultrastar est constitué d'un répertoire contenant

- d'un fichier .txt avec les paroles et les notes
- d'un fichier mp3 qui contient la musique
- d'un fichier .jpg pour la couverture
- d'un autre fichier .jpg pour le backgound
- et éventuellement une vidéo

pour plus d'info sur ce format et la manière de le créer je vous invite à visiter ce site http://ultrastar.fr.free.fr/

Le site officiel est https://performous.org/, on récupère les sources en tapant :

git clone git://github.com/performous/performous.git

Auparavant il faudra récuperer la bibliothèque epoxy qui sert à gérer des pointeurs de fonction OpenGL, le site officiel des releases est ici https://github.com/anholt/libepoxy/releases. On décompresse l'archive en tapant:

tar xvfz libepoxy-1.4.3.tar.gz

cela crée le répertoire libepoxy-1.4.3 dans lequel on tape

./configure
make
make install

on installera maintenant cpp netlib qui est une bibliothèque C++ pour programmer des applications réseau. Le site officiel est http://cpp-netlib.org/, je n'ai pas récupéré la dernière archive qui requière boost dans une version supérieure à 1.57, sur ma mageia 5 avec boost 1.54, ça aurait mis du désordre du coup j'ai récupéré la précédente archive stable par ici https://github.com/cpp-netlib/cpp-netlib/releases on décompresse l'archive en tapant

tar xvfz cpp-netlib-cpp-netlib-0.11.2-final.tar.gz

cela donne le répertoire cpp-netlib-cpp-netlib-0.11.2-final et on tape

mkdir build
cd build
cmake ..
make

puis en tant que root

make install

ce n'est pas tout, on installe les bibliothèques suivantes (avec ma mageia 5)

urpmi lib64sdl2.0-devel lib64rsvg2-devel lib64sigc++2.0-devel lib64glibmm2.4-devel lib64xml++2.6-devel portaudio-devel lib64jsoncpp-devel portmidi-devel asio

maintenant il faudra recompiler ffmpeg en rajoutant l'option --enable-avresample

on revient dans le répertoire de performous et on tape

cd performous/
mkdir build
cd build
cmake ..

sur ma mageia 5 il ne trouve pas les includes de JSONCPP j'ai du taper

ccmake .

puis indiquer manuellement le chemin comme ceci

JSONCPP_INCLUDE_DIR              /usr/include/jsoncpp 

on retape cmake ..

voilà le résultat

Building Performous 1.1-117-g39a902f
Detected GCC version 4.8.2

-- Found Gettext
-- Localization enabled: Building and installing .mo files
-- Boost version: 1.54
-- Found the following Boost libraries:
--   thread
--   date_time
--   program_options
--   regex
--   filesystem
--   system
-- Found LibEpoxy 1.3.1
-- Found SDL2
-- SDL2 includes: /usr/include/SDL2
-- Found Freetype
-- Found Glib
-- Found GObject
-- Found Pango
-- Found Cairo
-- Found PangoCairo
-- PangoCairo includes: /usr/include/pango-1.0;/usr/include/pango-1.0;/usr/include/cairo;/usr/include/freetype2;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/include/glib-2.0
-- Found GDK-PixBuf
-- Found LibRSVG
-- LibRSVG includes: /usr/include/librsvg-2.0;/usr/include/cairo;/usr/include/freetype2;/usr/include/gdk-pixbuf-2.0
-- Found LibXML2
-- Found SigC++
-- Found Glibmm
-- Found LibXML++
-- LibXML++ includes: /usr/lib64/libxml++-2.6/include;/usr/include/libxml++-2.6;/usr/include/libxml2;/usr/lib64/glibmm-2.4/include;/usr/include/glibmm-2.4;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/include/sigc++-2.0;/usr/lib64/sigc++-2.0/include
-- Found AVUtil
-- Found AVCodec
-- Found AVFormat
-- AVFormat includes: /usr/local/include;/usr/local/include;/usr/local/include
-- Found AVResample
-- AVResample includes: /usr/local/include;/usr/local/include
-- Found SWScale
-- SWScale includes: /usr/local/include;/usr/local/include
-- Found Z
-- Z includes: /usr/include
-- Found Jpeg
-- Jpeg includes: /usr/include
-- Found Png
-- Png includes: /usr/include
-- Found PortAudio 19
-- PortAudio includes: /usr/include
-- Found Fontconfig
-- Fontconfig includes: /usr/include
-- Found JSONCPP
-- JSONCPP includes: /usr/include/jsoncpp
-- Found Crypto 1.0.1m
-- Found Ssl 1.0.1m
-- Found Cppnetlib
-- Cppnetlib includes: /usr/local/include;/usr/include;/usr/include
-- Crypto includes: /usr/include
-- Ssl includes: /usr/include
-- Internationalization: Enabled
-- Found PortMidi
-- MIDI I/O: Enabled
-- Webcam support: Enabled
-- Webserver support: Enabled
-- Boost version: 1.54
-- Found the following Boost libraries:
--   filesystem
--   program_options
--   system
-- Found LibXML2
-- Found Glib
-- Found SigC++
-- Found Glibmm
-- Found LibXML++
-- Found Z
-- Found Jpeg
-- Found Png
WARNING: One of the following is missing: help2man, gzip; performous man page will not be generated
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/linux/multimedia/performous/build

puis make et en tant que root make install

maintenant on va créer le répertoire /usr/local/share/performous/songs dans lequel vous mettrez vos fichiers ultrastar et voilà ce que ça donne au lancement



et avec une chanson en cours



Pour convertir vos fichiers .kar en fichier ultrastar, ce n'est pas simple, il existe yass qu'on téléchargera par là http://www.yass-along.com/home.html
on le lance en faisant appel à java en tapant dans un shell

java -jar yass-1.7.1.jar

voilà le résultat

AudioSystem and MidiSystem Sequencer found.
Init...
Loading properties: /home/olivier/.yass/user.xml
Mics: default [default]|PCH [plughw:0,0]
Selecting Mic:
Setting Language: fr
Soundbank loaded with instrument: Acoustic Piano
Synthesizer found: Gervill v1.0 OpenJDK
Soundbank ready.
Inited.
Starting...

On va maintenant dans le menu

File->New-> fenêtre Import Melody

vous sélectionnez votre fichier .kar en rajoutant toutes les pistes qui y sont contenues



on rajoute maintenant le fichier mp3 contenant la musique, le plus simple est d'aller sur youtube, il y a un stock de vidéo karaoke, avec audacity vous pouvez récupérer ainsi la musique. On rajoute ensuite les jpg (facultatifs) et voilà le résultat



maintenant vous avez tout un tas de réglage possible, je vous invite à voir ce tuto http://usdx.free.fr/tutorial/?lecon=2



[Retour haut de la page]

OSD Lyrics

OSD Lyrics présente l'intérêt de pouvoir s'interfacer avec Audacious. Le site officiel est https://code.google.com/p/osd-lyrics/ on y récupère l'archive qu'on décompresse en tapant

tar xvfz osdlyrics-0.4.3.tar.gz

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

urpmi lib64notify-devel intltool

on tape ensuite

./configure
make

je bute sur l'erreur suivante

ol_singleton.c:34:1: erreur: unknown type name ‘int64_t’

on édite le fichier ./src/ol_singleton.c et à la fin des includes on rajoute

#include <inttypes.h>

on retape make puis en tant que root

make install

Couplé avec audacious, cela donne cela

osdlyrics

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.

osdlyrics-pref

Le scrolling est également possible

osdlyrics-scrolling

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


[Retour haut de la page]

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 le package chromaprint puis mutagen, qui est un module python pour manipuler les métadonnées audio, qu’on trouvera . On le décompresse en tapant:

tar xvfz mutagen-release-1.38.tar.gz

puis dans le répertoire mutagen-release-1.38 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-1.4.2.tar.gz

cela donne le répertoire picard-release-1.4.2  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

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 (c'est ce qui ne marchait pas avec la version 1.3.2 et qui a justifié mon passage à la version 1.4), 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é.
[Retour à l'accueil]
[Retour haut de la page]