From 667840cf797695bcd6f3725549d7e1bd88ccc3e8 Mon Sep 17 00:00:00 2001 From: ericahrens Date: Tue, 18 Aug 2026 22:16:08 +0200 Subject: [PATCH 1/3] Fix LC Screen schmutz --- .../bindings/DisableBinding.java | 1 + .../bindings/ParameterDisplayBinding.java | 11 ++++++--- .../bindings/RelativeEncoderBinding.java | 23 ++++++++++++------- .../launchcontrolxlmk3/layer/Remotes.java | 12 +++++++--- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java index 0cc2ba8d..d2dbcef0 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java @@ -2,4 +2,5 @@ public interface DisableBinding { void setDisabled(boolean disabled); + } diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java index 8d26185c..a0aa0912 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java @@ -51,18 +51,23 @@ private void handleDisplayValue(final String value) { public void setDisabled(final boolean disabled) { this.disabled = disabled; + if (disabled) { + clearText(); + } if (isActive()) { if (disabled) { deactivate(); - display.setText(targetId, 0, titleName); - display.setText(targetId, 1, ""); - display.setText(targetId, 2, ""); } else { activate(); } } } + private void clearText() { + display.setText(targetId, 0, titleName); + display.setText(targetId, 1, ""); + display.setText(targetId, 2, ""); + } @Override protected void deactivate() { diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java index 4bcb8c30..74d31bc1 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java @@ -5,22 +5,16 @@ import com.bitwig.extension.controller.api.RelativeHardwareKnob; import com.bitwig.extensions.controllers.novation.launchcontrolxlmk3.control.LaunchRelativeEncoder; -public class RelativeEncoderBinding extends LauncherBinding { +public class RelativeEncoderBinding extends LauncherBinding implements DisableBinding { private final LaunchRelativeEncoder encoder; + private boolean disabled = false; public RelativeEncoderBinding(final Parameter parameter, final LaunchRelativeEncoder encoder) { super(encoder.getId(), encoder.getEncoder(), parameter); - parameter.discreteValueCount().addValueObserver(this::handleSteps); this.encoder = encoder; } - private void handleSteps(final int discreteSteps) { - if (isActive()) { - - } - } - @Override protected HardwareBinding getHardwareBinding() { return getTarget().addBinding(getSource()); @@ -32,7 +26,20 @@ protected void updateValue() { @Override protected void activate() { + if (disabled) { + return; + } super.activate(); encoder.setEncoderBehavior(LaunchRelativeEncoder.EncoderMode.ACCELERATED, 64); } + + @Override + public void setDisabled(final boolean disabled) { + this.disabled = disabled; + if (disabled) { + deactivate(); + } else { + activate(); + } + } } diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java index 56389f01..1a4fbb54 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java @@ -64,15 +64,18 @@ public void bind(final Layer layer, final LaunchControlXlHwElements hwElements, layer.addBinding(new LightValueBindings(parameter, row1Encoder.getLight(), DEVICE_COLORS.get(i))); final Parameter parameter2 = getParameter2(i); + final RelativeEncoderBinding row2EncoderBinding = new RelativeEncoderBinding(parameter2, row2Encoder); final ParameterDisplayBinding parameterRow2DisplayBinding = new ParameterDisplayBinding( new DisplayId(row2Encoder.getTargetId(), displayControl), deviceName, parameter2); - layer.addBinding(parameterRow2DisplayBinding); - final RelativeEncoderBinding row2Binding = new RelativeEncoderBinding(parameter2, row2Encoder); - layer.addBinding(row2Binding); final LightValueBindings row2LightBinding = new LightValueBindings(parameter2, row2Encoder.getLight(), DEVICE_COLORS.get(i)); + + layer.addBinding(row2EncoderBinding); + layer.addBinding(parameterRow2DisplayBinding); layer.addBinding(row2LightBinding); + + disableBindings.add(row2EncoderBinding); disableBindings.add(parameterRow2DisplayBinding); disableBindings.add(row2LightBinding); } @@ -128,6 +131,9 @@ private void updateDevicePageName(final boolean handleEmpty) { public void setActive(final boolean active) { this.active = active; + if (active) { + updateRow2Layer(); + } } public Parameter getParameter(final int index) { From de9b37b3c4df5433df3371a88e7b657c1183d5ed Mon Sep 17 00:00:00 2001 From: ericahrens Date: Tue, 18 Aug 2026 22:36:54 +0200 Subject: [PATCH 2/3] Erae 2 Port Name fix --- .../controllers/embodme/Erae2ExtensionDefinition.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java b/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java index d0aac386..66f55dff 100644 --- a/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java +++ b/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java @@ -66,7 +66,11 @@ public String getHelpFilePath() { @Override public void listAutoDetectionMidiPortNames(final AutoDetectionMidiPortNamesList list, final PlatformType platformType) { - list.add(new String[] {"Erae 2", "MIDIIN2 (Erae 2)"}, new String[] {"Erae 2"}); + if (platformType == PlatformType.WINDOWS) { + list.add(new String[] {"Erae 2", "MIDIIN2 (Erae 2)"}, new String[] {"Erae 2"}); + } else { + list.add(new String[] {"Erae 2 MIDI", "Erae 2 MIDI (MPE)"}, new String[] {"Erae 2 MIDI"}); + } } @Override From 529596632f7635f379ac8a9ae7e4b80443d083c3 Mon Sep 17 00:00:00 2001 From: ericahrens Date: Wed, 19 Aug 2026 23:13:36 +0200 Subject: [PATCH 3/3] Remove Mode Layout switching once and for all --- .../launchcontrolxlmk3/LaunchControlMidiProcessor.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/LaunchControlMidiProcessor.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/LaunchControlMidiProcessor.java index 11c9e373..f12b195e 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/LaunchControlMidiProcessor.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/LaunchControlMidiProcessor.java @@ -73,13 +73,6 @@ public String getSysexHeader() { return NOVATION_HEADER; } - private void setMixLayout() { - midiOut.sendMidi(0xB6, 0x1E, 0x01); - } - - private void setControlLayout() { - midiOut.sendMidi(0xB6, 0x1E, 0x02); - } public void setToRelative(final int row, final boolean on) { midiOut.sendMidi(0xB6, ROW_CC_IDS[row], on ? 0x7F : 0x00); @@ -171,8 +164,6 @@ private void handleSysEx(final String data) { private void startMidi() { init = true; startDawMode(); - setControlLayout(); - setMixLayout(); startListeners.forEach(Runnable::run); host.scheduleTask(this::handlePing, 50); }