Chargement...
 
Skip to main content

Historique: Paramétrage d'une station audio-numérique professionnelle

Aperçu de cette version: 32


 attention
Page en cours d'écriture


Cette page présente le paramétrage avancé d'une station audio-numérique professionnelle. Nous tâcherons de l'expliquer de manière simple et accessible, même pour un débutant. Nous ne reviendrons pas sur les paramétrages de base de Pipewire (déjà traités Ici - Configurer LinuxMint Zena pour la Mao) mais nous en affinerons certains, notamment l'attribution des coeurs du CPU à l'audio. Il fait suite à ces pages de discussion : ici.
Cet article se propose de répondre à la question suivante :
Nous disposons aujourd'hui de CPU à plusieurs cœur, est-il possible d'attribuer une fonction spécifique à certains de ces cœurs ?
Est il possible d'assigner des cœurs aux applications tels que Ardour, Muse, Qtractor etc... ?
La réponse est oui pour les deux questions.

Le matériel dont nous disposons

Le matériel dont nous disposons est le suivant :
  1. PC de bureau, processeur Intel Core i7-9700T cadencé à 2 GHz, 8 cœurs, 16 Gb de RAM, disque SSD,
  2. Carte son externe Behringer UMC1820, 8 entrées, 96 kHZ (testé aussi sur une UMC 404HD, 4 entrées, 192 kHz )
  3. OS MxLinux 25.1 basé sur Debian Trixie, noyau Liquorix 6.15.2-1 installé.

Préambule : optimisation de la configuration audio : Enregistrement vs Post-production


La minimisation de la latence est impérative lors des phases d'enregistrement, spécifiquement lorsque vous devez vous synchroniser avec des pistes existantes (motifs rythmiques, bases musicales). Dans ce scénario de monitoring en temps réel, une latence élevée compromettrait la précision rythmique et la justesse de la prise.

Une fois les prises enregistrées, le flux de travail bascule vers la post-production (mixage, insertion d'effets et de greffons). Il est alors recommandé d'augmenter la taille du tampon (buffer size) à 128 ou 256 échantillons (à 48 kHz), offrant une latence respective d'environ 2,6 ms et 5,3 ms. Cette configuration accroît la marge de calcul du processeur, éliminant ainsi les risques de XRUN (dépassements de tampon) durant le mixage. Même en cas d'instabilité résiduelle (Xrun) lors de la lecture en temps réel, celle-ci n'affectera pas l'intégrité du fichier final lors du rendu (export), le calcul s'effectuant alors hors temps réel.

Quelques considérations préliminaires concernant la carte son


Concernant l'interface audio, il est inadéquat de vouloir absolument baser la configuration du système PC sur la résolution native de 24 bits/96 kHz spécifiée par le constructeur. Ce paramètre reflète uniquement les capacités de traitement interne du matériel, ex : UMC 1820, et n'établit aucune corrélation directe avec les performances d'échantillonnage exploitables par le système hôte c'est-à-dire votre PC.

Cela est d'autant plus pertinent que ce périphérique agit principalement comme un convertisseur transparent et un préamplificateur en entrée. Sa fonction n'est pas de traiter ou de modifier la résolution du flux, mais de transcrire fidèlement le signal analogique vers le domaine numérique (USB) selon le format demandé par l'hôte. La conversion Analogique/Numérique s'adapte donc dynamiquement à la fréquence d'échantillonnage définie par le PC, indépendamment de sa capacité maximale interne.

Prérequis et outils de diagnostic


Pour suivre ce tutoriel et analyser les performances du système, les utilitaires suivants sont requis :

  • Éditeur de texte: Pour la modification des fichiers de configuration.
  • pw-top : Outil de supervision dédié à PipeWire, permettant d'inspecter en temps réel les nœuds audio, les débits et les états de flux.
  • htop : Moniteur de processus interactif pour visualiser la charge individuelle de chaque cœur du processeur et identifier les goulots d'étranglement lors du traitement audio.
  • Cable : permettant de modifier le quantum (taille du tampon) et d'ajuster la résolution (fréquence d'échantillonnage) du système hôte.
  • Raysession Interface graphique de routage permettant de reconfigurer la topologie audio
  • Ardour : Station de travail audio numérique (DAW) utilisée comme charge de travail de référence pour évaluer la stabilité du système, la latence effective et le comportement global après l'application des réglages.

Évaluation des cœurs CPU à votre disposition


Pour cela, il suffit d'installer (s'il ne l'est pas), puis d'exécuter htop dans un terminal

Copy to clipboard
sudo apt install htop # et pour l'exécution dans un terminal htop


Et vous obtenez quelque chose comme cela. Entouré de rouge la partie qui nous intéresse :
Htop

On peut observer deux choses : la première est que mon CPU dispose de 8 cœurs numéroté de 0 à 7, et que les zones 0 et 5, 6,7 sont au repos et que celles qui sont actives correspondent à mon navigateur web, gimp et kate. Comment le sait on ? Ce sont les logiciels que j'utilise présentement pour écrire cet article.
Concernant Pipewire, la tentation est grande de se dire qu'il serait judicieux d'attribuer 4 cœurs à pipewire. Oui... mais non. Après plusieurs essais 1 seul cœur suffit pour ma machine car il n'est jamais saturé.
Donc, je vais paramétrer le chargement de mon noyau pour qu'il réserve le cœur 0 que je vais attribuer, par la suite, à pipewire :
Copy to clipboard
sudo nano /etc/default/grub

et remplacer la ligne suivante :
Copy to clipboard
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs"

par celle-ci
Copy to clipboard
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs isolcpus=0 nohz_full=0 rcu_nocbs=0"

Après l'enregistrement du fichier grub, ne pas oublier de faire :
Copy to clipboard
sudo update-grub

Pour la signification de -isolcpus=0-2 nohz_full=0-2 rcu_nocbs=0-2, voir la note en bas de page

Si vous souhaitez attribuer plus de cœurs à pipewire, disons 3, la ligne s'écrira ainsi :
Copy to clipboard
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs isolcpus=0-2 nohz_full=0-2 rcu_nocbs=0-2"

Il est judicieux après le grub-update de redémarrer l'ordinateur. Relancez htop et vous verrez que le coeur 0 ou 0,1,2 sont inutilisés. C'est le cas pour moi avec le coeur 0 que je vais attribuer à pipewire.(voir l'image plus haut).

Après cela, on suppose que pipewire est déjà configuré comme décris dans Configurer LinuxMint Zena... (voir plus haut)
Éditez le fichier suivant :
Copy to clipboard
/home/synth/.config/pipewire/pipewire.conf.d/audio-low-latency.conf

et ajoutez les lignes suivantes à la fin du fichier :

Copy to clipboard
#Configuration spécifique au thread de traitement audio thread.name = "audio-thread" thread.priority = 95 # Priorité temps réel élevée thread.cpu-affinity = [0] # Force l'exécution sur le ou les cœurs isolés

ou thread.cpu-affinity = [ 0,1,2 ] selon le cas un ou trois cœurs. (A nouveau, il s'avère que pour ma part un seul cœur suffit).

Maintenant, il faut surcharger les fichiers systemd qui concernent pipewire et wireplumber pour forcer pipewire à utiliser le cœur que nous lui avons réservé. Créons dans le .config des dossiers spécifiques :
Copy to clipboard
mkdir -p ~/.config/systemd/user/pipewire.service.d

ensuite créons un fichier :
Copy to clipboard
nano ~/.config/systemd/user/pipewire.service.d/override.conf

dans lequel il faudra ajouter ces lignes
Copy to clipboard
[Service] CPUAffinity=0 LimitMEMLOCK=infinity LimitNPROC=infinity

Même chose pour wireplumber :
Copy to clipboard
mkdir -p ~/.config/systemd/user/wireplumber.service.d

puis
Copy to clipboard
nano ~/.config/systemd/user/wireplumber.service.d/override.conf

en collant exactement les même lignes.
On redémarre systemd et pipewire:
Copy to clipboard
systemctl --user daemon-reload systemctl --user restart pipewire wireplumber


Après cela on peut vérifier que systemd à bien pris en compte ces modifications :
Copy to clipboard
systemctl --user cat pipewire.service

idem pour wireplumber.

Et maintenant.


Selon votre machine avec Cable, prenez soin d'observer quels sont les valeurs de quantum qui vous donne le moins de latence et sans Xrun. Pour ma part c'est 64/48000 pour 1.3 ms de latence. Testez cela avec Ardour.
Mon fichier de configuration dans ./config/pipewire... prend la forme suivante :
Copy to clipboard
context.properties = { default.clock.rate = 48000 default.clock.allowed-rates = [ 44100 48000 88200 96000 ] default.clock.quantum = 64 #par défaut default.clock.min-quantum = 32 #au minimum default.clock.max-quantum = 512 # au maximum } #Configuration spécifique au thread de traitement audio thread.name = "audio-thread" thread.priority = 95 # Priorité temps réel élevée thread.cpu-affinity = [0] # Force l'exécution sur les cœurs isolés


Ces valeurs finales sont valables pour la machine citée plus haut


Ce n'est pas tout


Prenons l'exemple de Ardour avec 4 pistes bien cossues et des plugins en veux tu en voilà. Les performances et les Xrun vont s'aligner. Pipewire n'est pas en cause. Mais vous risquez de voir le système partir en vrille. Là c'est un système de travail qui est en cause. En monitorant ce qu'il se passait, mon cœur 4 ou des fois 5 arrivait à saturation alors que le 6 et le 7 ne travaillait pas. Pourquoi ? Aucune idée. Mais la question qui s'est posée est la suivante :
Puis-je assigner des cœurs à un logiciel spécifique. La réponse est oui.
Par exemple pour Ardour il suffit de le lancer dans le terminal ainsi :
Copy to clipboard
taskset -c 1-5 ardour

ce qui fait tourner Ardour sur 5 coeurs. Et c'est nettement mieux. Mais gardez en pour les processus systèmes. Cette procédure est valable quel que soit le logiciel utilisé.

A vous d'essayer les paramètres qui conviennent le mieux à votre matériel et votre méthode de travail


Notes :

Allez sur le web et passez un truc youtube. Après avoir lancé pw-top dans un terminal. Mettez la vidéo sur pause et lancez Ardour. Oh surprise votre quantum reste bloqué au maximum que vous avez déterminé. 1024 par défaut ou 512 dans mon cas.
Donc voilà évitez de faire deux choses en même temps ! 😉

Concernant la commande grub, voici la signification pour ceux que cela intéresse :
  1. isolcpus=0 : Empêche le planificateur standard d'envoyer des tâches sur ce cœurs.
  2. nohz_full=0 : Désactive les ticks d'horloge sur ce cœurs pour éviter les interruptions périodiques inutiles.
  3. rcu_nocbs=0 : Déplace les callbacks RCU hors de ce cœurs pour éviter les micro-coupures.


  • !Liens et commentaires

Historique

Avancé
Information Version
17:08 bluedid29 remplacement "nano" par "votre-éditeur-de-texte-préféré" 40
Afficher
12:31 bluedid29 Ajout test sur système Mx25.1 Xfce 39
Afficher
Samedi 25 avril 2026 21:33 jujudusud Ajout fil de discussion, corrections des liens. en cours... 38
Afficher
Samedi 25 avril 2026 21:04 pierrelo 37
Afficher
Samedi 25 avril 2026 11:11 pierrelo 36
Afficher
Samedi 25 avril 2026 11:11 pierrelo 35
Afficher
Samedi 25 avril 2026 11:04 pierrelo Modification de l'introduction 34
Afficher
Samedi 25 avril 2026 11:00 pierrelo 33
Afficher
Vendredi 24 avril 2026 17:09 pierrelo 32
Afficher
Vendredi 24 avril 2026 17:08 pierrelo Réarrangement du texte 31
Afficher
Vendredi 24 avril 2026 15:49 pierrelo 30
Afficher
Vendredi 24 avril 2026 15:29 pierrelo 29
Afficher
Vendredi 24 avril 2026 15:06 pierrelo 28
Afficher
Vendredi 24 avril 2026 15:04 pierrelo 27
Afficher
Vendredi 24 avril 2026 14:35 pierrelo 26
Afficher
Vendredi 24 avril 2026 08:59 pierrelo Correction typographique 25
Afficher
Vendredi 24 avril 2026 08:45 pierrelo 24
Afficher
Vendredi 24 avril 2026 08:44 pierrelo Corrections du texte, et ajout du paragraphe Optimisation de la configuration audio : Enregistrement vs Post-production 23
Afficher
Vendredi 24 avril 2026 08:07 pierrelo 22
Afficher
Jeudi 23 avril 2026 17:24 pierrelo 21
Afficher
Jeudi 23 avril 2026 16:53 pierrelo 20
Afficher
Jeudi 23 avril 2026 16:46 pierrelo 19
Afficher
Jeudi 23 avril 2026 16:36 pierrelo 18
Afficher
Jeudi 23 avril 2026 16:35 pierrelo 17
Afficher
Jeudi 23 avril 2026 15:53 pierrelo 16
Afficher
Jeudi 23 avril 2026 15:33 pierrelo 15
Afficher
Jeudi 23 avril 2026 15:26 pierrelo 14
Afficher
Jeudi 23 avril 2026 15:19 pierrelo 13
Afficher
Jeudi 23 avril 2026 14:41 pierrelo 12
Afficher
Jeudi 23 avril 2026 14:39 pierrelo 11
Afficher
Jeudi 23 avril 2026 14:38 pierrelo 10
Afficher
Jeudi 23 avril 2026 11:51 pierrelo 9
Afficher
Jeudi 23 avril 2026 10:47 pierrelo 8
Afficher
Jeudi 23 avril 2026 10:39 pierrelo 7
Afficher
Jeudi 23 avril 2026 10:19 pierrelo 6
Afficher
Jeudi 23 avril 2026 10:17 pierrelo 5
Afficher
Jeudi 23 avril 2026 10:08 pierrelo 4
Afficher
Jeudi 23 avril 2026 08:49 pierrelo 3
Afficher
Jeudi 23 avril 2026 08:40 pierrelo 2
Afficher
Jeudi 23 avril 2026 08:20 pierrelo 1
Afficher