Discussione Ufficiale Discussione Gentoo Ecco come utilizzo MPD

Una Discussione Ufficiale punta a raccogliere tutte le informazioni su un argomento o un fatto di attualità, con costanti aggiornamenti da parte del creatore e dei partecipanti.

nfvblog

Moderatore
9 Dicembre 2021
668
66
322
450

Ecco come utilizzo MPD​

1672085037300.png

1    Introduzione

Visto che mi serviva un buon Music player locale, ho scelto una soluzione che utilizzavo da Bambino/inizio adolescenza, infatti, avendo all'epoca un catorcio di eeepc da 10" con una lambretta mono-core che al massimo in modalità prestazioni arrivava ad 1Ghz sotto la scocca diciamo che la soluzione era scontata, se volevo avere una buona qualità di riproduzione e anche poter magari utilizzare Writer nel frattempo per questioni didattiche ero costretto ad adoperare una configurazione MPD + il sempre verde e valido ncmpcpp che oltre ad essere uno scioglilingua è un interfaccia per poter utilizzare in modo abbastanza comodo il tutto, pensato per essere eseguita da riga di comando in stile ncurses, ovviamente andando aventi con l'utilizzo ho aggiunto un altro piccolo software chiamato mpc per poter gestire direttamente tramite shortcuts il tutto senza dover fare zapping tra le finestre. Il bello di questi software è che sono abbastanza semplici da configurare e che sono molto personalizzabili, per di più essendo MPD un demone pensato per lavorare anche a lato network lo si può utilizzare anche in rete locale o in caso di possesso di un indirizzo di uscita statico si può utilizzare anche fuori casa.

1.1    Perché ho questa necessità?

Io posseggo tanti Album originali in formato CD e Vinile e quindi posso avere anche la versione flac ad alta fedeltà dello stesso brano, cosa che con gli odierni sistemi di streaming musicale ancora non è possibile. Quindi la scelta migliore è avere una copia di backup di tutti i CD in una cartella su una hard disk e poi riprodurli sequenzialmente, operazione legale in quanto io posseggo la copia fisica degli stessi, tra cui anche del singolo mostrato nella foto "Bela Lugosi's Dead" dei Bauhuas in copia rimasterizzata in cd della fine degli anni 80'.

1.2    MPD vantaggi e svantaggi

MPD è un servizio pensato per sistemi Unix e Unix-like, ha il pregio senza ombra di dubbio di essere leggero e pratico per gli utilizzi anche remoti del servizio, ma ha il difetto di essere si semplice da configurare ma non semplicissimo, un utente alle prime armi si potrebbe arrendere al primo errore o sbaglio che compia magari nel settare il server audio oppure per un errore di sintassi all'interno del file di configurazione che impedisce l'avvio del suddetto programma.
Ovviamente un utente Linux sarà in grado di superare facilmente questo scoglio senza dover manco bestemmiare troppo.

1.2.1    Ncmpcpp

Ha un file di configurazione semplice e anche appena tirato fuori dalla scatola funziona, questo è il suo pregio anche se consiglio di dargli un minimo di configurazione dove vi è possibile.

1.3    Installazione

1.3.1    Debian e Ubuntu

Bash:
sudo apt install mpd mpc ncmpcpp

1.3.2    Arch Linux

Bash:
sudo pacman -S mpd mpc ncmpcpp

1.3.3    Gentoo Linux

Bash:
sudo emerge -av mpd mpc ncmpcpp
Anche se in questo caso un occhiata alla wiki non fa male, visto che sono presenti delle mask da gestire.

2    Configurazione

Visto che comunque ho dovuto dargli una dritta per essere utilizzabile nel modo migliore possibile ho creato dei file di configurazione che risultano disponibili su Github. Ovviamente qui di seguito ci sarà il commento del codice.

2.1    MPD

Configurazione Apache:
# Recommended location for database
db_file            "~/.config/mpd/database"

# If running mpd using systemd, delete this line to log directly to systemd.
log_file           "syslog"

# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
music_directory    "~/Musica"

# Uncomment to refresh the database whenever files in the music_directory are changed
#auto_update "yes"

# Uncomment to enable the functionalities
playlist_directory "~/.config/mpd/playlists"
pid_file           "~/.config/mpd/pid"
#state_file         "~/.config/mpd/state"
#sticker_file       "~/.config/mpd/sticker.sql"

# frutto il server audio pipewire che è quello più comodo al momento.
audio_output {
        type            "pipewire"
        name            "PipeWire Sound Server"
}

# coordinate per la generazione del grafico per il visualizzatore audio.
audio_output {
    type                    "fifo"
    name                    "my_fifo"
    path                    "/tmp/mpd.fifo"
    format                  "44100:16:2"
}

2.2    Ncmpcpp

In questo caso semplicemente vado a dare una direttiva sul tipo di grafico che voglio su visualizzatore e anche sui caratteri che devono andare a schermo, ho deciso di fare un interfaccia bella colorata e infatti, per chi ha un occhio un po allenato noterà dei comandi che tipicamente vengono utilizzati per definire i suddetti, ovviamente ho modificato l'aspetto del cursore che indica il tempo di riproduzione di un brano da "=>" di default ad un più fine ad elegante "->".
Configurazione Apache:
visualizer_data_source = "/tmp/mpd.fifo"
visualizer_output_name = "my_fifo"
visualizer_in_stereo = "yes"
visualizer_type = "spectrum"
visualizer_look = "*|"
execute_on_song_change = songinfo
song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f}
song_library_format = {%n - }{%t}|{%f}
alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
current_item_prefix = $(cyan)$r$b
current_item_suffix = $/r$(end)$/b
current_item_inactive_column_prefix = $(magenta)$r
current_item_inactive_column_suffix = $/r$(end)
playlist_display_mode = columns
browser_display_mode = columns
progressbar_look = ->
media_library_primary_tag = album_artist
media_library_albums_split_by_date = no
startup_screen = "media_library"
display_volume_level = no
ignore_leading_the = yes
external_editor = emacs
use_console_editor = yes
empty_tag_color = magenta
main_window_color = white
progressbar_color = black:b
progressbar_elapsed_color = blue:b
statusbar_color = red
statusbar_time_color = cyan:b
 
  • Mi piace
Reazioni: Conti e haxo