Nuforce µDAC-3 et GNU/Linux

Parce que tout le monde n’est pas forcément pleinement satisfait de la qualité de la carte son intégrée à la carte mère de son pc ou celle de son pc portable, il est recommandé de se pencher sur des solutions alternatives pour pleinement profiter de sa discothèque dématérialisée.

Plutôt que d’acheter une carte son dédiée qui peut être assez onéreuse et être dédiée au pc dans lequel on l’installe, il existe des petits boitiers à brancher en USB qui sont reconnus comme des cartes sons externes, des DAC (Digital/Analogic Converter).

Le boîtier de Nuforce µDAC-3 est plutôt bon marché si on considère le prix que peut atteindre ce type de matériel. Quand on parle de HIFI on peut facilement atteindre des sommes à 4 chiffres pour s’équiper. Bien avant d’atteindre l’excellence on peut déjà faire un pas dans la bonne direction sans avoir des soucis avec son banquier !

Matériel

Les données brutes de la fiche technique de ce petit DAC sont en effet assez sympathiques :

  • entrée numérique 24 bits pour des échantillonnages de 32, 44,1 (le CD audio), 48 (le DVD), 88,2 et 96kHz par USB 1.1 ou 2
  • rapport signal/bruit de 98dB
  • sortie casque (jack 3,5mm), sortie RCA
  • alimentation par le port USB
  • petite dimension (68 x 38 x 21 mm) et léger

Après les tests effectués, une première remarque indispensable : branchez vous sur une prise USB du pc directement, pas par l’intermédiaire d’un hub ! En effet la liaison numérique en 24bits/96k ne fonctionne pas bien en passant par un hub, le son est complètement déformé (edit : à tester tout de même, j’avais peut-être un faux-contact dans la prise micro-usb du DAC !).

Quand vous branchez le DAC, le noyau Linux le reconnaît en chargeant le module snd-usb-audio. On a donc bien affaire à un driver ALSA pour carte son USB.

Au chargement ça donne quelques lignes de journaux de ce type :

[36739.167089] usb 1-1.2: new full-speed USB device number 5 using ehci-pci
[36739.294707] usb 1-1.2: config 1 has an invalid interface number: 3 but max is 2
[36739.294717] usb 1-1.2: config 1 has an invalid interface number: 3 but max is 2
[36739.294723] usb 1-1.2: config 1 has an invalid interface number: 3 but max is 2
[36739.294728] usb 1-1.2: config 1 has no interface number 2
[36739.311074] usb 1-1.2: New USB device found, idVendor=262a, idProduct=10aa
[36739.311082] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[36739.311087] usb 1-1.2: Product: NuForce USB Audio
[36739.311091] usb 1-1.2: Manufacturer: Nuforce Inc.
[36739.476867] hidraw: raw HID events driver (C) Jiri Kosina
[36739.493386] usbcore: registered new interface driver usbhid
[36739.493390] usbhid: USB HID core driver
[36739.504473] input: Nuforce Inc. NuForce USB Audio as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input21
[36739.505009] hid-generic 0003:262A:10AA.0001: input,hidraw0: USB HID v1.00 Device [Nuforce Inc. NuForce USB Audio] on usb-0000:00:1a.0-1.2/input0
[36739.514346] usbcore: registered new interface driver snd-usb-audio

Pour le sous-sytème ALSA, il s’ajoute une carte son qui apparait dans la liste donnée par la commande "aplay -l" dans un terminal :

**** Liste des Périphériques Matériels PLAYBACK ****
carte 0: PCH [HDA Intel PCH], périphérique 0: VT1802 Analog [VT1802 Analog]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 0: PCH [HDA Intel PCH], périphérique 1: VT1802 Digital [VT1802 Digital]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 0: PCH [HDA Intel PCH], périphérique 2: VT1802 Alt Analog [VT1802 Alt Analog]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 0: PCH [HDA Intel PCH], périphérique 3: HDMI 0 [HDMI 0]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 0: PCH [HDA Intel PCH], périphérique 7: HDMI 1 [HDMI 1]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 1: Audio [NuForce USB Audio], périphérique 0: USB Audio [USB Audio]
  Sous-périphériques: 0/1
  Sous-périphérique #0: subdevice #0

On voit dans cette liste la carte son numéro 0 qui est la carte son intégrée du pc portable de test et la carte son numéro 1 qui correspond au µDAC-3.

En faisant la commande suivante "cat /proc/asound/card1/stream0" on obtient le détail des capacités de la nouvelle venue en train de fonctionner

(Status : Running) :
Nuforce Inc. NuForce USB Audio at usb-0000:00:1a.0-1.2, full speed : USB Audio

Playback:
  Status: Running
    Interface = 3
    Altset = 2
    Packet Size = 448
    Momentary freq = 44100 Hz (0x2c.1990)
    Feedback Format = 10.14
  Interface 3
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 3 OUT (ASYNC)
    Rates: 96000, 88200, 48000, 44100, 32000
  Interface 3
    Altset 2
    Format: S32_LE
    Channels: 2
    Endpoint: 3 OUT (ASYNC)
    Rates: 96000, 88200, 48000, 44100, 32000

Plusieurs remarques ici :

  • dans la partie "Status : Running" on voit la fréquence d’échantillonnage en cours
  • la transmission en ASYNC, c’est à dire qu’il y a un tampon de données entre le PC et le DAC pour éviter les coupures de flux et donc les hachures sonores au final
  • les fréquences d’échantillonnages sont bien celles annoncées par le fabricant
  • on a 2 possibilités de décodage : 16 bits et 32 bits

Pour ce dernier point, les données en 24bits sont transmises sur le flux 32bits. N’ayant pas de morceaux encodés en 32bits pour tester il s’agit certainement d’une émulation au niveau du driver qui ne permet peut-être pas de décoder matériellement du 32bits, ça reste à voir.

Passons à la configuration pour utiliser ce petit boîtier.

Logiciel

Si vous avez le gestionnaire de son Pulseaudio actif sur votre machine, sachez qu’il est capable d’utiliser le DAC. Il suffit de choisir la bonne carte son dans ses paramètres de sortie. Par contre attention, le mixage sonore de Pulseaudio impose une sortie en 16bits et 44,1kHz (équivalent CD audio), les sources sonores avec une meilleure définition seront réduites à ces valeurs.

Pour profiter d’une meilleure qualité il faudra passer directement par ALSA ! Toutefois vous n’aurez pas à désinstaller Pulseaudio pour ce faire comme on peut le lire de ci de là, il n’interfère en rien si on le laisse gérer la sortie de la carte son interne par exemple.

Peut importe ensuite le logiciel de lecture de musique que vous utilisez du moment que dans ses préférences vous puissiez directement choisir le périphérique de sortie.

Plusieurs exemples :

  • pour audacious, dans le menu Fichier->Préférences et l’onglet audio, le module de sortie doit être positionné à ALSA, et dans les préférences il faut sélectionner (pour mon cas, à adapter à votre configuration) la ligne "hw:1,0" ; bien penser également à désactiver la partie "replaygain" pour éviter que le lecteur ne manipule trop les données avant envoi à la sortie audio
  • pour MPD on doit activer une sortie audio de type "alsa" de cette manière dans le fichier de configuration que vous utilisez :
audio_output {
    type		"alsa"
    name		"default"
    device		"hw:1,0"	# optional
#	format		"44100:16:2"	# optional
    mixer_type      "hardware"	# optional
#	mixer_device	"default"	# optional
#	mixer_control	"PCM"		# optional
#	mixer_index	"0"		# optional
}
  • pour mplayer la ligne de commande qui correspondrait à cette sortie son : " -ao alsa:device=hw=1.0 "

Attention toutefois à Rhythmbox qui est intégré à Gnome3 de telle manière qu’il passe par Pulseaudio et donc vous n’aurez pas accès à la qualité maximale délivrable par votre matériel !

Je ne sais pas encore ce qu’il en sera pour "Gnome Music" de la version 3.10 du bureau Gnome 3. A suivre !

En attendant, profitez bien de vos albums encodés en FLAC 24bits 96kHz avec un petit DAC et un bon casque audio !