compressor effect

Bug #1000759 reported by Sean M. Pappalardo
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

(Testing with a Shure SM58 through an SCS.1m firewire sound card via JACK on Debian Squeeze.)

At first glance, the microphone input seems to be too quiet, but because it's possible to max out the level in the software (though the clip indicator never lights) and clip the hardware input just by yelling into it, we should add a compressor to the input stage so that the voice can be substantially louder without the user having to turn the gain so high on the hardware.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Internally there is a compressor now thanks to Bug #1035065. It's just used under the covers to implement talkover ducking. We don't currently plan to expose its parameters to the user.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

The end problem (mic too quiet) actually may be solved by Bug #1034065. Adding a compressor could be done manually with the effects framework, so is this a dupe of Bug #857450 ?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

The "too quiet" part is IMHO best solved with a gain knob, instead of volume Bug #1280771

(Bug #1034065 is a unity-lens-radios bug)

Revision history for this message
Owen Williams (ywwg) wrote :

The compressor as written does ducking, which lowers the volume of the other channel. This sort of compression is different and involves raising volume over a knee at a certain threshold. The implementation will be different.

Yeah, compression is a word that means a lot of things.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Oops I meant Bug #1035065.

Revision history for this message
Daniel Schürmann (daschuer) wrote :
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

What I'm saying is that at least on the hardware I tested, I can reach maximum volume (evidenced by clipping the hardware mic input and maxing the volume meter in Mixxx) by yelling into the mic, so the signal chain is working correctly, it's just that the dynamic range is too great since regular talking is significantly lower than the maximum the chain supports. So we need an upward compressor assigned to the mic channel by default so as to automatically bring up the lower signal levels without affecting the higher ones. http://en.wikipedia.org/wiki/File:Upward_compression.svg Since we have effects now, I would expect that this would be fairly easy to do.

Revision history for this message
Owen Williams (ywwg) wrote :

It should be possible to adapt the code I wrote for mic ducking to do this

Be (be.ing)
summary: - Microphone input needs a compressor (it's too quiet)
+ compressor effect
Revision history for this message
Be (be.ing) wrote :

We have a flexible effects framework now. IMO it would make most sense to implement this as an effect so users could load it into an effect unit and assign the effect unit to microphones. Any volunteers to take this up for 2.2? Daniel? I think it is the one glaring omission from our available effects presently.

tags: added: effects
removed: compressor mic volume
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Should the ducking be moved to the effects as well? The ducking knob feels like a satellite currently.

Revision history for this message
Be (be.ing) wrote :

No, the ducking feature needs to stay in its special place within the engine because it takes a sidechain input. The effects system cannot take a sidechain input. I'm not sure if the code for that should be reused for this effect or if it would sound better to write it from scratch or adapt the code from some other software.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

We can make it work though.

Revision history for this message
Be (be.ing) wrote :

What do you mean? We cannot make the mic ducking functional part of the effects system. We could refactor the compressor code used for mic ducking into a common class that can be used both for the mic ducking and for the effect somewhat like how the various filters are reused by different effects.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

We can make a compressor effect and load it to the master channel.
We can add a selector switch, which bus is controlling the gain.
In this case talk-over.
Instead of actual altering samples, we can pass the controls to the original ducking place.
That controls that the master is effected but not the talkover channel.

Some ugly globals will be involved but. But the current ducking implementation is also global in a way. Maybe we can find a way to make it more generic.

Revision history for this message
Be (be.ing) wrote :

I think refactoring the microphone ducking feature to use the effects system would not make the implementation any cleaner. IMO it would overcomplicate that because we'd need to implement a new special EffectUnit. I think it would make more sense to have a class that can be used both for the special microphone ducking feature and for the effect. In the effect, the sidechain input to the common class would be hardcoded to be the same as the input signal to the effect.

Revision history for this message
Be (be.ing) wrote :

Daniel, would you like to volunteer to take this up for 2.2? If so, please assign yourself to the bug and assign it to the 2.2 milestone.

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/6453

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.