# Music Player Daemon

Music Player Daemon (MPD) é um servidor de reprodução de música livre e aberto. Ele reproduz arquivos de áudio, organiza listas de reprodução e mantém um banco de dados de músicas. A fim de interagir com ele, um software cliente é necessário. A distribuição do MPD inclui mpc, um simples cliente de linha de comando.

## Design

O MPD simplesmente é executado no plano de fundo e reproduz músicas de sua lista de reprodução. Programas de cliente comunicam-se com o MPD para manipular a reprodução, a lista de reprodução e o banco de dados. Ele não é um software completo de reprodução de músicas, tal como o Amarok, mas seus clientes podem servir para esse papel.
O MPD usa um banco de dados simples para manter o básico de informações quando não está em execução. Uma vez que o daemon é iniciado, o banco de dados é mantido completamente na memória e nenhum acesso ao disco rígido é necessário para procurar os arquivos de áudio locais. Normalmente, os arquivos de música devem estar abaixo da raiz do diretório de músicas e só são adicionados ao banco de dados quando o comando de atualização é enviado para o servidor. A reprodução de arquivos arbitrariamente só é permitida para os clientes locais que estão conectados ao servidor através de Unix Domain Sockets. O MPD não fornece um editor de tags incorporado; esta funcionalidade é adicionada por clientes ou programas externos, embora existam patches não oficiais para adicionar esta funcionalidade ao servidor.
O modelo cliente–servidor oferece várias vantagens sobre reprodutores "completos" de músicas. Os clientes podem se comunicar com o servidor remotamente através de uma intranet ou da Internet. O servidor pode ser um "computador sem cabeça" (computador feito para ser utilizado sem monitor) localizado em qualquer lugar da rede. A reprodução de música pode continuar sem problemas enquanto não estiver usando o X ou enquanto estiver reiniciando o X. Diferentes clientes podem ser usados para diferentes fins – um cliente leve que é mantido aberto o tempo todo para controlar a reprodução com um cliente mais completo utilizado para intensivas pesquisas no banco de dados. Vários clientes podem usar o mesmo banco de dados, mesmo que executando simultaneamente, lado-a-lado, remotamente ou usando diferentes contas de usuário.

## Recursos

* Toca Ogg Vorbis, FLAC, Opus, WavPack, MP2, MP3, MP4/AAC, MOD, Musepack, arquivos WAV e outros ficheiros suportados pelo FFmpeg.
* Controle remotamente o MPD através de uma rede (suporte à IPv4 e IPv6).
* Reproduz transmissões HTTP de FLAC, OggFLAC, MP3 e Ogg Vorbis.
* Lê e armazena em cache informações de metadados (ID3: ID3v1 e ID3v2), comentários Vorbis e metadados MP4.
* Informações de metadados podem ser procuradas.
* Suporte a buffer para reprodução (impede problemas na reprodução devido à alta carga ou a latência de rede).
* Suporte a crossfading.
* Suporte à pesquisa durante a reprodução.
* Salvar, carregar e gerenciar listas de reprodução (formato M3U).
* Suporte nativo à Zeroconf.
* libsamplerate e conversão de taxa de amostragem nativa.
* Suporte para o ALSA, PulseAudio, OSS, MVP, JACK, Windows e macOS.
* Pode ser usado como uma fonte para uma transmissão Icecast, em Ogg Vorbis e MP3. Outros formatos podem ser convertidos para o formato Ogg/MP3 a qualquer momento antes da saída para o servidor de transmissão.
* Servidor incorporado de transmissão HTTP, capaz de produzir transmissões Ogg Vorbis e MP3 em uma qualidade escolhida.
* Independente de GUI. A música continuará a ser reproduzida mesmo se um front-end ou o servidor X for fechado.

## Clientes

O MPD tem uma variedade de front-ends que se comunicam com o servidor utilizando um protocolo personalizado$^[$ em cima de uma conexão TCP. Os clientes normalmente implementam diferentes tipos de interfaces.

### Console

* mpc (parte do projeto MPD) é uma simples interface de linha de comando para a maioria das funções do servidor.
* ncmpc é um cliente ncurses mais completo similar em conceito ao MOC.
* ncmpcpp é outro cliente ncurses que clona a funcionalidade do ncmpc, mas também inclui novos recursos, como um editor de tags.

### Gráficos

* Ario é baseado em GTK+ e usa abas em sua interface.
* Bragi-MPD é um cliente web HTML5 completo, totalmente client side, capaz de controlar várias instâncias e várias saídas por instância do MPD. A sua funcionalidade além da interface é mantida em um projeto separado chamado MPD.js permitindo a fácil criação de novos clientes.
* gmpc é o mais antigo cliente em gtk+-2, ele oferece muitas maneiras diferentes de explorar a coleção de músicas e de metadados, como as letras, as capas, informações do artista/álbum, imagens de fundo do artista/álbum, artistas similares e mais. O cliente pretende ser rico em recursos, mas ainda leve o suficiente para poder ser mantido em execução constante em um hardware low-end.
* Sonata usa GTK+ para fornecer uma GUI para a reprodução de arquivos e o gerenciamento de listas de reprodução.
* Intelligent Music Player Client (IMPC) usa GTK+ 3.0 e suporta o carregamento de informações relacionadas (artigos, capas, imagens) com as músicas e aprende a classificar conteúdos relacionados.
* Cantata usa Qt 4/5 para gerenciar a biblioteca ou playlists, com extras como editor de tags, busca da Internet por letras de músicas e capas e suporte para dispositivos de armazenamento em massa.
* Qmobilempd fornece um cliente Qt4 especialmente para dispositivos móveis como o Symbian.
* Qmpdplasmoid fornece um cliente diretamente incorporado ao ambiente de trabalho do KDE.
* Gimmix fornece uma interface simples com um pequeno footprint de memória.
* mpdlirc conecta ao MPD através de um controle remoto infravermelho.
* netjukebox é um jukebox web para o MPD, VideoLAN e Winamp/httpQ.
* Ó!O MPD é um cliente baseado em PHP e MySQL.
Clientes simples podem usar o mpc para emitir comandos ao servidor. Alguns clientes fornecem uma interface em HTML ou AJAX e podem estar localizados no mesmo computador que o servidor, necessitando apenas que um navegador seja instalado na máquina do cliente. Existe um cliente implementado como um add-on para Firefox,$^[$ outro como um plugin para o painel do Xfce, outro como uma aplicação para Wii$^[$ e outro como um aplicativo da Windows Store para o Windows 8/Windows RT.