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