Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

peaking filter #71

Open
richardpl opened this issue Oct 12, 2024 · 2 comments
Open

peaking filter #71

richardpl opened this issue Oct 12, 2024 · 2 comments

Comments

@richardpl
Copy link

This is somehow related to equalizer IIR filter as implemented in eq effect.

For more info see:

https://cytomic.com/files/dsp/SvfLinearTrapOptimised2.pdf

another implementation, both with SVF coefficients and standard coefficients for Direct I/Direct II/Transposed Direct I/Transposed Direct II kinds:

https://github.com/librempeg/librempeg/blob/master/libavfilter/af_biquads.c#L404

https://github.com/librempeg/librempeg/blob/master/libavfilter/af_biquads.c#L563

It appears that cascading this type of filter have very nice property. (with Q >= 0.5)

@bmc0
Copy link
Owner

bmc0 commented Oct 16, 2024

Perhaps I'm missing something obvious, but I'm not sure I understand the application for the 'peakpass' filter. I'm guessing that the peak gain is intended to be controlled by the output mix as there's no independent gain parameter

It seems that one can get the same response with the 'bell' (RBJ peakingEQ) filter. Examples:

peakpass bell equivalent
Q=1 Q=sqrt(0.5) A=20×log10(2)
Q=2 Q=1 A=20×log10(4)
Q=4 Q=sqrt(2) A=20×log10(8)
Q=1/4 Q=sqrt(1/8) A=20×log10(0.5)

@richardpl
Copy link
Author

Yes, you can also do it with bell 'RBJ' filter...

The SVF is mainly useful for changing filter coefficients on the fly, so they have bigger benefit from "RBJ" kind of implementations.

Also another topology like lattice-ladder allow stable high order recursive allpass fractional delay filters. (Unlike Thiran allpass filter direct transfer function coefficients of high order which is quite unstable and unworkable even with double precision)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants