Ok, I got it working in a limited way as a Pd object and I was
controlling my first filter against noise! Good fun. You can still
run the .tcl file as a standalone GUI for dev work. Get it from my git:
https://github.com/pd-projects/filterview
It would be quite nice if the phase was drawn as a thin line over the
magnatude graph. What do you think?
.hc
On Feb 15, 2011, at 6:31 PM, Mike Moser-Booth wrote:
Hey Hans,
Here's an update of filterview. There are now procs for the
following filters:lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to
comment out line 135 and uncomment 136 to see it). I also adjust the
bandwidth calculations so the handles sit where they should (i.e.
-3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).btw, the frequency axis is log-scaled, though it could probably be
improved a little. I sort of took a Pd approach to it by making an
mtof proc, so the x-axis gets scaled to linear midi notes and
converted to log-frequencies. :-) There might be a simpler way to do
it. It also doesn't go all the way down to 0 Hz, because doing that
with this approach causes the lowest frequencies to take up too much
of the graph. I think Max gets around it by using a more compressed
scale below 1-2 Hz..mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth <mmoserbooth@gmail.com
wrote:
Sure, I can throw the others together. Now that one is done the rest
should fall into place pretty easily. It might take me a couple of
days to get to it, though..mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner
hans@at.or.at wrote:That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms
should I use? Or even better, perhaps you want to take a crack at
it while I figure out how to display the x/frequency on a log
scale :-D.hc
-- Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
Programs should be written for people to read, and only incidentally
for machines to execute.