Chargement...
 
Skip to main content

5 - Les serveurs son : JACK, PipeWire, PulseAudio et autres...


[RESOLU]Librazik et pulseaudio

J'utilise librazik et en suis très content.
Mais un point me chiffone. est ce normal que pulseaudio ne soit pas lancé automatiquement au démarrage ?
est ce un choix ?
Ou un problème sur ma config ?
France
Pulseaudio se lance au démarrage mais il faut le paramétrer correctement sur certaines configurations (carte son interne proposant des entrées/sorties analogiques et numériques). Si pulseaudio ne se lance pas, c'est qu'il y a un problème de paramétrage. Perso, je règle pulseaudio sur la carte son interne et JACK sur la carte USB externe (avec Cadence), avec un lancement automatique au démarrage de la session avec le pont ALSA->Pulseaudio->JACK activé. C'est pour moi la manière la plus fluide de fonctionner avec les différents serveurs sons.
France
Personnellement J'ai Cadence qui lance JACK au démarrage de la session ainsi que le pont PulseAudio -> JACK. Ainsi je n'utilise que ma carte son firewire, et le son de toutes les applications non JACK est redirigé vers mes sorties JACK principales, donc mes enceintes et mon casque. Je règle le volume de pulseaudio vers 70% étant donné que la plupart de ce qui va passer par pulseaudio, c'est du son masterisé, donc beaucoup plus fort que le reste.
OK, donc je dois avoir un problème quelque part, il me semble que pulseaudio se lançait tout seul au début de mon install.
Je n'avais pas remarqué le problème car j'utilise playitslowly qui donc n'utilise pas pulseaudio;
Mais maintenant que j'utilise aussi audacious pour lire des boucles, il me faut pulseaudio.
Je vais ajouter une ligne dans l'autostart
Il semblerait que le lancement automatique de pulsaudio se passe dans /etc/xdg/autostart/pulseaudio.desktop
vec la ligne Exec=start-pulseaudio-x11

Mais si je lance cete commande dans un terminal,
Échec de pa_context_connect() : Connexion refusée

donc ce n'est pas ça, c'est un client qui cherche à se connecter au service pulseaudio qui n'est pas démarré.

Copy to clipboard
If autospawning is disabled, start-pulseaudio-x11 doesn't have effect, because start-pulseaudio-x11 doesn't start the server explicitly.

freedesktop

Je continu les recherches.
j'ai essayé d'activer l'autospawning dans /etc/pulse/client.conf sans succés.
Il faut que je trouve comment systemd lance le service pulseaudio (qui n'est pas un service systeme)
ça se passe du coté de usr/lib/systemd/user/pulseaudio.service.

La suite demain avec
Copy to clipboard
systemctl --user enable pulseaudio.service systemctl --user start pulseaudio.service

Maintenant c'est pulseaudio.socket qui pose probleme
Copy to clipboard
Unit pulseaudio.socket is masked.


Copy to clipboard
systemctl --user list-unit-files pulseaudio.socket masked


La commande unmask n'a pas d'effet.
si je lance pulseaudio --start j'ai le son et pulsaudio.socket reste masqué. Utiliser systemd pour démarrer pulseaudio n'est donc pas une bonne idée car bien vérouillé. Il faut que je trouve une autre méthode.
Internet n'est pas trés bavard sur le sujet
Par je ne sais quel miracle, pulseaudio démarre maintenant au démarrage, peurt être suite à une mise à jour.
ce n'est pas un miracle finalement. si je démarre le PC avec la carte son externe connectée en USB, mais pas allumée, pulsaudio ne démarre pas au boot.
Si j'allume la carte et que je démarre le PC, pulseaudio démarre automatiquement.
Il semblerait donc que la carte son soit détectée, même sur off. Les mystères de l'USB ....
France
Intéressant ça.
Quel est le modèle de l'interface audio USB ?
C'est une interface sans alimentation externe ?
XR18; avec alim externe, et interrupteur on/off mécanique
Ma conclusion était hâtive. J'ai testé en déconnectant la prise USB, pulseaudio ne démarre pas automatiquement. Il a mémorisé quelque part qu'il y a un carte son externe, et si elle n'est pas là, il ne démarre pas tout seul. Un simple pulsaudio --start le fait démarrer sans erreur.
Etrange.
France
Par rapport à pulseaudio et ta carte son, c'est normal que pulseaudio ne se lance pas s'il est paramétré sur une carte son qui n'est pas lancé avant lui.
j'aimerai bien trouver ou ce trouve ce paramètre. Ca fait des jours que je cherche!
Et si je le démarre à la main, aucun probleme.
France
j'aimerai bien trouver ou ce trouve ce paramètre.

Quel paramètre ?
celui qui dit à pulseaudio qu'une carte externe doit étre présente, même si celle ci n'est pas connectée.
Je tourne en round.
Oublions l'utilisation de pulseaudio sans jack.
Passons à pulseaudio + Jack

Je démarre la machine, je lance qjackctl.
Comme j'ai mis dans les options de qjackctl de démarrer pulseaudio, je vois bien les entrées de ma carte son, pulseaudio-sink et pulseaudio-sources (en stéréo). tout est OK.
J’arrête jack, et je le redémarre. Plus de pulseaudio-source et sink.

Je rajoute donc dans les options de qjackctl de lancer pulseaudio-sink et source aprés le démarrage.
Copy to clipboard
pactl load-module module-jack-sink && pactl load-module module-jack-source

arrêt et redémarrage de jack. et je me retrouve avec des pulseaudio-source et sink avec 18 connexions! (comme ma carte son)

et après un reboot, j'ai 2 pulseaudio-source et sink, un stéréo, et un avec 18 connexions.
Je n'y comprends plus rien
Je creuse la configuration de ce pulseaudio. Au démarrage, il va lire le fichier/etc/pulse/default.pa
On y trouve dedans la ligne
Copy to clipboard
load-module module-jackdbus-detect channels=2

C'est pour ça qu'au boot j'ai un sink avec 2 sorties.
Mais si je recharge le module manuellement
Copy to clipboard
pactl load-module module-jack-sink
, il faut que je rajoute que je ne veux que 2 canaux, sinon il m'en met autant que la carte son sélectionnée.
Premier mystere éclairci.
Reste à comprendre pourquoi il attends la carte son externe pour démarrer au boot.
Je vais chercher la fonction du module default-device restore
J'ai décidé de ne pas toucher aux fichier de configuration /etc/pulse/default.pa contrairement à ce qui est parfois indiqué, comme par exemple pulseaudio vers jack

Afin de lancer les modules jack-sink et sources, j'ai fait un petit script inspiré de http://lalists.stanford.edu/lau/2009/05/0657.html
Il commence par décharger les modules si ils sont chargés, puis les recharge avec le bon nombre de canaux.
Puis il lance alsa-out pour ajouter les sorties de la carte son intégrée.
ça ne fonctionne pas encore très bien, si je le lance dans un terminal, le job est fait, mais mais je n'arrive pas à le lancer avec qjackctl
Copy to clipboard
#!/bin/bash MODULE="jack" #identification of modules source and sink for jack SINKID=$(pactl list | grep -B 1 "Nom : module-jack-sink" | grep Module | sed 's/[^0-9]//g') SOURCEID=$(pactl list | grep -B 1 "Nom : module-jack-source" | grep Module | sed 's/[^0-9]//g') # if modules jack-sink exist, unload module sink and sources if [ -e $SINKID ]; then echo $MODULE sinks/sources not loaded, proceeding.... else echo $MODULE sinks/sources are loaded, ID of $MODULE sink is $SINKID ID of $MODULE source is $SOURCEID... echo Unloading module $SINKID and $SOURCID pactl unload-module $SINKID pactl unload-module $SOURCEID fi # modules loading with 2 channels echo JACK sinks/sources not loaded, loading now... pactl load-module module-$MODULE-sink channels=2 pactl load-module module-$MODULE-source channels=2 alsa_out -dhw:0 -j 'carte interne' & exit 0



J'ai encore 2 points à éclaircir:
- pourquoi pulseaudio a mémorisé au boot qu'il y a une carte externe

- j'envoie du son sur pulse-source, mais il ne ressort pas sur pulse sink

à bientot pour la suite de mes aventures!