Add output control port to a-exp for input level

This commit is contained in:
Johannes Mueller 2017-08-04 17:10:42 +02:00
parent 8be06e6e63
commit 2dc96027d6
3 changed files with 40 additions and 12 deletions

View file

@ -103,8 +103,18 @@
unit:unit unit:db ; unit:unit unit:db ;
] , ] ,
[ [
a lv2:InputPort, lv2:ControlPort ; a lv2:OutputPort, lv2:ControlPort ;
lv2:index 8 ; 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:name "Sidechain" ;
lv2:symbol "sidech" ; lv2:symbol "sidech" ;
lv2:default 0.000000 ; lv2:default 0.000000 ;
@ -114,7 +124,7 @@
] , ] ,
[ [
a lv2:InputPort, lv2:ControlPort ; a lv2:InputPort, lv2:ControlPort ;
lv2:index 9 ; lv2:index 10 ;
lv2:name "Enable" ; lv2:name "Enable" ;
lv2:symbol "enable" ; lv2:symbol "enable" ;
lv2:default 1 ; lv2:default 1 ;
@ -126,32 +136,32 @@
lv2:port [ lv2:port [
a lv2:InputPort, lv2:AudioPort ; a lv2:InputPort, lv2:AudioPort ;
lv2:index 10 ; lv2:index 11 ;
lv2:symbol "lv2_audio_in_1" ; lv2:symbol "lv2_audio_in_1" ;
lv2:name "Audio Input 1" ; lv2:name "Audio Input 1" ;
] , ] ,
[ [
a lv2:InputPort, lv2:AudioPort ; a lv2:InputPort, lv2:AudioPort ;
lv2:index 11 ; lv2:index 12 ;
lv2:symbol "lv2_audio_in_2" ; lv2:symbol "lv2_audio_in_2" ;
lv2:name "Audio Input 2" ; lv2:name "Audio Input 2" ;
] , ] ,
[ [
a lv2:InputPort, lv2:AudioPort ; a lv2:InputPort, lv2:AudioPort ;
lv2:index 12 ; lv2:index 13 ;
lv2:symbol "lv2_sidechain_in" ; lv2:symbol "lv2_sidechain_in" ;
lv2:name "Sidechain Input" ; lv2:name "Sidechain Input" ;
lv2:portProperty lv2:isSideChain ; lv2:portProperty lv2:isSideChain ;
], ],
[ [
a lv2:OutputPort, lv2:AudioPort ; a lv2:OutputPort, lv2:AudioPort ;
lv2:index 13 ; lv2:index 14 ;
lv2:symbol "lv2_audio_out_1" ; lv2:symbol "lv2_audio_out_1" ;
lv2:name "Audio Output 1" ; lv2:name "Audio Output 1" ;
], ],
[ [
a lv2:OutputPort, lv2:AudioPort ; a lv2:OutputPort, lv2:AudioPort ;
lv2:index 14 ; lv2:index 15 ;
lv2:symbol "lv2_audio_out_2" ; lv2:symbol "lv2_audio_out_2" ;
lv2:name "Audio Output 2" ; lv2:name "Audio Output 2" ;
] ; ] ;

View file

@ -51,6 +51,7 @@ typedef enum {
AEXP_GAINR, AEXP_GAINR,
AEXP_OUTLEVEL, AEXP_OUTLEVEL,
AEXP_INLEVEL,
AEXP_SIDECHAIN, AEXP_SIDECHAIN,
AEXP_ENABLE, AEXP_ENABLE,
@ -71,6 +72,7 @@ typedef struct {
float* gainr; float* gainr;
float* outlevel; float* outlevel;
float* inlevel;
float* sidechain; float* sidechain;
float* enable; float* enable;
@ -166,6 +168,9 @@ connect_port(LV2_Handle instance,
case AEXP_OUTLEVEL: case AEXP_OUTLEVEL:
aexp->outlevel = (float*)data; aexp->outlevel = (float*)data;
break; break;
case AEXP_INLEVEL:
aexp->inlevel = (float*)data;
break;
case AEXP_SIDECHAIN: case AEXP_SIDECHAIN:
aexp->sidechain = (float*)data; aexp->sidechain = (float*)data;
break; break;
@ -255,6 +260,7 @@ activate(LV2_Handle instance)
*(aexp->gainr) = 160.0f; *(aexp->gainr) = 160.0f;
*(aexp->outlevel) = -45.0f; *(aexp->outlevel) = -45.0f;
*(aexp->inlevel) = -45.0f;
} }
static void static void
@ -382,6 +388,7 @@ run_mono(LV2_Handle instance, uint32_t n_samples)
*(aexp->gainr) = current_gainr; *(aexp->gainr) = current_gainr;
*(aexp->outlevel) = (max < 0.0056f) ? -45.f : to_dB(max); *(aexp->outlevel) = (max < 0.0056f) ? -45.f : to_dB(max);
*(aexp->inlevel) = in_peak_db;
aexp->makeup_gain = makeup_gain; aexp->makeup_gain = makeup_gain;
#ifdef LV2_EXTENDED #ifdef LV2_EXTENDED
@ -539,6 +546,7 @@ run_stereo(LV2_Handle instance, uint32_t n_samples)
*(aexp->gainr) = current_gainr; *(aexp->gainr) = current_gainr;
*(aexp->outlevel) = (max < 0.0056f) ? -45.f : to_dB(max); *(aexp->outlevel) = (max < 0.0056f) ? -45.f : to_dB(max);
*(aexp->inlevel) = in_peak_db;
aexp->makeup_gain = makeup_gain; aexp->makeup_gain = makeup_gain;
#ifdef LV2_EXTENDED #ifdef LV2_EXTENDED

View file

@ -103,8 +103,18 @@
unit:unit unit:db ; unit:unit unit:db ;
] , ] ,
[ [
a lv2:InputPort, lv2:ControlPort ; a lv2:OutputPort, lv2:ControlPort ;
lv2:index 8 ; 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:name "Sidechain" ;
lv2:symbol "sidech" ; lv2:symbol "sidech" ;
lv2:default 0.000000 ; lv2:default 0.000000 ;
@ -114,7 +124,7 @@
] , ] ,
[ [
a lv2:InputPort, lv2:ControlPort ; a lv2:InputPort, lv2:ControlPort ;
lv2:index 9 ; lv2:index 10 ;
lv2:name "Enable" ; lv2:name "Enable" ;
lv2:symbol "enable" ; lv2:symbol "enable" ;
lv2:default 1 ; lv2:default 1 ;
@ -126,20 +136,20 @@
lv2:port [ lv2:port [
a lv2:InputPort, lv2:AudioPort ; a lv2:InputPort, lv2:AudioPort ;
lv2:index 10 ; lv2:index 11 ;
lv2:symbol "lv2_audio_in_1" ; lv2:symbol "lv2_audio_in_1" ;
lv2:name "Audio Input 1" ; lv2:name "Audio Input 1" ;
] , ] ,
[ [
a lv2:InputPort, lv2:AudioPort ; a lv2:InputPort, lv2:AudioPort ;
lv2:index 11 ; lv2:index 12 ;
lv2:symbol "lv2_sidechain_in" ; lv2:symbol "lv2_sidechain_in" ;
lv2:name "Sidechain Input" ; lv2:name "Sidechain Input" ;
lv2:portProperty lv2:isSideChain ; lv2:portProperty lv2:isSideChain ;
], ],
[ [
a lv2:OutputPort, lv2:AudioPort ; a lv2:OutputPort, lv2:AudioPort ;
lv2:index 12 ; lv2:index 13 ;
lv2:symbol "lv2_audio_out_1" ; lv2:symbol "lv2_audio_out_1" ;
lv2:name "Audio Output 1" ; lv2:name "Audio Output 1" ;
] ; ] ;