X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=_MIDI.pde;h=562aa869a3d3193b1294219ffb84355ac3b47920;hb=36e19b7b5b923666a56fd4a941fb0f1ada725093;hp=36ec92c02f5b6e7906980c1152268564ffbb844a;hpb=bdef287d097659a12c9573879d0e8a7e34cbdef6;p=SugarCubes.git diff --git a/_MIDI.pde b/_MIDI.pde index 36ec92c..562aa86 100644 --- a/_MIDI.pde +++ b/_MIDI.pde @@ -115,7 +115,7 @@ public interface SCMidiInputListener { public void onEnabled(SCMidiInput controller, boolean enabled); } -public abstract class SCMidiInput extends AbstractScrollItem { +public abstract class SCMidiInput extends UIScrollList.AbstractItem { protected boolean enabled = false; private final String name; @@ -445,7 +445,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { // Crossfader case 15: - lx.engine.getDeck(GLucose.RIGHT_DECK).getFader().setNormalized(value); + lx.engine.getDeck(RIGHT_DECK).getFader().setNormalized(value); return true; // Cue level @@ -478,7 +478,8 @@ public class APC40MidiInput extends GenericDeviceMidiInput { if (number >= 20 && number <= 23) { int effectIndex = number - 20; - List parameters = glucose.getSelectedEffect().getParameters(); + // TODO(mclsee): fix selected effect + List parameters = getSelectedEffect().getParameters(); if (effectIndex < parameters.size()) { setNormalized(parameters.get(effectIndex), value); return true; @@ -537,7 +538,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { case 91: // play if (shiftOn) { - midiEngine.setFocusedDeck(GLucose.LEFT_DECK); + midiEngine.setFocusedDeck(LEFT_DECK); } else { uiCrossfader.setDisplayMode("A"); } @@ -549,7 +550,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { case 93: // rec if (shiftOn) { - midiEngine.setFocusedDeck(GLucose.RIGHT_DECK); + midiEngine.setFocusedDeck(RIGHT_DECK); } else { uiCrossfader.setDisplayMode("B"); } @@ -557,7 +558,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { case 94: // up bank if (shiftOn) { - glucose.incrementSelectedEffectBy(-1); + selectedEffect.setValue(selectedEffect.getValuei() - 1); } else { getTargetDeck().goPrev(); } @@ -565,7 +566,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { case 95: // down bank if (shiftOn) { - glucose.incrementSelectedEffectBy(1); + selectedEffect.setValue(selectedEffect.getValuei() + 1); } else { getTargetDeck().goNext(); } @@ -588,7 +589,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { return true; case 62: // Detail View / red 5 - releaseEffect = glucose.getSelectedEffect(); + releaseEffect = getSelectedEffect(); if (releaseEffect.isMomentary()) { releaseEffect.enable(); } else { @@ -597,7 +598,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput { return true; case 63: // rec quantize / red 6 - glucose.getSelectedEffect().disable(); + getSelectedEffect().disable(); return true; } @@ -689,11 +690,11 @@ class KorgNanoKontrolMidiInput extends GenericDeviceMidiInput { switch (number) { case 58: // Left track - midiEngine.setFocusedDeck(GLucose.LEFT_DECK); + midiEngine.setFocusedDeck(LEFT_DECK); return true; case 59: // Right track - midiEngine.setFocusedDeck(GLucose.RIGHT_DECK); + midiEngine.setFocusedDeck(RIGHT_DECK); return true; case 43: // Left chevron @@ -710,7 +711,7 @@ class KorgNanoKontrolMidiInput extends GenericDeviceMidiInput { } } -class APC40MidiOutput implements LXParameter.Listener, GridOutput { +class APC40MidiOutput implements LXParameterListener, GridOutput { private final MidiEngine midiEngine; private final MidiOutput output; @@ -737,8 +738,8 @@ class APC40MidiOutput implements LXParameter.Listener, GridOutput { } }); } - glucose.addEffectListener(new GLucose.EffectListener() { - public void effectSelected(LXEffect effect) { + selectedEffect.addListener(new LXParameterListener() { + public void onParameterChanged(LXParameter parameter) { resetEffectParameters(); } }); @@ -842,7 +843,7 @@ class APC40MidiOutput implements LXParameter.Listener, GridOutput { } private void resetEffectParameters() { - LXEffect newEffect = glucose.getSelectedEffect(); + LXEffect newEffect = getSelectedEffect(); if (newEffect == focusedEffect) { return; } @@ -863,7 +864,11 @@ class APC40MidiOutput implements LXParameter.Listener, GridOutput { } private void sendKnob(int i, LXParameter p) { - sendKnob(i, (int) (p.getValuef() * 127.)); + float pv = constrain(p.getValuef(), 0, 1); + if (p instanceof LXNormalizedParameter) { + pv = ((LXNormalizedParameter)p).getNormalizedf(); + } + sendKnob(i, (int) (pv * 127.)); } private void sendKnob(int i, int value) {