Skip to content

Commit

Permalink
Release of 24.5.1.
Browse files Browse the repository at this point in the history
  • Loading branch information
git-moss committed Oct 13, 2024
1 parent 93089a1 commit 50c70d5
Show file tree
Hide file tree
Showing 33 changed files with 219 additions and 59 deletions.
Binary file modified DrivenByMoss-Manual.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion dependency-reduced-pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<groupId>de.mossgrabers</groupId>
<artifactId>DrivenByMoss</artifactId>
<name>DrivenByMoss</name>
<version>24.5.0</version>
<version>24.5.1</version>
<licenses>
<license>
<name>LGPL-2.1-or-later</name>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<artifactId>DrivenByMoss</artifactId>
<packaging>jar</packaging>
<name>DrivenByMoss</name>
<version>24.5.0</version>
<version>24.5.1</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,8 @@ public ModelImpl (final ModelSetup modelSetup, final DataSetup dataSetup, final
final DeviceMatcher vst2DeviceMatcher = controllerHost.createVST2DeviceMatcher (KompleteDevice.VST2_KOMPLETE_ID);
final DeviceMatcher vst3DeviceMatcher = controllerHost.createVST3DeviceMatcher (KompleteDevice.VST3_KOMPLETE_ID);
final DeviceMatcher vst3Kontakt7DeviceMatcher = controllerHost.createVST3DeviceMatcher (KompleteDevice.VST3_KONTAKT_7_ID);
final Device kompleteDevice = this.createDevice (controllerHost.createOrDeviceMatcher (vst2DeviceMatcher, vst3DeviceMatcher, vst3Kontakt7DeviceMatcher));
final DeviceMatcher vst3Kontakt8DeviceMatcher = controllerHost.createVST3DeviceMatcher (KompleteDevice.VST3_KONTAKT_8_ID);
final Device kompleteDevice = this.createDevice (controllerHost.createOrDeviceMatcher (vst2DeviceMatcher, vst3DeviceMatcher, vst3Kontakt7DeviceMatcher, vst3Kontakt8DeviceMatcher));
specificDevice = new KompleteDevice (this.host, this.valueChanger, kompleteDevice);
break;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ public class KompleteDevice extends SpecificDeviceImpl
public static final String VST3_KOMPLETE_ID = "5653544E694B4B6B6F6D706C65746520";
/** The ID of the Konktakt 7 VST3 plugin. */
public static final String VST3_KONTAKT_7_ID = "5653544E694B376B6F6E74616B742037";
/** The ID of the Konktakt 8 VST3 plugin. */
public static final String VST3_KONTAKT_8_ID = "5653544E694B386B6F6E74616B742038";

private final Parameter nikbVst2;
private final Parameter nikbVst3;
private final Parameter nikbVst3Kontakt7;
private final Parameter nikbVst3Kontakt8;


/**
Expand Down Expand Up @@ -56,6 +59,11 @@ public KompleteDevice (final IHost host, final IValueChanger valueChanger, final
this.nikbVst3Kontakt7 = specificDevice.createParameter (2048);
this.nikbVst3Kontakt7.exists ().markInterested ();
this.nikbVst3Kontakt7.name ().markInterested ();

specificDevice = device.createSpecificVst3Device (VST3_KONTAKT_8_ID);
this.nikbVst3Kontakt8 = specificDevice.createParameter (2048);
this.nikbVst3Kontakt8.exists ().markInterested ();
this.nikbVst3Kontakt8.name ().markInterested ();
}


Expand All @@ -69,6 +77,8 @@ public String getID ()
return this.nikbVst3.name ().get ();
if (this.nikbVst3Kontakt7.exists ().get ())
return this.nikbVst3Kontakt7.name ().get ();
if (this.nikbVst3Kontakt8.exists ().get ())
return this.nikbVst3Kontakt8.name ().get ();
return "";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

package de.mossgrabers.bitwig.framework.daw.data;

import com.bitwig.extension.controller.api.ClipLauncherSlot;
import com.bitwig.extension.controller.api.ColorValue;

import de.mossgrabers.framework.controller.color.ColorEx;
import de.mossgrabers.framework.daw.data.AbstractItemImpl;
import de.mossgrabers.framework.daw.data.ISlot;
import de.mossgrabers.framework.daw.data.ITrack;
import de.mossgrabers.framework.observer.IValueObserver;

import com.bitwig.extension.controller.api.ClipLauncherSlot;
import com.bitwig.extension.controller.api.ColorValue;


/**
* Encapsulates the data of a slot.
Expand Down Expand Up @@ -129,6 +129,15 @@ public boolean hasContent ()
}


/** {@inheritDoc} */
@Override
public boolean isMuted ()
{
// Info not available via the API
return false;
}


/** {@inheritDoc} */
@Override
public boolean isRecording ()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,16 @@ public SessionView (final PushControlSurface surface, final IModel model)
final int white = isPush2 ? PushColorManager.PUSH2_COLOR2_WHITE : PushColorManager.PUSH1_COLOR2_WHITE;
final int green = isPush2 ? PushColorManager.PUSH2_COLOR2_GREEN : PushColorManager.PUSH1_COLOR2_GREEN;
final int amber = isPush2 ? PushColorManager.PUSH2_COLOR2_AMBER : PushColorManager.PUSH1_COLOR2_AMBER;
final int grey = isPush2 ? PushColorManager.PUSH2_COLOR2_GREY_LO : PushColorManager.PUSH1_COLOR2_GREY_LO;
final LightInfo isRecording = new LightInfo (redHi, redHi, false);
final LightInfo isRecordingQueued = new LightInfo (redHi, black, true);
final LightInfo isPlaying = new LightInfo (green, green, false);
final LightInfo isPlayingQueued = new LightInfo (green, green, true);
final LightInfo hasContent = new LightInfo (amber, white, false);
final LightInfo noContent = new LightInfo (black, -1, false);
final LightInfo recArmed = new LightInfo (redLo, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (grey, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);

this.birdColorHasContent = new LightInfo (amber, -1, false);
this.birdColorSelected = isPlaying;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ public SessionView (final APCControlSurface surface, final IModel model)
final LightInfo hasContent = new LightInfo (APCColorManager.APC_MKII_COLOR_AMBER, APCColorManager.APC_MKII_COLOR_WHITE, false);
final LightInfo noContent = new LightInfo (APCColorManager.APC_MKII_COLOR_BLACK, -1, false);
final LightInfo recArmed = new LightInfo (APCColorManager.APC_MKII_COLOR_RED_LO, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (APCColorManager.APC_MKII_COLOR_GREY_LO, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);
}
else
{
Expand All @@ -57,7 +58,8 @@ public SessionView (final APCControlSurface surface, final IModel model)
final LightInfo hasContent = new LightInfo (APCColorManager.APC_COLOR_YELLOW, APCColorManager.APC_COLOR_YELLOW_BLINK, false);
final LightInfo noContent = new LightInfo (APCColorManager.APC_COLOR_BLACK, -1, false);
final LightInfo recArmed = new LightInfo (APCColorManager.APC_COLOR_BLACK, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (APCColorManager.APC_COLOR_BLACK, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ public SessionView (final APCminiControlSurface surface, final IModel model, fin
final LightInfo hasContent = new LightInfo (APCminiMk2ColorManager.ORANGE, APCminiMk2ColorManager.WHITE, false);
final LightInfo noContent = new LightInfo (APCminiMk2ColorManager.BLACK, -1, false);
final LightInfo recArmed = new LightInfo (APCminiMk2ColorManager.DARK_RED, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (APCminiMk2ColorManager.DARK_GRAY, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);
}
else
{
Expand All @@ -64,7 +65,8 @@ public SessionView (final APCminiControlSurface surface, final IModel model, fin
final LightInfo hasContent = new LightInfo (APCminiMk1ColorManager.APC_COLOR_YELLOW, APCminiMk1ColorManager.APC_COLOR_YELLOW_BLINK, false);
final LightInfo noContent = new LightInfo (APCminiMk1ColorManager.APC_COLOR_BLACK, -1, false);
final LightInfo recArmed = new LightInfo (APCminiMk1ColorManager.APC_COLOR_BLACK, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (APCminiMk1ColorManager.APC_COLOR_BLACK, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public SessionView (final FireControlSurface surface, final IModel model)
final LightInfo hasContent = new LightInfo (FireColorManager.FIRE_COLOR_ORANGE, FireColorManager.FIRE_COLOR_WHITE, false);
final LightInfo noContent = new LightInfo (FireColorManager.FIRE_COLOR_BLACK, -1, false);
final LightInfo recArmed = new LightInfo (FireColorManager.FIRE_COLOR_DARK_RED, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (FireColorManager.FIRE_COLOR_GRAY, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);

this.birdColorHasContent = hasContent;
this.birdColorSelected = isPlaying;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import de.mossgrabers.controller.mackie.mcu.MCUConfiguration.MainDisplay;
import de.mossgrabers.controller.mackie.mcu.controller.MCUControlSurface;
import de.mossgrabers.controller.mackie.mcu.mode.BaseMode;
import de.mossgrabers.framework.controller.ButtonID;
import de.mossgrabers.framework.controller.color.ColorEx;
import de.mossgrabers.framework.controller.display.ITextDisplay;
import de.mossgrabers.framework.daw.IModel;
Expand Down Expand Up @@ -122,14 +123,14 @@ private void trackSelectionChanged (final int index, final boolean isSelected)
@Override
public void updateDisplay ()
{
final boolean isShiftPressed = this.surface.isShiftPressed ();
if (isShiftPressed || this.surface.isSelectPressed ())
final boolean isControlPressed = this.surface.isPressed (ButtonID.CONTROL);
if (isControlPressed || this.surface.isSelectPressed ())
{
final ColorEx [] colors = new ColorEx [8];
final ITextDisplay d = this.surface.getTextDisplay ().clear ();
final int textLength = this.getTextLength ();
final ICursorDevice cursorDevice = this.model.getCursorDevice ();
if (isShiftPressed)
if (isControlPressed)
{
final IDeviceBank deviceBank = cursorDevice.getDeviceBank ();
final int extenderOffset = this.getExtenderOffset ();
Expand Down Expand Up @@ -235,7 +236,7 @@ public void onButton (final int row, final int index, final ButtonEvent event)
{
if (row == 0)
{
if (this.surface.isShiftPressed ())
if (this.surface.isPressed (ButtonID.CONTROL))
{
if (event == ButtonEvent.DOWN)
{
Expand Down Expand Up @@ -275,14 +276,14 @@ else if (this.surface.isSelectPressed ())
@Override
public void updateKnobLEDs ()
{
final boolean isShiftPressed = this.surface.isShiftPressed ();
if (isShiftPressed || this.surface.isSelectPressed ())
final boolean isControlPressed = this.surface.isPressed (ButtonID.CONTROL);
if (isControlPressed || this.surface.isSelectPressed ())
{
final int upperBound = this.model.getValueChanger ().getUpperBound ();
final ICursorDevice cursorDevice = this.model.getCursorDevice ();
final int extenderOffset = this.getExtenderOffset ();

if (isShiftPressed)
if (isControlPressed)
{
final IDeviceBank deviceBank = cursorDevice.getDeviceBank ();
final int selectedPosition = cursorDevice.getPosition ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import java.util.List;

import de.mossgrabers.controller.ni.kontrol.mkii.controller.KontrolProtocol;
import de.mossgrabers.framework.configuration.AbstractConfiguration;
import de.mossgrabers.framework.configuration.IEnumSetting;
import de.mossgrabers.framework.configuration.ISettingsUI;
Expand Down Expand Up @@ -90,12 +91,15 @@ public KontrolProtocolConfiguration (final IHost host, final IValueChanger value
@Override
public void init (final ISettingsUI globalSettings, final ISettingsUI documentSettings)
{
final IEnumSetting modeSwitchButtonSetting = globalSettings.getEnumSetting ("Switch modes with", CATEGORY_HARDWARE_SETUP, MODE_SWITCH_BUTTONS, MODE_SWITCH_BUTTONS[this.version >= 3 ? 7 : 0]);
modeSwitchButtonSetting.addValueObserver (value -> {
this.modeSwitchButton = SwitchButton.values ()[lookupIndex (MODE_SWITCH_BUTTONS, value)];
this.notifyObservers (MODE_SWITCH_BUTTON);
});
this.isSettingActive.add (MODE_SWITCH_BUTTON);
if (this.version == KontrolProtocol.VERSION_3)
{
final IEnumSetting modeSwitchButtonSetting = globalSettings.getEnumSetting ("Switch modes with", CATEGORY_HARDWARE_SETUP, MODE_SWITCH_BUTTONS, MODE_SWITCH_BUTTONS[this.version >= 3 ? 7 : 0]);
modeSwitchButtonSetting.addValueObserver (value -> {
this.modeSwitchButton = SwitchButton.values ()[lookupIndex (MODE_SWITCH_BUTTONS, value)];
this.notifyObservers (MODE_SWITCH_BUTTON);
});
this.isSettingActive.add (MODE_SWITCH_BUTTON);
}

///////////////////////////
// Transport
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ public SessionView (final MaschineJamControlSurface surface, final IModel model)
final LightInfo hasContent = new LightInfo (MaschineColorManager.COLOR_AMBER, MaschineColorManager.COLOR_WHITE, false);
final LightInfo noContent = new LightInfo (MaschineColorManager.COLOR_BLACK, -1, false);
final LightInfo recArmed = new LightInfo (MaschineColorManager.COLOR_RED_LO, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed);
final LightInfo isMuted = new LightInfo (MaschineColorManager.COLOR_DARK_GREY, -1, false);
this.setColors (isRecording, isRecordingQueued, isPlaying, isPlayingQueued, hasContent, noContent, recArmed, isMuted);

this.birdColorHasContent = hasContent;
this.birdColorSelected = isPlaying;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ protected void setParameterProviders (final IParameterProvider parameterProvider
{
this.parameterProvider = parameterProvider;
this.parameterProviderWithDeviceParams = parameterProviderWithDeviceParams;
this.setParameterProvider (parameterProvider);
this.setParameterProvider (this.configuration.isDeviceActive () ? this.parameterProviderWithDeviceParams : this.parameterProvider);
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package de.mossgrabers.controller.novation.launchcontrol.mode.main;

import java.util.List;

import de.mossgrabers.controller.novation.launchcontrol.controller.LaunchControlXLColorManager;
import de.mossgrabers.controller.novation.launchcontrol.controller.LaunchControlXLControlSurface;
import de.mossgrabers.controller.novation.launchcontrol.mode.buttons.XLTemporaryButtonMode;
Expand All @@ -12,8 +14,6 @@
import de.mossgrabers.framework.mode.Modes;
import de.mossgrabers.framework.utils.ButtonEvent;

import java.util.List;


/**
* Mix mode for the LauchControl XL to control 2 sends and panorama.
Expand Down Expand Up @@ -142,6 +142,15 @@ public int getButtonColor (final ButtonID buttonID)
@Override
public void selectPreviousItem ()
{
if (this.surface.isPressed (ButtonID.DEVICE))
{
if (this.surface.getTrackButtonModeManager ().getActive () instanceof final XLTemporaryButtonMode tempMode)
tempMode.setHasBeenUsed ();
if (this.surface.getModeManager ().get (Modes.SEND) instanceof XLTrackMixMode mixMode)
mixMode.selectParameterMode (false);
return;
}

final ITrackBank trackBank = this.model.getTrackBank ();
for (int i = 0; i < 8; i++)
trackBank.getItem (i).getSendBank ().selectPreviousPage ();
Expand All @@ -153,6 +162,15 @@ public void selectPreviousItem ()
@Override
public void selectNextItem ()
{
if (this.surface.isPressed (ButtonID.DEVICE))
{
if (this.surface.getTrackButtonModeManager ().getActive () instanceof final XLTemporaryButtonMode tempMode)
tempMode.setHasBeenUsed ();
if (this.surface.getModeManager ().get (Modes.SEND) instanceof XLTrackMixMode mixMode)
mixMode.selectParameterMode (true);
return;
}

final ITrackBank trackBank = this.model.getTrackBank ();
for (int i = 0; i < 8; i++)
trackBank.getItem (i).getSendBank ().selectNextPage ();
Expand All @@ -164,6 +182,9 @@ public void selectNextItem ()
@Override
public boolean hasPreviousItem ()
{
if (this.surface.isPressed (ButtonID.DEVICE))
return true;

final ITrackBank trackBank = this.model.getTrackBank ();
boolean canScroll = false;
for (int i = 0; i < 8; i++)
Expand All @@ -176,6 +197,9 @@ public boolean hasPreviousItem ()
@Override
public boolean hasNextItem ()
{
if (this.surface.isPressed (ButtonID.DEVICE))
return true;

final ITrackBank trackBank = this.model.getTrackBank ();
boolean canScroll = false;
for (int i = 0; i < 8; i++)
Expand Down
Loading

0 comments on commit 50c70d5

Please sign in to comment.