Re: Splines and DSP
Posted: Tue Feb 18, 2020 6:31 am
It's taken rather longer than I was hoping, but here's a completely overhauled version of the basic "straight line" node envelope...
The example patches should show how versatile the underlying code is - it works equally well as an envelope, an LFO, or a step-sequencer, and various mutant offspring of those (a "Stenelleffope", maybe?). However, as the underlying DSP parameters are exposed pretty directly on the GUI at the moment, you may find that some settings don't do anything very useful, and there may still be a few combinations which go splat!
In deference to Spogg's earlier suggestion, there's now a modulation input for the playback speed (disabled when an envelope's speed is slaved to the 'Master' BPM). This works in powers of two, rather like note pitch; zero = no change, +1 = double speed, -1 = half speed, and so on (oh; and add/remove node is now on R-click!)
Besides reading the notes in the schematic, I strongly advise turning on the "Watch" button on the envelopes to begin with. Redrawing the GUI will consume more CPU (hence it's not turned on by default), but the animated playback cursor makes it a lot easier to see how the nodes, modes, and markers interact.
@tulamide
Most of the Ruby source code is tucked away inside the 'Master' module - the envelope modules have only bootstrapping code for pre-defined Classes and Modules. The API code and editor code are separate so that you can easily cut and paste only what you need. There's also a text box inside there with the documentation for the NodeEnvelope Ruby API.
There's still a fair bit of work left for me to do on this before it's "toolbox ready" - I'm starting work on converting the DSP code to ASM next. But the Ruby API should be definitive, regardless of what changes I make elsewhere; though I'm open to any suggestions that you have for improvements. Let me know if you need some simpler API working examples - the editor code probably has far too much other clutter inside it to make a good Ruby example.
The example patches should show how versatile the underlying code is - it works equally well as an envelope, an LFO, or a step-sequencer, and various mutant offspring of those (a "Stenelleffope", maybe?). However, as the underlying DSP parameters are exposed pretty directly on the GUI at the moment, you may find that some settings don't do anything very useful, and there may still be a few combinations which go splat!
In deference to Spogg's earlier suggestion, there's now a modulation input for the playback speed (disabled when an envelope's speed is slaved to the 'Master' BPM). This works in powers of two, rather like note pitch; zero = no change, +1 = double speed, -1 = half speed, and so on (oh; and add/remove node is now on R-click!)
Besides reading the notes in the schematic, I strongly advise turning on the "Watch" button on the envelopes to begin with. Redrawing the GUI will consume more CPU (hence it's not turned on by default), but the animated playback cursor makes it a lot easier to see how the nodes, modes, and markers interact.
@tulamide
Most of the Ruby source code is tucked away inside the 'Master' module - the envelope modules have only bootstrapping code for pre-defined Classes and Modules. The API code and editor code are separate so that you can easily cut and paste only what you need. There's also a text box inside there with the documentation for the NodeEnvelope Ruby API.
There's still a fair bit of work left for me to do on this before it's "toolbox ready" - I'm starting work on converting the DSP code to ASM next. But the Ruby API should be definitive, regardless of what changes I make elsewhere; though I'm open to any suggestions that you have for improvements. Let me know if you need some simpler API working examples - the editor code probably has far too much other clutter inside it to make a good Ruby example.