Day 6

This is my first real gen patch and it was a lot of fun to make. It implements the (simplified) equation used in jit.rota in the jit.gen environment. I use jit.rota all the time and was excited to see how a gen version would function. There are still some things that could stand a little fleshing out to prevent or smooth pixelation and add different bound modes, but it is pretty functional. I am also working on a version that implements the full equation with all the extra parameters, but this is a good starting point that I hope is less intimidating.

I included the equation from jit.rota inside the jit.gen patch so you can see how it was implemented. Enjoy! — Cory

Day 7

This patch is an audio feedback network, similar routing-wise to Gregory’s feedback network example in his Garden of Earthly Delays gen~ tutorial, but is more of the no-input variety (almost). It also differs in that it attempts to keep the sound moving through the tubes instead of allowing it to decay. That said, there’s no real gain control happening, so watch out! — Dave

Day 8

For my contribution, I slightly modified Gregory Taylor’s awesome seven segment envelopes (included in the examples folder) to operate as a standard ADSR with adjustable curves per segment. I love this envelope, it’ll replace all my envelope duties in my future Max work.

Not satisfied to merely rip of Gregory’s envelope, I also adapted his MOD FM gen~ example as a sound source. The gen~ itself is unmodified in this instance, I merely built a lot of Max around it for modulation flexibility. — matthew

Day 9

In Ben’s earlier patch, he did some manipulation of an isosurf – ‘cuz that’s what he is into. In my case, I’m getting a little obsessed with manipulation of matrices that contain meshes. In today’s example, I’m creating an X-axis scanner, and using that to morph the duck model that comes with Max. Basically, if the X axis is near the current scanner location, the gen patcher forces all of the axes to push toward [0, 0, 0]. Sort of like putting a duck through the eye of a needle (or something). — [ddg]

Day 10

This is a little patch that uses sin math to modulate a jit.gl.mesh. If you take a look inside the gen patch, you can see that the actual math is quite minimal but can produce quite complex forms. This kind of approach to working with OpenGL geometry is really exciting for me in that it provides really smooth results without the need to go through and animate every frame. — Cory

Day 11

Inspired by Gregory’s patch, I decided wanted to take things a little further “out”, and it was an excuse to try some things in jit.gl.pix. This is another patch where the sample object is doing the heavy lifting, and aided by some simple noise matricies and the always useful jit.slide object.

What I really have been digging about patching in the gen world is that things are endlessly and easily tweakable. It is really quick to throw in different objects here and there into your gen patcher, and get rewarded instantly. Much more fun than staring at shader code, at least for me! Enjoy — Ben

Day 12

This patch is an Lf-noise generator, similar to rand~ (and borrows from the gen.random example), but adds two things– nonlinear ramping modes, and a ramp slope control.

The ramp slope control (called ‘ramp value’) let’s you ‘ramp up’ the slope of interpolation such that the target random value arrives early and holds, creating a stepped component to the waveshape. This is useful if you like to have your parameters glide to a spot, hang out for a while, then glide again to another spot. At the extreme, it turns the waveform into a pure noise step function. It can also be modulated for added wildness. — Dave

Day 13

A week or so ago we got an email from someone who had noticed that
onepole~ in Max 6 sounds different from onepole~ in Max 5 and it was
noticeable when listening to his patchers

Actually we’ve had a few of these – it’s a by product of us having improved the sound of MSP for Max 6, it’s better, but it’s different! Sometimes different trumps better.

So we had a look at the old onepole~ code. Tim Place had done an analysis of all the old MSP code and especially the filters when he did the huge job of making them all use 64 bit audio internally for Max 6.

Max 5′s onepole~ actually has a cutoff freq mapping deal which clips the cutoff frequency between 0 and SR/4, or about 11k Hz at 44.1 kHz SR (ahem). So if you feed it a cutoff freq value higher than that, nothing changes.

Max 6′s onepole~ on the other hand, responds all the way up to SR/2.

If you want the sound of Max 5′s onepole~, it’s gen~ to the rescue.

Today’s patch has a comparison between the different onepole~ objects.

There’s the one from the gen~.filters example, the Max 6 onepole~ object and a recreation of the Max 5 onepole~

Cheers — 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.