Gibson Guitar Board: Dj Controller Support - Gibson Guitar Board

Jump to content

  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • You cannot start a new topic
  • You cannot reply to this topic

Dj Controller Support

#21 Guest_DJ MO_*

  • Group: Guests

Posted 26 May 2016 - 05:28 PM

View PostEddyC1, on 08 May 2016 - 12:31 AM, said:

Hi Luis

I see that the Synq PCM-1 is no longer supported. Deckadance was bundled with the Synq PCM-1 when I bought the controller and this midi controller was supported in the previous versions of Deckadance. Is it possible to put this controller back in the midi controller preferences section?

Thx in advance.

Eddy


Hi Synq PCM-1 users! I just created a custom script for PCM-1 - external mixer mode. Feel free to use / modify it:)


//=============================================================================
// SYNQ-PCM.1
// MIDI script created: 27 May 2016
//=============================================================================

#include "dd_commands.h"

// globals
int CueDelA = 0;
int CueDelB = 0;

int SeekA = 0;
int SeekB = 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) {

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

if(status == 0x90 && data == 0x37) {if(value > 0) {SeekA = 1; return;} else {SeekA = 0; return;}}
if(status == 0x91 && data == 0x37) {if(value > 0) {SeekB = 1; return;} else {SeekB = 0; return;}}

if(status == 0x90 && data == 0x01) {if(value > 0) set(GROSSBEAT_PAD_A_1); return;}
if(status == 0x90 && data == 0x02) {if(value > 0) set(GROSSBEAT_PAD_A_2); return;}
if(status == 0x90 && data == 0x03) {if(value > 0) set(GROSSBEAT_PAD_A_3); return;}
if(status == 0x90 && data == 0x04) {if(value > 0) set(GROSSBEAT_PAD_A_4); return;}
if(status == 0x90 && data == 0x05) {if(value > 0) set(GROSSBEAT_PAD_A_5); return;}
if(status == 0x90 && data == 0x06) {if(value > 0) set(GROSSBEAT_PAD_A_6); return;}
if(status == 0x90 && data == 0x07) {if(value > 0) set(GROSSBEAT_PAD_A_7); return;}
if(status == 0x90 && data == 0x08) {if(value > 0) set(GROSSBEAT_PAD_A_8); return;}
if(status == 0x91 && data == 0x01) {if(value > 0) set(GROSSBEAT_PAD_B_1); return;}
if(status == 0x91 && data == 0x02) {if(value > 0) set(GROSSBEAT_PAD_B_2); return;}
if(status == 0x91 && data == 0x03) {if(value > 0) set(GROSSBEAT_PAD_B_3); return;}
if(status == 0x91 && data == 0x04) {if(value > 0) set(GROSSBEAT_PAD_B_4); return;}
if(status == 0x91 && data == 0x05) {if(value > 0) set(GROSSBEAT_PAD_B_5); return;}
if(status == 0x91 && data == 0x06) {if(value > 0) set(GROSSBEAT_PAD_B_6); return;}
if(status == 0x91 && data == 0x07) {if(value > 0) set(GROSSBEAT_PAD_B_7); return;}
if(status == 0x91 && data == 0x08) {if(value > 0) set(GROSSBEAT_PAD_B_8); return;}

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) {set(KEY_TUNING_A, 0.375); return;}
if(status == 0x90 && data == 0x0F) {set(KEY_TUNING_A, 0.417); return;}
if(status == 0x90 && data == 0x10) {set(KEY_TUNING_A, 0.458); return;}
if(status == 0x90 && data == 0x11) {set(KEY_TUNING_A, 0.500); return;}
if(status == 0x90 && data == 0x12) {set(KEY_TUNING_A, 0.542); return;}
if(status == 0x90 && data == 0x13) {set(KEY_TUNING_A, 0.583); return;}
if(status == 0x90 && data == 0x14) {set(KEY_TUNING_A, 0.625); return;}
if(status == 0x91 && data == 0x0E) {set(KEY_TUNING_B, 0.375); return;}
if(status == 0x91 && data == 0x0F) {set(KEY_TUNING_B, 0.417); return;}
if(status == 0x91 && data == 0x10) {set(KEY_TUNING_B, 0.458); return;}
if(status == 0x91 && data == 0x11) {set(KEY_TUNING_B, 0.500); return;}
if(status == 0x91 && data == 0x12) {set(KEY_TUNING_B, 0.542); return;}
if(status == 0x91 && data == 0x13) {set(KEY_TUNING_B, 0.583); return;}
if(status == 0x91 && data == 0x14) {set(KEY_TUNING_B, 0.625); 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 == 0x17 && value > 0) {if(get(DVS_INTERNAL_MODE_A) == 1) {set(DVS_RELATIVE_MODE_A, 1); return;} else {set

(DVS_INTERNAL_MODE_A, 1); return;}}
if(status == 0x91 && data == 0x17 && value > 0) {if(get(DVS_INTERNAL_MODE_B) == 1) {set(DVS_RELATIVE_MODE_B, 1); return;} else {set

(DVS_INTERNAL_MODE_B, 1); return;}}

if(status == 0x90 && data == 0x18) {if(value > 0) {set(LEAP_A, 1); return;} else {set(LEAP_A, 0); return;}}
if(status == 0x91 && data == 0x18) {if(value > 0) {set(LEAP_B, 1); return;} else {set(LEAP_B, 0); 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 == 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 == 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 == 0x33) {if(value > 0) set(MASTER_A); return;}
if(status == 0x91 && data == 0x33) {if(value > 0) set(MASTER_B); return;}

if(status == 0x90 && data == 0x35) {if(value > 0) set(DOWNBEAT_A); return;}
if(status == 0x91 && data == 0x35) {if(value > 0) set(DOWNBEAT_B); return;}

if(status == 0x90 && data == 0x36) {if(value > 0) set(SYNC_LOCK_A, 1 - get(SYNC_LOCK_A)); return;}
if(status == 0x91 && data == 0x36) {if(value > 0) set(SYNC_LOCK_B, 1 - get(SYNC_LOCK_B)); return;}

if(status == 0x90 && data == 0x38) {if(value > 0 && get(SYNC_LOCK_A) > 0) {set(PHASE_SYNC_A); return;} else {set(SYNC_LOCK_A, 1); return;}}
if(status == 0x91 && data == 0x38) {if(value > 0 && get(SYNC_LOCK_B) > 0) {set(PHASE_SYNC_B); return;} else {set(SYNC_LOCK_B, 1); return;}}

if(status == 0x90 && data == 0x39) {if(value > 0) set(PITCH_RESET_A); return;}
if(status == 0x91 && data == 0x39) {if(value > 0) set(PITCH_RESET_B); return;}

if(status == 0x90 && data == 0x3B) {set(PITCH_BEND_NUDGE_MINUS_A, isDown); return;}
if(status == 0x90 && data == 0x3C) {set(PITCH_BEND_NUDGE_PLUS_A, isDown); return;}
if(status == 0x91 && data == 0x3B) {set(PITCH_BEND_NUDGE_MINUS_B, isDown); return;}
if(status == 0x91 && data == 0x3C) {set(PITCH_BEND_NUDGE_PLUS_B, isDown); 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 == 0x92 && data == 0x01) {if(value > 0) set(SNAP, 1 - get(SNAP)); return;}

}

// CC's
if((status & 0xF0) == 0xB0) {

if(status == 0xB0 && data == 0x09) {if(valueInc > 0) {set(FUNCTION_PANEL, get(FUNCTION_PANEL) + 1); return;} else {set(FUNCTION_PANEL, get

(FUNCTION_PANEL) - 1); return;}}

if(status == 0xB1 && data == 0x09) {if(valueInc > 0) {set(LAYOUT, get(LAYOUT) + 2); return;} else {set(LAYOUT, get(LAYOUT) - 2); return;}}

if(status == 0xB0 && data == 0x11) {if(valueInc > 0) {set(LOOP_MOVE_FORWARD_A); return;} else {set(LOOP_MOVE_BACKWARD_A); return;}}
if(status == 0xB1 && data == 0x11) {if(valueInc > 0) {set(LOOP_MOVE_FORWARD_B); return;} else {set(LOOP_MOVE_BACKWARD_B); return;}}

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 == 0x01) {set(LOOP_SIZE_A, value); return;}
if(status == 0xB1 && data == 0x01) {set(LOOP_SIZE_B, value); return;}

if(status == 0xB0 && data == 0x13) {set(EFFECT_PARAM_1_GROUP_A, value01); return;}
if(status == 0xB0 && data == 0x14) {set(EFFECT_PARAM_2_GROUP_A, value01); return;}
if(status == 0xB0 && data == 0x15) {set(EFFECT_PARAM_3_GROUP_A, value01); return;}
if(status == 0xB1 && data == 0x13) {set(EFFECT_PARAM_1_GROUP_B, value01); return;}
if(status == 0xB1 && data == 0x14) {set(EFFECT_PARAM_2_GROUP_B, value01); return;}
if(status == 0xB1 && data == 0x15) {set(EFFECT_PARAM_3_GROUP_B, value01); return;}

if(status == 0xB0 && data == 0x16) {set(FX_DRY_WET_GROUP_A, value01); return;}
if(status == 0xB1 && data == 0x16) {set(FX_DRY_WET_GROUP_B, value01); return;}

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;}

if(status == 0xB2 && data == 0x01) {set(PLAYLIST_SELECT, value); return;}

if(status == 0xB2 && data == 0x02) {set(FILTER_A, value01); return;}
if(status == 0xB2 && data == 0x03) {set(FILTER_B, value01); return;}

if(status == 0xB2 && data == 0x04) {set(MASTER_VOLUME, value01); return;}

if(status == 0xB2 && data == 0x05 && SeekA == 1) {set(SEEK_A, value01); return;}
if(status == 0xB2 && data == 0x05 && SeekB == 1) {set(SEEK_B, value01); 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(KEY_TUNING_A) == 0.375) ? sendMidiMessage(0x90, 0x0E, on) : sendMidiMessage(0x90, 0x0E, off);
(get(KEY_TUNING_A) == 0.417) ? sendMidiMessage(0x90, 0x0F, on) : sendMidiMessage(0x90, 0x0F, off);
(get(KEY_TUNING_A) == 0.458) ? sendMidiMessage(0x90, 0x10, on) : sendMidiMessage(0x90, 0x10, off);
(get(KEY_TUNING_A) == 0.500) ? sendMidiMessage(0x90, 0x11, on) : sendMidiMessage(0x90, 0x11, off);
(get(KEY_TUNING_A) == 0.542) ? sendMidiMessage(0x90, 0x12, on) : sendMidiMessage(0x90, 0x12, off);
(get(KEY_TUNING_A) == 0.583) ? sendMidiMessage(0x90, 0x13, on) : sendMidiMessage(0x90, 0x13, off);
(get(KEY_TUNING_A) == 0.625) ? sendMidiMessage(0x90, 0x14, on) : sendMidiMessage(0x90, 0x14, off);
(get(KEY_TUNING_B) == 0.375) ? sendMidiMessage(0x91, 0x0E, on) : sendMidiMessage(0x91, 0x0E, off);
(get(KEY_TUNING_B) == 0.417) ? sendMidiMessage(0x91, 0x0F, on) : sendMidiMessage(0x91, 0x0F, off);
(get(KEY_TUNING_B) == 0.458) ? sendMidiMessage(0x91, 0x10, on) : sendMidiMessage(0x91, 0x10, off);
(get(KEY_TUNING_B) == 0.500) ? sendMidiMessage(0x91, 0x11, on) : sendMidiMessage(0x91, 0x11, off);
(get(KEY_TUNING_B) == 0.542) ? sendMidiMessage(0x91, 0x12, on) : sendMidiMessage(0x91, 0x12, off);
(get(KEY_TUNING_B) == 0.583) ? sendMidiMessage(0x91, 0x13, on) : sendMidiMessage(0x91, 0x13, off);
(get(KEY_TUNING_B) == 0.625) ? 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(DVS_INTERNAL_MODE_A) > 0) ? sendMidiMessage(0x90, 0x17, off) : sendMidiMessage(0x90, 0x17, on);
(get(DVS_INTERNAL_MODE_B) > 0) ? sendMidiMessage(0x91, 0x17, off) : sendMidiMessage(0x91, 0x17, on);

(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(MASTER_A) > 0) ? sendMidiMessage(0x90, 0x33, on) : sendMidiMessage(0x90, 0x33, off);
(get(MASTER_B) > 0) ? sendMidiMessage(0x91, 0x33, on) : sendMidiMessage(0x91, 0x33, off);

(get(SYNC_A) > 0) ? sendMidiMessage(0x90, 0x36, on) : sendMidiMessage(0x90, 0x36, off);
(get(SYNC_B) > 0) ? sendMidiMessage(0x91, 0x36, on) : sendMidiMessage(0x91, 0x36, off);

((get(PLAY_A) > 0) && (get(PLAY_B) > 0) && (get(MASTER_B) > 0)) ? sendMidiMessage(0x90, 0x38, on) : sendMidiMessage(0x90, 0x38, off);
((get(PLAY_A) > 0) && (get(PLAY_B) > 0) && (get(MASTER_A) > 0)) ? sendMidiMessage(0x91, 0x38, on) : sendMidiMessage(0x91, 0x38, off);

(get(PITCH_A) == 0.5) ? sendMidiMessage(0x90, 0x39, off) : sendMidiMessage(0x90, 0x39, on);

}

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
0

#22 Guest_Frank_*

  • Group: Guests

Posted 27 May 2016 - 01:32 AM

=============================================================================
SYNQ-PCM.1
MIDI script created: 27 May 2016
=============================================================================

(This script should work for American Audio DP 2 and Omnitronic MMC 1, too.)


SAMPLER buttons (4x MODE & SAMPLE 1 ... 4) trigger GROSSBEAT 1 ... 8

LEDs 4x MODE show if 1st, 2nd, 3rd or 4th BEAT is playing on THE OTHER DECK
LEDs SAMPLE 1 ... 4 show if 1st, 2nd, 3rd or 4th BEAT is playing on THIS DECK

HOT CUE 1 ... 4 SET HOT CUE 1 ... 4
+ SCRATCH DELETE HOT CUE 1 ... 4
LEDs HOT CUE 1 ... 4 show which HOT CUEs (1 ... 4) are SET

<- / +> INCREASE / DECREASE KEY -/+ 1 semitone
LEDS inbetween show KEY (-3/-2/-1/ 0 /+1/+2/+3 semitones)

R.CUE LOOP IN starts & stops LOOP
LED shows if LOOP is playing

OUT EXIT activates & deactivates TIMECODE VINYL CONTROL, RELATIVE MODE
LED shows if TIMECODE VINYL CONTROL, RELATIVE MODE, is activated

RELOOP STUTTER plays LEAP as long as it's pressed
(use in combination with the 3rd encoder (SELECT) that changes leap size)

CUE CUE STUTTER
LED as usual

PLAY/PAUSE PLAY/PAUSE
LED in PAUSE MODE: FLASHES TO THE BEAT OF THE OTHER DECK
in PLAY MODE: shows that the deck is PLAYing

SHIFT "Shift button" for crossfader (to SEEK within the track on the deck on which SHIFT is pressed)

JOG WHEEL JOG WHEEL
in PAUSE MODE: JOG SCRATCH is activated
in PLAY MODE: SLOWER / FASTER

SCRATCH "Shift button" for HOT CUE 1 ... 4 (to delete HOT CUEs)

PFL SETS DOWNBEAT ("1" in the BEAT GRID)

EFF MASTER
JOG SEEK SYNC LOCK
LEDs EFF / JOG SEEK show MASTER / SYNC state

X-PARAMETER PUSH EFFECT 1 on / off
Y-PARAMETER PUSH 2
EFFECT PUSH 3

X-PARAMETER TWIST change LOOP (/ LEAP) SIZE

Y-PARAMETER TWIST deck A change FUNCTION PANEL
deck B DISPLAY MODE

EFFECT TWIST - / + 1 BEAT (to match 1st, 2nd, 3rd and 4th BEAT with the other deck)
(watch sampler buttons (4x MODE & SAMPLE 1 ... 4) to check: are the beats 1/2/3/4 on both decks matched?)

LEDs 1 ... 8 show TIME REMAINING (track)

SYNC PHASE SYNC
(watch sampler buttons (4x MODE & SAMPLE 1 ... 4) to check: are the beats on both decks in sync?)
LED shows if this button can be used for this deck now

PITCH LOCK PITCH = 0%
LED shows if PITCH is exactly 0%

PITCH ON ACTIVATES / DEACTIVATES PITCH
LED shows if PITCH is ACTIVATED

PITCH BEND - / + PITCH BEND - / +

CROSSFADER (+ SHIFT !) SEEK within the track on the deck on which SHIFT is pressed

LINE FADER EFFECTS VOLUME

ROTARY FADERS HIGH controls EFFECT 1
MID 2
LOW 3

TRACK SELECT TRACK SELECT

LOAD TO DECK LOAD TO DECK

CUE MIX FILTER deck A
CUE VOL B

MASTER MASTER VOLUME
0

#23 Guest_EddyC1_*

  • Group: Guests

Posted 27 May 2016 - 07:14 AM

Thanks for the custom script for PCM-1. Can someone help me with making a script file of this so i can put it in "/Library/Application Support/Stanton/Deckadance2" for Mac and use it.

Thx in advance

Eddy
0

#24 Guest_frankschubert75_*

  • Group: Guests

Posted 27 May 2016 - 08:53 AM

Hi Eddy! No problem. Just copy and paste the code into the text editor and save the file as SYNQ-PCM.1.c (c instead of txt) and put this file inside the user script folder within the midi script folder of deckadance. In this folder should also be the dd_commands.h file. Please note that the code is for deckadance version 2.6, where you can change the display mode. Perhaps you will want to change the mapping, especially if you want to use the controller without external mixer. If you need help, i could create a "for internal mixer" version with crossfader, line faders, eqs... Just tell me which functions should be implemented. Have fun with the script. Kind regards, Frank
0

#25 Guest_frankschubert75_*

  • Group: Guests

Posted 27 May 2016 - 08:53 AM

Hi Eddy! No problem. Just copy and paste the code into the text editor and save the file as SYNQ-PCM.1.c (c instead of txt) and put this file inside the user script folder within the midi script folder of deckadance. In this folder should also be the dd_commands.h file. Please note that the code is for deckadance version 2.6, where you can change the display mode. Perhaps you will want to change the mapping, especially if you want to use the controller without external mixer. If you need help, i could create a "for internal mixer" version with crossfader, line faders, eqs... Just tell me which functions should be implemented. Have fun with the script. Kind regards, Frank
0

#26 Guest_EddyC1_*

  • Group: Guests

Posted 27 May 2016 - 09:26 AM

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

#27 Guest_Frank_*

  • Group: Guests

Posted 27 May 2016 - 07:26 PM

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
0

#28 Guest_Frank_*

  • Group: Guests

Posted 29 May 2016 - 07:27 AM

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".
0

#29 Guest_sonny_*

  • Group: Guests

Posted 02 June 2016 - 08:05 AM

367
0

#30 Guest_pkane15_*

  • Group: Guests

Posted 25 July 2016 - 03:12 PM

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

#31 User is offline   Luis Serrano 

  • Moderator
  • Group: Gibson Pro Audio
  • Posts: 454
  • Joined: 30-April 15

Posted 26 July 2016 - 04:39 PM

View Postpkane15, on 25 July 2016 - 03:12 PM, said:

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

Added support for the VCM-100, check the first post of this thread.
0

#32 Guest_Martin Thomsen_*

  • Group: Guests

Posted 11 August 2016 - 04:59 PM

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 ...
0

#33 Guest_Hélio_*

  • Group: Guests

Posted 07 September 2016 - 04:19 PM

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
0

#34 User is offline   Luis Serrano 

  • Moderator
  • Group: Gibson Pro Audio
  • Posts: 454
  • Joined: 30-April 15

Posted 09 September 2016 - 10:11 AM

View PostHélio, on 07 September 2016 - 04:19 PM, said:

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:Attached File  CMD4A_MIDI_settings.png (53.26K)
Number of downloads: 35
0

#35 Guest_Martin Thomsen_*

  • Group: Guests

Posted 09 September 2016 - 01:39 PM

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 !
0

#36 User is offline   Luis Serrano 

  • Moderator
  • Group: Gibson Pro Audio
  • Posts: 454
  • Joined: 30-April 15

Posted 20 September 2016 - 02:33 AM

View PostMartin Thomsen, on 09 September 2016 - 01:39 PM, said:

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.
0

#37 User is offline   DSOUND 

  • Member
  • Group: Members
  • Posts: 11
  • Joined: 16-September 16

Posted 27 September 2016 - 01:38 PM

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
0

#38 User is offline   DSOUND 

  • Member
  • Group: Members
  • Posts: 11
  • Joined: 16-September 16

Posted 28 September 2016 - 12:35 AM

?
0

#39 Guest_Ban_*

  • Group: Guests

Posted 10 October 2016 - 06:15 PM

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
0

#40 User is offline   Luis Serrano 

  • Moderator
  • Group: Gibson Pro Audio
  • Posts: 454
  • Joined: 30-April 15

Posted 11 October 2016 - 12:12 PM

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?
0

Share this topic:


  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users