Forum: Addons

Addons comments
Topic: Builder
locodogPRO InfinityModeratorMember since 2013
Discussion about Builder

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.

Posted Sun 10 Jun 18 @ 10:39 pm
No Mac download available, so, is it needed for the Mac?

Posted Mon 11 Jun 18 @ 12:10 am
locodogPRO InfinityModeratorMember since 2013
Yes needed for it to work, I'll see what i can do from a mac version of builder

Posted Mon 11 Jun 18 @ 12:11 am
locodogPRO InfinityModeratorMember since 2013
Alright what builder does and what it can do.

Builder first creates a load of variables based on ms per beat.
Something like
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...

Want to;
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.

Just ask.

Posted Fri 15 Jun 18 @ 7:02 am
locodogPRO InfinityModeratorMember since 2013
Builder has just been updated, It makes no difference for anyone using autoFilters now but, you'll need this update for the next padpage if/when it's released.
And the next one is pretty special, actually the reason why builder got built in the first place.
and autoFilters is still supported

Posted Tue 03 Jul 18 @ 12:25 pm
You should avoid using things that look operators in your names because just another source of confusion. For all languages, calculators, general mark up, text that people read, that I know of, 1/8 implies divide 1 by 8 explicitly and probably not intuitively perceived as part of a name . Probably better to use something like one_8th, or 8th_beat, or something else, and then maybe 32_beats. The fact they used param_1_x and not param_1/x should have maybe been a hint.

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.

Posted Thu 19 Jul 18 @ 11:26 pm
locodogPRO InfinityModeratorMember since 2013
A user wanted to append tags, I don't think this isn't possible with straight script but you can with builder :-)

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.

Posted Sat 28 Jul 18 @ 9:51 pm