Le side-chaining est une technique de composition musicale consistant à réduire le volume d'un son lorsqu'un autre son est actif. Cela libère le spectre sonore et évite que deux sons similaires ne se superposent de manière un peu brouillonne. De cette opération dynamique résulte un son plus percutant.
La modulation d'amplitude est calée sur le kick, donc on peut mettre en place une logique simple. C'est justement l'objet du plugin commercial Kickstart vendu pour quelques dollars. Je ne le possède pas mais il m'amuserait d'en avoir un clone grotesque reconstruit dans l'excellent FL Patcher.
L'idée de cet article est simplement d'avoir un masque paramétrable, calé sur le BPM du projet, qui se répète indéfiniment, qui réduise un volume, et indépendamment de l'existence d'un signal de référence. C'est un faux side-chain avec quelques opérations mathématiques de niveau de Première scientifique.
Fruity WaveShaper est un outil de distortion/déformation basé sur la puissance d'un signal. La diagonale est l'identité : le volume qui rentre est celui qui sort. En dessous, le volume est réduit. En dessus, le volume est augmenté.
L'exemple suivant permet d'activer un microphone seulement si la personne parle suffisament fort, et donc cela coupe sèchement les bruits blanc quand personne ne parle.
On peut dire que ce plugin applique un coefficient multiplicateur k
dépendant du volume qui lui-même dépend du temps. Autrement dit : output(t) = k(amplitude(t)) * input(t)
.
Mais pour réaliser un faux side-chaining en boucle, il faudrait avoir accès directement au temps pour reboucler à la fin du beat. C'est pourquoi on va utiliser plutôt Fruity Love Philter pour interagir avec une enveloppe. Cette dernière s'exprimera schématiquement comme output(t) = k(t mod bpm/4) * input(t)
.
Attention : multiplier un volume par un coefficient ne se fait pas si simplement.
Patcher définit les paramètres (knobs) avec des valeurs minimale et maximale. Le coefficient résultant est linéaire et exprimé entre 0 et 1. Seulement, le volume est logarithmique et exprimé en décibels (unité db
).
Précisément, +3 db représente la multiplication par 2 du son, +6 db par 4, +9 db par 8… Et inversement pour le signe négatif. Si vous réglez votre paramètre à -50%, vous aurez -6 db de différence dans le logiciel qui utilise sa propre échelle de correspondance. Tout ceci explique pourquoi la course des boutons de volume dans FL Studio n'est pas linéaire.
Après calcul, la formule exacte se trouve être : db = 6/ln(2) * ln(p)
avec p
la valeur linéaire du bouton entre 0 et 1. La valeur 0,5 se note aussi 50%.
Quand vous voulez mixer 2 sources audio de volume équivalent, l'addition des deux génère une surcharge de 3 db, donc chaque source doit être pré-calibrée autour de 70%. C'est le résultat de l'inversion de la formule précédente : 1/exp(ln(2)/2) ≈ 0,707
.
Dans notre plugin, on va vouloir mélanger le dry (signal non traité) et le wet (signal traité). Cela permet d'appliquer une fraction du masque de volume, comme le ferait le volume de l'effet au niveau du mixer. Intuitivement, on voudrait que la position 0.5 fasse «50% de chaque signal», donc -3 db, donc 70% linéaire. Et parce qu'on a la flemme, on veut que cela tienne automatiquement dans un seul bouton.
Il existe 2 techniques pour résoudre ce problème : le calcul formel exact et l'approximation polynomiale. Cette dernière n'est pas exacte mais elle se calcule très bien quand même. Nous voulons un fade in/out ayant les courbes suivantes :
Yout
, fade out, diminution du volume : X | Y |
---|---|
0 | 1 |
0,5 | 0,75 |
1 | 0 |
Yin
, fade in, augmentation du volume :X | Y |
---|---|
0 | 0 |
0,5 | 0,75 |
1 | 1 |
Vous lisez bien 0,75
au lieu de 1/exp(ln(2)/2)
. C'est une valeur remarquable permettant d'obtenir un polynôme simple du second ordre (parabole). Il faut N+1 points pour définir un polynôme de degré N. La résolution graphique dans Excel est rapide et nous avons :
Yout = 1 - X²
Yin = 2X - X²
Avant de finir cet obscure chapitre pourtant capital pour la suite, il faut considérer dans FL Studio que le volume normal est à 80%. Comme on travaille linéairement, on aura donc à appliquer une décote de 20% à tous nos résultats pour ne pas amplifier le signal de sortie.
Fini, il ressemble à ça avec un peu d'humour. C'est une maquette non proposée au téléchargement, mais vous avez tout ici pour la refaire. Le fichier FST n'est pas disponible.
À droite, vous choisissez le motif de la pompe parmi 10 choix possibles. Le slider vaut de 1 à 10 avec un incrément de 1. Au milieu, vous avez le bouton de mix pour indiquer la force d'application de l'effet. En bas à gauche, vous pouvez désactiver le plugin, lequel transfère alors le signal d'entrée directement à la sortie. Le bypass est équivalent à avoir le bouton de mix en position nulle.
Les entrailles du patcher sont assez simples :
Le cœur de l'algorithme repose sur ce composant standard de FL Studio. La variante default
est chargée et le low pass désactivé. Ensuite, il convient de faire varier le numéro de motif (à côté de PAT) pour dessiner 10 modèles de pompes dans VOL/PAT. Les 2 coches en bas à gauche sont indispensables pour boucler. La modulation X/Y n'est pas utilisée.
J'ai donc dessiné arbitrairement 10 motifs dont j'ignore l'utilité complète. Il est juste techniquement requis d'en avoir 10, alors j'en ai fait 10... Le premier est celui que je suis censé utiliser le plus souvent. Le point de départ doit être en loop start et celui d'arrivée en loop end. Les volumes de départ et d'arrivée doivent être égaux.
Le paramètre 6. Pattern number
est directement mappé avec le slider de sélection du motif.
Le volume wet est directement géré dans Love philter via 18. Filter 1 - Output volume
.
Le volume dry est piloté par un simple Fruity Balance.
Le son est mixé tout seul en réunissant les signaux jaunes vers To FL Studio.
Le son wet est celui qu'on veut fade in. Le son dry est celui qu'on veut fade out. Le plugin est sans effet si l'option de mix est à zéro.
On a dit plus haut qu'on veut un profil parabolique pour nos fades :
0.8*if(b,0,2*a-a^2)
selon formule de Yin
0.8*if(b,1,1-a^2)
selon formule de Yout
Le paramètre a
correspond au potard de mix de l'interface valant de 0 à 100 avec un step de 1. Le paramètre b
correspond à la case à cocher du bypass : 1 pour coché, 0 pour pas coché. La condition ternaire vérifie si le bypass est actif avant de calculer le volume. Le coefficient 0.8
est sorti de la formule par convenance d'écriture.
Il faut jouer avec tous les boutons du plugin pour les initialiser, puis leur attribuer leur valeur par défaut. Le résultat sonne bien.
En raison des formules paraboliques, le son sera supérieur de 0.6 db au point de jonction de 50%. Il conviendra de passer vite ou d'aplatir avec un Fruity Limiter.
Ce Fruity Limiter est aussi ce qui permet de visualiser in fine l'effet de pompe à chaque beat :
Pour aller plus loin, il faudrait ajouter un détecteur de non-beat pour éviter que le son ne pompe en l'absence de kick. Vous avez 4 heures ou 15 dollars !
Dernière modification le 31 juillet 2024 à 19:06