This topic covers an experimental ADSR patch uploaded to patchstorage, giving a few details and describing its current limitations.
Intro
There have been a few requests for native ADSR pipe or similar (mostly recently here and here, I think).
Users like @ahnatek have also wondered about a workaround in the meantime.
This patch is my first attempt to get Midihub to produce an ADSR CC envelope like this:
It’s (obviously?) monophonic!
As it outputs one set CC, even if the above issue were solved the envelope would apply to both notes, so amp & filter envelopes wouldn’t behave as we might expect in a polyphonic setting.
LFO output limits resolution
The max LFO resolution is 128Hz. This means that, once a “ramp” is less than a sec, the LFO will have fewer steps and become more “bitty”.
It also means finding the best “threshold” to transition from Attack → Decay is a bit approximate
If you think this limited solution might be for you, read on!
Modifiers Equalizer pipes in LFO lines can be enabled/disable/changed to give non-linear ramps Equalizer pipe in “ADR time” line is critically linked to the “Attack → Decay” threshold value and both will need tweaking if changed!
I’ll give more detail if requested, but won’t bother for now as it takes time…
The switching additions are quite expensive (21/77 pipes in total) but the live functionality may be worth it.
If pipes need to be saved, this line can just be removed or replaced with a multiple -stage mappings controlled by a 3 knobs)
In the next entry, I’ll discuss aspects of the virtual mapping set-up which I hope make it easier for users to adapt to their own controllers
The switches for the A/D/R “styles” work from a single key each.
This uses a technique involving Scale Remap where Attack, Decay & Release use up 3 “setting-notes” each.
As Scale Remap has 12 “setting-notes” available, this allows for four EQ settings for each stage should you want to augment the patch
(see Note 2 below)
Everything is self-contained
A brief glance at the patch shows two key aspects:
Firstly, all setting and trigger messages enter pipelines that end in Virtual G-OUT.
( Virtual G-IN is never used in the preset)
Secondly, all lines which create outgoing ADSR CC messages have no inputs (they all start with Generator LFOs).
This means that the preset is entirely self-contained: as long as any other use of Virtual G is either avoided (or filtered with care!), one need not worry about any interplay of CCs within the system.
Notes
Note 1
The 4-note range in the 3 Note Range Filters will match the In Low|High values in the Note Remap
Change the CC Remap In Low|High values to match your CCs. The second CC Remap refers to the 3rd CC value (this creates the Ch16 CC79 Sustain value.
CC Channels are unimportant as they’re remapped to CH16
Note 2
Transforms after the Scale Remap are in groups of 3:
• First a ‘Disable’ + Next Note Ch16 CC,
• next a Ch15 CC to enable one EQ then
• finally a Ch14 CC to enable the other EQ
As hinted above, there is space for 4 different EQs should users wish. Extras can follow the same pattern. (In this patch the ADR generator lines share identical EQs. There may maybe use-cases where different EQs are best)
…basically I had two ideas for further development seeing that a number of users have at least downloaded the VM version.
Basically, I know that patches like this are a bit intricate and so hard to extend or adapt, so I wanted to see if there is enough interest in any of the new idea to make it worth my while building them.
Now sdk75 has given me a 3rd, I’ll describe these each in the next posts and go by the number of likes as to which one (if any) to spend time on…
@sdk75 will correct me if I’m wrong, but being an AD curve this one is:
not waiting for a Note Off release, just going straight into Decay
I’m assuming this decay would be back to zero so anyone wanting to have AD from and back to some other level would just do a Rescale afterward
assume also that would still be options for different EQ curves and velocity scaling
Obviously, this would allow losing of a couple of pipelines, but also (I think) some interconnecting mappings (things like “I’ve finished” and “I was at this level when I got interrupted”) which would make it simpler still.
This is different from Idea 2 in that the patch is still monophonic but Note On triggers two independent ADSR curves with independent settings.
So this version might be used to to run curves on say cut-off frequency and resolution.
This patch could get big quick as it would seem to lend itself to other cool stuff like a delay for a given curve before it Attacks
Click if this sounds like your cup of tea!
PS. I’m aware that there are combinations like Idea2 with AD/ASR. Feel free to chip in…