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
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
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
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]
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
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
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
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