-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdkfreqshift~.pd
62 lines (62 loc) · 1.83 KB
/
dkfreqshift~.pd
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
#N canvas 240 180 723 363 12;
#X obj 64 70 inlet~;
#X obj 164 195 *~;
#X obj 210 194 *~;
#X obj 171 225 -~;
#X obj 279 133 cos~;
#X obj 337 114 +~ 0.25;
#X obj 337 149 cos~;
#X obj 172 254 outlet~;
#X obj 288 77 phasor~ \$1;
#X obj 281 47 inlet~;
#X text 23 4 FREQSHIFT~: frequency shifting by single sideband modulation
;
#X text 24 25 based on Miller Puckette's H90.ssb.modulation;
#X text 432 109 in 1: signal;
#X text 431 129 in 2: freq shift amount;
#X text 432 205 copied hilbert transform;
#X text 433 225 in case it doesn't exist;
#X text 429 153 arg 1: freq shift amount;
#N canvas 1 56 589 313 \$0-dkfshift_hilbertcopy 0;
#X obj 105 92 biquad~ 0.83774 -0.06338 0.06338 -0.83774 1;
#X obj 105 66 biquad~ 1.94632 -0.94657 0.94657 -1.94632 1;
#X obj 86 149 biquad~ -0.02569 0.260502 -0.260502 0.02569 1;
#X obj 86 175 biquad~ 1.8685 -0.870686 0.870686 -1.8685 1;
#X obj 86 39 inlet~;
#X obj 105 121 outlet~;
#X obj 86 202 outlet~;
#X text 34 232 This is a pair of 4th-order all-pass filters whose outputs
somehow manage to be about 90 degrees out of phase from each other.
Both have different phases from the original. Adapted from a 4X patch
by Emmanuel Favreau \, circa 1982;
#X obj 502 39 inlet;
#X text 461 13 bang to clear;
#X text 80 16 signal in;
#X msg 502 112 clear;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 1 0;
#X connect 4 0 2 0;
#X connect 8 0 11 0;
#X connect 11 0 1 0;
#X connect 11 0 0 0;
#X connect 11 0 2 0;
#X connect 11 0 3 0;
#X restore 55 101 pd \$0-dkfshift_hilbertcopy;
#X text 510 30 pdkvabs;
#X text 510 51 gpl v 3;
#X text 507 11 Derek Kwan;
#X connect 0 0 17 0;
#X connect 1 0 3 0;
#X connect 2 0 3 1;
#X connect 3 0 7 0;
#X connect 4 0 1 1;
#X connect 5 0 6 0;
#X connect 6 0 2 1;
#X connect 8 0 4 0;
#X connect 8 0 5 0;
#X connect 9 0 8 0;
#X connect 17 0 1 0;
#X connect 17 1 2 0;