Snapshot Effect

Matt Romein's icon

I'm using a Kinect camera with the synapse app to convert a person's silhouette into something akin to a wireframe. What I want to create is a patch that will allow me to take a "snapshot" of the current frame and then keep it as a part of continuing a video feed, allowing me to stack more and more of these snapshots on top of each other. Another way I like to think of it is like a video stamp. Anyways, This seems like it should be relatively simple but I've been racking my head about it and am a bit stumped as where to start. Maybe spitting out the greyscale data into lists each time it's triggered, feeding those into separate matrixes and then creating some sort of cascading jit.op + object loop? Any thoughts or ideas are greatly appreciated.

Floating Point's icon

have you looked at [counter-]>(index $1)->[jit.matrixset @thru 0] to store the snapshots in an indexable array / once stored, somehow output them iteratively --not sure how to layer them though...

Matt Romein's icon

So I finally got some free time to tackle this. I came up with a patch that is much simpler then I expected. The video feed goes to a gate that's triggered open with a bang and then triggered shut with a 30 ms delay. That feeds a single frame into a jit.op+ object which feeds back into itself to stack the images as they are triggered. This is then added to another jit.op+ object which combines with the original video feed. A fillplane 0, 0 message sent to all the matrixes clears the snapshots. It works fine but I'm not loving the the gate bang/delay bang system for capturing frames. Anyone have a better idea?

4159.SnapshotEffect.maxpat
Max Patch
Pedro Santos's icon
Max Patch
Copy patch and select New From Clipboard in Max.

The bang for snapshots opens the gate (1) and when the gate outputs a matrix, the gate is automatically closed (0).