aboutsummaryrefslogtreecommitdiff
path: root/doc/bdiag~.pd
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bdiag~.pd')
-rw-r--r--doc/bdiag~.pd97
1 files changed, 97 insertions, 0 deletions
diff --git a/doc/bdiag~.pd b/doc/bdiag~.pd
new file mode 100644
index 0000000..f5e835f
--- /dev/null
+++ b/doc/bdiag~.pd
@@ -0,0 +1,97 @@
+#N canvas 34 203 724 407 10;
+#X obj 34 45 metro;
+#X msg 34 20 bang;
+#X floatatom 76 20 5 0 0;
+#X obj 34 327 dist~ 1;
+#X obj 24 359 dac~;
+#N canvas 731 115 262 403 systemparams 1;
+#X floatatom 81 47 5 0 0;
+#X floatatom 125 47 5 0 0;
+#X floatatom 81 74 5 0 0;
+#X floatatom 125 74 5 0 0;
+#X floatatom 81 102 5 0 0;
+#X floatatom 125 102 5 0 0;
+#X floatatom 81 129 5 0 0;
+#X floatatom 125 129 5 0 0;
+#X floatatom 81 157 5 0 0;
+#X floatatom 125 157 5 0 0;
+#X floatatom 81 184 5 0 0;
+#X floatatom 125 184 5 0 0;
+#X floatatom 81 212 5 0 0;
+#X floatatom 125 212 5 0 0;
+#X floatatom 81 239 5 0 0;
+#X floatatom 125 239 5 0 0;
+#X obj 28 65 bdft 1;
+#X obj 27 93 bdft 2;
+#X obj 28 120 bdft 3;
+#X obj 28 175 bdft 7;
+#X obj 28 202 bdft 11;
+#X obj 28 230 bdft 17;
+#X obj 28 257 bdft 30;
+#X obj 28 319 outlet;
+#X text 20 23 frequency detune and damping;
+#X text 49 283 bdft argument = harmonic;
+#X obj 28 147 bdft 5;
+#X connect 0 0 16 0;
+#X connect 1 0 16 1;
+#X connect 2 0 17 0;
+#X connect 3 0 17 1;
+#X connect 4 0 18 0;
+#X connect 5 0 18 1;
+#X connect 6 0 26 0;
+#X connect 7 0 26 1;
+#X connect 8 0 19 0;
+#X connect 9 0 19 1;
+#X connect 10 0 20 0;
+#X connect 11 0 20 1;
+#X connect 12 0 21 0;
+#X connect 13 0 21 1;
+#X connect 14 0 22 0;
+#X connect 15 0 22 1;
+#X connect 16 0 23 0;
+#X connect 17 0 23 0;
+#X connect 18 0 23 0;
+#X connect 19 0 23 0;
+#X connect 20 0 23 0;
+#X connect 21 0 23 0;
+#X connect 22 0 23 0;
+#X connect 26 0 23 0;
+#X restore 89 76 pd systemparams;
+#X obj 34 93 bdiag~;
+#X obj 34 129 ibfft~;
+#X obj 34 232 dynwav~;
+#X obj 34 283 vol~;
+#X floatatom 57 257 5 0 0;
+#X floatatom 78 168 5 0 0;
+#X obj 78 196 phasor~;
+#X text 258 168 the [eig <index> <real> <imag>] message sets the eigenvalue
+for the corresponding block. there are n/2 blocks \, with n the dsp
+blocksize.;
+#X text 259 223 you can use [timefreq <index> <60dB time> <frequency>]
+for a more appropriate initialization of the eigenvalues using decay
+time in milliseconds and oscillation frequency in Hz.;
+#X text 256 18 bdiag~: parallel block diagonal state space model (parallel
+2d rotations) see bdiag.c for more info. the state equations for one
+block are:;
+#X text 300 70 state1 = real * state1 - imag * state2 + input1;
+#X text 300 85 state2 = real * state2 + imag * state1 + input2;
+#X text 258 121 this module is intended to "filter" spectral data produced
+by bfft or other short time spectral transforms like dwt.;
+#X text 256 279 [bang] or [random] set the state vector to a random
+value. [reset] sets it to 0;
+#X text 256 327 this patch uses of bdiag~ \, ibfft~ and dynwav~ to
+build a 32 voice harmonic modal synth \, with the state excited with
+white noise on bang.;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 0;
+#X connect 3 0 4 1;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 3 0;
+#X connect 10 0 9 1;
+#X connect 11 0 12 0;
+#X connect 12 0 8 1;