Mono vs Polyphonic aftertouch

My keyboard can generate Mono-Aftertouch but my synth (Hydrasynth) will accept (… and loves) Polyphonic-Aftertouch. I noticed that I can apply a filter in GP and map Aftertouch to something. I would like to map it to Polyphonic-Aftertouch but it is disabled. ??

Polyphonic aftertouch requires a note number along with the pressure but channel pressure (aka monophonic aftertouch) doesn’t provide a note number, that’s why you can’t map it directly. You’d have to get very clever with GPScript to do something useful here.

Thanks for the clarification. Now, I just a need someone like @PianoPaul to write a general script that maps Mono to Poly :slight_smile:

You can use @ before the name :wink:
so @pianopaul

1 Like

Do you have something in mind? :nerd_face:

Transform “normal” Aftertouch into Poly-Aftertouch (that requires a note number along with the pressure)

I suppose you could keep track of the most recent note played and use that for poly pressure but I’m not sure how musically useful that is

Yes, but with only one aftertouch information available for all notes what to do?

So your idea would be to use aftertouch only for one single note, the last played?

The problem is not to create notes with poly-aftertouch, but to figure out with aftertouch value to add to each note when there is only one aftertouch ribon for all keys.

It depends what @Phil would like to do with poly/-aftertouch understanding that it has to be a capacity of the MIDI controller. We could “freeze” the aftertouch for all notes but the higher of a chord and control the after-touch only for this one and at the same time control the aftertouch of the lowest key with a MIDI pedal controller. Well, we can do a lot of crazy things and not sure this make sense, but we cannot have a different aftertouch value when pressing keys differently if the controller has not one aftertouch sensor per key.


Looks like the answer comes down to “what is most musical”. @David-san , can you try a few scripts and see what works for you … assuming you have a standard keyboard with only mono-aftertouch?

May you can test with this script:

   MIN : MidiInBlock
   MM  : MidiMessage
   NN  : Integer
   VV  : Integer
   CH  : Integer

On NoteOnEvent(m : NoteMessage) from MIN
 NN = GetNoteNumber(m)
 VV = GetVelocity(m)
 CH = GetChannel(m)
 if IsAfterTouch(m) then
  MM = MakeMidiMessage(160 + CH, NN, VV)
  SendNow(MIN, MM)

//Called when an aftertouch (channel pressure) message is received at some MidiIn block
On AfterTouchEvent(m : AfterTouchMessage) from MIN
  MM = MakeMidiMessage(160 + CH, NN, VV)
  SendNow(MIN, MM)

@pianopaul - I will give it a try this evening … Thank you :slight_smile:

I am not in a position for testing this and I am perhaps wrong, but I would say that there is no chance to get an aftertouch message within a note ON event callback:

Regarding the aftertouch callback itself:

As for a given played note VV is constant after the note is played, is it not rather:

MM = MakeMidiMessage(160 + CH, NN, GetAfterTouchValue(m))

While I like the idea, I am not sure what is the use case for this… play chords with constant aftertouch while playing single notes with aftertouch? :thinking: I am curious what @Phil will do with it… :face_with_monocle:

1 Like

Well, if you have ever experimented with the “Highest only” option of the MIDI In block, you can imagine playing a solo with your right hand while holding down chords with left hand and the aftertouch would only apply to your solo notes.

Just one idea.

Yes, that’s what I imagined. But, this particular use case could perhaps be reroduced without scripting with two different MIDI blocks with and without blocking the after touch.

I don’t see how…if you send an aftertouch message by itself, it would still impact all notes

One MIDI in block for the left hand split with aftertouched blocked and one MIDI in block for the right hand split with aftertouch alllowed:

Thanks T, I did try it, missing the NOTE OFF??

Could it be that you blocked the Note OFF event in your MIDI in block?

Did you actually try that? If you use aftertouch (i.e, channel pressure, no note number), then all notes that you played with your left hand will still be impacted by the incoming aftertouch message.