Something like this, in metacode?:
If the monoflop is triggered we get a 1, and if the monoflop is retriggered, we increase the spreadcount with 1 slice.
If the monoflop is not triggered, or finished, we reset the spreadcount to 0.
Not sure where your spreads come from, so can’t add that.
sorry, i didn’t describe the problem well enough. the behaviour of the particle node is exactly what i want. but without the particle because it’s too cpu intensive…
its some combination of framedelay, monoflop and decay. i just added something with doesnt buffer but is the basis of what i want to achieve.
i came up with two solutions in the meantime…one with ringbuffer and a ‘selecting’ the dead ones out of the spread. and the other one looks very similar to your right solution. but not as elegant.
I had a need to create objects corresponding to musical notes received via OSC, and expanded on monoflop_buffer a bit. I created two nodes, MonoBuf and MonoData (perhaps bad names in the long run) that allow not just the creation of spread slices of a specified lifetime, but also an arbitrary number of parallel spreads with associated data. So in my case, I use the note duration as the lifetime, and store things such as pitch, pan position, volume, etc. to use for corresponding visual objects.
There’s probably a way to make this more integrated/elegant, but this got the job done for me. Give me some feedback on proper naming and packaging (this is my first give-back to the vvvv community), and I’ll post it in contributions if it seems worthwhile.