Serveur audio mpd et pulseaudio / pas de son

Bonjour,

Je souhaite réutiliser du vieux matériel que j’ai dans des cartons pour me faire un serveur audio.
La configuration est un celeron 333Mhz avec 64Mb de Ram et 80Gb de disque dur, avec une carte son sound blaster 16bit pci.

J’ai installé dessus une debian squeeze pour plus de stabilité. Au vu de la configuration de la machine j’ai seulement installé le minimum (installation de base + ssh + mpd + pulseaudio).

Mon problème est que je n’obtient pas de son lors de la lecture dans mpd.

Voici des détail sur mon installation :

$ cat /etc/debian_version 6.0.1$ uname -a Linux Elena 2.6.32-5-486 #1 Tue Mar 8 21:03:02 UTC 2011 i686 GNU/Linux$ lspci -v | grep -i audio 01:07.0 Multimedia audio controller: Ensoniq 5880B [AudioPCI] (rev 02) Subsystem: Ensoniq Creative Sound Blaster AudioPCI128
Au niveau de la configuration de mpd :[code]# An example of a pulseaudio output (streaming to a remote pulseaudio server)

audio_output {
type "pulse"
name “My Pulse Output”

server “remote_server” # optional

sink “remote_server_sink” # optional

}[/code]$ sudo usermod -a -G pulse-access mpd $ sudo usermod -a -G pulse mpd $ sudo usermod -a -G pulse-rt mpd usermod : le groupe « pulse-rt » n'existe pas$ cat mpd.log May 05 23:42 : state_file: failed to open /var/lib/mpd/state: No such file or directory May 06 18:47 : update: added /02_Seize_the_Day.mp3
Au niveau d’alsamixer :$ cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.21.$ amixer sset Master 60%,60% unmute Simple mixer control 'Master',0 Capabilities: pvolume pswitch pswitch-joined penum Playback channels: Front Left - Front Right Limits: Playback 0 - 65536 Mono: Front Left: Playback 39322 [60%] [on] Front Right: Playback 39322 [60%] [on]
Au niveau de pulseaudio :$ sudo apt-get install pulseaudio libao4 paprefs libpulse-mainloop-glib0 pulseaudio-module-jack pavucontrol pulseaudio-module-hal pulseaudio-module-x11 gstreamer0.10-pulseaudio pulseaudio-utils libasound2-plugins paman pulseaudio-module-gconf libgconfmm-2.6-1c2 libpulse-browse0 pavumeter libglademm-2.4-1c2a pulseaudio-esound-compat libpulse0 libpulse-dev pulseaudio-module-bluetooth pulseaudio-module-zeroconf$ pulseaudio -nC W: main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message Welcome to PulseAudio! Use "help" for usage information.
Mpd et pulseaudio semble être bien en fonctionnement : PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1092 mpd 20 0 207m 10m 2624 S 11.9 17.3 0:12.44 mpd 1123 mpd 20 0 154m 4124 3160 S 4.3 6.9 0:04.89 pulseaudio

Don voila je n’ai toujours pas de son qui arrive sur mes enceintes et je ne sais pas à quel niveau il faut que je cherche le problème.

Merci à tous ceux qui pourrons prendre un peu de temps pour m’aider à trouver une solution.

Et qu’en est-il si tu configures mpd pour qu’il utilise ALSA plutôt?
Si ça marche, c’est que le souci viens de pulse, sinon il est possible que ce soit un problème dans la config de mpd :slightly_smiling:

/etc/mpd.conf

[code]# An example of a pulseaudio output (streaming to a remote pulseaudio server)

audio_output {
type "pulse"
name “My Pulse Output”

server “remote_server” # optional

sink “remote_server_sink” # optional

}[/code]

L’exemple est à ADAPTER, ton serveur pulseaudio ne s’appelle pas “remote_server” de même “My Pulse Output” ne rime à rien.
Une fois adapté ça marche sans problème.
Modèle chez moi, Alsa-output commenté dans /etc/mpd.conf , sink et hostname spécifiques

audio_output { type "pulse" name "pulseaudio" server "sidsis" sink "alsa_output.0.analog-stereo" }

Comment savoir comment le renseigner ?

$ paman

Merci pour ces deux réponses…

En ce qui concerne l’utilisation uniquement d’alsa je n’arrive pas non plus à obtenir quelque chose de fonctionnel :
J’ai changé la configuration pulse dans mpd par :[code]# An example of an ALSA output:

audio_output {
type "alsa"
name "My ALSA Device"
device “hw:0,0” # optional
format “44100:16:2” # optional
mixer_device “default” # optional
mixer_control “PCM” # optional
mixer_index “0” # optional
}[/code]

En revanche il semble que la ressource alsa ne soit pas disponible :$ cat /var/log/mpd/mpd.log May 05 23:42 : state_file: failed to open /var/lib/mpd/state: No such file or directory May 06 18:47 : update: added /02_Seize_the_Day.mp3 May 07 12:02 : output: Failed to open "My ALSA Device" [alsa]: Failed to open ALSA device "hw:0,0": Device or resource busy May 07 12:02 : player_thread: problems opening audio device while playing "02_Seize_the_Day.mp3" May 07 12:02 : can't find alsa mixer control "PCM" May 07 12:02 : output: Failed to open "My ALSA Device" [alsa]: Failed to open ALSA device "hw:0,0": Device or resource busy May 07 12:02 : output: Failed to open "My ALSA Device" [alsa]: Failed to open ALSA device "hw:0,0": Device or resource busy May 07 12:02 : can't find alsa mixer control "PCM" May 07 12:03 : can't find alsa mixer control "PCM"

J’ai donc arrèté pulseaudio et relancé mpd :$ sudo /etc/init.d/pulseaudio stop $ sudo /etc/init.d/mpd restart
Le périphérique est maintenant disponible mais j’ai toujours le message d’erreur suivant :May 07 12:08 : can't find alsa mixer control "PCM"

Je vais essayer de configurer de manière plus complète la partie pulseaudio de mpd.conf comme me le suggère etxeberrizahar mais comme je suis uniquement connecté en console ssh (machine sans écran) je vais devoir trouver un autre moyen d’afficher les info pulseaudio.

Bon j’ai de bonnes nouvelles !! J’ai enfin eu un peu de son en sortie !!! :041

Voila ce que j’ai fait :
J’ai remis la configuration sur pulse dans mpd.conf avec la section suivante :[code]# An example of a pulseaudio output (streaming to a remote pulseaudio server)

audio_output {
type “pulse”
name “Elena server”

server “remote_server” # optional

    sink            "alsa_output.pci-0000_01_07.0.analog-stereo"    # optional

}[/code]

J’ai obtenu le sink avec la commande suivante :[code]>>> list-sinks
1 sink(s) available.

  • index: 1
    name: <alsa_output.pci-0000_01_07.0.analog-stereo>
    driver: <module-alsa-card.c>
    flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
    state: SUSPENDED
    suspend cause: IDLE
    priority: 9059
    volume: 0: 100% 1: 100%
    0: 0,00 dB 1: 0,00 dB
    balance 0,00
    base volume: 63%
    -12,00 dB
    volume steps: 65537
    muted: yes
    current latency: 0,00 ms
    max request: 64 KiB
    max rewind: 64 KiB
    monitor source: 1
    sample spec: s16le 2ch 44100Hz
    channel map: front-left,front-right
    Stéréo
    used by: 0
    linked by: 0
    configured latency: 0,00 ms; range is 0,50 … 371,52 ms
    card: 0 <alsa_card.pci-0000_01_07.0>
    module: 18
    properties:
    alsa.resolution_bits = “16”
    device.api = “alsa”
    device.class = “sound”
    alsa.class = “generic”
    alsa.subclass = “generic-mix”
    alsa.name = “ES1371 DAC2/ADC”
    alsa.id = “ES1371/1”
    alsa.subdevice = “0”
    alsa.subdevice_name = “subdevice #0
    alsa.device = “0”
    alsa.card = “0”
    alsa.card_name = “Ensoniq AudioPCI”
    alsa.long_card_name = “Ensoniq AudioPCI ENS1371 at 0x2400, irq 5”
    alsa.driver_name = “snd_ens1371”
    device.bus_path = “pci-0000:01:07.0”
    sysfs.path = “/devices/pci0000:00/0000:00:1e.0/0000:01:07.0/sound/card0”
    device.bus = “pci”
    device.vendor.id = “1274”
    device.vendor.name = “Ensoniq”
    device.product.id = “5880”
    device.product.name = “5880B [AudioPCI]”
    device.string = “front:0”
    device.buffering.buffer_size = “65536”
    device.buffering.fragment_size = “65536”
    device.access_mode = “mmap+timer”
    device.profile.name = “analog-stereo”
    device.profile.description = “Analog Stereo”
    device.description = “5880B [AudioPCI] Analog Stereo”
    alsa.mixer_name = “SigmaTel STAC9721,23”
    alsa.components = “AC97a:83847609”
    module-udev-detect.discovered = “1”
    device.icon_name = “audio-card-pci”
    ports:
    analog-output;output-amplifier-on: Analog Output / Amplifier (priority 9910)
    analog-output;output-amplifier-off: Analog Output / No Amplifier (priority 9900)
    analog-output-mono;output-amplifier-on: Analog Mono Output / Amplifier (priority 5010)
    analog-output-mono;output-amplifier-off: Analog Mono Output / No Amplifier (priority 5000)
    analog-output-lfe-on-mono;output-amplifier-on: Analog Output (LFE) / Amplifier (priority 4010)
    analog-output-lfe-on-mono;output-amplifier-off: Analog Output (LFE) / No Amplifier (priority 4000)
    active port: <analog-output;output-amplifier-on>[/code]
    Il apparait cependant que le sink était en mute ???
    J’ai donc essayé la commande suivante :>>> set-sink-mute alsa_output.pci-0000_01_07.0.analog-stereo 0
    Et maintenant j’ai enfin du son en sortie après avoir relancé le serveur mpd.

Je vais essayé de relancer le serveur pour voir si la configuration est stable…

Wouhou merci du coup de main :clap:
Après redémarrage du serveur tout s’est lancé tout seul et le son est parfait.

Le serveur mpd fonctionne très bien maintenant et je vais pouvoir utiliser ce serveur comme carte son reseau pour mon ordinateur portable grâce à pulseaudio.

Merci encore…

Ligne de commande pour connaître les sinks:

$ pabrowse

/etc/mpd.conf
Suggestion pour le mixer: décommenter mixer_type "software"
laisser commenté #mixer_type “hardware”

Regarde aussi
mpd.wikia.com/wiki/PulseAudio#Setting_up_MPD

d’autres alternatives y sont abordées comme celle de
mpd -> ao -> esd -> pulseaudio

Désolé je detterre le topic mais c’est pour apporter ma petite contribution.

Au départ j’ai essayé de faire la config “classique”

[code]audio_output {
type “pulse”
name “pulseaudio”
server “localhost”
sink “alsa_output.pci-0000_00_14.2.analog-surround-41”

}[/code]
Les lignes server & sink ont été ajouté APRES avoir constater qu’avec les 2 première ligne MPD se connectait correctement à Pulsaudio mais aucun son ne sortait (le son n’était pas en “mute” comme vu plus haut).

J’ai ajouté mpd au group “pulse” & “pulse-access” mais rien de mieux.
D’ailleur il faudras m’expliquer ça

0:21 root@<mon_ordi> ~# cat /etc/group |grep pulse audio:x:29:pulse,<mon_user> pulse:x:117:mpd pulse-access:x:118:mpd 0:21 root@<mon_ordi> ~# groups mpd mpd : audio pulse pulse-access 0:22 root@<mon_ordi> ~# cat /etc/group |grep mpd pulse:x:117:mpd pulse-access:x:118:mpd 0:23 root@<mon_ordi> ~# usermod -a -G audio mpd 0:24 root@<mon_ordi> ~# cat /etc/group |grep mpd audio:x:29:pulse,<mon_user>,mpd pulse:x:117:mpd pulse-access:x:118:mpd
Comment se fait il que l’utilisateur MPD soi dans le group “audio” alors que le fichier “/etc/group” ne le mentionne pas :open_mouth:

Bon sinon dans les logs j’avais des "output: Failed to open “pulseaudio” [pulse]: failed to connect: Connection refused.

Finalement j’ai opté pour

audio_output { type "pulse" driver "esd" options "host=localhost" name "esd" }

Et miracle ça fonctionne sans problème :041
Du coup je peut controller tout ça depuis mon N9 8)

Bon il faut que je regarde pourquoi il se lance pas tout seul au démarrage maintenant :snooty:

[quote]Comment se fait il que l’utilisateur MPD soi dans le group “audio” alors que le fichier “/etc/group” ne le mentionne pas
[/quote]
mpd fait partie du groupe pulse. Le groupe de pulse fait partie du groupe audio.
mpd fait donc partie du groupe audio par l’entremise de pulse.

Extrait de littérature indigeste

$ man initgroups

DESCRIPTION The initgroups() function initializes the group access list by reading the group database /etc/group and using all groups of which user is a member.

Pour ce qui est de pulseaudio lancé hors session d’utilisateur, vérifier ces fichiers

/etc/rc2.d/
S19pulseaudio S20mpd

S19* se lance avant S20* (S* comme Start, K* comme Kill).

/etc/init.d/.depend.start

mpd: pulseaudio

mpd ne se lancera qu’après pulseaudio.

/etc/init.d/pulseaudio

[code]

Description: System mode startup script for

the PulseAudio sound server.[/code]

System mode : sans attendre le login d’un utilisateur.

/etc/pulse/system.pa

Merci pour l’explication des groups.

Pour Pulseaudio il est bien lancé dans la session utilisateur donc bien avant MPD et c’est surement ce qui le gène … Je vais voir comment faire pour contourner le problème

Ca m’embêtait de mettre pulseaudio en tant que démon, donc j’ai ramener MPD au niveau user grace à cette page :
gmpc.wikia.com/wiki/MPD_INSTALL_ … ICE_UBUNTU

Le seul inconvénient est que je suis obligé de me logger pour profiter de MPD :think:

Je suis tombé sur cette page
debuntu.org/how-disable-puls … -sound-gdm
qui fait en sorte que MPD soit accessible même sous gdm.
Mais je ne sais pas comment il fait :whistle: si quelqu’un a une idée :mrgreen: