2 include
"bse/bsecxxmodule.idl";
8 SATURATE_TANH = Enum (_(
"TANH"), _(
"Saturation via hyperbolic tangent function which is mostly linear for "
9 "small levels while providing a soft curvature for high volume signals")),
10 SATURATE_ATAN = Enum (_(
"ATAN"), _(
"Saturation via arc tangent function which is reasonably linear in the "
11 "lower 50% but develops a strong curvature above 80%")),
12 SATURATE_QUADRATIC = Enum (_(
"Quadratic"), _(
"Saturation via quadratic approximation which keeps a "
13 "well-proportioned curvature across all levels")),
14 SATURATE_SOFT_KNEE = Enum (_(
"Soft Knee"), _(
"Linear saturation with a soft knee transit into the clipping range "
15 "(equals hard clipping at 100%) which approaches quadratic curvature "
17 SATURATE_HARD = Enum (_(
"Hard"), _(
"Hard saturation via clipping (prone to clicks)")),
21 Info category =
"/Distortion/Saturate";
22 Info icon =
"icons/saturate.png";
23 Info authors =
"Tim Janik";
24 Info blurb = (
"This is 2-channel saturation module. Various saturation types are supported. "
25 "The 'Level' parameter adjusts the maximum saturation stage output for a normalized "
27 "Some saturartion types simply clip signals beyond this threshold, while others (notably "
28 "TANH and ATAN) allow overdrive signals to pass through the saturation stage up to a certain amount. "
29 "The output volume allows for extra amplification after the saturation stage. For saturation "
30 "types that allow overdrive signals past the saturation stage, an output volume greater than "
31 "0dB may result in overdrive signals as output of this module.");
32 IStream audio_in1 = Stream (
"Audio In1",
"First Audio Input");
33 IStream audio_in2 = Stream (
"Audio In2",
"Second Audio Input");
34 OStream audio_out1 = Stream (
"Audio Out1",
"First Audio Output");
35 OStream audio_out2 = Stream (
"Audio Out2",
"Second Audio Output");
37 SaturationType saturation = SfiEnum (_(
"Saturation Type"), _(
"The type of saturation to be used"), SATURATE_TANH, STANDARD);
38 Real level = Perc (_(
"Level"),
39 _(
"Normalization level of the saturation curve in percent, some saturation types still "
40 "allow overdrive signals beyond this level"),
41 50,
"scale:" STANDARD);
42 Bool auto_output = Bool (_(
"Auto Output"),
43 _(
"Automatically adapt the output volume according to changes in saturation level"),
45 Real output_volume = DBVolume (_(
"Output Volume"), _(
"Output stage amplification in decibel"), 0, 0, +42,
"automate:" STANDARD);
Definition: bsecxxmodule.hh:92