Builder is a plugin that is needed to make autofilter pad page work, generally users won't use this fx directly, all interaction is via a padpage
Autofolters is just the first of many padpages that use builder, with builder any script can be timed perfectly to bpm.
I'll explain the under the hood stuff later.
Posté Sun 10 Jun 18 @ 10:39 pm
Posté Mon 11 Jun 18 @ 12:10 am
Posté Mon 11 Jun 18 @ 12:11 am
Builder first creates a load of variables based on ms per beat.
Bpm / 60000 × beat length = ms/beat length.
It makes vars for 1/8th to 32beats.
With a padpage you can send strings to builder and the advantage is with the get_text verb you can parse any var into a script (places where vdjs script engine can't) something like so
get_text "repeat_start_instant 'rsiName' `get_var '1/8th'`ms & whatever script you want"
(var '1/8th' is now in the rsi script as a ms value)
it then casts this get_text to an effect_string and then activates builder that runs the string as a script.
There's a bit more to it, involving a var so builder knows which of the 7 strings to run, also the rsi name is created from the pad name that created the string.
Ok i may have lost the room.... what can it do?
Anything you can do with script perfectly timed...
sequence samples, play 1; once played play another etc, no problem.
turn a video fx on/off every 4 beats, bread & butter for builder.
Have milkdrop cut to the next .milk bang on every 32 beat boarder, piece of cake.
Now there's the dmx padpage, sequence that.
Sequence scratch_dna presses, yep.
Do all these on one button press, sure.
It's not just rsi scripts it can do, want a var in as a value to a verb that won't accept actions as values, can do.
Posté Fri 15 Jun 18 @ 7:02 am
And the next one is pretty special, actually the reason why builder got built in the first place.
and autoFilters is still supported
Posté Tue 03 Jul 18 @ 12:25 pm
Also variables with leading numbers are generally not allowed in many programming languages. In the case of VDJ you might have something like 8ms with ms as modifier, but 8beats would be some named thing depending on context or maybe an error in some other context. Leading numbers are not normally allowed for naming since a number is a numeric type which can be followed or preceded by operators. like 1 / 8. one divide 8.. 1xx/8 as a named element makes no sense normally.
So main thing normally is to avoid ambiguous syntax either functionally or for readability.
Posté Thu 19 Jul 18 @ 11:26 pm
This example takes fields 1 & 2 adds a comma inbetween them and then writes to field 1 and clears field 2
I used a custom button to set fields 1 & 2
browsed_song 'Field1' 'erm' & browsed_song 'Field2' 'yes'
I then used another custom to get builder to read/parse field1 insert a comma and read/parse field 2, then I added a bit more script to read builders string and cast it to field 1 & also cleared field2
get_text "`get_browsed_song 'Field1'`,`get_browsed_song 'Field2'`" & param_cast "text" & effect_string 'builder' 1 & get_effect_string 'builder' 1 & browsed_song 'Field1' & browsed_song "Field2" ""
A rough and ready example but if you have a lot of tagging to do, it may well be worth making a padpage to hold strings you want to to add to existing tags.
Posté Sat 28 Jul 18 @ 9:51 pm