Page 24 sur 31

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : ven. 22 juil. 2016 15:21
par thierryvalk
:super: il n'est jamais trop tard.
Il y a du SAV dans l'air

Pour ma part pas beaucoup disponible pour le moment, beaucoup de choses sans rapport avec le DSPiy à faire et le temps passe vite.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : ven. 22 juil. 2016 15:37
par androuski
Je ferai de mon mieux :frime:

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : dim. 25 sept. 2016 17:26
par manudrz
J'ai enfin installé DS5, hé ben jsuis un peu paumé 8| Ca a bien changé dites donc!
Si je veux pouvoir peaufiner les phases, autant que je recommence tout en FIR visiblement...
J'ai pas le temps de me pencher là-dessus aujourd'hui, mais je risque de devoir encore batailler avec ma 0404 si j'ai bien compris !
En tout cas bravo et merci, y'a moyen de s'amuser, oh et un beau plein écran en prime :merci:

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : mer. 9 nov. 2016 20:44
par thierryvalk
Il pleut :) reprise des hostilités.

Pour rappel, le but, enfin, un des buts de cette version 5 était de faire du filtrage semi-automatisé voire automatisé.
V5 permet d'afficher des courbes, de simuler ... manque l'automatisme.

Pour cela on utilise DRC.
http://drc-fir.sourceforge.net/doc/drc.html#htoc51

On lui donne une impulse de la mesure, une série de paramètres dont ne je comprend pas encore grand chose et il nous sort une nouvelle impulse de correction.

Principalement dédié à la correction d'une pièce en FIR, je voudrais voir s'il peut aussi aider pour simplement linéariser un HP et lui appliquer un filtrage de forme quelconque.

Pour cela on dispose par exemple d'une courbe cible définissable.
L'idée serait de la créer au moyen de filtres IIR : on dessine par filtres et EQ les pentes que l'on souhaite puis on exporte comme courbe cible.

Tout cela est du conditionnel, il faut lire, décoder et tester.

Pour le moment, voici en rouge une mesure des HP de mon PC effectuée son propre micro et en bleu la correction obtenue.
C'est un début. :)
drc.png

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : mer. 9 nov. 2016 21:37
par Dagda
C'est vrai que ça permet de simplifier bigrement la méthode ... j'ai pas mal tâté lorsque j'ai linéarisé mes petites coaxiales de bureau, bien que je sois arrivé à une belle courbe, mais j'aurais certainement été plus rapide avec un outils de la sorte !

Tiens, est-ce que l'outil Hypex ne fait pas ça ... vais voir

D.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : mer. 16 nov. 2016 19:55
par thierryvalk
DRC c'est beaucoup de paramètres et traitements mais qui offre l'avantage de pouvoir générer des courbes à chaque étapes.

Tout d'abord il faut se familiariser avec l'interface inexistante vu qu'il fonctionne via commande en ligne.
En clair on tape tout une série de noms de paramètres et leur valeur, c'est lourd.

Et c'est encore plus étrange et au final pas mal pour cette série de paramètres est que l' on va inclure un fichier lui-même constitué de l'ensemble des paramètres; sorte de preset.
Ceux que l'on écrira sur la ligne de commande vont remplacer ceux du fichier.

Pour commencer j'ai choisi "normaldrc48000.drc", normal pour normal, il existe d'autres niveaux et 48000 pour la fréquence d’échantillonnage.

Pour ce soir, que le début : mesure, ça on connait; Homomorphic Deconvolution là suis pommé et Minimum phase frequency dependent windowing c'est déjà plus du domaine du connu.

En image, en rouge la mesure, en bleu l'homomorphic et en vert minimum phase à fenêtrage dépendant de la fréquence.
Suis dans mon bureau, pas idéal, avec une petite JBLSamsung Control One, micro à 70cm de l'enceinte.

Les paramètres :

Code : Tout sélectionner

# HD = Homomorphic Deconvolution
HDMultExponent = 4
HDMPNormFactor = 1.0
HDMPNormType = E
HDMPOutFile = \\rmp.pcm
HDMPOutFileType = F
HDEPNormFactor = 1.0
HDEPNormType = E
# HDEPOutFile = rep.pcm
HDEPOutFileType = F

# MP = Minimum phase frequency dependent windowing
MPPrefilterType = s
MPPrefilterFctn = B
MPWindowGap = 48
MPLowerWindow = 48000 # 500 ms
MPUpperWindow = 48 # 0.5 ms
MPStartFreq = 20
MPEndFreq = 20000
MPFilterLen = 65536
MPFSharpness = 0.25
MPBandSplit = 3
MPWindowExponent = 1.0
MPHDRecover = Y
MPEPPreserve = Y
MPHDMultExponent = 3
MPPFFinalWindow = 48000
MPPFNormFactor = 0.0
MPPFNormType = E
MPPFOutFile = \\rmppf.pcm
MPPFOutFileType = F


En SPL, pas vraiment de différences, en vert (final) comme un lissage :
drc1.png


Pour les impulses, calées au début, oui là il y a du changement :
drc2.PNG


Et donc les phases, en rouge n'importe quoi et en vert semble plus calme :
drc3.png

Toute la question est de savoir si cette nouvelle phase correspond bien à la réalité vu que notre gros problème dans la correction et de corriger ce qui doit l'être et pas l'inverse.

Il faut un peu sa familiariser avec ce soft et y aller progressivement et enfin voir ce qui est bon pour nous.

En tous cas chapeau bas à Denis Sbragion, il n'a pas ménagé sa peine pour écrire ce soft mis à disposition.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : jeu. 17 nov. 2016 19:18
par thierryvalk
Suite du processus.
J'ai mis une courbe cible sans trop chercher mais pour protéger mon enceinte : 18Hz -40dB pour 120Hz 0dB.
Vu l'appli globale, on choisi 10.000 taps et voici le résultat :

En jaune la correction et en violet, une simulation du résultat final :
drc2.PNG


Et la phase de cette simu :
drc3.png


Reste à rentrer cette impulse dans le DSPiy pour vérifier, mais pour cela il faut que j'écrive quelques lignes afin de convertir le .pcm en .c avec la structure voulue.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : ven. 18 nov. 2016 13:21
par Dagda
Le jour où DStudio arrive à faire de l'auto-correction en automatique, on peut ériger une statue en ton honneur !
C'est ce que j'avais fait, en manuel, pour ma petite enceinte PC, mesure woofer -> correction / mesure tweeter -> correction / filtrage et calage temporel !

D.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : ven. 18 nov. 2016 16:04
par thierryvalk
C'est loin d'être gagné.
Sur l'exemple en cours, on voit que la mesure n'est pas terrible et que la courbe finale simulée est bien plate.
Je doute que ce soit bon si après correction je bouge mon micro.

Le but n'est pas de faire du full automatique, mais bien d'avoir l'aide du soft pour ne pas tomber soi-même dans les pièges de la mesure et de corrections trop fortes ou ne devant pas être faites.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : ven. 18 nov. 2016 17:56
par thierryvalk
Impulse de correction convertie ne .C puis chargée dans le DSPiy.
Nouvelle mesure (en bleu), au début du sweep mon HP fait un drôle de bruit... mais la courbe correspond bien à la simu.
J'ai alors rapproché le micro et refait une mesure (en vert). On voit bien qu'il a boosté le bas alors que le HP n'en ait pas capable.
Par contre niveau phase cela semble pas si mal.
J'ai remis sur le graphique la mesure initiale(en rouge).
drc1.png


Par contre avec une nouvelle correction suite à la mesure plus proche c'est tout bon.
Donc on ne peut malheureusement pas mesure n'importe comment et surtout il faudrait jouer dans les paramètres vu que DRC est fait pour une correction au point d'écoute.

Pour un début c'est pas si mal.

Voici en rouge avant et en bleu clair après avec la mesure proche. (lissage à 1/3)
drc2.PNG

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : sam. 19 nov. 2016 14:41
par thierryvalk
Pour faire du Crossover, on va simplement créer une courbe cible avec le ou les filtres que l'on désire et la renseigner à DRC.
Voici par exemple, en bleu un LR24 à 1kHz tout simple.
En violet passage de ma mesure dans DRC avec courbe cible; courbe simulée par DRC.
drcpm.png


En FIR on peut avoir un LR24 qui n'agit que sur le SPL, suffit de supprimer les infos de phase.
drcpl.png


C'est pas encore parfait vu que la phase ne reste pas parfaitement sur 0° et remonte violemment à 20KHz, mais c'est du détail pour le moment.
Le principe fonctionne et permet d'avoir solution en FIR très simplement.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : sam. 19 nov. 2016 16:46
par Dagda
Pour moi, ce genre de correction se fait en mesure proche pour n'avoir que le HP (fenêtrage court en ne conservant que l'impulse de base) sinon tu corriges tout ce qu'il y a autour, et à mon sens, ça ne se fait qu'une fois l'enceinte linéarisé et filtrée (enfin, ayant la courbe voulue).

D.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : sam. 19 nov. 2016 17:05
par thierryvalk
Je ne comprend pas trop bien.
En fait il faut un peu oublier le mot DRC, mon but est bien de faire de la mesure proche et d'utiliser DRC (le soft) pour justement filtrer et linéariser.
Mais bien sur dans le cas d'une appli FIR 2 voies ou 3 voies, sinon toujours en FIR on linéarise l'enceinte, mais là c'est après filtrage des voies en IIR.
DRC nous fait tout dont le fenêtrage à fréquence variable, suffit de lui donner une mesure et une courbe cible.

Après on peut toujours voir ce que cela donne en le réalisant au point d'écoute, mais c'est une autre histoire.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : sam. 19 nov. 2016 21:16
par Dagda
La démarche que j'ai.

Je mesure en champ proche le HP (grave par exemple)
Je fenêtre pour virer toutes les réflexions qui apparaissent sur l'impulse (pour n'avoir que la courbe du HP)
Je linéarise le HP pour qu'il soit bien droit dans sa zone exploitable (correction)
Je fais la même avec les autres HP et je met tout le monde au même niveau
Du coup, je me retrouve avec des HP linéaire et prêt pour le filtrage

Une fois tout filtré et bien calé en temporel, on peut faire une correction globale une fois les enceintes en place.

J'avais fait un topic sur HCFR : http://www.homecinema-fr.com/forum/diy- ... =L12RE/XFC

D.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : sam. 19 nov. 2016 21:59
par thierryvalk
Oui, oui, le principe est similaire, mais c'est le soft qui s'occupe de presque tout.
Mesure, fenêtrage, linéarisation et filtrage et t'indique le niveau.
Pour une 2 voies comme la tienne il faut donc faire 2 opérations et puis c'est tout (enfin presque, mais c'est l'idée)

Voici la suite des opérations pour 1 HP :

Code : Tout sélectionner

Seeking impulse center on: C:\Users\T440S\AppData\Roaming\dspiyv5\impulse.pcm
Impulse center found at sample 492654.
Allocating input signal array.
Reading input signal: C:\Users\T440S\AppData\Roaming\dspiyv5\impulse.pcm
Input signal read.
Input signal prewindowing.
Allocating test convolution signal array.
Input signal RMS level 0.031178 (-30.122955 dB).
Input signal linear phase dip limiting...
Allocating homomorphic deconvolution arrays.
Homomorphic deconvolution stage...
Notice: log limit reached in cepstrum computation.
Minimum phase component normalization.
Excess phase component normalization.
Saving minimum phase component: C:\Users\T440S\AppData\Roaming\dspiyv5\\rmp.pcm
Allocating minimum phase component prefiltering array.
Minimum phase component single side sliding lowpass prefiltering.
Input signal prewindowing.
R - Initial lowpass convolution...
R - Band:   0,    20.0 Hz, width:  24000, FIR, convolution...
R - Band:   1,    25.2 Hz, width:  19048, FIR, convolution...
R - Band:   2,    31.8 Hz, width:  15118, FIR, convolution...
R - Band:   3,    40.0 Hz, width:  11999, FIR, convolution...
R - Band:   4,    50.4 Hz, width:   9524, FIR, convolution...
R - Band:   5,    63.5 Hz, width:   7559, FIR, convolution...
R - Band:   6,    80.0 Hz, width:   5999, FIR, convolution...
R - Band:   7,   100.8 Hz, width:   4762, FIR, convolution...
R - Band:   8,   127.0 Hz, width:   3779, FIR, convolution...
R - Band:   9,   160.1 Hz, width:   2999, FIR, convolution...
R - Band:  10,   201.6 Hz, width:   2381, FIR, convolution...
R - Band:  11,   254.1 Hz, width:   1889, FIR, convolution...
R - Band:  12,   320.2 Hz, width:   1499, FIR, convolution...
R - Band:  13,   403.4 Hz, width:   1190, FIR, convolution...
R - Band:  14,   508.5 Hz, width:    944, FIR, convolution...
R - Band:  15,   640.8 Hz, width:    749, FIR, convolution...
R - Band:  16,   806.7 Hz, width:    595, FIR, convolution...
R - Band:  17,  1016.9 Hz, width:    472, FIR, convolution...
R - Band:  18,  1283.4 Hz, width:    374, FIR, convolution...
R - Band:  19,  1616.1 Hz, width:    297, FIR, convolution...
R - Band:  20,  2033.9 Hz, width:    236, FIR, convolution...
R - Band:  21,  2566.8 Hz, width:    187, FIR, convolution...
R - Band:  22,  3243.2 Hz, width:    148, FIR, convolution...
R - Band:  23,  4067.7 Hz, width:    118, FIR, convolution...
R - Band:  24,  5161.2 Hz, width:     93, FIR, convolution...
R - Band:  25,  6486.4 Hz, width:     74, FIR, convolution...
R - Band:  26,  8135.5 Hz, width:     59, FIR, convolution...
R - Band:  27, 10434.4 Hz, width:     46, FIR, convolution...
R - Band:  28, 12972.7 Hz, width:     37, FIR, convolution...
R - Band:  29, 16551.1 Hz, width:     29, FIR, convolution...
F - Band:  30, 20000.0 Hz, width:     24, FIR, completed.
Final allpass convolution...
MP signal linear phase dip limiting...
Allocating homomorphic deconvolution arrays.
MP Recover homomorphic deconvolution stage...
Minimum phase component final windowing.
Saving minimum phase component: C:\Users\T440S\AppData\Roaming\dspiyv5\\rmppf.pcm
Allocating minimum phase EP recovering arrays.
Minimum phase EP recovering...
Allocating excess phase component prefiltering array.
Excess phase component single side sliding lowpass prefiltering.
Input signal prewindowing.
R - Initial lowpass convolution...
R - Band:   0,    20.0 Hz, width:   1022, FIR, convolution...
R - Band:   1,    25.2 Hz, width:    815, FIR, convolution...
R - Band:   2,    31.8 Hz, width:    652, FIR, convolution...
R - Band:   3,    40.0 Hz, width:    522, FIR, convolution...
R - Band:   4,    50.5 Hz, width:    419, FIR, convolution...
R - Band:   5,    63.6 Hz, width:    337, FIR, convolution...
R - Band:   6,    80.2 Hz, width:    272, FIR, convolution...
R - Band:   7,   100.9 Hz, width:    221, FIR, convolution...
R - Band:   8,   127.3 Hz, width:    180, FIR, convolution...
R - Band:   9,   161.1 Hz, width:    147, FIR, convolution...
R - Band:  10,   201.8 Hz, width:    122, FIR, convolution...
R - Band:  11,   256.2 Hz, width:    101, FIR, convolution...
R - Band:  12,   322.3 Hz, width:     85, FIR, convolution...
R - Band:  13,   407.8 Hz, width:     72, FIR, convolution...
R - Band:  14,   512.3 Hz, width:     62, FIR, convolution...
R - Band:  15,   644.5 Hz, width:     54, FIR, convolution...
R - Band:  16,   832.5 Hz, width:     47, FIR, convolution...
R - Band:  17,  1051.6 Hz, width:     42, FIR, convolution...
R - Band:  18,  1332.1 Hz, width:     38, FIR, convolution...
R - Band:  19,  1665.1 Hz, width:     35, FIR, convolution...
R - Band:  20,  2220.2 Hz, width:     32, FIR, convolution...
R - Band:  21,  2854.7 Hz, width:     30, FIR, convolution...
R - Band:  22,  3330.5 Hz, width:     29, FIR, convolution...
R - Band:  23,  4996.1 Hz, width:     27, FIR, convolution...
R - Band:  24,  6662.2 Hz, width:     26, FIR, convolution...
R - Band:  25,  9994.9 Hz, width:     25, FIR, convolution...
F - Band:  26, 20000.0 Hz, width:     24, FIR, completed.
Final allpass convolution...
Excess phase component minimum phase flattening...
Excess phase component final windowing.
Allocating MP/EP convolution array.
MP/EP Convolution...
Saving MP/EP signal: C:\Users\T440S\AppData\Roaming\dspiyv5\\rpc.pcm
Allocating inversion array.
Pre-echo truncation fast deconvolution...
Saving inverted signal: C:\Users\T440S\AppData\Roaming\dspiyv5\\ris.pcm
Allocating psychoacoustic target reference convolution array.
Psychoacoustic target reference convolution...
Target reference signal linear phase dip limiting...
Allocating psychoacoustic target filter array.
Computing psychoacoustic target filter...
Saving psychoacoustic target filter: C:\Users\T440S\AppData\Roaming\dspiyv5\\rptf.pcm
Allocating psychoacoustic target correction filter convolution array.
Psychoacoustic target correction filter convolution...
Saving psychoacoustic target correction filter: C:\Users\T440S\AppData\Roaming\dspiyv5\\rpt.pcm
Allocating ringing truncation array.
Ringing truncation single side sliding lowpass filtering.
Input signal prewindowing.
R - Initial lowpass convolution...
R - Band:   0,    20.0 Hz, width:  24000, FIR, convolution...
R - Band:   1,    25.2 Hz, width:  19048, FIR, convolution...
R - Band:   2,    31.8 Hz, width:  15118, FIR, convolution...
R - Band:   3,    40.0 Hz, width:  11999, FIR, convolution...
R - Band:   4,    50.4 Hz, width:   9524, FIR, convolution...
R - Band:   5,    63.5 Hz, width:   7559, FIR, convolution...
R - Band:   6,    80.0 Hz, width:   5999, FIR, convolution...
R - Band:   7,   100.8 Hz, width:   4762, FIR, convolution...
R - Band:   8,   127.0 Hz, width:   3779, FIR, convolution...
R - Band:   9,   160.1 Hz, width:   2999, FIR, convolution...
R - Band:  10,   201.6 Hz, width:   2381, FIR, convolution...
R - Band:  11,   254.1 Hz, width:   1889, FIR, convolution...
R - Band:  12,   320.2 Hz, width:   1499, FIR, convolution...
R - Band:  13,   403.4 Hz, width:   1190, FIR, convolution...
R - Band:  14,   508.5 Hz, width:    944, FIR, convolution...
R - Band:  15,   640.8 Hz, width:    749, FIR, convolution...
R - Band:  16,   806.7 Hz, width:    595, FIR, convolution...
R - Band:  17,  1016.9 Hz, width:    472, FIR, convolution...
R - Band:  18,  1283.4 Hz, width:    374, FIR, convolution...
R - Band:  19,  1616.1 Hz, width:    297, FIR, convolution...
R - Band:  20,  2033.9 Hz, width:    236, FIR, convolution...
R - Band:  21,  2566.8 Hz, width:    187, FIR, convolution...
R - Band:  22,  3243.2 Hz, width:    148, FIR, convolution...
R - Band:  23,  4067.7 Hz, width:    118, FIR, convolution...
R - Band:  24,  5161.2 Hz, width:     93, FIR, convolution...
R - Band:  25,  6486.4 Hz, width:     74, FIR, convolution...
R - Band:  26,  8135.5 Hz, width:     59, FIR, convolution...
R - Band:  27, 10434.4 Hz, width:     46, FIR, convolution...
R - Band:  28, 12972.7 Hz, width:     37, FIR, convolution...
R - Band:  29, 16551.1 Hz, width:     29, FIR, convolution...
F - Band:  30, 20000.0 Hz, width:     24, FIR, completed.
Final allpass convolution...
Ringing truncation final windowing.
Saving ringing truncation: C:\Users\T440S\AppData\Roaming\dspiyv5\\rrt.pcm
Counting target response definition file points: C:\Users\T440S\AppData\Roaming\dspiyv5\ph1k.txt
Target response definition file points: 688
Allocating target response arrays.
Reading target response definition file: C:\Users\T440S\AppData\Roaming\dspiyv5\ph1k.txt
Allocating target filter arrays.
FIR Filter computation...
Target response FIR Filter convolution...
Target response signal windowing.
Target response signal normalization.
Saving Target response signal: C:\Users\T440S\AppData\Roaming\dspiyv5\SDLC.pcm
Allocating homomorphic deconvolution arrays.
MP filter extraction homomorphic deconvolution stage...
MP filter extraction windowing.
Minimum phase filter normalization.
Saving MP filter signal: C:\Users\T440S\AppData\Roaming\dspiyv5\\rms.pcm
Allocating test convolution arrays.
Convolving input signal with target response signal...
Filtered signal RMS level 0.008219 (-41.703324 dB).
Saving test convolution signal: C:\Users\T440S\AppData\Roaming\dspiyv5\\rtc.pcm
Execution completed.
Total computing time: 11 s

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : dim. 20 nov. 2016 11:42
par Dagda
Est-ce qu'il ne faudrait pas pouvoir gérer le fenêtrage ?
C'est tout de même assez variable suivant les lieux, ou alors il faut impérativement dire que le micro doit être placé à 30cm du HP à mesurer et fenêtrer à 5ms max après l'impulse ... ?

D.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : dim. 20 nov. 2016 12:43
par thierryvalk
Le fenêtrage n'est pas directement fonction de la distance HP-> Micro, mais du rapport des distances HP->Micro et HP-> autres surfaces.
DRC utilise ce que l'on appelle un fenêtrage dépendant de la fréquence.
Voici la courbe fréquence/temps :
Image
On voit un fenêtrage de 500mS à 20Hz pour se réduire à 0.5mS à 20KHz
De base on utilise la courbe verte pour WE=1.0
Avantage de pouvoir prendre en compte aussi les basses fréquences et d'être plus proche de notre système auditif.
Je rajouterais sans-doute des options, le tout est de voir lesquelles afin de ne pas rendre le truc trop lourd d'utilisation.

Pour cela j'ai repris la lecture de la doc de DRC :
http://drc-fir.sourceforge.net/doc/drc.html

J'en suis donc retourné à la mesure en elle-même.
L'option actuelle dans DStudioV5 est de générer l'impulse sur la mesure directement.
On dispose d'une option pour utiliser l'autre canal de la carte son comme référence : loopback, on reboucle la sortie droite sur l'entrée droite directement à la carte son.
Les avantages : plus de précision au niveau temporel et aussi utilise les niveaux comme référence.
REW utilise une calibration de la carte son, içi elle se fait à chaque mesure en considérant les 2 canaux comme identiques.

Re: Correction/filtrage semi-automatisé (DStudio v5)

Posté : mer. 23 nov. 2016 15:55
par Dagda
Tu peux aussi parfaitement utilisé le second canal comme référence dans REW.
Par contre, c'est vrai que le fenêtrage "adaptatif" est bien plus sympa !

Le temps que je monte mon DSPiy V2 et que je refasse la caisse des Dynaudio, DStudio sera automatique :mrgreen: