Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
standardsaturator.idl
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 include "bse/bsecxxmodule.idl";
3 namespace Bse {
4 
6 namespace Standard {
7 enum SaturationType {
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 "
16  "for small levels")),
17  SATURATE_HARD = Enum (_("Hard"), _("Hard saturation via clipping (prone to clicks)")),
18 };
19 
20 interface Saturator : Bse::Effect {
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 "
26  "input signal. "
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");
36  group "Saturation" {
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"),
44  TRUE, STANDARD);
45  Real output_volume = DBVolume (_("Output Volume"), _("Output stage amplification in decibel"), 0, 0, +42, "automate:" STANDARD);
46  // Bool test_dump = Trigger ("Test Dump", "", GUI);
47  };
48 };
49 
50 } } // Bse::Standard
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:91
const char * _(const char *string)
Translate message strings in the BEAST/BSE text domain.
Definition: glib-extra.cc:1100
Definition: bsecxxmodule.hh:93