MPE modes of various controllers can send various messages. Here's how the roli works
If you are in "Piano" mode in the roli dashboard, you choose 'press mode'.
If you set that press mode to 'channel pressure' then the roli delivers channel at on channel 0 and surge can correctly modulate based on channel AT, but doesn't modulate per voice.
If you set that press mode to 'poly at' then roli delivers poly at on each channel per key and surge can correctly modulate based on poly at even though the poly message arrives on channel 0, since the poly message has a key.
But if you are in "MPE" mode in the roli dashboard, what the roli does (and what I think the linnstrument does also, which is where this bug report first came from) is send channel AT on each channel.
SurgeSynthesizer::channelAT does the wrong thing in this case. The !mpe and channel == 0 falls through.
It's not entirely clear what the right thing is. ms_aftertouch is per voice sort of, but is a bit special. But clearly what should happen in this case is ms_aftertouch should be set per voice to the per-channel version of the AT based on the voice.
The bottom line is: this means channel AT acts unreliably or not at all, depending on your device, in MPE mode with MPE hardware.
Problem exists in 1.6.0 beta 9 also; this is not new.
The channel state aftertouch is specially nhandled in surge voice - I think the error is there.
OK I now know the bug. Notes to self:
Basically channel aftertouch is not, in standard midi, a per-voice characteristic. It is per channel after all. As such, along with other per-channel things, the modulation routing appears in the scene routing table, not the voice routing table.
So what's happening in mpe mode is
So the fix is something like "in surge voice in MPE mode scan the scene modulations looking for the modsource being channel AT pressure and then sub it with my modsource value"
Woof. That's a bit hacky but let me at least see if the hack version works then I can think about a less hack version.
OK once I saw the problem, it was straight forward to thread the MPE status through to the voice and grab the modulation out of the scene table for channel at in MPE mode. It is a very special case so I also added a comment :)
The nightly build is running now. We should have a new version of the synth available to test in 45 minutes or so. I'll ping when we do.
Wow— thanks! That’s excellent. I look forward to the ping.
On Sep 23, 2019, at 5:08 PM, Paul notifications@github.com wrote:
OK once I saw the problem, it was straight forward to thread the MPE status through to the voice and grab the modulation out of the scene table for channel at in MPE mode. It is a very special case so I also added a comment :)
The nightly build is running now. We should have a new version of the synth available to test in 45 minutes or so. I'll ping when we do.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
OK so I actually made a second small change hence the slight delay
If you go to https://surge-synthesizer.github.io/#downloads you can see the nightly downloads in that section. You can grab the nightly from there which is our latest version and install it like normal.
For my test cases it fixes the problem and the patches you sent over seem to respond properly. Please do let us know!
That fixed it— thanks!
I’ll try to make some new sounds, and maybe even a LinnStrument + Surge video sometime soon.
Best,
Roger
On Sep 23, 2019, at 6:10 PM, Paul notifications@github.com wrote:
OK so I actually made a second small change hence the slight delay
If you go to https://surge-synthesizer.github.io/#downloads https://surge-synthesizer.github.io/#downloads you can see the nightly downloads in that section. You can grab the nightly from there which is our latest version and install it like normal.
For my test cases it fixes the problem and the patches you sent over seem to respond properly. Please do let us know!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/surge-synthesizer/surge/issues/1214?email_source=notifications&email_token=ABU7KZ7NVRHJCLO57QUCQLLQLFSJ5A5CNFSM4IZUIWZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7MXBQA#issuecomment-534343872, or mute the thread https://github.com/notifications/unsubscribe-auth/ABU7KZZ5236KTGZGHLVDST3QLFSJ5ANCNFSM4IZUIWZA.
Wonderful.
I’ll do a point release later this week (1.6.2.1) and it will include this fix among a few others. If you end up with some sounds and videos, please do just drop me a note and we can figure out how to include it.
Best
Most helpful comment
OK so I actually made a second small change hence the slight delay
If you go to https://surge-synthesizer.github.io/#downloads you can see the nightly downloads in that section. You can grab the nightly from there which is our latest version and install it like normal.
For my test cases it fixes the problem and the patches you sent over seem to respond properly. Please do let us know!