[sharing] FART NOISES IN GEN~ (aka 'stutters' ;D)

👽'tW∆s ∆lienz👽's icon

first, pretending like i'm all internet savvy, let me drop some cross-references to the other shares in this series:
1
2
3
These are stutters, one is 'steady', the other is 'zipper'. 'Steady' maintains a fixed duration stutter(until you trigger/change it again). 'Zipper' sounds a bit like a geometrically accelerating/decelerating stutter(duration of stutter segment shortens and lengthens gradually... not a strict geometric series based on powers, but instead changes length relationships according to a sine curvature).

Praise for raja's fart noises:

Fell deeds awake: fire and slaughter!
-Theoden, King of Rohan

Oh snapz! That asswipe again?! I don't like him as a person, but i find some of his shit useful.
-the community at https://cycling74.com/forums/

I'm just glad he doesn't have a sweatshop in Bangladesh, he seems evil enough to exploit small children.
-Muhammad Yunus

Who the f--k is raja and why doesn't he just leave us alone?
-Cycling74

Through a polyphonic combination of raja's zipper stutter, i was able to create the very first 'Shepard's Fart', otherwise known as the "Risset-Fart Glissando".
-Jean-Claude Risset

I hope none of the afore-mentioned people ever read these false quotes about my fart noises.
-Raja

FartNoiseInGen.zip
zip
Wetterberg's icon

Yay!

Digging into this right away! Sleepless nights finally paid off!

Wetterberg's icon

right-o! This is really nicely hackable, I see. Even I understand the gen code. Thanks for sharing.

Evan's icon

The perfect opportunity to get started with Gen. I am working on a patch form my push, that has some stuttering capabilities, but this looks to be a bit more tasty. I'll have to figure out how to reproduce my existing functionality with this.

A question if you don't mind. I am assuming the 19200 is a multiple of a sample rate of 96k. So we have a 2 second sound running at 96k. Shall I be changing all of the instances of 19200 to something that matches my sample rate? i.e. 88200 for 44.1?

wackyvorlon's icon

Thanks for posting! You've put together some very cool stuff.

Evan's icon

Ah beautiful. I have all of my recording/playback stuff happening already, so I have a good solid namespace that gets resized based on tempo and meter settings. It would be a simple matter to set counters/clips etc. to dynamic values using parameters, yes?

Evan's icon

I'd imagine the difference being similar to the control rate vs. audio rate in MSP. I'll have a play around and see which one works better. I have a go with the pitch shifting, and was wondering if there was a way to do frequency domain pitch shifting in Gen rather than the tape style pitch shifting (pitch is a function of time). I know I am getting a little off topic here, so feel free to boot me out of this topic at any time.

Mike S's icon

Haha Raja this is ace! The zippers stutter sounds crack me up, brilliant!

Side note - I must have heard that Jongly loop more than any break! Anyone know where it's from?

wackyvorlon's icon

Basically, gen~ allows you to do low-level DSP programming. That permits a level of flexibility that other approaches in Max can't manage. Gen~ makes it so that Max can do anything with audio. To reach the limits of gen~ would take a university degree. Ever since it was introduced I have been a tireless advocate of it. It's more advanced and takes more knowledge, but it adds so much to Max.