Page 1 of 1

Ignorant question re: stock step LFO/sequencer

Posted: Fri Jan 31, 2020 5:07 pm
by Duckett
Hi all,

I've always appreciated our old pal StepLFO, but it was only recently that I'd poked around it long enough to notice that the number of horizontal steps is accessible through Properties; I said to myself, "Self, wouldn't having access to this on the GUI be a handy feature?" and proceeded to kludge that up. Seemed to work very well- would re-draw the specified number of steps, adjusting width to fit in the GUI window, great! Yet.. them details done messed me up again.. after exporting a synth with these, I tried to change one from 14 steps to 15- and, while the step window dutifully changed to show 15 steps, the added 15th step was non-editable, "invisible" to the mouse. Lessening steps is fine, but adding steps seems to always cause the added ones to do the same.

I'm not knowledgeable enough to grasp by myself what should be addressed to fix this, and maybe there's been a user-submitted step LFO/sequencer that allows easy selection of # of steps that I've missed, but I've learned; "it might be simple, it might be obvious, but not ever asking means it possibly another year before the light finally switches on" ;)

A shame that enjoying tinkering and being naturally organized do not always go hand-in-hand *cough cough*

Re: Ignorant question re: stock step LFO/sequencer

Posted: Fri Jan 31, 2020 6:40 pm
by trogluddite
I just had a poke around inside it, and I think I can see the problem. The storage for the step values is the 'VST Preset Array' primitive inside the 'Preset' sub-module. Unlike normal arrays, VST Preset Arrays can't have their size changed after the VST has been exported, as it would mess up the way that preset data is formatted and stored. So, the number of steps that you export the VST with becomes the maximum possible - there's no space in the VST Preset Array to store any more.

As you've found, using less than the maximum is no problem, so the simplest fix would be to give the VST Preset Array a fixed maximum size (just replace the "Steps H" wireless receiver to the 'N' input with a fixed integer inside the 'Preset' module). You'll then just have to make sure that your GUI selector for the number of steps can never exceed this size. As it's only a list of float values, even a maximum in the hundreds isn't going dent the VST's performance noticeably; it'll just need a little bit more memory, that's all.

Re: Ignorant question re: stock step LFO/sequencer

Posted: Sat Feb 01, 2020 4:43 am
by Duckett
Lovely to learn, many thanks! Of course, I'm now thinking "Hmmm, not that expensive to get less quantized approximations of standard waveforms, eh?" Something resembling u-he's 128-value Mapping Generator wouldn't be out of the question, theoretically..

In any case, thanks again, and I'll just add that my new LFO rule is: always include an "invert" and a "uni/bipolar" switch ;)

Re: Ignorant question re: stock step LFO/sequencer

Posted: Sat Feb 01, 2020 10:31 am
by trogluddite
Duckett wrote:...and I'll just add that my new LFO rule is: always include an "invert" and a "uni/bipolar" switch

I likes 'em for modulation envelopes, too! :D

Re: Ignorant question re: stock step LFO/sequencer

Posted: Wed Feb 05, 2020 4:23 am
by Duckett
Grover voice Heeeey Troggy-baby!

Just wanted to say thanks again for steering me right :D

Re: Ignorant question re: stock step LFO/sequencer

Posted: Fri Feb 07, 2020 11:24 am
by k brown
I think this is the same problem I experienced a long time ago. The only fix I found was to always save the schematic and generate the .dll with the maximum number of desired steps showing. The when you open it as a vst, you'll be able to change the number of steps at will and all will be 'active'.

Re: Ignorant question re: stock step LFO/sequencer

Posted: Mon Feb 10, 2020 7:14 pm
by Duckett
Yep, that was it! StepLFO with variable steps here:http://www.dsprobotics.com/support/viewtopic.php?f=3&t=37285
I know there's already been full-fledged step sequencer modules etc., but I was thinking this idea is a bit more encouraging of quick experimentation by the user, and makes adding sequencing options to single-panel designs easier.

Please feel free to play around with it, dead simple as it is... maybe there's a k brown project it would work nicely in ;)