Native OTT-like compression

Sorry if this has been done before. I made some great parallel compression chains. These are meant to be put into sends and you use a multiband send on each bus or group track. Even values as low as -56 dB really beef up tracks without increasing any volume on the master at all. Just copy and paste and have fun! S, M and LCOMP stands for short, medium and long attack and release times. :wink:

Send 1 (SCOMP) Lows

<FilterDeviceContainerClipboard doc_version="0">
  <DeviceContainerSlot type="TrackFilterDeviceChain">
    <SelectedPresetName>Init</SelectedPresetName>
    <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
    <SelectedPresetIsModified>true</SelectedPresetIsModified>
    <Devices>
      <SendTrackMixerDevice type="SendTrackMixerDevice">
        <CustomDeviceName>Mixer</CustomDeviceName>
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>false</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Panning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </Panning>
        <Volume>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </Volume>
        <Surround>
          <Value>0.0</Value>
          <Visualization>Device only</Visualization>
        </Surround>
        <PostPanning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </PostPanning>
        <PostVolume>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </PostVolume>
        <SmoothParameterChanges>true</SmoothParameterChanges>
      </SendTrackMixerDevice>
      <GainerDevice type="GainerDevice">
        <CustomDeviceName>In</CustomDeviceName>
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Volume>
          <Value>4</Value>
          <Visualization>Mixer and Device</Visualization>
        </Volume>
        <Panning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </Panning>
        <LPhaseInvert>false</LPhaseInvert>
        <RPhaseInvert>false</RPhaseInvert>
        <SmoothParameterChanges>true</SmoothParameterChanges>
      </GainerDevice>
      <BusCompressorDevice type="BusCompressorDevice">
        <IsMaximized>true</IsMaximized>
        <IsSelected>true</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Threshold>
          <Value>-60</Value>
          <Visualization>Device only</Visualization>
        </Threshold>
        <Ratio>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </Ratio>
        <Attack>
          <Value>0.0700035021</Value>
          <Visualization>Device only</Visualization>
        </Attack>
        <Release>
          <Value>0.2225416</Value>
          <Visualization>Device only</Visualization>
        </Release>
        <MakeUp>
          <Value>18</Value>
          <Visualization>Mixer and Device</Visualization>
        </MakeUp>
        <Knee>
          <Value>24</Value>
          <Visualization>Device only</Visualization>
        </Knee>
      </BusCompressorDevice>
      <MaximizerDevice type="MaximizerDevice">
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <InputGain>
          <Value>18</Value>
          <Visualization>Device only</Visualization>
        </InputGain>
        <Threshold>
          <Value>-24</Value>
          <Visualization>Device only</Visualization>
        </Threshold>
        <TransientRelease>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </TransientRelease>
        <LongTermRelease>
          <Value>80</Value>
          <Visualization>Device only</Visualization>
        </LongTermRelease>
        <Ceiling>
          <Value>0.0</Value>
          <Visualization>Mixer and Device</Visualization>
        </Ceiling>
      </MaximizerDevice>
    </Devices>
  </DeviceContainerSlot>
</FilterDeviceContainerClipboard>

Send 2 (MCOMP) Mids

<FilterDeviceContainerClipboard doc_version="0">
  <DeviceContainerSlot type="TrackFilterDeviceChain">
    <SelectedPresetName>Init</SelectedPresetName>
    <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
    <SelectedPresetIsModified>true</SelectedPresetIsModified>
    <Devices>
      <SendTrackMixerDevice type="SendTrackMixerDevice">
        <CustomDeviceName>Mixer</CustomDeviceName>
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>false</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Panning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </Panning>
        <Volume>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </Volume>
        <Surround>
          <Value>0.0</Value>
          <Visualization>Device only</Visualization>
        </Surround>
        <PostPanning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </PostPanning>
        <PostVolume>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </PostVolume>
        <SmoothParameterChanges>true</SmoothParameterChanges>
      </SendTrackMixerDevice>
      <GainerDevice type="GainerDevice">
        <CustomDeviceName>In</CustomDeviceName>
        <IsMaximized>true</IsMaximized>
        <IsSelected>true</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Volume>
          <Value>4</Value>
          <Visualization>Mixer and Device</Visualization>
        </Volume>
        <Panning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </Panning>
        <LPhaseInvert>false</LPhaseInvert>
        <RPhaseInvert>false</RPhaseInvert>
        <SmoothParameterChanges>true</SmoothParameterChanges>
      </GainerDevice>
      <BusCompressorDevice type="BusCompressorDevice">
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Threshold>
          <Value>-60</Value>
          <Visualization>Device only</Visualization>
        </Threshold>
        <Ratio>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </Ratio>
        <Attack>
          <Value>0.0995037109</Value>
          <Visualization>Device only</Visualization>
        </Attack>
        <Release>
          <Value>0.315515101</Value>
          <Visualization>Device only</Visualization>
        </Release>
        <MakeUp>
          <Value>18</Value>
          <Visualization>Mixer and Device</Visualization>
        </MakeUp>
        <Knee>
          <Value>18</Value>
          <Visualization>Device only</Visualization>
        </Knee>
      </BusCompressorDevice>
      <MaximizerDevice type="MaximizerDevice">
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <InputGain>
          <Value>18</Value>
          <Visualization>Device only</Visualization>
        </InputGain>
        <Threshold>
          <Value>-24</Value>
          <Visualization>Device only</Visualization>
        </Threshold>
        <TransientRelease>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </TransientRelease>
        <LongTermRelease>
          <Value>80</Value>
          <Visualization>Device only</Visualization>
        </LongTermRelease>
        <Ceiling>
          <Value>0.0</Value>
          <Visualization>Mixer and Device</Visualization>
        </Ceiling>
      </MaximizerDevice>
    </Devices>
  </DeviceContainerSlot>
</FilterDeviceContainerClipboard>

Send 3 (LCOMP) Highs

<FilterDeviceContainerClipboard doc_version="0">
  <DeviceContainerSlot type="TrackFilterDeviceChain">
    <SelectedPresetName>Init</SelectedPresetName>
    <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
    <SelectedPresetIsModified>true</SelectedPresetIsModified>
    <Devices>
      <SendTrackMixerDevice type="SendTrackMixerDevice">
        <CustomDeviceName>Mixer</CustomDeviceName>
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>false</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Panning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </Panning>
        <Volume>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </Volume>
        <Surround>
          <Value>0.0</Value>
          <Visualization>Device only</Visualization>
        </Surround>
        <PostPanning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </PostPanning>
        <PostVolume>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </PostVolume>
        <SmoothParameterChanges>true</SmoothParameterChanges>
      </SendTrackMixerDevice>
      <GainerDevice type="GainerDevice">
        <CustomDeviceName>In</CustomDeviceName>
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Volume>
          <Value>4</Value>
          <Visualization>Mixer and Device</Visualization>
        </Volume>
        <Panning>
          <Value>0.5</Value>
          <Visualization>Device only</Visualization>
        </Panning>
        <LPhaseInvert>false</LPhaseInvert>
        <RPhaseInvert>false</RPhaseInvert>
        <SmoothParameterChanges>true</SmoothParameterChanges>
      </GainerDevice>
      <BusCompressorDevice type="BusCompressorDevice">
        <IsMaximized>true</IsMaximized>
        <IsSelected>true</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <Threshold>
          <Value>-60</Value>
          <Visualization>Device only</Visualization>
        </Threshold>
        <Ratio>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </Ratio>
        <Attack>
          <Value>0.223394245</Value>
          <Visualization>Device only</Visualization>
        </Attack>
        <Release>
          <Value>0.386748999</Value>
          <Visualization>Device only</Visualization>
        </Release>
        <MakeUp>
          <Value>18</Value>
          <Visualization>Mixer and Device</Visualization>
        </MakeUp>
        <Knee>
          <Value>12</Value>
          <Visualization>Device only</Visualization>
        </Knee>
      </BusCompressorDevice>
      <MaximizerDevice type="MaximizerDevice">
        <IsMaximized>true</IsMaximized>
        <IsSelected>false</IsSelected>
        <SelectedPresetName>Init</SelectedPresetName>
        <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary>
        <SelectedPresetIsModified>true</SelectedPresetIsModified>
        <IsActive>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </IsActive>
        <InputGain>
          <Value>18</Value>
          <Visualization>Device only</Visualization>
        </InputGain>
        <Threshold>
          <Value>-24</Value>
          <Visualization>Device only</Visualization>
        </Threshold>
        <TransientRelease>
          <Value>1.0</Value>
          <Visualization>Device only</Visualization>
        </TransientRelease>
        <LongTermRelease>
          <Value>80</Value>
          <Visualization>Device only</Visualization>
        </LongTermRelease>
        <Ceiling>
          <Value>0.0</Value>
          <Visualization>Mixer and Device</Visualization>
        </Ceiling>
      </MaximizerDevice>
    </Devices>
  </DeviceContainerSlot>
</FilterDeviceContainerClipboard>
1 Like

But take care of parallel routing with a band splitter device. The band splitter device will alter the phase (maybe could be compensated instead?), so I am not sure whether you will get phase cancellation or not, if you use mutliple band splits in parallel. Maybe not, if you use the same band split filter on each device.

1 Like

Yeah it is a known issue. I have evaluated what works and what doesn’t, for example, a band splitter routing to Exciter or Cabinet Sim will create really terrible (and visible on the spectrum) phase issues. So far I have tested this configuration on multiple sources and sounds good. But as you say, problems arise when using multiple band splitters, or worse, different filters. Namely, using this on a kick alone and then on the drum bus where the kick is will totally ruin the kick. This is why I only use this on my major busses or group tracks. Btw, the OTT band split is 120 (or 80?) Hz and 2.5 kHz.

1 Like

Thanks for sharing these details! But so far, isn’t it more easy then to use the free OTT vst simply?

1 Like

You are welcome! Maybe, but Renoise has a lot of linux users, and as far as I know xfer OTT is not available for them, and making it native can offer some advantages like setting the gain for each band in each group, and further enhancements in each send like distortion, etc… As well, there are some disadvantages; this is not upward compression and will never be, and the level of compression depends directly on the level being sent to each send track (this is why there is a maximizer set to -24 dB) but that can be good because low mixing levels will make room for more compression.

Cheers! :slight_smile:

2 Likes

That’s true, and it isn’t bad to know a native only way either. I think it might be actually possible to do upwards compression using the signal follower+gain?

I’ve just experimented with signal follower -> Logic -> Gainer.

I managed to make a nice preset, you can controll compression with an LFO Curve!! It can also upwards compress, just set up the curve properly!!!

Its not perfect though. Attack/Decay only work for boost/cut movements, not engage/disengange what would sound proper. Also levels are wonky, and sometimes there can push through ugly peaks…

So use it with care, it is highly experimental. Better use a maximizer in the end to manage the peaks…

SigFnDynamics.xrdp (22.3 KB)

2 Likes

That’s a nice try! I wonder though if it is really upwards compression? EDIT: Oh neat, I have drawn this now:
image

This is just like Melda Dynamics free draw, very nice. Works here better with this curve in the signal follower:
image
So I have more space for the quieter area.

Here another try:
ffx upwards test.xrdp (14.7 KB)

1 Like

Yeah you got it right…a straight diagonal line from lower left to upper right corner is neutral, any parts below it will result in gain reduction for that range, parts above it will result in boosting.

I think I’ll try to give the beast some more love, better “curves” for attack/release, and I already have some kind of freaky idea brewing in my head how I could make proper attack/release work. Also I will have to look into balancing the signal follower settings…

I don’t really know how far this could be pushed, though. Also its nature to sometimes generate ugly peaks when boosting will have to be revisited, I guess it is a dealbreaker for serious usage of the thing.

1 Like

This is great! I wish I knew how to program formulas tho :sweat_smile: