Dear list,<br><br>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.<br>
<br>As far as I know this is a unique design; I never heard of any other resonant under-sampling filters.<br><br>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.<br>
<br>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 ;-).<br>
<br>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;<br>
<br>(kas-filter sig a b [c])<br><br>Where;<br>*sig is a node representing the input signal<br>*a sets the cutoff (in Hz, not as a fraction of the sample-rate)<br>*b is the resonance and ranges from 0 to 1 (actually it's capped at .95 to avoid too bad volume fluctiations)<br>
*c is the drive for the wave-shaping and ranges from 0 to 1, defaulting to 0 if the parameter is not supplied.<br><br>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 :-) <br>
<br>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.<br><br>Yours,<br>Kas.<br>