Quick Sign In:  

Forum: Addons

Topic: virtualFX - Page: 1
locodogPRO InfinityModeratorMember since 2013
Discussion about virtualFX

This might change things for you, it might not. This is the bare bones of a plugin, you add the meat.
It actually, in a way, reflects how c++ plugins work.
Read on and it'll start making sense.

*Edit the initial method was over complicated, I might need to clean a few more posts, just request, I'll cook the .ini & give you a name for the .dll & .ini


free to use, but if this is something you'll use regularly, You could buy me a beer.
[beer makes stupid ideas stupid realities!]
ThrowInToBeerFund

Feel free to try before you consider donating.

If you want help making your own virtualFX just ask here.

If you can xcode send me a message I'll happily hand over my source code for a port.
 

Posted Tue 17 Mar 20 @ 11:45 am
I push any Button , but nothing open ...
Where must I put the scripts for Sliders or Buttons?
When I understand your example than I must push the Buttons (these are how Custom Buttons and Sliders) ?
Greatings Dani
 

Posted Tue 17 Mar 20 @ 7:45 pm
locodogPRO InfinityModeratorMember since 2013
use a skin custom button to enter effect strings [program], just remember the name used in "effect_string 'NAME' " has to match what you called the virtual fx

 

Posted Tue 17 Mar 20 @ 8:02 pm
mmmhh..
I have the FX in the FX Slot and turn it on.
Costom Buttons are Other things.
How this comunicate with the Effect?
 

Posted Tue 17 Mar 20 @ 8:20 pm
locodogPRO InfinityModeratorMember since 2013
Custom buttons are how you program it.
 

Posted Tue 17 Mar 20 @ 8:25 pm
And from the Customs are put it in the FX?
 

Posted Tue 17 Mar 20 @ 8:57 pm
locodogPRO InfinityModeratorMember since 2013
yes that's it.

here's the script, all of it in one go, let me know how it goes.

get_text "effect_slider 'efd' 1 & param_cast & effect_slider 'echo' 1" & param_cast 'text' & effect_string 'efd' 1 & get_text "get_effect_slider_text 'echo' 1" & param_cast 'text' & effect_string 'efd' 2 & get_text "effect_slider 'efd' 2 & param_cast & effect_slider 'flanger' 2" & param_cast 'text' & effect_string 'efd' 3 & get_text "get_effect_slider_text 'flanger' 2" & param_cast 'text' & effect_string 'efd' 4 & get_text "effect_slider 'efd' 3 & param_cast & effect_slider 'distortion' 2" & param_cast 'text' & effect_string 'efd' 5 & get_text "get_effect_slider_text 'distortion' 2" & param_cast 'text' & effect_string 'efd' 6 & get_text "effect_button 'efd' 1 off ? effect_active 'echo' off & effect_button 'efd' 1 off ? effect_button 'efd' 2 off ? effect_button 'efd' 3 off ? effect_active 'efd' off : : : : effect_active 'echo' on" & param_cast 'text' & effect_string 'efd' 7 & get_text "effect_button 'efd' 2 off ? effect_active 'flanger' off & effect_button 'efd' 1 off ? effect_button 'efd' 2 off ? effect_button 'efd' 3 off ? effect_active 'efd' off : : : : effect_active 'flanger' on" & param_cast 'text' & effect_string 'efd' 8 & get_text "effect_button 'efd' 3 off ? effect_active 'distortion' off & effect_button 'efd' 1 off ? effect_button 'efd' 2 off ? effect_button 'efd' 3 off ? effect_active 'efd' off : : : : effect_active 'distortion' on" & param_cast 'text' & effect_string 'efd' 9 & get_text "effect_button 'efd' 1 1 & effect_button 'efd' 2 1 & effect_button 'efd' 3 1" & param_cast 'text' & effect_string 'efd' 10 & get_text "effect_button 'efd' 1 0 & effect_button 'efd' 2 0 & effect_button 'efd' 3 0" & param_cast 'text' & effect_string 'efd' 11
 

Posted Tue 17 Mar 20 @ 9:06 pm
Ok I have understand now how it works.
Have test it firt on Custom Buttons in my own Skin , there are Customs in the Master FX Panel .
Now I have test it on the Default Skin.. Have seen it work only on the same Deck where the FX is in the slot , when I have the Virtual FX (EFD) in Deck 1 than I must use the Customs in Deck 1 ;-)
Ok thats a good one thing you have make , Controlling more FX at the same time , and make one FX from many ;-)
Thank You
 

Posted Tue 17 Mar 20 @ 9:35 pm
locodogPRO InfinityModeratorMember since 2013
Cool, we got there :)

yes , 3 in 1 fx are one of the things you can make with this, but there are other things you could make, like your own quick fx presets

stuff like EchoHP, EchoLP
Or maybe simple stuff like making your own 'cut' effect but swap the dials round, so beats is dial 1.

I've got an idea for code words so you can do beat timed things but any input from users with what you'd want to do or think it should do are welcome.
 

Posted Tue 17 Mar 20 @ 10:30 pm
locodog wrote :
Cool, we got there :)

yes , 3 in 1 fx are one of the things you can make with this, but there are other things you could make, like your own quick fx presets

stuff like EchoHP, EchoLP
Or maybe simple stuff like making your own 'cut' effect but swap the dials round, so beats is dial 1.

I've got an idea for code words so you can do beat timed things but any input from users with what you'd want to do or think it should do are welcome.


Cool thats fine :-)
 

Posted Tue 17 Mar 20 @ 11:06 pm
locodogPRO InfinityModeratorMember since 2013
So I was wanting to make a bandpass filter, but the maths for the c++ is pretty involved so I made this instead.

I called it "filterBP", it uses the lp & hp filters, I might add in a quick sweep for on and off but this is nice enough.
Dial 1 is sort of frequency, dial 2 is sort of Q value, and dial 3 is resonance. Interesting to play with dials 1 & 2 at the same time.

get_text "effect_slider 'filterBP' 1 & param_cast 'float' & set 'VALUE1' & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply 0.5 & param_cast 'float' & set 'VALUE2'  & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply -0.5 & param_cast 'float' & set 'VALUE3' &  param_add 'get_var VALUE1 & param_invert' 'get_var VALUE2' & param_cast 'float' & effect_slider 'filter lp' 1 & param_add 'get_var VALUE1' 'get_var VALUE3' & param_cast 'float' & effect_slider 'filter hp' 1" & param_cast 'text' & effect_string 'filterBP' 1 & get_text "effect_slider 'filterBP' 1 & param_cast 'float' & set 'VALUE1' & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply 0.5 & param_cast 'float' & set 'VALUE2'  & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply -0.5 & param_cast 'float' & set 'VALUE3' &  param_add 'get_var VALUE1 & param_invert' 'get_var VALUE2' & param_cast 'float' & effect_slider 'filter lp' 1 & param_add 'get_var VALUE1' 'get_var VALUE3' & param_cast 'float' & effect_slider 'filter hp' 1" & param_cast 'text' & effect_string 'filterBP' 3 & get_text "effect_slider 'filterBP' 3 & param_cast & effect_slider 'filter hp' 2 & param_multiply 0 & nothing & effect_slider 'filterBP' 3 & param_cast & effect_slider 'filter lp' 2" & param_cast 'text' & effect_string 'filterbp' 5 & get_text "effect_slider 'filterbp' 1 +0 & effect_active 'filter hp' on & effect_active 'filter lp' on" & param_cast 'text' & effect_string 'filterbp' 10 & & get_text "effect_active 'filter hp' off & effect_active 'filter lp' off" & param_cast 'text' & effect_string 'filterbp' 11
 

Posted Thu 19 Mar 20 @ 5:11 pm
locodogPRO InfinityModeratorMember since 2013
Unreal download numbers [looking at 9k in the first 30 days], I can see general vdj downloads are up right now [suggests lots of new users] and this addon sort of games the download count as users will dl multiple copies.

but I'd love to see what kind of ideas you guys are building, there's probably loads of wonderfully weird uses I never thought of.
 

Posted Tue 14 Apr 20 @ 3:01 am
Wow, I can't do it, I don't understand English fluently so I'm using Gloogle Translate and the translation is a bit confusing, I even lost my patience but I'll try another day.
Thanx bro
 

Posted Mon 20 Apr 20 @ 9:57 pm
locodogPRO InfinityModeratorMember since 2013
what do you see on screen, [the fx gui] are you getting the strings across?

I have another one coming soon I've been side tracked with another project.
 

Posted Mon 20 Apr 20 @ 10:32 pm
locodogPRO InfinityModeratorMember since 2013
This one is a little different, change the name of virtualfx.dll to VTT.dll, also change virtualfx.ini to VTT.ini
and this down here is the stuff you want to copy into the .ini file

the fx toggles the negative video fx on & off in a timed way, how long inbetween is decided by dial 1

[autoparams]
Slider DIAL A 0=2513
String DIAL A 1=param_bigger 'effect_slider VTT 1' 0.16 ? set 'VTTvar1' 1 : param_bigger 'effect_slider VTT 1' 0.32 ? set 'VTTvar1' 2 : param_bigger 'effect_slider VTT 1' 0.48 ? set 'VTTvar1' 4 : param_bigger 'effect_slider VTT 1' 0.64 ? set 'VTTvar1' 8 : param_bigger 'effect_slider VTT 1' 0.80 ? set 'VTTvar1' 16 : set 'VTTvar1' 32
String LABEL A 3=param_multiply 'get_var VTTvar1' 0.125 & param_cast '0.000'
Slider DIAL B 2=2048
String DIAL B 5=
String LABEL B 6=
Slider DIAL C 4=2048
String DIAL C 7=
String LABEL C 12=
Switch BUTTON 1 8=1
String BUTTON 1 13=
Switch BUTTON 2 9=1
String BUTTON 2 14=set VTTvar3 `get_bpm & param_1_x & param_multiply 7500`
Switch BUTTON 3 10=0
String BUTTON 3 15=
String OnStart 16=effect_button 'VTT' 2 & effect_slider 'VTT' 1 +0.0 & get_text "repeat_start_instant 'VTTrsi' `get_var VTTvar3`ms -1 & var VTTvar2 0 ? set VTTvar2 +1 & effect_active negative on : cycle VTTvar2 256 & param_mod 'get_var VTTvar1' 'get_var VTTvar2' & param_cast & param_equal 0 ? effect_active negative toggle : nothing" & param_cast 'text' & effect_string 'VTT' 7 & effect_button 'VTT' 1 toggle & set VTTvar2 0
String OnStop 17=repeat_stop 'VTTrsi' & effect_active negative off

 

Posted Thu 23 Apr 20 @ 10:45 am
locodogPRO InfinityModeratorMember since 2013
This one is to change AOV shaders at a different rate than the preset 32
dial 1 picks 1,2,4,8,16,32,64
grab a copy of virtualfx, rename the dll & ini to AOVss

fill the ini file with this code


[autoparams]
Slider DIAL A 0=0
String DIAL A 1=set 'AOVvar1' `effect_slider 'aovss' 1 & param_multiply 6 & param_cast 'int_trunc'1`
String LABEL A 3=param_pow 'get_var AOVvar1' 2
Slider DIAL B 2=2048
String DIAL B 5=
String LABEL B 6=
Slider DIAL C 4=2048
String DIAL C 7=
String LABEL C 12=
Switch BUTTON 1 8=0
String BUTTON 1 13=
Switch BUTTON 2 9=0
String BUTTON 2 14=
Switch BUTTON 3 10=0
String BUTTON 3 15=
String OnStart 16= set 'AOVdoOnce' 0 & effect_slider 'AOVss' 1 +0.0 & repeat_start_instant 'AOVrsi' 25ms -1 & var 'AOVvar1' 0 ? deck master get_beat_bar 1 & param_smaller 0.125 ? var AOVdoOnce 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 : var 'AOVvar1' 1 ? deck master get_beat_bar 2 & param_smaller 0.125 ? var 'AOVdoOnce' 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 : var 'AOVvar1' 2 ? deck master get_beat_bar 4 & param_smaller 0.5 ? var 'AOVdoOnce' 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 : var 'AOVvar1' 3 ? deck master get_beat_bar 8 & param_smaller 0.5 ? var 'AOVdoOnce' 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 : var 'AOVvar1' 4 ? deck master get_beat_bar 16 & param_smaller 0.5 ? var 'AOVdoOnce' 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 : var 'AOVvar1' 5 ? deck master get_beat_bar 32 & param_smaller 0.5 ? var 'AOVdoOnce' 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 : var 'AOVvar1' 6 ? deck master get_beat_bar 64 & param_smaller 0.5 ? var 'AOVdoOnce' 0 ? effect_string 'audioonlyvisualisation' 1 +1 & set 'AOVdoOnce' 1 : nothing : set 'AOVdoOnce' 0 :
String OnStop 17=repeat_stop 'AOVrsi'

 

Posted Fri 24 Apr 20 @ 1:15 pm
locodogPRO InfinityModeratorMember since 2013
bit of a rework for filterBP
name both the .dll & .ini to
filterBP

This has a 8 beat sweep when you switch the fx on
here's the code for the .ini

[autoparams]
Slider DIAL A 0=1931
String DIAL A 1=effect_slider 'filterBP' 1 & param_cast 'float' & set 'VALUE1' & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply 0.5 & param_cast 'float' & set 'VALUE2' & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply -0.5 & param_cast 'float' & set 'VALUE3' & param_add 'get_var VALUE1 & param_invert' 'get_var VALUE2' & param_cast 'float' & effect_slider 'filter lp' 1 & param_add 'get_var VALUE1' 'get_var VALUE3' & param_cast 'float' & effect_slider 'filter hp' 1
String LABEL A 3=
Slider DIAL B 2=1536
String DIAL B 5=effect_slider 'filterBP' 1 & param_cast 'float' & set 'VALUE1' & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply 0.5 & param_cast 'float' & set 'VALUE2' & param_multiply 0 & nothing & effect_slider 'filterBP' 2 & param_multiply -0.5 & param_cast 'float' & set 'VALUE3' & param_add 'get_var VALUE1 & param_invert' 'get_var VALUE2' & param_cast 'float' & effect_slider 'filter lp' 1 & param_add 'get_var VALUE1' 'get_var VALUE3' & param_cast 'float' & effect_slider 'filter hp' 1
String LABEL B 6=
Slider DIAL C 4=3118
String DIAL C 7=effect_slider 'filterBP' 3 & param_cast & effect_slider 'filter hp' 2 & param_multiply 0 & nothing & effect_slider 'filterBP' 3 & param_cast & effect_slider 'filter lp' 2
String LABEL C 12=
Switch BUTTON 1 8=1
String BUTTON 1 13=
Switch BUTTON 2 9=0
String BUTTON 2 14=
Switch BUTTON 3 10=0
String BUTTON 3 15=
String OnStart 16=effect_slider 'filterBP' 1 +0.0% & effect_slider 'filterBP' 2 +0.0% & set 'HPval' `effect_slider 'filter hp' 1` & set 'LPval' `effect_slider 'filter lp' 1` & effect_slider 'filter hp' 1 0 & effect_slider 'filter lp' 1 0 & effect_active 'filter hp' 1 & effect_active 'filter lp' 1 & get_text "repeat_start_instant 'rsiAutoSlide' 32ms -1 & effect_slider 'filter hp' 1 +`get_bpm & param_1_x & param_multiply 15000 & param_1_x & param_multiply 'get_var HPval' & param_cast '0.000000'` & effect_slider 'filter lp' 1 +`get_bpm & param_1_x & param_multiply 15000 & param_1_x & param_multiply 'get_var LPval' & param_cast '0.000000'` & nothing & effect_slider 'filter hp' 1 & param_cast & set HPliveVal & param_bigger 'get_var HPval' 'get_var HPliveVal' ? repeat_stop 'rsiAutoSlide'" & param_cast 'text' & effect_string 'filterBP' 7 & effect_button 'filterBP' 1 on
String OnStop 17=effect_active 'filter hp' off & effect_active 'filter lp' off
 

Posted Mon 27 Apr 20 @ 12:34 am
locodogPRO InfinityModeratorMember since 2013
this one is a beat duration timed [dial1] fx on/fx off, gradual sweep of the noise fx from a dial position [dial2] to a dial position [dial3] while it's doing the slider thing you could be scratching or doing another fx

I call it sweepNoise, [so should you, if you want it to work]
here's the .ini to make it do stuff

[autoparams]
Slider DIAL A 0=3600
String DIAL A 1=set 'SweepNoisevar1' `effect_slider 'sweepNoise' 1 & param_multiply 5 & param_cast 'int_trunc'` & set 'SweepNoisevar1' `param_pow 'get_var SweepNoisevar1' 2`
String LABEL A 3=get_var SweepNoisevar1
Slider DIAL B 2=200
String DIAL B 5=effect_slider 'sweepNoise' 2 & param_cast & effect_slider 'noise' 1 & set sweepNoiseStart `param_multiply 'effect_slider noise 1' -1`
String LABEL B 6=get effect_slider_text 'noise' 1
Slider DIAL C 4=2048
String DIAL C 7=effect_slider 'sweepNoise' 3 & param_cast & effect_slider 'noise' 1 & set sweepNoiseEnd `effect_slider noise 1`
String LABEL C 12=get effect_slider_text 'noise' 1
Switch BUTTON 1 8=1
String BUTTON 1 13=
Switch BUTTON 2 9=0
String BUTTON 2 14=
Switch BUTTON 3 10=0
String BUTTON 3 15=
String OnStart 16=effect_slider 'sweepNoise' 1 +0.0% & effect_slider 'sweepNoise' 3 +0.0% & effect_slider 'sweepNoise' 2 +0.0% & set sweepNoiseDiff `param_add 'get_var sweepNoiseEnd' 'get_var sweepNoiseStart'` & var_smaller sweepNoiseDiff 0 ? get_text "repeat_start_instant 'rsiSweepNoise' 32ms -1 & effect_slider 'noise' 1 `get_bpm & param_1_x & param_multiply 1875 & param_multiply 'get_var SweepNoisevar1' & param_1_x & param_multiply 'get_var sweepNoiseDiff' & param_cast '0.000000' & param_cast 'relative'` & nothing & effect_slider 'noise' 1 & param_cast & set NoiseliveVal & param_bigger 'get_var NoiseliveVal' 'get_var sweepNoiseEnd' ? effect_active 'sweepNoise' off & repeat_stop 'rsiSweepNoise' : var_equal 'NoiseliveVal' 'sweepNoiseEnd' ? effect_active 'sweepNoise' off & repeat_stop 'rsiSweepNoise'" & param_cast 'text' & effect_string 'sweepNoise' 7 & effect_button 'sweepNoise' 1 on & effect_active 'noise' on : get_text "repeat_start_instant 'rsiSweepNoise' 32ms -1 & effect_slider 'noise' 1 +`get_bpm & param_1_x & param_multiply 1875 & param_multiply 'get_var SweepNoisevar1' & param_1_x & param_multiply 'get_var sweepNoiseDiff' & param_cast '0.000000' & param_cast 'relative'` & nothing & effect_slider 'noise' 1 & param_cast & set NoiseliveVal & param_smaller 'get_var NoiseliveVal' 'get_var sweepNoiseEnd' ? effect_active 'sweepNoise' off & repeat_stop 'rsiSweepNoise' : var_equal 'NoiseliveVal' 'sweepNoiseEnd' ? effect_active 'sweepNoise' off & repeat_stop 'rsiSweepNoise'" & param_cast 'text' & effect_string 'sweepNoise' 7 & effect_button 'sweepNoise' 1 on & effect_active 'noise' on
String OnStop 17=effect_active 'noise' off

 

Posted Tue 28 Apr 20 @ 5:58 pm
DJJDROXPRO InfinityMember since 2014
VERY COOL! Nice work. I'm trying to play around but as I'm screwing with some the settings / dials I have a difficult time getting it back to your defaults w/o copying the params over again. I only have 2 dials on my skin and it's a bit over my head with the FX flyout panel. Is there a reset to get back to your default? Also what's going on with the flyout and all of the buttons. This effect seems to work on the track I'm fading INTO - what's your take? I'm just cracking the surface but love the idea of what the capabilities are!
 

Posted Thu 30 Apr 20 @ 9:25 pm
locodogPRO InfinityModeratorMember since 2013
To clear all the effect_strings needs a very quick double tap on the clear button.
I kind of agree the single fx skin display could be better, but I try to make dial 3 something you might only adjust rarely.
The default settings are all dials at 12, but that's just virtualfx and not related to the "new.ini" variations, I suppose if you wanted to to could have a reset to default button on the fx, if you had a button spare.

Buttons on the fx gui for SweepNoise and some others are there to take advantage of the "get_text" action in vdj script,
anything script inside ` ` in a get_text action is converted to a number, so it means you can use variables in ways that normal scripting wouldn't allow.
But once you have built a script with get_text, you have to send that script somewhere to be called, [unfortunately there is no action like this that could call it, param_cast 'script_string'] so the string is built by the onStart and sent to a button, onStart also presses the button to call the script.

The whole thing is very open ended, so some uses I have don't use sliders or buttons at all, the fx just holds a script without using a custom button/pad/controller key. Others when called will unload themselves and call in other fx with certain presets in its place.
There's probably loads of uses I haven't even thought of yet
the one thing I'm going to update is slider update on load, just a little thing that annoys me.

thanks for the feedback.
 

Posted Fri 01 May 20 @ 10:34 am
35%