J’ai une sortie son composée de deux haut-parleurs alimenté via usb et une prise jack pour le son.
L’alimentation de cette sortie son est branchée sur secteur, la prise jack est évidemment dans la raspi.
La sortie son est testée sur mon pc et elle fonctionne, donc pas de soucis de ce côté là.
Voici la sortie de quelques commandes:
aplay -l
**** List of PLAYBACK Hardware Devices ****
Aucun périphérique n’est listé…
aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
lavrate
Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pulse
PulseAudio Sound Server
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
usbstream:CARD=Device
USB PnP Sound Device
USB Stream Output
Je ne suis absolument pas familier de tout ce qui est en rapport avec le son et c’est la première raspi que je manipule, d’où ma difficulté.
En dehors de ce problème, la raspi fonctionne bien, j’ai pu faire fonctionner une caméra et une entrée son dessus (qui apparaît correctement dans alsamixer).
Il vous manque sûrement énormément d’infos pour m’aider, n’hésitez pas à me demander le résultat de commandes dont vous pourriez avoir besoin, et merci beaucoup à vous
Quand on utilise un device autre que le built-in, comme le Bluetooh ou une carte de son en USB, il vau mieux virer Alsa pour utiliser Pulse.
Il est un peut difficile de t’aider plus précisément, car DietPi n’est pas une distribution officiel, et perso, malgré la taille réduit, j’ai eu plus de soucis a travailler avec DietPi que Raspbian. Il y a des package en moins qui sont importants pour le média, DietPi, de mon avis, est plus pour des activité « service » ou en ligne de commande. Tenter de faire du multimédia est problématique, mais pas impossible.
Regarde sinon la doc pour définir les paramètre Alsa dans le fichier de configuration pour définir la sortie par défaut, et désactive le module intégré du RPi dans son config, qui gère l’audio, ça va aider.
Oui je veux m’en servir pour diverses choses incluant un « majordome » mais s’il peut pas parler c’est embêtant, pour l’instant je suis obligé de le faire écrire dans la console =p
Et je suis un peu triste pour mon module de lecture de musique également x)
donc pas voué à avoir besoin d’un écran, plutôt dans la poche à écouter mes commandes vocales
Et sachant que j’utilise des librairies parfois lourdes (vision par ordinateur, multithreading, etc) je préférais que la raspi utilise ses ressources pour cela plutôt que pour une sortie graphique
J’ai effectivement principalement utilisé alsa! je pensais que pulse était une surcouche de alsa, je vais aller approfondir sur pulse, merci pour le tips
d’ailleurs ce matin j’ai trouvé ceci:
le son est transmis par défaut sur la sortie HDMI ;
sinon, il est émis via la prise analogique.
Vous pouvez également
==> forcer manuellement la sortie dans l’utilitaire raspi-config,
dans le fichier config.txt
ou en faisant un clic droit sur l’icône en forme de haut-parleur,
en haut à droite de la barre des tâches.
2. Audio analogique
La sortie audio analogique se fait sur un jack stéréo
de 3,5 mm à quatre pôles. Cette sortie fournit un signal
d’environ 1 volt crête à crête. Ce signal est trop faible pour être
utilisé avec un casque audio ou un haut-parleur.
===> Il faudra impérativement utiliser un amplificateur.
Sur le Raspberry Pi 4, l’audio numérique est sélectionné par défaut.
Il faudra modifier la configuration pour utiliser la sortie analogique.
ça donne quelques pistes
Merci pour les tips, je teste dès que j’ai un peu de temps
J’utilise les RPi qu’en CLI, alors l’affichage graphique, dans la majorité des cas, est superflus pour moi.
Mon guide pour utiliser l’audio via Bluetooh, c’est pas exactement ce que tu veux faire, mais t’aideras peut-être à y voir plus clair, car je dois passer avec Pulse.
Éditer la sortie audio sur un RPi n’a jamais marché correctement avec moi. Pour cette raison j’ope plus sur la désactivation du module audio pour que le système ne prenne en charge que celui tu ajouteras. Cette choses est valide aussi si tu déroute l’audio vers le BT.
Assure toi aussi de lancer les paramètres APRÈS que le device soit chargé.
Pour la vidéo, tu peux facilement désactiver les sorties, consulte la documentation pour savoir comment faire, ou demande à ChatGPT, qui pourras t’aider aussi. Mais assure toi d’avoir le SSH actif (rappel), sinon tu auras l’air un peu fou si tu oublie
Merci pour ton guide bluetooth! C’était ma deuxième option comme j’ai aussi une enceinte bluetooth. Malheureusement j’ai la super erreur « No default controller available » dans bluetoothctl et je n’ai pas encore réussi à résoudre ce problème
Je vais checker ta partie qui parle de pulse pour voir si ça m’aide
Et t’inquiète pas, en image je gère =p
Et oui le ssh est bien activé, sinon impossible de me connecter à ma raspi ^^
merci tempsx92 pour l’idée ^^
peut-être que si l’audio ne veut pas marcher il faudra que je me fasse une raison
sudo dietpi-config > advanced options > bluetooth > on
Il se peut que je sois un vilain trolleur et que l’option 6 ait été la seule et unique raison de mon malheur ces derniers jours :))) donc à tester en priorité
7. bluetoothctl scan on
===> Discovery started
autres choses que j’ai pu tester:
sudo rmmod btusb
sudo rmmod btintel
Vu que ces DietPi, je ne serais te dire. mais clairement il désactive un max de truc pour le rendre léger, car le BT est actif par défaut sur un RPi. Je ne sais pas si il ce base sur Raspbian ou Debian pour travailler leur version, alors c’est du tatonnement.
Par exemple ça, pas besoin de le faire sous Raspbian, mais que DietPi semble avoir besoin.
Comme j’ai dis plus tot, j’ai essayé DietPi et je me suis retrouvé avec plus de problème que de solution, alors je me contente de Raspbian, que je « lite » par moi-même, selon les besoins.
donc j’en etais à me connecter en bluetooth, le scan marche, le pairing fonctionne… malheureusement, même en trustant le device, la connection se clôt quasi immediatement je pense que c’est mon installation de pulseaudio qui est mauvaise donc pas de bluetooth vers une enceinte
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.150/24 #remplacez 192.168.1.150 par votre ip locale
load-module module-alsa-sink device=hw:0,0
sudo vim /etc/pulse/daemon.conf
log-level = info
exit-idle-time = -1
sudo vim /etc/pulse/client.conf
default-server = tcp:192.168.1.150:4713
sudo vim /usr/bin/start-pulseaudio-x11
/usr/bin/pactl load-module module-native-protocol-unix auth-anonymous=1 socket=192.168.1.150:4713 # 4713 c'est le port de pulseaudio
J’ai trouvé une partie des infos ici:
I use Pulseaudio to share audio between a desktop and a Raspberry Pi.
However, Pulseaudio needs dbus, and dbus needs an X session. Without graphical session, Pulseaudio is only able to run in system mode, which is officially not recommanded.
Besides on a Raspberry Pi, the cost of an X session is dramatically high, so I would like to get rid of it in the most efficient (less costly) way.
How can I start the smallest X session for Pulseaudio to kick in ?
Voilà normalement avec ça votre enceinte bluetooth se connecte
dernier problème de mon côté: aplay -l est vide ='(
^^ Ici ont s’assure que les « policy » du bluetooth sont chargé pour s’activer avec PulseAudio
echo "Trying to connect the Bluetooth speaker"
while read x ; do sleep 2s ; echo $x ; done <<eof | bluetoothctl
power on
agent on
default-agent
connect XX:XX:XX:XX:XX:XX
quit
eof
echo "Done BTSPK Connection process"
^^Et cette dernière section est celle qui va créer la connexion vers les speaker BT. Tu as un While qui va passer chaque ligne de « EOF »; il va ouvrir « bluetoothctl », après il lui passe des commandes …
L’allumer
Activer 'agent
Définir comme agent par défaut
Initier la connection au MAC ADDR déjà « pair » avant…
Quitter « bluetoothctl »
Dans ta partie, tu as …
Qui techniquement sert a rien…
Tu demande au bluetoothctl de d’allumer le scan (ce qui est utilise au pairrage seulement)
Tu le fait attendre 60 secondes, ici tu as rien et c’est donc inutile
Tu ferme le scan, tu as rien fait avec le scan en fin de compte.
Tu fait dormir ton script pour rien…
Après tu ajoute le script en cron, ce que je déconseille, le boot du cron n’est pas fiable. Songe à l’inclure dans le script de connexion de l’utilisateur dans ~/.profile . (consulte cette section de mon guide pour bien l’intégrer; RPi-Bluetooth Audio — Wiki levelKro. )
Regarde bien mon guide au complet, il marche toujours dans la dernière version de Raspbian.
Rappel de l’url; RPi-Bluetooth Audio — Wiki levelKro
Tu as une section a faire manuellement une fois, avant d’arriver au script de démarrage, assure toi de le faire correctement. Si le lien est perdu avec le device (pour inactivité) il faut ajuster PulseAudio dans la config, consulte cette petite section qui corrige ce problème; RPi-Bluetooth Audio — Wiki levelKro .
–
Toute cette section te cause tes problème, en lecture rapide, j’en comprend que tu tente de créer plutot un service TCP, un serveur Audio ? Ce qui rend inutile ta partie BT et rend le PulseAudio pour une sortie audio via le réseau, la je ne comprend plus ton objectif, c’est complètement inutile. Deplus, il est indiqué que cette partie est pour… sortir l’audio depuis le RPi sur un PC distant…
En dessous du lien il y a cette information…
Traduction: J’utilise PulseAudio pour partager l’audio entre le bureau et le RPi
Deplus ce code ne marche pas car…
Traduction: Autrement, Pulseaudio à besoin du DBUS, et DBUS à besoins de X, Sans interface graphique (GUI), PulseAudio ne peut marche qu’en mode système
Ce qui rend ton code inactif, vu que tu ne démarrage pas de GUI. Contente toi de ma méthode, qui marche sans le GUI (mais qu’en CLI)
en fait l’idée du scan on / sleep 60 c’était de laisser à la machine le temps de se connecter à l’enceinte, mais oui ça ne marche ptet pas ^^ je pensais m’en occuper plus correctement quand je pourrai jouer du son =')
le start bluetooth est déjà dans mon startup.sh je crois que j’ai oublié de le montrer =p
~/startup.sh
je complète mon startup avec ton truc sur pulseaudio + les policy + la connexion
le sleep 9999 sert à garder le dbus(ou la x session ou jsplus quoi) actif, et ça je suis obligé sinon pulseaudio crash sur ma dietpi
nan je veux pas initier de connexion à ma raspberrypi, je veux l’allumer et que tout se connecte tout seul, si je dois me connecter en ssh à chaque fois ça va me saouler =')
à la fin cela dit que sans GUI pulse ne marche pas, c’est mon cas. Ce que je comprends c’est qu’ils simulent un GUI avec X pour que pulse marche ( et depuis que je le fais cela marche…)
et le sleep permet de garder le process X actif, autrement il se ferme, le « GUI simulé » se ferme et pulse décède misérablement
je vais voir pour le reste, j’ai ptet fait des bêtises =p
j’essayerai de faire un tuto propre pour dietpi, en attendant je teste tout
j’ai abandonné le bluetooth, j’ai connecté mon enceinte avec la prise jack
carte son: sudo dietpi-config > audio options > soundcard > rpi-bcm2835-auto
reboot