@@ -41,6 +41,16 @@ namespace lsp
4141 {
4242 // -------------------------------------------------------------------------
4343 // Plugin metadata
44+ static const port_item_t de_pf_filter_slope[] =
45+ {
46+ { " off" , " eq.slope.off" },
47+ { " 12 dB/oct" , " eq.slope.12dbo" },
48+ { " 24 dB/oct" , " eq.slope.24dbo" },
49+ { " 36 dB/oct" , " eq.slope.36dbo" },
50+ { " 48 dB/oct" , " eq.slope.48dbo" },
51+ { NULL , NULL }
52+ };
53+
4454
4555 #define DE_PREMIX \
4656 SWITCH (" showpmx" , " Show pre-mix overlay" , " Show premix bar" , 0 .0f ), \
@@ -60,20 +70,43 @@ namespace lsp
6070 #define DE_SHM_LINK_STEREO \
6171 OPT_RETURN_STEREO (" link" , " shml_" , " Side-chain shared memory link" )
6272
73+ #define DE_FILTERS \
74+ COMBO (" hpf_s" , " High-pass filter slope" , " HPF slope" , 1 , de_pf_filter_slope), \
75+ LOG_CONTROL (" hpf_f" , " High-pass filter frequency" , " HPF freq" , U_HZ , deesser::HPF_FREQ ), \
76+ LOG_CONTROL (" hpf_q" , " High-pass filter qualifty factor" , " HPF Q" , U_NONE , deesser::PF_Q ), \
77+ COMBO (" lpf_s" , " Low-pass filter slope" , " LPF slope" , 0 , de_pf_filter_slope), \
78+ LOG_CONTROL (" lpf_f" , " Low-pass filter frequency" , " LPF freq" , U_HZ , deesser::LPF_FREQ ), \
79+ LOG_CONTROL (" lpf_q" , " Low-pass filter qualifty factor" , " LPF Q" , U_NONE , deesser::PF_Q ), \
80+ SWITCH (" pk1_on" , " Peak filter 1 on" , " Peak 1 on" , 1 .0f ), \
81+ LOG_CONTROL (" pk1_f" , " Peak filter 1 frequency" , " Peak 1 freq" , U_HZ , deesser::PEAK1_FREQ ), \
82+ LOG_CONTROL (" pk1_g" , " Peak filter 1 gain" , " Peak 1 gain" , U_HZ , deesser::PEAK_GAIN ), \
83+ LOG_CONTROL (" pk1_q" , " Peak filter 1 qualifty factor" , " Peak 1 Q" , U_NONE , deesser::PEAK_Q ), \
84+ SWITCH (" pk2_on" , " Peak filter 2 on" , " Peak 2 on" , 1 .0f ), \
85+ LOG_CONTROL (" pk2_f" , " Peak filter 2 frequency" , " Peak 2 freq" , U_HZ , deesser::PEAK2_FREQ ), \
86+ LOG_CONTROL (" pk2_g" , " Peak filter 2 gain" , " Peak 2 gain" , U_HZ , deesser::PEAK_GAIN ), \
87+ LOG_CONTROL (" pk2_q" , " Peak filter 2 qualifty factor" , " Peak 2 Q" , U_NONE , deesser::PEAK_Q ), \
88+ MESH (" sceq" , " Side-chain equalization chart" , 6 , deesser::MESH_POINTS + 4 )
89+
90+ #define DE_ANALYSIS (channels ) \
91+ LOG_CONTROL (" react" , " FFT reactivity" , " Reactivity" , U_MSEC , deesser::REACT_TIME ), \
92+ AMP_GAIN (" shift" , " Shift gain" , " Shift" , 1 .0f , 100 .0f ), \
93+ MESH (" fftg" , " FFT analysis graph" , 1 + channels*2 , deesser::MESH_POINTS + 2 )
94+
6395 #define DE_COMMON \
6496 BYPASS , \
6597 IN_GAIN , \
6698 OUT_GAIN , \
67- SWITCH (" showmx" , " Show mix overlay" , " Show mix bar" , 0 .0f ), \
6899 SWITCH (" showsc" , " Show sidechain overlay" , " Show SC bar" , 0 .0f ), \
69100 LOG_CONTROL (" zoom" , " Graph zoom" , " Zoom" , U_GAIN_AMP , deesser::ZOOM )
70101
71102 static const port_t deesser_mono_ports[] =
72103 {
73104 PORTS_MONO_PLUGIN ,
74105 DE_SHM_LINK_MONO ,
75- DE_PREMIX ,
76106 DE_COMMON ,
107+ DE_PREMIX ,
108+ DE_ANALYSIS (1 ),
109+ DE_FILTERS ,
77110
78111 PORTS_END
79112 };
@@ -82,8 +115,10 @@ namespace lsp
82115 {
83116 PORTS_STEREO_PLUGIN ,
84117 DE_SHM_LINK_STEREO ,
85- DE_PREMIX ,
86118 DE_COMMON ,
119+ DE_PREMIX ,
120+ DE_ANALYSIS (2 ),
121+ DE_FILTERS ,
87122
88123 PORTS_END
89124 };
@@ -93,8 +128,10 @@ namespace lsp
93128 PORTS_MONO_PLUGIN ,
94129 PORTS_MONO_SIDECHAIN ,
95130 DE_SHM_LINK_MONO ,
96- DE_SC_PREMIX ,
97131 DE_COMMON ,
132+ DE_SC_PREMIX ,
133+ DE_ANALYSIS (1 ),
134+ DE_FILTERS ,
98135
99136 PORTS_END
100137 };
@@ -104,8 +141,10 @@ namespace lsp
104141 PORTS_STEREO_PLUGIN ,
105142 PORTS_STEREO_SIDECHAIN ,
106143 DE_SHM_LINK_STEREO ,
107- DE_SC_PREMIX ,
108144 DE_COMMON ,
145+ DE_SC_PREMIX ,
146+ DE_ANALYSIS (2 ),
147+ DE_FILTERS ,
109148
110149 PORTS_END
111150 };
0 commit comments