Discussion about loopCount
Oh wow, and we're live.
LoopCount, 2 ways of looking at this,
1 the not really interested in script way of looking at it.
dial 1 is repeats count
dial 2 is length beats
dial 1 to 8 dial 2 to 1/2, start the fx, it will turn loop 0.5 on for a duration of 4 beats [8 * 0.5] and then the loop turns off,
...so it's like old loop out fx?..
...well it can do that, but the idea is more, call the fx with settings above and crank the hell out of the loop size, it still exits after 4 beats.
Button 1 ARM, when on waits for a loop to be called externally to start counting, off and it starts the loop and counting itself.
Button 2 INT_BTS, internal beats, off and it uses the external loop size to start.
Button 3 SLIP, just turns slip on while the fx is on.
That's it if you don't care about script, there's enough here to use and never care about the geeky stuff,
in fact even if you do care about script have a play as is, it took me about a week to find out how I like to use it for jungle fills.
I think it's too good to put any limitations on it, I honestly think everyone should have it. Mac users since I don't want to bother the good fella that has ported my other plugins, we'll get it absolutely right with pc and then I'll pester him.
As I said up for free, but TITBF is welcome.
some credit to phantomdj, he asked me to make this, I had something similar [loop sequence] but not working right, looking at it a different way and I ended up with what I was sort of thinking of in the first place.
Oh wow, and we're live.
LoopCount, 2 ways of looking at this,
1 the not really interested in script way of looking at it.
dial 1 is repeats count
dial 2 is length beats
dial 1 to 8 dial 2 to 1/2, start the fx, it will turn loop 0.5 on for a duration of 4 beats [8 * 0.5] and then the loop turns off,
...so it's like old loop out fx?..
...well it can do that, but the idea is more, call the fx with settings above and crank the hell out of the loop size, it still exits after 4 beats.
Button 1 ARM, when on waits for a loop to be called externally to start counting, off and it starts the loop and counting itself.
Button 2 INT_BTS, internal beats, off and it uses the external loop size to start.
Button 3 SLIP, just turns slip on while the fx is on.
That's it if you don't care about script, there's enough here to use and never care about the geeky stuff,
in fact even if you do care about script have a play as is, it took me about a week to find out how I like to use it for jungle fills.
I think it's too good to put any limitations on it, I honestly think everyone should have it. Mac users since I don't want to bother the good fella that has ported my other plugins, we'll get it absolutely right with pc and then I'll pester him.
As I said up for free, but TITBF is welcome.
some credit to phantomdj, he asked me to make this, I had something similar [loop sequence] but not working right, looking at it a different way and I ended up with what I was sort of thinking of in the first place.
发表时间 Sat 02 May 20 @ 11:37 am
2 The other way of looking at it; What are you doing?
Right if you care about script, if you can do stuff, this can do stuff
first off this fx spits out 2 variables, these variables are dynamically named [the .dll name makes part of the var name]
[dynamic naming because you could choose to make several copies of this fx to do different stuff]
var 'FXNAMERepeats'
keeps a track of repeats starts at 1, ends at 0. increases once every initial dial 2 duration.
var 'FXNAMEPercent'
keeps track of how much of the sequence has been performed, 0.0 to 1.0
4 effect_strings, [a lot of my future releases will have effect strings]
effect_string 1 is count script, it will execute once every count increase, every initial dial 2 duration.
effect_string 2 is buffer script, this will execute once a buffer, time isn't really important you assume that it is as fast as possible, this is an example to make a filter sweep using one of the variables it spits out
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & filter"
filter sweeps? so it's like current loop out? well it can be, BUT one thing mine can do that loop out cant is; no repeats, so you could have no loop fades over X beats and you can attach any fx slider
effect_string 3 is onStart script, effect_string 4 is onStop script, nothing fancy here but useful for 1 offs or bouncing get_texts to the first two effect_strings.
ok, notice how dial 1 goes up in 2^ ? maybe you want 12 repeats, well I got that, the rarely used effect_command
effect_command 'FXNAME' 1 "ANYNUMBER"
notice how dial 2 is boring 1/8th to 8/1, well, effect_beats
effect_beats 'FXNAME' WHATEVERBEATLENGTH
loop 0.33333 or 0.20000 or whatever
And one thing I just added
effect_command 2 to override the internal current count to another number [experimental use]
effect_command 'FXNAME' 2 "ANYNUMBER"
Right if you care about script, if you can do stuff, this can do stuff
first off this fx spits out 2 variables, these variables are dynamically named [the .dll name makes part of the var name]
[dynamic naming because you could choose to make several copies of this fx to do different stuff]
var 'FXNAMERepeats'
keeps a track of repeats starts at 1, ends at 0. increases once every initial dial 2 duration.
var 'FXNAMEPercent'
keeps track of how much of the sequence has been performed, 0.0 to 1.0
4 effect_strings, [a lot of my future releases will have effect strings]
effect_string 1 is count script, it will execute once every count increase, every initial dial 2 duration.
effect_string 2 is buffer script, this will execute once a buffer, time isn't really important you assume that it is as fast as possible, this is an example to make a filter sweep using one of the variables it spits out
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & filter"
filter sweeps? so it's like current loop out? well it can be, BUT one thing mine can do that loop out cant is; no repeats, so you could have no loop fades over X beats and you can attach any fx slider
effect_string 3 is onStart script, effect_string 4 is onStop script, nothing fancy here but useful for 1 offs or bouncing get_texts to the first two effect_strings.
ok, notice how dial 1 goes up in 2^ ? maybe you want 12 repeats, well I got that, the rarely used effect_command
effect_command 'FXNAME' 1 "ANYNUMBER"
notice how dial 2 is boring 1/8th to 8/1, well, effect_beats
effect_beats 'FXNAME' WHATEVERBEATLENGTH
loop 0.33333 or 0.20000 or whatever
And one thing I just added
effect_command 2 to override the internal current count to another number [experimental use]
effect_command 'FXNAME' 2 "ANYNUMBER"
发表时间 Sat 02 May 20 @ 1:16 pm
very nice
发表时间 Sat 02 May 20 @ 5:00 pm
Thanks, I'll probably publish some .ini files at some point, loop buildups, stutter drum fills, timed filters there's a ton of potential here.
发表时间 Sat 02 May 20 @ 5:48 pm
What about a sort of loopcount bank ?
added to a poi could prepare specific loopcounts by track
or a pad of predefined loopcounts
added to a poi could prepare specific loopcounts by track
or a pad of predefined loopcounts
发表时间 Sat 02 May 20 @ 6:32 pm
Not thought of poi, but pads seems like a good idea. BUT I'm not going to make that pad, somebody else can.
Here's a collection of filter sweeps via effect_strings, just written down here so I don't have to figure them out later.
BP to FP
FP to BP
FP to LP
FP to HP
LP to FP
HP to FP
Here's a collection of filter sweeps via effect_strings, just written down here so I don't have to figure them out later.
BP to FP
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & effect_slider 'filter hp' 1 & get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & effect_slider 'filter lp' 1" & effect_string 'loopCount' 3 "effect_active 'filter hp' on & effect_active 'filter lp' on" & effect_string 'loopCount' 4 "effect_active 'filter hp' off & effect_active 'filter lp' off" & effect_string 'loopCount' 1 ""
FP to BP
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & effect_slider 'filter hp' 1 & get_var 'loopCountPercent' & param_multiply 0.5 & & effect_slider 'filter lp' 1" & effect_string 'loopCount' 3 "effect_active 'filter hp' on & effect_active 'filter lp' on" & effect_string 'loopCount' 4 "effect_active 'filter hp' off & effect_active 'filter lp' off" & effect_string 'loopCount' 1 ""
FP to LP
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & filter" & effect_string 'loopCount' 3 "" & effect_string 'loopCount' 4 "" & effect_string 'loopCount' 1 ""
FP to HP
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & filter" & effect_string 'loopCount' 3 "" & effect_string 'loopCount' 4 "" & effect_string 'loopCount' 1 ""
LP to FP
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_multiply 0.5 & filter & filter 0.0 ? filter 0.5" & effect_string 'loopCount' 3 "" & effect_string 'loopCount' 4 "" & effect_string 'loopCount' 1 ""
HP to FP
effect_string 'loopCount' 2 "get_var 'loopCountPercent' & param_invert & param_multiply 0.5 & param_add 0.5 & param_cast & filter & filter 1.0 ? filter 0.5" & effect_string 'loopCount' 3 "" & effect_string 'loopCount' 4 "" & effect_string 'loopCount' 1 ""
发表时间 Sat 02 May 20 @ 9:47 pm
downsample 0 - 1.0 - 0
effect_string 'loopCount' 2 "var_smaller 'loopCountPercent' 0.501 ? get_var 'loopCountPercent' & param_multiply 2 & param_cast & effect_slider 'distortion' 2 : get_var 'loopCountPercent' & param_invert & param_multiply 2 & param_cast & effect_slider 'distortion' 2 & effect_slider 'distortion' 2 1.0 ? effect_slider 'distortion' 2 0.0 : " & effect_string 'loopCount' 3 "effect_active 'distortion' on" & effect_string 'loopCount' 4 "effect_active 'distortion' off" & effect_string 'loopCount' 1 ""
发表时间 Sat 02 May 20 @ 11:25 pm
Scripts are too long ;) Let's have fun and play some late night math....
::: get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert
1 - ( lcp * 0.5 + .5) = 1-(lcp/2 +1/2) 1-((lpc+1)/2) = 2/2-(1+lpc)/2 = (2-1-lpc)/2 = (1-lpc)/2 = (lpc+ -1) * -0.5
==> param_multiply `param_add 'get_var myvar' -1` -0.5
gain: invert and no parameter passing &
Optimising i.e. smaller loopCount 2 for BP to FP (the bandwidth filter from narrow band to whide band) aka NB to WB
as both sliders having the same value share it ^^
effect_string loopCount 2 "param_multiply `param_add 'get_var myvar' -1` -0.5 & param_cast & effect_slider 'filter hp' 1 & effect_slider 'filter lp' 1" &
halves the size compare to current !!
... post too long :(
::: get_var 'loopCountPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert
1 - ( lcp * 0.5 + .5) = 1-(lcp/2 +1/2) 1-((lpc+1)/2) = 2/2-(1+lpc)/2 = (2-1-lpc)/2 = (1-lpc)/2 = (lpc+ -1) * -0.5
==> param_multiply `param_add 'get_var myvar' -1` -0.5
gain: invert and no parameter passing &
Optimising i.e. smaller loopCount 2 for BP to FP (the bandwidth filter from narrow band to whide band) aka NB to WB
as both sliders having the same value share it ^^
effect_string loopCount 2 "param_multiply `param_add 'get_var myvar' -1` -0.5 & param_cast & effect_slider 'filter hp' 1 & effect_slider 'filter lp' 1" &
halves the size compare to current !!
... post too long :(
发表时间 Sat 02 May 20 @ 11:59 pm
too long?, I think the limit I set was 2KB
发表时间 Sun 03 May 20 @ 12:35 am
Ah I get you now, [wasn't thinking last night] yes they could be more concise, but I think readability is more important.
发表时间 Sun 03 May 20 @ 11:34 am
I was just kidding ^^
(while testing your filters in combination with my BIGPADPRESSURE )
it's also a nice way to show how script work in VDJ
either multiple ways (or none) to acheive your goal
optimize for speed / for size / for readability
(while testing your filters in combination with my BIGPADPRESSURE )
it's also a nice way to show how script work in VDJ
either multiple ways (or none) to acheive your goal
optimize for speed / for size / for readability
发表时间 Sun 03 May 20 @ 11:52 am
One I like using, I call it StutterFillBP, so rename the .dll & .ini to
StutterFillBP.dll
StutterFillBP.ini
the idea of this one is to use loop padpage to call the loop externally, turn the fx on, hit a longer loop length [like 4 or 8] this will be the total duration of the fx, then mash smaller loop sizes from the pad.
Or if you like you could just not mash the smaller loops and just get a beat duration filter sweep
He's the code to fill the .ini
*edit* gave it a tiny tweak, squared the variable to change it from a linear sweep, to curve that speeds up
StutterFillBP.dll
StutterFillBP.ini
the idea of this one is to use loop padpage to call the loop externally, turn the fx on, hit a longer loop length [like 4 or 8] this will be the total duration of the fx, then mash smaller loop sizes from the pad.
Or if you like you could just not mash the smaller loops and just get a beat duration filter sweep
He's the code to fill the .ini
[autoparams]
Slider REPEATS 0=0
Slider BEATS 1=2048
Switch ARM 4=1
Switch INT BTS 5=0
Switch SLIP 6=1
String CountScript 7=
String BufferScript 8=var 'StutterFillBPPercent' 0 ? effect_slider 'filter hp' 1 0 & effect_slider 'filter lp' 1 0 : param_pow 2 'get_var StutterFillBPPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & effect_slider 'filter hp' 1 & param_pow 2 'get_var StutterFillBPPercent' & param_multiply 0.5 & param_add 0.5 & param_cast & param_invert & effect_slider 'filter lp' 1
String OnStartScript 9=effect_active 'filter hp' on & effect_active 'filter lp' on & effect_slider 'filter hp' 1 0 & effect_slider 'filter lp' 1 0
String OnStopScript 10=effect_active 'filter hp' off & effect_active 'filter lp' off & loop 0
*edit* gave it a tiny tweak, squared the variable to change it from a linear sweep, to curve that speeds up
发表时间 Mon 04 May 20 @ 6:01 pm
quick one, one has the ini above the second has this as the ini and the name needed is
StutterFillBPin.dll
StutterFillBPin.ini
[autoparams]
Slider REPEATS 0=0
Slider BEATS 1=2048
Switch ARM 4=1
Switch INT BTS 5=0
Switch SLIP 6=1
String CountScript 7=
String BufferScript 8=var 'StutterFillBPinPercent' 0 ? effect_slider 'filter hp' 1 0 & effect_slider 'filter lp' 1 0 : param_pow 2 'get_var StutterFillBPinPercent' & param_multiply 0.5 & param_add 0.15 & param_cast & effect_slider 'filter hp' 1 & param_pow 2 'get_var StutterFillBPinPercent' & param_multiply 0.5 & param_add 0.15 & param_cast & effect_slider 'filter lp' 1
String OnStartScript 9=effect_active 'filter hp' on & effect_active 'filter lp' on & effect_slider 'filter hp' 1 0 & effect_slider 'filter lp' 1 0
String OnStopScript 10=effect_active 'filter hp' off & effect_active 'filter lp' off & loop 0
发表时间 Wed 06 May 20 @ 10:31 pm