Thinking deeply about the shortcomings of envelope generators.

Official support for: soundemote.com
RELATED
PRODUCTS

Post

Envelope generators don't sound right, they never have, unless it is a special envelope generator that doesn't follow the strict ADSR paradigm. One example would be vactrol envelopes. They sound wonderfully plucky and organic. To solve this, I am thinking about envelope generators that are crafted specifically for a certain kind of envelope.

Image

Pluck envelope will have parameters such as:
  • Pluckyness: Controls the exaggeration of the attack phase
  • Muting: Overall envelope speed which simulates the degree of string muting or openness.
  • Sustain: How fast the exponential decay stage transitions to linear sustain.
  • Decay steepness: The length of the decay stage.
Similarly, reed envelope will have parameters such as:
  • Attack Time: Controls the exaggeration of the attack phase
  • Attack Shape: How long it takes to go from expo to log during the attack phase.
  • Sustain Drop Speed: How fast during sustain the level will drop.
  • Sustain Drop Level: Level/height of sustain after dropping.
There can be many styles of envelopes in a single synth accessible with a drop down menu.

Post

Aren't you talking about ADDRs? Well. With the pluck. That reed can be achieved with an ADR.

Post

Unaspected wrote:Aren't you talking about ADDRs? Well. With the pluck. That reed can be achieved with an ADR.
Sure. The other point is the detailed work in the algorithm to fine tune the envelope for smoothness and more organic shapes as well as create a responsive control scheme. It doesn't matter what the stages are, it's about how they connect and how easy it is to modulate/manipulate, how it sounds in that manipulation. Instead of a parameter like "decay time" which controls only decay time, there would be a single parameter called "pluckyness" which would reshape the entire envelope to provide a shape that makes sense. This would be difficult to achieve on a standard envelope generator control scheme because the user would have to precisely control multiple variables at once.

Post

<admin edited by mistake :( >

Post

f***!!! I edited your post instead of replying to it. Damnit. My admin powers are too easily abused.
Unaspected wrote:As for shape, how about low pass filtering the envelope output to smooth it out.
A simple implementation would reduce the amplitude of the signal and would mean your attack speed/shape is affected undesirably, slowed down or not sharp enough. There are better solutions such as using curve equations for speed and shape of stages. Some filtering/smoothing could be precisely applied within an algorithm as well.
Unaspected wrote:And there is, of course, a pluck parameter in Harmor.
Nice.

Post

Architeuthis wrote:This would be difficult to achieve on a standard envelope generator control scheme because the user would have to precisely control multiple variables at once.
Could go with a freedrawn MSEG while defining arbitrary points along the line for note-on, note-off, loops, and defining arbitrary segments that could be modulated by velocity, keyscale, etc.. That's the precision dream envelope for me.

But I like the way Zebra 2 simplifies it in their MSEG implementation while providing sufficient control over the events. It's definitely a faster workflow and gets you 95% of the way there. If other synths implemented that I'd be perfectly happy.

Post

Architeuthis wrote:f***!!! I edited your post instead of replying to it. Damnit. My admin powers are too easily abused.
Unaspected wrote:As for shape, how about low pass filtering the envelope output to smooth it out.
A simple implementation would reduce the amplitude of the signal and would mean your attack speed/shape is affected undesirably, slowed down or not sharp enough. There are better solutions such as using curve equations for speed and shape of stages. Some filtering/smoothing could be precisely applied within an algorithm as well.
Hehe. That's alright. I did that once on another forum. Felt very embarrassed but the guy was cool with it. No worries. :)

Indeed, there would be a lack of precision from smoothing with an LPF. Maybe it would be worth testing over the join for each section. Also, an APF might help with compensating for the slight phase offset introduced. Just an idea though - might be more trouble than it's worth.

Post

Image Image
Here are some curves I achieved today using an analog-style envelope. Very promising.

Post

Nice. How are you getting your curves? Are you using a transfer function or something else?

Post

Decay speed multiplied by the current value means the signal decays faster at the top and slower at the bottom, and at a certain point, I stop the decay value from affecting the decay speed, that's where decay speed becomes constant and therefore linear. The transition from expo to linear could be softened here as well. Ultimately I might scrap this method and go for some kind of curve formula so it's easier to dial in the spikiness of the peak and softness/speed of transition for expo decay to linear decay.

The problem that plagues digital envelope generators is loop mode. You need complicated math and prediction to know when the attack of the envelope signal hits the threshold and should go to decay. It's only a problem for high frequency looping. The EGs on the Oscilloscope Music synths have solved this issue somewhat, but it suffers from frequency locking with certain settings due to limits of the samplerate.

The envelope generator pictured above has prediction in place which allows it to perfectly loop.

Another method is to create a hybrid oscillator/envelope generator.

I'm still experimenting to see what uses/advantages each has.

Of course When you're not trying to loop envelope generators and just trying to create a nice pluck envelope, solving the looping problem is overkill. But as I tinker, I will continue to push the technology forward. Maybe one day there will be a single envelope generator that solves all problems.

Post

I challenge you to take your favorite digital synth that has looping envelope generators, make it loop at a frequency of around 1500hz to 5000hz. You will hear the EG locking onto certain frequencies as you make it loop faster and faster depending on oversampling. (The EG must be expo/log, linear doesn't count, that's too easy) I doubt anyone has seriously solved this problem.

Post

Architeuthis wrote:Decay speed multiplied by the current value means the signal decays faster at the top and slower at the bottom, and at a certain point, I stop the decay value from affecting the decay speed, that's where decay speed becomes constant and therefore linear. The transition from expo to linear could be softened here as well. Ultimately I might scrap this method and go for some kind of curve formula so it's easier to dial in the spikiness of the peak and softness/speed of transition for expo decay to linear decay.
So you're applying an exponential curve and 'sliding' the point of commencement up and down the otherwise linear ramp. You could always crossfade to achieve similar results - and then you could have multiple curves mapped around a single parameter. So you could create some interesting changes that way.

Architeuthis wrote:I challenge you to take your favorite digital synth that has looping envelope generators, make it loop at a frequency of around 1500hz to 5000hz. You will hear the EG locking onto certain frequencies as you make it loop faster and faster depending on oversampling. (The EG must be expo/log, linear doesn't count, that's too easy) I doubt anyone has seriously solved this problem.
Indeed, this becomes an issue with control signal rate LFOs over a certain frequency as well - where you end up with an almost flat average value being output. One method I seem to recall using was that whilst I had some smoothing on my LFO, I would reduce the smoothing as the frequency increased and this seemed to extend the working range. As I say, this was with control signals rather than audio rate modulation.


Another matter you might like to consider is reshaping the envelope peak when audio drops below a certain threshold to achieve subtle variety in pluck shape. It would probably be worth analysing variation in physical plucks of different string instruments to work out the most natural aspects to modulate. And it might be wise to use an envelope follower so that you can detect a rough rate of successive plucks and reform the envelope accordingly. So you might have more pronounced individual plucks but as they become more rapid, the envelope tightens up.

Post

control signals need logical operators AND OR XOR NOT so you can make envelopes/lfo's with signal maths

just my opinion/a thought

Post

low_low wrote:control signals need logical operators AND OR XOR NOT so you can make envelopes/lfo's with signal maths

just my opinion/a thought
or could you create the signal you want as an audio signal and then use it as a control signal/lfo

Post

low_low wrote:control signals need logical operators AND OR XOR NOT so you can make envelopes/lfo's with signal maths
Say more on that. I'm not familiar with this way of doing things.

BTW, the goal is to recreate the envelope of a muted electric guitar string pluck, palm mutes of various muting, which I also believe is vactrol-like.

Locked

Return to “Soundemote”