-
Notifications
You must be signed in to change notification settings - Fork 36
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
Cabl client interface #13
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello,
And first of all, thanks for your work :-)
I own a Maschine MK1 controler, it's a very nice hardware and I would love to use it more.
I found out your nice reverse-enginieering and abstraction project, and I'm looking forward trying your lib.
I'm reading the code now, and would like to share some feedbacks and enhancement proposals (enhancements I may develop myself)
I see two uses-cases for cabl :
Wanting to bind any controller like a gamepad (for example 4 buttons and 4 knobs), ignoring hardware labels
Making a music software.
As a reminder, here is the current abstraction interface :
Client.h
My remarks:
Proposed interface:
the button/knob parameters would be integers in range [0..NbOfButton[, [0..NbOfEncodor[, [0..NbOfControl[
Device::Label would be an enum with all common Labels. pressing shift would change label_ value (but not button id)
Key index_ could simply be value of a MIDI note. Device implementation should choose the best octave range, but we could required them to implement at least C4.
Unfortunately, this change is a serious interface break for legacy clients.
I hope I'm clear.
Let me know what you think about this analysis, if I'm missing something, if your plans are incompatible with this proposal, or if I should start coding :-)
The text was updated successfully, but these errors were encountered: