Pour obtenir un signal audio de qualité sur Pi, une solution consiste à utiliser un HiFiBerry DAC (Digital - Analog Converter = CNA : Convertisseur Numérique-Analogique).
Ces DAC existent en plusieurs versions :
Les caractéristiques des différentes cartes peuvent être comparées sur hifiberry.com.
Les cartes DAC+ peuvent être connectées directement sur le GPIO du Pi. Les broches non utilisées par le DAC peuvent être réutilisées pour d'autres utilisations, auquel cas il faut souder des broches additionnelles à la carte DAC+.
Ci-dessous le schéma de câblage d'un DAC+ HifiBerry : hifiberry
La version pour Raspberry A et B doit être installée sur la broche 5. Cela requiert quelques manipulations supplémentaires notamment.
Une fois la carte installée, il reste quelques étapes de configuration logicielle pour que tout fonctionne
dtoverlay=hifiberry-dac
dtoverlay=hifiberry-dacplus
force_eeprom_read=0
./etc/asound.conf
(le créer s'il n'existe pas) avec le contenu suivant :
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}
A présent vous devriez entendre le son par votre carte HiFiBerry.
Vous ne pouvez pas changer le volume du son dans EmulationStation seulement par Alsamixer / Amixer.
Les cartes son ALSA (et c'est le cas des HiFiBerry) peuvent être contrôlées par Alsamixer.
Ce dernier est une interface graphique, alors que Amixer fonctionne en mode texte, notamment pour des scripts.
Puisque alsa-utils
est installé sur Recalbox, HifiBerry fonctionnera sans utilitaires supplémentaire.
Les DAC+ Light et l'ancienne DAC n'ont pas de réglages possible dans ALSA.
Avec la commande amixer
vous aurez une version textes des différents réglages du DAC.
La meilleure façon de changer le volume est de modifier le "Overall volume". Son nom peut différer selon la carte : ‘PCM’, ‘Digital’, ‘Master’, à vous d'essayer.
Les commandes suivantes vous permettent de changer le volume par le terminal :
amixer sset ‘Master’ -- 90%
(déconseillé car l'échelle est logarithmique)amixer sset ‘Master’ -- -3dB
(en décibels, réglage recommandé)amixer sset ‘Master’ – 2000
(unité empirique, déconseillé)Vous pouvez utiliser Google pour découvrir le reste des commandes possibles avec les mots clé : amixer, alsamixer.
Voici un exemple en python pour gérer le volume.
Tout d'abord, importez la commande du sous-processus :
from subprocess import call
call(["amixer", "sset", "Digital", "--", str(YourDesiredVolume)+"dB"])
Ce script peut notamment être utilisé pour changer le volume par l'utilisation du GPIO.
Ci-dessous un récapitulatif de quelques commandes :
amixer sset 'PCM' 70%
(pourcentage)amixer sset 'Master' 3dB
(Decibel)amixer sset 'Mic' 4
(valeurs matérielles)amixer sset 'PCM' 10%+
(augmentation de la valeur en cours. L'unité peut être des % ou des dB)amixer sset 'Line' cap
(Recording on/off: cap, nocap)amixer sset 'Mic' mute
(Playback on/off: mute, unmute)amixer sset 'Master' off
(On/Off: on/off)amixer sset 'Mic Select' 'Mic1'
(Nom du périphérique)Source : https://wiki.ubuntuusers.de/amixer/