Music Player Daemon (Español)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale.pngEste artículo o sección necesita ser traducido.Tango-preferences-desktop-locale.png

Notas: desactualizada + secciones sin traducir (Discusión en Talk:Music Player Daemon (Español)#)

MPD (Music Player Daemon) es un reproductor de audio que maneja una arquitectura servidor-cliente. MPD se ejecuta en el fondo como un demonio, gestiona listas de reproducción y una base de datos, y hace uso de muy pocos recursos. Para hacer uso de una interfaz gráfica, es necesario un cliente adicional. Más información puede obtenerse en su página web.

Procedimiento de Instalación del demonio

Instale el paquete mpd, o la versión en desarrollo mpd-gitAUR.

Instrucciones de Configuración

Para más información de la configuración de MPD, por favor visite https://mpd.wikia.com/wiki/Configuration

Linea de Tiempo del Comportamiento Habitual de MPD

  • MPD es iniciado al cargar el sistema operativo por medio de /etc/rc.conf, incluyéndole en el apartado DAEMONS. (O, esto puede ser hecho manualmente ejecutando /etc/rc.d/mpd start con privilegios de root).
  • Al ser iniciado MPD como root, leerá el archivo /etc/mpd.conf.
  • MPD lee la variable usuario en el archivo /etc/mpd.conf, y cambia de root a este usuario.
  • MPD continúa leyendo el contenido del archivo /etc/mpd.conf y se configura de acuerdo a este.

Recuerde que MPD cambia el usuario de root a aquel mencionado en el archivo /etc/mpd.conf. Siendo asi, el uso de "~" en el archivo de configuracion hace referencia al directorio home del usuario, y no al directorio de root. Podria ser de utilidad cambiar todos los "~" a "/home/username" para prevenir cualquier confusion sobre este aspecto del comportamineto de MPD. Si no se espeifica un usuario, cuando este se ejecute lo hara como el usuario actual.

Correcta Configuración de Sonido

Para que la salida de audio funcione, asegúrese de haber configurado la tarjeta de sonido y el mixer correctamente. Vea ALSA. No olvide activar los canales requeridos en alsamixer, incrementar el volumen y guardar los cambios con alsactl store. Vea ~/.mpd/error si aún no funciona.

Asegúrese que su tarjeta pueda hacer mezclas por hardware (la mayoría de ellas pueden, incluidas aquellas integradas de la board), si no, esto podría traer problemas con múltiples reproducciones de sonido. Por ejemplo, Mplayer no podría reproducir sonido mientras el demonio se esté ejecutando, mostrando un mensaje de error indicando que el dispositivo se encuentra ocupado.

Configuracion General

  • Como root, verifique si /etc/mpd.conf existe y elimine el archivo en caso de que exista. Esto es hecho por seguridad.

MPD viene con un archivo de configuración de ejemplo, disponible en /usr/share/doc/mpd/mpdconf.example. Este archivo contiene abundante información acerca de la configuración de MPD, y contiene valores predeterminados para el mixer, que simplemente pueden ser descomentados.

  • Como root, copie este archivo de ejemplo a /etc/mpd.conf.
# cp /usr/share/doc/mpd/mpdconf.example /etc/mpd.conf

Para editar el archivo, como root:

# SUEDITOR /etc/mpd.conf

Edite /etc/mpd.conf para que se vea de la siguiente manera.

music_directory       "/home/usuario/música"         # Su directorio de música.
playlist_directory    "/var/lib/mpd/playlists"
db_file               "/var/lib/mpd/db"
log_file              "/var/log/mpd/mpd.log"
error_file            "/var/log/mpd/mpd.error"
pid_file              "/var/run/mpd/mpd.pid"
state_file            "/var/lib/mpd/mpdstate"
# Ediciones a la dirección y el puerto causan problemas en mpd-0.14.2 es preferible dejarlos
# comentados.
# bind_to_address       "127.0.0.1"
# port                  "6600"

Las direcciones de los archivos son los que por defecto se crean al istalar MPD, pero se pueden crear en otro lugar, por ejemplo si se desea tener todos los archivos bajo una misma carpeta.

  • Ahora como root, cree los archivos especificados en {Filename|/etc/mpd.conf}}, si los directorios no existen también deben ser creados.
# touch /var/lib/mpd/db
# touch /var/lib/mpd/mpdstate
# touch /var/run/mpd/mpd.pid
# touch /var/log/mpd/mpd.log
# touch /var/log/mpd/mpd.error
  • Si su colección musical está contenida en múltiples directorios, puede crear enlaces simbólicos en /var/lib/mpd y luego dirigir la variable 'music_dir' en mpd.conf a el directorio que contiene los enlaces.
  • Crear la base de datos ahora es realizado por medio de la opción "update" del cliente, por ejemplo, si ejecuta ncmpcpp, por medio de la tecla 'U'.
    • El método anterior, crear la base de datos de MPD como root (# mpd --create-db), es obsoleto.

Configuración Por Usuario

MPD no necesita ser iniciado con permisos de root. La única razón por la cual MPD necesita ser iniciado como root (siendo llamado por medio de /etc/rc.conf) es porque los archivos y directorios mencionados por defecto en el archivo de configuración son propiedad de root (el directorio /var). Una menos común, pero quizás mas sensible configuración, consiste en hacer que MPD trabaje con archivos y directorios que sean propiedad de un usuario normal. Ejecutar MPD como un usuario normal tiene varias ventajas:

  1. Puede manejar un solo directorio ~/.mpd (o cualquier otro directorio bajo /home/usuario) para todos los archivos de configuración de MPD
  2. No hay errores de lectura/escritura
  3. llamado más flexible a MPD haciendo uso de ~/.xinitrc en vez de incluir MPD en la sección DAEMONS en /etc/rc.conf.

Los siguientes pasos indican como iniciar MPD como un usuario normal. Debe realizar todos los pasos como usuario.

Nota: Este método no funcionará si múltiples usuarios desean acceder a MPD.
  • Copie el contenido del archivo de configuración por defecto de MPD, ubicado en /usr/share/doc/mpd/mpdconf.example a su directorio home.
cp /usr/share/doc/mpd/mpdconf.example ~/.mpdconf
  • Siga los pasos de la configuración anterior, ignorando la primer parte, que hace referencia a copiar el archivo de configuración a /etc/mpd.conf.
  • Cree todos los archivos necesarios en "/home/user/.mpd/":
"~/.mpd/playlists"
"~/.mpd/db"
"~/.mpd/mpd.log"
"~/.mpd/mpd.error"
"~/.mpd/mpd.pid"
"~/.mpd/mpdstate"
Nota: No se olvide de especificar el nombre de usuario y grupo
  • Haga que MPD inicie al arranque de sesión (esto depende de su entorno de escritorio para su correcta configuracion).
Nota: No tiene que poner un "&" al final de la linea, dado que MPD automáticamente se iniciará como demonio.

Finalmente, elimine MPD de la sección DAEMONS en /etc/rc.conf, ya que no será ejecutado como root nunca más.

Configuración Multi-MPD

Útil si desea ejecutar un servidor icecast, por ejemplo. Si desea un segundo demonio MPD (ej., con una salida icecast para compartir su música a través de una red) que haga uso de la música y listas de reproducción del primero, simplemente copie el archivo de configuración anterior y cree uno nuevo (ej., /home/username/.mpd/config-icecast), y solo cambie los parámetros de log_file, error_file, pid_file, y state_file (ej., mpd-icecast.log, mpd-icecast.error, y demás); hacer uso de los mismos directorios de música y listas de reproducción asegurará que este segundo demonio MPD hará uso de la misma colección musical del primero (ej., crear y editar una lista de reproducción bajo el primer demonio afectará también al segundo demonio, de modo que no sea necesario crear la misma lista de nuevo para el segundo demonio). Finalmente, ejecute este segundo demonio por medio de su archivo ~/.xinitrc. (Asegúrese de utilizar un numero de puerto diferente, para evitar conflictos con su primer demonio MPD).

Instalando Clientes para MPD

Los mas populares son:

Instálelos usando:

# pacman -S mpc
# pacman -S ncmpc
# pacman -S ncmpcpp
# pacman -S pms
# pacman -S ario
# pacman -S sonata
# pacman -S gmpc
# pacman -S qmpdclient

Más Opciones

Envío de Canciones a Last.fm

Para enviar los títulos de las canciones hacia Last.fm con MPD existen varias alternativas.

Mpdscribble

mpdscribble es otro demonio, pero sólo está disponible en AUR[enlace roto 2020-08-04]. Suele ser la mejor alterativa, ya que sería el scrobbler semi-oficial de MPD y, además, usa el nuevo "idle" en MPD para mejorar el scrobbling. No es necesario el acceso root para su configuración, porque no necesita realizar ningún cambio dentro del directorio /etc. Para más información, se puede visitar sitio oficial de Mpdscribble[enlace roto 2020-08-04].

Para instalar mpdscribble, solo instálelo desde AUR y luego, sin ser root, haga:

  • $ mkdir ~/.mpdscribble
  • Cree el archivo ~/.mpdscribble/mpdscribble.conf y añada lo siguiente:
username = <su nombre de usuario de last.fm>
password = <Número de verificación md5 de su password de last.fm> # Se genera ejecutándo "echo -n password | md5sum"
host = <su mpd host> # por defecto $MPD_HOST o localhost
port = <su mpd port> # por defecto $MPD_PORT o 6600
log = ~/.mpdscribble/mpdscribble.log
journal = ~/.mpdscribble/mpdscribble.cache
verbose = 2
sleep = 1
musicdir = <su directorio de música>
  • Añada mpdscribble a su ~/.xinitrc.

Sonata

La forma más sencilla, pero implica usar una interfaz gráfica, es usar Sonata. Este programa es un frontend gráfico para MPD, que incluye de serie el soporte para scrobbling hacia Last.fm dentro de sus opciones. El punto negativo, es que como Sonata no realiza cache de los temas reproducidos, se necesita tener una conección activa durante la reproducción para que el scrobble se realice.

Lastfmsubmitd

lastfmsubmitd es un demonio disponible dentro del repositorio "community". Para instalarlo, primero edite /etc/lastfmsubmitd.conf y luego añada lastfmsubmitd y lastmp a la sección DAEMONS dentro de su /etc/rc.conf.

Reproducción Desde Last.fm

Reproducción Nativa

Desde la versión 0.16 MPD tiene un método para reproducir desde last.fm[enlace roto 2020-08-04].

/etc/mpd.conf
playlist_plugin {
       name            "lastfm"
       user            "my_username"
       password        "my_password"
}

Por Ejemplo:

$ mpc load "lastfm://artist/Beatles"
Reproducir Desde Last.fm con Lastfmproxy

Lastfmproxy es un script escrito en python que permite reproducir música desde last.fm hacia cualquier otro reproductor. Para instalarlo lastfmproxyAUR[enlace roto: package not found] desde AUR debe editar /usr/share/lastfmproxy/config.py.

Nota: El scrip se intslala en un directorio de solo lectura, pero este requiere lectura/escritura, puede mover /usr/share/lastfmproxy a su directorio Home.

Para iniciar lastfmproxy debe ir a http://localhost:1881/ en su navegador. Para gregar una estacion a last.fm navegue desde http://localhost:1881/ seguido por lastfm:// (por ejemplo: http://localhost:1881/lastfm://globaltags/punk). Vuelva a http://localhost:1881/ y descargue el archivo m3u seleccionando el enlace de Start Listening. Sólo tiene que añadirlo a su biblioteca de música.

No reanudar play al inicio

Esta opción ha sido recientemente añadida a mpd git por Martin Kellerman, ver commits b57330cf75bcb339e3f268f1019c63e40d305145 y 2fb40fe728ac07574808c40034fc0f3d2254d49d. Desde Septiembre 2011, esta opción todavía no ha llegado en una versión de mpd en los repositorios oficiales. Si se necesita soporte para esta función, compruebe las siguientes alternativas

Instalar mpd desde el AUR

Este es el mejor método disponible actualmente, pero está actualmente (a Abril 2011) activado en la versión de git. Instala mpd-gitAUR desde el AUR y añade restore_paused "yes" a tu archivo mpd.conf.

Si tienes problemas conectado tu cliente a mpd-gitAUR, comprueba #Otros errores intentando conectar con MPD con un cliente

Método 1

Si no quieres que MPD reanude la reproducción siempre al inicio del sistema, pero quieres preservar el resto de información del estado, añade las siguientes lineas a tu archivo /etc/rc.d/mpd:

Método 1.1

Método simple y funcional (desactiva la reproducción automática al inicio del demonio mpd):

 start)

...

     mpc -q pause #add this line only
     add_daemon mpd
     stat_done
Método 1.2

Este método ha sido descrito aquí anteriormente al Método 1.1, y es mucho mas complicado:

   ...
   stat_busy "Starting Music Player Daemon"
   # always start in paused state
   awk '/^state_file[ \t]+"[^"]+"$/ {
       match($0, "\".+\"")
       sfile = substr($0, RSTART + 1, RLENGTH - 2)
   } /^user[ \t]+"[^"]+"$/ {
       match($0, "\".+\"")
       user = substr($0, RSTART + 1, RLENGTH - 2)
   } END {
       if (sfile == "")
               exit;
       if (user != "")
               sub(/^~/, "/home/" user, sfile)
       system("sed -i \x27s|^\\(state:[ \\t]\\{1,\\}\\)play$|\\1pause|\x27 \x27" sfile "\x27")
   }' /etc/mpd.conf
   /usr/bin/mpd /etc/mpd.conf &> /dev/null
   ...

Esto cambiará el estado del reproductor a "paused", si fue interrumpido en reproducción. Después, necesitas que este archivo sea preservado, de forma que actualizaciones de MPD no borren la edición. Añade (o edita) esta linea a tu /etc/pacman.conf:

NoUpgrade = etc/rc.d/mpd

Método 2

Otro método más simple sería añadir mpd a tu array de demonios en rc.conf, y añadir mpc stop o mpc pause a /etc/rc.local.shutdown y a /etc/rc.local. (Recuerda que necesitas mpc instalado para este método.

Añadir solo el comando en {ic|/etc/rc.local}} no puede garantizar que mpd no reproduzca nada, ya que puede haber una pausa antes de que el comando de pausa sea ejecutado. Por otra parte, si solo añades el comando a /etc/rc.local.shutdown, eso asegurará que mpd no reproducirá nada, siempre y cuando apagues correctamente tu sistema. A pesar de que sea redundante, añadirlo a /etc/rc.local serviría como una garantía para esas (supuestamente) raras ocaciones en las que no apagues el sistema correctamente.

Método 3

La idea general es pedirle a mpd que pause la música tras el log out del usuario, de forma que mpd mantendrá su estado de pausa tras un reinicio. Mandar tal señal puede ser logrado utilizando mpc, la interfaz de linea de comandos para MPD.

Los usuarios de GDM pueden añadir /usr/bin/mpc pause a /etc/gdm/PostSession/Default (asegúrate de añadirlo antes de exit 0):

Los no usuarios de GDM pueden utilizar el método de su propio gestor de login para ejecutar la linea en el logout.

MPD y Alsa

A veces, con el uso de otros programas de audio, por ejemplo: páginas web que contienen applets de Flash, MPD se vuelve incapaz de reproducir (hasta que se reinicie). El error aparece en los log's de MPD de esta forma:

Error opening alsa device "hw:0,0": Device or resource busy

Las razones de esto pueden ser:

  • La placa no soporta la mezcla de audio por hardware (use el plug-in dmix )
  • La configuración predeterminada de ALSA no es adecuada.

Para mas detalles puede ir a este link.

El problema se puede resolver editando:

mpd.conf
audio_output {
        type                    "alsa"
        name                    "Sound Card"
        options                 "dev=dmixer"
        device                  "plug:dmix"

Para que los cambios tengan efecto debe reiniciar MPD.

Alto uso de CPU con Alsa

Cuando se utiliza MPD con ALSA, los usuarios pueden experimentar un elevado consumo de CPU (alrededor de 20-30%). Esto es causado por la mayoría de las placas de audio que soportan 48kHz y la mayoria de los temas son en 44kHz, lo que obliga a MPD para volver a muestrear (resample). Esta operación requiere de muchos ciclos de CPU.

En la mayoría de las veces se soluciona indicándole a MPD que no realice resample. Agregue la linea auto_resample "no" en audio_output. Con esto disminuye la calidad de sonido.

mpd.conf
audio_output {
   type			"alsa"
   name			"My ALSA Device"
   auto_resample	"no"
}

Puede que no allá un cambio significativo pero agregando use_map "yes" disminuye aun mas el uso de CPU:

mpd.conf
audio_output {
   type			"alsa"
   name			"My ALSA Device"
   use_mmap		"yes"
}

En Tuning MPD puede encontrar mas información.

Ejemplo de Configuración: Salida con 44.1 KHz a una profundidad de 16 bit, con múltiples programas

Este formato es un estándar CDA. ALSA permite la reproducción de mas de un programa con dmix — cuyo algoritmo de resample es inferior — ademas dmix, por defecto, realiza resamples todo aquello por debajo de 48 KHz. Ademas se pueden escuchar chasquidos sino se aplica esta configuración.

Esta configuración hace que todo (si es necesario) se vuelva a muestrear (resample) a este formato, como los DVD de video o la televisión, que generalmente es de 48 KHz. Pero no hay forma conocida de que ALSA cambie de forma dinámica de formato, y en particular, si usted escucha CD mucho más que cualquier otra cosa, 48 → 44,1 no es muy grande la pérdida.

Se supone que no hay otras configuraciones por resmple, ya que puede entrar en conflicto. Esto se aplica a nivel de usuario en ~/.asoundrc pero MPD ignora este archivo por lo que tiene que especificar estas configuraciones en /etc/asound.conf:

/etc/asound.conf
defaults.pcm.dmix.rate 44100 # Force 44.1 KHz
defaults.pcm.dmix.format S16_LE # Force 16 bits
/etc/mpd.conf
audio_output {
        type                    "alsa" # Use the ALSA output plugin.
	name			"HDA Intel" # Can be called anything or nothing tmk, but must be present.
        options                 "dev=dmixer"
        device                  "plug:dmix" # Both lines cause MPD to output to dmix.
	format	        	"44100:16:2" # the actual format
	auto_resample		"no" # This bypasses ALSA's own algorithms, which generally are inferior. See below how to choose a different one.
	use_mmap		"yes" # Minor speed improvement, should work with all modern cards.
}

samplerate_converter		"0" # MPD's best, most CPU intensive algorithm. See 'man mpd.conf' for others — for anything other than the poorest "internal", libsamplerate must be installed.
Nota: MPD porvee un tratamiento especial para la decodificacion de archivos mp3: Siempre es reproducida en 24 bit. (La conversión forzada de este formato se realiza después de esto)

Si quiere que la profundida de bits sea decidido por ALSA, quite o comente la linea dmix.format y cambiar la linea format to "44100:*:2".

Nota: La 'transición' entre los archivos codificados en dos diferentes profundidades de bit (por ejemplo, un mp3 y un flac de 16 bits) no funciona a menos que la conversión está activo.

MPD y PulseAudio

Editar /etc/mpd.conff, y descomentar la sección audio_output para el tipo de pulse.

A continuación, agregue el usuario a los grupos de pulse necesarios. El grupo de pulse-access de acceso debería ser suficiente, pero es posible que desee agregar pulse-rt también. El grupo de pulse no parece ser necesario.

 # gpasswd -a mpd pulse-access
 # gpasswd -a mpd pulse-rt

Control de MPD con lirc

Ya hay algunos clientes diseñado para las comunicaciones entre lircd y MPD, sin embargo, en cuanto a la utilidad práctica, no son muy útiles ya que sus funciones son limitadas.

Se recomienda el uso de MPC con irexec. MPC es un reproductor de línea de comandos que sólo le envía la orden a MPD y se cierra inmediatamente, lo cual es perfecto para irexec, el ejecutor de comandos incluidas en lirc. Lo que hace irexec es ejecutar un comando especificado una vez recibió una señal de algun control remoto.

Si asi lo desea, lea primero el articulo LIRC.

Edite el archivo de configuración, por defecto se encuentra en ~/.lircrc.

Agregue las lineas:

~/.lircrc
begin
     prog = irexec
     button = <button_name>
     config = <command_to_run>
     repeat = <0 or 1>
end

Un ejemplo útil:

~/.lircrc
## irexec
begin
     prog = irexec
     button = play_pause
     config = mpc toggle
     repeat = 0
end

begin
     prog = irexec
     button = stop
     config = mpc stop
     repeat = 0
end
begin
     prog = irexec
     button = previous
     config = mpc prev
     repeat = 0
end
begin
     prog = irexec
     button = next
     config = mpc next
     repeat = 0
end
begin
     prog = irexec
     button = volup
     config = mpc volume +2
     repeat = 1
end
begin
     prog = irexec
     button = voldown
     config = mpc volume -2
     repeat = 1
end
begin
     prog = irexec
     button = pbc
     config = mpc random
     repeat = 0
end
begin
     prog = irexec
     button = pdvd
     config = mpc update
     repeat = 0
end
begin
     prog = irexec
     button = right
     config = mpc seek +00:00:05
     repeat = 0
end
begin
     prog = irexec
     button = left
     config = mpc seek -00:00:05
     repeat = 0
end
begin
     prog = irexec
     button = up
     config = mpc seek +1%
     repeat = 0
end
begin
     prog = irexec
     button = down
     config = mpc seek -1%
     repeat = 0
end

Para mas información de mpc ejecute mpc(1).

Control de MPD por medio del teléfono con Bluetooth

También puede controlar MPD (hasta cierto punto) con un teléfono con Bluetooth. Tiene que hacer lo siguiente:

  • instalar remuco - un control remoto inalámbrico para varios reproductores multimedia de Linux (aur[enlace roto 2020-08-04])
  • transferir del cliente de remuco los archivos jar/jad de /usr/share/remuco/client/ a tu teléfono e instalarlo
  • ejecutar remuco-mpd (como el usuario actual)
  • ejecutar remuco en su teléfono, definir una nueva conexión Bluetooth con remuco y explorar sus capacidades

Más información acerca de remuco (incluyendo solución a problemas) que se encuentran en su página[enlace roto 2020-08-04].

Archivos Cue

Para usar estos archivos, debe evitar un error de libcue. Libcue copia archivos desde libcdio, por lo que puede trare conflictos, para solucionarlo:

* Quitar libcdio temporalmente (pacman -Rdd libcdio)
* Instalar libcue (pacman -S libcue)
* Instalar MPD desde ABS o AUR.
* Reinstalar libcdio (pacman -S libcdio)

En el momento de escribir este articulo no analiza tracknumbers de los archivos cue. Hay un parche disponible.

HTTP Streaming

Since version 0.15 there is a built-in HTTP streaming daemon/server that comes with MPD. To activate this server simply set it as output device in mpd.conf:

audio_output {    
	type		"httpd"    
	name		"My HTTP Stream"    
	encoder		"vorbis"		# optional, vorbis or lame    
	port		"8000"    
#	quality		"5.0"			# do not define if bitrate is defined    
	bitrate		"128"			# do not define if quality is defined    
	format		"44100:16:1"    
}

Then to listen to this stream simply open the URL of your mpd server (along with the specified port) in your favorite music player. Note: You may have to specify the file format of the stream using an appropriate file extension in the URL. For example, using Winamp 5.5, You would use http://192.168.1.2:8000/mpd.ogg rather than http://192.168.1.2:8000/.

To use mpd to connect to the stream from another computer.

mpc add http://192.168.1.2:8000

Troubleshooting

Falla en Auto-detección

Durante el inicio de MPD, el intentará detectar automáticamente y configurar su salida de audio y control de volumen. Aunque en la mayoría de los casos esto suele funcionar, en otros sistemas puede fallar. Podría ser de ayuda para MPD especificar que utilizar como salida y mixer de sonido. Si su archivo /etc/mpd.conf es una copia de /etc/mpd.conf.example como se mencionó anteriormente, simplemente des-comente estas lineas:

Ejemplo de una salida tipo ALSA:

audio_output {
	type			"alsa"
	name			"My ALSA Device"
	device			"hw:0,0"	# optional
	format			"44100:16:2"	# optional
	mixer_type		"hardware"
	mixer_device		"default"
	mixer_control		"PCM"
}

Nota: en caso de problemas con los permisos usando ESD con MPD, ejecute esto como root:

# chsh -s /bin/true mpd

MPD se cuelga en el primer inicio

Este es un error común causado por etiquetas mp3 dañadas. Esta es una manera experimental para resolver este problema. Requisitos:

  • kid3
  • easytag

Este método es tedioso, especialmente con bases de datos enormes. Para que entiendan, tomó 2.5 horas arreglar una una base de datos de 16Gb.

Easy Tag

easytag aparece aquí porque detecta los errores en las etiquetas mp3, pero igual que MPD, se cuelga y muere. El truco es que easytag te dice cual es el archivo problemático en su barra de estado. Antes de empezar, asegúrate de iniciar easytag en una terminal para estar listo para cerrarlo por si se cuelga. Cuando estés listo, en la vista ramificada selecciona el directorio donde tienes tu música. Como opción predeterminada, busca archivos mp3 en todos los subdirectorios. Cuando veas que easytag dejó de escanear canciones, toma nota del culpable y mata a easytag.

Nota: Esta tarea también se puede lograr editando el archivo de configuración de MPD y configurando "log_level" de "predeterminado" a "detallado". reinicie MPD y busque la última entrada en el archivo de registro de MPD después de que MPD se cuelgue. Se recomienda volver a establecer "log_level" en "predeterminado" después de la depuración, ya que el archivo de registro crece rápidamente.

KID3

Aquí es donde usamos kid3. Con kid3, busca la canción dañada y reescribe una de sus etiquetas, guarda el archivo y ya. Esto forzará a kid3 a reescribir todas las etiquetas y arreglara el problema con mpd.

Repite hasta que tu biblioteca musical este limpia.

Cannot connect to mpd: host "localhost" not found: Temporary failure in name resolution

Este error aparece cuando no puedes conectarte a MPD (con ncmpcpp) si estás desconectado de la red. La solución la encuentras en disable IPv6, o bien puedes añadir estas lineas en /etc/hosts

::1 localhost.localdomain localhost

Otros errores intentando conectar con MPD con un cliente

Algunos usuarios han reportado tener problemas conectando mpd con varios clientes.

$ ncmpcpp
Cannot connect to mpd: Connection closed by the server
$ sonata
2011-02-13 18:33:05  Connection lost while reading MPD hello
2011-02-13 18:33:05  Not connected
2011-02-13 18:33:05  Not connected

Por favor revisa los posts relacionados a ncmpcpp en el foro aquí y aquí. También revisa el reporte de errores de Arch aquí.

Primera solución

Revisa mpd.conf por una línea como mpd.error y bórrela. El archivo de error de mpd ha sido descontinuado.

Segunda solución

Nota: No estoy seguro si esto es una buena idea. Existe una advertencia acerca de cambiar la dirección de enlace en mpd.conf. Si esto no sirve, es probable que quieras comentar los cambios.

Si lo anterior no funciona, agrega las siguientes líneas a mpd.conf:

 bind_to_address "127.0.0.1"
 port "6600"

Luego, dile a tu cliente que conecte a 127.0.0.1. Por ejemplo, agrega esto a tu configuración de ncmpcpp:

 mpd_host "127.0.0.1"
 mpd_port "6600"

Enlazando a IPV6 antes de IPV4

Si al iniciar ve este mensaje:

listen: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)

MPD está intentando vincularse a la interfaz ipv6 antes de vincularse a ipv4. Si quiere usar ipv4, escriba en mpd.conf, así:

bind_to_address "127.0.0.1"

O, puedes especificar varios enlaces, por ejemplo, para que MPD escuche en localhost y en la IP externa de tu tarjeta de red:

bind_to_address "127.0.0.1"
bind_to_address "192.168.1.13"

daemon: cannot setgid for user "mpd": Operation not permitted

El error es declarar que el usuario que inicia el proceso no tiene permisos para convertirse en otro usuario (mpd) con el que la configuración le ha dicho al proceso que se ejecute.

Para resolver este problema, simplemente inicie mpd como root.

# systemctl start mpd

daemon: fatal_error: Failed to set group NN: Operation not permitted

El error indica que mpd no puede establecer el grupo. Esto es si ha configurado cualquier otro grupo en /etc/mpd.conf que el predeterminado: mpd. Esto se debe al archivo mpd.service por defecto. Inicia mpd como usuario mpd (y si no se ha especificado ningún grupo con el grupo predeterminado de este usuario como se indica en su /etc/passwd) y por lo tanto mpd no tiene ningún derecho a cambiar su grupo.

Primera solución

En /etc/mpd.conf comente la parte group= o cámbiela a group=mpd

Segunda solución

Crea un archivo mpd.service personalizado en /etc/systemd/system/ y agregue el grupo que desee. P.ej. inicie mpd con el grupo "audio":

/etc/systemd/system/mpd.service
.include /usr/lib/systemd/system/mpd.service
    [Service]
    Group=audio

Tercera solución

Cambia el grupo por defecto del usuario mpd en tu /etc/passwd.

MPD & ALSA

A veces, usando otras salidas de audio, p.ej: Algunas páginas web con subprogramas Flash, MPD no se puede reproducir (hasta que se reinicia). El error aparece en el log de mpd:

Error opening alsa device "hw:0,0": Device or resource busy

Razones para esto pueden ser:

  • La tarjeta de sonido no soporta la mezcla de hardware (usa el plugin dmix)
  • Una aplicación no funciona con los ajustes por defecto de ALSA'

Para una descripción detallada, se recomienda echar un vistazo a este sitio.

Este problema puede ser resuelto agregando las siguientes líneas a mpd.conf:

mpd.conf
audio_output {
        type                    "alsa"
        name                    "Sound Card"
        options                 "dev=dmixer"
        device                  "plug:dmix"
}

Para que el cambio surta efecto, reinicia mpd (p.ej. systemctl restart mpd, si es una configuración global).

Alto consumo de CPU con ALSA

Usando MPD con ALSA, los usuarios pueden experimentar que MPD consume mucha CPU (alrededor de 20-30%). La causa de esto es que la mayoría de tarjetas de sonido soportan 48kHz y la mayoría de la música está a 44.1kHz, por lo tanto forzando a MPD a volver a muestrearlo. Esta operación conlleva muchos ciclos de CPU y resulta en un alto consumo.

Para la mayoría de usuarios el problema se puede solucionar diciéndole a MPD que no vuelva a muestrear añadiendo auto_resample "no" en la parte de audio_output en /etc/mpd.conf.

mpd.conf
audio_output {
   type			"alsa"
   name			"My ALSA Device"
   auto_resample	"no"
}

Aunque puede no acelerar tanto, habilitar mmap aún puede acelerar las cosas:

mpd.conf
audio_output {
   type			"alsa"
   name			"My ALSA Device"
   use_mmap		"yes"
}

Algunos usuarios querrían decirle a dmix que use 44kHz también. Puede buscar más información acerca del rendimiento de su MPD en MPD wiki

Reproduciendo archivos de audio con diferente ritmo (funciona para EMU 0202/0204/0404)

Para reproducir archivos de audio con diferente ritmo con el cambio automático de frecuencia instale pulseaudio y pulseaudio-alsa y siga usando ALSA como salida:

mpd.conf
audio_output {
    type          "alsa"
    name          "Emu 0202 USB"
    device        "hw:2,0"
}

Cambiando de usuario

Cambiar el grupo que ejecuta MPD puede resultar en errores como:

output: Failed to open "My ALSA Device"
[alsa]: Failed to open ALSA device "default": No such file or directory

o

player_thread: problems opening audio device while playing "Song Name.mp3"

Esto se debe a que los usuarios de MPD necesitan formar parte del grupo audio para acceder a dispositivos bajo /dev/snd/. Para solucionarlo, haga que el usuario MPD sea parte del grupo audio:

# gpasswd -a 'MPD' audio

MPD incluye música de carpetas ocultas en la base de datos

MPD incluye carpetas ocultas en su base de datos como copias de seguridad de música repetitiva realizadas mediante sincronización como .stfolder. Para corregir esto, cree un archivo .mpdignore en el mismo directorio con una lista de archivos y carpetas para ignorar en cada línea, según la documentación de mpd.

Véase también