Skip to content

Improve MIDI device listing & selection #7863

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

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

AW1534
Copy link
Member

@AW1534 AW1534 commented Apr 26, 2025

This PR aims to bring midi device listing to be on par with other apps. I mainly compared it to musescore.

Dummy devices like "System:Announce" are gone, and the names of MIDI devices are friendlier now. Note that the longer names are still used by the system and stored in config, but the "friendly names" are only displayed to the user.

Another thing this PR does (since 359b58c) is improve the persistence of MIDI devices with midiautoassign. Essentially, the client ID of a device can change on restart, which makes LMMS recognise it as a seperate device- this PR fixes that.

Previously, the code checked if the client id, port id, client name and port name all match. Now, if all 4 don't match, it checks if the port id, client name and port name match. While there is technically the ability for the wrong device to be selected because of this, it's better than no device being selected, and the user having to reselect it. if (in some edge case) the wrong device is selected because of this, but the correct device is reconnected, it should automatically go back to the correct device. This is very wordy to explain, but it really is a simple change.

Edit: it appears my changes in 359b58c are linux only, and the code won't compile on anything else. so im drafting this for now.

Before:
input:
image
output:
image
auto assign midi:
image

After:
input:
image
output:
image
auto assign midi:
image

Musescore for comparison:
image

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.

1 participant