Dès l'instant où on est en multi-bandes, les choses se compliquent par rapport à un simple filtre 2 voies où on a juste besoin d'un LPF et d'un HPF qui se complémentent correctement. Pour un filtre 2 voies, il faut que la sommation des réponses de chaque filtre ait un spectre d'amplitude plat et un spectre de phase dont la variation non linéaire n'est pas ou quasi pas audible. C'est ce que permet un LR4 (coupure de -24 dB/octave) ou un LR8 (coupure de -48 dB/octave). Pour ceux qui ne le savent pas, un LR est constitué de 2 filtres de Butterworth successifs. Par exemple, un RL4 Passe-bas est constitué de 2 butterworth d'ordre 2 passe-bas qui coupent chacun avec une pente de -12 dB/octave.
Imaginons qu'on veuille maintenant faire un filtrage trois voies numérique.
L'approche Naïve qui consiste à enchaîner 2 filtrages LR successifs avec 2 fréquences de coupure différentes :
- Code: Tout sélectionner
in -> HPF -> out1H -> HPF -> out2HH
\ \
\ \-> LPF -> out2HL
\
\-> LPF -> out1L
ne fonctionne pas car si on somme les signaux out1L, out2HL et out2HH, on peut constater qu'on obtient un signal dont le spectre d'amplitude a des accidents au niveau des fréquences de coupures.
Les modules de filtrages VST multibandes qui sont correctement implémentés corrigent ce problème. C'est le cas par exemple du module VST CrossOver (x86) de RS-MET :
http://www.rs-met.com/freebies.html
ou du module VST ISOL8 (x86 et x64) de TBProAudio :
https://www.tbproaudio.de/products/isol8
Vous pouvez le vérifier en envoyant un bruit blanc en entrée. La somme des sorties correspondants à chaque bande doit alors avoir un spectre d'amplitude plat. On peut bien sûr utiliser ces modules tout fait. Mais on peut aussi avoir envie de le faire soi-même avec Usine (x64), notamment parce qu'ISOL8 consomme pas mal de ressources CPU dès qu'on a bcp de canaux d'entrée car il faut alors utiliser plusieurs modules VST. Une autre raison est qu'on n'a pas forcément besoin d'un filtre 5 bandes qui ajoute forcément de la complexité dans le codage interne du module ... Par ailleurs, on peut avoir envie d'utiliser des pentes différentes pour chaque filtre, ce qu'ISOL8 ne permet pas ...