diff --git a/res/controllers/Denon-MC7000-scripts.js b/res/controllers/Denon-MC7000-scripts.js
index ca19170622d..d76b7c9de27 100644
--- a/res/controllers/Denon-MC7000-scripts.js
+++ b/res/controllers/Denon-MC7000-scripts.js
@@ -846,6 +846,46 @@ MC7000.autoLoop = function(channel, control, value, status, group) {
}
};
+// Parameter Button '<'
+MC7000.parameterButtonDown = function(channel, control, value, status, group) {
+ if (value) {
+ script.triggerControl(group, "beatjump_backward");
+ }
+};
+
+// Parameter Button '>'
+MC7000.parameterButtonUp = function(channel, control, value, status, group) {
+ if (value) {
+ script.triggerControl(group, "beatjump_forward");
+ }
+};
+
+// Parameter Button '<' + 'SHIFT'
+MC7000.parameterButtonDownShifted = function(channel, control, value, status, group) {
+ if (value) {
+ const beatJumpSize = engine.getValue(group, "beatjump_size");
+ let decreasedIndex = MC7000.beatJump.indexOf(beatJumpSize) - 1;
+ if (decreasedIndex < 0) {
+ decreasedIndex = 0;
+ }
+ const newBeatJumpSize = MC7000.beatJump[decreasedIndex];
+ engine.setValue(group, "beatjump_size", newBeatJumpSize);
+ }
+};
+
+// Parameter Button '>' + 'SHIFT'
+MC7000.parameterButtonUpShifted = function(channel, control, value, status, group) {
+ if (value) {
+ const beatjumpSize = engine.getValue(group, "beatjump_size");
+ let increasedIndex = MC7000.beatJump.indexOf(beatjumpSize) + 1;
+ if (increasedIndex >= MC7000.beatJump.length) {
+ increasedIndex = MC7000.beatJump.length === 0 ? 0 : MC7000.beatJump.length - 1;
+ }
+ const newBeatJumpSize = MC7000.beatJump[increasedIndex];
+ engine.setValue(group, "beatjump_size", newBeatJumpSize);
+ }
+};
+
// Set Crossfader Curve
MC7000.crossFaderCurve = function(control, value) {
script.crossfaderCurve(value);
diff --git a/res/controllers/Denon-MC7000.midi.xml b/res/controllers/Denon-MC7000.midi.xml
index 4d613c9dbb9..871f6dc64c0 100644
--- a/res/controllers/Denon-MC7000.midi.xml
+++ b/res/controllers/Denon-MC7000.midi.xml
@@ -1886,162 +1886,162 @@
[Channel1]
- stars_down
+ MC7000.parameterButtonDown
0x94
0x28
-
+
[Channel1]
- stars_up
+ MC7000.parameterButtonUp
0x94
0x29
-
+
- [Library]
- track_color_prev
+ [Channel1]
+ MC7000.parameterButtonDownShifted
0x94
0x2A
-
+
- [Library]
- track_color_next
+ [Channel1]
+ MC7000.parameterButtonUpShifted
0x94
0x2B
-
+
[Channel2]
- stars_down
+ MC7000.parameterButtonDown
0x95
0x28
-
+
[Channel2]
- stars_up
+ MC7000.parameterButtonUp
0x95
0x29
-
+
- [Library]
- track_color_prev
+ [Channel2]
+ MC7000.parameterButtonDownShifted
0x95
0x2A
-
+
- [Library]
- track_color_next
+ [Channel2]
+ MC7000.parameterButtonUpShifted
0x95
0x2B
-
+
[Channel3]
- stars_down
+ MC7000.parameterButtonDown
0x96
0x28
-
+
[Channel3]
- stars_up
+ MC7000.parameterButtonUp
0x96
0x29
-
+
- [Library]
- track_color_prev
+ [Channel3]
+ MC7000.parameterButtonDownShifted
0x96
0x2A
-
+
- [Library]
- track_color_next
+ [Channel3]
+ MC7000.parameterButtonUpShifted
0x96
0x2B
-
+
[Channel4]
- stars_down
+ MC7000.parameterButtonDown
0x97
0x28
-
+
[Channel4]
- stars_up
+ MC7000.parameterButtonUp
0x97
0x29
-
+
- [Library]
- track_color_prev
+ [Channel4]
+ MC7000.parameterButtonDownShifted
0x97
0x2A
-
+
- [Library]
- track_color_next
+ [Channel4]
+ MC7000.parameterButtonUpShifted
0x97
0x2B
-
+