Topic: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Hi everyone,

Yamaha hybrid pianos such as the N1X make use of Polyphonic Aftertouch to control the damper duration, depending on the exact key release position and speed.
In other words, the way the damper comes back is captured in real time and translated into detailed MIDI messages.

Here is a short video showing the relation between different release speeds/positions and the MIDI messages generated:

https://youtu.be/f8BN2OpVljc


Currently, Pianoteq already has a Note Off Velocity curve, which is great.
It would be fantastic if Pianoteq 9 could also offer an option to drive this curve with Polyphonic Aftertouch instead of Note Off Velocity, for users with hybrid instruments that send this data.

This would make it possible to fully exploit the Yamaha hybrid MIDI implementation, resulting in much greater realism and precision in damper release behavior.

Regards,

Olivier F.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:

It would be fantastic if Pianoteq 9 could also offer an option to drive this curve with Polyphonic Aftertouch instead of Note Off Velocity, for users with hybrid instruments that send this data.

My understanding is that it already does, you just have to select the "Disklavier" dialect in the MIDI panel. I am not so fortunate to own one of these instruments, so I can't test if it works as I think it does, but you might be.

Where do I find a list of all posts I upvoted? :(

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

dv wrote:
Olivier W wrote:

It would be fantastic if Pianoteq 9 could also offer an option to drive this curve with Polyphonic Aftertouch instead of Note Off Velocity, for users with hybrid instruments that send this data.

My understanding is that it already does, you just have to select the "Disklavier" dialect in the MIDI panel. I am not so fortunate to own one of these instruments, so I can't test if it works as I think it does, but you might be.

Yes, Pianoteq can indeed rename it as “Disklavier dialect” with “Damper position” in the MIDI panel, but this has no effect in practice. Pianoteq 8 does not actually process or respond to these Polyphonic Aftertouch damper data.

I’ve tested it directly: the messages are transmitted, but Pianoteq simply ignores them in the current version.

For clarity: these are standard Polyphonic Aftertouch MIDI messages, with values typically between 32 (damper near the strings) and 20 (damper far from the strings).

On Yamaha hybrids such as the N1X, the behavior is also conditional:
    •    If the key is released very quickly, no transitional aftertouch is generated.
    •    The detection is based on both the position and the speed of release.
    •    In other words, the Polyphonic Aftertouch messages themselves are conditioned by the release velocity.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:

I’ve tested it directly: the messages are transmitted, but Pianoteq simply ignores them in the current version.

Thanks for clarifying the way that if functions in the N1X (which is about what my understanding was -- without having ever touched such an instrument myself).

What you describe as Pianoteq behavior is strange and was not my understanding of selecting that dialect. Have you tried contacting support for either/both bug report, feature request or help setting it up correctly?

Where do I find a list of all posts I upvoted? :(

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

dv wrote:
Olivier W wrote:

I’ve tested it directly: the messages are transmitted, but Pianoteq simply ignores them in the current version.

Thanks for clarifying the way that if functions in the N1X (which is about what my understanding was -- without having ever touched such an instrument myself).

What you describe as Pianoteq behavior is strange and was not my understanding of selecting that dialect. Have you tried contacting support for either/both bug report, feature request or help setting it up correctly?

No, it’s just an interpretation of the XP dialect, but it isn’t actually implemented in Pianoteq. It’s not a bug — it’s simply a capability that’s missing: the dialect is interpreted in terms of MIDI description, but it has no real use inside the Pianoteq engine.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Could you not just map channel pressure to Damping Duration?

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:

No, it’s just an interpretation of the XP dialect, but it isn’t actually implemented in Pianoteq. It’s not a bug — it’s simply a capability that’s missing: the dialect is interpreted in terms of MIDI description, but it has no real use inside the Pianoteq engine.

I see. In this case, requesting the new feature from your user area is the best way to get their attention. Raising the issue here helps only insomuch as if there are other people interested in doing the same request to show the developers there is interest, which of course there might be, but given that we are talking about a pretty rare instrument, maybe there are not that many people.

Best of luck getting this feature implemented!

Where do I find a list of all posts I upvoted? :(

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

I'm a user who would be very interested in seeing this feature, though I don't have an N1X. I have a Kawai NV5, which unfortunately has neither polyphonic aftertouch nor note-off velocity sensing. But I consider this a crucial missing feature in my instrument which I will keep in mind when I go shopping for a new instrument someday, maybe two or three years down the road, and I hope Pianoteq by then will have the best state-of-the-art support for simulating damper release.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

dv wrote:
Olivier W wrote:

No, it’s just an interpretation of the XP dialect, but it isn’t actually implemented in Pianoteq. It’s not a bug — it’s simply a capability that’s missing: the dialect is interpreted in terms of MIDI description, but it has no real use inside the Pianoteq engine.

I see. In this case, requesting the new feature from your user area is the best way to get their attention. Raising the issue here helps only insomuch as if there are other people interested in doing the same request to show the developers there is interest, which of course there might be, but given that we are talking about a pretty rare instrument, maybe there are not that many people.

Best of luck getting this feature implemented!

It’s not really that rare, actually — all Yamaha Disklaviers, the P-525, some Clavinova models, and the entire line of traditional acoustic silent pianos with the SH3 system use polyphonic aftertouch. And if I was able to build a Mac app in Swift that converts those aftertouch messages in a calibrated way into standard Note Off velocities for Pianoteq, then it would literally take the Pianoteq developers just a few seconds to add it directly.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:
dv wrote:
Olivier W wrote:

No, it’s just an interpretation of the XP dialect, but it isn’t actually implemented in Pianoteq. It’s not a bug — it’s simply a capability that’s missing: the dialect is interpreted in terms of MIDI description, but it has no real use inside the Pianoteq engine.

I see. In this case, requesting the new feature from your user area is the best way to get their attention. Raising the issue here helps only insomuch as if there are other people interested in doing the same request to show the developers there is interest, which of course there might be, but given that we are talking about a pretty rare instrument, maybe there are not that many people.

Best of luck getting this feature implemented!

It’s not really that rare, actually — all Yamaha Disklaviers, the P-525, some Clavinova models, and the entire line of traditional acoustic silent pianos with the SH3 system use polyphonic aftertouch. And if I was able to build a Mac app in Swift that converts those aftertouch messages in a calibrated way into standard Note Off velocities for Pianoteq, then it would literally take the Pianoteq developers just a few seconds to add it directly.

The P-525 in my experience does not actually transmit that data via MIDI. I am loathe to say I am certain, but from my own personal testing, and from reading the actual midi reference guide, it does seem that these data exist internally but are not broadcast. Though of course as you point out Pianoteq can't yet use that data anyway, but for the future, there are edge cases like the P-525 that don't even send the data. I actually sold mine for this reason - no hope of creating a converter or for future Pianoteq support with this model.

+1 for the feature request though. However, if they are going to bother, they may as well do it properly, in other words, not by a conversion to a note-off velocity. Damper position is a superior measurement and should therefore be added to the model if a meaningful improvement were to be made.

Last edited by thesloth (01-09-2025 15:38)

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Wrong

I own a Yamaha P-525 myself, and it does transmit a polyphonic aftertouch message when you release a key slowly.
That message reflects the damper gradually coming back into contact (smart release behavior), like a per-note half-pedal.

If you release the key quickly, no such message is sent — because there’s no need to represent a partial damper position.

So yes, the P-525 does send that MIDI data (Polyphonic Aftertouch) , but only in the specific case of a slow release.

and you can convert this with an external MIDI SCRIPT to use Velocity NOTE-OFF of Pianoteq, and set the note-off velocity curve

But it would be nicer to have this feature in Pianoteq 9 without external script.

Last edited by Olivier W (01-09-2025 21:52)

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:

Wrong

I own a Yamaha P-525 myself, and it does transmit a polyphonic aftertouch message when you release a key slowly.
That message reflects the damper gradually coming back into contact (smart release behavior), like a per-note half-pedal.

If you release the key quickly, no such message is sent — because there’s no need to represent a partial damper position.

So yes, the P-525 does send that MIDI data (Polyphonic Aftertouch) , but only in the specific case of a slow release.

and you can convert this with an external MIDI SCRIPT to use Velocity NOTE-OFF of Pianoteq, and set the note-off velocity curve

But it would be nicer to have this feature in Pianoteq 9 without external script.

imho, it is not very accurate as
1) In absence of optical sensors measuring the real key position the poly AT message is just  an estimation of position based on speed (considered as constant) between the bottom and middle sensor , which in itself is not really accurate.
2) The conversion of an already estimated value of  a note off  value will be also an approximation as you are using timestamps on the receiving host and not using real delta time between the original midi events ( poly AT and fixed Note   off messages) . It would work better with Midi 2.0 and proper time stamps but in Midi 1.0 with such close events , it is far from perfection. 
3) No poly AT for a given threshold seems like an approximation as well, as  in a modal representation if you represent all the model each string partial modes as damped harmonic oscillators, the various modes will stop resonating at different times and thresholds.

So it seems to me like a lot of effort to try to reproduce variable let-off with such a protocol. Why not put pressure on Yamaha to provide note-off velocity in the midi output ? It is easy to do , they have the data ( speed between the middle and top sensor measured internally)  with no jitter and comply with midi standards. Imho , even if note -off is not  perfect to model accurately key release it is nevertheless better than what they propose here  and closer to reflect pianist's intention but  it was probably easier for them to use  the smooth release internal protocol that they had developed with the DiskKlavier.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

I own both a Yamaha P-525 and an N1X, and honestly, you are completely misunderstanding how Smart Release works. It is far more advanced than Roland’s or other brands’ simple Note-Off velocity systems. Yamaha’s algorithm doesn’t just estimate based on release speed — it actually detects the real damper position in combination with velocity, and only recreates the aftertouch effect if necessary, because it knows exactly how long the damper stayed in an intermediate position between two states.

When I play on the P-525 or the N1X, this effect is reproduced incredibly faithfully compared to my real grand piano. Your explanation is full of assumptions without actually studying the real response of these keyboards. Smart Release is much more sophisticated than a crude Note-Off velocity approach, which only looks at release speed without knowing whether the pianist released the key fully or only halfway.

So in short: you’re completely wrong — Yamaha’s Smart Release is a far more evolved system, and your points 1–3 show that you don’t really understand how it works in practice.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Pianistically wrote:
Olivier W wrote:

Wrong

I own a Yamaha P-525 myself, and it does transmit a polyphonic aftertouch message when you release a key slowly.
That message reflects the damper gradually coming back into contact (smart release behavior), like a per-note half-pedal.

If you release the key quickly, no such message is sent — because there’s no need to represent a partial damper position.

So yes, the P-525 does send that MIDI data (Polyphonic Aftertouch) , but only in the specific case of a slow release.

and you can convert this with an external MIDI SCRIPT to use Velocity NOTE-OFF of Pianoteq, and set the note-off velocity curve

But it would be nicer to have this feature in Pianoteq 9 without external script.

imho, it is not very accurate as
1) In absence of optical sensors measuring the real key position the poly AT message is just  an estimation of position based on speed (considered as constant) between the bottom and middle sensor , which in itself is not really accurate.
2) The conversion of an already estimated value of  a note off  value will be also an approximation as you are using timestamps on the receiving host and not using real delta time between the original midi events ( poly AT and fixed Note   off messages) . It would work better with Midi 2.0 and proper time stamps but in Midi 1.0 with such close events , it is far from perfection. 
3) No poly AT for a given threshold seems like an approximation as well, as  in a modal representation if you represent all the model each string partial modes as damped harmonic oscillators, the various modes will stop resonating at different times and thresholds.

So it seems to me like a lot of effort to try to reproduce variable let-off with such a protocol. Why not put pressure on Yamaha to provide note-off velocity in the midi output ? It is easy to do , they have the data ( speed between the middle and top sensor measured internally)  with no jitter and comply with midi standards. Imho , even if note -off is not  perfect to model accurately key release it is nevertheless better than what they propose here  and closer to reflect pianist's intention but  it was probably easier for them to use  the smooth release internal protocol that they had developed with the DiskKlavier.

I own both a Yamaha P-525 and an N1X, and honestly, you are completely misunderstanding how Smart Release works. It is far more advanced than Roland’s or other brands’ simple Note-Off velocity systems. Yamaha’s algorithm doesn’t just estimate based on release speed — it actually detects the real damper position in combination with velocity, and only recreates the aftertouch effect if necessary, because it knows exactly how long the damper stayed in an intermediate position between two states.

When I play on the P-525 or the N1X, this effect is reproduced incredibly faithfully compared to my real grand piano. Your explanation is full of assumptions without actually studying the real response of these keyboards. Smart Release is much more sophisticated than a crude Note-Off velocity approach, which only looks at release speed without knowing whether the pianist released the key fully or only halfway.

So in short: you’re completely wrong — Yamaha’s Smart Release is a far more evolved system, and your points 1–3 show that you don’t really understand how it works in practice.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:
Pianistically wrote:
Olivier W wrote:

Wrong

I own a Yamaha P-525 myself, and it does transmit a polyphonic aftertouch message when you release a key slowly.
That message reflects the damper gradually coming back into contact (smart release behavior), like a per-note half-pedal.

If you release the key quickly, no such message is sent — because there’s no need to represent a partial damper position.

So yes, the P-525 does send that MIDI data (Polyphonic Aftertouch) , but only in the specific case of a slow release.

and you can convert this with an external MIDI SCRIPT to use Velocity NOTE-OFF of Pianoteq, and set the note-off velocity curve

But it would be nicer to have this feature in Pianoteq 9 without external script.

imho, it is not very accurate as
1) In absence of optical sensors measuring the real key position the poly AT message is just  an estimation of position based on speed (considered as constant) between the bottom and middle sensor , which in itself is not really accurate.
2) The conversion of an already estimated value of  a note off  value will be also an approximation as you are using timestamps on the receiving host and not using real delta time between the original midi events ( poly AT and fixed Note   off messages) . It would work better with Midi 2.0 and proper time stamps but in Midi 1.0 with such close events , it is far from perfection. 
3) No poly AT for a given threshold seems like an approximation as well, as  in a modal representation if you represent all the model each string partial modes as damped harmonic oscillators, the various modes will stop resonating at different times and thresholds.

So it seems to me like a lot of effort to try to reproduce variable let-off with such a protocol. Why not put pressure on Yamaha to provide note-off velocity in the midi output ? It is easy to do , they have the data ( speed between the middle and top sensor measured internally)  with no jitter and comply with midi standards. Imho , even if note -off is not  perfect to model accurately key release it is nevertheless better than what they propose here  and closer to reflect pianist's intention but  it was probably easier for them to use  the smooth release internal protocol that they had developed with the DiskKlavier.

I own both a Yamaha P-525 and an N1X, and honestly, you are completely misunderstanding how Smart Release works. It is far more advanced than Roland’s or other brands’ simple Note-Off velocity systems. Yamaha’s algorithm doesn’t just estimate based on release speed — it actually detects the real damper position in combination with velocity, and only recreates the aftertouch effect if necessary, because it knows exactly how long the damper stayed in an intermediate position between two states.

When I play on the P-525 or the N1X, this effect is reproduced incredibly faithfully compared to my real grand piano. Your explanation is full of assumptions without actually studying the real response of these keyboards. Smart Release is much more sophisticated than a crude Note-Off velocity approach, which only looks at release speed without knowing whether the pianist released the key fully or only halfway.

So in short: you’re completely wrong — Yamaha’s Smart Release is a far more evolved system, and your points 1–3 show that you don’t really understand how it works in practice.

  the issue is that you think that the p525 has the same capabilities than the N1X , which is not true AFAIK . For a start the poly AT message sent by the P525 has a fixed value , so any smooth release implementation is kind of lost .
Secondly , it would be great if you address the points I have made with actual arguments based on  formulas or valid counter arguments   rather than ´you are wrong’ type of argumentation . I believe I was courteous enough to not say ‘ you are wrong’ but to attempt to demonstrate the approach was not correct in my opinion . I would be grateful f you follow the same ethic in the discussion otherwise there is little value discussing it further.

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Yes, P525 it's a fixed value but not a problem with my advanced script ( i know because i've both P525 and N1X)

OlivierW's reply to Aftertouch for damper release (Yamaha N1X & PTQ or  VI Labs Modern D)'
https://pianoclack.com/forum/d/2105-aft...modern-d/9

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:

Wrong

I own a Yamaha P-525 myself, and it does transmit a polyphonic aftertouch message when you release a key slowly.
That message reflects the damper gradually coming back into contact (smart release behavior), like a per-note half-pedal.

If you release the key quickly, no such message is sent — because there’s no need to represent a partial damper position.

So yes, the P-525 does send that MIDI data (Polyphonic Aftertouch) , but only in the specific case of a slow release.

and you can convert this with an external MIDI SCRIPT to use Velocity NOTE-OFF of Pianoteq, and set the note-off velocity curve

But it would be nicer to have this feature in Pianoteq 9 without external script.

Though I no longer have the P-525, I rechecked the midi reference guide and you're right, it does send the per-note aftertouch. I'm not sure how I got that confused when I looked originally.

The more general question is - can we band together to make something can do the remapping calculations that is relatively universal, or at least for an entire platform (rather than a single piece of software like Logic)?

Does still leave the issue of these single event note-off translations not reflecting the timing of the continuous aftertouch values correctly. But that's flaw in single event note-off in general, just a reminder that the best solution is for Pianoteq to integrate damper position into the model rather than do a conversion to note-off. By definition, the slower the release, the more 'delayed' the damping becomes if based on single event note-off values that always fire at the same time. I guess, thinking about it, it might be possible to compensate for that too in some kind of translation layer by sending slower velocities earlier.

Last edited by thesloth (05-09-2025 14:31)

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Olivier W wrote:

Hi everyone,

Yamaha hybrid pianos such as the N1X make use of Polyphonic Aftertouch to control the damper duration, depending on the exact key release position and speed.
In other words, the way the damper comes back is captured in real time and translated into detailed MIDI messages.

Here is a short video showing the relation between different release speeds/positions and the MIDI messages generated:

https://youtu.be/f8BN2OpVljc


Currently, Pianoteq already has a Note Off Velocity curve, which is great.
It would be fantastic if Pianoteq 9 could also offer an option to drive this curve with Polyphonic Aftertouch instead of Note Off Velocity, for users with hybrid instruments that send this data.

This would make it possible to fully exploit the Yamaha hybrid MIDI implementation, resulting in much greater realism and precision in damper release behavior.

Regards,

Olivier F.

I've watched this carefully and looked at the Logic script you wrote, and it still appears to me that there are insufficient MIDI data to construct a full range of note-off velocities. It appears that aftertouch signals are only sent in the slow-very slow release range, and therefore, any releases that are in the moderate-fast range have no data from which to calculate them (all you have is that '64' placeholder it sends regardless of speed, and no aftertouch data to compensate with). So you can use this slow-very slow data to deal with very long release times, but you still have nothing from which to derive varying levels of articulation (for example, different styles of staccato from gentle to sharp).

Which brings me back to my (originally incorrect on technical grounds in terms of aftertouch) conclusion that the necessary data just aren't broadcast. The range from moderate-fast release and all its nuances is just as important as very slow releases, and in my use case at least, having one and not the other would be of no use. In fact, at least in classical playing, I'd argue that the moderate to fast range is more critical in terms of nuance and accurate playability.

It's even audible in your video - you demonstrate audible differences in articulation with the inbuilt processor that have no corresponding midi data to distinguish them. So the question is - what is being used internally that isn't being broadcast? And if it is being broadcast, which bits are being used to represent it?

Last edited by thesloth (05-09-2025 18:57)

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

/* Logic Pro Scripter — PolyAT slope -> NoteOff velocity (silent, tuned)
   - Collects 2 PolyAT (20..32) samples + timestamps
   - slope = |Δvalue| / Δtime (values per millisecond)
   - Maps slope -> NoteOff velocity when NoteOff arrives
   - If no relevant PolyAT was received: NoteOff velocity = Default OffVel
   - Option: Pass-thru PolyAT (Yes/No)
*/

var PluginParameters = [
  { name: "OffVel Min", type: "lin", minValue: 1, maxValue: 127, numberOfSteps: 126, defaultValue: 1 },    // min = 1
  { name: "OffVel Max", type: "lin", minValue: 1, maxValue: 127, numberOfSteps: 126, defaultValue: 50 },   // max = 50
  { name: "Slope Min (x1000)", type: "lin", minValue: 1, maxValue: 200, numberOfSteps: 199, defaultValue: 10 },  // 0.010/ms
  { name: "Slope Max (x1000)", type: "lin", minValue: 5, maxValue: 400, numberOfSteps: 395, defaultValue: 80 },  // 0.080/ms
  { name: "Default OffVel", type: "lin", minValue: 1, maxValue: 127, numberOfSteps: 126, defaultValue: 100 },   // fallback
  { name: "Pass-thru PolyAT", type: "menu", valueStrings: ["No", "Yes"], defaultValue: 0 }
];

var paramValues = [];
for (var i=0;i<PluginParameters.length;i++){
  paramValues[i] = PluginParameters[i].defaultValue;
}

function ParameterChanged(index, value){ paramValues[index] = value; }

function getParam(name){
  for (var i=0;i<PluginParameters.length;i++){
    if (PluginParameters[i].name === name) return paramValues[i];
  }
  return null;
}

// state per note: key = (channel<<7)+pitch
var noteState = {};

function keyOf(e){ return (e.channel << 7) + e.pitch; }
function nowMs(){ return Date.now(); }
function withinWindowAT(v){ return v >= 20 && v <= 32; }

function rememberATSample(e){
  var k = keyOf(e);
  var s = noteState[k];
  if (!s){ s = {}; noteState[k] = s; }
  var t = nowMs();
  var v = e.value|0;

  if (!withinWindowAT(v)) return false;

  if (s.v2 !== undefined){ s.v1 = s.v2; s.t1 = s.t2; }
  s.v2 = v; s.t2 = t;
  return true;
}

function computeSlopePerMs(s){
  if (s && s.v1 !== undefined && s.v2 !== undefined && s.t1 !== undefined && s.t2 !== undefined){
    var dv = Math.abs(s.v2 - s.v1);
    var dt = (s.t2 - s.t1);
    if (dt > 0) return dv / dt; // values per ms
  }
  return null;
}

function mapSlopeToVelocity(slope){
  var vmin = getParam("OffVel Min")|0;
  var vmax = getParam("OffVel Max")|0;
  var sMin = (getParam("Slope Min (x1000)")|0) / 1000.0;
  var sMax = (getParam("Slope Max (x1000)")|0) / 1000.0;

  if (slope == null) return getParam("Default OffVel")|0;

  var denom = (sMax - sMin);
  if (denom <= 0) denom = 1e-9;
  var t = (slope - sMin) / denom;
  if (t < 0) t = 0;
  if (t > 1) t = 1;

  var out = Math.round(vmin + t * (vmax - vmin));
  if (out < 1) out = 1;
  if (out > 127) out = 127;
  return out;
}

function HandleMIDI(e){
  if (e instanceof NoteOn){
    noteState[keyOf(e)] = {};
    e.send();
    return;
  }

  if (e instanceof PolyPressure){
    rememberATSample(e);
    if (getParam("Pass-thru PolyAT") === 1){ e.send(); }
    return;
  }

  if (e instanceof NoteOff){
    var k = keyOf(e);
    var s = noteState[k];
    var slope = computeSlopePerMs(s);
    var vel = mapSlopeToVelocity(slope);

    e.velocity = vel;
    e.send();

    delete noteState[k];
    return;
  }

  e.send();
}

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

thesloth wrote:
Olivier W wrote:

Hi everyone,

Yamaha hybrid pianos such as the N1X make use of Polyphonic Aftertouch to control the damper duration, depending on the exact key release position and speed.
In other words, the way the damper comes back is captured in real time and translated into detailed MIDI messages.

Here is a short video showing the relation between different release speeds/positions and the MIDI messages generated:

https://youtu.be/f8BN2OpVljc


Currently, Pianoteq already has a Note Off Velocity curve, which is great.
It would be fantastic if Pianoteq 9 could also offer an option to drive this curve with Polyphonic Aftertouch instead of Note Off Velocity, for users with hybrid instruments that send this data.

This would make it possible to fully exploit the Yamaha hybrid MIDI implementation, resulting in much greater realism and precision in damper release behavior.

Regards,

Olivier F.

I've watched this carefully and looked at the Logic script you wrote, and it still appears to me that there are insufficient MIDI data to construct a full range of note-off velocities. It appears that aftertouch signals are only sent in the slow-very slow release range, and therefore, any releases that are in the moderate-fast range have no data from which to calculate them (all you have is that '64' placeholder it sends regardless of speed, and no aftertouch data to compensate with). So you can use this slow-very slow data to deal with very long release times, but you still have nothing from which to derive varying levels of articulation (for example, different styles of staccato from gentle to sharp).

Which brings me back to my (originally incorrect on technical grounds in terms of aftertouch) conclusion that the necessary data just aren't broadcast. The range from moderate-fast release and all its nuances is just as important as very slow releases, and in my use case at least, having one and not the other would be of no use. In fact, at least in classical playing, I'd argue that the moderate to fast range is more critical in terms of nuance and accurate playability.

It's even audible in your video - you demonstrate audible differences in articulation with the inbuilt processor that have no corresponding midi data to distinguish them. So the question is - what is being used internally that isn't being broadcast? And if it is being broadcast, which bits are being used to represent it?

Agree 100% .

Last edited by Pianistically (06-09-2025 13:48)

Re: Feature request: Polyphonic Aftertouch for damper release realism (N1X

Pianistically wrote:
thesloth wrote:
Olivier W wrote:

Hi everyone,

Yamaha hybrid pianos such as the N1X make use of Polyphonic Aftertouch to control the damper duration, depending on the exact key release position and speed.
In other words, the way the damper comes back is captured in real time and translated into detailed MIDI messages.

Here is a short video showing the relation between different release speeds/positions and the MIDI messages generated:

https://youtu.be/f8BN2OpVljc


Currently, Pianoteq already has a Note Off Velocity curve, which is great.
It would be fantastic if Pianoteq 9 could also offer an option to drive this curve with Polyphonic Aftertouch instead of Note Off Velocity, for users with hybrid instruments that send this data.

This would make it possible to fully exploit the Yamaha hybrid MIDI implementation, resulting in much greater realism and precision in damper release behavior.

Regards,

Olivier F.

I've watched this carefully and looked at the Logic script you wrote, and it still appears to me that there are insufficient MIDI data to construct a full range of note-off velocities. It appears that aftertouch signals are only sent in the slow-very slow release range, and therefore, any releases that are in the moderate-fast range have no data from which to calculate them (all you have is that '64' placeholder it sends regardless of speed, and no aftertouch data to compensate with). So you can use this slow-very slow data to deal with very long release times, but you still have nothing from which to derive varying levels of articulation (for example, different styles of staccato from gentle to sharp).

Which brings me back to my (originally incorrect on technical grounds in terms of aftertouch) conclusion that the necessary data just aren't broadcast. The range from moderate-fast release and all its nuances is just as important as very slow releases, and in my use case at least, having one and not the other would be of no use. In fact, at least in classical playing, I'd argue that the moderate to fast range is more critical in terms of nuance and accurate playability.

It's even audible in your video - you demonstrate audible differences in articulation with the inbuilt processor that have no corresponding midi data to distinguish them. So the question is - what is being used internally that isn't being broadcast? And if it is being broadcast, which bits are being used to represent it?

Agree 100% .

I believe you definitely don’t understand that there is already a pre-processing step, and that the aftertouch messages are already conditioned by both the speed and the position close to the string. I was able to calibrate my script by comparing it with my large Schimmel or Steinway, and I’m getting incredible results by combining Pianoteq for the resonances, the release, and the soft release, together with VI Labs Modern D. Because Pianoteq 8 on its own sounds like a vibraphone on a synth.

Not agree 100 %