Commit 64f706be authored by Ivica Bukvic's avatar Ivica Bukvic
Browse files

added Jonathan Wilkes' search plugin with some cosmetic/usability changes to the search window.

parent a90ba604
......@@ -6,7 +6,7 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu>
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: i386
Depends: xterm | x-terminal-emulator, ttf-dejavu-core, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew-dev, libmagick++-dev, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev
Depends: xterm | x-terminal-emulator, ttf-dejavu-core, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew-dev, libmagick++-dev, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev, tclxapian
Provides: pd-l2ork
Installed-Size: 90624
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, libslv2-dev, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
......
......@@ -6,7 +6,7 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu>
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: i386
Depends: xterm | x-terminal-emulator, ttf-dejavu-core, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev
Depends: xterm | x-terminal-emulator, ttf-dejavu-core, tcl, tk, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1, libstk0-dev, libsndobj-dev, libfluidsynth-dev, tclxapian
Provides: pd-l2ork
Installed-Size: 90624
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, libslv2-dev, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
......
#N canvas 9 21 600 496 12;
#X msg 204 32 hello world;
#X obj 204 105 print;
#X floatatom 321 32 0 0 0;
#X text 215 48 message;
#X text 319 49 atom;
#X text 201 123 object;
#X text 53 150 There are four types of text objects in Pd: message \, atom \, object \, and comment.;
#X text 54 187 Messages respond to mouse clicks by sending their contents to one or more destinations. The usual destination is the "outlet" at the lower left corner of the box.;
#X text 55 239 Click the message box and watch the terminal window Pd was started in. You should see the "hello world" message appear.;
#X text 55 278 Atoms respond to "Dragging" up and down with the mouse \, by changing their contents and sending the result out their outlets. You can also type at an atom after clicking on it \; hit "enter" to output the number or click anywhere else to cancel.;
#X text 52 359 Objects \, like "print" above \, may have all sorts of functions depending on what's typed into them. The "print" object simply prints out every message it receives.;
#X text 53 415 To get help on an object \, right-click it. You should see a "help window" for the object.;
#X text 354 470 updated for release 0.33;
#N canvas 0 0 448 496 10;
#X msg 144 42 hello world;
#X obj 144 116 print;
#X floatatom 257 42 0 0 0 0 - - -;
#X text 141 134 object;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header hello_world 20 10
1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 474 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 94 237 494 284 META 0;
#X text 12 115 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 95 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 135 HELP_PATCH_AUTHORS Miller Puckette. Updated for release
0.33. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 65 DESCRIPTION the obligatory first program as in any programming
language to print out "Hello World";
#X text 12 25 KEYWORDS control GUI user_input;
#X restore 382 476 pd META;
#N canvas 20 281 428 279 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 Hello World- Related Help Documents;
#X text 19 37 Help patches and tutorials in Pure Data are themselves
little programs called "patches". You can interact with the objects
in them and even produce sound and edit the contents. The help patches
and tutorials that come with Pd are read-only by default \, so you
don't have to worry about changing them.;
#X obj 18 247 pddp/pddplink http://lists.puredata.info/listinfo/pd-list
;
#X text 18 190 Netiquette guide:;
#X obj 18 207 pddp/pddplink http://puredata.info/community/lists/Netiquette
;
#X text 18 110 Another "hello world" moment comes when you discover
the Pd community that corresponds over the Pure Data user mailing list.
You can search for answers to questions on there \, and if you're having
a hard time finding info you can always ask questions \, too. See the
netiquette page before posting \, though.;
#X text 18 230 Pd user mailing list:;
#X restore 103 476 pd References;
#X obj 6 476 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 23 175 There are four types of text objects in Pd: message
box \, atom box \, object \, and comment.;
#X text 255 59 atom box;
#X text 155 58 message box;
#X text 23 210 Message boxes respond to mouse clicks by sending their
contents to one or more destinations. The usual destination is the
"outlet" at the lower left corner of the box.;
#X text 74 50 outlet -->;
#X text 23 258 Click the message box above and watch the terminal window
Pd was started in. You should see the "hello world" message appear.
;
#X text 23 305 Atom boxes respond to clicking and dragging up and down
with the mouse \, by changing their contents and sending the result
out their outlets. You can also click an atom box and then type an
atom. Hit "Enter" to output the number or click anywhere else to cancel.
;
#X text 23 376 Objects \, like [print] above \, may have all sorts
of functions depending on what's typed into them. The [print] object
simply prints out every message it receives.;
#X text 23 425 To get help on an object \, right-click it then choose
"Help" in the popup menu. You should see a "help window" for the object.
;
#X connect 0 0 1 0;
#X connect 2 0 1 0;
#N canvas 1 0 581 630 12;
#X msg 195 36 hello world;
#X obj 195 72 print;
#X floatatom 304 36 0 0 0;
#X text 194 15 message;
#X text 304 14 atom;
#X text 255 73 object;
#X text 34 102 When you first open a Pd document like this one \, your cursor will be an arrow. Select "edit mode" in the Edit menu and the cursor will change to the image of a hand. The patch is now in edit mode. You can move any object by dragging it.;
#X text 33 185 Select "Edit mode" again in the Edit menu and you're back to the arrow cursor which acts on objects without moving them.;
#X text 32 373 You can create new objects by duplicating existing ones using the "duplicate" menu item. You can also "cut" and "paste" them. If you duplicate several connected objects the connections will be replicated too.;
#X text 33 237 In Edit mode \, if you click on a message \, object \, or comment \, you can then retype the text. For objects this will create a new object and delete the old one. Pd will try to reconnect the newly created object in the same way as the old one.;
#X text 34 442 Edit mode also lets you make and break connections between objects. Put the "hand" cursor over a line connecting two objects: it turns into an X. Clicking will delete the connection. Hold the cursor over an outlet and it becomes a circle (a patch point). Drag to any box and release \; you will be connected to the nearest inlet.;
#X text 32 320 When you're done changing the contents of the box \, click outside the box to deselect it. This tells Pd to incorporate the new text.;
#X text 328 604 updated for Pd version 0.33;
#X text 35 544 The "put" menu creates new text items of any of the four types. You can also put a "symbol" box \, analogous to a number box but for showing and entering text strings.;
#N canvas 0 0 448 559 10;
#X msg 145 43 hello world;
#X obj 145 84 print;
#X floatatom 254 43 0 0 0 0 - - -;
#X text 32 281 When you're done changing the contents of the box \,
click outside the box to deselect it. This tells Pd to incorporate
the new text.;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header editing 20 10 1
18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 537 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 42 254 494 284 META 0;
#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 25 KEYWORDS control GUI;
#X text 12 65 DESCRIPTION the basics of how to edit objects in Pd;
#X text 12 125 HELP_PATCH_AUTHORS Miller Puckette. Updated for release
0.33. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X restore 382 539 pd META;
#X text 32 323 Edit mode also lets you make and break connections between
objects. Put the "hand" cursor over a line connecting two objects:
it turns into an X. Clicking will delete the connection. Hold the cursor
over an outlet and it becomes a circle (a patch point). Drag to any
box and release-- you will be connected to the nearest inlet.;
#X text 32 401 There are several handy tools in the "Edit" menu. You
can use the "Duplicate" menu item to create new objects by duplicating
existing ones. You can also "Cut" and "Paste" them. If you duplicate
several connected objects the connections will be replicated too.;
#X text 32 468 Also have a look in the "Put" menu-- use it to create
new text items of any of the four types. You can also put a "symbol"
box \, analogous to a number box but for showing and entering text
strings \, as well as other objects with more sophisticated graphical
user interfaces.;
#N canvas 19 470 428 143 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 Editing- Related Help Documents;
#X text 17 28 Notice that some of the menu items have shortcut keys
listed beside them. Check out the one for Edit mode for a quick way
to switch back and forth between Edit mode and Run mode.;
#X restore 103 539 pd References;
#X obj 6 539 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 144 24 message box;
#X text 252 24 atom box;
#X text 33 107 When you first open a Pd document like this one \, your
cursor will be an arrow. Select "Edit Mode" in the "Edit" menu and
the cursor will change to the image of a hand. The patch is now in
Edit mode. You can move any object by dragging it.;
#X text 33 173 Select "Edit Mode" again in the "Edit" menu and you're
back to the arrow cursor which acts on objects without moving them.
;
#X text 33 215 In Edit Mode \, if you click on a message \, object
\, or comment \, you can then retype the text. For objects this will
create a new object and delete the old one. Pd will try to reconnect
the newly created object in the same way as the old one.;
#X text 77 51 outlet -->;
#X text 188 84 <-- object;
#X connect 0 0 1 0;
#X connect 2 0 1 0;
#N canvas 185 28 660 552 12;
#X floatatom 76 400 0 0 0 0 - - -;
#X floatatom 189 401 0 0 0 0 - - -;
#X floatatom 76 307 0 0 0 0 - - -;
#X floatatom 553 161 0 0 0 0 - - -;
#X floatatom 599 162 0 0 0 0 - - -;
#X obj 553 135 +;
#X floatatom 553 105 0 0 0 0 - - -;
#X obj 599 136 +;
#X floatatom 26 109 0 0 0 0 - - -;
#X floatatom 26 17 0 0 0 0 - - -;
#X floatatom 48 41 0 0 0 0 - - -;
#X obj 26 85 +;
#X text 3 64 hot;
#X text 53 66 cold;
#X text 232 105 Here's the downside: drag this--->;
#X text 551 180 good;
#X text 600 181 bad;
#X obj 76 376 *;
#X obj 189 377 -;
#X text 15 400 square;
#X text 229 402 first difference;
#X obj 76 330 trigger float float;
#X text 412 526 updated for Pd version 0.33;
#X text 19 433 Trigger takes any number of "bang" and "float" arguments
(among others) and copies its input to its outlets \, in the requested
forms \, in right-to-left order. Hook it to two inputs without crossing
the wires and you get the expected result. Cross the wires and you
get a memory effect.;
#X text 9 136 In Pd you must sometimes think about what order an object
is going to get its messages in. If an outlet is connected to more
than one inlet it's undefined which inlet will get the cookie first.
I've rigged this example so that the left-hand side box gets its inputs
in the good \, right-to-left order \, so that the hot inlet gets hit
when all the data are good. The "bad adder" happens to receive its
inputs in the wrong order and is perpetually doing its addition before
all the data are in. There's an object that exists solely to allow
#N canvas 433 96 448 562 10;
#X floatatom 28 518 0 0 0 0 - - -;
#X floatatom 139 519 0 0 0 0 - - -;
#X floatatom 28 417 0 0 0 0 - - -;
#X floatatom 70 359 0 0 0 0 - - -;
#X floatatom 106 359 0 0 0 0 - - -;
#X obj 70 328 +;
#X floatatom 70 278 0 0 0 0 - - -;
#X obj 106 328 +;
#X floatatom 180 164 0 0 0 0 - - -;
#X floatatom 180 112 0 0 0 0 - - -;
#X floatatom 215 112 0 0 0 0 - - -;
#X obj 180 140 +;
#X text 37 328 good;
#X text 135 328 bad;
#X obj 28 481 *;
#X obj 139 482 -;
#X obj 28 440 trigger float float;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header connections 20 10
1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 540 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 42 254 494 284 META 0;
#X text 12 115 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 95 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 25 KEYWORDS control;
#X text 12 135 HELP_PATCH_AUTHORS Miller Puckette. Updated for release
0.33. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 65 DESCRIPTION connections between objects \, and hot and
cold inlets;
#X restore 382 541 pd META;
#N canvas 13 202 428 143 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 Connections- Related Help Documents;
#X text 19 67 There's a little glossary at (link) where you can see
the synonyms for terms like connection and others.;
#X text 19 37 Connections are also called "wires" \, "cords" \, "patch
cords" \, and sometimes just "lines".;
#X restore 103 541 pd References;
#X obj 6 541 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 82 133 hot inlet --->;
#X text 215 133 <--- cold inlet;
#X text 176 315 received its input. The "bad" adder;
#X text 176 328 happens to receive its inputs in the;
#X text 176 341 wrong order and is perpetually doing;
#X text 176 354 its addition before the right inlet;
#X text 176 367 receives its data.;
#X text 108 275 <--- Connection order ambiguity;
#X text 38 384 Luckily \, there's an object that exists solely to allow
you to control message order explicitly:;
#X text 114 16 In Pd \, most objects carry out their functions when
they get messages in their leftmost inlets \, and their other inlets
are for storing values that can modify the next action. Here \, the
"+" object does its thing only when the left-hand input changes.;
#X connect 2 0 21 0;
#X text 176 439 others) and copies its input to its;
#X text 175 452 outlets \, in the requested forms \, in;
#X text 37 183 In Pd you must often consider the order in which an
object is going to get its messages. If an outlet is connected to more
than one inlet it's not possible to look at a patch and tell which
inlet will receive data first. Pd happens to choose based on the order
in which the connections were made. I've rigged the example below so
the [+] on the left gets its inputs in the "good" right-to-left order.
;
#X text 175 465 right-to-left order. Hook it to two;
#X text 175 478 inputs without crossing the wires and;
#X text 176 491 you get the expected result. Cross the;
#X text 171 504 wires and you get a memory effect.;
#X text 176 426 of "bang" and "float" arguments (among;
#X text 176 413 The [trigger] object takes any number;
#X text 177 289 The "hot" inlet of the "good" adder;
#X text 177 302 gets hit after the "cold" one has;
#X text 54 520 <-- square;
#X text 167 520 <-- first difference;
#X text 37 24 In Pd \, most objects carry out their functions when
they get messages in their leftmost inlets. Other inlets are for storing
values that can modify the next action. The [+] object below sends
output only when the left-hand input changes. For this reason the leftmost
inlet is called the "hot" \, or active \, inlet \, while the storage
inlets are called "cold" inlets.;
#X connect 2 0 16 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 6 0 7 1;
......@@ -50,9 +89,9 @@ are for storing values that can modify the next action. Here \, the
#X connect 9 0 11 0;
#X connect 10 0 11 1;
#X connect 11 0 8 0;
#X connect 17 0 0 0;
#X connect 18 0 1 0;
#X connect 21 0 17 0;
#X connect 21 0 18 1;
#X connect 21 1 17 1;
#X connect 21 1 18 0;
#X connect 14 0 0 0;
#X connect 15 0 1 0;
#X connect 16 0 14 0;
#X connect 16 0 15 1;
#X connect 16 1 14 1;
#X connect 16 1 15 0;
#N canvas 0 0 591 442 12;
#X floatatom 225 110 0 0 0;
#X floatatom 184 109 0 0 0;
#X msg 184 56 5 6;
#X floatatom 132 108 0 0 0;
#X floatatom 64 105 0 0 0;
#X text 30 21 Most Pd messages are just numbers or short lists of numbers:;
#X msg 64 55 5;
#X obj 64 80 + 9;
#X obj 132 83 +;
#X obj 184 84 unpack;
#X msg 288 55 5;
#X obj 288 107 print;
#X obj 288 81 pack 34 78;
#X msg 132 55 5 6;
#X floatatom 195 328 0 0 0;
#X obj 195 303 +;
#X msg 195 254 1.2 3.4;
#X msg 205 277 5 6;
#X text 36 206 Unlike Max \, in Pd all numbers are floating point. Numbers whose values happen to be integers are displayed without decimal points.;
#X text 31 363 For more on messages \, get help on any message box by right-clicking.;
#X text 329 409 updated for Pd release 0.33;
#X text 34 149 If you send a list to an object with more than one inlet \, the items in the list are spread out over the inlets \, as seen in the 5+6 example above.;
#N canvas 0 0 448 451 10;
#X floatatom 210 123 0 0 0 0 - - -;
#X floatatom 177 123 0 0 0 0 - - -;
#X msg 177 71 5 6;
#X floatatom 115 123 0 0 0 0 - - -;
#X floatatom 47 123 0 0 0 0 - - -;
#X text 19 37 Most Pd messages are just numbers or short lists of numbers:
;
#X msg 47 70 5;
#X obj 47 98 + 9;
#X obj 115 98 +;
#X obj 177 98 unpack;
#X msg 271 70 5;
#X obj 271 122 print;
#X obj 271 96 pack 34 78;
#X msg 115 70 5 6;
#X floatatom 165 345 0 0 0 0 - - -;
#X obj 165 320 +;
#X msg 165 271 1.2 3.4;
#X msg 174 294 5 6;
#X text 19 217 Unlike Max \, in Pd all numbers are floating point.
Numbers whose values happen to be integers are displayed without decimal
points.;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header messages 20 10 1
18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 428 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 79 230 494 284 META 0;
#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 25 KEYWORDS control GUI;
#X text 12 125 HELP_PATCH_AUTHORS Miller Puckette. Updated for release
0.33. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 65 DESCRIPTION messages and message passing in Pd;
#X restore 382 430 pd META;
#N canvas 7 226 428 287 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 Messages- Related Help Documents;
#X obj 26 91 pddp/pddplink ../5.reference/all_about_messages.pd -text
doc/5.reference/all_about_messages.pd;
#X obj 26 193 pddp/pddplink ../5.reference/all_about_atoms.pd -text
doc/5.reference/all_about_atoms.pd;
#X text 26 38 There are a bunch of patches in doc/5.reference/ that
go into more detail about many of the objects and concepts mentioned
here. Follow the link below to see a more detailed patch about message
syntax in Pd:;
#X obj 24 141 pddp/pddplink ../1.manual/index.htm;
#X text 26 113 Also \, make sure to have a look at the Pd manual to
learn the nuts and bolts of messages in Pd:;
#X text 26 165 To find out more about atoms \, or discrete pieces of
data that make up messages \, see:;
#X restore 103 430 pd References;
#X obj 6 430 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 19 167 If you send a list to the leftmost inlet of an object
with more than one inlet \, the items in the list are spread out over
the inlets \, as seen in the 5+6 example above.;
#X text 19 378 For more on messages \, bring up the message box help
patch by right-clicking any message box and choosing "Help".;
#X connect 2 0 9 0;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
......
#N canvas 0 0 685 496 12;
#X floatatom 107 424 0 0 0;
#X msg 53 344 bang;
#X obj 107 399 + 1;
#X obj 376 262 + 1;
#X floatatom 152 197 0 0 0;
#X floatatom 108 245 0 0 0;
#X msg 108 196 bang;
#X floatatom 169 107 0 0 0;
#X msg 112 58 bang;
#X obj 169 82 + 1;
#X text 31 21 Here's a simple counter. Click repeatedly on the "bang
message to see it:;
#X text 422 263 to its cold inlet.;
#X text 25 284 The incremented value is stored for the next "bang"
#N canvas 0 0 448 525 10;
#X floatatom 72 473 0 0 0 0 - - -;
#X msg 28 393 bang;
#X obj 72 448 + 1;
#X floatatom 231 216 0 0 0 0 - - -;
#X floatatom 187 264 0 0 0 0 - - -;
#X msg 187 215 bang;
#X floatatom 179 124 0 0 0 0 - - -;
#X msg 132 74 bang;
#X obj 179 99 + 1;
#X text 56 308 to its cold inlet.;
#X text 25 328 The incremented value is stored for the next "bang"
to spit out.;
#X text 28 322 Here's a timed counter. Hit the "bang" to start it...
#X text 25 369 Here's a timed counter. Hit the "bang" to start it...
;
#X obj 53 373 metro 500;
#X msg 99 344 stop;
#X obj 112 83 float;
#X text 28 132 The "float" box is a storage element holding one floating-point
number. The cold inlet (i.e. \, the one on the right) stores numbers.
Sending the message "bang" to the hot inlet gets the number back out:
#X obj 28 422 metro 500;
#X msg 74 393 stop;
#X obj 132 99 float;
#X obj 187 240 float;
#X obj 28 448 float;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header counter 20 10 1
18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 108 221 float;
#X obj 53 399 float;
#X text 25 263 Float's outlet above is connected via;
#X text 384 462 updated for Pd version 0.34;
#X text 142 373 <-- new object: metronome. The "500" means every 500
milliseconds--i.e. \, twice a second.;
#X connect 1 0 14 0;
#X obj 1 503 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 42 254 494 284 META 0;
#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 25 KEYWORDS control;
#X text 12 65 DESCRIPTION how to build a simple counter;
#X text 12 125 HELP_PATCH_AUTHORS Miller Puckette. Updated for release
0.34. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X restore 382 505 pd META;
#X text 25 148 The [float] object is a storage element holding one
floating-point number. The cold inlet (i.e. \, the one on the right)
stores numbers. Sending the message "bang" to the hot inlet gets the
number back out:;
#X obj 28 308 + 1;
#X text 25 288 The outlet of the [float] object at the top is connected
via;
#X text 104 422 <-- new object: [metro] \, which is a metronome. The
"500" means it outputs a bang every 500 milliseconds-- i.e. \, twice
a second.;
#N canvas 19 408 428 143 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 Counter- Related Help Documents;
#X obj 53 74 mod;
#X obj 95 74 %;
#X text 50 37 To build a counter that resets after it reaches a specified
value \, check out the [mod] object and the [%] object.;
#X restore 103 505 pd References;
#X obj 6 505 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 26 37 Here's a simple counter. Click repeatedly on the "bang"
message to see it work:;
#X connect 1 0 12 0;
#X connect 2 0 0 0;
#X connect 2 0 19 1;
#X connect 4 0 18 1;
#X connect 6 0 18 0;
#X connect 8 0 16 0;
#X connect 9 0 7 0;
#X connect 9 0 16 1;
#X connect 14 0 19 0;
#X connect 15 0 14 0;
#X connect 15 0 14 0;
#X connect 16 0 9 0;
#X connect 18 0 5 0;
#X connect 19 0 2 0;
#X connect 2 0 16 1;
#X connect 3 0 15 1;
#X connect 5 0 15 0;
#X connect 7 0 14 0;
#X connect 8 0 6 0;
#X connect 8 0 14 1;
#X connect 12 0 16 0;
#X connect 13 0 12 0;
#X connect 13 0 12 0;
#X connect 14 0 8 0;
#X connect 15 0 4 0;
#X connect 16 0 2 0;
#N canvas 8 0 659 487 12;
#X floatatom 147 177 0 0 0;
#X obj 147 151 + 1;
#X msg 147 47 bang;
#X obj 147 99 metro 500;
#X msg 56 105 stop;
#X obj 147 125 float;
#X obj 147 73 trigger bang bang;
#X msg 261 105 0;
#X obj 56 79 select 10;
#X text 305 102 first set value to zero;
#X text 304 73 initialization is in two steps;
#X text 305 121 (before starting the metronome);
#X text 9 128 conditionally;
#X text 9 145 stop the;
#X text 10 159 metronome;
#X text 184 46 <--- click here to start;
#X floatatom 85 289 0 0 0;
#X obj 85 315 >= 0;
#X obj 85 341 select 0 1;
#X obj 85 393 float;
#X floatatom 139 420 0 0 0;
#X msg 119 367 bang;
#X obj 139 394 + 1;
#X msg 85 367 -1;
#X text 131 313 <-- are we nonnegative? (1 if true \, 0 if false);
#X text 180 340 <-- selectively bang the first or second outlet;
#X text 167 363 <-- as a result either clear or increment the counter
#N canvas 0 0 448 509 10;
#X floatatom 127 209 0 0 0 0 - - -;
#X obj 127 183 + 1;
#X msg 127 79 bang;
#X obj 127 131 metro 500;
#X msg 38 137 stop;
#X obj 127 157 float;
#X obj 127 105 trigger bang bang;
#X msg 226 131 0;
#X obj 38 111 select 10;
#X text 255 131 first set value to zero;
#X text 244 105 initialization is in two steps;
#X text 225 150 (before starting the metronome);
#X text 15 162 conditionally;
#X text 15 179 stop the;
#X text 16 193 metronome;
#X floatatom 25 321 0 0 0 0 - - -;
#X obj 25 347 >= 0;
#X obj 25 373 select 0 1;
#X obj 25 425 float;
#X floatatom 72 451 0 0 0 0 - - -;
#X msg 59 399 bang;
#X obj 72 425 + 1;
#X msg 25 399 -1;
#X text 71 347 <-- are we nonnegative? (1 if true \, 0 if false);
#X text 100 373 <-- selectively bang the first or second outlet;
#X text 100 400 <-- as a result either clear or increment the counter
;
#X text 32 11 Here's a counter that counts from 1 to 10:;
#X text 392 452 updated for Pd version 0.34;
#X text 33 200 We're using one new object \, "select \, " which outputs
#X text 19 37 Here's a counter that counts from 1 to 10:;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header more_counters 20
10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 487 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 76 223 494 284 META 0;
#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 25 KEYWORDS control;
#X text 12 65 DESCRIPTION examples of simple counters;
#X text 12 125 HELP_PATCH_AUTHORS Miller Puckette. Updated for release
0.34. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X restore 382 489 pd META;
#X text 164 79 <-- click here to start;
#N canvas 12 434 428 143 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 Counter- Related Help Documents;
#X restore 103 489 pd References;
#X obj 6 489 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X text 33 232 We're using one new object \, [select] \, which outputs
a bang when it gets a matching value (10). This is useful for doing
conditional computations \, such as this one which counts while its
input is 0 or positive but clears when negative:;
......@@ -44,12 +66,12 @@ input is 0 or positive but clears when negative:;
#X connect 6 1 7 0;
#X connect 7 0 5 1;
#X connect 8 0 4 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;