Hallo,
How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q.
[biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object.
Cheers, ~Brandon
Hi Brandon,
here ya go!
VANILLA PD
*SIGNAL CONTROLLED*
vcf~ moog~
*MESSAGE CONTROLLED*
lop~ bp~ hp~ biquad
PD-EXTENDED/EXTERNAL LIBRARIES
*SIGNAL CONTROLLED*
---IEM Lib filters---
vcf_filter~ (building block for following abstractions)
vcf_bp2~ vcf_bp4~ vcf_bp6~ vcf_bp8~
vcf_hp2~ vcf_hp4~ vcf_hp6~ vcf_hp8~
vcf_lp2~ vcf_lp4~ vcf_lp6~ vcf_lp8~
vcf_rbp2~ vcf_rbp4~ vcf_rbp6~ vcf_rbp8~
*MESSAGE CONTROLLED*
---IEM Lib filters---
filter~ (building block for following abstractions)
bpq2~ bpw2~ bsq2~
hp1~ hp2~ hp2_bess~ (can go from 2-10 order) hp2_butt~ (can go from 2-10 order) hp2_cheb~ (can go from 2-10 order) hp2_crit~ (can go from 2-10 order)
lp1~ lp2~ lp2_bess~ (can go from 2-10 order) lp2_butt~ (can go from 2-10 order) lp2_cheb~ (can go from 2-10 order) lp2_crit~ (can go from 2-10 order)
---GGEE---
(Generate biquad coefficients) bandpass highpass lowpass
Maybe I missed some? ;-)
Best! D.
brandon zeeb wrote:
Hallo,
How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q.
[biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object.
Derek,
Thanks for the complete list! This is very helpful.
I was hoping to start off by using Vanilla-only objects. Does anyone have some good examples of how [biquad~] can be used to replicate standard low/high/band pass filters w/ q? Any other ideas?
~brandon
On Sun, May 17, 2009 at 4:35 AM, Derek Holzer derek@umatic.nl wrote:
Hi Brandon,
here ya go!
VANILLA PD
*SIGNAL CONTROLLED*
vcf~ moog~
*MESSAGE CONTROLLED*
lop~ bp~ hp~ biquad
PD-EXTENDED/EXTERNAL LIBRARIES
*SIGNAL CONTROLLED*
---IEM Lib filters---
vcf_filter~ (building block for following abstractions)
vcf_bp2~ vcf_bp4~ vcf_bp6~ vcf_bp8~
vcf_hp2~ vcf_hp4~ vcf_hp6~ vcf_hp8~
vcf_lp2~ vcf_lp4~ vcf_lp6~ vcf_lp8~
vcf_rbp2~ vcf_rbp4~ vcf_rbp6~ vcf_rbp8~
*MESSAGE CONTROLLED*
---IEM Lib filters---
filter~ (building block for following abstractions)
bpq2~ bpw2~ bsq2~
hp1~ hp2~ hp2_bess~ (can go from 2-10 order) hp2_butt~ (can go from 2-10 order) hp2_cheb~ (can go from 2-10 order) hp2_crit~ (can go from 2-10 order)
lp1~ lp2~ lp2_bess~ (can go from 2-10 order) lp2_butt~ (can go from 2-10 order) lp2_cheb~ (can go from 2-10 order) lp2_crit~ (can go from 2-10 order)
---GGEE---
(Generate biquad coefficients) bandpass highpass lowpass
Maybe I missed some? ;-)
Best! D.
brandon zeeb wrote:
Hallo,
How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q.
[biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object.
-- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 164: "Twist the spine"
Hello, I've been using the filter abstractions from the rjlib, which are all vanilla. Also, they use a an abstraction variant of [biquad~] called [e_beequad] that allows for signal control instead of message. The equations used are also nicely documented within the patches.
http://trac.rjdj.me/browser/trunk/rjlib/rj
.mmb
On Sun, May 17, 2009 at 9:03 AM, brandon zeeb zeeb.brandon@gmail.comwrote:
Derek,
Thanks for the complete list! This is very helpful.
I was hoping to start off by using Vanilla-only objects. Does anyone have some good examples of how [biquad~] can be used to replicate standard low/high/band pass filters w/ q? Any other ideas?
~brandon
On Sun, May 17, 2009 at 4:35 AM, Derek Holzer derek@umatic.nl wrote:
Hi Brandon,
here ya go!
VANILLA PD
*SIGNAL CONTROLLED*
vcf~ moog~
*MESSAGE CONTROLLED*
lop~ bp~ hp~ biquad
PD-EXTENDED/EXTERNAL LIBRARIES
*SIGNAL CONTROLLED*
---IEM Lib filters---
vcf_filter~ (building block for following abstractions)
vcf_bp2~ vcf_bp4~ vcf_bp6~ vcf_bp8~
vcf_hp2~ vcf_hp4~ vcf_hp6~ vcf_hp8~
vcf_lp2~ vcf_lp4~ vcf_lp6~ vcf_lp8~
vcf_rbp2~ vcf_rbp4~ vcf_rbp6~ vcf_rbp8~
*MESSAGE CONTROLLED*
---IEM Lib filters---
filter~ (building block for following abstractions)
bpq2~ bpw2~ bsq2~
hp1~ hp2~ hp2_bess~ (can go from 2-10 order) hp2_butt~ (can go from 2-10 order) hp2_cheb~ (can go from 2-10 order) hp2_crit~ (can go from 2-10 order)
lp1~ lp2~ lp2_bess~ (can go from 2-10 order) lp2_butt~ (can go from 2-10 order) lp2_cheb~ (can go from 2-10 order) lp2_crit~ (can go from 2-10 order)
---GGEE---
(Generate biquad coefficients) bandpass highpass lowpass
Maybe I missed some? ;-)
Best! D.
brandon zeeb wrote:
Hallo,
How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q.
[biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object.
-- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 164: "Twist the spine"
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
I think if you Google "biquad filter coefficients" or similar, you'll come up with tons of Greek to play with. Otherwise, the GGEE objects merely do the calculations and export them as messages, so if you wanted to use these objects to get some reasonable sounding stuff and then build your vanilla filters based on those coefficients, the filters themselves are technically vanilla as well.
best! D.
brandon zeeb wrote:
Derek,
Thanks for the complete list! This is very helpful.
I was hoping to start off by using Vanilla-only objects. Does anyone have some good examples of how [biquad~] can be used to replicate standard low/high/band pass filters w/ q? Any other ideas?
~brandon
On Sun, May 17, 2009 at 4:35 AM, Derek Holzer <derek@umatic.nl mailto:derek@umatic.nl> wrote:
Hi Brandon, here ya go! VANILLA PD *SIGNAL CONTROLLED* vcf~ moog~ *MESSAGE CONTROLLED* lop~ bp~ hp~ biquad PD-EXTENDED/EXTERNAL LIBRARIES *SIGNAL CONTROLLED* ---IEM Lib filters--- vcf_filter~ (building block for following abstractions) vcf_bp2~ vcf_bp4~ vcf_bp6~ vcf_bp8~ vcf_hp2~ vcf_hp4~ vcf_hp6~ vcf_hp8~ vcf_lp2~ vcf_lp4~ vcf_lp6~ vcf_lp8~ vcf_rbp2~ vcf_rbp4~ vcf_rbp6~ vcf_rbp8~ *MESSAGE CONTROLLED* ---IEM Lib filters--- filter~ (building block for following abstractions) bpq2~ bpw2~ bsq2~ hp1~ hp2~ hp2_bess~ (can go from 2-10 order) hp2_butt~ (can go from 2-10 order) hp2_cheb~ (can go from 2-10 order) hp2_crit~ (can go from 2-10 order) lp1~ lp2~ lp2_bess~ (can go from 2-10 order) lp2_butt~ (can go from 2-10 order) lp2_cheb~ (can go from 2-10 order) lp2_crit~ (can go from 2-10 order) ---GGEE--- (Generate biquad coefficients) bandpass highpass lowpass Maybe I missed some? ;-) Best! D. brandon zeeb wrote: Hallo, How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q. [biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object. -- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 164: "Twist the spine"
Good call! I explored the GGEE objects in Pd-extended, which led me to their source code (A+ for readability), which led me to this: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
Thanks for the pointer.
Cheers! ~Brandon
On Sun, May 17, 2009 at 9:53 AM, Derek Holzer derek@umatic.nl wrote:
I think if you Google "biquad filter coefficients" or similar, you'll come up with tons of Greek to play with. Otherwise, the GGEE objects merely do the calculations and export them as messages, so if you wanted to use these objects to get some reasonable sounding stuff and then build your vanilla filters based on those coefficients, the filters themselves are technically vanilla as well.
best! D.
brandon zeeb wrote:
Derek,
Thanks for the complete list! This is very helpful.
I was hoping to start off by using Vanilla-only objects. Does anyone have some good examples of how [biquad~] can be used to replicate standard low/high/band pass filters w/ q? Any other ideas?
~brandon
On Sun, May 17, 2009 at 4:35 AM, Derek Holzer <derek@umatic.nl mailto: derek@umatic.nl> wrote:
Hi Brandon,
here ya go!
VANILLA PD
*SIGNAL CONTROLLED*
vcf~ moog~
*MESSAGE CONTROLLED*
lop~ bp~ hp~ biquad
PD-EXTENDED/EXTERNAL LIBRARIES
*SIGNAL CONTROLLED*
---IEM Lib filters---
vcf_filter~ (building block for following abstractions)
vcf_bp2~ vcf_bp4~ vcf_bp6~ vcf_bp8~
vcf_hp2~ vcf_hp4~ vcf_hp6~ vcf_hp8~
vcf_lp2~ vcf_lp4~ vcf_lp6~ vcf_lp8~
vcf_rbp2~ vcf_rbp4~ vcf_rbp6~ vcf_rbp8~
*MESSAGE CONTROLLED*
---IEM Lib filters---
filter~ (building block for following abstractions)
bpq2~ bpw2~ bsq2~
hp1~ hp2~ hp2_bess~ (can go from 2-10 order) hp2_butt~ (can go from 2-10 order) hp2_cheb~ (can go from 2-10 order) hp2_crit~ (can go from 2-10 order)
lp1~ lp2~ lp2_bess~ (can go from 2-10 order) lp2_butt~ (can go from 2-10 order) lp2_cheb~ (can go from 2-10 order) lp2_crit~ (can go from 2-10 order)
---GGEE---
(Generate biquad coefficients) bandpass highpass lowpass
Maybe I missed some? ;-)
Best! D.
brandon zeeb wrote:
Hallo, How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q. [biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object.
-- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 164: "Twist the spine"
-- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 76: "Give the game away"
Yeah, that's the one I was thinking of, but was too busy doing taxes to remember the name ;-)
best! D.
brandon zeeb wrote:
Hallo, brandon zeeb hat gesagt: // brandon zeeb wrote:
Good call! I explored the GGEE objects in Pd-extended, which led me to their source code (A+ for readability), which led me to this: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The filter objects in the rjdj-lib just do these calulations as pd-vanilla abstractions (no stability checks)
Frank
Hey,
I've implemented the same coefficients as the ggee [lowpass] external in Pd, and can't seem to figure out where my calculations are off. The calculations are in the [pd lowpass] sub patch.
Any ideas? ~Brandon
On Sun, May 17, 2009 at 2:43 PM, Frank Barknecht fbar@footils.org wrote:
Hallo, brandon zeeb hat gesagt: // brandon zeeb wrote:
Good call! I explored the GGEE objects in Pd-extended, which led me to their source code (A+ for readability), which led me to this: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The filter objects in the rjdj-lib just do these calulations as pd-vanilla abstractions (no stability checks)
Ciao
Frank
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
I've verified my calculations and duplicated the ggee code in a short perl script. My script and my Pd patch match, but are still off from ggee. I feel like a noob here, what's the difference?
The script/patch are being compared at 100hz, bw=1, sr=48000.
~Brandon
On Sun, May 17, 2009 at 9:45 PM, brandon zeeb zeeb.brandon@gmail.comwrote:
Hey,
I've implemented the same coefficients as the ggee [lowpass] external in Pd, and can't seem to figure out where my calculations are off. The calculations are in the [pd lowpass] sub patch.
Any ideas? ~Brandon
On Sun, May 17, 2009 at 2:43 PM, Frank Barknecht fbar@footils.org wrote:
Hallo, brandon zeeb hat gesagt: // brandon zeeb wrote:
Good call! I explored the GGEE objects in Pd-extended, which led me to their source code (A+ for readability), which led me to this: http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The filter objects in the rjdj-lib just do these calulations as pd-vanilla abstractions (no stability checks)
Ciao
Frank
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Didn't check that one too closely, I guess. I assumed it was vanilla.
D.
martin brinkmann wrote:
Derek Holzer wrote:
VANILLA PD
*SIGNAL CONTROLLED*
vcf~ moog~
is moog~ really in vanilla? (not here (0.42-5), unforunately, though i think it should be...)
bis denn! martin
there is also bq~ in the nusmuk floder + all abstraction to compute the filter coef. bq~ is a simple biquad, but with audio input for filter coefs.
C
Derek Holzer a écrit :
Hi Brandon,
here ya go!
VANILLA PD
*SIGNAL CONTROLLED*
vcf~ moog~
*MESSAGE CONTROLLED*
lop~ bp~ hp~ biquad
PD-EXTENDED/EXTERNAL LIBRARIES
*SIGNAL CONTROLLED*
---IEM Lib filters---
vcf_filter~ (building block for following abstractions)
vcf_bp2~ vcf_bp4~ vcf_bp6~ vcf_bp8~
vcf_hp2~ vcf_hp4~ vcf_hp6~ vcf_hp8~
vcf_lp2~ vcf_lp4~ vcf_lp6~ vcf_lp8~
vcf_rbp2~ vcf_rbp4~ vcf_rbp6~ vcf_rbp8~
*MESSAGE CONTROLLED*
---IEM Lib filters---
filter~ (building block for following abstractions)
bpq2~ bpw2~ bsq2~
hp1~ hp2~ hp2_bess~ (can go from 2-10 order) hp2_butt~ (can go from 2-10 order) hp2_cheb~ (can go from 2-10 order) hp2_crit~ (can go from 2-10 order)
lp1~ lp2~ lp2_bess~ (can go from 2-10 order) lp2_butt~ (can go from 2-10 order) lp2_cheb~ (can go from 2-10 order) lp2_crit~ (can go from 2-10 order)
---GGEE---
(Generate biquad coefficients) bandpass highpass lowpass
Maybe I missed some? ;-)
Best! D.
brandon zeeb wrote:
Hallo,
How does everyone implement basic resonant filters, ie: LPF, HPF, BPF, in Puredata? [lop~], [hip~], and [bp~] are nice, and can easily be strung serially to create 2nd, 3rd, and 4th order filters, but lack q.
[biquad~] seems up to the task, but I'm unable to find any information in the help file or docs online pertaining to how one could replicate standard filters using this object.