Page 1 of 1
Elliptic filters?
Posted: Fri Feb 16, 2018 5:34 pm
by unfa
I've stumbled upon these while trying to understand how Optimod works.
The seem to have the steepest possible transition from the pass and to the stopband. Could sound pretty cutting edge I guess
Do we have any implentations of these on the Linux audio world? I'm pretty sure SoX has something, but I never managed to use it.
Http://en.m.wikipedia.org/wiki/Elliptic_filter
Http://groups.google.com/forum/m/#!topic/rec.ham-radio
Re: Elliptic filters?
Posted: Fri Feb 16, 2018 9:14 pm
by CrocoDuck
They are one of the most used basic filters, acting as a building block of many EQ and utility filters. Not sure whether you can find a basic implementation. It should be easy to cook your own with Faust.
https://github.com/grame-cncm/faust
(Yep, there are library functions:
https://github.com/grame-cncm/faustlibr ... ilters.lib).
Re: Elliptic filters?
Posted: Fri Feb 16, 2018 9:55 pm
by CrocoDuck
I just had a little fun with it. Here a 6th order lowpass:
Code: Select all
declare name "ellipticExample";
declare author "CrocoDuck o'Ducks";
declare copyright "CrocoDuck o'Ducks";
declare version "1.00";
declare license "LGPL";
fi = library("filters.lib");
ma = library("math.lib");
lPassFilter_GUI = fi.lowpass6e(fc)
with {
fc = hslider("[0]Cutoff Frequeny [style:knob][unit:Hz]", 2000, 20, 20000, 0.5);
};
process = lPassFilter_GUI;
You can compile it to a standalone JACK program with GTK gui by issuing:
Assuming that you copy the code into a file called ellipticExample.dsp.
You can also compile to many different targets, including LV2:
Code: Select all
faust2alqt faust2caqtios faust2ios faust2mathdoc faust2paqt faust2sc faust2w32max6
faust2alsa faust2csound faust2jack faust2mathviewer faust2pdf faust2sig faust2w32msp
faust2alsaconsole faust2dssi faust2jackconsole faust2max6 faust2plot faust2sigviewer faust2w32puredata
faust2android faust2dummy faust2jackinternal faust2md faust2png faust2smartkeyb faust2w32vst
faust2androidunity faust2dummymem faust2jackrust faust2msp faust2pure faust2sndfile faust2wasm
faust2api faust2eps faust2jackserver faust2netjackconsole faust2puredata faust2supercollider faust2webaudio
faust2asmjs faust2faustvst faust2jaqt faust2netjackqt faust2raqt faust2svg faust2webaudioasm
faust2atomsnippets faust2firefox faust2juce faust2nodejs faust2ros faust2unity faust2webaudiowasm
faust2au faust2gen faust2ladspa faust2octave faust2rosgtk faust2unitywin faust2webaudiowast
faust2bela faust2graph faust2linuxunity faust2osxiosunity faust2rpialsaconsole faust2vst
faust2caqt faust2graphviewer faust2lv2 faust2owl faust2rpinetjackconsole faust2vsti
Re: Elliptic filters?
Posted: Sat Feb 17, 2018 11:05 am
by sadko4u
For what purpose do you need elliptic filters?
They nave non-linear amplitude in the frequency passing range and very high phase distortion.
It's not a huge problem to implement them in LSP but... Do you really need them?
FYI, elliptic filter is the same to the Butterworth-chebyshev filter but has additional zeros in the rejecting range, so you can emulate them by using Butterworth-chebyshev filter and adding some notch filters at the end.
Re: Elliptic filters?
Posted: Mon Feb 19, 2018 9:12 am
by unfa
Whoa! Maybe I can start coding my own plugins with Faust?
I was curious what an elliptic filter would sound like for sound synthesis.
Thank you CrocoDuck for the information!
Re: Elliptic filters?
Posted: Mon Feb 19, 2018 9:23 am
by CrocoDuck
unfa wrote:Whoa! Maybe I can start coding my own plugins with Faust?
Faust is pretty hot. Guitarix makes extensive use of Faust. I think it is pretty easy to pick up once you realize what a functional programming language is. I have the feeling that Faust is the most convenient way to create audio programs that you can represent as block diagrams. Pretty much, Faust allows you to write the diagram down as text, believe it or not.
If you are interested into it, check out Romain Michon workshops. This one is very good:
https://ccrma.stanford.edu/~rmichon/fau ... ourse2015/
It uses an older version of the language though, which means that functions are spitted in different libraries that are included in a slightly different way. It is very good though, as it contains also basic exposition of important topics in acoustics and DSP. There are more recent ones too:
https://ccrma.stanford.edu/~rmichon/faustTutorials/
https://ccrma.stanford.edu/~rmichon/fau ... hops/2016/
https://ccrma.stanford.edu/~rmichon/faustDay2017/
There also is official documentation and the Faust mailing list.
I think that a basic understanding of physical acoustics and DSP can get you a long way with Faust. And if you need a simple plugin for a particular application (just like in this case), you can cook one in minutes with Faust, as you seen.