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]
- Follow the Forum discussion thread to hear about people’s experiences and share your own.
- Download all the patches and images or you can download them individually below each day.
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.
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
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
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
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