Skip to main content

Historique: Alsa - le fichier asoundrc

Aperçu de cette version: 42




Les (mystérieux) fichiers de configuration et les PlugIns

ALSA peut être configuré pour toutes sortes d'utilisations un peu avancées et possède un système de greffons. Ceux-ci ne sont pas graphiques, c'est à dire que vous n'allez pas cocher tel ou tel greffons, ils sont utilisables/configurable dans les fichiers de configuration d'ALSA par un système d'écriture. Les informations à ce sujet étant relativement rares et pas toujours très claires, nous allons essayer de dégrossir ceci dans ces page.


Les fichiers de configuration d'ALSA

Avant tout, voyons où se trouvent ces fichiers de configurations et quels sont leurs différents rôles.

Il y a 2 fichiers de configuration pour les pilotes d'ALSA (ses pilotes et ses modules) :
  • un fichier pour les utilisateurs,
  • et un fichier pour les réglages globaux du système.

Aucun de ces fichiers n'est indispensable pour qu'ALSA fonctionne correctement, la plupart des applications fonctionneront sans cela. La principale utilisation de ces fichiers est de permettre d'ajouter des fonctionnalités telles que du routage ou de la conversion de fréquence d'échantillonnage.

➡️ Voir également : Informations tirées de http://alsa.opensrc.org/.asoundrc.

Emplacements des fichiers de configuration suivant les distributions :

Note : à priori, certains systèmes utilisent, pour les réglages globaux, le fichier /etc/asound.conf.



Principe général

(note : tiré/traduit/adapté de http://alsa.opensrc.org/index.php/Plugin_Documentation qui donne les bases de compréhension du fichier .asoundrc)



Les greffons sont utilisés pour créer des périphériques virtuels qui pourront être utilisés comme des périphériques matériel par vos applications.
À noter que les greffons créent des latences supplémentaires du fait des processus qu'ils déploient. Par exemple, si vous créer un greffon de ré-échantillonnage, ceci utilisera pas mal votre processeur et pourra ralentir votre système.

Les périphériques virtuels sont créés dans les fichiers de configuration d'ALSA (voir le chapitre ci-dessus).

Regardons un squelette basique pour définir un périphérique virtuel :

pcm.UNNOM {
    type TYPEDEGREFFON
    slave {
        pcm NOMDESCLAVE
    }
}


Ceci crée un nouveau périphérique virtuel :
  • du nom de UNNOM,
  • d'un type TYPEDEGREFFON,
  • qui fait suivre sa sortie dans un autre périphérique (virtuel ou matériel) du nom de NOMDESCLAVE.


UN_NOM peut être n'importe quel nom simple. C'est le nom que vous utiliserez pour faire référence à ce périphérique plus tard. Il y a plusieurs noms de périphériques virtuels pré-définis, comme default et dmix.

TYPE_DE_GREFFON est l'un des noms listés dans la documentation officielle. Par exemple : dmix (note : dmix peut être un type de greffon ou un périphérique virtuel prédéfini), jack, et linear.

NOM_D_ESCLAVE est le nom d'un autre périphérique virtuel ou d'une chaine qui décrit un périphérique matériel. Pour spécifier le premier périphérique de la première carte, utilisez "hw:0,0" (avec les quotes).

Utiliser deux cartes en même temps

Voir le lien suivant (sur le site) : ALSA_MultiCartes


Router un flux ALSA vers JACK

Installation

Le PlugIn JACK est distribué dans le paquet alsa-lib de la distribution d'ALSA (il peut avoir un nom différent de alsa-lib, par exemple libasound2 ou libasound2-plugins chez Ubuntu). Pour savoir s'il est installé, vous pouvez par exemple rechercher le fichier libasound_module_pcm_jack.so sur votre système. Sinon, il se compile très facilement à la main. Bien entendu, il faut que JACK et ALSA soient installés.

Configuration

La configuration suivante crée un périphérique virtuel appelé "jackplug" qui crée une connection à JACK lorsqu'on l'utilise.
pcm.jackplug {
    type plug
    slave { pcm "jack" }
}

pcm.jack {
    type jack
    playback_ports {
       0 alsa_pcm:playback_1
       1 alsa_pcm:playback_2
   }
    capture_ports {
       0 alsa_pcm:capture_1
       1 alsa_pcm:capture_2
    }
}
 


Test


On pourra alors indiquer à nos applications ALSA d'utiliser ce périphérique. Par exemple avec aplay on tape :
Copy to clipboard
aplay -Dplug:jackplug mon_fichier.wav

Si on regarde avec qJackCtl, on constate bien qu'une paire de ports de sortie est apparue, nommé d'après le numéro de processus de l'application :
Cliquer pour agrandir
Cliquer pour agrandir


Si on souhaite utiliser ce périphérique virtuel comme périphérique par défaut on peut l'indiquer dans .asoundrc de la façon suivante :
pcm.!default {
    type plug
    slave { pcm "jack" }
}


Il n'est alors plus nécessaire de spécifier pour chaque application le périphérique à utiliser.

Attention toutefois, j'ai rencontré des problèmes avec certaines application, notamment mplayer qui se bloque.


Faire du ré échantillonnage

à compléter... ...on peut aussi utiliser Audacity ou Rezound.


Faire du mixage software

Beaucoup de cartes son n'offrent pas de mixage hardware (=mixage matériel) et ne permettent donc pas d'être utilisées simultanément par plusieurs applications. On doit alors recourir au mixage software (=mixage logiciel) : la partie mixage sera effectuée par un logiciel qui aura l'accès exclusif à la carte.

Sous Linux, les serveurs son habituels offrent ces possibilités de mixage logiciel mais, pour des raisons de latence, on préfèrera l'utilisation de JACK.

Un PlugIn a été développé afin d'offrir nativement cette possibilité de mixage logiciel dans ALSA : il s'agit de Dmix (pour "direct mixing").

Il peut être combiné en tant que PlugIn ALSA par défaut, offrant en théorie cette possibilité de mixage logiciel à toute application compatible ALSA. Dans la pratique, seules certaines applications en profitent !


plughw

"plughw" est une sorte d'abstraction qui étend "hw" et permet d'utiliser sa carte avec plus d'applications. Le "problème" de certaines cartes professionnelles est que leur conception déroute certains logiciels qui s'attendent à trouver une bête sortie stéréo en 44.1khz/16bit. "plughw" permet donc de présenter à ces logiciels une sortie virtuelle standard.


Notes

Sous certains distributions (ex: Gentoo), il y a un paquet alsa-plugins qu'il faut installer.


Ressources : la documentation officielle des plugins d'ALSA : http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html.

Historique

Information Version
Mon 05 Mar 2018 21:56 olinuxx + ponctuations + drapeau EN + 1 lien externe + mise en page / cohérence wiki 73
Afficher
Thu 14 Sep 2017 13:55 olinuxx regroupement des alias + sommaire automatique 72
Afficher
Thu 14 Sep 2017 08:37 allany alias+1 71
Afficher
Tue 16 Jul 2013 23:40 utilisateur_anonyme2 70
Afficher
Fri 01 Mar 2013 19:21 pianolivier nouvelle boite de navigation 69
Afficher
Wed 10 Oct 2012 17:45 pianolivier correction d'un lien 68
Afficher
Wed 11 Jul 2012 14:49 olinuxx +1 alias 67
Afficher
Sun 26 Dec 2010 21:59 olinuxx rédaction 66
Afficher
Sun 26 Dec 2010 21:58 olinuxx ajout liens 65
Afficher
Sun 26 Dec 2010 20:31 olinuxx 64
Afficher
Sun 26 Dec 2010 19:58 olinuxx BOX 63
Afficher
Sun 26 Dec 2010 19:46 olinuxx (mode stylo rouge) 62
Afficher
Sun 26 Dec 2010 19:39 olinuxx rédaction 61
Afficher
Sun 26 Dec 2010 18:39 olinuxx BOX + tuto 60
Afficher
Sun 26 Dec 2010 18:38 olinuxx déplacement infos en page dédiée 59
Afficher
Sun 26 Dec 2010 18:10 olinuxx BOX + tuto 58
Afficher
Sun 26 Dec 2010 18:07 olinuxx déplacement info en page dédiée 57
Afficher
Sun 26 Dec 2010 18:02 olinuxx ajout doc 56
Afficher
Sun 26 Dec 2010 17:58 olinuxx rédaction 55
Afficher
Sun 26 Dec 2010 17:15 olinuxx BOX 54
Afficher
Sun 26 Dec 2010 17:04 olinuxx déplacement dans la page ALSA_Dmix 53
Afficher
Sun 26 Dec 2010 16:51 olinuxx ajout TUTO : Router un flux ALSA vers JACK 52
Afficher
Sun 26 Dec 2010 16:49 olinuxx déplacement info dans une page dédiée 51
Afficher
Sun 26 Dec 2010 16:47 olinuxx suppression infos non-utiles après la BOX-ification 50
Afficher
Sun 26 Dec 2010 16:46 olinuxx rédaction/organisation 49
Afficher
Sun 26 Dec 2010 16:43 olinuxx ptits trucs 48
Afficher
Sun 26 Dec 2010 16:42 olinuxx (mode stylo rouge) 47
Afficher
Sun 26 Dec 2010 16:42 olinuxx (mode stylo rouge) 46
Afficher
Sun 26 Dec 2010 15:36 olinuxx BOX 45
Afficher
Sun 26 Dec 2010 15:27 olinuxx BOX-ification 44
Afficher
Sun 26 Dec 2010 15:07 olinuxx 43
Afficher
Sun 26 Dec 2010 15:05 olinuxx 42
Afficher
Sun 26 Dec 2010 15:04 olinuxx 41
Afficher
Sun 26 Dec 2010 15:03 olinuxx rédaction 40
Afficher
Sun 26 Dec 2010 14:52 olinuxx (mode stylo rouge) 39
Afficher
Sun 26 Dec 2010 14:52 olinuxx rédaction 38
Afficher
Sun 26 Dec 2010 14:34 olinuxx rédaction 37
Afficher
Sun 26 Dec 2010 14:31 olinuxx 36
Afficher
Sun 26 Dec 2010 14:29 olinuxx rédaction 35
Afficher
Sun 26 Dec 2010 13:57 olinuxx titres 34
Afficher
Sun 26 Dec 2010 04:46 olinuxx 33
Afficher
Sun 26 Dec 2010 04:32 olinuxx rédaction 32
Afficher
Mon 13 Dec 2010 00:47 olinuxx rédaction 31
Afficher
Wed 24 Nov 2010 00:36 olinuxx 30
Afficher
Wed 24 Nov 2010 00:18 olinuxx 29
Afficher
Wed 24 Nov 2010 00:06 olinuxx 28
Afficher
Wed 24 Nov 2010 00:05 olinuxx 27
Afficher
Tue 23 Nov 2010 22:57 olinuxx 26
Afficher
Tue 23 Nov 2010 22:56 olinuxx 25
Afficher
Tue 23 Nov 2010 22:50 olinuxx mise à jour 24
Afficher
  • «
  • 1 (en cours)
  • 2