• Gérer sa musique avec mpd et ncmpcpp

    Dans cet article, je vous propose de découvrir ou redécouvrir un trio de logiciels qui va bien pour gérer sa musique : mpd (un démon lecteur de musique en mode serveur), mpc (un client en CLI) et ncmpcpp (un client évolué en ncurses écrit en C++).
    Ces deux paquets sont disponibles dans le dépôt Packman :
    Code:
    zypper ar -f http://packman.inode.at/suse/openSUSE_Leap_42.2 Packman
    zypper install mpd mpclient ncmpcpp
    Note: le nom d'utilisateur, ici sogal, est bien entendu à adapter !

    Configuration du serveur de musique mpd :

    Nous allons nous inspirer de la configuration proposée en exemple :

    Code:
    mkdir ~/.config/mpd
    mkdir ~/.config/mpd/playlists
    cp /usr/share/doc/packages/mpd/mpdconf.example ~/.config/mpd/mpd.conf
    vim ~/.config/mpd/mpd.conf
    Voici, pour exemple, les passages de ma configuration :
    Code:
    grep -v "^#" ~/.config/mpd/mpd.conf
    Code:
    music_directory        "~/Musique"
    playlist_directory        "~/.config/mpd/playlists"
    db_file            "~/.config/mpd/mpd.db"
    log_file            "~/.config/mpd/log"
    pid_file            "~/.config/mpd/mpd.pid"
    state_file            "~/.config/mpd/mpdstate"
    sticker_file            "~/.config/mpd/sticker.sql"
    
    user                "sogal"
    bind_to_address        "localhost"
    port                "6600"
    log_level            "default"
    restore_paused "yes"
    
    input {
            plugin "curl"
    }
    audio_output {
        type        "pulse"
        name        "Pulse MPD Output"
    }
    audio_output {
        type                    "fifo"
        name                    "mpd_fifo"
        path                    "/tmp/mpd.fifo"
        format                  "44100:16:2"
    }
    
    filesystem_charset        "UTF-8"
    Il est surtout important de bien configurer l'emplacement de vos fichiers audio ainsi que la sortie sonore.
    Ici j'utilise Pulseaudio mais la configuration inclus un modèle pour une sortie avec ALSA seul.
    J'ai ajouté une sortie vers un fifo qui nous servira avec ncmpcpp pour activer le visualiseur graphique (oui, oui dans un terminal !).

    Activer mpd en tant que service systemd en espace utilisateur :

    Nous allons configurer le serveur de musique mpd en tant que service systemd en espace utilisateur.
    De la sorte, mpd démarrera avec votre session.

    Code:
    mkdir -p ~/.config/systemd/user
    cp /usr/lib/systemd/system/mpd.service ~/.config/systemd/user
    vim ~/.config/systemd/user/mpd.service
    Code:
    [Unit]
    Description=Music Player Daemon
    
    [Service]
    ExecStart=/usr/bin/mpd --no-daemon /home/sogal/.config/mpd/mpd.conf
    ExecStop=/usr/bin/mpd --kill
    PIDFile=/home/sogal/.config/mpd/mpd.pid
    
    [Install]
    WantedBy=default.target
    Je vous conseille de mettre les chemins absolus dans ce fichier.

    Puis nous démarrons et activons le service :
    Code:
    systemctl --user start mpd
    systemctl --user enable mpd
    Configuration de ncmpcpp :

    Code:
    mkdir ~/.ncmpcpp
    cp /usr/share/doc/packages/ncmpcpp/config ~/.ncmpcpp/
    vim ~/.ncmpcpp/config
    Je vous propose à nouveau ma configuration :
    Code:
    grep -v "^#" ~/.ncmpcpp/config
    Code:
    ncmpcpp_directory = ~/.ncmpcpp
    lyrics_directory = ~/.ncmpcpp/lyrics
    mpd_host = localhost
    mpd_port = 6600
    mpd_connection_timeout = 5
    mpd_music_dir = ~/Musique
    mpd_crossfade_time = 5
    visualizer_fifo_path = /tmp/mpd.fifo
    visualizer_output_name = mpd_fifo
    visualizer_in_stereo = yes
    visualizer_sync_interval = 30
    visualizer_type = ellipse
    visualizer_look = ▮●
    visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
    system_encoding = "UTF-8"
    message_delay_time = 5
    song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
    song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
    song_library_format = {%n - }{%t}|{%f}
    song_window_title_format = {%a - }{%t}|{%f}
    browser_sort_mode = name
    browser_sort_format = {%a - }{%t}|{%f} {(%l)}
    song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
    playlist_show_mpd_host = no
    playlist_show_remaining_time = yes
    playlist_separate_albums = yes
    playlist_display_mode = columns
    browser_display_mode = classic
    incremental_seeking = yes
    seek_time = 1
    volume_change_step = 2
    autocenter_mode = yes
    progressbar_look = =>
    progressbar_boldness = yes
    default_place_to_search_in = database
    media_library_primary_tag = genre
    default_find_mode = wrapped
    header_visibility = yes
    statusbar_visibility = yes
    titles_visibility = yes
    header_text_scrolling = yes
    cyclic_scrolling = no
    fetch_lyrics_for_current_song_in_background = yes
    store_lyrics_in_song_dir = yes
    screen_switcher_mode = playlist, media_library, visualizer
    startup_screen = media_library
    startup_slave_screen = "visualizer"
    startup_slave_screen_focus = no
    locked_screen_width_part = 50
    clock_display_seconds = no
    display_volume_level = yes
    display_bitrate = yes
    display_remaining_time = yes
    mouse_support = yes
    enable_window_title = yes
    external_editor = vim
    use_console_editor = yes
    Ceci me permettra d'obtenir un écran partagé avec, par défaut, l'affichage de ma bibliothèque musicale et du visualiseur.
    Si vous ne voulez pas d'écran partagé, commentez les paramètres relatifs au slave_screen.
    Chez moi, ça donne ça :


    Quelques raccourcis pour bien démarrer :
    • F1 : afficher l'aide ;
    • 1 : playlist ;
    • 2 : navigateur par dossiers ;
    • 3 : moteur de recherche ;
    • 4 : audiothèque (vue en panneaux) ;
    • 5 : éditeur de playlists ;
    • 6 : éditeur de tags ;
    • 8 : visualiseur ;
    • p : mettre en pause ;
    • a : ajouter la sélection à la playlist.


    Exemple de création d'un raccourci clavier pour mpc (mise en pause) :

    Sous KDE :

    Par défaut, la touche p met ncmpcpp en pause. Mais si l'on n'est pas devant, comment faire ?
    C'est là que mpc (du paquet mpclient) est intéressant.
    Nous allons créer un raccourci clavier destiné à mettre mpd en pause. Pour cela, ouvrons les préfèrences système (ici je suis sous KDE) puis Raccourcis et Raccourcis personnalisés et en créer un nouveau :

    Vous pouvez configurer le déclencheur que vous voulez (j'ai mis Ctrl + Alt + Z), la commande à lancer est :
    Code:
    mpc toggle


    Sous Gnome :

    Ici j'ai attribué à la fois Ctrl + Alt + Z et les touches multimédia de mon clavier :


    Edit du 12 janv. 2017 :

    Notifications dans Gnome Shell :

    Pour être notifié des changements de chansons dans gnome-shell, il faut passer un nouveau paramètre de configuration dans ncmpcpp :
    Code:
    execute_on_song_change = "notify-send --hint=int:transient:1 -t 2 -i $HOME/path/to/icon "Music Player Daemon" "$(ncmpcpp -c ~/.ncmpcpp/config --current-song "%a - %t (%b)" 2>/dev/null)""
    Note : l'option -i prend un chemin vers une icône en paramètre.

    Ainsi vous avez de jolies notifications, non persistentes (ne se stockent pas dans le centre de notifications de gnome-shell) :


    Je n'ai pas testé sous KDE.

    Et voilà, j'espère que vous prendrez plaisir à gérer votre musique avec ces outils, notamment ncmpcpp qui est très puissant en terme de possibilité d'affichages différents, de recherche et d'édition (tags) de votre audiothèque.
    Cet article n'est destiné qu'à vous permettre de découvrir et à vous aider à démarrer, je vous conseille de lire tout de même les pages de manuel de ces outils ou les commentaires inclus dans les fichiers de configuration, très simples à comprendre, pour ajuster tout ça aux petits oignons !

    Enjoy !
    Commentaires 10 Commentaires
    1. Avatar de Vigen
      Vigen -
      Citation Envoyé par sogal Voir le message
      Bonsoir,

      Accès restreint?

      Vigen.

    1. Avatar de sobkowiak
      sobkowiak -
      Idem pour moi.
    1. Avatar de tristan
      tristan -
      idem ici
      joyeux noel en passant !
    1. Avatar de sogal
      sogal -
      Bonjour,
      C'est une erreur de ma part, je me suis emmêlé les pinceaux en le publiant.
      C'est corrigé, l'article a été validé et vous devriez y avoir accès à présent.
      Toutes mes excuses.
    1. Avatar de tristan
      tristan -
      pas de problème - merci Sogal
    1. Avatar de Vigen
      Vigen -
      Ne t'excuse pas !!

      Merci pour ton article, et de joyeuses fêtes de fin d'année à tous !!
    1. Avatar de Syvolc
      Syvolc -
      Vous pouvez aussi essayer Cantata comme client pour mpd, il est vraiment super. https://www.linux-apps.com/content/s...content=147733

      Et puis sur smartphone il y a pas mal d'appli pour contrôler votre mpd, ça c'est cool.
    1. Avatar de Vigen
      Vigen -
      Merci pour l'info !!!
    1. Avatar de manchette
      manchette -
      Merci pour ces infos sogal
    1. Avatar de sogal
      sogal -
      EDIT : ajout de la configuration pour avoir les notifications de changements de chansons dans Gnome Shell.