RSS: Blog | Wiki | Forum

Casque USB audio

Un article de Easyneuf.

Sommaire

[modifier] Casque USB Audio / USB Headphone

Les tests ont été effectués avec le casque USB : ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter

[modifier] Configuration Alsa

Le casque ne supporte pas de fonctionner sur un hub USB (il faut activer le mode dans le kernel : Cannot submit datapipe for urb 0, error -38 : enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub). Le casque n'est pas une vrai carte son, donc il ne peut pas jouer tous les formats à toutes les fréquences. A priori, le casque supporterait le mode : frequence 44100, 2 canaux

Voici la configuration {{{~/asoundrc}}} utilisée pour que alsa fasse automatiquement la configuration

ctl.myplugdev {
    type hw
    card 1
}

pcm.myplugdev {
    type plug
    slave { 
        pcm hw:1 
        rate 44100
        channels 2
    }
}

Remarques:

  • Le numéro de la carte a été harcodé dans le fichier (1). L'index varie en fonction de l'ordre de détection des périphériques audio. (Voir `{{{cat /proc/asound/cards}}}')
  • Une nouvelle carte virtuelle a été associée (myplugdev). Le nom peut-être changé.
  • Le casque supporte aussi le 48Khz, il faudrait faire une modification pour éviter d'avoir à convertir le son à cette fréquence là.
  • Ne pas oublier de faire un unmute sur la configuration du casque

[modifier] Redirection des flux audio sur le casque

Il suffit de rajouter ces lignes à la configuration précédente

pcm.!default pcm.myplugdev
ctl.!default ctl.myplugdev

/!\ Note /!\

La redirection ne marche que pour les nouveaux programmes lancés après le branchement des périphériques. Donc un redémarrage de l'application est nécessaire.


From the Alsa documentation:

Specifying the !default name supercedes the one defined in the ALSA lib api.

[modifier] Configuration des touches

Le casque est aussi détecté comme un périphérique USB-HID (Human Interface Device). Il envoie donc des touches :

#define KEY_MUTE                113
#define KEY_VOLUMEDOWN          114
#define KEY_VOLUMEUP            115

Ces touches sont normalisées et se trouvent dans le fichier /usr/include/linux/input.h

[modifier] Références