While testing to try to determine how Aftertouch is triggered we noticed MIDI-OX showing Note On and Note Off events occuring that we dont' understand.
Can anyone shed some light on this?
1. Init Normal (AWM2)
2. edit part 1 - set Low 'TG Vel Limit' to 127 matching the default hi limit of 127
3. pressed C3 VERY lightly and slowly from top of travel (rest position) to bottom of normal travel and then further pressing to enter the AT zone
The goal was to try to determine if AT is triggered ONLY by the physical key position or whether velocity was involved. Also trying to determine if AT triggering was dependent on a Note ON event being triggered first.
Below is what MIDI-OX showed on the 'Monitor - Output' window that we are trying to understand:
TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
0006686D 1 2 90 3C 00 1 C 3 Note Off
00066EAE 1 2 90 3C 00 1 C 3 Note Off
00068718 1 2 90 3C 00 1 C 3 Note Off
000689BB 1 2 90 3C 00 1 C 3 Note Off
00068D91 1 2 90 3C 00 1 C 3 Note Off
000690E3 1 2 90 3C 00 1 C 3 Note Off
000692A8 1 2 90 3C 12 1 C 3 Note On
000693DB 1 2 90 3C 00 1 C 3 Note Off
000697C5 1 2 90 3C 0B 1 C 3 Note On
000698FD 1 2 90 3C 00 1 C 3 Note Off
00069C32 1 2 90 3C 01 1 C 3 Note On
00069D00 1 2 90 3C 00 1 C 3 Note Off
1st observation - often we would get Note Off events without having a previous Note On event. Our expectation is that Note Off events will only exist for a key that is currently in the 'On' state. What do others think?
2nd observation - we typically get a 2nd Note Off event as we lift the finger up as we release the key. Why would there be a 2nd Note Off event without an intervening Note On event?
3rd observation - the list above shows Note On events for velocities of 18 (0x12), 11 (0x0B) and even 1 (0x01) even though the part limit low value was set to 127. This is expected behaviour since the velocity limits for parts/elements are filter limits for what gets sent to the Tone Generator. The limits don't prevent the MIDI events from actually occuring or being sent to MIDI output.
What we don't understand is:
1. why are Note Off events being created that don't match a corresponding Note On event?
2. why is a 2nd Note Off event being created as the key is released?
Since we are manually using finger pressure for the test it is possible that a finger is producing very slight up/down movements even though we are trying to create a slow, steady downward movement. That is it may be that all of the Note Off events we noticed were the result of 'upward' key movement even when we thought we were pressing the key down.
On the plus side we were able to determine that AT events will occur for a key even in the absence of a Note On event.
AT events will also be created when an unexpected Note Off event has occured as seen here:
TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
00220138 1 2 90 3C 00 1 C 3 Note Off
002207B0 1 2 A0 3C 00 1 C 3 Key Aftertouch
002207BA 1 2 A0 3C 01 1 C 3 Key Aftertouch
002207C4 1 2 A0 3C 02 1 C 3 Key Aftertouch
002207CF 1 2 A0 3C 03 1 C 3 Key Aftertouch
002207D8 1 2 A0 3C 04 1 C 3 Key Aftertouch
002207E0 1 2 A0 3C 06 1 C 3 Key Aftertouch
002207EB 1 2 A0 3C 07 1 C 3 Key Aftertouch. . .
002208F0 1 2 A0 3C 26 1 C 3 Key Aftertouch
0022090D 1 2 A0 3C 25 1 C 3 Key Aftertouch
00220935 1 2 A0 3C 24 1 C 3 Key Aftertouch
00220968 1 2 A0 3C 23 1 C 3 Key Aftertouch
00220972 1 2 A0 3C 21 1 C 3 Key Aftertouch
0022097C 1 2 A0 3C 1E 1 C 3 Key Aftertouch
00220984 1 2 A0 3C 1A 1 C 3 Key Aftertouch
0022098E 1 2 A0 3C 16 1 C 3 Key Aftertouch
00220999 1 2 A0 3C 11 1 C 3 Key Aftertouch
002209A2 1 2 A0 3C 0D 1 C 3 Key Aftertouch
002209AD 1 2 A0 3C 09 1 C 3 Key Aftertouch
002209B7 1 2 A0 3C 05 1 C 3 Key Aftertouch
002209C1 1 2 A0 3C 02 1 C 3 Key Aftertouch
002209CB 1 2 A0 3C 00 1 C 3 Key Aftertouch
002209E0 1 2 90 3C 00 1 C 3 Note Off
The above output occured with very slow, steady downward, and then upward key movement.
1. No Note On event occurs
2. a Note Off event occurs near the bottom of normal key travel but before that bottom and before the AT travel area
3. multiple Key Aftertouch events as the key is pressed further into the AT travel area showing increasing, and then, decreasing AT values
4. a 2nd, final, Note Off even as the key travels upward even though there was no Note On event generated
Our tests appear to show that AT occurs based ONLY on physical key position rather than velocity, force or other attribute of key movement and that it occurs without regard to Key On actually being triggered.
They also appear to show that, for a key position in the AT segment of key travel (some portion of the END of travel) new AT events are generated whenever the key position value changes. That is only ONE AT event is generated for a key position not consecutive, multiple, AT events with the same position value.
We aren't espousing that as being 100% correct - but that seems to be the rule out tests are showing.
Can anyone shed some light on why Key On and Key Off don't always occur in pairs?
This note off stuff is probably due to hysteresis on velocity=0. With a continuous sensor you'll see movement in what would "normally" be the dead area of an even triple sensor conventional keybed. The system can sense movement in this area and I suppose the designers elected to place hysteresis so there's a bit of margin on the "low" end of key travel. By "low" I mean when the key is not being pressed ... or barely pressed. And some of this may be accounting for the slop in sensors so they don't necessarily have to calibrate each one in a painstaking way. So lets say the sensor can sense between "0" and "1023" then perhaps they said the range of inputs from a sensor that are "off" are between 0-31 to give some margin on the "low" end so you don't end up with stuck notes. Then perhaps a consequence is that if you move from 0 to 1 or 3 to 29 or ... (you get it - different values within that "dead zone" range) the system issues a note off message.
Guessing here - none of us have the insight and hardly any of us have the access to those that do. Yamaha could provide some information and given that the system does this I would infer that the architectural corner painted into would make it a hassle to "fix" (although it could be done). So, this is my imagining of what's going on and could be wrong.
I think the key metrics are:
- Do you get stuck notes?
- Is the MIDI bus flooded with note events starving the channel, creating timing issues with other data (note or otherwise), or causing a functional issue with other MIDI-connected gear (be it Yamaha or non-Yamaha)?
- Are note off events happening when a sounding note shouldn't "turned off"?
... these sorts of things.
And if it's not causing these kind of issues then duplicate note offs would not otherwise present any issue. And, if that's the case, then this turns into an aesthetic-of-the-bits issue. Something that is not a mainstream-customer-facing thing.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Could spurious Note Off impact 'Release Velocity' functionality?
To be sure we aren't reporting these unmatched Note Off events as a current problem/issue that affects us but they did surprise us when they occured.
We are trying to plan how to test MIDI 2.0 functionality in anticipation of Microsoft releasing that support in the next few months.
And if it's not causing these kind of issues then duplicate note offs would not otherwise present any issue. And, if that's the case, then this turns into an aesthetic-of-the-bits issue. Something that is not a mainstream-customer-facing thing.
Agreed - it doesn't appear to be a 'current' issue. Internally the instrument knows if a note/key is ON so can easily just ignore any Note OFF events if the key isn't ON.
But the Note Off events are being sent out as MIDI. And, hopefully, the future will bring us support for 'Release Velocity'. So it raises at least a hypothetical question as to whether Note Off events should be sent out on MIDI if the note isn't ON. Otherwise an external device will need to deal with the issue of receiving Note Offs without having a prior Note On.
Not asking for an answer here - just expressing the thought process.
I think the key metrics are:
- Do you get stuck notes?
- Is the MIDI bus flooded with note events starving the channel, creating timing issues with other data (note or otherwise), or causing a functional issue with other MIDI-connected gear (be it Yamaha or non-Yamaha)?
- Are note off events happening when a sounding note shouldn't "turned off"?
... these sorts of things.
No - we haven't come across ANY of those quirks happening. That is why it isn't currently an issue for the instrument itself. Just that it might be, or might become, an issue in a network of instruments.
One school of thought is that MIDI events should accurately reflect the TRUE order that things happen in. And, logically at least, does it make sense to have a Note Off event for a note that wasn't on to begin with?
As shown earlier AT events are generated based ONLY (as far as we can tell) on physical key travel position and without regard to Note On/Off status, velocity or 'pressure'. As far as we can tell 'pressure' isn't measured or even taken into account. Only physical key position and timing between positions is being used. Again - as far as we can tell.
That is why one of us submitted idea #3291 on IdeaScale to implement 'Key Travel' scaling to allow the user to define at what physical key position, and order, key events should occur. For 'FullTouch Aftertouch' a user could define the AT zone to begin immediately upon the very first key movement - the entire range of key travel might be AT. Or a user could define Key On to begin only when position 50 is reached when the full travel range is 0-1023.
The user could also define when a Key Off event is generated: immediately as soon as the key is lifted at all? Or only after it is lifted by some specific amount? Or only if it travels 'upward' for some specific distance?
Thanks for the feedback.
Hi Toby,
Thanks again for sharing your observations — very useful!
I’d like to add something I’ve personally noticed with the Montage M8x: it’s nearly impossible to play fast repeated notes (repetitions) on the same key, especially compared to other weighted keyboards I’ve used (Nord Stage 4, CP88, etc.). It feels like the key doesn’t retrigger fast enough, or maybe the sensor doesn’t reset properly in time.
Do you think this could be related to what you're seeing in your tests?
In particular, the fact that Note Off events may be triggered unpredictably or without matching Note On events — could that interfere with how the keybed handles fast repetitions?
Would love to hear your take on it!
It doesn't seem to be related to what my tests show but you never know what is really happening internally.
Do you think this could be related to what you're seeing in your tests?
We are seeing repeatable results for the same actions.
In particular, the fact that Note Off events may be triggered unpredictably or without matching Note On events —
The major 'unpredictable' component is the inability to precisely control the position of the finger being used to press/release the key. We don't have a precise, automated device that can accurately move minute distances.
So when we are trying to VERY slowly press a key downward the finger could make a minute up movement. Picture holding your little out straight in mid-air and trying to keep the tip absolutely still. Occasionally you will notice slight up/down movement.
could that interfere with how the keybed handles fast repetitions?
Would love to hear your take on it!
Ever heard the expression 'be careful what you ask for'? Here is our take on it. For discussion purposes let's assume the following about key travel for Middle C:
1. the full range of key travel (full up to full down) is 1/2 inch
2. a key ON event will be triggered when a key reaches the 1/4 inch position from full up moving downward from full up
3. the next 1/8 inch of travel (from 1/4 inch to 3/8 inch) is normal key travel
4. the Aftertouch travel area begins at 3/8 inch of travel to full down at 1/2 inch of travel
5. a key OFF event will be triggered when a key, moving upwards, reaches the 1/8 inch position from the full up position
The above distances are approximate but the relative distances represent what we see in our tests.
Based on the above distances we notice:
The interval from 1/8 inch to 1/4 inch is a DEAD zone. Press down to 1/4 inch to trigger note ON but until the key lifts to 1/8 inch there will be no note OFF.
Fast repetitions? That means you have to make the key travel repeatedly at least 1/8 inch up and down to trigger fast repetitions. That seems quite a long ways to us.
1. load Init Normal (FM-X) - use FM-X because it produces a continuous sound that doesn't decay away
2. very SLOWLY press Middle C
3. notice how far you have to press the key before you hear a sound - in our example above we are calling that distance 1/4 inch but is could be a little more or less
4. start SLOWLY lifting the key
5. notice where the key is when the sound stops - in our example we are calling that distance 1/8 inch
So for our example there is about 1/8 inch of free travel before the note OFF event happens.
That seems like quite a bit compared to other synths/keyboards.
It also feeds into the thread question about why/how we are getting note OFF events, without note ON events, deep in the travel area just before the 3/8 inch Aftertouch distance. Because when lifting the key intentionally we can't cause a note OFF event to happen until the key gets back up to the 1/8 inch positon.
The way that the M8X works under the hood there is definitely opportunity for the firmware developers to improve this. Assuming the key location isn't sampled too infrequently. Not sure why that would be a thing. I usually do a test when I'm evaluating a new keyboard to see how fast I can repeat a single key. And I usually go around to other keyboards and see where the one I'm considering compares against the competition. Haven't done this for the M8X.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
How far is the note ON travel on a classic Montage? It is close to half the total key travel distance on the M8X. That seems awfully far especially considering what 'FullTouch' would need.
We did recently get a rare response from Ben to the Idea#3291 mentioned earlier about 'Key Travel' Scaling:
Thank you for your comment. This concept is on our radar.
-Ben
Research, Planning & Development Manager
Not likely that we will see that in the near-term but it's nice to get a response. You have to think they went with that more expensive keybed with something more in mind that what has been delivered to date.
It's not hard to imagine their internal dev OS versions having log/capture code that can try to capture a lot of multi-key travel data for analysis to see just how much they can capture without impacting performance. Maybe with a 'log' switch a dev can trigger that captures data to memory and then writes it to a thumb drive or SSD.
Classic Montage is a dual sensor so it can't necessarily get the highest score. I don't know what angle the sensors trip at. It's more than just this, though. It's also the mechanics/weight of the keys and materials and ... Hardly a single blank that can be filled out. What I do is play single notes as fast as I can mostly with one finger because that's the technique I generally use. Sometimes with two fingers (two hands) to get that alternating pattern going. I'll usually find that Yamaha's keybeds on the flagships and like class have keys that bounce back fairly quickly and score pretty high for me personally. I can't remember ever loving the Kurzweil keybeds. The CP triple sensor (Yamaha) was better than Montage but it's a different feel and I (think I) prefer the Montage's (classic) compromises to cover synth and piano. This is all talking the 88 - not synth action. I don't know/remember how the Montage M feels - only played it for an hour probably over a year ago by now. Whenever it was available in stores. And I wasn't interested in escapement at the time or PolyAT or ...
Since this is a brandy new keybed it's like a first year model car. Usually there's a lot to tweak and the first year models are typically bested by the following years. Luckily I think there are some strings to pull in the software department so hopefully some of the "clunkiness" can be cinched up. I mean this figuratively. I think they already know what the deal is - in terms of what isn't quite up to snuff in this department. We'll see what they come up with. Having independent tuning on a per-piano-key basis would be cool.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
Was just asking Note ON travel distance on the classic. One key at rest with no pressure SLOWLY depress the key.
On a classic Montage how far (1/8", 1/4", other) does the key move before the note is heard?
With the M8X it is at least 1/4" which is almost half the travel distance. Seems like that is really far.
The closest I can get (see sig line) is the S90XS. It's BHE similar to the XF8 (except with no aftertouch on the S90XS) -- which is similar to the Montage 8 (classic). I don't have the Montage (classic) 8 having opted for the lighter 7.
Not what you asked for, but as a datapoint the YC61 has its first sensor just before midway.
Source:
https://pianoclack.com/forum/d/380-sensor-switch-placement-in-digital-pianos
My point earlier was that key travel is just one factor in response to the tangent about repeated notes. If the action is "fast" vs "slow" then triggering in the middle is going to feel different between the two even when evaluating repeated notes. Since there are so many variables and all of them impact how fast you can repeat a single note - it's best to take an approach of using the hardware rather than trying to put together a blueprint of what makes it happen. Still, for education's sake it's fine to explore just one dimension and look at what key travel sparks the first sensor in various keyboards.
The S90xs lives in a keyboard sock without power or audio connections so I'd have to clean up the studio to start looking at that.
BTW: some look at this by placing different weights on the end of the key until they find a weight that makes the key cross the sensor. This would be another way to evaluate the same kind of thing although again not necessarily (completely) related to how fast you can retrigger a single note.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R