Fractional Delay Filter
Today I have a Thiran all-pass filter that can be used as a fractional delay line to share with you all. It has a simple yet interesting and useful effect on incoming audio signals – it can delay them by 1.5 – 2.5 samples (using a normal delay line you would be limited to using only integer values). To achieve a longer delay than 2.5 samples, you can simply wire it after a delay line.
Fractional delay lines have various musical applications – they are useful in bandwidth limited oscillators, comb filters, Karplus-Strong and other physical modeling algorithms, and probably many other things that I am not aware of. My interest was first piqued by this article, and much of the recent research on fractional delay filters seems to be by Vesa Välimäki.
Hopefully I’ll have another project or two that uses this later in the week.
Cannot get this to work. But very interested. Also tried it (the algo) in Max6/Gen with no luck. Where did you get the actual algorithm? I cannot find it in the various papers. In general this is a great site full of great work, thanks. Keep it up.
hi,
the algorithm is outlined in the paper linked in the post… how are you trying to use it?
hi, i was just using your filter after a delay. also tried alone just to see what was happening. i found the algo in the paper sorry, just wasn’t looking correctly. i found that you have ‘a2′ as:
a2 = ((D – 1) * (D – 2)) / ((D + 1) – (D + 2))
but in the paper it is:
a2 = ((D – 1) * (D – 2)) / ((D + 1) * (D + 2))
… [* not -] i implemented the latter and it seems to be working well, looking at phase delay etc.
however, i do not really have much idea what i am doing.
what do you think?
i now have the thiran after a 1.5 -> 2.5 samples delay in a feedback loop, seems good.
all the best.
Thanks for noticing this, I have uploaded a working version.
I have it saved as a core cell and a core macro, I accidentally uploaded the work-in-progress instead of the finished version.
great!