title: XeniAudio SpectralMediator — Manuel d'utilisation subtitle: Dynamique spectrale anti-masquage — v1.3.1 author: Tony Cuny — XeniAudio date: Mai 2026
Plugin de dynamique spectrale anti-masquage — v1.3.1
SpectralMediator résout le problème le plus courant du mixage : deux pistes qui se disputent la même zone de fréquences. En échangeant, par mémoire partagée, les magnitudes de leurs analyses FFT et les énergies par bande entre deux instances posées sur des canaux différents, chaque instance se creuse dynamiquement de la place là où sa partenaire a du contenu — automatiquement, en temps réel, fréquence par fréquence.
| Format | Description |
|---|---|
| VST3 | Format universel (Windows, Linux, macOS) |
| CLAP | Format de plugin moderne (Windows, Linux, macOS) |
Installation
Configuration requise
| Plateforme | Minimum |
|---|---|
| OS | Windows 10+ (64 bits), Linux (x86-64-v3), macOS 10.13+ (Intel / Apple Silicon) |
| STAN | Tout hôte VST3 ou CLAP |
| Processeur | x86-64 avec AVX2 |
| Mémoire | 2 Go |
Windows
- Lancez
XeniAudio-SpectralMediator-V1.3.1-Installer.exe. - Suivez les étapes. L'installeur place :
- le VST3 dans
C:\Program Files\Common Files\VST3\ - le CLAP dans
C:\Program Files\Common Files\CLAP\SpectralMediator\
- le VST3 dans
- Redémarrez votre STAN et relancez l'analyse des plugins.
Linux
tar xzf SpectralMediator-1.3.1-Linux.tar.gz
cd SpectralMediator-1.3.1-Linux
./install.shLe VST3 atterrit dans ~/.vst3/, le CLAP dans ~/.clap/. Passez d'autres
chemins en arguments positionnels à install.sh.
macOS
- Montez
SpectralMediator-1.3.1-macOS.dmg. - Double-cliquez sur le
.pkgqu'elle contient. - La portée d'installation par défaut est l'utilisateur courant
(
~/Library/Audio/Plug-Ins/). Cliquez sur Personnaliser → Installer pour tous les utilisateurs pour une installation à l'échelle du système. - Redémarrez votre STAN et relancez l'analyse des plugins.
Signé et notarisé. Depuis la v1.3.1, l'installeur macOS est signé avec un Apple Developer ID et notarisé par Apple : il s'installe sans avertissement et sans contournement au clic droit. Le certificat est délivré à Tony Cuny — Apple délivre les certificats Developer ID à la personne derrière une activité indépendante, et non au nom commercial ; c'est donc ce nom que macOS affiche plutôt que XeniAudio.
Si macOS proteste malgré tout, c'est presque certainement que le téléchargement est endommagé ou incomplet — retéléchargez plutôt que d'essayer de contourner l'avertissement.
Le concept
Ce que veut dire « anti-masquage »
Quand deux instruments occupent la même zone de fréquences, l'oreille ne peut en distinguer clairement qu'un seul à la fois. Les remèdes classiques sont :
- Une coupure d'EQ statique sur l'un des deux. Efficace, mais inconditionnelle : même quand le masquant se tait, la coupure reste.
- La compression sidechain. Efficace sur le niveau, pas sur le spectre : elle fait plonger tout le signal, y compris les fréquences qui ne se disputaient rien.
SpectralMediator est l'alternative chirurgicale. Il regarde quelles fréquences se cognent réellement, à cet instant, et ne fait plonger que celles-là, uniquement sur l'instrument masqué, uniquement pendant que le masquant est fort. L'EQ statique et la sidechain deviennent inutiles pour les cas que SpectralMediator prend en charge.
Comment les deux instances se parlent
Insérez une instance sur chaque piste. Les deux SpectralMediator se découvrent via un segment de mémoire partagée (Boost.Interprocess) et s'appairent par le menu REMOTE, en haut de chaque éditeur. Une fois appairées, à chaque saut de FFT :
- Chaque instance écrit ses propres magnitudes (1024 bins linéaires) et ses énergies par bande (3 bandes) dans son emplacement de mémoire partagée.
- Chaque instance lit les bins de sa partenaire.
- Chaque instance compare, bin par bin, son propre niveau à celui de sa partenaire à l'intérieur de chaque bande définie par vous. Là où la partenaire dépasse le seuil de la bande, cette instance atténue ce bin proportionnellement au ratio.
Résultat : quand le kick frappe, la région grave de la piste de basse plonge ; quand le kick se tait, plus aucun ducking. Même logique en sens inverse pour le kick sur la région haute de la basse. Les deux pistes se libèrent mutuellement la place, sans le moindre geste d'EQ.
Ce que ce n'est pas
- Pas un compresseur sidechain. Un compresseur sidechain fait plonger tout le signal à partir d'un seuil de niveau. SpectralMediator ne fait plonger que les fréquences réellement masquées.
- Pas un EQ dynamique. Un EQ dynamique réagit à sa propre entrée. SpectralMediator réagit à l'entrée d'une partenaire, par communication entre instances.
- Pas un compresseur multibande. Un compresseur multibande découpe un signal et comprime chaque bande contre elle-même. SpectralMediator compare un signal à un autre, bande par bande, dynamiquement.
Prise en main (kick + basse)
- Insérez SpectralMediator sur la piste de kick. Renommez l'instance depuis
le champ de titre — tapez
Kick. - Insérez SpectralMediator sur la piste de basse. Renommez-la
Bass. - Sur l'une ou l'autre instance, cliquez sur le menu --- disconnected --- au-dessus de l'analyseur REMOTE et sélectionnez le nom de l'autre instance. Les deux sont désormais appairées (les deux menus affichent le nom de la partenaire ; le petit point SHM en haut à droite passe au vert).
- La disposition par défaut à 1 bande (20 Hz → 20 kHz) est trop large. Faites un clic droit dans l'analyseur LOCAL vers 200 Hz pour ajouter une séparation de bande. La bande a maintenant deux moitiés ; refaites un clic droit vers 1 kHz pour ajouter une troisième séparation si vous voulez plus de précision.
- Tirez le seuil de chaque bande (la poignée horizontale orange à l'intérieur de la bande) vers -20 dB environ. Tirez le ratio (poignée du bord droit) vers 4:1 environ.
- Lancez le morceau. La basse doit maintenant plonger sous le kick partout où celui-ci a du contenu spectral, sans toucher à aucune autre zone de fréquences.
Visite de l'interface
+-------------------------------------------------------------------------+
| X SM SpectralMediator #1 LOCAL [DEMO] *SHM | <- en-tête
+-------------------------------------------------------------------------+
| |
| HP (spectre FFT local) LP | <- analyseur
| | | | LOCAL
| 20Hz 20kHz|
+-------------------------------------------------------------------------+
| [Kick (v)] REMOTE | <- analyseur
| | (spectre FFT de la partenaire) | | REMOTE
| 20Hz 20kHz|
+-------------------------------------------------------------------------+
| LOCAL OUTPUT REMOTE OUTPUT | <- réglages
| (Attack) (Release) (Makeup) (Attack) (Release) (Makeup)|
+-------------------------------------------------------------------------+
En-tête
- Badge X : marque XeniAudio. Décoratif.
- Le sigle SM, en orange.
- Nom d'instance (modifiable). Cliquez pour passer en mode renommage, tapez, appuyez sur Entrée. C'est le nom que votre partenaire verra dans son menu REMOTE.
- Le libellé LOCAL, centré, violet. Il identifie l'analyseur du dessous comme étant votre propre piste.
- Interrupteur BYP (à droite du libellé LOCAL) : contourne cette instance — l'audio passe intact, mais l'appairage reste vivant : vous pouvez donc faire un A/B sans avoir à réappairer ensuite. Notez qu'une instance contournée cesse aussi d'alimenter sa partenaire : le ducking s'arrête donc dans les deux sens.
- Interrupteur DUCK (à droite de BYP, présent dans l'en-tête LOCAL comme dans l'en-tête REMOTE) : décide si cette piste s'efface ou non. Allumé (le défaut), c'est le comportement à double sens — les deux pistes se font mutuellement de la place. Éteignez-le et cette piste n'est plus atténuée, tout en continuant d'alimenter sa partenaire, qui continue donc de s'effacer devant elle. C'est le ducking unidirectionnel : une piste a la priorité et seule l'autre se pousse. Voir Le ducking unidirectionnel plus bas.
- Badge DEMO (rouge, en haut à droite) : visible uniquement tant que le plugin est en mode démo. Cliquez dessus pour ouvrir la fenêtre d'activation. Le badge clignote pendant la fenêtre de coupure de 5 s.
- Point SHM (tout en haut à droite) : vert quand l'appairage est fait, gris éteint sinon.
Analyseur LOCAL (bande du haut)
- Spectre FFT en violet — le contenu de votre piste.
- Poignées HP / LP aux bords gauche et droit. Tirez les petits rectangles
vers l'intérieur pour fixer les limites de détection passe-haut / passe-bas.
Les bins hors de
[HP, LP]sont exclus de la détection de ducking (ils passent sans atténuation). - Bandes : des séparations verticales définissent des zones de ducking indépendantes. On les crée par clic droit n'importe où dans l'analyseur LOCAL. Tirez une séparation verticale pour déplacer la frontière entre deux bandes. Pour supprimer une bande, faites un clic droit sur sa séparation.
- Poignée de seuil (barre horizontale orange à l'intérieur de chaque bande) : tirez vers le haut ou le bas pour régler le seuil en dB. Le niveau de la partenaire dans la bande y est comparé ; au-dessus du seuil, le ducking commence.
- Poignée de ratio (bord droit, à l'intérieur de chaque bande) : tirez vers le haut pour rendre le ducking plus agressif. 1:1 = pas de ducking (concrètement désactivé). 20:1 ≈ ducking sévère.
En-tête REMOTE (entre les deux analyseurs)
- Menu REMOTE (à gauche) : liste toutes les autres instances de
SpectralMediator chargées par l'hôte. Choisissez-en une pour appairer.
Sélectionner
--- disconnected ---désappaire. - Le libellé REMOTE, centré, orange. Il identifie l'analyseur du dessous comme étant la piste de votre partenaire.
Analyseur REMOTE (bande du bas)
Les mêmes réglages que l'analyseur LOCAL, mais ils modifient à distance les réglages de votre partenaire (les changements sont écrits dans son emplacement de mémoire partagée). Pratique quand vous voulez régler tout l'appairage sans changer de fenêtre de plugin. Le spectre FFT de la partenaire est affiché en orange.
Réglages de sortie (bandeau du bas)
Deux panneaux en miroir :
- LOCAL OUTPUT (violet, à gauche) : Attack, Release, Makeup. Ils s'appliquent à votre propre audio.
- REMOTE OUTPUT (orange, à droite) : les trois mêmes réglages, mais ils écrivent leurs valeurs dans l'emplacement de la partenaire. Le thread audio de celle-ci les reprend et les applique de son côté.
Redimensionnement
Tirez la petite poignée du coin en bas à droite pour redimensionner l'éditeur. Le cadre de l'hôte suit en direct (Bitwig, FL Studio, Studio One ; Reaper Linux
- CLAP). Sous Reaper Windows en VST3, le cadre ne rattrape qu'au relâchement du bouton — passez à la version CLAP pour obtenir le redimensionnement en direct sur cet hôte (voir Problèmes connus).
La taille est conservée dans le projet : à la réouverture, l'éditeur retrouve la taille où vous l'aviez laissé.
Les paramètres
Disposition des bandes (par côté)
| Paramètre | Plage | Défaut | Unité | Notes |
|---|---|---|---|---|
| FreqLow | 20 Hz à 2000 Hz | 200 Hz | Hz | Coupure grave / médium |
| FreqHigh | 500 Hz à 20000 Hz | 5000 Hz | Hz | Coupure médium / aigu |
| HP | 20 Hz à 1000 Hz | 20 Hz | Hz | Passe-haut de détection — les bins en dessous passent |
| LP | 1000 Hz à 20000 Hz | 20 kHz | Hz | Passe-bas de détection — les bins au-dessus passent |
La disposition des bandes se modifie aussi de façon interactive : clic droit dans l'un ou l'autre analyseur pour ajouter une séparation, glisser les séparations pour déplacer les frontières.
Ducking par bande (3 bandes)
| Paramètre | Plage | Défaut | Unité |
|---|---|---|---|
| Threshold | -60 dB à 0 dB | -20 dB | dB |
| Ratio | 1:1 à 20:1 | 4:1 | — |
Quand le niveau de la partenaire à l'intérieur d'une bande dépasse Threshold, cette instance atténue la même bande proportionnellement à Ratio. 1:1 désactive concrètement le ducking pour cette bande.
Enveloppe et sortie (LOCAL + REMOTE, six potentiomètres en tout)
| Potentiomètre | Plage | Défaut | Pas | Rôle |
|---|---|---|---|---|
| Attack | 0,1 ms à 300 ms | 10 ms | 0,1 ms | Constante de temps quand la réduction monte |
| Release | 5 ms à 2000 ms | 100 ms | 1 ms | Constante de temps quand la réduction relâche |
| Makeup | -12 dB à +24 dB | 0 dB | 0,1 dB | Gain de sortie après le ducking |
Glisser : 1 px ≈ 0,9 ms d'Attack. Maintenez Maj pour un glissement environ 3× plus fin (≈ 0,25 ms / px). Les valeurs se calent sur le pas indiqué dans la colonne ci-dessus (Attack : 0,1 ms, Release : 1 ms, Makeup : 0,1 dB) : vous pouvez donc tomber pile sur des valeurs rondes, comme Attack = 10,0.
Les potentiomètres REMOTE écrivent directement dans l'emplacement de la partenaire — son thread audio les reprend et les applique localement. Les potentiomètres de sa propre interface bougent en conséquence.
Le ducking unidirectionnel
Par défaut, une paire d'instances fait un échange : chacune se pousse devant l'autre là où elles se cognent. C'est ce qui distingue SpectralMediator d'une sidechain classique, et la plupart du temps c'est ce qu'on veut.
Parfois, non. Une voix lead, un kick, un riff signature — certaines pistes ne doivent jamais bouger, et tout le reste doit s'organiser autour. L'interrupteur DUCK de l'en-tête en décide, instance par instance :
| DUCK sur cette instance | Ce qui arrive à cette piste | Ce qui arrive à la partenaire |
|---|---|---|
| Allumé (défaut) | Elle s'efface devant la partenaire | Elle s'efface devant cette piste |
| Éteint | Jamais atténuée | Elle continue de s'effacer devant elle |
Éteindre DUCK ne déconnecte pas la paire, et ce n'est pas la même chose qu'un bypass. Cette instance continue d'analyser et continue d'alimenter sa partenaire — elle cesse simplement de s'appliquer la moindre atténuation. Éteignez-le sur la piste qui doit gagner, et laissez-le allumé partout ailleurs.
Les deux côtés depuis une seule fenêtre. Il y a deux interrupteurs DUCK, un dans l'en-tête LOCAL et un dans l'en-tête REMOTE, exactement comme les interrupteurs BYP et les potentiomètres REMOTE. Laquelle des deux pistes s'efface est une décision qui concerne la paire : vous pouvez donc la prendre depuis l'une ou l'autre instance sans changer de fenêtre — l'interrupteur REMOTE écrit directement dans l'emplacement de votre partenaire, et son interface suit. L'interrupteur REMOTE est grisé tant qu'aucune partenaire n'est sélectionnée.
DUCK éteint n'est pas BYP. Contourner une instance l'empêche aussi d'alimenter sa partenaire : le ducking s'arrête alors dans les deux sens. Si vous voulez qu'une piste garde la priorité pendant que l'autre continue de s'effacer, c'est DUCK qu'il vous faut.
Les deux instances peuvent avoir DUCK éteint en même temps — cela signifie simplement qu'aucune ne s'efface, ce qui revient à ne pas être appairées du tout.
Cas d'usage
Kick + basse
Insérez SM sur le kick, insérez SM sur la basse, appairez.
- Côté basse : 1 bande 20 Hz → 200 Hz, seuil vers -24 dB, ratio 6:1.
- Côté kick : laissez la bande unique par défaut 20 Hz → 20 kHz, seuil -20 dB, ratio 2:1 (léger, juste pour nettoyer la fuite de très basses fréquences dans le micro de kick).
Quand le kick frappe, seule la bande grave de la basse plonge. Les médiums et aigus de la basse (le corps des cordes, les harmoniques) ne sont pas touchés. Quand le kick s'arrête, la basse revient entière, dans le temps de Release.
Voix + guitare
La voix devant, la guitare rythmique qui masque la zone des formants.
- Côté guitare : séparez les bandes à 800 Hz et 3 kHz. Réglez le seuil de la bande du milieu vers -22 dB et son ratio à 5:1. Laissez les bandes grave et aiguë presque inactives (ratio 1,5:1).
- Côté voix : 1 bande, ratio 1,5:1 — un léger ducking réciproque, juste pour empêcher la guitare de ressortir du lit quand la voix marque une pause.
La guitare cède dans la bande des formants dès que la voix est active, tout en gardant son corps et son brillant.
Caisse claire + overheads
Les coups de caisse claire fuient dans les overheads. Avec un EQ statique, il faudrait couper la zone de la caisse claire dans les overheads en permanence. Avec SM, on ne coupe que lorsqu'elle frappe réellement.
- Côté overheads : 1 bande 200 Hz → 800 Hz, seuil -18 dB, ratio 8:1, Attack 1 ms (très rapide — pour coller au transitoire), Release 60 ms.
- Côté caisse claire : laissez le ratio à 1:1 (ne faites pas plonger la caisse claire).
L'image de la batterie se resserre de façon audible. Les cymbales restent pleines, parce que leur spectre est au-dessus de la bande.
Deux chœurs sur la même syllabe
Deux empilements de chœurs sur des pistes différentes se disputent la présence. Appairez-les.
- Des deux côtés : 1 bande 1,5 kHz → 5 kHz, ratio 2:1, seuil vers -18 dB.
Celui des deux empilements qui est le plus fort à un instant donné gagne cette bande ; l'autre cède légèrement. Le mélange paraît collé, sans aucune automation.
Mémoire partagée entre instances
Jusqu'à 16 instances de SpectralMediator peuvent coexister dans le même processus de STAN. Chaque instance possède :
- un identifiant unique (PID + empreinte de pointeur) ;
- un nom d'affichage modifiable (le champ Nom d'instance) ;
- une cible d'appairage persistante (enregistrée avec le projet).
Les données partagées par instance sont :
| Champ | Utilisé par | Notes |
|---|---|---|
| FFT 1024 bins | thread audio | Magnitude linéaire, à chaque saut de FFT |
| Affichage 256 bins | thread interface | Spectre en dB lissé, pour l'analyseur |
| 3 énergies de bande | les deux | RMS par bande |
| 3 réductions de gain | les deux | dB par bande, ≤ 0 |
| Définition des bandes | les deux | Fréquences + seuil + ratio + activation |
| HP / LP | les deux | Limites globales de détection |
| Attack / Release / Makeup | les deux | Réglages de sortie |
| Latence du plugin | les deux | En échantillons (pour la compensation) |
Les modifications faites d'un côté ou de l'autre d'une paire se propagent dans les deux sens : déplacer une bande dans l'analyseur du bas d'une instance met à jour l'analyseur du haut de l'autre.
Latence
Chaque instance déclare à l'hôte sa propre latence d'analyse FFT (typiquement 1024 échantillons à 44/48 kHz, mise à l'échelle aux fréquences supérieures pour conserver une fenêtre d'analyse d'environ 21 ms). Les STAN modernes la compensent automatiquement.
La latence déclarée par la partenaire est lue dans la mémoire partagée et utilisée à la lecture pour aligner les bins consommés sur ce que la partenaire traitait réellement — le ducking reste donc en place, même quand les deux pistes ont des retards de routage différents dans la STAN.
Mode démo et licence
Sans licence, l'audio est coupé en fondu pendant 5 secondes toutes les 60 secondes, avec des fondus doux de 256 échantillons. Le badge DEMO, en haut à droite, clignote pendant la fenêtre de silence.
Activer
- Cliquez sur le badge DEMO pour ouvrir la fenêtre d'activation.
- Collez votre clé de licence (Ctrl+V) ou saisissez-la.
- Cliquez sur Activate (ou appuyez sur Entrée).
La fenêtre affiche Verifying... pendant que la clé est vérifiée en ligne auprès du serveur de licences Gumroad. En cas de succès, la fenêtre se ferme et le badge DEMO disparaît. En cas d'échec, le message exact du serveur est affiché (clé invalide, remboursée, contestée, etc.) — corrigez et réessayez.
La clé vérifiée est enregistrée dans :
- Linux/macOS :
~/.config/XeniAudio/SpectralMediator/license.key - Windows :
%APPDATA%\XeniAudio\SpectralMediator\license.key
Les chargements suivants valident la clé enregistrée hors ligne (sans réseau) : une fois activé, SpectralMediator fonctionne sans connexion internet.
Clés SpectralMediator et clés McPlugins
SpectralMediator a son propre produit sur Gumroad. Une clé McPlugins ne déverrouille pas SpectralMediator (et réciproquement). Les deux produits utilisent des espaces d'empreintes distincts et rangent leurs fichiers de licence dans des dossiers séparés.
Problèmes connus
Reaper VST3 sous Windows : le redimensionnement en direct ne met pas à jour la fenêtre FX
Quand vous tirez la poignée de redimensionnement en bas à droite de l'éditeur, le contenu du plugin se redimensionne correctement, mais le cadre extérieur de la fenêtre FX de Reaper ne suit pas — ni pendant le glissement, ni au relâchement. Le plugin se retrouve encastré dans un cadre trop petit ou trop grand.
Cause : l'implémentation hôte VST3 de Reaper n'honore pas les rappels
plugFrame->resizeView() venant du thread interface du plugin. Tous les autres
hôtes testés (Bitwig, FL Studio, Studio One, Live, Cubase sous Windows ; tous
les hôtes sous Linux et macOS) respectent correctement cette API.
Contournement : insérez SpectralMediator au format CLAP
(Add FX → CLAP → SpectralMediator) plutôt qu'en VST3. Le CLAP fonctionne
correctement sous Reaper Windows. Reaper prend en charge le CLAP nativement
depuis la v6.71.
Gatekeeper macOS : avertissement « développeur non identifié »
Corrigé en v1.3.1 — l'installeur macOS est désormais signé et notarisé, cet avertissement n'apparaît donc plus. Si vous le voyez encore, c'est que le téléchargement est endommagé ; retéléchargez-le. Voir Installation → macOS.
Notez que l'installeur Windows, lui, n'est pas signé : SmartScreen peut donc encore avertir au premier lancement de ce côté-là.
Dépannage
Deux instances ne se voient pas dans le menu. Elles doivent toutes deux tourner dans le même processus de STAN. Certains hôtes isolent les processus de plugins (bac à sable / un processus par plugin) ; la mémoire partagée ne peut pas franchir une frontière de processus. Désactivez l'isolation des plugins dans les préférences de votre STAN.
L'analyse des plugins se bloque après un plantage de l'hôte. SpectralMediator détecte au démarrage les segments de mémoire partagée périmés et les efface automatiquement dès que toutes les instances enregistrées se sont tues pendant 10 secondes. Si le problème persiste :
- Linux :
rm /dev/shm/sm_spectral_registry - Windows : redémarrez, ou tuez tout processus hôte résiduel qui retient le segment.
Aucun spectre dans le panneau REMOTE. Vérifiez que l'instance partenaire traite bien de l'audio (piste non coupée, non gelée). Le spectre de la partenaire n'est mis à jour que tant que de l'audio la traverse.
La fenêtre d'activation affiche « Server: … » avec une erreur réseau. Votre machine n'arrive pas à joindre l'API de Gumroad. Vérifiez la connectivité et les règles de pare-feu. La vérification de licence est une opération en ligne unique ; une fois la clé enregistrée sur le disque, aucun accès réseau n'est nécessaire.
L'éditeur s'affiche dans le quart inférieur gauche sur un Mac Retina. Vous utilisez une version antérieure à la v1.3.1. Mettez à jour vers la dernière version.
Licence
XeniAudio SpectralMediator est un logiciel sous licence. Voir le fichier
license.txt livré avec l'installeur pour les conditions complètes.
Pour toute assistance, rendez-vous sur
https://xeni-audio.com ou écrivez à
support@xeni-audio.com.
Copyright © 2025–2026 Tony Cuny / XeniAudio. Tous droits réservés.
Un point obscur, ou absent de ce manuel ? Écrivez à support@xeni-audio.com.