Skip to content

Commit

Permalink
* Fixed: Browser could crash.
Browse files Browse the repository at this point in the history
* Fixed: Scrolling items (e.g. tracks) left could jump in steps of 8. Side effect from the change that the 1st instead of the last item is selected when changing a page backwards.
* Maschine JAM
  * Fixed: When holding down Grid button in step sequencer mode, the group/channel buttons A-H did not reflect the available resolution options. Furthermore, the number of selectable resolutions was coupled to the number of tracks in the project.
* MCU
  * Fixed: Changed VU meter range (when Mackie is selected) to 0-12 instead of 0-13.
* OXI One
  * New: Added DrumXoX sequencer (press Arrange button twice).
  * New: Added the Raindrop sequencer (press Sequencer button 4 times).
  * New: Added automation mode (press Shift+MOD buttons).
  * New: Mixer mode: press Shift+track pads to stop the playing clip of the track.
  * Fixed: Drum 128 was named Drum 64 in the startup view setting.
* Push 1
  * Fixed: Notify played chords feature did halt other display updates.
  • Loading branch information
git-moss committed Dec 15, 2024
1 parent 50c70d5 commit 1c297d1
Show file tree
Hide file tree
Showing 34 changed files with 681 additions and 63 deletions.
Binary file modified DrivenByMoss-Manual.pdf
Binary file not shown.
8 changes: 4 additions & 4 deletions 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.1</version>
<version>24.6.0</version>
<licenses>
<license>
<name>LGPL-2.1-or-later</name>
Expand Down Expand Up @@ -156,7 +156,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.17.1</version>
<version>2.18.0</version>
<configuration>
<ignoredVersions>.*-M.*,.*-alpha.*,.*-beta.*,.*-ea.*,.*-rc.*</ignoredVersions>
<generateBackupPoms>false</generateBackupPoms>
Expand All @@ -165,7 +165,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.4.0</version>
<version>2.5.0</version>
<executions>
<execution>
<id>add-third-party</id>
Expand Down Expand Up @@ -204,7 +204,7 @@
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.0</version>
<version>3.5.2</version>
</plugin>
</plugins>
</build>
Expand Down
10 changes: 5 additions & 5 deletions 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.1</version>
<version>24.6.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Expand Down Expand Up @@ -65,7 +65,7 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.18.0</version>
<version>2.18.2</version>
</dependency>
<!-- Gamepad support. -->
<dependency>
Expand Down Expand Up @@ -233,7 +233,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.17.1</version>
<version>2.18.0</version>
<configuration>
<ignoredVersions>.*-M.*,.*-alpha.*,.*-beta.*,.*-ea.*,.*-rc.*</ignoredVersions>
<generateBackupPoms>false</generateBackupPoms>
Expand All @@ -244,7 +244,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.4.0</version>
<version>2.5.0</version>
<configuration>
<sortArtifactByName>true</sortArtifactByName>
<licenseMerges>
Expand Down Expand Up @@ -291,7 +291,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.0</version>
<version>3.5.2</version>
</plugin>

</plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import de.mossgrabers.framework.daw.constants.LaunchQuantization;
import de.mossgrabers.framework.daw.constants.PostRecordingAction;
import de.mossgrabers.framework.daw.constants.TransportConstants;
import de.mossgrabers.framework.parameter.AutomationModeParameter;
import de.mossgrabers.framework.parameter.IParameter;
import de.mossgrabers.framework.utils.StringUtils;

Expand Down Expand Up @@ -62,6 +63,7 @@ public class TransportImpl implements ITransport

private final IParameter crossfadeParameter;
private final IParameter metronomeVolumeParameter;
private final IParameter automationModeParameter;


/**
Expand Down Expand Up @@ -103,6 +105,7 @@ public TransportImpl (final ControllerHost host, final IApplication application,

this.crossfadeParameter = new ParameterImpl (valueChanger, this.transport.crossfade ());
this.metronomeVolumeParameter = new MetronomeVolumeParameterImpl (valueChanger, this.transport.metronomeVolume ());
this.automationModeParameter = new AutomationModeParameter (valueChanger, this);
this.transport.tempo ().markInterested ();

final TimeSignatureValue ts = this.transport.timeSignature ();
Expand Down Expand Up @@ -390,6 +393,14 @@ public boolean isWritingArrangerAutomation ()
}


/** {@inheritDoc} */
@Override
public IParameter getAutomationModeParameter ()
{
return this.automationModeParameter;
}


/** {@inheritDoc} */
@Override
public AutomationMode [] getAutomationWriteModes ()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,12 @@ public void selectPreviousItem ()
final Optional<T> sel = this.getSelectedItem ();
final int index = sel.isEmpty () ? 0 : sel.get ().getIndex () - 1;
if (index == -1)
this.selectPreviousPage ();
{
if (!this.canScrollPageBackwards ())
return;
this.scrollPageBackwards ();
this.host.scheduleTask ( () -> this.getItem (this.getPageSize () - 1).select (), 75);
}
else
this.getItem (index).select ();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
this.surface.getButton (ButtonID.get (ButtonID.PAD1, index)).setConsumed ();

final int x = index % 8;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
this.surface.getButton (ButtonID.get (ButtonID.PAD1, index)).setConsumed ();

final int stepX = index % this.numColumns;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
this.surface.getButton (ButtonID.get (ButtonID.PAD1, index)).setConsumed ();

final int y = index / GRID_COLUMNS;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int x = index % this.numColumns;
final int y = index / this.numColumns;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -911,7 +911,8 @@ private void updateVUMeters ()

private int scaleVU (final int vu)
{
return (int) Math.round (this.valueChanger.toNormalizedValue (vu) * 13);
final int range = this.configuration.getVuMeterStyle () == VUMeterStyle.MACKIE ? 12 : 13;
return (int) Math.round (this.valueChanger.toNormalizedValue (vu) * range);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ private void drawShiftedGrid ()
@Override
public void onGridNote (final int key, final int velocity)
{
final int index = key - DRUM_START_KEY;
final int index = key - this.surface.getPadGrid ().getStartNote ();

if (!this.model.canSelectedTrackHoldNotes ())
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public void onGridNote (final int note, final int velocity)
if (!this.model.canSelectedTrackHoldNotes ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int offsetY = this.scales.getDrumOffset ();

if (this.isPlayMode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

package de.mossgrabers.controller.novation.launchkey.mini.view;

import java.util.List;
import java.util.Optional;

import de.mossgrabers.controller.novation.launchkey.mini.LaunchkeyMiniMk3Configuration;
import de.mossgrabers.controller.novation.launchkey.mini.controller.LaunchkeyMiniMk3ColorManager;
import de.mossgrabers.controller.novation.launchkey.mini.controller.LaunchkeyMiniMk3ControlSurface;
Expand All @@ -20,9 +23,6 @@
import de.mossgrabers.framework.view.Views;
import de.mossgrabers.framework.view.sequencer.AbstractDrumView;

import java.util.List;
import java.util.Optional;


/**
* The Drum view.
Expand Down Expand Up @@ -58,7 +58,7 @@ public void onGridNote (final int note, final int velocity)
if (!this.model.canSelectedTrackHoldNotes ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int offsetY = this.scales.getDrumOffset ();

if (this.isPlayMode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int x = index % this.numColumns;
final int y = index / this.numColumns;
final int sound = y % this.lanes + this.scales.getDrumOffset ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int x = index % this.numColumns;
final int y = index / this.numColumns;
final int sound = y % this.lanes + this.scales.getDrumOffset ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int x = index % this.numColumns;
final int y = index / this.numColumns;
final int offsetY = this.scales.getDrumOffset ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

package de.mossgrabers.controller.novation.slmkiii.view;

import java.util.List;
import java.util.Optional;

import de.mossgrabers.controller.novation.slmkiii.SLMkIIIConfiguration;
import de.mossgrabers.controller.novation.slmkiii.controller.SLMkIIIColorManager;
import de.mossgrabers.controller.novation.slmkiii.controller.SLMkIIIControlSurface;
Expand All @@ -21,9 +24,6 @@
import de.mossgrabers.framework.utils.ButtonEvent;
import de.mossgrabers.framework.view.sequencer.AbstractDrumView;

import java.util.List;
import java.util.Optional;


/**
* The Drum view.
Expand Down Expand Up @@ -58,7 +58,7 @@ public void onGridNote (final int note, final int velocity)
if (!this.model.canSelectedTrackHoldNotes ())
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
final int offsetY = this.scales.getDrumOffset ();

if (this.isPlayMode)
Expand Down Expand Up @@ -87,7 +87,7 @@ public void onGridNoteLongPress (final int note)
if (!this.isActive () || this.isPlayMode)
return;

final int index = note - DRUM_START_KEY;
final int index = note - this.surface.getPadGrid ().getStartNote ();
this.surface.getButton (ButtonID.get (ButtonID.PAD1, index)).setConsumed ();

final int x = index % this.numColumns;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ public class OxiOneConfiguration extends AbstractConfiguration
{
private static final Views [] PREFERRED_NOTE_VIEWS =
{
Views.MIX,
Views.SESSION,
Views.DRUM_XOX,
Views.PLAY,
Views.DRUM64,
Views.DRUM8,
Views.SEQUENCER,
Views.POLY_SEQUENCER
Views.POLY_SEQUENCER,
Views.RAINDROPS
};


Expand All @@ -44,6 +46,8 @@ public OxiOneConfiguration (final IHost host, final IValueChanger valueChanger,
{
super (host, valueChanger, arpeggiatorModes);

Views.setViewName (Views.DRUM64, "Drum 128");

// Force note on velocity to 127 since the pads only send 1
this.accentActive = true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import de.mossgrabers.controller.oxi.one.controller.OxiOneControlSurface;
import de.mossgrabers.controller.oxi.one.controller.OxiOneDisplay;
import de.mossgrabers.controller.oxi.one.mode.IOxiModeReset;
import de.mossgrabers.controller.oxi.one.mode.OxiOneAutomationMode;
import de.mossgrabers.controller.oxi.one.mode.OxiOneLayerMode;
import de.mossgrabers.controller.oxi.one.mode.OxiOneNoteEditMode;
import de.mossgrabers.controller.oxi.one.mode.OxiOneParameterMode;
Expand All @@ -21,9 +22,11 @@
import de.mossgrabers.controller.oxi.one.mode.OxiOneTransportMode;
import de.mossgrabers.controller.oxi.one.view.OxiOneDrum8View;
import de.mossgrabers.controller.oxi.one.view.OxiOneDrumView128;
import de.mossgrabers.controller.oxi.one.view.OxiOneMixView;
import de.mossgrabers.controller.oxi.one.view.OxiOneDrumXoXView;
import de.mossgrabers.controller.oxi.one.view.OxiOneMixAndSessionView;
import de.mossgrabers.controller.oxi.one.view.OxiOnePlayView;
import de.mossgrabers.controller.oxi.one.view.OxiOnePolySequencerView;
import de.mossgrabers.controller.oxi.one.view.OxiOneRaindropsView;
import de.mossgrabers.controller.oxi.one.view.OxiOneSequencerView;
import de.mossgrabers.framework.command.continuous.KnobRowModeCommand;
import de.mossgrabers.framework.command.core.NopCommand;
Expand Down Expand Up @@ -110,6 +113,7 @@ protected void createModel ()
ms.setAdditionalDrumDevices (new int []
{
128,
96,
16
});

Expand Down Expand Up @@ -157,6 +161,7 @@ protected void createModes ()
modeManager.register (Modes.DEVICE_PARAMS, new OxiOneParameterMode (surface, this.model));

modeManager.register (Modes.TRANSPORT, new OxiOneTransportMode (surface, this.model));
modeManager.register (Modes.AUTOMATION, new OxiOneAutomationMode (surface, this.model));

// Note mode needs the SHIFT button to exist
this.addButton (ButtonID.SHIFT, "SHIFT", (event, velocity) -> {
Expand Down Expand Up @@ -184,12 +189,14 @@ protected void createViews ()
final OxiOneControlSurface surface = this.getSurface ();
final ViewManager viewManager = surface.getViewManager ();

viewManager.register (Views.MIX, new OxiOneMixView (surface, this.model));
viewManager.register (Views.SESSION, new OxiOneMixAndSessionView (surface, this.model));
viewManager.register (Views.PLAY, new OxiOnePlayView (surface, this.model));
viewManager.register (Views.DRUM_XOX, new OxiOneDrumXoXView (surface, this.model));
viewManager.register (Views.DRUM64, new OxiOneDrumView128 (surface, this.model));
viewManager.register (Views.DRUM8, new OxiOneDrum8View (surface, this.model));
viewManager.register (Views.SEQUENCER, new OxiOneSequencerView (surface, this.model));
viewManager.register (Views.POLY_SEQUENCER, new OxiOnePolySequencerView (surface, this.model, true));
viewManager.register (Views.RAINDROPS, new OxiOneRaindropsView (surface, this.model));
}


Expand Down Expand Up @@ -235,7 +242,7 @@ public void executeShifted (final ButtonEvent event)
this.addButton (ButtonID.DUPLICATE, "Duplicate", new DuplicateCommand<> (this.model, surface), 1, OxiOneControlSurface.BUTTON_COPY);
this.addButton (ButtonID.DELETE, "Delete", new DeleteCommand<> (this.model, surface), 1, OxiOneControlSurface.BUTTON_PASTE);

this.addButton (ButtonID.SESSION, "MIXER", new ViewMultiSelectCommand<> (this.model, surface, Views.MIX), 1, OxiOneControlSurface.BUTTON_ARRANGER, () -> viewManager.isActive (Views.MIX) ? 1 : 0);
this.addButton (ButtonID.SESSION, "MIXER", new ViewMultiSelectCommand<> (this.model, surface, Views.SESSION, Views.DRUM_XOX), 1, OxiOneControlSurface.BUTTON_ARRANGER, () -> viewManager.isActive (Views.SESSION, Views.DRUM_XOX) ? 1 : 0);

this.addButton (ButtonID.KEYBOARD, "KEYBOARD", new ViewMultiSelectCommand<> (this.model, surface, true, Views.PLAY, Views.DRUM64)
{
Expand All @@ -256,7 +263,7 @@ public void executeShifted (final ButtonEvent event)

});

this.addButton (ButtonID.SEQUENCER, "SEQUENCE", new ViewMultiSelectCommand<> (this.model, surface, true, Views.DRUM8, Views.SEQUENCER, Views.POLY_SEQUENCER)
this.addButton (ButtonID.SEQUENCER, "SEQUENCE", new ViewMultiSelectCommand<> (this.model, surface, true, Views.DRUM8, Views.SEQUENCER, Views.POLY_SEQUENCER, Views.RAINDROPS)
{

/** {@inheritDoc} */
Expand Down
Loading

0 comments on commit 1c297d1

Please sign in to comment.