Forum: Addons

Addons comments
话题: loopCount
locodogPRO InfinityModeratorMember since 2013
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.

发表时间 Sat 02 May 20 @ 11:37 am
locodogPRO InfinityModeratorMember since 2013
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"

发表时间 Sat 02 May 20 @ 1:16 pm
very nice

发表时间 Sat 02 May 20 @ 5:00 pm
locodogPRO InfinityModeratorMember since 2013
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
NicotuxHome userMember since 2014
What about a sort of loopcount bank ?
added to a poi could prepare specific loopcounts by track
or a pad of predefined loopcounts

发表时间 Sat 02 May 20 @ 6:32 pm
locodogPRO InfinityModeratorMember since 2013
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
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
locodogPRO InfinityModeratorMember since 2013
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
NicotuxHome userMember since 2014
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 :(

发表时间 Sat 02 May 20 @ 11:59 pm
locodogPRO InfinityModeratorMember since 2013
too long?, I think the limit I set was 2KB

发表时间 Sun 03 May 20 @ 12:35 am
locodogPRO InfinityModeratorMember since 2013
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
NicotuxHome userMember since 2014
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

发表时间 Sun 03 May 20 @ 11:52 am
locodogPRO InfinityModeratorMember since 2013
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
[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
locodogPRO InfinityModeratorMember since 2013


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
locodogPRO InfinityModeratorMember since 2013
Small update, something that was a bug in vdj API has recently been fixed
[OnLoad: SongBpm previously returned "absolute" SongBpm instead of "pitched" SongBpm]
[I didn't know it was a bug, I just worked with it XD]
So I'm on with fixing this plugin, expect a fix in the next few days.

发表时间 Thu 20 Aug 20 @ 1:46 pm
locodogPRO InfinityModeratorMember since 2013
That was approved quickly [thanks] 1.1 is available in app now.
Main thing is it fixes the problem the recent api update introduced, but since I had to update I included a small thing for edge cases, previously if you loaded a new track with this fx on [as you might with using "arm mode"] there was a chance the timing could be off, this update monitors load_pulse, if ON and it detects a new track has been loaded the fx toggles [off to back on] itself to reinitialize

发表时间 Fri 21 Aug 20 @ 12:51 am