+class ArturiaMinilabMidiInput extends GenericDeviceMidiInput {
+ ArturiaMinilabMidiInput(MidiEngine midiEngine, MidiInputDevice d) {
+ super(midiEngine, d);
+ }
+
+ protected boolean handleControllerChange(rwmidi.Controller cc) {
+ int parameterIndex = -1;
+ switch (cc.getCC()) {
+ case 7: parameterIndex = 0; break;
+ case 74: parameterIndex = 1; break;
+ case 71: parameterIndex = 2; break;
+ case 76: parameterIndex = 3; break;
+ case 114: parameterIndex = 4; break;
+ case 18: parameterIndex = 5; break;
+ case 19: parameterIndex = 6; break;
+ case 16: parameterIndex = 7; break;
+
+ case 75:
+ float val = effects.colorFucker.hueShift.getValuef();
+ val += (cc.getValue() - 64) / 256.;
+ effects.colorFucker.hueShift.setValue((val+1) % 1);
+ break;
+ }
+ if (parameterIndex >= 0) {
+ List<LXParameter> parameters = midiEngine.getFocusedPattern().getParameters();
+ if (parameterIndex < parameters.size()) {
+ LXParameter p = parameters.get(parameterIndex);
+ float curVal = p.getValuef();
+ curVal += (cc.getValue() - 64) / 127.;
+ p.setValue(constrain(curVal, 0, 1));
+ }
+ }
+ return false;
+ }
+}
+