» introducing Scripter
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

introducing Scripter

as the Scripter contribution title describes - for your ultimative hacking comfort in vvvv...


two reasons this might be interesting for you:

  1. you are new to this textual c# stuff but are eager to get into it
  2. you hack around vvvv a lot, know c# and want to get things done quickly

1) for the curious

let's say your new year's resolution was to start to extend your vvvv skills with coding power (since you noticed that doing more advanced stuff mostly requires some kind of textual addition to patching).

dynamic plugins are a powerful feature and probably the way to go. you clone the template and start changing the code and don't worry about nugets, referencing assemblies, compiling as you would have to in any other IDE.

however, the slight hassle starts once you decide you want more pins. maybe even a bin sized one. at this point you have to wrap your head around the overall spreadcount, how to write the loop around the thing you want to do, when to access which slice or which bin, etc...

this is where scripter might ease away the learning pain since it takes care of your Spreads and does the structural In-Out part (creating pins and reading or assigning values). it attempts to keep you focused on the functionality only.

now it is a little bit more true, that you can google some code snippets and just paste them in vvvv to see what it does:

copy pasting super formula

copy pasted superformula frompaulbourke.net


2) for the hacker

aside from the structural stuff mentioned already mentioned above you can really hack here. meaning not giving thoughts about proper filenaming (when versioning stuff). simply test some code snippets without files cluttering your harddrive as dynamic plugins have. scripter stores the code in a config pin. no more portability issues.

the first public static method is parsed for IO. you can of course have as many methods you like. think recursion...

and the config pin solution brings another advantage: scripter works per instance

multi instance binsize whatever

multi instance binsize stuff accessing loop index


about the guts

scripter inserts the string you provide into a template c# file and compiles it in memory. it reflects the first public static void method and creates the pins for each parameter.
each frame the plugin loops over the maximum spreadcount, passes the values to the method and writes the out parameters to the out pins.


futures

since the feedback i got so far was always the question about missing code-completion...

  • either modify the internal vvvv codeeditor to be usable with this concept (and benefit from all the features it has already). might take some time

or

  • or go on the hard way with the current texteditor (avalonedit) and (re)implement everything from scratch. will take even more time

other ideas would be:

  • multiple methods: think different methods per slice, or selection via enum
  • give access to usings and references
  • a version without or just a flag to not use the automatic spreadmaxloop, but still with automatic pin creation
  • ...

anyways

feedback and discussion welcome
and have fun with the little new years present

woei, Sunday, Jan 10th 2016 Digg | Tweet | Delicious 6 comments  
flux 11/01/2016 - 04:46

This is ziemlich cool ;)

tonfilm 11/01/2016 - 17:14

@codecompletion

you could also look for a simple one, like emacs or vim that is not syntax aware at all but just suggest all words it knows with a start sequence of letters in a certain scope. that is already much better than having to type every bit...

milo 11/01/2016 - 17:53

top!

jens.a.e 11/01/2016 - 19:55

nice feature indeed! :)

dimzinas 21/01/2016 - 08:58

This is really nice! Welldone

nzo.nzo 21/01/2016 - 12:34

Really a very good New Year resolution. It was implemented quickly and efficiently. (Not like the promises like, tomorrow I stop drinking, this year I will do sports.) Thank you for your work.
I love your tool is really the way to move towards it coding programming.

This year, I'm going to start programming, I promise.

  • 1

anonymous user login

Shoutbox

~5d ago

mediadog: @tonfilm Thanks! Need to kill a specific vvvv instance, so that enables "taskkill /FI "WINDOWTITLE eq (title)"

~6d ago

tonfilm: @mediadog you can use the VVVV (VVVV) node for that

~7d ago

mediadog: Wasn't there a commandline switch to set the window title instead of the random characters? Can't find it

~8d ago

synth: @tonfilm Awesome, thanks!

~8d ago

tonfilm: @synth yes, if you have a valid ticket for #node20 you will have access to all workshops and their recordings: https://20.nodeforum.org/tickets/

~8d ago

synth: Is there a recording of the Procedural Graphics , and can one buy it somewhere?

~10d ago

david: And finally.... Realtime graphics with Stride 3D – The Fundamentals with the developers https://tinyurl.com/y4utxhyv

~10d ago

david: @sebescudie teaches us: Machine Learning with RunwayML and vvvv. https://tinyurl.com/y66zn3h7

~10d ago

david: node20 workshop series.. @baxtan_ will be teaching you everything about Generative Design Algorithms https://tinyurl.com/yxck9vy7

~11d ago

ain: had anyone positive result with VL.NewAudio in latest gamma? cant' get it running