Skip to content

Commit 12a9356

Browse files
committed
* Electra One
* Fixed: The first page (mixer) was not selected on startup, which means that if a different one was selected it did not work. * Native Instruments Kontrol Mk3 * Fixed: Names in different mix modes are reduced to 1 line to fix overflow of the graphics.
1 parent 8a6244d commit 12a9356

File tree

10 files changed

+67
-39
lines changed

10 files changed

+67
-39
lines changed

src/main/java/de/mossgrabers/controller/electra/one/ElectraOneControllerSetup.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
public class ElectraOneControllerSetup extends AbstractControllerSetup<ElectraOneControlSurface, ElectraOneConfiguration>
4646
{
4747
/**
48-
* Constructor.
48+
* O Constructor.
4949
*
5050
* @param host The DAW host
5151
* @param factory The factory

src/main/java/de/mossgrabers/controller/electra/one/controller/ElectraOneControlSurface.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -880,11 +880,8 @@ private void setOnline ()
880880
{
881881
this.host.println ("Going online...");
882882
this.isOnline = true;
883-
884-
if (this.activeMode == null || this.activeMode == Modes.VOLUME)
885-
this.modeManager.setActive (Modes.VOLUME);
886-
else
887-
this.selectPage (MODES.indexOf (this.activeMode));
883+
this.modeManager.setActive (Modes.VOLUME);
884+
this.selectPage (MODES.indexOf (this.activeMode == null ? Modes.VOLUME : this.activeMode));
888885
}
889886

890887

src/main/java/de/mossgrabers/controller/electra/one/mode/DeviceMode.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public void updateDisplay ()
156156
final boolean exists = param.doesExist ();
157157
int row = i / 4;
158158
final int column = 1 + i % 4;
159-
this.pageCache.updateElement (row, column, exists ? StringUtils.fixASCII (param.getName ()) : "", exists ? ColorEx.ORANGE : ColorEx.BLACK, Boolean.TRUE);
159+
this.pageCache.updateElement (row, column, exists ? StringUtils.fixASCII (param.getName ()) : "", exists ? ColorEx.ORANGE : ColorEx.BLACK, Boolean.valueOf (exists));
160160
this.pageCache.updateValue (row, column, param.getValue (), exists ? StringUtils.optimizeName (StringUtils.fixASCII (param.getDisplayedValue ()), 15) : " ");
161161

162162
// Set page names
@@ -165,14 +165,14 @@ public void updateDisplay ()
165165
final boolean isSelected = parameterPageBank.getSelectedItemIndex () == i;
166166
final boolean pageExists = !paramPage.isBlank ();
167167
final ColorEx color = isSelected ? ElectraOneColorManager.PARAM_PAGE_SELECTED : ElectraOneColorManager.PARAM_PAGE;
168-
this.pageCache.updateElement (row, column, pageExists ? StringUtils.fixASCII (paramPage) : " ", pageExists ? color : ColorEx.BLACK, Boolean.TRUE);
168+
this.pageCache.updateElement (row, column, pageExists ? StringUtils.fixASCII (paramPage) : " ", pageExists ? color : ColorEx.BLACK, Boolean.valueOf (pageExists));
169169

170170
// Set device names
171171
row += 2;
172172
final IDevice device = siblingBank.getItem (i);
173173
final boolean deviceExists = device.doesExist ();
174174
final ColorEx deviceColor = cursorDevice.getIndex () == i ? ElectraOneColorManager.DEVICE_SELECTED : ElectraOneColorManager.DEVICE;
175-
this.pageCache.updateElement (row, column, deviceExists ? StringUtils.fixASCII (device.getName ()) : " ", deviceExists ? deviceColor : ColorEx.BLACK, Boolean.TRUE);
175+
this.pageCache.updateElement (row, column, deviceExists ? StringUtils.fixASCII (device.getName ()) : " ", deviceExists ? deviceColor : ColorEx.BLACK, Boolean.valueOf (deviceExists));
176176
}
177177

178178
this.pageCache.updateColor (0, 0, cursorDevice.isEnabled () ? ElectraOneColorManager.DEVICE_ON : ElectraOneColorManager.DEVICE_OFF);

src/main/java/de/mossgrabers/controller/electra/one/mode/MixerMode.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ public void updateDisplay ()
138138
final ITrack track = trackOpt.isPresent () ? trackOpt.get () : EmptyTrack.getInstance (this.model.getTrackBank ().getItem (0).getSendBank ().getPageSize ());
139139

140140
final boolean trackExists = track.doesExist ();
141-
142-
// Do not hide the elements until the knob touch issue gets fixed
143-
final Boolean exists = Boolean.TRUE;
141+
final Boolean exists = Boolean.valueOf (trackExists);
144142

145143
final String trackLabel = trackExists ? track.getPosition () + 1 + ": " + track.getName () : "";
146144
this.pageCache.updateGroupLabel (FIRST_TRACK_GROUP + column, trackLabel);
@@ -149,12 +147,12 @@ public void updateDisplay ()
149147

150148
final ColorEx color = track.getColor ();
151149

152-
this.pageCache.updateElement (0, column, trackExists ? "VOLUME" : "", color, exists);
153-
this.pageCache.updateElement (1, column, trackExists ? "PAN" : "", color, exists);
154-
this.pageCache.updateElement (2, column, trackExists ? "REC ARM" : "", track.isRecArm () ? ElectraOneColorManager.REC_ARM_ON : ElectraOneColorManager.REC_ARM_OFF, exists);
155-
this.pageCache.updateElement (3, column, trackExists ? "MUTE" : "", track.isMute () ? ElectraOneColorManager.MUTE_ON : ElectraOneColorManager.MUTE_OFF, exists);
156-
this.pageCache.updateElement (4, column, trackExists ? "SOLO" : "", track.isSolo () ? ElectraOneColorManager.SOLO_ON : ElectraOneColorManager.SOLO_OFF, exists);
157-
this.pageCache.updateElement (5, column, trackExists ? "SELECT" : "", track.isSelected () ? ElectraOneColorManager.SELECT_ON : ElectraOneColorManager.SELECT_OFF, exists);
150+
this.pageCache.updateElement (0, column, trackExists ? "VOLUME" : " ", color, exists);
151+
this.pageCache.updateElement (1, column, trackExists ? "PAN" : " ", color, exists);
152+
this.pageCache.updateElement (2, column, trackExists ? "REC ARM" : " ", track.isRecArm () ? ElectraOneColorManager.REC_ARM_ON : ElectraOneColorManager.REC_ARM_OFF, exists);
153+
this.pageCache.updateElement (3, column, trackExists ? "MUTE" : " ", track.isMute () ? ElectraOneColorManager.MUTE_ON : ElectraOneColorManager.MUTE_OFF, exists);
154+
this.pageCache.updateElement (4, column, trackExists ? "SOLO" : " ", track.isSolo () ? ElectraOneColorManager.SOLO_ON : ElectraOneColorManager.SOLO_OFF, exists);
155+
this.pageCache.updateElement (5, column, trackExists ? "SELECT" : " ", track.isSelected () ? ElectraOneColorManager.SELECT_ON : ElectraOneColorManager.SELECT_OFF, exists);
158156
}
159157

160158
// Master

src/main/java/de/mossgrabers/controller/electra/one/mode/ProjectTrackMode.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,13 @@ public void updateDisplay ()
117117
boolean paramExists = param.doesExist ();
118118
int row = i / 4;
119119
final int column = 1 + i % 4;
120-
this.pageCache.updateElement (row, column, paramExists ? StringUtils.fixASCII (param.getName ()) : "", paramExists ? ColorEx.PINK : ColorEx.BLACK, Boolean.TRUE);
120+
this.pageCache.updateElement (row, column, paramExists ? StringUtils.fixASCII (param.getName ()) : "", paramExists ? ColorEx.PINK : ColorEx.BLACK, Boolean.valueOf (paramExists));
121121
this.pageCache.updateValue (row, column, param.getValue (), paramExists ? StringUtils.optimizeName (StringUtils.fixASCII (param.getDisplayedValue ()), 15) : " ");
122122

123123
param = trackParameterBank.getItem (i);
124124
paramExists = param.doesExist ();
125125
row += 4;
126-
this.pageCache.updateElement (row, column, paramExists ? StringUtils.fixASCII (param.getName ()) : "", paramExists ? ColorEx.MINT : ColorEx.BLACK, Boolean.TRUE);
126+
this.pageCache.updateElement (row, column, paramExists ? StringUtils.fixASCII (param.getName ()) : "", paramExists ? ColorEx.MINT : ColorEx.BLACK, Boolean.valueOf (paramExists));
127127
this.pageCache.updateValue (row, column, param.getValue (), paramExists ? StringUtils.optimizeName (StringUtils.fixASCII (param.getDisplayedValue ()), 15) : " ");
128128
}
129129

@@ -136,14 +136,14 @@ public void updateDisplay ()
136136
boolean isSelected = projectPageBank.getSelectedItemIndex () == column;
137137
boolean pageExists = !paramPage.isBlank ();
138138
ColorEx color = isSelected ? ElectraOneColorManager.PROJECT_PARAM_PAGE_SELECTED : ElectraOneColorManager.PROJECT_PARAM_PAGE;
139-
this.pageCache.updateElement (2, column, pageExists ? StringUtils.fixASCII (paramPage) : " ", pageExists ? color : ColorEx.BLACK, Boolean.TRUE);
139+
this.pageCache.updateElement (2, column, pageExists ? StringUtils.fixASCII (paramPage) : " ", pageExists ? color : ColorEx.BLACK, Boolean.valueOf (pageExists));
140140

141141
// Set track page names
142142
paramPage = trackPageBank.getItem (column);
143143
isSelected = trackPageBank.getSelectedItemIndex () == column;
144144
pageExists = !paramPage.isBlank ();
145145
color = isSelected ? ElectraOneColorManager.TRACK_PARAM_PAGE_SELECTED : ElectraOneColorManager.TRACK_PARAM_PAGE;
146-
this.pageCache.updateElement (3, column, pageExists ? StringUtils.fixASCII (paramPage) : " ", pageExists ? color : ColorEx.BLACK, Boolean.TRUE);
146+
this.pageCache.updateElement (3, column, pageExists ? StringUtils.fixASCII (paramPage) : " ", pageExists ? color : ColorEx.BLACK, Boolean.valueOf (pageExists));
147147
}
148148

149149
// Row 3 / 4

src/main/java/de/mossgrabers/controller/electra/one/mode/SendsMode.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
package de.mossgrabers.controller.electra.one.mode;
66

7+
import java.util.Optional;
8+
79
import de.mossgrabers.controller.electra.one.controller.ElectraOneColorManager;
810
import de.mossgrabers.controller.electra.one.controller.ElectraOneControlSurface;
911
import de.mossgrabers.framework.controller.color.ColorEx;
@@ -23,8 +25,6 @@
2325
import de.mossgrabers.framework.utils.ButtonEvent;
2426
import de.mossgrabers.framework.utils.StringUtils;
2527

26-
import java.util.Optional;
27-
2828

2929
/**
3030
* The sends mode. The knobs control the sends 1-6 of the tracks on the current track page.
@@ -121,7 +121,7 @@ public void updateDisplay ()
121121
final boolean doesExist = send.doesExist ();
122122

123123
this.pageCache.updateValue (row, column, send.getValue (), doesExist ? StringUtils.optimizeName (StringUtils.fixASCII (send.getDisplayedValue ()), 15) : " ");
124-
this.pageCache.updateElement (row, column, send.getName (), doesExist ? color : ColorEx.BLACK, Boolean.TRUE);
124+
this.pageCache.updateElement (row, column, send.getName (), doesExist ? color : ColorEx.BLACK, Boolean.valueOf (doesExist));
125125
}
126126
}
127127

src/main/java/de/mossgrabers/controller/electra/one/mode/TransportMode.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,11 @@ public void updateDisplay ()
233233
{
234234
IMarker marker = markerBank.getItem (i);
235235
boolean doesExist = marker.doesExist ();
236-
this.pageCache.updateElement (2, 1 + i, doesExist ? marker.getName () : " ", doesExist ? marker.getColor () : ColorEx.BLACK, Boolean.TRUE);
236+
this.pageCache.updateElement (2, 1 + i, doesExist ? marker.getName () : " ", getMarkerColor (marker, doesExist), Boolean.valueOf (doesExist));
237237

238238
marker = markerBank.getItem (4 + i);
239239
doesExist = marker.doesExist ();
240-
this.pageCache.updateElement (3, 1 + i, doesExist ? marker.getName () : " ", doesExist ? marker.getColor () : ColorEx.BLACK, Boolean.TRUE);
240+
this.pageCache.updateElement (3, 1 + i, doesExist ? marker.getName () : " ", getMarkerColor (marker, doesExist), Boolean.valueOf (doesExist));
241241
}
242242

243243
// Row 5
@@ -263,10 +263,24 @@ public void updateDisplay ()
263263
this.pageCache.updateColor (4, 5, this.transport.isRecording () ? ElectraOneColorManager.RECORD_ON : ElectraOneColorManager.RECORD_OFF);
264264
this.pageCache.updateColor (5, 5, this.transport.isPlaying () ? ElectraOneColorManager.PLAY_ON : ElectraOneColorManager.PLAY_OFF);
265265

266+
this.pageCache.updateElement (4, 3, " ", null, Boolean.FALSE);
267+
this.pageCache.updateElement (5, 2, " ", null, Boolean.FALSE);
268+
266269
this.pageCache.flush ();
267270
}
268271

269272

273+
private static ColorEx getMarkerColor (final IMarker marker, final boolean doesExist)
274+
{
275+
if (doesExist)
276+
{
277+
final ColorEx color = marker.getColor ();
278+
return ColorEx.BLACK.equals (color) ? ColorEx.GRAY : color;
279+
}
280+
return ColorEx.BLACK;
281+
}
282+
283+
270284
private void handleMarker (final int markerIndex)
271285
{
272286
final IMarker marker = this.model.getMarkerBank ().getItem (markerIndex);

src/main/java/de/mossgrabers/controller/ni/kontrol/mkii/mode/LayerMode.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public void updateDisplay ()
143143
this.surface.sendKontrolSysEx (KontrolProtocolControlSurface.SYSEX_TRACK_RECARM, 0, i);
144144
this.surface.sendKontrolSysEx (KontrolProtocolControlSurface.SYSEX_TRACK_VOLUME_TEXT, 0, i, layer.getVolumeStr (8));
145145
this.surface.sendKontrolSysEx (KontrolProtocolControlSurface.SYSEX_TRACK_PAN_TEXT, 0, i, layer.getPanStr (8));
146-
this.surface.sendKontrolSysEx (KontrolProtocolControlSurface.SYSEX_TRACK_NAME, 0, i, formatLayerName (cursorDevice, layer));
146+
this.surface.sendKontrolSysEx (KontrolProtocolControlSurface.SYSEX_TRACK_NAME, 0, i, this.formatLayerName (cursorDevice, layer));
147147

148148
if (protocolVersion == KontrolProtocol.VERSION_4)
149149
this.surface.sendKontrolSysEx (KontrolProtocolControlSurface.SYSEX_TRACK_COLOR, 0, i, "#" + StringUtils.formatColor (layer.getColor ()));
@@ -174,11 +174,20 @@ public void parametersAdjusted ()
174174
}
175175

176176

177-
private static String formatLayerName (final ICursorDevice cursorDevice, final ILayer layer)
177+
private String formatLayerName (final ICursorDevice cursorDevice, final ILayer layer)
178178
{
179179
if (!cursorDevice.doesExist () || !layer.doesExist ())
180180
return "";
181-
return "Layer " + (layer.getPosition () + 1) + "\n" + layer.getName ();
181+
final String name = layer.getName ();
182+
switch (this.surface.getProtocolVersion ())
183+
{
184+
case KontrolProtocol.VERSION_1:
185+
return name;
186+
case KontrolProtocol.VERSION_2:
187+
return "Layer " + (layer.getPosition () + 1) + "\n" + name;
188+
default:
189+
return layer.getPosition () + 1 + ": " + name;
190+
}
182191
}
183192

184193

src/main/java/de/mossgrabers/controller/ni/kontrol/mkii/mode/MixerMode.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,14 @@ private String formatTrackName (final ITrack track)
146146
if (!track.doesExist ())
147147
return "";
148148
final String name = track.getName ();
149-
if (this.surface.getProtocolVersion () == KontrolProtocol.VERSION_1)
150-
return name;
151-
return "Track " + (track.getPosition () + 1) + "\n" + name;
149+
switch (this.surface.getProtocolVersion ())
150+
{
151+
case KontrolProtocol.VERSION_1:
152+
return name;
153+
case KontrolProtocol.VERSION_2:
154+
return "Track " + (track.getPosition () + 1) + "\n" + name;
155+
default:
156+
return (track.getPosition () + 1) + ": " + name;
157+
}
152158
}
153159
}

src/main/java/de/mossgrabers/controller/ni/kontrol/mkii/mode/SendMode.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,15 @@ public void selectNextItemPage ()
180180

181181
private String getLabel (final ITrack track, final ISend send)
182182
{
183-
final String n = send.doesExist () ? send.getName () : "None";
184-
185-
if (this.surface.getProtocolVersion () == KontrolProtocol.VERSION_1)
186-
return "S" + (send.getPosition () + 1) + ": " + n;
187-
188-
return "FX Track " + (track.getPosition () + 1) + (send.getPosition () + 1) + "\n" + n;
183+
final String name = send.doesExist () ? send.getName () : "None";
184+
switch (this.surface.getProtocolVersion ())
185+
{
186+
case KontrolProtocol.VERSION_1:
187+
return "S" + (send.getPosition () + 1) + ": " + name;
188+
case KontrolProtocol.VERSION_2:
189+
return "FX Track " + (track.getPosition () + 1) + (send.getPosition () + 1) + "\n" + name;
190+
default:
191+
return "S" + (send.getPosition () + 1) + ": " + name;
192+
}
189193
}
190194
}

0 commit comments

Comments
 (0)