1
0
mirror of https://github.com/dguglielmi/sunny-overlay.git synced 2025-12-06 18:12:39 +01:00
Files
sunny-overlay/media-sound/mixxx/files/mixxx-2.1.0-update-american-audio-vms4-preset-for-mixxx-v2.1.x.patch

649 lines
26 KiB
Diff

From dd9af16a5e8c7e6f61951547d6f1260df8c1f6d4 Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Fri, 20 Apr 2018 14:22:08 -0700
Subject: [PATCH 1/6] AA VMS4: Fix touch strip needle drop scale
---
res/controllers/American-Audio-VMS4-scripts.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index a29e82c632..754348d33f 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -395,7 +395,7 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
VMS4.touch_strip = function(channel, control, value, status, group) {
// Only modify the playposition if the deck is NOT playing!
if (engine.getValue(group, "play") === 0) {
- engine.setValue(group, "playposition", value);
+ engine.setValue(group, "playposition", value/0x7F);
}
}
From 2d912dc18558b73153c43bf365c8a85c4084f0a0 Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Mon, 14 May 2018 12:48:57 -0700
Subject: [PATCH 2/6] Update AA VMS4 preset - Update Mixxx version - Add
cue_play on shifted CUE buttons (to match Traktor Edition label) - Add
sync_master on shifted PLAY buttons (to match Traktor Edition label) - Update
reloop buttons to use reloop_toggle - Make effect controls operate on
Unit1_EffectM, correcting behavior
---
res/controllers/American Audio VMS4.midi.xml | 50 +++++++++++++++++++-------
res/controllers/American-Audio-VMS4-scripts.js | 6 ++--
2 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 564863598b..147d89d857 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -4,7 +4,7 @@
<name>American Audio VMS4/4.1</name>
<author>Anders Gunnarsson &amp; Sean M. Pappalardo</author>
<wiki>http://mixxx.org/wiki/doku.php/american_audio_vms4</wiki>
- <description>2-deck control/4-deck mixer preset for Mixxx 2.0. Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
+ <description>2-deck control/4-deck mixer preset for Mixxx 2.1. Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</info>
<controller id="American Audio VMS4">
<scriptfiles>
@@ -268,6 +268,18 @@
<status>0x80</status>
<midino>0x0C</midino>
</control>
+ <control><!-- on -->
+ <group>[Channel1]</group>
+ <key>cue_play</key>
+ <status>0x91</status>
+ <midino>0x0C</midino>
+ </control>
+ <control><!-- off -->
+ <group>[Channel1]</group>
+ <key>cue_play</key>
+ <status>0x81</status>
+ <midino>0x0C</midino>
+ </control>
<control><!-- on -->
<group>[Channel1]</group>
<key>play</key>
@@ -275,20 +287,20 @@
<midino>0x0D</midino>
</control>
<control><!-- off -->
- <group>[Channel1]</group>
- <key>play</key>
- <status>0x80</status>
- <midino>0x0D</midino>
+ <group>[Channel1]</group>
+ <key>play</key>
+ <status>0x80</status>
+ <midino>0x0D</midino>
</control>
<control><!-- Shifted Play -->
<group>[Channel1]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x91</status>
<midino>0x0D</midino>
</control>
<control><!-- Shifted Play -->
<group>[Channel1]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x81</status>
<midino>0x0D</midino>
</control>
@@ -487,7 +499,7 @@
</control>
<control><!-- on -->
<group>[Channel1]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x90</status>
<midino>0x21</midino>
<options>
@@ -496,7 +508,7 @@
</control>
<control><!-- off -->
<group>[Channel1]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x80</status>
<midino>0x21</midino>
<options>
@@ -922,6 +934,18 @@
<status>0x80</status>
<midino>0x2E</midino>
</control>
+ <control><!-- on -->
+ <group>[Channel2]</group>
+ <key>cue_play</key>
+ <status>0x91</status>
+ <midino>0x2E</midino>
+ </control>
+ <control><!-- off -->
+ <group>[Channel2]</group>
+ <key>cue_play</key>
+ <status>0x81</status>
+ <midino>0x2E</midino>
+ </control>
<control><!-- on -->
<group>[Channel2]</group>
<key>play</key>
@@ -930,13 +954,13 @@
</control>
<control><!-- Shifted Play -->
<group>[Channel2]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x91</status>
<midino>0x2F</midino>
</control>
<control><!-- Shifted Play -->
<group>[Channel2]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x81</status>
<midino>0x2F</midino>
</control>
@@ -1136,7 +1160,7 @@
</control>
<control><!-- on -->
<group>[Channel2]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x90</status>
<midino>0x43</midino>
<options>
@@ -1145,7 +1169,7 @@
</control>
<control><!-- off -->
<group>[Channel2]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x80</status>
<midino>0x43</midino>
<options>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 754348d33f..6f4d95a731 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -313,14 +313,14 @@ VMS4.effectSelect = function(channel, control, value, status, group) {
diff += wrapCount*128;
- engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"]","chain_selector",diff);
+ engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"_Effect1]","effect_selector",diff);
}
VMS4.effectSelectPress = function(channel, control, value, status, group) {
var deckNum = VMS4.GetDeckNum(group);
if (value > 0x40) {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"]","enabled",
- !engine.getValue("[EffectRack1_EffectUnit"+deckNum+"]","enabled")
+ engine.setValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled",
+ !engine.getValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled")
);
}
}
From a8269117932b078e93b8b0f65a4178994c23214f Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Tue, 15 May 2018 15:52:32 -0700
Subject: [PATCH 3/6] American Audio VMS4 updates: - Change CUP button to use
cue_gotoandplay - Add strip scroll and touch functions that make the
absolute-position touch scripts behave like relative-mode ones for scrolling
through the library - Comment-out needle drop function in preparation for
replacing it with effect dry/wet - Update script version and date
---
res/controllers/American Audio VMS4.midi.xml | 91 +++++++++++++++++++++++---
res/controllers/American-Audio-VMS4-scripts.js | 49 ++++++++++++--
2 files changed, 124 insertions(+), 16 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 147d89d857..3116252a7a 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -4,7 +4,8 @@
<name>American Audio VMS4/4.1</name>
<author>Anders Gunnarsson &amp; Sean M. Pappalardo</author>
<wiki>http://mixxx.org/wiki/doku.php/american_audio_vms4</wiki>
- <description>2-deck control/4-deck mixer preset for Mixxx 2.1. Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
+ <description>2-deck control/4-deck mixer preset for Mixxx 2.1.
+Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</info>
<controller id="American Audio VMS4">
<scriptfiles>
@@ -270,13 +271,13 @@
</control>
<control><!-- on -->
<group>[Channel1]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x91</status>
<midino>0x0C</midino>
</control>
<control><!-- off -->
<group>[Channel1]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x81</status>
<midino>0x0C</midino>
</control>
@@ -705,14 +706,50 @@
</options>
</control>
<control>
- <group>[Channel1]</group>
- <key>VMS4.touch_strip</key>
+ <group>[Library]</group>
+ <key>VMS4.strip_scroll</key>
<status>0xB0</status>
<midino>0x28</midino>
<options>
<Script-Binding/>
</options>
</control>
+ <control>
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x90</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x80</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control> <!-- Shifted -->
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x91</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x81</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<!-- Deck B -->
<control>
@@ -936,13 +973,13 @@
</control>
<control><!-- on -->
<group>[Channel2]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x91</status>
<midino>0x2E</midino>
</control>
<control><!-- off -->
<group>[Channel2]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x81</status>
<midino>0x2E</midino>
</control>
@@ -1366,14 +1403,50 @@
</options>
</control>
<control>
- <group>[Channel2]</group>
- <key>VMS4.touch_strip</key>
+ <group>[Library]</group>
+ <key>VMS4.strip_scroll</key>
<status>0xB0</status>
<midino>0x2D</midino>
<options>
<Script-Binding/>
</options>
</control>
+ <control>
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x90</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x80</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control> <!-- Shifted -->
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x91</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x81</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<!-- Mixer main-->
<control>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 6f4d95a731..8096205cee 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -1,7 +1,7 @@
/**
- * American Audio VMS4 controller script v2.0 for Mixxx v2.0
+ * American Audio VMS4 controller script v2.1 for Mixxx v2.1.x
* Copyright (C) 2010 Anders Gunnarsson
- * Copyright (C) 2011-2015 Sean M. Pappalardo
+ * Copyright (C) 2011-2018 Sean M. Pappalardo
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -228,6 +228,8 @@ VMS4.Deck.prototype.keyLockButtonHandler = function(value) {
}
VMS4.Deck.prototype.effectParamButtonHandler = function(value) {
+ // Couldn't get this to work. The buttons are mapped instead to VMS4.effectParameterButton
+
// if(value == ButtonState.pressed) {
// this.controlEffectParameter=!this.controlEffectParameter;
// if (this.controlEffectParameter) {
@@ -244,6 +246,10 @@ VMS4.Deck.prototype.effectParamButtonHandler = function(value) {
VMS4.Decks = {"Left":new VMS4.Deck(1,"[Channel1]"), "Right":new VMS4.Deck(2,"[Channel2]")};
VMS4.GroupToDeck = {"[Channel1]":"Left", "[Channel2]":"Right"};
VMS4.GroupToDeckNum = {"[Channel1]":1, "[Channel2]":2, "[Channel3]":3, "[Channel4]":4};
+VMS4.StripToSide = {0x28:"Left", 0x2D:"Right"};
+VMS4.touchStripPos = {"Left":null, "Right":null}; // Stores the position on touch
+ // to convert the absolute sliders
+ // to relative ones
VMS4.GetDeck = function(group) {
try {
@@ -392,11 +398,40 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
deck.jogMsb = value;
}
-VMS4.touch_strip = function(channel, control, value, status, group) {
- // Only modify the playposition if the deck is NOT playing!
- if (engine.getValue(group, "play") === 0) {
- engine.setValue(group, "playposition", value/0x7F);
- }
+// VMS4.touch_strip = function(channel, control, value, status, group) {
+// // Only modify the playposition if the deck is NOT playing!
+// if (engine.getValue(group, "play") === 0) {
+// engine.setValue(group, "playposition", value/0x7F);
+// }
+// }
+
+VMS4.strip_touch = function(channel, control, value, status, group) {
+ var deck = VMS4.GetDeckNum(group);
+ if (deck === 1) { // Left side
+ if ((status & 0xF0) === 0x90) { // If button down
+ // TODO: Need a CO to focus explicitly on category selection pane
+ // "[Library]","MoveFocus" just toggles and is frustrating
+ } else { // Button up
+ VMS4.touchStripPos["Left"] = null;
+ }
+ } else { // Right side
+ if ((status & 0xF0) === 0x90) { // If button down
+ // TODO: Need a CO to focus explicitly on track selection pane
+ // "[Library]","MoveFocus" just toggles and is frustrating
+ } else { // Button up
+ VMS4.touchStripPos["Right"] = null;
+ }
+ }
+}
+
+VMS4.strip_scroll = function(channel, control, value, status, group) {
+ var side = VMS4.StripToSide[control];
+ if (VMS4.touchStripPos[side] != null) {
+ // Higher on the strip gives a higher value, and up is negative on Library
+ // scroll controls
+ engine.setValue(group, "MoveVertical", VMS4.touchStripPos[side] - value);
+ }
+ VMS4.touchStripPos[side] = value;
}
VMS4.vinyl = function(channel, control, value, status, group) {
From 00dc8100a40c5b1ab10ced81567003b31865befb Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Wed, 16 May 2018 16:34:34 -0700
Subject: [PATCH 4/6] AA VMS4 preset update - touch strip FX - Add effects
dry/wet control to shifted touch strips - Replace setValue() with
setParameter() - Delete now-unneeded strip touch button down if branch
---
res/controllers/American Audio VMS4.midi.xml | 18 +++++++++++++
res/controllers/American-Audio-VMS4-scripts.js | 36 ++++++++++++--------------
2 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 3116252a7a..7e4d0330c8 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -714,6 +714,15 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
<Script-Binding/>
</options>
</control>
+ <control> <!-- Shifted -->
+ <group>[EffectRack1_EffectUnit1]</group>
+ <key>VMS4.strip_fx_dw</key>
+ <status>0xB1</status>
+ <midino>0x28</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<control>
<group>[Channel1]</group>
<key>VMS4.strip_touch</key>
@@ -1411,6 +1420,15 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
<Script-Binding/>
</options>
</control>
+ <control> <!-- Shifted -->
+ <group>[EffectRack1_EffectUnit2]</group>
+ <key>VMS4.strip_fx_dw</key>
+ <status>0xB1</status>
+ <midino>0x2D</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<control>
<group>[Channel2]</group>
<key>VMS4.strip_touch</key>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 8096205cee..0a001a77dc 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -319,7 +319,8 @@ VMS4.effectSelect = function(channel, control, value, status, group) {
diff += wrapCount*128;
- engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"_Effect1]","effect_selector",diff);
+ engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"_Effect1]",
+ "effect_selector",diff);
}
VMS4.effectSelectPress = function(channel, control, value, status, group) {
@@ -336,11 +337,9 @@ VMS4.effectControl = function(channel, control, value, status, group) {
var deck = VMS4.GetDeck(group);
var deckNum = VMS4.GetDeckNum(group);
if (deck.controlEffectParameter) {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"]","super1",
- script.absoluteLin(value,0,1));
+ engine.setParameter("[EffectRack1_EffectUnit"+deckNum+"]","super1",value/0x7F);
} else {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"]","mix",
- script.absoluteLin(value,0,1));
+ engine.setParameter("[EffectRack1_EffectUnit"+deckNum+"]","mix",value/0x7F);
}
}
@@ -398,27 +397,18 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
deck.jogMsb = value;
}
-// VMS4.touch_strip = function(channel, control, value, status, group) {
-// // Only modify the playposition if the deck is NOT playing!
-// if (engine.getValue(group, "play") === 0) {
-// engine.setValue(group, "playposition", value/0x7F);
-// }
-// }
+VMS4.strip_fx_dw = function(channel, control, value, status, group) {
+ engine.setParameter(group,"mix",value/0x7F);
+}
VMS4.strip_touch = function(channel, control, value, status, group) {
var deck = VMS4.GetDeckNum(group);
if (deck === 1) { // Left side
- if ((status & 0xF0) === 0x90) { // If button down
- // TODO: Need a CO to focus explicitly on category selection pane
- // "[Library]","MoveFocus" just toggles and is frustrating
- } else { // Button up
+ if ((status & 0xF0) === 0x80) { // If button up
VMS4.touchStripPos["Left"] = null;
}
} else { // Right side
- if ((status & 0xF0) === 0x90) { // If button down
- // TODO: Need a CO to focus explicitly on track selection pane
- // "[Library]","MoveFocus" just toggles and is frustrating
- } else { // Button up
+ if ((status & 0xF0) === 0x80) { // If button up
VMS4.touchStripPos["Right"] = null;
}
}
@@ -429,7 +419,13 @@ VMS4.strip_scroll = function(channel, control, value, status, group) {
if (VMS4.touchStripPos[side] != null) {
// Higher on the strip gives a higher value, and up is negative on Library
// scroll controls
- engine.setValue(group, "MoveVertical", VMS4.touchStripPos[side] - value);
+ if (side === "Left") {
+ engine.setValue("[Playlist]", "SelectPlaylist",
+ VMS4.touchStripPos[side] - value);
+ } else {
+ engine.setValue("[Playlist]", "SelectTrackKnob",
+ VMS4.touchStripPos[side] - value);
+ }
}
VMS4.touchStripPos[side] = value;
}
From 89c951158c58296e21c8720ea336b8ea0523fd1a Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Mon, 21 May 2018 08:28:22 -0700
Subject: [PATCH 5/6] Address code review notes.
---
res/controllers/American-Audio-VMS4-scripts.js | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 0a001a77dc..ab7cd72d0d 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -326,9 +326,7 @@ VMS4.effectSelect = function(channel, control, value, status, group) {
VMS4.effectSelectPress = function(channel, control, value, status, group) {
var deckNum = VMS4.GetDeckNum(group);
if (value > 0x40) {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled",
- !engine.getValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled")
- );
+ script.toggleControl("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled");
}
}
@@ -416,7 +414,7 @@ VMS4.strip_touch = function(channel, control, value, status, group) {
VMS4.strip_scroll = function(channel, control, value, status, group) {
var side = VMS4.StripToSide[control];
- if (VMS4.touchStripPos[side] != null) {
+ if (VMS4.touchStripPos[side] !== null) {
// Higher on the strip gives a higher value, and up is negative on Library
// scroll controls
if (side === "Left") {
From 715548faf594a68c23ac8fccc32ce7d2108526bc Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Mon, 21 May 2018 09:10:14 -0700
Subject: [PATCH 6/6] Add needle drop when deck isn't playing, FX dry/wet when
it is.
---
res/controllers/American Audio VMS4.midi.xml | 4 ++--
res/controllers/American-Audio-VMS4-scripts.js | 8 +++++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 7e4d0330c8..e1b83a2fc9 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -715,7 +715,7 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</options>
</control>
<control> <!-- Shifted -->
- <group>[EffectRack1_EffectUnit1]</group>
+ <group>[Channel1]</group>
<key>VMS4.strip_fx_dw</key>
<status>0xB1</status>
<midino>0x28</midino>
@@ -1421,7 +1421,7 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</options>
</control>
<control> <!-- Shifted -->
- <group>[EffectRack1_EffectUnit2]</group>
+ <group>[Channel2]</group>
<key>VMS4.strip_fx_dw</key>
<status>0xB1</status>
<midino>0x2D</midino>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index ab7cd72d0d..c312e0394a 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -396,7 +396,13 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
}
VMS4.strip_fx_dw = function(channel, control, value, status, group) {
- engine.setParameter(group,"mix",value/0x7F);
+ var deck = VMS4.GetDeckNum(group);
+ // When the deck is playing, adjust effect dry/wet. When it isn't, do needle drop.
+ if (engine.getValue(group, "play") === 0) {
+ engine.setValue(group, "playposition", value/0x7F);
+ } else {
+ engine.setParameter("[EffectRack1_EffectUnit"+deck+"]","mix",value/0x7F);
+ }
}
VMS4.strip_touch = function(channel, control, value, status, group) {