lsp-plugins / lsp-plugins/lsp-plugins-impulse-reverb

Dry/wet knob not working

Open
#2 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Makefile
Stars
1
Forks
3
PR merge metrics
No merged PRs in 30d

Description

The dry/wet knob on the "Impulse Responses Mono" plugin is not working as expected. I'd like to use the plugin with impulse responses of guitar speakers. Therefore I need to be able to fully disable the amp signal and to only use the processed wet signal. However, if I set the wet level to 100 % I get doubling effects.

Here are some further steps to reproduce that there's in fact a problem:
1. Set the "Dry" knob to -inf dbFS.
2. Set the "Dry/Wet" knob to 0%, i.e. fully dry.

**Expected result:** Nothing can be heard.
**Actual result:** the dry signal can still be heard.

I think this can the traced to the following lines of code: https://github.com/lsp-plugins/lsp-plugins-impulse-responses/blob/af5066bf43ae585f8d459a41d7b0fde34ca84e88/src/main/plug/impulse_responses.cpp#L475-L476

The current code looks as follows:
```
c->fDryGain = (dry * drywet + 1.0f - drywet) * fGain;
c->fWetGain = wet * drywet * fGain;
```

It needs to be adjusted as follows to correctly interpolate between dry and wet:
```
c->fDryGain = (dry * (1.0f - drywet)) * fGain;
c->fWetGain = wet * drywet * fGain;
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at src/main/plug/impulse_responses.cpp around lines 475-476 and review how the dry and wet gains are calculated. Reproduce the issue with Dry at -inf dBFS and Dry/Wet at 0%, then verify that the dry signal is silent and the wet-only setting no longer produces doubling effects.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.