There's a feature in Traktor where you can press a button and it activates all loops which basically means whichever loop you hit next is going to be active. This allows you to have all loops turned off by default with the option to turn them on while the track is playing with a SINGLE button.
This seems to be the opposite to Virtual DJ, if I use "Auto-Trigger" it seems I can't turn that loop off until I'm inside it? And if your inside an inactive loop there's no way with a SINGLE button to activate it.
So I came up with this script which checks which loops is next and activates it when a button is pressed. I would love feedback in case there's an easier method I've missed? Or any advice on not having so much duplicate code?
I wish loop_load_prepare could activate all loops or activate the next loop after the playhead. https://www.virtualdj.com/forums/254613/Wishes_and_new_features/Implement_loop_load_prepare__all__or_loop_load_prepare__next_.html
This seems to be the opposite to Virtual DJ, if I use "Auto-Trigger" it seems I can't turn that loop off until I'm inside it? And if your inside an inactive loop there's no way with a SINGLE button to activate it.
So I came up with this script which checks which loops is next and activates it when a button is pressed. I would love feedback in case there's an easier method I've missed? Or any advice on not having so much duplicate code?
set_var %loopInPos `get_saved_loop 1 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 1 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 1 :
set_var %loopInPos `get_saved_loop 2 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 2 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 2 :
set_var %loopInPos `get_saved_loop 3 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 3 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 3 :
set_var %loopInPos `get_saved_loop 4 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 4 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 4 :
set_var %loopInPos `get_saved_loop 5 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 5 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 5 :
set_var %loopInPos `get_saved_loop 6 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 6 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 6 :
set_var %loopInPos `get_saved_loop 7 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 7 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 7 :
set_var %loopInPos `get_saved_loop 8 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 8 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time 'elapsed'` ?
loop_load_prepare 8
I wish loop_load_prepare could activate all loops or activate the next loop after the playhead. https://www.virtualdj.com/forums/254613/Wishes_and_new_features/Implement_loop_load_prepare__all__or_loop_load_prepare__next_.html
Posted Sun 24 Sep 23 @ 9:01 pm
use absolute time for your compares as that's what get_saved_loop 1 'pos' returns
get_time elapsed absolute
get_time elapsed absolute
Posted Sun 24 Sep 23 @ 9:45 pm
Thanks so much for picking up on that!!!
Here's that fix and another bug fix for anyone finding this in the future:
Here's that fix and another bug fix for anyone finding this in the future:
set_var %loopInPos 0 & set_var %loopOutPos 0 &
set_var %loopInPos `get_saved_loop 1 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 1 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 1 :
set_var %loopInPos `get_saved_loop 2 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 2 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 2 :
set_var %loopInPos `get_saved_loop 3 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 3 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 3 :
set_var %loopInPos `get_saved_loop 4 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 4 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 4 :
set_var %loopInPos `get_saved_loop 5 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 5 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 5 :
set_var %loopInPos `get_saved_loop 6 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 6 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 6 :
set_var %loopInPos `get_saved_loop 7 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 7 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 7 :
set_var %loopInPos `get_saved_loop 8 'pos'` &
set_var %loopOutPos `param_add "get_var %loopInPos" "get_saved_loop 8 'len'"` &
param_smaller `param_multiply "get_var %loopOutPos" 1000` `get_time elapsed absolute` ?
loop_load_prepare 8
Posted Mon 25 Sep 23 @ 9:01 pm