epespad

Casi todo sobre MPD

Casi todo sobre MPD-Si te gusta escuchar música sin demasiados adornos y con bajo consumo de recursos,entonces el daemon mpd es una buena alternativa.

Los daemos o demonios, son procesos que funcionan en segundo plano y no cuentan con interfaz, tanto gráfica como textual.Esto permite que su ejecución requiera escaso uso de recursos del sistema.En este caso ,iniciaremos el daemon como un proceso normal en lugar de incluirlo en init.d.Muchas veces tuve inconvenientes al iniciarlo como daemon ,en varias ocasiones no se carga de manera adecuada dependiendo del entorno de escritorio que utilicé.

A modo de complemento y gracias al usuario @Goldmund2011 cabe remarcar detalles muy significativos sobre MPD que van mas allá de su bajo peso y consumo de recursos:


-Calidad: mpd es de lo mejor que hay en términos absolutos para reproducir música (así, sin medias tintas) Comparable solamente a reproductores 'audiófilos' de Windows como el JRiver Media (de pago y que aún así deben hacer un 'bypass' -del kmix- mediante drivers específicos: kernel streaming, ASIO o WASAPI. Aquí habría que hacerlo sobre el mixer de ALSA, cosa que al parecer es bastante sencilla de hacer) o de Mac (Audirvana, Pure Music, también de pago...)
La diferencia está en que al no necesitar un sistema gráfico, entre otras cosas, nos evitamos tener un montón de servicios corriendo en segundo plano que puedan afectar la integridad del sonido.
Además las últimas versiones son plenamente compatibles con el estándar DoP (transmisión datos DSD mediante cables USB, usando como 'portadora' una señal PCM de 24/176.4)
Prueba de la excelencia del MPD son los fabricantes de componentes de Hi-End que lo usan como reproductor: Bryston, Auraliti, la versión modificada de Vortexbox que usa Sonore, etc, etc...
Además de distribuciones Linux específicas para música como la ya nombrada Vortexbox y la muy audiófila y completamente 'headless' Voyage mpd (al parecer difícil de configurar, pero sin duda el sueño del audiófilo)
Algo de información sobre esto: Configuring MPD for Bit Perfect Playback with an external DAC, aunque en particular no considero necesaria una tarjeta de sonido interna para enviar los datos PCM al DAC. Con una interfaz USB específica para audio y un convertidor D/A usb asíncrono tendríamos más que suficiente (probablemente uno de los 2 o 3 mejores dac's en términos absolutos Emm Labs dac2x Aclaro que este último componente está fuera de mi alcance (y de la mayoría de los mortales) pero demuestra que es posible lo mejor de lo mejor a partir de un sistema Linux


La interfaz a modo de texto para controlar el daemon ,via terminal ,es mpc.
Una de las interfaces gráficas para el daemon mpd es sonata y es la que instaleremos en nuestro caso.


musica-Si encambio sos de los que disfrutan de un reproductor pesado y lleno de boludeces te recomiendo este:

http://windows.microsoft.com/es-ES/windows/products/windows-media-player


Lo primero que debemos hacer será instalar: mpd,sonata,mpc


Debian/Ubuntu/Linux Mint/derivadas:



# aptitude install mpd mpc sonata python-mpd



Arch Linux:



# pacman -S mpd mpc sonata python-mpd


Fedora:



# yum install mpd mpc sonata python-mpd


Gentoo:



# emerge mpd mpc sonata python-mpd



Una vez instalados los paquetes, transferimos el archivo de configuración de muestra a nuestra home, de este modo como usuario normal (no como root!):


zcat /usr/share/doc/mpd/examples/mpd.conf.gz > ~/.mpdconf



Crean la carpeta oculta mpd:


mkdir ~/.mpd



Editamos el archivo de configuración con nuestro editor favorito (gedit,kate,nano,vi,etc) en mi caso uso nano:

nano ~/.mpdconf


Vamos a cambiar las rutas que vienen por defecto para que esten dentro de nuestra home y sean accesibles a nuestro usuario.Por defecto estan asignadas a root.

Entonces cambiamos el directorio de música desde /var/lib/mpd/music a la ruta a tu carpeta de música en tu home,ej:

~/music (fijense el nombre exacto de sus directorios de música respetando mayúsculas,en mi caso la carpeta es music)

Cambiamos el resto de las rutas:


'/var/lib/mpd' lines a ~/.mpd
'/var/lib/mpd/tag_cache' a ~/.mpd/tag_cache'
'/var/lib/mpd/mpd.log' a ~/.mpd/mpd.log
'/var/lib/mpd/pid' a ~/.mpd/pid
'/var/lib/mpd/state' a ~/mpd/state



En 'General music daemon options' commentá la linea que comienza con user(ponés un signo # al principio de la línea) y comentás las siguientes , si no las tenés agregás estas descomentadas :

'#auto_update "yes"'


'#auto_update_depth "3"'



Ahora, por defecto estan descomentadas la líneas correspondientes a la salida de audio Alsa:

audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
format "44100:16:2" # optional
}



Si usan alsa lo dejan tal cual esta.

Si usan pulseaudio deben comentar las de alsa y descomentar las de pulseaudio

Para que mpd no inicie como demonio lo que tenemos que hacer es editar :

# nano /etc/default/mpd


Cambian en valor true a false en esta línea,quedando así:

START_MPD=false


Para iniciar el proceso abren un terminal o desde ejectutar (alt+f2) escriben:

dijo:mpd

Ahora pueden iniciar sonata (modo grafico)


terminal


ó

mpc (modo texto mediante consola) Para mas información sobre mpc :man mpc mpc help



Mpc es un buen cliente para mpd pero es algo primitivo.Se preguntarán para que les hice instalar mpc entonces.

Nos resultará muy útil si queremos asignar atajos de teclado y para controlar el demonio en especial para quienes utilizan LXDE Openbox ,Fluxbox o algún otro manejador de ventanas.De este modo configuramos las teclas multimedia para LXDE/Openbox ,siguen el siguiente enlace:


http://supra-net.org/tutoriales/configurar-teclado-multimedia-en-lxde/

El cliente que yo utilizo,por consola, es ncmpcpp el cual esta buenísimo ,salvo por el nombre que le pusieron...parecen las siglas de la ex-Union Soviética...aca una captura:


GNU


Lo recomiendo en especial porque es muy completo y posee:


*Editor de tags
*Descarga de letras
*Interfaz personalizable
*Editor de listas de reproducción
*Visualizaciones


Lo mejor de mpd es que podes controlarlo de diversas maneras: mediante consola o terminal,desde la gráfica y a través de internet.Además posee muchos front-ends (clientes)

Como es extremadamente flexible y personalizable ,también lo podes adaptar a tu Conky de este modo:
El archivo de configuración lo pueden encontrar en '~/.conky' (si es que usan conky).
Aquí pueden ver algunas de sus variables:

http://conky.sourceforge.net/variables.html

Agregando la siguientes líneas (a modo de ejemplo) podrán disfrutar de mpd a través de conky

${if_mpd_playing} ${hr}
$mpd_artist
$mpd_album
${mpd_title 15}
$mpd_elapsed/$mpd_length
$mpd_status

${mpd_bar 5,180}
${execi 2 ~/.config/conky/mpd-albumart.py}
${image /tmp/mpd.jpg -s 80x80 -p 100,349 }
$endif



El siguiente script es para que nos muestre la carátula del álbum.Crean mpd-albumart.py en la ruta ~/.config/conky/mpd-albumart.py.

Abrimos :

nano ~/.config/conky/mpd-albumart.py


en el archivo vacio que aparece pegamos lo siguiente:

#! /usr/bin/env python

import sys,mpd,os,socket

musiclocation = '~/music' #location of music
artlocation = '~/.mpd/covers' #where you want albumart storing
tmp_path = '/tmp/mpd.jpg' #location for temporary file so conky can find it

musiclocation = os.path.expanduser(musiclocation)
artlocation = os.path.expanduser(artlocation)

client = mpd.MPDClient()
try:
client.connect("localhost", 6600)
except socket.error:
sys.exit(1)

song = client.currentsong()
artist = song['artist']
album = song['album']

covername = os.path.join( artlocation, artist+'-'+album+'.jpg')
covername = covername.replace(' ','_')

if covername == os.path.realpath(tmp_path): # already have correct album cover
sys.exit(0)

try:
os.remove(tmp_path)
except OSError: pass

if os.path.basename(covername) in os.listdir(artlocation):
os.symlink(covername, tmp_path)

else:
from urllib import FancyURLopener
class MyOpener(FancyURLopener): version = ''
try:
s = MyOpener().open('http://www.amazon.com/gp/search/keywords=%s+%s'%
(artist.replace(' ','+'),album.replace(' ','+'))).read()

import re
link = re.findall('http://ecx.images-amazon.comS*.jpg',s)[0]
pic = MyOpener().open(link).read()
open(covername ,'w').write(pic)
os.symlink(covername, tmp_path)
except IOError:



Guardamos y cerramos.

Le damos permisos de ejecución:

chmod +x ~/.config/conky/mpd-albumart.py



sonata


Espero que les sirva y si quieren añadir alguna información extra para completar el post ,será con gusto bienvenida.

7 comentarios - Casi todo sobre MPD

ChamberDoor
En cuanto tenga un tiempito lo veo. Yo uso audacious, que me encanta porque es re liviano.
+10
kornrock1
hahahaha XD

lo mejor es el que pusiste el link boludo del wmp :

:linux Rullez:
ElMagno90
Uso MOC pero la verdad, el MPD tiene muy buena pinta y siempre le tuve ganas. Excelente aporte, a favoritos.
nikolatesla1
entré para dejarte puntos solo por el titulo. En la oficina nos encantó el post pero sobre todo nos causó gracia el titulo, casi todo sobre mpd... jajaja que grande, fueron diez amigo, saludos!