So, I’ve pressured the key, and got my note to its screaming resonant glory using poly-AT, it could just the same have been channel-AT. Now I want to press the sustain pedal and hold the note as it is while I move my hand to do something else. The note holds, but when I release the key, the timbre collapses because poly-AT messages are still transmitted, and bring the value down to zero upon key release.
Solution. Block poly-AT messages when sustain (cc64) is ON, allow when OFF.
I tried making this using a route filter with a binding to enable it. However Cantabile seems to not switch until there is a break in events, which is not the case when poly-AT messages are streaming in at speed.
I found a set of midi filter VSTs which do the job.. but I would still like to implement this native in cantabile if anyone knows where to do this type of conditional filter.. bypassing the switch delay logic which I know is there for a good reason.
For anyone else who could use this, there was one other thing that was needed to complete the solution. The synth (surge XT .. brilliant freeware !!) retains the current poly-AT on each note, even after note-off is received. Result.. when the sustain blocks poly-AT messages for hold, the next time you press the note, it starts at the value it last received, and not at zero. Solution, each note-on has to trigger a poly-AT value of 0 to ensure it is reset.
this works like a dream.
A little nuance. Since note on message is used as note off, which is compliant with the midi spec, the midi processor which generates the poly-AT=0 message at note on, has to track the status of all notes. ie it must know which note-on messages are being used for note-on, and which for note-off.
happily the midi plugin i found has an option for this.
Here is a link where these plugins can be downloaded. For Info, these are now open source on github .. VST2 Under GPL2.
The particular plugin that I used both for the Poly-AT conditional block, and to generate a poly-AT=0 message for every true note-on message was midicontroller3
If anyone wants, I can send the settings i used for the plugins.