If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Going back to the FIR Delay !)...
5 posts
• Page 1 of 1
Going back to the FIR Delay !)...
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)
- Attachments
-
- 8tapfirdelay optv3.fsm
- (97.12 KiB) Downloaded 1296 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Going back to the FIR Delay !)...
Some optimizations.. And now some bias value and the choice to not overshoot frequency
I could reduce from 7 multiply to 4. There was some redondance.
Shufping like a dance, we could multiply only one time with the frac value !)
(even if it's a lot of shufps.. i'm biased as i consider to avoid multiply and divide..
But 2 add is almost like a multiply.. But divide could be between 3 to 9 multiply ??)
Also i find that it become an art at this point to design the best compromise or approximation..
With this approximation inverse and refrac technic we have to:
-First choose some truncated/windowed sinc coefficient.. Not sure i choose the best one...
- then if adjusting the refrac value, we could get better result for frac 0.25 or 0.75..
> Avoiding more frequency lost but at the risk to get frequency boost at other frac value..
So i let 2 bias control..
Refrac being just this image :
I could reduce from 7 multiply to 4. There was some redondance.
Shufping like a dance, we could multiply only one time with the frac value !)
(even if it's a lot of shufps.. i'm biased as i consider to avoid multiply and divide..
But 2 add is almost like a multiply.. But divide could be between 3 to 9 multiply ??)
Also i find that it become an art at this point to design the best compromise or approximation..
With this approximation inverse and refrac technic we have to:
-First choose some truncated/windowed sinc coefficient.. Not sure i choose the best one...
- then if adjusting the refrac value, we could get better result for frac 0.25 or 0.75..
> Avoiding more frequency lost but at the risk to get frequency boost at other frac value..
So i let 2 bias control..
Refrac being just this image :
- Attachments
-
- 8tapfirdelay optv4.fsm
- (254.38 KiB) Downloaded 1255 times
-
- refrac.png (31.25 KiB) Viewed 23332 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Going back to the FIR Delay !)...
Get some chance with those 8 tap coefficients..
Now i find that it could be good to plot the magnitude error..
Sometime the fir would have ripple, we end up with little attenuation that affect more bass..
Here i multiply the deviation from 1 of the output level by 128.
The 8 tap fir seams ok but the 16 tap i'm trying to do attenuate bass which could begin audible at high feedback..
So it's about finding the best windows for a sinc function which is not so easy..
Here the 8 tap then my bad 16 tap coefficient :
Now i find that it could be good to plot the magnitude error..
Sometime the fir would have ripple, we end up with little attenuation that affect more bass..
Here i multiply the deviation from 1 of the output level by 128.
The 8 tap fir seams ok but the 16 tap i'm trying to do attenuate bass which could begin audible at high feedback..
So it's about finding the best windows for a sinc function which is not so easy..
Here the 8 tap then my bad 16 tap coefficient :
- Attachments
-
- Magnitude2.png (9.27 KiB) Viewed 23220 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Going back to the FIR Delay !)...
And now a 24 tap Fir Delay !)
I pass on 16.. Having trouble to get something better than 8..
Then i discover that the inverse coefficient are no more good when going to more tap.
(No more left = 0.75 and right = 0.25 when frac is 0.25...)
So now it's just a simple refrac value that blend the sinc coefficient with the linear one.
Like in the image.
They might exist other way and more precise way to do..
But this one seams a good ratio of precision/cpu.
I pass on 16.. Having trouble to get something better than 8..
Then i discover that the inverse coefficient are no more good when going to more tap.
(No more left = 0.75 and right = 0.25 when frac is 0.25...)
So now it's just a simple refrac value that blend the sinc coefficient with the linear one.
Like in the image.
They might exist other way and more precise way to do..
But this one seams a good ratio of precision/cpu.
- Attachments
-
- refrac2.png (33.63 KiB) Viewed 23146 times
-
- 24tFirDelay.fsm
- (65.65 KiB) Downloaded 1257 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Going back to the FIR Delay !)...
And a 40 tap fir delay !)
Don't know if it make so much sense, the improvement is light against 24.
For this number of tap it would maybe be better to do something about the 0.25 frac value
(where it seams to improve less) but adding more refrac value will give amplification in the treble..
So it probably need more coefficient and or more complexity if we want to improve this.
(For most situation i don't think it's worth to do, maybe for very very precise thing)
Strangely, each time i make a new delay i have the sensation that it sound a little differently,
and this one seams more clear for me, but it might be psychology..
Don't know if it make so much sense, the improvement is light against 24.
For this number of tap it would maybe be better to do something about the 0.25 frac value
(where it seams to improve less) but adding more refrac value will give amplification in the treble..
So it probably need more coefficient and or more complexity if we want to improve this.
(For most situation i don't think it's worth to do, maybe for very very precise thing)
Strangely, each time i make a new delay i have the sensation that it sound a little differently,
and this one seams more clear for me, but it might be psychology..
- Attachments
-
- 40TapFirDelay.fsm
- (74.12 KiB) Downloaded 1248 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
5 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 66 guests