Saltar al contenido

cuaderno de campo

anotaciones

Menú
  • casa
    • dinou del carrer nou
  • cocina
    • pan
    • repostería
    • verdura
  • huerto
    • instrucciones sobre el huerto
    • plano del número 29
    • huerto del año 2025
  • humanidades
    • fonoteca
    • galería
  • juego
    • colección de roms
    • steamos en steam deck
    • lista de juego
    • dosbox
  • linux
    • bash
    • sistema operativo
    • ssh
  • web
    • apache
    • css
    • html5
    • javascript
    • mysql
    • php
Menú

MPD: Music Player Daemon

Publicada el 16 de diciembre de 201519 de junio de 2025 por ernesto
  • instalación
    • [borrador] instalación de la última versión de mpd
      • repositorio de kaliko
      • última versión de mpd
  • configuración
    • mpd.conf
    • mpd desde rc.local
    • el usuario del servicio rc.local
  • salida de audio
    • alsa o pulse como tipo de audio_output
    • hifiberry dac+
    • creative stage 2.1 o los dispositivos que se desconectan
  • problemario
    • consulta del registro (log) de mpd
    • base de datos corrupta
    • mpd activo y escuchando en la dirección y puerto establecidos en mpd.conf
    • no hay sonido después de todo
    • determinar la salida de audio
    • ruido con mpd
  • fuentes
Puesto al día el 7 de enero de 2021.

instalación

sudo apt install mpd

[borrador] instalación de la última versión de mpd

hay paquetes (no oficiales) de la última versión de mpd (0.22 a enero de 2021) para raspbian en el repositorio de kaliko, sólo para armhf:

dpkg --print-architecture

armhf

no sirve cualquier otra respuesta de dpkg --print-architecture que no sea armhf.

repositorio de kaliko

wget -O /etc/apt/trusted.gpg.d/deb.kaliko.me.gpg https://media.kaliko.me/kaliko.gpg

2021-01-07 16:35:52 (4,16 MB/s) - "/etc/apt/trusted.gpg.d/deb.kaliko.me.gpg" guardado [6246/6246]

sudo nano /etc/apt/sources.list.d/deb.kaliko.me.list

deb https://deb.kaliko.me/raspbian-backports/ stable-backports main

sudo apt update

Obj:3 https://deb.kaliko.me/raspbian-backports stable-backports InRelease

última versión de mpd

sudo apt policy mpd

Tabla de versión:
0.22.3-1~bpo10+2 1

sudo apt remove mpd

Desinstalando mpd (0.19.21-1) …

sudo apt autoremove

sudo apt install mpd/stable-backports

E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.

configuración

antes de proceder con la configuración de mpd, es necesario detener el servicio mpd.service:

sudo systemctl stop mpd.service

puesto que el propósito de esta configuración es ejecutar mpd como una aplicación local y no como un servicio, hay que desactivar mpd.service:

sudo systemctl disable mpd.service

hecho esto, se crea un directorio local para los archivos de mpd:

mkdir /media/archivo/.mpd

y se copia (si se quiere un ejemplo o modelo) el archivo original de configuración de mpd al directorio local que se acaba de crear:

sudo cp /etc/mpd.conf /media/archivo/.mpd

luego, se crean todos los otros archivos que mpd necesita:

touch /media/archivo/.mpd/{mpd.db,mpd.log,mpd.pid,mpd.state,mpd.sql}

ls /media/archivo/.mpd

mpd.conf mpd.db mpd.log mpd.pid mpd.sql mpd.state

y, por último, se asigna la propiedad de estos cinco archivos al usuario de mpd (nombre en el ejemplo) y se añade dicho usuario al grupo audio:

sudo chown nombre:grupo /media/archivo/.mpd/*

sudo adduser nombre audio

id nombre

uid=1000(nombre) gid=1000(grupo)

grupos=1000(grupo),27(sudo),29(audio)

mpd.conf

mpd.conf es el archivo de configuración de mpd:

nano /media/archivo/.mpd/mpd.conf

music_directory       "/media/archivo"
playlist_directory    "/media/archivo"
db_file               "/media/archivo/mpd.db"
log_file              "/media/archivo/mpd.log"
pid_file              "/media/archivo/mpd.pid"
state_file            "/media/archivo/mpd.state"
sticker_file          "/media/archivo/mpd.sql"
user                  "nombre"
#group                "audio"
bind_to_address       "192.168.1.7"
port                  "9777"
#gapless_mp3_playback "yes"
## DISPOSITIVO DE AUDIO o TARJETA DE SONIDO ##
audio_output
{
     type                "alsa"
     name                "RB MPD"
     device              "hw:0,0"
     mixer_type          "software"
     replay_gain_handler "none"
}
## EMISIÓN POR HTTP ##
audio_output
{
     type        "httpd"
     name        "RB MPD Radio"
     encoder     "lame"
     port        "9775"
     bitrate     "192"
     format      "44100:16:1"
     max_clients "1"
}
replaygain                "auto"

hay más información sobre las opciones de audio_input en «Configuring audio outputs» de Music Player Daemon.

mpd desde rc.local

a continuación, para ejecutar mpd como una aplicación local y no como un servicio del sistema, hay que añadir la siguiente línea a /etc/rc.local:

sudo nano /etc/rc.local

mpd /media/archivo/.mpd/mpd.conf &

donde se ejecuta mpd con el archivo de configuración /media/archivo/.mpd/mpd.conf.

el usuario del servicio rc.local

en versiones recientes de ubuntu como la 18.04, el contenido del código de /etc/rc.local se ejecuta automáticamente como un servicio, pero, al parecer, este servicio no ejecuta mpd con el usuario que corresponde (nombre en el ejemplo) y pulseaudio podría no comportarse como debería con mpd. esto se arregla añadiendo las siguientes líneas a /etc/systemd/system/rc-local.service, en el apartado de service:

sudo nano /etc/systemd/system/rc-local.service

[Service]
User=nombre
PAMName=system-local-login

valga el siguiente como ejemplo de rc-local.service:

[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
User=ernesto
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
PAMName=system-local-login
[Install]
WantedBy=multi-user.target

salida de audio

el comando aplay, mediante la opción -l o --list-devices (list all soundcards and digital audio devices), permite averiguar qué tarjetas de sonido hay disponibles en el sistema operativo:

aplay -l

card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]

lo que equivale a decir «device hw:0,0» (card 0, device 0) en la definición de la salida de audio (audio_output) del archivo de configuración mpd.conf.

el comando aplay se incluye en el paquete alsautils:

sudo apt install alsautils

alsa o pulse como tipo de audio_output

alsa únicamente opera con una fuente de sonido a la vez, así que, en un sistema operativo descabezado o headless, cumple sin problema.

pulseaudio, por su parte, es un servidor de sonido que permite múltiples fuentes de sonido a la vez. luego, si se van a ejecutar varias fuentes de sonido a un tiempo y/o no se quiere que mpd ocupe en exclusiva la salida de audio, debería declararse «pulse» como type del audio_output:

audio_output
{
     type "pulse"
}

hifiberry dac+

si se dispone de una tarjeta de sonido hifiberry dac+, la configuración del audio_output de mpd.conf debería declararse como sigue:

## HIFIBERRY DAC+ ##
audio_output
{
type "alsa"
name "RB HIFIBERRY DAC+"
device "hw:0,0"
mixer_control "Digital"
mixer_device "hw:0"
mixer_index "0"
mixer_type "hardware"
replay_gain_handler "none"
}

donde el dispositivo de mezcla hw:0 (mixer_device), esto es, el hardware de la tarjeta de sonido hifiberry dac+, se ocupa de de la mezcla (mixer_type). por su parte, el mezclador Digital (mixer_control) se encarga del control del volumen.

creative stage 2.1 o los dispositivos que se desconectan

ciertos dispositivos, si no reciben una señal de sonido constante por parte de su auxiliar, se desconectan (que no apagan) y, en el caso de los altavoces creative stage 2.1, tardan unos segundos en volver a emitir ningún sonido.

mpd dispone de la opción always_on para tratar de evitar la desconexión:

## CREATIVE STAGE 2.1 ##
audio_output
{
     type                "alsa"
     name                "RB MPD"
     device              "hw:0,0"
     mixer_type          "software"
     replay_gain_handler "none"
     always_on           "yes"
}

si la opción always_on no funciona, aún cabe otra posibilidad, que es el bloque input_cache (a partir de la versión 0.21, al menos):

## CREATIVE STAGE 2.1 ##
input_cache
{
     size                "128 MB"
}

problemario

consulta del registro (log) de mpd

tail -n 25 /media/archivo/.mpd/mpd.log

Dec 24 13:08 : player: played «archivo/Radiohead/Hail to the Thief/03 sail to the moon brush the cobwebs out of the sky.mp3»

base de datos corrupta

si se obtiene el siguiente error al comprobar el estado del servicio de mpd:

sudo systemctl status mpd.service
dic 23 18:13:35 RB systemd[1]: Started Music Player Daemon.
dic 23 18:13:36 RB mpd[2574]: Dec 23 18:13 : db: Database corrupted

debe ejecutarse la siguiente orden:

sudo mpd --create-db

luego, ya se puede actualizar la base de datos desde un cliente:

sudo mpc update

hay más información al respecto aquí.

mpd activo y escuchando en la dirección y puerto establecidos en mpd.conf

sudo netstat -tlpn

tcp        0      0 192.168.1.7:9777        0.0.0.0:*               LISTEN      3319/mpd

a 01/2016, se da este caso en el arranque de osmc:

socket: Failed to bind to '192.168.1.7:9777': Cannot assign requested address

but why?

no hay sonido después de todo

aplay -l

aplay: device_list:268: no soundcards found...

si no se han encontrado tarjetas de sonido, ejecútese lsmod y, si no aparece el nombre snd-bcm2835 en la lista de módulos, añádase «snd-bcm2835» a /etc/modules:

sudo nano /etc/modules

snd-bcm2835

que equivale a la orden:

sudo modprobe snd-bcm2835

en el arranque.

determinar la salida de audio

sudo raspi-config

  • 7 Advanced options
  • A4 Audio
  • hay tres salidas:
    • 0 Auto
    • 1 Force 3.5mm ('headphone') jack
    • 2 Force HDMI

ruido con mpd

por último, si el sonido arrastra ruido, cabe hacerse con una buena fuente de alimentación y un cable USB con filtro para el ruido (ferrite bead) o una tarjeta de sonido.

fuentes

  • «Debian» en kaliko / home page.
  • «Documentation» en Music Player Daemon.
  • «MPD sin salida de audio con PulseAudio» en Código de registro.
  • «Music Player Daemon» en Arch Linux.
  • «The ultimate MPD guide» en crunchbang.org.
  • «Unofficial Debian packages» en Music Player Daemon.
Etiquetado como adduser, alsa, alsamixer, amixer, aplay, apt-get, chown, cp, Creative Stage, Hifiberry DAC+, id, ls, lsmod, mkdir, modprobe, mpc, mpd, netstat, pulseaudio, raspi-config, snd-bcm2835, systemctl, tail, touch, update-rc.d
  • HiFiBerry DAC+ standard (RCA version)
    HiFiBerry DAC+ standard en Raspberry Pi 3

    Puesto al día el 18 de junio de 2025. instalación vía config.txt antes de proceder…

  • bluetooth de la raspberry pi 3

    Puesto al día el 19 de junio de 2025. hardware del bluetooth en primer lugar,…

  • mpd + last.fm

    Puesto al día el 5 de enero de 2021. sudo apt show mpdscribbleLast.fm reporting client…

  • yt-dlp

    Puesto al día el 10 de junio de 2025. yt-dlp is a feature-rich command-line audio/video…

RSS rutas fuera

  • La Naranja Metálica #104 (9×12) 2 de octubre de 2025 Belisario
  • Terror en Blanco: Monstruos lacustres, con Javier Resines 2 de octubre de 2025 Javier Resines
  • Barren Path – Grieving(2025) 30 de septiembre de 2025 Nicholas Mkhl
  • Beats and yelling: Castrator 30 de septiembre de 2025 Hate Meditations
  • Reseñas breves (septiembre de 2025) 29 de septiembre de 2025 Belisario
  • Anica, la hija del orangután en la revista DeMisterios 27 de septiembre de 2025 Javier Resines
  • Beats and yelling shorts, 27th September 25 27 de septiembre de 2025 Hate Meditations
  • CAMINANDO ENTRE MONSTRUOS 02 (Bestiario Sonoro): Basandere, la señora de los bosques 25 de septiembre de 2025 Javier Resines
  • CAMINANDO ENTRE MONSTRUOS 01 (BESTIARIO SONORO): Anica, la hija del orangután 22 de septiembre de 2025 Javier Resines

Archivo

cuaderno de campo 2011-2025