#N canvas 0 0 448 238 10; #X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header atoms 20 10 1 18 -261106 -33289 0; #X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp ; #N canvas 15 77 428 202 What_is_an_atom? 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X text 7 1 What is an atom in Pd?; #X text 19 166 See the other subpatches for more details.; #X text 19 136 3) Variables: dollar and dollsym atoms.; #X text 19 36 An atom is the the most basic unit of data in a message. Atoms can be divided into three groups:; #X text 19 66 1) Basic atom types: float \, symbol \, and (less commonly) pointer atoms.; #X text 19 101 2) Special atom types: comma and semicolons \, which are generally used to separate messages in Pd.; #X restore 43 42 pd What_is_an_atom?; #N canvas 22 133 428 399 Basic_atoms 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X text 20 320 Pointer is a special type of atom used in connection with data-structures. It has no visible form and cannot be converted to one of the other atom types. See help for data structures for more info.; #X text 20 131 A symbol atom can be defined in two ways:; #X text 20 37 A float atom represents a single floating point number \, which can be used for mathematical computations in Pd.; #X obj 1 95 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X obj 1 285 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X text 7 1 Float Atom; #X text 7 95 Symbol Atom; #X text 7 285 Pointer Atom; #X text 80 176 Five Examples: word pitch foo-bar 1.2.3 #x21; #X text 80 62 Five Examples: 12 -42 3.14 0.019 1e-16; #X text 30 146 a) a series of characters that does not contain whitespace \, semicolons or commas that cannot be interpreted as a float.; #X text 30 197 b) Any set of characters that is created and stored in Pd's memory as a symbol atom. For example \, some Pd objects can format a directory name like "Video Projects" as a single symbol atom for convenience \, (even though it has a space in it). Note that as of Pd version 0.42 such "exotic" symbol atoms will not be saved correctly in a Pd patch.; #X restore 43 69 pd Basic_atoms; #N canvas 9 155 428 464 Special_atoms 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X text 7 1 Commas and Semicolons in Pd; #X text 20 37 Commas and Semicolons are also atoms.; #X text 20 58 They are normally used in message boxes \, where they separate multiple messages from each other. See message box help for more details on this.; #X msg 23 102 This is a message box. Right-click and choose "Help" ; #X text 19 179 Commas and semicolons are special because they are not separated from other atoms by whitespace.; #X text 19 134 Commas and semicolons can also be used in object boxes. For example \, the [expr] object uses them in order to organize and separate complex mathematical expressions.; #X obj 1 226 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X obj 22 339 list append three atoms \,; #X obj 22 400 list length; #X floatatom 22 422 5 0 0 0 - - -; #X obj 22 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 55 380 print; #X text 19 259 At least for the standard "vanilla" objects \, when you enter commas and semicolons as arguments it seems they are converted to symbol atoms (and escaped):; #X msg 112 380 set \$3; #X text 160 433 it again. (I.e. \, you will lose data.); #X text 178 339 <- In object boxes \, commas/semicolons; #X text 196 354 are saved and loaded consistently; #X text 142 403 <- In message boxes \, commas/semicolons won't; #X text 7 226 Conversion of Commas and Semicolons to Symbol Atoms; #X msg 115 404; #X text 160 418 be escaped if you save the patch and load; #X connect 8 0 9 0; #X connect 8 0 12 0; #X connect 8 0 14 0; #X connect 9 0 10 0; #X connect 11 0 8 0; #X connect 14 0 20 0; #X restore 43 95 pd Special_atoms; #N canvas 7 69 428 561 Variable_atoms 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X obj 1 228 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X obj 1 298 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X text 7 298 In message boxes; #X obj 1 368 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X msg 22 462 symbol o; #X symbolatom 22 506 10 0 0 0 - - -; #X msg 22 484 symbol f\$1o; #X msg 127 462 1 2 3; #X obj 178 529 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 204 527 so this doesn't match; #X obj 127 506 route 123; #X text 209 505 [route] expects a float \,; #X text 169 484 <- this will always output a symbol-atom; #X obj 20 323 pddp/pddplink ../2.control.examples/10.more.messages.pd -text doc/2.control.examples/10.more.messages.pd; #X obj 127 529 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 19 266 pddp/pddplink ../2.control.examples/14.dollarsigns.pd -text doc/2.control.examples/14.dollarsigns.pd; #X obj 19 251 pddp/pddplink ../2.control.examples/13.locality.pd -text doc/2.control.examples/13.locality.pd; #X text 20 343 Also see help for message box:; #X msg 205 344 right-click me; #X text 7 368 Dollsym Atom Expansion; #X text 7 228 In object boxes and iemGUIs; #X text 20 37 Dollarsign atoms are variables \, used when the actual value will be filled in somewhere else. They have two separate behaviors: one in object boxes \, and the other in message boxes. In both cases \, there are two types of dollarsign variables:; #X text 7 1 Variable atoms \, aka Dollarsign Atoms or Dollarsign Variables ; #X msg 127 484 \$1\$2\$3; #X text 20 107 1) dollar atoms- a dollar sign followed by an integer: "\$1" \, "\$2" \, and so on. These variables can expand to become float \, symbol \, or pointer atoms.; #X text 20 152 2) dollsym atoms- a dollar atom followed and/or preceded by a symbol atom \, with no whitespace in between. Examples are "\$1-something" \, "\$2.blah" \, and "pd-\$1-foo". They always expand to symbol atoms. ; #X text 20 403 You can create a dollsym atom that consists only of dollar atoms ganged together with no white space in between. Just remember that the result will always be a symbol-atom-- even if each dollar atom is substituted with a float.; #X connect 5 0 7 0; #X connect 7 0 6 0; #X connect 8 0 24 0; #X connect 11 0 15 0; #X connect 11 1 9 0; #X connect 24 0 11 0; #X restore 43 120 pd Variable_atoms; #X text 42 162 Atoms are used to build messages in Pd. For more details on messages \, see the following:; #X obj 43 191 pddp/pddplink all_about_messages.pd; #X text 163 120 also see:; #X obj 223 120 pddp/pddplink all_about_dollarsign_zero.pd; #X obj 1 216 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0 14 -233017 -33289 0; #N canvas 44 246 494 344 META 0; #X text 12 65 LIBRARY PDDP; #X text 12 5 GENRE all_about_pd; #X text 12 25 KEYWORDS needs_work; #X text 12 85 HELP_PATCH_AUTHORS Dave Sabine \, May 5 \, 2003 . Jonathan Wilkes revised the patch to conform to the PDDP template for Pd version 0.42. Some info was pulled from puredata.info; #X text 12 45 DESCRIPTION overview of Pd atoms; #X restore 392 218 pd META; #N canvas 14 133 428 105 Related_objects 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 14 -261106 -33289 0; #X text 7 2 Atoms- Related Objects; #X floatatom 22 43 5 0 0 0 - - -; #X symbolatom 22 67 10 0 0 0 - - -; #X restore 103 218 pd Related_objects; #X obj 6 218 pddp/pddplink all_about.pd -text All About Pd; #X text 168 42 <- give some links to the manual; #N canvas 7 69 428 185 Custom_atoms 0; #X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10 1 18 -261106 -33289 0; #X text 7 1 External atoms; #X text 20 37 External libraries may add atom types-- for example \, to support video or graphics \, or to add expressivity to the Pd language that would be difficult to achieve using only numbers or symbols.; #X text 20 97 The custom atom types may or may not work with Pd's built-in objects. Consult the documentation for the particular library for more information.; #X text 20 147 What else to say here?; #X restore 43 145 pd Custom_atoms; #X text 163 145 <-- work on this;