From f9e424312a63b740edb845d28685ec68022cf729 Mon Sep 17 00:00:00 2001 From: Ed Kelly Date: Thu, 13 Dec 2007 07:06:52 +0000 Subject: Help files for windowing are complete! So now we have easy block-sized windows. Hurrah! Ek svn path=/trunk/externals/windowing/; revision=9094 --- bartlett~-help.pd | 53 +++++++++++++++++++++++++++++++++++++++++++++ blackman~-help.pd | 2 ++ gaussian~-help.pd | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ hanning~-help.pd | 2 ++ kaiser~-help.pd | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ lanczos~-help.pd | 51 ++++++++++++++++++++++++++++++++++++++++++++ welch~-help.pd | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 289 insertions(+) create mode 100644 bartlett~-help.pd create mode 100644 gaussian~-help.pd create mode 100644 kaiser~-help.pd create mode 100644 lanczos~-help.pd create mode 100644 welch~-help.pd diff --git a/bartlett~-help.pd b/bartlett~-help.pd new file mode 100644 index 0000000..0f2ebd0 --- /dev/null +++ b/bartlett~-help.pd @@ -0,0 +1,53 @@ +#N canvas 256 141 557 517 10; +#X obj 4 479 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0 +14 -228856 -66577 0; +#X obj 4 -17 cnv 15 550 40 empty \$0-pddp.cnv.header bartlett~ 3 12 +0 18 -204280 -1 0; +#X obj 3 239 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13 +-228856 -1 0; +#X obj 3 299 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlet 15 12 0 +13 -228856 -1 0; +#X obj 3 359 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 15 +12 0 13 -228856 -1 0; +#X obj 72 259 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X text 168 40 formula:; +#X obj 97 86 hsl 71 15 -1 1 0 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 7000 1; +#X msg 94 66 1; +#X obj 94 46 loadbang; +#X obj 102 365 pddp/pddplink http://en.wikipedia.org/wiki/Window_function +-text wikipedia: window functions; +#X obj 438 -14 import windowing; +#X msg 36 154 \; pd dsp 1; +#X text 21 85 height --->; +#X obj 127 109 sig~ 1; +#N canvas 0 0 450 300 graph3 0; +#X array \$0-bartlett 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 326 65 graph; +#X text 102 394 Windowing functions are used with FFTs. These transform +the signal block-by-block into a spectral representation whose resolution +in both the frequency and time domains are proportional to their size +(as a power-of-two in PD). The different windows have different characteristics +in terms of stopband attenuation and noise bandwidth.; +#X text 102 258 SIGNAL: the height (amplitude) of the window is controlled +by the signal on its inlet.; +#X obj 127 158 tabsend~ \$0-bartlett; +#X obj 127 132 bartlett~; +#X text 169 53 1-x^2; +#X text 103 317 SIGNAL: a bartlett (triangle) window with size=dsp +blocksize; +#X obj 102 380 pddp/pddplink http://mathworld.wolfram.com/BartlettFunction.html +-text mathworld link; +#X obj 435 6 pddp/pddplink http://wiki.puredata.info/en/bartlett~ -text +pdpedia: bartlett~; +#X text 15 6 description: generates a bartlett window for each dsp +block; +#X obj 72 319 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X connect 7 0 14 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 14 0 19 0; +#X connect 19 0 18 0; diff --git a/blackman~-help.pd b/blackman~-help.pd index 15f85e1..f54f8c6 100644 --- a/blackman~-help.pd +++ b/blackman~-help.pd @@ -44,6 +44,8 @@ in terms of stopband attenuation and noise bandwidth.; #X text 102 258 SIGNAL: the height (amplitude) of the window is controlled by the signal on its inlet.; #X obj 127 158 tabsend~ \$0-blackman; +#X obj 73 319 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; #X connect 7 0 15 0; #X connect 8 0 7 0; #X connect 9 0 8 0; diff --git a/gaussian~-help.pd b/gaussian~-help.pd new file mode 100644 index 0000000..ac715ac --- /dev/null +++ b/gaussian~-help.pd @@ -0,0 +1,64 @@ +#N canvas 256 141 559 517 10; +#X obj 4 479 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0 +14 -228856 -66577 0; +#X obj 4 -17 cnv 15 550 40 empty \$0-pddp.cnv.header gaussian~ 3 12 +0 18 -204280 -1 0; +#X obj 3 239 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13 +-228856 -1 0; +#X obj 3 319 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlet 15 12 0 +13 -228856 -1 0; +#X obj 3 359 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 15 +12 0 13 -228856 -1 0; +#X obj 72 259 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X text 168 40 formula:; +#X obj 97 86 hsl 71 15 -1 1 0 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 7000 1; +#X msg 94 66 1; +#X obj 94 46 loadbang; +#X obj 102 365 pddp/pddplink http://en.wikipedia.org/wiki/Window_function +-text wikipedia: window functions; +#X obj 438 -14 import windowing; +#X msg 36 154 \; pd dsp 1; +#X text 21 85 height --->; +#X obj 127 109 sig~ 1; +#N canvas 0 0 450 300 graph3 0; +#X array \$0-gaussian 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 326 65 graph; +#X text 103 405 Windowing functions are used with FFTs. These transform +the signal block-by-block into a spectral representation whose resolution +in both the frequency and time domains are proportional to their size +(as a power-of-two in PD). The different windows have different characteristics +in terms of stopband attenuation and noise bandwidth.; +#X text 102 258 SIGNAL: the height (amplitude) of the window is controlled +by the signal on its inlet.; +#X text 15 6 description: generates a gaussian window for each dsp +block; +#X obj 435 6 pddp/pddplink http://wiki.puredata.info/en/gaussian~ -text +pdpedia: gaussian~; +#X obj 127 132 gaussian~; +#X obj 127 158 tabsend~ \$0-gaussian; +#X text 103 327 SIGNAL: a gaussian window with size=dsp blocksize; +#X obj 197 86 hsl 71 15 0 2 0 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 1750 1; +#X floatatom 192 105 5 0 0 0 - - -; +#X msg 121 66 0.5; +#X text 102 284 FLOAT: the width of the gaussian distribution curve +is controlled by floats in the inlet; +#X text 169 54 2^(-(x/d)^2); +#X obj 102 378 pddp/pddplink http://en.wikipedia.org/wiki/Gaussian_function +-text wikipedia: gaussian function; +#X obj 102 392 pddp/pddplink http://mathworld.wolfram.com/GaussianFunction.html +-text mathworld link; +#X obj 73 326 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X connect 7 0 14 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 9 0 25 0; +#X connect 14 0 20 0; +#X connect 20 0 21 0; +#X connect 23 0 24 0; +#X connect 24 0 20 0; +#X connect 25 0 23 0; diff --git a/hanning~-help.pd b/hanning~-help.pd index bd46b48..8a0c1d6 100644 --- a/hanning~-help.pd +++ b/hanning~-help.pd @@ -47,6 +47,8 @@ in terms of stopband attenuation and noise bandwidth.; #X obj 170 167 tabsend~ \$0-hanning; #X text 102 258 SIGNAL: the height (amplitude) of the window is controled by the signal on its inlet.; +#X obj 72 319 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; #X connect 6 0 25 0; #X connect 9 0 6 0; #X connect 11 0 9 0; diff --git a/kaiser~-help.pd b/kaiser~-help.pd new file mode 100644 index 0000000..78038f2 --- /dev/null +++ b/kaiser~-help.pd @@ -0,0 +1,63 @@ +#N canvas 256 141 557 517 10; +#X obj 4 479 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0 +14 -228856 -66577 0; +#X obj 4 -17 cnv 15 550 40 empty \$0-pddp.cnv.header kaiser~ 3 12 0 +18 -204280 -1 0; +#X obj 3 239 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13 +-228856 -1 0; +#X obj 3 319 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlet 15 12 0 +13 -228856 -1 0; +#X obj 3 359 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 15 +12 0 13 -228856 -1 0; +#X obj 72 259 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X text 168 40 formula:; +#X obj 97 126 hsl 71 15 -1 1 0 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 7000 1; +#X msg 94 106 1; +#X obj 94 86 loadbang; +#X obj 102 365 pddp/pddplink http://en.wikipedia.org/wiki/Window_function +-text wikipedia: window functions; +#X obj 438 -14 import windowing; +#X msg 36 154 \; pd dsp 1; +#X text 21 125 height --->; +#X obj 127 149 sig~ 1; +#N canvas 0 0 450 300 graph3 0; +#X array \$0-kaiser 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 326 65 graph; +#X text 103 396 Windowing functions are used with FFTs. These transform +the signal block-by-block into a spectral representation whose resolution +in both the frequency and time domains are proportional to their size +(as a power-of-two in PD). The different windows have different characteristics +in terms of stopband attenuation and noise bandwidth.; +#X text 102 258 SIGNAL: the height (amplitude) of the window is controlled +by the signal on its inlet.; +#X obj 197 126 hsl 81 15 1 240 1 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 3361 1; +#X floatatom 192 145 5 0 0 0 - - -; +#X obj 127 172 kaiser~; +#X obj 127 198 tabsend~ \$0-kaiser; +#X obj 435 6 pddp/pddplink http://wiki.puredata.info/en/kaiser~ -text +pdpedia: kaiser~; +#X text 169 84 modified Bessel function; +#X text 169 70 where Io is 0th order; +#X text 168 55 Io(a*sqrt(1-x^2))/Io(a); +#X text 103 327 SIGNAL: a kaiser (exponential decay) window with size=dsp +blocksize; +#X msg 121 106 10; +#X obj 102 379 pddp/pddplink http://en.wikipedia.org/wiki/Kaiser_window +-text wikipedia: kaiser window; +#X text 102 284 FLOAT: the narrowness of the kaiser window is controlled +by floats in the inlet; +#X text 15 6 description: generates a kaiser window for each dsp block +; +#X connect 7 0 14 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 9 0 27 0; +#X connect 14 0 20 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 27 0 18 0; diff --git a/lanczos~-help.pd b/lanczos~-help.pd new file mode 100644 index 0000000..4495841 --- /dev/null +++ b/lanczos~-help.pd @@ -0,0 +1,51 @@ +#N canvas 256 141 560 517 10; +#X obj 4 479 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0 +14 -228856 -66577 0; +#X obj 4 -17 cnv 15 550 40 empty \$0-pddp.cnv.header lanczos~ 3 12 +0 18 -204280 -1 0; +#X obj 3 239 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13 +-228856 -1 0; +#X obj 3 299 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlet 15 12 0 +13 -228856 -1 0; +#X obj 3 359 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 15 +12 0 13 -228856 -1 0; +#X obj 72 259 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X text 168 40 formula:; +#X obj 97 86 hsl 71 15 -1 1 0 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 7000 1; +#X msg 94 66 1; +#X obj 94 46 loadbang; +#X obj 102 365 pddp/pddplink http://en.wikipedia.org/wiki/Window_function +-text wikipedia: window functions; +#X obj 438 -14 import windowing; +#X msg 36 154 \; pd dsp 1; +#X text 21 85 height --->; +#X obj 127 109 sig~ 1; +#N canvas 0 0 450 300 graph3 0; +#X array \$0-lanczos 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 326 65 graph; +#X text 102 380 Windowing functions are used with FFTs. These transform +the signal block-by-block into a spectral representation whose resolution +in both the frequency and time domains are proportional to their size +(as a power-of-two in PD). The different windows have different characteristics +in terms of stopband attenuation and noise bandwidth.; +#X text 102 258 SIGNAL: the height (amplitude) of the window is controlled +by the signal on its inlet.; +#X text 169 52 sin(pi*x)/(pi*x); +#X text 15 6 description: generates a lanczos window for each dsp block +; +#X obj 435 6 pddp/pddplink http://wiki.puredata.info/en/lanczos~ -text +pdpedia: lanczos~; +#X obj 127 158 tabsend~ \$0-lanczos; +#X text 103 317 SIGNAL: a lanczos (sinc) window with size=dsp blocksize +; +#X obj 127 132 lanczos~; +#X obj 72 319 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X connect 7 0 14 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 14 0 23 0; +#X connect 23 0 21 0; diff --git a/welch~-help.pd b/welch~-help.pd new file mode 100644 index 0000000..efc0060 --- /dev/null +++ b/welch~-help.pd @@ -0,0 +1,54 @@ +#N canvas 256 141 560 517 10; +#X obj 4 479 cnv 15 550 20 empty \$0-pddp.cnv.footer empty 20 12 0 +14 -228856 -66577 0; +#X obj 4 -17 cnv 15 550 40 empty \$0-pddp.cnv.header welch~ 3 12 0 +18 -204280 -1 0; +#X obj 3 239 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 15 12 0 13 +-228856 -1 0; +#X obj 3 299 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlet 15 12 0 +13 -228856 -1 0; +#X obj 3 359 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 15 +12 0 13 -228856 -1 0; +#X obj 72 259 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X text 168 40 formula:; +#X obj 97 86 hsl 71 15 -1 1 0 0 empty empty empty -2 -6 0 10 -262144 +-1 -1 7000 1; +#X msg 94 66 1; +#X obj 94 46 loadbang; +#X obj 102 365 pddp/pddplink http://en.wikipedia.org/wiki/Window_function +-text wikipedia: window functions; +#X obj 438 -14 import windowing; +#X msg 36 154 \; pd dsp 1; +#X text 21 85 height --->; +#X obj 127 109 sig~ 1; +#N canvas 0 0 450 300 graph3 0; +#X array \$0-welch 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 326 65 graph; +#X text 102 406 Windowing functions are used with FFTs. These transform +the signal block-by-block into a spectral representation whose resolution +in both the frequency and time domains are proportional to their size +(as a power-of-two in PD). The different windows have different characteristics +in terms of stopband attenuation and noise bandwidth.; +#X text 102 258 SIGNAL: the height (amplitude) of the window is controlled +by the signal on its inlet.; +#X obj 127 158 tabsend~ \$0-welch; +#X obj 127 132 welch~; +#X text 169 53 1-abs(x); +#X obj 102 379 pddp/pddplink http://en.wikipedia.org/wiki/Welch_method +-text wikipedia: Welch's method; +#X obj 102 392 pddp/pddplink http://mathworld.wolfram.com/WelchApodizationFunction.html +-text mathworld link; +#X text 103 317 SIGNAL: a welch window with size=dsp blocksize; +#X text 15 6 description: generates a welch window for each dsp block +; +#X obj 435 6 pddp/pddplink http://wiki.puredata.info/en/welch~ -text +pdpedia: welch~; +#X obj 73 319 cnv 17 3 30 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X connect 7 0 14 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 14 0 19 0; +#X connect 19 0 18 0; -- cgit v1.2.1