Ingreso rápido:  

Forum: VirtualDJ Technical Support

Tema: Resolution ot various issues with Pioneer CDJ-850 and a few more enhancements
Hi,
I wanted to add a third deck to my XDJ-XZ setup. Pineer CDJ-850 is a cheap option that works well with Virtual DJ, the only missing feature is Pioneer Pro Link that would allow automated setting of beats in the XDJ-XZ mixer when in USB mode. Since the USB mode is a backup for me, I decided to go for it.
After connecting it to Virtual DJ I encountered several problems. Searching on this forum did not bring any results, but I managed to fix these issues myself. See the below mapping for the final result. I updated the firmware to the latest one from the Pioneer DJ website (v1.13).

Now to the issues:
* Displayed time (both the play time and remaining) was jumping up and down. The root cause was that Virtual DJ is sending milliseconds in the default config but the player expects frames (1/44100 of a second)
<map value="DIGIT_TIME_MILISEC" action="get_time_ms 'elapsed' 44100" />
<map value="DIGIT_TOTALTIME_MILISEC" action="get_time_ms 'total' 'absolute' 44100" />


* Loop buttons on the top left (1, 2, 4, 8 and 1/16, 1/8, 1/4, 1/2) were behaving very weird. I remapped them to the standard behaviour of CDJ in USB mode + additionally used the Beat Select as a Shift button for additional features.
<map value="LOOP_8" action="shift ? loop 0.5 : loop 8" />
<map value="LOOP_4" action="shift ? loop 0.25 : loop 4" />
<map value="LOOP_2" action="shift ? loop 0.125 : loop 2" />
<map value="LOOP_1" action="shift ? loop 0.0625 : loop 1" />
<map value="LED_LOOP8" action="loop 8 ? on : loop 0.5 ? blink : off : off" />
<map value="LED_LOOP4" action="loop 4 ? on : loop 0.25 ? blink : off : off" />
<map value="LED_LOOP2" action="loop 2 ? on : loop 0.125 ? blink : off : off" />
<map value="LED_LOOP1" action="loop 1 ? on : loop 0.0625 ? blink : off : off" />
<map value="BEAT_SEL" action="shift" />


* LED_JOGTOUCH (the ring in the display inside the jog wheel that indicates paused deck by touching the jog wheel) was lit up only when the track was stopped by the jog touch, but not when it was stopped by Pausing the track. I fixed it.
<map value="LED_JOGTOUCH" action="play ? speedwheel_touch ? on : off : on" />


Few additional enhancements:
* I added blinking vinyl mode LED (which means that also the centre part of the inner jog display with the text vinyl also blinks) when Slip mode is engaged.
<map value="LED_JOGMODE" action="slip_mode ? vinyl_mode ? blink 1bt 75% : blink 1bt 25% : vinyl_mode ? on : off" />


* I remapped the Disc Eject to Beat Sync (because of the location close to the "usual" location of the beat sync on more modern CDJs
<map value="EJECT" action="sync" />

Note that when you press the button, CDJ also ejects a CD, which might be possibly harmful to the CD mechanics long term. Since I do not plan to ever use it for CDs, I am fine with using that button.

* I utilised the "new" Shift button for a few things I am used to from my XDJ-XZ controller, namely:
-- Shift + rotation of jog wheel: 10x faster seek
<map value="SHIFT_JOG_WHEEL" action="param_multiply 1000% & speedwheel" />


-- Shift + Fwd/Rew: jump by 8 beats
<map value="SHIFT_SEARCH+" action="seek +8" />
<map value="SHIFT_SEARCH-" action="seek -8" />


-- Shift + Previous Track: jump at the beginning of the track
<map value="SHIFT_TRACK-" action="play ? goto_start & play: goto_start" />


-- Shift + Next Track: jump at the next automix track
<map value="SHIFT_TRACK+" action="automix_skip" />


-- Shift + Eject: Toggle masterdeck; another Shift + Eject when the deck is already master: toggle pitch_lock (lock pitch on all decks so adjusting tempo on one deck adjusts the tempo on all decks simultaneously). Holding gives back masterdeck decisions to Virtual DJ.
<map value="SHIFT_EJECT" action="holding 500ms ? masterdeck_auto : masterdeck ? pitch_lock on ? pitch_lock off : pitch_lock on : masterdeck" />


-- Shift + Master tempo: pitch_reset (very slow return of the track's speed to its original speed + blinking LED in two modes based on Master tempo selection)
<map value="SHIFT_MASTER_TEMPO" action="pitch_reset 0.1%" />
<map value="LED_MASTER_TEMPO" action="pitch_reset ? master_tempo ? blink 1bt 85% : blink 1bt 15% : master_tempo ? on : off" />


* Although the 4 buttons at the top (Browse, Tag list, Info and Menu) are not mappable, their LEDs are mappable. I utilised two of them for Sync and masterdeck/pitch lock indication:
<map value="LED_INFO" action="is_sync" />
<map value="LED_MENU" action="masterdeck ? pitch_lock ? blink : on : off" />


I hope it helps.
 

Mensajes Wed 23 Mar 22 @ 10:07 pm
Bowie Groove wrote :
Hi,
* LED_JOGTOUCH (the ring in the display inside the jog wheel that indicates paused deck by touching the jog wheel) was lit up only when the track was stopped by the jog touch, but not when it was stopped by Pausing the track. I fixed it.
<map value="LED_JOGTOUCH" action="play ? speedwheel_touch ? on : off : on" />



I decided to use the same ring also for warning about ending track (and also about track reload):
<map value="LED_JOGTOUCH" action="load_pulse ? play ? speedwheel_touch ? on : songpos_remain 10000ms ? blink 250ms : songpos_remain 20000ms ? blink 500ms :songpos_remain 30000ms ? blink : off : on : on" />





 

Mensajes Thu 24 Mar 22 @ 10:02 pm
Today I mapped the setting of startup speed to shift, as I did not like it to be linked with break speed. I expect I will never touch the startup speed, if I do, then of course I need to find the likely ghosted position of the rotary controller before being able to adjust the breakspeed again.
<map value="VINYL_TOUCH" action="brakespeed" />
<map value="SHIFT_VINYL_TOUCH" action="startupspeed" />
 

Mensajes Mon 28 Mar 22 @ 9:12 pm
I also added two functions that I missed and realised only when spending some time behind the decks: Instant doubles (deck cloning) and Unload:
<map value="ENTER" action="doubleclick ? clone_from_deck : browser_enter" />
<map value="SHIFT_ENTER" action="unload" />
 

Mensajes Sun 03 Apr 22 @ 6:13 pm
Bowie Groove wrote :

-- Shift + Fwd/Rew: jump by 8 beats
<map value="SHIFT_SEARCH+" action="seek +8" />
<map value="SHIFT_SEARCH-" action="seek -8" />



I discovered that the standard mapping of XDJ-XZ and DDJ-800 for this is 16 beats, not 8 beats, so I unified the behaviour also on CDJ-850:
<map value="SHIFT_SEARCH+" action="seek +16" />
<map value="SHIFT_SEARCH-" action="seek -16" />

 

Mensajes Sun 03 Apr 22 @ 6:17 pm