Voilà une première version, pour test.
Le nom (pour le moment): RePhase
Le packaging est assez mauvais pour le moment, et sur certaines machines il risque de réclamer une dll manquante.
Je tâchera d'améliorer ça pour la suite...
Le premier lancement sur une machine sera plus lent que les suivants.
Voilà le lien pour télécharger l’exécutable:
EDIT: lien supprimé, nouvelles versions dispos ici
viewtopic.php?f=1055&t=30024394(pas d'installation nécessaire)
et la dll manquante, si il la réclame (il faut aller la mettre dans le repertoire system32):
EDIT: lien supprimé, plus besoin
Il faudra éventuellement la renommer suivant le nom exacte qu'il réclame (par exemple avec un "_" en plus)
Utilisation:On compense ses filtres (si possible en pente acoustique...), on génère l'impulse au bon format, on la charge dans un appareil à même de faire la convolution (openDRC ou plugin convolver de foobar par exemple), et on passe sa musique à travers...
Note pour foobar: il faut utiliser le plugin de resampling en amont du convolver pour fixer la fréquence à celle de l'impulse, et dans convolver il faut surtout veiller à décocher l'option d’ajustement automatique du volume de l'impulse, qui semble complètement buggée.
Voilà une copie d'écran de l'interface (un clicodrome...), avec qq explications succinctes:
La partie de gauche correspond aux pentes *acoustiques* qu'il faut compenser, ainsi que les caisses close ou bass reflex pour le woofer.
L'exemple fictif ici présenté correspond à une 4 voies.
A noter que les filtres LR montent ici jusqu'à 120dB/oct, alors qu'on ne trouve que des 48dB/oct au max dans les filtres du commerce. On peut cependant réaliser ces ordre de filtrages plus élevé sur certains filtres à l'aide de sections de filtre du 2nd ordre supplémentaires (par exemple sur le DX46) en respectant des Q particuliers, mais cela en monopolise beaucoup...
Les LR qui ne sont pas des multiples de 24 (12, 36, 60, 84, 108) entrainent une rotation de phase de 180° qui doit avoir été prise en compte dans le filtre (inversion de la phase sur une des voies). Mieux vaut rester sur les multiples de 24... (en pentes acoustiques)
La partie centrale correspond à des EQ de phase supplémentaires, des sortes de PEQ qui n'agissent que sur la phase sans toucher à l'amplitude (le gain est en degrés), pour pouvoir corriger certains défauts particuliers. Perso je ne pense pas que cette section là soit utile si on a aligné ses HP avec des eq à phase minimale en amont, mais bon comme certains en voulaient je les ai mis, au moins pour la première version...
Il faut les utiliser avec parcimonie cependant, surtout avec les ordres élevés dans le bas!
la partie de droite correspond aux paramètres de l'impulse qui va être générée à partir des critères précédents.
- Le réglage de gain est important à considérer, car même sans toucher à l'amplitude elle-même on risque malgré tout de modifier les pics du fait des modifications de phases, et baisser de qq dB est souvent une bonne idée pour éviter les saturations...
- le nombre de taps du filtres, qui correspond au nombre de samples dans l'impulse, et qui va souvent être dicté par la machine utilisée pour réaliser la convolution. Par exemple 6144 pour l'openDRC (avec le plugin 48k en tout cas), et pas de limite fixe pour convolver, mais plus ce sera gros et plus on aura de délai (16384 est une "bonne" valeur à viser en 48k, et le double en 96k).
- rate correspond à la fréquence échantillonnage de la convolution (48k pour l'openDRC). Attention: si vous comptez utiliser foobar et le plugin convolver il faudra obligatoirement utiliser le plugin de resampling en amont du plugin convolver pour "fixer" tous les morceaux à une même fréquence.
- format, le format de l'impulse, en .wav (préférer le 32bit pour convolver ou holm) ou en .bin pour l'openDRC (en float IEEE754, le format natif).
- le fichier devant recevoir l'impulse générée...
- le bouton de génération, qui va produire le fichier précédemment choisi (ou en déclencher le choix si on ne l'avait pas précédemment fait).
Le fait de séparer la génération du choix de fichier permet de regénérer plus facilement plusieurs fois une même impulse en ajustant les paramètres...
Une fois l'impulse générée (c'est encore assez lent pour le moment, si on utilise bcp de filtres d'ordre élevé et un grand nombre de taps) apparait sous le bouton une indication d'offset de l'impulse, à la fois en samples (par exemple pour le calage dans holm) et en durée.
A noter que cet offset ne correspond pas à la moitié de l'impulse comme c'est l'habitude en FIR: vu que l'on corrige des rotations de phase l'impulse n'est pas symétrique, et est plus étendue sur la gauche que sur la droite. L'impulse est donc automatiquement "centrée" au mieux pour que le moins d’énergie soit tronquée, et ainsi profiter au mieux du nombre de taps disponibles. Le fenêtrage suit bien évidemment cette asymétrie.
A noter que cet offset correspond en fait à la partie la plus aigue de l'impulse (qui finie à 0°).
Limites:Il faut bien garder en tête que le nombre de taps va limiter les possibilités de filtrage: plus on a de taps et plus on peu linéariser bas et avec des pentes fortes. Mais on n'est jamais limité par le nombre de filtres: seulement par l'ordre (parfois cumulé!) et la freq des filtres.
En outre, doubler la freq de sampling demande de doubler le nb de taps pour obtenir la même perf.
Si l'on "abuse" trop (exemple LR48 à 100Hz avec 512 taps en 48k) on se retrouve avec des modifications de l'amplitude (des oscillations).
Les correction de caisse, close et surtout BR, ont évidemment besoin de bcp de taps (en gros ça équivaut à un LR12 et LR24, respectivement).
En gros, en 48khz, inutile de vouloir corriger un BR à 30Hz avec moins de 2000 taps, et pour avoir un LR48 "propre" à 100Hz il faut compter au moins 1500 taps. Un LR24 à 500Hz peut se "contenter" de 256 taps (même si un peu plus serait mieux), mais il en faudra le double pour un LR48, ou pour un LR24 une octave en dessous...
Voilà pour les ordres de grandeur! Mais il faut aussi considérer les effets de cumulation de plusieurs filtres. Je compte fournir une indication là dessus dans une prochaine version (déviation max en dB, octave par octave), mais surement pas d'affichage graphique précis. Pour le moment le seul moyen de vérifier son impulse est de la charger dans holm impulse, en affichant phase et amplitude.
A noter également que l'usage des PPEQ (les PEQ de phase) est très "gourmand" en taps, car ils impliques des modification de phase très rapides.
Franchement ces PPEQ je pense que c'est une mauvaise idée, mais on verra bien...
Voilà pour une première présentation, et j'attends vos retours et suggestions!
Et je vous conseil vraiment d'installer holm impulse pour constater/vérifier le résultat (et on peut même l'utiliser pour faire une convolution d'une mesure sans la refaire à chaque fois, avec la manipulation "C=A*B"), en prenant bien garde de vérifier que l'offset qu'il choisi automatiquement correspond bien à celui indiqué par rephase (holm peut se "tromper" de qq samples si on utilise des filtres d'ordre élevés ou haut en freq, et il faut utiliser l'offset de rephase qui est plus précis).