Acoustic passion

Acoustic passion

Réverbération artificielle par convolution

Décidé de réaliser un local absorbant avec peu de réverbération, je souhaite aujourd'hui utiliser la convolution pour modifier l'acoustique de ma pièce afin qu'elle soit adaptée au type de musique, et surtout, qu'elle bénéficie a moindre coût des caractéristiques similaires a de grandes pièces réputées de concerts ou d'église par exemple.

 

Pour cela, j'utilise les réponses d'impulsions des locaux dont je souhaite reproduire l'acoustique. Après quelques recherches, tentatives de convolution, et écoutes, je suis parvenu a obtenir un bon rendu sonore avec un fichier dont je vais vous donner le lien : http://irlibrary.org/ir.php?id=r2MYTrXP0ez

 

Comme ce fichier n'est pas utilisable par défaut avec mon logiciel de convolution (Brutefir, je rappelle que je suis sous linux pour les nouveaux !). J'utilise donc SoX pour convertir tout d'abord le fichier en un fichier utilisable directement sous brutefir :

 

sox -V -v 0.9 -c 1 -r 44100 -t sw 1200_seat_modern_concert_hall_-_concertgebouw_fc_far_fst_.wav -t f32 1200_seat_modern_concert_hall_-_concertgebouw_fc_far_fst_.pcm rate 88200

 

Voici une rapide explication des options de commande que j'utilise :

 

-V : pour avoir un compte rendu des opérations de SoX.

-v 0.9 : pour réduire le volume a 0.9 fois le volume actuel (l'impulsion est normalisée a 1 je pense car 1 seul sample est alerté en clipping si cette option n'est pas donnée. Si c'est le cas, je pense qu'il vaut mieux omettre cette option est ne pas changer le volume sonore pour conserver la meilleure précision).

-c 1 : je n'utilise qu'un seul des 2 canaux du fichier de réponse d'impulsion. Je ne sais pas si l'enregistrement des 2 canaux est correct, mais si c'est le cas il faudrait séparer les 2 canaux : convertir d'abord le canal 1 puis le canal 2 dans 2 fichiers séparés ou dans 1 seul fichier stéréo, suivant comment vous utilisez brutefir : sur 1 seul canal ou sur 2 canaux a la fois.

-r 44100 : je précise a SoX que le fichier d'origine est en 44100 samples/sec, sinon il considère qu'il est en 8000hz, ce qui n'est évidemment pas le cas. N'oubliez pas cette option sinon bonjour le rendu sonore ;)

-t sw : spécifie que le fichier d'origine est en 24bits signed word (j'ai testé signed et unsigned et seul signed me semble correct : unsigned a un très mauvais rendu sonore, donc je doute que ce soit le bon paramètre)

 

-t f32 : le fichier de sortie est en float 32 bits.

rate 88200 : j'utilise jack audio, et donc brutefir, en 88200 samples/sec, donc j'upsample le fichier en 88200 samples/sec pour qu'il soit correctement intégré a mon flux audio.

 

Ensuite il n'y a plus qu'a utiliser le fichier dans brutefir via un filtre :

 

coeff "filter-right-0" {
filename: "/home/jean/audio/fir_filters/IR/1200_seat_modern_concert_hall_-_concertgebouw_fc_far_fst_.pcm";
format: "FLOAT_LE"; # file format
attenuation: 6.0; # attenuation in dB
blocks: -1; # how long in blocks
skip: 0; # how many bytes to skip
shared_mem: false; # allocate in shared memory
};
 
Le coefficient est ensuite a intégrer dans un filtre de brutefir, par exemple pour moi :
 
filter "front_l3" {
from_filters: "front_l2";
to_outputs: "front_l_out";
process: -1; # process index to run in (-1 means auto)
#coeff: -1;
coeff: "filter-left-0";
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};
 
Quand je ne veux pas utiliser de filtre, je commente la ligne
	coeff: "filter-left-0";
et je décommente la ligne
	#coeff: -1;
 
(le # indique que la ligne est un commentaire).
 
Voili voilou ! Vériier bien évidemment que le filtre fonctionne pour vous, parce que si vous avez fait une erreur de manip, que vous croyez percevoir un changement alors qu'il n'y en a pas, les objectivistes vont vous ruer dessus en criant au test ABX et en hurlant au scandale !!!
 
Bonne écoute !


21/09/2011
0 Poster un commentaire

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 4 autres membres