Commit 5e7231b9 authored by Jonathan Wilkes's avatar Jonathan Wilkes

Merge branch 'repo-cleanup'

parents f6844c7b f5a9335e
......@@ -216,9 +216,14 @@ Contributing is easy:
turn an idea into working code very quickly. But a prototyping language that
is itself a prototype isn't very useful. That means Purr Data's core code
and libraries must be stable, consistent, well-documented, and easy to use.
4. Make sure you aren't duplicating existing functionality, especially core
functionality.
5. Send us a merge request and we'll test it. If it's well-documented and
4. Develop incrementally. Small, solid improvements to the software are
preferable to large, disruptive ones.
5. Make sure you aren't duplicating existing functionality, especially core
functionality. For backwards compatibility Purr Data ships many legacy
libraries which unfortunately duplicate the same functionality. This makes
it harder to learn how to use Pd, and makes it burdensome to read patches
and keep track of all the disparate implementations.
6. Send us a merge request and we'll test it. If it's well-documented and
there aren't any bugs we'll add it to the software.
Here are some of the current tasks:
......
......@@ -126,9 +126,6 @@ memento_install:
--author "Frank Barknecht" \
--license "GNU GPL" \
--description "a collection of objects for managing state saving"
install -d $(DESTDIR)$(manualsdir)/$(MEMENTO_NAME)
install -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(manualsdir)/$(MEMENTO_NAME)
install -d $(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
install -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
......@@ -236,11 +233,6 @@ pixeltango_install:
install -d $(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/Example-Patches/*.* \
$(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -d $(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/dev-notes/*.txt \
$(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -d $(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
install -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
......@@ -352,10 +344,6 @@ timestretch_install:
# install -d $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -p $(abstractions_src)/timestretch/doc/*.txt \
# $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -d $(DESTDIR)$(readmesdir)
# install -p $(abstractions_src)/timestretch/README \
# $(DESTDIR)$(readmesdir)/$(TIMESTRETCH_NAME).txt
#-------------------------------------------------------------------------------
......@@ -369,42 +357,15 @@ pd-wavelet_install:
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/main.pd \
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/README.txt \
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
$(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDWAVELET_NAME) \
--author "Raul Diaz Poblete" \
--description "manipulation of audio in the wavelet domain" \
--license "GNU GPL v2" \
--version ""
install -d $(DESTDIR)$(readmesdir)
install -p $(abstractions_src)/pd-wavelet/README.txt \
$(DESTDIR)$(readmesdir)/$(PDWAVELET_NAME).txt
#==============================================================================#
#
# DEVELOPER'S TARGETS
#
#==============================================================================#
# make the symlinks necessary to simulate the installed environment
devsymlinks:
# make symlinks for help patches
test -e $(abstractions_src)/../2.control.examples || \
ln -s $(pd_src)/doc/2.control.examples \
$(abstractions_src)/../2.control.examples
test -e $(abstractions_src)/../3.audio.examples || \
ln -s $(pd_src)/doc/3.audio.examples \
$(abstractions_src)/../3.audio.examples
# pd <= 0.38-4 has 4.fft.examples
test -e $(abstractions_src)/../4.fft.examples || \
ln -s $(pd_src)/doc/4.fft.examples $(abstractions_src)/../4.fft.examples
# pd > 0.38-4 has 4.data.structures
test -e $(abstractions_src)/../4.data.structures || \
ln -s $(pd_src)/doc/4.data.structures \
$(abstractions_src)/../4.data.structures
test -e $(abstractions_src)/../7.stuff || \
ln -s $(pd_src)/doc/7.stuff $(abstractions_src)/../7.stuff
test -e $(abstractions_src)/../sound || \
ln -s $(pd_src)/doc/sound $(abstractions_src)/../sound
#==============================================================================#
#
......
This diff is collapsed.
- add externals HOWTO to manuals/Pd
- create Makefile for Pd-extended build system
- add pd-fileformat doc: http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html
- replace [pddp] with "pddp" in all help files so that it doesn't cause bugs
with the pddp/pddp.pd meta file, and other things in the future. Here's a
pattern: sed -n 's|obj \([0-9]*\) \([0-9]*\) pddp;|msg \1 \2 pddp;|p' *.pd
- add doc/pddp/about, help, etc. to doc/Makefile
- mv doc/pddp/pddp.pd to doc/pddp/about/pddp-about.pd
- add [symbol 1( and [1 ( test messages to the bottom right example in
[pd some odd cases of list handling] in
doc/pddp/all_about_lists_vs_anythings.pd
#N canvas 271 55 464 710 10;
#X floatatom 243 167 5 0 0 0 - - -;
#X symbolatom 291 166 10 0 0 0 - - -;
#X obj 196 187 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144
-1 -1;
#X obj 196 143 route bang float symbol list;
#X obj 243 187 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
-1 -1;
#X obj 291 187 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
-1 -1;
#X obj 339 187 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
-1 -1;
#X obj 387 187 bng 15 250 50 0 empty empty undefined -18 23 1 12 -262144
-1 -1;
#X text 24 35 There are no 0- or 1-element lists. These are immediately
converted to other types:;
#X msg 195 75 list;
#X msg 202 96 list 2;
#X msg 207 115 list word;
#X floatatom 11 147 5 0 0 0 - - -;
#X symbolatom 77 147 10 0 0 0 - - -;
#X obj 11 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 77 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 19 244 Therefore \, the definition of list is: a series of
elements with a selector of "list" and 2 or more elements. (But don't
forget! A series whose element is a float has an implied "list" selector!)
;
#X obj 123 373 select;
#X msg 157 343 list;
#X msg 122 344 bang;
#X msg 247 343 list;
#X msg 212 344 bang;
#X obj 213 373 print;
#X msg 73 429 3;
#X msg 106 428 list 3;
#X obj 59 471 *;
#X msg 223 429 3;
#X msg 256 428 list 3;
#X obj 208 481 *~;
#X text 19 311 These two disagree about 0 element lists:;
#X text 19 401 These two disagree about 1 element lists:;
#X obj 140 597 route 1;
#X msg 140 575 1 3;
#X obj 125 622 *~;
#X text 24 528 [route] doesn't seem to automatically convert 1 element
lists:;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 3 0 2 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 3 3 6 0;
#X connect 3 4 7 0;
#X connect 9 0 3 0;
#X connect 9 0 13 0;
#X connect 9 0 12 0;
#X connect 10 0 3 0;
#X connect 10 0 12 0;
#X connect 11 0 3 0;
#X connect 11 0 13 0;
#X connect 12 0 14 0;
#X connect 13 0 15 0;
#X connect 18 0 17 1;
#X connect 19 0 17 1;
#X connect 20 0 22 0;
#X connect 21 0 22 0;
#X connect 23 0 25 1;
#X connect 24 0 25 1;
#X connect 26 0 28 1;
#X connect 27 0 28 1;
#X connect 31 0 33 1;
#X connect 32 0 31 0;
#N canvas 220 136 605 423 10;
#X obj 190 245 print message;
#X msg 190 58 list x.wav 44100;
#X msg 223 118 x.wav 44100;
#X msg 189 159 read \$1 \$2;
#X msg 202 79 44100 x.wav;
#X text 119 33 message arguments only work with lists.;
#X text 318 56 declared list;
#X text 314 79 implied list;
#X text 307 118 undefined list;
#X text 77 68 these work -->;
#X text 68 120 this does not -->;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#N canvas 238 303 753 580 10;
#X obj 63 224 float;
#X floatatom 63 252 5 0 0 0 - - -;
#X obj 102 224 + 1;
#X obj 62 274 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1
-1;
#X obj 35 166 bang;
#X obj 81 167 bang;
#X obj 59 124 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1
-1;
#X obj 220 232 float;
#X floatatom 220 260 5 0 0 0 - - -;
#X obj 259 232 + 1;
#X obj 219 282 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 224 123 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 180 165 delay 1000;
#X obj 261 166 delay 1000;
#X msg 90 199 0;
#X text 118 199 reset;
#X msg 247 208 0;
#X text 275 208 reset;
#X obj 550 231 float;
#X floatatom 550 259 5 0 0 0 - - -;
#X obj 589 231 + 1;
#X obj 549 281 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 554 122 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 510 164 delay 1000;
#X obj 591 165 delay 1000;
#X msg 577 207 0;
#X text 605 207 reset;
#X obj 449 171 bang;
#X text 80 68 counts twice per bang button click:;
#X text 451 70 but this counts once:;
#X obj 102 445 float;
#X floatatom 102 473 5 0 0 0 - - -;
#X obj 141 445 + 1;
#X obj 101 495 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 106 336 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X msg 129 421 0;
#X text 157 421 reset;
#X obj 62 378 metro 1000;
#X obj 143 379 metro 1000;
#X text 317 334 The first [delay] triggers the execution \, which ultimately
sends a bang to the second [delay] \, which hasn't fired yet. When
the second [delay] receives that bang \, it resets its timer. Therefore
\, the second [delay] never fires.;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 0 1;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 4 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 7 1;
#X connect 11 0 12 0;
#X connect 11 0 13 0;
#X connect 12 0 7 0;
#X connect 13 0 7 0;
#X connect 14 0 0 1;
#X connect 16 0 7 1;
#X connect 18 0 19 0;
#X connect 18 0 20 0;
#X connect 18 0 27 0;
#X connect 19 0 21 0;
#X connect 20 0 18 1;
#X connect 22 0 23 0;
#X connect 22 0 24 0;
#X connect 23 0 18 0;
#X connect 24 0 18 0;
#X connect 25 0 18 1;
#X connect 27 0 22 0;
#X connect 30 0 31 0;
#X connect 30 0 32 0;
#X connect 31 0 33 0;
#X connect 32 0 30 1;
#X connect 34 0 37 0;
#X connect 34 0 38 0;
#X connect 35 0 30 1;
#X connect 37 0 30 0;
#X connect 38 0 30 0;
#N canvas 793 278 453 550 10;
#X obj 122 255 route 1 bla;
#X msg 118 113 list bla hu;
#X obj 114 293 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 149 297 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 197 296 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 86 85 bla hu;
#X msg 159 147 1 two;
#X msg 203 147 list 1 two;
#X text 32 22 mixing different data types in one route object is not
supported and thus leads to unexpected behaviour.;
#X msg 169 220 0;
#X text 197 218 <- unexpectedly matches 'bla';
#X text 134 83 <- unexpectedly not matching;
#X text 200 113 unexpectedly matches 'bla';
#X connect 0 0 2 0;
#X connect 0 1 3 0;
#X connect 0 2 4 0;
#X connect 1 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 9 0 0 0;
#N canvas 414 90 494 642 10;
#X obj 334 314 route symbol;
#X obj 336 334 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 413 335 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 331 361 route symbol;
#X obj 333 381 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 410 382 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 318 269 test;
#X msg 357 269 symbol test;
#X obj 58 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 135 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 55 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 132 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 89 266 bang;
#X obj 56 311 route bang;
#X obj 53 358 route bang;
#X text 14 5 routing based on reserved words:;
#X obj 188 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 265 331 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 185 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 262 378 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 186 311 route float;
#X obj 183 358 route float;
#X msg 170 266 1;
#X msg 209 266 float 12;
#X obj 181 542 route list;
#X obj 181 561 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 249 562 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 168 580 route list;
#X obj 168 599 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 236 600 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 184 493 list 1 two 3;
#X msg 167 473 1 two 3;
#X msg 200 513 list one 2 three;
#X msg 365 289 symbol;
#X msg 113 484 list;
#X msg 224 287 float test;
#X text 26 245 These all output the as same atom type that is routed:
;
#X msg 15 266 bang test;
#X obj 71 131 route 1;
#X msg 71 183 2 3 4;
#X obj 71 164 prepend set;
#X msg 71 100 1 2 3 4;
#X msg 218 183 is not a list;
#X obj 218 164 prepend set;
#X obj 218 131 route this;
#X msg 218 100 this is not a list;
#X text 21 50 [route] has three modes \, first is float \, second is
symbol \, and third is data type. In the first two modes \, the first
element of the set is stripped off by [route].;
#X text 26 206 In the third mode \, [route] outputs the same atom type
(bang->bang \, float->float \, symbol->symbol).;
#X text 26 419 Lists do not behave the same with [route list] even
though it is interpreting incoming lists \, not just routing by keyword
\, as in the second symbol mode.;
#X msg 174 164 set;
#X text 157 164 re;
#X text 164 24 "bang" \, "float" \, "symbol" \, and "list";
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 0 1 2 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 12 0 13 0;
#X connect 13 0 8 0;
#X connect 13 0 14 0;
#X connect 13 1 9 0;
#X connect 14 0 10 0;
#X connect 14 1 11 0;
#X connect 20 0 16 0;
#X connect 20 0 21 0;
#X connect 20 1 17 0;
#X connect 21 0 18 0;
#X connect 21 1 19 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 25 0;
#X connect 24 0 27 0;
#X connect 24 1 26 0;
#X connect 27 0 28 0;
#X connect 27 1 29 0;
#X connect 30 0 24 0;
#X connect 31 0 24 0;
#X connect 32 0 24 0;
#X connect 33 0 0 0;
#X connect 34 0 24 0;
#X connect 35 0 20 0;
#X connect 37 0 13 0;
#X connect 38 0 40 0;
#X connect 40 0 39 0;
#X connect 41 0 38 0;
#X connect 43 0 42 0;
#X connect 44 0 43 0;
#X connect 45 0 44 0;
#X connect 49 0 42 0;
#X connect 49 0 39 0;
#N canvas 514 341 621 440 10;
#X obj 57 205 select;
#X msg 52 108 symbol twenty;
#X msg 7 109 23;
#X msg 99 179 symbol twenty;
#X obj 57 250 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 93 250 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 86 158 23;
#X msg 402 108 symbol twenty;
#X msg 357 109 23;
#X msg 509 179 symbol twenty;
#X obj 407 250 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 493 250 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 496 158 23;
#X obj 407 205 select twenty;
#X msg 218 108 symbol twenty;
#X msg 177 109 23;
#X msg 289 179 symbol twenty;
#X obj 217 250 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 253 250 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 276 158 23;
#X obj 217 205 select 23;
#X text 68 59 a [select] without a creation argument cannot use a symbol
selector (you get an error in the Pd window);
#X connect 0 0 4 0;
#X connect 0 1 5 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 6 0 0 1;
#X connect 7 0 13 0;
#X connect 8 0 13 0;
#X connect 9 0 13 1;
#X connect 12 0 13 1;
#X connect 13 0 10 0;
#X connect 13 1 11 0;
#X connect 14 0 20 0;
#X connect 15 0 20 0;
#X connect 16 0 20 1;
#X connect 19 0 20 1;
#X connect 20 0 17 0;
#X connect 20 1 18 0;
#N canvas 366 31 565 405 10;
#X msg 168 46 anything 1 two three;
#X msg 180 66 one 2 3;
#X obj 167 308 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 362 305 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 190 114 list one 2 3;
#X msg 191 136 1 2 3;
#X obj 167 285 trigger anything bang float list pointer symbol;
#X obj 424 306 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 491 307 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 296 305 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 230 305 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 35 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 111 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 137 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 164 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 85 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 59 362 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 35 340 trigger a b f l p s;
#X text 48 20 how [trigger] interprets and converts data can be tricky:
;
#X text 315 59 "undefined lists";
#X text 288 127 lists;
#X msg 199 175 4;
#X msg 202 196 float 234;
#X text 280 181 floats;
#X msg 208 229 symbol blah;
#X text 303 242 symbols;
#X msg 188 84 asdf;
#X msg 208 251 symbol four;
#X connect 0 0 6 0;
#X connect 1 0 6 0;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 0 17 0;
#X connect 6 1 10 0;
#X connect 6 2 9 0;
#X connect 6 3 3 0;
#X connect 6 4 7 0;
#X connect 6 5 8 0;
#X connect 17 0 11 0;
#X connect 17 1 16 0;
#X connect 17 2 15 0;
#X connect 17 3 12 0;
#X connect 17 4 13 0;
#X connect 17 5 14 0;
#X connect 21 0 6 0;
#X connect 22 0 6 0;
#X connect 24 0 6 0;
#X connect 26 0 6 0;
#X connect 27 0 6 0;
#N canvas 242 94 461 496 10;
#X floatatom 161 180 5 0 0 0 - - -;
#X symbolatom 209 179 10 0 0 0 - - -;
#X obj 114 200 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144
-1 -1;
#X obj 114 156 route bang float symbol list;
#X obj 161 200 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
-1 -1;
#X obj 209 200 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
-1 -1;
#X obj 257 200 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
-1 -1;
#X obj 305 200 bng 15 250 50 0 empty empty undefined -18 23 1 12 -262144
-1 -1;
#X msg 151 83 lots of pie;
#X floatatom 191 405 5 0 0 0 - - -;
#X symbolatom 259 404 10 0 0 0 - - -;
#X obj 124 425 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144
-1 -1;
#X obj 191 425 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
-1 -1;
#X obj 259 425 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
-1 -1;
#X obj 328 425 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
-1 -1;