-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjk_ssb_modulation0~.pd
86 lines (86 loc) · 2.88 KB
/
jk_ssb_modulation0~.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#N canvas 268 8 919 578 12;
#X obj 191 381 cos~;
#X obj 241 353 +~ -0.25;
#X obj 241 380 cos~;
#X obj 128 418 *~;
#X obj 182 418 *~;
#X obj 128 455 -~;
#X text 10 293 pair of allpass;
#X text 9 310 filters to make;
#X text 9 328 90 degree phase;
#X text 7 345 shifted versions;
#X text 447 192 <-- shift frequency;
#X text 311 321 cosine and sine waves;
#X text 495 295 SINGLE SIDEBAND MODULATION;
#X text 740 295 (AKA FREQUENCY SHIFTING);
#X text 352 547 updated for Pd version 0.39;
#X obj 241 326 phasor~;
#X text 222 418 <-- complex multipier;
#X text 221 435 (calculates real part);
#X text 310 336 to form the real and;
#X text 310 352 imaginary part of a;
#X text 310 369 complex sinusoid;
#X text 483 325 The signal sideband modulator gives you only one sideband
for each frequency in the input signal (whereas ring modulation gave
both a positive and negative sideband). You can set the shift frequency
positive to shift all frequencies upward \, or negative to shift them
downwards.;
#X text 482 405 The technique is to filter the input into two versions
\, 90 degrees out of phase \, which can be interpreted as the real
and imaginary part of a complex signal with positive frequencies only.
You can then form the (complex) product of this with a (complex) sinusoid
to modulate upward or downward in frequency.;
#X obj 129 276 hilbert~;
#X text 482 501 The "Hilbert~" object is an abstraction in pd/extra.
;
#X obj 82 28 inlet~;
#X obj 128 521 outlet~;
#X msg 229 85 0;
#X obj 229 34 loadbang;
#X obj 241 59 r ssb_reset;
#X obj 201 155 cnv 15 226 94 empty cn_scnd SSB_Modulation 57 12 0 14
-99865 -241291 0;
#X obj 206 164 vu 15 80 empty empty -1 -8 0 10 -66577 -99865 1 0;
#X obj 229 230 bng 15 250 50 0 ssb_reset empty Reset 20 8 0 12 -258113
-4034 -4034;
#X obj 232 196 hsl 128 15 -1000 1000 0 0 empty empty frequency_shift
20 8 0 10 -261682 -1 -1 5550 1;
#X obj 299 230 tgl 15 0 \$0-active empty Active 20 8 0 12 -262144 -1
-4034 1 1;
#X obj 369 196 nbx 5 14 -1000 1000 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 -125.984 256;
#X obj 83 94 spigot~;
#X obj 186 125 pvu~;
#X obj 129 60 r \$0-active;
#X obj 16 140 s~ \$0-bypass;
#X obj 162 485 r~ \$0-bypass;
#X text 385 36 Switch off Activate toggle in order to bypass the effect
and save CPU cycles.;
#X text 387 80 Reset will restore the effect to its defaupt values.
;
#X text 388 110 based on Pd example: H09.ssb.modulation;
#X obj 345 114 inlet;
#X connect 0 0 3 1;
#X connect 1 0 2 0;
#X connect 2 0 4 1;
#X connect 3 0 5 0;
#X connect 4 0 5 1;
#X connect 5 0 26 0;
#X connect 15 0 1 0;
#X connect 15 0 0 0;
#X connect 23 0 3 0;
#X connect 23 1 4 0;
#X connect 25 0 36 0;
#X connect 27 0 33 0;
#X connect 28 0 27 0;
#X connect 29 0 27 0;
#X connect 33 0 35 0;
#X connect 35 0 15 0;
#X connect 36 0 39 0;
#X connect 36 1 37 0;
#X connect 36 1 23 0;
#X connect 37 0 31 0;
#X connect 38 0 36 1;
#X connect 40 0 26 0;
#X connect 44 0 33 0;
#X coords 0 -1 1 1 232 100 1 198 152;