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

Use of AWE32 filter cutoff NRPN overrides both cutoff and emphasis #1452

Open
mrbumpy409 opened this issue Dec 19, 2024 · 2 comments
Open

Use of AWE32 filter cutoff NRPN overrides both cutoff and emphasis #1452

mrbumpy409 opened this issue Dec 19, 2024 · 2 comments
Labels

Comments

@mrbumpy409
Copy link

FluidSynth version

2.4.1 (1427 branch)

Describe the bug

FluidSynth now supports AWE32 NRPN control of both filter cutoff (FC) and emphasis (Q). The use of the FC NRPN should override the preset's FC, and the use of the Q NRPN should override the preset's Q. However, using the FC NRPN overrides both FC and Q (which ends up being set to 0, as far as I can tell).

Expected behavior

Using the FC NRPN should only override the preset's FC and not the Q.

Steps to reproduce

This bug can be reproduced pretty easily by running the test linked in this comment. A spectrogram view of tests 1 and 3 both show the presets' Q values being overridden, as these two tests make use of the FC NRPN.

@mrbumpy409 mrbumpy409 added the bug label Dec 19, 2024
@derselbst
Copy link
Member

Right, the reason I was implementing it this way, is because of how the "NRPN LSB 22 (Initial Filter Resonance Coefficient)" is documented:

There, they specify a coefficient table with a high and low Q, and a high and low filter fc respectively. Therefore, I assumed that the NRPN implementation of the filter uses a varying filter Q, i.e. when setting the filter fc to its lower bound, you'll get the low Q. If you set fc to its upper bound, you'll get a high filter Q. And any fc in between just linearly interpolates the Q within its given range.

I didn't had time so far to look into your provided test. But I'll probably find time to do so over Christmas. In addition, you may try to add another test case to it which sets the NRPN LSB 22 (i.e. initializes the Filter Resonance Coefficient), and then vary the filter fc via NRPN LSB 21. I would assume that this also has an effect on the filter's emphasis.

@mrbumpy409
Copy link
Author

At least on the Audigy, the filter when modulated by NRPN LSB 21 acts the same as if it were modulated by any other source (via modulator, etc.), with no affect on the filter Q. You can see this in the test results on the other thread. With FluidSynth aiming to be a SoundFont 2.01/2.04-compliant synthesizer, the Audigy1/2 behavior would be the ideal model to emulate, IMO. When I get some time, I'll update the test to include filter Q tests.

I hope you have a Merry Christmas! I am very thankful for you and all of the work you put into this synthesizer! May you be safe and warm through the holidays. 😁

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

No branches or pull requests

2 participants