You asked - and our own Bad Mister answered - check it out!
Share any additional questions on this discussion string.
Thank you Cassie and Bad Mister 😉
Good article but I would like to understand the complete flow of Montage/MODX keyboard velocity processing. That is, the flow from the input MIDI Note velocity through to the MIDI Note velocity used by a part of a tone generator, such as the volume amplitude.
There seems to be three separate aspects to this processing from what I've read and seen on my MODX8:
1) The keyboard response curve selected in the Utilities section.
2) The Velocity Offset/Velocity Depth values set in a Part Common page
3) The Level/Vel/Offset/Curve values set in a Part - Element page
I assume the flow is something like Key Velocity from keyboard [0..127] -> (1) -> (2) -> (3) -> [0..127] value sent to tone generator.
As a software engineer with a Math degree and a musician it would be very helpful to have this overall flow explained in more detail.
My actual problem is that all of the Piano-based performances on my MODX8 sound way, way too soft. I have my JBL LSR 305 monitor speaker's cranked to MAX volume, the Main volume knob on the MODX8 set to MAX volume and everything I play sounds very muffled. If I hit the Audition button on any Piano performance with these settings it shakes the walls of my house it's so LOUD.
I've used lots of other keyboards before this and never had this problem. I could always find a keyboard response and volume setting that worked for my playing style, but not on the MODX8. I love this keyboard, but I'm almost at my wits end trying to figure out how to play it without going to the gym and bulking up so I can hammer the keys loud enough to get a reasonable playing volume.
Help!
You're asking about velocity but you're also talking about the experience of listening to the output of the tone generator. Velocity determines both which sample is triggered (in cases where there are multi-samples at different velocity levels) and also is fed into some nominal volume level of which velocity is only one component of the sounding volume.
The other side are volume-related items which do not necessarily depend on velocity.
At the lowest level, there is volume vs. time as recorded in the original sample (for AWM2, sample-based side). Also the amplitude envelope generator (AEG) which varies over time and is split into Attack, Decay(s), and Release. Over time this curve affects the volume.
There are volume offsets at various levels of the Performance (common, part, element). There are controllers that can be the source for affecting volume offsets and these can be automated to change over time (motion sequence, knob automation) or can be set to track a physical controller like a knob/wheel/aftertouch/etc.
There is the possibility of LFOs affecting volume.
There's sidechain.
Effects can contribute to the volume as they also can have levels associated which can change over time or statically increase or decrease the volume.
Not all Performances have all of these - but there are a lot of possible contributors to the sounding volume-over-time response of the keyboard.
Some of this was attempted as a question before:
https://www.yamahasynth.com/ask-a-question/release-time-duration
That's more on the volume side and less on the velocity side.
Some of this stuff is proprietary and therefore will not be met with much information. Experimental data is usually the best you can do (use a calibrated solenoid to strike keys with fixed speeds i.e. velocity and record MIDI velocity reported values at different speeds of the solenoid. Vary the curves to see how the affect the outcome. Plot the curves and fit the curve with your own math.)
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Yes, I realize there are lots of factors that can affect the volume of a tone, not just the key velocity, and perhaps I am asking the wrong question.
My issue is simply this:
- I call up a MODX preset piano-based performance and make no changes to it at all.
- I press 'Audition' and adjust the Main volume knob of the MODX to a comfortable listening level.
- I stop the Audition and attempt to play the keyboard, but the volume level is always very low. Even hammering the keys as hard as I can only gets to a fraction of the 'Audition' volume.
My question is:
- What knobs or settings do I need to change to produce a volume comparable to what I hear playing back from the Audition?
I am assuming the Audition button is really playing back an internal MIDI sequence (as opposed to an audio recording) and so is sending MIDI key velocity data through the MODX internals, much like my keyboard playing is doing.
I've also watched enough YouTube videos of people playing the MODX that I'm pretty sure they are not playing every note fff.
I think my next experiment will be to pipe the MODX MIDI into Ableton Live with a Velocity Scaler plugin and see if I can dial up the MIDI key velocity sent back to the MODX up high enough to reach reasonable audio levels coming out of the MODX.
I've also tried setting the FIXED keyboard velocity curve in the MODX Utilities and trying to match the audio produced playing with the FIXED velocity setting to the perceived volume I get when playing normally using the LINEAR curve and it does look like my playing style is generating MIDI key velocities on the low end of the range (somewhere around a FIXED velocity setting of 25 maybe?).
Like I said, I've used quite a few other keyboards over the last few years and have not had any major difficulties matching their keyboard response to my playing style and obtaining reasonable audio volume levels without having to crank everything up to the max. I'm hoping there's simply some "magic" setting I'm overlooking on the MODX.
On every other keyboard, it's usually some kind of a global setting that needs to be adjusted. The only global setting I've found on the MODX is the keyboard velocity curve in Utilities, and I've tried all of the curves without finding a really good match for me. It they also had a max input velocity setting that the curves scaled up to (e.g. my key velocity of 80 scales up to the MIDI max of 127), that would probably solve my problem.
When I look at ARPs - some of them have unreasonably loud velocity values. This is genre specific. It seems like the rock ARPs are set to very high velocities and some other types of ARPs are in the more reasonable range. The audition button (and using built-in audition phrases), as an ARP itself, is not necessarily the best way to set the volume of your instrument. Although - you could record your own user auditions and use those which will match your own playing.
So I do agree that Audition and/or ARPs are generally recorded at higher velocities than one would reasonably play. Be aware that Audition can have a programmed velocity shift which would have to be saved in a custom user or library Performance. In other words, I do not see a global/system parameter to offset the audition velocities.
When I set the global velocity curve to "Soft" - velocities I achieve almost match what the Audition button is doing for "CFX + FM EP". I still have to play a little heavy-handed.
Matching velocity levels of the audition button is one thing - and then getting the volumes in line can be a different thing. Because you may be able to get the volumes to match a reasonable range and level. This would also make the audition button playing sound louder - but maybe that isn't the most important to you.
I've adjusted the volume outputs of my keyboard under [UTILITY] -> "Settings" -> "Audio I/O" by boosting the output gain on the audio path I was using at the time. For live, I use Main L&R and have had to boost that before. Today I have it set to +0dB - but sometimes the backline tells me my output is "too low" so I adjust it here. Since this is a gain for everything - the auditions are going to sound louder when bumping this up.
Setting your velocity curve to "Soft" is one thing you can do. You can also go into each PART (one by one) and edit velocity curves there. This is more of a hassle since you cannot tell the instrument to adjust all PART programmed values at the same time. That aside - you would sett the PART Common "Velocity Depth" or "Velocity Offset". I would set the Depth to a higher value. If you change the offset - then this will decrease your range. The depth will just decrease the "space" between soft and loud - but still allow for the softest velocities.
The elements have places where you can change curves - but these are level responses to velocities. So although this would change things - it would not do what you're asking which is to make mashing keyboard keys show up as higher velocities.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Thank you for taking the time to provide such detailed feedback and help...much appreciated.
I do agree with you about some of the auditions being a bit "hot" and not being the best reference for setting volume levels. My concern is having to set both my speakers and MODX volume knobs to their max settings just to get a reasonable (not loud) output volume while I'm playing, since that basically gives me no headroom for making any adjustments.
Prior to posting here, I actually had created a number of piano-based Performance preset clones where I'd gone in and adjusted the individual Part Common Velocity Depth setting all the way up from 64 to 127 (and left the Velocity Offset alone), which does help quite a bit. And I agree that it is a hassle having to set each Part individually. Maybe combined with the 'Soft' velocity curve this will be the best result I can achieve. This is how I got to this article in the first place...trying to track down how the MODX handles velocity information.
Since you've obviously been using your keyboard a lot longer than the one week I've had my MODX8, I'm fairly satisfied now that there is no "magic" setting that is going to resolve this problem for me instantly, so it's time to move on. It would be nice though if Yamaha added a parameter similar to the Part Common Velocity Depth, but on the Utility page next to the Keyboard Velocity Curve setting. I think together those two parameters would allow most musicians (and certainly me) to adjust the keyboard to their normal playing style without having to copy and edit all of their favorite Performances.
I'll have to see if Yamaha has a "Suggestion Box" somewhere on their web site.
Thanks again for all your help...
There's a website dedicated for sending suggestions which, in turn, are voted on publicly. The site is monitored by Yamaha's R&D group - so there is gravity at using that channel for suggestions vs. other possible channels.
https://yamahasynth.ideascale.com
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Thanks for the link...I just signed up and will submit my suggestion. Earlier I sent an e-mail to the YamahaSynth "Contact Us' e-mail address, but your link seems more likely to have someone actually consider the problem/solution.
By the way, I finally had a chance to check the range of MIDI Note On velocity values being sent over the USB link to my computer using different MODX Velocity Curves. Even using the "Soft" curve I was typically only seeing values in the 50's and 60's at most (nowhere near 127). Even at painful key strike levels the highest I ever got was around 121,
I might suggest they add something like the screen calibration page, but for the keyboard, where the musician plays a series of notes in the range from ppp to fff and let the MODX figure out the best scaling factor for the user, which could then still be couple with a selected Velocity Curve to create a mix of different dynamics the user could choose from.
Due to velocity offset possibilities - it's difficult to make sense out of results unless we agree on a common test environment. Not having a MODX - I cannot test that (others can). However, results do not mean much unless a preset Performance is given. Something everyone can load and will have the same setup minus the global curve setting.
Using Montage - when I set the Performance to "CFX + FM EP" and the global velocity curve to "Normal" - using the preset without modification I get - I get the following:
Playing middle C with left-hand pinky (weak finger) at low volume = 0x38 (decimal 56). That's just below the middle of decimal 64.
When I dig in - right hand index finger, no arm = 0x62 (decimal 98) = 98/127*100 = 77%. Not bad.
If I really dig in - using some arm (not flying or fingers bleeding) = 0x76 (decimal 118).
If I wanted to get a 127 - I can do that. I wouldn't personally want to set velocity-triggered events at 127 - I'd set the threshold lower.
My results do not seem that different than yours other than 118 (close to your 121) I would not characterize, for myself, as painful. So maybe there is a difference between either our keyboard responses or our perception due to different natural tendencies (heavy hand vs. light hand).
I guess I do not see your keyboard as wildly off. This is the same setting + response I've been using without issue for a year or so and have not had any issues I would place on velocity range.
Calibrate-to-the-user wouldn't be a bad idea. When you look at different keyboards you see different options, flexibility, and "takes" on how to address this.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Thanks again for your feedback and input...it's very useful to see the kinds of normal velocities you achieve. I'd already come to the conclusion, based on our prior exchanges, that I was probably not dealing with a defective keyboard sensor. More likely that the MODX simply has a different range of output values than say my Kawai MP7 for the same range of playing velocities, which I'm very used to playing. In fact, my next test will be to see what range of values I get out of the MP7, just as a point of comparison.
I think the current Keyboard Velocity Curves serve the useful purpose of providing different types of dynamics, which can be useful for different instrument types as well as playing styles. In general though, I assume those curves provide a translation from an assumed input velocity range of 1-127 from the keyboard to an output velocity range of 1-127 fed to the MODX/Montage internals. Which is why I think the "calibrate to user" feature might be handy. It would allow a simple scaling of the 1-70 (say) range I normally play to the 1-127 range the keyboard is capable of producing, which can then be translated by the selected Velocity Curve to the 1-127 range fed to the internals.
One possible way it could be implemented would be to always show the field currently labeled "Fixed Velocity" (currently only shown when the "Fixed" velocity curve is selected). For the other curves it could be relabeled something like "Max Velocity". Then the user could dial in the max velocity they would normally play at (if they know it) using the data dial OR tap a new "Keyboard" button (similar to what they have now when the user wants to set "split points" using the keyboard for a Part/Element). In this case though, turning on the "Keyboard" button would allow the user to play the keyboard and let the MODX display the maximum velocity they hit during the time while the "Keyboard" button is enabled). This would be an alternate way of entering the max velocity value instead of using the data dial). The final value would then be used to scale the 1-max velocity value range to the 1-127 range. Of course, the default value for "Max Velocity" would be 127, corresponding to its current behavior of assuming every player is using the full keyboard velocity range.
Just thinking out loud about what I might want to submit to the link you posted earlier...
If you can experiment with an instrument that has one part (like "CFX Stage" ) - you can see how it's possible to get a response more like the Kawai by adjusting Velocity depth as mentioned before. It becomes more of a chore to adjust if there are multiple PARTs to deal with - but if you get a "feel" on an easier preset, you can transfer this to more complex Performances.
Source: www.bonedo.de
Velocity Depth is in the far right/bottom corner.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Yes, that's actually one of the first "solutions" I tried, and now I have about a dozen or so Performances that I've customized using that technique, which mainly consists of changing the Velocity Depth to 127 and leaving Velocity Offset alone. The only drawback obviously is having to do the same customization for each new Performance I want to use if it seems like it needs it.
By the way, I had a chance to monitor velocity values out of my Kawai MP7. They do run run a bit higher than the MODX (it's much easier for me to play notes in the 70's and 80's, sometimes reaching up into the low 90's), but overall the range isn't that much different than the MODX. However, I don't need to crank my JBL's up to max velocity like I do on the MODX to get a reasonable volume level (same model JBL's on both set-ups). Not sure why that is.
I also dug around in the MP7 manual to see how they handle velocity curves. It turns out they don't really have a predefined set of velocity curves for the user to pick from. Instead they have a set of 5 "User curves" which the user sets up by selecting a particular curve to set and then playing the keyboard gradually increasing from soft to loud. The MP7 then uses that range of key velocities to automatically create a custom velocity curve for the user. The user can create up to 5 custom curves, presumably allowing them to handle different types of musical material if they need to.
I must have set that up when I got the keyboard 4 years ago, and then forgot about it, since it played just the way I liked once I set it up. I guess that's part of the reason why it's been my favorite keyboard to play since then. It's also similar to the approach I suggested yesterday, so it still seems like it might be a good idea to suggest it to Yamaha as a feature to add to the MODX.
Did you ever come to a suitable resolution to your output problem?
Did you adjust the MODX in Utility -> Audio I/O -> Main L&R to +6db; or even the +12...?
My actual problem is that all of the Piano-based performances on my MODX8 sound way, way too soft. I have my JBL LSR 305 monitor speaker's cranked to MAX volume, the Main volume knob on the MODX8 set to MAX volume and everything I play sounds very muffled. If I hit the Audition button on any Piano performance with these settings it shakes the walls of my house it's so LOUD.
I've used lots of other keyboards before this and never had this problem. I could always find a keyboard response and volume setting that worked for my playing style, but not on the MODX8. I love this keyboard, but I'm almost at my wits end trying to figure out how to play it without going to the gym and bulking up so I can hammer the keys loud enough to get a reasonable playing volume.
This is the biggest reason I am paying double to get the Montage 8 over the MODX8. The keybed is graduated on the MODX8, so it triggers the samples differently from the lower keys all the way up to the highest keys. Maybe with some pianos that separate the highest keys and mid-lower part, you can set the Velocity Depth on just the mid-lower parts to trigger velocities better; however, after playing the Montage 8 and have it so perfectly trigger all keys on the entire keybed the way they should be, and feel more like a piano, I couldn't justify getting the MODX8. I could notice a huge difference in quality of the feel of the keys on the Montage8 compared to the MODX8. The MODX8 feels like a weighted keyboard, but I could tell it was a cheaper feel and more like an upright piano. Whereas the Montage8 in contrast, felt more like an actual full acoustic grand to me. If piano is not your main thing, then the MODX8 might do the trick with a bit of velocity depth adjustment on pianos that have the mid-lower parts separate from the high parts.
I proposed on https:yamahasynth.idealscale.com that they introduce a special global BHE Emulation setting for the MODX8 to compensate for this, or at the vary least, provide Velocity Scaling programming as an option.