-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Update controller mapping for Behringer DDM4000 mixer #4318
Update controller mapping for Behringer DDM4000 mixer #4318
Conversation
Bug #671277 is related to the bug that I fixed by throttling. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since these are mostly changes to your library and the code quality is good, I suggest to just merge this. Objections, anyone?
This PR is marked as stale because it has been open 90 days with no activity. |
This issue should not be labeled stale. |
This PR is marked as stale because it has been open 90 days with no activity. |
No objection from my side. Please do not mark this PR as stale. |
The stale marker was added by a GitHub action. @Swiftb0y Merge? |
Sure |
This PR contains
null
instead of empty strings for intentionally missing valuesParameterComponent
that is able to send correct output values for effect parametersEnumEncoder
componentThe bug was really annoying and hard to detect: on startup, only a part of the mixer LEDs had the correct state. Some were on, but others were off unexpectedly. After a few hours of debugging, it turned out that the problem is the processing speed of the hardware mixer. When too many MIDI messages arrive in a short time, only a part of them is processed. My solution is a configurable throttling logic that delays component initialization. Users may disable the throttling or change the delay.
The
ParameterComponent
is required to send proper output values for effect parameters. Some of them have unusual values ranges, e.g. flanger speed[32..0,5]
in a non-linear manner. Theoutput()
function of theEncoder
component is not prepared for this, it just multiplies this value with 127 and sends the result to the controller. TheParameterComponent
uses the parameter (range:[0..1]
) instead of the value, so the MIDI value is correct.