mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.25k stars 1.24k forks source link

Can’t use microphone talkover mode with compressor effect #12451

Open fonsargo opened 6 months ago

fonsargo commented 6 months ago

Bug Description

I’m trying to use compressor effect for music (like auto gain control), in order to have almost maximum music level for each song (almost 0 DB). But when I try to talk something over music, I can’t decrease music level. I’ve set Microphone talkover ducking strength to low level and when I turn on my microphone it works only for a few seconds. After that my compressor plugin increase music level back to 0 DB and music becomes louder than my voice.

As I understood, microphone ducking is applied before any effects. I’ve tried to apply my effects for each Deck and for Main mixer, but the problem is the same. Every time my effect neutralizes microphone ducking (talkover mode). Applying it to only the main mix gives the same result. Moreover, when I chose in hardware settings Microphone monitor mode to Main output only, my effect isn’t applied to microphone input (however when I apply some effect to the main mix I expect to apply it to all sound going through the main mix).

So it seems to me that microphone ducking (volume decrease) is applied BEFORE effects panel, but microphone input is mixed AFTER effects of the main mix, which looks quite strange. And I can’t find any settings related to it in order to change this behavior.

Version

2.3.6, 2.4.0-beta

OS

Windows 11

fonsargo commented 2 weeks ago

Does anyone have any ideas how it could be fixed? I guess microphone ducking should be applied to the main output gain, not to the deck output. However I don't have a clue how the Mixxx is actually mixing decks and microphone together. Maybe someone has some links to the starting point in code?

ronso0 commented 2 weeks ago

The mixing is happening in EngineMixer, somewhere around here I think https://github.com/mixxxdj/mixxx/blob/1f85c9c4502e42e744a1797c85c2b1343f5d3609/src/engine/enginemixer.cpp#L535