Going back to the FIR Delay !)...
Posted: Fri Apr 21, 2023 4:26 pm
Allpass delay are cool, but where they lack is asynchronous delay.
I think this is specially for asynchronous resampling, that they will add more problem..
So i come back a little to fir delay.. (maybe i must talk to a psy about this )
Trying to simplify the coefficient i find this little "trick"..
We could take some ideal (sinc based) coefficient for frac 0.5.
The more the delay is close to frac 0.5 more we blend to those coefficient.
(instead of the simple linear interpolation.)
(Making a linear interpolation between sample x4 and x5 and adding the sinc solution for sample x1 to x8)
Now to get a little more precision we use the coefficient of the linear version
"inversed". When x4 is 0.25 x1,x2,x3,x4 will be blend at *0.75 and x5,x6,x7,x8 at *0.25..
Hum.. not sure it's the best optimization for a 8 tap mono delay.. Getting 7 multiply and other stuff..
Maybe i also have to rethink the order of operation... But maybe for higher tap ??
But i'm pretty happy it works after just some nightmare debugging !)
Edit : Forget to say.. There's a very little overshoot (more volume) in treble when the frac is close to 0.5.
So the feedback could not be at 1 when the delay is there.. Or the treble will slowly rise up..
(not so hard to compensate)
I think this is specially for asynchronous resampling, that they will add more problem..
So i come back a little to fir delay.. (maybe i must talk to a psy about this )
Trying to simplify the coefficient i find this little "trick"..
We could take some ideal (sinc based) coefficient for frac 0.5.
The more the delay is close to frac 0.5 more we blend to those coefficient.
(instead of the simple linear interpolation.)
(Making a linear interpolation between sample x4 and x5 and adding the sinc solution for sample x1 to x8)
Now to get a little more precision we use the coefficient of the linear version
"inversed". When x4 is 0.25 x1,x2,x3,x4 will be blend at *0.75 and x5,x6,x7,x8 at *0.25..
Hum.. not sure it's the best optimization for a 8 tap mono delay.. Getting 7 multiply and other stuff..
Maybe i also have to rethink the order of operation... But maybe for higher tap ??
But i'm pretty happy it works after just some nightmare debugging !)
Edit : Forget to say.. There's a very little overshoot (more volume) in treble when the frac is close to 0.5.
So the feedback could not be at 1 when the delay is there.. Or the treble will slowly rise up..
(not so hard to compensate)