Structure Tools

I'd like a toolkit of nodes for creating and manipulating structures.

An obvious use would be single cord patching between macros, essentially allowing you to create custom nodes out of macros.

More exotic uses would be editing the data in structures in-place, merging them etc.

I'll leave an exact feature list to those with more experience of other patching environments, or till i'm deep in the middle of a qc project and cursing heavily =]


smokris's picture
++ Again Ironic

We were thinking the same thing, actually. Over the last few weeks, cwright has been working on an initial set of Structure Tools we're planning to release in the next day or two.

tobyspark's picture
supercool. without wishing


without wishing to bloat, maybe the send/receive feature request would fit in this category too, as i'm imagining the create structure node would be akin to a de-luxe input splitter, and a de-luxe input splitter could then also take named inputs and outputs (ie receive/send virtual ports).

franz's picture
structure tools from Boinx

for info, Boinx software released a free structure tool, that allow to build structure from scratch (should be interesting to also have a look at it...) here:

(btw, do you allow for direct links in your blog ?)

tobyspark's picture

yep. fwiw haven't needed this yet, it doesn't help with the spaghetti which is my main reason for wanting a structure toolkit. props to them for releasing it tho'.

franz's picture
an interesting feature

... would be a "vvvv's stallone" like patch, that is, i quote:

"a very flexible node, which allows you to merge slices from any number of inputs and distribute them to any number of slices on any number of outputs"

it has a settable number of inputs and outputs , and is used to merge or separate large sets of data (aka slices in vvvv'language)...

but many other features could be intersting, as insert@ reverse clamp@ resize (with data blending....) reoder (with tons of sorting options) search (and finds something specific (with a tolerance) and then returns the corresponding index)

cwright's picture
For 0.2+

insert, remove, reorder, and a few other features listed are scheduled for the 0.2, 0.3, and 0.4 releases of Structure Tools (in no particular order).

I like the clamp and search ones though, we didn't think of those (we have stats though, like max/min/avg/std.dv :) Also planning on adding subset, merge, and probably a couple other structure functions.

tobyspark's picture
++ add

i had to write a float accumulator in java yesterday because i couldn't sensibly add up a range of values in a structure.

franz's picture
saving state + accumulator

Hey toby, would you have the kindness to post your float accumulator ? I'm heavily looking for a method to add up values to a structure. Also, Chris, a "save structure to file" and "read structure from file" would be awesome, or a way to save structure state...

tobyspark's picture
yep... tho' not sure where

can do, don't know where to upload tho'.

i'll email you direct right now so you can get working...


franz's picture

received your mail. thank a lot

tobyspark's picture
quick heads up: SPK-XMLwrite exists... least on my computer for my installation.

it takes a structure and writes it to disk. no colour or images, but standard data types are fine.

if you want it in its current, fragile, state drop me a line.

toneburst's picture
Sounds Very Handy

Sounds like this might be very handy! I've found it's possible to add Color definitions to structures as sub-structures with JavaScript. There's a little example composition on my blog about using JavaScript-created structures as single-cable connections between macros that uses the technique. I wonder if you could do something similar to save Color info in your XML.

Would be very cool if the XML file could also store image data. Wonder if that's actually possible...


Quartz Composer Blog:

Music Site:

tobyspark's picture
its all possible...

i made it as i have 'client' interactives and a 'server' display that shoot text messages with metadata back and forth via xml files. so didn't need colour or images, and you get structure to xml file in one line of cocoa if you stick to the basic data types. and encoding a nscolor object is one of the things you do fairly early in the hillegass cocoa book, so its all possible.

btw, why bother with the javascript? kineme structure maker will roll up stuff for you, including all qc types.

toneburst's picture
Evenin' Toby!

Re. JavaScript: good question. I guess I just like the idea of making one module to output the whole struct, rather than a tangle of cabling. Also, I'm eventually planning to try and make JS patches to generate 'spreads'-type arrays (Linear, Gaussian, Circular and Random, initially, I think) to pipe into SuperGLSLGrid instances, and there's currently no real way of doing that without delving into JavaScript.

Ultimately, of course, these things would ideally be done with dedicated patches. I rather like the look of the VVVV Typo Spreads node, too - maybe that should be added to the list.

Night All.


Quartz Composer Blog:

Music Site: