[SCM] calf/master: + Organ: possible fix for hold pedal release causing skipping release stage + Organ: GUI rearrangements (Vibrato section put in Advanced and assigned a proper group label)
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:37:31 UTC 2013
The following commit has been merged in the master branch:
commit 7ad52cdb61bf5613d8164f092d4c3f64e607df3a
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date: Sun Aug 10 14:39:29 2008 +0000
+ Organ: possible fix for hold pedal release causing skipping release stage
+ Organ: GUI rearrangements (Vibrato section put in Advanced and assigned a proper group label)
git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@267 78b06b96-2940-0410-b7fc-879d825d01d8
diff --git a/src/calf/organ.h b/src/calf/organ.h
index 6e2abea..1eb48ac 100644
--- a/src/calf/organ.h
+++ b/src/calf/organ.h
@@ -237,6 +237,8 @@ protected:
organ_vibrato vibrato;
float velocity;
bool perc_released;
+ /// The envelopes have ended and the voice is in final fadeout stage
+ bool finishing;
public:
organ_voice()
@@ -255,7 +257,9 @@ public:
}
void note_on(int note, int vel) {
+ finishing = false;
perc_released = false;
+ released = false;
reset();
this->note = note;
const float sf = 0.001f;
@@ -268,7 +272,6 @@ public:
update_pitch();
velocity = vel * 1.0 / 127.0;
amp.set(1.0f);
- released = false;
perc_note_on(note, vel);
}
diff --git a/src/organ.cpp b/src/organ.cpp
index a0c5911..cf6836c 100644
--- a/src/organ.cpp
+++ b/src/organ.cpp
@@ -249,30 +249,6 @@ const char *organ_audio_module::get_gui_xml()
"</vbox>"
"</frame>"
"</vbox>"
- "<frame label=\"LFO\">"
- "<vbox>"
- "<vbox expand=\"0\" fill=\"0\">"
- "<label param=\"vib_rate\" />"
- "<align><knob param=\"vib_rate\" expand=\"0\" fill=\"0\"/></align><value param=\"vib_rate\"/>"
- "</vbox>"
- "<vbox expand=\"0\" fill=\"0\">"
- "<label param=\"vib_amt\" />"
- "<align><knob param=\"vib_amt\" expand=\"0\" fill=\"0\"/></align><value param=\"vib_amt\"/>"
- "</vbox>"
- "<vbox expand=\"0\" fill=\"0\">"
- "<label param=\"vib_wet\" />"
- "<align><knob param=\"vib_wet\" expand=\"0\" fill=\"0\"/></align><value param=\"vib_wet\"/>"
- "</vbox>"
- "<vbox expand=\"0\" fill=\"0\">"
- "<label param=\"vib_phase\" />"
- "<align><knob param=\"vib_phase\" expand=\"0\" fill=\"0\" type=\"3\"/></align><value param=\"vib_phase\"/>"
- "</vbox>"
- "<vbox expand=\"0\" fill=\"0\">"
- "<label param=\"vib_mode\" />"
- "<combo param=\"vib_mode\" expand=\"0\" fill=\"0\"/>"
- "</vbox>"
- "</vbox>"
- "</frame>"
"</hbox>"
"<vbox page=\"Advanced\">"
"<align scale-x=\"1.0\" scale-y=\"0.3\">"
@@ -283,7 +259,7 @@ const char *organ_audio_module::get_gui_xml()
"<table rows=\"2\" cols=\"5\">"
"<vbox attach-x=\"0\" attach-y=\"0\">"
"<label param=\"perc_waveform\"/>"
- "<combo param=\"perc_waveform\"/>"
+ "<align><combo param=\"perc_waveform\"/></align>"
"</vbox>"
"<vbox attach-x=\"1\" attach-y=\"0\">"
"<label param=\"perc_harmonic\"/>"
@@ -307,7 +283,7 @@ const char *organ_audio_module::get_gui_xml()
"</vbox>"
"<vbox attach-x=\"0\" attach-y=\"1\">"
"<label param=\"perc_fm_waveform\"/>"
- "<combo param=\"perc_fm_waveform\"/>"
+ "<align><combo param=\"perc_fm_waveform\"/></align>"
"</vbox>"
"<vbox attach-x=\"1\" attach-y=\"1\">"
"<label param=\"perc_fm_harmonic\"/>"
@@ -331,43 +307,71 @@ const char *organ_audio_module::get_gui_xml()
"</vbox>"
"</table>"
"<vbox>"
- "<vbox>"
- "<label param=\"perc_stereo\"/>"
- "<knob param=\"perc_stereo\" expand=\"0\" fill=\"0\" type=\"3\"/>"
- "<value param=\"perc_stereo\"/>"
- "</vbox>"
"<hbox>"
- "<vbox>"
- "<label param=\"perc_trigger\"/>"
- "<combo param=\"perc_trigger\"/>"
- "</vbox>"
+ "<align>"
+ "<vbox>"
+ "<label param=\"perc_stereo\"/>"
+ "<knob param=\"perc_stereo\" expand=\"0\" fill=\"0\" type=\"3\"/>"
+ "<value param=\"perc_stereo\"/>"
+ "</vbox>"
+ "</align>"
+ "<align>"
+ "<vbox>"
+ "<label param=\"perc_trigger\"/>"
+ "<align>"
+ "<combo param=\"perc_trigger\"/>"
+ "</align>"
+ "</vbox>"
+ "</align>"
"</hbox>"
"</vbox>"
"</hbox>"
"</vbox>"
"</frame>"
"</align>"
- "<align scale-x=\"0.8\" scale-y=\"0.3\">"
- "<frame label=\"Additional settings\">"
- "<hbox>"
- "<vbox>"
- "<label param=\"transpose\"/>"
- "<align><knob param=\"transpose\" type=\"1\"/></align>"
- "<value param=\"transpose\"/>"
- "</vbox>"
- "<vbox>"
- "<label param=\"detune\"/>"
- "<align><knob param=\"detune\" type=\"1\"/></align>"
- "<value param=\"detune\"/>"
- "</vbox>"
- "<vbox>"
- "<label param=\"foldnote\"/>"
- "<align><knob param=\"foldnote\"/></align>"
- "<value param=\"foldnote\"/>"
- "</vbox>"
- "</hbox>"
- "</frame>"
- "</align>"
+ "<frame label=\"Vibrato\">"
+ "<hbox>"
+ "<vbox expand=\"0\" fill=\"0\">"
+ "<label param=\"vib_rate\" />"
+ "<align><knob param=\"vib_rate\" expand=\"0\" fill=\"0\"/></align><value param=\"vib_rate\"/>"
+ "</vbox>"
+ "<vbox expand=\"0\" fill=\"0\">"
+ "<label param=\"vib_amt\" />"
+ "<align><knob param=\"vib_amt\" expand=\"0\" fill=\"0\"/></align><value param=\"vib_amt\"/>"
+ "</vbox>"
+ "<vbox expand=\"0\" fill=\"0\">"
+ "<label param=\"vib_wet\" />"
+ "<align><knob param=\"vib_wet\" expand=\"0\" fill=\"0\"/></align><value param=\"vib_wet\"/>"
+ "</vbox>"
+ "<vbox expand=\"0\" fill=\"0\">"
+ "<label param=\"vib_phase\" />"
+ "<align><knob param=\"vib_phase\" expand=\"0\" fill=\"0\" type=\"3\"/></align><value param=\"vib_phase\"/>"
+ "</vbox>"
+ "<vbox expand=\"0\" fill=\"0\">"
+ "<label param=\"vib_mode\" />"
+ "<align><combo param=\"vib_mode\" expand=\"0\" fill=\"0\"/></align>"
+ "</vbox>"
+ "</hbox>"
+ "</frame>"
+ "<frame label=\"Additional settings\">"
+ "<hbox>"
+ "<vbox>"
+ "<label param=\"transpose\"/>"
+ "<align><knob param=\"transpose\" type=\"1\"/></align>"
+ "<value param=\"transpose\"/>"
+ "</vbox>"
+ "<vbox>"
+ "<label param=\"detune\"/>"
+ "<align><knob param=\"detune\" type=\"1\"/></align>"
+ "<value param=\"detune\"/>"
+ "</vbox>"
+ "<vbox>"
+ "<label param=\"foldnote\"/>"
+ "<align><knob param=\"foldnote\"/></align>"
+ "<value param=\"foldnote\"/>"
+ "</vbox>"
+ "</hbox>"
+ "</frame>"
"<vbox>"
"</vbox>"
"</vbox>"
@@ -1146,7 +1150,7 @@ void organ_voice::render_block() {
if (vibrato_mode >= lfomode_direct && vibrato_mode <= lfomode_filter2)
vibrato.process(parameters, aux_buffers[vibrato_mode - lfomode_direct], BlockSize, sample_rate);
if (!any_running)
- released = true;
+ finishing = true;
// calculate delta from pre and post
for (int i = 0; i < ampctl_count - 1; i++)
amp_post[i] = (amp_post[i] - amp_pre[i]) * (1.0 / BlockSize);
@@ -1175,7 +1179,7 @@ void organ_voice::render_block() {
if (vibrato_mode == lfomode_voice)
vibrato.process(parameters, output_buffer, BlockSize, sample_rate);
- if (released)
+ if (finishing)
{
for (int i = 0; i < (int) BlockSize; i++) {
output_buffer[i][0] *= amp.get();
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list