#N canvas 572 23 561 432 10;
#X obj 2 250 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 2 326 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 2 359 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 99 257 cnv 17 3 65 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 98 335 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 3 426 cnv 1 550 1 empty empty empty 0 0 0 4 #fcfcfc #fcfcfc 0;
#X obj 3 405 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X text 146 274 bang;
#X text 122 257 anything;
#X text 134 291 status;
#X text 180 257 - any message to be stored and shared by other [pv] objects;
#X text 180 274 - outputs the stored message;
#X obj 118 216 cyclone/pv x;
#X obj 234 193 cyclone/pv x;
#X obj 234 168 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 234 221 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 118 187 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 66 159 store variable 'x';
#X text 434 139 open and check:;
#X text 180 334 - stored private variable;
#X text 143 365 1) symbol;
#X text 143 382 2) anything;
#N canvas 596 179 680 385 examples 0;
#X obj 349 89 bng 18 250 50 0 empty empty empty 17 7 0 10 #d0d0d0 #000000 #000000;
#X msg 114 90 marsha 77;
#X msg 138 122 1 2 3 4 5;
#X msg 81 62 symbol bbq;
#X obj 349 191 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 349 159 unpack float float float;
#X obj 419 190 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 490 190 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 24 23 [pv] works with any message type;
#X obj 114 171 cyclone/pv any;
#X obj 100 233 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 100 296 print;
#X text 23 340 The last received message is the one that is stored;
#X text 298 234 The best practice is to initialize the message of only of the related [pv] objects \, because another [pv] object with also another initialized message means that one message will overwrite the other \, and you don't have control of which one will be stored.;
#X obj 349 127 cyclone/pv any2 40 50 60;
#X obj 100 265 cyclone/pv any;
#X text 286 38 And it can be initialized with any message as an argument \, but after the symbol that specifies the name of [pv].;
#X connect 0 0 14 0;
#X connect 1 0 9 0;
#X connect 2 0 9 0;
#X connect 3 0 9 0;
#X connect 5 0 4 0;
#X connect 5 1 6 0;
#X connect 5 2 7 0;
#X connect 10 0 15 0;
#X connect 14 0 5 0;
#X connect 15 0 11 0;
#X restore 471 218 pd examples;
#X text 122 334 anything;
#N canvas 460 170 693 192 pv_in_a_subpatch_2 0;
#X obj 173 120 cyclone/pv x;
#X obj 173 81 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 173 149 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 108 81 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 526 79 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 526 133 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 388 101 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 378 72 store variable 'x';
#X text 553 80 retrieve 'x';
#X obj 388 127 cyclone/pv y;
#X obj 526 104 cyclone/pv y;
#X text 22 23 the messages stored and retrieved below are shared with the parent patch and the other subpatch., f 44;
#X text 311 22 the messages stored and retrieved below are shared only within this subpatch.;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 10 0;
#X connect 6 0 9 0;
#X connect 10 0 5 0;
#X restore 411 183 pd pv_in_a_subpatch_2;
#N canvas 327 218 843 323 pv_in_a_subpatch_1 0;
#X obj 192 129 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 192 197 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 127 129 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 104 103 retrieve and store 'x';
#X text 37 28 you can also retrieve a variable in a subpatch that was stored in the parent patch. Conversely \, the value stored here in the subpatch can be retrieved in the parent patch.;
#X obj 657 157 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 657 211 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 519 179 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 519 205 cyclone/pv y;
#X obj 657 182 cyclone/pv y;
#X obj 192 169 cyclone/pv x;
#X text 509 151 store variable 'y';
#X text 684 158 retrieve 'y';
#X text 42 247 And since the parent patch also has a [pv] with the same name \, the value stored here is also shared with other subpatches.;
#X text 445 56 But if you have a [pv] with a variable name that is not present in the subpatch \, the stored messages will only be shared within this subpatch \, even if other subpatches have [pv] objects with the same variable name - to check it \, open [pv_in_a_subpatch_2].;
#X text 544 239 only works in this subpatch!;
#X connect 0 0 10 0;
#X connect 2 0 10 0;
#X connect 5 0 9 0;
#X connect 7 0 8 0;
#X connect 9 0 6 0;
#X connect 10 0 1 0;
#X restore 411 162 pd pv_in_a_subpatch_1;
#X text 258 167 <= retrieve 'x';
#X msg 58 186 status;
#X text 220 382 - initially stored message;
#X text 220 365 - name of private variable;
#X text 50 89 [pv] is similar to pd's [value] \, but stores any message as a variable name \, which can be shared within a patch or its subpatch if it has another [pv] object with the same variable name. It won't share with other patches!, f 76;
#N canvas 799 184 428 415 send/value 0;
#X obj 76 190 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 76 222 cyclone/pv x;
#X obj 76 253 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 243 251 send x;
#X obj 243 225 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 240 333 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 240 302 receive x;
#X obj 108 193 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 328 288 value x;
#X obj 328 256 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 328 317 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 78 294 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 78 326 cyclone/pv x;
#X obj 78 357 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 110 297 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 352 257 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 40 11 In Max \, you cannot create [pv] \, [send] and [value] objects with the same name. In Pd \, you can create [send] and [value] objects and they will communicate to each other.;
#X text 40 55 Cyclone allows you to create a [pv] object with the same name used in a [send]/[value] object \, but note that [pv] name variables are completely independent and do not communicate to pd vanilla's [send] or [value] objects.;
#X text 41 117 Therefore \, you can have both [pv] and [value] with the same name in the same patch that they do not affect each other! In practice they are completely different variables!;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 4 0 3 0;
#X connect 6 0 5 0;
#X connect 7 0 1 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 14 0 12 0;
#X connect 15 0 8 0;
#X restore 382 218 pd send/value;
#X text 180 291 -;
#X text 192 291 posts information in the Pd window about related [pv] objects in the patch, f 57;
#X obj 2 2 ./header pv;
#X text 25 63 private (local) variables;
#X connect 13 0 15 0;
#X connect 14 0 13 0;
#X connect 16 0 12 0;
#X connect 27 0 12 0;
