Gen Patch-a-day

The MGraphics patch-a-day series was very successful, so it’s time for a Gen patch-a-day! This time, though, a few things change. First of all, instead of doing these all myself, you will have a guest presenter each day. These presenters are the members of the Cycling team that develops educational content (internally called the Material Team), so you will get a variety of viewpoints, patching styles and levels of complexity. It is our desire to add some interesting and understandable Gen content to the mix.

Also, we will only be posting on weekdays – it is skiing season, and I want everyone to be able to hit the slopes…

In other words, it uses my webcam to do creepy and flaming images of myself. I use pretty elementary techniques, so it should be pretty easy for everyone to follow. But I happen to really like feedback, and the results of this are pretty fun.– [ddg]

Day 1

I’m kicking this off with a very simple jit.pix patch that I use an awful lot: a patch that does threshold-based binary sampling, then provides offset and jittered feedback.

Day 2

The super-secret Cycling ’74 algorithm has chosen me today, and I’m going to throw another Jitter patch into the mix (A note to gen~ fans: It’s just the luck of the draw that we started with two Jitter patches in a row. Don’t despair – there is plenty of audio fun on the way). Today’s jit.pix patch uses very simple means and makes extensive use of the fact that Jitter gen objects work with floating point data in the range of 0. – 1.0 when addressing the position of a pixel and sampling it. When combined with a few trig objects and the ability to sum, wrap, and fold data, there is room for all kinds of warpy fun.

To experiment with using 32-bit float precision in the jit.pix object, just add an attribute to the jit.pix object so that it reads [jit.pix @precision float32], and you’re good to go. Quite a lot of the adorable cruft that I found so fetching about the patch will be gone, but you may find the smooth results considerably more to your liking. In many cases, they *do* look more like a funhouse mirror. Please enjoy this patch responsibly. — gregory

Day 3

This patch does a kind of gritty Buffershuffler-esque reordering of the last bar of audio. I’ve hard coded it with crusty old drumLoop.aif to reduce clutter in the patch, but you’ll be able to pretty easily open it out to other files or live input.You’ll need both Overdrive and SIAI on so that the phasor~ @lock is steady. HAPPY PATCHING!!!!!!! — Andrew

Next steps to take in its evolution could be:

• adding variation to the amount of history being collected
• auto changing the number of steps
• adding an envelope to each step
• changing the direction of playback of a step
• copying out parts of audio history into other buffers so that you build up a more diverse history of audio

Day 4

Here’s my bunt for all the noobs in the house. This patch is so simple, don’t even look inside! OK, you can look. You’ll see how some really useful things can be super easy in gen.

If you’re on the move with your camera, got your exposure set on your highlights, but the image is still too dark, here’s a quick way to “brighten things up” that’s safer than boosting brightness.

HP! < — Les

Day 5

This patch explores the use of jit.gen to generate 3D matricies for use with jit.gl.isosurf. I’ve always had a soft spot for blobby, amorphous shapes, but they tend to be hard to wrangle.

I ran across a web site that has a handful of distance functions for some basic object primitives (sphere, torus, cone, etc), as well as some really cool distance and domain deformations.

The attached patch basically takes two primitives (cube and sphere) and throws them into the same data set, to create a morphing blobular shape, where the sphere is trying to “escape” from the grips of the cube. I wanted to keep it simple so you can see what is going on.

Since I put this patch together, I’ve gone ahead and implemented some of the other functions on the page. Can you? I particularly like the displacement deformation function.

jit.gl.isosurface is a touchy object, but once you find the right settings, you can get some really nice results. For me, jit.gen is a more immediate way to interact with the type of data sets that jit.gl.isosurface needs to compute the 3D object. Its really fun to just start throwing in different operators to see how they affect the outgoing matrix.

Enjoy! — Ben

Gen Patch-a-day

 Marilena Marilena 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 Marilena Marilena Feb 21, 2012 at 10:04am Thank you very much for you reply, i found it :) #260573 Benny B. Pedersen Benny B. Pedersen 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.