Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MPE keeps turning off #431

Open
Yzrsah opened this issue Jul 11, 2024 · 2 comments
Open

MPE keeps turning off #431

Yzrsah opened this issue Jul 11, 2024 · 2 comments

Comments

@Yzrsah
Copy link

Yzrsah commented Jul 11, 2024

I developed a habit of re-opening Dexed windows constantly to open the PARM window and check if MPE has been turned off. For some reason, MPE turns off...randomly? I'm using Bitwig 5.x and it's always been 5 minutes, or a few hours later, a day later, a deactivate/reactivate? a file reload, or some kind of event...at whatever time, for whatever reason, Dexed's MPE is turned off. After opening the PARM window to check this probably 500 times I realize I should try to resolve this.

@Yzrsah
Copy link
Author

Yzrsah commented Jul 11, 2024

Looks like PluginProcessor.cpp lines 474-478

if( voices[note].keydown && voices[note].channel == channel )
{
    // If we get two keydowns on the same channel we are getting information from a non-mpe device
    controllers.mpeEnabled = false;
}

The MPE Specification says:

When there are more Notes than unoccupied Channels, a new note must share a MIDI Channel with an
existing note. Since Control Change and Pitch Bend are Channel Messages, they then affect both notes on
that Channel.

Since the MPE spec allows note sharing, you should not disable MPE if shared notes are detected.

Though I wasn't actually doing this. Maybe it was a mistake in some of the note FX plugins or Grids I use. And I was wiring something up in Note Grid and suddenly Dexed's MPE turns off and the patch sounds corrupted because the pitch bend ranges and channels are wrong. It maybe related to event ordering, Bitwig has a few bugs with event ordering for I.e. CLAP_EVENT_NOTE_EXPRESSION, there are multiple duplicates with time-jittered values that come in @ event->time == 0;

@gustebeast
Copy link

gustebeast commented Nov 8, 2024

I have a related issue. I use dexed with both a regular keyboard and an MPE synth, and when I use the regular keyboard MPE turns off. This is convenient, but then when I go back to MPE it doesn't turn back on. Ideally it would be able to detect both directions.

Alternatively there could be an option to disable auto detection, although in that case I'd need to have a way to bind the MPE toggle to a MIDI message so I could turn it off and on in my headless setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants