Creating custom voice: YEM Amplitude settings

Started by BogdanH, June 16, 2023, 01:06:28 AM

Previous topic - Next topic

BogdanH

This article is meant for those who create custom voices for Yamaha arranger keyboard by using Yamaha Expansion Manager (YEM). The process is usually as follows:
1. Download audio samples
2. Prepare samples (cut to desired lengths and check/adjust levels)
3. Open YEM and choose Create Normal Voice
3. Import samples for each desired note and define range covered by each sample
4. Set other parameters in Common and Element section

One of the settings in Element section is Amplitude, which has the following settings by default:


As we can see, Amplitude contains settings comparable to ADSR envelope:
Attack=Attack, Decay=Decay1, Sustain=Decay2 and Release=Release.

There exist many types of instruments (piano, guitar, violin, flute, etc.) and so some questions arise: is this default setting good for all kind of instruments? And further: if we change these values, what impact will that have on resulting sound?

In YEM manual, there's only info about purpose of Amplitude settings, however it doesn't answer any practical question. Some will say "we know what ADSR is.. and by changing parameters there's also graphical envelope representation...".
Before I continue, let me tell you: Graphical envelope presentation is not correct and values for settings are completely misleading! Now I ask again: Do you know what impact on sound these numbers in Amplitude settings have?

I don't blame you, if you don't. The thing is, when we work in YEM, we can't check the change by listening and so we usually use default settings. But those familiar with ADSR envelope may try to change Amplitude settings, by using values that seem to be "logical" -and as we will see, get unpredictable (undesired) result.

All Amplitude settings accept values 0-100. Level values for Decay1 and Decay2 are pretty much logical: it's loudness, which goes for 0 to 100% (at value of 100 sound will have the loudness of actual sample).

The problem is with Time values. What unit is used here? Seconds? Milliseconds? Percents?
It's to be assumed, that Time=0 means "no time" (in sense "immediatelly"). For example, if Attack Time=0, there will be no attack delay (sound will start at level as defined in sample).
But what will happen if we change Attack Time to 100 (max value)? How much time is that? It for sure can't be 100s or 100ms.. is it 100% of sample length? But we can also additionally set Decay1 and Decay2 Time to 100. What now?.. is it 300% of sample length? -which obviously can't be.


If we observe graphical presentation, then there only appears one conclusion: Because sample length can only be max 100%, and because Time=100 is used 3-times, it means 100%/3=33%. That is each Time value will affect only one third of the sample. For example, if sample length is 3sec, then 1st sec is Attack, 2nd sec is Decay1 and 3rd sec is Decay2.
Such explanation nicely explains graphical presentation... But sadly, it only works if Time=100 is used for all three parameters. If Time=50 is used for those three parameters, graphical presentation remains the same as for Time=100 (athough it squeezes horizontally) -which suggests that sample length becomes shorter?! But how do we calculate and predict the result?
You're already confused? Get a beer... because truth is even more complicated.

Ok, let's forget Attack for now and only concentrate on Decay1 and Decay2.
Here you can see resulting sound for Time=100 and Time=50:



As you can see, the resulting timings are way different than shown in YEM graphical presentation. And no, it has nothing to do with sample length -result is the same for 2sec sample and 8sec sample.

Explanation
Time values in Amplitude make non-linear changes. That is, value 80 for example, is not twice as much as 40. Theoretically all Time values from 0 to 100 have impact on resulting sound, however at values below 50 impact is insignificant. That is, Time=0 and Time=48 will practically give the same result.

Here's a graph showing what percentage of total sample length is affected at certain Time value:


Observations from above graph:
1. At Time value of 50, only 1% of total sample length is affected. The only situation where we actually wish to use Time=0 is for zero Attack. In all other cases it only makes sense if value is 50 or bigger.
2. At Time value of 81, 90% od sample is affected and at value Time=82, result already exceeds 100%. That means, using value bigger than 82 makes no sense at all.

Related thoughts:
To get predictable result, sum of Attack+Decay1+Decay2 Time(s) should be max 81. However that also depends of envelope shape we wish to get. For example:
Attack Time=65 =10% -now we have 90% of sample left
Decay1 Time=81 =90% -now whole sample (100%) is covered
-in this case, Decay2 Time and Decay2 Level values don't matter (because it's above 100%).

If we also wish to use Decay2, then we need to reduce Attack and/or Decay1 Time values. For example:
Attack Time=65 =10%
Decay1 Time=76 =45%
Decay2 Time=76 =45%

In most cases we usually deal with samples which already have defined ADSR shape (i.e. piano sound sample). In such case we usually set Attack Time to 0. But how about Decay1 and Decay2? If we wish both to have Level=100 (which is usually the case), then we can just keep default values (both Decay Times values at 80) -because Level isn't changed, it doesn't matter if sum of Times exceeds 100%.

Release Time defines how long the sample will sound after the key is released. At default Time value of 50, that will be 1% of total sample length.

My personal conclusions:
1. In most cases default Amplitude values are just fine. If at all, then we might wish to add some Attack Time, to soften attack (i.e. hammer on piano sample). Similar for Release Time, which depends on personal taste.
2. Visual presentation of Amplitude settings is completely misleading.
3. Because the way how these settings work, Amplitude settings (as it is) is totally unusable (unless you use above graph and do the math).
4. On arranger keyboards we usually deal with samples which already have ADS parameters defined by sample itself. And so instead of having this mess, it would be less confusing for user, if there would only be Attack and Release setting. In this case values 0-100 could actually have normal meaning.

My final thought... hasn't changed: YEM is a total mess! On Yamaha arrangers creating custom voices is only a feature and can only be done at amateur level. I say that because YEM manual is useless and I assume similar unpredictable behaviour for other settings as well.
Additional problem is, we can not check changes immediately -we first need to crate install pack, then install the pack on keyboard and check the result. If we don't like it, then we apply different settings in YEM, by hoping this time it will be ok and repeat checking process. Yamaha... seriously?

That's it. I hope this article was informative for some.
Bogdan
PSR-SX700 on K&M-18820 stand
Playing for myself on Youtube

Misu

Hi Bogdan,

Interesting presentation even if along the way you kind of lost me - I went to google translate.
<<Additional problem is, we can not check changes immediately -we first need to crate install pack, then install the pack on keyboard and check the result.>>
This happen because we don't have Genos or T5.
My PA1000 is the same like PA4x except the construction and memory, In my SX-900 many from Genos or T5 are missing.
My usual setting are 1&2 and indeed important is attack and release.
On the 3 picture is my last discovery <<cut off variable with velocity>> used for pianos - for low velocity big cut-off.

Best regards!

[attachment unavailable]
PSR SX-900; PA 1000; AKX 10

BogdanH

hello Misu,
Thank you for commenting. I tried to explain the best I can (with my limited english language) and I also wished to make the article short. As you realized, the topic itself is quite complicated and not easy to understand without trying to replicate on your PC/keyboard.
Btw. I don't have Genos, but from what I could read the voice creation process is the same as for PSR-SX. The only advantage on Genos is, that we can also edit Element settings for preset (built-in) voices in YEM. However even in this case, to hear the changes we made, we then need to create install pack and then install the pack on keyboard. If I'm wrong in my thinking, then some Genos owner is welcome to correct me.

Your first picture makes total sense to me, but could be hard to understand by others (because sample length is not visible in EG presentation). Because of that, I prefer to use default settings and only change Release Time if needed -and of course, result is the same as with your settings.

Greetings,
Bogdan
PSR-SX700 on K&M-18820 stand
Playing for myself on Youtube

Misu

Hi
My friends with Genos tell me that, with Genos connected to the computer - (Midi Output - Digital Workstation),
when you modify a parameter in YEM, you push the key on the computer(YEM) and hear the resulting sound on keyboard.
I have never seen.
Regards!
PSR SX-900; PA 1000; AKX 10