If a midi program change is received and followed by a controller change (which, presumably, should apply to the newly loaded program) the controller change is ignored. This is due to a race condition: program changes are effectively asynchronous whereas controller changes are immediate and synchronous. As a result, the parameters changed by the controller end up being overwritten by the program change.
I'm in the process of implementing a fix for this. I'll follow up with a PR.
If a midi program change is received and followed by a controller change (which, presumably, should apply to the newly loaded program) the controller change is ignored. This is due to a race condition: program changes are effectively asynchronous whereas controller changes are immediate and synchronous. As a result, the parameters changed by the controller end up being overwritten by the program change.
I'm in the process of implementing a fix for this. I'll follow up with a PR.