Skip to content

Commit d6135f4

Browse files
committed
* Fixed: In rare cases groups could not be entered when using hierarchical navigation.
* ROTO CONTROL * New: Adapted to work with Firmware 1.1.3 but does no longer work with older versions! * New: Increased number of monitored remote control parameter pages to 16 (was 10).
1 parent 61addfc commit d6135f4

File tree

6 files changed

+24
-7
lines changed

6 files changed

+24
-7
lines changed

DrivenByMoss-Manual.pdf

273 Bytes
Binary file not shown.

dependency-reduced-pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>de.mossgrabers</groupId>
55
<artifactId>DrivenByMoss</artifactId>
66
<name>DrivenByMoss</name>
7-
<version>25.0.0</version>
7+
<version>25.0.1</version>
88
<licenses>
99
<license>
1010
<name>LGPL-2.1-or-later</name>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<artifactId>DrivenByMoss</artifactId>
77
<packaging>jar</packaging>
88
<name>DrivenByMoss</name>
9-
<version>25.0.0</version>
9+
<version>25.0.1</version>
1010
<properties>
1111
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1212
</properties>

src/main/java/de/mossgrabers/controller/melbourne/rotocontrol/RotoControlControllerSetup.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
*/
6565
public class RotoControlControllerSetup extends AbstractControllerSetup<RotoControlControlSurface, RotoControlConfiguration> implements IMessageCallback
6666
{
67-
private static final int NUM_PARAM_PAGES = 10;
67+
private static final int NUM_PARAM_PAGES = 16;
6868
private static final int MIDI_CC_CHANNEL = 15;
6969

7070
private final boolean [] noteBlocker = new boolean [64];

src/main/java/de/mossgrabers/controller/melbourne/rotocontrol/mode/RotoControlDeviceParameterMode.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ public void bind (final int paramIndex, final int posInPage, final boolean isSwi
124124
final IParameterList parameterList = this.cursorDevice.getParameterList ();
125125
final int index = isSwitch ? 8 + posInPage : posInPage;
126126
this.parameterProvider.set (index, parameterList.getParameters ().get (paramIndex));
127+
128+
// Needs to be send again since Firmware 1.1.3
129+
this.sendLearnParam (paramIndex);
127130
}
128131

129132

@@ -135,9 +138,13 @@ public void bind (final int paramIndex, final int posInPage, final boolean isSwi
135138
*/
136139
private void handleMapping (final int index)
137140
{
138-
if (!this.learnMode)
139-
return;
141+
if (this.learnMode)
142+
this.sendLearnParam (index);
143+
}
144+
140145

146+
private void sendLearnParam (final int index)
147+
{
141148
final IParameterBank parameterBank = this.cursorDevice.getParameterBank ();
142149
final IParameter param = parameterBank.getItem (index);
143150
if (!param.doesExist ())
@@ -153,15 +160,24 @@ private void handleMapping (final int index)
153160
if (this.lastMappedParameterIndex == paramIndex)
154161
return;
155162

163+
// Add parameter index & hash
156164
final ByteArrayOutputStream out = new ByteArrayOutputStream ();
157165
out.write ((byte) (paramIndex >> 7 & 0x7F));
158166
out.write ((byte) (paramIndex & 0x7F));
159167
for (final byte b: RotoControlDisplay.createHash (param.getName (), 6))
160168
out.write ((byte) (b & 0x7F));
161169

162-
// TODO API 20: set correct value for stepped parameters!
170+
// Not a MACRO
171+
out.write ((byte) 0);
172+
173+
// TODO API 20: set correct value for stepped parameters! Max number is 0x18.
163174
out.write ((byte) 0);
164175

176+
// The value is already in the range of [0..16383]
177+
final int paramValue = param.getValue ();
178+
out.write ((byte) (paramValue >> 7 & 0x7F));
179+
out.write ((byte) (paramValue & 0x7F));
180+
165181
try
166182
{
167183
out.write (RotoControlDisplay.create13ByteTextArray (param.getName ()).getBytes ());
@@ -171,7 +187,8 @@ private void handleMapping (final int index)
171187
// Ignore
172188
}
173189

174-
// TODO API 20: Add names for stepped values if any
190+
// TODO API 20: Add names for stepped values if any - but only if they are not more than
191+
// 0x10
175192

176193
this.surface.sendSysex (RotoControlMessage.PLUGIN, RotoControlMessage.TR_LEARN_PARAM, out.toByteArray ());
177194

273 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)