← Tous les guides Guide technique

Les process taps de macOS : régler le volume d'une application sans driver

Publié le 11 septembre 2026. Les mesures citées ont été faites sur un MacBook, sortie interne à 96 kHz, avec les fichiers de Morendo compilés hors de l'application.

Qu'est-ce qu'un process tap dans macOS ?

Un process tap est une API publique de CoreAudio, apparue avec macOS 14.2, qui permet à une application autorisée de capter le son d'un autre processus avant qu'il n'atteigne la carte son, et de le couper de son chemin direct. C'est ce qui permet à Morendo, FineTune ou SoundDial de régler le volume par application sans pilote audio, sans extension système et sans mot de passe administrateur. Une seule autorisation : l'enregistrement de l'audio système.

Ce guide s'adresse à qui veut comprendre ce qui se passe sous le capot, développeur ou curieux. Nous faisons Morendo ; la chaîne décrite est la sienne, les mesures sont les nôtres.

Avant les taps : un driver, ou une extension

Jusqu'en 2023, un mixeur par application sur Mac n'avait qu'une façon d'entendre le son des autres : se placer à la place de la carte son. Background Music, eqMac et Wave Link installent un périphérique audio virtuel, un plug-in HAL dans /Library/Audio/Plug-Ins/HAL, que macOS voit comme une sortie. L'utilisateur choisit ce faux périphérique comme sortie système ; le pilote reçoit tout le son, le remet à l'application, qui le rejoue vers la vraie sortie. SoundSource fait la même chose avec une extension système, ACE.

Ça marche, et depuis des années. Le prix se paie en trois fois : le mot de passe administrateur à l'installation, un périphérique de plus dans les réglages Son, et une dépendance au système, un plug-in ou une extension à mettre à jour à chaque version majeure de macOS, qui peut survivre à la désinstallation.

L'API

Avec macOS 14.2, Apple a rendu publique une mécanique jusque-là interne. Trois pièces suffisent.

  • La liste des processus qui font du son : kAudioHardwarePropertyProcessObjectList énumère les objets « process » de CoreAudio, et kAudioProcessPropertyIsRunningOutput dit lesquels jouent en ce moment.
  • Le tap lui-même : une CATapDescription désigne un ou plusieurs processus et un comportement de coupure. En mode mutedWhenTapped, le processus capté n'atteint plus le matériel : il croit jouer, et c'est le tap qui reçoit son son. AudioHardwareCreateProcessTap crée l'objet.
  • Un périphérique agrégé privé : on y déclare les vraies sorties comme sous-périphériques et les taps dans kAudioAggregateDeviceTapListKey. Les taps y apparaissent comme des flux d'entrée, les sorties comme des flux de sortie, et un seul IOProc reçoit les deux à chaque cycle.

L'API est disponible depuis 14.2 et utilisable de façon fiable à partir de 14.4. Morendo vise macOS 15, pour d'autres raisons que les taps.

La chaîne dans Morendo, de l'application au haut-parleur

Morendo énumère les applications qui jouent et regroupe leurs processus auxiliaires sous l'application qui les possède : les onglets d'un navigateur ou les aides d'une application Electron ne font qu'une ligne. Une application laissée à 100 % sans égaliseur n'est pas captée : elle passe par le chemin normal de macOS, comme si Morendo n'existait pas.

Dès qu'un bus est réglé, chaque application de ce bus reçoit un tap en mode coupé. Tous les taps et toutes les sorties utilisées vivent dans un seul agrégat privé. À chaque cycle, autour de dix millisecondes, CoreAudio livre à l'IOProc les échantillons des taps et un tampon de sortie vide. Le rendu multiplie par le gain du bus, applique les étages de l'égaliseur du bus, accumule dans les canaux de la ou des sorties visées, puis écrête en douceur. Un tap peut porter plusieurs routes : c'est ce qui envoie un même bus dans le casque et sur les enceintes, chacun à son niveau.

L'IOProc ne décide rien. Tout est calculé en amont, sur le fil principal, et déposé dans une structure en mémoire non gérée : pas d'allocation, pas de verrou, pas de comptage de références dans le fil temps réel, sinon un clic. Bouger un fader écrit un nombre dans un tableau que le rendu relit au cycle suivant. Seul un vrai changement de topologie, une application qui démarre, une sortie qu'on change, reconstruit l'agrégat, parce que c'est coûteux et audible. Quand un bus revient au neutre, son tap est relâché quelques secondes plus tard, et l'application reprend son chemin direct.

Ce que l'utilisateur voit

Une seule demande d'autorisation, au premier lancement : l'enregistrement de l'audio système. Aucun périphérique nouveau dans les réglages Son ; les touches de volume du clavier pilotent toujours la vraie sortie, et le curseur d'une sortie dans Morendo est ce même volume système. Et un détail à connaître : le voyant orange d'enregistrement s'allume tant qu'une application est captée. macOS classe un tap dans la capture de l'audio système et le signale comme tel ; c'est structurel, et au repos, sans tap, il s'éteint.

La latence, mesurée

Un tap ajoute un passage par un tampon. Voici d'où vient le délai, mesuré sur un MacBook, sortie interne à 96 kHz, tampon à 512 images.

PosteImagesDuréeRéglable
Tampon du périphérique5125,33 msOui, de 32 à 1024
Marge de sécurité du pilote1481,54 msNon
Latence du matériel1401,46 msNon
Périphérique agrégé00,00 msMesuré, à l'image près
Total8008,33 ms

Mesures du 13 août 2026. Sur une autre machine, les trois premières lignes changent ; la quatrième reste à zéro.

Le tampon est le seul levier : descendre à 64 images récupère environ 4,7 ms, plus de la moitié du total, et le réglage est exposé dans le menu de la console. Le défaut reste « Automatique », parce que le risque n'est pas le code de rendu mais la gigue d'ordonnancement du système, qui dépend de la machine et de sa charge. Le rendu lui-même est léger : huit applications captées avec un égaliseur à quatre étages occupent environ 2 % du budget temps réel de CoreAudio, et cette part ne monte pas quand le tampon descend. Ce qui coûte réellement, c'est le multi-sorties : deux horloges matérielles divergent, et CoreAudio ajoute du tampon pour les resynchroniser. Morendo affiche le délai mesuré dans sa console, parce qu'un chiffre vaut mieux qu'une promesse.

Les limites

  • Un tap voit un processus, pas un onglet : l'onglet Discord et l'onglet YouTube d'un même navigateur partagent le même réglage.
  • Le micro n'est pas concerné. Un tap capte ce qu'une application joue, pas ce qu'elle enregistre.
  • Il faut macOS 14.4 au minimum, 15 pour Morendo et FineTune. Un Mac bloqué sur Ventura reste au monde des drivers.
  • Pas de périphérique virtuel, donc rien qu'OBS puisse capturer comme un mix séparé. Pour un streamer avec chaîne micro, c'est Wave Link 3, avec son pilote.

Pourquoi c'est mieux qu'un driver, sans triomphalisme

Pas de mot de passe administrateur, pas de périphérique fantôme, une désinstallation qui se résume à supprimer l'application, et une dépendance à une API publique plutôt qu'à un plug-in à recompiler à chaque macOS. En échange, un plancher plus récent, un voyant qui s'allume, et un modèle qui ne sait pas fabriquer de sortie virtuelle. Pour régler le volume de ce qu'on écoute, le compte est vite fait ; pour produire un stream, il ne l'est pas encore.

Questions fréquentes

Un process tap enregistre-t-il mon son ?

Non. Le tap est un relais dans la chaîne temps réel de CoreAudio : les échantillons arrivent, sont multipliés par un gain, éventuellement filtrés, puis écrits dans le tampon de sortie du même cycle. Rien n'est stocké. Morendo traite le son en mémoire, ne l'enregistre jamais et ne le transmet à personne.

Pourquoi le voyant orange s'allume-t-il quand Morendo règle une application ?

Parce que macOS classe un process tap dans la capture de l'audio système, et l'annonce comme un enregistrement, avec le même voyant que pour un micro. C'est structurel, voulu par Apple, et impossible à désactiver. Il s'allume tant qu'une application est captée ; au repos, sans tap, il s'éteint.

Quelle version de macOS faut-il ?

L'API est apparue avec macOS 14.2 et devient utilisable de façon fiable à partir de 14.4. Morendo demande macOS 15, comme FineTune ; SoundDial et Submix acceptent 14.2. Sur un Mac plus ancien, il reste les outils à driver, Background Music ou eqMac.

Pourquoi Morendo affiche-t-il la latence ?

Parce qu'elle existe, et qu'elle se mesure : la taille du tampon, la marge du pilote et la latence du matériel, lues sur votre configuration réelle. Le total tourne entre 5 et 15 ms selon la machine et le réglage du tampon. Une application laissée à 100 % sans égaliseur n'est pas captée et n'en prend aucune.

Télécharger Morendo, essai 14 jours Voir le comparatif

Guides voisins : FineTune ou Morendo · Un égaliseur par application sans driver · Alternative à Background Music