BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bseamplifier.idl
Go to the documentation of this file.
00001  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
00002 
00003 include "bse/bsecxxmodule.idl";
00004 
00005 namespace Bse {
00006 interface Effect;       // FIXME: bad workaround
00007 };
00008 
00009 namespace Bse {
00010 interface Amplifier : Effect {
00011   Info    icon      = "icons/ampctrl.png";
00012   Info    authors   = "Tim Janik";
00013   Info    license   = _("GNU Lesser General Public License");
00014   Info    category  = _("/Routing/Amplifier");
00015   Info    blurb     = _("BseAmplifier provides input signal controlled amplification or "
00016                         "attenuation. "
00017                         "It supports two control inputs and two audio inputs which "
00018                         "are mixed together after balance and level adjustments. "
00019                         "The gain setting controls preamplification of the mixed audio "
00020                         "signal. The mixed control signal, weighted by a strength "
00021                         "setting, determines additional amplification, allowing for "
00022                         "external sources to modulate the overall volume (tremolo). "
00023                         "The mixed control signal can influence the amplification "
00024                         "linearly (to amplify other control signals) or exponentially "
00025                         "(to amplify audio signals). "
00026                         "Finally, the master volume controls amplification of the "
00027                         "resulting output signal.");
00028   IStream audio_in1  = Stream (_("Audio In1"), _("First audio input"));
00029   IStream audio_in2  = Stream (_("Audio In2"), _("Second audio input"));
00030   IStream ctrl_in1   = Stream (_("Ctrl In1"), _("First control input"));
00031   IStream ctrl_in2   = Stream (_("Ctrl In2"), _("Second control input"));
00032   OStream audio_out  = Stream (_("Audio Out"), _("Amplified audio output"));
00033   group _("Audio Input") {
00034     Real  alevel1    = Perc (_("Input 1 [%]"), _("Attenuate the level of audio input 1"), 100, STANDARD);
00035     Real  alevel2    = Perc (_("Input 2 [%]"), _("Attenuate the level of audio input 2"), 100, STANDARD);
00036     Real  abalance   = Balance (_("Balance"), _("Balance audio input levels"), 0, GUI);
00037   };
00038   group _("Control Input") {
00039     Real  clevel1    = Perc (_("Input 1 [%]"), _("Attenuate the level of control input 1"), 100, STANDARD);
00040     Real  clevel2    = Perc (_("Input 2 [%]"), _("Attenuate the level of control input 2"), 100, STANDARD);
00041     Real  cbalance   = Balance (_("Balance"), _("Balance control input levels"), 0, GUI);
00042     Bool  ctrl_mul   = Bool (_("Multiply Controls"),
00043                              _("Switch the two control inputs to work like a chain of gain "
00044                                "controls, rather than mixing them together, weighted by balance."),
00045                              TRUE, STANDARD);
00046     Bool  ctrl_exp   = Bool (_("Exponential Control"), _("Toggle exponential and linear control response"), FALSE, STANDARD);
00047   };
00048   group _("Output") {
00049     Real  ostrength     = Perc (_("Control Strength"), _("Adjust how much the control signals affect the output volume"), 100, STANDARD);
00050     Real  base_level    = Perc (_("Base Volume"), _("Base amplification (the control signal adds up to this)"), 0, STANDARD);
00051     Real  master_volume = DBVolume (_("Master Volume"), _("Output stage amplification in decibel"), 0, MINDB, +24, STANDARD);
00052   };
00053   group "compat" {
00054     Real  audio_balance   = Balance ("", "", 0, "w");           /* -> abalance (v0.5.4) */
00055     Real  ctrl_balance    = Balance ("", "", 0, "w");           /* -> cbalance (v0.5.4) */
00056     Real  ctrl_strength_f = SfiReal ("", "", 1, 0, 1, 0.1, "w");        /* *100 -> ostrength (v0.5.4) */
00057     Real  master_gain_f   = SfiReal ("", "", 1, 0, 1, 0.1, "w");        /* *100 -> olevel (v0.5.4) */
00058     Real  audio_gain_f    = SfiReal ("", "", 0, 0, 1, 0.1, "w");        /* *100 -> base_level (v0.5.4) */
00059     Real  olevel          = Perc ("", "", 100, "w");            /* -> master_volume (v0.6.2) */
00060   };
00061 };
00062 
00063 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines