#N canvas 618 87 571 500 12;
#X declare -path else;
#X obj 105 371 complex-mod~;
#X obj 105 342 hilbert~;
#X obj 186 341 nbx 5 16 -2000 2000 0 0 empty mod empty 0 -8 0 13 -228856
-1 -1 0 256;
#X obj 105 311 osc~ 440;
#X text 189 318 Modulator;
#X obj 387 336 nbx 5 16 -2000 2000 0 0 empty mod empty 0 -8 0 13 -228856
-1 -1 0 256;
#X obj 306 331 osc~ 440;
#X text 390 313 Modulator;
#X obj 306 367 freq.shift~;
#X obj 345 30 declare -path else;
#X obj 102 403 out~;
#X obj 300 400 out~;
#X text 71 87 Pd Vanilla also provides an extra abstraction for complex
modulation. It needs a complex signal input and a modulating frequency.
;
#X text 70 210 The ELSE library also provides a similar object \, called
[freq.shift~]. The difference is that it doesn't need a complex signal
input \, but a real one \, because the conversion to a complex signal
is done internally.;
#X text 71 142 This abstraction also provides a second output \, which
is a separate and opposite sideband (a frequency shift to the opposite
direction). Thinking of a Ring Modulator \, is like you the two sidebands
separately.;
#X connect 0 0 10 0;
#X connect 0 1 10 1;
#X connect 1 0 0 0;
#X connect 1 1 0 1;
#X connect 2 0 0 2;
#X connect 3 0 1 0;
#X connect 5 0 8 1;
#X connect 6 0 8 0;
#X connect 8 0 11 0;
#X connect 8 1 11 1;
