Granular Filter - an emulation of the Klavis Grainity Eurorack module

I ran across this video about the new Klavis Grainity granular filter module. It was to have been released, but there were some quality control problems in some of the components, so it has been delayed.

The concept seems similar to some experiments I ran with my Venom modules, swapping left and right channels at audio rates, using the audio signals themselves to trigger the swapping.

So I decided to see if I could emulate the functionality of the Grainity module using VCV Rack free modules. I think the emulator turned out great, though I haven’t bothered to provide a demo showing how it can sound. There are so many possible textures available, I struggled deciding what to demo, and ended up producing nothing :woozy_face:

I hope someone can find some use for this emulation patch - and please share the results here if you do!

13 Likes

I have a new version 2 of the emulator. I was very happy with my original emulation, except the switching between grains was noisy / clicky.

This version adds crossfade to the switching via the DanT Nu-PolySplice, with a PatchMaster De-click control to set the length of the crossfade in milliseconds. I think this is a major improvement.

8 Likes

I was recently reading a thread (on Discord? can’t remember) where someone from Klavis mentioned that Grainity has an anti-aliasing “circuit”. The module is hybrid, with the audio path fully analog, but the timing of the switching must be digital, hence the need for anti-aliasing.

I did some testing with my emulation, and sure enough, there is wicked aliasing when the frequencies get high with division set to 1.

I’m not aware of any sequential switches with oversampling. I may attempt an emulation version that uses multiple Bernoulli Switches with oversampling to do switching for 2, 4, or 8 grains. It may require some VCAs as well - I’m not sure yet.

UPDATE - I spend nearly an hour on this, and ran into a dead end. Not sure where I went wrong, but I am not going to spend any more time on it.

Just checked the Monotrail Tech Talk deepdive into Klavis Grainity (about 0:30h)

I was wondering how a Granular Filter might work. I first thought it was more about the Filter. But it’s more about the Granular. Although, not Granular as in the ‘usual’ scanning through an audiobuffer.

It’s more about switching between the outputs of the various internal filtermodes in various looped patterns (or structures). Structures are basically various order(s) and length(s) per filter output (to switch between). The structures/patterns are looped and can run at their own frequencies (independent of the input signal cycle/frequency). They can also run at divided or harmonic ratios. Or when triggered externally by upward zero crossing detection. Can get wild on complex input signals. And then there’s the various mixing an modulation options…

Interesting concept, great implementation and smart control options. And a multitude of interesting results.

I guess I will do my own deep dive in the coming days. Starting of from your emulation patch.

I hope you share your experience. I hear some sounds in the Monotrail video that I like, and in my own exploration I have found some interesting stuff. But somehow it has not yet inspired me to create a piece I want to share.

I did try your patch, but decided to start from scratch, implementing the basic concepts with more room for experimentation and modulation. So…not even strictly following the Klavis Grainity architecture (as below).

I decided to approach the problem more from the perspective of a sort-of discrete step wave-sequencing thing. Unlike the crossfading approach as implemented in the Prophet VS or Korg Wavstation (Vector Synthesis). And were the ‘samples’ or ‘grains’ are limited to filter transformations of some input sound. Instead of arbitrary ‘wave tables’ of more common Vector Syntesis.

  • Currently I have a structure setup that starts with an initial soundsource. Currently an oscillator + noise mix (with crossfade). That signal runs through the various filters thus creating the various sound sources for the ‘grains’.

  • You might and could choose any transformation of the initial sound source (e.g. other filters, add waveshapers / distortions or whatever). Or any soundsource for that matter. I also including the raw/unfiltered version of the soundsource as a ‘grain’ option.

  • A sequence (of 1 to maximum 8) ‘grains’ is called a ‘structure’ in Klavis Grainity. To provide for the these structures, the various sources are fed into 8 (manual/mutex) switches, where you select which input goes to the output

  • The 8 outputs of the 8 (mutex) switches represent the 8 ‘grains’ or segments of a ‘sequence’ or ‘structure’. So, this selection is what determines the soundsource for each of the (max 8) sequence/structure steps.

  • These 8 ‘grains’ or ‘segments’ are fed into a 8 to 1 sequential switch. The switching is controlled by a phasor. Any amount of steps (selected on the sequential switch) will always spread out nicely over the phasor cycle.

  • Currently the phasor is a saw (so, linear timing of the steps), but any shape can be used (thus effecting the relative time spent in each step). Pulse/square will only address first and last…

  • The phasor also has phase control. Changing the phasor phase will shift the ‘play head’ in the ‘audio grain buffer’ effecting which grains are read in the sequence, thus effecting the final output/sound (if more then one step AND different soundsources).

  • The phasor can run at LFO and audiorate. At LFO rates it acts more or less as a step sequencer.

  • To combat discontinuities (clicks/peaks) and/or aliasing I added some fast slew limiting and a final lowpass filter. Even when a slew limiter is set to 0/0, just changing the slope from linear towards exp might have an effect (fast slew limiter = crude lowpass filter).

  • To compensate for the (sometimes large) differences in resulting/combined signal levels at the output, I also added a signal squashing compressor…

  • I did not bother compensate for the various 1-sample-per-cable delays in the various paths to keep stuff in phase/sync.

  • The chain ends in a crossfader between one of the grainchannels (a specific filter output) and the ‘granular’ filter output (=sequential switch output).

Now that the static structure stands, we can start actually generating sound(s)…

  • We can play with the (relative) frequencies/pitches of the soundsource and the phasor. Either musical ratios (e.g. by using octaver and/or quantizer, preferably with modulation options) or any frequencies in between (inharmonics…). Slight detuning results in chorussy/flangery/phasery effects.

  • We can also play with the phase and/or shape of the phasor controlling the ‘play head’, thus controlling which and how long ‘grains’ are read.

  • We have the various filter modulation options, like the cutoff frequencies, resonance, drive. These are assumed linked for all filter types.

  • We can change the sequence//structure by changing the number of steps on the sequential switch (where the total sequence length is synced to phasor cycle, and remains the same for any number of steps).

When connecting modulation sources to the various modulation targets we can have the whole constructing run through the many permutations. E.g. by connecting up some (periodic and/or chaotic) LFO’s.

3 Likes