DISTRHO / Nekobi

DISTRHO Nekobi
GNU General Public License v2.0
49 stars 12 forks source link

Fix SysEx events causing an infinite loop #16

Closed PolyCement closed 2 years ago

PolyCement commented 2 years ago

I investigated the cause of #9 after running into the same issue myself and found that it enters an infinite loop when handling events bigger than 4 bytes, such as the 12 byte SysEx events my midi controller emits whenever I hit the octave up/down buttons.

I don't have much experience in writing audio plugins so I'm not sure what these 2 lines were intended to do, but since the event size doesn't change, if it's greater than 4 it just keeps looping forever. nekobee_handle_raw_event returns without doing anything if the event isn't exactly 3 bytes, so removing that if statement causes the event to be skipped and fixes the issue.

falkTX commented 2 years ago

That was a good catch, I did a simplified version in 0e999f34e128a2f758f68da52dae827f40db648a