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

EQ - Low Shelf filter not working correctly #29

Closed
Utini2000 opened this issue Feb 13, 2019 · 18 comments
Closed

EQ - Low Shelf filter not working correctly #29

Utini2000 opened this issue Feb 13, 2019 · 18 comments
Assignees
Labels
feature request Feature request
Milestone

Comments

@Utini2000
Copy link

Good evening,

I am using PulseEffects which is using lsp-plugins to handle the equalizier.
One thing I noticed is that the low shelf filter is behaving weird in that it seems to have a way higher gain than I actually set it to.

For example, I have a EQ profile that an acoustic laboratory made for me with their software.
It includes a low shelf filter with a certain frequency, q-factor and gain. Those settings work fine under e.g. Windows. How ever, with lsp-plugins / pulseeffects it doesn't.
The EQ Profile is shown as .pdf here (14 bands in total):
https://www.dropbox.com/s/k7wry3s24r2y8sc/Sennheiser%20HD800S%20%2318002%20pt1.pdf?dl=0
https://www.dropbox.com/s/way36c2dofncrvc/Sennheiser%20HD800S%20%2318002%20pt2.pdf?dl=0

There is already a ticket on the github of pulseeffects:
wwmm/easyeffects#421

Any ideas?

@sadko4u
Copy link
Collaborator

sadko4u commented Feb 13, 2019

Hello. The design of filters for LSP is different to pulse ones, and, of course, different to Apo/Peacer or any another EQ that you use. Do you have the issue with only Low-shelf filter?

@Utini2000
Copy link
Author

Utini2000 commented Feb 13, 2019

Hey there,
so far I can only hear the issue with the low-shelf filter.
The other filters I use are Peak (Bell), maybe there is an issue too but I didn't notice or can't hear it without a direct comparison? All the filters/bands/settings are shown in the two dropbox links above.

Is there a conversation I could do to get my settings work with LSP?

@sadko4u
Copy link
Collaborator

sadko4u commented Feb 13, 2019

I actually don't know because I don't know the characteristics of filters for which you've created the profile. Yes, I can agree that some filters have some errors in implementation that currently are their specific features but even if I did straightforward implementation, I can not guarantee that they will match Apo/Peacer filters.
I think @CrocoDuckoDucks can help discovering the problem.

@sadko4u
Copy link
Collaborator

sadko4u commented Feb 13, 2019

I've found implementation of APO filters:
https://sourceforge.net/p/equalizerapo/code/HEAD/tree/trunk/filters/BiQuad.cpp

Too trivial for LSP because for each filter only one biquad section is used.
We can simply implement all these APO filters as additional filter types for LSP.

@Utini2000
Copy link
Author

Hmm I don't really understand this. I thought there is only one correct way to process a filter?
But it seems like there are different methods, the one being used by APO seems to be the most common?

@sadko4u
Copy link
Collaborator

sadko4u commented Feb 13, 2019

I thought there is only one correct way to process a filter?

Nope, there's not. If you run LSP Parametric Equalizer and play with extreme filter settings like Q, Slope, type and transform function, you'll see that they povide much more features rather APO ones. But because they provide more features, they actually have completely another design.
What we can do in LSP is just copying the code that computes APO's biquad filters and implementing them as separate 'special' filters for the parametric eq. Filters will match APOs ones only if all five coefficients (a1, a2, b0, b1, b2) of computed biquad filter will match.

But it seems like there are different methods, the one being used by APO seems to be the most common?

As I said before, APO has another algorithm for computing it's filters. The good news is that this algorithm is open (see link below), so we can re-implement it in LSP plugin kit. The bad news is that currently I'm very busy with another features and can not say the date when this feature will be deployed.
Maybe @CrocoDuckoDucks will help with it.

@stefano-tronci
Copy link
Collaborator

Hey there!
I will take a look at this and revert in the next few days.

@sadko4u sadko4u added the discuss Discussing the issue label Feb 13, 2019
@sadko4u sadko4u added this to the 1.1.7 milestone Feb 13, 2019
@Utini2000
Copy link
Author

@CrocoDuckoDucks that would be awesome! I talked to /u/oratory1990 and he also thinks that the easiest solution would be to implement the APO filter.

@stefano-tronci
Copy link
Collaborator

@Utini2000 , as an update, I will take care of implementing the APO filters, which by the way appear to be a standard textbook implementation. I will revert back when something is ready to be tested by you. Stay tuned.

@Utini2000
Copy link
Author

Awesome, thank you a lot!

@Utini2000
Copy link
Author

@CrocoDuckoDucks Hey there, any news? :)

@sadko4u
Copy link
Collaborator

sadko4u commented Mar 5, 2019

Be patient, please. I already observe commits in github-issue-29 branch. @CrocoDuckoDucks had made some changes, it seems already to be working but needs a bit to be polished.

@sadko4u
Copy link
Collaborator

sadko4u commented Mar 7, 2019

Computing code of APO filters has been successfully ported to the tree. The only things left are: matching behaviour of several UI controls to APO's ones, writing documentation and releasing the new build.

@Utini2000
Copy link
Author

Awesome! Sorry, I didn't mean to rush or hurry.
Next time I will try to follow and figure out the commits on a github branch :)

@sadko4u
Copy link
Collaborator

sadko4u commented Mar 10, 2019

Today finally we've got APO filters ported to the LSP Plugins bundle. All changes have been merged into devel branch with this commit: 34a764c

@sadko4u sadko4u added feature request Feature request PENDING FOR RELEASE This issue will be added to the nearest upcoming release and removed discuss Discussing the issue labels Mar 10, 2019
@sadko4u
Copy link
Collaborator

sadko4u commented Mar 17, 2019

All changes are available in the 1.1.7 release that was just published.

@sadko4u sadko4u closed this as completed Mar 17, 2019
@sadko4u sadko4u removed the PENDING FOR RELEASE This issue will be added to the nearest upcoming release label Mar 17, 2019
@wwmm
Copy link

wwmm commented Mar 17, 2019

Thank you for this work @sadko4u and @CrocoDuckoDucks! As soon as the new version hits the Arch Linux repo I will expose these new filters in PulseEffects.

It seems to me that the year of the news in https://lsp-plug.in/?page=news is wrong

@sadko4u
Copy link
Collaborator

sadko4u commented Mar 17, 2019

@wwmm

It seems to me that the year of the news in https://lsp-plug.in/?page=news is wrong

The year has been fixed, thanks.

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

No branches or pull requests

4 participants