#N canvas 464 39 561 523 10;
#X obj 6 493 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 6 296 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 6 353 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 6 416 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X text 132 424 (none);
#X text 131 304 signal;
#X text 131 328 signal;
#X text 131 364 signal;
#X text 131 388 signal;
#X obj 100 305 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 100 329 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 100 366 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 100 389 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 188 328 - imaginary part of the complex signal in cartesian form;
#X text 188 304 - real part of the complex signal in cartesian form;
#X text 77 146 Real;
#X text 309 146 Imaginary;
#X text 46 265 Amplitude;
#X text 317 267 Phase;
#X text 74 91 Use the [cartopol~] object to convert signal values representing cartesian coordinates to a signal composed of polar coordinates - useful for spectral processing.;
#X text 188 363 - amplitude output of the polar form;
#X text 189 388 - phase in radians (-pi to pi) output of the polar form;
#X obj 6 449 cnv 3 550 3 empty empty more_info 8 12 0 13 #dcdcdc #000000 0;
#X obj 110 202 cyclone/cartopol~, f 21;
#X text 125 457 If the right outlet isn't connected to anything \, the object won't compute the phase \, saving you some CPU.;
#N canvas 604 151 534 482 spectral 0;
#X obj 99 239 cnv 15 300 100 empty empty polar: 6 10 0 14 #e0e0e0 #404040 0;
#X obj 194 210 cyclone/cartopol~;
#X obj 194 369 cyclone/poltocar~;
#X obj 230 147 rfft~;
#X obj 219 426 rifft~;
#X text 312 370 back to cartesian;
#X text 276 170 <= imaginary;
#X text 112 283 amplitude =>;
#X text 306 282 <= phase;
#X text 218 269 spectral;
#X text 212 288 processing;
#X text 218 306 in here;
#X text 167 172 real =>;
#X text 308 210 to polar form;
#X text 219 252 Do some;
#X text 85 32 [cartopol~] 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:, f 62;
#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 457 227 pd spectral \; processing;
#X obj 2 2 ./header cartopol~;
#X text 24 61 Signal cartesian to polar conversion;
#X obj 499 71 cyclone/dsponoff~;
#X obj 110 239 cyclone/snapshot~ 1;
#X floatatom 110 266 12 0 0 0 - - - 0;
#X obj 239 239 cyclone/snapshot~ 1;
#X floatatom 239 266 12 0 0 0 - - - 0;
#X floatatom 110 147 12 0 0 0 - - - 0;
#X obj 110 171 sig~;
#X floatatom 233 146 12 0 0 0 - - - 0;
#X obj 233 170 sig~;
#X connect 23 0 29 0;
#X connect 23 1 31 0;
#X connect 29 0 30 0;
#X connect 31 0 32 0;
#X connect 33 0 34 0;
#X connect 34 0 23 0;
#X connect 35 0 36 0;
#X connect 36 0 23 1;
