Midi control messages are delayed
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
### System Information
OpenSUSE Tumbleweed
### LMMS Version(s)
1.2.2 (flatpak), 1.3.0~git2024.09.21-1.3 (repo-oss)
### Most Recent Working Version
_No response_
### Bug Summary
when using my midi keyboard (AKAI MPK49) LMMS controls do not correctly process control messages, always leaving a single message "queued" and only processing that message when a new message enters that "queue" or some other event triggers processing of midi control messages.
this results in, for example:
- buttons inverting their behaviour
- knobs and sliders sticking to the last value received before the intended value. this is particularly annoying when trying to zero or max a control.
additionally, certain other events will partially trigger processing:
- hovering certain buttons (mute, solo) will cause them to process the message
- other controls depending on that particular control will not be updated (hovering solo will update solo but not the mute buttons it normally toggles)
minor details:
- i have used drumstick midi monitor to verify the proper reception of midi control messages.
- notes do not display this issue. it only affects control messages.
### Expected Behaviour
controls process midi control messages as they arrive.
### Steps To Reproduce
1. use a midi keyboard
2. map a keyboard control to an LMMS control
3. try to use it, it will always display the second-last value received by LMMS
### Logs
Click to expand
### Screenshots / Minimum Reproducible Project
_No response_
### Please search the issue tracker for existing bug reports before submitting your own.
- [X] I have searched all existing issues and confirmed that this is not a duplicate.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue in LMMS with an AKAI MPK49 or another MIDI keyboard, mapping a control and comparing control messages with notes. Trace the MIDI control-message handling from input receipt to LMMS control updates. Done means each arriving control message is processed immediately, without requiring a subsequent message or UI event.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100