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

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

Closed
wants to merge 1 commit into from

Conversation

mindhog
Copy link

@mindhog mindhog commented Aug 13, 2020

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.

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.
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

Successfully merging this pull request may close these issues.

2 participants