Please may I refer you to MODX Reference Manual, Page 121. Particularly the three graphs I will call E, F and G, left to right.
For ease of analysis, here is a copy of the Ref Manual Text.
-----
Level :- Determines the output level of the Element.
Settings: 0β127
Level/Vel (Level Velocity Sensitivity)
Offset (Level Velocity Sensitivity Offset)
Curve (Level Velocity Sensitivity Curve)
Determines how the actual Velocity will be generated according to the Velocity (strength) with which you play notes on the keyboard.
The Offset parameter raises or lowers the level specified by the βLevel/Vel.β If the result is higher than 127, the velocity is set to 127.
The Curve parameter lets you select from five different preset velocity curves (graphically indicated in the display) that determine how velocity affects the actual Velocity.
In the illustrations below (E, F & G), the vertical axis indicates the actual resulting Velocity and the horizontal axis indicates Velocity with which you play notes.
Settings: Level/Vel: -64 0 +63.
Positive values: The more strongly you play the keyboard, the more the output rises.
Negative values: The more softly you play the keyboard, the more the output rises.
0: The output level does not change.
Settings: Offset: 0β127
I thought I understood this. I tried to use this (see context below), but got unexpected behaviour.
I looked at Graph E, and realised I do not understand what this parameter does and how to use it.
Graph E seems to indicate that a Key Press with any Velocity (1 through 127) will result in an Actual Velocity of 127 delivered to the Tone Generator, in the case represented by LINE A.
LINE A is the Graph Plot when Level/Vel = 0 and Offset = 0.
Is this correct? It indicates that with nothing (Zero) set, every key press (regardless of Strength) results in a Velocity of 127.
Graph E, LINE B is the case I would expect for Level/Vel = 0, and Offset = 0 { i.e. Y = X; Y=1, X=1; Y=47, X = 47 and so on}.
But...
According to the Reference Manual, LINE B represents:- Level/Vel = 32, Offset = 0. To me, Level/vel =32 means, for every Key Velocity Increment of 1, I am increasing the Actual Velocity sent to the tone generator by an additional 32 points of velocity.
i.e. Y =32X
I am confused. Whatever it is, I can't seem to get it to work as I would hope/expect.
For context, the "simplified" example is:-
I want to have a Part consisting of two Elements. Element 1 = Saw Oscillator and Element 2 = Triangle Oscillator.
By setting different Level/Vel values for each Element, I want strongly played notes to have more Saw/Brassy overtones, and softly playef notes to have more Triangle/Flutey overtones. Also, I don't want a large overall disparity in absolute Volume between Strong and Soft. I feel the Brass vs Flute sufficiently conveys the "light and shade" of the piece.
I had been attempting to do this with a kind of "cross fade" between Element 1 and Element 2 AEG Decay2 Slope and Decay2 "Sustain" level. This worked to a fashion, but I felt like the opposing AEG "graphs" meant I was loosing the desired "shape" of the Notes... I need more of a "Bloom and Fade" than a "Blat and Disappear".
Thanks in anticipation.
Only solace to contribute.
You're seemingly approaching my understanding of the EG's, that they're needlessly antiquated renditions of an approach that was outdated when it was first mainstreamed through the DX7.
It's a travesty that envelopes representative of the analogue synths of the 1980's aren't used for AWM2, let alone what's possible these days. Instead, it's hamstrung by usage of these extremely simplistic (and horribly crude) old EG's that were "designed" around limitations of the chips used back in the very early 1980's due to the dynamic computation requirements of FM etc.
How it works, technically, is like a lookup table. Hence the use of straight lines. It's much more complex maths (CPU time consuming) to lerp between points on a curve than straight slopes. So they use the simplest maths and lines. Fast for them, ugly sounding and hard to work with when you're wanting to be creative and sculpt sounds.
As a result, there's a quality issue, to the envelopes, that will compound your frustrations when attempting to use AWM2 to replicate the behaviours of just about every other envelope in VA, Romplers and Analogue synths.
I'm not overstating this, these are extremely primitive envelopes.
To get a better release, you need use the amplitude envelope to crimp the filter envelope, so that you get a slight easing of the release, in order to get any kind of satisfactory result approximating the popular sounds of just about every synth ever without the squelch of the filter's envelope release ruining your sound.
If you want to use velocity dynamics for filter control, there's a huge issue with time, in that the 0 point of time is not zero, and is multiplied by the rate changes you'll want to use with velocity. So you have to compromise on what the start of the envelopes do, to quite brutal starts, without the elegant ease-in-ease-out you'd like to have to get a nice start.
Unlike the release, the attack you should do the opposite, use the filter envelope to crimp the amplitude envelope, to get that nice little noisey start so common in good analogue synths.
Using a single cycle of the LFO of the element to open and close the filter can also help with this, but is crudely unable to be synced to tempo or arp, and limiting in other ways, plus you only get the one per element, so it's gone once you use it for this.
As mentioned previously, this is why EasySounds are rendering much of the envelope behaviours into their samples. It shouldn't have be done this way.
If Yamaha were to make a AWM2+, with much reduced polyphony, but curved envelopes for filter and amplitude, it'd be a truly amazing synth. As it is, it's a lot of trial and error work to get nice sounding "analog" and modern modular sounding attacks and releases. I've spent a lot of time on this, and now use a combination of quite a lot of elements contributing in different ways to get the kinds of nue-retro sounds I want.
Have a look at the Twisted's synth sounding stuff to see how he's done it, as I've taken that approach and gone from there, with some degree of success. It's a lot of work. Very time consuming and unfun. As an initial start point, it'll give you some ideas how to get towards that lovely modular sound you hear in modern EDM, and the retro wonders of things like the Korg Prologue.
@Antony
Please see the following tutorial article which will take you through how the Level/Vel (Level Velocity Sensitivity), Offset (Level Velocity Sensitivity Offset) and Curve (Level Velocity Sensitivity Curve) by working with practical examples. It is in the LEARN area of this site. (Although written for the MONTAGE, it applies in full to the MODX).
Tutorial article link --- Velocity Sensitivity
when it mentions "Wind & Strings" you can click on that to find the tutorial article that outlines how it can be used in a Performance application. The Woodwinds play when you play with a light touch and the string come in only when you play with gusto.
If you go through these articles, step-by-step, you will hopefully gain an understanding of exactly how to accomplish your goal. Be sure you are following its examples and that you are making/hearing the results as described.
The Performance "Wind & Strings" is where this is put to good use. (Since you have a MODX you will need to download the "Motif XF Performance" data to study that example)
Link -- MODX Official Download page - at the very bottom of the page
If you still have questions post back here.
@BM.... thankyou, I will follow your recommendations.
I thought I understood this. I tried to use this (see context below), but got unexpected behaviour.
I looked at Graph E, and realised I do not understand what this parameter does and how to use it.Graph E seems to indicate that a Key Press with any Velocity (1 through 127) will result in an Actual Velocity of 127 delivered to the Tone Generator, in the case represented by LINE A.
LINE A is the Graph Plot when Level/Vel = 0 and Offset = 0.
Is this correct? It indicates that with nothing (Zero) set, every key press (regardless of Strength) results in a Velocity of 127.
Graph E, LINE B is the case I would expect for Level/Vel = 0, and Offset = 0 { i.e. Y = X; Y=1, X=1; Y=47, X = 47 and so on}.
But...
According to the Reference Manual, LINE B represents:- Level/Vel = 32, Offset = 0. To me, Level/vel =32 means, for every Key Velocity Increment of 1, I am increasing the Actual Velocity sent to the tone generator by an additional 32 points of velocity.
A quick comment: Line "C" in the reference manual has a typo. It says Level/Vel is set to +64 but it can only be set to a maximum of +63. The graphs look right - but commentary has a typo.
And yes - for all 3 graphs if you have Level/Vel=0 then the output velocity will be 127. That's because this offset here is only positive and any level sensitivity offset value above zero will add to the incoming velocity. 127 is as high as you can go - so offsets do not affect the "A" curve in any graph.
EDIT: Adding context ...
i.e. Y =32X
Your math is wrong, btw. To represent values in one byte MIDI has to deal with values between 0 and 128. 128 different values. In this paradigm, the "meaning" of a value may not fit something easy like slope (m) of the formula y=mx+b as you're trying to do here. Ignoring representing negative values: A Level/Vel of 1 (if it did match your description) would only have 1 value less than 1 (0) and 126 values above 1 (2-127) to represent the different slopes. Instead, what they say is 32 represents the slope of "1". So values lower than 32 are like m=fractional; and values greater than 32 are like m=values greater than 1. I don't know what the math is exactly - but (Level/Vel / 32) as the slope may work out enough to properly associate. I don't think this is much needed for using the parameter - but may help associate what's going on better.
Also note that for the above, I am expressing the values as in the manual - as their decoded meaning. The actual MIDI representation of +63 is not going to be 63 decimal under the hood.
By setting different Level/Vel values for each Element, I want strongly played notes to have more Saw/Brassy overtones, and softly playef notes to have more Triangle/Flutey overtones. Also, I don't want a large overall disparity in absolute Volume between Strong and Soft. I feel the Brass vs Flute sufficiently conveys the "light and shade" of the piece.
LevelVel is a way to map input velocities (how fast a key travels past a sensor) to the loudness. Loud and soft. How does this factor into your description above? I'm not making the connection between loud and soft and the tonal characteristics you're describing.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
@J wrote...
"Level/Vel is a way to map input velocities (how fast a key travels past a sensor) to the loudness. Loud and soft. How does this factor into your description above? I'm not making the connection between loud and soft and the tonal characteristics you're describing".
Two Sounds A & B, each sound is in a Different Element (Sound Generator). Each Element has a different Level/Vel value.
A = Brass... French Horn
B = Woodwind... Flute
Playing Hard - Makes Sound A louder, B quieter... you hear mainly Sound A, with some B, overall volume = GA
Playing Soft - Makes Sound B louder, A quieter... you hear mainly Sound B, with some A, overall volume = GB
GB should be about the same Volume (dB) as GA. It should not be distinctly lower. If anything, GB may need to be slightly greater than GA becsuse it is a Softer/Warmer tone and has less "Cut" in a Band Mix.
The Play Hard vs Soft case is intuitive. Brass is Anger/Chaos, Woodwind is Lamenting/Reflecting/Comforting.
The normal mechanics of playing Hard vs Soft implies louder vs quieter.
Instead, imagine this as Studio Mixing... or Cross Fading between two instruments. Since there is no Studio or Sound Engineer, I want to create the cross fading automatically using key velocity as the mechanic.
(btw... my maths is good. Manual Syntax is misleading. Level/Vel implies "Level per Velocity".
Similarly.... "m/s" aka "metres/second" aka "metres per second".
Classic formula y/x = m -----> y = mx+c (m = -64 to +63, c=0)
EDIT... Aha... i see what you mean.... y/x = 1 is Line B.
A quick comment: Line "C" in the reference manual has a typo. It says Level/Vel is set to +64 but it can only be set to a maximum of +63. The graphs look right - but commentary has a typo.
I do not believe that is a typo. They are referring to the OFFSET being set at "64" (not +64)
Looking at the Element > "Amplitude" > "Level/Pan" screen you see a line with the following parameters:
Level - this is the Output Level of this Element 0-127 are the potential settings.
Level/Vel - this is the parameter that determines if the Element is going to respond to velocity and how it does so. The range is from -64 ~ 0 ~ +63. Here positive values makes the Element softer, this means you must hit the key harder to make the Element sound louder.. While negative values do the opposite.
Offset - Here the settings go 0-127 - the three diagrams in the manual are showing three different settings for the OFFSET (indicated in red in the diagram below)
Curve - there are five different velocity Curves 0-4.
In the manual you see the following concerning the OFFSET parameter...
A: Level Velocity Sensitivity = 0 - when the OFFSET is 0. Translation: when OFFSET is 0 the Element Level will be whatever the Level of the Element - That line that is "A" (ceiling of the box) says, that if the Level of the Element was 127. and OFFSET of 0 will mean the Element will play at maximum output level (fixed) with no sensitivity.
B: Level Velocity Sensitivity = 32 - when the OFFSET is 32. Translation: If you were to change the OFFSET to 32, the line that is B will be in affect. ("A" has moved to "B" - that is what that curved arrow is about) you will need to set the OFFSET to 32 to reach maximum output level (to reach the ceiling)
C: Level Velocity Sensitivity = 64 - when the OFFSET is 64.
X: Velocity with which you play a note. Left to right is your Velocity input
Y: Actual resulting velocity (affecting the tone generator) Bottom to top is your Output result
If you take a look at the Velocity Offset parameter for the entire PART
You get a visual that you can play with - this applies to all Elements in the PART as a whole... But in understanding how the OFFSET parameter (0-127) work, this makes it truly visual.
the tutorial on "Wind & Strings" Performance shows how this can be used to create musical results.
The "MediumLargeSection" PART plays with very broad dynamics. You need to really "dig in" to get the medium and hard level Waveforms of this PART to engage. Work with this PART solo'd until you are comfortable with its very wide dynamic range. This string section was setup like this so that when merged with the Woodwinds, you can perform the Bassoon, Oboe, Clarinet and Flutes when you play with low and medium velocities and you can bring in the larger string section when you increase the intensity of your playing.
The Velocity Offset (41) and Velocity Depth (85) are creating a situation where it takes more effort to initially make this PART sound. The normal 64/64 setting creates a situation for each unit effort input, there is a unit output. The graphic shows Loudness (Amplitude) as the vertical, while the amount of effort (Velocity) is the horizontal.
Initially, input effort is not rewarded with output. These two parameters can be used to change the Amplitude Envelope Generator of all the Elements making up this PART. At low velocities you should be able to give the feeling a small string ensemble backing the Woodwind ensemble. The Woodwind instruments play very easily at low velocities, as you increase your velocity intensity, not only are the strings coming up in volume but the size of the section increases, as well.
Here's my comment, I've bolded for emphasis.
A quick comment: Line "C" in the reference manual has a typo. It says Level/Vel is set to +64 but it can only be set to a maximum of +63. The graphs look right - but commentary has a typo.
And this from BM ...
I do not believe that is a typo. They are referring to the OFFSET being set at "64" (not +64)
No, the number "64" does show up as an offset - but I am not referring to that. Let me illustrate.
Source: https://usa.yamaha.com/files/download/other_assets/2/1192582/modx_en_rm_a0.pdf
The latest datalist and reference manual have errors.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
I don't know how I can make it any more plain that there's a typo boxed in red with an arrow pointing to it.
The values on each line are the values of "Level Velocity Sensitivity" otherwise known as "Level/Vel". Level/Vel only goes up to +63 but ..
Vector A is said to have a Level/Vel of 0 (ok)
Vector B is said to have a Level/Vel of 32 (ok)
Vector C is said to have a Level/Vel of 64 (not OK). That's a positive value, 1 above the max it can be.
I'm not red lining the offsets. Those are fine.
From what I could tell you got confused what I was red lining. Never the offsets. Offsets are fine. It's the Level/Vel value for "C" that's wrong.
We can agree that the page shows numbers that are not offsets - right? And one of those numbers that's not an offset is "64". Right? And that this value, that's not an offset, is out-of-bounds.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
I want to have a Part consisting of two Elements. Element 1 = Saw Oscillator and Element 2 = Triangle Oscillator.
By setting different Level/Vel values for each Element, I want strongly played notes to have more Saw/Brassy overtones, and softly playef notes to have more Triangle/Flutey overtones. Also, I don't want a large overall disparity in absolute Volume between Strong and Soft. I feel the Brass vs Flute sufficiently conveys the "light and shade" of the piece.
Soundmondo link -- https://soundmondo.yamahasynth.com/voices/90214
"TriSoft SawHard" - 2-Elements.
I'm afraid I put the Triangle wave in Element 1 and the Sawtooth in Element 2 but - this should serve to show how this can be done... You can tweak the Element 1 "OFFSET" - this is what make the Triangle Wave and the Sawtooth Wave have the relationship they do. I also use the Curve = 0 (SOFT curve - sound gets loud with little velocity applied) for the Triangle wave. I use Curve = 4 (WIDE curve - take more effort to get loud) for the Sawtooth Wave. ( You can experiment with the Curve = 1 HARD either of these Curves will exhibit the behavior you are looking for... customize these to your playing style
If you reduce Element 1's OFFSET from 65 toward 0, you will hear both Tri and Saw as pretty much equals... this OFFSET is a critical setting
If you are not on SOUNDMONDO... let me know I can post it as MODX CONNECT file.
Let me know.
@BM and @J .... thanks for all your time on this.
Reading your posts & tutorials I have come to learn that what I presumed was a basic "Depth style" or "Multiplier" parameter, is in fact a doorway to whole realm of functionality I didn't even realise existed. This is very useful info. I am already thinking of re-visiting past projects where this "undiscovered functionality" seems to be the very thing I had been looking for.
@BM... special thanks for writing an actual "solution" to Soundmondo... I will certainly check it out.
I think this "Function" perhaps deserves a "higher profile" in the Manuals. As it is, its kinda "hidden away" among more mundane parameters and functions. Perhaps a dedicated Section (with maybe a fuller, clearer explanation) is warranted... in the Parameter Manual.
Incidentally, my "mathematical" brain latched on to the text "Level/Vel" and automatically assumed a "ratio" type function. I can see now that "Level/Vel" is just a name. Yamaha had to call it something, and what they have chosen is good as any... once you realise what is going on "under the hood".
For any late comers reading/learning/discovering this for the first time...these are my thoughts...
The "added value" to me is the ability to change and control Timbre (not volume) with Velocity... by setting different Level/Vel, Offset and Curve values for each Element within a Part.
It can certainly be used for Volume changes and "feel" if desired... but the Hidden Gem is the "Timbre Change" ability. This of course assumes you selected "appropriate timbre" Elements beforehand.
I am very pleased. π
Just an afterthought...
Until now, the only "Velocity Timbre" functionalty I had been aware of was Velocity Switching (I believe this is the correct term). The classic example here is Pianos, where different Piano Samples (Elements) are "switched" depending on the Velocity Limits set for each Element. Stronger Velocities are assigned "Stronger Samples" etc.
I will experiment here with the B3 Organ. I am thinking I could implement some "virtual" DrawBar control, just by setting appropriate Level/Vel, Offset and Curve values for each footage Element. I will be a very happy man if I can get this to work. π
Yes, I tried to dig up a past post where I was also "fooled" by what I thought was an implied proportional nature of two parameters only to conclude that the slash ("/" ) was not meant to be a division but rather a separator like as in "Hamburger/Fries/Shake". I wasn't able to dig up that previous thread.
There are times when the math "gets lucky" and does match the slash in the shortened form of a parameter name - but the general theme is not to take the "/" as a literal ratio indication. It's the kind of situation where perhaps the UI and usability team could take a second look and see about proposing a better representation next go-around.
Thanks for clarifying (actually just underlining what you already said) what you were trying to do. I was stuck thinking about velocity switching to play one element at lower velocities and higher velocities to play the other element (not a cross-fade). And I read too much into the "bloom" as a previous descriptor for timbre. You could probably realize something close to crossfade by having 3 velocity levels placing a triangle at lowest velocities the saw at the highest and a combination in the middle. I'm thinking a 3rd waveform in the middle with one element sounding at a time but a slightly overlapping area can work too which may mean some similar level treatment for this overlapping area only.
BTW: I think you end up realizing that there are hardly any uninteresting parameters. At least the ones that can have an impact on the sound. Any parameter can be looked at through the lens of "how can I use this to coax a sonic result?" So it's worth some amount of time thinking of ways to use and misuse the parameters available. Including if any given parameter can be modulated or offset by something else. Motion control, motion sequence, LFO, sidechain, arpeggios.
Lots of things can get improved to streamline the experience of just using what's there. And there are also even real hard limits or features that could be improved say a next generation. But the real fun - in my opinion - is to "dig in" to the current offering and paint all the way to the edges of the lines ("limitations", functionality) available. I've seen arms thrown up too soon. You listen to the content creators like Manny and how he approaches sound design and attacking the parameters. Even discovering how to use them in apparently unintended ways to pull out a result never thought possible. This is what can happen with persistence. It takes a bit of a paradigm shift to check when to choose to blame the hardware vs powering through and pointing that energy inward.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
"Hamburger/Fries/Shake"
@J... well described.
Off the top of my head, I am sure I read/noticed a cross-fade parameter for velocity switched elements. Or it may have been for Keybanks, which I believe are a pre-fabricated "ready to go" velocity switched sample "pack". Anyways, whatever it was, I haven't got round to using it yet.
Thus far, I haven't got into consciously using/tweaking/creating velocity switched Parts. I usually just go with the "factory".
I have briefly thought about it, but to be frank, setting up velocity switching looks like it could be a real ball-ache (right up there with setting EGs across all elements in a Part... or even Performance).
The Level/Vel looks to be more a case of using your ears, less of using a slide-rule.
One difference is, you can make an Element Louder, by playing Softer... so it potentially offers you more real time control once you've got the "feel" for it. I would imagine in the case of Velocity Switching, if it doesn't "feel right", you'd need to tear it down and start again... that's a lot of screen touching.
Hopefully, I will get a chance to dig in this weekend. Its also about time I tried to get Soundmondo hooked up.