Thanks a lot for your response Julius.  A couple things happened here.

#1 I didn't know what to expect from this filter, and having more recent
hands-on experience with modular synths where you get resonant 2nd or 4th
order lowpass and bandpass filters, these sound a lot different than the
peaking types that are otherwise flat. Graphic equalizers are so 70's!  But
I thought that "dry" was coming through because I always heard "shhhhhh".

#2 I hooked my noise source and filter (with adjustable gain and freq) to
a dm.spectral_level_demo object, and it seemed like even when there was a
fair amount of energy shown in the higher bands, I couldn't hear it.  I
tried with just a 4 pole butterworth high pass and confirmed that I can't
hear too much above 10k (alas).  Anyway back to my other experiment, I
found that when using noise, and setting a 12 dB peak and sweeping the
frequency, I could see the peak moving back and forth, but it rarely
boosted more than 2 or 3 dB compared to other bands.  Using a sawtooth or
square wave as the source I was much more likely to get a 10 dB boost shown.

#3 Not knowing any better, I perceived this filter as a brick-wall thing,
you know, 0 dB until it got to fc - B/2, down 72 dB, then at fc + B/2 wham
back up to 0.  But it seems that if the notch is 72 dB down it's going to
pull down energy way outside of that.

So then I have some questions.
a) what does the bandwidth measure here?  It's certainly not the - 3 dB
points.
b) From a pole/zero perspective, how does a peaking EQ with a deep notch
compare to say, an equivalent order state variable filter where the notch
is formed by adding the High-Pass and lowpass outputs?

Thanks!  Gary W.

Here's the Faust code I was messing around with, for reference.

import("stdfaust.lib");
> waveGenerator = hgroup("[0]Wave Generator", no.noise, os.triangle(freq),
> os.square(freq), os.sawtooth(freq) : ba.selectn(4, wave))
> with{
>     wave = nentry("[0]Waveform", 0,0,3,1);
>     freq = hslider("[1]freq", 440, 50, 2000, 0.01):si.smoo;
> };
> filtfreq = hslider("[1]Filter freq", 220, 50, 15000, 0.01);
> filtgain = hslider("[2]Filter gain", 0, -72, 18, 0.1):si.smoo;
> process = waveGenerator : fi.peak_eq_cq(filtgain, filtfreq, 20) :
> dm.spectral_level_demo;
> //process = waveGenerator : dm.spectral_level_demo;
> //process = waveGenerator : fi.highpass( 4, filtfreq) :
> dm.spectral_level_demo;



On Mon, Apr 22, 2019 at 2:42 PM Julius Smith <j...@ccrma.stanford.edu> wrote:

> To really see the frequency response, use an impulse input (1-1')
> instead of noise, the script faust2octave, and plot the FFT magnitude.
> Your first example looks as attached.
>
> Also put a slider on the boost/cut level.  It is far easier to hear a
> boost than a cut,.
>
> - Julius
>
> On Sun, Apr 21, 2019 at 7:44 PM Gary Worsham <gary.wors...@gmail.com>
> wrote:
> >
> > My impression is that when boosting that there is dry signal mixed in
> and when cutting, the entire spectrum is cut, not just the band in question.
> >
> > import("stdfaust.lib");
> > waveGenerator = hgroup("[0]Wave Generator", no.noise, os.triangle(freq),
> os.square(freq), os.sawtooth(freq) : ba.selectn(4, wave))
> > with{
> >     wave = nentry("[0]Waveform", 0,0,3,1);
> >     freq = hslider("[1]freq", 440, 50, 2000, 0.01);
> > };
> >
> > process = waveGenerator : fi.peak_eq(-72, 3050, 200);
> >
> > Sounds almost completely cut off. -72 dB, center frequency 3050, BW =
> 200 Hz cuts it completely off?
> >
> > I can hear the difference between these however.
> >
> > import("stdfaust.lib");
> > waveGenerator = hgroup("[0]Wave Generator", no.noise, os.triangle(freq),
> os.square(freq), os.sawtooth(freq) : ba.selectn(4, wave))
> > with{
> >     wave = nentry("[0]Waveform", 0,0,3,1);
> >     freq = hslider("[1]freq", 440, 50, 2000, 0.01);
> > };
> >
> > process = waveGenerator : fi.peak_eq(18, 3050, 200);
> >
> > import("stdfaust.lib");
> > waveGenerator = hgroup("[0]Wave Generator", no.noise, os.triangle(freq),
> os.square(freq), os.sawtooth(freq) : ba.selectn(4, wave))
> > with{
> >     wave = nentry("[0]Waveform", 0,0,3,1);
> >     freq = hslider("[1]freq", 440, 50, 2000, 0.01);
> > };
> >
> > process = waveGenerator : fi.peak_eq(18, 1750, 100);
> >
> > Just changing the frequency and BW of the filter with an 18 dB boost.
> It's hard for me to tell if it's working properly or not.
> >
> > Thanks for any insight!
> >
> > GW
> > _______________________________________________
> > Faudiostream-users mailing list
> > Faudiostream-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
>
>
> --
>
> Julius O. Smith III <j...@ccrma.stanford.edu>
> Professor of Music and, by courtesy, Electrical Engineering
> CCRMA, Stanford University
> http://ccrma.stanford.edu/~jos/
>
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to