the sostenuto setting on the Sustain pipe is not working as described.
It allows through a note off message for a sustained note after it is played again. This is the behaviour described for semi-sostenuto, unless I am misunderstanding something.
Could be user error, but the midi monitor seems to suggest this is what is happening.
It is only fair to point out I have mapped the ‘Mode’ to a CC so I can switch modes remotely, but the editor certainly says it’s on sostenuto mode.
When a note is retriggered in Sostenuto mode, it produces a Note Off and a Note On event immediately. The reason for this is that the number of Note On messages a synthesizer receives should match the number of Note Off events, otherwise, there’s a risk for hanging notes, depending on how the synthesizer software is implemented.
Both, Semi Sostenuto and Sostenuto modes seem to behave as described in the docs:
Semi Sostenuto: The notes that were playing at the time the Pedal was pushed will be held, while new notes will play as normal. Replaying a previously played note will retrigger it, once released, it will no longer be sustained.
Sostenuto: Same as Semi Sostenuto, except replayed notes will retrigger and keep being sustained.
I was just about to get back to you with a screenshot, when I suddenly realised what the problem was. I am using an MPE controller - a linnstrument. I think the reason why the sostenuto is not working is because the notes come through on different channels.
In fact, before I go any further, let me check my theory
Hopefully you can see the note has come through on a different midi channel, which means that the note off message leaks through. I was trying to think if there was a workaround using a filter in some way, but I haven’t come up with anything. It needs a dynamic note filter or something so that you could then collapse the latched notes to a single channel. But even if that worked you’d have to run parallel pipes for the latched notes and the played notes, each with filters.
I recognise that MPE is pretty niche though, so I’m not expecting anything.
I think I may have an idea. Collapse the channels before the pipe and then redistribute them afterwards. I’ll give it a try, but I may not be able to get to it before tomorrow. I’ll let you know how I get on.
Yeah, Sustain works by sustaining pipes according to both, the note number and channel - the same note in a different channel is considered as an unrelated note to what you had sustained before.
Does the sound producing device require all the per-channel expression? If not, you can place a Channel Remap [1;16] → [1;1] for example, before Sustain pipe, to map all channels to a single channel.
If it does matter, can the MPE keyboard be configured to try and use the same channel slot for the same note?