diff options
Diffstat (limited to 'midi')
-rw-r--r-- | midi/RHMixxx-scripts.js | 146 | ||||
-rw-r--r-- | midi/RHMixxx.midi.xml | 171 | ||||
-rw-r--r-- | midi/mixxx_commands.pdf | bin | 0 -> 112587 bytes | |||
-rw-r--r-- | midi/rhmixxx_midi_controller_MIDI_1-scripts.js | 691 | ||||
-rw-r--r-- | midi/rhmixxx_midi_controller_MIDI_1.midi.xml | 171 |
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 Binary files differnew file mode 100644 index 0000000..c6aad6a --- /dev/null +++ b/midi/mixxx_commands.pdf 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> |