The Slit Scan Effect is the work of both Cher See and myself in trying to achieve the slit scan technique used in photography and occasionally in video.

The visuals that come of this technique are quite fascinating

But it requires quite a technical setup for photography, or a lot of post-processing in video to achieve the effect

Very rarely do we get to see the effect occur with live video, and so we thought it’d be fun to attempt to recreate the effect in Max

Above is the final patcher window, with video input on the left and the different modes into the final output window on the right.

There are 8 variations, stillscan being similar to the photography style of slit scan, each line is being printed into the screen line by line.

Our idea was to store the frames that were coming in and then play them back in slices, each slice being delayed by incremental amounts.

In our attempts to get the final effect, we went through quite a few methods, most of which did not work with us at key critical moments JUST before we’d be able to achieve the effect.

We looked into things such as matrix, matrixset, and the src/usrdisdim nodes.

Finally we found some success in the matrixset node and it’s ability to store frames and play them back

The next step was to figure out how to store the frames in a way that we could delay each individual one by a set amount

This was also another critical moment of getting stuck

Eventually we found a jit.scissor and jit.glue node combination. We found that we could essentially get input media cut and pasted back in rows and columns

Along with a matrixset delay method we achieved our first iteration of the effect

Unfortunately we were unable to get the node to accept more than ~15 inputs/outputs, making the effect not as smooth as we’d have liked

Thanks to an ingenious breakthrough we managed to get multiple instances of the node combo to run simultaneously and thus we increased the number of slices and essentially our final effect.

The effect was pushed to it’s limits with this method in Max, but the processing speed started to chug at 120 slices and prior to that the effect at 60 slices was starting to get unnoticeable gains at first glance, hence this was our end zone.

I will be using the tri-cut mode as the following example.

The bang node triggers the toggle node that counts to 3 and multiplies it by a user-set-amount to achieve our choice of delay for optimal fun/effect

The scissor and glue nodes calculates how to cut and piece the slices back together.

The delay node gets the integers from the previous images multiplied numbers and tells each slice how much to be delayed by

This slice goes back out into the final jit.glue node and pieced back together with the rest of the slices in the final effect.

Though it there were some rather technical methods to achieving the effect, it was pretty satisfying and fun to have been able to recreate the effect through an alternative method that pretty much looks identical to the more technical computive methods.

Cheers all!

The first part of this assignment involved getting the face positioned in the middle of the screen

Audio was recorded and coordinates from the corners of the jit.faces node were used to give an output value to draw upon to indicate the users face within the scene

I wired the left and right triggers to the mid point of the face-tracking square by taking two opposing corners, and for up and down i used to other top and bottom corners to trigger the audio.

The image above is my subpatch sound trigger for the audio.

The next portion involved reading an image file, in this case, an Aphex Twin album cover

The above image shows the final route to achieve the face swap effect in Max!

Below is a video of the effect in action!

Subsequent courses of action

Adding rotation and a stretch effect should the face move would be nice, additionally hooking the effect up to a on/off switch would be nice as well