X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=_MIDI.pde;h=a584ef9097d72a69543336def3fc6ef872620b3f;hb=e530876366cf4c07a5e77b7e8890dff376cbcd3c;hp=b0b8fc4ca9bd46e650c168881601edbf5478162e;hpb=7697e5c66da5c072999806ab87791c287c2c4811;p=SugarCubes.git diff --git a/_MIDI.pde b/_MIDI.pde index b0b8fc4..a584ef9 100644 --- a/_MIDI.pde +++ b/_MIDI.pde @@ -332,7 +332,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { private LXEffect releaseEffect = null; APC40MidiInput(MidiEngine midiEngine, MidiInputDevice d) { - super(midiEngine, d); + super(midiEngine, d); } private class GridPosition { @@ -370,11 +370,39 @@ public class APC40MidiInput extends GenericDeviceMidiInput { } protected void handleControllerChange(rwmidi.Controller cc) { + int channel = cc.getChannel(); int number = cc.getCC(); + float value = cc.getValue() / 127.; switch (number) { + + case 7: + switch (channel) { + case 0: + EFF_colorFucker.hueShift.setValue(value); + break; + case 1: + EFF_colorFucker.desat.setValue(value); + break; + case 2: + EFF_colorFucker.sharp.setValue(value); + break; + case 3: + EFF_blur.amount.setValue(value); + break; + case 4: + EFF_quantize.amount.setValue(value); + break; + } + break; + + // Master bright + case 14: + EFF_colorFucker.level.setValue(value); + break; + // Crossfader case 15: - lx.engine.getDeck(1).getCrossfader().setValue(cc.getValue() / 127.); + lx.engine.getDeck(1).getCrossfader().setValue(value); break; } @@ -387,7 +415,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { if (parameterIndex >= 0) { List parameters = midiEngine.getFocusedPattern().getParameters(); if (parameterIndex < parameters.size()) { - parameters.get(parameterIndex).setValue(cc.getValue() / 127.); + parameters.get(parameterIndex).setValue(value); } } @@ -395,7 +423,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { int effectIndex = number - 20; List parameters = glucose.getSelectedEffect().getParameters(); if (effectIndex < parameters.size()) { - parameters.get(effectIndex).setValue(cc.getValue() / 127.); + parameters.get(effectIndex).setValue(value); } } } @@ -407,9 +435,24 @@ public class APC40MidiInput extends GenericDeviceMidiInput { } protected void handleNoteOn(Note note) { - int nPitch = note.getPitch(), nChan = note.getChannel(); + int nPitch = note.getPitch(); + int nChan = note.getChannel(); switch (nPitch) { - + + case 49: // SOLO/CUE + switch (nChan) { + case 4: + EFF_colorFucker.mono.setValue(1); + break; + case 5: + EFF_colorFucker.invert.setValue(1); + break; + case 6: + lx.cycleBaseHue(60000); + break; + } + break; + case 82: // scene 1 EFF_boom.trigger(); break; @@ -479,8 +522,25 @@ public class APC40MidiInput extends GenericDeviceMidiInput { } protected void handleNoteOff(Note note) { - int nPitch = note.getPitch(), nChan = note.getChannel(); + int nPitch = note.getPitch(); + int nChan = note.getChannel(); + switch (nPitch) { + + case 49: // SOLO/CUE + switch (nChan) { + case 4: + EFF_colorFucker.mono.setValue(0); + break; + case 5: + EFF_colorFucker.invert.setValue(0); + break; + case 6: + lx.setBaseHue(lx.getBaseHue()); + break; + } + break; + case 90: // SEND C long tapDelta = millis() - tap1; if (lbtwn(tapDelta,5000,300*1000)) { // hackish tapping mechanism @@ -578,6 +638,9 @@ class APC40MidiOutput implements LXParameter.Listener, GridOutput { } resetParameters(); midiEngine.grid.addOutput(this); + + lx.cycleBaseHue(60000); + output.sendNoteOn(6, 49, 127); } private void resetParameters() {