Io boxes saving

hi all …
i m on a project where i m editing a lot of io-box. putting coordonates at real precise places.
spreading isnt enough, so this a manual coordonates to enter…
my question is: are patch io boxes safes ?
or do i need an xml saving/loading on open ?
if yes, does anyone has any working patch showing how to do this very safely ?
cheers ;-)

no, IOBoxes are basically the way to go.

for more comfort during editing, use OOCalc or Excel to enter the numbers and export to a CSV file to import the data in your patch. XML is typically too complex for simple things like tabular data.

or use a text editor to type directly in the v4p file (which is pure XML)

thanks oschatz ;-)

don’t now if i got you right.
storing data into _inlet_s of a patch IMHO is reliable and mostly the easiest way (no hassle with files and paths).


putting coordonates at real precise places.
i know what it means:
manually editing complex curves ,coordinate sets, mappings in laaaarge IOBoxes with 100s of slices on a construction site for hours

usually i store the results of each of those into
*a single subpatch containing only this large IObox (and a second one as outlet of course…)
*with a clear,unique name
*and immediately store them a 2nd time as a backup.

this always gave me a good feeling and i never had problems.


did you have a look at the P (VVVV) module set (on kalle.Modules.VVVV)) ?

those make use of the SliceOffset-pin of an IObox.
as an example:
*an IOBox (Value) set to Slider containing a spread of 100 Values displays only 1 slice at a time. now think of slices being PRESETS. set offset to 44 and a getslice (index:44) below and you get an idea.

i often use those for editing in live situations and found them reliable and useful. this is a basic set, some more advanced variances are in work.


another example of storing data in a node’s inlet you can find in my
Sequencer (Animation Advanced)

this module uses setpatch to write it’s recorded data of each instance into it’s own inlet inside the parentpatch. afterwards it hides this inlet so deeply that even the inspektor doesn’t see it anymore…
once more data is stored into inlets.

see the helpfile containing three sequencers with different animations.
don’t have longtime-experiences but i expect this being reliable.

can be downloaded as a part of my very first personal

merci Kalle. this is extremely a good answer, and will help a lot.
point 1 and 2 sounds very good.
point 3 sounds bad (hiddens values form inspektor ??? aie aie aie)

i was asking myself if by a Bang i could store in a separate patch (created on bang) the io array edited ?
actually i m doing my editing, and then saving this patch under the name i want, and then destroying all the editing gui stuff to let only io coordonnates. ( i m dragging and sizing objects à precises places, with mouse)
the copy paste doesnt do it, values ares resetted to zero…

ah, i got it.

so you don’t use an IOBox to edit your values…

destroying all the editing gui stuff to let only io coordonnates. ( i m dragging and sizing objects à precises places, with mouse)
the copy paste doesnt do it, values ares resetted to zero…

one way would be to copy that IOBox within the patch, link it once, disconnect it again, THEN cut & paste into another subpatch.

the data has to be written into any input pins to let them be saved with the patch. copying a connected IOBox will result in default values on Input Pins.

i was asking myself if by a Bang i could store in a separate patch (created on bang) the io array edited ?

this is exactly what the Sequencer (Animation Advanced) does:
it tricks it’s ParentPatch to write data into the “memory” input pin of the module’s node.
hiding that pin even for the Inspektor (setting pinvisibility to -2) isn’t evil at all: it avoids accidental modification of data in almost any case.
your data is stored in the parentpatch, not in the module!!!

thanks kalle !
i didn t tryied a re-link and then ctrl-x…
got it… so like this it can work

here is my editing matrix. maybe you could have a look on it… i know this will sounds to u very simple…

about pins: i prefer for the moment to work on basic tools and not add too much complexity and subtility in that project. this is my first project with vvvv so i m learning also deeply the approach…


i really needs to have a clear eye on this:

i m using IO box in coll rows, to see all my values inside of it from my patch. using it as an array.
so there is time i m editing io box manuallay, and other using some gui tools.

like this making a ctrl-1 i m sure to save somewhere my patch AND my values, in case of.

maybe a master’s explanaition about iobox may be very valuable for me ;-) (11.4 kB)


what i meant was:
in case use an IOBox as an Input for a module.

because it forces the spreadcount…

colsrows.v4p (6.0 kB)

ok; got it … thanks a lot for this elegant demonstration !

To Kalle,

Hello, I wanted to try out Sequencer (Animation Advanced) so I downloaded

When I open the helpfile to try out the module, it plays the recorded values, but when I hold down 4,5 or 6 to record something new, I move the mouse for a while, and when I release the button, the number of frames jumps to 0, and nothing seems to be recorded.

Have you got any idea why this happens?


hi gueft ;)

i also saw your PM but i was traveling quite a lot the last days…

to make sure that i work on the same version i downloaded those modules from the same source.

you say that the Frame Count-pin is immediately reset to zero when the Record-button (4,5,or 6) is released.

sadly the phenomenon does not happen here on my läptöp, so i only can start guessing.

so i had a closer look at that patch.
the interesting thing is that within the module i needed to make some “workaround” as a bugfix because i noticed:

TogEdge (Animation): the DownEdge Pin bangs on creation, no matter about the setting of the “BangOnCreate”

but for another reason i had to check exactly this behavior today and now, really crazy, it seems quite viceversa ?!? please see the related forum thread

maybe that there is some inconsistency regarding the hardware,
few years ago we said “Intel inside - can’t divide” and also today you can notice different behaviour on different machines especially about rounding results.

but that would be quite strange…

the bugfix also makes use of OnOpen (VVVV) , which also does not that reliable work as i want it.

i only was told that the evaluation of the first frame during startup of vvvv is quite difficult, almost close to rocketscience.

do you have another computer to crosscheck this?

Thanks for the response,

I checked the module on a different mahine (Intel Macbook Pro instead of Compaq with dualcore AMD Turion64) and it seems to have the same problem.

Also, the framecount value shows the previous value as long as I press the record button and only updates itself (to 0 in my case) when the rec button is released.
Since the module doesn’t work as I expected, I don’t know if this is the way it should work, of it this value should increment while recording?

I am not doing anything wrong am I, I mean, pressing record and moving the mouse should generate a new recording, right?

yes, as long as you press the record button, it should record.

could you please
*start that helppatch
*make one of the 3 modules visible (ALT+1)
*record something in to this module and compare with the screenshot below?

as long as you are recording data appears in the upper IOBox.
on end of recording this should appear suddenly in the lower IOBox.

i’m really curious what it is.
dumb question: you are on beta21?

beta21, yes

I found the problem, and now it works.

I connected the output of the ‘just recorded’ node, to the input of the AsString node that provides the 3d value of the cons node at the bottom.

Now that I look at it again, I could have taken the ring buffer output, but that doesn’t really matter… Anyway that link wasn’t there. (but it seems strange when I look at your screenshot, unless I can’t see the link from the ring buffer to that node, but it seems to me I should. I think I can only see the link coming from the S+H and the one coming from TogEdge)

I don’t see how recording could work without this connection !

Are you sure you donwloaded the zip file with the link from this thread? And that one works for you?

In attachment you can find the version with my changes that seems to make things work for me…

Sequencer (Animation Advanced).v4p (68.0 kB)

aaah, thx for your detailed report!

i got it!

below the ringbuffer is an “AvoidNIL” module.
within the Sequencermodule this is referenced to a wrong location.

for this reason the link could not be created because the AvoidNIL doesn’t exist in the specified location.

but i recommend you to create an AvoidNil there and insert it inbetween ringbuffer and asstring.

so i have to update that addon-kit soon.