update for x64 pending Atomix review, I haven't bothered with x86 I think those days have probably passed.
new version is more of the same but char limits have been increased, 8k for buttons/sliders/onStart/onStop, plus a new buffer script, once a buffer it will call a script if you want it.
the char limit for dial evaluation scripts has been increased to 2k.
char limit for dial results is still limited to 10 chars.
I have a mac M2 coder looking a porting, but macs coding policy is techno feudalism at this point and I'm not paying apple a verification fee. So if it is made it won't be openly released but we can do the pm thing.
new version is more of the same but char limits have been increased, 8k for buttons/sliders/onStart/onStop, plus a new buffer script, once a buffer it will call a script if you want it.
the char limit for dial evaluation scripts has been increased to 2k.
char limit for dial results is still limited to 10 chars.
I have a mac M2 coder looking a porting, but macs coding policy is techno feudalism at this point and I'm not paying apple a verification fee. So if it is made it won't be openly released but we can do the pm thing.
Inviato Fri 24 Nov 23 @ 4:32 am
Update for x64 is live, the previous version is fine, this update is just bigger char limits and the buffer script.
The buffer script runs faster than rsi scripts,
I'm going to check in with the mac guy today.
The buffer script runs faster than rsi scripts,
I'm going to check in with the mac guy today.
Inviato Wed 29 Nov 23 @ 6:33 pm
first one with the buffer script, this one increases hp & lp filters over a duration then switches off.
The duration is the default loop size.
I haven't give it a name yet, I suppose I should, I'll call it
bpClose
name the ini and a recent copy of virtualfx to bpClose
bpClose.ini
The ini script isn't quite as neat as usual, [more intermediary values then is strictly necessary] that's because I 'programmed' the ini from inside vdj with a custom_button.
Since I have it, I'll share that too
custom_button
string 10 is on fx start
string 12 is buffer script
string 11 is fx stop
I checked in with my mac guy the other day, we hit a snag but we walked back a bit and I think we'll have it soon for Mac Arm [I'll ask if he can bake a mac intel version too]
The duration is the default loop size.
I haven't give it a name yet, I suppose I should, I'll call it
bpClose
name the ini and a recent copy of virtualfx to bpClose
bpClose.ini
[autoparams]
Slider DIAL A 0=2048
String DIAL A 1=
String LABEL A 2=
Slider DIAL B 3=2048
String DIAL B 4=
String LABEL B 5=
Slider DIAL C 6=2048
String DIAL C 8=
String LABEL C 7=
Switch BUTTON 1 9=0
String BUTTON 1 10=
Switch BUTTON 2 11=0
String BUTTON 2 12=
Switch BUTTON 3 13=0
String BUTTON 3 14=
String OnStart 16=set startpos `get_beatpos` & set endpos `param_add 'get_var startpos' 'get_loop'` & set passage `get_loop` & effect_slider 'filter lp' 1 0.0 & effect_active 'filter lp' on & effect_slider 'filter hp' 1 0.0 & effect_active 'filter hp' on
String OnStop 17=effect_active 'filter lp' off & effect_slider 'filter lp' 1 0.0 & effect_active 'filter hp' off & effect_slider 'filter hp' 1 0.0
String Buffer 18=set current `param_add 'get_var startpos & param_multiply -1' 'get_beatpos'` & set multiplier `param_multiply 'get_var current' 'get_var passage & param_1_x'` & get_var multiplier & param_cast & effect_slider 'filter lp' 1 & get_var multiplier & param_cast & effect_slider 'filter hp' 1 & param_bigger 1.0 'get_var multiplier' ? effect_active bpClose off
The ini script isn't quite as neat as usual, [more intermediary values then is strictly necessary] that's because I 'programmed' the ini from inside vdj with a custom_button.
Since I have it, I'll share that too
custom_button
effect_string bpClose 10 "set startpos `get_beatpos` & set endpos `param_add 'get_var startpos' 'get_loop'` & set passage `get_loop` & effect_slider 'filter lp' 1 0.0 & effect_active 'filter lp' on & effect_slider 'filter hp' 1 0.0 & effect_active 'filter hp' on" &
effect_string bpClose 12 "set current `param_add 'get_var startpos & param_multiply -1' 'get_beatpos'` & set multiplier `param_multiply 'get_var current' 'get_var passage & param_1_x'` & get_var multiplier & param_cast & effect_slider 'filter lp' 1 & get_var multiplier & param_cast & effect_slider 'filter hp' 1 & param_bigger 1.0 'get_var multiplier' ? effect_active virtualfx off" &
effect_string bpClose 11 "effect_active 'filter lp' off & effect_slider 'filter lp' 1 0.0 & effect_active 'filter hp' off & effect_slider 'filter hp' 1 0.0"
string 10 is on fx start
string 12 is buffer script
string 11 is fx stop
I checked in with my mac guy the other day, we hit a snag but we walked back a bit and I think we'll have it soon for Mac Arm [I'll ask if he can bake a mac intel version too]
Inviato Wed 06 Dec 23 @ 1:04 am
A while back on page one I made an effect called sweepNoise, technically it was quite interesting how it worked script wise [rsi took advantage of get_text parsing values inside ` ` and then sending all that to a button string, then pressing the button to do the thing.
Interesting but overly complicated.
We've moved on now, rsi not needed as we have the buffer string now, and the complicated sending a string to the button avoided, [which I probably done in the first place]
This is pretty much the blueprint for - I want an fx on for a duration, in that duration I want a slider to move from somewhere to somewhere.
this case like the first it's the noise fx moving the dial from 0.5 to 1.0, but it can be any point to point by tweaking the multiply and the add values.
still an unimaginative .dll & .ini name,
I called this one noiseSweep
PS I'm still wondering about the mac port, maybe the guy is busy, I hope he hasn't given up.
Interesting but overly complicated.
We've moved on now, rsi not needed as we have the buffer string now, and the complicated sending a string to the button avoided, [which I probably done in the first place]
This is pretty much the blueprint for - I want an fx on for a duration, in that duration I want a slider to move from somewhere to somewhere.
this case like the first it's the noise fx moving the dial from 0.5 to 1.0, but it can be any point to point by tweaking the multiply and the add values.
still an unimaginative .dll & .ini name,
I called this one noiseSweep
[autoparams]
Slider DIAL A 0=4095
String DIAL A 1=set noiseLength `param_pow 'effect_slider noiseSweep 1 & param_multiply 6 & param_cast int_trunc' 2`
String LABEL A 2=get_text "`get_var noiseLength`bt"
Slider DIAL B 3=4095
String DIAL B 4=
String LABEL B 5=
Slider DIAL C 6=0
String DIAL C 8=
String LABEL C 7=
Switch BUTTON 1 9=0
String BUTTON 1 10=
Switch BUTTON 2 11=0
String BUTTON 2 12=
Switch BUTTON 3 13=0
String BUTTON 3 14=
String OnStart 16=effect_slider noiseSweep 1 +0% & set noiseSweepStartpos `get_beatpos` & set noiseSweepPassage `get_var noiseLength` & effect_slider noise 1 0.5 & effect_active noise on
String OnStop 17=effect_active noise off & effect_slider noise 1 0.5
String Buffer 18=set noiseSweepCurrent `param_add 'get_var noiseSweepStartpos & param_multiply -1' 'get_beatpos'` & set noiseSweepMultiplier `param_multiply 'get_var noiseSweepCurrent' 'get_var noiseSweepPassage & param_1_x'` & set noiseSweepMultiplier `param_multiply 0.5 'get_var noiseSweepMultiplier' & param_add 0.5` & get_var noiseSweepMultiplier & param_cast & effect_slider noise 1 & param_bigger 1.0 'get_var noiseSweepMultiplier' ? effect_active noiseSweep off
PS I'm still wondering about the mac port, maybe the guy is busy, I hope he hasn't given up.
Inviato Tue 12 Dec 23 @ 9:13 am
Mac port has been successful, expect it just after new year [a few of my plugins will change licence restrictions at that time too].
In anticipation, I've rewrote the original post with a reasonably deep guide how to use this,
unfortunately somewhere between builds I changed my numbering scheme, so I have to check and edit all previous posts :/
In anticipation, I've rewrote the original post with a reasonably deep guide how to use this,
unfortunately somewhere between builds I changed my numbering scheme, so I have to check and edit all previous posts :/
Inviato Sat 16 Dec 23 @ 12:11 pm
a bit more editing of the original post
Inviato Mon 18 Dec 23 @ 6:09 am
name it, vfxBrakeStart.dll & .ini, nothing fancy just brakeStart that goes upto 20s instead of 12s
here's the .ini to program it
if you're reading to understand it
dial = 2^dialVal * 20 gives a time in seconds 0.0-20.0, saved as a var.
label = just that var with a "s" stuck on the end
onStart = save current setting of rampStartTime & rampStopTime in their own vars, then overwrite those settings with our dial var, play_pause, then a rsi to turn the fx off after dial 1 var duration
onStop = send our 2 saved ramp vars back to ramp settings, and just in case kill the rsi if user spams on/off before the fx has finished naturally.
here's the .ini to program it
if you're reading to understand it
dial = 2^dialVal * 20 gives a time in seconds 0.0-20.0, saved as a var.
label = just that var with a "s" stuck on the end
onStart = save current setting of rampStartTime & rampStopTime in their own vars, then overwrite those settings with our dial var, play_pause, then a rsi to turn the fx off after dial 1 var duration
onStop = send our 2 saved ramp vars back to ramp settings, and just in case kill the rsi if user spams on/off before the fx has finished naturally.
[autoparams]
Slider DIAL A 0=4095
String DIAL A 1=set vfxBSlength `param_pow 2 'effect_slider vfxBrakeStart 1'` & set vfxBSlength `param_multiply 'get_var vfxBSlength' 20`
String LABEL A 2=get_text '`get_var vfxBSlength`s'
Slider DIAL B 3=2048
String DIAL B 4=
String LABEL B 5=
Slider DIAL C 6=2048
String DIAL C 8=
String LABEL C 7=
Switch BUTTON 1 9=0
String BUTTON 1 10=
Switch BUTTON 2 11=0
String BUTTON 2 12=
Switch BUTTON 3 13=0
String BUTTON 3 14=
String OnStart 16=set '$rampStart' `setting rampStartTime` & set '$rampStop' `setting rampStoptime` & get_var vfxBSlength & param_cast & setting rampStartTime & get_var vfxBSlength & param_cast & setting rampStopTime & play_pause & var vfxBSlength 0 ? effect_active vfxBrakeStart off : repeat_start 'rsivfxBS' `param_multiply 1000 'get_var vfxBSlength'` 1 & effect_active vfxBrakeStart off
String OnStop 17=get_var '$rampStart' & param_cast & setting rampStartTime & get_var '$rampStop' & param_cast & setting rampStopTime & repeat_stop 'rsivfxBS'
String Buffer 18=
Inviato Sun 07 Jan 24 @ 4:08 am
And all platforms are live, thanks to P.Roma for the mac ports and thanks to the reviewers. :)
Inviato Mon 08 Jan 24 @ 6:57 pm
Hi guys, coming over from my Pioneer Flanger Sound topic the virtualFX Plugin seems to have the most potential to me.
https://virtualdj.com/forums/256494/VirtualDJ_Technical_Support/Flagnger_Sound_DDJ_FLX10_vs_DDJ-1000SRT.html
I'd tried a bit around an can activate the other effect but I'm already stuck to dial another's FX knob.
Well it does activate the TAL-Flanger, but doesnt move any knob, anyway i've tried to move TAL-Flanger 7th knob.
Here is the *.ini of TAL-Flanger
https://virtualdj.com/forums/256494/VirtualDJ_Technical_Support/Flagnger_Sound_DDJ_FLX10_vs_DDJ-1000SRT.html
I'd tried a bit around an can activate the other effect but I'm already stuck to dial another's FX knob.
Well it does activate the TAL-Flanger, but doesnt move any knob, anyway i've tried to move TAL-Flanger 7th knob.
Slider DIAL A 0=0
String DIAL A 1=effect_slider 'TAL-Flanger' 7
String LABEL A 2='Dry Wet'
Slider DIAL B 3=0
String DIAL B 4=
String LABEL B 5=
Slider DIAL C 6=2048
String DIAL C 8=
String LABEL C 7=
Switch BUTTON 1 9=0
String BUTTON 1 10=
Switch BUTTON 2 11=0
String BUTTON 2 12=
Switch BUTTON 3 13=0
String BUTTON 3 14=
String OnStart 16=effect_active 'TAL-Flanger'
String OnStop 17=effect_active 'TAL-Flanger'
String Buffer 18=
Here is the *.ini of TAL-Flanger
Slider Param 0=0
Slider SPEED 1=0
Slider SYNC_SPEED 2=0
Slider DEPTH 3=1822
Slider DELAY 4=2416
Slider PHASE 5=3481
Slider FEEDBACK 6=2744
Slider DRYWET 7=2048
Slider VOLUME 8=3583
Slider Param 9=0
Slider Param 10=0
Slider Param 11=0
Slider Param 12=0
Slider Param 13=0
Slider Param 14=0
Slider Param 15=0
Slider Param 16=0
Slider Param 17=0
Slider Param 18=0
Slider Param 19=0
Slider Param 20=0
Slider Param 21=0
Inviato Tue 16 Jan 24 @ 6:00 pm
String DIAL A 1=effect_slider 'TAL-Flanger' 7
is missing a thing, remember
String DIAL A 1=effect_slider "YOURVIRTUALFXNAME" 1 & param_cast & effect_slider 'TAL-Flanger' 7
is missing a thing, remember
original post wrote :
...dials, remember how I said the script doesn't know anything about our dials other than it was touched recently, so our dial 1 we have to pass [cast] this value to our chosen external dial...
String DIAL A 1=effect_slider "YOURVIRTUALFXNAME" 1 & param_cast & effect_slider 'TAL-Flanger' 7
Inviato Tue 16 Jan 24 @ 6:08 pm
Thank you alot! That was the missing point of understanding your tutorial at the beginning, now it works like a charm. Now looking to get a sinus modulation on depth width and delay based on effect_beats parameter and that should be the pioneer sound.
Inviato Tue 16 Jan 24 @ 6:19 pm
please don't quote my entire message when I'm the reply directly above and we're posting 10 minutes apart, it's not needed and it just clutters the thread.
Inviato Tue 16 Jan 24 @ 6:29 pm
locoDog wrote :
I call this one catchSpin, here's the .ini
I call this one catchSpin, here's the .ini
So on Mac OS, Virtual FX Seems to work with .ini files that contain the standard virtual fx script format.
i.e [autoparams]
Slider DIAL A 0=2048
String DIAL A 1=
String LABEL A 2=
Slider DIAL B 3=2048
String DIAL B 4=
String LABEL B 5=
Slider DIAL C 6=2048
String DIAL C 8=
String LABEL C 7=
Switch BUTTON 1 9=0
String BUTTON 1 10=
Switch BUTTON 2 11=0
String BUTTON 2 12=
Switch BUTTON 3 13=0
String BUTTON 3 14=
String OnStart 16=
String OnStop 17=
String Buffer 18=
Anything esle not following this format in the .ini file doesnt work. I will give you an example using the catchspin plugin.
the Instruction was to delete everything in the .ini file and replace it with the script posted by Locodog quoted above. That doesnt seem to work as intended . Instead after re-opening the .ini file for catchspin , i find that new additions have been added to the file despite everything being deleted initially. See Snippets below.
Script 1 is the Intended Script : autoparams]
String OnStart 16=set 'howMany' 0 & set 'trackT' `get_time 'elapsed' 44100` & repeat_start 'CatchSpin' 30ms & param_bigger "get_time 'elapsed' 44100" "get_var 'trackT'" ? set 'trackT' `get_time 'elapsed' 44100` & var 'howMany' 2 ? gain -22% & cycle 'howMany' 1000 & effect_button 'echo' 2 1 & effect_active "echo" & set 'beatvar' `get_bpm & param_1_x & param_multiply 60000 & get_var 'beatvar'` & param_cast "ms" & repeat_start 'rsiOnebeat' & effect_active 'echo' off & repeat_stop 'rsiOnebeat' : cycle 'howMany' 1000 : set 'trackT' `get_time 'elapsed' 44100` & var_smaller 'howMany' 3 ? set 'howMany' 0 : gain +22% & set 'howMany' 0
String OnStop 17=repeat_stop 'CatchSpin'
Script 2 is what is generated after saving and trying to use the effect.[autoparams]
String OnStart 16=set 'howMany' 0 & set 'trackT' `get_time 'elapsed' 44100` & repeat_start 'CatchSpin' 30ms & param_bigger "get_time 'elapsed' 44100" "get_var 'trackT'" ? set 'trackT' `get_time 'elapsed' 44100` & var 'howMany' 2 ? gain -22% & cycle 'howMany' 1000 & effect_button 'echo' 2 1 & effect_active "echo" & set 'beatvar' `get_bpm & param_1_x & param_multiply 60000 & get_var 'beatvar'` & param_cast "ms" & repeat_start 'rsiOnebeat' & effect_active 'echo' off & repeat_stop 'rsiOnebeat' : cycle 'howMany' 1000 : set 'trackT' `get_time 'elapsed' 44100` & var_smaller 'howMany' 3 ? set 'howMany' 0 : gain +22% & set 'howMany' 0
String OnStop 17=repeat_stop 'CatchSpin'
Slider DIAL A 0=2048
String DIAL A 1=
String LABEL A 2=
Slider DIAL B 3=2048
String DIAL B 4=
String LABEL B 5=
Slider DIAL C 6=2048
String DIAL C 8=
String LABEL C 7=
Switch BUTTON 1 9=0
String BUTTON 1 10=
Switch BUTTON 2 11=0
String BUTTON 2 12=
Switch BUTTON 3 13=0
String BUTTON 3 14=
String Buffer 18=
All other .ini scripts/files that i have tried on this particular topic seem to work perfectly (examples brakeNRoll,sWingIT etc etc.
What am i doing wrong, why is catch spin not working, could this be a bug with the macos version? . Does the catchspin .ini script need to be re-written?
Any help will be much appreciated. Thanks
Inviato Mon 21 Oct 24 @ 9:42 pm
That's normal the stuff added is just params not used in the function on the script, all vdj has done is fill in the blanks with "this is blank"
let me just test catch spin again
seems to work here but I did spot a typo OnStop needs the word String before it.
let me just test catch spin again
seems to work here but I did spot a typo OnStop needs the word String before it.
Inviato Mon 21 Oct 24 @ 10:07 pm
locoDog wrote :
That's normal the stuff added is just params not used in the function on the script, all vdj has done is fill in the blanks with "this is blank"
let me just test catch spin again
seems to work here but I did spot a typo OnStop needs the word String before it.
let me just test catch spin again
seems to work here but I did spot a typo OnStop needs the word String before it.
Ok Great, thanks for Clarifying. By the way i have just been able to complete the porting of your "Detune" Plugin to Macos for apple silicon . I will share the .bundle file with you if you or anyone needs it : )
Inviato Mon 21 Oct 24 @ 10:38 pm
oh good on both counts,
send me the pm & I'll submit it on to the plugin review devs.
there is a problem with code blocks on this site. If you copy from the button it removes the RETURN chars, and that kind of makes sense some times like script when you user return to make it more readable, it's doesn't make sense for skin xml when you want to keep that readability , and it causes big problems for this plugin as RETURN chars actually mean end of entry.
So copy & pasting from this thread, drag - highlight - ctrl+c - ctrl+v
send me the pm & I'll submit it on to the plugin review devs.
there is a problem with code blocks on this site. If you copy from the button it removes the RETURN chars, and that kind of makes sense some times like script when you user return to make it more readable, it's doesn't make sense for skin xml when you want to keep that readability , and it causes big problems for this plugin as RETURN chars actually mean end of entry.
So copy & pasting from this thread, drag - highlight - ctrl+c - ctrl+v
Inviato Mon 21 Oct 24 @ 10:52 pm