[beast/wip/timj/soundfont: 4/13] BSE: SF2: use mixfreq to compute number of silent samples required for done output
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast/wip/timj/soundfont: 4/13] BSE: SF2: use mixfreq to compute number of silent samples required for done output
- Date: Mon, 19 Sep 2016 08:17:40 +0000 (UTC)
commit 443482decb7ab40aa3349088474e66570e8de340
Author: Stefan Westerfeld <stefan space twc de>
Date: Fri Mar 8 20:28:38 2013 +0100
BSE: SF2: use mixfreq to compute number of silent samples required for done output
bse/bsesoundfontosc.cc | 3 ++-
bse/bsesoundfontosc.hh | 1 +
2 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/bse/bsesoundfontosc.cc b/bse/bsesoundfontosc.cc
index 6f84701..59c80ae 100644
--- a/bse/bsesoundfontosc.cc
+++ b/bse/bsesoundfontosc.cc
@@ -115,6 +115,7 @@ static void
bse_sound_font_osc_init (BseSoundFontOsc *self)
{
memset (&self->config, 0, sizeof (self->config));
+ self->config.silence_bound = bse_engine_sample_freq() * 0.020; /* output is zero for 20 ms => set done
output */
self->preset = NULL;
}
@@ -400,7 +401,7 @@ sound_font_osc_process (BseModule *module,
sfrepo->n_silence_samples[sfrepo->channel_map[flmod->config.osc_id]] += n_values;
else
sfrepo->n_silence_samples[sfrepo->channel_map[flmod->config.osc_id]] = 0;
- float done = (sfrepo->n_silence_samples[sfrepo->channel_map[flmod->config.osc_id]] > 1024 &&
sfrepo->fluid_events == NULL) ? 1.0 : 0.0;
+ float done = (sfrepo->n_silence_samples[sfrepo->channel_map[flmod->config.osc_id]] >
flmod->config.silence_bound && sfrepo->fluid_events == NULL) ? 1.0 : 0.0;
BSE_MODULE_OSTREAM (module, BSE_SOUND_FONT_OSC_OCHANNEL_DONE_OUT).values = bse_engine_const_values
(done);
}
diff --git a/bse/bsesoundfontosc.hh b/bse/bsesoundfontosc.hh
index a4c7764..92b11cf 100644
--- a/bse/bsesoundfontosc.hh
+++ b/bse/bsesoundfontosc.hh
@@ -38,6 +38,7 @@ struct _BseSoundFontOscConfig
int sfont_id;
int bank;
int program;
+ int silence_bound;
BseSoundFontRepo *sfrepo;
int update_preset; /* preset changed indicator */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]