10f0094bd1a6edcffa9e37d87ca1e5898c45d6dd
[stwbeast.git] / plugins / davorgan.idl
1 /* DavOrgan - DAV Additive Organ Synthesizer            -*-mode: c++;-*-
2  * Copyright (c) 1999, 2000, 2002 David A. Bartold and Tim Janik
3  * Copyright (c) 2006-2007 Stefan Westerfeld
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * A copy of the GNU Lesser General Public License should ship along
16  * with this library; if not, see http://www.gnu.org/copyleft/.
17  */
18 #include <bse/bse.idl>
19
20 namespace Bse {
21 namespace Dav {
22
23 class Organ : Effect {
24   Info    icon      = "icons/organ.png";
25   Info    authors   = "David A. Bartold";
26   Info    license   = _("GNU Lesser General Public License");
27   Info    category  = _("/Audio Sources/Organ");
28   Info    blurb     = _("DavOrgan is a modifiable additive organ synthesizer");
29   IStream freq_in   = (_("Freq In"), _("Frequency Input"));
30   OStream audio_out = (_("Audio Out"), _("Organ output"));
31   group _("Base Frequency") {
32     Real base_freq = Freq (_("Frequency"), _("Organ frequency in Hertz, i.e. the pitch of the base tone"),
33                            BSE_KAMMER_FREQUENCY, STANDARD ":dial");
34     Int  base_note = Note (_("Note"), _("Organ frequency as note, converted to Hertz according to the current musical tuning"),
35                            BSE_KAMMER_NOTE, GUI);
36     Int  transpose = Int (_("Transpose"), _("Transposition of the frequency in semitones"),
37                           0, BSE_MIN_TRANSPOSE, BSE_MAX_TRANSPOSE, 12, STANDARD ":f:dial:skip-default");
38     Int  fine_tune = FineTune (_("Fine Tune"), _("Amount of detuning in cent (hundredth part of a semitone)"),
39                                STANDARD ":f:dial:skip-default");
40   };
41   group _("Harmonics") {
42     Real harm0 = Perc (_("16th"),    _("16th Harmonic"), 100.0, STANDARD ":scale");
43     Real harm1 = Perc (_("8th"),     _("8th Harmonic"), 100. * 36. / 127., STANDARD ":scale");
44     Real harm2 = Perc (_("5 1/3rd"), _("5 1/3rd Harmonic"), 100. * 100. / 127., STANDARD ":scale");
45     Real harm3 = Perc (_("4th"),     _("4th Harmonic"), 100. * 32. / 127., STANDARD ":scale");
46     Real harm4 = Perc (_("2 2/3rd"), _("2 2/3rd Harmonic"), 100. * 91. / 127., STANDARD ":scale");
47     Real harm5 = Perc (_("2nd"),     _("2nd Harmonic"), 100. * 55. / 127., STANDARD ":scale");
48    };
49   group _("Instrument flavour") {
50     Bool brass = Bool (_("Brass Sounds"), _("Changes the organ to sound more brassy"), FALSE, STANDARD);
51     Bool reed  = Bool (_("Reed Sounds"),  _("Adds reeds sound"), FALSE, STANDARD);
52     Bool flute = Bool (_("Flute Sounds"), _("Adds flute sounds"), FALSE, STANDARD);
53   };
54 };
55
56 } // Dav
57 } // Bse