LibraZiK - Accueil
Blog
Documentation
Contact
Tutoriels
Don
Cliquez ici pour donner sur le compte liberapay du projet
Démos
Bogue
LibraZiK - summary in english

Outils pour utilisateurs

Outils du site


manuel:alsa

Manuel de LibraZiK-3 - LibraZiK-3 et ALSA

ALSA - logo



Avant-propos

ALSA est la “couche basse” du système audio primaire utilisé par LibraZiK-3. Que vous utilisiez ALSA ou FFADO, il sera toujours utile de connaître quelques bases concernant ALSA, ce que nous allons voir dans cette page.

ALSA fournit principalement :

  • les pilotes pour la majorité des interfaces audio/MIDI 1) ,
  • une implémentation du protocole MIDI appelé ALSA-MIDI.

Convention de nommage des périphériques ALSA

La hiérarchie de nommage d'ALSA est : interface / périphérique / sous-périphérique.

Une interface peut posséder plusieurs sorties et entrées (exemple : haut-parleurs, spdif, mic-in, line-in). Ceux ci sont des “périphériques”, et chacun de ces périphériques peut avoir un ou plusieurs sous-périphérique (habituellement, il n'y a qu'un seul sous-périphérique, s'il y en a davantage, alors l'interface est capable de faire du mixage matériel et ces sous-périphériques sont des entrées individuelles de ce mixeur matériel).

La commande aplay -l affiche les sorties de toutes les interfaces/périphériques/sous-périphériques, et la commande arecord -l toutes les entrées.

Les “hw” sont ce qu'ALSA appelle les “pcm” et sont des points-finaux auxquels les applications s'adressent pour réaliser une lecture d'audio. Il existe plusieurs “pcm”, pour supporter le mixage logiciel et les conversions de format. Le “hw” est pratiquement un accès direct au pilote/matériel. Sa syntaxe complète est : “hw:INTERFACE,PÉRIPHÉRIQUE,SOUS-PÉRIPHÉRIQUE” mais les arguments sont optionnels.

  • si SOUS-PÉRIPHÉRIQUE n'est pas précisé, le premier sous-périphérique disponible est utilisé,
  • si PÉRIPHÉRIQUE n'est pas précisé, c'est habituellement le périphérique “0” qui est utilisé,
  • si INTERFACE n'est pas précisé, l'interface par défaut est utilisée (les valeurs par défaut sont configurables avec des variables d'environnement et des variables ALSA).

Exemple

En utilisant le dorsal alsa avec jackd : quelle est la différence, dans Cadence ou QjackCtl par exemple, entre “hw:1” et “hw:1,0” ?

Par défaut, “hw:1” = “hw:1,0” aussi longtemps que le périphérique “0” est paramétré en tant que périphérique par défaut.

Astuce

Il est souvent plus intelligent d'utiliser les noms (“hw:PCH”) des interfaces plutôt que les nombres (“hw:1”) car les nombres dépendent de l'ordre de détection au démarrage de la machine et peuvent changer lors de redémarrage ou de mise à jour de noyau, alors que les noms ne changent habituellement pas. Nous pouvons voir les noms des interfaces grâce aux commandes aplay -l et cat /proc/asound/cards.

Les protocoles

ALSA fournit plusieurs protocoles qui sont décrit brièvement ci-dessous. Il s'agit de ALSA-audio et ALSA-MIDI.

ALSA-audio

C'est le protocole ALSA permettant aux applications et aux matériels de produire du son et d'en enregistrer.

ALSA-MIDI

C'est le protocole ALSA permettant aux applications et aux matériels d'échanger des données MIDI. Vous ferez vous-même les connexions entre les logiciels et/ou matériel suivant votre désir sur le principe de : “je veux que les informations MIDI qui viennent de mon clavier-piano aillent dans le logiciel A”. Pour faire ces connexions, vous pourrez utiliser une baie de brassage.

Pour un aperçu des logiciels compatible ALSA-MIDI, voir la page MIDI-ALSA.

ALSA et Cadence

Cadence est principalement utilisé pour contrôler et surveiller les divers systèmes audio de LibraZiK-3. Ceci inclut ALSA. L'interface principale de Cadence contient une section “Ponts JACK” qui contient elle-même des ponts ALSA/JACK : un pour l'audio ALSA, et un pour le MIDI ALSA. Vous n'entendrez pas l'audio produite par une application uniquement compatible ALSA lorsque JACK fonctionne, sauf si le pont audio ALSA est démarré. De la même façon, vous ne pourrez pas accéder aux périphériques MIDI ALSA lorsque JACK fonctionne sauf si le pont ALSA MIDI est démarré.

Application non-JACK

La popularité de JACK étant en augmentation, il est de plus en plus supporté, surtout par les applications de production audio. Cependant, plusieurs applications sont toujours uniquement compatibles avec ALSA. De telles applications auront leur audio envoyée à travers le même pont ALSA → JACK. Quelques exemples de telles applications :

  • Adobe Flash Player
  • Skype
  • plusieurs jeux et autres programmes

D'autres applications ont un support partiel de JACK et fonctionneront directement avec JACK en ayant leurs propres connexions. Elles fonctionneront donc sans besoin d'un pont ALSA → JACK. Mais leurs connexions ne seront pas persistantes, c'est à dire qu'elles seront connectées temporairement, mais perdront leurs connexions dès que la lecture audio en sortant sera arrêtée. Quelques exemples de telles applications sont :

Du coup, aucune d'entre elles n'offre de fonctionnalité de routage de l'audio individuel, ou d'autres capacités offertes par un logiciel natif JACK.

Commandes utiles ALSA

Les commandes suivantes 2) peuvent être utiles pour résoudre des soucis avec ALSA :

  1. alsamixer : le mixeur ALSA originel
  2. cat /proc/asound/cards : affiche les périphériques ALSA reconnus actuellement par votre système
  3. cat ~/.asoundrc : affiche votre fichier de configuration ALSA actuel
  4. (en compte administrateur) alsactl store 0 : sauvegarde la configuration actuelle pour le périphérique ALSA de numéro “0”
  5. (en compte administrateur) alsactl restore : recharge la configuration

Paquet alsa-*

alsa-firmware

Ce paquet fournit plusieurs micro-logiciels nécessaires pour faire fonctionner certaines interfaces audio.

Utilisation

Il est à noter qu'il ne s'agit pas de logiciels exécutables. Pour utiliser ces micro-logiciels, vous aurez besoin d'utiliser des logiciels fournis par le paquet alsa-firmware-loaders.

Les micro-logiciels fournis le sont pour :

Nom du micro-code interface(s) prise(s) en compte
aica Sega Dreamcast AICA
asihpi cartes AudioScience ASIHPI
cs46xx cartes Cirrus Logic CS46xx
echoaudio cartes basées sur Digigram Echo Audio
emu cartes basées sur E-Mu
hdsploader cartes RME Hammerfall DSP
korg1212 cartes Korg 1212 PCI/ISA
maestro3 cartes ESS Maestro3 PCI
mixartloader cartes Digigram miXart
pcxhrloader cartes compatibles Digigram pcxhr
sb16 cartes Sound Blaster 16
usx2yloader cartes Tascam USX2Y USB
vxloader cartes Digigram VX
wavefront cartes Turtle Beach Wavefront
ymfpci cartes Yamaha DS-1 PCI

Installation

L'installation de ce paquet est un peu spéciale :

  1. Commencer par lire l'avant propos du tutoriel : Modifier les catégories prises en compte pour un dépôt.
  2. Puis vous continuerez en appliquant la première partie du tutoriel. En le suivant, vous allez ajouter la catégorie “non-free” au dépôt LibraZiK-3.
  3. Une fois ceci fait, vous serez en mesure d'installer, grâce à Synaptic, le paquet alsa-firmware.
  4. Quand le paquet alsa-firmware sera installé, n'oubliez pas de faire revenir votre dépôt à son état normal comme suggéré dans la deuxième partie du tutoriel.

Ressources

Après installation du paquet, dans un terminal : most /usr/share/doc/alsa-firmware/README (EN)

firmware-misc-nonfree

Le paquet firmware-misc-nonfree fournit plusieurs micro-logiciels dont certains sont nécessaires pour faire fonctionner certaines interfaces audio et/ou MIDI.

Nom du micro-code interface(s) prise(s) en compte
ca0132 cartes Sound Blaster HDA CA0132

alsa-firmware-loaders

Ce paquet fournit des logiciels nécessaires pour charger les micro-logiciels du paquet alsa-firmware qui, quant à eux, pourront faire fonctionner (ou améliorer l'utilisation de) certaines interfaces audio.

  • cspctl : programme de contrôle pour les interfaces Creative Sound Blaster 16ASP et certaines interfaces Sound Blaster AWE32
  • hdsploader : chargeur de micro-logiciels pour certaines interfaces audio RME Hammerfall DSP
  • mixartloader : utilitaire pour charger les micro-logiciels dans les pilotes-son des interfaces Digigram's miXart
  • pcxhrloader : utilitaire pour charger les micro-logiciels dans les pilotes-son des interfaces compatibles Digigram's pcxhr
  • sscape_ctl : un chargeur de micro-logiciels et un utilitaire de contrôle pour interface SoundScape
  • usx2yloader : chargeur de micro-logiciels pour les interfaces USB Tascam USX2Y, et plus précisément les modèles : US-122, US-224 et US-428
  • vxloader : chargeur de micro-logiciels pour les interfaces Digigram VX

Installation

L'installation de ce paquet est un peu spéciale :

  1. Commencer par lire l'avant propos du tutoriel : Modifier les catégories prises en compte pour un dépôt.
  2. Puis vous continuerez en appliquant la première partie du tutoriel. En le suivant, vous allez ajouter la catégorie “contrib” au dépôt que vous avez sélectionné lors de l'installation de votre système.
  3. Une fois ceci fait, vous serez en mesure d'installer, grâce à Synaptic, le paquet alsa-firmware-loader qui entraînera l'installation automatique d'un autre paquet nommé fxload, ce qui est tout a fait normal.
  4. Quand le paquet alsa-firmware-loader sera installé, n'oubliez pas de faire revenir votre dépôt à son état normal comme suggéré dans la deuxième partie du tutoriel.

alsa-tools

Ce paquet fournit une collection d'utilitaires en terminal compatibles avec certaines interfaces audio ce qui vous permettra (suivant le matériel) de simplement le faire fonctionner, ou bien d'améliorer son fonctionnement.

  • as10k1 : un assembleur pour la puce DSP EMU10K1 (EMU10K2)
  • hda-verb : envoie des commandes HD Audio aux périphériques Intel HDA
  • sbiload : chargeur d'instruments OPL2/3 pour le séquenceur ALSA
  • us428control : utilitaire de contrôle pour Tascam US-X2Y

alsa-tools-gui

Ce paquet fournit des utilitaires compatibles avec certaines interfaces audio ce qui vous permettra (suivant le matériel) de simplement le faire fonctionner, ou bien d'améliorer son fonctionnement.

  • echomixer : utilitaire de contrôle de certaines interfaces audio de la marque Echoaudio
  • envy24control : utilitaire de contrôle de certaines interfaces audio basées sur la puce-son Envy24/ice1712
  • hdajackretask : réassignation de vos connecteurs jacks pour certaines puces HDA
  • hdspconf : contrôler les paramètres ALSA des cartes HDSP Hammerfall de la marque RME
  • hdspmixer : contrôle des fonctionnalités de routage avancées de la série d'interface RME Hammerfall DSP
  • rmedigicontrol : contrôle pour les interfaces RME Digi32 et RME Digi96

ld10k1

Ce paquet fournit un chargeur de patch à utiliser avec le pilote ALSA emu10k1 qui supporte les interfaces : Sound Blaster Live!, Audigy, et Audigy 2. Il inclut :

Ressources internes en anglais

Une fois le paquet installé, vous pouvez utiliser les commandes suivantes dans un terminal :

  • most /usr/share/doc/ld10k1/Audigy-mixer.txt.gz (EN)
  • most /usr/share/doc/ld10k1/AudigyTRAM.txt (EN)
  • most /usr/share/doc/ld10k1/README (EN)
  • most /usr/share/doc/ld10k1/dl10k1_usage (EN)
  • most /usr/share/doc/ld10k1/dump/README (EN)
  • most /usr/share/doc/ld10k1/examples/EMU10K1.conf (EN)
  • most /usr/share/doc/ld10k1/ld10k1_usage (EN)
  • most /usr/share/doc/ld10k1/lo10k1_usage.gz (EN)
  • most /usr/share/doc/ld10k1/patch/README (EN)

liblo10k1-0

Ce paquet fournit les bibliothèques d'exécution partagées pour le chargeur de patch ld10k1.

liblo10k1-dev

Ce paquet fournit les fichiers de développement pour le chargeur de patch ld10k1.

Compatibilité matériel

Compatibilité des matériels : si vous voulez savoir si votre interface audio et/ou MIDI est compatible GNU/linux, vous pouvez vous aider de la liste des matériels sur linuxmao : Liste de matériel par marque.
1)
les seules ne l'utilisant pas sont certaines interfaces audio et/ou MIDI FireWire pour lesquelles vous utiliserez FFADO
2)
à utiliser dans un terminal
manuel/alsa.txt · Dernière modification : 03/11/2020 00:31 de trebmuh