/* DavOrgan - DAV Additive Organ Synthesizer            -*-mode: c++;-*-
 * Copyright (c) 1999, 2000, 2002 David A. Bartold and Tim Janik
 * Copyright (c) 2006-2007 Stefan Westerfeld
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * A copy of the GNU Lesser General Public License should ship along
 * with this library; if not, see http://www.gnu.org/copyleft/.
 */
#include <bse/bse.idl>

namespace Bse {
namespace Dav {

class Organ : Effect {
  Info    icon      = "icons/organ.png";
  Info    authors   = "David A. Bartold";
  Info    license   = _("GNU Lesser General Public License");
  Info    category  = _("/Audio Sources/Organ");
  Info    blurb     = _("DavOrgan is a modifiable additive organ synthesizer");
  IStream freq_in   = (_("Freq In"), _("Frequency Input"));
  OStream audio_out = (_("Audio Out"), _("Organ output"));
  group _("Base Frequency") {
    Real base_freq = Freq (_("Frequency"), _("Organ frequency in Hertz, i.e. the pitch of the base tone"),
                           BSE_KAMMER_FREQUENCY, STANDARD ":dial");
    Int  base_note = Note (_("Note"), _("Organ frequency as note, according to the current musical tuning"),
			   BSE_KAMMER_NOTE, GUI); /* FIXME: we discussed about the wording, but I don't remember the conclusion; original (C) = "Organ frequency as note, converted to Hertz according to the current musical tuning"??? */
    Int  transpose = (_("Transpose"), _("Transposition of the frequency in semitones"),
		      0, BSE_MIN_TRANSPOSE, BSE_MAX_TRANSPOSE, 12, STANDARD ":f:dial:skip-default");
    Int  fine_tune = FineTune (_("Fine Tune"), _("Amount of detuning in cent (hundredth part of a semitone)"),
			       STANDARD ":f:dial:skip-default");
  };
  group _("Harmonics") {
    Real harm0 = Perc (_("16th"),    _("16th Harmonic"), 100.0, STANDARD ":scale");
    Real harm1 = Perc (_("8th"),     _("8th Harmonic"), 100. * 36. / 127., STANDARD ":scale");
    Real harm2 = Perc (_("5 1/3rd"), _("5 1/3rd Harmonic"), 100. * 100. / 127., STANDARD ":scale");
    Real harm3 = Perc (_("4th"),     _("4th Harmonic"), 100. * 32. / 127., STANDARD ":scale");
    Real harm4 = Perc (_("2 2/3rd"), _("2 2/3rd Harmonic"), 100. * 91. / 127., STANDARD ":scale");
    Real harm5 = Perc (_("2nd"),     _("2nd Harmonic"), 100. * 55. / 127., STANDARD ":scale");
   };
  group _("Instrument flavour") {
    Bool brass = (_("Brass Sounds"), _("Changes the organ to sound more brassy"), FALSE, STANDARD);
    Bool reed  = (_("Reed Sounds"),  _("Adds reeds sound"), FALSE, STANDARD);
    Bool flute = (_("Flute Sounds"), _("Adds flute sounds"), FALSE, STANDARD);
  };
};

} // Dav
} // Bse
