Ou comment remplacer l’affreux iTunes/Music sur macOS avec un combo Open Source un peu geeky. Oui, je suis un vieux con qui a du goût, par conséquent pas de streaming.

Prérequis

  • Homebrew : /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  • Python 3 : brew install python3
  • beets & dépedances : sudo pip3 install beets pillow requests flask
  • mpd : brew install mpd mpc
  • ncmpcpp : brew install ncmpcpp

beets

beets est un gestionnaire de bibliothèque musicale, je ne vais pas trop m’attarder sur ce sujet car j’en ai déjà parlé il y a quelque temps…

Voilà à quoi ressemble mon fichier de config :

paths

La musique est stockée dans /Users/nxm/Music/beets, avec comme structure :
Album Artists/Album(s)/Piste(s)

ftintitle

permet de déplacer automatiquement les feat, ft, etc dans le nom de la piste plutôt que dans le champ artiste, très pratique, mais totalement optionel.

smartplaylist

Génère une playlist dans le dossier playlists de MPD contenant toute la bibliothèque, à chaque fois que de la musique est ajoutée ou supprimée elle est regénérée.

mpdupdate

Permet de mettre à jour MPD à chaque fois que la bibliothèque musciale change.

MPD

MPD est un lecteur audio en ligne de commande. C’est un daemon, il tourne en arrière plan et pour interagir avec il faut utiliser un client, comme ncmpcpp.

Voici mon fichier de config placé dans /Users/nxm/Music/mpd/mpd.conf :

Ici comme dossier j’indique le même dossier que pour beets.

Pour lancer MPD :

/usr/local/bin/mpd /Users/nxm/Music/mpd/mpd.conf

ncmpcpp

ncmpcpp est un client en ligne de commande pour MPD.

Voici la config, qui se trouve typiquement dans ~/.ncmpcpp/config :

Le point important c’est de faire pointer mpd_music_dir sur le même chemin que dans la config de MPD.

Après reste plus il ne reste plus qu’à exécuter :

ncmpcpp
ncmpcpp 1
ncmpcpp 2

Autre Apps

Si la ligne de commande c’est pas votre truc, il existe des client graphiques pour MPD, comme cantata.

Conclusion

Conso mémoire MPD
Conso mémoire Music

650 Mo pour lire de la musique (60x plus que MPD), pas mal, surtout au prix de la mémoire chez Apple.

Conso CPU MPD
Conso CPU Music

La conso CPU de Music est légèrement plus élevée aussi.

Bonus 1 : Contrôle avec Alfred

Je possède une license d’Alfred, du coup je me suis fait un workflow déclenché via un raccourci clavier pour mettre en pause / lecture la musique. Vous pouvez bien entendu en créer d’autres, du type piste suivante / précédente, etc…

Alfred 1
Alfred 2

Bonus 2 : Synchronisation iOS

Si vous avez l’habitude d’utiliser iTunes/Music pour synchroniser vos musiques sur votre iDevice, c’est toujours possible. Un simple glisser/déposer de la playlist globale sur l’app (all.m3u) et toutes vos musiques seront indéxées. Reste plus qu’à synchroniser votre device comme avant.