[Fluxus] redacted

Kassen signal.automatique at gmail.com
Tue Apr 5 14:10:12 PDT 2011


Dear list,

In the hope of alleviating Dave's fear of Fluxa losing it's charm if/when
we'd switch to anti-aliased osc's I added a under-sampling-based filter
called "(kas-filter )" to the redacted branch. The basic principle is two
S&H modules that sample in turn with a sine-wave crossfading between them.
Each S&H samples when it's completely faded out so this avoids vertical
flanks. The filter has straight inverted feedback which means it can
oscillate at the exact cutoff. To enable (yet) more prominence to the cutoff
frequency a optional 3rd modulation parameter is added that ads a overdrive
type wave-shaping to the crossfading sine. In practice this means that the
ratio between the input signal's frequency and the cutoff is quite important
in the overall result.

As far as I know this is a unique design; I never heard of any other
resonant under-sampling filters.

The design came about a few years ago when I read about a "clocked filter",
didn't understand the text and tried to make one on my own anyway in the
Nord Modular. This C++ version sounds a lot better than that prototype as I
have precise control over the execution order and I could implement
interpolation of the input signal to avoid sample-rate induced jitter of the
S&H triggers (to some degree...). It doesn't sound quite as good as a
analogue implementation, I'm not sure why exactly, but it's quite decent at
what it does here, I think.

It's been called "kas-filter" informally for a few years now, waiting for a
better name (and to contrast against filters my friends had done or used). I
considered changing that now for a release as it could look a bit vain but
by now other names seem "wrong". It should be ok, I think, as the Moog
filters and the KS module are named after their creators too ;-).

Anyway, on to practical matters; this is quite a rough and irregular
sounding filter that can bring out lots of harmonics as it sweeps. With a
low cutoff, a good amount of resonance and perhaps some drive it will do
synth-drum style sounds if fed steady pulses too. Usage;

(kas-filter sig a b [c])

Where;
*sig is a node representing the input signal
*a sets the cutoff (in Hz, not as a fraction of the sample-rate)
*b is the resonance and ranges from 0 to 1 (actually it's capped at .95 to
avoid too bad volume fluctiations)
*c is the drive for the wave-shaping and ranges from 0 to 1, defaulting to 0
if the parameter is not supplied.

a, b and c can all be either nodes or floats, which means I needed a rather
overloaded (8 times) function to process it all cleanly in the code. That
doesn't look very good but it should make the most of Fluxa's architecture.
Because of all the features and stuff like the input interpolation this
probably isn't the cheapest node, but then again it has a fairly dense sound
so you won't need a lot of them either :-)

I hope this'll be a fun toy for Fluxa-fans (all -erm- 5?), for the rest I
suppose I'll have to record a demo.

Yours,
Kas.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pawfal.org/pipermail/fluxus-pawfal.org/attachments/20110405/e2445d33/attachment-0002.htm>


More information about the Fluxus mailing list