#N canvas 370 56 563 575 10;
#X obj 6 545 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 9 393 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 9 448 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 9 510 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X text 234 520 (none);
#X text 138 402 signal;
#X text 138 425 signal;
#X text 138 458 signal;
#X text 138 481 signal;
#X obj 107 403 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 107 424 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 107 460 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 107 482 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 79 95 Use the [cartopol~] object to convert signal values representing cartesian coordinates to a signal composed of polar coordinates - useful for spectral processing.;
#N canvas 686 138 534 482 spectral_processing 0;
#X obj 110 239 cnv 15 300 100 empty empty polar: 6 10 0 14 #e0e0e0 #404040 0;
#X obj 205 210 cyclone/cartopol~;
#X obj 205 369 cyclone/poltocar~;
#X obj 241 147 rfft~;
#X obj 230 426 rifft~;
#X text 323 370 back to cartesian;
#X text 287 170 <= imaginary;
#X text 123 283 amplitude =>;
#X text 317 282 <= phase;
#X text 229 269 spectral;
#X text 223 288 processing;
#X text 229 306 in here;
#X text 178 172 real =>;
#X text 319 210 to polar form;
#X text 230 252 Do some;
#X text 88 22 [poltocar~] is useful for spectral processing in the more intuitive polar form (with amplitude and phase values). This is because when performing spectral analysis in Pd \, the signal is in the cartesian form \, so we need [cartopol~] and [poltocar~] to convert to and from the polar form in order to perform the FFT and iFFT. Here's the general idea:;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 4 0;
#X connect 2 1 4 1;
#X connect 3 0 1 0;
#X connect 3 1 1 1;
#X restore 413 271 pd spectral_processing;
#X text 200 458 - real part of the signal in the cartesian form;
#X text 200 481 - imaginary part of the signal in the cartesian form;
#X text 202 424 - phase (in radians) of the signal in the polar form;
#X text 201 402 - amplitude of the signal in the polar form;
#X obj 499 69 cyclone/dsponoff~;
#X obj 2 3 ./header poltocar~;
#X text 24 61 Signal polar to cartesian conversion;
#X text 80 277 Real;
#X text 322 277 Imaginary;
#X text 49 156 Amplitude;
#X text 326 158 Phase;
#X obj 113 250 cyclone/snapshot~ 1;
#X floatatom 113 277 12 0 0 0 - - - 0;
#X obj 242 250 cyclone/snapshot~ 1;
#X floatatom 242 277 12 0 0 0 - - - 0;
#X floatatom 113 158 12 0 0 0 - - - 0;
#X obj 113 182 sig~;
#X floatatom 242 157 12 0 0 0 - - - 0;
#X obj 242 181 sig~;
#X obj 113 213 cyclone/poltocar~, f 22;
#X text 19 338 see also:;
#X obj 445 352 open-else;
#X text 448 308 click:;
#X obj 87 329 cyclone/poltocar;
#X obj 87 349 cyclone/cartopol~;
#X msg 445 331 pol2car~;
#X text 215 329 Plugdata users or those with ELSE can also use [else/pol2car~] as an alternative, f 33;
#X connect 26 0 27 0;
#X connect 28 0 29 0;
#X connect 30 0 31 0;
#X connect 31 0 34 0;
#X connect 32 0 33 0;
#X connect 33 0 34 1;
#X connect 34 0 26 0;
#X connect 34 1 28 0;
#X connect 40 0 36 0;
