Bonjour,
Jackd, c'est un passe-plat si vous voulez. Multi-source, multi-sortie.
Il dispose d'une trés faible latence, ca fonctionne trés bien mais si vous n'avez qu'un lecteur audio, et un dac, c'est totalement inutile de l'activer.
Pulseaudio, c'est, comment dire, inutile de manière générale... A la base, c'est pour simplifier la détection de device, la configuration, dans le cadre d'une machine desktop.
Le problème de ce truc, c'est que c'est catastrophique à configurer hors des sentiers battus, et ca resample. Donc pour le bit-perfect, on oublie complétement, c'est contre-productif.
Historiquement, vous avez deux layers son dans Linux, je parle du kernel, l'OSS (qui est en fin de vie) et Alsa.
Jackd et Pulseaudio utilisent donc alsa... et se mettent entre ce qui veut jouer de l'audio et alsa.
Donc si vous n'avez pas jack ni pulseaudio, votre lecteur tapera directement sur alsa.
Alsa, c'est un simple fichier de config: /etc/asound.conf (ou sur le user ~/.asound.conf).
Ca configure la couche Kernel, donc les interfaces audio hardware que vous avez.
Pour le bitperfect par exemple de l'UD-503, c'est aussi simple que ca, deux lignes:
pcm.!default { type hw card UD503 }
ctl.!default { type hw card UD503 }
Pour savoir le nom de votre carte, il suffit de taper ceci:
# aplay -l
...
card 2: UD503 [UD-503], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
Le nom à mettre dans 'card', c'est donc le premier. juste aprés le 'card X:'.
Vous n'avez rien à relancer. Alsa charge sa configuration au moment où votre player se connecte à l'interface audio alsa.
Si vous êtes en 'user' et non en root, il faut que votre user appartiennent au groupe qui est autorisé à activer alsa.
Il suffit de le rajouter au groupe 'audio' comme ceci:
# sudo adduser <myuser> audio
Ensuite, il suffit d'utiliser un lecteur, 'mpd' par exemple, qui va lire la musique et l'envoyer sur l'interface alsa.
'mpd' a le grand interet d'etre un serveur, et vous interagissez avec lui avec des clients. Il y en a plein, notamment pour Android, Apple, linux etc..
Donc pas besoin d'avoir un écran sur la machine, le serveur tourne tout le temps et attend que vous lui disiez de lire tel ou tel fichier.
Ma configuration mpd du device (/etc/mpd.conf):
audio_output {
type "alsa"
device "default"
name "UD503"
auto_resample "no"
auto_channels "no"
auto_format "no"
use_mmap "yes"
# mixer_type "software" # desactivé pour le UD-503 - controle de volume du preamp integre
mixer_type "disabled"
# Good bandwidth
period_time "50000"
buffer_time "2500000"
dsd_usb "yes"
}
Ici on voit bien que le resample, changement de format sont désactivés. Donc c'est du bitperfect. Le format du fichier est envoyé tel quel au device de lecture.
Vous avez l'ensemble de ma conf ici:
gp
Le kernel RT, c'est un petit extra mais ce n'est pas nécessaire bien sûr.
Ca vous permet de baisser la latence du kernel pour certains process, pour simplifier ils peuvent devenir en quelque sorte ultra prioritaire sur les I/O systeme et CPU.
Donc ca vous permet de prioriser les interrupts (IRQ) du bus USB par exemple, et le lecteur 'mpd'. C'est un peu plus complexe à tuner.
Globalement, si votre machine n'a pas 15 ans ou que vous ne faites pas tourner de process hyper gourmand en ressource dessus, vous pouvez vous passer du RT et laisser linux faire son travail admirablement.
J'espere que c'était assez clair ;-)