You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Labels on hardware are very convenient : "Volume" knob should control client volume on every device.
On key pressed, client wants to know what note it was.
As a reminder, here is the current abstraction 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:
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: