New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inexplicable loss of output in lsp-plugins-mb-compressor-stereo and lsp-plugins-limiter-stereo #71
Comments
First of all, thank you for testing the devel branch. Anyway, I wouldn't recommend to use it as a regular build. Could you try to build from current devel branch and reproduce the case? |
Also, please share your '~/.config/lsp-plugins/lsp-plugins-mbc8.cfg' settings. |
Could not reproduce limiter issues. Can you describe exactly your audio chain? Does limiter ONLY (isolated from the chain) allow to reproduce the problem? |
Thank you for making the fanciest audio tools on Linux. Have you looked at the link to pipewire issue with details of the setup ?
To reproduce compressor SNAFU:
Here's lsp-plugins-mbc8.cfg
#-------------------------------------------------------------------------------
#
# This file contains configuration of the audio plugin.
# Plugin name: Multi-band Kompressor Stereo x8 (Multiband Compressor Stereo x8)
# Plugin version: 1.0.1
# LV2 URI: http://lsp-plug.in/plugins/lv2/mb_compressor_stereo
# VST identifier: gjsn
# LADSPA identifier: 5002135
#
# (C) Linux Studio Plugins Project
# http://lsp-plug.in/
#
#-------------------------------------------------------------------------------
# Bypass [boolean]: true/false
bypass = false
# Compressor mode: 0..1
# 0: Classic
# 1: Modern
mode = 1
# Input gain [G]: 0.000000..10.000000
g_in = 1.000000
# Output gain [G]: 0.000000..10.000000
g_out = 1.000000
# Dry gain [G]: 0.000000..10.000000
g_dry = 0.000000
# Wet gain [G]: 0.000000..10.000000
g_wet = 1.000000
# FFT reactivity [ms]: 0.000000..1.000000
react = 0.200000
# Shift gain [G]: 0.000000..100.000000
shift = 1.000000
# Graph zoom [G]: 0.125890..1.000000
zoom = 1.000000
# Envelope boost: 0..4
# 0: None
# 1: Pink BT
# 2: Pink MT
# 3: Brown BT
# 4: Brown MT
envb = 2
# Band selection: 0..8
# 0: Split
# 1: Band 0
# 2: Band 1
# 3: Band 2
# 4: Band 3
# 5: Band 4
# 6: Band 5
# 7: Band 6
# 8: Band 7
bsel = 0
# Band filter curves [boolean]: true/false
flt = true
# Input FFT graph enable Left [boolean]: true/false
ife_l = true
# Output FFT graph enable Left [boolean]: true/false
ofe_l = true
# Input FFT graph enable Right [boolean]: true/false
ife_r = true
# Output FFT graph enable Right [boolean]: true/false
ofe_r = true
# Compression band enable 1 [boolean]: true/false
cbe_1 = false
# Split frequency 1 [Hz]: 20.000000..20000.000000
sf_1 = 50.000000
# Compression band enable 2 [boolean]: true/false
cbe_2 = true
# Split frequency 2 [Hz]: 20.000000..20000.000000
sf_2 = 115.000000
# Compression band enable 3 [boolean]: true/false
cbe_3 = false
# Split frequency 3 [Hz]: 20.000000..20000.000000
sf_3 = 330.000000
# Compression band enable 4 [boolean]: true/false
cbe_4 = true
# Split frequency 4 [Hz]: 20.000000..20000.000000
sf_4 = 650.000000
# Compression band enable 5 [boolean]: true/false
cbe_5 = false
# Split frequency 5 [Hz]: 20.000000..20000.000000
sf_5 = 1587.000000
# Compression band enable 6 [boolean]: true/false
cbe_6 = true
# Split frequency 6 [Hz]: 20.000000..20000.000000
sf_6 = 3675.000000
# Compression band enable 7 [boolean]: true/false
cbe_7 = false
# Split frequency 7 [Hz]: 20.000000..20000.000000
sf_7 = 8000.000000
# Sidechain source 0: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_0 = 0
# Sidechain mode 0: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_0 = 3
# Sidechain lookahead 0 [ms]: 0.000000..20.000000
sla_0 = 8.000000
# Sidechain reactivity 0 [ms]: 0.000000..250.000000
scr_0 = 2.000000
# Sidechain preamp 0 [G]: 0.000000..100.000000
scp_0 = 1.000000
# Sidechain custom lo-cut 0 [boolean]: true/false
sclc_0 = false
# Sidechain custom hi-cut 0 [boolean]: true/false
schc_0 = false
# Sidechain lo-cut frequency 0 [Hz]: 20.000000..20000.000000
sclf_0 = 20.000000
# Sidechain hi-cut frequency 0 [Hz]: 20.000000..20000.000000
schf_0 = 40.000000
# Compression mode 0: 0..1
# 0: Down
# 1: Up
cm_0 = 1
# Compressor enable 0 [boolean]: true/false
ce_0 = true
# Solo band 0 [boolean]: true/false
bs_0 = false
# Mute band 0 [boolean]: true/false
bm_0 = false
# Attack level 0 [G]: 0.001000..1.000000
al_0 = 1.000000
# Attack time 0 [ms]: 0.000000..2000.000000
at_0 = 8.000000
# Relative release level 0 [G]: 0.000000..63.095749
rrl_0 = 0.001000
# Release time 0 [ms]: 0.000000..5000.000000
rt_0 = 512.000000
# Ratio 0: 1.000000..100.000000
cr_0 = 1.360000
# Knee 0 [G]: 0.063100..1.000000
kn_0 = 0.063100
# Makeup gain 0 [G]: 0.001000..1000.000000
mk_0 = 0.707946
# Hue 0: 0.000000..1.000000
hue_0 = 0.000000
# Sidechain source 1: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_1 = 0
# Sidechain mode 1: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_1 = 3
# Sidechain lookahead 1 [ms]: 0.000000..20.000000
sla_1 = 8.000000
# Sidechain reactivity 1 [ms]: 0.000000..250.000000
scr_1 = 2.000000
# Sidechain preamp 1 [G]: 0.000000..100.000000
scp_1 = 1.000000
# Sidechain custom lo-cut 1 [boolean]: true/false
sclc_1 = false
# Sidechain custom hi-cut 1 [boolean]: true/false
schc_1 = false
# Sidechain lo-cut frequency 1 [Hz]: 20.000000..20000.000000
sclf_1 = 40.000000
# Sidechain hi-cut frequency 1 [Hz]: 20.000000..20000.000000
schf_1 = 100.000000
# Compression mode 1: 0..1
# 0: Down
# 1: Up
cm_1 = 1
# Compressor enable 1 [boolean]: true/false
ce_1 = true
# Solo band 1 [boolean]: true/false
bs_1 = false
# Mute band 1 [boolean]: true/false
bm_1 = false
# Attack level 1 [G]: 0.001000..1.000000
al_1 = 1.000000
# Attack time 1 [ms]: 0.000000..2000.000000
at_1 = 8.000000
# Relative release level 1 [G]: 0.000000..63.095749
rrl_1 = 0.001000
# Release time 1 [ms]: 0.000000..5000.000000
rt_1 = 448.000000
# Ratio 1: 1.000000..100.000000
cr_1 = 1.360000
# Knee 1 [G]: 0.063100..1.000000
kn_1 = 0.063100
# Makeup gain 1 [G]: 0.001000..1000.000000
mk_1 = 0.707946
# Hue 1: 0.000000..1.000000
hue_1 = 0.125000
# Sidechain source 2: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_2 = 0
# Sidechain mode 2: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_2 = 3
# Sidechain lookahead 2 [ms]: 0.000000..20.000000
sla_2 = 8.000000
# Sidechain reactivity 2 [ms]: 0.000000..250.000000
scr_2 = 2.000000
# Sidechain preamp 2 [G]: 0.000000..100.000000
scp_2 = 1.000000
# Sidechain custom lo-cut 2 [boolean]: true/false
sclc_2 = false
# Sidechain custom hi-cut 2 [boolean]: true/false
schc_2 = false
# Sidechain lo-cut frequency 2 [Hz]: 20.000000..20000.000000
sclf_2 = 100.000000
# Sidechain hi-cut frequency 2 [Hz]: 20.000000..20000.000000
schf_2 = 252.000000
# Compression mode 2: 0..1
# 0: Down
# 1: Up
cm_2 = 1
# Compressor enable 2 [boolean]: true/false
ce_2 = true
# Solo band 2 [boolean]: true/false
bs_2 = false
# Mute band 2 [boolean]: true/false
bm_2 = false
# Attack level 2 [G]: 0.001000..1.000000
al_2 = 1.000000
# Attack time 2 [ms]: 0.000000..2000.000000
at_2 = 8.000000
# Relative release level 2 [G]: 0.000000..63.095749
rrl_2 = 0.001000
# Release time 2 [ms]: 0.000000..5000.000000
rt_2 = 384.000000
# Ratio 2: 1.000000..100.000000
cr_2 = 1.360000
# Knee 2 [G]: 0.063100..1.000000
kn_2 = 0.063100
# Makeup gain 2 [G]: 0.001000..1000.000000
mk_2 = 0.707946
# Hue 2: 0.000000..1.000000
hue_2 = 0.250000
# Sidechain source 3: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_3 = 0
# Sidechain mode 3: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_3 = 3
# Sidechain lookahead 3 [ms]: 0.000000..20.000000
sla_3 = 8.000000
# Sidechain reactivity 3 [ms]: 0.000000..250.000000
scr_3 = 2.000000
# Sidechain preamp 3 [G]: 0.000000..100.000000
scp_3 = 1.000000
# Sidechain custom lo-cut 3 [boolean]: true/false
sclc_3 = false
# Sidechain custom hi-cut 3 [boolean]: true/false
schc_3 = false
# Sidechain lo-cut frequency 3 [Hz]: 20.000000..20000.000000
sclf_3 = 252.000000
# Sidechain hi-cut frequency 3 [Hz]: 20.000000..20000.000000
schf_3 = 632.000000
# Compression mode 3: 0..1
# 0: Down
# 1: Up
cm_3 = 1
# Compressor enable 3 [boolean]: true/false
ce_3 = true
# Solo band 3 [boolean]: true/false
bs_3 = false
# Mute band 3 [boolean]: true/false
bm_3 = false
# Attack level 3 [G]: 0.001000..1.000000
al_3 = 1.000000
# Attack time 3 [ms]: 0.000000..2000.000000
at_3 = 8.000000
# Relative release level 3 [G]: 0.000000..63.095749
rrl_3 = 0.001000
# Release time 3 [ms]: 0.000000..5000.000000
rt_3 = 320.000000
# Ratio 3: 1.000000..100.000000
cr_3 = 1.360000
# Knee 3 [G]: 0.063100..1.000000
kn_3 = 0.063100
# Makeup gain 3 [G]: 0.001000..1000.000000
mk_3 = 0.707946
# Hue 3: 0.000000..1.000000
hue_3 = 0.375000
# Sidechain source 4: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_4 = 0
# Sidechain mode 4: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_4 = 3
# Sidechain lookahead 4 [ms]: 0.000000..20.000000
sla_4 = 8.000000
# Sidechain reactivity 4 [ms]: 0.000000..250.000000
scr_4 = 2.000000
# Sidechain preamp 4 [G]: 0.000000..100.000000
scp_4 = 1.000000
# Sidechain custom lo-cut 4 [boolean]: true/false
sclc_4 = false
# Sidechain custom hi-cut 4 [boolean]: true/false
schc_4 = false
# Sidechain lo-cut frequency 4 [Hz]: 20.000000..20000.000000
sclf_4 = 632.000000
# Sidechain hi-cut frequency 4 [Hz]: 20.000000..20000.000000
schf_4 = 1587.000000
# Compression mode 4: 0..1
# 0: Down
# 1: Up
cm_4 = 1
# Compressor enable 4 [boolean]: true/false
ce_4 = true
# Solo band 4 [boolean]: true/false
bs_4 = false
# Mute band 4 [boolean]: true/false
bm_4 = false
# Attack level 4 [G]: 0.001000..1.000000
al_4 = 1.000000
# Attack time 4 [ms]: 0.000000..2000.000000
at_4 = 8.000000
# Relative release level 4 [G]: 0.000000..63.095749
rrl_4 = 0.001000
# Release time 4 [ms]: 0.000000..5000.000000
rt_4 = 256.000000
# Ratio 4: 1.000000..100.000000
cr_4 = 1.360000
# Knee 4 [G]: 0.063100..1.000000
kn_4 = 0.063100
# Makeup gain 4 [G]: 0.001000..1000.000000
mk_4 = 0.707946
# Hue 4: 0.000000..1.000000
hue_4 = 0.500000
# Sidechain source 5: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_5 = 0
# Sidechain mode 5: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_5 = 3
# Sidechain lookahead 5 [ms]: 0.000000..20.000000
sla_5 = 8.000000
# Sidechain reactivity 5 [ms]: 0.000000..250.000000
scr_5 = 2.000000
# Sidechain preamp 5 [G]: 0.000000..100.000000
scp_5 = 1.000000
# Sidechain custom lo-cut 5 [boolean]: true/false
sclc_5 = false
# Sidechain custom hi-cut 5 [boolean]: true/false
schc_5 = false
# Sidechain lo-cut frequency 5 [Hz]: 20.000000..20000.000000
sclf_5 = 1587.000000
# Sidechain hi-cut frequency 5 [Hz]: 20.000000..20000.000000
schf_5 = 3984.000000
# Compression mode 5: 0..1
# 0: Down
# 1: Up
cm_5 = 1
# Compressor enable 5 [boolean]: true/false
ce_5 = true
# Solo band 5 [boolean]: true/false
bs_5 = false
# Mute band 5 [boolean]: true/false
bm_5 = false
# Attack level 5 [G]: 0.001000..1.000000
al_5 = 1.000000
# Attack time 5 [ms]: 0.000000..2000.000000
at_5 = 8.000000
# Relative release level 5 [G]: 0.000000..63.095749
rrl_5 = 0.001000
# Release time 5 [ms]: 0.000000..5000.000000
rt_5 = 192.000000
# Ratio 5: 1.000000..100.000000
cr_5 = 1.360000
# Knee 5 [G]: 0.063100..1.000000
kn_5 = 0.063100
# Makeup gain 5 [G]: 0.001000..1000.000000
mk_5 = 0.707946
# Hue 5: 0.000000..1.000000
hue_5 = 0.625000
# Sidechain source 6: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_6 = 0
# Sidechain mode 6: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_6 = 3
# Sidechain lookahead 6 [ms]: 0.000000..20.000000
sla_6 = 8.000000
# Sidechain reactivity 6 [ms]: 0.000000..250.000000
scr_6 = 2.000000
# Sidechain preamp 6 [G]: 0.000000..100.000000
scp_6 = 1.000000
# Sidechain custom lo-cut 6 [boolean]: true/false
sclc_6 = false
# Sidechain custom hi-cut 6 [boolean]: true/false
schc_6 = false
# Sidechain lo-cut frequency 6 [Hz]: 20.000000..20000.000000
sclf_6 = 3984.000000
# Sidechain hi-cut frequency 6 [Hz]: 20.000000..20000.000000
schf_6 = 10000.000000
# Compression mode 6: 0..1
# 0: Down
# 1: Up
cm_6 = 1
# Compressor enable 6 [boolean]: true/false
ce_6 = true
# Solo band 6 [boolean]: true/false
bs_6 = false
# Mute band 6 [boolean]: true/false
bm_6 = false
# Attack level 6 [G]: 0.001000..1.000000
al_6 = 1.000000
# Attack time 6 [ms]: 0.000000..2000.000000
at_6 = 8.000000
# Relative release level 6 [G]: 0.000000..63.095749
rrl_6 = 0.001000
# Release time 6 [ms]: 0.000000..5000.000000
rt_6 = 128.000000
# Ratio 6: 1.000000..100.000000
cr_6 = 1.360000
# Knee 6 [G]: 0.063100..1.000000
kn_6 = 0.063100
# Makeup gain 6 [G]: 0.001000..1000.000000
mk_6 = 0.707946
# Hue 6: 0.000000..1.000000
hue_6 = 0.750000
# Sidechain source 7: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_7 = 0
# Sidechain mode 7: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_7 = 3
# Sidechain lookahead 7 [ms]: 0.000000..20.000000
sla_7 = 8.000000
# Sidechain reactivity 7 [ms]: 0.000000..250.000000
scr_7 = 2.000000
# Sidechain preamp 7 [G]: 0.000000..100.000000
scp_7 = 1.000000
# Sidechain custom lo-cut 7 [boolean]: true/false
sclc_7 = false
# Sidechain custom hi-cut 7 [boolean]: true/false
schc_7 = false
# Sidechain lo-cut frequency 7 [Hz]: 20.000000..20000.000000
sclf_7 = 10000.000000
# Sidechain hi-cut frequency 7 [Hz]: 20.000000..20000.000000
schf_7 = 20000.000000
# Compression mode 7: 0..1
# 0: Down
# 1: Up
cm_7 = 1
# Compressor enable 7 [boolean]: true/false
ce_7 = true
# Solo band 7 [boolean]: true/false
bs_7 = false
# Mute band 7 [boolean]: true/false
bm_7 = false
# Attack level 7 [G]: 0.001000..1.000000
al_7 = 1.000000
# Attack time 7 [ms]: 0.000000..2000.000000
at_7 = 8.000000
# Relative release level 7 [G]: 0.000000..63.095749
rrl_7 = 0.001000
# Release time 7 [ms]: 0.000000..5000.000000
rt_7 = 64.000000
# Ratio 7: 1.000000..100.000000
cr_7 = 1.360000
# Knee 7 [G]: 0.063100..1.000000
kn_7 = 0.063100
# Makeup gain 7 [G]: 0.001000..1000.000000
mk_7 = 0.707946
# Hue 7: 0.000000..1.000000
hue_7 = 0.875000
#------------------------------------------------------------------------------- To reproduce limiter SNAFU:
Pushing audio directly from strawberry in native JACK mode to limiter and into system output also triggered the issue but I had to wiggle "Threshold" a few times, it did not go nuts immediately. But even when there is output, sound quality is screechy and muffled when "Gain" is anything but 0. Like it's a pure overload and not limiting, in comparison to CLM's output which is nice and clear. Here's its config from calfjackhost session file:
<?xml version="1.1" encoding="utf-8"?>
<rack>
<plugin type="multibandlimiter" instance-name="multiband limiter" input-index="17" output-index="17">
<preset bank="0" program="0" plugin="multibandlimiter" name="">
<param name="bypass" value="0" />
<param name="level_in" value="1" />
<param name="level_out" value="0.998849" />
<param name="meter_inL" value="0" />
<param name="meter_inR" value="0" />
<param name="meter_outL" value="0" />
<param name="meter_outR" value="0" />
<param name="clip_inL" value="0" />
<param name="clip_inR" value="0" />
<param name="clip_outL" value="0" />
<param name="clip_outR" value="0" />
<param name="freq0" value="115" />
<param name="freq1" value="650" />
<param name="freq2" value="3675" />
<param name="mode" value="1" />
<param name="limit" value="0.630957" />
<param name="attack" value="1" />
<param name="release" value="256" />
<param name="minrel" value="1" />
<param name="att0" value="1" />
<param name="att1" value="1" />
<param name="att2" value="1" />
<param name="att3" value="1" />
<param name="weight0" value="0.15" />
<param name="weight1" value="0.1" />
<param name="weight2" value="-0.25" />
<param name="weight3" value="0.25" />
<param name="release0" value="0.5" />
<param name="release1" value="0.2" />
<param name="release2" value="-0.2" />
<param name="release3" value="-0.5" />
<param name="solo0" value="0" />
<param name="solo1" value="0" />
<param name="solo2" value="0" />
<param name="solo3" value="0" />
<param name="effrelease0" value="512" />
<param name="effrelease1" value="337.794" />
<param name="effrelease2" value="194.012" />
<param name="effrelease3" value="128" />
<param name="asc" value="1" />
<param name="asc_led" value="0" />
<param name="asc_coeff" value="1" />
<param name="oversampling" value="2" />
<param name="auto_level" value="1" />
</preset>
</plugin>
</rack> |
In devel branch, there was a set of fixes around bypass button and also have been done set of optimizations for AVX/AVX2 instruction set. OK, seems that I've reproduced the limiter issue. Will look what's going wrong. |
Created branch github-issue-71 |
This commit should probably fix the limiter issue: Please try to build from the github-issue-71 branch.
I wouldn't suggest to use Classic mode for the compressor except special case. In this mode, the limiter works as a peak compressor with very small attack and release settings. So it's not a surprise that you hear some sort of clipping. Anyway, I'll check the code again. Maybe somewhere I've missed something. |
Thanks for looking into that ! Indeed, limiter does not seem to be self-muting itself… sound quality is still terrible regardless of settings, unfortunately, so I'll have to stay on Calf :( Not sure if it's something in my setup or not but it doesn't look like it.
There are seem to be some subtle audible differences in different modes of the limiter but they all still sound really-really violently wrong in comparison to CML. In compressor Classic mode seem to multiply its load, so I get x-run storm with multiple skips every second. There seem to be no change in compressor's behaviour, it still start weirdly self-muted when started with autoloading config and requires switching bands on/off to get persuaded to work. |
Additional commit that updates behaviour of limiter in Classic mode (and mixed modes, too). But now it's not a brick-wall limiter.
I think this is a sort of taste. I'm always using LSP limiter for mixing purposes and it behaves much better in tasks where short peaks should be eliminated. I discarded to use single-band Calf limiter there since it couldn't pump enough loudness and sounded dull and blured, especially for 180+ bpm heavy metal music. So probably yes, there are tasks for which this limiter is not good. |
Tried github-issue-71-1 branch. Still seems quite distorted, unfortunately. "Mixed Herm" sounds clean in comparison to Classic but still not great. Compressor is still misbehaving with self-muting and pops, it's impossible to see what's going on beyond -60db signal and -24db gain boundaries. But now its indicator goes of its "rails", like this: In this config#-------------------------------------------------------------------------------
#
# This file contains configuration of the audio plugin.
# Plugin name: Multi-band Kompressor Stereo x8 (Multiband Compressor Stereo x8)
# Plugin version: 1.0.1
# LV2 URI: http://lsp-plug.in/plugins/lv2/mb_compressor_stereo
# VST identifier: gjsn
# LADSPA identifier: 5002135
#
# (C) Linux Studio Plugins Project
# http://lsp-plug.in/
#
#-------------------------------------------------------------------------------
# Compressor mode: 0..1
# 0: Classic
# 1: Modern
mode = 1
# Input gain [G]: 0.000000..10.000000
g_in = 1.000000
# Output gain [G]: 0.000000..10.000000
g_out = 1.000000
# Dry gain [G]: 0.000000..10.000000
g_dry = 0.000000
# Wet gain [G]: 0.000000..10.000000
g_wet = 1.000000
# FFT reactivity [ms]: 0.000000..1.000000
react = 0.250000
# Shift gain [G]: 0.000000..100.000000
shift = 1.000000
# Graph zoom [G]: 0.125890..1.000000
zoom = 1.000000
# Envelope boost: 0..4
# 0: None
# 1: Pink BT
# 2: Pink MT
# 3: Brown BT
# 4: Brown MT
envb = 2
# Band selection: 0..8
# 0: Split
# 1: Band 0
# 2: Band 1
# 3: Band 2
# 4: Band 3
# 5: Band 4
# 6: Band 5
# 7: Band 6
# 8: Band 7
bsel = 0
# Band filter curves [boolean]: true/false
flt = true
# Input FFT graph enable Left [boolean]: true/false
ife_l = true
# Output FFT graph enable Left [boolean]: true/false
ofe_l = true
# Input FFT graph enable Right [boolean]: true/false
ife_r = true
# Output FFT graph enable Right [boolean]: true/false
ofe_r = true
# Compression band enable 1 [boolean]: true/false
cbe_1 = true
# Split frequency 1 [Hz]: 20.000000..20000.000000
sf_1 = 55.000000
# Compression band enable 2 [boolean]: true/false
cbe_2 = true
# Split frequency 2 [Hz]: 20.000000..20000.000000
sf_2 = 110.000000
# Compression band enable 3 [boolean]: true/false
cbe_3 = true
# Split frequency 3 [Hz]: 20.000000..20000.000000
sf_3 = 220.000000
# Compression band enable 4 [boolean]: true/false
cbe_4 = true
# Split frequency 4 [Hz]: 20.000000..20000.000000
sf_4 = 440.000000
# Compression band enable 5 [boolean]: true/false
cbe_5 = true
# Split frequency 5 [Hz]: 20.000000..20000.000000
sf_5 = 880.000000
# Compression band enable 6 [boolean]: true/false
cbe_6 = true
# Split frequency 6 [Hz]: 20.000000..20000.000000
sf_6 = 1760.000000
# Compression band enable 7 [boolean]: true/false
cbe_7 = true
# Split frequency 7 [Hz]: 20.000000..20000.000000
sf_7 = 7040.000000
# Sidechain source 0: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_0 = 0
# Sidechain mode 0: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_0 = 3
# Sidechain lookahead 0 [ms]: 0.000000..20.000000
sla_0 = 4.000000
# Sidechain reactivity 0 [ms]: 0.000000..250.000000
scr_0 = 128.000000
# Sidechain preamp 0 [G]: 0.000000..100.000000
scp_0 = 1.000000
# Sidechain custom lo-cut 0 [boolean]: true/false
sclc_0 = false
# Sidechain custom hi-cut 0 [boolean]: true/false
schc_0 = false
# Sidechain lo-cut frequency 0 [Hz]: 20.000000..20000.000000
sclf_0 = 20.000000
# Sidechain hi-cut frequency 0 [Hz]: 20.000000..20000.000000
schf_0 = 40.000000
# Compression mode 0: 0..1
# 0: Down
# 1: Up
cm_0 = 1
# Compressor enable 0 [boolean]: true/false
ce_0 = true
# Solo band 0 [boolean]: true/false
bs_0 = false
# Mute band 0 [boolean]: true/false
bm_0 = false
# Attack level 0 [G]: 0.001000..1.000000
al_0 = 0.125893
# Attack time 0 [ms]: 0.000000..2000.000000
at_0 = 4.000000
# Relative release level 0 [G]: 0.000000..63.095749
rrl_0 = 0.000000
# Release time 0 [ms]: 0.000000..5000.000000
rt_0 = 256.000000
# Ratio 0: 1.000000..100.000000
cr_0 = 1.480000
# Knee 0 [G]: 0.063100..1.000000
kn_0 = 0.063100
# Makeup gain 0 [G]: 0.001000..1000.000000
mk_0 = 1.000000
# Hue 0: 0.000000..1.000000
hue_0 = 0.000000
# Sidechain source 1: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_1 = 0
# Sidechain mode 1: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_1 = 3
# Sidechain lookahead 1 [ms]: 0.000000..20.000000
sla_1 = 4.000000
# Sidechain reactivity 1 [ms]: 0.000000..250.000000
scr_1 = 96.000000
# Sidechain preamp 1 [G]: 0.000000..100.000000
scp_1 = 1.000000
# Sidechain custom lo-cut 1 [boolean]: true/false
sclc_1 = false
# Sidechain custom hi-cut 1 [boolean]: true/false
schc_1 = false
# Sidechain lo-cut frequency 1 [Hz]: 20.000000..20000.000000
sclf_1 = 40.000000
# Sidechain hi-cut frequency 1 [Hz]: 20.000000..20000.000000
schf_1 = 100.000000
# Compression mode 1: 0..1
# 0: Down
# 1: Up
cm_1 = 1
# Compressor enable 1 [boolean]: true/false
ce_1 = true
# Solo band 1 [boolean]: true/false
bs_1 = false
# Mute band 1 [boolean]: true/false
bm_1 = false
# Attack level 1 [G]: 0.001000..1.000000
al_1 = 0.125893
# Attack time 1 [ms]: 0.000000..2000.000000
at_1 = 3.500000
# Relative release level 1 [G]: 0.000000..63.095749
rrl_1 = 0.000000
# Release time 1 [ms]: 0.000000..5000.000000
rt_1 = 128.000000
# Ratio 1: 1.000000..100.000000
cr_1 = 1.480000
# Knee 1 [G]: 0.063100..1.000000
kn_1 = 0.063100
# Makeup gain 1 [G]: 0.001000..1000.000000
mk_1 = 1.000000
# Hue 1: 0.000000..1.000000
hue_1 = 0.125000
# Sidechain source 2: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_2 = 0
# Sidechain mode 2: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_2 = 3
# Sidechain lookahead 2 [ms]: 0.000000..20.000000
sla_2 = 4.000000
# Sidechain reactivity 2 [ms]: 0.000000..250.000000
scr_2 = 64.000000
# Sidechain preamp 2 [G]: 0.000000..100.000000
scp_2 = 1.000000
# Sidechain custom lo-cut 2 [boolean]: true/false
sclc_2 = false
# Sidechain custom hi-cut 2 [boolean]: true/false
schc_2 = false
# Sidechain lo-cut frequency 2 [Hz]: 20.000000..20000.000000
sclf_2 = 100.000000
# Sidechain hi-cut frequency 2 [Hz]: 20.000000..20000.000000
schf_2 = 252.000000
# Compression mode 2: 0..1
# 0: Down
# 1: Up
cm_2 = 1
# Compressor enable 2 [boolean]: true/false
ce_2 = true
# Solo band 2 [boolean]: true/false
bs_2 = false
# Mute band 2 [boolean]: true/false
bm_2 = false
# Attack level 2 [G]: 0.001000..1.000000
al_2 = 0.125893
# Attack time 2 [ms]: 0.000000..2000.000000
at_2 = 3.000000
# Relative release level 2 [G]: 0.000000..63.095749
rrl_2 = 0.000000
# Release time 2 [ms]: 0.000000..5000.000000
rt_2 = 64.000000
# Ratio 2: 1.000000..100.000000
cr_2 = 1.480000
# Knee 2 [G]: 0.063100..1.000000
kn_2 = 0.063100
# Makeup gain 2 [G]: 0.001000..1000.000000
mk_2 = 1.000000
# Hue 2: 0.000000..1.000000
hue_2 = 0.250000
# Sidechain source 3: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_3 = 0
# Sidechain mode 3: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_3 = 3
# Sidechain lookahead 3 [ms]: 0.000000..20.000000
sla_3 = 4.000000
# Sidechain reactivity 3 [ms]: 0.000000..250.000000
scr_3 = 48.000000
# Sidechain preamp 3 [G]: 0.000000..100.000000
scp_3 = 1.000000
# Sidechain custom lo-cut 3 [boolean]: true/false
sclc_3 = false
# Sidechain custom hi-cut 3 [boolean]: true/false
schc_3 = false
# Sidechain lo-cut frequency 3 [Hz]: 20.000000..20000.000000
sclf_3 = 252.000000
# Sidechain hi-cut frequency 3 [Hz]: 20.000000..20000.000000
schf_3 = 632.000000
# Compression mode 3: 0..1
# 0: Down
# 1: Up
cm_3 = 1
# Compressor enable 3 [boolean]: true/false
ce_3 = true
# Solo band 3 [boolean]: true/false
bs_3 = false
# Mute band 3 [boolean]: true/false
bm_3 = false
# Attack level 3 [G]: 0.001000..1.000000
al_3 = 0.125893
# Attack time 3 [ms]: 0.000000..2000.000000
at_3 = 2.500000
# Relative release level 3 [G]: 0.000000..63.095749
rrl_3 = 0.000000
# Release time 3 [ms]: 0.000000..5000.000000
rt_3 = 32.000000
# Ratio 3: 1.000000..100.000000
cr_3 = 1.480000
# Knee 3 [G]: 0.063100..1.000000
kn_3 = 0.063100
# Makeup gain 3 [G]: 0.001000..1000.000000
mk_3 = 1.000000
# Hue 3: 0.000000..1.000000
hue_3 = 0.375000
# Sidechain source 4: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_4 = 0
# Sidechain mode 4: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_4 = 3
# Sidechain lookahead 4 [ms]: 0.000000..20.000000
sla_4 = 4.000000
# Sidechain reactivity 4 [ms]: 0.000000..250.000000
scr_4 = 32.000000
# Sidechain preamp 4 [G]: 0.000000..100.000000
scp_4 = 1.000000
# Sidechain custom lo-cut 4 [boolean]: true/false
sclc_4 = false
# Sidechain custom hi-cut 4 [boolean]: true/false
schc_4 = false
# Sidechain lo-cut frequency 4 [Hz]: 20.000000..20000.000000
sclf_4 = 632.000000
# Sidechain hi-cut frequency 4 [Hz]: 20.000000..20000.000000
schf_4 = 1587.000000
# Compression mode 4: 0..1
# 0: Down
# 1: Up
cm_4 = 1
# Compressor enable 4 [boolean]: true/false
ce_4 = true
# Solo band 4 [boolean]: true/false
bs_4 = false
# Mute band 4 [boolean]: true/false
bm_4 = false
# Attack level 4 [G]: 0.001000..1.000000
al_4 = 0.125893
# Attack time 4 [ms]: 0.000000..2000.000000
at_4 = 2.000000
# Relative release level 4 [G]: 0.000000..63.095749
rrl_4 = 0.000000
# Release time 4 [ms]: 0.000000..5000.000000
rt_4 = 16.000000
# Ratio 4: 1.000000..100.000000
cr_4 = 1.480000
# Knee 4 [G]: 0.063100..1.000000
kn_4 = 0.063100
# Makeup gain 4 [G]: 0.001000..1000.000000
mk_4 = 1.000000
# Hue 4: 0.000000..1.000000
hue_4 = 0.500000
# Sidechain source 5: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_5 = 0
# Sidechain mode 5: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_5 = 3
# Sidechain lookahead 5 [ms]: 0.000000..20.000000
sla_5 = 4.000000
# Sidechain reactivity 5 [ms]: 0.000000..250.000000
scr_5 = 24.000000
# Sidechain preamp 5 [G]: 0.000000..100.000000
scp_5 = 1.000000
# Sidechain custom lo-cut 5 [boolean]: true/false
sclc_5 = false
# Sidechain custom hi-cut 5 [boolean]: true/false
schc_5 = false
# Sidechain lo-cut frequency 5 [Hz]: 20.000000..20000.000000
sclf_5 = 1587.000000
# Sidechain hi-cut frequency 5 [Hz]: 20.000000..20000.000000
schf_5 = 3984.000000
# Compression mode 5: 0..1
# 0: Down
# 1: Up
cm_5 = 1
# Compressor enable 5 [boolean]: true/false
ce_5 = true
# Solo band 5 [boolean]: true/false
bs_5 = false
# Mute band 5 [boolean]: true/false
bm_5 = false
# Attack level 5 [G]: 0.001000..1.000000
al_5 = 0.125893
# Attack time 5 [ms]: 0.000000..2000.000000
at_5 = 1.500000
# Relative release level 5 [G]: 0.000000..63.095749
rrl_5 = 0.000000
# Release time 5 [ms]: 0.000000..5000.000000
rt_5 = 8.000000
# Ratio 5: 1.000000..100.000000
cr_5 = 1.480000
# Knee 5 [G]: 0.063100..1.000000
kn_5 = 0.063100
# Makeup gain 5 [G]: 0.001000..1000.000000
mk_5 = 1.000000
# Hue 5: 0.000000..1.000000
hue_5 = 0.625000
# Sidechain source 6: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_6 = 0
# Sidechain mode 6: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_6 = 3
# Sidechain lookahead 6 [ms]: 0.000000..20.000000
sla_6 = 4.000000
# Sidechain reactivity 6 [ms]: 0.000000..250.000000
scr_6 = 16.000000
# Sidechain preamp 6 [G]: 0.000000..100.000000
scp_6 = 1.000000
# Sidechain custom lo-cut 6 [boolean]: true/false
sclc_6 = false
# Sidechain custom hi-cut 6 [boolean]: true/false
schc_6 = false
# Sidechain lo-cut frequency 6 [Hz]: 20.000000..20000.000000
sclf_6 = 3984.000000
# Sidechain hi-cut frequency 6 [Hz]: 20.000000..20000.000000
schf_6 = 10000.000000
# Compression mode 6: 0..1
# 0: Down
# 1: Up
cm_6 = 1
# Compressor enable 6 [boolean]: true/false
ce_6 = true
# Solo band 6 [boolean]: true/false
bs_6 = false
# Mute band 6 [boolean]: true/false
bm_6 = false
# Attack level 6 [G]: 0.001000..1.000000
al_6 = 0.125893
# Attack time 6 [ms]: 0.000000..2000.000000
at_6 = 1.000000
# Relative release level 6 [G]: 0.000000..63.095749
rrl_6 = 0.000000
# Release time 6 [ms]: 0.000000..5000.000000
rt_6 = 4.000000
# Ratio 6: 1.000000..100.000000
cr_6 = 1.480000
# Knee 6 [G]: 0.063100..1.000000
kn_6 = 0.063100
# Makeup gain 6 [G]: 0.001000..1000.000000
mk_6 = 1.000000
# Hue 6: 0.000000..1.000000
hue_6 = 0.750000
# Sidechain source 7: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_7 = 0
# Sidechain mode 7: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_7 = 3
# Sidechain lookahead 7 [ms]: 0.000000..20.000000
sla_7 = 4.000000
# Sidechain reactivity 7 [ms]: 0.000000..250.000000
scr_7 = 12.000000
# Sidechain preamp 7 [G]: 0.000000..100.000000
scp_7 = 1.000000
# Sidechain custom lo-cut 7 [boolean]: true/false
sclc_7 = false
# Sidechain custom hi-cut 7 [boolean]: true/false
schc_7 = false
# Sidechain lo-cut frequency 7 [Hz]: 20.000000..20000.000000
sclf_7 = 10000.000000
# Sidechain hi-cut frequency 7 [Hz]: 20.000000..20000.000000
schf_7 = 20000.000000
# Compression mode 7: 0..1
# 0: Down
# 1: Up
cm_7 = 1
# Compressor enable 7 [boolean]: true/false
ce_7 = true
# Solo band 7 [boolean]: true/false
bs_7 = false
# Mute band 7 [boolean]: true/false
bm_7 = false
# Attack level 7 [G]: 0.001000..1.000000
al_7 = 0.125893
# Attack time 7 [ms]: 0.000000..2000.000000
at_7 = 0.500000
# Relative release level 7 [G]: 0.000000..63.095749
rrl_7 = 0.000000
# Release time 7 [ms]: 0.000000..5000.000000
rt_7 = 2.000000
# Ratio 7: 1.000000..100.000000
cr_7 = 1.480000
# Knee 7 [G]: 0.063100..1.000000
kn_7 = 0.063100
# Makeup gain 7 [G]: 0.001000..1000.000000
mk_7 = 1.000000
# Hue 7: 0.000000..1.000000
hue_7 = 0.875000
#-------------------------------------------------------------------------------
Maybe it's fine for a particular task on a particular instrument but for my case of just pumping system's entire audio stream it's quite disastrous. I don't remember if I tried Calf's single-band limiter, maybe at first install only, because I immediately set up CML: Try listening to this metal version of JoJo's Part 5/1 opening or his Red Sun and Rules of Nature covers with low threshold in limiter. Even still, In Classic it seems especially distorted. Maybe it's a nature of single-band versus multi-band, I don't know. |
This branch is still in development, there's nothing to test yet. |
At low-powered signals we're getting infinite gain boost and this cranks up bandpass filters with NaNs. This 'infinite' boost should be aborted at lower-level signals, so I'm currently working on additional knee that will set fixed amplification level below the -72dB threshold. |
Well, at least it includes 17712e9
Any particular reason for -72db ? Could it be made configurable ? It would be really nice for all things to span across entire audible range of 144db. Sometimes input signal might be heavily decreased to create "wider working range" with faint sounds being choked really low or it may be desirable to amplify lows to check if they are some random noise or useful sounds, like funky echoes or drown out speech. Not so much, when it's that low, but it's still, technically, in human audible range that's detected by mics and encoded in recordings. |
@v-fox Sorry, due to unknown reason I've edited your comment. |
But that's not correct implementation with clashing knees when they're near one to another.
Yes, I think I can do it configurable. I'll keep it -72dB by default. Anyway, this knee with such settings won't be visible on the graph. So currently to ensure that it's behaving correctly, I've set it to -48 dB. |
Added additional knee for upward compressor on -72 dB range. Now compressors should not blow up. Please try to build from github-issue-71 branch. |
But -48db is quite low if you target to uplift -48 to -96 or -144 and don't touch 0 to -24 or -36 at all by decreasing attack level, so amplification mostly would happen at about 24-64 range.
Not only did it fixed self-muting and lack of output visualization, it also fixed #72 ! Personally, as amateur, I would call normal knee "upper/upside/top" and this one - "lower/downside/bottom" because the normal one controls smoothness of compression on peaks while this one "chokes" self-looping at "the bottom". But it is a protection feature rather than strictly sound shaping one, so I don't know. And speaking of knees, I've noticed that "SC Boost" feature basically nullifies "upward" compression mode on >1KHz frequencies. But when I disabled it, quiet music with echoing background beat would overload the compressor's output, so only limiter would help from overloading DAC, as expected. Particularly, this track ("Time To Make History" cover from "PERSONA4 meets BASS×BASS" album). I might just have been too aggressive with amplification in general because fiddling with attack and release timings had no effect. "SC Boost" removes that but only because it forces lower amplification on higher frequencies. So, I thought that maybe a 2-stage compression is in order, to actually smooth out such peaks beyond >0db to infinity, like what CML is doing in this case, so it sounds fine. Which means either adding another knee, basically using both "normal/down" and "up" modes simultaneously, running another compressor in down-mode or just leave it be and let CML smooth it out, as it does. Compressor used these settings with limiter right after it with -12db threshold:#-------------------------------------------------------------------------------
#
# This file contains configuration of the audio plugin.
# Plugin name: Multi-band Kompressor Stereo x8 (Multiband Compressor Stereo x8)
# Plugin version: 1.0.1
# LV2 URI: http://lsp-plug.in/plugins/lv2/mb_compressor_stereo
# VST identifier: gjsn
# LADSPA identifier: 5002135
#
# (C) Linux Studio Plugins Project
# http://lsp-plug.in/
#
#-------------------------------------------------------------------------------
# Compressor mode: 0..1
# 0: Classic
# 1: Modern
mode = 1
# Input gain [G]: 0.000000..10.000000
g_in = 1.000000
# Output gain [G]: 0.000000..10.000000
g_out = 0.158489
# Dry gain [G]: 0.000000..10.000000
g_dry = 0.000000
# Wet gain [G]: 0.000000..10.000000
g_wet = 1.000000
# FFT reactivity [ms]: 0.000000..1.000000
react = 0.200000
# Shift gain [G]: 0.000000..100.000000
shift = 1.000000
# Graph zoom [G]: 0.125890..1.000000
zoom = 1.000000
# Envelope boost: 0..4
# 0: None
# 1: Pink BT
# 2: Pink MT
# 3: Brown BT
# 4: Brown MT
envb = 0
# Band selection: 0..8
# 0: Split
# 1: Band 0
# 2: Band 1
# 3: Band 2
# 4: Band 3
# 5: Band 4
# 6: Band 5
# 7: Band 6
# 8: Band 7
bsel = 0
# Band filter curves [boolean]: true/false
flt = true
# Input FFT graph enable Left [boolean]: true/false
ife_l = true
# Output FFT graph enable Left [boolean]: true/false
ofe_l = true
# Input FFT graph enable Right [boolean]: true/false
ife_r = true
# Output FFT graph enable Right [boolean]: true/false
ofe_r = true
# Compression band enable 1 [boolean]: true/false
cbe_1 = true
# Split frequency 1 [Hz]: 20.000000..20000.000000
sf_1 = 55.000000
# Compression band enable 2 [boolean]: true/false
cbe_2 = true
# Split frequency 2 [Hz]: 20.000000..20000.000000
sf_2 = 110.000000
# Compression band enable 3 [boolean]: true/false
cbe_3 = true
# Split frequency 3 [Hz]: 20.000000..20000.000000
sf_3 = 220.000000
# Compression band enable 4 [boolean]: true/false
cbe_4 = true
# Split frequency 4 [Hz]: 20.000000..20000.000000
sf_4 = 440.000000
# Compression band enable 5 [boolean]: true/false
cbe_5 = true
# Split frequency 5 [Hz]: 20.000000..20000.000000
sf_5 = 1760.000000
# Compression band enable 6 [boolean]: true/false
cbe_6 = true
# Split frequency 6 [Hz]: 20.000000..20000.000000
sf_6 = 3520.000000
# Compression band enable 7 [boolean]: true/false
cbe_7 = true
# Split frequency 7 [Hz]: 20.000000..20000.000000
sf_7 = 7040.000000
# Sidechain source 0: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_0 = 0
# Sidechain mode 0: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_0 = 3
# Sidechain lookahead 0 [ms]: 0.000000..20.000000
sla_0 = 4.000000
# Sidechain reactivity 0 [ms]: 0.000000..250.000000
scr_0 = 32.000000
# Sidechain preamp 0 [G]: 0.000000..100.000000
scp_0 = 1.000000
# Sidechain custom lo-cut 0 [boolean]: true/false
sclc_0 = false
# Sidechain custom hi-cut 0 [boolean]: true/false
schc_0 = false
# Sidechain lo-cut frequency 0 [Hz]: 20.000000..20000.000000
sclf_0 = 20.000000
# Sidechain hi-cut frequency 0 [Hz]: 20.000000..20000.000000
schf_0 = 40.000000
# Compression mode 0: 0..1
# 0: Down
# 1: Up
cm_0 = 1
# Compressor enable 0 [boolean]: true/false
ce_0 = true
# Solo band 0 [boolean]: true/false
bs_0 = false
# Mute band 0 [boolean]: true/false
bm_0 = false
# Attack level 0 [G]: 0.001000..1.000000
al_0 = 0.063096
# Attack time 0 [ms]: 0.000000..2000.000000
at_0 = 32.000000
# Relative release level 0 [G]: 0.000000..63.095749
rrl_0 = 0.000000
# Release time 0 [ms]: 0.000000..5000.000000
rt_0 = 128.000000
# Ratio 0: 1.000000..100.000000
cr_0 = 2.080000
# Knee 0 [G]: 0.063100..1.000000
kn_0 = 0.100000
# Makeup gain 0 [G]: 0.001000..1000.000000
mk_0 = 1.000000
# Hue 0: 0.000000..1.000000
hue_0 = 0.000000
# Sidechain source 1: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_1 = 0
# Sidechain mode 1: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_1 = 3
# Sidechain lookahead 1 [ms]: 0.000000..20.000000
sla_1 = 4.000000
# Sidechain reactivity 1 [ms]: 0.000000..250.000000
scr_1 = 28.000000
# Sidechain preamp 1 [G]: 0.000000..100.000000
scp_1 = 1.000000
# Sidechain custom lo-cut 1 [boolean]: true/false
sclc_1 = false
# Sidechain custom hi-cut 1 [boolean]: true/false
schc_1 = false
# Sidechain lo-cut frequency 1 [Hz]: 20.000000..20000.000000
sclf_1 = 40.000000
# Sidechain hi-cut frequency 1 [Hz]: 20.000000..20000.000000
schf_1 = 100.000000
# Compression mode 1: 0..1
# 0: Down
# 1: Up
cm_1 = 1
# Compressor enable 1 [boolean]: true/false
ce_1 = true
# Solo band 1 [boolean]: true/false
bs_1 = false
# Mute band 1 [boolean]: true/false
bm_1 = false
# Attack level 1 [G]: 0.001000..1.000000
al_1 = 0.063096
# Attack time 1 [ms]: 0.000000..2000.000000
at_1 = 28.000000
# Relative release level 1 [G]: 0.000000..63.095749
rrl_1 = 0.000000
# Release time 1 [ms]: 0.000000..5000.000000
rt_1 = 112.000000
# Ratio 1: 1.000000..100.000000
cr_1 = 2.080000
# Knee 1 [G]: 0.063100..1.000000
kn_1 = 0.100000
# Makeup gain 1 [G]: 0.001000..1000.000000
mk_1 = 1.000000
# Hue 1: 0.000000..1.000000
hue_1 = 0.125000
# Sidechain source 2: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_2 = 0
# Sidechain mode 2: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_2 = 3
# Sidechain lookahead 2 [ms]: 0.000000..20.000000
sla_2 = 4.000000
# Sidechain reactivity 2 [ms]: 0.000000..250.000000
scr_2 = 26.000000
# Sidechain preamp 2 [G]: 0.000000..100.000000
scp_2 = 1.000000
# Sidechain custom lo-cut 2 [boolean]: true/false
sclc_2 = false
# Sidechain custom hi-cut 2 [boolean]: true/false
schc_2 = false
# Sidechain lo-cut frequency 2 [Hz]: 20.000000..20000.000000
sclf_2 = 100.000000
# Sidechain hi-cut frequency 2 [Hz]: 20.000000..20000.000000
schf_2 = 252.000000
# Compression mode 2: 0..1
# 0: Down
# 1: Up
cm_2 = 1
# Compressor enable 2 [boolean]: true/false
ce_2 = true
# Solo band 2 [boolean]: true/false
bs_2 = false
# Mute band 2 [boolean]: true/false
bm_2 = false
# Attack level 2 [G]: 0.001000..1.000000
al_2 = 0.063096
# Attack time 2 [ms]: 0.000000..2000.000000
at_2 = 26.000000
# Relative release level 2 [G]: 0.000000..63.095749
rrl_2 = 0.000000
# Release time 2 [ms]: 0.000000..5000.000000
rt_2 = 104.000000
# Ratio 2: 1.000000..100.000000
cr_2 = 2.080000
# Knee 2 [G]: 0.063100..1.000000
kn_2 = 0.100000
# Makeup gain 2 [G]: 0.001000..1000.000000
mk_2 = 1.000000
# Hue 2: 0.000000..1.000000
hue_2 = 0.250000
# Sidechain source 3: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_3 = 0
# Sidechain mode 3: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_3 = 3
# Sidechain lookahead 3 [ms]: 0.000000..20.000000
sla_3 = 4.000000
# Sidechain reactivity 3 [ms]: 0.000000..250.000000
scr_3 = 24.000000
# Sidechain preamp 3 [G]: 0.000000..100.000000
scp_3 = 1.000000
# Sidechain custom lo-cut 3 [boolean]: true/false
sclc_3 = false
# Sidechain custom hi-cut 3 [boolean]: true/false
schc_3 = false
# Sidechain lo-cut frequency 3 [Hz]: 20.000000..20000.000000
sclf_3 = 252.000000
# Sidechain hi-cut frequency 3 [Hz]: 20.000000..20000.000000
schf_3 = 632.000000
# Compression mode 3: 0..1
# 0: Down
# 1: Up
cm_3 = 1
# Compressor enable 3 [boolean]: true/false
ce_3 = true
# Solo band 3 [boolean]: true/false
bs_3 = false
# Mute band 3 [boolean]: true/false
bm_3 = false
# Attack level 3 [G]: 0.001000..1.000000
al_3 = 0.063096
# Attack time 3 [ms]: 0.000000..2000.000000
at_3 = 24.000000
# Relative release level 3 [G]: 0.000000..63.095749
rrl_3 = 0.000000
# Release time 3 [ms]: 0.000000..5000.000000
rt_3 = 96.000000
# Ratio 3: 1.000000..100.000000
cr_3 = 2.080000
# Knee 3 [G]: 0.063100..1.000000
kn_3 = 0.100000
# Makeup gain 3 [G]: 0.001000..1000.000000
mk_3 = 1.000000
# Hue 3: 0.000000..1.000000
hue_3 = 0.375000
# Sidechain source 4: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_4 = 0
# Sidechain mode 4: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_4 = 3
# Sidechain lookahead 4 [ms]: 0.000000..20.000000
sla_4 = 4.000000
# Sidechain reactivity 4 [ms]: 0.000000..250.000000
scr_4 = 16.000000
# Sidechain preamp 4 [G]: 0.000000..100.000000
scp_4 = 1.000000
# Sidechain custom lo-cut 4 [boolean]: true/false
sclc_4 = false
# Sidechain custom hi-cut 4 [boolean]: true/false
schc_4 = false
# Sidechain lo-cut frequency 4 [Hz]: 20.000000..20000.000000
sclf_4 = 632.000000
# Sidechain hi-cut frequency 4 [Hz]: 20.000000..20000.000000
schf_4 = 1587.000000
# Compression mode 4: 0..1
# 0: Down
# 1: Up
cm_4 = 1
# Compressor enable 4 [boolean]: true/false
ce_4 = true
# Solo band 4 [boolean]: true/false
bs_4 = false
# Mute band 4 [boolean]: true/false
bm_4 = false
# Attack level 4 [G]: 0.001000..1.000000
al_4 = 0.063096
# Attack time 4 [ms]: 0.000000..2000.000000
at_4 = 16.000000
# Relative release level 4 [G]: 0.000000..63.095749
rrl_4 = 0.000000
# Release time 4 [ms]: 0.000000..5000.000000
rt_4 = 64.000000
# Ratio 4: 1.000000..100.000000
cr_4 = 2.080000
# Knee 4 [G]: 0.063100..1.000000
kn_4 = 0.100000
# Makeup gain 4 [G]: 0.001000..1000.000000
mk_4 = 1.000000
# Hue 4: 0.000000..1.000000
hue_4 = 0.500000
# Sidechain source 5: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_5 = 0
# Sidechain mode 5: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_5 = 3
# Sidechain lookahead 5 [ms]: 0.000000..20.000000
sla_5 = 4.000000
# Sidechain reactivity 5 [ms]: 0.000000..250.000000
scr_5 = 12.000000
# Sidechain preamp 5 [G]: 0.000000..100.000000
scp_5 = 1.000000
# Sidechain custom lo-cut 5 [boolean]: true/false
sclc_5 = false
# Sidechain custom hi-cut 5 [boolean]: true/false
schc_5 = false
# Sidechain lo-cut frequency 5 [Hz]: 20.000000..20000.000000
sclf_5 = 1587.000000
# Sidechain hi-cut frequency 5 [Hz]: 20.000000..20000.000000
schf_5 = 3984.000000
# Compression mode 5: 0..1
# 0: Down
# 1: Up
cm_5 = 1
# Compressor enable 5 [boolean]: true/false
ce_5 = true
# Solo band 5 [boolean]: true/false
bs_5 = false
# Mute band 5 [boolean]: true/false
bm_5 = false
# Attack level 5 [G]: 0.001000..1.000000
al_5 = 0.063096
# Attack time 5 [ms]: 0.000000..2000.000000
at_5 = 12.000000
# Relative release level 5 [G]: 0.000000..63.095749
rrl_5 = 0.000000
# Release time 5 [ms]: 0.000000..5000.000000
rt_5 = 48.000000
# Ratio 5: 1.000000..100.000000
cr_5 = 2.080000
# Knee 5 [G]: 0.063100..1.000000
kn_5 = 0.100000
# Makeup gain 5 [G]: 0.001000..1000.000000
mk_5 = 1.000000
# Hue 5: 0.000000..1.000000
hue_5 = 0.625000
# Sidechain source 6: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_6 = 0
# Sidechain mode 6: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_6 = 3
# Sidechain lookahead 6 [ms]: 0.000000..20.000000
sla_6 = 4.000000
# Sidechain reactivity 6 [ms]: 0.000000..250.000000
scr_6 = 8.000000
# Sidechain preamp 6 [G]: 0.000000..100.000000
scp_6 = 1.000000
# Sidechain custom lo-cut 6 [boolean]: true/false
sclc_6 = false
# Sidechain custom hi-cut 6 [boolean]: true/false
schc_6 = false
# Sidechain lo-cut frequency 6 [Hz]: 20.000000..20000.000000
sclf_6 = 3984.001221
# Sidechain hi-cut frequency 6 [Hz]: 20.000000..20000.000000
schf_6 = 10000.000977
# Compression mode 6: 0..1
# 0: Down
# 1: Up
cm_6 = 1
# Compressor enable 6 [boolean]: true/false
ce_6 = true
# Solo band 6 [boolean]: true/false
bs_6 = false
# Mute band 6 [boolean]: true/false
bm_6 = false
# Attack level 6 [G]: 0.001000..1.000000
al_6 = 0.044668
# Attack time 6 [ms]: 0.000000..2000.000000
at_6 = 8.000000
# Relative release level 6 [G]: 0.000000..63.095749
rrl_6 = 0.000000
# Release time 6 [ms]: 0.000000..5000.000000
rt_6 = 32.000000
# Ratio 6: 1.000000..100.000000
cr_6 = 1.920000
# Knee 6 [G]: 0.063100..1.000000
kn_6 = 0.251189
# Makeup gain 6 [G]: 0.001000..1000.000000
mk_6 = 1.000000
# Hue 6: 0.000000..1.000000
hue_6 = 0.750000
# Sidechain source 7: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_7 = 0
# Sidechain mode 7: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_7 = 3
# Sidechain lookahead 7 [ms]: 0.000000..20.000000
sla_7 = 4.000000
# Sidechain reactivity 7 [ms]: 0.000000..250.000000
scr_7 = 4.000000
# Sidechain preamp 7 [G]: 0.000000..100.000000
scp_7 = 1.000000
# Sidechain custom lo-cut 7 [boolean]: true/false
sclc_7 = false
# Sidechain custom hi-cut 7 [boolean]: true/false
schc_7 = false
# Sidechain lo-cut frequency 7 [Hz]: 20.000000..20000.000000
sclf_7 = 10000.000000
# Sidechain hi-cut frequency 7 [Hz]: 20.000000..20000.000000
schf_7 = 20000.000000
# Compression mode 7: 0..1
# 0: Down
# 1: Up
cm_7 = 1
# Compressor enable 7 [boolean]: true/false
ce_7 = true
# Solo band 7 [boolean]: true/false
bs_7 = false
# Mute band 7 [boolean]: true/false
bm_7 = false
# Attack level 7 [G]: 0.001000..1.000000
al_7 = 0.063096
# Attack time 7 [ms]: 0.000000..2000.000000
at_7 = 4.000000
# Relative release level 7 [G]: 0.000000..63.095749
rrl_7 = 0.000000
# Release time 7 [ms]: 0.000000..5000.000000
rt_7 = 16.000000
# Ratio 7: 1.000000..100.000000
cr_7 = 2.080000
# Knee 7 [G]: 0.063100..1.000000
kn_7 = 0.100000
# Makeup gain 7 [G]: 0.001000..1000.000000
mk_7 = 1.000000
# Hue 7: 0.000000..1.000000
hue_7 = 0.875000
#------------------------------------------------------------------------------- Although, anything in up-mode should behave the same. Latency of the pipeline also gone up from 13-14ms to 18-19ms, mainly because of compressor and limiter but previously compressor would show 0ms with limiter bypassed which was weird, now its ~16ms. But attack and lookahead time in compressor do not seem to change latency measured by lsp-plugins-latency-meter noticeably. My goal with this was to decrease dynamic range of recordings to "recover" "lost details" when played on lower DAC volume but avoid squashing peaks by bringing up background lows instead of normal compression or limiting with low threshold. Not sure if what's came out is "better" but it sure is "different"… |
I know, it's just to see on the graph that both knees are working well when changing compressor's threshold value.
Nice to hear that.
I've decided to call it 'Boost threshold'. Below this threshold, compressor has a constant finite boost gain applied to the audio signal. I'm currently working on adding 'Boost' knob to the compressor's interface.
You probably don't understand well how does 'SC Boost' work. 'SC Boost' is additionally designed filter that applies +3dB/oct boost to the audio spectrum at the whole audible range of frequencies. |
Now there's a 'Boost' knob in the UI that allows to control the threshold for both multiband and single-band compressors. |
…actually, I might have been too quick to say that #72 is gone. It seems that it's just became quieter.
Indeed, my "understanding" would be an overstatement, it's a "notion" at best.
I will check it out, openSUSE Build Service seems to have broke for the moment. |
Finally tested it out with patch for #77 over github-issue-71 branch. Curve seems nice, however, it does not restore from configurations the way it was saved, by default it's not exactly 72db and saving 116db turns into 113,98db on restore.
A little clarification: by "blows up" I mean that further plugins in pipeline, such as limiter, detect peak of about +16db over 0db even though visual averaging in compressor itself never seem to exceed 0db or comes close to it. Even with newer, conservative config that accounts for the new knee, I get up to +13db bumps at these frequencies on the beat while whole signal does not seem to clip over 0db. This is the config for the version with "boost" knob. Compressor is set to -12db on output and further limiter is set to -12db threshold, otherwise everything else, other than peaks, is too low. +9db is there for compressor's input because previous plugins have 9-12db of attenuation on them.#-------------------------------------------------------------------------------
#
# This file contains configuration of the audio plugin.
# Plugin name: Multi-band Kompressor Stereo x8 (Multiband Compressor Stereo x8)
# Plugin version: 1.0.1
# LV2 URI: http://lsp-plug.in/plugins/lv2/mb_compressor_stereo
# VST identifier: gjsn
# LADSPA identifier: 5002135
#
# (C) Linux Studio Plugins Project
# http://lsp-plug.in/
#
#-------------------------------------------------------------------------------
# Compressor mode: 0..1
# 0: Classic
# 1: Modern
mode = 1
# Input gain [G]: 0.000000..10.000000
g_in = 2.818383
# Output gain [G]: 0.000000..10.000000
g_out = 0.251189
# Dry gain [G]: 0.000000..10.000000
g_dry = 0.000000
# Wet gain [G]: 0.000000..10.000000
g_wet = 1.000000
# FFT reactivity [ms]: 0.000000..1.000000
react = 0.200000
# Shift gain [G]: 0.000000..100.000000
shift = 1.000000
# Graph zoom [G]: 0.125890..1.000000
zoom = 1.000000
# Envelope boost: 0..4
# 0: None
# 1: Pink BT
# 2: Pink MT
# 3: Brown BT
# 4: Brown MT
envb = 2
# Band selection: 0..8
# 0: Split
# 1: Band 0
# 2: Band 1
# 3: Band 2
# 4: Band 3
# 5: Band 4
# 6: Band 5
# 7: Band 6
# 8: Band 7
bsel = 0
# Band filter curves [boolean]: true/false
flt = true
# Input FFT graph enable Left [boolean]: true/false
ife_l = true
# Output FFT graph enable Left [boolean]: true/false
ofe_l = true
# Input FFT graph enable Right [boolean]: true/false
ife_r = true
# Output FFT graph enable Right [boolean]: true/false
ofe_r = true
# Compression band enable 1 [boolean]: true/false
cbe_1 = true
# Split frequency 1 [Hz]: 20.000000..20000.000000
sf_1 = 55.000000
# Compression band enable 2 [boolean]: true/false
cbe_2 = true
# Split frequency 2 [Hz]: 20.000000..20000.000000
sf_2 = 110.000000
# Compression band enable 3 [boolean]: true/false
cbe_3 = true
# Split frequency 3 [Hz]: 20.000000..20000.000000
sf_3 = 220.000000
# Compression band enable 4 [boolean]: true/false
cbe_4 = true
# Split frequency 4 [Hz]: 20.000000..20000.000000
sf_4 = 440.000000
# Compression band enable 5 [boolean]: true/false
cbe_5 = true
# Split frequency 5 [Hz]: 20.000000..20000.000000
sf_5 = 1760.000000
# Compression band enable 6 [boolean]: true/false
cbe_6 = true
# Split frequency 6 [Hz]: 20.000000..20000.000000
sf_6 = 3520.000000
# Compression band enable 7 [boolean]: true/false
cbe_7 = true
# Split frequency 7 [Hz]: 20.000000..20000.000000
sf_7 = 7040.000000
# Sidechain source 0: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_0 = 0
# Sidechain mode 0: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_0 = 3
# Sidechain lookahead 0 [ms]: 0.000000..20.000000
sla_0 = 4.000000
# Sidechain reactivity 0 [ms]: 0.000000..250.000000
scr_0 = 32.000000
# Sidechain preamp 0 [G]: 0.000000..100.000000
scp_0 = 0.707946
# Sidechain custom lo-cut 0 [boolean]: true/false
sclc_0 = false
# Sidechain custom hi-cut 0 [boolean]: true/false
schc_0 = false
# Sidechain lo-cut frequency 0 [Hz]: 20.000000..20000.000000
sclf_0 = 20.000000
# Sidechain hi-cut frequency 0 [Hz]: 20.000000..20000.000000
schf_0 = 40.000000
# Compression mode 0: 0..1
# 0: Down
# 1: Up
cm_0 = 1
# Compressor enable 0 [boolean]: true/false
ce_0 = true
# Solo band 0 [boolean]: true/false
bs_0 = false
# Mute band 0 [boolean]: true/false
bm_0 = false
# Attack level 0 [G]: 0.001000..1.000000
al_0 = 0.125893
# Attack time 0 [ms]: 0.000000..2000.000000
at_0 = 32.000000
# Relative release level 0 [G]: 0.000000..63.095749
rrl_0 = 0.000000
# Release time 0 [ms]: 0.000000..5000.000000
rt_0 = 128.000000
# Ratio 0: 1.000000..100.000000
cr_0 = 1.640000
# Knee 0 [G]: 0.063100..1.000000
kn_0 = 0.063100
# Boost threshold 0 [G]: 0.000001..0.001000
bth_0 = 0.000016
# Makeup gain 0 [G]: 0.001000..1000.000000
mk_0 = 1.000000
# Hue 0: 0.000000..1.000000
hue_0 = 0.000000
# Sidechain source 1: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_1 = 0
# Sidechain mode 1: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_1 = 3
# Sidechain lookahead 1 [ms]: 0.000000..20.000000
sla_1 = 4.000000
# Sidechain reactivity 1 [ms]: 0.000000..250.000000
scr_1 = 28.000000
# Sidechain preamp 1 [G]: 0.000000..100.000000
scp_1 = 0.707946
# Sidechain custom lo-cut 1 [boolean]: true/false
sclc_1 = false
# Sidechain custom hi-cut 1 [boolean]: true/false
schc_1 = false
# Sidechain lo-cut frequency 1 [Hz]: 20.000000..20000.000000
sclf_1 = 40.000000
# Sidechain hi-cut frequency 1 [Hz]: 20.000000..20000.000000
schf_1 = 100.000000
# Compression mode 1: 0..1
# 0: Down
# 1: Up
cm_1 = 1
# Compressor enable 1 [boolean]: true/false
ce_1 = true
# Solo band 1 [boolean]: true/false
bs_1 = false
# Mute band 1 [boolean]: true/false
bm_1 = false
# Attack level 1 [G]: 0.001000..1.000000
al_1 = 0.125893
# Attack time 1 [ms]: 0.000000..2000.000000
at_1 = 28.000000
# Relative release level 1 [G]: 0.000000..63.095749
rrl_1 = 0.000000
# Release time 1 [ms]: 0.000000..5000.000000
rt_1 = 112.000000
# Ratio 1: 1.000000..100.000000
cr_1 = 1.640000
# Knee 1 [G]: 0.063100..1.000000
kn_1 = 0.063100
# Boost threshold 1 [G]: 0.000001..0.001000
bth_1 = 0.000016
# Makeup gain 1 [G]: 0.001000..1000.000000
mk_1 = 1.000000
# Hue 1: 0.000000..1.000000
hue_1 = 0.125000
# Sidechain source 2: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_2 = 0
# Sidechain mode 2: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_2 = 3
# Sidechain lookahead 2 [ms]: 0.000000..20.000000
sla_2 = 4.000000
# Sidechain reactivity 2 [ms]: 0.000000..250.000000
scr_2 = 26.000000
# Sidechain preamp 2 [G]: 0.000000..100.000000
scp_2 = 0.707946
# Sidechain custom lo-cut 2 [boolean]: true/false
sclc_2 = false
# Sidechain custom hi-cut 2 [boolean]: true/false
schc_2 = false
# Sidechain lo-cut frequency 2 [Hz]: 20.000000..20000.000000
sclf_2 = 100.000000
# Sidechain hi-cut frequency 2 [Hz]: 20.000000..20000.000000
schf_2 = 252.000000
# Compression mode 2: 0..1
# 0: Down
# 1: Up
cm_2 = 1
# Compressor enable 2 [boolean]: true/false
ce_2 = true
# Solo band 2 [boolean]: true/false
bs_2 = false
# Mute band 2 [boolean]: true/false
bm_2 = false
# Attack level 2 [G]: 0.001000..1.000000
al_2 = 0.125893
# Attack time 2 [ms]: 0.000000..2000.000000
at_2 = 26.000000
# Relative release level 2 [G]: 0.000000..63.095749
rrl_2 = 0.000000
# Release time 2 [ms]: 0.000000..5000.000000
rt_2 = 104.000000
# Ratio 2: 1.000000..100.000000
cr_2 = 1.640000
# Knee 2 [G]: 0.063100..1.000000
kn_2 = 0.063100
# Boost threshold 2 [G]: 0.000001..0.001000
bth_2 = 0.000016
# Makeup gain 2 [G]: 0.001000..1000.000000
mk_2 = 1.000000
# Hue 2: 0.000000..1.000000
hue_2 = 0.250000
# Sidechain source 3: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_3 = 0
# Sidechain mode 3: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_3 = 3
# Sidechain lookahead 3 [ms]: 0.000000..20.000000
sla_3 = 4.000000
# Sidechain reactivity 3 [ms]: 0.000000..250.000000
scr_3 = 24.000000
# Sidechain preamp 3 [G]: 0.000000..100.000000
scp_3 = 0.707946
# Sidechain custom lo-cut 3 [boolean]: true/false
sclc_3 = false
# Sidechain custom hi-cut 3 [boolean]: true/false
schc_3 = false
# Sidechain lo-cut frequency 3 [Hz]: 20.000000..20000.000000
sclf_3 = 252.000000
# Sidechain hi-cut frequency 3 [Hz]: 20.000000..20000.000000
schf_3 = 632.000000
# Compression mode 3: 0..1
# 0: Down
# 1: Up
cm_3 = 1
# Compressor enable 3 [boolean]: true/false
ce_3 = true
# Solo band 3 [boolean]: true/false
bs_3 = false
# Mute band 3 [boolean]: true/false
bm_3 = false
# Attack level 3 [G]: 0.001000..1.000000
al_3 = 0.125893
# Attack time 3 [ms]: 0.000000..2000.000000
at_3 = 24.000000
# Relative release level 3 [G]: 0.000000..63.095749
rrl_3 = 0.000000
# Release time 3 [ms]: 0.000000..5000.000000
rt_3 = 96.000000
# Ratio 3: 1.000000..100.000000
cr_3 = 1.640000
# Knee 3 [G]: 0.063100..1.000000
kn_3 = 0.063100
# Boost threshold 3 [G]: 0.000001..0.001000
bth_3 = 0.000016
# Makeup gain 3 [G]: 0.001000..1000.000000
mk_3 = 1.000000
# Hue 3: 0.000000..1.000000
hue_3 = 0.375000
# Sidechain source 4: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_4 = 0
# Sidechain mode 4: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_4 = 3
# Sidechain lookahead 4 [ms]: 0.000000..20.000000
sla_4 = 4.000000
# Sidechain reactivity 4 [ms]: 0.000000..250.000000
scr_4 = 16.000000
# Sidechain preamp 4 [G]: 0.000000..100.000000
scp_4 = 0.707946
# Sidechain custom lo-cut 4 [boolean]: true/false
sclc_4 = false
# Sidechain custom hi-cut 4 [boolean]: true/false
schc_4 = false
# Sidechain lo-cut frequency 4 [Hz]: 20.000000..20000.000000
sclf_4 = 632.000000
# Sidechain hi-cut frequency 4 [Hz]: 20.000000..20000.000000
schf_4 = 1587.000000
# Compression mode 4: 0..1
# 0: Down
# 1: Up
cm_4 = 1
# Compressor enable 4 [boolean]: true/false
ce_4 = true
# Solo band 4 [boolean]: true/false
bs_4 = false
# Mute band 4 [boolean]: true/false
bm_4 = false
# Attack level 4 [G]: 0.001000..1.000000
al_4 = 0.125893
# Attack time 4 [ms]: 0.000000..2000.000000
at_4 = 16.000000
# Relative release level 4 [G]: 0.000000..63.095749
rrl_4 = 0.000000
# Release time 4 [ms]: 0.000000..5000.000000
rt_4 = 64.000000
# Ratio 4: 1.000000..100.000000
cr_4 = 1.640000
# Knee 4 [G]: 0.063100..1.000000
kn_4 = 0.063100
# Boost threshold 4 [G]: 0.000001..0.001000
bth_4 = 0.000016
# Makeup gain 4 [G]: 0.001000..1000.000000
mk_4 = 1.000000
# Hue 4: 0.000000..1.000000
hue_4 = 0.500000
# Sidechain source 5: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_5 = 0
# Sidechain mode 5: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_5 = 3
# Sidechain lookahead 5 [ms]: 0.000000..20.000000
sla_5 = 4.000000
# Sidechain reactivity 5 [ms]: 0.000000..250.000000
scr_5 = 12.000000
# Sidechain preamp 5 [G]: 0.000000..100.000000
scp_5 = 0.707946
# Sidechain custom lo-cut 5 [boolean]: true/false
sclc_5 = false
# Sidechain custom hi-cut 5 [boolean]: true/false
schc_5 = false
# Sidechain lo-cut frequency 5 [Hz]: 20.000000..20000.000000
sclf_5 = 1587.000000
# Sidechain hi-cut frequency 5 [Hz]: 20.000000..20000.000000
schf_5 = 3984.000000
# Compression mode 5: 0..1
# 0: Down
# 1: Up
cm_5 = 1
# Compressor enable 5 [boolean]: true/false
ce_5 = true
# Solo band 5 [boolean]: true/false
bs_5 = false
# Mute band 5 [boolean]: true/false
bm_5 = false
# Attack level 5 [G]: 0.001000..1.000000
al_5 = 0.125893
# Attack time 5 [ms]: 0.000000..2000.000000
at_5 = 12.000000
# Relative release level 5 [G]: 0.000000..63.095749
rrl_5 = 0.000000
# Release time 5 [ms]: 0.000000..5000.000000
rt_5 = 48.000000
# Ratio 5: 1.000000..100.000000
cr_5 = 1.640000
# Knee 5 [G]: 0.063100..1.000000
kn_5 = 0.063100
# Boost threshold 5 [G]: 0.000001..0.001000
bth_5 = 0.000016
# Makeup gain 5 [G]: 0.001000..1000.000000
mk_5 = 1.000000
# Hue 5: 0.000000..1.000000
hue_5 = 0.625000
# Sidechain source 6: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_6 = 0
# Sidechain mode 6: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_6 = 3
# Sidechain lookahead 6 [ms]: 0.000000..20.000000
sla_6 = 4.000000
# Sidechain reactivity 6 [ms]: 0.000000..250.000000
scr_6 = 8.000000
# Sidechain preamp 6 [G]: 0.000000..100.000000
scp_6 = 0.707946
# Sidechain custom lo-cut 6 [boolean]: true/false
sclc_6 = false
# Sidechain custom hi-cut 6 [boolean]: true/false
schc_6 = false
# Sidechain lo-cut frequency 6 [Hz]: 20.000000..20000.000000
sclf_6 = 3984.001221
# Sidechain hi-cut frequency 6 [Hz]: 20.000000..20000.000000
schf_6 = 10000.000977
# Compression mode 6: 0..1
# 0: Down
# 1: Up
cm_6 = 1
# Compressor enable 6 [boolean]: true/false
ce_6 = true
# Solo band 6 [boolean]: true/false
bs_6 = false
# Mute band 6 [boolean]: true/false
bm_6 = false
# Attack level 6 [G]: 0.001000..1.000000
al_6 = 0.089125
# Attack time 6 [ms]: 0.000000..2000.000000
at_6 = 8.000000
# Relative release level 6 [G]: 0.000000..63.095749
rrl_6 = 0.000000
# Release time 6 [ms]: 0.000000..5000.000000
rt_6 = 32.000000
# Ratio 6: 1.000000..100.000000
cr_6 = 1.580000
# Knee 6 [G]: 0.063100..1.000000
kn_6 = 0.063100
# Boost threshold 6 [G]: 0.000001..0.001000
bth_6 = 0.000016
# Makeup gain 6 [G]: 0.001000..1000.000000
mk_6 = 1.000000
# Hue 6: 0.000000..1.000000
hue_6 = 0.750000
# Sidechain source 7: 0..3
# 0: Mid
# 1: Side
# 2: Left
# 3: Right
scs_7 = 0
# Sidechain mode 7: 0..3
# 0: Peak
# 1: RMS
# 2: LPF
# 3: Uniform
scm_7 = 3
# Sidechain lookahead 7 [ms]: 0.000000..20.000000
sla_7 = 4.000000
# Sidechain reactivity 7 [ms]: 0.000000..250.000000
scr_7 = 4.000000
# Sidechain preamp 7 [G]: 0.000000..100.000000
scp_7 = 0.707946
# Sidechain custom lo-cut 7 [boolean]: true/false
sclc_7 = false
# Sidechain custom hi-cut 7 [boolean]: true/false
schc_7 = false
# Sidechain lo-cut frequency 7 [Hz]: 20.000000..20000.000000
sclf_7 = 10000.000000
# Sidechain hi-cut frequency 7 [Hz]: 20.000000..20000.000000
schf_7 = 20000.000000
# Compression mode 7: 0..1
# 0: Down
# 1: Up
cm_7 = 1
# Compressor enable 7 [boolean]: true/false
ce_7 = true
# Solo band 7 [boolean]: true/false
bs_7 = false
# Mute band 7 [boolean]: true/false
bm_7 = false
# Attack level 7 [G]: 0.001000..1.000000
al_7 = 0.125893
# Attack time 7 [ms]: 0.000000..2000.000000
at_7 = 4.000000
# Relative release level 7 [G]: 0.000000..63.095749
rrl_7 = 0.000000
# Release time 7 [ms]: 0.000000..5000.000000
rt_7 = 16.000000
# Ratio 7: 1.000000..100.000000
cr_7 = 1.640000
# Knee 7 [G]: 0.063100..1.000000
kn_7 = 0.063100
# Boost threshold 7 [G]: 0.000001..0.001000
bth_7 = 0.000016
# Makeup gain 7 [G]: 0.001000..1000.000000
mk_7 = 1.000000
# Hue 7: 0.000000..1.000000
hue_7 = 0.875000
#------------------------------------------------------------------------------- |
That's rounding error. 116 dB is ~1,585e-06. All decibel values are converted into linear gain values before saving. Probably I need to tune saving of small values.
Maybe because witih your settings the change is so quick that compressor does not catch the change and still proceeds + tens of decibels amplification? |
This commit should solve serialization issue: 8df6b99 |
I've played with your track ("Time To Make History" cover from "PERSONA4 meets BASS×BASS" album) and got the following chain: 01-para-eq-stereo.txt |
Big amplification in the compressor even with -12db on its output, I'm scared of trying this without the limiter. Thought that maybe it does not decrease gain in time, tried turning lookahead and attack time but was unable to find settings that would stop that.
Yep, restoring config seems fine now.
Not sure what do you mean, I attached compressor config (at small arrow) at #71 (comment) and previously so you could reproduce the peaks and see if: |
I belive using 'Peak' mode for the sidechain and short attack time will duck the amplification quickly. The lookahead should be around 2-4 times greater than the attack value. Also such setting requires to set longer release time. Otherwise you'll hear some kind of distortion when envelope will fall down. Here I've played with your settings. |
Merged changes into devel branch: 40ea31b High peaks for rapidly changing signals are normal behaviour for upward compressor because if the signal is low, it's acting as an amplifier. When a signal peak occurs, there's not enough time for the compressor's envelope to grow enough and turn off amplification. To cut these rapidly growing peaks, you need to use sidechain input in peak mode, lookahead option and very low Attack values. Such settings do repeat behaviour of a limiter but still with a slight reactivity. I think, there's nothing to do more in this topic and the topic should be marked as pending for release. |
Well, more like on every beat.
Interesting, I should remember that. Luckily, CML squashes those peaks somewhat but I'm not sure if they could have been shaped more accurately instead.
Great !
"To use sidechain input in peak mode, lookahead option and very low Attack values" in same up-mode compressor or in 2nd-stage down-compressor ? But keeping two compressor would introduce much more CPU load and latency. Could CPU & latency demand be lowered if a single compressor had some kind of "mixed-mode" with uniform amplification below attack threshold and compression above it (S-shaped curve) + its own "reverse boost-knee" that defines ≥0db-to-+24db threshold which it would not allow signal to cross by gradually compressing it, according to its curve, or would it be just a limiter ?
Indeed, as far as issues go. Everything else discussed is about additions. |
It depends on tasks which you're going to solve. Anyway, please look at the file I've attached to #71 (comment)
I think it's too complicated behaviour for a single compressor. If I understand right, S-shaped curve won't help you. You can get an S-shaped curve just by setting high compression on the upward compressor.
It sounds like just a downward compressor with adjusted makeup gain. By the other side, your demand is clear. You want to avoid very aggressive peaks even if amplification is too high. For me it sounds like a limiter which tracks current envelope of the signal (RMS value) and provides dynamic threshold for limiting peaks above the fixed threshold over the RMS value. But it's not an upward compressor. It's some kind of advanced dynamic limiter (or, maybe, maximizer?). Anyway, good idea for a new plugin. |
I've created the #79 issue for an additional plugin. |
I don't know if it is related to it or not but i have issues with the LSP Multiband Compressor. It happens not every time and i don't know how to reproduce it. It happens while making mastering tasks, with plugin (lv2 version) on the master bus on Ardour 5.12 or Mixbus 5.3.4. After some work on the tracks, the master bus meter become red and no sound anymore. if i by-pass the plugin, sound reappears. I can't reproduce it with vst version in Reaper 6. Ardour dialog window doesn't say nothing, and when i launch Ardour with the terminal it doesn't happen. |
What plugins do you have in the chain before MB Compresor? It seems that compressor is blowing by NaNs (Not-a-number floating point values) at the input or internally at the processing stage. |
a-Compressor stereo -> LSP Parametric Equalizer x-16 Stereo -> LSP MB Compressor
I have no technical knowledge to know, but i've already encounter this NaN issue with another plugins (Caps ampVTS lv2 IIRC, and other one but I can't remember which one), and I've seen the same behaviour (Meters in red and sound cuts). |
Changes available in 1.1.14 release! |
@sub26nico @v-fox |
I was trying to recreate my Calf-based setup with LSP and stumbled upon some critical issues. Here's some details on my setup (especially the screenshot): https://gitlab.freedesktop.org/pipewire/pipewire/issues/206
jackd
is ran asjackd --sync -P45 -p2048 -t512 -dalsa -dhw:0 -r96000 -p384 -n3 -m -M -Xseq -P -zs -I22 -O22
. I was using some snapshot fromdevel
branch while figuring out controls and everything was fine but when I finalized settings and updated to latest snapshot (marked as 1.1.13~20200124T022433 in my OBS repo, not sure about exact revision) weird things started to happen.lsp-plugins-mb-compressor-stereo, when launched with
-c ~/.config/lsp-plugins/lsp-plugins-mbc8.cfg
, is muted until I press band №3 on/off switch or switch it to "Classic" mode. But even after un-muting itself it shows output level bar as if there is no signal. Starting it without config restoration and loading it manually avoids that and everything seems fine.Similar thing happens with lsp-plugins-limiter-stereo. It starts fine but if threshold is lowered below -24db it loses output, same happens if it's switched to "Classic" mode during input. Sometimes it would lose output until I switch to any "Half" oversampling mode from any "Full". It really hates low threshold which I usually use on Calf's Multiband Limiter to boost "uneven", wide-DR speech and background sounds in badly mastered audio in Youtube videos (maybe that's a bad habit and CML acts as compressor more than a limiter, I don't know; but is it even a "limiter" if I have to limit the signal by hand beforehand to avoid going below 0db where "bad things happen" ?).
Sound output quality of the limiter, in comparison to Calf's Multiband Limiter, is awful. In CML I can't hear any distortion until pretty much maxing out gain meters at about -30-40db but in LSP-LS it starts almost immediately and goes downhill quickly, turning into barely comprehensible noise at same -30-40db. On any settings. It also seems to single-handedly introduce 13-15ms of latency on 1ms-3ms lookahead settings (EDIT: although, CML measured up to 14-20ms at 1ms-4ms, so LSP-LS is better at that), by lsp-plugins-latency-meter measurement from before any processing to right before hardware.
I downgraded to 1.1.13~20191223T215643 from master-branch but it did not change anything.
The text was updated successfully, but these errors were encountered: