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

Bypass button not working in Ardour #113

Open
davidhealey opened this issue Jun 13, 2022 · 9 comments · May be fixed by #122
Open

Bypass button not working in Ardour #113

davidhealey opened this issue Jun 13, 2022 · 9 comments · May be fixed by #122

Comments

@davidhealey
Copy link

As the title. Pressing the bypass button or the enable button doesn't appear to do anything.

@lucianodato
Copy link
Owner

Ok will check asap

@davidhealey
Copy link
Author

Any progress on this?

@nettings
Copy link

nettings commented Feb 1, 2023

I can confirm this behaviour. Ardour's bypass button seems to control the "enable" switch in the plugin, which in turn doesn't do anything. I think (but I'm not sure) Ardour patches around a plugin to "bypass" it only if it doesn't see the plugin has such a feature, and tries to use the plugin's bypass feature if it does.
So I would suspect that the issue is not limited to Ardour.

A quick look at signal_crossfade_run tells me there seems to be a low-pass filtered dynamic wet/dry coefficient, but I don't quite understand the logic. The target is updated once per buffer, but shouldn't the dynamic coefficient be updated once every sample?
So I guess the line

self->wet_dry += self->tau * (self->wet_dry_target - self->wet_dry);

should go into the loop in signal_crossfade_run()...? Or am I being confused about how this is supposed to work?

@thomask-gh
Copy link

The issue is still there with Ardour 7.2.0 and Noise Repellent v0.2.3. I’m new to DAWs and I was first learning how Noise Repellent works and got very confused to hear no difference between having the plugin enabled or not, even when giving it extreme settings on purpose, only to find out there was a difference when I removed the plugin from my bus altogether. It made me suspect that the enable/bypass feature might be broken, and it indeed is.

It would be great if you could fix this, but thanks a lot for this plugin anyway!

@jmaibaum
Copy link

jmaibaum commented Jun 8, 2024

Just noticed this as well using Ardour 8.6 + NR 0.2.3. This is really confusing.

@davidhealey
Copy link
Author

Just noticed this as well using Ardour 8.6 + NR 0.2.3. This is really confusing.

I don't think it's likely we will get a fix for this any time soon. But I would recommend you use v0.1.5 as all versions from 2.0.0 have bugs and glitches and I've found 0.1.5 gives the best results.

@jmaibaum
Copy link

jmaibaum commented Jun 8, 2024

Yes, I also switched to 0.1.5 after I noticed that 0.2.0 also had this bug.

@davidhealey
Copy link
Author

Yes, I also switched to 0.1.5 after I noticed that 0.2.0 also had this bug.

Here's another tip, set the release to at least 500 to avoid the bird chirping sound

@jmaibaum
Copy link

jmaibaum commented Jun 11, 2024

The reason why bypass is not working is because input and output can be at the same memory location according to the LV2 spec:

Plugin writers should be aware that the host may elect to use the same buffer for more than one port and even use the same buffer for both input and output (see lv2:inPlaceBroken in lv2.ttl).

(Quote from: https://lv2plug.in/c/html/group__lv2core.html#a4d904937a1bd27cb5f5478f95c708b16)

The author of #118 mention this, and my tests were also showing input and output pointing to the same address, making the crossfade code a no-op.

Unfortunately though not all LV2 hosts seem to support lv2:inPlaceBroken which would be a spec compliant solution for noise-repellent...

@jmaibaum jmaibaum linked a pull request Jun 12, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants