summaryrefslogtreecommitdiff
path: root/midi
diff options
context:
space:
mode:
Diffstat (limited to 'midi')
-rw-r--r--midi/RHMixxx-scripts.js146
-rw-r--r--midi/RHMixxx.midi.xml171
-rw-r--r--midi/mixxx_commands.pdfbin0 -> 112587 bytes
-rw-r--r--midi/rhmixxx_midi_controller_MIDI_1-scripts.js691
-rw-r--r--midi/rhmixxx_midi_controller_MIDI_1.midi.xml171
5 files changed, 1179 insertions, 0 deletions
diff --git a/midi/RHMixxx-scripts.js b/midi/RHMixxx-scripts.js
new file mode 100644
index 0000000..0d7114f
--- /dev/null
+++ b/midi/RHMixxx-scripts.js
@@ -0,0 +1,146 @@
+//***********************************************************
+//** Radio Helsinki RHMixxx control script **
+//** CopyLeft 2014, Josef Schauer / Christian Pointner **
+//***********************************************************
+
+// *********** Preamble ***********
+
+function RHMixxx() {}
+
+RHMixxx.groupNotes = {
+ "[Channel1]": { play: 0x01, stop: 0x00 },
+ "[Channel2]": { play: 0x03, stop: 0x02 },
+ "[Sampler1]": 0x04,
+ "[Sampler2]": 0x05,
+ "[Sampler3]": 0x06,
+ "[Sampler4]": 0x07,
+ "[Sampler5]": 0x08,
+ "[Sampler6]": 0x09,
+ "[Sampler7]": 0x0A,
+ "[Sampler8]": 0x0B,
+ "[Sampler9]": 0x0C,
+ "[Sampler10]": 0x0D,
+ "[Sampler11]": 0x0E,
+ "[Sampler12]": 0x0F
+}
+
+// *********** Init/De-Init ***********
+
+RHMixxx.init = function (id, debug) {
+ var num_decks = engine.getValue("[Master]", "num_decks");
+ var num_sampler = engine.getValue("[Master]", "num_samplers");
+
+ if(debug)
+ print("RHMixxx initializing for controller '" + id +
+ "' (" + num_decks + " Decks, " + num_sampler + " Sampler)");
+
+ var i;
+ for (i = 1; i <= num_decks; i++)
+ RHMixxx.initDeck(i, debug);
+ for (i = 1; i <= num_sampler; i++)
+ RHMixxx.initSampler(i, debug);
+
+ midi.sendShortMsg(0x80, 0x1F, 0x00);
+}
+
+RHMixxx.shutdown = function () {
+}
+
+
+RHMixxx.initDeck = function (c, debug) {
+ var group = "[Channel" + c + "]";
+
+ engine.setValue(group, "volume", 0);
+ engine.connectControl(group, "play", "RHMixxx.DeckPlaying");
+ engine.trigger(group, "play");
+ engine.connectControl(group, "track_samples", "RHMixxx.DeckSamples");
+ engine.trigger(group, "track_samples");
+
+ if(debug)
+ print("RHMixxx: " + group + " initilized!");
+}
+
+RHMixxx.initSampler = function (s, debug) {
+ var group = "[Sampler" + s + "]";
+
+ engine.setValue(group, "volume", 1.0);
+ engine.connectControl(group, "play", "RHMixxx.SamplerPlaying");
+ engine.trigger(group, "play");
+ engine.connectControl(group, "track_samples", "RHMixxx.SamplerSamples");
+ engine.trigger(group, "track_samples");
+
+ if(debug)
+ print("RHMixxx: " + group + " initilized!");
+}
+
+// *********** Actions ***********
+
+RHMixxx.StopDeck = function (channel, control, value, status, group) {
+ engine.setValue(group, "start_stop", value);
+}
+
+RHMixxx.ToggleSampler = function (channel, control, value, status, group) {
+ print("RHMixxx: ToggleSampler called for " + group);
+
+ if(!engine.getValue(group, "play")) {
+ if(value)
+ engine.setValue(group, "play", 1);
+ }
+ else {
+ engine.setValue(group, "start_stop", value);
+ }
+}
+
+
+// *********** Status updates ***********
+
+RHMixxx.DeckPlaying = function (value, group, control) {
+ if (!value) {
+ if(engine.getValue(group, "track_samples") != 0) {
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group].stop, 0x00);
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group].play, 0x00);
+ } else {
+ midi.sendShortMsg(0x80, RHMixxx.groupNotes[group].stop, 0x00);
+ midi.sendShortMsg(0x80, RHMixxx.groupNotes[group].play, 0x00);
+ }
+ } else {
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group].stop, 0x00);
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group].play, 0x10);
+ }
+}
+
+RHMixxx.DeckSamples = function (value, group, control) {
+ if(!value) {
+ midi.sendShortMsg(0x80, RHMixxx.groupNotes[group].stop, 0x00);
+ midi.sendShortMsg(0x80, RHMixxx.groupNotes[group].play, 0x00);
+ } else {
+ if(engine.getValue(group, "play") == 0) {
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group].stop, 0x00);
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group].play, 0x00);
+ }
+ }
+}
+
+RHMixxx.SamplerPlaying = function (value, group, control) {
+ if (!value) {
+ if(engine.getValue(group, "track_samples") != 0) {
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group], 0x00);
+ engine.setValue(group, "start_stop", 1);
+ engine.setValue(group, "start_stop", 0);
+ } else {
+ midi.sendShortMsg(0x80, RHMixxx.groupNotes[group], 0x00);
+ }
+ }
+ else {
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group], 0x10);
+ }
+}
+
+RHMixxx.SamplerSamples = function (value, group, control) {
+ if(!value) {
+ midi.sendShortMsg(0x80, RHMixxx.groupNotes[group], 0x00);
+ } else {
+ if(engine.getValue(group, "play") == 0)
+ midi.sendShortMsg(0x90, RHMixxx.groupNotes[group], 0x00);
+ }
+}
diff --git a/midi/RHMixxx.midi.xml b/midi/RHMixxx.midi.xml
new file mode 100644
index 0000000..c5cbc88
--- /dev/null
+++ b/midi/RHMixxx.midi.xml
@@ -0,0 +1,171 @@
+<MixxxMIDIPreset mixxxVersion="1.10.1+" schemaVersion="1">
+ <controller id="rhmixxx midi controller MIDI 1">
+ <scriptfiles>
+ <file filename="RHMixxx-scripts.js" functionprefix="RHMixxx"/>
+ </scriptfiles>
+ <controls>
+ <!-- DECKS -->
+ <control>
+ <status>0x90</status>
+ <midino>0x00</midino>
+ <group>[Channel1]</group>
+ <key>RHMixxx.StopDeck</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x01</midino>
+ <group>[Channel1]</group>
+ <key>play</key>
+ <options>
+ <normal/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x02</midino>
+ <group>[Channel2]</group>
+ <key>RHMixxx.StopDeck</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x03</midino>
+ <group>[Channel2]</group>
+ <key>play</key>
+ <description></description>
+ <options>
+ <normal/>
+ </options>
+ </control>
+ <!-- SAMPLER -->
+ <control>
+ <status>0x90</status>
+ <midino>0x04</midino>
+ <group>[Sampler1]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x05</midino>
+ <group>[Sampler2]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x06</midino>
+ <group>[Sampler3]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x07</midino>
+ <group>[Sampler4]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x08</midino>
+ <group>[Sampler5]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x09</midino>
+ <group>[Sampler6]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x0a</midino>
+ <group>[Sampler7]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x0b</midino>
+ <group>[Sampler8]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>mixxx
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x0c</midino>
+ <group>[Sampler9]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x0d</midino>
+ <group>[Sampler10]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x0e</midino>
+ <group>[Sampler11]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x0f</midino>
+ <group>[Sampler12]</group>
+ <key>RHMixxx.ToggleSampler</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ </controls>
+ <outputs/>
+ </controller>
+</MixxxMIDIPreset>
diff --git a/midi/mixxx_commands.pdf b/midi/mixxx_commands.pdf
new file mode 100644
index 0000000..c6aad6a
--- /dev/null
+++ b/midi/mixxx_commands.pdf
Binary files differ
diff --git a/midi/rhmixxx_midi_controller_MIDI_1-scripts.js b/midi/rhmixxx_midi_controller_MIDI_1-scripts.js
new file mode 100644
index 0000000..d5dcada
--- /dev/null
+++ b/midi/rhmixxx_midi_controller_MIDI_1-scripts.js
@@ -0,0 +1,691 @@
+////////////////////////////////////////
+// Numark V7 control script //
+// CopyLeft 2012, Mike Bucceroni //
+// ^that means do what ever you want^ //
+// made for Mixxx 1.11.x //
+////////////////////////////////////////
+
+function RHMixxx() {}
+
+/////////////////////////////////
+// //
+// Customization Variables //
+// //
+/////////////////////////////////
+
+
+//////////////////////////
+// //
+// Global Variables //
+// //
+//////////////////////////
+
+//RHMixxx.Deck = true; // true = Deck A, false = Deck B
+
+
+
+//////////////////////////
+// //
+// Initialization //
+// & //
+// Shutdown //
+// //
+//////////////////////////
+
+RHMixxx.init = function () {
+ //flash LED's
+ //RHMixxx.FlashAllLED();
+ //Connect Control
+ engine.connectControl("[Channel1]", "play", "RHMixxx.Channel1_playing");
+ engine.connectControl("[Channel2]", "play", "RHMixxx.Channel2_playing");
+ engine.connectControl("[Sampler1]", "play", "RHMixxx.Sampler1_playing");
+ engine.connectControl("[Sampler2]", "play", "RHMixxx.Sampler2_playing");
+ engine.connectControl("[Sampler3]", "play", "RHMixxx.Sampler3_playing");
+ engine.connectControl("[Sampler4]", "play", "RHMixxx.Sampler4_playing");
+ engine.connectControl("[Sampler5]", "play", "RHMixxx.Sampler5_playing");
+ engine.connectControl("[Sampler6]", "play", "RHMixxx.Sampler6_playing");
+ engine.connectControl("[Sampler7]", "play", "RHMixxx.Sampler7_playing");
+ engine.connectControl("[Sampler8]", "play", "RHMixxx.Sampler8_playing");
+ engine.connectControl("[Sampler9]", "play", "RHMixxx.Sampler9_playing");
+ engine.connectControl("[Sampler10]", "play", "RHMixxx.Sampler10_playing");
+ engine.connectControl("[Sampler11]", "play", "RHMixxx.Sampler11_playing");
+ engine.connectControl("[Sampler12]", "play", "RHMixxx.Sampler12_playing");
+
+ //engine.connectControl("[Channel1]", "stop", "RHMixxx.Channel1_playing");
+ //engine.connectControl("[Channel2]", "stop", "RHMixxx.Channel2_playing");
+
+ engine.connectControl("[Channel1]", "play_indicator", "RHMixxx.Channel1_playing");
+
+
+ //Init Sampler Repeat mode
+
+}
+
+RHMixxx.shutdown = function () {
+ RHMixxx.OffAllLED();
+}
+
+
+///////////////////////////
+// //
+// Stop //
+// Handling //
+// //
+///////////////////////////
+
+
+RHMixxx.StopPlayer1 = function (channel, control, value, status, group) {
+ engine.setValue("[Channel1]","cue_default",1);
+
+ }
+
+RHMixxx.StopPlayer2 = function (channel, control, value, status, group) {
+ engine.setValue("[Channel2]","cue_default",1);
+ //engine.setValue("[Channel2]","cue_default",0);
+
+ }
+
+
+// Samplers
+
+
+RHMixxx.Sampler1play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler1]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler1]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler1]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler2play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler2]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler2]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler2]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler3play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler3]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler3]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler3]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler4play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler4]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler4]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler4]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler5play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler5]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler5]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler5]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler6play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler6]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler6]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler6]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler7play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler7]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler7]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler7]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler8play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler8]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler8]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler8]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler9play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler9]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler9]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler9]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler10play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler10]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler10]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler10]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler11play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler11]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler11]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler11]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+RHMixxx.Sampler12play = function (channel, control, value, status, group) {
+
+{
+ var currentlyPlaying = engine.getValue("[Sampler12]","play");
+ if (currentlyPlaying == 0){
+ engine.setValue("[Sampler12]","play",1);
+ //midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ engine.setValue("[Sampler12]","cue_default",1);
+ //midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+}
+
+
+
+
+///////////////////////////
+// //
+// Functions //
+// setting leds //
+// //
+///////////////////////////
+
+RHMixxx.Channel1_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Channel1]","play");
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Channel1]","play",1);
+ midi.sendShortMsg(0x80,0x01,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Channel1]","play",0);
+ midi.sendShortMsg(0x90,0x01,0x00);
+ }
+
+ }
+}
+engine.trigger("[Channel1]","play");
+}
+
+RHMixxx.Channel2_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Channel2]","play");
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Channel2]","play",1);
+ midi.sendShortMsg(0x80,0x03,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Channel2]","play",0);
+ midi.sendShortMsg(0x90,0x03,0x00);
+ }
+
+ }
+}
+engine.trigger("[Channel2]","play");
+}
+
+RHMixxx.Sampler1_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler1]","play");
+ var position = engine.getValue("[Sampler1]","playposition");
+ if (currentlyPlaying == 0){
+ midi.sendShortMsg(0x80,0x04,0x00);
+ //engine.setValue("[Sampler1]","play",1);
+ //engine.setValue([Sampler1], "cue_gotoandstop", 1);
+ if (position == 1){
+ engine.setValue("[Sampler1]","playposition", 0);
+ }
+
+
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler1]","play",0);
+ midi.sendShortMsg(0x90,0x04,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler1]","play");
+}
+
+RHMixxx.Sampler2_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler2]","play");
+ var position = engine.getValue("[Sampler2]","playposition");
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler2]","play",1);
+ midi.sendShortMsg(0x80,0x05,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler2]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler2]","play",0);
+ midi.sendShortMsg(0x90,0x05,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler2]","play");
+}
+
+RHMixxx.Sampler3_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler3]","play");
+ var position = engine.getValue("[Sampler3]","playposition");
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler3]","play",1);
+ midi.sendShortMsg(0x80,0x06,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler3]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler3]","play",0);
+ midi.sendShortMsg(0x90,0x06,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler3]","play");
+}
+
+RHMixxx.Sampler4_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler4]","play");
+ var position = engine.getValue("[Sampler4]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler4]","play",1);
+ midi.sendShortMsg(0x80,0x07,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler4]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler4]","play",0);
+ midi.sendShortMsg(0x90,0x07,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler4]","play");
+}
+
+RHMixxx.Sampler5_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler5]","play");
+ var position = engine.getValue("[Sampler5]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler5]","play",1);
+ midi.sendShortMsg(0x80,0x08,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler5]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler5]","play",0);
+ midi.sendShortMsg(0x90,0x08,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler5]","play");
+}
+
+RHMixxx.Sampler6_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler6]","play");
+ var position = engine.getValue("[Sampler6]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler6]","play",1);
+ midi.sendShortMsg(0x80,0x09,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler6]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler6]","play",0);
+ midi.sendShortMsg(0x90,0x09,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler6]","play");
+}
+
+RHMixxx.Sampler7_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler7]","play");
+ var position = engine.getValue("[Sampler7]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler7]","play",1);
+ midi.sendShortMsg(0x80,0x0a,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler7]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler7]","play",0);
+ midi.sendShortMsg(0x90,0x0a,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler7]","play");
+}
+
+RHMixxx.Sampler8_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler8]","play");
+ var position = engine.getValue("[Sampler8]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler8]","play",1);
+ midi.sendShortMsg(0x80,0x0b,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler8]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler8]","play",0);
+ midi.sendShortMsg(0x90,0x0b,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler8]","play");
+}
+
+RHMixxx.Sampler9_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler9]","play");
+ var position = engine.getValue("[Sampler9]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler9]","play",1);
+ midi.sendShortMsg(0x80,0x0c,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler9]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler9]","play",0);
+ midi.sendShortMsg(0x90,0x0c,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler9]","play");
+}
+
+RHMixxx.Sampler10_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler10]","play");
+ var position = engine.getValue("[Sampler10]","playposition");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler10]","play",1);
+ midi.sendShortMsg(0x80,0x0d,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler10]","playposition", 0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler10]","play",0);
+ midi.sendShortMsg(0x90,0x0d,0x00);
+ }
+
+ }
+}
+engine.trigger("[Sampler10]","play");
+}
+
+RHMixxx.Sampler11_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler11]","play");
+ var position = engine.getValue("[Sampler11]","playposition");
+ var duration = engine.getValue("[Sampler11]","duration");
+
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler11]","play",1);
+ midi.sendShortMsg(0x80,0x0e,0x00);
+
+ if(position == 1){
+ engine.setValue("[Sampler11]","playposition",0);
+ }
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler11]","play",0);
+ midi.sendShortMsg(0x90,0x0e,0x00);
+ }
+ }
+}
+engine.trigger("[Sampler11]","play");
+}
+
+
+
+
+RHMixxx.Sampler12_playing = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPlaying = engine.getValue("[Sampler12]","play");
+ var position = engine.getValue("[Sampler12]","playposition");
+ if (currentlyPlaying == 0){
+ //engine.setValue("[Sampler12]","play",1);
+ midi.sendShortMsg(0x80,0x0f,0x00);
+ }
+ else {
+ if (currentlyPlaying == 1){
+ //engine.setValue("[Sampler12]","cue_default",1);
+ midi.sendShortMsg(0x90,0x0f,0x00);
+
+ if (position == 1){
+ engine.setValue("[Sampler12]","playposition", 0);
+ }
+ }
+
+ }
+}
+engine.trigger("[Sampler12]","play");
+}
+
+
+
+RHMixxx.Channel1_paused = function (channel, control, value, status, group) {
+
+ {
+ var currentlyPaused = engine.getValue("[Channel1]","play_indicator");
+ if (currentlyPaused == 0){
+ //engine.setValue("[Channel1]","play",1);
+ midi.sendShortMsg(0x80,0x08,0x00);
+ }
+ else {
+ if (currentlyPaused == 1){
+ //engine.setValue("[Channel1]","play",0);
+ midi.sendShortMsg(0x90,0x08,0x00);
+ }
+
+ }
+}
+engine.trigger("[Channel1]","play_indicator");
+}
+
+RHMixxx.OffAllLED = function () {
+ midi.sendShortMsg(0x80,0x09,0x00);
+}
+
+
+
+
+///////////////////////////
+// //
+// The END //
+// :P //
+// //
+///////////////////////////
+
diff --git a/midi/rhmixxx_midi_controller_MIDI_1.midi.xml b/midi/rhmixxx_midi_controller_MIDI_1.midi.xml
new file mode 100644
index 0000000..c0fd281
--- /dev/null
+++ b/midi/rhmixxx_midi_controller_MIDI_1.midi.xml
@@ -0,0 +1,171 @@
+<MixxxMIDIPreset mixxxVersion="1.10.1+" schemaVersion="1">
+ <controller id="rhmixxx midi controller MIDI 1">
+ <scriptfiles>
+ <file filename="rhmixxx_midi_controller_MIDI_1-scripts.js" functionprefix="RHMixxx"/>
+ </scriptfiles>
+ <!-- DECKS -->
+ <controls>
+ <control>
+ <status>0x90</status>
+ <midino>0x00</midino>
+ <group>[Channel1]</group>
+ <key>RHMixxx.StopPlayer1</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x01</midino>
+ <group>[Channel1]</group>
+ <key>play</key>
+ <options>
+ <normal/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x02</midino>
+ <group>[Channel2]</group>
+ <key>RHMixxx.StopPlayer2</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x03</midino>
+ <group>[Channel2]</group>
+ <key>play</key>
+ <description></description>
+ <options>
+ <normal/>
+ </options>
+ </control>
+ <!-- SAMPLER -->
+ <control>
+ <status>0x90</status>
+ <midino>0x4</midino>
+ <group>[Sampler1]</group>
+ <key>RHMixxx.Sampler1play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x5</midino>
+ <group>[Sampler2]</group>
+ <key>RHMixxx.Sampler2play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x6</midino>
+ <group>[Sampler3]</group>
+ <key>RHMixxx.Sampler3play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x7</midino>
+ <group>[Sampler4]</group>
+ <key>RHMixxx.Sampler4play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x8</midino>
+ <group>[Sampler5]</group>
+ <key>RHMixxx.Sampler5play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0x9</midino>
+ <group>[Sampler6]</group>
+ <key>RHMixxx.Sampler6play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0xa</midino>
+ <group>[Sampler7]</group>
+ <key>RHMixxx.Sampler7play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0xb</midino>
+ <group>[Sampler8]</group>
+ <key>RHMixxx.Sampler8play</key>
+ <description></description>
+ <options>mixxx
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0xc</midino>
+ <group>[Sampler9]</group>
+ <key>RHMixxx.Sampler9play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0xd</midino>
+ <group>[Sampler10]</group>
+ <key>RHMixxx.Sampler10play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0xe</midino>
+ <group>[Sampler11]</group>
+ <key>RHMixxx.Sampler11play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <status>0x90</status>
+ <midino>0xf</midino>
+ <group>[Sampler12]</group>
+ <key>RHMixxx.Sampler12play</key>
+ <description></description>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ </controls>
+ <outputs/>
+ </controller>
+</MixxxMIDIPreset>