Quick Sign In:  

Forum: Wishes and new features

Topic: CUE and PLAY mechanism as standard CDJs

Dieses Thema ist veraltet und kann veraltete oder falsche Informationen enthalten.

VoltronPRO InfinityMember since 2004
Just try some pioneer cdj800 and u know what i mean...
 

geposted Sat 01 Sep 07 @ 11:34 am
gang5taHome userMember since 2007
for those that dont have it what do u mean.
 

geposted Tue 18 Sep 07 @ 7:13 pm
VoltronPRO InfinityMember since 2004
Ok. I have spent one morning for study with my humil experience what everybody need in a controller (for audio only) and which are the functionality that should be changed for permit people to don't stay so focused in the screen instead of feel the music.
I have recognized all the necessary functions that VDJ developers need for build them. It will change a little the traditional way to spin with the program, but with a good controller u will have lot of improvement:
1) Every traditional dj will find the software easier because they will be able to use an external controller like a cdj
2) All virtualdj users will be more focused in what they are listenin instead of what they are watching. As consequency they will "FEEL" more the music
3) You won't need the wavegraph because u can set the cue directly and u will save more space in ur screen for the music browser.

With this functionality you will be able to set the exact cue point "listenin" ur music instead of catch grafically the exact point.
How cdj works? Simply when u press the button play for pause a song, instead of totally put it in pause, a 1/4 Loop is applied from the current song position. At this point you will listen a very short loop that u can shift on the left or on the right moving the jogwheel for adjust the right cue point. When u find the exact point, u press the cue button and what u chosen will be stored as cue point.

The algorithm in pseudo-pseudo code for PLAY, CUE buttons and JOGWHEEL will be that (i have also considered jogwheels with pressure-sensor):

PLAY (Actual status > Event)

Stop > Normal play

Playing > if scratch enable > pause song
else > loop(about 1/4)

Pause/loop > if scratch enable > play
else > exit from loop and play

CUE (Actual status > Event)

Stop > play momentary from cue position

Playing > Go to cue and stop

Pause/loop > if scratch enable > Cue=Actual Position
else Cue = Start position of actual loop


JOG (Actual status > Event)

Playing > if scratch enable > if jogpressed > pause song
else use joy for scratch
else > use joy for nudge

Stop > change position

Pause/loop > if scratch enable > move position
else > shiftloop - or +

I have tried to create some macro but with no results.
For the Controller features i write now another post

DJKad

 

geposted Sat 06 Oct 07 @ 2:17 pm
ive been trying to find a way to do this as well. did you come up with any solutions?
 

geposted Thu 21 Apr 11 @ 12:09 pm
ChacklPRO InfinityMember since 2007
well, i was working on that some time ago to get a solution in VDJ script. But i've thrown it away besause it was only buggy and not verry usefull in Virtual DJ. maybe we could develope it on together. I've to see if i can find the files where the scripts are saved.

If anyone will develope that with me we'll find a solution.
 

geposted Wed 04 May 11 @ 4:39 am
I think this is what you want, you need to activate stutter mode with a shift button kind of like vinyl mode on a controller, it is untested so let me know if there are any problems

shift button to set it to pioneer stutter
toggle 'pio_stutter'

play button
toggle 'pio_play' & var_equal 'pio_play' 1 ? play : var equal 'piocue' 1 ? loop 0.25 : pause

jog wheel
var equal 'pio_stutter' 1 ? var_greater 0% ? loop_move +0.05 : loop_move -0.05 : var_greater 0% ? jogwheel +0.05 : jogwheel -0.05

you may need to adjust the values in bold depending on your controller or the sensitivity you require

EDIT--------------

Actually it is kind of buggy, I want to be able when in stutter mode to go back to the start of the loop and loop out at the same time which may be confusing, this is what it should look like though...

play/pause button
toggle 'pio_play' & var_equal 'pio_play' 1 ? play : var equal 'piocue' 1 ? toggle 'stuttering' & var_equal 'stuttering' 1 ? play ? loop 0.25 : play & loop 0.25 : reloop & loop_out : pause

One other thing that may hold this back is whether when you press toggle it sets as 1 or 0 first, I am counting on it setting as 1, but i'll try it when I get home, but just looking at it, I think it would be easier and less buggy to initiate the stutter loop with a separate pause button.
 

geposted Wed 04 May 11 @ 5:03 am
play/pause button
toggle 'pio_play' & var_equal 'pio_play' 1 ? deck 1 play : var equal 'pio_stutter' 1 ? toggle 'stuttering' & var_equal 'stuttering' 1 ? deck 1 play ? deck 1 loop 0.25 : deck 1 play & loop 0.25 : down ? deck 1 reloop : deck 1 loop_out : deck 1 pause

that should fix the reloop and loop out, but you would need to press and release quickly before it reached the end of the loop unless you extended the loop...

toggle 'pio_play' & var_equal 'pio_play' 1 ? deck 1 play : var equal 'pio_stutter' 1 ? toggle 'stuttering' & var_equal 'stuttering' 1 ? deck 1 play ? deck 1 loop 0.25 : deck 1 play & loop 0.25 : down ? deck 1 reloop & deck 1 loop 1 : deck 1 loop_out : deck 1 pause

It might also be valuable to initiate smart loop for this so the stutter stays in time with the beat

toggle 'pio_play' & var_equal 'pio_play' 1 ? deck 1 play : var equal 'pio_stutter' 1 ? toggle 'stuttering' & smart_loop active on & var_equal 'stuttering' 1 ? deck 1 play ? deck 1 loop 0.25 : deck 1 play & loop 0.25 : down ? deck 1 reloop & deck 1 loop 1 : deck 1 loop_out & smart_loop active off : deck 1 pause

this will remember if you had smart loop on to start with and put it back to your settings

toggle 'pio_play' & var_equal 'pio_play' 1 ? deck 1 play : var equal 'pio_stutter' 1 ? toggle 'stuttering' & smart_loop active on ? set 'smart_loop_on' : smart_loop active on & var_equal 'stuttering' 1 ? deck 1 play ? deck 1 loop 0.25 : deck 1 play & loop 0.25 : down ? deck 1 reloop & deck 1 loop 1 : deck 1 loop_out & var_equal 'smart_loop_on' ? nothing : smart_loop active off : deck 1 pause

not long now and i'll be able to test it
 

geposted Wed 04 May 11 @ 6:05 am
well this is what works for now, it will stutter the cue and move the loop with the jogs when the shift is activated, and have normal functions otherwise

shift button to set it to pioneer stutter
var_equal 'pio_stutter' 1 ? set 'pio_stutter' 2 : var_equal 'pio_stutter' 2 ? set 'pio_stutter' 1 : set 'pio_stutter' 2

play/pause button
var_equal 'pio_stutter' 2 ? toggle 'stuttering' & var_equal 'stuttering' 1 ? deck 1 play ? deck 1 loop 0.25 : deck 1 play & loop 0.25 : down ? deck 1 reloop & deck 1 loop 1 : deck 1 loop_out : deck 1 play_pause

jog wheel
var equal 'pio_stutter' 1 ? var_greater 0% ? loop_move +0.05 : loop_move -0.05 : var_greater 0% ? jogwheel +0.05 : jogwheel -0.05

cue button
var_equal 'pio_stutter' 2 ? down ? deck 1 reloop & deck 1 pause : deck 1 loop_out & set 'pio_stutter' 1 : deck 1 cue_play

this would pause the track at the start of the loop in point ready to hit play in the right spot, the only catch is that this disables the stutter shift, so you would need to re enable it every time you wanted the stutter cue with the shift button.
***There is a bug with the cue button for some reason, if you press it then re enable the stutter shift and hit play the first time it will go to the point that the last loop started like a cue point, which is very weird***

also I was just thinking it is probably better to specify the stutter loop time in milliseconds as opposed to fractions of the beat as the stutter would be a lot shorter for something like dnb compared to hip hop, maybe around 200ms would work best



 

geposted Wed 04 May 11 @ 9:02 am
ChacklPRO InfinityMember since 2007
some time ago i used that:
It should simulate a Pioneer CDJ 800

Play Button:
var 'play' ? set 'play' 0 & vinyl_mode ? pause : goto -1 & loop 1 : var 'cue' ? play & set 'play' 1 & set 'cue' 0 : set 'play' 1 & vinyl_mode ? play : loop_exit & play

CUE Button:
down ? var 'play' ? goto_cue 1 & pause & set 'play' 0 & set 'cue' 1 : var 'cue' ? goto_cue 1 & play & set 'play' 0 & set 'cue' 1 & set 'cueplay' 1 : set 'play' 0 & set 'cue' 1 & vinyl_mode ? delete_cue 1 & set_cue 1 & pause : pause & reloop & loop_exit & goto +1 & delete_cue 1 & set_cue 1 : var 'play' ? nothing : var 'cue' ? pause & goto_cue 1 & set 'cueplay' 0 : goto_cue 1

Vinylmode Button:
var 'play' ? vinyl_mode : vinyl_mode ? vinyl_mode & goto -1 & loop 1 & play : vinyl_mode & pause & reloop & loop_exit & goto +1

Touchwheel:
var 'wheel' ? touchwheel : var 'play' ? touchwheel : var 'cueplay' ? touchweel : var 'cue' ? vinyl_mode ? touchwheel : loop_move

SEEK+ Button:
seek +1 & toggle 'wheel' while_pressed & wheel_mode 'search' while_pressed

SEEK- Button:
seek -1 & toggle 'wheel' while_pressed & wheel_mode 'search' while_pressed

Track+ Button:
browser_scroll +1 & toggle 'wheel' while_pressed & wheel_mode 'browser' while_pressed

Track- Button:
browser_scroll -1 & toggle 'wheel' while_pressed & wheel_mode 'browser' while_pressed

Today i'll have a look at them at home and i hope i'm able to present working scriptst as soon.
 

geposted Wed 04 May 11 @ 9:50 am


(Alte Themen und Foren werden automatisch geschlossen)