Skip to content
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

Make MIDI controller's buttons assignable #5356

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

Conversation

artur-twardowski
Copy link
Contributor

Adds a possibility to assign keys or buttons to automatable controls.

While some MIDI keyboards allow assigning push buttons to CCs, other MIDI devices such as AKAI Midimix trigger Note On and Note Off messages. In current implementation it is not possible to link those buttons with on-screen controls. One can use a slider or a knob instead, but a physical push button is much more relevant for on-off switches, especially when working with plugins such as OpulenZ that exposes 11 "LEDs".

The change proposed adds two modes of operation when dealing with Note On and Note Off messages:

  • each consecutive Note On message behaves as CC toggling between extreme values (0 and 127)
  • each Note On message behaves as CC set to value of 127, each Note Off acts as CC reset to 0

Change in scope of #1472 (proposed by me in a comment), it also addresses #1815.

Note: I had to remove the infamous octave-shifting code from MIDI clients, however I see that some proper solution is now being worked on in #5349. Maybe the aforementioned change needs to be merged first, then this PR should be rebased on top of it.

@LmmsBot
Copy link

LmmsBot commented Dec 27, 2019

🤖 Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! 🎩

Linux

Windows

🤖
{"platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://5545-15778896-gh.circle-artifacts.com/0/lmms-1.2.1.580-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/5545?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Windows": [{"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://5544-15778896-gh.circle-artifacts.com/0/lmms-1.2.1.580-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/5544?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://5547-15778896-gh.circle-artifacts.com/0/lmms-1.2.1.580-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/5547?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/7f4wxsd2cjghi85r/artifacts/build/lmms-1.2.1-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/29781610"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/xbet4myhi55lyk0q/artifacts/build/lmms-1.2.1-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/29781610"}]}, "commit_sha": "d4b6dcd910f9ea814a5a96ac19af2dddbf8edde0"}

@PhysSong PhysSong added needs code review A functional code review is currently required for this PR needs style review A style review is currently required for this PR needs testing This pull request needs more testing labels Apr 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs code review A functional code review is currently required for this PR needs style review A style review is currently required for this PR needs testing This pull request needs more testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants