Day 20

Here’s one for the gaffers and camera assistants in the house! By that I mean that this patch requires an image that is evenly-lit and properly exposed. That’s why there’s no jit.qt.grab, because it would be too easy to use your laptop’s built-in camera with your face lit by the computer screen. Yuk!!! Also shooting at a fairly high resolution will make the details nicer.

The patch is based on the idea that all human skin, despite large differences in saturation and brightness, has approximately the same hue. We use that fact to apply a blur to the skin only, leaving details like eyes, nose, and mouth sharp. So the technique can be used to smooth out blemishes or–if you push it–create a cartoon effect.

In certain cases, for example very light or very dark complexions, you may find it easier to use the little gswitch object to look at the alpha channel while you adjust the threshold.

It’s worth taking the time to dig into the jit.gl.pix objects for some useful tips. The blur uses the cell object to achieve sub-pixel displacement, regardless of image size. The technique for creating this cheap blur can also be used to do more specialized blurs. Our saturation boost is done in the hsl colorspace. We smooth the edges of our key with the smoothstep object.

If you have experience working with compositing/finishing applications like Shake, Nuke, Smoke, or even Da Vinci Resolve, you’ll appreciate working with a nodal interface like Max. Now that gen brings that nodal interface to the world of openGL hacking, you can easily bring cool film techniques to your real-time video processing. Just don’t forget to use your camera and lighting skills, too. — Les

Day 21

The other day I had an idea to try and make an audio generator which took an input and sampled it every N samples, then did some kind of interpolation between successive sampled values.

The picture might give you an idea.

Here’s how it turned out. Because the “gap” in samples relates to the frequency of the incoming wave, its output varies all over the place as you change both its frequency and also the gap between successive sampled values.

This post is the last one in this patch a day series. We hope you’ve had fun playing along with us. On behalf of the members of the material group at c74, I’d like to thank Wes and Graham for all their help with these patches and for their work on this awesome addition to Max. — Andrew

Gen Patch-a-day

Feb 21, 2012 at 3:31am

hello,
I am quit new to jitter, I like very much the first tutorial Day 1.
But I don’t understand how you find the messages that can go to the jit.pix object.
In the example you have used xwiggle, thresh, fbamt how did you find them?
Thank you very much

#260571
Feb 21, 2012 at 7:55am

These messages/parameters are defined within the jit.pix object (double-click it to see the code). You define any “params” you want, then send messages from the main patcher.

#260572
Feb 21, 2012 at 10:04am

Thank you very much for you reply, i found it :)

#260573
Feb 27, 2012 at 9:36pm

Thank you for the patchers, this is great.

#260574
Mar 1, 2012 at 6:38am

Great stuff! But i seem to have a problem with the patch of day 16. I get no output whatsoever in the jit.pwindow. Am i missing something.

Thanks.

yves

#260575
Feb 26, 2014 at 2:24am

Thanks for these interesting examples, but I whish they will be better organized : names with the right numbers in order to relate the patches to the texts. In addition, they do not all refer to gen and gen~ but to different stuff.
Not very easy to follow that wigly tutorial !

#282116

You must be logged in to reply to this topic.