-
-
Notifications
You must be signed in to change notification settings - Fork 40.7k
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
[MIDI] Sustain effect when same notes are played. #10199
Comments
That's interesting, it's probably some kind of oddity that happens when the note on message is sent for the same note multiple times without the note off message being sent in between. I'll try to replicate it and see what I can figure out! |
Thanks! I appreciate it. |
Hmm, I've been trying for a while now but I'm unable to replicate the issue. I've set two keys as I'm flashing QMK on a pro micro and connecting it to my PC which is running Ableton Live 10. Example code:
For example: This is an audio recording of both these tests: I also tested something equivalent by setting two keys to This is kind of bad in my opinion, but it's a different problem to the one you're describing. Maybe this is a problem specific to GarageBand? I'd love it if you could provide more details about your setup and if the problem persists with a more barebones firmware or in other apps than GarageBand. |
I see. That is also kind of strange. I'll try "Ableton Live 10 Lite" and see what happens on my side. Here's an example on my side. It's very noisy since I couldn't find a way to directly record the output of GarageBand and end up recording it once on my iPad, and record via vocaroo... I feel I'm 80 years old... I played just like you did first, and then in order to emphasize the sustain effect, I played F major, C major (sustain), G major, I'm using Pro Micro, too. The keyboard I use is shown here: Thanks! |
I recorded a file on my PC and uploaded to vocaroo with the little "upload" button on the page instead of recording directly on vocaroo, that should work for you too. That is a very interesting board you're making, I like it a lot! |
LOL. I should have done that. I'm glad you like the board. |
Yep, the symptom seems MIDI software dependent. The last sound (A#) was tapped while I keep pressing Cdom7 code button. Compared to the sustain effect seen with GarageBand, the symptom seen with Ableton Live 10 would be easier to live with, in my opinion. Well, a lot of novice players, including me, use GarageBand, so I wish if there is any solution to deal with it. |
Logic Pro also shows the same symptom. |
How strange! I've been busy with work, but I'll have some time today to install Logic and do some testing. I think I have an idea for a fix, but it'll take me a bit to test and implement. |
It seems I accidentally found a fix!!!
|
I got a question from ralfkaa, what I intended to do. I apologize for not describing it beforehand. |
Very clever, nice find! I feel like the three of us have slightly different ideas about how pressing the same note multiple times should be handled, it's probably best if we keep it to discussing in the PR you've opened so we don't end up having the same conversation in multiple different places! |
Actually, here are my thoughts before I start coding something that might be unneccesary or not work I would personally like it if it was possible to send note on messages for the same note multiple times, and as long as the note off message is only sent once per note there shouldn't be any issues, at least from my very quick read-through of the MIDI note message specification. I'm fairly certain the issues you've been experiencing have been due to software receiving note off messages for notes that are already off, but I'll have to test a little to be sure of that. My thinking is that it should be possible to use a QMK MIDI device to produce the effect of playing the same not on different strings on a guitar: every time you pluck a string (press a key) a new note is played (a new MIDI note on message is sent) but if you mute one of the strings (release one of the keys) the note doesn't stop as long as it's still playing on a different string (a different key with the same note is still held). A very rough sketch of this idea would be
So if I for example have two keys mapped to I hope QMK already keeps a list of currently pressed keys somewhere to make this easier, but I haven't been able to find anything yet. If done from scratch this might end up a little memory hungry, but unless someone made a keyboard with lots of the same note it likely won't be an issue. |
How nice! I like your idea. Your solution is "how it should be". It will solve the issue you find with Ableton Live 10, and what we share now with GarageBand, Logic Pro X, and so forth, after the fix shown in the PR I sent. Regarding how many same notes on a keyboard, I'm not sure how many out there. |
The fix has been made and merged. See here for details. |
Great work! I have been very busy lately and have not been taking the time or energy to work on QMK things so it's great that you've picked this up and solved it! |
Oh, but the issue you found remains there. |
I referred here to assign a chord to each key. When multiple chords are played and when the chords share the same note(s), it activates a sustain effect that stays until you unplug the keyboard.
When you are using GarageBand, the symptom can be fixed by clicking "Revert" button on the bottom left corner on the GarageBand window. But want to avoid it from the first place...
Could someone help me out?
Thank you in advance!
The text was updated successfully, but these errors were encountered: