Synth Forum

Notifications
Clear all

AEG Decay Times not equal Release Times - Remedies?

8 Posts
3 Users
0 Reactions
260 Views
Posts: 1717
Noble Member
Topic starter
 

NB this is for Amplitude Envelopes on Elements

All other things being equal, Decay times are not the same as Release Times, and in the wrong direction.

So a Release of 81 Time units is longer than a Decay of 81 Time units.

Are there ways to make sure that Decay (should the player hold the note rather than release) at least match the Release times (whatever they are)?

 
Posted : 17/04/2022 1:13 am
Posts: 1717
Noble Member
Topic starter
 

Bill! You legend.

This made my week, month and year, so far. My commiserations. You've brought much solace to this grumpy soul.

What you've provided is, in many, many ways, better than an absolute answer. It relieves me from (yet another) aspect of thinking I might be wrong, and nuts.

I've gone through multiple variants of the same paths you describe, trying to resolve this, and many other issues, with the AEG and FEG.

Recently, I came to a somewhat odd conclusion, put in the low hanging fruit thread, that the simplest way to solve many of the more precise and demanding issues of sound design with AWM2 and FM-X, would be a Cutoff Envelope Generator (CEG) and a Resonance Envelope Generator (REG), so that we can at least resolve some of the issues caused by both the indeterminates and oddities of the AEG and FEG.

I thought that was a weird conclusion to come to, but having read this, and knowing that nothing about how the AEG and FEG operate is going to be changed (legacy compatibility etc), I'm now convinced that the single best way to improve and extend the sound design capabilities of both engines would be adding a CEG and a REG so that the filters can be much more fully controlled and enjoyed.

 
Posted : 17/04/2022 2:46 am
Posts: 1717
Noble Member
Topic starter
 

[quotePost id=116137]

So a Release of 81 Time units is longer than a Decay of 81 Time units.

Is that decay of 81 for the 1st, 2nd or both decay periods?

Sorry - but I don't see that the release time values are at all the same as, or even proportional to, either or both decay time values. Even less so when you consider that the release activity will short circuit everything preceding it when the key is released.
[/quotePost]

I deliberately left the method of determination out in the hope someone had discovered some kind of predictable relationship between the Decays and Release. I've tried every single possible combination of Decay1 and Decay2, and been unable to find a way to make them (whatever those two values are) operate in the same manner as the Release, for any and differing values of Release Time units.

This has led me to the conclusion that these are actually exponentially flavoured ease in/out curves, wherein the key determinants of their strengths (of the easings) are somewhat lazily coded for CPU performance, in that they flex the distance (time units) to meet the requirements of the curves, rather than doing the more complex maths to flex the curves to exact time units.

 
Posted : 17/04/2022 3:03 am
Posts: 1717
Noble Member
Topic starter
 

[quotePost id=116140]
And then one last (potentially) useful bit

Also Key-on Velocity can be used to influence Release Time, so it is a dynamic value.

Say what? Kind of leaves you wanting to know when (if) we will get the rest of that information.

How can you use Key-on Velocity to affect release time? How does it affect it? And a few related questions come to mind.
[/quotePost]

This is BadMister doing a very good impression of a programmer writing documentation, using the word "can" as shorthand for "if you use this feature, and set a value, then it WILL influence Release Time (and other time values, depending on the Mode you can (must) pick."

What he's referring to, but not precise about, is the Vel/Rate box in the bottom left of the AEG and FEG screens, and the MODE of its operation - the option to the immediate right (defaults to ALL but doesn't have the most useful MODE as an option...).

First concern: this Vel/Rate ratio is exactly configured to work in the opposite way to which you'd think it useful and intuitive. Negative values extend time via greater velocities, positive values reduce time.

I use these two boxes a lot. They're probably the centre of my sound design process on the MODX, such that all other considerations in my sound designs are ultimately targeting the maximum usage of velocity for rate changes, in conjunction with depth and extents of influence and pitch.

And I deeply wish that the rate of Motion Sequences and the Animations of the SuperKnob could also be controlled by velocity. Another low hanging fruit.

This ability to control the rates of AEG and FEG via velocity are part and parcel of the legacy advantages of using old code... that's quite efficient, in the AEG and FEG curve creation, such that they're flexing time "keyframes" via their algorithms without any accountability and exactitude for the user.

Hope I'm not keeping you up, Bill. This stuff is super boring. I do some of my own DSP programming, and a lot of animation and VFX coding, so have forgotten more about curve creation and calculation than I currently remember. The lines we're presented by Yamaha are, in most cases, curves, and have exponential qualities, I'm sure. This is most evident with the Attack Time of AEG and FEG, as it's not 0 when it's zero, and is heavily influenced by the Vel/Rate value at its extremes, such that you get huge, long slow (never hear) attacks at 0 with a Vel/Rate less than -60

 
Posted : 17/04/2022 3:41 am
Jason
Posts: 8221
Illustrious Member
 

Removing other variables such as velocity related, it seems for AWM2 that an attack time of 127 is roughly equivalent to a release time of 110.

That's up to some amount of interpretation. Attack quickly rises to an audible level and starts to slow in its rise. The release quickly falls and starts to slow in its fall. So the release sits at a very low level for a long time before finally cutting off completely - and you may elect to have a different threshold for when the level is low enough to call it "off" (even if it's a whisper for seconds longer).

I've asked for absolute information for the curves since I've had applications where just plugging in the values would have been easier. And there's value in painting by the numbers for some work and using your ear for other work. No one way should be touted as the end-all.

That said - without official documentation, we're left with using our ears. Since the curves are not linear - the release is going to be somewhat of a function of what the noise floor is (from other sounds that may be layered including drums, pads, etc) as one possibility. Or your own sense of "silent" which may be seconds away from when say a spectrum analyzer would detect silence.

A(t)@127 == R(t)@110 (Attack time at 127 equivalent to Release time at 110) was arrived at fairly unscientifically by counting. A stopwatch or metronome for reference can improve the accuracy. And then, for me, I wanted absolute time deltas for other reasons -- so your application may tolerate more or less slop.

For me I was just trying to get a ballpark of what the relationship is at Attack's maximum limit. Above R(t)@110 there's a lot of space (absolute time) to R(t)@127 since we start to enter territory where small incremental values change the resulting more drastically on release. And this area is outside of any comparison with attack since it's the "extended" range for release.

One would have to plot a few more points between to get a more general relationship of the times between A(t) & R(t) (between @0-@126). But it wouldn't take long to get it compiled. At least, it would take less time than it would take for any official response if that's the information you needed.

FM-X attack and release times seem to be roughly equivalent to me throughout the range of (t)=0-99.

For AWM2 testing I chose an organ element such that the sample itself had little amplitude variation. And I removed reverb since even "Init Normal (AWM2)" has reverb in its effects send. There's probably better basic waveform shapes (as in square vs. triangle vs sine vs ...) that would work just as well as the organ Waveform (as in Yamaha format sample) I chose to determine the release time equivalence at maximum attack time.

I should also advertise that attack went from 0 to 127 (level) and release went from 127 to 0 (level). I didn't try to look at how level may alter how long it takes to reach the next stage (Attack to Decay 1, or Release to silence)

I say this because "time" is NOT the amount of time it takes to travel from one stage to another. If you lower the target level "distance" from the start of the previous stage - then the absolute time to reach the next stage will decrease.

By example ... for AWM2 if I start at an initial value of 0 and attack time is 127 and the attack level is 127 then this will take about 30 of my rough "counts" to reach Decay 1. The way I have this setup is set the Decay1 time to 0 and Decay 1 level to 0 then Decay 2 level at 127 and Decay 2 time at something large enough so I hear where Attack ends (when I hear it go silent and don't have to wait forever to get back to 127).

... ok - so if it takes 30 "counts" to go from Attack to Decay with an attack "time" of 127 - then if I change the attack level to say 64 - with the same attack "time" - now it only takes 8 "counts" to reach Decay 1.

So "time" is not the time between stages or when I changed the attack level - it would just rise slower and take the same 30 counts to reach Decay 1. This isn't the case. To me "time" is more like "speed". The same speed and less distance means your time will be shorter. A further distance and the same speed and the time is longer. And by distance I am looking at the delta between levels as distance. And, to keep the analogy - the "time" value is "1/speed". Since larger time values go slower.

... so ...

If, for example, your attack goes from 0 to 127 (level) and your release goes from 64 to 0 - then "time" will mean very different things in these two situations. If you see this as inverse speed then you can see even if the AEG "time" values were equivalent (assuming level distances were the same) then you would see that with a shorter distance for the release that the release would take less time to get silent than the attack time takes to get to the Decay 1 stage.

There's other threads where official sources point out that "time" is a misnomer. Or that if you see this as an absolute time to transition to the next stage (A to D1; D1 to D2; D2 to R; R to silence) then that would be incorrect. I think when Yamaha referred to this same parameter as "rate" - they got the name to better match the function. Because one could at least better see that the same rate with a different distance (level differential) would result in different times.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 17/04/2022 6:35 am
Posts: 1717
Noble Member
Topic starter
 

[quotePost id=116140]You may find several of Bad Mister's comments interesting ...[/quotePost]

Should add... this is the most fun and insightful read I've had on these forums. Bravo!

@Jason
I think your use of the word "speed" and identifying and confirming that Time is a complete misnomer is salient, in the extreme.

The number seems to be arbitrarily ranged through an arbitrarily exponentially expressed range of speeds/slopes at (what we might best think of as) midpoints, that are subsequently curved to their ends, such that "Time" is a flexible construct dependent on the blend of speed/slope and the algorithms for curves AND the subsequent and preceding values, as these are probably hermite or bezier-like keyframes.

It's all well and good to go on and on about ear usage for timings as though asking for numbers representative and relative to others is some kind of silly old call to meritocracy and exactitudes irrelevant to musicality and instrumentation.

But there will always come a time when it's useful to understand responses, relativity and ranges. To this end, the use of a screen... for a graph... could have solved all this, without having to give actual values, instead clarifying ranges and relationships and responses visually, so we at least know what is what, relative to what each other.

MGGA.

Make Graphing Great Again.

or

BBG.

Build Back Graphically

// pick appropriate political sloganeering

 
Posted : 17/04/2022 7:35 am
Antony
Posts: 745
Prominent Member
 

@Bill.... earlier in this thread you asked about what governs "Sustain Time".

The answer is, there is no Time Value.

The Traditional ADSR "Sustain" was a Volume level only. On the MODX the Sustain Level equates to Decay 2 Level.

The Sustain level is held for as long as you hold down piano key. In AWM2 this assumes the Element/Sample is a looping sample. Not all of them are (e.g. a Guitar String pluck).

When you release the piano key (Key Off) the Release Time then, and only then, kicks in.

As regards to general correlation between various EG parameters, as well as between EGs (AEG, FEG, PEG), the official answer was "it doesn't matter". The advised method of use was to adjust the parameters until it sounds good/right to your ears.

This is in fact not so hard to do. And you can assign the values to Assign Knobs to help.

One insight/confirmation that BM provided is that the parameters are not linear. That is, the "quantisation" is not linear. Without doing the math... you get finer adjustment (higher resolution) at lower parm values, and coarser adjustment (lower resolution) at higher parameters values.

My ears also tell me that, if you could see the EG plotted, it would also be non-linear between nodes (the square dots on the graph). I sense the lines are in fact a shallow concave (exponential). Of course, my ears could be deceiving me.

Lastly, I did do some mathematical evaluation on what was actually happening with the EG's, particularly the Depth value... which I can confirm is a direct Multiplier with regards Level values. I got stuck when trying to figure out if it also multiplied time values. I thought not, but to be honest it left me puzzled, because it was hard to measure.

I resigned to just using my ears... it is not so hard to be honest.

BTW... the EG Levels, just like the Control Assigns, create "Offsets"... as in they add or subtract to/from the stored Parameter value. I am fairly sure this is the case, because it is possible to get the EGs to "max out", even though you can still keep increasing the EG level... but nothing changes. You can easily prove this with the PEG... a few cents short of 2 Octaves max. Level = 2, Depth = 63 is approx 1 semitone (its a bit flat).

 
Posted : 17/04/2022 1:30 pm
Jason
Posts: 8221
Illustrious Member
 

I cannot really defend the strange presentation of parameters that are confusing. However, I can say that this forum is a resource for those who end up here where, at least, some amount of supplemental information can be exchanged to help bridge the gap.

Yamaha doesn't change their interface/parameters/etc from generation to generation. Once learned - it's unlikely a new synth is going to look much different should you elect to keep a new Yamaha in your synth rotation. I wouldn't mind usability improvements. Until then, I'm happy to help with what I can.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 17/04/2022 8:49 pm
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us