Yes. Anyway, here is my new suggestion for an 1:1 port. I didn't include
improvements to the IDL fil you suggest, but concentrated on getting the
mix_freq() dependant table right. Also I am no longer introducing
double (i) casts, at the cost of having the loops that fill the tables
do double <-> int comparisions, which I wanted to avoid before.
I added musical tuning support as required by recent svn.
plugins/davorgan.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"), NULL, BSE_KAMMER_FREQUENCY, STANDARD ":dial");
Int base_note = Note (_("Note"), NULL, BSE_KAMMER_NOTE, GUI);
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");