How to create gain compensation utility?

edited May 26 in Drambo

If you haven't heard about gain compensation, watch this video: https://www.youtube.com/watch?v=cM4kDYNs44A

In general, it ensures your effect doesn't change the overall volume, but only the shape / tone etc...

I always struggle with this in Drambo - tweaking a sound or applying some effect, but it drastically changes the volume, so I need to compensate manually, but that's tedious and not precise.

I tried some ways to achieve this but seems I can't wrap my head around. Tried to use envelope follower and subtracting of pre-effect and post-effect signals, but always ended up with weird results.

I bet there's some quite simple solution for this and maybe someone already built a similar utility. Or there could be possibly an AU for this, just not aware of it.

Thanks for everyone helping :)

Comments

  • edited May 26

    First of all, I wonder what gives you these drastic volume changes. I've never needed such a device apart from a few amp modules for static gain staging.

    Anyway, to get an inverse RMS envelope of your input signal, you can use the "CMP out" signal from Drambo's compressor. You can use this to control a "remote" Amp module to either boost or attenuate the signal level anywhere else, without even using the audio output of the compressor itself.


    Further processing of the control signal can be done using either filters or the integrator.

    Make sure you adjust the attack and release times to best match the characteristics of your audio signal.

  • edited May 26

    usually its all same actions that cause this

    "if I turn this up it gets less level "


    if you can compensate manually

    do it with one knob ;)

    if I turn this a litte up it gets more level too

    ...

    you can do it with the xy pad

    and modulate "parameter that causes volume change" and amp level at the same time

    so you can turn parameter up without volume change

    all you need to do is play around a little with the mod amounts of xy pad

    of parameter x and amp level

    and move you finger in xy pad from lower left to upper right corner ...

    "double macro"


    of course you will get more level if you use saturation

    so make the amp knob go in the other direction

    ...


  • For example a simple Shaper when adding saturation amount would make quite a "drastic" change in volume :) I would like to hear the tone change from saturation without changing the resulting RMS. Of course, it's not only about "drastic" changes, also subtle change in eq or filter can give you false sense of a sound "cutting better through the mix", but it is actually just louder.

    I am not sure if I understand how to use CMP out from compressor. With a single compressor, you won't compare the signal before and after the processing. Then it seems like modulating Amp with this envelope is the same that compressor does by itself :) Actually, many compressors have this gain compensation feature built-in as you also usually want to only shape the sound with it, not change the resulting volume.

    The point of this utility is to end up with exactly the same RMS output before and after applying some effect, see the video: https://youtu.be/cM4kDYNs44A?t=354 (will run in the time where the utility is used).

    Also here is the M4L device. https://maxforlive.com/library/device/4571/volume-compensator It may be described there better as I did :)

    I should probably give it some more time. I am a bit lame as I struggled with e.g. bi-polar changes of volume (if one source is louder or vice versa), as you can modulate it only in one direction (I had used pair of minimum+maximum with both values and the one was modulating it into positive values, other into negative. But seemed overly complicated to me).

    Also didn't know how to tweak it in a way that the resulting volumes are exactly the same (not sure what to use to monitor it - I'd need to count pixels on Oscilloscope :D I was even thinking about converting the signal to MIDI and use MIDI monitor to compare at least values with 7-bit precision...)

  • edited May 26

    I should probably give it some more time. I am a bit lame as I struggled with e.g. bi-polar changes of volume (if one source is louder or vice versa), as you can modulate it only in one direction (I had used pair of minimum+maximum with both values and the one was modulating it into positive values, other into negative. But seemed overly complicated to me).


    bipolar volume change are exactly what u want



    assign x of xy pad to saturation and y to amp level

    modulate sat positive mod amp volume negative

    look at output level and adjust

  • OK but how to achieve it? :) You can only modulate in one direction (AFAIK). At least with tapping on the control and then tapping on the output...

    And yes, you can obviously do the same thing by manually setting up e.g. XY pad (or much better Morph from beta), but that's definitely not so convenient and precise. Where I am getting back to my question, how to even adjust the levels precisely? The volume meters on Amp are quite small and do not show dB level numbers... Is there some module that can display exact number?

  • edited May 26

    the compressor in drambo has no auto adjust level button

    use some plugin if you need that

  • hm, im guess we could do some logic foo with comperators and math? @rs2000

  • edited May 26

    Well if you want exactly the same RMS output then you can use two compressors, compare, scale and smoothen the control signals and use that to control the final amplitude. You will need to adjust the smoothing to eliminate fast volume jumps but still keep the processor responsive to live changes in your processor (like changing the shaper curve as you mentioned). I've used five 24dB filters in series here to achieve that low cutoff but you can also use the Misc => Slew Limiter.

    Something like this...


  • edited May 26

    Anything to avoid using one's ears I suppose?

    Sorry, I'm maybe too much of a traditionalist, but to me mixing happens primarily after sound design. I don't get the need for this approach at all. I apologize for the non-helpful post. But maybe it'll trigger someone shedding light on why something like this is a good thing. I'm interested because as it is I just don't get it at all. I don't mean to be rude or dismissive.

  • Yep, that's my take on it too but people are different.

  • edited May 26

    If your approach is live-oriented and you want to be able to tweak parameters while performing, having some safety is nice. Especially when dealing with feedback patches or something utilizing a lot of distortion.

    For me the appeal of drambo is that you can create pretty wild modular patches and use them live without bouncing them down to samples. With my current setup I focus more on controlling my sequences than altering my patches, but in the past I've relied heavily on compression and other tools to make sure I don't blow out speakers. Especially when dealing with hardware like a JoMox T-Resonator or Sherman Filter Bank. More "intelligent" gain tools to work in these sorts of spaces make a lot of sense.

  • edited May 27

    I guess a limiter on the master doesn't hurt if you don't want to blow out your ears.

    I use this little safety net ^^

  • edited May 27

    in the future creating multi macro morphs will be dead simple

    so doing a little volume compensation will be very simple, its just another morph parameter (amp) on the same knob :)

    turn saturation up, turn volume down ... morph knob 1


    for what I do this doesnt need to be precise

    level in same ball park will do

    if u play a little with the parameters there are not so drastic level changes anymore ...


    saturation and feedback up level down with one knob is much more what I want :)

    it turns out to be more musical

    lay it on one morph knob and call it a day , I dont have 3 hands to turn 3 knobs :)

  • I never felt the need for more than a simple limiter to keep from screwing up when playing live. It’s an interesting idea, but seems like overkill and also seems like it could end up sucking expression out of a performance. I appreciate that other people would find it useful though. Interesting thoughts,

Sign In or Register to comment.