aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/cdplayer.pd30
-rw-r--r--doc/ext13.pd109
-rw-r--r--doc/kalashnikov.pd23
-rw-r--r--doc/mandelbrot.pd13
-rw-r--r--doc/mandelbrot~.pd53
-rw-r--r--doc/openpatch.pd11
-rw-r--r--doc/ossmixer.pd67
-rw-r--r--doc/pipeio~.pd29
-rw-r--r--doc/promiscous~.pd10
-rw-r--r--doc/scramble~.pd107
-rw-r--r--doc/send13.pd11
-rw-r--r--doc/streamio13~.pd51
-rw-r--r--doc/wavinfo.pd18
13 files changed, 532 insertions, 0 deletions
diff --git a/doc/cdplayer.pd b/doc/cdplayer.pd
new file mode 100644
index 0000000..8a61caf
--- /dev/null
+++ b/doc/cdplayer.pd
@@ -0,0 +1,30 @@
+#N canvas 0 337 450 300 10;
+#X obj 58 179 cdplayer;
+#X obj 151 235 metro 100;
+#X obj 151 261 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 151 203 1;
+#X obj 151 175 loadbang;
+#X msg 65 98 pause;
+#X msg 44 75 resume;
+#X msg 79 125 stop;
+#X msg 84 148 eject;
+#X text 22 7 cdplayer is an object for atapi-cd-roms under linux;
+#X text 100 76 resume;
+#X text 112 96 pause playing;
+#X text 113 124 stop (no resume);
+#X text 132 149 eject;
+#X text 185 261 <- cdplayer does not block;
+#X text 208 278 because of forking;
+#X floatatom 21 28 5 0 0;
+#X msg 21 51 play \$1;
+#X text 81 50 play a track;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 16 0 17 0;
+#X connect 17 0 0 0;
diff --git a/doc/ext13.pd b/doc/ext13.pd
new file mode 100644
index 0000000..8960f5b
--- /dev/null
+++ b/doc/ext13.pd
@@ -0,0 +1,109 @@
+#N canvas 165 0 804 625 10;
+#X obj 59 150 send13~ foo;
+#X obj 52 176 receive13~ foo;
+#X msg 236 122 set barfuss;
+#X text 13 82 send13~ \, receive13~ and catch13~ \, throw13~ are equivalent
+to s~ r~ catch~ throw~ \, but accept set messages.;
+#X obj 15 323 filesize;
+#X msg 15 297 symbol /boot/vmlinuz;
+#X obj 15 350 print;
+#X text 81 324 =;
+#X obj 99 325 fsize;
+#X text 140 153 =;
+#X text 163 143 =;
+#X obj 363 148 c13~;
+#X obj 353 195 t13~;
+#X text 334 195 =;
+#X text 348 145 =;
+#X text 14 275 filesize gives you: guess what;
+#X floatatom 255 292 4 0 0;
+#X msg 255 341 set \$1;
+#X msg 255 365 5;
+#X obj 255 317 ftos 3;
+#X text 255 241 ftos: float to symbol;
+#X floatatom 292 293 4 0 0;
+#X text 254 256 right argument for number of digits;
+#X text 13 23 most of them are not well done/tested and need more work
+for seriuos usage.;
+#X text 13 9 ext13: some extrnals i wrote for my own needs;
+#X obj 16 562 piperead~;
+#X obj 16 589 pipewrite~;
+#X text 13 524 like sfread and sfwrite \, but non-blocking;
+#X text 13 540 good for use with external programs (e.g. mpg123 > pipe)
+;
+#X obj 14 392 strippath;
+#X text 13 372 strip a path from a filename;
+#X obj 15 451 wavinfo;
+#X obj 44 198 receive13~ foo;
+#X obj 427 574 openpatch;
+#X text 499 575 =;
+#X obj 520 576 opa;
+#X msg 485 548 symbol /usr/local/pd/ext13/;
+#X msg 427 526 symbol help.pd;
+#X text 427 508 that you can also use a message for the same result
+;
+#X text 426 493 when i wrote this object \, i didn`t realize;
+#X msg 25 123 set furchtbar;
+#X text 157 176 =;
+#X obj 465 178 streamin13~ 8008 4;
+#X obj 465 203 streamout13~ localhost 8008 4;
+#X text 462 104 streamin13~/out13~ :;
+#X text 461 118 like streamin~/out~ from ggee but;
+#X text 461 132 for multiple channels;
+#X text 462 146 and reduced udp-traffic;
+#X text 463 161 warning: not well tested;
+#X obj 250 146 catch13~ bar;
+#X obj 245 168 throw13~ bar;
+#X obj 236 193 throw13~ bar;
+#X obj 543 318 mandelbrot;
+#X obj 543 340 mandelbrot~;
+#X text 542 244 mandelbrot & mandelbrot~;
+#X text 541 257 z = z*z +c;
+#X text 542 270 you can use it for gem;
+#X text 541 285 maybe you can also find another useful app \; );
+#X text 255 271 useful in combination with makefilename;
+#X text 13 50 contact: dieb13@klingt.org;
+#X text 14 420 get #samples \, channels \, bitspersample \, samplerate
+of a wavfile;
+#X obj 422 397 adc~;
+#X obj 421 449 dac~;
+#X obj 421 423 scramble~ 2;
+#X text 511 423 big fun with spoken words or beats;
+#X obj 17 499 uzi;
+#X text 46 500 =;
+#X obj 62 500 kalashnikov;
+#X text 15 479 uzi like in max for multibang;
+#X obj 380 319 ossmixer;
+#X text 359 302 a simple oss mixer;
+#X obj 33 222 receive13 foo;
+#X text 133 221 =;
+#X obj 144 221 r13 foo;
+#X obj 168 176 r13~ foo;
+#X obj 158 151 s13~ foo;
+#X text 103 247 =;
+#X obj 25 246 send13 foo;
+#X obj 114 247 s13 foo;
+#X text 353 344 a simple atapi-cdplayer;
+#X obj 380 361 cdplayer;
+#X msg 327 326 eject;
+#X connect 2 0 49 0;
+#X connect 2 0 50 0;
+#X connect 2 0 51 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 16 0 19 0;
+#X connect 17 0 18 0;
+#X connect 19 0 17 0;
+#X connect 21 0 19 1;
+#X connect 36 0 33 1;
+#X connect 37 0 33 0;
+#X connect 40 0 0 0;
+#X connect 40 0 1 0;
+#X connect 40 0 32 0;
+#X connect 40 0 71 0;
+#X connect 40 0 77 0;
+#X connect 61 0 63 0;
+#X connect 61 1 63 1;
+#X connect 63 0 62 0;
+#X connect 63 1 62 1;
+#X connect 81 0 80 0;
diff --git a/doc/kalashnikov.pd b/doc/kalashnikov.pd
new file mode 100644
index 0000000..dfebceb
--- /dev/null
+++ b/doc/kalashnikov.pd
@@ -0,0 +1,23 @@
+#N canvas 304 321 450 300 10;
+#X msg 106 44 bang;
+#X floatatom 158 43 5 0 0;
+#X obj 254 180 print kalashnikov_done;
+#X obj 73 154 print uzi_index;
+#X obj 88 182 print uzi_done;
+#X obj 168 128 print kalashnikov_bang;
+#X obj 58 128 print uzi_bang;
+#X obj 211 154 print kalashnikov_index;
+#X obj 168 89 kalashnikov 2;
+#X obj 58 88 uzi 3;
+#X text 41 14 uzi aka kalashnikov is an easy way to serialize bangs
+;
+#X connect 0 0 8 0;
+#X connect 0 0 9 0;
+#X connect 1 0 8 1;
+#X connect 1 0 9 1;
+#X connect 8 0 5 0;
+#X connect 8 1 7 0;
+#X connect 8 2 2 0;
+#X connect 9 0 6 0;
+#X connect 9 1 3 0;
+#X connect 9 2 4 0;
diff --git a/doc/mandelbrot.pd b/doc/mandelbrot.pd
new file mode 100644
index 0000000..88df2e4
--- /dev/null
+++ b/doc/mandelbrot.pd
@@ -0,0 +1,13 @@
+#N canvas 0 0 450 300 10;
+#X obj 184 89 mandelbrot;
+#X floatatom 186 117 0 0 0;
+#X floatatom 181 61 4 0 0;
+#X floatatom 217 29 4 0 0;
+#X floatatom 267 38 0 0 0;
+#X obj 296 106 cpuload;
+#X floatatom 298 140 4 0 0;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 1;
+#X connect 4 0 0 2;
+#X connect 5 0 6 0;
diff --git a/doc/mandelbrot~.pd b/doc/mandelbrot~.pd
new file mode 100644
index 0000000..a4953e0
--- /dev/null
+++ b/doc/mandelbrot~.pd
@@ -0,0 +1,53 @@
+#N canvas 0 0 450 300 10;
+#X obj 114 209 env~;
+#X floatatom 115 237 4 0 0;
+#X floatatom 227 135 4 0 0;
+#X floatatom 118 19 4 0 0;
+#X floatatom 182 27 4 0 0;
+#X obj 113 170 mandelbrot~ 500;
+#X obj 172 211 snapshot~;
+#X floatatom 186 243 4 0 0;
+#X obj 258 164 ticker 15 15;
+#X obj 244 186 metro 100;
+#X obj 50 258 dac~;
+#X obj 113 107 line~;
+#X obj 163 110 line~;
+#X obj 266 99 snapshot~;
+#X floatatom 280 131 4 0 0;
+#X obj 352 52 ticker 15 15;
+#X obj 338 74 metro 100;
+#X msg 181 80 \$1 1000;
+#X msg 105 75 \$1 1000;
+#X obj 183 52 * 0.01;
+#X obj 111 51 * 0.01;
+#X obj 238 19 random 100;
+#X obj 42 215 /~ 50;
+#X obj 350 142 cpuload;
+#X floatatom 354 167 4 0 0;
+#X connect 0 0 1 0;
+#X connect 2 0 5 2;
+#X connect 2 0 22 1;
+#X connect 3 0 20 0;
+#X connect 4 0 19 0;
+#X connect 5 0 6 0;
+#X connect 5 0 0 0;
+#X connect 5 0 22 0;
+#X connect 6 0 7 0;
+#X connect 8 0 9 0;
+#X connect 9 0 6 0;
+#X connect 11 0 5 0;
+#X connect 12 0 5 1;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 15 0 16 0;
+#X connect 16 0 13 0;
+#X connect 16 0 21 0;
+#X connect 17 0 12 0;
+#X connect 18 0 11 0;
+#X connect 19 0 17 0;
+#X connect 20 0 18 0;
+#X connect 21 0 4 0;
+#X connect 21 0 3 0;
+#X connect 22 0 10 0;
+#X connect 22 0 10 1;
+#X connect 23 0 24 0;
diff --git a/doc/openpatch.pd b/doc/openpatch.pd
new file mode 100644
index 0000000..ef57b78
--- /dev/null
+++ b/doc/openpatch.pd
@@ -0,0 +1,11 @@
+#N canvas 19 591 373 232 10;
+#X obj 47 87 openpatch;
+#X text 120 88 =;
+#X obj 136 89 opa;
+#X msg 105 49 /tmp;
+#X msg 47 49 foo.pd;
+#X text 43 13 this would open /tmp/tst.pd;
+#X text 24 161 but you can also use;
+#X msg 176 160 \; pd open foo.pd /tmp/ 1 1 \;;
+#X connect 3 0 0 1;
+#X connect 4 0 0 0;
diff --git a/doc/ossmixer.pd b/doc/ossmixer.pd
new file mode 100644
index 0000000..ee8e34f
--- /dev/null
+++ b/doc/ossmixer.pd
@@ -0,0 +1,67 @@
+#N canvas 572 217 606 552 10;
+#X obj 188 331 ossmixer;
+#X msg 251 228 bang;
+#X msg 66 95 get pcm;
+#X msg 80 67 get main;
+#X msg 62 122 get igain;
+#X floatatom 37 167 5 0 0;
+#X text 232 479 altpcm \, reclev \, igain \, ogain;
+#X msg 37 192 set main \$1;
+#X text 35 451 possible channels:;
+#X floatatom 36 220 5 0 0;
+#X msg 36 242 set igain \$1;
+#X msg 230 130 get_source;
+#X msg 311 217 set_source line;
+#X msg 312 240 set_source mic;
+#X msg 314 263 set_source cd;
+#X floatatom 35 267 5 0 0;
+#X msg 35 289 set pcm \$1;
+#X symbolatom 239 359 10 0 0;
+#X floatatom 223 386 5 0 0;
+#X obj 158 387 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 158 358 sel source;
+#X floatatom 199 96 5 0 0;
+#X text 15 36 you will have to do mutings manually (read \, set 0 \,
+set x);
+#X text 146 67 get value of channel;
+#X text 252 98 get value of current channel;
+#X text 249 212 nop;
+#X text 307 131 get recording source;
+#X text 316 281 set rec. source;
+#X text 7 166 s;
+#X text 8 180 e;
+#X text 8 195 t;
+#X text 7 220 v;
+#X text 7 231 a;
+#X text 7 245 l;
+#X text 7 258 u;
+#X text 7 271 e;
+#X text 35 466 main \, treble \, bass \, synth \, pcm \, speaker \,
+line \, line1 \, line2 \, line3 \, mic \, cd \, imix \,;
+#X text 130 421 right outlet: channel name;
+#X text 130 408 left outlet: "source" or value;
+#X msg 252 173 set_device 1;
+#X text 350 175 /dev/mixer1 /dev/mixer2...;
+#X text 15 6 a simple mixer for /dev/mixerX;
+#X text 16 21 only stereo (no seperate L/R);
+#X connect 0 0 20 0;
+#X connect 0 1 17 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 7 0;
+#X connect 7 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 0 0;
+#X connect 11 0 0 0;
+#X connect 12 0 0 0;
+#X connect 13 0 0 0;
+#X connect 14 0 0 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X connect 20 0 19 0;
+#X connect 20 1 18 0;
+#X connect 21 0 0 0;
+#X connect 39 0 0 0;
diff --git a/doc/pipeio~.pd b/doc/pipeio~.pd
new file mode 100644
index 0000000..e7e2951
--- /dev/null
+++ b/doc/pipeio~.pd
@@ -0,0 +1,29 @@
+#N canvas 303 26 450 397 10;
+#X msg 102 140 1;
+#X msg 81 90 0;
+#X obj 226 21 loadbang;
+#X msg 226 47 \; pd dsp 1;
+#X obj 63 67 osc~ 440;
+#X msg 94 117 open /usr/local/pd/ext13/doc/pipein.wav;
+#X obj 246 231 dac~;
+#X obj 63 179 pipewrite~ 2;
+#X obj 142 65 osc~ 480;
+#X obj 224 192 piperead~ 2;
+#X msg 165 140 open /usr/local/pd/ext13/doc/pipein.wav;
+#X msg 227 164 1;
+#X msg 261 166 0;
+#X text 26 256 pipewrite/read: argument: number of channels you can
+create a pipe/fifo from within a shell with mknod pipename p and use
+this construct to send signals to another program/process. useful if
+you run more than one pd or mpeg-players \, ...;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
+#X connect 8 0 7 1;
+#X connect 9 0 6 0;
+#X connect 9 1 6 1;
+#X connect 10 0 9 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
diff --git a/doc/promiscous~.pd b/doc/promiscous~.pd
new file mode 100644
index 0000000..eea18cf
--- /dev/null
+++ b/doc/promiscous~.pd
@@ -0,0 +1,10 @@
+#N canvas 0 0 450 300 10;
+#X obj 136 209 promiscous~;
+#X obj 127 246 dac~;
+#X msg 201 35 bang;
+#X msg 201 61 \; pd dsp 1;
+#X text 69 166 thats passing by \, into a sound signal.;
+#X text 68 146 you must be root to turn all network traffic \,;
+#X connect 0 0 1 0;
+#X connect 0 0 1 1;
+#X connect 2 0 3 0;
diff --git a/doc/scramble~.pd b/doc/scramble~.pd
new file mode 100644
index 0000000..35d10c3
--- /dev/null
+++ b/doc/scramble~.pd
@@ -0,0 +1,107 @@
+#N canvas 259 13 723 441 10;
+#X obj 324 367 dac~;
+#X obj 324 331 scramble~ 2;
+#X floatatom 422 124 0 0 0;
+#X obj 299 241 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 1
+1;
+#X msg 50 36 \; pd dsp 1;
+#X obj 44 11 loadbang;
+#X msg 22 69 \; pd meters 1;
+#X obj 342 262 adc~;
+#X msg 140 285 threshold \$1;
+#X floatatom 140 262 0 0 0;
+#X msg 332 121 open \$1;
+#X obj 324 145 sfread~ 2;
+#X obj 230 104 del 100;
+#X msg 230 80 bang;
+#X msg 237 20 open /usr/local/media/audios/klima_gegengelesen_cato-ok.wav
+;
+#X msg 296 42 open /usr/local/media/audios/restorak.wav;
+#X obj 334 96 openpanel;
+#X msg 333 74 bang;
+#X obj 512 158 openpanel;
+#X msg 511 123 bang;
+#X msg 591 162 start;
+#X msg 594 137 stop;
+#X msg 515 194 open \$1;
+#X obj 422 101 cpuload 100;
+#X obj 513 229 mp3play~;
+#X floatatom 587 199 5 0 0;
+#X msg 146 157 grains \$1;
+#X floatatom 146 133 0 0 0;
+#X floatatom 27 130 0 0 0;
+#X msg 27 153 min_length \$1;
+#X floatatom 18 255 0 0 0;
+#X msg 18 278 direction \$1;
+#X msg 141 206 autofollow;
+#X floatatom 241 199 0 0 0;
+#X msg 242 221 buffer \$1;
+#X text 176 135 # of grains;
+#X text 26 113 minimum low period;
+#X text 209 180 ringbuffer size (882000);
+#X text 6 202 -1 back only;
+#X text 11 214 1 forw. only;
+#X text 11 231 0 both directions;
+#X text 136 244 threshold;
+#X text 110 183 autothreshold;
+#X floatatom 22 309 0 0 0;
+#X msg 22 332 pitch \$1;
+#X msg 107 353 flush;
+#X floatatom 372 375 0 0 0;
+#X floatatom 396 355 0 0 0;
+#X floatatom 169 373 0 0 0;
+#X msg 169 396 normalize \$1;
+#X msg 271 402 analize \$1;
+#X obj 273 374 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X floatatom 400 198 5 0 0;
+#X msg 400 223 autopitch \$1;
+#X connect 1 0 0 0;
+#X connect 1 1 0 1;
+#X connect 1 2 46 0;
+#X connect 1 3 47 0;
+#X connect 3 0 1 0;
+#X connect 5 0 4 0;
+#X connect 5 0 6 0;
+#X connect 7 0 1 0;
+#X connect 7 1 1 1;
+#X connect 8 0 1 0;
+#X connect 9 0 8 0;
+#X connect 10 0 11 0;
+#X connect 11 0 1 0;
+#X connect 11 1 1 1;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 11 0;
+#X connect 14 0 13 0;
+#X connect 15 0 11 0;
+#X connect 15 0 13 0;
+#X connect 16 0 10 0;
+#X connect 17 0 16 0;
+#X connect 18 0 22 0;
+#X connect 19 0 18 0;
+#X connect 20 0 24 0;
+#X connect 21 0 24 0;
+#X connect 22 0 24 0;
+#X connect 23 0 2 0;
+#X connect 24 0 1 0;
+#X connect 24 1 1 1;
+#X connect 25 0 24 1;
+#X connect 26 0 1 0;
+#X connect 27 0 26 0;
+#X connect 28 0 29 0;
+#X connect 29 0 1 0;
+#X connect 30 0 31 0;
+#X connect 31 0 1 0;
+#X connect 32 0 1 0;
+#X connect 33 0 34 0;
+#X connect 34 0 1 0;
+#X connect 43 0 44 0;
+#X connect 44 0 1 0;
+#X connect 45 0 1 0;
+#X connect 48 0 49 0;
+#X connect 49 0 1 0;
+#X connect 50 0 1 0;
+#X connect 51 0 50 0;
+#X connect 52 0 53 0;
+#X connect 53 0 1 0;
diff --git a/doc/send13.pd b/doc/send13.pd
new file mode 100644
index 0000000..ec397e1
--- /dev/null
+++ b/doc/send13.pd
@@ -0,0 +1,11 @@
+#N canvas 0 0 450 300 10;
+#X obj 197 107 receive13 foo;
+#X obj 71 107 send13 foo;
+#X floatatom 197 141 5 0 0;
+#X floatatom 71 79 5 0 0;
+#X msg 197 67 set bar;
+#X msg 118 79 set bar;
+#X connect 0 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 0 0;
+#X connect 5 0 1 0;
diff --git a/doc/streamio13~.pd b/doc/streamio13~.pd
new file mode 100644
index 0000000..5ee91bd
--- /dev/null
+++ b/doc/streamio13~.pd
@@ -0,0 +1,51 @@
+#N canvas 165 0 804 625 10;
+#X obj 18 107 streamin13~ 8008 4;
+#X obj 19 496 streamout13~ localhost 8008 4;
+#X text 15 13 streamin13~/out13~ :;
+#X text 14 27 like streamin~/out~ from ggee but;
+#X text 14 41 for multiple channels;
+#X text 15 55 and reduced udp-traffic;
+#X text 16 70 warning: not well tested;
+#X text 161 110 receives 4 channels in port 8808;
+#X obj 18 150 dac~ 1;
+#X obj 68 150 dac~ 2;
+#X obj 121 150 dac~ 3;
+#X obj 175 151 dac~ 4;
+#X obj 74 462 osc~ 440;
+#X obj 145 463 osc~ 880;
+#X obj 214 462 osc~ 990;
+#X obj 281 463 osc~ 220;
+#X text 245 497 sends 4 dsp-channels to localhost:8008;
+#X msg 19 202 connect foo.com 8008;
+#X msg 32 235 disconnect;
+#X text 175 203 to build up a connection and start sending;
+#X text 117 236 guess;
+#X msg 46 263 format float;
+#X msg 56 287 format 16bit;
+#X msg 72 311 format 8bit;
+#X text 165 284 format defines the resolution of the sent signal;
+#X text 168 302 float is the most expensive with the best resolution
+(32bit);
+#X text 181 337 change the hostname you are sending to;
+#X msg 85 337 host bar.org;
+#X msg 101 364 grain 512;
+#X text 185 363 the number of samples sent at a time;
+#X text 347 462 the signals to send;
+#X floatatom 19 528 5 0 0;
+#X text 72 530 status: 1 = connected 0 = disconnected;
+#X connect 0 0 8 0;
+#X connect 0 1 9 0;
+#X connect 0 2 10 0;
+#X connect 0 3 11 0;
+#X connect 1 0 31 0;
+#X connect 12 0 1 0;
+#X connect 13 0 1 1;
+#X connect 14 0 1 2;
+#X connect 15 0 1 3;
+#X connect 17 0 1 0;
+#X connect 18 0 1 0;
+#X connect 21 0 1 0;
+#X connect 22 0 1 0;
+#X connect 23 0 1 0;
+#X connect 27 0 1 0;
+#X connect 28 0 1 0;
diff --git a/doc/wavinfo.pd b/doc/wavinfo.pd
new file mode 100644
index 0000000..c42cc6e
--- /dev/null
+++ b/doc/wavinfo.pd
@@ -0,0 +1,18 @@
+#N canvas 0 1 450 300 8;
+#X obj 112 79 openpanel;
+#X msg 112 49 bang;
+#X obj 111 105 wavinfo;
+#X floatatom 45 168 20 0 0;
+#X floatatom 165 168 5 0 0;
+#X floatatom 212 169 5 0 0;
+#X floatatom 257 169 5 0 0;
+#X text 44 183 samples;
+#X text 165 183 channels;
+#X text 212 183 bitsize;
+#X text 257 184 rate;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 2 2 5 0;
+#X connect 2 3 6 0;