# Music Player Daemon

Music Player Daemon (MPD) è un server free e open source per la riproduzione audio. Riproduce file audio, organizza playlist e mantiene un database musicale. Per interagire con esso è necessario un programma client; la distribuzione del server include solo un semplice client a riga di comando.

## Descrizione

MPD lavora in background riproducendo musica dalla sua playlist; i programmi client comunicano con lui per interagire con la riproduzione, la playlist e il database. Non è un programma di riproduzione musicale completo come per esempio Amarok, tale ruolo viene generalmente svolto dai suoi client.
Per mantenere le informazioni di base sui file musicali MPD utilizza un file database flat, una volta avviato il daemon il database viene caricato e mantenuto completamente in memoria. I file musicali vengono aggiunti al database solo quando il comando di aggiornamento viene inviato al server, la riproduzione di file arbitrari è consentita solo per i client locali che sono connessi al server tramite Unix Domain Sockets. MPD non fornisce un editor di tag audio integrato, questa funzionalità può essere gestita dal client o da un software di terze parti.
Il modello client-server offre diversi vantaggi rispetto ai lettori musicali completi: per esempio i client possono comunicare con il server in remoto su una intranet o su Internet, il server può essere un headless computer situato in qualsiasi punto della rete, la riproduzione può continuare senza interruzioni anche quando non si utilizza o si riavvia X. È possibile utilizzare client diversi per scopi diversi, per esempio un client "leggero" lasciato sempre acceso per controllare la riproduzione e un client più completo da utilizzare per le ricerche intensive nel database; inoltre diversi client possono utilizzare lo stesso database, anche in esecuzione simultaneamente, in remoto o con diversi account utente.

## Caratteristiche

MPD dispone di varie funzioni tra cui:
* Può riprodurre diversi formati audio, per esempio FLAC, MP3, Ogg Vorbis, MP4/AAC, Opus, Musepack, wave e in generale ogni altro tipo di file supportato da FFmpeg.
* Controllo remoto di MPD tramite rete (supporto per IPv4 e IPv6).
* Può eseguire lo streaming HTTP di file FLAC, OggFLAC, MP3 e Ogg Vorbis.
* Legge e memorizza nella cache informazioni sui metadati (ID3v1 e ID3v2), commenti Vorbis e metadati MP4.
* Salva, carica e gestisce le playlist in formato M3U.
* Supporto per ALSA, PulseAudio, OSS, JACK, Windows e macOS.
La lista è incompleta, per altre informazioni consultare la relativa documentazione.

### Client

MPD ha una varietà di front-end che comunicano con il server utilizzando un protocollo personalizzato su una connessione TCP. I client di solito implementano diversi tipi di interfacce tra cui l'interfaccia console, un web client o un'interfaccia grafica progettata ad hoc.
Alcuni client forniscono un'interfaccia utente in HTML o AJAX e possono trovarsi sullo stesso computer del server, richiedendo solo l'installazione di un browser sulla macchina client. Per interfacciarsi con MPD esistono librerie che permettono di usare vari linguaggi di programmazione, inclusi C, Python, Ruby, Perl, Lua e Haskell.
Per un elenco completo dei client consultare il relativo Wiki.