Jump to content
Gibson Brands Forums
Luis Serrano

Dj Controller Support

Recommended Posts

Guest EddyC1

Thx Frank for the bright explanation. I made the script and the next days I gone experiment with it.

Share this post


Link to post
Share on other sites
Guest Frank

SYNQ PCM 1 Midi Script - internal mixer

 

with this brand new script most of the buttons and faders do what you expect them to do.

 

exeptions:

 

RELOOP is LEAP

<- and -> control LOOP LENGHT (like with the old image line native support mapping)

SHIFT sets DOWNBEAT

hold SCRATCH while turning jog wheel for scratching

hold JOG SEEK while pressing hot cue Buttons to DELETE HOT CUES

MODE buttons on deck a Trigger SAMPLE 1 ... 4 - on deck b they Trigger SAMPLE 5 ... 8

EFF on deck b loads selected playlist track for PREVIEW

EFF on deck b STARTS/STOPS PREVIEW

press TRACK SELECT to enable/disable the "magnetic" SNAP mode

press/turn those 3 big EFFECTS ENCODERS on the top to activate/deactivate the EFFECTS / to change their parameters

you can always hit SYNC and it works

 

i added a VU-METER (7 LEDs)

the LEDs on the MODE & SAMPLE buttons visualize the playing beats (1st/2nd/3rd/4th) on the deck (SAMPLE LEDs) and on the other deck (MODE LEDs)

 

PFL and all this CUE stuff should work, so you can use the controller without an external mixer with this script.

with the other script (for use with an external mixer) the mixer stuff on the Controller is "abused" for other functions:)

 

perhaps someone has new ideas to improve or customize this script. it would be interesting to see code variations here on the forum.

 

and here's the code:

 

//=============================================================================

// SYNQ-PCM.1

// MIDI script created: 27 May 2016

//=============================================================================

 

#include "dd_commands.h"

 

// globals

int CueDelA = 0;

int CueDelB = 0;

 

void OnMidiMessageReceived (const string &in name, int status, int data, int value)

{

// this callback is called when a midi message is received from a midi device

 

// stack

float value01 = value / 127.0;

float valueInc = (value < 0x40) ? -1.0 : 1.0;

float isDown = (value > 0) ? 1.0 : 0.0;

 

// NN's

if((status & 0xF0) == 0x90) {

 

// NN's - programmed

 

if(status == 0x90 && data == 0x36) {if(value > 0) {CueDelA = 1; return;} else {CueDelA = 0; return;}}

if(status == 0x91 && data == 0x36) {if(value > 0) {CueDelB = 1; return;} else {CueDelB = 0; return;}}

 

// NN's - midi learn

 

if(status == 0x90 && data == 0x1A) {

if(value > 0) set(PLAY_PAUSE_A);

return;

}

 

if(status == 0x91 && data == 0x1A) {

if(value > 0) set(PLAY_PAUSE_B);

return;

}

 

if(status == 0x90 && data == 0x3B) {

set(PITCH_BEND_NUDGE_MINUS_A, isDown);

return;

}

 

if(status == 0x91 && data == 0x3B) {

set(PITCH_BEND_NUDGE_MINUS_B, isDown);

return;

}

 

if(status == 0x90 && data == 0x3C) {

set(PITCH_BEND_NUDGE_PLUS_A, isDown);

return;

}

 

if(status == 0x91 && data == 0x3C) {

set(PITCH_BEND_NUDGE_PLUS_B, isDown);

return;

}

 

if(status == 0x90 && data == 0x39) {

if(value > 0) set(KEY_LOCK_A, 1.0 - get(KEY_LOCK_A));

return;

}

 

if(status == 0x91 && data == 0x39) {

if(value > 0) set(KEY_LOCK_B, 1.0 - get(KEY_LOCK_B));

return;

}

 

if(status == 0x90 && data == 0x16) {

if(value > 0) set(LOOP_A, 1 - get(LOOP_A));

return;

}

 

if(status == 0x91 && data == 0x16) {

if(value > 0) set(LOOP_B, 1 - get(LOOP_B));

return;

}

 

if(status == 0x90 && data == 0x18) {

if(value > 0) set(LEAP_A, 1 - get(LEAP_A));

return;

}

 

if(status == 0x91 && data == 0x18) {

if(value > 0) set(LEAP_B, 1 - get(LEAP_B));

return;

}

 

if(status == 0x90 && data == 0x17) {

if(value > 0) set(LOOP_OUT_A);

return;

}

 

if(status == 0x91 && data == 0x17) {

if(value > 0) set(LOOP_OUT_B);

return;

}

 

if(status == 0x90 && data == 0x37) {

if(value > 0) set(DOWNBEAT_A);

return;

}

 

if(status == 0x91 && data == 0x37) {

if(value > 0) set(DOWNBEAT_B);

return;

}

 

if(status == 0x90 && data == 0x19) {

set(CUE_STUTTER_A, isDown);

return;

}

 

if(status == 0x91 && data == 0x19) {

set(CUE_STUTTER_B, isDown);

return;

}

 

if(status == 0x90 && data == 0x34) {

set(JOG_SCRATCH_ON_A, isDown);

return;

}

 

if(status == 0x91 && data == 0x34) {

set(JOG_SCRATCH_ON_B, isDown);

return;

}

 

if(status == 0x90 && data == 0x35) {

if(value > 0) set(PFL_A);

return;

}

 

if(status == 0x91 && data == 0x35) {

if(value > 0) set(PFL_B);

return;

}

 

if(status == 0x90 && data == 0x1B) {

if(value > 0) set(EFFECT_ON_1_GROUP_A, 1 - get(EFFECT_ON_1_GROUP_A));

return;

}

 

if(status == 0x90 && data == 0x1C) {

if(value > 0) set(EFFECT_ON_2_GROUP_A, 1 - get(EFFECT_ON_2_GROUP_A));

return;

}

 

if(status == 0x90 && data == 0x1D) {

if(value > 0) set(EFFECT_ON_3_GROUP_A, 1 - get(EFFECT_ON_3_GROUP_A));

return;

}

 

if(status == 0x91 && data == 0x1B) {

if(value > 0) set(EFFECT_ON_1_GROUP_B, 1 - get(EFFECT_ON_1_GROUP_B));

return;

}

 

if(status == 0x91 && data == 0x1C) {

if(value > 0) set(EFFECT_ON_2_GROUP_B, 1 - get(EFFECT_ON_2_GROUP_B));

return;

}

 

if(status == 0x91 && data == 0x1D) {

if(value > 0) set(EFFECT_ON_3_GROUP_B, 1 - get(EFFECT_ON_3_GROUP_B));

return;

}

 

if(status == 0x90 && data == 0x5) {

set(SAMPLER_PLAY_PAD_1, isDown);

return;

}

 

if(status == 0x90 && data == 0x6) {

set(SAMPLER_PLAY_PAD_2, isDown);

return;

}

 

if(status == 0x90 && data == 0x7) {

set(SAMPLER_PLAY_PAD_3, isDown);

return;

}

 

if(status == 0x90 && data == 0x8) {

set(SAMPLER_PLAY_PAD_4, isDown);

return;

}

 

if(status == 0x91 && data == 0x5) {

set(SAMPLER_PLAY_PAD_5, isDown);

return;

}

 

if(status == 0x91 && data == 0x6) {

set(SAMPLER_PLAY_PAD_6, isDown);

return;

}

 

if(status == 0x91 && data == 0x7) {

set(SAMPLER_PLAY_PAD_7, isDown);

return;

}

 

if(status == 0x91 && data == 0x8) {

set(SAMPLER_PLAY_PAD_8, isDown);

return;

}

 

if(status == 0x90 && data == 0x1) {

if(value > 0) set(GROSSBEAT_PAD_A_1);

return;

}

 

if(status == 0x90 && data == 0x2) {

if(value > 0) set(GROSSBEAT_PAD_A_2);

return;

}

 

if(status == 0x90 && data == 0x3) {

if(value > 0) set(GROSSBEAT_PAD_A_3);

return;

}

 

if(status == 0x90 && data == 0x4) {

if(value > 0) set(GROSSBEAT_PAD_A_4);

return;

}

 

if(status == 0x91 && data == 0x1) {

if(value > 0) set(GROSSBEAT_PAD_B_1);

return;

}

 

if(status == 0x91 && data == 0x2) {

if(value > 0) set(GROSSBEAT_PAD_B_2);

return;

}

 

if(status == 0x91 && data == 0x3) {

if(value > 0) set(GROSSBEAT_PAD_B_3);

return;

}

 

if(status == 0x91 && data == 0x4) {

if(value > 0) set(GROSSBEAT_PAD_B_4);

return;

}

 

if(status == 0x90 && data == 0x3D) {

if(value > 0) set(PLAYLIST_LOAD_A);

return;

}

 

if(status == 0x91 && data == 0x3D) {

if(value > 0) set(PLAYLIST_LOAD_B);

return;

}

 

if(status == 0x90 && data == 0x3D) {

if(value > 0) set(PLAYLIST_LOAD_A);

return;

}

 

if(status == 0x91 && data == 0x3D) {

if(value > 0) set(PLAYLIST_LOAD_B);

return;

}

 

if(status == 0x90 && data == 0x33) {

if(value > 0) set(PLAYLIST_PREVIEW);

return;

}

 

if(status == 0x91 && data == 0x33) {

if(value > 0) set(PREVIEW_PLAY_PAUSE);

return;

}

 

if(status == 0x92 && data == 0x1) {

if(value > 0) set(SNAP, 1 - get(SNAP));

return;

}

 

// NN's - programmed

 

if(status == 0x90 && data == 0x09 && value > 0) {if (CueDelA == 0) {set(HOT_CUE_1_A); return;} else {set(DELETE_HOT_CUE_1_A); return;}}

if(status == 0x90 && data == 0x0A && value > 0) {if (CueDelA == 0) {set(HOT_CUE_2_A); return;} else {set(DELETE_HOT_CUE_2_A); return;}}

if(status == 0x90 && data == 0x0B && value > 0) {if (CueDelA == 0) {set(HOT_CUE_3_A); return;} else {set(DELETE_HOT_CUE_3_A); return;}}

if(status == 0x90 && data == 0x0C && value > 0) {if (CueDelA == 0) {set(HOT_CUE_4_A); return;} else {set(DELETE_HOT_CUE_4_A); return;}}

if(status == 0x91 && data == 0x09 && value > 0) {if (CueDelB == 0) {set(HOT_CUE_1_B); return;} else {set(DELETE_HOT_CUE_1_B); return;}}

if(status == 0x91 && data == 0x0A && value > 0) {if (CueDelB == 0) {set(HOT_CUE_2_B); return;} else {set(DELETE_HOT_CUE_2_B); return;}}

if(status == 0x91 && data == 0x0B && value > 0) {if (CueDelB == 0) {set(HOT_CUE_3_B); return;} else {set(DELETE_HOT_CUE_3_B); return;}}

if(status == 0x91 && data == 0x0C && value > 0) {if (CueDelB == 0) {set(HOT_CUE_4_B); return;} else {set(DELETE_HOT_CUE_4_B); return;}}

 

if(status == 0x90 && data == 0x0E) {if(value > 0) set(LOOP_SIZE_01_A, 0.3); return;}

if(status == 0x90 && data == 0x0F) {if(value > 0) set(LOOP_SIZE_01_A, 0.4); return;}

if(status == 0x90 && data == 0x10) {if(value > 0) set(LOOP_SIZE_01_A, 0.5); return;}

if(status == 0x90 && data == 0x11) {if(value > 0) set(LOOP_SIZE_01_A, 0.6); return;}

if(status == 0x90 && data == 0x12) {if(value > 0) set(LOOP_SIZE_01_A, 0.7); return;}

if(status == 0x90 && data == 0x13) {if(value > 0) set(LOOP_SIZE_01_A, 0.8); return;}

if(status == 0x90 && data == 0x14) {if(value > 0) set(LOOP_SIZE_01_A, 0.9); return;}

if(status == 0x91 && data == 0x0E) {if(value > 0) set(LOOP_SIZE_01_B, 0.3); return;}

if(status == 0x91 && data == 0x0F) {if(value > 0) set(LOOP_SIZE_01_B, 0.4); return;}

if(status == 0x91 && data == 0x10) {if(value > 0) set(LOOP_SIZE_01_B, 0.5); return;}

if(status == 0x91 && data == 0x11) {if(value > 0) set(LOOP_SIZE_01_B, 0.6); return;}

if(status == 0x91 && data == 0x12) {if(value > 0) set(LOOP_SIZE_01_B, 0.7); return;}

if(status == 0x91 && data == 0x13) {if(value > 0) set(LOOP_SIZE_01_B, 0.8); return;}

if(status == 0x91 && data == 0x14) {if(value > 0) set(LOOP_SIZE_01_B, 0.9); return;}

 

if(status == 0x90 && data == 0x38) {if(value > 0) set(MASTER_B); set(SYNC_LOCK_A, 1); return;}

if(status == 0x91 && data == 0x38) {if(value > 0) set(MASTER_A); set(SYNC_LOCK_B, 1); return;}

 

}

 

// CC's

if((status & 0xF0) == 0xB0) {

 

// CC's - midi learn

 

if(status == 0xB0 && data == 0x12) {

set(PITCH_A, 1.0 - value01);

return;

}

 

if(status == 0xB1 && data == 0x12) {

set(PITCH_B, 1.0 - value01);

return;

}

 

if(status == 0xB0 && data == 0x13) {

set(EQ_HIGH_A, value01);

return;

}

 

if(status == 0xB1 && data == 0x13) {

set(EQ_HIGH_B, value01);

return;

}

 

if(status == 0xB0 && data == 0x14) {

set(EQ_MID_A, value01);

return;

}

 

if(status == 0xB1 && data == 0x14) {

set(EQ_MID_B, value01);

return;

}

 

if(status == 0xB0 && data == 0x15) {

set(EQ_LOW_A, value01);

return;

}

 

if(status == 0xB1 && data == 0x15) {

set(EQ_LOW_B, value01);

return;

}

 

if(status == 0xB0 && data == 0x16) {

set(VOLUME_A, value01);

return;

}

 

if(status == 0xB1 && data == 0x16) {

set(VOLUME_B, value01);

return;

}

 

if(status == 0xB2 && data == 0x5) {

set(CROSSFADER, value01);

return;

}

 

if(status == 0xB2 && data == 0x3) {

set(MONITOR_VOLUME, value01);

return;

}

 

if(status == 0xB2 && data == 0x2) {

set(MONITOR_MIX, value01);

return;

}

 

if(status == 0xB2 && data == 0x4) {

set(MASTER_VOLUME, value01);

return;

}

 

if(status == 0xB0 && data == 0x1) {

set(EFFECT_PARAM_1_GROUP_A, get(EFFECT_PARAM_1_GROUP_A) + valueInc * 0.05);

return;

}

 

if(status == 0xB0 && data == 0x9) {

set(EFFECT_PARAM_2_GROUP_A, get(EFFECT_PARAM_2_GROUP_A) + valueInc * 0.05);

return;

}

 

if(status == 0xB0 && data == 0x11) {

set(EFFECT_PARAM_3_GROUP_A, get(EFFECT_PARAM_3_GROUP_A) + valueInc * 0.05);

return;

}

 

if(status == 0xB1 && data == 0x1) {

set(EFFECT_PARAM_1_GROUP_B, get(EFFECT_PARAM_1_GROUP_B) + valueInc * 0.05);

return;

}

 

if(status == 0xB1 && data == 0x9) {

set(EFFECT_PARAM_2_GROUP_B, get(EFFECT_PARAM_2_GROUP_B) + valueInc * 0.05);

return;

}

 

if(status == 0xB1 && data == 0x11) {

set(EFFECT_PARAM_3_GROUP_B, get(EFFECT_PARAM_3_GROUP_B) + valueInc * 0.05);

return;

}

 

if(status == 0xB2 && data == 0x1) {

set(PLAYLIST_SELECT, value);

return;

}

 

// CC's - programmed

 

if(status == 0xB0 && data == 0x17) {set(JOG_A, value - 64.0, -0.01, 0.1); return;}

if(status == 0xB1 && data == 0x17) {set(JOG_B, value - 64.0, -0.01, 0.1); return;}

 

}

}

 

void OnTimerCallback()

{

// this callback is called continunuosly by DD every 50 ms

 

// stack

int off = 0x00;

int on = 0x7F;

 

(get(BEAT_ID_B) == 1) ? sendMidiMessage(0x90, 0x01, on) : sendMidiMessage(0x90, 0x01, off);

(get(BEAT_ID_B) == 2) ? sendMidiMessage(0x90, 0x02, on) : sendMidiMessage(0x90, 0x02, off);

(get(BEAT_ID_B) == 3) ? sendMidiMessage(0x90, 0x03, on) : sendMidiMessage(0x90, 0x03, off);

(get(BEAT_ID_B) == 4) ? sendMidiMessage(0x90, 0x04, on) : sendMidiMessage(0x90, 0x04, off);

(get(BEAT_ID_A) == 1) ? sendMidiMessage(0x90, 0x05, on) : sendMidiMessage(0x90, 0x05, off);

(get(BEAT_ID_A) == 2) ? sendMidiMessage(0x90, 0x06, on) : sendMidiMessage(0x90, 0x06, off);

(get(BEAT_ID_A) == 3) ? sendMidiMessage(0x90, 0x07, on) : sendMidiMessage(0x90, 0x07, off);

(get(BEAT_ID_A) == 4) ? sendMidiMessage(0x90, 0x08, on) : sendMidiMessage(0x90, 0x08, off);

(get(BEAT_ID_A) == 1) ? sendMidiMessage(0x91, 0x01, on) : sendMidiMessage(0x91, 0x01, off);

(get(BEAT_ID_A) == 2) ? sendMidiMessage(0x91, 0x02, on) : sendMidiMessage(0x91, 0x02, off);

(get(BEAT_ID_A) == 3) ? sendMidiMessage(0x91, 0x03, on) : sendMidiMessage(0x91, 0x03, off);

(get(BEAT_ID_A) == 4) ? sendMidiMessage(0x91, 0x04, on) : sendMidiMessage(0x91, 0x04, off);

(get(BEAT_ID_B) == 1) ? sendMidiMessage(0x91, 0x05, on) : sendMidiMessage(0x91, 0x05, off);

(get(BEAT_ID_B) == 2) ? sendMidiMessage(0x91, 0x06, on) : sendMidiMessage(0x91, 0x06, off);

(get(BEAT_ID_B) == 3) ? sendMidiMessage(0x91, 0x07, on) : sendMidiMessage(0x91, 0x07, off);

(get(BEAT_ID_B) == 4) ? sendMidiMessage(0x91, 0x08, on) : sendMidiMessage(0x91, 0x08, off);

 

(get(HOT_CUE_1_A) > 0) ? sendMidiMessage(0x90, 0x09, on) : sendMidiMessage(0x90, 0x09, off);

(get(HOT_CUE_2_A) > 0) ? sendMidiMessage(0x90, 0x0A, on) : sendMidiMessage(0x90, 0x0A, off);

(get(HOT_CUE_3_A) > 0) ? sendMidiMessage(0x90, 0x0B, on) : sendMidiMessage(0x90, 0x0B, off);

(get(HOT_CUE_4_A) > 0) ? sendMidiMessage(0x90, 0x0C, on) : sendMidiMessage(0x90, 0x0C, off);

(get(HOT_CUE_1_B) > 0) ? sendMidiMessage(0x91, 0x09, on) : sendMidiMessage(0x91, 0x09, off);

(get(HOT_CUE_2_B) > 0) ? sendMidiMessage(0x91, 0x0A, on) : sendMidiMessage(0x91, 0x0A, off);

(get(HOT_CUE_3_B) > 0) ? sendMidiMessage(0x91, 0x0B, on) : sendMidiMessage(0x91, 0x0B, off);

(get(HOT_CUE_4_B) > 0) ? sendMidiMessage(0x91, 0x0C, on) : sendMidiMessage(0x91, 0x0C, off);

 

(get(LEVEL_METER_A) > 0.00) ? sendMidiMessage(0x90, 0x0E, on) : sendMidiMessage(0x90, 0x0E, off);

(get(LEVEL_METER_A) > 0.14) ? sendMidiMessage(0x90, 0x0F, on) : sendMidiMessage(0x90, 0x0F, off);

(get(LEVEL_METER_A) > 0.29) ? sendMidiMessage(0x90, 0x10, on) : sendMidiMessage(0x90, 0x10, off);

(get(LEVEL_METER_A) > 0.43) ? sendMidiMessage(0x90, 0x11, on) : sendMidiMessage(0x90, 0x11, off);

(get(LEVEL_METER_A) > 0.57) ? sendMidiMessage(0x90, 0x12, on) : sendMidiMessage(0x90, 0x12, off);

(get(LEVEL_METER_A) > 0.71) ? sendMidiMessage(0x90, 0x13, on) : sendMidiMessage(0x90, 0x13, off);

(get(LEVEL_METER_A) > 0.86) ? sendMidiMessage(0x90, 0x14, on) : sendMidiMessage(0x90, 0x14, off);

(get(LEVEL_METER_B) > 0.00) ? sendMidiMessage(0x91, 0x0E, on) : sendMidiMessage(0x91, 0x0E, off);

(get(LEVEL_METER_B) > 0.14) ? sendMidiMessage(0x91, 0x0F, on) : sendMidiMessage(0x91, 0x0F, off);

(get(LEVEL_METER_B) > 0.29) ? sendMidiMessage(0x91, 0x10, on) : sendMidiMessage(0x91, 0x10, off);

(get(LEVEL_METER_B) > 0.43) ? sendMidiMessage(0x91, 0x11, on) : sendMidiMessage(0x91, 0x11, off);

(get(LEVEL_METER_B) > 0.57) ? sendMidiMessage(0x91, 0x12, on) : sendMidiMessage(0x91, 0x12, off);

(get(LEVEL_METER_B) > 0.71) ? sendMidiMessage(0x91, 0x13, on) : sendMidiMessage(0x91, 0x13, off);

(get(LEVEL_METER_B) > 0.86) ? sendMidiMessage(0x91, 0x14, on) : sendMidiMessage(0x91, 0x14, off);

 

(get(LOOP_A) > 0) ? sendMidiMessage(0x90, 0x16, on) : sendMidiMessage(0x90, 0x16, off);

(get(LOOP_B) > 0) ? sendMidiMessage(0x91, 0x16, on) : sendMidiMessage(0x91, 0x16, off);

 

(get(LEAP_A) > 0) ? sendMidiMessage(0x90, 0x18, on) : sendMidiMessage(0x90, 0x18, off);

(get(LEAP_B) > 0) ? sendMidiMessage(0x91, 0x18, on) : sendMidiMessage(0x91, 0x18, off);

 

(get(CUE_A) > 0) ? sendMidiMessage(0x90, 0x19, on) : sendMidiMessage(0x90, 0x19, off);

(get(CUE_B) > 0) ? sendMidiMessage(0x91, 0x19, on) : sendMidiMessage(0x91, 0x19, off);

 

(get(PLAY_PAUSE_A) > 0) || (get(PLAY_PAUSE_A) == 0 && get(PLAY_B) == 1 && (get(BEAT_ID_B) == 1 || get(BEAT_ID_B) == 2)) ? sendMidiMessage(0x90, 0x1A,

 

on) : sendMidiMessage(0x90, 0x1A, off);

(get(PLAY_PAUSE_B) > 0) || (get(PLAY_PAUSE_B) == 0 && get(PLAY_A) == 1 && (get(BEAT_ID_A) == 1 || get(BEAT_ID_A) == 2)) ? sendMidiMessage(0x91, 0x1A,

 

on) : sendMidiMessage(0x91, 0x1A, off);

 

(get(TRACK_POSITION_A) < 0.11) ? sendMidiMessage(0x90, 0x2B, on) : sendMidiMessage(0x90, 0x2B, off);

(get(TRACK_POSITION_A) < 0.22) ? sendMidiMessage(0x90, 0x2C, on) : sendMidiMessage(0x90, 0x2C, off);

(get(TRACK_POSITION_A) < 0.33) ? sendMidiMessage(0x90, 0x2D, on) : sendMidiMessage(0x90, 0x2D, off);

(get(TRACK_POSITION_A) < 0.44) ? sendMidiMessage(0x90, 0x2E, on) : sendMidiMessage(0x90, 0x2E, off);

(get(TRACK_POSITION_A) < 0.56) ? sendMidiMessage(0x90, 0x2F, on) : sendMidiMessage(0x90, 0x2F, off);

(get(TRACK_POSITION_A) < 0.67) ? sendMidiMessage(0x90, 0x30, on) : sendMidiMessage(0x90, 0x30, off);

(get(TRACK_POSITION_A) < 0.78) ? sendMidiMessage(0x90, 0x31, on) : sendMidiMessage(0x90, 0x31, off);

(get(TRACK_POSITION_A) < 0.89) ? sendMidiMessage(0x90, 0x32, on) : sendMidiMessage(0x90, 0x32, off);

(get(TRACK_POSITION_B) < 0.11) ? sendMidiMessage(0x91, 0x2B, on) : sendMidiMessage(0x91, 0x2B, off);

(get(TRACK_POSITION_B) < 0.22) ? sendMidiMessage(0x91, 0x2C, on) : sendMidiMessage(0x91, 0x2C, off);

(get(TRACK_POSITION_B) < 0.33) ? sendMidiMessage(0x91, 0x2D, on) : sendMidiMessage(0x91, 0x2D, off);

(get(TRACK_POSITION_B) < 0.44) ? sendMidiMessage(0x91, 0x2E, on) : sendMidiMessage(0x91, 0x2E, off);

(get(TRACK_POSITION_B) < 0.56) ? sendMidiMessage(0x91, 0x2F, on) : sendMidiMessage(0x91, 0x2F, off);

(get(TRACK_POSITION_B) < 0.67) ? sendMidiMessage(0x91, 0x30, on) : sendMidiMessage(0x91, 0x30, off);

(get(TRACK_POSITION_B) < 0.78) ? sendMidiMessage(0x91, 0x31, on) : sendMidiMessage(0x91, 0x31, off);

(get(TRACK_POSITION_B) < 0.89) ? sendMidiMessage(0x91, 0x32, on) : sendMidiMessage(0x91, 0x32, off);

 

(get(PFL_A) > 0) ? sendMidiMessage(0x90, 0x35, on) : sendMidiMessage(0x90, 0x35, off);

(get(PFL_B) > 0) ? sendMidiMessage(0x91, 0x35, on) : sendMidiMessage(0x91, 0x35, off);

 

(get(BEAT_ID_A) == get(BEAT_ID_B)) ? sendMidiMessage(0x90, 0x38, off) : sendMidiMessage(0x90, 0x38, on);

(get(BEAT_ID_A) == get(BEAT_ID_B)) ? sendMidiMessage(0x91, 0x38, off) : sendMidiMessage(0x91, 0x38, on);

 

(get(KEY_LOCK_A) > 0) ? sendMidiMessage(0x90, 0x39, on) : sendMidiMessage(0x90, 0x39, off);

(get(KEY_LOCK_B) > 0) ? sendMidiMessage(0x91, 0x39, on) : sendMidiMessage(0x91, 0x39, off);

 

}

 

void OnStart()

{

// this callback is called by DD when the script is started

// not used

}

 

void OnStop()

{

// this callback is called by DD when the script is stopped

// not used

}

 

// EOF

Share this post


Link to post
Share on other sites
Guest Frank

HOW TO FIND THE RIGHT JOG WHEEL PARAMETERS:

 

a) If you want your jog wheel to behave like a "33" vinyl (recommended):

-> Select a track with 133.33 BPM (or pitch a track to this BPM).

 

a) If you want your jog wheel to behave like a "45" vinyl (not recommended):

-> Select a track with 180.00 BPM (or pitch a track to this BPM).

 

Now this track would play exactly 4 beats from vinyl while the record would turn 1 time around.

 

=> Now you can adjust "param3: scratch sensitivity" in your script until 4 beats are played when you turn the jog wheel 1 time around (in scratch mode).

 

When you have the right "param3: scratch sensitivity", you can use

-1/100 * "param3: scratch sensitivity" for "param2: bend sensitivity".

 

EXAMPLE: (for SYNQ-PCM.1)

if(status == 0xB0 && data == 0x17) {set(JOG_A, value - 64.0, -0.0025, 0.25); return;}

if(status == 0xB1 && data == 0x17) {set(JOG_B, value - 64.0, -0.0025, 0.25); return;}

 

If you don't like the bend sensivity then, try again with

-1/10 * "param3: scratch sensitivity" for "param2: bend sensitivity"

or with

-2/10 * "param3: scratch sensitivity" for "param2: bend sensitivity".

Share this post


Link to post
Share on other sites
Guest pkane15

Help please! My Vestax VCM-100 Controller was working with DD 2.43 but now it doesn't work at all.

Share this post


Link to post
Share on other sites
Guest Martin Thomsen

Hey ! I got this fantastic peace of software bundled with a DJ-Tech Pocket DJ DUO . It worked very fine with older deckadance2 versions .Can you please put it in the new script-file ? Thanks in advance ...

Share this post


Link to post
Share on other sites
Guest Hélio

Os botões da minha controladora CMD STUDIO 4A, não estão acendendo, hoje estou utilizando o Deckadance 2.61, mas mesmo com a versão anterior não estava funcionando, o que pode ser? Grato!! Hélio

Share this post


Link to post
Share on other sites

Os botões da minha controladora CMD STUDIO 4A, não estão acendendo, hoje estou utilizando o Deckadance 2.61, mas mesmo com a versão anterior não estava funcionando, o que pode ser? Grato!! Hélio

Tienes que hacer lo mismo que en la imagen:post-71939-093403100 1473437445_thumb.png

Share this post


Link to post
Share on other sites
Guest Martin Thomsen

Hi Luis! Glad to see you are back to this topic !A few posts above i asked you to please add midi scripting for

the DJ-Tech Pocket DJ DUO in the midi script zip . Do you think you are able to do this in the near future ? Otherwise i would

have to switch back to an older version ... and sadly miss the new features ! Have a nice day whereever you are , greets from Frankfurt Germany !

Share this post


Link to post
Share on other sites

Hi Luis! Glad to see you are back to this topic !A few posts above i asked you to please add midi scripting for

the DJ-Tech Pocket DJ DUO in the midi script zip . Do you think you are able to do this in the near future ? Otherwise i would

have to switch back to an older version ... and sadly miss the new features ! Have a nice day whereever you are , greets from Frankfurt Germany !

Sorry for the delay reply. I haven't had time to do it yet because we are working in a new release... once it's released I think that I will have time to work in the support of the controllers requested here.

Share this post


Link to post
Share on other sites

numark MIXTRACK 3

 

HI, I bought the numark midi controller an thought that it has the same midi-script as the MIXTRACK II pro.... but ****!

 

Someone can help me? Please!

 

Midi learn doesn't work in this case... no command is sent :-( don't know why....

 

Torsten

from Germany

Share this post


Link to post
Share on other sites
Guest Ban

Hello. I have a DJC.4 controller and I try to use Deckadance 2.61.

When I try to assign a sampler on Deckadance and use it by a controller first, sampler button 1.2.3.4 of deck 1 is assigned to 1.2.3.4 of a sampler of Dechadance, but sampler button 1.2.3.4 of deck 2 is assigned to 2.3.4.5 of a sampler of Dechadance.

Why is this?

 

Thanks!

 

ban

Share this post


Link to post
Share on other sites

Hi Ban,

 

I'm not sure if I understand you correctly. Are you using the built-in script for the DJC.4 (StantonDj?) controller? or Are you trying to map it via the MIDI learn function? or Are you creating a MIDI script from scratch?

Share this post


Link to post
Share on other sites
Guest Ban

Hi Luis,

 

I answer bellow.

 

> Are you using the built-in script for the DJC.4 (StantonDj?)

 

Yes. I'm not using another script.

I installed Deckadance and a ASIO driver and immediately, connected DJC.4. After a connection, MIDI interface was chosen from the Deckadance.

It's DJC.4 of STANTON to use it of course.

 

> Are you trying to map it via the MIDI learn function?

 

No. I'm not using the MIDI learn function.

 

> Are you creating a MIDI script from scratch?

 

No. I'm using default script only.

 

 

When a script was seen, the command every deck was gathered, and I found out that the command of nothing is mentioned every deck. A strange phenomenon.

Is there a way to initialize setting of DJC.4 body?

 

Thanks!

 

Ban

  • Downvote 1

Share this post


Link to post
Share on other sites
Guest DJ/JD$

I'm using a cmd studio 4a which I had previously discovered had a bad internal interface. In hopes of still using it anyway this weekend in a pinch. I have an external umc204 interface and have sound configured correctly for my main outs. Recently began using virtualdj software at another club that allowed me to configure a second out for my headphone cue through my computer's headphone jack. Is this also possible with deckadance as well? I would much rather use it instead of virtualdj but I am having trouble configuring this same setting.

Share this post


Link to post
Share on other sites

To be honest I don't remember if I updated the code. In the last release the MIDI script code is (for deck A,B pitch):

case 0x0C:    set(PITCH_A, 1.0 - midiPitchTable[value]); break;
case 0x0F:    set(PITCH_B, 1.0 - midiPitchTable[value]); break;

 

If it's reversed then the correct code is:

case 0x0C:    set(PITCH_A, midiPitchTable[value]); break;
case 0x0F:    set(PITCH_B, midiPitchTable[value]); break;

 

Note that you can reverse the crossfader direction in "Preferences->Global Settings->Mixer Settings->Enable crossfader reverse"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...