Page 2 of 3
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Wed Aug 13, 2025 12:00 am
by drohnee
ColinP wrote: ↑Tue Aug 12, 2025 8:39 am
On MIDI Trap, after you bringing this up, I think it would be a useful additional feature to have a poly AT output that tracks any poly pressure messages for the trapped note, so I've decided to go ahead and do that anyway. I ought to be able to squeeze in an extra socket on the panel so that the HP will remain the same.
I can see that with a poly AT capable controller one could get mulitple CVs that indicate live pressure from individual fingers using multiple MIDI Traps with poly AT output and that could be very nice in a performance situation.
This will be a good update to MIDI Trap. I have access to a couple of pad controllers with Poly AT so can test this once it is available. Thanks!
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Wed Aug 13, 2025 5:12 pm
by ColinP
drohnee wrote: ↑Wed Aug 13, 2025 12:00 am
This will be a good update to MIDI Trap. I have access to a couple of pad controllers with Poly AT so can test this once it is available. Thanks!
I think I've nailed adding Poly AT to MIDI Trap.

- MIDITrapPATTest.png (262.69 KiB) Viewed 483 times
If you fancy giving it a test before it's released via CA then PM me with your registered email address. I could then add you to the beta test team so that you'd have instant access. No worries if you'd prefer to wait for the official release of course.
(By the way Oliver, sorry for hijacking your section of the forum for this thread!)
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Thu Aug 14, 2025 9:48 am
by utdgrant
ColinP wrote: ↑Wed Aug 13, 2025 5:12 pm
I think I've nailed adding Poly AT to MIDI Trap.
A great enhancement, Colin!

Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Thu Aug 14, 2025 6:20 pm
by ColinP
I've been trying to replicate the weird traces posted earlier out of GS MIDI X.
I used this setup...

- GSMIDIXATTest.png (279.38 KiB) Viewed 354 times
It appears to work providing that only one key is down and the
SEED IN clock is running at a reasonable speed.
I'm using the
SYNC OUT signal as a convenient source of clock but it could be any clock that's fast enough to capture the time resolution required.
This is a bit mysterious. I'm assuming that poly pressure messages in binary are 1010nnnn 0kkkkkkk 0ppppppp and that this comes out of the Java ShortMessage API as command = POLY_PRESSURE, channel = nnnn, data1 = kkkkkkk, data2 = ppppppp.
I'm wondering if I've misunderstood the format of poly pressure messages somehow. But I don't see how.
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Thu Aug 14, 2025 11:19 pm
by utdgrant
ColinP wrote: ↑Thu Aug 14, 2025 6:20 pm
This is a bit mysterious. I'm assuming that poly pressure messages in binary are 1010nnnn 0kkkkkkk 0ppppppp and that this comes out of the Java ShortMessage API as command = POLY_PRESSURE, channel = nnnn, data1 = kkkkkkk, data2 = ppppppp.
Yep, that ties in with everything I saw during the development of the Poly Pressure Encoder (and with the MIDI 1.0 Spec itself).
I'm wondering if I've misunderstood the format of poly pressure messages somehow. But I don't see how.
I don't think so at all. FWIW, this is the method I created for
constructing a POLY_PRESSURE shortMessage. Based on the fact that it successfully drives plug-ins which can receive Poly Pressure (such as the Chroma), I can't see there being any difference when
interpreting a received shortMessage within a VM module.
Code: Select all
private void OutputPolyPressureEvent(int midiNote, int midiPressure)
{
ShortMessage polyPressureEvent = new ShortMessage();
try
{
polyPressureEvent.setMessage(ShortMessage.POLY_PRESSURE, currentMIDIChannel, midiNote, midiPressure);
}
catch (InvalidMidiDataException e)
{
// Do nothing for time being
}
midiOutputJack.AddMessage(polyPressureEvent);
}
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Fri Aug 15, 2025 12:11 am
by drohnee
Results from some initial tests with two different pad controllers. Same VM patch shown in all images. Red CV comes from GS MIDI X Poly AT Out (host transport Sync Out wired to Seed In on GS MIDI X). Yellow is from MIDI Trap Poly AT Out. Green trace from MIDI to CV module Channel AT Out after MIDI is processed with simplest possible Poly AT -> Channel AT mapping via a plugin.
Controller 1 output. Note the smoother trace from converting Poly AT to Channel AT for some reason.

- ctrl1.png (159.71 KiB) Viewed 311 times
A more continuous pressure modulation from Controller 1. No output signal from GS MIDI X presumably because there was no corresponding MIDI Note On message during this time (MIDI Trap is sending Poly AT even in the absence of Note On as expected).

- ctrl1_mod.png (162.98 KiB) Viewed 311 times
Controller 2 output. Here the MIDI Trap Poly AT and the converted Channel AT signals look much more similar in general.

- ctrl2.png (157.87 KiB) Viewed 311 times
I was not expecting this pattern of results and the difference between the two controllers, but perhaps the sampling rates are different between the controllers. Is the MIDI to CV module smoothing the Channel AT signal in a way the other modules are not?
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Fri Aug 15, 2025 8:07 am
by ColinP
Thanks Grant. That's confirmed that I haven't misunderstood MIDI poly pressure messages.
And thanks drohnee for your very useful beta testing work.
Looking at these latest traces here are my conclusions...
* The POLY AT OUT signal from MIDI Trap is actually what's coming out of the controllers.
* CA's MIDI TO CV module is applying smoothing to its output.
* The difference between the output from GS MIDI X and MIDI Trap is that the former is ignoring any poly pressure messages when note on/off messages are saying a key/pad isn't being pressed. This causes it to hang above zero between notes/hits
I'd not expected any pressure messages when a key or pad wasn't pressed but this assumption seems to be incorrect. I'll look at a mod for GS MIDI X to make it track poly AT even when a key/pad isn't down.
I'm also wondering whether to apply smoothing to the POLY AT OUT signals. It seems like a very sensible thing to do but there might be a downside I've not yet thought of.
On the differences between controllers, I'm not totally surprised. I think high-quality pressure sensors are expensive so keyboards and pad controllers will vary in the accuracy of their pressure output. Or it could be that it's more down to sample rate or perhaps a combination of the two factors?
Which controllers are you using by the way? I spent a couple of hours looking online yesterday trying to track down a reasonably priced 4 x 4 pad controller that had high-resolution true polyphonic AT but couldn't find sufficient info to judge. So far the Presonus Atom looks like an option.
I cured myself of GAS a few years ago but do fancy having a little 4 x 4 pad with poly AT output. Just something simple like pressure controlled mixing of multiple sample loops would be fun to play with in a live performance. One could do this with a 16 fader controller but it would take up far more space than a little 4 x 4 pad controller.
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Fri Aug 15, 2025 8:24 am
by utdgrant
ColinP wrote: ↑Fri Aug 15, 2025 8:07 am
* The difference between the output from GS MIDI X and MIDI Trap is that the former is ignoring any poly pressure messages when note on/off messages are saying a key/pad isn't being pressed. This causes it to hang above zero between notes/hits
I'd not expected any pressure messages when a key or pad wasn't pressed but this assumption seems to be incorrect. I'll look at a mod for GS MIDI X to make it track poly AT even when a key/pad isn't down.
When testing the Poly Pressure Encoder module, I was
initially surprised that many plug-ins which can receive and interpret POLY_PRESSURE messages will stop processing those message after a NOTE_OFF command for that particular key.
Once I paused and had a think about it, it did make sense. In the real world, how could you continue to generate physical pressure values on a CS80 key
after you'd released the note on the keyboard?

Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Fri Aug 15, 2025 8:48 am
by ColinP
utdgrant wrote: ↑Fri Aug 15, 2025 8:24 am
When testing the Poly Pressure Encoder module, I was
initially surprised that many plug-ins which can receive and interpret POLY_PRESSURE messages will stop processing those message after a NOTE_OFF command for that particular key.
Once I paused and had a think about it, it did make sense. In the real world, how could you continue to generate physical pressure values on a CS80 key
after you'd released the note on the keyboard?
Yup. That's why GS MIDI X works the way it does. It shouldn't be physically possible to apply pressure to a key or pad without touching it!
But as drohnee has shown in the real world controllers can send "impossible data".
Also any smoothing will prolong the data.
If we look at the last image from drohnee's latest post it looks like the data from the second controller is much higher quality than the first controller. We can't see the gate signal but it looks like the pressure might indeed fall to zero before the finger is released from the pad.
The smoothing applied by CA's MIDI TO CV module then adds a "ghost release" (as shown by the green trace).
Re: Multifaceted MIDI Transformer: possible to transform poly AT to channel pressure?
Posted: Fri Aug 15, 2025 4:59 pm
by drohnee
Low pass filtering the Poly AT output of MIDI Trap yields a signal that looks a lot more like the MIDI to CV output, so it does appear that MIDI Trap is passing along the raw signal from the controller, and MIDI to CV is doing some smoothing. Here the blue trace is MIDI Trap Poly AT -> low pass filter and purple is Gate.

- polyATsmoothedgate.png (252.28 KiB) Viewed 159 times
Regarding Aftertouch signals in the absence of Note On messages, it does not seem strange when you use one of these Poly AT controllers to have AT without a Note On. Consider a situation where you very gradually apply pressure to a key. It is not clear at what point you expect the controller to send a Note On message (if at all), but it is helpful if it sends Aftertouch because you are applying pressure. There are a few expressive gestures like this one can generate where you want AT output but don't necessarily want the controller emitting Note On messages (if you are manually applying a pulsing pressure to a key, for example).