Hello!
I have a question about the display behavior of buttons or pads. (on/off)
I tried creating pads with these:
(browser_window 'remixes' && show_splitpanel 'sideview')
(browser_window 'automix' && show_splitpanel 'sideview')
If the remixes tab is active, then my remixes pad will be on, and the automix one will be off as expected.
Unfortunately, the action is not exactly what I wanted so I did this instead:
(browser_window 'remixes' && show_splitpanel 'sideview') ? show_splitpanel 'sideview' off : (show_splitpanel 'sideview' on & browser_window 'remixes' on)
(browser_window 'automix' && show_splitpanel 'sideview') ? show_splitpanel 'sideview' off : (show_splitpanel 'sideview' on & browser_window 'automix' on)
The action is now fine but the pad status is now reversed?? I don't undersant why and I'm running in circles trying to fix it.
Thanks in advance for your help!
I have a question about the display behavior of buttons or pads. (on/off)
I tried creating pads with these:
(browser_window 'remixes' && show_splitpanel 'sideview')
(browser_window 'automix' && show_splitpanel 'sideview')
If the remixes tab is active, then my remixes pad will be on, and the automix one will be off as expected.
Unfortunately, the action is not exactly what I wanted so I did this instead:
(browser_window 'remixes' && show_splitpanel 'sideview') ? show_splitpanel 'sideview' off : (show_splitpanel 'sideview' on & browser_window 'remixes' on)
(browser_window 'automix' && show_splitpanel 'sideview') ? show_splitpanel 'sideview' off : (show_splitpanel 'sideview' on & browser_window 'automix' on)
The action is now fine but the pad status is now reversed?? I don't undersant why and I'm running in circles trying to fix it.
Thanks in advance for your help!
发表时间 Mon 28 Jul 25 @ 12:06 pm
locoDog wrote :
deck 'side' will work, best practice depends on case.
Thanks!
发表时间 Mon 28 Jul 25 @ 12:07 pm
(browser_window 'remixes' && show_splitpanel 'sideview') ? on & show_splitpanel 'sideview' off : off & (show_splitpanel 'sideview' on & browser_window 'remixes' on)
common mistake when first dealing with button led logic, the reply to the query to turn the thing off should first tell the led to be on [because it is on], LED queries happen constantly, unlike button press triggered queries that only happen when button pressed.
发表时间 Mon 28 Jul 25 @ 12:34 pm
@Yan Duval:
A lot of times it's easier (and preferable) to "unlink" the led query (when the led is on) from the action of the pad.
Take a look at these examples:
A lot of times it's easier (and preferable) to "unlink" the led query (when the led is on) from the action of the pad.
Take a look at these examples:
<pad1 name="`get_effect_name 1`" color="effect_active 1 on ? var_equal 'FX1MomPush' 0 ? color 'green' : color 'blue' : color 'blue'" query="var_equal 'FX1MomPush' 0 ? effect_active 1" autodim="false">effect_active 1</pad1>
<pad5 name="^ MP" color="effect_active 1 on ? var_equal 'FX1MomPush' 1 ? color 'green' : color 'blue' : color 'blue'" query="var_equal 'FX1MomPush' 1 ? effect_active 1" autodim="false">effect_active 1 on while_pressed & set 'FX1MomPush' 1 while_pressed</pad5>
发表时间 Mon 28 Jul 25 @ 1:04 pm
Thank you both for your help.
I'll try these and come back to you!
I'll try these and come back to you!
发表时间 Mon 28 Jul 25 @ 4:15 pm
This works fine, thanks again. It brings more questions:
1- When part of a "query=...", are the actions actually performed or are they simply muted and used only as queries?
2- "A ? B" used above is the same as "A or B" if "or" was available in VDJ script?
3- Can "A ? B" used in any context without the ":" or does it sometimes need to be: "A ? B : nothing"
4- If an action is quite complex, can it be useful for performance reasons to modify a variable in the action in order to have a very simple query? I assume that if a query is available, the action stops being queried and is only performed when the button is presse?
With extras:
5- I sometimes see $myvar used without the ''. Like "set_var $myvar" instead of "set_var '$myvar'" Does it have a special meaning, or is it only that it's tolerated by VDJ in certain situations?
6- When used with a varialbe, is there any difference between "set" and "set_var".
Thanks!!
1- When part of a "query=...", are the actions actually performed or are they simply muted and used only as queries?
2- "A ? B" used above is the same as "A or B" if "or" was available in VDJ script?
3- Can "A ? B" used in any context without the ":" or does it sometimes need to be: "A ? B : nothing"
4- If an action is quite complex, can it be useful for performance reasons to modify a variable in the action in order to have a very simple query? I assume that if a query is available, the action stops being queried and is only performed when the button is presse?
With extras:
5- I sometimes see $myvar used without the ''. Like "set_var $myvar" instead of "set_var '$myvar'" Does it have a special meaning, or is it only that it's tolerated by VDJ in certain situations?
6- When used with a varialbe, is there any difference between "set" and "set_var".
Thanks!!
发表时间 Sun 07 Sep 25 @ 3:39 pm
5 tolerated, I have a topic quite recently on when " ' or ` can be omitted. Not sure if I added it to the first page index.
[I haven't yet it's a few pages back Posted Sun 20 Apr 25 @ 11:00 pm
6 Generally no difference for values, although set_var makes strings easier, example
set a 1 & set b a, both a & b will be set to 1, because that's how the set verb has worked forever, b is set to the same value as a.
set a 1 & set_var b a, a will be 1 as you'd expect but b will be set to the literal text "a"
1 LED/skin queries perform no actions they don't set variables they don't cause actions like "play" to happen, they just query
Other questions I'm not following your meaning.
[I haven't yet it's a few pages back Posted Sun 20 Apr 25 @ 11:00 pm
6 Generally no difference for values, although set_var makes strings easier, example
set a 1 & set b a, both a & b will be set to 1, because that's how the set verb has worked forever, b is set to the same value as a.
set a 1 & set_var b a, a will be 1 as you'd expect but b will be set to the literal text "a"
1 LED/skin queries perform no actions they don't set variables they don't cause actions like "play" to happen, they just query
Other questions I'm not following your meaning.
发表时间 Sun 07 Sep 25 @ 7:31 pm
Thanks for answers 1, 5 and 6.
For questions 2 and 3, I was refering to the following
I am perplexed by the fact that there is no ":" That is "A ? B" instead of "A ? B : nothing"
Question 3 can also be reformulated as: Is "A ? B" valid not only in "query" but also in "action"? Does it mean the same as "A ? B : nothing" , or "A ? B : false" ?
Question 2 answer was no, I made an error. But I guess " A or B" can be written as "A ? true : B" in vdj script. Is that right?
Question 4 was not too important.
Thanks again!
For questions 2 and 3, I was refering to the following
query="var_equal 'FX1MomPush' 0 ? effect_active 1"
I am perplexed by the fact that there is no ":" That is "A ? B" instead of "A ? B : nothing"
Question 3 can also be reformulated as: Is "A ? B" valid not only in "query" but also in "action"? Does it mean the same as "A ? B : nothing" , or "A ? B : false" ?
Question 2 answer was no, I made an error. But I guess " A or B" can be written as "A ? true : B" in vdj script. Is that right?
Question 4 was not too important.
Thanks again!
发表时间 Sun 07 Sep 25 @ 10:48 pm
same thing for a LED logic.
发表时间 2 days ago @ 1:05 pm
Build 8741 (2025-09-14) padfx improvements
padfx, a big verb that may appear confusing, it's not there's just quite a bit to it, we're going to do some verb history, strap in.
So what is it? what does it do?
It's basically a shorter way to call an effect with all the sliders and buttons in the state you want, press it again and all the sliders go back to where they where.
It's had an improvement recently that completes it in my opinion but let's go back to before padfx was a thing.
If we wanted something like this before padfx we had to write, a lot, I'll use stock echo fx as an example, but let's get on the same page
looking at the echo fx gui [ effect_show_gui echo ]
we see dials
1 strength
2 length
3 lowpass
4 highpass
and we see buttons
1 mute source
2 trailing stop
that's it if you want the parameters an effect has, just look at effect_show_gui %YOURDESIREDFX
So on to how it was done the old painful way
so first we need some logic because first press we want to do something, then we want to undo it of the second press
toggle varForLongExample & var varForLongExample 1 ? we just switched it on : we just switched it off
so just switched on, we need to save our current state of everything to variables, after that we need to set everything to the new settings
set fxOn `effect_active echo` & set slider1 `effect_slider echo 1` & set slider2 `effect_slider echo 2` ... [more variables to cover all 4 dials] & set button1 `effect_button echo 1` & ... [button 2]
already getting long and that's just saving the state, then you have to set everything and if you've followed early topics about effect_button & effect_slider there's nothing fancy here, just long.
This was kind of painful and it's only the true reply to the query. The 2nd reply is just as long, getting variables and casting to dials/buttons something like
the true/save and set reply : get_var slider1 & param_cast & effect_slider echo 1 ... [all the other sliders/buttons]
Then if you wanted a while_pressed kind of button, the script was a bit easier but different.
So the devs decided, "let's make this way easier"
So this is before stems, before effect_beats were a thing too I think,
you just listed stuff in order as seen in the fx gui and it set everything, buttons you used a syntax like this 'button name:STATE'
padfx echo 0.75 0.5 0.1 0.5 'mute source:off' 'trailing stop:on'
just like that, strength at 75% length dial at the half way position, lowpass at 0.1 position, highpass at 0.5 position, mute source off, trailing stop on
if you wanted it as a while_pressed kind of button
padfx echo 0.75 0.5 0.1 0.5 'mute source:off' 'trailing stop:on' while_pressed
just like that,
then the devs decided, "what if single press was on/off toggle but holding worked like while_pressed, that would be cool"
padfx echo 0.75 0.5 0.1 0.5 'mute source:off' 'trailing stop:on' smart_pressed
And that's that, no big mystery just a shorter script
Then effect_beats became a thing so instead of knowing where the 2nd dial position is for a length you could just specify the length
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on'
a more recent addition, is effect_beats with ms time, odd use but possible,
padfx echo 0.75 125ms 0.1 0.5 'mute source:off' 'trailing stop:on'
then we got stems and stemfx, so it had to be improved again
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on' 'stemfx:vocal'
padfx applies to just vocals
also kill a stem while using
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on' 'mutestem:vocal'
also solo a stem while using
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on' 'solostem:vocal'
All fine and good, but there's a problem,
what if you don't want to list all the dials, what if you want to leave dial 1 strength to a hardware dial?
It just didn't work that way. You had to list from slider 1, stop listing dials when you want but you can't miss any before you stop.
This is why I never really 'got along' with padfx before.
So very recently I'm explaining padfx [again] to somebody who's over-complicating it in their head, "it's just dials in order and buttons by name"
I asked "Hey devs could we do dials by name too?"
So now the newest version of the padfx verb solves this, by using named sliders
padfx echo 'strength:0.9' 'length:0.25bt' 'lowpass:0.1' 'highpass:0.5' 'mute source:off' 'trailing stop:on'
by calling by name you can now miss sliders, write them in any order you want, full control, I'd say for the moment the verb is feature complete.
That's everything, should I done an explainer on padfx before? probably, but I just didn't like the limitations, now those limitations are gone and I only had to write it up once [until they invent something else]
One final thing, an unusual but not impossible use,
a padfx off call only turns the fx off
if
1 all the dials and buttons listed are in the states as called, otherwise it just sets the states
AND 2 the fx was off when you made the setting call
*note about button names, I am using 'mute source:off' 'trailing stop:on'
these are the retrieved long form names when calling
get_effect_button_name echo 1 & param_cast & debug
but you can also use the short name as retrieved by calling
get_effect_button_shortname echo 1 & param_cast & debug
so the shortname versions
'mute:off' 'trail:on'
padfx, a big verb that may appear confusing, it's not there's just quite a bit to it, we're going to do some verb history, strap in.
So what is it? what does it do?
It's basically a shorter way to call an effect with all the sliders and buttons in the state you want, press it again and all the sliders go back to where they where.
It's had an improvement recently that completes it in my opinion but let's go back to before padfx was a thing.
If we wanted something like this before padfx we had to write, a lot, I'll use stock echo fx as an example, but let's get on the same page
looking at the echo fx gui [ effect_show_gui echo ]
we see dials
1 strength
2 length
3 lowpass
4 highpass
and we see buttons
1 mute source
2 trailing stop
that's it if you want the parameters an effect has, just look at effect_show_gui %YOURDESIREDFX
So on to how it was done the old painful way
so first we need some logic because first press we want to do something, then we want to undo it of the second press
toggle varForLongExample & var varForLongExample 1 ? we just switched it on : we just switched it off
so just switched on, we need to save our current state of everything to variables, after that we need to set everything to the new settings
set fxOn `effect_active echo` & set slider1 `effect_slider echo 1` & set slider2 `effect_slider echo 2` ... [more variables to cover all 4 dials] & set button1 `effect_button echo 1` & ... [button 2]
already getting long and that's just saving the state, then you have to set everything and if you've followed early topics about effect_button & effect_slider there's nothing fancy here, just long.
This was kind of painful and it's only the true reply to the query. The 2nd reply is just as long, getting variables and casting to dials/buttons something like
the true/save and set reply : get_var slider1 & param_cast & effect_slider echo 1 ... [all the other sliders/buttons]
Then if you wanted a while_pressed kind of button, the script was a bit easier but different.
So the devs decided, "let's make this way easier"
So this is before stems, before effect_beats were a thing too I think,
you just listed stuff in order as seen in the fx gui and it set everything, buttons you used a syntax like this 'button name:STATE'
padfx echo 0.75 0.5 0.1 0.5 'mute source:off' 'trailing stop:on'
just like that, strength at 75% length dial at the half way position, lowpass at 0.1 position, highpass at 0.5 position, mute source off, trailing stop on
if you wanted it as a while_pressed kind of button
padfx echo 0.75 0.5 0.1 0.5 'mute source:off' 'trailing stop:on' while_pressed
just like that,
then the devs decided, "what if single press was on/off toggle but holding worked like while_pressed, that would be cool"
padfx echo 0.75 0.5 0.1 0.5 'mute source:off' 'trailing stop:on' smart_pressed
And that's that, no big mystery just a shorter script
Then effect_beats became a thing so instead of knowing where the 2nd dial position is for a length you could just specify the length
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on'
a more recent addition, is effect_beats with ms time, odd use but possible,
padfx echo 0.75 125ms 0.1 0.5 'mute source:off' 'trailing stop:on'
then we got stems and stemfx, so it had to be improved again
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on' 'stemfx:vocal'
padfx applies to just vocals
also kill a stem while using
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on' 'mutestem:vocal'
also solo a stem while using
padfx echo 0.75 0.25bt 0.1 0.5 'mute source:off' 'trailing stop:on' 'solostem:vocal'
All fine and good, but there's a problem,
what if you don't want to list all the dials, what if you want to leave dial 1 strength to a hardware dial?
It just didn't work that way. You had to list from slider 1, stop listing dials when you want but you can't miss any before you stop.
This is why I never really 'got along' with padfx before.
So very recently I'm explaining padfx [again] to somebody who's over-complicating it in their head, "it's just dials in order and buttons by name"
I asked "Hey devs could we do dials by name too?"
So now the newest version of the padfx verb solves this, by using named sliders
padfx echo 'strength:0.9' 'length:0.25bt' 'lowpass:0.1' 'highpass:0.5' 'mute source:off' 'trailing stop:on'
by calling by name you can now miss sliders, write them in any order you want, full control, I'd say for the moment the verb is feature complete.
That's everything, should I done an explainer on padfx before? probably, but I just didn't like the limitations, now those limitations are gone and I only had to write it up once [until they invent something else]
One final thing, an unusual but not impossible use,
a padfx off call only turns the fx off
if
1 all the dials and buttons listed are in the states as called, otherwise it just sets the states
AND 2 the fx was off when you made the setting call
*note about button names, I am using 'mute source:off' 'trailing stop:on'
these are the retrieved long form names when calling
get_effect_button_name echo 1 & param_cast & debug
but you can also use the short name as retrieved by calling
get_effect_button_shortname echo 1 & param_cast & debug
so the shortname versions
'mute:off' 'trail:on'
发表时间 2 days ago @ 1:05 pm
Hey scripting gurus :-)
I like having a visual notification on my controller if the VDJ limiter kicks in. As of now, I have a single LED that stays ON for 1000ms if the limiter is triggered:
That works fine, but I'd like something even more noticeable. I am trying to get ALL my pads to turn RED for 1000ms when it happens, but for some reason, I am unable to. The only thing that works is if I do not put the "pulse" timer, which basically just flashes RED very fast on the limiter:
If I do something like this, the LED just turns off, no RED:
I must be missing something very obvious. Can anyone help ?
I like having a visual notification on my controller if the VDJ limiter kicks in. As of now, I have a single LED that stays ON for 1000ms if the limiter is triggered:
get_limiter & pulse 1000ms
That works fine, but I'd like something even more noticeable. I am trying to get ALL my pads to turn RED for 1000ms when it happens, but for some reason, I am unable to. The only thing that works is if I do not put the "pulse" timer, which basically just flashes RED very fast on the limiter:
get_limiter ? color red : pad_button_color 1
If I do something like this, the LED just turns off, no RED:
get_limiter ? color red & pulse 1000ms : pad_button_color 1
I must be missing something very obvious. Can anyone help ?
发表时间 2 days ago @ 8:01 pm
not param_equal `get_limiter` 0.0 & pulse 1000ms ? color red : normal colour stuff here
发表时间 2 days ago @ 8:35 pm
locoDog wrote :
not param_equal `get_limiter` 0.0 & pulse 1000ms ? color red : normal colour stuff here
Wow that works great, thanks ! I just realized what's needed to be done for it to work. I still have a lot to learn !
发表时间 2 days ago @ 8:45 pm