Multistage Envelopes

  • Multistage envelopes like the ones in Absynth would be nice. IIRC it even has a grid with a snap option so you should be able to recreate pretty much anything from Massive's "Performer".


    Some benefits

    • create complex rhythms and patterns
    • Improve upon the ADSR envelopes (control stage curve: convex/concave, tempo synced stages, additional stages such as delay and hold)


    I imagine that this could be quite taxing on the Virus due to the difference in data (more points/stages, data for stage curves) and computational requirements, between the current envelopes and multistage envelopes. Editing something like this on the Virus would be a royal PITA but a pleasure in TC. That said, is it possibly to share the workload with the VC plugin? Would it be possible to have the multistage envelopes computed on a computer and then the data sent to the Virus? I wouldn't mind losing both input channels (L&R) for this or incurring any latency it would introduce.


    Also I am wondering whether it would be possible to have more control over stuff like the bit depth/sample rate of envelopes and LFO's. Sometimes when I increase the volume of a patch signal due to the low output from the virus I can hear 'stepping' in envelopes and sometimes the LFO's. For instance if I want a pure sine (OSC1&2 WT Sine, OSC3 Slave, OSC Sync:On) from the virus the signal is extremely low so I will have to increase the volume in my DAW (stacking channels + limiting).You wouldn't need to much control, just three buttons for Low Quality/Draft, Normal/Fine and Super HQ (having the option for an OSC to output at, or close to 0db would be nice). Also I am wondering whether effects such as character (which cannot be turned off, only mixed in) and LFO's that aren't being used are still being computed on the Virus. This may be a silly question but I only ask because some effects can be turned off (delay/reverb/filterbank/chorus) whereas others can only be mixed out (character/phaser). An ON/OFF switch for pretty much everything (OSC's, Envelopes, LFO's) would be handy if it could save processor cycles.

  • Would also be nice if the Virus changed what was being edited (on the LCD) to whatever you click and please move Unison into the OSC section (for me this makes more sense)

  • Envelope/LFO/FM control stepping: I experience it to in OS4.5, when more then one part is playing (2 parts are enough to reproduce), even if I mute all parts but one in VC. Of course this is more apparent in snappy controls such as kick drum pitch slide or higher notes for FM (in fact when it comes to FM more then 4 or 5 notes on a single lonely part are enough). I believe it is some kind of a resource management problem.
    As VC is only a front end I don't see it performing calculations for the Virus, although it would be nice if there was an option to graphically describe a resulting sound and make VC find a way to implement it (or anything close) on it's own, using the controls available to the particular OS.
    Regarding multi stage, I say why not go all the way, and implement a free-form wave, that can be used by OSC and LFO (and thus an envelope in ENV mode). I can describe a full implementation of a 7 point 127 values resolution freeform wave using 14 sysEx values. Let's name the points a, b, c, d, e, f and g. Every point p is a pair p=(y,t) where 'y' is a value on the amplitude scale and a 't' value on the time scale in a cycle (you can call it phase if you want). a is an exception since t_a is always 0, so no need to explicitly store this, instead this byte can be used for something else such as declaring if each of the segments between the points is linear or curved (1 bit per segment: ab, bc, cd, de, ef, fg, ga). Also there is the constraint that 0 <= t_b <= t_c <= t_d <= t_e <= t_f <= t_g <= 127. There is also an option to make it look like the wave is made up of less then 7 points if for 2 adjacent points m and n, (y_m,t_m) = (y_n,t_n), so this is an "up to 7 points" freeform wave. If you have any free destination enumerations, you can do really wacky things with these points, setting them as mod matrix destinations. You can have more then one freeform wave, so you can use one with OSC and the other with LFO or even extend to 14 point freeform wave with the options: freeform 1, freeform 2, freeform 1+2.
    And by the way, isn't it time to extend the mod matrix destinations by simply adding an MSB? The current byte can stay as LSB for backward compatibility.