On Mon, May 13, 2013 at 5:55 PM, John Serafino <lzrblade@gmail.com> wrote:

Yeah, standard order of operations: parenthesis, exponentiation, multiplication, division, addition, subtraction. It may seem odd that the resonance and cutoff knob values are not multiplied by the 2.0 or 6000.0 scale factor, but that is because the knob value is already in the appropriate unit (Q or Hz). Perhaps that scale factor can be removed if we push the units to the GUI. But, I honestly think that might just confuse the user more since the ultimate cutoff would be a function of the knob, the envelope, and the lfo.

Looks good if I understand it. I'm a little unclear on a couple of things though:1. Order of operations is not 100% clear. Are we doing parenthesis->multiplication(and division)->addition, or something else? I usually just use a million parenthesis. ;)

Yeah, standard order of operations: parenthesis, exponentiation, multiplication, division, addition, subtraction. It may seem odd that the resonance and cutoff knob values are not multiplied by the 2.0 or 6000.0 scale factor, but that is because the knob value is already in the appropriate unit (Q or Hz). Perhaps that scale factor can be removed if we push the units to the GUI. But, I honestly think that might just confuse the user more since the ultimate cutoff would be a function of the knob, the envelope, and the lfo.

2. X squared keeping the original sign is not (|x| + x). I'm just assuming that (x^2) means x squared keeping original sign, and not... that other thing.

Ooops, Typeo: it should be |x| * x, where |x| is the absolute value of x. Or, in other words:

-x * x, if x < 0

x * x, otherwise

Thanks for the feedback! Also, I apologize to everyone else if this
thread is off topic. I was hoping it may help shed some light on the
internal working of the current LMMS filters as well.-- Paul