Gibson Brands Forums: Pioneer DDJ-SX - Gibson Brands Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Pioneer DDJ-SX

#1 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 09 June 2018 - 05:38 PM

hey guys. I accidentally came across the software deckadance. I was looking for a dj software with which I can work in ableton. I have serato and Traktor and both can not play what DD can, namely directly in my daw. I'm thrilled, but still missing some futures like:
grid midi mapping and several downbeatmarkers.
- I find midi scripting great, but I do not understand everything yet. I have the Pioneer DDJ-SX and have managed to map the jogs with led feedbeck synonymous everything else like loops play etc. with led feedbeck. What I can not do is the seek function. I have looked at several scripts and must say that it is not so easy to find the right one. There are many ways to map it. I miss tutorials for that. I hope you can help me to program it?
Is there a way to import cues from serato or tractor?
0

#2 User is offline   Luis Serrano 

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

Posted 11 June 2018 - 10:46 AM

Hi,

The most used command for seeking is the same than you use for the jog ( JOG_A or JOG_B ) but with the difference that the value for the last parameter of the function (scratch sensitivity) is bigger than for the scratch function. I usually use the "shift" function in the different controllers to use the jog for seeking. Below you can find an example but it's for another controller, so that, the values will be different in the case of the DDJ-SX

if(shift > 0) { // seek
  set(JOG_A, value -64.0, -0.003, 0.8);
}
else { // scratch 
  set(JOG_A, value -64.0, -0.003, 0.1);
}


There is another command for seeking called "SEEK_A, SEEK_B..". It takes only one parameter with a float value from 0 to 1. If you pass a zero value then you go to the beginning position of the song, a value of 0.5 will set the position at the middle and a value of 1.0 to the end. Of course, you can use all the values among 0 and 1 (0.1, 0.2, 0.335, ...etc). This command is useful for controllers with a touch strip for seeking purposes.

McBeat said:

Is there a way to import cues from serato or tractor?


No sorry, there isn't any importer yet.
0

#3 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 06 July 2018 - 10:31 AM

hey.
can someone tell me how I set the parameters of "loop move size".
I would like to automatically set the parameters to 32 when starting DD.
have the jog and button leds driven and I'm almost done with the mapping. as soon as everything is ready I will release it for download.
0

#4 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 08 July 2018 - 01:47 PM

 McBeat, on 06 July 2018 - 10:31 AM, said:

hey.
can someone tell me how I set the parameters of "loop move size".
I would like to automatically set the parameters to 32 when starting DD.
have the jog and button leds driven and I'm almost done with the mapping. as soon as everything is ready I will release it for download.

0

#5 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 08 July 2018 - 01:55 PM

hey guys. is not there anyone who can tell me how i can to
1. set the „loop_move„ parameter in the script?
Exempel: button set 32 ​​beats.
i can only make up or down and not direkt set velue 32.

2. I missing the midi message for “grid move“
0

#6 User is offline   Luis Serrano 

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

Posted 08 July 2018 - 04:05 PM

There isn't any command for setting the loop move size directly (...I will add it to the TODO list). If you want to set it to 32 beats at startup then you could write this into the script:

void OnStart()
{
    for(int i=0; i < 10; i++) {
        set(LOOP_MOVE_SIZE_A, 127);
        set(LOOP_MOVE_SIZE_B, 127);
        set(LOOP_MOVE_SIZE_C, 127);
        set(LOOP_MOVE_SIZE_D, 127);
    }
}

0

#7 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 13 July 2018 - 02:40 AM

Hey Luis, thank you for your answer. Can you tell me how I can make automatic jumping. that means: I want to auto repeat loop_move, i hold the button and it keeps jumping forward. I let the button go it stops. second button to the rear. in the traktor, the function is called auto_reapet. Thanks
0

#8 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 19 July 2018 - 05:07 AM

I tried everything. A (while loop, for).
The command (is down). But do not get the autorepeat. He jump non stop. Can you help me please? What i do wrong?
if(status == 0x90 && data == 0x4D)
while (value != 00 && value == 7f){set(LOOP_MOVE_SIZE_A, isDown); return;}
0

#9 User is offline   Luis Serrano 

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

Posted 23 July 2018 - 10:24 AM

The only function that works like a timer (...auto repeat) is: "void OnTimerCallback()". You will need to use it for your purpose.
0

#10 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 31 July 2018 - 10:26 AM

hej Louis,

thanks for your answer.
i have a problem with sensitivity for my loop_move.
i want this not so fast.
I would like that the loop is not so sensitive. Have already tried everything. I just can not get it to set the platter so that reacts differently. The jumps immediately to the end or beginning when I touch the Platter. I want to keep the 32 beat setting. With the jog command you can set it. how can I solve it?
I would be very grateful for your help

if(status == 0xB0 && data == 0x22) {if(value01 > 0x40) {set(LOOP_MOVE_FORWARD_C); return;} else {set(LOOP_MOVE_BACKWARD_C); return;}}
0

#11 User is offline   Luis Serrano 

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

Posted 31 July 2018 - 12:38 PM

The problem with some jogs is that there are a lot of pulses per revolution. You need to reduce this number. One solution is to create a global variable (outside the functions) and use it like a counter. Only when the counter excess a fixed quantity then do the loop move, otherwise ignore it.

// global variable
int jogAPulses = 0;

// inside your function
{
    if(status == 0xB0 && data == 0x22) {
        jogAPulses++;
        if(jogAPulses > 100) {
            if(value01 > 0x40) {
                set(LOOP_MOVE_FORWARD_C);
            } else {
               set(LOOP_MOVE_BACKWARD_C);
            }
            jogAPulses = 0;
        }
    }
}

0

#12 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 02 August 2018 - 04:49 PM

hey guys,

I write now very intensively to the scripts.
how can I insert the dd_commands.h file into Xcode, so that I can debug it?
It is very awkward to do that with DD. The trick with cmd_s is so far.
sometimes I forget a sign;,)}. the program does not show that to me, only when I start DD. a separate compiler in the DD would be really great.!!!
0

#13 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 05 August 2018 - 11:05 AM

Hej Luis. I must you again nerves;) I have still 4 problems, if still function then is my CONTROLLER perfectly.
I ask you from there again for your assistance. I think that the other users also thereby fight and it for all Pioneer owner to be helpful could.  
I the script from Jogvison hercules viewed myself and wanted it to copy, because that the same jogs and level meter has however I can not all instructions assign. The description is bad
OK
1. problem of Jogwheel - if I jogwheel leave loose cancel it abruptly. It is as with Vinyl itself with restraint
Attached File  Bildschirmfoto 2018-08-05 um 18.05.02.png (156.54K)
Number of downloads: 2

i have make this:
// NN’s
if(status == 0x90 && data == 0x67) { set(JOG_SCRATCH_ON_A, isDown); return;} // touch on
// CC's
if((status & 0xF0) == 0xB0) { if(status == 0xB0 && data == 0x22) { set(JOG_A, value - 64.0, -0.005, 0.005);} // scratch
if(status == 0xB0 && data == 0x21) { set(JOG_A, value - 64.0, -0.00008,0.00008);} // pitch band

2nd problem of LEDs for JOG - I have to shine gotten and to turn itself even if the PLAY_A however not in the speed of the song. Thus always equal
Attached File  Pasted Graphic.tiff (93.77K)
Number of downloads: 1

i have make this:

Void OnStart()
{
// stack
int off = 0x00;
int on = 0x7F;

sendMidiMessage(0x9B, 0x00, on);
sendMidiMessage(0x9B, 0x01, on);
}

void OnTimerCallback()
{
// this callback is called continunuosly by DD every 50 ms
// stack
int off = 0x00;
int on = 0x7F;

(get(PLAY_PAUSE_A) > 0) ? sendMidiMessage(0x90, 0x0B, on) : sendMidiMessage(0x90, 0x0B, off);// Play LEDs
(get(PLAY_PAUSE_A) > 0) ? sendMidiMessage(0x9B, 0x0C, on) : sendMidiMessage(0x9B, 0x0C, off); // Jog play LED
}

3rd problem of level meters - the LEDs shine however too inaccurately and weakly. Those have only one note but 10 LEDs.
I have it with bomes translator found out starting from when to go on. 

12 Channel Level Indicator 1/2/3/4 CC 2 - Bn 02 hh Use when INPUT Selecter is "PC"


i have make this:

(get(LEVEL_METER_A) > 0.125) ? sendMidiMessage(0xB0, 0x02, 0x31) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.275) ? sendMidiMessage(0xB0, 0x02, 0x45) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.375) ? sendMidiMessage(0xB0, 0x02, 0x49) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.455) ? sendMidiMessage(0xB0, 0x02, 0x59) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.475) ? sendMidiMessage(0xB0, 0x02, 0x63) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.575) ? sendMidiMessage(0xB0, 0x02, 0x68) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.675) ? sendMidiMessage(0xB0, 0x02, 0x6F) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.775) ? sendMidiMessage(0xB0, 0x02, 0x72) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.875) ? sendMidiMessage(0xB0, 0x02, 0x77) : sendMidiMessage(0xB0, 0x02, off);
(get(LEVEL_METER_A) > 0.975) ? sendMidiMessage(0xB0, 0x02, 0x7F) : sendMidiMessage(0xB0, 0x02, off);



Help me please theraby finally a reasonable mapping for pioneer comes

the last for users!

the trick for jump move sensibility work very well but only with value and not value01;)

#include "dd_commands.h"

int jogAPulses = 0;

// NNs
if(status == 0xB0 && data == 0x22) { jogAPulses++; if(jogAPulses > 20) { if(value > 0x40) {
set(LOOP_MOVE_FORWARD_A);} else { set(LOOP_MOVE_BACKWARD_A);}
jogAPulses = 0;}}

Help me please thereby finally a reasonable mapping for Pioneer comes
0

#14 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 05 August 2018 - 11:41 AM

hej, her ist the Hardware Diagram for DDJ-SX
https://www.dropbox....ages_E.pdf?dl=0
0

#15 User is offline   McBeat 

  • Member
  • Group: All Access
  • Posts: 17
  • Joined: 06-June 18

Posted 07 August 2018 - 03:54 PM

Hej Luis,

Help me please with my ddjsx. You can see my problems on my post. I have insert the ddjsx midi haraware diagram for you.
Ddj sx have 3 notes for jog.90 54 7f is scratch on. If i touch 90 54 7f is on and jog b0 22 and 3f or 41 is on. If i realese 90 54 00 off, is only jog b0 21 and 3f or 41 on. Option with shift are extra.
DECKADANCE is the best Software but i non understand all midi massages or c++.
Sorry for my english, i come from poland ;).
Best regards
McBeat
Przemek
0

Share this topic:


Page 1 of 1
  • 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