Aujourd'hui, c'est l'heure de mettre à jour notre fameux dossier sur les applications de l'opération de convolution numérique dans la M.A.O. ! Presque 20 ans après, quels en sont les usages principaux aujourd'hui, et y a-t-il encore des territoires à défricher ?
Mon tout premier article pour AudioFanzine, il y a maintenant 18 ans (ça ne me rajeunit pas), parlait de convolution pour ceux qui s’en souviennent encore. Il avait lancé quelques discussions sur les forums, notamment sur le fameux sujet « les pourrisseurs(euses) ! » du Pub, avec comme participants un certain nombre des modérateurs de l’époque. Il fut également le point d’entrée de ma carrière de développeur/chercheur, et avait alimenté entre autres choses le démarrage d’un certain projet appelé Two Notes dont vous avez peut-être entendu parler depuis !
Récemment j’ai eu l’occasion de relire cet article, et je me suis évidemment rendu compte qu’il avait pas mal vieilli. Je me suis dit qu’il serait pertinent de le mettre un peu à jour, par rapport à ce qui se fait aujourd’hui autour des processeurs à convolution, de réaliser une petite rétrospective, corriger quelques points, et accessoirement répondre à certaines questions laissées en suspens à l’époque. Donc aujourd’hui je vous propose de nous replonger tranquillement via ce nouveau dossier dans les applications de la convolution, et vous allez voir en plus qu’il y a un twist à la fin de l’article ! Allons-y, et commençons donc déjà par répondre à nouveau à la question !
C’est quoi la convolution numérique ?
C’est une opération de traitement de signal numérique, que vos plug-ins préférés utilisent matin midi et soir pour réaliser la totalité des opérations de filtrage, par exemple dans vos égaliseurs, délais, distorsions, synthétiseurs. Cela consiste en gros à utiliser une série de coefficients, qui caractérisent le traitement ou l’effet à reproduire, et à les multiplier et additionner d’une certaine manière aux échantillons de votre signal d’entrée audio pour opérer la magie de la simulation. Imaginez par exemple le « profil » d’une réverbe qu’on pourra superposer ou appliquer sur n’importe quel signal numérisé, et faire comme si « on y était ».
Ce profil, on a pris l’habitude dans le langage courant de la M.A.O de le voir exclusivement comme un fichier audio un peu particulier, avec comme nom « IR » pour impulse response en anglais ou réponse impulsionnelle en français. Une IR est spécifique à un système audio particulier, elle permet de le caractériser et aussi de le simuler via un type d’effet ou de plug-in appelé le processeur à convolution. Elle peut être mesurée sur le système réel, mais aussi être conçue artificiellement à partir d’un algorithme, que ce soit pour créer un son de réverbération artificiel, ou pour opérer à toutes sortes de transformations du son plus ou moins transparentes. C’est d’ailleurs le principe de nos fameux filtres à phase linéaire dans les plug-ins d’égalisation dédiés !
Capturer une réponse impulsionnelle
Une IR mesurée peut être obtenue traditionnellement en suivant sa définition, qui veut aussi dire « réponse à une impulsion » : on cherche un son très violent et très court, on le déclenche, et on l’enregistre. Par exemple, pour capturer l’acoustique d’une pièce, on peut faire éclater un ballon de baudruche ou tirer un coup de feu, et les enregistrer pour obtenir l’IR caractéristique.
Malheureusement, de tels enregistrements ne se contentent pas de capturer les caractéristiques du système qui nous intéresse, mais aussi tout un tas de phénomènes annexes qui sont présents lors de la capture et dans la chaine d’enregistrement du son, tels que la coloration du microphone de la prise du son, du préamplificateur, un ensemble de phénomènes liés à la position et à l’orientation dans l’espace du microphone, ainsi qu’une coloration plus ou moins aléatoire liée au fait que le coup de feu ou le ballon ne génèrent pas une « impulsion » parfaite au sens mathématique du terme. C’est pourquoi, en général, on préférera utiliser d’autres techniques plus adaptées, qui n’auront notamment pas pour effet de bord de faire des trous dans le toit des cathédrales du monde entier, ou de mettre le « son du pistolet » sur le résultat. C’est également pour ces raisons que les termes « impulse » ou « impulsion » pour parler d’IR sont inadaptés, et que chaque fois que quelqu’un en fait usage de cette manière, il y a un petit chaton qui finit écrasé sous un bus (le même que celui qui écrase les petits chiots des gens qui disent versatile pour polyvalent).
La méthode alternative la plus populaire consiste à envoyer un son sinusoïdal, dont on fait varier la fréquence fondamentale de bas en haut dans la zone de fréquences d’intérêt (par exemple de 20 à 20000 Hz), appelé aussi sinus sweep.
En fonction du système à caractériser, il est possible d’envoyer ce signal de capture directement dans le système (par exemple pour un effet hardware, ou pour caractériser une enceinte d’amplificateur guitare), ou nécessaire d’utiliser une enceinte adaptée aussi « transparente » que possible. Une fois l’enregistrement effectué, on pourra alors lui appliquer un traitement dit de « déconvolution » pour obtenir les coefficients de l’IR qui nous intéresse, de manière très précise (ici appliqué à une réverbe à ressorts).
Cette technique peut facilement être expérimentée en utilisant la version démo du produit Voxengo Deconvolver, qui possède toutes les fonctionnalités dont vous avez besoin, ou encore l’outil intégré dans le pack Convolution de Ableton Live, qui prend en charge la génération du sweep, la gestion des niveaux, le calcul de l’IR et sa sauvegarde sous forme de fichier audio directement dans le STAN.
Au passage, il existe une technique de sioux pour arriver au même résultat dans un contexte numérique à moindre embêtement. Admettons que vous adoriez le son de tel plug-in qui ne génère pas d’harmoniques, comme un simulateur d’enceintes, ou une réverb logicielle avec pas ou peu de modulation. Il est tout à fait possible de capturer son comportement en envoyant l’équivalent d’une « impulsion » numérique dans ledit plug-in, et d’obtenir une IR qui je le rappelle est une « réponse à une impulsion ». Pour cela, vous pouvez utiliser un fichier WAV qui contient uniquement un échantillon avec la valeur 1 et plusieurs secondes de zéros après. Placez-le sur une piste, faites un rendu de ce fichier passé au travers du plug-in à calculer, et vous aurez votre IR, c’est magique ! L’outil de Live permet d’ailleurs aussi de faire ça. N’oubliez pas d’ailleurs en l’utilisant de désactiver les fades in qui se mettent parfois par défaut sur le début de vos clips audios dans votre STAN préféré.
Limites de l’approche
L’ensemble de ce processus, la capture de l’IR d’un système avec l’hypothèse que l’IR le caractérise pleinement, puis l’application de l’IR par convolution numérique sur un signal audio numérique donné, est une tentative de simulation logicielle de ce système. Mais celle-ci ne sera « réaliste » que si les effets de bord de l’enregistrement ne posent pas de problème, et surtout si le système à modéliser répond à une exigence qui rend pertinente sa capture par une IR. Celui-ci doit être un système dit « LTI », c’est à dire linéaire à temps invariant. En gros, un système parfaitement linéaire (qui ne génère pas d’harmoniques), et à comportement constant dans le temps. Exit donc toute possibilité de simuler avec ces techniques tout ce qui est distorsion, compresseurs, bidules à tubes, effets de modulation…
Pour d’autres systèmes, on ne peut décemment dire qu’ils rentrent parfaitement dans le cadre, mais on peut décider d’ignorer la partie non linéaire ou modulation qui n’a pas une importance jugée trop significative : enceintes d’amplificateurs guitare, réverbérations numériques ou mécaniques, délais analogiques, processeurs d’effets ou égalisations en tout genre, etc.
Par exemple, pour citer un cas que j’ai rencontré dernièrement, les fameuses réverbérations à ressorts physiques (ou Spring en anglais), qui sont d’ailleurs constituées du tank, mais aussi de tout un tas de composants électroniques pour adapter les impédances et amplifier le signal d’entrée, sont souvent réglées pour que la plage utile de volume soit pile avant le moment où les Schbooiiiiings habituels se transforment en concert de Black Metal. On peut donc imaginer que ce qui sera représenté par une simple IR sera forcément moins riche que le vrai circuit, même si on peut s’en contenter pour la plupart des usages. Au passage, j’en profite pour vous mettre en lien la petite IR du tank de réverbération à ressort que j’ai sorti de mon Randall Diavlo et que j’ai mesurée avec Live :
Comment ça marche un processeur à convolution en 2024
En tout cas, plusieurs décades après la première utilisation de la convolution numérique dans un plug-in, un certain nombre de choses ont changé ! Déjà, on voit des moteurs à convolution partout, dans les réverbes, dans les simulateurs d’amplificateurs, dans les effets inclus avec les STANs (Cubase, Live, Logic Pro X, Reaper, etc.), les plug-ins de sampling et de lecture de samples, et même sur du hardware en général, que ce soit sur des pédales, modules Eurorack ou derrière des amplis à lampes avec les sorties « recording » (chez Mesa Boogie, Revv, Victory, etc.).
Réaliser cette opération en temps réel faisait partie il y a un temps d’un des traitements les plus coûteux en charge CPU, sachant que quelque soit la méthode utilisée, le nombre d’opérations à faire par seconde pour réaliser le traitement augmente avec la taille de l’IR. Heureusement, la puissance des ordinateurs et DSP a pas mal évolué depuis, et il existe un certain nombre de techniques qui ont permis d’optimiser les convolutions, au-delà de la technique de base que j’abordais déjà dans mon article de 2005, qui est l’utilisation de la FFT (Fast Fourier Transform, transformée de Fourier rapide). Par exemple, on peut découper l’IR en plusieurs partitions de différentes tailles, ce qui permet de paralléliser le calcul sur plusieurs cœurs, ou de le rendre compatible avec l’usage du GPU.
L’usage de ces techniques spécifiques a fait une poussée d’ailleurs depuis quelques années, pour une raison très bizarre pour les néophytes, qui est la péremption de certains brevets. L’existence de ces brevets a fait couler beaucoup d’encre (numérique) dans les années 2000 et 2010, car leur validité était contestée, dans la mesure où ils étaient basés en partie sur des recherches publiées dans le domaine public, ce qui leur a valu le qualificatif de brevets « trolls », et ont obligé certains développeurs à utiliser des techniques alternatives ou à payer une licence d’utilisation aux détenteurs des brevets. La date de validité de certains de ces brevets étant passée aujourd’hui, il est devenu moins problématique d’utiliser les techniques de convolution les plus avancées partout, et ce sans latence ajoutée ce qui n’était pas le cas en 2005.
Je vais en profiter pour débunker une idée reçue pour juger de la qualité d’un « moteur de convolution ». En théorie, tous les moyens d’obtenir la simulation d’un système caractérisé par une IR donnent strictement le même résultat. J’insiste lourdement là-dessus. Quelque soit la technique utilisée, ou même si la convolution devait être faite dans le domaine temporel sans les FFTs, le résultat du signal multiplié par l’IR via l’opération de convolution doit donner à chaque fois strictement le même résultat. Il n’y a donc pas de moteur de convolution en théorie qui sonne mieux que le voisin ! S’il y en a deux qui donnent un résultat différent pour une même IR, cela signifie qu’un des deux ne fait pas son travail correctement, ou rajoute des traitements qui n’ont rien à voir avec la convolution ! Par contre, en fonction des optimisations réalisées, il est possible que certains soient moins « performants » en basse latence dans votre STAN, ce qui se traduira par des hausses de la charge CPU et aussi par des clics assez répétés et caractéristiques…
Usages créatifs d’aujourd’hui et d’IR
Alors que fait-on de la convolution en 2024 ? Est-ce que les usages ont beaucoup changé depuis 2005 chez les maoistes ? Sans surprise, quand on parle de convolution aujourd’hui, on pense réverbérations, et logiciels dédiés qui proposent des IRs de multiples appareils et acoustiques résonantes, du plus classique au plus étonnant, en passant par des systèmes électromécaniques (plaques, ressorts, etc.) voire… des systèmes numériques ! En effet, un regain d’intérêt récent pour les premiers racks d’effets numériques, qui sonnaient d’une certaine manière notamment à cause des limitations techniques de l’époque, a permis de voir foisonner les émulations logicielles, basées au choix sur une reproduction aussi proche que possible des algorithmes et des effets de bord du matériel d’époque (l’exemple le plus connu étant la Valhalla VintageVerb), ou sur la capture d’IRs avec des astuces pour gérer les modulations présentes sur les originaux par exemple chez Liquidsonics (ici démo audio avec plusieurs exemples d’IRs d’espaces acoustiques et de racks d’effets numériques).
Ensuite, la deuxième utilisation la plus répandue de la convolution est bien évidemment la simulation d’enceintes d’amplificateurs guitare/basse. La technologie permet de reproduire de manière fidèle (mais sans les non-linéarités additionnelles donc) toute la chaine de prise de son après l’amplificateur, à savoir l’enceinte et ses haut-parleurs, mais aussi la couleur de l’amplificateur de puissance utilisé pour la mesure, l’acoustique de la pièce, la directivité et la réponse en fréquence du microphone et de sa position devant l’enceinte, etc. C’est pour cette raison que depuis 15 ans, on a pu voir fleurir des centaines de compilations d’IR gratuites et payantes sur les internets, dont la qualité peut être très variable en fonction des conditions de mesures et des traitements additionnels appliqués sur les IRs… Certaines sociétés proposent également des technologies propriétaires basées plus ou moins sur la convolution, et une compatibilité avec les IRs tierces additionnelle, dont on en reparlera très prochainement (ici démo sans et avec la simulation).
Mais là où les choses sont vraiment devenues intéressantes à mes yeux, c’est lorsque les développeurs ont intégré ces usages classiques, puis ont cherché à les augmenter de différentes manières. Déjà il n’est pas rare que les STANs, qui intègrent presque en majorité un effet interne de traitement par convolution, proposent également des outils pour la capture d’IR, et pour leur traitement en live. On pourra ainsi capturer la signature sonore directement dedans d’une machine extérieure ou d’un plug-in, appliquer des enveloppes de volume et de fondu sur l’IR, la resampler pour la rendre plus courte ou plus longue, la filtrer d’une certaine manière ou lui appliquer des modélisations de l’impact de l’impédance d’une enceinte sur l’amplificateur de puissance, la mixer avec d’autres, la placer dans une position donnée de l’espace stéréo ou multicanal, la « déréverbérer » ou augmenter au contraire la densité de réverbération avec du délai et des diffuseurs, et exporter le résultat final sous forme d’une IR seule, réutilisable ainsi ailleurs.
Quelques produits remarquables comme AudioThing Fog Convolver 2 ou Lese Audio Technologies Eigen vont même jusqu’à permettre la génération d’une base artificielle de réverbération à partir de bruits blancs et de modélisation physique, ce qui permet ensuite de faire des choses plus ou moins complexes et réalistes grâce aux traitements sus-cités, quand un Fabfilter Pro-R 2 se permet de faire carrément l’inverse, à savoir de lire une IR pour estimer les paramètres d’un algorithme de réverbe classique qui devra coller le plus possible au son de l’IR, avec des possibilités de personnalisation en plus !
En parlant de spatialisation, la vénérable société Audio Ease qui proposait déjà Altiverb il y a quelques années, a sorti depuis des produits remarquables orientés plutôt postproduction, tels que Indoor et Speakerphone. Le premier permet de générer via la convolution des ambiances acoustiques, je dirais moins grandiloquentes que ce qu’on utilise pour la musique, telles que celles d’une maison avec une géométrie donnée et avec la possibilité d’y déplacer un microphone virtuel. Speakerphone est plutôt une boite à outils qui propose une combinaison d’effets, de bruitages, de musiques libres de droits et de réponses impulsionnelles de bidules pouvant être mises en série pour générer des ambiances plus ou moins réalistes et plus ou moins barrées ou lo-fi.
Et puis évidemment l’usage que personnellement je préfère avec la convolution et les IRs, c’est le sound design au sens large. Il ne s’agira pas seulement de créer ou d’utiliser des IRs avec des réponses en fréquence ou des réverbérations étonnantes, mais aussi d’essayer d’utiliser à peu près tout et n’importe quoi niveau signal audio comme base, avec quelques traitements supplémentaires si besoin ! Il sera alors intéressant de voir comment le fait de la considérer comme une IR plutôt que comme un son va permettre de combiner ses caractéristiques soniques à celles du signal à traiter, avec des résultats d’une qualité et d’un intérêt plutôt aléatoire, qui auront parfois pour effet de rajouter du contenu musical ou harmonique en plus des aspects purement fréquentiels ou dynamiques. D’ailleurs, alors que cet usage était plutôt peu conventionnel il y a quelques années, il est étonnant de constater qu’aujourd’hui les librairies de Diego Stocco ont eu des petits, que ce soit avec des plug-ins dédiés à l’usage, ou avec la partie expérimentale de la librairie d’IRs d’un Ableton Live par exemple (petite démo ci-dessous).
Conclusion
Nous avons donc fait un tour d’horizon de ce qu’est la convolution pour la M.A.O. aujourd’hui et de ce que nous pouvons en faire. Mais il me reste à aborder un dernier sujet. Dans la première version de cet article de 2005, j’avais abordé quelques recherches en cours qui permettaient de « généraliser l’opération de convolution et la capture de matériel » à des systèmes non LTI, c’est-à-dire non linéaires ou variants dans le temps. En effet, le concept qui consiste à capturer les caractéristiques sonores d’un joujou en lui envoyant un signal particulier, en l’enregistrant et en le traitant, était tellement enthousiasmant qu’il était également frustrant, devant la somme des éléments impossibles à capturer par la technologie. Déjà à l’époque on parlait d’améliorations scientifiques possibles qui pourraient déboucher sur de nouveaux plug-ins et effets (séries de Volterra, « convolution dynamique » avec l’IR qui change en fonction de l’énergie du signal, etc.). Il se trouve qu’une société italienne, Acustica Audio, a réussi à faire quelque chose dans ce sens, pour des effets faiblement non linéaires et pour les modulations. D’autres également ont produit des technologies plutôt dédiées à la simulation d’enceintes. Mais globalement, je trouve que ces approches ne satisfont pas les promesses initiales.
Alors a-t-on finalement abandonné cette idée ? Et bien non justement, et je voudrais conclure là-dessus en forme de petit clin d’œil aux questions que je me posais en 2005. Il se trouve que l’idée a fait son chemin et trouvé plusieurs solutions depuis, que ce soit avec l’estimation des paramètres d’algorithmes génériques par des mesures (ça commence par un K) et surtout avec le Machine Learning ! Mais ça sera le sujet d’un prochain article :)
En attendant, j’annonce en avance que nous allons publier prochainement deux dossiers supplémentaires de type « guide d’achat », qui contiendront une liste non exhaustive de produits gratuits et payants pertinents pour que vous puissiez vous amuser avec la convolution. Le premier sera dédié aux réverbérations et aux processeurs de convolution généralistes, tandis que le deuxième sera centré autour de la simulation d’enceintes d’amplificateurs, avec à chaque fois quelques références de banques d’IR à télécharger (aka les irrécupérables).
Bonne convolution à toutes et à tous !