Controller Assignments
Engine uses /usr/Engine/AssignmentFiles/PresetAssignmentFiles/[HARDWARE_ID]/[HARDWARE_ID]_*.qml to describe all the buttons, LEDs, and such on the unit. These buttons are mapped to various features.
Controller Performance Modes
The [HARDWARE_ID]_Controller_Assignments.qml specifies the button mapping for each supported controller mode.
Performance Modes List
Performance Mode |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Modifying
To change the compatible performance modes, modify your device's QML at /usr/Engine/AssignmentFiles/PresetAssignmentFiles/[HARDWARE_ID]/[HARDWARE_ID]_Controller_Assignments.qml
On the JP11, the controller assignment contains:
This shows the modes that a button is mapped to with a standard press (view), the mode that it switches to when pressed again (altView), and the mode that it switches to when SHIFT is held while the button is pressed (shiftView).
In this example, slicer mode (which isn't a feature of the JP11) can be added to the LOOP button by changing the ListElement for the button to:
Slicer enabling test apps for the JP11, JP11S, JP20, NH08, NH09, and NH10 can be downloaded here: TestAppsCatalog-Slicer.zip
Additional References
QEngine's
controllermap- a worked example of writing these files from scratch rather than editing them. It drops a hand-authoredRMZ2_Controller_Assignments.qmlandRMZ2_Controller_Device.qmlinto theRMZ2control-surface slot so that a third-party USB controller (a Denon DJ MC6000MK2, mapped from inMusic's published MIDI command list) drivesEngineunder emulation. See Engine OS for the project itself.