easyeffects icon indicating copy to clipboard operation
easyeffects copied to clipboard

Input monitoring skips output effects

Open stashymane opened this issue 10 months ago • 6 comments

EasyEffects Version

7.2.3

What package are you using?

Fedora

Distribution

Fedora 41

Describe the bug

When enabling input monitoring, the audio is routed directly to the main output, skipping all effects. This, at least to me, is confusing when adjusting my input effects, as I expect all system output to be processed the same way (minus exceptions that I might enable explicitly). Applying output effects to input monitoring would make a lot of sense, especially in cases where EE is used as speaker/headphone calibration. Either that, or the ability to choose, with input monitoring showing up as any other player node would be great.

stashymane avatar Feb 01 '25 10:02 stashymane

Applying output effects to input monitoring would make a lot of sense

Not necessarily. The purpose of the monitoring is to know what the input pipeline is doing to the microphone signal. If we redirect its output to the input of the output effects pipeline the result does not represent what is being done by the microphone pipeline anymore.

Imagine that you are in a videoconference. What people will listen when you talk is not a combination of both pipelines. It will be just what is being done by the microphone pipeline. If we do what you are suggesting the monitoring won't help to know what the other side is actually listening to.

wwmm avatar Feb 01 '25 11:02 wwmm

Entirely depends on what effects you have on your output, however in the case of using EE for calibration - I've calibrated my speakers & headphones to have a more-or-less flat frequency response and I am very used to it, so hearing my microphone "tainted" by my headphones' stock frequency response resulted in me tuning my microphone terribly until I figured this out. Perhaps routing the input monitor through EE, but having it excluded by default would be a good middle-ground?

stashymane avatar Feb 01 '25 13:02 stashymane

Perhaps routing the input monitor through EE, but having it excluded by default would be a good middle-ground?

The excluded means "not redirected by EasyEffects". What in general means exactly the same as linking directly to the output device. Another is that EasyEffects shows streams in its Players/Recorders tab. And the effects pipeline is not a stream like the ones created by players and recorders.

Entirely depends on what effects you have on your output

Unless the effects are in passthrough mode or are passthrough by nature like the level meter the signal will be modified by the output pipeline and the result won't represent what is being done by the mic pipeline anymore.

The only real way to do what you want would be to add somewhere a configuration to select the mic monitor output. Redirecting it to the input of the output pipeline by default will lead to misleading results.

wwmm avatar Feb 01 '25 14:02 wwmm

The excluded means "not redirected by EasyEffects". What in general means exactly the same as linking directly to the output device.

In other words it is not possible to redirect to the output pipeline and exclude at the same time. Once it is there it will be processed together with everything else playing to the output pipeline virtual device.

wwmm avatar Feb 01 '25 14:02 wwmm

The only real way to do what you want would be to add somewhere a configuration to select the mic monitor output. Redirecting it to the input of the output pipeline by default will lead to misleading results.

Or maybe an additional configuration in our preferences window similar to "Mic Monitor Plays to Output Effects Pipeline" that is disabled by default.

wwmm avatar Feb 01 '25 14:02 wwmm

The only real way to do what you want would be to add somewhere a configuration to select the mic monitor output. Redirecting it to the input of the output pipeline by default will lead to misleading results.

Or maybe an additional configuration in our preferences window similar to "Mic Monitor Plays to Output Effects Pipeline" that is disabled by default.

I think this should be easy to do. But it should not be done in the gtk branch because it will be eventually replaced. I've added a note about this feature to our Qt port to do list #3521 .

wwmm avatar Feb 01 '25 15:02 wwmm

Implemented in our Qt branch.

wwmm avatar Aug 26 '25 00:08 wwmm