à la demande d'Igor (que je salue au passage
) quelques précisions sur les délais imposés par une convolution.
Quand on parle de délai de convolution il faut différencier 3 choses:
1- le délai d'entrée-sortie
2- le délai de traitement de la convolution
3- le délai imposé par l'impulsion de convolution elle même
Pour le délai 1, dans le cas d'un machine comme l'openDRC il s'agit en gros du délai de conversion (Ca doit tourner autour de 2ms à 48kHz, à vérifier, comme la plupart des machines de ce genre). Pour les logiciels ou plugins il faudrait aussi considérer les divers buffers qu'on est obligé de caser un peu partout...
Pour le délai 2, l'openDRC fait une convolution directe, donc on peut considérer qu'il est nul. Ça n'est pas le cas des machines (ou plugins) qui font des convolution par FFT (partitionné ou pas) qui demande un buffering...
Donc là l'openDRC est parfait (du moins avec le plugin actuel, car ils pourraient décider de partir sur une convolution par FFT dans une version future pour pouvoir disposer de plus de taps...)
Pour le délai 3, là ça ne dépend pas de l’implémentation ou de la machine: c'est entièrement lié à l'impulsion et à la position de son pic.
Le délai sera égale au temps de lecture à la fréquence d’échantillonnage définie des samples de l'impulsion jusqu'à ce pic.
La plupart des logiciels qui génèrent des FIR ont tendance à toujours caler le pic au milieu de l'impulsion (ce qui n'est optimal que si on ne touche pas à la phase), mais certains logiciel (rephase, et align2 aussi je crois) centrent le pic automatiquement en fonction de la répartition d’énergie pour tirer au mieux partie des taps disponibles (vu qu'on est toujours obliger de tronquer, autant tronquer ce qui est le moins signifiant), et là le pic pourra se trouver n'importe où (typiquement très au début dans le cas d'un correction à phase minimal, et plutôt vers la fin dans le cas d'un linéarisation de phase) et le logiciel doit alors fournir ce délai (ou alors il faudra le mesurer après coup).
Difficile (impossible?) de faire plus court que ce que permet l'openDRC pour une impulsion de correction donnée.