Hi
I have got a lightweight controller I use for some simple gigs but there are a few things it doesn't have for VDJ including an easy way to move around the browser panels without repurposing buttons I already need,
so I've reprogrammed the Track knob to include this when shifted:
'shift ? browser_window "folders,songs,sideview" & browser_window "folders" ? show_splitpanel 'Folders' on : show_splitpanel 'Folders' off : browser_scroll'
However when I scroll forward it works fine and moves between the different panels in order but when I scroll backwards it always goes from 'sideview' back to 'folders' then 'sideview' again, missing out the 'songs' panel.
Is this a parameter problem, with the back scroll decreasing a bit too much with each click and missing a step, if so, is there a way with some fancy math to reduce it so that when you scroll backwards it will allow it to work properly.
I don't mind if you have to turn the wheel more to achieve this.
I have got a lightweight controller I use for some simple gigs but there are a few things it doesn't have for VDJ including an easy way to move around the browser panels without repurposing buttons I already need,
so I've reprogrammed the Track knob to include this when shifted:
'shift ? browser_window "folders,songs,sideview" & browser_window "folders" ? show_splitpanel 'Folders' on : show_splitpanel 'Folders' off : browser_scroll'
However when I scroll forward it works fine and moves between the different panels in order but when I scroll backwards it always goes from 'sideview' back to 'folders' then 'sideview' again, missing out the 'songs' panel.
Is this a parameter problem, with the back scroll decreasing a bit too much with each click and missing a step, if so, is there a way with some fancy math to reduce it so that when you scroll backwards it will allow it to work properly.
I don't mind if you have to turn the wheel more to achieve this.
Posted Tue 25 Mar 25 @ 1:52 pm
without looking at why it is like it is, I can suggest going explicitly
not pretty but it's a one off
shift ? param_bigger 0 ? browser_window "folders,songs,sideview" & browser_window "folders" ? show_splitpanel 'Folders' on : show_splitpanel 'Folders' off : browser_window folders ? show_splitpanel 'Folders' off & browser_window sideview : browser_window sideview ? browser_window songs : browser_window songs ? show_splitpanel Folders on & browser_window folders : browser_scroll
not pretty but it's a one off
Posted Tue 25 Mar 25 @ 2:16 pm
Your 'ugly' code is what I used originally on seperate buttons on my full controller until I 'refined' it as I learned better VDJ scripting and it does the job.
Where I fell down is remembering the nuance of how VDJscript works ('param_bigger 0' to check forward scroll etc) and I couldn't for the life of me work out how to transfer the old code to an knob so thanks again.
Where I fell down is remembering the nuance of how VDJscript works ('param_bigger 0' to check forward scroll etc) and I couldn't for the life of me work out how to transfer the old code to an knob so thanks again.
Posted Tue 25 Mar 25 @ 3:08 pm
Thanks for the set_deck method. It works.
set '%Dst' 1 &
set_deck `get_var %Dst` & loaded ? play
It appears the crossfader doesn't like parameters either.
I don't find an equivalent for crossfader such as "set_crossfader" which does not exit.
These all fail:
crossfader %Fader
crossfader '%Fader'
crossfader `get_var %Fader`
crossfader `get_var '%Fader'`
set '%Dst' 1 &
set_deck `get_var %Dst` & loaded ? play
It appears the crossfader doesn't like parameters either.
I don't find an equivalent for crossfader such as "set_crossfader" which does not exit.
These all fail:
crossfader %Fader
crossfader '%Fader'
crossfader `get_var %Fader`
crossfader `get_var '%Fader'`
Posted Tue 25 Mar 25 @ 10:05 pm
It's not a language wide thing.
verbs are function calls, there is no translation layer.
some verbs have default params, some verbs have overloads, some of those overloads allow script actions as a param, but many don't.
If script action as a param isn't mentioned in the verb description it probably doesn't accept one. Those cases you call prior and then cast, then call the verb and the cast sticks the value on the end of the param_list.
verbs are function calls, there is no translation layer.
some verbs have default params, some verbs have overloads, some of those overloads allow script actions as a param, but many don't.
If script action as a param isn't mentioned in the verb description it probably doesn't accept one. Those cases you call prior and then cast, then call the verb and the cast sticks the value on the end of the param_list.
Posted Tue 25 Mar 25 @ 10:19 pm
crossfader accepts a parameter as text, decimal or percentage.
Where I am stuck is converting a variable using get_var to something that crossfader understands.
Q: is there a document I can reference for these verbs ?
The VERBS pdf is nice for a text description, but isn't a language definition for overloads, etc.
BTW, thank you so much for offering your expertise here.
I can't find this expertise anywhere out on the internet like it is presented here.
Where I am stuck is converting a variable using get_var to something that crossfader understands.
Q: is there a document I can reference for these verbs ?
The VERBS pdf is nice for a text description, but isn't a language definition for overloads, etc.
BTW, thank you so much for offering your expertise here.
I can't find this expertise anywhere out on the internet like it is presented here.
Posted Tue 25 Mar 25 @ 10:45 pm
Beer donations are accepted :)
The documentation
https://www.virtualdj.com/wiki/VDJscript.html
that's it, some verbs are under documented like get_date which I covered in an earlier topic, or how get_time can get cue or loopIn/Out times [obscure use, mostly superseded, the description in app is already long enough]
But really all the info is there just super concise.
See examples of param_cast
The documentation
https://www.virtualdj.com/wiki/VDJscript.html
that's it, some verbs are under documented like get_date which I covered in an earlier topic, or how get_time can get cue or loopIn/Out times [obscure use, mostly superseded, the description in app is already long enough]
But really all the info is there just super concise.
See examples of param_cast
set a 2 & get_var a & param_cast & set b & var_list
Posted Tue 25 Mar 25 @ 11:40 pm
I am trying to combine the cue loop , loop roll and play sync options such that if i push and hold a cue point,it will play from the cue point but loop roll or stutter according to selected loop parameters and then will play_sync with the master deck when released. So it will behave like how the pad_scratch buttons behave when pressed. I will also like to think of this as a pad_roll ,similar to what the roll effect does except that this starts a track, "rolls" or loops it, then play_sync to master deck. How do i go about this please. I have tried several combinations and nothing seems to be working.
Posted Wed 26 Mar 25 @ 1:05 am
down ? hot_cue 2 & get_loop & param_cast & loop_roll : effect_active 'loop roll' off & sync
something along the lines of this.
Posted Wed 26 Mar 25 @ 1:16 am
Any luck in finding out how to do this:
Set '%Fader' 0.0
crossfader %Fader
Set '%Fader' 0.0
crossfader %Fader
Posted Wed 26 Mar 25 @ 2:40 pm
I have a working kludge:
set '%Dst' 1 &
set '%Fader' 0.0 &
(var_smaller "%Fader" 0.6 ?
crossfader 0.0 &
:
crossfader 1.0) &
set_deck `get_var %Dst` &
select &
stop & stop &
play
set '%Dst' 1 &
set '%Fader' 0.0 &
(var_smaller "%Fader" 0.6 ?
crossfader 0.0 &
:
crossfader 1.0) &
set_deck `get_var %Dst` &
select &
stop & stop &
play
Posted Wed 26 Mar 25 @ 3:48 pm
bgavin wrote :
Any luck in finding out how to do this:
I told you
locoDog wrote :
See examples of param_cast
Posted Wed 26 Mar 25 @ 8:34 pm
Q: How does one code the end of an If-Then-Else block?
pseudo code:
if '$sngFader' = 0.500 Then
deck 1 select
else
deck 2 select
end if
VDJ script:
var_equal '$sngFader' 0.500 ? deck 1 select : deck 3 select
& var_list
var_list only executes in the ELSE block of the structure.
Brackets () don't work here.
I can't figure out how to end the conditional statement and continue on.
pseudo code:
if '$sngFader' = 0.500 Then
deck 1 select
else
deck 2 select
end if
VDJ script:
var_equal '$sngFader' 0.500 ? deck 1 select : deck 3 select
& var_list
var_list only executes in the ELSE block of the structure.
Brackets () don't work here.
I can't figure out how to end the conditional statement and continue on.
Posted Fri 28 Mar 25 @ 7:16 pm
read my post on brackets in script, you'll find a link in the OP index.
Posted Sat 29 Mar 25 @ 12:23 am
That is what I was searching for.
Your post notes that Build 6920 and later incorporates the brackets syntax.
Brackets were working fine on my 2025 desktop version, but failing on my 6747 build on my Win 8.1 laptop.
Your post notes that Build 6920 and later incorporates the brackets syntax.
Brackets were working fine on my 2025 desktop version, but failing on my 6747 build on my Win 8.1 laptop.
Posted Sat 29 Mar 25 @ 2:58 pm
I've not quite figured out a workaround for the forward procession of time... yet
Prior to 6920 brackets in script weren't a thing, so they don't work in earlier builds.
I have ways to "function out" queries [that are far backwards compatible, make a separate branch/thread to encapsulate] but you're asking for a technician's solution, it's part of the language but it's a different dialect, so things work different.
I do technicianing solutions but only over PM [licence holders] and expect beer tokens.
Prior to 6920 brackets in script weren't a thing, so they don't work in earlier builds.
I have ways to "function out" queries [that are far backwards compatible, make a separate branch/thread to encapsulate] but you're asking for a technician's solution, it's part of the language but it's a different dialect, so things work different.
I do technicianing solutions but only over PM [licence holders] and expect beer tokens.
Posted Sat 29 Mar 25 @ 4:54 pm
Just curious: what is the last x64 build that supports DirectX 11?
I've searched the change log and all over Google land, and came up dry.
I've searched the change log and all over Google land, and came up dry.
Posted Mon 31 Mar 25 @ 8:21 pm
Hi. Is there a way to map the multiplier slider from the freestyler module to the controller slider?
Posted Sat 19 Apr 25 @ 5:43 pm
it's slider 1 on the freestyler fx called on deck master, what's your problem with it?
pick thru this
https://www.virtualdj.com/forums/263280/VirtualDJ_Plugins/Sending_absolute_BPM_to_Freestyler.html?page=1
pick thru this
https://www.virtualdj.com/forums/263280/VirtualDJ_Plugins/Sending_absolute_BPM_to_Freestyler.html?page=1
Posted Sat 19 Apr 25 @ 5:55 pm
Thank you very much, it helped
deck master param_multiply 3 & param_cast & effect_slider 'freestyler' 1
deck master param_multiply 3 & param_cast & effect_slider 'freestyler' 1
Posted Sat 19 Apr 25 @ 8:10 pm