aboutsummaryrefslogtreecommitdiff
path: root/externals/build/doc/help-bdiag~.pd
blob: f5e835f9ab582869c5748dd9860a0a96f57f0da1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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;