#N struct label float x float y float n;
#N struct line float x float y float w;
#N canvas 425 19 448 278 10;
#N canvas 15 0 504 734 data 0;
#X scalar label 55 190.999 43 \;;
#X scalar label 175 196.826 44 \;;
#X scalar label 175 203 45 \;;
#X scalar label 175 209.541 46 \;;
#X scalar label 55 216.471 47 \;;
#X scalar label 175 223.813 48 \;;
#X scalar label 175 231.591 49 \;;
#X scalar label 55 239.832 50 \;;
#X scalar label 175 248.563 51 \;;
#X scalar label 175 257.814 52 \;;
#X scalar label 55 267.614 53 \;;
#X scalar label 175 277.997 54 \;;
#X scalar label 175 288.998 55 \;;
#X scalar label 175 300.652 56 \;;
#X scalar label 55 313 57 \;;
#X scalar label 175 326.082 58 \;;
#X scalar label 175 339.942 59 \;;
#X scalar label 155 354.626 60 \;;
#X scalar label 175 370.183 61 \;;
#X scalar label 175 386.665 62 \;;
#X scalar label 175 404.127 63 \;;
#X scalar label 55 422.628 64 \;;
#X scalar label 175 442.228 65 \;;
#X scalar label 175 462.994 66 \;;
#X scalar label 55 484.995 67 \;;
#X scalar label 175 508.305 68 \;;
#X scalar label 175 533 69 \;;
#X scalar label 175 559.164 70 \;;
#X scalar label 55 586.883 71 \;;
#X scalar label 175 616.251 72 \;;
#X scalar label 175 647.365 73 \;;
#X scalar label 55 680.33 74 \;;
#X scalar label 175 715.254 75 \;;
#X scalar label 175 752.255 76 \;;
#X scalar label 55 791.456 77 \;;
#X scalar line 175 87 100 \;;
#X scalar line 195 135.999 60 \;;
#X scalar line 195 138.913 60 \;;
#X scalar line 195 142 60 \;;
#X scalar line 195 145.271 60 \;;
#X scalar line 195 148.735 60 \;;
#X scalar line 175 152.406 100 \;;
#X scalar line 195 156.296 60 \;;
#X scalar line 195 160.416 60 \;;
#X scalar line 195 164.782 60 \;;
#X scalar line 195 169.407 60 \;;
#X scalar line 195 174.307 60 \;;
#X scalar line 195 179.499 60 \;;
#X scalar line 75 184.999 300 \;;
#X scalar line 195 190.826 60 \;;
#X scalar line 195 197 60 \;;
#X scalar line 195 203.541 60 \;;
#X scalar line 75 210.471 300 \;;
#X scalar line 195 217.813 60 \;;
#X scalar line 195 225.591 60 \;;
#X scalar line 75 233.832 300 \;;
#X scalar line 195 242.563 60 \;;
#X scalar line 195 251.814 60 \;;
#X scalar line 75 261.614 300 \;;
#X scalar line 195 271.997 60 \;;
#X scalar line 195 282.998 60 \;;
#X scalar line 195 294.652 60 \;;
#X scalar line 75 307 300 \;;
#X scalar line 195 320.082 60 \;;
#X scalar line 195 333.942 60 \;;
#X scalar line 175 348.626 100 \;;
#X scalar line 195 364.183 60 \;;
#X scalar line 195 380.665 60 \;;
#X scalar line 195 398.127 60 \;;
#X scalar line 75 416.628 300 \;;
#X scalar line 195 436.228 60 \;;
#X scalar line 195 456.994 60 \;;
#X scalar line 75 478.995 300 \;;
#X scalar line 195 502.305 60 \;;
#X scalar line 195 527 60 \;;
#X scalar line 195 553.164 60 \;;
#X scalar line 75 580.883 300 \;;
#X scalar line 195 610.251 60 \;;
#X scalar line 195 641.365 60 \;;
#X scalar line 75 674.33 300 \;;
#X scalar line 195 709.254 60 \;;
#X scalar line 195 746.255 60 \;;
#X scalar line 75 785.456 300 \;;
#X text 50 -145 Linear frequency chart -- cut this down the middle
and use as a slide rule to compute frequency shifts. The longer lines
are staves with the bass and treble clef. The numbers are the MIDI
pitches.;
#X text 148 573 36;
#X text 109 638 zero Hz.;
#X coords 0 734 1 733 0 0 0;
#X restore 22 154 pd data;
#N canvas 174 102 428 177 line 0;
#X obj 22 73 drawpolygon 0 1 0 0 w 0;
#X obj 22 42 struct line float x float y float w;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -261139 -33289 0;
#X text 7 2 Data Structure Template;
#X restore 22 175 pd line;
#N canvas 126 179 428 166 label 0;
#X obj 40 74 drawnumber n 0 0 0;
#X obj 40 43 struct label float x float y float n;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -261139 -33289 0;
#X text 7 2 Data Structure Template;
#X restore 22 196 pd label;
#N canvas 70 76 614 518 generator 0;
#X obj 353 173 sel 36 60;
#X obj 427 171 pointer;
#X msg 427 149 traverse pd-data \, bang;
#X msg 28 11 \; pd-data clear;
#X obj 146 52 until;
#X obj 146 76 float;
#X obj 193 77 + 1;
#X obj 146 100 moses 77;
#X obj 245 76 t b;
#X obj 146 31 t b b;
#X msg 146 10 bang;
#X obj 83 116 t f f f;
#X obj 137 196 t b b;
#X obj 135 150 sel 43 47 50 53 57 64 67 71 74 77;
#X msg 219 46 30;
#X obj 49 89 sel 30;
#X obj 52 149 mtof;
#X obj 11 191 t b b;
#X obj 12 231 0;
#X msg 248 221 100;
#X msg 322 222 60;
#X msg 216 222 150;
#X msg 293 222 170;
#X obj 195 377 append line y x w;
#X obj 52 257 + 20;
#X msg 132 220 50;
#X msg 161 219 300;
#X obj 144 409 - 20;
#X obj 105 437 append label y x n;
#X obj 58 375 + 6;
#X obj 52 170 * 1;
#X obj 59 407 moses 120;
#X connect 0 0 21 0;
#X connect 0 0 19 0;
#X connect 0 1 19 0;
#X connect 0 1 21 0;
#X connect 0 2 22 0;
#X connect 0 2 20 0;
#X connect 1 0 23 3;
#X connect 1 0 28 3;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 5 0 7 0;
#X connect 5 0 15 0;
#X connect 6 0 5 1;
#X connect 7 1 8 0;
#X connect 8 0 4 1;
#X connect 9 0 4 0;
#X connect 9 1 14 0;
#X connect 9 1 2 0;
#X connect 10 0 9 0;
#X connect 11 0 16 0;
#X connect 11 1 28 2;
#X connect 11 2 13 0;
#X connect 12 0 25 0;
#X connect 12 1 26 0;
#X connect 13 0 12 0;
#X connect 13 1 12 0;
#X connect 13 2 12 0;
#X connect 13 3 12 0;
#X connect 13 4 12 0;
#X connect 13 5 12 0;
#X connect 13 6 12 0;
#X connect 13 7 12 0;
#X connect 13 8 12 0;
#X connect 13 9 12 0;
#X connect 13 10 0 0;
#X connect 14 0 5 1;
#X connect 15 0 17 0;
#X connect 15 1 11 0;
#X connect 16 0 30 0;
#X connect 17 0 18 0;
#X connect 17 1 21 0;
#X connect 17 1 19 0;
#X connect 18 0 24 0;
#X connect 19 0 23 2;
#X connect 20 0 23 2;
#X connect 21 0 23 1;
#X connect 21 0 27 0;
#X connect 22 0 23 1;
#X connect 22 0 27 0;
#X connect 24 0 23 0;
#X connect 24 0 29 0;
#X connect 25 0 23 1;
#X connect 25 0 27 0;
#X connect 26 0 23 2;
#X connect 27 0 28 1;
#X connect 29 0 31 0;
#X connect 30 0 24 0;
#X connect 31 1 28 0;
#X restore 22 218 pd generator;
#X text 19 37 This might help you if you need to compute products of
frequency shifting and/or FM spectra. Print and cut in half down the
middle. If you know the pitches associated with two frequencies a and
b \, align the pitch of a on the left side against the zero-frequency
marker on the right side. Then find the pitch of b on the right \,
and the matching pitch on the left corresponds to the frequency a+b.
To get a-b \, find b on the left and look up the corresponding pitch
on the right.;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header frequency_shifter_slide_rule
20 10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 256 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 44 246 494 284 META 0;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 145 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
to conform to the PDDP template for Pd version 0.42.;
#X text 12 25 KEYWORDS data_structure GUI;
#X text 12 65 DESCRIPTION frequency shifter slide rule;
#X restore 392 258 pd META;
#N canvas 13 202 428 190 References 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -261139 -33289 0;
#X text 7 2 frequency shifter slide rule- Related Help Documents;
#X text 19 37 Links:;
#X restore 103 258 pd References;
#X obj 6 258 pddp/pddplink ../5.reference/pddp/help.pd -text help;
