Altman — a dynamic granular comparator

Named after the director Robert Altman’s penchant for overlapping, interrupting dialogue, Altman (the patch) features two granular modules, running in parallel. The outputs of the granular modules are translated into CV via envelope followers, and this CV is comparated, in stereo, with the output of the comparators changing the mix of audio balances that both granular modules are fed into. In essence, the two granular modules gate one another, with whichever is loudest at that moment determining which granular module is heard.

The product of that comparating is weird, shuffling stutters, broken echoes, and odd, slurring sounds. It works really well with rhythmic material, like drum loops, but it can also add unique textures to live instrumentation or chromatic percussion. Because of the variety of ways in which the amplitude of a granular module can be affected, there are all sorts of opportunities for the modules to interrupt one another. This can be pretty jarring, so I also added a slewing option (called “Fade”) to allow sounds to blend into one another more smoothly; but, of course, this adds yet another dimension as sounds that are neither wholly from one granular module or the other are heard in these moments of transition.

The patch is stereo throughout (even the comparating).



Left — flexi-switch (momentary when held, latching when tapped) — freezes the first granular module (this behavior, including the flexi-switch approach, is replicated by a UI button on the control page)

Middle — flexi-switch — freezes the second granular module (this behavior, including the flexi-switch approach, is replicated by a UI button on the control page)

Right — flexi-switch — changes the state of both granular modules’ freezes (for instance, if one is frozen and the other is not, those will be reversed; if neither is frozen, this switch will freeze both; if both are frozen, it will unfreeze them, etc..)

Control page:

Pixels at the top center of the control page will show which granular module is being heard, with granular module 1’s output shown on the top, and granular module 2’s output on the bottom.

Each of the granular modules has its own set of controls — size, position, density, texture, pitch-speed, and freeze — but you can also sync each parameter individually, so that the control for granular 1 also controls granular 2. I did this because you can introduce some interesting, subtle changes, by, for instance, only varying the density of each granular module, or the position, etc. Or maybe you want to adjust pitch in unison. You can also use this to make quick changes; for instance, switching granular 2’s pitch between two intervals by syncing and unsyncing that control.

You can also sync the sensitivity control, which scales the envelope followers’ connections to the comparators. You can use the sensitivity controls to give preference to one granular module over the other.

Since a lot of the patch depends on amplitude and intensity, let’s do a quick rundown of (generally):

Size — larger grains generally have somewhat louder outputs, but this depends on a lot of other factors; this control has affect on density as well (as smaller grains are created more often, so the effect of density changes with the grain size)

Position — when unfrozen, this acts as a delay, so it can have a lot of affect on amplitude (for instance, a note’s decay won’t be louder than its echo)

Density — this is a big one, probably the most important control, as it governs the density of the grains; exploring the two density controls can yield a lot of different rhythms and textures

Texure — this also has a lot of effect, as it applies an amplitude envelope to the grains (and in so doing diminishes their overall amplitude); it’s also valuable for tone-shaping, since it can make the sound smoother and less distinct

Pitch-speed — lower pitches spread out the energy of a sound, so they are often quieter than higher pitches, where the compression of time also compresses the energy

Additional controls:

Fade — allows you to slew the change between comparator states, smoothing the transition

Delay time 1 — controls the time of a delay (up to 4 seconds) in the feedback path of the first granular module

Delay feedback 1 — controls the feedback/regeneration of this delay; if you want to turn the delay off, set the feedback to 0

Feedback 2 — the second granular module doesn’t have a delay line, due to CPU constraints, but it does have a feedback loop; when the position control is > 0, it functions as a delay of sorts, so you can use this to create delayed sounds for the second granular module

Some notes:

When adjusting the size or density controls too rapidly, you may hear spikes in amplitude. That’s sort of just how the granular module behaves when these controls are adjusted.

The second delay line was removed due to CPU concerns. Granular modules are -very- CPU-dynamic. In some extreme settings (both density controls at 1, both pitch-speeds at or above +1 octave), the CPU can clip. So, I mean… don’t use those extreme settings and it should be fine.

  • Platform:
  • Category: Effect
  • Revision: 1.0
  • License: Creative Commons Attribution Share Alike 4.0
  • Views: 265
  • Modified: 2 weeks ago
Chat about this patch on Discord! Download (75)

Leave a Reply