View Single Post
Old 07-13-2018, 05:40 AM   #1
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,643
Default ReaRack Envelope Multi-Tool

ReaRack has been missing a multi-stage envelope generator, a complex waveform LFO and a step sequencer. I have combined all three in one module, the Envelope Multi-Tool, here: https://stash.reaper.fm/v/34071/ReaR...dularSynth.zip

The Multi-tool used as an ADSR envelope generator -


The Multi-tool used as a step sequencer -


This FX can provide envelopes with 1 to 16 stages. The output can be either MIDI CC or MIDI Note-on/off messages. If 16 stages is not enough, up to 16 envelopes can be chained together, providing up to 256 stages. The envelope can be looped, which provides the mechanism for creating an LFO or a recursive sequencer. A chain of envelopes can also be looped.

There are multiple trigger modes available, including loop modes (if chaining envelopes, the 'Triggered single pass - no sustain' method is recommended).

There are various methods for controlling stage lengths (using either seconds or beats as the time base) and note lengths and velocity, if outputting MIDI notes.

If outputting MIDI notes, you can specify a root note. Note values are displayed as MIDI note value and, in brackets, the note value based on the root note.

There is a control to set the minimum stage length. This control is mainly for the click reduction method used by the ReaRack Amplifier module. The default value is 0.25 milliseconds. If you want a fast attack followed by a fast decay the recommended method is to use a step curve for the first stage and set the stage length to the minimum stage length. This will allow the amplifier to reach full volume before progressing to the decay stage. The startup default envelope, a standard ADSR envelope, is set up this way. If you want a slow attack, change the curve type to Bezier and increase the stage length.

There is a control for the sustain level, as well as the ability to adjust the sustain level in the graphics area. The sustain level control is provided mainly as a handle for modulation.

All controls can be modulated, except for Root Note and Minimum Stage Length. As most of the heavy calculation for this module is performed in the GFX section, modulation is not particularly smooth, as it is updated only 15 to 30 times per second. Only one control method for each function (stage length, note length or velocity) can be modulated. However, this still provides for up to 49 possible modulations at any one time.

The curve for each stage can be either a Bezier curve or a step. You can combine both Bezier curve and step stages in one envelope.

Two new 'Class' types have been added to provide the method for chaining envelopes together. Choose the class 'Chain Link' to link to other instances of the Envelope Multi-Tool. Use the 'Class Group or Chain Position' slider to designate the position in the chain. Select the 'Chain Looper' class for the last link in the chain, if you want the chain to loop.

The GUI is a combination of standard JSFX sliders and an interactive graphics area. The sliders should be self explanatory. The graphic UI is divided into three areas. The envelope definition area is where you choose the number of stages. The stage definition area is where you define the curve for each stage. The Envelope output area shows the final envelope shape. The graphical controls are operated as follows:

In the envelope definition area:
Click and drag the grey tag on the right hand end to change the number of stages.
If adding stages, hold down the shift key while dragging the tag to give all new stages the same curve type as the initial end stage.

In either the envelope definition or the envelope output areas:
Click in a stage box to make it the active stage.

In either the envelope definition, the envelope output areas, or the stage definition area:
Double click in the active stage box to toggle between curve and step modes.

In the stage definition area:
Click and drag the red, green, grey or yellow control points to control the shape of the envelope stage curve.
Double click a red curve end point to make it the sustain point (except in a loop trigger mode or single pass).
Double click the green middle control point to straighten the curve.
Hold down the ctrl/command key for fine movement of control points.

At some point I will update the ReaRack collection and the Manual. In the meantime, please provide feedback and bug reports if you get a chance to try out this module.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth

Last edited by Time Waster; 01-28-2019 at 10:52 PM. Reason: Fixed the link to the Multi-tool location.
Time Waster is offline   Reply With Quote