-
Notifications
You must be signed in to change notification settings - Fork 26
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
Note on/off behaviour in chord mode when pressing two pads that contain the same note simultaneously #63
Comments
Hey, thanks for the issue report! The intended behavior is whatever the Pro MK3 does in their official Chord mode, I'll need to double check what Novation does there. |
Do you own a MK3 as well? I was eyeing it since it came out but just realised that you already implemented the MK3 chord mode, so that was great news. |
I don't actually, but I know some people who do. |
Your assumed intended behavior matches the Pro MK3, I'll see when I can catch some time to do fix this up, I don't think it will be too soon... If you want to contribute and fix it yourself, lpp-performance-cfw/src/modes/normal/chord.c Line 396 in dfdc951
|
Sorry @mat1jaczyyy, I completely missed your comment in September last year. Thank you for pointing me to the fix, I'll have a look and try to contribute. I may have to ask you some more specific questions later. |
First of all, thanks for this great project! I'm very interested in contributing if I can.
But let's first outline the issue I observed:
Intended behaviour (I assume):
If the user presses two chords that contain the same note and then one of them is released, the notes that are part of both chords remain on (i.e. no note off message is sent).
Current behaviour:
When one of the two chords is released, a note off command is sent for every note in that chord. The second chord that is still held down is missing notes.
Proposed solution:
I was building an Arduino-based Midi-controller some time ago and ran into the same issue. The way I solved it was by introducing a matrix of integers for every possible Midi note, initialised with zeros. When a button on the controller was pressed, that note would get a "note on"-message and the corresponding value in the matrix would get incremented by 1. When a button on the controller was released, the value in the matrix would get decremented by 1. But a "note off" message would only get sent if the value in the matrix was zero at this point. If its not, that means another chord is still holding that note.
Hope I made it clear! Would be grateful for suggestions where to start with this, what files or structure would need to be changed etc. Then I'm happy to contribute.
The text was updated successfully, but these errors were encountered: