The order of params is how padfx works, you pass params in the order they're found on the plugin you're calling.
It really is just a list in order
I want to call "some fx" on, and I want to pass these values I list to that fx.
Try play with the padfx script, it should become clear
[example demo, should be instructive]
the button names at the end can be either case what is returned from
get_effect_button_name "FXNAME" BUTTON_NUM
or
get_effect_button_shortname "FXNAME" BUTTON_NUM
As to
effect_button parser 1 -1, the -1 is button state, -1 being toggle [1|0|-1] same as [on|off|toggle]
It's needed here as my string of text becomes the implicit so what is called without the -1 would be
effect_button parser 1 "my load of text"
it's expecting on|off|toggle or 1|0|-1, so it wouldn't know what to do with my load of text. Using -1 tells the script engine what we want to do and it bumps the implicit text to param 4 [and there is no param 4 for a button script so our text is safely ignored]
And last bit. I use set_var as we are saving a string variable, if we did this
set $fxStemState 'stemfx:Vocal'
we wouldn't be saving the literal text, we would be saving whatever the variable named 'stemfx:Vocal' was holding [we've not set a variable named that so it would be holding Zero]
Read up on set verb for that one.
I could have done this instead to avoid the error
set $fxStemState `get_text 'stemfx:Vocal'`
There's a little more to padfx, slider params have to be in order they're found on the plugin, you don't have to include all params, once you miss a param that's the end of slider param setting, buttons you can call by name so order isn't as important but they can still screw up slider setting so best follow the order as found on the plugin.
Yeah, padfx is a busy verb.
It really is just a list in order
I want to call "some fx" on, and I want to pass these values I list to that fx.
Try play with the padfx script, it should become clear
[example demo, should be instructive]
effect_show_gui echo on & wait 1000ms & effect_slider echo 1 100% & effect_slider echo 2 100% & effect_slider echo 3 100% & effect_slider echo 4 100% & effect_button echo 1 on & effect_button echo 2 on & wait 1000ms & padfx echo 0.1 0.3 0.9 0.7 "mute source:off" "trailing stop:off" & wait 1000ms & effect_active echo
the button names at the end can be either case what is returned from
get_effect_button_name "FXNAME" BUTTON_NUM
or
get_effect_button_shortname "FXNAME" BUTTON_NUM
As to
effect_button parser 1 -1, the -1 is button state, -1 being toggle [1|0|-1] same as [on|off|toggle]
It's needed here as my string of text becomes the implicit so what is called without the -1 would be
effect_button parser 1 "my load of text"
it's expecting on|off|toggle or 1|0|-1, so it wouldn't know what to do with my load of text. Using -1 tells the script engine what we want to do and it bumps the implicit text to param 4 [and there is no param 4 for a button script so our text is safely ignored]
And last bit. I use set_var as we are saving a string variable, if we did this
set $fxStemState 'stemfx:Vocal'
we wouldn't be saving the literal text, we would be saving whatever the variable named 'stemfx:Vocal' was holding [we've not set a variable named that so it would be holding Zero]
Read up on set verb for that one.
I could have done this instead to avoid the error
set $fxStemState `get_text 'stemfx:Vocal'`
There's a little more to padfx, slider params have to be in order they're found on the plugin, you don't have to include all params, once you miss a param that's the end of slider param setting, buttons you can call by name so order isn't as important but they can still screw up slider setting so best follow the order as found on the plugin.
Yeah, padfx is a busy verb.
Inviato Tue 07 May 24 @ 8:11 pm
more indexing sorry for the false alarm.
Inviato Sun 09 Jun 24 @ 5:19 am
I'm looking for help with a script I've used for many years that stopped working after version 2023-i b7607
For Left Deck:
Deck 1 loop_adjust 'move'
For Right deck:
Deck 2 loop_adjust 'move'
This script simply stops the platter in the Rane 12 and lets me use the platter to move (scrub) the set loop. I've used this script for many years with many different controllers, but for the last 5 years with the Rane 12s. Its very important to my workflow and video sets.
I appreciate any help to resolve this.
For Left Deck:
Deck 1 loop_adjust 'move'
For Right deck:
Deck 2 loop_adjust 'move'
This script simply stops the platter in the Rane 12 and lets me use the platter to move (scrub) the set loop. I've used this script for many years with many different controllers, but for the last 5 years with the Rane 12s. Its very important to my workflow and video sets.
I appreciate any help to resolve this.
Inviato Sat 22 Jun 24 @ 2:26 pm
if it did work and now it doesn't report it on the technical forum.
Inviato Thu 27 Jun 24 @ 12:53 pm
locoDog wrote :
if it did work and now it doesn't report it on the technical forum.
I was told by support to post it in here and a tech would respond. I did post it in the Technical Support Thread. One person suggested removing the deck x command but this breaks the working version and has zero effect on the current version. Its broken and I can say for sure its a BUG.
Inviato Sun 07 Jul 24 @ 6:07 pm
A scroller is a name I've given to scripts that do stuff in batches,
If you search the forum for "scroller" you'll find lots of examples, all doing different things but in the same kind of way.
I call them scrollers because it actually scrolls thru the browser.
The basis would be a repeat_start script [a.k.a. rsi, repeat_start_instant]
Some cases you might want to scroll over the entire database, some cases it might be a specific list/folder/filter so use your brain which bits you need for your thing.
I'll be making an example to do an entire database
search "*" & wait 2000ms & browser_window songs & browser_scroll top &
By using *, I'm search for everything, give it a second or two to get the results, put the browser focus onto the song list, and go to the top of the list, this is easy stuff.
& repeat_start_instant scroller 25ms -1 &
a repeat script called "scroller" that repeats every 25ms & has no numbered limit [-1 means it will run until it is told to stop]
next you do what you need to do, some times you might need to load the track, like if you need to do cue stuff
load & do stuff with cues &
or sometimes you don't need to load like maybe write a tag
& browsed_song comment "EXAMPLE" &
or read a tag and do something about it
& ( get_browsed_bpm & param_bigger 155 ? color 'red' : color 'green' ) &
ok that's one case of doing the thing you need, how do we get it scrolling?
& browser_scroll 'bottom' ? repeat_stop scroller : browser_scroll +1
not a lot to it at all, we end our script with a query have we hit the bottom because if we have we can stop the repeating script, and if we haven't we can browser_scroll down and let the repeat script run again.
whole custom_button script, harmless example counts if a track is > 100 bpm or not, also has button logic so a press while it is running will make the repeating stop
repeat_start_instant scroller ? blink 250ms & repeat_stop scroller & var_list : off & set $counterOver100 0 & set $counterNotOver100 0 & search "*" & wait 2000ms & browser_window songs & browser_scroll top & repeat_start_instant scroller 25ms -1 & ( get_browsed_bpm & param_bigger 100 ? set $counterOver100 +1 : set $counterNotOver100 +1 ) & browser_scroll 'bottom' ? repeat_stop scroller & var_list : browser_scroll +1
rsi speeds, it will take a little while to do a database, it processes about 1800 tracks a minute, it can be made considerably quicker depending on how simple the thing you are doing is.
Inviato Thu 12 Sep 24 @ 12:03 pm
I use samples a lot so I have created a floating window I can fix on a second touchscreen monitor with 64 sample buttons on it for quick access.
For each sample button I have added an icon to indicate if the sample loops but I would also like to be able to add an icon to indicate if the sample is video or not.
I have tried is_video, but this understandably doesn't seem work with samples so I thought maybe I could make sure all video samples were in groups that had the text 'Video' in it and query that, however it appears the verb 'sampler_group_name' returns a list of the groups, not the group a selected sample is in, i.e. 'sampler_group_name 2' will return the name of the second group on that particular sample bank, not the group name of the second sample in the bank, so that's a bust.
At the moment, due to the way my controller is configured I always have a video sample loaded on sample slot 5 so I am using
"param_equal `sampler_color [BUTTON]` `sampler_color 5` ? true : false"
to see if the colors match regardless of what color the video group is on a particular bank, but that is a bit of a fudge.
Is there a way to query if a sample is video, or a way to get a specific samples group name, or failing that, a better fudge I haven't thought of that could give me the result I want.
Any help or pointers would be greatly appreciated.
For each sample button I have added an icon to indicate if the sample loops but I would also like to be able to add an icon to indicate if the sample is video or not.
I have tried is_video, but this understandably doesn't seem work with samples so I thought maybe I could make sure all video samples were in groups that had the text 'Video' in it and query that, however it appears the verb 'sampler_group_name' returns a list of the groups, not the group a selected sample is in, i.e. 'sampler_group_name 2' will return the name of the second group on that particular sample bank, not the group name of the second sample in the bank, so that's a bust.
At the moment, due to the way my controller is configured I always have a video sample loaded on sample slot 5 so I am using
"param_equal `sampler_color [BUTTON]` `sampler_color 5` ? true : false"
to see if the colors match regardless of what color the video group is on a particular bank, but that is a bit of a fudge.
Is there a way to query if a sample is video, or a way to get a specific samples group name, or failing that, a better fudge I haven't thought of that could give me the result I want.
Any help or pointers would be greatly appreciated.
Inviato Sun 15 Sep 24 @ 1:48 pm
I can't think of anything yet other than making the first char of the sample name something you could query, like using a "+" or something.
Inviato Sun 15 Sep 24 @ 9:20 pm
I did consider a special character in the sample name but since the name is displayed on the button anyway it seemed a bit redundant, altho I might revisit that thought.
Thanks for your consideration anyway, if you can't think of a better way to do it at least I know it can't be done and to stop trying.
Thanks for your consideration anyway, if you can't think of a better way to do it at least I know it can't be done and to stop trying.
Inviato Mon 16 Sep 24 @ 12:22 pm
Dear colleagues,
I ask for your help in writing a script to control the flashing of the button. I have studied the Freestyler program and am now assigning controls to buttons in Launchpad. I ran into a problem: I can't make the button blink dimly when the function is not active, and brightly when the function is on. I would appreciate any help or advice on this issue.
the function on the button is written as follows:
var_equal '$FS_RCV_$FS_SND_OVER_01' 0 ? off & set '$FS_SND_OVER_01' 1 while_pressed : on & set '$FS_SND_OVER_01' 1 while_pressed
I wrote it like this: var_equal '$FS_RCV_$FS_SND_OVER_01' 0 ? blink 500ms ? color 'white' : off : color 'dark white
In this case, the button always blinks dimly, when I press and release the button, the function turns on, the button blinks dimly, I press it again - the function turns off, the button blinks dimly, but if you press and hold the button, it blinks brightly.
I ask for your help in writing a script to control the flashing of the button. I have studied the Freestyler program and am now assigning controls to buttons in Launchpad. I ran into a problem: I can't make the button blink dimly when the function is not active, and brightly when the function is on. I would appreciate any help or advice on this issue.
the function on the button is written as follows:
var_equal '$FS_RCV_$FS_SND_OVER_01' 0 ? off & set '$FS_SND_OVER_01' 1 while_pressed : on & set '$FS_SND_OVER_01' 1 while_pressed
I wrote it like this: var_equal '$FS_RCV_$FS_SND_OVER_01' 0 ? blink 500ms ? color 'white' : off : color 'dark white
In this case, the button always blinks dimly, when I press and release the button, the function turns on, the button blinks dimly, I press it again - the function turns off, the button blinks dimly, but if you press and hold the button, it blinks brightly.
Inviato Mon 16 Sep 24 @ 5:34 pm
What is wrong with this Script? It does what i want it to do, i.e toggle the loopchop effect on and off and give me LED Feedback but the only problem is that the LED is on by default and the effect is activated when the LED is off and the opposite when its on. Almost like i have to push the button to arm it before pressing again to get the desired feature. Any Help will be much appreciated,Thanks
var 'voiceThing' 0 ?
on & toggle 'voiceThing' & set 'VoxFXcount' `var 'VoxFXcount' ? get_var "VoxFXcount" & param_add 1 : get_text '1' & param_cast val` & set 'voxLoopCycle' 0 & effect_stems 'vocal' on & repeat_stop 'voxRoller2' & quantize_loop on & padfx 'loop roll' 0.9 0.75 & wait 1bt 1 & repeat_start 'voxRoller' 1bt & effect_slider 'loop roll' 2 -20% & cycle 'voxLoopCounter' 2 & var 'voxLoopCounter' 0 ? repeat_stop 'voxRoller' & repeat_start 'voxRoller2' 1bt & effect_slider 'loop roll' 1 -15% & cycle 'voxLoopCycle' 6 & var 'voxLoopCycle' 0 ? repeat_stop 'voxRoller2' : nothing : nothing : off & toggle 'voiceThing' & repeat_stop 'voxRoller2' & effect_active 'loop roll' off & get_var "VoxFXcount" & param_equal 1 ? effect_stems 'vocal' off & set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1` : set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1`
var 'effectActive' 0 ?
on & set 'VoxFXcount' `var 'VoxFXcount' ? get_var "VoxFXcount" & param_add 1 : get_text '1' & param_cast val` & set 'voxLoopCycle' 0 & effect_stems 'vocal' on & repeat_stop 'voxRoller2' & quantize_loop on & padfx 'loop roll' 0.9 0.75 & wait 1bt 1 & repeat_start 'voxRoller' 1bt & effect_slider 'loop roll' 2 -20% & cycle 'voxLoopCounter' 2 & var 'voxLoopCounter' 0 ? repeat_stop 'voxRoller' & repeat_start 'voxRoller2' 1bt & effect_slider 'loop roll' 1 -15% & cycle 'voxLoopCycle' 6 & var 'voxLoopCycle' 0 ? repeat_stop 'voxRoller2' : nothing : nothing : off & repeat_stop 'voxRoller2' & effect_active 'loop roll' off & get_var "VoxFXcount" & param_equal 1 ? effect_stems 'vocal' off & set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1` : set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1`
var 'voiceThing' 0 ?
on & toggle 'voiceThing' & set 'VoxFXcount' `var 'VoxFXcount' ? get_var "VoxFXcount" & param_add 1 : get_text '1' & param_cast val` & set 'voxLoopCycle' 0 & effect_stems 'vocal' on & repeat_stop 'voxRoller2' & quantize_loop on & padfx 'loop roll' 0.9 0.75 & wait 1bt 1 & repeat_start 'voxRoller' 1bt & effect_slider 'loop roll' 2 -20% & cycle 'voxLoopCounter' 2 & var 'voxLoopCounter' 0 ? repeat_stop 'voxRoller' & repeat_start 'voxRoller2' 1bt & effect_slider 'loop roll' 1 -15% & cycle 'voxLoopCycle' 6 & var 'voxLoopCycle' 0 ? repeat_stop 'voxRoller2' : nothing : nothing : off & toggle 'voiceThing' & repeat_stop 'voxRoller2' & effect_active 'loop roll' off & get_var "VoxFXcount" & param_equal 1 ? effect_stems 'vocal' off & set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1` : set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1`
var 'effectActive' 0 ?
on & set 'VoxFXcount' `var 'VoxFXcount' ? get_var "VoxFXcount" & param_add 1 : get_text '1' & param_cast val` & set 'voxLoopCycle' 0 & effect_stems 'vocal' on & repeat_stop 'voxRoller2' & quantize_loop on & padfx 'loop roll' 0.9 0.75 & wait 1bt 1 & repeat_start 'voxRoller' 1bt & effect_slider 'loop roll' 2 -20% & cycle 'voxLoopCounter' 2 & var 'voxLoopCounter' 0 ? repeat_stop 'voxRoller' & repeat_start 'voxRoller2' 1bt & effect_slider 'loop roll' 1 -15% & cycle 'voxLoopCycle' 6 & var 'voxLoopCycle' 0 ? repeat_stop 'voxRoller2' : nothing : nothing : off & repeat_stop 'voxRoller2' & effect_active 'loop roll' off & get_var "VoxFXcount" & param_equal 1 ? effect_stems 'vocal' off & set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1` : set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1`
Inviato Wed 18 Sep 24 @ 4:09 pm
invert where you call led on/off
Inviato Wed 18 Sep 24 @ 4:27 pm
sorry but I am very green with VDJ scripts. I can’t find the “led toggles” in the script I uploaded . Thanks for your help as always 🙏🏾
Inviato Thu 19 Sep 24 @ 2:44 am
var 'voiceThing' 0 ?
off & toggle 'voiceThing' & set 'VoxFXcount' `var 'VoxFXcount' ? get_var "VoxFXcount" & param_add 1 : get_text '1' & param_cast val` & set 'voxLoopCycle' 0 & effect_stems 'vocal' on & repeat_stop 'voxRoller2' & quantize_loop on & padfx 'loop roll' 0.9 0.75 & wait 1bt 1 & repeat_start 'voxRoller' 1bt & effect_slider 'loop roll' 2 -20% & cycle 'voxLoopCounter' 2 & var 'voxLoopCounter' 0 ? repeat_stop 'voxRoller' & repeat_start 'voxRoller2' 1bt & effect_slider 'loop roll' 1 -15% & cycle 'voxLoopCycle' 6 & var 'voxLoopCycle' 0 ? repeat_stop 'voxRoller2' : nothing : nothing : on & toggle 'voiceThing' & repeat_stop 'voxRoller2' & effect_active 'loop roll' off & get_var "VoxFXcount" & param_equal 1 ? effect_stems 'vocal' off & set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1` : set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1`
var 'effectActive' 0 ?
off & set 'VoxFXcount' `var 'VoxFXcount' ? get_var "VoxFXcount" & param_add 1 : get_text '1' & param_cast val` & set 'voxLoopCycle' 0 & effect_stems 'vocal' on & repeat_stop 'voxRoller2' & quantize_loop on & padfx 'loop roll' 0.9 0.75 & wait 1bt 1 & repeat_start 'voxRoller' 1bt & effect_slider 'loop roll' 2 -20% & cycle 'voxLoopCounter' 2 & var 'voxLoopCounter' 0 ? repeat_stop 'voxRoller' & repeat_start 'voxRoller2' 1bt & effect_slider 'loop roll' 1 -15% & cycle 'voxLoopCycle' 6 & var 'voxLoopCycle' 0 ? repeat_stop 'voxRoller2' : nothing : nothing : on & repeat_stop 'voxRoller2' & effect_active 'loop roll' off & get_var "VoxFXcount" & param_equal 1 ? effect_stems 'vocal' off & set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1` : set 'VoxFXcount' `get_var "VoxFXcount" & param_add -1`
I'm not going to bother trying to figure out what it is supposed to be doing,
If you see "on" or "off" on their own in a script then that's for LED logic
Inviato Thu 19 Sep 24 @ 3:24 am
Thanks Locodog... Much Appreciated
Inviato Thu 19 Sep 24 @ 1:36 pm
@djkrysr new in EA build 8322
X being sample slot number
get_sample_info X type
X being sample slot number
Inviato Wed 25 Sep 24 @ 1:10 am
Great, thanks for letting me know this addition to the script, I will get straight on it.
Inviato Wed 25 Sep 24 @ 10:18 am
Tested the `get_sample_info` addition and it all works perfectly thanks.
Another thing I can' seem to work out is how to tell videos apart from karaoke tracks as they both return true with 'is_video', are you aware of a way to distinguish between the two formats using script as obviously VDJ can.
Thanks anyway
Another thing I can' seem to work out is how to tell videos apart from karaoke tracks as they both return true with 'is_video', are you aware of a way to distinguish between the two formats using script as obviously VDJ can.
Thanks anyway
Inviato Sat 05 Oct 24 @ 2:01 pm
Hi friends.
I´m triying program a custom button in each deck. who gets the loaded song and add it to a specific virtual folder.
I triyed lots of combinations but almost times the track added is from browser selection. and i would it be from each deck the track is playing or simply loaded on it.
i´ve triyed it by different ways but noone giveme succes.
thanks for any support.
regards
I´m triying program a custom button in each deck. who gets the loaded song and add it to a specific virtual folder.
I triyed lots of combinations but almost times the track added is from browser selection. and i would it be from each deck the track is playing or simply loaded on it.
get_text "`get_loaded_song 'drive'`:`get_loaded_song 'filepath'`" & param_cast 'text' & browser_gotofolder & add_to_list "R.B.K/OCTUBRE" & get_filename
get_text `get_loaded_song 'drive'`:`get_loaded_song 'filepath'`" & Add_to_list 'text'
search " `get_text "`get_loaded_song 'title`:`get_loaded_song 'artist'` " & param_cast 'text' & add_to_list "GUIYEYDJ/SEPT"
i´ve triyed it by different ways but noone giveme succes.
thanks for any support.
regards
Inviato Wed 09 Oct 24 @ 3:10 pm
Hi solved i got it....
I find the answer and almost script did it in a pad from @locodog it was rate n color and give me the way to get success...
If some one would use it i left here the script. is for use in custom buttom from player (not buttons in browser)
VIRTUALFOLDERSnow are calling "local list" so i`m not update it in my brain.
Maybe works finest if use get_tittle_artist instead get_tittle_remix, if you do it will be appreciate any comment about.
Hope it will be useful for someone.
Regards!!!
I find the answer and almost script did it in a pad from @locodog it was rate n color and give me the way to get success...
If some one would use it i left here the script. is for use in custom buttom from player (not buttons in browser)
get_title_remix & param_cast & search & repeat_start 'rsCTFD' 250ms 1 & add_to_list "YOUR VIRTUAL FOLDER/YOURVIRTUALSUBFOLDER"
VIRTUALFOLDERSnow are calling "local list" so i`m not update it in my brain.
Maybe works finest if use get_tittle_artist instead get_tittle_remix, if you do it will be appreciate any comment about.
Hope it will be useful for someone.
Regards!!!
Inviato Fri 11 Oct 24 @ 6:13 pm