Auteur Sujet: Projet Gnu Octave - Design de filtres FIR  (Lu 4427 fois)

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Projet Gnu Octave - Design de filtres FIR
« le: décembre 25, 2013, 23:56:04 pm »
Bonjour,

J'ai décidé récemment d'essayer de développer sous Gnu Octave un script permettant de générer des filtres FIR pour corriger ces enceintes et atteindre des courbes cibles choisies pour chacunes des voies.

Pour l'instant j'en suis à l'étape de développement, j'ai réussi à générer des filtres de courbes d'amplitude butterworth et de phase linéaire, avec une impulsion centrée sur le signal.

J'ai aussi réussi à générer une méthode d'oversampling d'un signal temporel (fft ==> rajout de 0 sur l'amplitude et application d'une correction de phase selon une formule que j'ai déterminée a la main après plusieurs essais ==> ifft pour retrouver le signal d'origine oversamplé).

Je me suis ensuite attaqué à une méthode pour trouver comment déterminer la taille du signal à conserver en fonction des filtres demandés. J'ai eu l'idée de prendre un "seuil" en dessous duquel on considère que les données du signal peuvent être tronqués, par exemple -90dB. J'ai ensuite réalisé une fonction qui normalise l'amplitude du signal a 1 (ce qui permettra de garder une "dynamique" de la valeur du seuil), puis on parcourt le signal et on vérifie si la valeur absolue d'amplitude, que je converti en dB, est inférieure au seuil. Tant que c'est le cas on continue a itérer, et dès qu'on trouve une valeur ou le seuil est atteint ou dépassé, je marque le point précédent comme étant le point de départ (on commencera à tronquer juste avant ce point donc). Idem avec une boucle en sens inverse en partant de la fin du signal pour vérifier ou couper la fin.

Une fois la portion du signal à conserver déterminée, j'applique une troncature puis un fenêtrage. Après plusieurs expérimentations, j'ai déterminée que j'utiliserai une fonction gaussienne de paramètre 1.4, qui me donne intuitivement le meilleur résultat. Ci dessous une comparaison des réponses d'un filtre tronqué avec une fenêtre rectangulaire (sans fenêtrage donc) - en bleu - et un filtre tronqué avec la fenêtre gaussienne de paramètre 1.4 - en rouge - :



La courbe rouge a une pente à peine moins raide, mais il n'y a pas d'oscillation dans la bande de rejet et la courbe est "lissée" (il n'y a pas d'accidents). Je pense que les accidents de la courbe bleu sont mauvais car leur dérivée n'existe pas, hors un signal sinusoidal est indéfiniment dérivable et je pense que si on a un signal qui ne peut être dérivé indéfiniment cela peut poser des problèmes de distorsions (je ne suis pas du tout sûr de cela mais c'est mon intuition qui parle). Voilà en tout cas pourquoi j'ai choisi la fenêtre gaussienne  ;)

J'ai ensuite réalisé divers filtres pour mon système, dont voici les courbes de réponses avec troncature et fenêtrage pour des filtres de taille 16384 pour une fréquence d'échantillonnage de 48khz :





Enfin j'ai comparé avec un loopback numérique les filtres tronqués sans fenêtrage et avec fenêtrage gaussien :



Puis j'ai vérifié avec un loopback numérique le résultat des filtres exportés en .wav et convolutionnés avec vstconvolver sous console de chaque voie filtrée séparément et sommées numériquement sous console (je fais donc la convolution de mon signal par chacun des filtres puis je mixe tout les canaux audio résultants avant de les renvoyer dans mon loopback). Le signal final est ceci :



Tout les filtres ont un retard de groupes identiques (les phases de mes 4 voies sont parfaitements alignés). Le taux de distorsion est < 80dB mais je pense que cela est dû à autre chose qu'aux filtres en eux-mêmes. En effet, j'ai mesuré le bruit numérique, et j'ai obtenu la courbe verte qui me donne un niveau de bruit > 80dB a 20khz (étonnant) et descendant quand on descend dans le spectre. Je ne pense pas que les filtres "ajouter" de la distorsion, elle est à mon avis dû à autre chose....

Les prochaines étapes que je devrais mettre en place sont la compensation d'une mesure filtrée (compte tenue du filtre utilisé pendant la mesure), puis la détermination du fenêtrage à appliquer sur le signal mesuré (en essayant si possible d'éliminer toute portion du signal comportant du bruit, je pense qu'il me faudra pour cela enregistrer un signal de bruit également, qui me permettra de déterminer le niveau RMS du bruit et sa réponse fréquentielle, que je pourrais alors soustraire au signal mesuré pour obtenir la dynamique du signal mesuré, et calculer mon fenêtrage en fonction de cette dynamique...).

Enfin une fois le signal mesuré compensée et fenêtré il me faudra calculer la réponse inverse multipliée par le filtre cible (B/A ou B = courble cible et A = courbe mesurée compensée fenêtrée), puis tronquer et exporter le filtre obtenu. Enfin il faudra évidemment réaliser une batterie d'essais pour vérifier que les prédictions de correction se révèlent fructueuses en pratique et évidemment l'écoute pour estimer la qualité du résultat  :p

Je m'attaquerai alors à simplifier le programme ou le rendre paramétrable afin que chacun puisse l'utiliser pour réaliser ses propres corrections !!  :cheers:
« Modifié: décembre 26, 2013, 00:01:15 am par LeChacal619 »

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #1 le: décembre 26, 2013, 23:00:58 pm »
Petit up en ce qui concerne la distorsion.

Je me suis aperçu en muttant le canal SPDIF de sortie qui débute le loopback, que le record meter avait des oscillations a -80/-82dB. J'ai alors essayé de bypasser vstconvolver dans console : cette fois le signal est constamment a -82dB, ce qui est proche de la précision d'un signal 16 bits. Comme un con, je suis aller vérifier les paramètres des canaux dans les périphériques windows : j'avais oublié de les basculer en 48khz 32bits. Chose faites pour tout les canaux, je ne vois plus le signal dans le record meter (j'ai bien un silence < -100dB) mais quand je fais un recording, je retrouve la meme courbe a savoir une distorsion allant jusqu'à -80dB voire plus dans le haut du spectre.....

Je me dis alors que le problème vient de DirectSound : j'essaye donc en MME : problème identique. J'essaye en ASIO : problème résolu : bruit constant de -135 a -140dB sur l'ensemble du spectre, et réparti a peu près équitablement sur le spectre. Voici donc la nouvelle mesure de mon signal convolutionner par mes 4 voies et mixé :



C'est mieux !  8) Cette fois mes filtres sont vérifiés expérimentalement comme étant d'une "excellente" qualité : pente parfaitement linéaire jusqu'à environ -85dB avec une légère variation mais sans accident et sans rebond jusqu'à environ -107dB ou apparaît le premier accident, autrement dit proche de la perfection et il est parfaitement inutile de chercher à faire mieux  ;) Ce résultat me satisfait d'autant plus que je m'attendais à avoir une distorsion aux alentours de -85dB, et qu'il correspond parfaitement à la courbe que j'avais calculé avec mon fenêtrage gaussien (premier screenshot du post), ce qui conclut donc que mon analyse faite sous Octave correspond parfaitement à la réalité ! (le rebond est juste moins prononcé en raison des différences d'échelles et aussi car j'avais volontairement fait l'expérience avec un signal de faible taille pour la simulation, le filtre FIR que j'ai designé par la suite est de bien meilleure qualité ce qui explique la faible variation de la pente dans le bas du spectre).
« Modifié: décembre 26, 2013, 23:49:49 pm par LeChacal619 »

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #2 le: janvier 01, 2014, 23:37:48 pm »
J'ai avancé un petit peu le projet. Il est a présent utilisable avec un menu permettant de régler les paramètres de configuration (taille de FFT, taille de filtre, fréquence de sampling) et permettant de créer des filtres (passe-bas, passe-haut, passe-bande) en fonction des paramètres configurés (taille de filtre, fréquence de sampling) et en fonction de paramètres que vous donnerez par le biais des menus (fréquence de coupure, ordre de coupure).

Le filtre généré se voit appliqué un fenêtrage gaussien de paramètre 1,4 automatiquement, puis exporté suivant le nom que vous donnez dans 2 fichiers dans le dossier "filtres" se trouvant dans le répertoire du programme : 1 fichier texte et 1 fichier wav, contenant tout 2 les informations de l'impulsion. Pour vérifier le filtre sous holmimpulse, il faut auparavant supprimer les lignes en commentaires (commencant par #) du fichier .txt sinon l'import ne fonctionnera pas. Vous pourrez ainsi vérifier que la qualité du filtre correspond à celle affichée dans le graphe de mon programme (l'échelle est déterminée automatiquement sur l'axe des X pour afficher le filtre de +5 a -60dB, mais vous pouvez dézoomer en double cliquant et rezoomer ensuite manuellement si vous voulez visualiser la réponse du filtre à -200dB par exemple ^^).

Le fichier du projet se trouve ici : https://drive.google.com/file/d/0B_qpfrOOECB0aFF1STk0V3NNLXc/edit?usp=sharing

Il faut GNU Octave pour lancer mon programme : http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download

J'ai également réussi à implémenter les convolutions dans le domain spectral, et une fonction permettant de générer une fichier de correction a partir d'un filtre de mesure (utilisé pour mesurer le HP), d'un filtre cible (courbe de réponse que l'on désire avoir au final), d'une mesure de bruit et d'une mesure de réponse du haut parleur à corriger.

Il me manque cependant à implémenter le menu pour que vous puissez utiliser cette fonction.... Ce sera fait très prochainement, en attendant vous pouvez installer GNU Octave si vous souhaitez utiliser le programme et commencer à vous créer des filtres de mesures et / ou de courbe cible pour prendre de l'avance  :lol:

PS: si vous rencontrez une erreur avec "gausswin" quelque chose, il faut activer le pack "signal", pour cela renseignez vous sur le site de GNU Octave... je sais plus vraiment comment j'ai fais pour les activer ni si ils sont activés ou non par défaut ;)
« Modifié: janvier 03, 2014, 00:12:05 am par LeChacal619 »

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #3 le: janvier 03, 2014, 00:21:57 am »
Calcul de la correction implémenté dans le projet, lien vers la nouvelle version mise à jour.

Pour calculer une correction, vous devez :

1- réaliser un filtre de mesure (je prend le même pour la mesure et le filtrage, c'est ce qui me donne les meilleurs résultats apparemment donc je préconise mais vous pouvez essayer des filtres différents pour voir si c'est mieux chez vous, en effet mon micro et holmimpulse bug parfois pour les mesures et m'affichent un bruit abhérent ou des réponses abhérentes ce qui peut être la cause de mes qualités différentes. A priori je pense qu'un filtre de mesure se raprochant le plus possible du "passe-tout" est le mieux mais....)

2- faire une mesure du haut parleur filtré

3- faire une mesure du bruit (en mutant la voie en question)

4- exporter a l'aide de holmimpulse l'impulsion de la mesure et du bruit. Le filtre, si possible, doit faire la taille du filtre calculé dans mon programme (je n'ai pas testé avec des tailles différentes mais il y a fort à parier que ca bug, surtout si le filtre calculé est de taille inférieure aux impulsions mesurées...). Exemple, si le filtre calculé par mon programme est de 16384 samples, il faut exporter les impulsions avec un index allant de -8191 a +8192 (ou -8192 a +8191)

5- lancer octave, se rendre dans le répertoire ou vous avez dézipper mon programme en faisant cd "cheminverslerépertoire"

6- taper "main" pour avoir accès au menu principal du programme

7- taper 3 pour calculer la correction de filtre

8- importer l'impulsion du signal mesuré (sous forme de fichier .txt !)

9- importer l'impulsion du bruit mesuré

10- répondre oui a la question si vous avez utilisé un filtre pour la mesure, et si oui, importer le filtre utilisé pendant la mesure

11- importer le filtre de courbe cible finale

12- rentrer le nom que vous voulez pour le filtre corrigé

13- la FFT du filtre calculé est affiché, et les impulsions du filtre sont exportées vers le dossier /filters/NomDuFichier.txt et /filters/NomDuFichier.wav

Le .wav est un 32 bits de la fréquence de sampling configurée. Il n'y a plus qu'a vérifier que la correction fonctionne.


Pour les meilleurs résultats, je conseille :

1- de ne pas fenêtrer ni la mesure ni le filtre de correction final
2- d'avoir le meilleur SNR possible a la mesure (si possible un SNR > 60dB, ce que j'arrive tout juste à obtenir chez moi :S) et s'assurer que la mesure est bonne (si vous faites plusieurs fois la mesure, il faut que la réponse obtenue soit identique à chaque fois, que dans le domaine temporel il n'y ai pas d'amplitude anormale avant l'impulsion comme des parasites ou des artefacts, que la courbe de réponse ne présente pas de "trou" différents a chaque mesure etc.).

Les prochaines améliorations a apporter pour ma part seront un lissage a faire sur la magnitude de l'impulsion du bruit (je ne sais pas vraiment comment implémenter un lissage logarithmique :S), et un lissage de la magnitude et de la phase de l'impulsion de mesure, avec un algorithme permettant de définir automatiquement le meilleur lissage, ce qui peut s'avérer simple mais qui a mon avis représentera un réel challenge :)
« Modifié: janvier 05, 2014, 13:30:54 pm par LeChacal619 »

petoind

  • Administrator
  • Hero Member
  • *****
  • Messages: 7280
    • Conception des enceintes acoustiques
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #4 le: janvier 03, 2014, 10:21:49 am »
Bonjour

Votre application est pour faire un filtre actif + égaliseur dans le PC.
- Est-ce compatible avec XP ?
- Quels sont les autres composants nécessaires ?

Pour la carte son multi canaux, je n'ai pas de problème : http://www.behringer.com/EN/Products/FCA610.aspx

Cordialement, Dominique

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #5 le: janvier 03, 2014, 11:06:20 am »
Bonjour

mon application sert à générer des filtres butteworth à phase linéaire (latence constante) ou/et des corrections de réponses de haut d'avoir au final l'impulsion désirée (passe bande, passe haut, passe bas ou encore autre chose pour peu que vous ayez la réponse d'impulsion en format texte et de la meme longueur que le filtre calculé

Pour la comptabilité c'est normalement compatible tout OS dont glu octave est compatible (Linux,  Mac,  Windows etc.)

Je reste à votre disposition pour ton renseignements complémentaires !

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #6 le: janvier 03, 2014, 21:14:07 pm »
J'ai oublié de préciser aussi que les mesures pour faire les corrections doivent êtres faites en champ proche (pour avoir un SNR max et pour ne pas corriger excessivement les distorsions engendrées par la pièce, chose que mon simple programme ne sait pas faire correctement)

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #7 le: janvier 04, 2014, 18:48:21 pm »
Pour GNU OCtave, il faut sélectionner le package "signal" a l'installation et "java", sans quoi le programme ne marchera pas.

Dominique pour le filtrage il faut un hote VST et un VST de convolution pour utiliser les filtres. Si vous arrivez à faire fonctionner votre carte son avec le filtrage actif pc ca m'intéresserai pour l'acheter également en raison des problèmes que je rencontre avec ma configuration actuelle (j'ai vu que l'on peut avoir une alimentation externe avec la vôtre, qu'il semble qu'elle intègre un monitoring zero latence et les sorties symétriques ce qui comblerait tout les problèmes majeurs que je rencontre a présent).

En effet actuellement comme la M-AUDIO DELTA 1010LT "saute", j'ai été obligé de mettre un loopback analogique entre la XONAR D1 et la XONAR D2X. Malgré cela le son saute également parfois (même si c'est plus rare), et les sorties de la XONAR D2X ne sont pas symétriques ce qui fait que j'ai pas mal de parasites également sur les HP. En plus de cela se rajoute un problème aléatoire a la mesure, donc je ne sais pas identifier s'il vient du micro, du préampli, ou de l'entrée de la carte son  :| J'ai tout de même réussi à obtenir un EXCELLENT résultat (en répétant plusieurs fois les mesures et en fenêtrant de façon approprié les aigus, sur lesquels je rencontre les majeurs problèmes pour enregistrer une impulsion "correcte") !
« Modifié: janvier 05, 2014, 13:35:45 pm par LeChacal619 »

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #8 le: février 11, 2014, 16:04:38 pm »
Mise à jour du projet Octave, j'ai changé la méthode de calcul du filtre de correction cette fois c'est beaucoup plus fiable.

Téléchargement AcousticDSP (Octave) v140211

Rappel d'utilisation :

- Générer un filtre cible (qui servira pour la mesure), supprimer les lignes d'en-tête inutiles (commentaires)

- Mesurer la réponse du HP avec convolution du filtre cible et l'exporter en impulsion .txt (vérifier que le fichier ne comporte pas de commentaires ou de lignes d'en tête inutiles, avec ARTA il faut supprimer les lignes d'en tête sinon le programme ne marchera pas)

- Mesurer le bruit (HP muet mais ampli allumé !), exporter (idem que précédemment supprimer les lignes d'en têtes si nécessaire)

- Lancer le calcul de correction avec le programme

- Exporter le filtre de correction générer, supprimer les lignes d'en-tête inutiles (commentaires)


Et normalement c'est bon  ;) Le programme nécessite java je n'arrive pas à utiliser le module java octave sous linux donc je n'ai pas testé le programme, si vous constatez un bug n'hésitez pas à me le signaler.

Voici un screenshot de la réponse obtenue avant / après correction sur mon tweeter gauche (mesure brute sans lissage) :



Par ailleur je n'entend pas d'artefacts audible sur le logsweep pendant la mesure, ce qui n'était pas le cas avec DRC ou avec ma version précédente.

J'ai remarqué également que le micro ECM avait une réponse très accidentée donc j'ai ressorti mon micro behringer B-5 (que je croyais HS) et qui finalement fonctionne et la réponse diffère beaucoup avec le ECM8000. A l'écoute je dirai que le B-5 sans calibration est bien meilleur que le ECM8000 avec calibration générique.
« Modifié: février 11, 2014, 16:25:13 pm par LeChacal619 »

DanyHell

  • Jr. Member
  • **
  • Messages: 378
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #9 le: février 11, 2014, 19:53:17 pm »
salut, rien à voir avec le sujet, mais quand même je me demande : c'est quoi la référence de ton tweeter ??

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #10 le: février 11, 2014, 19:59:43 pm »
Cest le ALT-7 de boschmann audio (bmaudio). J'avais voulu lencastrer mais je me suis chié du coup le son sort du tweeter et passe a travers un trou dans lenceinte qui a mon avis fait une enorme diffraction. J'ai jamais réussi a le corriger correctement jusqu'à aujourd hui  :d
« Modifié: février 11, 2014, 20:13:02 pm par LeChacal619 »

petoind

  • Administrator
  • Hero Member
  • *****
  • Messages: 7280
    • Conception des enceintes acoustiques
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #11 le: février 13, 2014, 17:47:26 pm »
Bonjour

Votre outil peut-il générer le fichier de correction en amplitude et phase d'une enceinte mesurée, avec une atténuation de 3 dB/octave au dessus de 2000 Hz, pas de correction au delà de 15000 Hz et en dessous de 40 Hz ?
Fichier de correction .wav pour être utilisé dans ConvolverVST.

C'est mon besoin aujourd'hui, je vais commander la carte son pour faire le filtrage la semaine prochaine.

Cordialement, Dominique

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #12 le: février 13, 2014, 18:03:44 pm »
Bonjour

Votre outil peut-il générer le fichier de correction en amplitude et phase d'une enceinte mesurée, avec une atténuation de 3 dB/octave au dessus de 2000 Hz, pas de correction au delà de 15000 Hz et en dessous de 40 Hz ?
Fichier de correction .wav pour être utilisé dans ConvolverVST.

C'est mon besoin aujourd'hui, je vais commander la carte son pour faire le filtrage la semaine prochaine.

Cordialement, Dominique

bonjour

Pour l'instant non. Je vous repond plus en detail ce soir

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #13 le: février 13, 2014, 23:27:48 pm »
Réponse détaillée :

Votre outil peut-il générer le fichier de correction en amplitude et phase d'une enceinte mesurée

A la base la correction est prévue pour être réalisée à partir d'une mesure en champ proche. Il faut donc pour cela mesurer les voies séparéments, à moins que l'enceinte soit coaxiale : en effet, comme la phase varie avec la distance, si vous mesurez l'enceinte en champs proche et corrigez l'amplitude/phase par rapport à cette mesure, au point d'écoute les voies seront déphasées entre elles, ce qui aura pour conséquence que la correction sera inefficace. Si vous mesurez l'enceinte à partir du point d'écoute, à moins de fenêtrer (auquel cas vous perdrez les informations dans le bas du spectre suivant fenêtrage...), vous aurez une impulsion mélangée a de la réverb et là encore la correction sera inefficace (pire que sans correction). Vous aurez donc une mesure avec une distorsion importante, et la correction aura une distorsion importante, autrement dit la correction sera inefficace (rendu à l'écoute pire que sans correction).

Par ailleur, cela serait relativement complexe à faire bien que faisable (je pourrais éventuellement le faire à la main avec octave sans l'intégrer au programme si vous voulez néanmoins faire un essai....)

Citer
avec une atténuation de 3 dB/octave au dessus de 2000 Hz, pas de correction au delà de 15000 Hz et en dessous de 40 Hz ?

Mon programme prend en compte une impulsion cible. Vous pouvez parfaitement générer une courbe arbitraire à partir d'un autre logiciel et utilisez l'impulsion obtenue avec mon programme. Par exemple, en générant un fichier .txt en fréquence comme ceci :

0 0
2000 0
15000 -5
24000 -5

Vous aurez une courbe en fréquence plate jusqu'à 2000hz, atténuation constante de 2000hz à 15000hz pour atteindre -5dB, puis linéaire de 15000 a 20000hz (-5 dB). Il suffit de l'importer sous HolmImpulse en fréquence, puis l'exporter en .txt pour avoir l'impulsion. Vous pouvez ensuite utilisez cette impulsion avec mon programme. J'imagine que vous souhaitez obtenir la courbe ISO-X comme cible, pour ma part j'ai égalisé le système suivant une courbe plate, et j'ai un égaliseur IIR pour appliquer la pente que j'active ou désactive suivant que j'écoute la musique ou regarde un film. Je ne sais pas cependant si le déphasage engendré par le IIR est un atout ou un inconvénient....

Citer
Fichier de correction .wav pour être utilisé dans ConvolverVST.

Mon programme octave génère un fichier .txt et un .wav en 32bits float.
« Modifié: février 13, 2014, 23:31:28 pm par LeChacal619 »

LeChacal619

  • Hero Member
  • *****
  • Messages: 2024
    • E-mail
Re : Projet Gnu Octave - Design de filtres FIR
« Réponse #14 le: février 13, 2014, 23:33:16 pm »
Par ailleur il persiste toujours le problème de latence que je pense vous ne désirez pas. Si vous souhaitez une faible latence, ce que je conseille si vous pouvez "dissocier" les voies (mesurer et corriger séparément) serait de faire le filtrage FIR uniquement pour la transition entre les voies ou la Fc serait supérieure à 1000hz par exemple, pour avoir des filtres FIR très court en taille donc en latence, et les transitions entre les autres voies en IIR...  Ainsi sur un système 3 voies on pourrait faire la transition medium - aigu en FIR, et il resterait que la transition grave / (medium-aigu) a faire soit l'équivalent d'un système IIR 2 voies.
« Modifié: février 13, 2014, 23:48:24 pm par LeChacal619 »