Ok so, there's been some talk about the auto-shutoff feature of LMMS
effect plugins. Some consider it a nuisance, others see it as a valuable
part of LMMS functionality. There's also been talk of a way to disable
auto-shutoff completely in settings, and that's also something that
could be done, but I'm not going to talk about that now.

Currently, the auto-shutoff works by measuring the RMS of each period,
then determining whether the RMS value is below the treshold set by the
"gate" knob in the front panel, and the effect gets shut off when the
amount of time set by the "decay" knob passes while every period is <=
treshold.

The problem is: RMS is a costly thing to be doing all the time.
Especially since it's only used for a trivial function like this, which
only needs to determine "is there output over this level". RMS requires
a square root calculation per each sample, so that's 2*period_size
square root calculations per period, per effect. Wasting more CPU while
the effect runs just to save CPU by turning the effect off doesn't seem
like the best possible solution...

So: what if, instead of doing a RMS calculation, we just simply take the
maximum of the absolute values of the samples, and use that to determine
if the effect produces output? It would cost less CPU since it'd require
simpler operations. Since we can control the gate level anyway, I think
there's no need for the RMS calculation as such... the feature could
probably work just as well with max abs value.

Opinions?

I could whip up a test branch so that someone (Raine?) could benchmark
this to see how much savings we could get by it...

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
LMMS-devel mailing list
LMMS-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to