diff --git a/libs/plugins/a-exp.lv2/a-exp#stereo.ttl.in b/libs/plugins/a-exp.lv2/a-exp#stereo.ttl.in index 99796abc08..d26a2f2d5c 100644 --- a/libs/plugins/a-exp.lv2/a-exp#stereo.ttl.in +++ b/libs/plugins/a-exp.lv2/a-exp#stereo.ttl.in @@ -103,8 +103,18 @@ unit:unit unit:db ; ] , [ - a lv2:InputPort, lv2:ControlPort ; + a lv2:OutputPort, lv2:ControlPort ; lv2:index 8 ; + lv2:name "Input Level" ; + lv2:symbol "inlevel" ; + lv2:default -45.000000 ; + lv2:minimum -45.000000 ; + lv2:maximum 0.000000 ; + unit:unit unit:db ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 9 ; lv2:name "Sidechain" ; lv2:symbol "sidech" ; lv2:default 0.000000 ; @@ -114,7 +124,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 9 ; + lv2:index 10 ; lv2:name "Enable" ; lv2:symbol "enable" ; lv2:default 1 ; @@ -126,32 +136,32 @@ lv2:port [ a lv2:InputPort, lv2:AudioPort ; - lv2:index 10 ; + lv2:index 11 ; lv2:symbol "lv2_audio_in_1" ; lv2:name "Audio Input 1" ; ] , [ a lv2:InputPort, lv2:AudioPort ; - lv2:index 11 ; + lv2:index 12 ; lv2:symbol "lv2_audio_in_2" ; lv2:name "Audio Input 2" ; ] , [ a lv2:InputPort, lv2:AudioPort ; - lv2:index 12 ; + lv2:index 13 ; lv2:symbol "lv2_sidechain_in" ; lv2:name "Sidechain Input" ; lv2:portProperty lv2:isSideChain ; ], [ a lv2:OutputPort, lv2:AudioPort ; - lv2:index 13 ; + lv2:index 14 ; lv2:symbol "lv2_audio_out_1" ; lv2:name "Audio Output 1" ; ], [ a lv2:OutputPort, lv2:AudioPort ; - lv2:index 14 ; + lv2:index 15 ; lv2:symbol "lv2_audio_out_2" ; lv2:name "Audio Output 2" ; ] ; diff --git a/libs/plugins/a-exp.lv2/a-exp.c b/libs/plugins/a-exp.lv2/a-exp.c index bc5bc29ce6..8105c594c3 100644 --- a/libs/plugins/a-exp.lv2/a-exp.c +++ b/libs/plugins/a-exp.lv2/a-exp.c @@ -51,6 +51,7 @@ typedef enum { AEXP_GAINR, AEXP_OUTLEVEL, + AEXP_INLEVEL, AEXP_SIDECHAIN, AEXP_ENABLE, @@ -71,6 +72,7 @@ typedef struct { float* gainr; float* outlevel; + float* inlevel; float* sidechain; float* enable; @@ -166,6 +168,9 @@ connect_port(LV2_Handle instance, case AEXP_OUTLEVEL: aexp->outlevel = (float*)data; break; + case AEXP_INLEVEL: + aexp->inlevel = (float*)data; + break; case AEXP_SIDECHAIN: aexp->sidechain = (float*)data; break; @@ -255,6 +260,7 @@ activate(LV2_Handle instance) *(aexp->gainr) = 160.0f; *(aexp->outlevel) = -45.0f; + *(aexp->inlevel) = -45.0f; } static void @@ -382,6 +388,7 @@ run_mono(LV2_Handle instance, uint32_t n_samples) *(aexp->gainr) = current_gainr; *(aexp->outlevel) = (max < 0.0056f) ? -45.f : to_dB(max); + *(aexp->inlevel) = in_peak_db; aexp->makeup_gain = makeup_gain; #ifdef LV2_EXTENDED @@ -539,6 +546,7 @@ run_stereo(LV2_Handle instance, uint32_t n_samples) *(aexp->gainr) = current_gainr; *(aexp->outlevel) = (max < 0.0056f) ? -45.f : to_dB(max); + *(aexp->inlevel) = in_peak_db; aexp->makeup_gain = makeup_gain; #ifdef LV2_EXTENDED diff --git a/libs/plugins/a-exp.lv2/a-exp.ttl.in b/libs/plugins/a-exp.lv2/a-exp.ttl.in index 887ea23860..2ab3860eff 100644 --- a/libs/plugins/a-exp.lv2/a-exp.ttl.in +++ b/libs/plugins/a-exp.lv2/a-exp.ttl.in @@ -103,8 +103,18 @@ unit:unit unit:db ; ] , [ - a lv2:InputPort, lv2:ControlPort ; + a lv2:OutputPort, lv2:ControlPort ; lv2:index 8 ; + lv2:name "Input Level" ; + lv2:symbol "inlevel" ; + lv2:default -45.000000 ; + lv2:minimum -45.000000 ; + lv2:maximum 0.000000 ; + unit:unit unit:db ; + ] , + [ + a lv2:InputPort, lv2:ControlPort ; + lv2:index 9 ; lv2:name "Sidechain" ; lv2:symbol "sidech" ; lv2:default 0.000000 ; @@ -114,7 +124,7 @@ ] , [ a lv2:InputPort, lv2:ControlPort ; - lv2:index 9 ; + lv2:index 10 ; lv2:name "Enable" ; lv2:symbol "enable" ; lv2:default 1 ; @@ -126,20 +136,20 @@ lv2:port [ a lv2:InputPort, lv2:AudioPort ; - lv2:index 10 ; + lv2:index 11 ; lv2:symbol "lv2_audio_in_1" ; lv2:name "Audio Input 1" ; ] , [ a lv2:InputPort, lv2:AudioPort ; - lv2:index 11 ; + lv2:index 12 ; lv2:symbol "lv2_sidechain_in" ; lv2:name "Sidechain Input" ; lv2:portProperty lv2:isSideChain ; ], [ a lv2:OutputPort, lv2:AudioPort ; - lv2:index 12 ; + lv2:index 13 ; lv2:symbol "lv2_audio_out_1" ; lv2:name "Audio Output 1" ; ] ;