Just try some pioneer cdj800 and u know what i mean...
Mensajes Sat 01 Sep 07 @ 11:34 am
for those that dont have it what do u mean.
Mensajes Tue 18 Sep 07 @ 7:13 pm
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
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
Mensajes 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?
Mensajes Thu 21 Apr 11 @ 12:09 pm
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.
If anyone will develope that with me we'll find a solution.
Mensajes 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.
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.
Mensajes 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
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
Mensajes 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
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
Mensajes Wed 04 May 11 @ 9:02 am
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.
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.
Mensajes Wed 04 May 11 @ 9:50 am