Se connecter
Se connecter

ou
Créer un compte

ou

Viva la Convolution Reloaded - Dossier sur les processeurs à convolution

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 ?

Dossier sur les processeurs à convolution : Viva la Convolution Reloaded

Mon tout premier article pour Audio­Fan­zine, il y a main­te­nant 18 ans (ça ne me rajeu­nit pas), parlait de convo­lu­tion pour ceux qui s’en souviennent encore. Il avait lancé quelques discus­sions sur les forums, notam­ment sur le fameux sujet « les pour­ris­seurs(euses) ! » du Pub, avec comme parti­ci­pants un certain nombre des modé­ra­teurs de l’époque. Il fut égale­ment le point d’en­trée de ma carrière de déve­lop­peur/cher­cheur, et avait alimenté entre autres choses le démar­rage d’un certain projet appelé Two Notes dont vous avez peut-être entendu parler depuis !

Récem­ment j’ai eu l’oc­ca­sion de relire cet article, et je me suis évidem­ment rendu compte qu’il avait pas mal vieilli. Je me suis dit qu’il serait perti­nent de le mettre un peu à jour, par rapport à ce qui se fait aujour­d’hui autour des proces­seurs à convo­lu­tion, de réali­ser une petite rétros­pec­tive, corri­ger quelques points, et acces­soi­re­ment répondre à certaines ques­tions lais­sées en suspens à l’époque. Donc aujour­d’hui je vous propose de nous replon­ger tranquille­ment via ce nouveau dossier dans les appli­ca­tions de la convo­lu­tion, et vous allez voir en plus qu’il y a un twist à la fin de l’ar­ticle ! Allons-y, et commençons donc déjà par répondre à nouveau à la ques­tion !

C’est quoi la convo­lu­tion numé­rique ?

C’est une opéra­tion de trai­te­ment de signal numé­rique, que vos plug-ins préfé­rés utilisent matin midi et soir pour réali­ser la tota­lité des opéra­tions de filtrage, par exemple dans vos égali­seurs, délais, distor­sions, synthé­ti­seurs. Cela consiste en gros à utili­ser une série de coef­fi­cients, qui carac­té­risent le trai­te­ment ou l’ef­fet à repro­duire, et à les multi­plier et addi­tion­ner d’une certaine manière aux échan­tillons de votre signal d’en­trée audio pour opérer la magie de la simu­la­tion. Imagi­nez par exemple le « profil » d’une réverbe qu’on pourra super­po­ser ou appliquer sur n’im­porte quel signal numé­risé, et faire comme si « on y était ».

schema1Ce profil, on a pris l’ha­bi­tude dans le langage courant de la M.A.O de le voir exclu­si­ve­ment comme un fichier audio un peu parti­cu­lier, avec comme nom « IR » pour impulse response en anglais ou réponse impul­sion­nelle en français. Une IR est spéci­fique à un système audio parti­cu­lier, elle permet de le carac­té­ri­ser et aussi de le simu­ler via un type d’ef­fet ou de plug-in appelé le proces­seur à convo­lu­tion. Elle peut être mesu­rée sur le système réel, mais aussi être conçue arti­fi­ciel­le­ment à partir d’un algo­rithme, que ce soit pour créer un son de réver­bé­ra­tion arti­fi­ciel, ou pour opérer à toutes sortes de trans­for­ma­tions du son plus ou moins trans­pa­rentes. C’est d’ailleurs le prin­cipe de nos fameux filtres à phase linéaire dans les plug-ins d’éga­li­sa­tion dédiés !

Captu­rer une réponse impul­sion­nelle

Une IR mesu­rée peut être obte­nue tradi­tion­nel­le­ment en suivant sa défi­ni­tion, qui veut aussi dire « réponse à une impul­sion » : on cherche un son très violent et très court, on le déclenche, et on l’en­re­gistre. Par exemple, pour captu­rer l’acous­tique d’une pièce, on peut faire écla­ter un ballon de baudruche ou tirer un coup de feu, et les enre­gis­trer pour obte­nir l’IR carac­té­ris­tique.

Malheu­reu­se­ment, de tels enre­gis­tre­ments ne se contentent pas de captu­rer les carac­té­ris­tiques du système qui nous inté­resse, mais aussi tout un tas de phéno­mènes annexes qui sont présents lors de la capture et dans la chaine d’en­re­gis­tre­ment du son, tels que la colo­ra­tion du micro­phone de la prise du son, du préam­pli­fi­ca­teur, un ensemble de phéno­mènes liés à la posi­tion et à l’orien­ta­tion dans l’es­pace du micro­phone, ainsi qu’une colo­ra­tion plus ou moins aléa­toire liée au fait que le coup de feu ou le ballon ne génèrent pas une « impul­sion » parfaite au sens mathé­ma­tique du terme. C’est pourquoi, en géné­ral, on préfé­rera utili­ser d’autres tech­niques plus adap­tées, qui n’au­ront notam­ment pas pour effet de bord de faire des trous dans le toit des cathé­drales du monde entier, ou de mettre le « son du pisto­let » sur le résul­tat. C’est égale­ment pour ces raisons que les termes « impulse » ou « impul­sion » pour parler d’IR sont inadap­té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 versa­tile pour poly­va­lent).

La méthode alter­na­tive la plus popu­laire consiste à envoyer un son sinu­soï­dal, dont on fait varier la fréquence fonda­men­tale de bas en haut dans la zone de fréquences d’in­té­rêt (par exemple de 20 à 20000 Hz), appelé aussi sinus sweep.

Sine Sweep FadeEn fonc­tion du système à carac­té­ri­ser, il est possible d’en­voyer ce signal de capture direc­te­ment dans le système (par exemple pour un effet hard­ware, ou pour carac­té­ri­ser une enceinte d’am­pli­fi­ca­teur guitare), ou néces­saire d’uti­li­ser une enceinte adap­tée aussi « trans­pa­rente » que possible. Une fois l’en­re­gis­tre­ment effec­tué, on pourra alors lui appliquer un trai­te­ment dit de « décon­vo­lu­tion » pour obte­nir les coef­fi­cients de l’IR qui nous inté­resse, de manière très précise (ici appliqué à une réverbe à ressorts).

Sine Sweep SpringCette tech­nique peut faci­le­ment être expé­ri­men­tée en utili­sant la version démo du produit Voxengo Decon­vol­ver, qui possède toutes les fonc­tion­na­li­tés dont vous avez besoin, ou encore l’ou­til inté­gré dans le pack Convo­lu­tion de Able­ton Live, qui prend en charge la géné­ra­tion du sweep, la gestion des niveaux, le calcul de l’IR et sa sauve­garde sous forme de fichier audio direc­te­ment dans le STAN.

Voxengo DeconvolverAu passage, il existe une tech­nique de sioux pour arri­ver au même résul­tat dans un contexte numé­rique à moindre embê­te­ment. Admet­tons que vous adoriez le son de tel plug-in qui ne génère pas d’har­mo­niques, comme un simu­la­teur d’en­ceintes, IR-Measurement-Device-1ou une réverb logi­cielle avec pas ou peu de modu­la­tion. Il est tout à fait possible de captu­rer son compor­te­ment en envoyant l’équi­valent d’une « impul­sion » numé­rique dans ledit plug-in, et d’ob­te­nir une IR qui je le rappelle est une « réponse à une impul­sion ». Pour cela, vous pouvez utili­ser un fichier WAV qui contient unique­ment un échan­tillon 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 à calcu­ler, et vous aurez votre IR, c’est magique ! L’ou­til de Live permet d’ailleurs aussi de faire ça. N’ou­bliez pas d’ailleurs en l’uti­li­sant de désac­ti­ver 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’ap­proche

L’en­semble de ce proces­sus, la capture de l’IR d’un système avec l’hy­po­thèse que l’IR le carac­té­rise plei­ne­ment, puis l’ap­pli­ca­tion de l’IR par convo­lu­tion numé­rique sur un signal audio numé­rique donné, est une tenta­tive de simu­la­tion logi­cielle de ce système. Mais celle-ci ne sera « réaliste » que si les effets de bord de l’en­re­gis­tre­ment ne posent pas de problème, et surtout si le système à modé­li­ser répond à une exigence qui rend perti­nente sa capture par une IR. Celui-ci doit être un système dit « LTI », c’est à dire linéaire à temps inva­riant. En gros, un système parfai­te­ment linéaire (qui ne génère pas d’har­mo­niques), et à compor­te­ment constant dans le temps. Exit donc toute possi­bi­lité de simu­ler avec ces tech­niques tout ce qui est distor­sion, compres­seurs, bidules à tubes, effets de modu­la­tion…

Pour d’autres systèmes, on ne peut décem­ment dire qu’ils rentrent parfai­te­ment dans le cadre, mais on peut déci­der d’igno­rer la partie non linéaire ou modu­la­tion qui n’a pas une impor­tance jugée trop signi­fi­ca­tive : enceintes d’am­pli­fi­ca­teurs guitare, réver­bé­ra­tions numé­riques ou méca­niques, délais analo­giques, proces­seurs d’ef­fets ou égali­sa­tions en tout genre, etc.

Par exemple, pour citer un cas que j’ai rencon­tré derniè­re­ment, les fameuses réver­bé­ra­tions à ressorts physiques (ou Spring en anglais), qui sont d’ailleurs consti­tuées du tank, mais aussi de tout un tas de compo­sants élec­tro­niques pour adap­ter les impé­dances et ampli­fier le signal d’en­trée, sont souvent réglées pour que la plage utile de volume soit pile avant le moment où les Schbooiiiiings habi­tuels se trans­forment en concert de Black Metal. On peut donc imagi­ner 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 conten­ter pour la plupart des usages. Au passage, j’en profite pour vous mettre en lien la petite IR du tank de réver­bé­ra­tion à ressort que j’ai sorti de mon Randall Diavlo et que j’ai mesu­rée avec Live :

Comment ça marche un proces­seur à convo­lu­tion en 2024

En tout cas, plusieurs décades après la première utili­sa­tion de la convo­lu­tion numé­rique dans un plug-in, un certain nombre de choses ont changé ! Déjà, on voit des moteurs à convo­lu­tion partout, dans les réverbes, dans les simu­la­teurs d’am­pli­fi­ca­teurs, 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 hard­ware en géné­ral, que ce soit sur des pédales, modules Euro­rack ou derrière des amplis à lampes avec les sorties « recor­ding » (chez Mesa Boogie, Revv, Victory, etc.).

Réali­ser cette opéra­tion en temps réel faisait partie il y a un temps d’un des trai­te­ments les plus coûteux en charge CPU, sachant que quelque soit la méthode utili­sée, le nombre d’opé­ra­tions à faire par seconde pour réali­ser le trai­te­ment augmente avec la taille de l’IR. Heureu­se­ment, la puis­sance des ordi­na­teurs et DSP a pas mal évolué depuis, et il existe un certain nombre de tech­niques qui ont permis d’op­ti­mi­ser les convo­lu­tions, au-delà de la tech­nique de base que j’abor­dais déjà dans mon article de 2005, qui est l’uti­li­sa­tion de la FFT (Fast Fourier Trans­­form, trans­­for­­mée de Fourier rapide). Par exemple, on peut décou­per l’IR en plusieurs parti­tions de diffé­rentes tailles, ce qui permet de paral­lé­li­ser le calcul sur plusieurs cœurs, ou de le rendre compa­tible avec l’usage du GPU.

L’usage de ces tech­niques spéci­fiques a fait une pous­sée d’ailleurs depuis quelques années, pour une raison très bizarre pour les néophytes, qui est la péremp­tion de certains brevets. L’exis­tence de ces brevets a fait couler beau­coup d’encre (numé­rique) dans les années 2000 et 2010, car leur vali­dité était contes­té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 quali­fi­ca­tif de brevets « trolls », et ont obligé certains déve­lop­peurs à utili­ser des tech­niques alter­na­tives ou à payer une licence d’uti­li­sa­tion aux déten­teurs des brevets. La date de vali­dité de certains de ces brevets étant passée aujour­d’hui, il est devenu moins problé­ma­tique d’uti­li­ser les tech­niques de convo­lu­tion les plus avan­cées partout, et ce sans latence ajou­tée ce qui n’était pas le cas en 2005.

Je vais en profi­ter pour débun­ker une idée reçue pour juger de la qualité d’un « moteur de convo­lu­tion ». En théo­rie, tous les moyens d’ob­te­nir la simu­la­tion d’un système carac­té­risé par une IR donnent stric­te­ment le même résul­tat. J’in­siste lour­de­ment là-dessus. Quelque soit la tech­nique utili­sée, ou même si la convo­lu­tion devait être faite dans le domaine tempo­rel sans les FFTs, le résul­tat du signal multi­plié par l’IR via l’opé­ra­tion de convo­lu­tion doit donner à chaque fois stric­te­ment le même résul­tat. Il n’y a donc pas de moteur de convo­lu­tion en théo­rie qui sonne mieux que le voisin ! S’il y en a deux qui donnent un résul­tat diffé­rent pour une même IR, cela signi­fie qu’un des deux ne fait pas son travail correc­te­ment, ou rajoute des trai­te­ments qui n’ont rien à voir avec la convo­lu­tion ! Par contre, en fonc­tion des opti­mi­sa­tions réali­sées, il est possible que certains soient moins « perfor­mants » 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 carac­té­ris­tiques…

Usages créa­tifs d’aujour­d’hui et d’IR

3D-Display-SHP-03bAlors que fait-on de la convo­lu­tion en 2024 ? Est-ce que les usages ont beau­coup changé depuis 2005 chez les maoistes ? Sans surprise, quand on parle de convo­lu­tion aujour­d’hui, on pense réver­bé­ra­tions, et logi­ciels dédiés qui proposent des IRs de multiples appa­reils et acous­tiques réso­nantes, du plus clas­sique au plus éton­nant, en passant par des systèmes élec­tro­mé­ca­niques (plaques, ressorts, etc.) voire… des systèmes numé­riques ! En effet, un regain d’in­té­rêt récent pour les premiers racks d’ef­fets numé­riques, qui sonnaient d’une certaine manière notam­ment à cause des limi­ta­tions tech­niques de l’époque, a permis de voir foison­ner les émula­tions logi­cielles, basées au choix sur une repro­duc­tion aussi proche que possible des algo­rithmes et des effets de bord du maté­riel d’époque (l’exemple le plus connu étant la Valhalla Vinta­ge­Verb), ou sur la capture d’IRs avec des astuces pour gérer les modu­la­tions présentes sur les origi­naux par exemple chez Liquid­so­nics (ici démo audio avec plusieurs exemples d’IRs d’es­paces acous­tiques et de racks d’ef­fets numé­riques). 

House Demo Conv
00:0002:29

Ensuite, la deuxième utili­sa­tion la plus répan­due de la convo­lu­tion est bien évidem­ment la simu­la­tion d’en­ceintes d’am­pli­fi­ca­teurs guitare/basse. La tech­no­lo­gie permet de repro­duire de manière fidèle (mais sans les non-linéa­ri­tés addi­tion­nelles donc) toute la chaine de prise de son après l’am­pli­fi­ca­teur, à savoir l’en­ceinte et ses haut-parleurs, mais aussi la couleur de l’am­pli­fi­ca­teur de puis­sance utilisé pour la mesure, l’acous­tique de la pièce, la direc­ti­vité et la réponse en fréquence du micro­phone et de sa posi­tion devant l’en­ceinte, etc. C’est pour cette raison que depuis 15 ans, on a pu voir fleu­rir des centaines de compi­la­tions d’IR gratuites et payantes sur les inter­nets, dont la qualité peut être très variable en fonc­tion des condi­tions de mesures et des trai­te­ments addi­tion­nels appliqués sur les IRs… Certaines socié­tés proposent égale­ment des tech­no­lo­gies proprié­taires basées plus ou moins sur la convo­lu­tion, et une compa­ti­bi­lité avec les IRs tierces addi­tion­nelle, dont on en repar­lera très prochai­ne­ment (ici démo sans et avec la simu­la­tion).

Démo Cab Sim
00:0000:22

Mais là où les choses sont vrai­ment deve­nues inté­res­santes à mes yeux, c’est lorsque les déve­lop­peurs ont inté­gré ces usages clas­siques, puis ont cher­ché à les augmen­ter de diffé­rentes manières. Déjà il n’est pas rare que les STANs, qui intègrent presque en majo­rité un effet interne de trai­te­ment par convo­lu­tion, proposent égale­ment des outils pour la capture d’IR, et pour leur trai­te­ment en live. On pourra ainsi captu­rer la signa­ture sonore direc­te­ment dedans d’une machine exté­rieure ou d’un plug-in, appliquer des enve­loppes de volume et de fondu sur l’IR, la resam­pler pour la rendre plus courte ou plus longue, la filtrer d’une certaine manière ou lui appliquer des modé­li­sa­tions de l’im­pact de l’im­pé­dance d’une enceinte sur l’am­pli­fi­ca­teur de puis­sance, la mixer avec d’autres, la placer dans une posi­tion donnée de l’es­pace stéréo ou multi­ca­nal, la « déré­ver­bé­rer » ou augmen­ter au contraire la densité de réver­bé­ra­tion avec du délai et des diffu­seurs, et expor­ter le résul­tat final sous forme d’une IR seule, réuti­li­sable ainsi ailleurs.

AudioThing Fog Convolver 2

Quelques produits remarquables comme Audio­Thing Fog Convol­ver 2 ou Lese Audio Tech­no­lo­gies Eigen vont même jusqu’à permettre la géné­ra­tion d’une base arti­fi­cielle de réver­bé­ra­tion à partir de bruits blancs et de modé­li­sa­tion physique, ce qui permet ensuite de faire des choses plus ou moins complexes et réalistes grâce aux trai­te­ments sus-cités, quand un Fabfil­ter Pro-R 2 se permet de faire carré­ment l’in­verse, à savoir de lire une IR pour esti­mer les para­mètres d’un algo­rithme de réverbe clas­sique qui devra coller le plus possible au son de l’IR, avec des possi­bi­li­tés de person­na­li­sa­tion en plus !

indoor-location-2

En parlant de spatia­li­sa­tion, la véné­rable société Audio Ease qui propo­sait déjà Alti­verb il y a quelques années, a sorti depuis des produits remarquables orien­tés plutôt post­pro­duc­tion, tels que Indoor et Spea­ker­phone. Le premier permet de géné­rer via la convo­lu­tion des ambiances acous­tiques, je dirais moins gran­di­lo­quentes que ce qu’on utilise pour la musique, telles que celles d’une maison avec une géomé­trie donnée et avec la possi­bi­lité d’y dépla­cer un micro­phone virtuel. Spea­ker­phone est plutôt une boite à outils qui propose une combi­nai­son d’ef­fets, de brui­tages, de musiques libres de droits et de réponses impul­sion­nelles 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 évidem­ment l’usage que person­nel­le­ment je préfère avec la convo­lu­tion et les IRs, c’est le sound design au sens large. Il ne s’agira pas seule­ment de créer ou d’uti­li­ser des IRs avec des réponses en fréquence ou des réver­bé­ra­tions éton­nantes, mais aussi d’es­sayer d’uti­li­ser à peu près tout et n’im­porte quoi niveau signal audio comme base, avec quelques trai­te­ments supplé­men­taires si besoin ! Il sera alors inté­res­sant de voir comment le fait de la consi­dé­rer comme une IR plutôt que comme un son va permettre de combi­ner ses carac­té­ris­tiques soniques à celles du signal à trai­ter, avec des résul­tats d’une qualité et d’un inté­rêt plutôt aléa­toire, qui auront parfois pour effet de rajou­ter du contenu musi­cal ou harmo­nique en plus des aspects pure­ment fréquen­tiels ou dyna­miques. D’ailleurs, alors que cet usage était plutôt peu conven­tion­nel il y a quelques années, il est éton­nant de consta­ter qu’aujour­d’hui les librai­ries de Diego Stocco ont eu des petits, que ce soit avec des plug-ins dédiés à l’usage, ou avec la partie expé­ri­men­tale de la librai­rie d’IRs d’un Able­ton Live par exemple (petite démo ci-dessous).

Démo Convo­lu­tion Expe­ri­men­tal
00:0002:17

Conclu­sion

Nous avons donc fait un tour d’ho­ri­zon de ce qu’est la convo­lu­tion pour la M.A.O. aujour­d’hui et de ce que nous pouvons en faire. Mais il me reste à abor­der un dernier sujet. Dans la première version de cet article de 2005, j’avais abordé quelques recherches en cours qui permet­taient de « géné­ra­li­ser l’opé­ra­tion de convo­lu­tion 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 à captu­rer les carac­té­ris­tiques sonores d’un joujou en lui envoyant un signal parti­cu­lier, en l’en­re­gis­trant et en le trai­tant, était telle­ment enthou­sias­mant qu’il était égale­ment frus­trant, devant la somme des éléments impos­sibles à captu­rer par la tech­no­lo­gie. Déjà à l’époque on parlait d’amé­lio­ra­tions scien­ti­fiques possibles qui pour­raient débou­cher sur de nouveaux plug-ins et effets (séries de Volterra, « convo­lu­tion dyna­mique » avec l’IR qui change en fonc­tion de l’éner­gie du signal, etc.). Il se trouve qu’une société italienne, Acus­tica Audio, a réussi à faire quelque chose dans ce sens, pour des effets faible­ment non linéaires et pour les modu­la­tions. D’autres égale­ment ont produit des tech­no­lo­gies plutôt dédiées à la simu­la­tion d’en­ceintes. Mais globa­le­ment, je trouve que ces approches ne satis­font pas les promesses initiales.

Alors a-t-on fina­le­ment aban­donné cette idée ? Et bien non juste­ment, et je voudrais conclure là-dessus en forme de petit clin d’œil aux ques­tions que je me posais en 2005. Il se trouve que l’idée a fait son chemin et trouvé plusieurs solu­tions depuis, que ce soit avec l’es­ti­ma­tion des para­mètres d’al­go­rithmes géné­riques par des mesures (ça commence par un K) et surtout avec le Machine Lear­ning ! Mais ça sera le sujet d’un prochain article :)

En atten­dant, j’an­nonce en avance que nous allons publier prochai­ne­ment deux dossiers supplé­men­taires de type « guide d’achat », qui contien­dront une liste non exhaus­tive de produits gratuits et payants perti­nents pour que vous puis­siez vous amuser avec la convo­lu­tion. Le premier sera dédié aux réver­bé­ra­tions et aux proces­seurs de convo­lu­tion géné­ra­listes, tandis que le deuxième sera centré autour de la simu­la­tion d’en­ceintes d’am­pli­fi­ca­teurs, avec à chaque fois quelques réfé­rences de banques d’IR à télé­char­ger (aka les irré­cu­pé­rables).

Bonne convo­lu­tion à toutes et à tous !

 


Vous souhaitez réagir à cet article ?

Se connecter
Devenir membre