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