Stazed / rakarrack-plus

Rakarrack plus LV2s
GNU General Public License v2.0
36 stars 8 forks source link

Fix issue #8 - CC changes after PC not working #9

Closed mindhog closed 4 years ago

mindhog commented 4 years ago

This fixes a race condition in the midi event processing. When a midi control change is sent, it took effect immediately. Program changes occur asynchronously.

This fix adds a map of booleans that indicate that a specific parameter should not be overriden during a program change, thus effectively retaining controller changes that occur while a program change is still pending.

This also replaces effect parameter numbers with symbolic constants (at least in the midi event processing code). This originally seemed like a good way to protect the parameter values from exceeding the size of the per-effect array, though this didn't work out well in practice. I've retained this change because the code is still more readable this way.

Finally, this adds "midicheck.py", a python script to verify that I haven't changed any of the constants. This should probably be removed from this PR prior to merging.