Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
mao [Le 07/10/2025, 19:12]
krodelabestiole [Distributions orientées MAO] liens distro
mao [Le 08/10/2025, 12:35] (Version actuelle)
krodelabestiole [Optimisation audio]
Ligne 13: Ligne 13:
 Avant tout il est important de comprendre le fonctionnement du [[:​audio|son sous GNU/​Linux]]. Avant tout il est important de comprendre le fonctionnement du [[:​audio|son sous GNU/​Linux]].
  
-Pour résumer, les applications se connectent au **pilote** de la carte son (généralement **ALSA**, anciennement **OSS**, **FFADO** pour les cartes FireWire) via un **serveur de son** (**[[:​PipeWire]]**,​ qui remplace avantageusement à la fois **[[:​PulseAudio]]** pour le multimédia,​ et **[[:​jackd|JACK]]** pour la MAO ALSA dispose également de son propre serveur de son). Cela permet à plusieurs applications d'​utiliser le son en même temps. ​+Pour résumer, les applications se connectent au **pilote** de la carte son (généralement **ALSA**, anciennement **OSS**, **FFADO** pour les cartes FireWire) via un **serveur de son** (par défaut sur Ubuntu : **[[:​PipeWire]]**,​ qui remplace avantageusement à la fois **[[:​PulseAudio]]** pour le multimédia,​ et **[[:​jackd|JACK]]** pour la MAO((ALSA dispose également de son propre serveur de son rudimentaire.))). Cela permet ​entre autre à plusieurs applications d'​utiliser le son en même temps. ​
  
 À ce sujet **[[:​PipeWire]]** (installé par défaut depuis [[:​kinetic|Kinetic 22.10]]) permet d'​utiliser ensemble et simultanément n'​importe lesquels de ses logiciels et appareils audio. Chaque logiciel peut communiquer des flux audio à un autre, ou à une interface matérielle. On parle de **//​[[pipewire#​routage]]//​**. Cela permet aussi bien d'​envoyer le son d'un synthétiseur dans une réverbération,​ que de pré-écouter un flux audio sur des oreillettes bluetooth tandis qu'on en diffuse un autre sur la carte son intégrée à son ordinateur. À ce sujet **[[:​PipeWire]]** (installé par défaut depuis [[:​kinetic|Kinetic 22.10]]) permet d'​utiliser ensemble et simultanément n'​importe lesquels de ses logiciels et appareils audio. Chaque logiciel peut communiquer des flux audio à un autre, ou à une interface matérielle. On parle de **//​[[pipewire#​routage]]//​**. Cela permet aussi bien d'​envoyer le son d'un synthétiseur dans une réverbération,​ que de pré-écouter un flux audio sur des oreillettes bluetooth tandis qu'on en diffuse un autre sur la carte son intégrée à son ordinateur.
Ligne 21: Ligne 21:
 ==== Optimisation audio ==== ==== Optimisation audio ====
  
-La durée ​du calcul ​entre le déclenchement d'un événement ​(note d'un [[:​controleurs midi|contrôleur MIDI]] par ex.) et la reproduction du son qui lui est associé est appelée **//temps de latence//**Cette durée peut être gênante pour un musicien (au delà de 30 ms environ). Heureusement,​ Linux intègre maintenant de base un noyau optimisé pour le temps réel, qui réduit cette durée tant que possible.+En MAO, on a souvent besoin de jouer le son //en temps réel//. Malheureusement le matériel électronique et les ordinateurs en particulier introduisent un problème qu'on appelle le //**temps de latence**// : il s'​agit ​du délai qui apparaît ​entre le moment où on demande à la machine de reproduire ​un son (en appuyant sur une note d'un [[:​controleurs midi|contrôleur MIDI]] par ex.)et celui où le son sort effectivement des haut-parleurs.\\ 
 +Il est souvent court (on l'​exprime en millisecondes),​ mais si on peut négliger ce délai lorsqu'​on appuie sur une touche ''​▶'' ​//play//, le problème devient beaucoup plus épineux pour jouer de la batterie électronique ou pour appliquer un effet sur sa voix en //live// sans s'​entendre en doubleOn estime généralement que cette durée peut être gênante pour un·e musicien·ne ​au delà de 10 ms à 30 ms environ.
  
-Une autre manière de réduire cette durée ​est de diminuer ​la taille du tampon ​audio (**//​buffer//​** en anglais) ​dans les réglages audio de sa config. Pour cela, voir le chapitre //​[[:​pipewire#​optimisation]]//​ sur la documentation [[:​PipeWire]].\\ +Linux intègre désormais par défaut des fonctionnalités d'​optimisation pour le temps réel. Ubuntu propose aussi un noyau [[:​linux-lowlatency|lowlatency]] spécifique. Ce noyau ne réduira pas directement la latence, mais est censé améliorer les ressources CPU dans le cadre de cette utilisation. 
-Les réglages permettant un temps de latence court se font au détriment des ressources processeurs qui sont plus sollicitées. Si le processeur est surchargé, cela se traduit au niveau sonore par des craquements audibles appelés //Xruns//.+ 
 +La manière de réduire cette durée ​consiste à ajuster ​la **taille du tampon** (appelée ​**//​buffer//​** en anglais, ou //quantum// chez [[:​PipeWire]]) et la **fréquence d'​échantillonnage** (**//sample rate//**). Pour la pratique, voir le chapitre //​[[:​pipewire#​optimisation]]//​ sur la documentation [[:​PipeWire]].\\ 
 +Les réglages permettant un temps de latence court se font au détriment des ressources processeurs qui sont plus sollicitées. Si le processeur est surchargé, cela se traduit au niveau sonore par des hachures ou des craquements audibles appelés //​[[https://​alsa.opensrc.org/Xruns|Xruns]]//.\\ 
 +Plus la **fréquence d'​échantillonnage** (//​framerate//​) est élevée, meilleure est la qualité (théorique),​ plus courte est la latence, mais plus haute est la consommation CPU. On considère généralement qu'une valeur de 48000Hz est suffisante, sachant que l'​oreille humaine n'​entend pas de fréquence supérieure à 20000Hz. \\ 
 +Le jeu consiste donc généralement plutôt à baisser la **taille du tampon** (//buffer// ou //​quantum//​) autant que nécessaire,​ sans surcharger le processeur. Cette valeur doit être une puissance de 2.
  
 L'​utilisation d'une bonne carte son dédiée à la MAO est évidemment aussi un gros atout à ce sujet. L'​utilisation d'une bonne carte son dédiée à la MAO est évidemment aussi un gros atout à ce sujet.
-<​note>​Pour les cartes sons USB, certaines combinaisons de //​framerate//​ / //buffer// sont préférables à d'​autres : voir sur [[https://​wiki.linuxaudio.org/​wiki/​list_of_jack_frame_period_settings_ideal_for_usb_interface|cette page]] //(en)// les combinaisons indiquées en gras.</​note>​+<​note>​Pour les cartes sons USB, certaines combinaisons de //​framerate//​ / //buffer// sont préférables à d'​autres : voir sur [[https://​wiki.linuxaudio.org/​wiki/​list_of_jack_frame_period_settings_ideal_for_usb_interface|cette page]] ​(//en//les combinaisons indiquées en gras.</​note>​
  
 ===== Multimédia ===== ===== Multimédia =====
  • mao.1759857155.txt.gz
  • Dernière modification: Le 07/10/2025, 19:12
  • par krodelabestiole