aboutsummaryrefslogtreecommitdiff
path: root/pd/doc/5.reference
diff options
context:
space:
mode:
Diffstat (limited to 'pd/doc/5.reference')
-rw-r--r--pd/doc/5.reference/0.INTRO.txt143
-rw-r--r--pd/doc/5.reference/0_all_guis-INTRO.txt131
-rw-r--r--pd/doc/5.reference/acoustics.pd40
-rw-r--r--pd/doc/5.reference/acoustics~.pd81
-rw-r--r--pd/doc/5.reference/adc~_dac~.pd11
-rw-r--r--pd/doc/5.reference/append.pd629
-rw-r--r--pd/doc/5.reference/bag.pd27
-rw-r--r--pd/doc/5.reference/bang.pd13
-rw-r--r--pd/doc/5.reference/bang~.pd18
-rw-r--r--pd/doc/5.reference/biquad~.pd35
-rw-r--r--pd/doc/5.reference/bng.pd265
-rw-r--r--pd/doc/5.reference/bp~.pd40
-rw-r--r--pd/doc/5.reference/canvas.pd19
-rw-r--r--pd/doc/5.reference/change.pd23
-rw-r--r--pd/doc/5.reference/clip~.pd30
-rw-r--r--pd/doc/5.reference/cos~.pd32
-rw-r--r--pd/doc/5.reference/cputime.pd15
-rw-r--r--pd/doc/5.reference/delay.pd30
-rw-r--r--pd/doc/5.reference/delread~.pd33
-rw-r--r--pd/doc/5.reference/delwrite~.pd15
-rw-r--r--pd/doc/5.reference/drawnumber.pd35
-rw-r--r--pd/doc/5.reference/drawpolygon.pd42
-rw-r--r--pd/doc/5.reference/element.pd51
-rw-r--r--pd/doc/5.reference/env~.pd28
-rw-r--r--pd/doc/5.reference/fft~.pd64
-rw-r--r--pd/doc/5.reference/float.pd18
-rw-r--r--pd/doc/5.reference/framp~.pd40
-rw-r--r--pd/doc/5.reference/gatom.pd32
-rw-r--r--pd/doc/5.reference/get.pd46
-rw-r--r--pd/doc/5.reference/getsize.pd41
-rw-r--r--pd/doc/5.reference/graph.pd13
-rw-r--r--pd/doc/5.reference/hdial.pd282
-rw-r--r--pd/doc/5.reference/hip~.pd31
-rw-r--r--pd/doc/5.reference/hslider.pd303
-rw-r--r--pd/doc/5.reference/int.pd24
-rw-r--r--pd/doc/5.reference/key.pd19
-rw-r--r--pd/doc/5.reference/line.pd22
-rw-r--r--pd/doc/5.reference/line~.pd33
-rw-r--r--pd/doc/5.reference/lop~.pd31
-rw-r--r--pd/doc/5.reference/makefilename.pd17
-rw-r--r--pd/doc/5.reference/makenote.pd26
-rw-r--r--pd/doc/5.reference/math.pd60
-rw-r--r--pd/doc/5.reference/message.pd46
-rw-r--r--pd/doc/5.reference/metro.pd29
-rw-r--r--pd/doc/5.reference/midi.pd129
-rw-r--r--pd/doc/5.reference/moses.pd17
-rw-r--r--pd/doc/5.reference/my_canvas.pd243
-rw-r--r--pd/doc/5.reference/namecanvas.pd8
-rw-r--r--pd/doc/5.reference/netreceive.pd23
-rw-r--r--pd/doc/5.reference/netsend.pd55
-rw-r--r--pd/doc/5.reference/noise~.pd18
-rw-r--r--pd/doc/5.reference/numbox2.pd302
-rw-r--r--pd/doc/5.reference/openpanel.pd11
-rw-r--r--pd/doc/5.reference/operators.pd31
-rw-r--r--pd/doc/5.reference/osc~.pd58
-rw-r--r--pd/doc/5.reference/otherbinops.pd90
-rw-r--r--pd/doc/5.reference/pack.pd37
-rw-r--r--pd/doc/5.reference/pd.pd52
-rw-r--r--pd/doc/5.reference/phasor~.pd36
-rw-r--r--pd/doc/5.reference/pipe.pd41
-rw-r--r--pd/doc/5.reference/plot.pd58
-rw-r--r--pd/doc/5.reference/pointer.pd79
-rw-r--r--pd/doc/5.reference/poly.pd30
-rw-r--r--pd/doc/5.reference/print.pd13
-rw-r--r--pd/doc/5.reference/print~.pd18
-rw-r--r--pd/doc/5.reference/qlist.pd76
-rw-r--r--pd/doc/5.reference/qlist.txt3
-rw-r--r--pd/doc/5.reference/random.pd19
-rw-r--r--pd/doc/5.reference/readsf~.pd48
-rw-r--r--pd/doc/5.reference/realtime.pd15
-rw-r--r--pd/doc/5.reference/receive.pd26
-rw-r--r--pd/doc/5.reference/route.pd80
-rw-r--r--pd/doc/5.reference/rsqrt~.pd32
-rw-r--r--pd/doc/5.reference/samphold~.pd34
-rw-r--r--pd/doc/5.reference/savepanel.pd12
-rw-r--r--pd/doc/5.reference/select.pd73
-rw-r--r--pd/doc/5.reference/send.pd26
-rw-r--r--pd/doc/5.reference/send~.pd32
-rw-r--r--pd/doc/5.reference/set.pd45
-rw-r--r--pd/doc/5.reference/setsize.pd54
-rw-r--r--pd/doc/5.reference/setsize.txt21
-rw-r--r--pd/doc/5.reference/sigbinops.pd60
-rw-r--r--pd/doc/5.reference/sig~.pd20
-rw-r--r--pd/doc/5.reference/snapshot~.pd28
-rw-r--r--pd/doc/5.reference/soundfiler.pd66
-rw-r--r--pd/doc/5.reference/spigot.pd21
-rw-r--r--pd/doc/5.reference/sqrt~.pd32
-rw-r--r--pd/doc/5.reference/stripnote.pd16
-rw-r--r--pd/doc/5.reference/struct.pd26
-rw-r--r--pd/doc/5.reference/sublist.pd10
-rw-r--r--pd/doc/5.reference/swap.pd20
-rw-r--r--pd/doc/5.reference/switch~.pd45
-rw-r--r--pd/doc/5.reference/table.txt1
-rw-r--r--pd/doc/5.reference/tabosc4~.pd86
-rw-r--r--pd/doc/5.reference/tabplay~.pd66
-rw-r--r--pd/doc/5.reference/tabread.pd21
-rw-r--r--pd/doc/5.reference/tabread4~.pd43
-rw-r--r--pd/doc/5.reference/tabreceive~.pd6
-rw-r--r--pd/doc/5.reference/tabsend~.pd6
-rw-r--r--pd/doc/5.reference/tabwrite.pd21
-rw-r--r--pd/doc/5.reference/tabwrite~.pd30
-rw-r--r--pd/doc/5.reference/text.pd4
-rw-r--r--pd/doc/5.reference/textfile.pd59
-rw-r--r--pd/doc/5.reference/textfile.txt6
-rw-r--r--pd/doc/5.reference/threshold~.pd31
-rw-r--r--pd/doc/5.reference/throw~.pd34
-rw-r--r--pd/doc/5.reference/timer.pd15
-rw-r--r--pd/doc/5.reference/toggle.pd273
-rw-r--r--pd/doc/5.reference/trigger.pd37
-rw-r--r--pd/doc/5.reference/unpack.pd28
-rw-r--r--pd/doc/5.reference/until.pd25
-rw-r--r--pd/doc/5.reference/value.pd30
-rw-r--r--pd/doc/5.reference/vcf~.pd35
-rw-r--r--pd/doc/5.reference/vdial.pd282
-rw-r--r--pd/doc/5.reference/vd~.pd19
-rw-r--r--pd/doc/5.reference/vslider.pd302
-rw-r--r--pd/doc/5.reference/vu.pd247
-rw-r--r--pd/doc/5.reference/wrap~.pd26
-rw-r--r--pd/doc/5.reference/writesf~.pd27
-rw-r--r--pd/doc/5.reference/x_all_guis.pd20
120 files changed, 7032 insertions, 0 deletions
diff --git a/pd/doc/5.reference/0.INTRO.txt b/pd/doc/5.reference/0.INTRO.txt
new file mode 100644
index 00000000..37380162
--- /dev/null
+++ b/pd/doc/5.reference/0.INTRO.txt
@@ -0,0 +1,143 @@
+The "reference" section of the documentation should contain a patch
+demonstrating how to use each of Pd's classes. As of version 0.29, a complete
+list of "object" classes follows. Not included in this list are messages,
+atoms, graphs, etc. which aren't typed into object boxes but come
+straight off the "add" menu.
+
+---------------------------- GLUE --------------------------------
+bang - output a bang message
+float - store and recall a number
+symbol - store and recall a symbol
+int - store and recall an integer
+send - send a message to a named object
+receive - catch "sent" messages
+select - test for matching numbers or symbols
+route - route messages according to first element
+pack - make compound messages
+unpack - get elements of compound messages
+trigger - sequence and convert messagess
+spigot - interruptible message connection
+moses - part a numeric stream
+until - looping mechanism
+print - print out messages
+makefilename - format a symbol with a variable field
+change - remove repeated numbers from a stream
+swap - swap two numbers
+value - shared numeric value
+------------------------------ TIME ----------------------------------
+delay - send a message after a time delay
+metro - send a message periodically
+line - send a series of linearly stepped numbers
+timer - measure time intervals
+cputime - measure CPU time
+realtime -measure real time
+pipe - dynamically growable delay line for numbers
+------------------------------ MATH ----------------------------------
++ - * / pow arithmetic
+== != > < >= <= relational tests
+& && | || % bit twiddling
+mtof ftom powtodb rmstodb dbtopow dbtorms convert acoustical units
+mod div sin cos tan atan atan2 sqrt log exp abs higher math
+random lower math
+max min greater or lesser of 2 numbers
+------------------------------ MIDI ----------------------------------
+notein ctlin pgmin bendin touchin polytouchin midiin sysexin - MIDI input
+noteout ctlout pgmout bendout touchout polytouchout midiout - MIDI output
+makenote - schedule a delayed "note off" message corresponding to a note-on
+stripnote - strip "note off" messages
+------------------------------ TABLES----------------------------------
+tabread - read a number from a table
+tabread4 - read a number from a table, with 4 point interpolation
+tabwrite - write a number to a table
+soundfiler - read and write tables to soundfiles
+------------------------------ MISC ----------------------------------
+loadbang - bang on load
+serial - serial device control for NT only
+netsend - send messages over the internet
+netreceive - receive them
+qlist - message sequencer
+textfile - file to message converter
+openpanel - "Open" dialog
+savepanel - "Save as" dialog
+bag - set of numbers
+poly - polyphonic voice allocation
+key, keyup - numeric key values from keyboard
+keyname - symbolic key name
+-------------------------- AUDIO MATH ----------------------------------
++~ -~ *~ /~ arithmetic on audio signals
+max~ min~ - maximum or minimum of 2 inputs
+clip~ - constrict signal to lie between two bounds
+q8_rsqrt~ - cheap reciprocal square root (beware -- 8 bits!)
+q8_sqrt~ - cheap square root (beware -- 8 bits!)
+wrap~ - wraparound (fractional part, sort of)
+fft~ - complex forward discrete Fourier transform
+ifft~ - complex inverse discrete Fourier transform
+rfft~ - real forward discrete Fourier transform
+rifft~ - real inverse discrete Fourier transform
+framp~ - output a ramp for each block
+mtof~, ftom~, rmstodb~, dbtorms~, rmstopow~, powtorms~ - acoustic conversions
+-------------------------- AUDIO GLUE ----------------------------------
+dac~ - audio output
+adc~ - audio input
+sig~ - convert numbers to audio signals
+line~ - generate audio ramps
+threshold~ detect signal thresholds
+snapshot~ - sample a signal (convert it back to a number)
+bang~ - send a bang message after each DSP block
+samplerate~ get the sample rate
+send~ - nonlocal signal connection with fanout
+receive~ - get signal from send~
+throw~ - add to a summing bus
+catch~ - define and read a summing bus
+block~ - specify block size and overlap
+switch~ - switch DSP computation on and off
+readsf~ - soundfile playback from disk (UNIX only.)
+writesf~ - record sound to disk (UNIX only.)
+-------------------- AUDIO OSCILLATORS AND TABLES ------------------------
+phasor~ - sawtooth oscillator
+cos~ - cosine
+osc~ - cosine oscillator
+tabwrite~ - write to a table
+tabplay~ - play back from a table (non-transposing)
+tabread~ - non-interpolating table read
+tabread4~ - four-point interpolating table read
+tabsend~ - write one block continuously to a table
+tabreceive~ read one block continuously from a table
+-------------------- AUDIO FILTERS ------------------------
+vcf~ - voltage controlled filter
+noise~ - white noise generator
+env~ - envelope follower
+hip~ - high pass filter
+lop~ - low pass filter
+bp~ - band pass filter
+biquad~ - raw filter
+samphold~ - sample and hold unit
+print~ - print out one or more "blocks"
+-------------------- AUDIO DELAY ------------------------
+delwrite~ - write to a delay line
+delread~ - read from a delay line
+vd~ - read from a delay line at a variable delay time
+------------------------------ SUBWINDOWS ----------------------------------
+pd - define a subwindow
+inlet - add an inlet to a pd
+outlet - add an outlet to a pd
+table - array of numbers in a subwindow
+------------------------------ DATA TEMPLATES -----------------------------
+template - define the fields in a template
+drawcurve, filledcurve - draw a curve
+drawpolygon, filledpolygon - draw a polygon
+plot - plot an array field
+drawnumber - print a numeric value
+------------------------------ ACCESSING DATA ----------------------------
+pointer - point to an object belonging to a template
+get - get numeric fields
+set - change numeric fields
+element - get an array element
+getsize - get the size of an array
+setsize - change the size of an array
+append - add an element to a list
+sublist - get a pointer into a list which is an element of another scalar
+scalar - draw a scalar on parent
+------------------------------ OBSOLETE ----------------------------
+scope~ (use tabwrite~ now)
+namecanvas
diff --git a/pd/doc/5.reference/0_all_guis-INTRO.txt b/pd/doc/5.reference/0_all_guis-INTRO.txt
new file mode 100644
index 00000000..4eda9f58
--- /dev/null
+++ b/pd/doc/5.reference/0_all_guis-INTRO.txt
@@ -0,0 +1,131 @@
+HOW TO MOVE A GUI-OBJECT:
+
+Of course by mouse, and:
+select a gui-object , then navigate the object by using the
+4 direction-keys: UP , DOWN , LEFT or RIGHT.
+If you press the SHIFT-Key too , the object will move 10 times faster.
+
+
+PROPERTIES-DIALOG-WINDOW:
+
+"dimensions(pix): size:" = square-size of the gui-objects in pixels.
+"dimensions(pix)(pix): width: height:" = width & height of the rectangular
+ gui-object in pixels.
+"selectable dimensions(pix): size:" = square-size of the selectable top-left
+ corner of my_canvas in pixels.
+"flash-time(ms)(ms): hold:" = flash-hold-time in msec = duration of activity,
+ if a bang-object was activated by any message-event
+ or by a mouse-click.
+"flash-time(ms)(ms): intrrpt:" = flash-interrupt-time in msec = duration
+ of inactivity , if an already activated bang is activated
+ once more.
+"output-range: left: right:" = hslider-bounds for input- as well as
+ output-values.
+"output-range: bottom: top:" = vslider-bounds for input- as well as
+ output-values.
+"non-zero-value: value:" = toggle has 2 value-states: zero and this value.
+"visible_rectangle(pix)(pix): width: height:" = width & height of a visible,
+ deactivated rectangle in pixels.
+"init" or "no init" = if "init"-mode is selected , the object gets a loadbang-
+ behavior and puts out its in-patch-saved value.
+ if "no init"-mode is selected, nothing will happen.
+"new&old" or "new-only" = the hdial- and vdial-object changes its state in 2 ways:
+ "new&old"-mode: output sends previous state off, current state on;
+ "new-only"-mode: output sends only current state on.
+"lin" or "log" = sliders and numberboxes can have linear or logarithmical scaling.
+"number:" = number of buttons of hdials and vdials.
+"log-height:" = is the graphical height of the numberbox in logarithmical mode.
+"steady on click" or "jump on click" = the 2 slider-objects
+ react to mouse-click in 2 ways:
+ "steady on click"-mode: slider-knob stays in position,
+ mouse and knob will move parallel;
+ "jump on click"-mode: slider-knob jumps immediately to new
+ mouse-position, positions of mouse and knob will be identical.
+"send-symbol:" = an output-message can be received by a receive-object
+ with the same send-symbol-name.
+"receive-symbol:" = a send-object with the same symbol-name can send
+ an input-message to the gui-object.
+"label: name:" = visible name of a gui-object; it will be moved together with
+ the gui-object.
+"label: x_off: y_off:" = coordinates of the label in relation to top-left
+ corner of gui-object.
+"label: font: fontsize:" = font-properties of label.
+"colors:" = a click on radiobuttons "backgd:", "front:" or
+ "label:" routes the button "compose color" and/or the preset-colors
+ to background- front- and label-color.
+ the 2 fields with "testlabel" and "o=||=o" will show you the 3 colors.
+ "compose color" opens a tcl/tk color-dialog.
+"Cancel" quits the properties-dialog without sending down the last changings in dialogbox.
+"Apply" sends down the changings.
+"OK" sends down the changings and quits the dialogbox.
+
+
+THE DOLLAR-THING:
+
+If you want to send to, or to receive from gui-objects,
+you have to write into the property-entry your send- or receive-name.
+If you want an unique-name, write $0 or $0-blabla, if you want to
+communicate with this gui-object in an abstraction, write $1
+or $1-blabla or $2 or $2-blabla in your property-entry.
+(send- , receive- or label- name)
+A new feature is: you can take the same send- and receive-name.
+If there is a send-name, the object will loose its output-rectangle,
+if there is a receive-name, the object will loose its input-rectangle;
+but the connective behavior is the same.
+
+GUI-MESSAGES:
+
+all gui-objects (bng, hsl, vsl, nbx, tgl, hdl, vdl, cnv and vu)
+ understand input-messages which change their properties.
+ except cnv has no input, so you have to send messages
+ to its receive-label (edit properties).
+"size 15 128" = change width & height of sliders and vu in pixels.
+"size 15" = change square-size of rdb, bng and tgl in pixels.
+"vis_size 800 600" = change width & height of visual rectangle
+ of my_canvas in pixels.
+"range 0.1 10.0" = change slider-boundaries for
+ input- as well as output-values.
+"nonzero 127.0" = change the nonzero-value of toggle.
+"flashtime 50 600" = change flash-interrupt- and
+ flash-hold-time of bng-object.
+"pos 150 170" = change the x-y-position of the top-left
+ corner of a gui-object in pixels;
+ "pos 0 0" is the top-left corner of your window;
+ the positive directions of x- and y-axes are right and down.
+"delta 15 17" = move the gui-object in relation to its
+ current position (in pixels).
+"color 0 22 22" = change background-, front- and
+ label-color of object with one of 30 presets.
+"color 0 22" = change background- and label-color
+ of vu and my_canvas with one of 30 presets.
+"color -16777216 (-1) -1" = change background-, (front-)
+ and label-color of object with RGB-values.
+ the RGB-value will be calculated:
+ -65536*RED-value (0 .. 255)
+ - 256*GREEN-value (0 .. 255)
+ - BLUE-value (0 .. 255) - 1.
+"number 10" = change number of dial-buttons.
+"log_height 128" = graphical dimension for logarithmical behavior
+ of numberbox.
+"steady 1" change slider-knob-behaviour on mouse-click.
+"single_change" change dial-behaviour
+ to output only the new state.
+"double_change" change dial-behaviour
+ to first release the previous button,
+ then output the state of the new button.
+"send fromgui" = change send-name of gui-objects,
+ except vu and cnv.
+"receive togui" = change receive-name of object.
+"label its_me" = change label-text of object.
+"label_pos 20 8" = change offset-coordinates of label-text.
+"label_font 0 10" = change font and fontsize of label-text.
+"init 1" = change initial loadbang-mode of gui-objects
+ except vu and cnv.
+"set 64" = change only the inner state and display
+ of gui-objects, except bng and cnv;
+ no output will result.
+"lin" = change scale-mode of slider to linear.
+"log" = change scale-mode of slider to logarithmical.
+"get_pos" = if my_canvas has a receive-name and a send-name
+ and you send the message "get_pos" to it,
+ you receive the current x- and y-coordinates.
diff --git a/pd/doc/5.reference/acoustics.pd b/pd/doc/5.reference/acoustics.pd
new file mode 100644
index 00000000..2a46f589
--- /dev/null
+++ b/pd/doc/5.reference/acoustics.pd
@@ -0,0 +1,40 @@
+#N canvas 163 25 582 408 12;
+#X obj 15 269 ftom;
+#X obj 8 10 mtof;
+#X obj 15 217 mtof;
+#X floatatom 15 189 0 0 0;
+#X floatatom 15 244 0 0 0;
+#X obj 64 10 ftom;
+#X floatatom 15 293 0 0 0;
+#X obj 120 11 dbtorms;
+#X obj 196 11 rmstodb;
+#X obj 275 11 dbtopow;
+#X obj 352 11 powtodb;
+#X text 21 53 The mtof object transposes a midi value into a frequency
+in Hertz \, so that "69" goes to "440". You can specify microtonal
+pitches as in "69.5" (a quarter tone higher than 69). Ftom does the
+reverse.;
+#X floatatom 147 185 0 0 0;
+#X floatatom 147 240 0 0 0;
+#X floatatom 147 289 0 0 0;
+#X obj 147 213 dbtorms;
+#X obj 147 265 rmstodb;
+#X floatatom 261 186 0 0 0;
+#X floatatom 261 241 0 0 0;
+#X floatatom 261 290 0 0 0;
+#X obj 261 214 dbtopow;
+#X obj 261 266 powtodb;
+#X text 27 336 Overflows and underflows are clipped.;
+#X text 300 376 updated for pd version 0.33;
+#X connect 0 0 6 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 0 0;
+#X connect 12 0 15 0;
+#X connect 13 0 16 0;
+#X connect 15 0 13 0;
+#X connect 16 0 14 0;
+#X connect 17 0 20 0;
+#X connect 18 0 21 0;
+#X connect 20 0 18 0;
+#X connect 21 0 19 0;
diff --git a/pd/doc/5.reference/acoustics~.pd b/pd/doc/5.reference/acoustics~.pd
new file mode 100644
index 00000000..f7515339
--- /dev/null
+++ b/pd/doc/5.reference/acoustics~.pd
@@ -0,0 +1,81 @@
+#N canvas 35 42 813 458 12;
+#X obj 158 118 mtof~;
+#X obj 158 174 snapshot~;
+#X obj 698 132 metro 100;
+#X floatatom 158 205 0 0 0;
+#X obj 49 174 snapshot~;
+#X floatatom 49 55 0 0 0;
+#X floatatom 49 205 0 0 0;
+#X obj 49 118 ftom~;
+#X obj 264 174 snapshot~;
+#X floatatom 264 205 0 0 0;
+#X obj 264 118 dbtorms~;
+#X obj 697 58 loadbang;
+#X msg 709 88 \; pd dsp 1;
+#X obj 49 86 sig~;
+#X floatatom 158 55 0 0 0;
+#X obj 158 86 sig~;
+#X floatatom 264 54 0 0 0;
+#X obj 264 86 sig~;
+#X obj 492 172 snapshot~;
+#X floatatom 492 203 0 0 0;
+#X obj 383 172 snapshot~;
+#X floatatom 383 53 0 0 0;
+#X floatatom 383 203 0 0 0;
+#X obj 607 172 snapshot~;
+#X floatatom 607 203 0 0 0;
+#X obj 383 84 sig~;
+#X floatatom 492 53 0 0 0;
+#X obj 492 84 sig~;
+#X floatatom 607 53 0 0 0;
+#X obj 607 84 sig~;
+#X obj 383 115 rmstodb~;
+#X obj 492 115 dbtopow~;
+#X obj 607 115 powtodb~;
+#X obj 17 10 mtof~;
+#X text 70 11 (etc) - conversions for audio signals;
+#X text 60 400 see also:;
+#X obj 145 400 mtof;
+#X text 192 400 (etc.);
+#X text 547 416 updated for Pd version 0.33;
+#X text 43 241 These objects convert MIDI pitch to frequency and back
+\, and dB to and from RMS and power. THey take audio signals as input
+and output (and work sample by sample.) Since they call library math
+functions \, they may be much more expensive than other workaday tilde
+objects such as *~ and osc~ \, depending on your hardware and math
+library.;
+#X text 41 343 Boundary conditions are handled "reasonably". 100 db
+is assigned an RMS of 1 \, and dbtorms~ and dbtopow~ output true zero
+for 0 dB and less.;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 0 8 0;
+#X connect 2 0 4 0;
+#X connect 2 0 20 0;
+#X connect 2 0 18 0;
+#X connect 2 0 23 0;
+#X connect 4 0 6 0;
+#X connect 5 0 13 0;
+#X connect 7 0 4 0;
+#X connect 8 0 9 0;
+#X connect 10 0 8 0;
+#X connect 11 0 2 0;
+#X connect 11 0 12 0;
+#X connect 13 0 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 0 0;
+#X connect 16 0 17 0;
+#X connect 17 0 10 0;
+#X connect 18 0 19 0;
+#X connect 20 0 22 0;
+#X connect 21 0 25 0;
+#X connect 23 0 24 0;
+#X connect 25 0 30 0;
+#X connect 26 0 27 0;
+#X connect 27 0 31 0;
+#X connect 28 0 29 0;
+#X connect 29 0 32 0;
+#X connect 30 0 20 0;
+#X connect 31 0 18 0;
+#X connect 32 0 23 0;
diff --git a/pd/doc/5.reference/adc~_dac~.pd b/pd/doc/5.reference/adc~_dac~.pd
new file mode 100644
index 00000000..e97429b6
--- /dev/null
+++ b/pd/doc/5.reference/adc~_dac~.pd
@@ -0,0 +1,11 @@
+#N canvas 195 155 575 293 12;
+#X obj 8 11 adc~;
+#X obj 72 11 dac~;
+#X obj 63 121 adc~ 5;
+#X text 143 121 (input from channel 5 only);
+#X obj 61 145 dac~ 1 2 5 23;
+#X text 184 145 (output to channels 1 \, 2 \, 5 \, and 23);
+#X text 16 173 The actual number of channels Pd inputs and outputs are set on Pd's command line. You can open patches that want to use more channels \, and channel numbers out of rance will be dropped (dac~) or appear as zero (adc~).;
+#X text 308 254 updated for Pd version 0.33;
+#X text 122 9 - audio I/O;
+#X text 8 46 Adc~ and dac~ rovide real-time audio input and output for Pd \, respectively \, whether analog or digital. By default they are stereo but you can specify channel numbers as in:;
diff --git a/pd/doc/5.reference/append.pd b/pd/doc/5.reference/append.pd
new file mode 100644
index 00000000..3b5076b8
--- /dev/null
+++ b/pd/doc/5.reference/append.pd
@@ -0,0 +1,629 @@
+#N struct help-append-template1 float x float y float z;
+#N canvas 330 8 595 450 12;
+#X text 15 344 see also:;
+#N canvas 164 72 425 146 help-append-template1 0;
+#X obj 60 21 template float x float y float z;
+#X obj 18 81 filledpolygon z z 0 0 0 20 0 20 30 0 30;
+#X restore 357 373 pd help-append-template1;
+#X obj 141 393 template;
+#X obj 16 368 get;
+#X obj 48 368 set;
+#X obj 148 368 getsize;
+#X obj 215 368 setsize;
+#X obj 218 393 element;
+#X obj 15 394 sublist;
+#X obj 83 393 scalar;
+#N canvas 0 0 276 163 help-append-data 1;
+#X scalar help-append-template1 129 129 129 \;;
+#X scalar help-append-template1 130 130 130 \;;
+#X scalar help-append-template1 132 132 132 \;;
+#X scalar help-append-template1 133 133 133 \;;
+#X scalar help-append-template1 135 135 135 \;;
+#X scalar help-append-template1 136 136 136 \;;
+#X scalar help-append-template1 137 137 137 \;;
+#X scalar help-append-template1 138 138 138 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 140 140 140 \;;
+#X scalar help-append-template1 141 141 141 \;;
+#X scalar help-append-template1 142 142 142 \;;
+#X scalar help-append-template1 141 141 141 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 136 136 136 \;;
+#X scalar help-append-template1 128 128 128 \;;
+#X scalar help-append-template1 125 125 125 \;;
+#X scalar help-append-template1 122 122 122 \;;
+#X scalar help-append-template1 119 119 119 \;;
+#X scalar help-append-template1 117 117 117 \;;
+#X scalar help-append-template1 114 114 114 \;;
+#X scalar help-append-template1 112 112 112 \;;
+#X scalar help-append-template1 110 110 110 \;;
+#X scalar help-append-template1 108 108 108 \;;
+#X scalar help-append-template1 107 107 107 \;;
+#X scalar help-append-template1 105 105 105 \;;
+#X scalar help-append-template1 104 104 104 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 101 101 101 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 98 98 98 \;;
+#X scalar help-append-template1 97 97 97 \;;
+#X scalar help-append-template1 96 96 96 \;;
+#X scalar help-append-template1 95 95 95 \;;
+#X scalar help-append-template1 94 94 94 \;;
+#X scalar help-append-template1 93 93 93 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 89 89 89 \;;
+#X scalar help-append-template1 87 87 87 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 84 84 84 \;;
+#X scalar help-append-template1 83 83 83 \;;
+#X scalar help-append-template1 82 82 82 \;;
+#X scalar help-append-template1 81 81 81 \;;
+#X scalar help-append-template1 79 79 79 \;;
+#X scalar help-append-template1 77 77 77 \;;
+#X scalar help-append-template1 74 74 74 \;;
+#X scalar help-append-template1 72 72 72 \;;
+#X scalar help-append-template1 70 70 70 \;;
+#X scalar help-append-template1 68 68 68 \;;
+#X scalar help-append-template1 67 67 67 \;;
+#X scalar help-append-template1 66 66 66 \;;
+#X scalar help-append-template1 64 64 64 \;;
+#X scalar help-append-template1 62 62 62 \;;
+#X scalar help-append-template1 61 61 61 \;;
+#X scalar help-append-template1 59 59 59 \;;
+#X scalar help-append-template1 58 58 58 \;;
+#X scalar help-append-template1 57 57 57 \;;
+#X scalar help-append-template1 56 56 56 \;;
+#X scalar help-append-template1 55 55 55 \;;
+#X scalar help-append-template1 54 54 54 \;;
+#X scalar help-append-template1 53 53 53 \;;
+#X scalar help-append-template1 52 52 52 \;;
+#X scalar help-append-template1 50 50 50 \;;
+#X scalar help-append-template1 49 49 49 \;;
+#X scalar help-append-template1 47 47 47 \;;
+#X scalar help-append-template1 46 46 46 \;;
+#X scalar help-append-template1 45 45 45 \;;
+#X scalar help-append-template1 44 44 44 \;;
+#X scalar help-append-template1 43 43 43 \;;
+#X scalar help-append-template1 44 44 44 \;;
+#X scalar help-append-template1 45 45 45 \;;
+#X scalar help-append-template1 47 47 47 \;;
+#X scalar help-append-template1 48 48 48 \;;
+#X scalar help-append-template1 49 49 49 \;;
+#X scalar help-append-template1 51 51 51 \;;
+#X scalar help-append-template1 52 52 52 \;;
+#X scalar help-append-template1 54 54 54 \;;
+#X scalar help-append-template1 56 56 56 \;;
+#X scalar help-append-template1 58 58 58 \;;
+#X scalar help-append-template1 60 60 60 \;;
+#X scalar help-append-template1 62 62 62 \;;
+#X scalar help-append-template1 68 68 68 \;;
+#X scalar help-append-template1 70 70 70 \;;
+#X scalar help-append-template1 76 76 76 \;;
+#X scalar help-append-template1 79 79 79 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 88 88 88 \;;
+#X scalar help-append-template1 91 91 91 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 101 101 101 \;;
+#X scalar help-append-template1 103 103 103 \;;
+#X scalar help-append-template1 105 105 105 \;;
+#X scalar help-append-template1 107 107 107 \;;
+#X scalar help-append-template1 109 109 109 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 113 113 113 \;;
+#X scalar help-append-template1 115 115 115 \;;
+#X scalar help-append-template1 117 117 117 \;;
+#X scalar help-append-template1 119 119 119 \;;
+#X scalar help-append-template1 121 121 121 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 129 129 129 \;;
+#X scalar help-append-template1 132 132 132 \;;
+#X scalar help-append-template1 134 134 134 \;;
+#X scalar help-append-template1 136 136 136 \;;
+#X scalar help-append-template1 137 137 137 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 140 140 140 \;;
+#X scalar help-append-template1 142 142 142 \;;
+#X scalar help-append-template1 143 143 143 \;;
+#X scalar help-append-template1 144 144 144 \;;
+#X scalar help-append-template1 146 146 146 \;;
+#X scalar help-append-template1 147 147 147 \;;
+#X scalar help-append-template1 149 149 149 \;;
+#X scalar help-append-template1 150 150 150 \;;
+#X scalar help-append-template1 152 152 152 \;;
+#X scalar help-append-template1 153 153 153 \;;
+#X scalar help-append-template1 154 154 154 \;;
+#X scalar help-append-template1 155 155 155 \;;
+#X scalar help-append-template1 156 156 156 \;;
+#X scalar help-append-template1 157 157 157 \;;
+#X scalar help-append-template1 158 158 158 \;;
+#X scalar help-append-template1 160 160 160 \;;
+#X scalar help-append-template1 161 161 161 \;;
+#X scalar help-append-template1 162 162 162 \;;
+#X scalar help-append-template1 163 163 163 \;;
+#X scalar help-append-template1 164 164 164 \;;
+#X scalar help-append-template1 165 165 165 \;;
+#X scalar help-append-template1 166 166 166 \;;
+#X scalar help-append-template1 168 168 168 \;;
+#X scalar help-append-template1 169 169 169 \;;
+#X scalar help-append-template1 170 170 170 \;;
+#X scalar help-append-template1 172 172 172 \;;
+#X scalar help-append-template1 173 173 173 \;;
+#X scalar help-append-template1 175 175 175 \;;
+#X scalar help-append-template1 177 177 177 \;;
+#X scalar help-append-template1 179 179 179 \;;
+#X scalar help-append-template1 180 180 180 \;;
+#X scalar help-append-template1 181 181 181 \;;
+#X scalar help-append-template1 182 182 182 \;;
+#X scalar help-append-template1 181 181 181 \;;
+#X scalar help-append-template1 178 178 178 \;;
+#X scalar help-append-template1 170 170 170 \;;
+#X scalar help-append-template1 160 160 160 \;;
+#X scalar help-append-template1 150 150 150 \;;
+#X scalar help-append-template1 140 140 140 \;;
+#X scalar help-append-template1 137 137 137 \;;
+#X scalar help-append-template1 134 134 134 \;;
+#X scalar help-append-template1 131 131 131 \;;
+#X scalar help-append-template1 130 130 130 \;;
+#X scalar help-append-template1 128 128 128 \;;
+#X scalar help-append-template1 127 127 127 \;;
+#X scalar help-append-template1 125 125 125 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 120 120 120 \;;
+#X scalar help-append-template1 118 118 118 \;;
+#X scalar help-append-template1 115 115 115 \;;
+#X scalar help-append-template1 112 112 112 \;;
+#X scalar help-append-template1 110 110 110 \;;
+#X scalar help-append-template1 104 104 104 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 98 98 98 \;;
+#X scalar help-append-template1 97 97 97 \;;
+#X scalar help-append-template1 96 96 96 \;;
+#X scalar help-append-template1 95 95 95 \;;
+#X scalar help-append-template1 94 94 94 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 91 91 91 \;;
+#X scalar help-append-template1 90 90 90 \;;
+#X scalar help-append-template1 88 88 88 \;;
+#X scalar help-append-template1 86 86 86 \;;
+#X scalar help-append-template1 84 84 84 \;;
+#X scalar help-append-template1 82 82 82 \;;
+#X scalar help-append-template1 80 80 80 \;;
+#X scalar help-append-template1 79 79 79 \;;
+#X scalar help-append-template1 78 78 78 \;;
+#X scalar help-append-template1 77 77 77 \;;
+#X scalar help-append-template1 76 76 76 \;;
+#X scalar help-append-template1 75 75 75 \;;
+#X scalar help-append-template1 74 74 74 \;;
+#X scalar help-append-template1 75 75 75 \;;
+#X scalar help-append-template1 77 77 77 \;;
+#X scalar help-append-template1 80 80 80 \;;
+#X scalar help-append-template1 83 83 83 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 91 91 91 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 105 105 105 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 117 117 117 \;;
+#X scalar help-append-template1 119 119 119 \;;
+#X scalar help-append-template1 121 121 121 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 125 125 125 \;;
+#X scalar help-append-template1 127 127 127 \;;
+#X scalar help-append-template1 129 129 129 \;;
+#X scalar help-append-template1 131 131 131 \;;
+#X scalar help-append-template1 133 133 133 \;;
+#X scalar help-append-template1 135 135 135 \;;
+#X scalar help-append-template1 136 136 136 \;;
+#X scalar help-append-template1 138 138 138 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 140 140 140 \;;
+#X scalar help-append-template1 142 142 142 \;;
+#X scalar help-append-template1 144 144 144 \;;
+#X scalar help-append-template1 145 145 145 \;;
+#X scalar help-append-template1 147 147 147 \;;
+#X scalar help-append-template1 149 149 149 \;;
+#X scalar help-append-template1 150 150 150 \;;
+#X scalar help-append-template1 152 152 152 \;;
+#X scalar help-append-template1 153 153 153 \;;
+#X scalar help-append-template1 154 154 154 \;;
+#X scalar help-append-template1 155 155 155 \;;
+#X scalar help-append-template1 156 156 156 \;;
+#X scalar help-append-template1 157 157 157 \;;
+#X scalar help-append-template1 159 159 159 \;;
+#X scalar help-append-template1 160 160 160 \;;
+#X scalar help-append-template1 161 161 161 \;;
+#X scalar help-append-template1 163 163 163 \;;
+#X scalar help-append-template1 165 165 165 \;;
+#X scalar help-append-template1 166 166 166 \;;
+#X scalar help-append-template1 167 167 167 \;;
+#X scalar help-append-template1 168 168 168 \;;
+#X scalar help-append-template1 167 167 167 \;;
+#X scalar help-append-template1 164 164 164 \;;
+#X scalar help-append-template1 161 161 161 \;;
+#X scalar help-append-template1 153 153 153 \;;
+#X scalar help-append-template1 145 145 145 \;;
+#X scalar help-append-template1 142 142 142 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 137 137 137 \;;
+#X scalar help-append-template1 135 135 135 \;;
+#X scalar help-append-template1 133 133 133 \;;
+#X scalar help-append-template1 131 131 131 \;;
+#X scalar help-append-template1 130 130 130 \;;
+#X scalar help-append-template1 128 128 128 \;;
+#X scalar help-append-template1 126 126 126 \;;
+#X scalar help-append-template1 124 124 124 \;;
+#X scalar help-append-template1 121 121 121 \;;
+#X scalar help-append-template1 118 118 118 \;;
+#X scalar help-append-template1 116 116 116 \;;
+#X scalar help-append-template1 113 113 113 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 109 109 109 \;;
+#X scalar help-append-template1 106 106 106 \;;
+#X scalar help-append-template1 104 104 104 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 98 98 98 \;;
+#X scalar help-append-template1 96 96 96 \;;
+#X scalar help-append-template1 94 94 94 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 90 90 90 \;;
+#X scalar help-append-template1 88 88 88 \;;
+#X scalar help-append-template1 87 87 87 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 84 84 84 \;;
+#X scalar help-append-template1 86 86 86 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 108 108 108 \;;
+#X scalar help-append-template1 118 118 118 \;;
+#X scalar help-append-template1 128 128 128 \;;
+#X scalar help-append-template1 138 138 138 \;;
+#X scalar help-append-template1 150 150 150 \;;
+#X scalar help-append-template1 160 160 160 \;;
+#X scalar help-append-template1 170 170 170 \;;
+#X scalar help-append-template1 180 180 180 \;;
+#X scalar help-append-template1 188 188 188 \;;
+#X scalar help-append-template1 191 191 191 \;;
+#X scalar help-append-template1 194 194 194 \;;
+#X scalar help-append-template1 196 196 196 \;;
+#X scalar help-append-template1 197 197 197 \;;
+#X scalar help-append-template1 195 195 195 \;;
+#X scalar help-append-template1 185 185 185 \;;
+#X scalar help-append-template1 171 171 171 \;;
+#X scalar help-append-template1 157 157 157 \;;
+#X scalar help-append-template1 143 143 143 \;;
+#X scalar help-append-template1 133 133 133 \;;
+#X scalar help-append-template1 125 125 125 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 122 122 122 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 125 125 125 \;;
+#X scalar help-append-template1 135 135 135 \;;
+#X scalar help-append-template1 147 147 147 \;;
+#X scalar help-append-template1 161 161 161 \;;
+#X scalar help-append-template1 177 177 177 \;;
+#X scalar help-append-template1 191 191 191 \;;
+#X scalar help-append-template1 203 203 203 \;;
+#X scalar help-append-template1 211 211 211 \;;
+#X scalar help-append-template1 212 212 212 \;;
+#X scalar help-append-template1 213 213 213 \;;
+#X scalar help-append-template1 212 212 212 \;;
+#X scalar help-append-template1 211 211 211 \;;
+#X scalar help-append-template1 201 201 201 \;;
+#X scalar help-append-template1 187 187 187 \;;
+#X scalar help-append-template1 171 171 171 \;;
+#X scalar help-append-template1 155 155 155 \;;
+#X scalar help-append-template1 143 143 143 \;;
+#X scalar help-append-template1 140 140 140 \;;
+#X scalar help-append-template1 138 138 138 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 141 141 141 \;;
+#X scalar help-append-template1 153 153 153 \;;
+#X scalar help-append-template1 163 163 163 \;;
+#X scalar help-append-template1 173 173 173 \;;
+#X scalar help-append-template1 176 176 176 \;;
+#X scalar help-append-template1 178 178 178 \;;
+#X scalar help-append-template1 179 179 179 \;;
+#X scalar help-append-template1 177 177 177 \;;
+#X scalar help-append-template1 167 167 167 \;;
+#X scalar help-append-template1 149 149 149 \;;
+#X scalar help-append-template1 129 129 129 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 97 97 97 \;;
+#X scalar help-append-template1 87 87 87 \;;
+#X scalar help-append-template1 84 84 84 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 91 91 91 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 135 135 135 \;;
+#X scalar help-append-template1 147 147 147 \;;
+#X scalar help-append-template1 155 155 155 \;;
+#X scalar help-append-template1 156 156 156 \;;
+#X scalar help-append-template1 154 154 154 \;;
+#X scalar help-append-template1 144 144 144 \;;
+#X scalar help-append-template1 130 130 130 \;;
+#X scalar help-append-template1 114 114 114 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 90 90 90 \;;
+#X scalar help-append-template1 88 88 88 \;;
+#X scalar help-append-template1 89 89 89 \;;
+#X scalar help-append-template1 91 91 91 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 127 127 127 \;;
+#X scalar help-append-template1 141 141 141 \;;
+#X scalar help-append-template1 149 149 149 \;;
+#X scalar help-append-template1 147 147 147 \;;
+#X scalar help-append-template1 135 135 135 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 107 107 107 \;;
+#X scalar help-append-template1 91 91 91 \;;
+#X scalar help-append-template1 79 79 79 \;;
+#X scalar help-append-template1 71 71 71 \;;
+#X scalar help-append-template1 70 70 70 \;;
+#X scalar help-append-template1 71 71 71 \;;
+#X scalar help-append-template1 72 72 72 \;;
+#X scalar help-append-template1 82 82 82 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 104 104 104 \;;
+#X scalar help-append-template1 103 103 103 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 80 80 80 \;;
+#X scalar help-append-template1 68 68 68 \;;
+#X scalar help-append-template1 56 56 56 \;;
+#X scalar help-append-template1 53 53 53 \;;
+#X scalar help-append-template1 51 51 51 \;;
+#X scalar help-append-template1 52 52 52 \;;
+#X scalar help-append-template1 53 53 53 \;;
+#X scalar help-append-template1 59 59 59 \;;
+#X scalar help-append-template1 65 65 65 \;;
+#X scalar help-append-template1 73 73 73 \;;
+#X scalar help-append-template1 76 76 76 \;;
+#X scalar help-append-template1 78 78 78 \;;
+#X scalar help-append-template1 81 81 81 \;;
+#X scalar help-append-template1 83 83 83 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 86 86 86 \;;
+#X scalar help-append-template1 87 87 87 \;;
+#X scalar help-append-template1 88 88 88 \;;
+#X scalar help-append-template1 90 90 90 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 94 94 94 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 110 110 110 \;;
+#X scalar help-append-template1 118 118 118 \;;
+#X scalar help-append-template1 121 121 121 \;;
+#X scalar help-append-template1 124 124 124 \;;
+#X scalar help-append-template1 127 127 127 \;;
+#X scalar help-append-template1 129 129 129 \;;
+#X scalar help-append-template1 132 132 132 \;;
+#X scalar help-append-template1 134 134 134 \;;
+#X scalar help-append-template1 136 136 136 \;;
+#X scalar help-append-template1 138 138 138 \;;
+#X scalar help-append-template1 140 140 140 \;;
+#X scalar help-append-template1 141 141 141 \;;
+#X scalar help-append-template1 143 143 143 \;;
+#X scalar help-append-template1 145 145 145 \;;
+#X scalar help-append-template1 146 146 146 \;;
+#X scalar help-append-template1 148 148 148 \;;
+#X scalar help-append-template1 149 149 149 \;;
+#X scalar help-append-template1 150 150 150 \;;
+#X scalar help-append-template1 151 151 151 \;;
+#X scalar help-append-template1 153 153 153 \;;
+#X scalar help-append-template1 155 155 155 \;;
+#X scalar help-append-template1 156 156 156 \;;
+#X scalar help-append-template1 158 158 158 \;;
+#X scalar help-append-template1 160 160 160 \;;
+#X scalar help-append-template1 161 161 161 \;;
+#X scalar help-append-template1 163 163 163 \;;
+#X scalar help-append-template1 164 164 164 \;;
+#X scalar help-append-template1 165 165 165 \;;
+#X scalar help-append-template1 166 166 166 \;;
+#X scalar help-append-template1 168 168 168 \;;
+#X scalar help-append-template1 170 170 170 \;;
+#X scalar help-append-template1 172 172 172 \;;
+#X scalar help-append-template1 174 174 174 \;;
+#X scalar help-append-template1 176 176 176 \;;
+#X scalar help-append-template1 178 178 178 \;;
+#X scalar help-append-template1 179 179 179 \;;
+#X scalar help-append-template1 180 180 180 \;;
+#X scalar help-append-template1 182 182 182 \;;
+#X scalar help-append-template1 183 183 183 \;;
+#X scalar help-append-template1 185 185 185 \;;
+#X scalar help-append-template1 187 187 187 \;;
+#X scalar help-append-template1 189 189 189 \;;
+#X scalar help-append-template1 190 190 190 \;;
+#X scalar help-append-template1 192 192 192 \;;
+#X scalar help-append-template1 194 194 194 \;;
+#X scalar help-append-template1 196 196 196 \;;
+#X scalar help-append-template1 198 198 198 \;;
+#X scalar help-append-template1 199 199 199 \;;
+#X scalar help-append-template1 200 200 200 \;;
+#X scalar help-append-template1 201 201 201 \;;
+#X scalar help-append-template1 203 203 203 \;;
+#X scalar help-append-template1 204 204 204 \;;
+#X scalar help-append-template1 206 206 206 \;;
+#X scalar help-append-template1 207 207 207 \;;
+#X scalar help-append-template1 209 209 209 \;;
+#X scalar help-append-template1 210 210 210 \;;
+#X scalar help-append-template1 211 211 211 \;;
+#X scalar help-append-template1 212 212 212 \;;
+#X scalar help-append-template1 213 213 213 \;;
+#X scalar help-append-template1 223 223 223 \;;
+#X scalar help-append-template1 226 226 226 \;;
+#X scalar help-append-template1 228 228 228 \;;
+#X scalar help-append-template1 229 229 229 \;;
+#X scalar help-append-template1 230 230 230 \;;
+#X scalar help-append-template1 231 231 231 \;;
+#X scalar help-append-template1 232 232 232 \;;
+#X scalar help-append-template1 233 233 233 \;;
+#X scalar help-append-template1 234 234 234 \;;
+#X scalar help-append-template1 233 233 233 \;;
+#X scalar help-append-template1 225 225 225 \;;
+#X scalar help-append-template1 217 217 217 \;;
+#X scalar help-append-template1 205 205 205 \;;
+#X scalar help-append-template1 195 195 195 \;;
+#X scalar help-append-template1 183 183 183 \;;
+#X scalar help-append-template1 173 173 173 \;;
+#X scalar help-append-template1 163 163 163 \;;
+#X scalar help-append-template1 155 155 155 \;;
+#X scalar help-append-template1 152 152 152 \;;
+#X scalar help-append-template1 150 150 150 \;;
+#X scalar help-append-template1 148 148 148 \;;
+#X scalar help-append-template1 147 147 147 \;;
+#X scalar help-append-template1 145 145 145 \;;
+#X scalar help-append-template1 143 143 143 \;;
+#X scalar help-append-template1 141 141 141 \;;
+#X scalar help-append-template1 139 139 139 \;;
+#X scalar help-append-template1 136 136 136 \;;
+#X scalar help-append-template1 133 133 133 \;;
+#X scalar help-append-template1 130 130 130 \;;
+#X scalar help-append-template1 122 122 122 \;;
+#X scalar help-append-template1 116 116 116 \;;
+#X scalar help-append-template1 113 113 113 \;;
+#X scalar help-append-template1 110 110 110 \;;
+#X scalar help-append-template1 108 108 108 \;;
+#X scalar help-append-template1 106 106 106 \;;
+#X scalar help-append-template1 104 104 104 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 99 99 99 \;;
+#X scalar help-append-template1 98 98 98 \;;
+#X scalar help-append-template1 96 96 96 \;;
+#X scalar help-append-template1 95 95 95 \;;
+#X scalar help-append-template1 93 93 93 \;;
+#X scalar help-append-template1 92 92 92 \;;
+#X scalar help-append-template1 90 90 90 \;;
+#X scalar help-append-template1 88 88 88 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 82 82 82 \;;
+#X scalar help-append-template1 76 76 76 \;;
+#X scalar help-append-template1 74 74 74 \;;
+#X scalar help-append-template1 71 71 71 \;;
+#X scalar help-append-template1 69 69 69 \;;
+#X scalar help-append-template1 67 67 67 \;;
+#X scalar help-append-template1 65 65 65 \;;
+#X scalar help-append-template1 63 63 63 \;;
+#X scalar help-append-template1 62 62 62 \;;
+#X scalar help-append-template1 60 60 60 \;;
+#X scalar help-append-template1 58 58 58 \;;
+#X scalar help-append-template1 56 56 56 \;;
+#X scalar help-append-template1 54 54 54 \;;
+#X scalar help-append-template1 51 51 51 \;;
+#X scalar help-append-template1 49 49 49 \;;
+#X scalar help-append-template1 47 47 47 \;;
+#X scalar help-append-template1 45 45 45 \;;
+#X scalar help-append-template1 44 44 44 \;;
+#X scalar help-append-template1 42 42 42 \;;
+#X scalar help-append-template1 40 40 40 \;;
+#X scalar help-append-template1 38 38 38 \;;
+#X scalar help-append-template1 36 36 36 \;;
+#X scalar help-append-template1 34 34 34 \;;
+#X scalar help-append-template1 33 33 33 \;;
+#X scalar help-append-template1 32 32 32 \;;
+#X scalar help-append-template1 31 31 31 \;;
+#X scalar help-append-template1 30 30 30 \;;
+#X scalar help-append-template1 28 28 28 \;;
+#X scalar help-append-template1 27 27 27 \;;
+#X scalar help-append-template1 25 25 25 \;;
+#X scalar help-append-template1 24 24 24 \;;
+#X scalar help-append-template1 23 23 23 \;;
+#X scalar help-append-template1 22 22 22 \;;
+#X scalar help-append-template1 21 21 21 \;;
+#X scalar help-append-template1 20 20 20 \;;
+#X scalar help-append-template1 19 19 19 \;;
+#X scalar help-append-template1 18 18 18 \;;
+#X scalar help-append-template1 16 16 16 \;;
+#X scalar help-append-template1 15 15 15 \;;
+#X scalar help-append-template1 14 14 14 \;;
+#X scalar help-append-template1 13 13 13 \;;
+#X scalar help-append-template1 12 12 12 \;;
+#X scalar help-append-template1 11 11 11 \;;
+#X scalar help-append-template1 10 10 10 \;;
+#X scalar help-append-template1 9 9 9 \;;
+#X scalar help-append-template1 8 8 8 \;;
+#X scalar help-append-template1 7 7 7 \;;
+#X scalar help-append-template1 6 6 6 \;;
+#X scalar help-append-template1 5 5 5 \;;
+#X scalar help-append-template1 4 4 4 \;;
+#X scalar help-append-template1 3 3 3 \;;
+#X scalar help-append-template1 2 2 2 \;;
+#X scalar help-append-template1 3 3 3 \;;
+#X scalar help-append-template1 73 73 73 \;;
+#X scalar help-append-template1 75 75 75 \;;
+#X scalar help-append-template1 77 77 77 \;;
+#X scalar help-append-template1 79 79 79 \;;
+#X scalar help-append-template1 81 81 81 \;;
+#X scalar help-append-template1 82 82 82 \;;
+#X scalar help-append-template1 84 84 84 \;;
+#X scalar help-append-template1 85 85 85 \;;
+#X scalar help-append-template1 86 86 86 \;;
+#X scalar help-append-template1 87 87 87 \;;
+#X scalar help-append-template1 93 93 93 \;;
+#X scalar help-append-template1 96 96 96 \;;
+#X scalar help-append-template1 98 98 98 \;;
+#X scalar help-append-template1 100 100 100 \;;
+#X scalar help-append-template1 101 101 101 \;;
+#X scalar help-append-template1 102 102 102 \;;
+#X scalar help-append-template1 103 103 103 \;;
+#X scalar help-append-template1 104 104 104 \;;
+#X scalar help-append-template1 105 105 105 \;;
+#X scalar help-append-template1 106 106 106 \;;
+#X scalar help-append-template1 107 107 107 \;;
+#X scalar help-append-template1 108 108 108 \;;
+#X scalar help-append-template1 110 110 110 \;;
+#X scalar help-append-template1 111 111 111 \;;
+#X scalar help-append-template1 112 112 112 \;;
+#X scalar help-append-template1 113 113 113 \;;
+#X scalar help-append-template1 114 114 114 \;;
+#X scalar help-append-template1 115 115 115 \;;
+#X scalar help-append-template1 116 116 116 \;;
+#X scalar help-append-template1 117 117 117 \;;
+#X scalar help-append-template1 118 118 118 \;;
+#X scalar help-append-template1 119 119 119 \;;
+#X scalar help-append-template1 120 120 120 \;;
+#X scalar help-append-template1 121 121 121 \;;
+#X scalar help-append-template1 122 122 122 \;;
+#X scalar help-append-template1 123 123 123 \;;
+#X scalar help-append-template1 124 124 124 \;;
+#X scalar help-append-template1 125 125 125 \;;
+#X scalar help-append-template1 126 126 126 \;;
+#X scalar help-append-template1 127 127 127 \;;
+#X scalar help-append-template1 128 128 128 \;;
+#X restore 357 351 pd help-append-data;
+#X obj 212 255 pointer;
+#X obj 21 10 append;
+#X text 75 9 -- add item to a list;
+#X msg 212 231 traverse pd-help-append-data \, bang;
+#X obj 34 295 append help-append-template1 x y z;
+#X floatatom 34 246 5 0 0;
+#X obj 34 266 t f f;
+#X msg 356 311 \; pd-help-append-data clear;
+#X text 27 28 "append" maintains a pointer to a scalar \, or else an
+empty pointer to the head of a list. You may set the pointer using
+the leftmost inlet. The creation arguments specify the template of
+a new scalar to append \, and the names of the fields (there should
+be at least one) you will wish to initialize. To append an object \,
+send a number to the leftmost inlet. "Append"'s pointer is updated
+to point to the new scalar \, and the new pointer is also output.;
+#X text 28 149 To insert to the beginning of a list \, you can append
+to the "head" of the list. You may append objects of different templates
+using different "append" objects.;
+#X obj 81 368 pointer;
+#X text 341 408 updated for Pd version 0.35;
+#X text 34 226 click this first->;
+#X text 230 210 go to (and output) "head" of the list;
+#X connect 11 0 15 3;
+#X connect 14 0 11 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 17 1 15 1;
+#X connect 17 1 15 2;
diff --git a/pd/doc/5.reference/bag.pd b/pd/doc/5.reference/bag.pd
new file mode 100644
index 00000000..cdd5bfff
--- /dev/null
+++ b/pd/doc/5.reference/bag.pd
@@ -0,0 +1,27 @@
+#N canvas 118 56 577 366 12;
+#X text 18 337 see also:;
+#X obj 148 337 makenote;
+#X msg 76 151 60 64;
+#X msg 127 151 60 0;
+#X msg 171 151 62 64;
+#X msg 218 151 62 0;
+#X obj 76 278 print;
+#X text 121 279 Output is in the printout window.;
+#X msg 218 197 clear;
+#X obj 66 15 bag;
+#X text 101 14 - COLLECTION OF NUMBERS;
+#X text 12 42 The bag object takes (value \, flag) pairs. If the flag is true (nonzero) \, the value is added to the collection \; if false \, it's removed. The collection may have many copies of the same value. You can output the collection (and empty it) with a "flush" message \, or just empty it with "clear." You can use this to mimic a sustain pedal \, for example.;
+#X msg 217 174 flush;
+#X obj 104 337 poly;
+#X obj 76 248 bag;
+#X text 267 151 <-- add or delete elements;
+#X text 271 174 <-- output them;
+#X text 273 198 <-- start over;
+#X text 328 337 updated for Pd version 0.33;
+#X connect 2 0 14 0;
+#X connect 3 0 14 0;
+#X connect 4 0 14 0;
+#X connect 5 0 14 0;
+#X connect 8 0 14 0;
+#X connect 12 0 14 0;
+#X connect 14 0 6 0;
diff --git a/pd/doc/5.reference/bang.pd b/pd/doc/5.reference/bang.pd
new file mode 100644
index 00000000..1f522268
--- /dev/null
+++ b/pd/doc/5.reference/bang.pd
@@ -0,0 +1,13 @@
+#N canvas 118 56 581 250 12;
+#X obj 49 182 print;
+#X text 107 183 Output is in the printout window.;
+#X obj 66 15 bang;
+#X text 112 14 - SEND "BANG" MSSESSAGE;
+#X msg 61 105 walk the cat;
+#X msg 49 79 45;
+#X obj 49 152 bang;
+#X text 336 233 updated for Pd version 0.27;
+#X text 23 42 Outputs a "bang" message whatever it receives.;
+#X connect 4 0 6 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
diff --git a/pd/doc/5.reference/bang~.pd b/pd/doc/5.reference/bang~.pd
new file mode 100644
index 00000000..debade2f
--- /dev/null
+++ b/pd/doc/5.reference/bang~.pd
@@ -0,0 +1,18 @@
+#N canvas 0 0 529 299 12;
+#X obj 112 128 bang~;
+#X obj 112 159 print;
+#X msg 210 223 \; pd dsp 1;
+#X msg 297 216 \; pd dsp 0;
+#X msg 210 144 bang;
+#X obj 19 20 bang~;
+#X obj 306 193 loadbang;
+#X obj 297 169 delay 100;
+#X text 211 122 click to test;
+#X text 71 21 - output bang after each DSP cycle;
+#X text 5 59 Bang~ outputs a bang after each DSP cycle (at the same logical time as the DSP cycle.) This is primarily useful for sampling the outputs of analysis algorithms.;
+#X text 251 266 updated for Pd version 0.33;
+#X connect 0 0 1 0;
+#X connect 4 0 2 0;
+#X connect 4 0 7 0;
+#X connect 6 0 3 0;
+#X connect 7 0 3 0;
diff --git a/pd/doc/5.reference/biquad~.pd b/pd/doc/5.reference/biquad~.pd
new file mode 100644
index 00000000..81a31960
--- /dev/null
+++ b/pd/doc/5.reference/biquad~.pd
@@ -0,0 +1,35 @@
+#N canvas 185 22 655 349 12;
+#X obj 27 14 biquad~;
+#X msg 448 11 \; pd dsp 1;
+#X msg 448 55 \; pd dsp 0;
+#X obj 84 248 env~;
+#X floatatom 84 275;
+#X floatatom 15 110;
+#X obj 15 246 env~;
+#X floatatom 15 274;
+#X text 13 297 Compare the value of the straight signal on the left with the value of the filtered signal on the right.;
+#X obj 84 215 biquad~ 1.41407 -0.9998 1 -1.41421 1;
+#X msg 101 121 1.41407 -0.9998 1 -1.41421 1;
+#X text 76 31 calculates the following difference equation:;
+#X text 77 44 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2);
+#X text 76 58 w(n) = x(n) + fb1 * w(n-1) + fb2 * w(n-2);
+#X text 18 76 Syntax: biquad~ fb1 fb2 ff1 ff2 ff3;
+#X text 341 213 this biquad~ is a notch filter for fn = Pi/4;
+#X text 390 226 (= SR/8 = 5512.5 Hz @44.1k);
+#X text 91 14 2-pole-2-zero-filter;
+#X text 113 99 list sets filter parameters;
+#X msg 119 161 set 0 0;
+#X msg 120 186 clear;
+#X obj 15 170 osc~ 5512.5;
+#X text 422 337 updated for Pd version-0.30;
+#X text 189 163 set internal state;
+#X text 187 185 ... or just clear it;
+#X connect 3 0 4 0;
+#X connect 5 0 21 0;
+#X connect 6 0 7 0;
+#X connect 9 0 3 0;
+#X connect 10 0 9 0;
+#X connect 19 0 9 0;
+#X connect 20 0 9 0;
+#X connect 21 0 6 0;
+#X connect 21 0 9 0;
diff --git a/pd/doc/5.reference/bng.pd b/pd/doc/5.reference/bng.pd
new file mode 100644
index 00000000..d48d560a
--- /dev/null
+++ b/pd/doc/5.reference/bng.pd
@@ -0,0 +1,265 @@
+#N canvas 11 201 538 357 10;
+#X obj 1 1 cnv 8 100 60 empty empty bng 20 20 1 18 -262144 -1109 0
+;
+#X text 10 288 (c) musil@iem.kug.ac.at;
+#X text 52 301 IEM KUG;
+#X text 118 61 click properties to;
+#X text 106 72 modify geometry \, colors \, etc.;
+#X obj 64 257 print;
+#N canvas 598 330 290 225 once 0;
+#X msg 38 73 1;
+#X obj 38 47 t b b;
+#X obj 68 124 sel 0;
+#X obj 68 103 f 0;
+#X obj 38 24 inlet;
+#X obj 68 154 outlet;
+#X connect 0 0 3 1;
+#X connect 1 0 0 0;
+#X connect 1 1 3 0;
+#X connect 2 0 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 1 0;
+#X restore 64 234 pd once;
+#X obj 36 258 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 3 130 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 36 173 bng 50 950 50 1 foo5_snd foo5_rcv big-bang 63 2 192 12
+-262131 -260818 -143491;
+#X msg 36 53 33;
+#X msg 50 75 -3.14;
+#X msg 73 117 11 22 33.33;
+#X msg 63 95 open xxx;
+#X msg 96 142 funny;
+#X text 101 11 gui-bang:;
+#X obj 202 135 s foo5_rcv;
+#X obj 202 155 r foo5_snd;
+#X obj 202 115 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X obj 202 175 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X msg 4 53 0;
+#X text 125 205 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 124 216 for moving selected gui-objects;
+#N canvas 425 170 699 530 edit 0;
+#X obj 39 197 f;
+#X msg 17 176 bang;
+#X floatatom 55 175 3 63 88;
+#X floatatom 90 197 3 0 37;
+#X obj 39 220 pack 0 0;
+#X text 117 197 y-label;
+#X text 83 175 x-label;
+#X floatatom 259 143 3 8 75;
+#X text 286 143 size;
+#X obj 279 236 f;
+#X msg 257 215 bang;
+#X floatatom 295 214 3 -10 10;
+#X floatatom 330 236 3 -10 10;
+#X obj 279 259 pack 0 0;
+#X obj 304 348 f;
+#X msg 282 327 bang;
+#X floatatom 320 326 3 20 90;
+#X floatatom 355 348 3 150 200;
+#X obj 304 371 pack 0 0;
+#X text 323 214 x-delta;
+#X text 357 236 y-delta;
+#X text 348 326 x-position;
+#X text 382 348 y-position;
+#X obj 59 312 f;
+#X msg 37 291 bang;
+#X floatatom 75 290 3 0 2;
+#X floatatom 110 312 3 4 36;
+#X obj 59 335 pack 0 0;
+#X text 103 290 font;
+#X text 139 312 height;
+#X msg 36 399 \; foo5_rcv label blabla;
+#X msg 59 360 \; foo5_rcv label_font \$1 \$2;
+#X msg 39 245 \; foo5_rcv label_pos \$1 \$2;
+#X msg 47 135 \; foo5_rcv color \$1 \$2 \$3;
+#X msg 259 172 \; foo5_rcv size \$1;
+#X msg 279 284 \; foo5_rcv delta \$1 \$2;
+#X msg 304 396 \; foo5_rcv pos \$1 \$2;
+#X msg 483 133 \; foo5_rcv receive foo5a_rcv;
+#X msg 482 171 \; foo5a_rcv receive foo5_rcv;
+#X msg 483 50 \; foo5_rcv send foo5a_snd;
+#X msg 483 88 \; foo5_rcv send foo5_snd;
+#X text 526 349 no init;
+#X msg 505 368 \; foo5_rcv init 0;
+#X msg 512 435 \; foo5_rcv init 1;
+#X obj 493 260 f;
+#X msg 471 239 bang;
+#X floatatom 509 238 4 10 100;
+#X floatatom 544 261 5 100 3000;
+#X obj 493 283 pack 0 0;
+#X msg 493 308 \; foo5_rcv flashtime \$1 \$2;
+#X text 548 237 interrupt-time;
+#X text 585 262 hold-time;
+#X msg 36 435 \; foo5_rcv label big-bang;
+#X text 502 417 init bang on loadbang;
+#X text 519 221 flash-time:;
+#X obj 47 114 pack 0 0 0;
+#X obj 47 86 f;
+#X msg 24 38 bang;
+#X floatatom 63 36 3 0 29;
+#X floatatom 79 56 3 0 29;
+#X floatatom 112 72 3 0 29;
+#X text 91 36 background;
+#X text 106 56 front-color;
+#X text 140 73 label-color;
+#X msg 285 35 back;
+#X msg 285 55 front;
+#X msg 285 75 label;
+#X msg 247 35 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 96 pd RGB_____________;
+#X floatatom 327 65 3 0 255;
+#X floatatom 370 65 3 0 255;
+#X floatatom 413 66 3 0 255;
+#X text 34 10 preset-colors;
+#X text 296 7 RGB-colors;
+#X text 327 47 red;
+#X text 363 46 green;
+#X text 411 46 blue;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 32 0;
+#X connect 7 0 34 0;
+#X connect 9 0 13 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 1;
+#X connect 12 0 13 1;
+#X connect 13 0 35 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 1;
+#X connect 17 0 18 1;
+#X connect 18 0 36 0;
+#X connect 23 0 27 0;
+#X connect 24 0 23 0;
+#X connect 25 0 23 1;
+#X connect 26 0 27 1;
+#X connect 27 0 31 0;
+#X connect 44 0 48 0;
+#X connect 45 0 44 0;
+#X connect 46 0 44 1;
+#X connect 47 0 48 1;
+#X connect 48 0 49 0;
+#X connect 55 0 33 0;
+#X connect 56 0 55 0;
+#X connect 57 0 56 0;
+#X connect 58 0 56 1;
+#X connect 59 0 55 1;
+#X connect 60 0 55 2;
+#X connect 64 0 68 0;
+#X connect 65 0 68 0;
+#X connect 66 0 68 0;
+#X connect 67 0 68 0;
+#X connect 68 0 55 0;
+#X connect 68 1 55 1;
+#X connect 68 2 55 2;
+#X connect 69 0 68 1;
+#X connect 70 0 68 2;
+#X connect 71 0 68 3;
+#X restore 297 144 pd edit;
+#X obj 248 34 bng 15 250 50 0 aaa aaa empty 20 8 192 8 -262144 -1 -1
+;
+#X text 185 312 updated for Pd version 0.35;
+#X text 27 313 graz \, austria 2002;
+#X obj 180 11 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 9 0 6 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
+#X connect 13 0 9 0;
+#X connect 14 0 9 0;
+#X connect 17 0 19 0;
+#X connect 18 0 16 0;
+#X connect 20 0 9 0;
diff --git a/pd/doc/5.reference/bp~.pd b/pd/doc/5.reference/bp~.pd
new file mode 100644
index 00000000..8bcd86b4
--- /dev/null
+++ b/pd/doc/5.reference/bp~.pd
@@ -0,0 +1,40 @@
+#N canvas 533 67 651 393 12;
+#X obj 124 11 bp~;
+#X text 159 11 - BANDPASS FILTER;
+#X obj 70 263 env~;
+#X floatatom 70 283 0 0 0;
+#X floatatom 104 193 0 0 0;
+#X obj 12 261 env~;
+#X floatatom 12 282 0 0 0;
+#X text 119 264 env~ gives the amplitude of the signal envelop in dB.
+;
+#X floatatom 12 123 0 0 0;
+#X msg 544 67 \; pd dsp 0;
+#X obj 12 146 osc~ 100;
+#X text 57 121 <-- scroll to change input frequency;
+#X msg 72 170 clear;
+#X text 122 169 <-- reinitialize internal state;
+#X text 398 361 updated for Pd version-0.30;
+#X msg 544 28 \; pd dsp 1;
+#X text 13 73 The left inlet is the incoming audio signal \, the middle
+control input sets center frequency and the rigth input sets "Q".;
+#X text 136 194 <-- center frequency;
+#X obj 72 241 bp~ 100 10;
+#X text 169 242 Arguments initialize center frequency and Q.;
+#X text 12 301 Compare the amplitude of the original signal on the
+left with the amplitude of the filtered signal on the right.;
+#X floatatom 153 215 0 0 0;
+#X text 185 216 <-- Q;
+#X text 16 35 bp~ passes a sinusoid at the center frequency at unit
+gain (approximately). Other frequencies are attenuated.;
+#X text 21 357 see also:;
+#X obj 110 356 vcf~;
+#X connect 2 0 3 0;
+#X connect 4 0 18 1;
+#X connect 5 0 6 0;
+#X connect 8 0 10 0;
+#X connect 10 0 5 0;
+#X connect 10 0 18 0;
+#X connect 12 0 18 0;
+#X connect 18 0 2 0;
+#X connect 21 0 18 2;
diff --git a/pd/doc/5.reference/canvas.pd b/pd/doc/5.reference/canvas.pd
new file mode 100644
index 00000000..a6e33be5
--- /dev/null
+++ b/pd/doc/5.reference/canvas.pd
@@ -0,0 +1,19 @@
+#N canvas 210 82 579 437 12;
+#X obj 66 15 table;
+#X text 123 16 - Array of numbers;
+#X obj 34 199 table help-tab1 25;
+#X text 10 43 "Table" builds a subpatch with a graphical array inside.
+The creation arguments specify the name and an optional size in points.
+;
+#X msg 70 265 \; help-tab1 read table.txt;
+#X msg 70 309 \; help-tab1 write /tmp/table.txt;
+#X text 70 243 You can also send messages to the array by name:;
+#X text 216 200 <- optional creation args: name \, size;
+#X text 17 355 Unfortunately there's no way to set vertical range \,
+etc.;
+#X text 9 101 Note that the data (and other properties) of the array
+aren't saved with the patch. You can resize \, save to and/or read
+from an external file as you would with "array" objects. See "arrays"
+in the 2.control examples under the "pure documentation" help menu
+item.;
+#X text 325 391 updated for Pd version 0.35;
diff --git a/pd/doc/5.reference/change.pd b/pd/doc/5.reference/change.pd
new file mode 100644
index 00000000..74e16f6a
--- /dev/null
+++ b/pd/doc/5.reference/change.pd
@@ -0,0 +1,23 @@
+#N canvas 376 130 540 355 12;
+#X msg 67 124 bang;
+#X floatatom 67 266 0 0 0;
+#X floatatom 79 154 0 0 0;
+#X floatatom 104 182 0 0 0;
+#X text 284 309 updated for Pd version 0.27;
+#X text 173 239 creation argument initializes first value;
+#X obj 66 15 change;
+#X text 114 16 - ELIMINATE REDUNDANCY IN A NUMBER STEAM;
+#X text 12 42 The change object outputs its input only when it changes.
+You can "set" the current value \, or bang to force output.;
+#X obj 67 240 change 6.5;
+#X msg 105 211 set \$1;
+#X text 136 183 set the value;
+#X text 112 123 output current value;
+#X text 110 154 if different from current value \, output and set;
+#X obj 67 293 print;
+#X connect 0 0 9 0;
+#X connect 1 0 14 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
diff --git a/pd/doc/5.reference/clip~.pd b/pd/doc/5.reference/clip~.pd
new file mode 100644
index 00000000..61c222fa
--- /dev/null
+++ b/pd/doc/5.reference/clip~.pd
@@ -0,0 +1,30 @@
+#N canvas 182 132 778 399 12;
+#X obj 75 164 clip~ -0.5 0.5;
+#X obj 75 104 osc~ 1000;
+#X graph graph1 0 1 100 -1 78 280 278 380;
+#X array array99 100 float 0;
+#X pop;
+#X obj 91 213 metro 500;
+#X obj 91 188 r metro;
+#X text 239 235 <-- graph the output;
+#X obj 75 237 tabwrite~ array99;
+#X msg 519 69 \; metro 0;
+#X msg 515 12 \; pd dsp 1 \; metro 1;
+#X text 604 26 <-- Click to start;
+#X text 589 73 <-- Click to stop;
+#X obj 42 19 clip~;
+#X text 88 18 - restrict a signal to lie between two limits;
+#X text 243 136 inlets to reset clip range;
+#X floatatom 135 136 4 0 0;
+#X floatatom 196 137 4 0 0;
+#X text 210 164 creation arguments initialize clip range;
+#X text 4 55 The clip~ object passes its signal input to its output
+\, clipping it to lie between two limits.;
+#X text 470 371 updated for Pd version 0.33;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 4 0 3 0;
+#X connect 14 0 0 1;
+#X connect 15 0 0 2;
diff --git a/pd/doc/5.reference/cos~.pd b/pd/doc/5.reference/cos~.pd
new file mode 100644
index 00000000..ba6f918e
--- /dev/null
+++ b/pd/doc/5.reference/cos~.pd
@@ -0,0 +1,32 @@
+#N canvas 134 143 768 332 12;
+#X obj 112 12 cos~;
+#X obj 23 200 cos~;
+#X obj 23 249 snapshot~;
+#X obj 23 152 sig~;
+#X floatatom 23 275 0 0 0;
+#X obj 23 125 * 0.01;
+#X floatatom 23 98 0 0 0;
+#X obj 90 215 metro 500;
+#X obj 90 189 r metro;
+#X msg 540 93 \; metro 0;
+#X msg 521 39 \; pd dsp 1 \; metro 1;
+#X text 159 13 - COSINE WAVESHAPER;
+#X text 86 125 Divide by 100;
+#X text 71 153 convert to audio;
+#X text 78 100 <-- Scroll to set input value;
+#X text 64 276 <-- output of the cos~ object;
+#X text 291 195 see also:;
+#X obj 379 197 osc~;
+#X obj 423 197 tabread4~;
+#X text 494 293 updated for Pd version 0.33;
+#X text 608 54 <-Click to start;
+#X text 609 99 <-Click to stop;
+#X text 9 45 The cos~ object outputs the cosine of its signal input.;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 2 0 4 0;
+#X connect 3 0 1 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X connect 7 0 2 0;
+#X connect 8 0 7 0;
diff --git a/pd/doc/5.reference/cputime.pd b/pd/doc/5.reference/cputime.pd
new file mode 100644
index 00000000..c0a0f43a
--- /dev/null
+++ b/pd/doc/5.reference/cputime.pd
@@ -0,0 +1,15 @@
+#N canvas 302 232 550 286 12;
+#X msg 74 144 bang;
+#X msg 30 115 bang;
+#X floatatom 30 206 0 0 0;
+#X text 71 113 Click here to reset;
+#X text 27 232 Output is in milliseconds;
+#X obj 30 175 cputime;
+#X text 124 144 Click here to get elapsed CPU time;
+#X text 6 51 The cputime object measures elapsed CPU time \, as measured by your operating system. This appears to work on NT \, IRIX \, and Linux \, but not on W98.;
+#X obj 66 15 cputime;
+#X text 123 16 - measure CPU usage;
+#X text 297 261 updated for Pd version 0.33;
+#X connect 0 0 5 1;
+#X connect 1 0 5 0;
+#X connect 5 0 2 0;
diff --git a/pd/doc/5.reference/delay.pd b/pd/doc/5.reference/delay.pd
new file mode 100644
index 00000000..5f90cd4b
--- /dev/null
+++ b/pd/doc/5.reference/delay.pd
@@ -0,0 +1,30 @@
+#N canvas 3 0 513 348 12;
+#X obj 66 15 delay;
+#X obj 13 229 50;
+#X msg 13 98 bang;
+#X floatatom 13 255;
+#X floatatom 116 182;
+#X obj 51 230 0;
+#X text 111 16 - CALLBACK AFTER TIME DELAY;
+#X text 130 205 <-- creation argument initializes delay time;
+#X text 6 41 The delay object sends a bang to its outlet after a delay in milliseconds specified by its right inlet or its creation argument.;
+#X obj 51 204 delay 1000;
+#X text 58 86 Click here to test the delay object by initializing the number box below to 50 and then clearing it after the specified delay.;
+#X text 94 132 Click here to CANCEL delay's action;
+#X msg 51 133 stop;
+#X text 43 324 see also:;
+#X obj 155 323 timer;
+#X obj 111 323 metro;
+#X msg 62 155 2000;
+#X text 102 154 Number in right inlet sets time and schedules the action.;
+#X text 316 320 updated for Pd version 0.3;
+#X text 145 183 <-- scroll to change delay time in milliseconds;
+#X text 14 280 Note: sending a bang to a delay which is already set will reschedule its output \, cancelling the old one.;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 0 9 0;
+#X connect 4 0 9 1;
+#X connect 5 0 3 0;
+#X connect 9 0 5 0;
+#X connect 12 0 9 0;
+#X connect 16 0 9 0;
diff --git a/pd/doc/5.reference/delread~.pd b/pd/doc/5.reference/delread~.pd
new file mode 100644
index 00000000..682f6e98
--- /dev/null
+++ b/pd/doc/5.reference/delread~.pd
@@ -0,0 +1,33 @@
+#N canvas 24 20 796 472 12;
+#X text 351 276 1st argument: name of delay line;
+#X floatatom 116 253 0 0 0;
+#X text 151 255 float input (delay time in ms);
+#X text 127 310 signal output (delayed signal);
+#X text 21 52 You can use more than one delread~ objects for the same delay line.;
+#X text 20 81 If the specified delay time is longer than the size of the delay line or less than zero it is clipped to the length of the delay line.;
+#X obj 383 226 delwrite~ del_example 1000;
+#X floatatom 383 177 0 0 0;
+#X obj 116 375 snapshot~;
+#X floatatom 116 399 0 0 0;
+#X obj 24 246 loadbang;
+#X obj 24 313 metro 200;
+#X msg 32 273 \; pd dsp 1;
+#X obj 116 286 delread~ del_example 1000;
+#X obj 24 16 delread~;
+#X text 424 176 input to delay line;
+#X obj 383 201 sig~;
+#X text 433 443 updated for Pd version 0.33;
+#X text 89 16 - read a signal from a delay line;
+#X text 21 133 Note: if the delaywrite~ runs after the delread~ the minimum delay is actually one DSP period \, not zero.;
+#X text 351 292 2nd argument: (initial) delay time in ms;
+#X obj 126 444 delwrite~;
+#X obj 217 444 vd~;
+#X text 36 443 see also:;
+#X connect 1 0 13 0;
+#X connect 7 0 16 0;
+#X connect 8 0 9 0;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 8 0;
+#X connect 13 0 8 0;
+#X connect 16 0 6 0;
diff --git a/pd/doc/5.reference/delwrite~.pd b/pd/doc/5.reference/delwrite~.pd
new file mode 100644
index 00000000..50ca3f63
--- /dev/null
+++ b/pd/doc/5.reference/delwrite~.pd
@@ -0,0 +1,15 @@
+#N canvas 12 24 663 281 12;
+#X obj 24 16 delwrite~;
+#X obj 24 158 delwrite~ del_line_xxx 500;
+#X text 88 123 signal input;
+#X text 116 16 writes a signal in a delay line;
+#X text 271 156 1st argument: name of delay line;
+#X text 411 243 updated for Pd version 0.33;
+#X obj 24 124 sig~ 0;
+#X text 19 50 Delwrite~ allocates memory for a delay line and writes an audio signal into it. Delread~ objects by hte same name read from the delay line.;
+#X text 294 186 (= max. delay time);
+#X text 271 172 2nd argument: length of delay line in msec;
+#X text 24 203 see also:;
+#X obj 112 205 delread~;
+#X obj 193 205 vd~;
+#X connect 6 0 1 0;
diff --git a/pd/doc/5.reference/drawnumber.pd b/pd/doc/5.reference/drawnumber.pd
new file mode 100644
index 00000000..a62a8103
--- /dev/null
+++ b/pd/doc/5.reference/drawnumber.pd
@@ -0,0 +1,35 @@
+#N struct help-drawnumber-template float x float y float cat float
+dog;
+#N canvas 369 6 538 189 12;
+#X text 15 103 see also:;
+#X obj 18 7 drawnumber;
+#X obj 204 132 plot;
+#X obj 100 131 drawpolygon;
+#X obj 22 130 template;
+#X text 114 7 -- draw numeric fields from data structures;
+#N canvas 14 10 297 129 help-drawnumber-data 1;
+#X scalar help-drawnumber-template 50 100 23 43 \;;
+#X scalar help-drawnumber-template 150 50 3.14 -1.618 \;;
+#X restore 273 71 pd help-drawnumber-data;
+#N canvas 57 283 580 439 help-drawnumber-template 1;
+#X text 24 316 This object defines the fields for this template. Their
+values are initialized in the "works" subwindow. You can see them by
+right-clicking on the object in the "data" window and selecting "properties."
+;
+#X text 44 104 - RGB color (0=black \, 999=white \, 900=red \, 90=green
+\, 9=blue \, 555=grey \, etc.);
+#X obj 11 294 template float x float y float cat float dog;
+#X text 22 166 Any of these can be numbers or field names \, like "dog"
+and "cat" here.;
+#X text 22 202 When not in "edit" mode \, you can click and drag vertically
+on the numbers to change their values. (In edit mode you can move \,
+cut \, copy \, and paste the objects.);
+#X text 24 251 Keyboard entry isn't supported yet.;
+#X obj 24 15 drawnumber cat 0 0 0 cat=;
+#X obj 259 16 drawnumber dog 0 -15 900 dog=;
+#X text 44 136 - an optional label ("cat=" for instance);
+#X text 26 44 drawnumber takes arguments specifying:;
+#X text 44 84 - an (x \, y) pair giving relative coordinates \;;
+#X text 44 64 - the number to draw;
+#X restore 273 45 pd help-drawnumber-template;
+#X text 275 159 updated for Pd version 0.35;
diff --git a/pd/doc/5.reference/drawpolygon.pd b/pd/doc/5.reference/drawpolygon.pd
new file mode 100644
index 00000000..714c404b
--- /dev/null
+++ b/pd/doc/5.reference/drawpolygon.pd
@@ -0,0 +1,42 @@
+#N struct help-drawpolygon-template float x float y float cat float
+dog float weasel;
+#N canvas 411 8 565 187 12;
+#X text 13 130 see also:;
+#X obj 111 149 drawnumber;
+#X obj 207 149 plot;
+#X obj 21 10 drawpolygon;
+#X obj 21 33 drawcurve;
+#X obj 126 11 filledpolygon;
+#X obj 127 33 filledcurve;
+#X text 225 10 -- draw shapes for data structures;
+#N canvas 30 290 587 435 help-drawpolygon-template 1;
+#X obj 14 335 template float x float y float cat float dog float weasel
+;
+#X obj 19 24 drawpolygon 0 2 0 0 0 weasel;
+#X text 26 44 drawpolygon and drawcurve take arguments specifying:
+;
+#X text 29 137 Any of these can be numbers or field names \, like "weasel"
+here. The example above draws a vertical black line of height "weasel".
+;
+#X obj 19 194 filledpolygon 900 dog 3 10 0 20 cat 30 0;
+#X text 31 216 filledpolyconn and filledcurve take the same arguments
+\, except that a new first argument is added to specify interior color.
+Here the interior color is red (900) \, the outline color is controlled
+by the "dog" field \, and the three points describe a triangle of altitude
+"cat". The fields x and y automatically govern the placement of the
+object as a whole.;
+#X text 24 357 This object defines the fields for this template. Their
+values are initialized in the "works" subwindow. You can see them by
+right-clicking on the object in the "data" window and selecting "properties."
+;
+#X text 45 62 - RGB color (0=black \, 999=white \, 900=red \, 90=green
+\, 9=blue \, 555=grey \, etc.);
+#X text 46 95 - line width;
+#X text 46 116 - two or more (x \, y) pairs giving coordinates.;
+#X restore 274 93 pd help-drawpolygon-template;
+#X obj 34 149 template;
+#N canvas 10 18 384 178 help-drawpolygon-data 1;
+#X scalar help-drawpolygon-template 50 40 30 9 80 \;;
+#X scalar help-drawpolygon-template 150 40 -20 90 50 \;;
+#X restore 274 119 pd help-drawpolygon-data;
+#X text 312 168 updated for Pd version 0.35;
diff --git a/pd/doc/5.reference/element.pd b/pd/doc/5.reference/element.pd
new file mode 100644
index 00000000..a3faeecf
--- /dev/null
+++ b/pd/doc/5.reference/element.pd
@@ -0,0 +1,51 @@
+#N struct help-element-template float x float y array array1 help-element-array1-template
+;
+#N struct help-element-array1-template float y;
+#N canvas 330 34 668 442 12;
+#X text 24 373 see also:;
+#X obj 21 393 template;
+#N canvas 393 10 491 261 help-element-template 0;
+#X obj 27 76 plot array1 500 1 10 15 20;
+#X obj 27 174 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10;
+#X obj 24 16 template float x float y array array1 help-element-array1-template
+;
+#X restore 414 349 pd help-element-template;
+#N canvas 0 0 288 159 help-element-data 1;
+#X scalar help-element-template 35 24 \; 0 \; 10 \; 0 \; 10 \; 20 \;
+10 \; 20 \; 70 \; 10 \; \;;
+#X restore 450 328 pd help-element-data;
+#N canvas 196 292 365 134 help-element-array1-template 0;
+#X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5;
+#X obj 32 27 template float y;
+#X restore 354 371 pd help-element-array1-template;
+#X obj 22 11 element;
+#X text 91 10 -- get pointer to an element of an array;
+#X obj 98 393 pointer;
+#X obj 166 393 getsize;
+#X obj 234 393 setsize;
+#X text 24 44 "element" takes a pointer at right and a number at left.
+It looks up a field from the pointer \, which should be an array \,
+and outputs the element of the array specified by the number. There
+are no pointers to arrays themselves \, just to individual elements.
+The template and field mane are specified as creation arguments.;
+#X obj 150 228 pointer;
+#X msg 150 204 traverse pd-help-element-data \, next;
+#X floatatom 38 230 5 0 0;
+#X obj 38 256 element help-element-template array1;
+#X obj 38 303 get help-element-array1-template y;
+#X floatatom 38 330 5 0 0;
+#X text 370 256 arguments: template \, field name;
+#X text 247 230 pointer inlet;
+#X text 36 209 index;
+#X text 43 277 outlet is pointer to single element;
+#X text 89 328 here we just get the value of y.;
+#X text 24 143 Indices range from 0 to the number of elements minus
+one \; indices out of range are quietly replaced by the nearest endpoint.
+;
+#X text 152 184 click here first;
+#X text 407 416 updated for Pd version 0.35;
+#X connect 11 0 14 1;
+#X connect 12 0 11 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
diff --git a/pd/doc/5.reference/env~.pd b/pd/doc/5.reference/env~.pd
new file mode 100644
index 00000000..64a245ae
--- /dev/null
+++ b/pd/doc/5.reference/env~.pd
@@ -0,0 +1,28 @@
+#N canvas 40 55 711 401 12;
+#X floatatom 103 303 0 0 0;
+#X obj 74 14 env~;
+#X text 120 16 - envelope follower;
+#X obj 103 275 env~ 16384;
+#X obj 103 214 osc~ 400;
+#X obj 103 241 *~;
+#X floatatom 217 220 3 -99 300;
+#X obj 217 244 dbtorms;
+#X text 9 46 The env~ object takes a signal and outputs its RMS amplitude
+in dB (with 1 normalized to 100 dB.) Output is bounded below by zero.
+;
+#X text 8 105 The analysis is Hanning windowed.;
+#X text 9 131 The optional creation argument is the analysis window
+size in samples \, and should be a power of two. The analysis windows
+overlap by two \, so that the period of output is half the window size.
+;
+#X text 206 274 <- creation argument sets window size;
+#X text 265 221 <- set peak-to-peak amplitude here in dB.;
+#X text 185 305 <- the output is RMS amplitude which is about 3 dB
+below peak-to-peak amplitude.;
+#X text 459 375 updated for Pd version 0.35;
+#X connect 3 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 1;
diff --git a/pd/doc/5.reference/fft~.pd b/pd/doc/5.reference/fft~.pd
new file mode 100644
index 00000000..149a6634
--- /dev/null
+++ b/pd/doc/5.reference/fft~.pd
@@ -0,0 +1,64 @@
+#N canvas 22 7 886 436 12;
+#X text 85 158 frequency;
+#X floatatom 16 173 0 0 0;
+#X obj 16 120 * 44100;
+#X floatatom 16 94 0 0 0;
+#X text 88 92 frequency;
+#X text 91 111 in bins;
+#X text 85 175 in Hz.;
+#X obj 16 229 osc~;
+#X obj 36 16 fft~;
+#X obj 86 17 ifft~;
+#X text 146 15 - forward and inverse complex FFT;
+#X obj 36 42 rfft~;
+#X obj 86 43 rifft~;
+#X text 146 41 - forward and inverse real FFT;
+#X obj 16 254 rfft~;
+#X obj 16 148 / 64;
+#X obj 574 21 loadbang;
+#X msg 574 47 \; pd dsp 1;
+#X text 636 403 updated for Pd version 0.33;
+#X obj 16 322 rifft~;
+#X obj 102 310 print~ real;
+#X obj 115 285 print~ imaginary;
+#X obj 16 352 /~ 64;
+#X obj 16 407 print~ resynthesized;
+#X msg 30 380 bang;
+#X msg 101 248 bang;
+#X msg 100 199 0.25;
+#X msg 152 199 0;
+#X text 195 200 <-- bash phase;
+#X text 152 249 <-- print analysis;
+#X text 79 380 <-- print resynthesis;
+#X text 76 352 <-- renormalize;
+#X text 347 294 There is no normalization \, so that an FFT followed
+by an IFFT has a gain of N.;
+#X text 346 343 See the FFT examples to see how to use these in practice.
+;
+#X text 346 112 The FFT objects do Fourier analyses and resyntheses
+of incoming real or complex signals. Complex signals are handled as
+pairs of signals (real and imaginary part.) The analysis size is one
+block (you can use the block~ or switch~ obejcts to control block size).
+;
+#X text 347 205 The real FFT outputs N/2+1 real parts and N/2-1 imaginary
+parts. The other outputs are zero. At DC and at the Nyquist there is
+no imaginary part \, but the second through Nth output is as a real
+and imaginary pair \, which can be thought of as the cosine and sin
+component strengths.;
+#X connect 1 0 7 0;
+#X connect 2 0 15 0;
+#X connect 3 0 2 0;
+#X connect 7 0 14 0;
+#X connect 14 0 20 0;
+#X connect 14 0 19 0;
+#X connect 14 1 21 0;
+#X connect 14 1 19 1;
+#X connect 15 0 1 0;
+#X connect 16 0 17 0;
+#X connect 19 0 22 0;
+#X connect 22 0 23 0;
+#X connect 24 0 23 0;
+#X connect 25 0 20 0;
+#X connect 25 0 21 0;
+#X connect 26 0 7 1;
+#X connect 27 0 7 1;
diff --git a/pd/doc/5.reference/float.pd b/pd/doc/5.reference/float.pd
new file mode 100644
index 00000000..efc5235a
--- /dev/null
+++ b/pd/doc/5.reference/float.pd
@@ -0,0 +1,18 @@
+#N canvas 23 20 429 272 12;
+#X msg 30 107 bang;
+#X obj 30 183 float 6.5;
+#X floatatom 30 209;
+#X floatatom 42 129;
+#X floatatom 88 153;
+#X obj 55 12 float;
+#X text 97 11 - STORE A (FLOATING POINT) NUMBER;
+#X text 12 36 The float object stores a number \, initialized by its creation argument \, which may be reset using its inlet and output by sending it the "bang" message. Sending a number sets a new value and outputs it.;
+#X text 77 103 outputs the value;
+#X text 74 130 sets and outputs the value;
+#X text 123 155 sets the value;
+#X text 108 184 creation argument initializes the value;
+#X text 223 242 updated for Pd version 0.3;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 1;
diff --git a/pd/doc/5.reference/framp~.pd b/pd/doc/5.reference/framp~.pd
new file mode 100644
index 00000000..cbf3f047
--- /dev/null
+++ b/pd/doc/5.reference/framp~.pd
@@ -0,0 +1,40 @@
+#N canvas 22 7 857 377 12;
+#X text 85 158 frequency;
+#X floatatom 16 173 0 0 0;
+#X obj 16 120 * 44100;
+#X floatatom 16 94 0 0 0;
+#X text 88 92 frequency;
+#X text 91 111 in bins;
+#X text 85 175 in Hz.;
+#X obj 17 238 rfft~;
+#X obj 16 148 / 64;
+#X obj 653 14 loadbang;
+#X msg 653 40 \; pd dsp 1;
+#X text 599 339 updated for Pd version 0.33;
+#X msg 103 260 bang;
+#X text 154 261 <-- print analysis;
+#X obj 36 16 framp~;
+#X text 119 15 - estimate frequency and amplitude of FFT components
+;
+#X obj 16 270 framp~;
+#X obj 103 322 print~ frequency;
+#X obj 118 297 print~ amplitude;
+#X obj 16 204 osc~;
+#X text 324 98 Framp~ takes as input a rectangular-windowed FFT and
+outputs \, for each FFT channel \, the estimated amplitude and frequency
+of any component feedinf that channel. A sinusoidal component should
+appear in four components (or three in the special case of a sinusoid
+exactly tuned to a bin.) Frequency output is in bins \, i.e. \, units
+of SR/N.;
+#X connect 1 0 19 0;
+#X connect 2 0 8 0;
+#X connect 3 0 2 0;
+#X connect 7 0 16 0;
+#X connect 7 1 16 1;
+#X connect 8 0 1 0;
+#X connect 9 0 10 0;
+#X connect 12 0 17 0;
+#X connect 12 0 18 0;
+#X connect 16 0 17 0;
+#X connect 16 1 18 0;
+#X connect 19 0 7 0;
diff --git a/pd/doc/5.reference/gatom.pd b/pd/doc/5.reference/gatom.pd
new file mode 100644
index 00000000..2dd7ce61
--- /dev/null
+++ b/pd/doc/5.reference/gatom.pd
@@ -0,0 +1,32 @@
+#N canvas 138 65 675 508 12;
+#X floatatom 107 9 0 0 0;
+#X text 155 10 atoms (number boxes);
+#X floatatom 38 85 0 0 0;
+#X floatatom 38 125 0 0 0;
+#X msg 51 260 set 45;
+#X floatatom 51 288 0 0 0;
+#X floatatom 51 317 0 0 0;
+#X text 84 40 Number boxes allow you to display numbers or to enter
+numbers using the mouse and keyboard. When a number arrives at the
+number box's inlet \, it is displayed and sent to the outlet. You can
+click on a number box and drag upward or downward to change the value
+continuously.;
+#X text 88 130 You can shift-click and drag to change the number by
+hundredths instead of units. Alt clicking toggles the value between
+0 and the last nonzero value.;
+#X text 83 184 You can also type in values by clicking and typing a
+number followed by "enter.";
+#X text 30 220 the "set" message sets the number box's value but does
+not send it to the outlet.;
+#X text 423 482 updated for Pd version 0.34;
+#X text 39 339 You can set the width of the box by right-clicking and
+choosing "properties." By default the width is 5 characters. If you
+select a width of 0 \, the number box will grow as needed to hold the
+number--BUT BEWARE \, THIS IS EXPENSIVE IN CPU TIME. In a production
+patch \, you'll want to set a specific width.;
+#X floatatom 547 439 1 0 0;
+#X text 41 438 A width of one gives a clickable toggle switch ala Max:
+;
+#X connect 2 0 3 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
diff --git a/pd/doc/5.reference/get.pd b/pd/doc/5.reference/get.pd
new file mode 100644
index 00000000..6784a6ce
--- /dev/null
+++ b/pd/doc/5.reference/get.pd
@@ -0,0 +1,46 @@
+#N struct help-get-template1 float x float y;
+#N canvas 293 5 629 429 12;
+#X text 13 325 see also:;
+#X obj 143 370 template;
+#X obj 84 345 set;
+#X obj 116 345 append;
+#X obj 175 345 getsize;
+#X obj 243 345 setsize;
+#X obj 311 345 element;
+#X obj 16 370 sublist;
+#X obj 84 370 scalar;
+#X msg 60 130 next;
+#N canvas 164 72 425 146 help-get-template1 0;
+#X obj 41 87 filledpolygon 9 0 1 0 0 20 0 20 30 0 30;
+#X obj 60 21 template float x float y;
+#X restore 376 234 pd help-get-template1;
+#N canvas 0 0 276 156 help-get-data 1;
+#X scalar help-get-template1 46 23 \;;
+#X scalar help-get-template1 106 73 \;;
+#X restore 376 212 pd help-get-data;
+#X obj 21 10 get;
+#X text 86 10 -- get values from a scalar;
+#X msg 45 102 traverse pd-help-get-data \, next;
+#X floatatom 45 214 5 0 0;
+#X floatatom 222 210 5 0 0;
+#X obj 45 157 pointer;
+#X text 337 101 output first scalar in list;
+#X text 103 129 output next item;
+#X text 21 277 If you have data whose template varies (from a heterogeneous
+list \, for example) you can use "pointer" to select according to template
+before sending to "get".;
+#X obj 45 185 get help-get-template1 x y;
+#X text 31 37 "Get" \, when sent a pointer to a scalar \, retrieves
+fields from it by name. The fields can be float or symbol. In the future
+this will also allow access to sublists of scalars.;
+#X text 293 167 First argument selects template.;
+#X text 294 182 Remaining args are names of fields.;
+#X text 41 233 x output;
+#X text 220 232 y output;
+#X obj 16 345 pointer;
+#X text 373 399 updated for Pd version 0.35;
+#X connect 9 0 17 0;
+#X connect 14 0 17 0;
+#X connect 17 0 21 0;
+#X connect 21 0 15 0;
+#X connect 21 1 16 0;
diff --git a/pd/doc/5.reference/getsize.pd b/pd/doc/5.reference/getsize.pd
new file mode 100644
index 00000000..f2b17e2f
--- /dev/null
+++ b/pd/doc/5.reference/getsize.pd
@@ -0,0 +1,41 @@
+#N struct help-getsize-template float x float y array array1 help-getsize-array1-template
+;
+#N struct help-getsize-array1-template float y;
+#N canvas 340 20 655 398 12;
+#X text 28 319 see also:;
+#X obj 25 339 template;
+#N canvas 393 10 491 261 help-getsize-template 0;
+#X obj 27 76 plot array1 500 1 10 15 20;
+#X obj 27 174 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10;
+#X obj 24 16 template float x float y array array1 help-getsize-array1-template
+;
+#X restore 338 311 pd help-getsize-template;
+#N canvas 0 0 301 193 help-getsize-data 1;
+#X scalar help-getsize-template 43 37 \; 0 \; 10 \; 0 \; 10 \; 20 \;
+10 \; 20 \; 70 \; 10 \; \;;
+#X restore 337 290 pd help-getsize-data;
+#N canvas 196 292 365 134 help-getsize-array1-template 0;
+#X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5;
+#X obj 32 27 template float y;
+#X restore 337 334 pd help-getsize-array1-template;
+#X obj 102 339 pointer;
+#X obj 236 338 setsize;
+#X obj 25 166 pointer;
+#X msg 25 142 traverse pd-help-getsize-data \, next;
+#X floatatom 25 242 5 0 0;
+#X text 360 214 arguments: template \, field name;
+#X text 76 240 here we just get the value of y.;
+#X obj 25 213 getsize help-getsize-template array1;
+#X text 34 192 inlet for pointer;
+#X obj 35 21 getsize;
+#X text 98 22 -- get number of elements of an array;
+#X text 24 44 When sent a pointer \, "element" looks up a field \,
+which should be an array \, and outputs the number of elements of the
+array. The template and field name are specified as creation arguments.
+;
+#X text 23 110 The smallest possible size is one.;
+#X obj 169 339 element;
+#X text 397 374 updated for Pd version 0.35;
+#X connect 7 0 12 0;
+#X connect 8 0 7 0;
+#X connect 12 0 9 0;
diff --git a/pd/doc/5.reference/graph.pd b/pd/doc/5.reference/graph.pd
new file mode 100644
index 00000000..1badaee3
--- /dev/null
+++ b/pd/doc/5.reference/graph.pd
@@ -0,0 +1,13 @@
+#N canvas 28 3 693 300 12;
+#X graph graph1 0 -1 99 1 188 290 338 190;
+#X array array99 100 float;
+#X pop;
+#X text 174 19 GRAPHS;
+#X text 20 42 A graph in Pd is a rectangular subregion of the window in
+which you can store numeric arrays.;
+#X text 19 140 You can change the array values by redrawing it in the graph.
+See also "11.arrays" and passim in the "control examples".;
+#X text 406 266 last updated for release 0.33;
+#X text 18 85 If you create a new array Pd will usually make a new graph
+to put it in (you can change this using the "array" dialog that pops up.)
+;
diff --git a/pd/doc/5.reference/hdial.pd b/pd/doc/5.reference/hdial.pd
new file mode 100644
index 00000000..006c0f8b
--- /dev/null
+++ b/pd/doc/5.reference/hdial.pd
@@ -0,0 +1,282 @@
+#N canvas 106 314 612 281 10;
+#X obj 1 1 cnv 8 100 60 empty empty hdial=hdl 20 20 1 18 -262144 -1109
+0;
+#X text 16 213 (c) musil@iem.kug.ac.at;
+#X text 58 226 IEM KUG;
+#X text 289 52 click properties to;
+#X text 277 63 modify geometry \, colors \, etc.;
+#X obj 356 172 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 355 124 s foo8_rcv;
+#X obj 356 150 r foo8_snd;
+#X obj 44 100 hdl 25 1 1 10 foo8_snd foo8_rcv hdial_0_9 156 -8 192
+10 -99865 -262144 -260818 2;
+#X msg 44 142 \$1;
+#X floatatom 44 164 4 0 0;
+#X obj 44 186 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 89 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 89 140 route 0 1 2 3 4 5 6 7 8 9;
+#X msg 176 64 set \$1;
+#X floatatom 176 43 4 0 9;
+#X floatatom 44 54 4 0 9;
+#X msg 91 41 7 0 -5.44;
+#X msg 95 63 3 3 4.55;
+#X obj 106 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 123 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
+1;
+#X obj 140 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 157 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 174 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 191 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 208 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 225 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 242 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 82 178 print;
+#X floatatom 380 198 4 0 0;
+#X msg 380 172 \$1;
+#X msg 355 103 set \$1;
+#X floatatom 355 82 4 0 9;
+#X text 128 178 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 127 189 for moving selected gui-objects;
+#N canvas 226 227 699 530 edit 0;
+#X obj 42 198 f;
+#X msg 20 177 bang;
+#X floatatom 58 176 3 63 156;
+#X floatatom 93 198 3 -20 37;
+#X obj 42 221 pack 0 0;
+#X text 120 198 y-label;
+#X text 86 176 x-label;
+#X floatatom 270 187 3 8 50;
+#X text 297 187 size;
+#X obj 286 293 f;
+#X msg 264 272 bang;
+#X floatatom 302 271 3 -10 10;
+#X floatatom 337 293 3 -10 10;
+#X obj 286 316 pack 0 0;
+#X obj 300 412 f;
+#X msg 278 391 bang;
+#X floatatom 316 390 3 20 60;
+#X floatatom 351 412 3 100 200;
+#X obj 300 435 pack 0 0;
+#X text 330 271 x-delta;
+#X text 364 293 y-delta;
+#X text 344 390 x-position;
+#X text 378 412 y-position;
+#X obj 62 313 f;
+#X msg 40 292 bang;
+#X floatatom 78 291 3 0 2;
+#X floatatom 113 313 3 4 36;
+#X obj 62 336 pack 0 0;
+#X text 106 291 font;
+#X text 142 313 height;
+#X text 504 293 no init;
+#X text 475 348 init value on loadbang;
+#X floatatom 482 228 5 2 20;
+#X msg 47 125 \; foo8_rcv color \$1 \$2 \$3;
+#X msg 42 246 \; foo8_rcv label_pos \$1 \$2;
+#X msg 62 361 \; foo8_rcv label_font \$1 \$2;
+#X msg 34 423 \; foo8_rcv label blabla;
+#X msg 300 460 \; foo8_rcv pos \$1 \$2;
+#X msg 286 341 \; foo8_rcv delta \$1 \$2;
+#X msg 270 216 \; foo8_rcv size \$1;
+#X msg 482 171 \; foo8a_rcv receive foo8_rcv;
+#X msg 483 133 \; foo8_rcv receive foo8a_rcv;
+#X msg 483 88 \; foo8_rcv send foo8_snd;
+#X msg 483 50 \; foo8_rcv send foo8a_snd;
+#X msg 483 312 \; foo8_rcv init 0;
+#X msg 485 366 \; foo8_rcv init 1;
+#X msg 490 436 \; foo8_rcv single_change;
+#X msg 490 470 \; foo8_rcv double_change;
+#X text 491 417 changing-behavior;
+#X msg 482 254 \; foo8_rcv number \$1;
+#X text 526 228 number of buttons;
+#X obj 47 104 pack 0 0 0;
+#X obj 47 76 f;
+#X msg 24 28 bang;
+#X floatatom 63 26 3 0 29;
+#X floatatom 79 46 3 0 29;
+#X floatatom 112 62 3 0 29;
+#X text 91 26 background;
+#X text 106 46 front-color;
+#X text 140 63 label-color;
+#X msg 285 25 back;
+#X msg 285 45 front;
+#X msg 285 65 label;
+#X msg 247 25 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 86 pd RGB_____________;
+#X floatatom 327 55 3 0 255;
+#X floatatom 370 55 3 0 255;
+#X floatatom 413 56 3 0 255;
+#X text 34 0 preset-colors;
+#X text 296 -3 RGB-colors;
+#X text 327 37 red;
+#X text 363 36 green;
+#X text 411 36 blue;
+#X msg 34 459 \; foo8_rcv label hdial_0_9;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 34 0;
+#X connect 7 0 39 0;
+#X connect 9 0 13 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 1;
+#X connect 12 0 13 1;
+#X connect 13 0 38 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 1;
+#X connect 17 0 18 1;
+#X connect 18 0 37 0;
+#X connect 23 0 27 0;
+#X connect 24 0 23 0;
+#X connect 25 0 23 1;
+#X connect 26 0 27 1;
+#X connect 27 0 35 0;
+#X connect 32 0 49 0;
+#X connect 51 0 33 0;
+#X connect 52 0 51 0;
+#X connect 53 0 52 0;
+#X connect 54 0 52 1;
+#X connect 55 0 51 1;
+#X connect 56 0 51 2;
+#X connect 60 0 64 0;
+#X connect 61 0 64 0;
+#X connect 62 0 64 0;
+#X connect 63 0 64 0;
+#X connect 64 0 51 0;
+#X connect 64 1 51 1;
+#X connect 64 2 51 2;
+#X connect 65 0 64 1;
+#X connect 66 0 64 2;
+#X connect 67 0 64 3;
+#X restore 469 108 pd edit;
+#X obj 346 35 hdl 15 1 0 8 eee eee empty 20 8 192 8 -262144 -1 -1 0
+;
+#X obj 260 11 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 183 11 gui-hdial:;
+#X text 33 238 graz \, austria 2002;
+#X text 251 232 updated for Pd version 0.35;
+#X connect 6 0 9 0;
+#X connect 8 0 5 0;
+#X connect 8 0 31 0;
+#X connect 9 0 10 0;
+#X connect 9 0 14 0;
+#X connect 9 0 29 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 14 0 13 0;
+#X connect 14 1 20 0;
+#X connect 14 2 21 0;
+#X connect 14 3 22 0;
+#X connect 14 4 23 0;
+#X connect 14 5 24 0;
+#X connect 14 6 25 0;
+#X connect 14 7 26 0;
+#X connect 14 8 27 0;
+#X connect 14 9 28 0;
+#X connect 15 0 9 0;
+#X connect 16 0 15 0;
+#X connect 17 0 9 0;
+#X connect 18 0 9 0;
+#X connect 19 0 9 0;
+#X connect 31 0 30 0;
+#X connect 32 0 7 0;
+#X connect 33 0 32 0;
diff --git a/pd/doc/5.reference/hip~.pd b/pd/doc/5.reference/hip~.pd
new file mode 100644
index 00000000..bc8c408d
--- /dev/null
+++ b/pd/doc/5.reference/hip~.pd
@@ -0,0 +1,31 @@
+#N canvas 21 5 556 324 12;
+#X obj 70 228 env~;
+#X floatatom 70 248;
+#X floatatom 107 178;
+#X obj 70 206 hip~ 5;
+#X text 119 201 The high pass filter is initialized to cutoff frequencies below 5 Hz.;
+#X obj 12 226 env~;
+#X floatatom 12 245;
+#X text 108 227 env~ gives the amplitude of the signal envelop in dB.;
+#X floatatom 12 107;
+#X msg 452 24 \; pd dsp 1;
+#X msg 452 58 \; pd dsp 0;
+#X obj 83 6 lop~;
+#X text 9 68 The left inlet is the incoming audio signal. The right inlet is the cutoff frequency in Hz.;
+#X obj 12 130 osc~ 100;
+#X text 57 105 <-- scroll to change input frequency;
+#X text 12 266 Compare the value of the original signal on the left with the value of the filtered signal on the right.;
+#X text 8 35 lop~ is a one-pole low pass filter with a specified rolloff frequency.;
+#X text 114 7 - one-pole low pass filter;
+#X msg 70 154 clear;
+#X text 114 153 <-- reinitialize internal state;
+#X text 139 179 <-- set cutoff frequency;
+#X text 361 306 updated for Pd version-0.30;
+#X connect 0 0 1 0;
+#X connect 2 0 3 1;
+#X connect 3 0 0 0;
+#X connect 5 0 6 0;
+#X connect 8 0 13 0;
+#X connect 13 0 5 0;
+#X connect 13 0 3 0;
+#X connect 18 0 3 0;
diff --git a/pd/doc/5.reference/hslider.pd b/pd/doc/5.reference/hslider.pd
new file mode 100644
index 00000000..80bd83a5
--- /dev/null
+++ b/pd/doc/5.reference/hslider.pd
@@ -0,0 +1,303 @@
+#N canvas 243 228 551 413 10;
+#X obj 1 1 cnv 8 100 60 empty empty hslider=hsl 20 20 1 18 -262144
+-1109 0;
+#X floatatom 38 127 9 0 0;
+#X msg 47 84 set \$1;
+#X floatatom 38 41 7 0 0;
+#X text 13 355 (c) musil@iem.kug.ac.at;
+#X text 55 368 IEM KUG;
+#X obj 38 149 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 18 41 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 41 107 hsl 101 15 25 75 0 1 foo1_snd foo1_rcv empty 8 -8 192
+10 -225280 -1109 -1 6200 1;
+#X text 174 11 gui-horicontal-slider:;
+#X floatatom 47 62 7 0 0;
+#X floatatom 116 150 9 0 0;
+#X obj 110 308 r goo2_snd;
+#X obj 145 248 s goo2_rcv;
+#X floatatom 105 40 7 0 0;
+#X floatatom 145 206 7 0 0;
+#X obj 60 170 print;
+#N canvas 276 200 290 224 once 0;
+#X obj 38 47 t b b f;
+#X msg 56 85 1;
+#X obj 31 108 f 0;
+#X obj 31 131 pack 0 0;
+#X obj 31 156 route 0;
+#X obj 38 24 inlet;
+#X obj 31 180 outlet;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 0 2 3 1;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 0;
+#X connect 5 0 0 0;
+#X restore 60 147 pd once;
+#X obj 40 265 hsl 73 15 55 3520 1 1 goo2_snd goo2_rcv log.freq. 8 -8
+192 10 -42246 -260818 -90133 1600 1;
+#X obj 37 308 ftom;
+#X floatatom 37 330 9 0 0;
+#X floatatom 64 287 9 0 0;
+#X floatatom 110 329 9 0 0;
+#X text 175 176 click properties to;
+#X floatatom 37 203 8 0 0;
+#X obj 37 226 mtof;
+#X text 12 184 --------------------;
+#X text 163 187 modify geometry \, colors \, etc.;
+#X obj 105 82 s foo1_rcv;
+#X obj 116 130 r foo1_snd;
+#X msg 105 61 set \$1;
+#X msg 145 227 set \$1;
+#X text 197 120 (0.01 pixels);
+#X text 183 99 shift-click & drag;
+#X text 189 109 for fine-tuning;
+#X text 148 270 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 147 281 for moving selected gui-objects;
+#N canvas 207 113 716 530 edit 0;
+#X obj 32 220 f;
+#X msg 10 199 bang;
+#X floatatom 48 198 3 63 88;
+#X floatatom 83 220 3 0 37;
+#X obj 32 243 pack 0 0;
+#X text 110 220 y-label;
+#X text 76 198 x-label;
+#X obj 279 246 f;
+#X msg 257 225 bang;
+#X floatatom 295 224 3 -10 10;
+#X floatatom 330 246 3 -10 10;
+#X obj 279 269 pack 0 0;
+#X obj 292 358 f;
+#X msg 270 337 bang;
+#X floatatom 308 336 3 20 60;
+#X floatatom 343 358 3 150 200;
+#X obj 292 381 pack 0 0;
+#X text 323 224 x-delta;
+#X text 357 246 y-delta;
+#X text 336 336 x-position;
+#X text 370 358 y-position;
+#X obj 52 335 f;
+#X msg 30 314 bang;
+#X floatatom 68 313 3 0 2;
+#X floatatom 103 335 3 4 36;
+#X obj 52 358 pack 0 0;
+#X text 96 313 font;
+#X text 132 335 height;
+#X floatatom 476 188 1 0 1;
+#X text 523 401 no init;
+#X text 493 453 init value on loadbang;
+#X msg 47 154 \; goo2_rcv color \$1 \$2 \$3;
+#X msg 32 268 \; goo2_rcv label_pos \$1 \$2;
+#X msg 52 383 \; goo2_rcv label_font \$1 \$2;
+#X msg 34 427 \; goo2_rcv label blabla;
+#X msg 292 406 \; goo2_rcv pos \$1 \$2;
+#X msg 279 294 \; goo2_rcv delta \$1 \$2;
+#X msg 475 21 \; goo2_rcv send goo2a_snd;
+#X msg 475 59 \; goo2_rcv send goo2_snd;
+#X msg 476 105 \; goo2_rcv receive goo2a_rcv;
+#X msg 476 143 \; goo2a_rcv receive goo2_rcv;
+#X msg 502 420 \; goo2_rcv init 0;
+#X msg 503 471 \; goo2_rcv init 1;
+#X text 520 188 steady;
+#X obj 486 291 f;
+#X msg 464 270 bang;
+#X floatatom 502 269 3 55 440;
+#X floatatom 537 291 6 440 3520;
+#X obj 486 314 pack 0 0;
+#X text 530 269 left-range-bound;
+#X text 586 291 right-range-bound;
+#X msg 486 339 \; goo2_rcv range \$1 \$2;
+#X msg 363 465 \; goo2_rcv log;
+#X msg 269 466 \; goo2_rcv lin;
+#X text 269 448 linear / logarithmical;
+#X obj 275 133 f;
+#X msg 250 112 bang;
+#X floatatom 291 111 3 15 73;
+#X floatatom 326 133 3 8 50;
+#X obj 275 156 pack 0 0;
+#X text 319 111 width;
+#X text 357 134 height;
+#X msg 275 181 \; goo2_rcv size \$1 \$2;
+#X msg 34 463 \; goo2_rcv label log.freq.;
+#X msg 476 212 \; goo2_rcv steady \$1;
+#X obj 47 100 pack 0 0 0;
+#X obj 47 72 f;
+#X msg 24 24 bang;
+#X floatatom 63 22 3 0 29;
+#X floatatom 79 42 3 0 29;
+#X floatatom 112 58 3 0 29;
+#X text 91 22 background;
+#X text 106 42 front-color;
+#X text 140 59 label-color;
+#X msg 277 22 back;
+#X msg 277 42 front;
+#X msg 277 62 label;
+#X msg 239 22 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 277 82 pd RGB_____________;
+#X floatatom 319 52 3 0 255;
+#X floatatom 362 52 3 0 255;
+#X floatatom 405 53 3 0 255;
+#X text 34 -1 preset-colors;
+#X text 290 1 RGB-colors;
+#X text 319 34 red;
+#X text 355 33 green;
+#X text 403 33 blue;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 32 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 36 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 35 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 33 0;
+#X connect 28 0 64 0;
+#X connect 44 0 48 0;
+#X connect 45 0 44 0;
+#X connect 46 0 44 1;
+#X connect 47 0 48 1;
+#X connect 48 0 51 0;
+#X connect 55 0 59 0;
+#X connect 56 0 55 0;
+#X connect 57 0 55 1;
+#X connect 58 0 59 1;
+#X connect 59 0 62 0;
+#X connect 65 0 31 0;
+#X connect 66 0 65 0;
+#X connect 67 0 66 0;
+#X connect 68 0 66 1;
+#X connect 69 0 65 1;
+#X connect 70 0 65 2;
+#X connect 74 0 78 0;
+#X connect 75 0 78 0;
+#X connect 76 0 78 0;
+#X connect 77 0 78 0;
+#X connect 78 0 65 0;
+#X connect 78 1 65 1;
+#X connect 78 2 65 2;
+#X connect 79 0 78 1;
+#X connect 80 0 78 2;
+#X connect 81 0 78 3;
+#X restore 314 245 pd edit;
+#X obj 221 61 hsl 128 15 0 127 0 0 ddd ddd empty 20 8 192 8 -262144
+-1 -1 10600 1;
+#X text 187 379 updated for Pd version 0.35;
+#X text 30 380 graz \, austria 2002;
+#X obj 168 34 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 1 0 6 0;
+#X connect 2 0 8 0;
+#X connect 3 0 8 0;
+#X connect 7 0 8 0;
+#X connect 8 0 1 0;
+#X connect 8 0 17 0;
+#X connect 10 0 2 0;
+#X connect 12 0 22 0;
+#X connect 14 0 30 0;
+#X connect 15 0 31 0;
+#X connect 17 0 16 0;
+#X connect 18 0 21 0;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 24 0 25 0;
+#X connect 25 0 18 0;
+#X connect 29 0 11 0;
+#X connect 30 0 28 0;
+#X connect 31 0 13 0;
diff --git a/pd/doc/5.reference/int.pd b/pd/doc/5.reference/int.pd
new file mode 100644
index 00000000..6b6de2f6
--- /dev/null
+++ b/pd/doc/5.reference/int.pd
@@ -0,0 +1,24 @@
+#N canvas 4 30 605 319 12;
+#X msg 61 101 bang;
+#X floatatom 61 248 0 0 0;
+#X floatatom 73 125 0 0 0;
+#X floatatom 102 198 0 0 0;
+#X text 108 97 outputs the value;
+#X text 110 126 sets and outputs the value;
+#X text 113 220 creation argument initializes the value;
+#X obj 61 222 int 6;
+#X msg 73 148 9.6;
+#X text 106 148 non-integers get truncated;
+#X msg 71 173 -9.6;
+#X text 113 173 toward zero;
+#X text 136 200 set the value but no output;
+#X obj 60 11 int;
+#X text 108 12 - STORE AN INTEGER;
+#X text 37 33 The int object stores a number \, initialized by its creation argument \, which may be reset using its inlet and output by sending it the "bang" message. The output is truncated to an integer ala Max.;
+#X text 315 270 updated for Pd version 0.33;
+#X connect 0 0 7 0;
+#X connect 2 0 7 0;
+#X connect 3 0 7 1;
+#X connect 7 0 1 0;
+#X connect 8 0 7 0;
+#X connect 10 0 7 0;
diff --git a/pd/doc/5.reference/key.pd b/pd/doc/5.reference/key.pd
new file mode 100644
index 00000000..ceab4440
--- /dev/null
+++ b/pd/doc/5.reference/key.pd
@@ -0,0 +1,19 @@
+#N canvas 243 41 464 286 12;
+#X obj 21 10 key;
+#X obj 48 10 keyup;
+#X obj 89 9 keyname;
+#X text 157 8 -- grab keyboard;
+#X obj 38 67 key;
+#X floatatom 38 95 3 0 0;
+#X floatatom 75 95 3 0 0;
+#X obj 75 69 keyup;
+#X floatatom 122 97 3 0 0;
+#X obj 122 71 keyname;
+#X symbolatom 166 98 10 0 0;
+#X text 254 256 updated for Pd version 0.32.;
+#X text 32 143 Key and keyup report the (system dependent) numbers of "printing" keys of the keyboard. Keyname gives the symbolic name of the key \, with a 1 or 0 if it's up or down \, and works with non-printing keys like shift or "F1".;
+#X text 33 203 Caveat -- this only works if Pd actually gets the key events which can depend on the stacking order of windows and/or the pointer location \, depending on the system.;
+#X connect 4 0 5 0;
+#X connect 7 0 6 0;
+#X connect 9 0 8 0;
+#X connect 9 1 10 0;
diff --git a/pd/doc/5.reference/line.pd b/pd/doc/5.reference/line.pd
new file mode 100644
index 00000000..31392b86
--- /dev/null
+++ b/pd/doc/5.reference/line.pd
@@ -0,0 +1,22 @@
+#N canvas 31 15 486 368 12;
+#X floatatom 22 323;
+#X msg 31 216 0 1000;
+#X msg 46 238 39;
+#X obj 66 15 line;
+#X text 106 14 - ramp generator;
+#X obj 22 297 line 100;
+#X text 88 292 creation argument sets time increment. In this implementation you can't set this dtnamically.;
+#X msg 22 193 1 1000;
+#X text 18 36 The line object takes (target \, time) pairs and slews to the specified target over the time given \, updating its output at a "grain rate" given by the creation argument. If you dont' specify a time \, line jumps immediately to the target. Note that the inlet does not remember old values (unlike every other inlet in Pd) -- sending a float causes a jump in the output regardless of whatever time value was specified in some previous message. If the line object receives a message specifying some new target before reaching the previous one \, it takes off from its current value.;
+#X text 93 205 send a pair to ramp to a new value;
+#X text 105 235 send a single number to jump;
+#X text 46 347 see also:;
+#X obj 120 347 line~;
+#X msg 57 263 stop;
+#X text 98 262 "stop" message to stop output;
+#X text 273 348 updated for Pd version 0.27;
+#X connect 1 0 5 0;
+#X connect 2 0 5 0;
+#X connect 5 0 0 0;
+#X connect 7 0 5 0;
+#X connect 13 0 5 0;
diff --git a/pd/doc/5.reference/line~.pd b/pd/doc/5.reference/line~.pd
new file mode 100644
index 00000000..7b470c2d
--- /dev/null
+++ b/pd/doc/5.reference/line~.pd
@@ -0,0 +1,33 @@
+#N canvas 121 54 813 370 12;
+#X obj 33 301 snapshot~;
+#X obj 21 8 line~;
+#X obj 33 226 line~;
+#X floatatom 33 324 0 0 0;
+#X obj 43 274 metro 100;
+#X obj 43 249 r start;
+#X msg 550 21 \; pd dsp 1 \; start bang;
+#X msg 34 106 1 1000;
+#X text 89 105 a pair of numbers starts a ramp;
+#X msg 60 176 2;
+#X text 91 150 a single number jumps to value;
+#X msg 61 200 stop;
+#X text 104 199 "stop" message freezes line~ at its current value;
+#X msg 60 153 0;
+#X msg 43 128 0 5000;
+#X text 10 28 The line~ object generates linear ramps whose levels and timing are determined by messages you send it. The messages may be a single target value (causing the output to jump to the target) or a target and a time in milliseconds (to start a new ramp.);
+#X text 644 36 Click to start;
+#X text 639 94 Click to stop;
+#X text 185 300 see also:;
+#X obj 271 302 line;
+#X msg 550 75 \; pd dsp 0 \; start 0;
+#X text 75 7 - audio ramp generator;
+#X text 576 335 updated for version 0.33;
+#X connect 0 0 3 0;
+#X connect 2 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
+#X connect 7 0 2 0;
+#X connect 9 0 2 0;
+#X connect 11 0 2 0;
+#X connect 13 0 2 0;
+#X connect 14 0 2 0;
diff --git a/pd/doc/5.reference/lop~.pd b/pd/doc/5.reference/lop~.pd
new file mode 100644
index 00000000..9f3e85f8
--- /dev/null
+++ b/pd/doc/5.reference/lop~.pd
@@ -0,0 +1,31 @@
+#N canvas 402 99 566 329 12;
+#X obj 70 228 env~;
+#X floatatom 70 248;
+#X floatatom 107 178;
+#X obj 70 206 hip~ 5;
+#X text 119 201 The high pass filter is initialized to cutoff frequencies below 5 Hz.;
+#X obj 12 226 env~;
+#X floatatom 12 245;
+#X text 108 227 env~ gives the amplitude of the signal envelop in dB.;
+#X floatatom 12 107;
+#X msg 452 24 \; pd dsp 1;
+#X msg 452 58 \; pd dsp 0;
+#X obj 83 6 lop~;
+#X text 9 68 The left inlet is the incoming audio signal. The right inlet is the cutoff frequency in Hz.;
+#X obj 12 130 osc~ 100;
+#X text 57 105 <-- scroll to change input frequency;
+#X text 12 266 Compare the value of the original signal on the left with the value of the filtered signal on the right.;
+#X text 8 35 lop~ is a one-pole low pass filter with a specified rolloff frequency.;
+#X text 114 7 - one-pole low pass filter;
+#X msg 70 154 clear;
+#X text 114 153 <-- reinitialize internal state;
+#X text 139 179 <-- set cutoff frequency;
+#X text 364 306 updated for Pd version-0.30;
+#X connect 0 0 1 0;
+#X connect 2 0 3 1;
+#X connect 3 0 0 0;
+#X connect 5 0 6 0;
+#X connect 8 0 13 0;
+#X connect 13 0 5 0;
+#X connect 13 0 3 0;
+#X connect 18 0 3 0;
diff --git a/pd/doc/5.reference/makefilename.pd b/pd/doc/5.reference/makefilename.pd
new file mode 100644
index 00000000..6850699b
--- /dev/null
+++ b/pd/doc/5.reference/makefilename.pd
@@ -0,0 +1,17 @@
+#N canvas 18 58 583 301 12;
+#X floatatom 30 169 0 0 0;
+#X obj 30 223 print;
+#X obj 30 196 makefilename dog%d.aif;
+#X msg 245 166 symbol meat;
+#X msg 355 167 symbol hair;
+#X obj 245 223 print;
+#X obj 245 196 makefilename dog%s.aif;
+#X text 28 49 The Makefilename object generates symbols according to a format string \, for use as a series of filenames \, table names \, or whatnot. You can plug in a variable number or symbol by putting "%d" or "%s" in the string. If you put "%s" in the string be sure to send it a symbol and vice versa... there's no checking.;
+#X text 319 257 updated for Pd version 0.33;
+#X obj 49 17 makefilename;
+#X text 170 18 - format a "name" with a variable field;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 3 0 6 0;
+#X connect 4 0 6 0;
+#X connect 6 0 5 0;
diff --git a/pd/doc/5.reference/makenote.pd b/pd/doc/5.reference/makenote.pd
new file mode 100644
index 00000000..e3d003fc
--- /dev/null
+++ b/pd/doc/5.reference/makenote.pd
@@ -0,0 +1,26 @@
+#N canvas 39 28 663 385 12;
+#X floatatom 180 207 0 0 0;
+#X floatatom 110 176 0 0 0;
+#X msg 48 127 60;
+#X obj 41 262 print x1;
+#X obj 180 262 print x2;
+#X floatatom 41 104 0 0 0;
+#X obj 29 14 makenote;
+#X text 113 14 - send note-on messages and schedule note-off for later;
+#X text 19 41 Makenote makes MIDI-style note-on/note-off pairs \, which you can use for MIDI output or to drive note-like processes within Pd.;
+#X msg 48 153 60.5;
+#X text 80 105 numbers at left are "pitches" which may be integers or not.;
+#X text 146 178 "velocity";
+#X text 215 210 duration in milliseconds;
+#X obj 41 235 makenote 3.2 500;
+#X text 193 235 creation arguments initialize velocity and duration;
+#X text 38 316 see also;
+#X obj 117 316 stripnote;
+#X text 389 325 updated for Pd version 0.33;
+#X connect 0 0 13 2;
+#X connect 1 0 13 1;
+#X connect 2 0 13 0;
+#X connect 5 0 13 0;
+#X connect 9 0 13 0;
+#X connect 13 0 3 0;
+#X connect 13 1 4 0;
diff --git a/pd/doc/5.reference/math.pd b/pd/doc/5.reference/math.pd
new file mode 100644
index 00000000..5464b8aa
--- /dev/null
+++ b/pd/doc/5.reference/math.pd
@@ -0,0 +1,60 @@
+#N canvas 0 0 554 555 12;
+#X floatatom 283 263 0 0 0;
+#X floatatom 226 349 0 0 0;
+#X floatatom 226 262 0 0 0;
+#X floatatom 281 486 0 0 0;
+#X floatatom 281 425 0 0 0;
+#X floatatom 185 486 0 0 0;
+#X floatatom 185 425 0 0 0;
+#X floatatom 117 486 0 0 0;
+#X floatatom 117 425 0 0 0;
+#X floatatom 117 326 0 0 0;
+#X floatatom 117 265 0 0 0;
+#X floatatom 30 486 0 0 0;
+#X floatatom 30 425 0 0 0;
+#X floatatom 218 186 0 0 0;
+#X floatatom 135 182 0 0 0;
+#X obj 66 146 sin;
+#X floatatom 66 53 0 0 0;
+#X floatatom 66 180 0 0 0;
+#X obj 66 113 * 6.28319;
+#X obj 66 83 / 360;
+#X obj 135 148 cos;
+#X obj 218 152 tan;
+#X obj 30 456 sqrt;
+#X obj 117 296 atan;
+#X obj 117 456 log;
+#X obj 185 456 exp;
+#X obj 281 456 abs;
+#X obj 226 290 float;
+#X obj 283 290 t b f;
+#X obj 226 319 atan2;
+#X text 87 17 Higher math in Pd;
+#X text 171 58 trig functions take inputs in radians;
+#X text 24 213 The arc tangent takes two forms. The atan2 version takes an (x \, y) pair and gives you an output between -pi and pi.;
+#X text 23 380 also \, square root \, natural logarithm and exponential \, and absolute value:;
+#X text 292 529 updated for Pd version 0.33;
+#X connect 0 0 28 0;
+#X connect 2 0 27 0;
+#X connect 4 0 26 0;
+#X connect 6 0 25 0;
+#X connect 8 0 24 0;
+#X connect 10 0 23 0;
+#X connect 12 0 22 0;
+#X connect 15 0 17 0;
+#X connect 16 0 19 0;
+#X connect 18 0 15 0;
+#X connect 18 0 20 0;
+#X connect 18 0 21 0;
+#X connect 19 0 18 0;
+#X connect 20 0 14 0;
+#X connect 21 0 13 0;
+#X connect 22 0 11 0;
+#X connect 23 0 9 0;
+#X connect 24 0 7 0;
+#X connect 25 0 5 0;
+#X connect 26 0 3 0;
+#X connect 27 0 29 0;
+#X connect 28 0 27 0;
+#X connect 28 1 29 1;
+#X connect 29 0 1 0;
diff --git a/pd/doc/5.reference/message.pd b/pd/doc/5.reference/message.pd
new file mode 100644
index 00000000..13a74f55
--- /dev/null
+++ b/pd/doc/5.reference/message.pd
@@ -0,0 +1,46 @@
+#N canvas 0 365 726 512 12;
+#X msg 88 13 message boxes;
+#X text 55 36 Message boxes hold one or more message. Anytime the message
+box receives any message at all \, the messages in the box are all
+sent to their destinations.;
+#X obj 178 301 print;
+#X msg 178 241 60 64;
+#X msg 178 271 pitch \$1 \, velocity \$2;
+#X msg 49 378 123 \; my-receiver-name 858 \; another-receiver -45;
+#X text 55 84 Clicking on a message also sends it \, so you can use
+messsage boxes for push buttins. For instance \, click here while watching
+the printout window:;
+#X msg 164 141 walk the dog;
+#X obj 164 170 print;
+#X text 281 141 <--- message;
+#X text 265 167 <--- object (different border);
+#X text 35 200 You can separate multiple messages by commas. Also \,
+you can use "$1" \, "$2" \, etc. to make variable messages:;
+#X text 14 323 Finally \, if you separate messages by a semicolon instead
+of a comma \, the following message(s) are re-routed to named objects
+such as "receives":;
+#X obj 49 433 print;
+#X obj 253 378 receive my-receiver-name;
+#X floatatom 253 402 0 0 0;
+#X floatatom 252 449 0 0 0;
+#X obj 252 425 receive another-receiver;
+#X msg 559 349 dog bird monkey \; monkey \;;
+#X msg 559 229 set dog;
+#X msg 567 252 set cat;
+#X text 593 189 this is;
+#X text 592 206 arcane:;
+#X msg 576 303 add monkey;
+#X msg 581 327 add2 bird;
+#X msg 573 277 set;
+#X text 415 479 updated for Pd version 0.34;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 5 0 13 0;
+#X connect 7 0 8 0;
+#X connect 14 0 15 0;
+#X connect 17 0 16 0;
+#X connect 19 0 18 0;
+#X connect 20 0 18 0;
+#X connect 23 0 18 0;
+#X connect 24 0 18 0;
+#X connect 25 0 18 0;
diff --git a/pd/doc/5.reference/metro.pd b/pd/doc/5.reference/metro.pd
new file mode 100644
index 00000000..f848e582
--- /dev/null
+++ b/pd/doc/5.reference/metro.pd
@@ -0,0 +1,29 @@
+#N canvas 39 7 634 372 12;
+#X text 19 36 The metro object sends a series of bangs at a constant rate. The right inlet takes the value in milliseconds between each bang. The left inlet takes a 1 or 0 \, turning the metronome on or off.;
+#X obj 67 285 + 1;
+#X obj 32 284 int;
+#X floatatom 32 317 4 0 0;
+#X obj 32 243 metro 500;
+#X obj 5 6 metro;
+#X floatatom 81 220 4 0 0;
+#X text 104 282 These objects work together as a counter. For each bang sent by metro \, the output adds 1;
+#X obj 32 103 loadbang;
+#X msg 32 125 1;
+#X text 92 135 nonzero number or "bang" to start;
+#X msg 49 172 0;
+#X msg 38 148 bang;
+#X msg 49 194 stop;
+#X text 99 181 zero or "stop" to stop.;
+#X text 351 332 Updated for Pd version 0.33;
+#X text 130 220 right inlet sets the rate in msec per tick.;
+#X text 127 243 creation argument initializes rate in msec;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 2 0 1 0;
+#X connect 4 0 2 0;
+#X connect 6 0 4 1;
+#X connect 8 0 9 0;
+#X connect 9 0 4 0;
+#X connect 11 0 4 0;
+#X connect 12 0 4 0;
+#X connect 13 0 4 0;
diff --git a/pd/doc/5.reference/midi.pd b/pd/doc/5.reference/midi.pd
new file mode 100644
index 00000000..4b731688
--- /dev/null
+++ b/pd/doc/5.reference/midi.pd
@@ -0,0 +1,129 @@
+#N canvas 68 50 876 553 12;
+#X floatatom 318 379 0 0 0;
+#X floatatom 282 468 0 0 0;
+#X floatatom 200 469 0 0 0;
+#X text 96 330 off;
+#X floatatom 52 383 0 0 0;
+#X floatatom 70 134 0 0 0;
+#X obj 34 108 notein;
+#X floatatom 34 134 0 0 0;
+#X obj 52 488 noteout;
+#X obj 52 462 makenote 64 250;
+#X obj 52 409 metro 500;
+#X msg 52 356 1;
+#X msg 84 356 0;
+#X text 52 333 on;
+#X msg 52 436 60;
+#X obj 200 496 pgmout;
+#X obj 282 494 bendout;
+#X floatatom 416 379 0 0 0;
+#X floatatom 197 136 0 0 0;
+#X floatatom 145 136 0 0 0;
+#X text 41 79 omni;
+#X floatatom 106 134 0 0 0;
+#X obj 145 109 notein 1;
+#X text 145 85 channel 1;
+#X text 194 17 MIDI I/O objects;
+#X text 85 54 notes;
+#X text 334 47 control change;
+#X text 264 69 everything;
+#X floatatom 309 137 0 0 0;
+#X floatatom 271 137 0 0 0;
+#X floatatom 347 136 0 0 0;
+#X obj 271 110 ctlin;
+#X floatatom 440 138 0 0 0;
+#X floatatom 396 138 0 0 0;
+#X obj 396 111 ctlin 7;
+#X text 364 71 specific controller number;
+#X text 410 88 omni;
+#X text 496 89 channel 1;
+#X floatatom 493 140 0 0 0;
+#X obj 493 114 ctlin 7 1;
+#X obj 61 221 pgmin;
+#X floatatom 97 248 0 0 0;
+#X floatatom 61 248 0 0 0;
+#X floatatom 197 250 0 0 0;
+#X floatatom 161 250 0 0 0;
+#X floatatom 307 253 0 0 0;
+#X floatatom 272 253 0 0 0;
+#X floatatom 382 255 0 0 0;
+#X floatatom 343 253 0 0 0;
+#X floatatom 420 256 0 0 0;
+#X obj 161 222 bendin;
+#X obj 272 226 touchin;
+#X obj 343 227 polytouchin;
+#X text 49 167 these can also take an optional channel number as argument but by default are omni:;
+#X text 32 197 program change;
+#X text 155 198 pitch bend;
+#X text 271 203 channel and poly aftertouch;
+#X floatatom 191 380 0 0 0;
+#X floatatom 224 380 0 0 0;
+#X floatatom 260 382 0 0 0;
+#X obj 191 407 ctlout;
+#X obj 318 406 ctlout 7;
+#X text 192 349 control out;
+#X text 314 353 control 7;
+#X text 409 354 control 7 \, channel 4;
+#X obj 416 406 ctlout 7 4;
+#X text 101 277 outputs work similarly. They all take an optional channel as creation argument \, and ctlin takes a control number and a channel. You get inlets to change them in any case. IF you specify no channel \, it's channel 1;
+#X floatatom 355 467 0 0 0;
+#X floatatom 440 466 0 0 0;
+#X obj 355 493 touchout;
+#X obj 440 492 polytouchout;
+#X floatatom 479 467 0 0 0;
+#X floatatom 520 467 0 0 0;
+#X obj 625 218 midiin;
+#X floatatom 625 249 0 0 0;
+#X floatatom 656 249 0 0 0;
+#X floatatom 695 249 0 0 0;
+#X floatatom 726 250 0 0 0;
+#X text 590 155 These two are always omni and;
+#X text 590 174 output the port number instead;
+#X text 594 192 of the channel:;
+#X obj 697 218 sysexin;
+#X obj 623 472 midiout;
+#X text 571 413 use this to output raw MIDI;
+#X text 566 433 (the second inlet is the port;
+#X text 569 451 number.);
+#X text 625 514 updated for Pd release 0.33;
+#X connect 0 0 61 0;
+#X connect 1 0 16 0;
+#X connect 2 0 15 0;
+#X connect 4 0 10 0;
+#X connect 6 0 7 0;
+#X connect 6 1 5 0;
+#X connect 6 2 21 0;
+#X connect 9 0 8 0;
+#X connect 9 1 8 1;
+#X connect 10 0 14 0;
+#X connect 11 0 4 0;
+#X connect 12 0 4 0;
+#X connect 14 0 9 0;
+#X connect 17 0 65 0;
+#X connect 22 0 19 0;
+#X connect 22 1 18 0;
+#X connect 31 0 29 0;
+#X connect 31 1 28 0;
+#X connect 31 2 30 0;
+#X connect 34 0 33 0;
+#X connect 34 1 32 0;
+#X connect 39 0 38 0;
+#X connect 40 0 42 0;
+#X connect 40 1 41 0;
+#X connect 50 0 44 0;
+#X connect 50 1 43 0;
+#X connect 51 0 46 0;
+#X connect 51 1 45 0;
+#X connect 52 0 48 0;
+#X connect 52 1 47 0;
+#X connect 52 2 49 0;
+#X connect 57 0 60 0;
+#X connect 58 0 60 1;
+#X connect 59 0 60 2;
+#X connect 67 0 69 0;
+#X connect 68 0 70 0;
+#X connect 71 0 70 1;
+#X connect 72 0 70 2;
+#X connect 73 0 74 0;
+#X connect 73 1 75 0;
+#X connect 81 0 76 0;
diff --git a/pd/doc/5.reference/moses.pd b/pd/doc/5.reference/moses.pd
new file mode 100644
index 00000000..c1f23c90
--- /dev/null
+++ b/pd/doc/5.reference/moses.pd
@@ -0,0 +1,17 @@
+#N canvas 0 0 624 300 12;
+#X obj 72 196 moses 10;
+#X floatatom 72 164 4 0 0;
+#X floatatom 139 167 4 0 0;
+#X floatatom 72 229 4 0 0;
+#X floatatom 139 230 4 0 0;
+#X obj 63 24 moses;
+#X text 118 23 - part a stream of numbers;
+#X text 303 235 updated for Pd version 0.33;
+#X text 24 64 Moses takes numbers and outputs them at left if they're
+less than a control value \, and at right if they're greater or equal
+to it. The creation argument initializes the control value (10 in this
+example) and the right inlet changes it.;
+#X connect 0 0 3 0;
+#X connect 0 1 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
diff --git a/pd/doc/5.reference/my_canvas.pd b/pd/doc/5.reference/my_canvas.pd
new file mode 100644
index 00000000..decda628
--- /dev/null
+++ b/pd/doc/5.reference/my_canvas.pd
@@ -0,0 +1,243 @@
+#N canvas 482 81 568 339 10;
+#X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 63 37 192
+17 -257472 -355 0;
+#X text 4 232 (c) musil@iem.kug.ac.at;
+#X text 46 245 IEM KUG;
+#N canvas 219 100 699 530 edit 0;
+#X obj 39 226 f;
+#X msg 17 205 bang;
+#X floatatom 55 204 3 63 88;
+#X floatatom 90 226 3 0 37;
+#X obj 39 249 pack 0 0;
+#X text 117 226 y-label;
+#X text 83 204 x-label;
+#X obj 297 281 f;
+#X msg 275 260 bang;
+#X floatatom 313 259 3 -10 10;
+#X floatatom 348 281 3 -10 10;
+#X obj 297 304 pack 0 0;
+#X obj 309 396 f;
+#X msg 287 375 bang;
+#X floatatom 325 374 3 20 60;
+#X floatatom 360 396 3 150 200;
+#X obj 309 419 pack 0 0;
+#X text 341 259 x-delta;
+#X text 375 281 y-delta;
+#X text 353 374 x-position;
+#X text 387 396 y-position;
+#X obj 59 341 f;
+#X msg 37 320 bang;
+#X floatatom 75 319 3 0 2;
+#X floatatom 110 341 3 4 36;
+#X obj 59 364 pack 0 0;
+#X text 103 319 font;
+#X text 139 341 height;
+#X floatatom 275 183 3 2 20;
+#X msg 52 137 \; foo10_rcv color \$1 \$2;
+#X msg 39 274 \; foo10_rcv label_pos \$1 \$2;
+#X msg 59 390 \; foo10_rcv label_font \$1 \$2;
+#X msg 36 430 \; foo10_rcv label blabla;
+#X msg 36 466 \; foo10_rcv label my_canvas;
+#X msg 309 444 \; foo10_rcv pos \$1 \$2;
+#X msg 297 329 \; foo10_rcv delta \$1 \$2;
+#X obj 505 234 f;
+#X msg 483 213 bang;
+#X floatatom 521 212 5 100 1000;
+#X floatatom 556 234 4 50 500;
+#X obj 505 257 pack 0 0;
+#X text 566 212 width;
+#X text 594 236 height;
+#X msg 505 282 \; foo10_rcv vis_size \$1 \$2;
+#X msg 275 211 \; foo10_rcv size \$1;
+#X text 305 183 selectable size;
+#X msg 483 156 \; foo10a_rcv receive foo10_rcv;
+#X msg 483 119 \; foo10_rcv receive foo10a_rcv;
+#X msg 482 29 \; foo10_rcv send foo10a_snd;
+#X msg 482 67 \; foo10_rcv send foo10_snd;
+#X msg 509 372 \; foo10_rcv get_pos;
+#X obj 510 407 r foo10_snd;
+#X obj 510 428 unpack 0 0;
+#X floatatom 510 453 4 0 0;
+#X floatatom 575 452 4 0 0;
+#X text 490 452 x=;
+#X text 557 452 y=;
+#X obj 52 79 f;
+#X msg 29 31 bang;
+#X floatatom 68 29 3 0 29;
+#X floatatom 103 47 3 0 29;
+#X text 96 29 background;
+#X text 131 48 label-color;
+#X msg 290 25 back;
+#X msg 290 49 label;
+#X msg 252 25 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 97 135 route back label bang;
+#X obj 235 168 t b b b;
+#X connect 0 0 29 0;
+#X connect 1 0 25 0;
+#X connect 2 0 26 0;
+#X connect 3 0 27 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 11 1;
+#X connect 6 0 10 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 1;
+#X connect 9 0 11 1;
+#X connect 10 0 24 1;
+#X connect 11 0 23 1;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 19 1 20 1;
+#X connect 20 0 28 0;
+#X connect 22 0 6 0;
+#X connect 23 0 21 0;
+#X connect 24 0 12 0;
+#X connect 25 0 20 0;
+#X connect 26 0 18 0;
+#X connect 27 0 17 0;
+#X connect 28 0 11 0;
+#X connect 28 0 10 0;
+#X connect 29 0 4 0;
+#X connect 29 1 7 0;
+#X connect 29 2 30 0;
+#X connect 30 0 24 0;
+#X connect 30 1 23 0;
+#X connect 30 2 28 0;
+#X restore 290 86 pd RGB_____________;
+#X floatatom 332 55 3 0 255;
+#X floatatom 375 55 3 0 255;
+#X floatatom 418 56 3 0 255;
+#X text 39 3 preset-colors;
+#X text 301 0 RGB-colors;
+#X text 332 37 red;
+#X text 368 36 green;
+#X text 416 36 blue;
+#X obj 52 104 pack 0 0;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 30 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 35 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 34 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 31 0;
+#X connect 28 0 44 0;
+#X connect 36 0 40 0;
+#X connect 37 0 36 0;
+#X connect 38 0 36 1;
+#X connect 39 0 40 1;
+#X connect 40 0 43 0;
+#X connect 51 0 52 0;
+#X connect 52 0 53 0;
+#X connect 52 1 54 0;
+#X connect 57 0 75 0;
+#X connect 58 0 57 0;
+#X connect 59 0 57 1;
+#X connect 60 0 75 1;
+#X connect 63 0 66 0;
+#X connect 64 0 66 0;
+#X connect 65 0 66 0;
+#X connect 66 0 75 0;
+#X connect 66 1 75 1;
+#X connect 67 0 66 1;
+#X connect 68 0 66 2;
+#X connect 69 0 66 3;
+#X connect 75 0 29 0;
+#X restore 305 20 pd edit;
+#X floatatom 110 193 4 0 0;
+#X floatatom 147 193 4 0 0;
+#X text 121 209 x;
+#X text 158 209 y;
+#X obj 7 161 metro 100;
+#X obj 33 141 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1
+1;
+#X obj 110 145 r from_K1;
+#X floatatom 188 194 4 0 0;
+#X floatatom 225 194 4 0 0;
+#X text 198 210 x;
+#X text 236 210 y;
+#X obj 188 146 r from_K2;
+#X msg 7 185 \; to_K get_pos;
+#N canvas 0 296 395 395 room 1;
+#X obj 1 1 cnv 1 400 400 empty empty type...ctrl+e 150 140 2 17 -33289
+-24198 0;
+#X obj 15 16 cnv 1 1 360 empty empty move_K1_and_K2 115 160 2 17 -166441
+-24198 0;
+#X obj 374 15 cnv 1 1 360 empty empty empty 20 12 2 20 -99865 -66577
+0;
+#X obj 15 15 cnv 1 360 1 empty empty empty 20 12 2 20 -166441 -66577
+0;
+#X obj 17 375 cnv 1 358 1 empty empty empty 20 12 2 20 -99865 -66577
+0;
+#X obj 23 22 cnv 25 25 25 from_K1 to_K K1 1 13 194 14 -261681 -123526
+0;
+#X obj 342 342 cnv 25 25 25 from_K2 to_K K2 1 13 194 14 -225280 -1109
+0;
+#X restore 307 147 pd room;
+#X obj 110 169 unpack;
+#X obj 188 170 unpack;
+#X text 51 92 to modify geometry \, colors \, etc.;
+#X obj 2 115 cnv 1 470 1 empty empty empty 20 12 2 20 -261681 -66577
+0;
+#X text 40 78 of the light-blue;
+#X text 166 78 my_canvas-object \,;
+#X text 5 64 click the properties-dialog on the top-left corner;
+#X obj 361 195 r foo10_rcv;
+#X obj 403 215 s ggg;
+#X text 172 257 updated for Pd version 0.35;
+#X text 21 257 graz \, austria 2002;
+#X obj 187 236 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 8 0 16 0;
+#X connect 9 0 8 0;
+#X connect 10 0 18 0;
+#X connect 15 0 19 0;
+#X connect 18 0 4 0;
+#X connect 18 1 5 0;
+#X connect 19 0 11 0;
+#X connect 19 1 12 0;
+#X connect 25 0 26 0;
diff --git a/pd/doc/5.reference/namecanvas.pd b/pd/doc/5.reference/namecanvas.pd
new file mode 100644
index 00000000..4c408bcb
--- /dev/null
+++ b/pd/doc/5.reference/namecanvas.pd
@@ -0,0 +1,8 @@
+#N canvas 38 53 532 261 12;
+#X obj 66 15 namecanvas;
+#X text 169 15 - ATTACH THIS CANVAS TO A NAME;
+#X obj 204 107 namecanvas bonzo;
+#X msg 205 64 \; bonzo msg 50 50 hi there;
+#X text 252 224 updated for Pd version 0.33;
+#X msg 79 180 \; pd-namecanvas.pd msg 50 70 this is better;
+#X text 44 153 This is obsolete. Instead \, you can just say:;
diff --git a/pd/doc/5.reference/netreceive.pd b/pd/doc/5.reference/netreceive.pd
new file mode 100644
index 00000000..b4bd3f9c
--- /dev/null
+++ b/pd/doc/5.reference/netreceive.pd
@@ -0,0 +1,23 @@
+#N canvas 50 24 682 520 12;
+#X obj 100 323 netreceive 3000;
+#X floatatom 202 353 0 0 0;
+#X obj 100 414 netreceive 3001 1;
+#X text 33 36 The Netreceive object opens a socket for TCP ("stream") or UDP ("datagram") network reception on a specified port. If using TCP \, an outlet gives you the number of Netsend objects (or other compatible clients) have opened connections here.;
+#X text 31 117 Incoming network messages appear on "receive" objects \; it's up to the sender to select which one. Here \, a "receive foo" fields messages sent from the Netsend help window \, q.v.;
+#X text 108 270 first argument: portnumber = 3000;
+#X text 105 291 second argument: 0 or none for TCP \, nonzero for UDP;
+#X text 238 322 <-- TCP \, port 3000;
+#X text 262 413 <-- UDP \, port 3001;
+#X text 236 354 <--- number of open connections;
+#X text 85 12 Netreceive -- listen for incoming messages from network;
+#X text 26 383 incoming messages;
+#X text 203 488 see also:;
+#X obj 289 490 netsend;
+#X obj 100 353 print tcp;
+#X obj 100 442 print udp;
+#X text 425 484 updated for Pd version 0.33;
+#X text 30 207 SECURITY ALERT: don't publish the port number of your netreceive unless you wouldn't mind other people being able to send you messages.;
+#X text 32 168 There are some possibilities for intercommunication with other programs... see the help for "netsend.";
+#X connect 0 0 14 0;
+#X connect 0 1 1 0;
+#X connect 2 0 15 0;
diff --git a/pd/doc/5.reference/netsend.pd b/pd/doc/5.reference/netsend.pd
new file mode 100644
index 00000000..f2eb9bad
--- /dev/null
+++ b/pd/doc/5.reference/netsend.pd
@@ -0,0 +1,55 @@
+#N canvas 84 44 866 530 12;
+#X obj 15 425 netsend;
+#X msg 15 263 connect localhost 3000;
+#X msg 24 403 send foo \$1;
+#X floatatom 24 376 0 0 0;
+#X msg 15 344 disconnect;
+#X msg 285 397 send foo \$1;
+#X floatatom 285 370 0 0 0;
+#X msg 268 344 disconnect;
+#X obj 268 422 netsend 1;
+#X msg 268 263 connect localhost 3001;
+#X floatatom 15 452 0 0 0;
+#X floatatom 268 449 0 0 0;
+#X text 359 422 creation argument: 0 or none for TCP \, nonzero for
+UDP;
+#X text 66 242 TCP;
+#X text 343 239 UDP;
+#X text 197 9 Netsend -- send Pd messages over a network;
+#X text 475 261 Connect to "localhost" port 3000/3001;
+#X text 373 345 Close the connection;
+#X text 325 372 Send messages to "foo" on remote machine;
+#X text 10 473 Outlet is nonzero if connection is open \, zero otherwise.
+;
+#X text 87 38 The Netsend object connects to another machine over the
+network for sending TCP ("stream") or UDP ("datagram") messages. An
+outlet reports whether the connection is open or not. A connection
+request should specify the name or IP address of the other host and
+the port number. There should be a "Netreceive" on the remote host
+with a matching port number.;
+#X obj 409 497 netreceive;
+#X text 318 497 see also:;
+#X text 607 498 updated for Pd version 0.33;
+#X text 87 150 Opt@web.fm has made compatible objects for Max so that
+Pd and Max can intercommunicate: see ftp://fals.ch/pub/pdnets/.;
+#X text 87 186 The Linux version of Pd comes with "pdsend" and "pdreceive"
+standalone programs. These haven't been tested in Windows yet (but
+the source is included in the Pd distribution.);
+#X msg 15 290 connect molloy 3000;
+#X msg 268 290 connect molloy 3001;
+#X msg 15 317 connect bug 3000;
+#X msg 268 317 connect bug 3000;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 4 0 0 0;
+#X connect 5 0 8 0;
+#X connect 6 0 5 0;
+#X connect 7 0 8 0;
+#X connect 8 0 11 0;
+#X connect 9 0 8 0;
+#X connect 26 0 0 0;
+#X connect 27 0 8 0;
+#X connect 28 0 0 0;
+#X connect 29 0 8 0;
diff --git a/pd/doc/5.reference/noise~.pd b/pd/doc/5.reference/noise~.pd
new file mode 100644
index 00000000..cafc15c3
--- /dev/null
+++ b/pd/doc/5.reference/noise~.pd
@@ -0,0 +1,18 @@
+#N canvas 174 90 458 270 12;
+#X floatatom 77 178 4 0 0;
+#X obj 77 111 noise~;
+#X obj 167 149 print~;
+#X msg 167 123 bang;
+#X obj 282 89 loadbang;
+#X msg 282 114 \; pd dsp 1;
+#X obj 77 150 env~ 4096;
+#X text 67 204 RMS in dB;
+#X text 171 242 updated for Pd version 0.33;
+#X obj 20 11 noise~;
+#X text 84 11 - uniformly distributed white noise;
+#X text 38 49 the output range is -1 to 1...;
+#X connect 1 0 2 0;
+#X connect 1 0 6 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 0;
+#X connect 6 0 0 0;
diff --git a/pd/doc/5.reference/numbox2.pd b/pd/doc/5.reference/numbox2.pd
new file mode 100644
index 00000000..a26db250
--- /dev/null
+++ b/pd/doc/5.reference/numbox2.pd
@@ -0,0 +1,302 @@
+#N canvas 290 235 617 416 10;
+#X obj 1 1 cnv 8 100 60 empty empty numbox=nbx 20 20 1 18 -262144 -1109
+0;
+#X floatatom 38 300 9 0 0;
+#X msg 47 84 set \$1;
+#X floatatom 38 43 7 0 0;
+#X text 25 363 (c) musil@iem.kug.ac.at;
+#X text 67 376 IEM KUG;
+#X obj 38 324 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 18 47 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X floatatom 47 63 7 0 0;
+#X floatatom 116 324 9 0 0;
+#X floatatom 106 42 7 0 0;
+#X floatatom 183 113 7 0 0;
+#X obj 111 249 ftom;
+#X floatatom 111 271 9 0 0;
+#X floatatom 147 244 9 0 0;
+#X floatatom 221 266 9 0 0;
+#X text 217 151 click properties to;
+#X floatatom 111 112 9 0 0;
+#X obj 111 134 mtof;
+#X text 202 65 (0.01 pixels);
+#X text 57 99 ------------------------------------------;
+#X text 57 286 --------------------------------------------;
+#X text 205 162 modify geometry \, colors \, etc.;
+#X msg 106 63 set \$1;
+#X text 188 44 shift-click & drag;
+#X text 194 54 for fine-tuning;
+#X text 195 203 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 193 214 for moving selected gui-objects;
+#N canvas 239 379 699 530 edit 0;
+#X obj 37 233 f;
+#X msg 15 212 bang;
+#X floatatom 53 211 3 6 88;
+#X floatatom 88 233 3 -20 37;
+#X obj 37 256 pack 0 0;
+#X text 115 233 y-label;
+#X text 81 211 x-label;
+#X obj 287 271 f;
+#X msg 265 250 bang;
+#X floatatom 303 249 3 -10 10;
+#X floatatom 338 271 3 -10 10;
+#X obj 287 294 pack 0 0;
+#X obj 299 381 f;
+#X msg 277 360 bang;
+#X floatatom 315 359 3 20 90;
+#X floatatom 350 381 3 150 200;
+#X obj 299 404 pack 0 0;
+#X text 331 249 x-delta;
+#X text 365 271 y-delta;
+#X text 343 359 x-position;
+#X text 377 381 y-position;
+#X obj 57 348 f;
+#X msg 35 327 bang;
+#X floatatom 73 326 3 0 2;
+#X floatatom 108 348 3 4 36;
+#X obj 57 371 pack 0 0;
+#X text 101 326 font;
+#X text 137 348 height;
+#X floatatom 476 188 1 0 1;
+#X text 523 401 no init;
+#X text 493 453 init value on loadbang;
+#X text 520 188 steady;
+#X obj 486 291 f;
+#X msg 464 270 bang;
+#X floatatom 502 269 4 55 440;
+#X floatatom 537 291 6 440 3520;
+#X obj 486 314 pack 0 0;
+#X text 269 469 linear / logarithmical;
+#X msg 47 158 \; goo4_rcv color \$1 \$2 \$3;
+#X msg 37 281 \; goo4_rcv label_pos \$1 \$2;
+#X msg 57 396 \; goo4_rcv label_font \$1 \$2;
+#X msg 40 442 \; goo4_rcv label blabla;
+#X msg 269 487 \; goo4_rcv lin;
+#X msg 363 486 \; goo4_rcv log;
+#X msg 299 429 \; goo4_rcv pos \$1 \$2;
+#X msg 287 319 \; goo4_rcv delta \$1 \$2;
+#X msg 475 21 \; goo4_rcv send goo4a_snd;
+#X msg 475 59 \; goo4_rcv send goo4_snd;
+#X msg 476 105 \; goo4_rcv receive goo4a_rcv;
+#X msg 476 143 \; goo4a_rcv receive goo4_rcv;
+#X msg 486 339 \; goo4_rcv range \$1 \$2;
+#X msg 502 420 \; goo4_rcv init 0;
+#X msg 503 471 \; goo4_rcv init 1;
+#X text 539 270 bottom-range-bound;
+#X text 586 292 top-range-bound;
+#X obj 286 160 f;
+#X msg 264 139 bang;
+#X floatatom 302 138 3 4 55;
+#X floatatom 337 160 3 15 73;
+#X obj 286 183 pack 0 0;
+#X msg 286 208 \; goo4_rcv size \$1 \$2;
+#X text 330 138 width;
+#X text 368 161 height;
+#X msg 41 478 \; goo4_rcv label log.freq.;
+#X msg 476 212 \; goo4_rcv steady \$1;
+#X obj 47 116 pack 0 0 0;
+#X obj 47 88 f;
+#X msg 24 40 bang;
+#X floatatom 63 38 3 0 29;
+#X floatatom 79 58 3 0 29;
+#X floatatom 112 74 3 0 29;
+#X text 91 38 background;
+#X text 106 58 front-color;
+#X text 140 75 label-color;
+#X msg 285 37 back;
+#X msg 285 57 front;
+#X msg 285 77 label;
+#X msg 247 37 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 98 pd RGB_____________;
+#X floatatom 327 67 3 0 255;
+#X floatatom 370 67 3 0 255;
+#X floatatom 413 68 3 0 255;
+#X text 34 12 preset-colors;
+#X text 296 9 RGB-colors;
+#X text 327 49 red;
+#X text 363 48 green;
+#X text 411 48 blue;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 39 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 45 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 44 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 40 0;
+#X connect 28 0 64 0;
+#X connect 32 0 36 0;
+#X connect 33 0 32 0;
+#X connect 34 0 32 1;
+#X connect 35 0 36 1;
+#X connect 36 0 50 0;
+#X connect 55 0 59 0;
+#X connect 56 0 55 0;
+#X connect 57 0 55 1;
+#X connect 58 0 59 1;
+#X connect 59 0 60 0;
+#X connect 65 0 38 0;
+#X connect 66 0 65 0;
+#X connect 67 0 66 0;
+#X connect 68 0 66 1;
+#X connect 69 0 65 1;
+#X connect 70 0 65 2;
+#X connect 74 0 78 0;
+#X connect 75 0 78 0;
+#X connect 76 0 78 0;
+#X connect 77 0 78 0;
+#X connect 78 0 65 0;
+#X connect 78 1 65 1;
+#X connect 78 2 65 2;
+#X connect 79 0 78 1;
+#X connect 80 0 78 2;
+#X connect 81 0 78 3;
+#X restore 327 48 pd edit;
+#X obj 61 345 print;
+#N canvas 276 200 290 224 once 0;
+#X obj 38 47 t b b f;
+#X msg 56 85 1;
+#X obj 31 108 f 0;
+#X obj 31 131 pack 0 0;
+#X obj 31 156 route 0;
+#X obj 38 24 inlet;
+#X obj 31 180 outlet;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 0 2 3 1;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 0;
+#X connect 5 0 0 0;
+#X restore 61 322 pd once;
+#X obj 249 87 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 218 387 updated for Pd version 0.35;
+#X text 42 388 graz \, austria 2002;
+#X text 192 13 gui-number-box:;
+#X obj 106 84 s foo13_rcv;
+#X obj 183 133 s goo14_rcv;
+#X obj 221 244 r goo14_snd;
+#X obj 116 302 r foo13_snd;
+#X obj 47 172 nbx 4 15 100 300 0 0 foo13_snd foo13_rcv empty 45 7 192
+10 -225280 -1109 -1 100 256;
+#X obj 111 200 nbx 5 18 55 3520 1 0 goo14_snd goo14_rcv log.freq. 45
+-10 192 14 -261681 -260818 -90881 55 72;
+#X obj 464 114 nbx 5 14 -1e+37 1e+37 0 0 hhh hhh empty 45 7 192 10
+-262144 -1 -1 0 256;
+#X connect 1 0 6 0;
+#X connect 2 0 39 0;
+#X connect 3 0 39 0;
+#X connect 7 0 39 0;
+#X connect 8 0 2 0;
+#X connect 10 0 23 0;
+#X connect 11 0 36 0;
+#X connect 12 0 13 0;
+#X connect 17 0 18 0;
+#X connect 18 0 40 0;
+#X connect 23 0 35 0;
+#X connect 30 0 29 0;
+#X connect 37 0 15 0;
+#X connect 38 0 9 0;
+#X connect 39 0 30 0;
+#X connect 39 0 1 0;
+#X connect 40 0 12 0;
+#X connect 40 0 14 0;
diff --git a/pd/doc/5.reference/openpanel.pd b/pd/doc/5.reference/openpanel.pd
new file mode 100644
index 00000000..15e5d244
--- /dev/null
+++ b/pd/doc/5.reference/openpanel.pd
@@ -0,0 +1,11 @@
+#N canvas 35 31 585 245 12;
+#X obj 128 136 openpanel;
+#X msg 128 108 bang;
+#X obj 128 161 print;
+#X text 31 11 openpanel -- query you for a filename;
+#X text 48 218 see also:;
+#X obj 136 219 savepanel;
+#X text 272 223 updated for Pd version 0.33;
+#X text 33 59 When Openpanel gets a "bang" an "Open file" browser appears on the screen. If you select a file \, its name appears on the outlet.;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
diff --git a/pd/doc/5.reference/operators.pd b/pd/doc/5.reference/operators.pd
new file mode 100644
index 00000000..64b47e4d
--- /dev/null
+++ b/pd/doc/5.reference/operators.pd
@@ -0,0 +1,31 @@
+#N canvas 52 109 635 355 12;
+#X obj 29 172 +;
+#X floatatom 41 113 0 0 0;
+#X floatatom 29 197 0 0 0;
+#X floatatom 51 143 0 0 0;
+#X msg 29 82 bang;
+#X obj 44 6 +;
+#X text 27 307 see also:;
+#X obj 186 314 +~;
+#X text 79 5 (etc.) -- ARITHMETIC;
+#X text 72 88 Bang outputs sum;
+#X text 79 112 Numbers in left inlet add and output sum;
+#X text 93 142 Numbers in right inlet only change the inlet's value;
+#X obj 113 314 trigger;
+#X text 348 325 last updated for version 0.33;
+#X text 93 189 You can supply a creation argument to initialize the right inlet:;
+#X text 29 29 The floating point binary operators are + \, - \, * \, / \, pow \, max \, and min. Note that pow only works for nonnegative mantissas.;
+#X floatatom 101 225 0 0 0;
+#X floatatom 101 275 0 0 0;
+#X obj 101 250 pow -1;
+#X floatatom 179 225 0 0 0;
+#X floatatom 179 275 0 0 0;
+#X obj 179 250 min 20;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
+#X connect 3 0 0 1;
+#X connect 4 0 0 0;
+#X connect 16 0 18 0;
+#X connect 18 0 17 0;
+#X connect 19 0 21 0;
+#X connect 21 0 20 0;
diff --git a/pd/doc/5.reference/osc~.pd b/pd/doc/5.reference/osc~.pd
new file mode 100644
index 00000000..2bd5f0df
--- /dev/null
+++ b/pd/doc/5.reference/osc~.pd
@@ -0,0 +1,58 @@
+#N canvas 85 32 811 508 12;
+#X obj 252 320 dac~ 1;
+#X obj 252 292 *~;
+#X floatatom 156 115 0 0 0;
+#X obj 276 264 line~;
+#X msg 276 208 0.1 100;
+#X msg 295 233 0 100;
+#X text 347 203 on;
+#X text 344 232 off;
+#X text 333 261 envelope;
+#X text 333 274 generator;
+#X text 260 183 amplitude controls:;
+#X text 250 344 audio output;
+#X text 424 426 see also:;
+#X obj 580 428 cos~;
+#X obj 629 428 tabread4~;
+#X obj 68 14 osc~;
+#X text 142 16 - cosine wave oscillator;
+#X obj 126 294 metro 500;
+#X obj 126 269 r metro;
+#X text 88 344 graph the output;
+#X obj 510 427 phasor~;
+#X msg 571 79 \; metro 0;
+#X msg 570 20 \; pd dsp 1 \; metro 1;
+#X floatatom 637 245 0 0 0;
+#X obj 637 275 sig~;
+#X text 522 266 convert to;
+#X text 512 282 audio signal;
+#X text 518 305 oscillator;
+#X text 479 243 frequency control;
+#X obj 637 306 osc~;
+#X text 3 120 change frequency;
+#X text 244 145 <-- creation argument sets initial frequency;
+#X text 231 123 v-- inlet resets phase;
+#X graph graph1 0 -1 100 1 94 388 294 488;
+#X array array99 100 float;
+#X pop;
+#X text 16 39 The osc~ object outputs a cosine wave. If no argument is supplied \, the input is taken to be an audio signal. With a floating-point argument \, osc~ takes floating-point messages to change frequency.;
+#X text 510 336 invoked without argument to;
+#X text 512 360 specify audio signal input;
+#X text 2 105 incoming numbers;
+#X obj 89 322 tabwrite~ array99;
+#X obj 156 144 osc~ 1000;
+#X text 546 480 updated for Pd version 0.33;
+#X text 655 39 <-Click to start;
+#X text 648 88 <-Click to stop;
+#X connect 1 0 0 0;
+#X connect 2 0 39 0;
+#X connect 3 0 1 1;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 17 0 38 0;
+#X connect 18 0 17 0;
+#X connect 18 0 17 0;
+#X connect 23 0 24 0;
+#X connect 24 0 29 0;
+#X connect 39 0 1 0;
+#X connect 39 0 38 0;
diff --git a/pd/doc/5.reference/otherbinops.pd b/pd/doc/5.reference/otherbinops.pd
new file mode 100644
index 00000000..3f310818
--- /dev/null
+++ b/pd/doc/5.reference/otherbinops.pd
@@ -0,0 +1,90 @@
+#N canvas 20 43 698 447 12;
+#X floatatom 524 338 0 0 0;
+#X floatatom 353 338 0 0 0;
+#X floatatom 298 338 0 0 0;
+#X floatatom 413 338 0 0 0;
+#X floatatom 467 338 0 0 0;
+#X obj 524 311 <;
+#X obj 298 262 r left;
+#X obj 540 267 r right;
+#X floatatom 71 335 0 0 0;
+#X floatatom 19 334 0 0 0;
+#X floatatom 119 335 0 0 0;
+#X floatatom 163 334 0 0 0;
+#X obj 16 45 &;
+#X obj 66 45 |;
+#X obj 118 45 &&;
+#X obj 169 45 ||;
+#X obj 19 307 &;
+#X obj 71 308 |;
+#X obj 119 308 &&;
+#X obj 163 307 ||;
+#X text 13 73 The Logical Operators;
+#X obj 19 266 r left;
+#X obj 218 266 r right;
+#X obj 12 118 >;
+#X obj 61 118 >=;
+#X obj 114 118 ==;
+#X obj 215 119 <=;
+#X obj 262 119 <;
+#X text 11 153 The Relational Operators;
+#X obj 298 312 >;
+#X obj 353 312 >=;
+#X obj 413 312 ==;
+#X obj 467 312 <=;
+#X text 16 190 relational output is logical- and negative numbers BAD
+in bitwise logical operators. These operators as defined by C programming
+language. (inputs and outputs are converted to and from floating point).
+;
+#X floatatom 410 65 0 0 0;
+#X obj 410 92 s left;
+#X floatatom 481 66 0 0 0;
+#X obj 481 94 t b f;
+#X obj 481 122 s left;
+#X obj 541 122 s right;
+#X obj 166 118 !=;
+#X text 377 42 set left and right inputs here;
+#X floatatom 202 335 0 0 0;
+#X floatatom 246 334 0 0 0;
+#X obj 208 46 <<;
+#X obj 259 46 >>;
+#X obj 202 308 <<;
+#X obj 246 307 >>;
+#X text 421 383 last updated for version 0.32;
+#X connect 5 0 0 0;
+#X connect 6 0 29 0;
+#X connect 6 0 30 0;
+#X connect 6 0 31 0;
+#X connect 6 0 32 0;
+#X connect 6 0 5 0;
+#X connect 7 0 29 1;
+#X connect 7 0 30 1;
+#X connect 7 0 31 1;
+#X connect 7 0 32 1;
+#X connect 7 0 5 1;
+#X connect 16 0 9 0;
+#X connect 17 0 8 0;
+#X connect 18 0 10 0;
+#X connect 19 0 11 0;
+#X connect 21 0 16 0;
+#X connect 21 0 17 0;
+#X connect 21 0 18 0;
+#X connect 21 0 19 0;
+#X connect 21 0 46 0;
+#X connect 21 0 47 0;
+#X connect 22 0 19 1;
+#X connect 22 0 18 1;
+#X connect 22 0 17 1;
+#X connect 22 0 16 1;
+#X connect 22 0 47 1;
+#X connect 22 0 46 1;
+#X connect 29 0 2 0;
+#X connect 30 0 1 0;
+#X connect 31 0 3 0;
+#X connect 32 0 4 0;
+#X connect 34 0 35 0;
+#X connect 36 0 37 0;
+#X connect 37 0 38 0;
+#X connect 37 1 39 0;
+#X connect 46 0 42 0;
+#X connect 47 0 43 0;
diff --git a/pd/doc/5.reference/pack.pd b/pd/doc/5.reference/pack.pd
new file mode 100644
index 00000000..c979d480
--- /dev/null
+++ b/pd/doc/5.reference/pack.pd
@@ -0,0 +1,37 @@
+#N canvas 14 8 809 354 12;
+#X floatatom 19 86 0 0 0;
+#X msg 29 115 bang;
+#X floatatom 49 138 0 0 0;
+#X floatatom 188 138 0 0 0;
+#X obj 19 254 print;
+#X msg 86 138 symbol cat;
+#X obj 82 9 pack;
+#X text 28 319 See also;
+#X obj 106 321 unpack;
+#X text 14 34 The pack object takes a series of inputs and outputs
+a concatenated list. The number of creation arguments determines the
+number of inlets.;
+#X text 60 85 <-- number in first inlet generates output;
+#X text 70 114 <-- bang generates output without resetting first value
+;
+#X text 226 135 <-- numbers and symbols in the corresponding inlets
+change the values without causing output (see "trigger" for a way to
+change this behavior.);
+#X text 250 187 <-- as with any Pd object \, you can send a list whose
+atoms are automatically distributed to the corresponding inlets.;
+#X msg 175 190 1 2 dog;
+#X obj 167 321 trigger;
+#X obj 19 227 pack 100 0 s 0;
+#X text 121 9 - combine several atoms into one message;
+#X text 155 226 <-- creation arguments specify the number of inlets
+and their types: a number make a numeric outlet (and initializes the
+value). A symbol argument can start with "s" \, "f" \, or "p" to specify
+a "symbol" \, "float" (number) \, or pointer outlet.;
+#X text 538 331 updated for Pd version 0.34;
+#X connect 0 0 16 0;
+#X connect 1 0 16 0;
+#X connect 2 0 16 1;
+#X connect 3 0 16 3;
+#X connect 5 0 16 2;
+#X connect 14 0 16 0;
+#X connect 16 0 4 0;
diff --git a/pd/doc/5.reference/pd.pd b/pd/doc/5.reference/pd.pd
new file mode 100644
index 00000000..f7db8f66
--- /dev/null
+++ b/pd/doc/5.reference/pd.pd
@@ -0,0 +1,52 @@
+#N canvas 32 130 677 385 12;
+#N canvas 0 0 600 400 /SUBPATCH/ 0;
+#X restore 59 10 pd;
+#X text 88 12 - subpatch;
+#X obj 218 10 inlet;
+#X text 263 10 - control inlet;
+#X obj 442 11 inlet~;
+#X text 494 12 - audio inlet;
+#X obj 215 39 outlet;
+#X text 265 39 - control outlet;
+#X obj 435 40 outlet~;
+#X text 494 40 - audio outlet;
+#X text 37 74 Type "pd" into an object box to make a subpatch. When
+in run mode you can click on the object to open the subpatch. You can
+name the subpatch with an argument:;
+#N canvas 0 0 600 396 my-subpatch 0;
+#X restore 133 131 pd my-subpatch;
+#N canvas 0 0 600 392 my-subpatch-with-inlets-and-outlets 0;
+#X obj 68 126 inlet;
+#X text 20 96 control inlet for receiving messages;
+#X floatatom 68 154 0 0 0;
+#X floatatom 71 255 0 0 0;
+#X obj 71 287 outlet;
+#X text 35 225 control outlet for sending message;
+#X obj 403 121 inlet~;
+#X obj 403 172 print~;
+#X msg 418 146 bang;
+#X obj 402 314 outlet~;
+#X obj 402 288 sig~ 34;
+#X connect 0 0 2 0;
+#X connect 3 0 4 0;
+#X connect 6 0 7 0;
+#X connect 8 0 7 0;
+#X connect 10 0 9 0;
+#X restore 86 272 pd my-subpatch-with-inlets-and-outlets;
+#X text 55 174 and you can put inlets and outlets by making "inlet"
+objects \, etc \, in the subpatch (open the patch below to see them.)
+;
+#X obj 423 322 print~;
+#X msg 362 294 bang;
+#X obj 422 243 sig~ 12;
+#X floatatom 86 246 0 0 0;
+#X floatatom 86 298 0 0 0;
+#X text 441 272 (check that audio is on);
+#X text 52 221 messages in and out;
+#X text 392 220 audio in and out;
+#X text 391 351 updated for Pd version 0.26;
+#X connect 12 0 18 0;
+#X connect 12 1 14 0;
+#X connect 15 0 14 0;
+#X connect 16 0 12 1;
+#X connect 17 0 12 0;
diff --git a/pd/doc/5.reference/phasor~.pd b/pd/doc/5.reference/phasor~.pd
new file mode 100644
index 00000000..2da01cf9
--- /dev/null
+++ b/pd/doc/5.reference/phasor~.pd
@@ -0,0 +1,36 @@
+#N canvas 5 31 889 373 12;
+#X graph graph1 0 1 100 -1 67 250 267 350;
+#X array array99 100 float;
+#X pop;
+#X obj 29 181 metro 500;
+#X obj 13 126 phasor~;
+#X floatatom 13 76 0 0 0;
+#X obj 57 12 phasor~;
+#X obj 29 156 r metro;
+#X obj 13 100 sig~ 890;
+#X text 78 75 <-- specify frequency;
+#X text 92 98 <-- convert it to audio signal;
+#X msg 409 75 \; metro 0;
+#X msg 405 18 \; pd dsp 1 \; metro 1;
+#X text 494 32 <-- Click to start;
+#X text 479 79 <-- Click to stop;
+#X text 129 14 - sawtooth generator;
+#X text 170 207 <-- graph the output;
+#X text 82 128 <-- right inlet resets phase;
+#X obj 425 227 phasor~ 440;
+#X floatatom 425 203 0 0 0;
+#X text 348 118 The phasor~ object outputs a sawtooth signal \, traditionally used for table lookup via cos~ or tabread4~. If no argument is supplied \, the input is taken to be an audio signal \; with a floating-point argument \, phasor~ takes floating-point messages to change frequency.;
+#X text 294 246 Invoked above with argument for non-signal input. Incoming messages override the initial value.;
+#X text 311 301 see also:;
+#X obj 396 301 osc~;
+#X obj 439 301 cos~;
+#X obj 481 301 tabread4~;
+#X text 627 345 updated for Pd version 0.33;
+#X obj 13 205 tabwrite~ array99;
+#X connect 1 0 25 0;
+#X connect 2 0 25 0;
+#X connect 3 0 6 0;
+#X connect 5 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 17 0 16 0;
diff --git a/pd/doc/5.reference/pipe.pd b/pd/doc/5.reference/pipe.pd
new file mode 100644
index 00000000..272057ed
--- /dev/null
+++ b/pd/doc/5.reference/pipe.pd
@@ -0,0 +1,41 @@
+#N canvas 99 89 737 480 12;
+#X floatatom 52 127 0 0 0;
+#X floatatom 127 227 0 0 0;
+#X floatatom 52 284 0 0 0;
+#X floatatom 544 281 0 0 0;
+#X floatatom 535 392 0 0 0;
+#X obj 534 364 pipe 5 6 7 1000;
+#X obj 543 307 t f f f;
+#X obj 563 338 + 1;
+#X obj 597 337 + 2;
+#X floatatom 590 390 0 0 0;
+#X floatatom 658 391 0 0 0;
+#X text 32 433 see also:;
+#X text 129 13 pipe -- message "delay line";
+#X obj 52 253 pipe 2000;
+#X text 91 125 numbers to store and output later;
+#X text 117 148 output all stored messages immediately;
+#X msg 63 152 flush;
+#X msg 65 180 clear;
+#X text 113 180 forget all stored messages;
+#X text 91 286 delayed output;
+#X obj 116 435 delay;
+#X obj 167 435 timer;
+#X text 51 42 The Pipe object stores a sequence of messages and outputs them after a specified delay time in miliseconds. You can change the delay time as you wish. The outputs are sorted automatically.;
+#X text 140 254 creation argument initializes delay time;
+#X text 163 228 set delay time;
+#X text 487 449 updated for Pd version 0.33;
+#X text 21 330 You can specify compound messages (lists) by adding arguments which set their type and initial value as in "pack." In this case the delay time comes last and is changed by the last inlet. You can also pack symbols and pointers but this feature is UNTESTED.;
+#X connect 0 0 13 0;
+#X connect 1 0 13 1;
+#X connect 3 0 6 0;
+#X connect 5 0 4 0;
+#X connect 5 1 9 0;
+#X connect 5 2 10 0;
+#X connect 6 0 5 0;
+#X connect 6 1 7 0;
+#X connect 6 2 8 0;
+#X connect 7 0 5 1;
+#X connect 8 0 5 2;
+#X connect 13 0 2 0;
+#X connect 16 0 13 0;
diff --git a/pd/doc/5.reference/plot.pd b/pd/doc/5.reference/plot.pd
new file mode 100644
index 00000000..d25eaa15
--- /dev/null
+++ b/pd/doc/5.reference/plot.pd
@@ -0,0 +1,58 @@
+#N struct help-plot-template float x float y array array1 help-plot-array1-template
+array array2 help-plot-array2-template array array3 help-plot-array3-template
+;
+#N struct help-plot-array1-template float y;
+#N struct help-plot-array2-template float x float y;
+#N struct help-plot-array3-template float y float w;
+#N canvas 398 0 516 229 12;
+#N canvas 89 309 626 539 help-plot-template 1;
+#X text 29 34 creation arguments:;
+#X text 48 71 - RGB color (0=black \, 999=white \, 900=red \, 90=green
+\, 9=blue \, 555=grey \, etc.);
+#X obj 24 387 template float x float y array array1 help-plot-array1-template
+array array2 help-plot-array2-template array array3 help-plot-array3-template
+;
+#X text 47 52 - OPTIONAL word "curve" to specify bezier;
+#X text 46 98 - line width;
+#X text 46 114 - relative x and y location;
+#X text 47 130 - x spacing;
+#X obj 39 217 plot curve array2 70 3 100 0;
+#X obj 30 308 plot curve array3 9 1 120 50 20;
+#X obj 45 12 plot array1 500 1 10 15 20;
+#X text 29 147 This first example plots the red trace (500) \, width
+1 \, at point (10 \, 15) \, with horizontal spacing 20 The black diamonds
+come from the template of the array1 element itself.;
+#X text 62 239 This is the green spiral (color 70 \, line width 3 \,
+location (100 \, 0). Since the template for array2 contains an "x"
+cariable \, play ignores x spacing requests and takes x from the data
+itself.;
+#X text 50 328 If a "w" variable is present in the template as for
+array3 \, it is added to the line width.;
+#X text 33 366 here's the template for all this:;
+#X obj 27 501 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10;
+#X text 27 454 To see the data itself \, select "properties" for the
+scalar by right clicking on the purple square.;
+#X restore 243 78 pd help-plot-template;
+#N canvas 196 292 273 120 help-plot-array1-template 0;
+#X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5;
+#X obj 32 27 template float y;
+#X restore 242 101 pd help-plot-array1-template;
+#N canvas 161 163 273 120 help-plot-array2-template 0;
+#X obj 32 26 template float x float y;
+#X restore 243 123 pd help-plot-array2-template;
+#N canvas 0 0 411 207 help-plot-data 1;
+#X scalar help-plot-template 39 73 \; 0 \; 20 \; 0 \; 30 \; 0 \; \;
+0 0 \; 0 10 \; 20 0 \; 0 -30 \; -40 0 \; 0 50 \; 60 0 \; \; 0 0 \;
+10 10 \; 0 10 \; 0 1 \; 20 1 \; 20 10 \; 20 1 \; \;;
+#X restore 242 57 pd help-plot-data;
+#X text 23 139 see also:;
+#X obj 30 184 drawnumber;
+#X obj 29 163 template;
+#X obj 35 22 plot;
+#X text 87 21 -- draw array elements of scalars;
+#X obj 29 206 drawpolygon;
+#N canvas 161 163 273 120 help-plot-array3-template 0;
+#X obj 43 32 template float y float w;
+#X restore 242 144 pd help-plot-array3-template;
+#X text 8 79 explanation is in here-->;
+#X text 264 203 updated for Pd version 0.35;
diff --git a/pd/doc/5.reference/pointer.pd b/pd/doc/5.reference/pointer.pd
new file mode 100644
index 00000000..96a22ff1
--- /dev/null
+++ b/pd/doc/5.reference/pointer.pd
@@ -0,0 +1,79 @@
+#N struct template2 float x float y;
+#N struct template1 float x float y float z;
+#N canvas 223 0 715 654 12;
+#X text 20 572 see also:;
+#X obj 21 10 pointer;
+#X text 95 10 -- remember the location of a scalar in a list;
+#N canvas 164 72 425 146 help-pointer-template1 0;
+#X obj 18 81 filledpolygon z 0 1 0 0 20 0 20 30 0 30;
+#X obj 60 21 struct template1 float x float y float z;
+#X restore 327 386 pd help-pointer-template1;
+#N canvas 26 456 510 145 help-pointer-template2 0;
+#X obj 52 78 filledcurve 909 0 0 0 0 30 30 60 0 30 -30 0 0;
+#X obj 60 21 struct template2 float x float y;
+#X restore 327 409 pd help-pointer-template2;
+#X obj 23 592 get;
+#X obj 56 592 set;
+#X obj 91 592 append;
+#X obj 152 592 getsize;
+#X obj 220 593 setsize;
+#X obj 290 593 element;
+#X obj 23 617 sublist;
+#N canvas 0 0 312 185 help-pointer-data 1;
+#X scalar template2 20 97 \;;
+#X scalar template1 80 17 90 \;;
+#X scalar template1 120 117 9 \;;
+#X restore 327 364 pd help-pointer-data;
+#X obj 54 360 pointer;
+#X msg 54 231 traverse pd-help-pointer-data;
+#X msg 67 255 bang;
+#X text 109 256 outputs current value;
+#X msg 69 281 next;
+#X obj 54 385 print out1;
+#X obj 167 371 print out2;
+#X text 119 274 moves forward one item and outputs pointer \; if we
+reach the end \, a "bang" goes to out2.;
+#X text 16 426 Optional arguments to pointer allow you to select according
+to the class of the scalar being output:;
+#X msg 74 487 next;
+#X msg 60 464 traverse pd-help-pointer-data;
+#X obj 60 515 pointer help-pointer-template1 help-pointer-template2
+;
+#X obj 60 541 print template1;
+#X obj 198 541 print template2;
+#X obj 338 541 print other;
+#X obj 441 541 print bangout;
+#X text 333 232 sets to the "head" of the list;
+#X text 29 34 "Pointer" is a storage object like "float" \, except
+that the thing stored is the location of a scalar somewhere. You can
+send a pointer a value (perhaps from another "pointer" object). The
+right inlet takes pointers and simply stores them. A bang in the left
+outputs the pointer \, and a pointer in the left both sets and outputs
+the value.;
+#X text 29 132 The value of a pointer can either indicate a real scalar
+\, or else the "head" (before the first element) of the list. This
+allows you to point to an empty list \, and also \, to "append" a scalar
+to the beginning of the list.;
+#X text 29 191 Pointers are "safe": if you delete a scalar pointers
+to it are marked invalid.;
+#X text 166 391 bang at end;
+#X text 167 407 of list;
+#X text 53 405 output;
+#X text 445 617 updated for Pd version 0.35;
+#X obj 92 616 struct;
+#X msg 71 307 vnext 1;
+#X text 149 308 "vnext" gets the next object (if arg is 0) or the next
+selected object (if arg is 1 -- but the window must be visible for
+the "selection" to make sense).;
+#X connect 13 0 18 0;
+#X connect 13 1 19 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 17 0 13 0;
+#X connect 22 0 24 0;
+#X connect 23 0 24 0;
+#X connect 24 0 25 0;
+#X connect 24 1 26 0;
+#X connect 24 2 27 0;
+#X connect 24 3 28 0;
+#X connect 38 0 13 0;
diff --git a/pd/doc/5.reference/poly.pd b/pd/doc/5.reference/poly.pd
new file mode 100644
index 00000000..0b34f99e
--- /dev/null
+++ b/pd/doc/5.reference/poly.pd
@@ -0,0 +1,30 @@
+#N canvas 0 0 600 496 12;
+#X text 155 228 <-- scroll to change the value of delay in milliseconds.;
+#X text 406 383 updated for Pd version 0.25;
+#X text 42 383 see also:;
+#X obj 66 15 poly;
+#X text 101 14 - MIDI-STYLE POLYPHONIC VOICE ALLOCATOR;
+#X text 12 42 The poly object takes a stream of pitch/velocity pairs and outputs triples containing voice number \, pitch and velocity. You can pack the output and use the route object to route messages among a bank of voices depending on the first outlet. Poly can be configured to do voice stealing or not (the default.);
+#X obj 110 384 route;
+#X obj 154 384 makenote;
+#X obj 52 254 poly 4 1;
+#X text 134 253 <-- first argument \, number of voices \; second argument selects voice stealing;
+#X msg 52 168 60 64;
+#X msg 103 168 60 0;
+#X msg 147 168 62 64;
+#X msg 194 168 62 0;
+#X obj 52 280 pack 0 0 0;
+#X obj 52 306 print;
+#X text 97 305 Output is in the printout window.;
+#X msg 254 177 stop;
+#X msg 296 177 clear;
+#X connect 8 0 14 0;
+#X connect 8 1 14 1;
+#X connect 8 2 14 2;
+#X connect 10 0 8 0;
+#X connect 11 0 8 0;
+#X connect 12 0 8 0;
+#X connect 13 0 8 0;
+#X connect 14 0 15 0;
+#X connect 17 0 8 0;
+#X connect 18 0 8 0;
diff --git a/pd/doc/5.reference/print.pd b/pd/doc/5.reference/print.pd
new file mode 100644
index 00000000..50af069a
--- /dev/null
+++ b/pd/doc/5.reference/print.pd
@@ -0,0 +1,13 @@
+#N canvas 349 65 615 247 12;
+#X msg 102 52 walk the dog;
+#X msg 29 51 bang;
+#X msg 70 51 234;
+#X obj 29 96 print x1;
+#X obj 21 10 print;
+#X text 37 134 Print prints out the messages it receives on the "terminal
+window" that Pd is run from.;
+#X text 249 200 updated for Pd version 0.31.;
+#X text 73 10 -- print messages to terminal window;
+#X connect 0 0 3 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
diff --git a/pd/doc/5.reference/print~.pd b/pd/doc/5.reference/print~.pd
new file mode 100644
index 00000000..b3a9c429
--- /dev/null
+++ b/pd/doc/5.reference/print~.pd
@@ -0,0 +1,18 @@
+#N canvas 118 333 531 212 10;
+#X msg 74 143 2;
+#X msg 455 77 \; pd dsp 0;
+#X msg 454 40 \; pd dsp 1;
+#X obj 62 177 print~;
+#X msg 74 118 bang;
+#X obj 62 92 phasor~ 1000;
+#X text 122 119 bang prints one vector;
+#X obj 454 18 loadbang;
+#X text 109 142 print two or more successive vectors;
+#X obj 32 12 print~;
+#X text 85 12 - print out raw values of a signal;
+#X text 301 171 Updated for Pd version 0.33;
+#X text 19 44 The print~ object takes a signal input and prints one or more vectors out when you send it a bang or a number. By default a vector is 64 samples.;
+#X connect 0 0 3 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 7 0 2 0;
diff --git a/pd/doc/5.reference/qlist.pd b/pd/doc/5.reference/qlist.pd
new file mode 100644
index 00000000..a5b2a574
--- /dev/null
+++ b/pd/doc/5.reference/qlist.pd
@@ -0,0 +1,76 @@
+#N canvas 7 31 1178 587 12;
+#X obj 546 328 qlist;
+#X msg 592 110 rewind;
+#X msg 591 135 next;
+#X floatatom 546 382 0 0 0;
+#X msg 593 54 bang;
+#X obj 441 515 r this;
+#X obj 544 515 r that;
+#X obj 441 544 print this;
+#X obj 544 544 print that;
+#X obj 560 356 print done;
+#X msg 593 80 tempo 1;
+#X text 18 51 The qlist object reads text files containing time-tagged
+Pd messages. You can have them sequenced automatically (by sending
+a "bang" message \, possibly changing speed via "tempo" messages) or
+manually via the "rewind" and "next" messages.;
+#X text 15 136 To run the qlist automatically \, send it a "read" message
+(the filename is relative to the directory the patch is in) and later
+a "bang." Messages in the file are separated by semicolons. Optional
+leading numbers are delay times in milliseconds. If the tempo is diffrerent
+from 1 the messages are sent faster or slower accordingly. Messages
+should start with a symbol giving the destination object. In the file
+"qlist.q" used here \, the messages go to objects "this" and "that"
+which are receives below.;
+#X text 17 281 To run it manually \, send "rewind" followed by "next".
+All messages not preceeded by numbers are sent. As soon as a message
+starting with one or more numbers is encountered \, the numbers are
+output as a list. There are many ways you could design a sequencer
+around this.;
+#X text 668 48 sequence automatically;
+#X text 670 79 set relative tempo;
+#X text 668 105 go to beginning (and stop);
+#X text 668 132 single-step forward;
+#X text 713 273 read a file;
+#X text 777 300 write one;
+#X text 552 404 This outlet gets a list of leading numbers for the
+next message \, for you to use in designing your own sequencer.;
+#X msg 586 274 read qlist.txt;
+#X msg 586 300 write /tmp/qlist.txt;
+#X text 21 493 see also:;
+#X obj 97 493 textfile;
+#X text 22 362 You can also record textual messages and save them to
+a file. Send "clear" to empty the qlist and "add" to add messages (terminated
+with semicolons.) The message \, "add2" adds a list of atoms without
+finishing with a semicolon in case you want to make variable-length
+messages.;
+#X msg 589 190 clear;
+#X msg 589 216 add 500 this is another message;
+#X msg 590 242 add2 that;
+#X text 666 187 empty the qlist;
+#X text 882 217 add a message to a qlist;
+#X text 683 240 add a message to a qlist but don't terminate it;
+#X text 653 341 This outlet gets a bang when you hit the end of the
+sequence. In the file "qlist.txt" the end is delayed 1000 milliseconds
+after the last message.;
+#X text 379 470 These receives are invoked in the file "qlist.txt"
+in this directory.;
+#X obj 71 13 qlist;
+#X text 132 15 - text-based sequencer;
+#X text 668 158 single-step forward SUPRESSING MESSAGE-SENDING;
+#X msg 591 161 next 1;
+#X text 921 558 updated for Pd version 0.35;
+#X connect 0 0 3 0;
+#X connect 0 1 9 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 10 0 0 0;
+#X connect 21 0 0 0;
+#X connect 22 0 0 0;
+#X connect 26 0 0 0;
+#X connect 27 0 0 0;
+#X connect 28 0 0 0;
+#X connect 37 0 0 0;
diff --git a/pd/doc/5.reference/qlist.txt b/pd/doc/5.reference/qlist.txt
new file mode 100644
index 00000000..790a8945
--- /dev/null
+++ b/pd/doc/5.reference/qlist.txt
@@ -0,0 +1,3 @@
+this text file is read by qlist.pd;
+1000 that should explain everything;
+1000;
diff --git a/pd/doc/5.reference/random.pd b/pd/doc/5.reference/random.pd
new file mode 100644
index 00000000..b792325c
--- /dev/null
+++ b/pd/doc/5.reference/random.pd
@@ -0,0 +1,19 @@
+#N canvas 0 0 630 421 12;
+#X msg 40 212 bang;
+#X obj 40 287 random 5;
+#X floatatom 83 261 0 0 0;
+#X floatatom 40 312 0 0 0;
+#X msg 50 236 seed 123;
+#X text 92 210 bang for output;
+#X text 132 236 message to set the seed;
+#X text 116 259 inlet to reset the range;
+#X text 119 286 argument to initialize the range;
+#X text 378 337 updated for Pd version 0.33;
+#X text 11 46 Random outputs pseudorandom integers from 0 to N-1 where N is the creation argument (5 in the example below.) You can specify a seed if you wish. Seeds are kept locally so that if two Randoms are seeded the same they will have the same output (or indeed you can seed the same one twice to repeat the output.);
+#X text 12 139 On the other hand \, if you don't supply a seed each instance of random gets its own seed. WARNING: nothing is known about the quality of teh pseudorandom number generator. It isn't any standard one!;
+#X obj 20 11 random;
+#X text 84 11 - pseudorandom integers;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 1;
+#X connect 4 0 1 0;
diff --git a/pd/doc/5.reference/readsf~.pd b/pd/doc/5.reference/readsf~.pd
new file mode 100644
index 00000000..115f9db6
--- /dev/null
+++ b/pd/doc/5.reference/readsf~.pd
@@ -0,0 +1,48 @@
+#N canvas 38 26 630 390 10;
+#X msg 458 10 \; pd dsp 1;
+#X msg 47 186 1;
+#X msg 47 205 0;
+#X obj 403 305 print didit;
+#X obj 126 305 env~ 16384;
+#X floatatom 126 324;
+#X msg 48 227 print;
+#X obj 44 330 dac~;
+#X obj 191 305 env~ 16384;
+#X floatatom 191 324;
+#X obj 38 252 readsf~ 4 1e+06;
+#X obj 256 305 env~ 16384;
+#X floatatom 256 324;
+#X obj 323 306 env~ 16384;
+#X floatatom 323 325;
+#X msg 45 167 open ../sound/bell.aiff 0 200 4 2 b;
+#X obj 82 306 *~ 0.1;
+#X obj 40 306 *~ 0.1;
+#X text 40 7 READSF~ - read a soundfile;
+#X msg 45 146 open ../sound/bell.aiff;
+#X text 146 240 optional arguments: number of channels \; buffer size per channnel in bytes.;
+#X text 404 286 when the soundfile is done.;
+#X text 403 272 last outlet gives a "bang";
+#X text 471 369 Updated for version 0.29;
+#X text 271 146 Open takes a filename \, an onset in sample frames \, and \, as an override \, you may also supply a header size to skip \, a number of channels \, bytes per channel \, and endianness.;
+#X text 36 93 The wave \, aiff \, and nextstep formats are parsed automatically \, although only 2- 3- and 4- byte samples are accepted (4 bytes implies floating point and is only available in the nextstep format.);
+#X text 37 27 The readsf~ object reads a soundfile into its signal outputs. You must open the soundfile in advance (a couple of seconds before you'll need it) using the "open" message. The object immediately starts reading from the file \, but output will only appear after you send a "1" to start playback. A "0" stops it.;
+#X connect 1 0 10 0;
+#X connect 2 0 10 0;
+#X connect 4 0 5 0;
+#X connect 6 0 10 0;
+#X connect 8 0 9 0;
+#X connect 10 0 4 0;
+#X connect 10 0 17 0;
+#X connect 10 1 8 0;
+#X connect 10 1 16 0;
+#X connect 10 2 11 0;
+#X connect 10 2 16 0;
+#X connect 10 3 13 0;
+#X connect 10 3 17 0;
+#X connect 10 4 3 0;
+#X connect 11 0 12 0;
+#X connect 13 0 14 0;
+#X connect 15 0 10 0;
+#X connect 16 0 7 1;
+#X connect 17 0 7 0;
+#X connect 19 0 10 0;
diff --git a/pd/doc/5.reference/realtime.pd b/pd/doc/5.reference/realtime.pd
new file mode 100644
index 00000000..60fcffaa
--- /dev/null
+++ b/pd/doc/5.reference/realtime.pd
@@ -0,0 +1,15 @@
+#N canvas 156 202 565 269 12;
+#X msg 73 146 bang;
+#X msg 30 115 bang;
+#X floatatom 30 206 0 0 0;
+#X text 71 113 Click here to reset;
+#X text 27 232 Output is in milliseconds;
+#X text 114 147 Click here to get elapsed CPU time;
+#X obj 66 15 realtime;
+#X text 12 47 The realtime object measures elapsed real time \, as measured by your operating system.;
+#X obj 30 176 realtime;
+#X text 134 15 - ask OS for elapsed real time;
+#X text 302 244 updated for Pd version 0.33;
+#X connect 0 0 8 1;
+#X connect 1 0 8 0;
+#X connect 8 0 2 0;
diff --git a/pd/doc/5.reference/receive.pd b/pd/doc/5.reference/receive.pd
new file mode 100644
index 00000000..17bb08cb
--- /dev/null
+++ b/pd/doc/5.reference/receive.pd
@@ -0,0 +1,26 @@
+#N canvas 257 45 511 351 12;
+#X text 278 321 updated for Pd version 0.32;
+#X floatatom 36 55 5 0 0;
+#X floatatom 152 58 5 0 0;
+#X floatatom 272 57 5 0 0;
+#X floatatom 38 134 5 0 0;
+#X floatatom 171 136 5 0 0;
+#X floatatom 305 134 5 0 0;
+#X text 62 321 abbreviation:;
+#X obj 36 80 send help-rcv1;
+#X obj 152 81 send help-rcv1;
+#X obj 271 81 send help-rcv2;
+#X obj 38 110 receive help-rcv1;
+#X obj 171 110 receive help-rcv2;
+#X obj 305 110 receive help-rcv2;
+#X text 31 161 "Receive" outputs messages sent via "send." Sends and receives are named to tell them whom to connect to. They work across windows too. Also \, you can use message boxes as shown:;
+#X msg 84 233 \; help-rcv1 34 \; help-rcv2 67;
+#X obj 161 320 r;
+#X obj 21 10 receive;
+#X text 79 10 -- receive messages without patch cords;
+#X connect 1 0 8 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 11 0 4 0;
+#X connect 12 0 5 0;
+#X connect 13 0 6 0;
diff --git a/pd/doc/5.reference/route.pd b/pd/doc/5.reference/route.pd
new file mode 100644
index 00000000..224fb0ea
--- /dev/null
+++ b/pd/doc/5.reference/route.pd
@@ -0,0 +1,80 @@
+#N canvas 0 0 815 537 12;
+#X obj 183 213 print x1;
+#X obj 261 213 print x2;
+#X obj 339 213 print x3;
+#X obj 422 213 print x4;
+#X obj 183 185 route 23 54 1;
+#X msg 183 155 234 345 456;
+#X msg 308 155 23 34 45;
+#X msg 414 155 54 43;
+#X msg 485 155 1 foo bar;
+#X msg 254 247 impeach ringo starr;
+#X obj 191 275 route big apple;
+#X msg 435 248 apple pie;
+#X msg 191 247 1 2 3;
+#X msg 523 248 big apple pie;
+#X msg 578 155 walk the dog;
+#X text 45 33 Route checks the first element of a message against each
+of its arguments \, which may be numbers or symbols (but not a mixture
+of the two.);
+#X text 44 85 If a match is found \, the rest of the message appears
+on the corresponding outlet. If no match \, the message is repeated
+to the last "rejection" outlet. The number of outlets is the number
+of arguments plus one.;
+#X text 19 185 numeric arguments:;
+#X text 17 275 symbolic arguments:;
+#X obj 157 489 print z1;
+#X obj 233 489 print z2;
+#X msg 124 424 bang;
+#X msg 170 424 list;
+#X msg 213 424 5;
+#X msg 251 424 float 5;
+#X msg 320 424 list 5;
+#X msg 385 424 symbol pie;
+#X msg 560 424 pie;
+#X msg 483 424 list pie;
+#X msg 70 424 1 2 3;
+#X obj 157 461 route list float symbol bang;
+#X obj 310 489 print z3;
+#X obj 387 489 print z4;
+#X obj 461 489 print z5;
+#X obj 191 305 print y1;
+#X obj 269 305 print y2;
+#X obj 347 305 print y3;
+#X text 76 344 To avoid confusion between \, say \, the number 5 and
+the list contining only the number 5 \, both messages match "float"
+\, and ditto for symbols. An empty list matches "bang". In Pd these
+are all considered special cases of lists.;
+#X text 545 506 updated for Pd version 0.35;
+#X text 97 9 - route messages according to their first element;
+#X obj 43 8 route;
+#X connect 4 0 0 0;
+#X connect 4 1 1 0;
+#X connect 4 2 2 0;
+#X connect 4 3 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
+#X connect 9 0 10 0;
+#X connect 10 0 34 0;
+#X connect 10 1 35 0;
+#X connect 10 2 36 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 13 0 10 0;
+#X connect 14 0 4 0;
+#X connect 21 0 30 0;
+#X connect 22 0 30 0;
+#X connect 23 0 30 0;
+#X connect 24 0 30 0;
+#X connect 25 0 30 0;
+#X connect 26 0 30 0;
+#X connect 27 0 30 0;
+#X connect 28 0 30 0;
+#X connect 29 0 30 0;
+#X connect 30 0 19 0;
+#X connect 30 1 20 0;
+#X connect 30 2 31 0;
+#X connect 30 3 32 0;
+#X connect 30 4 33 0;
diff --git a/pd/doc/5.reference/rsqrt~.pd b/pd/doc/5.reference/rsqrt~.pd
new file mode 100644
index 00000000..fb0bc350
--- /dev/null
+++ b/pd/doc/5.reference/rsqrt~.pd
@@ -0,0 +1,32 @@
+#N canvas 183 264 685 375 12;
+#X obj 68 211 metro 500;
+#X obj 68 186 r metro;
+#X msg 575 106 \; metro 0;
+#X msg 574 48 \; pd dsp 1 \; metro 1;
+#X floatatom 52 112 0 0 0;
+#X floatatom 52 268 0 0 0;
+#X text 419 349 updated for Pd version 0.33;
+#X obj 574 21 loadbang;
+#X obj 52 235 snapshot~;
+#X floatatom 51 351 9 0 0;
+#X obj 51 295 t f f;
+#X obj 51 322 *;
+#X obj 52 138 sig~;
+#X obj 36 16 rsqrt~;
+#X text 105 14 - signal reciprocal square root;
+#X text 18 45 rsqrt~ takes the approximate reciprocal square root of
+the incoming signal \, using a fast \, approximate algorithm which
+is probably accurate to about 120 dB (20 bits).;
+#X obj 52 162 rsqrt~;
+#X connect 0 0 8 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 0;
+#X connect 4 0 12 0;
+#X connect 5 0 10 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X connect 10 0 11 0;
+#X connect 10 1 11 1;
+#X connect 11 0 9 0;
+#X connect 12 0 16 0;
+#X connect 16 0 8 0;
diff --git a/pd/doc/5.reference/samphold~.pd b/pd/doc/5.reference/samphold~.pd
new file mode 100644
index 00000000..1a58bd02
--- /dev/null
+++ b/pd/doc/5.reference/samphold~.pd
@@ -0,0 +1,34 @@
+#N canvas 121 54 554 287 10;
+#X obj 32 238 snapshot~;
+#X floatatom 32 257;
+#X obj 41 219 metro 100;
+#X obj 41 197 r start;
+#X msg 387 21 \; pd dsp 1 \; start bang;
+#X text 392 270 updated for version 0.29;
+#X text 454 30 Click to start;
+#X text 447 78 Click to stop;
+#X msg 388 65 \; pd dsp 0 \; start 0;
+#X obj 19 7 samphold~;
+#X text 96 6 - sample and hold unit;
+#X obj 32 170 samphold~;
+#X text 10 26 The samphold~ object samples its left input whenever its right input decreases in value (as a phasor~ does each period \, for example.) Both inputs are audio signals.;
+#X obj 67 129 sig~;
+#X obj 101 148 sig~;
+#X floatatom 67 109;
+#X floatatom 101 127;
+#X msg 32 66 set 34;
+#X msg 38 87 reset;
+#X text 81 65 set output to a number;
+#X text 81 86 force the next sample;
+#X text 97 109 sample signal;
+#X text 135 127 control signal;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 11 0 0 0;
+#X connect 13 0 11 0;
+#X connect 14 0 11 1;
+#X connect 15 0 13 0;
+#X connect 16 0 14 0;
+#X connect 17 0 11 0;
+#X connect 18 0 11 0;
diff --git a/pd/doc/5.reference/savepanel.pd b/pd/doc/5.reference/savepanel.pd
new file mode 100644
index 00000000..b5d7e7a6
--- /dev/null
+++ b/pd/doc/5.reference/savepanel.pd
@@ -0,0 +1,12 @@
+#N canvas 9 118 567 234 12;
+#X msg 102 92 bang;
+#X obj 102 145 print;
+#X text 295 199 updated for Pd version 0.24;
+#X text 28 192 see also:;
+#X text 16 35 When Savepanel gets a "bang" a "Save As" file browser appears on the screen \, If you choose a filename \, it appears on the outlet.;
+#X obj 102 120 savepanel;
+#X obj 115 191 openpanel;
+#X obj 19 7 savepanel;
+#X text 104 6 - query you for the name of a file to create;
+#X connect 0 0 5 0;
+#X connect 5 0 1 0;
diff --git a/pd/doc/5.reference/select.pd b/pd/doc/5.reference/select.pd
new file mode 100644
index 00000000..6bc17ad7
--- /dev/null
+++ b/pd/doc/5.reference/select.pd
@@ -0,0 +1,73 @@
+#N canvas 47 29 618 662 12;
+#X floatatom 22 332 0 0 0;
+#X msg 156 120 6;
+#X msg 119 120 234;
+#X floatatom 119 150 0 0 0;
+#X msg 121 301 1;
+#X msg 89 301 54;
+#X obj 22 392 print x1;
+#X obj 100 391 print x2;
+#X msg 58 301 23;
+#X msg 22 302 234;
+#X msg 65 120 6;
+#X obj 28 180 select 6;
+#X msg 28 120 234;
+#X obj 28 210 print x1;
+#X obj 107 211 print x2;
+#X obj 177 391 print x3;
+#X obj 255 392 print x4;
+#X floatatom 28 150 0 0 0;
+#X obj 22 362 select 23 54 1;
+#X text 45 609 abbreviation:;
+#X obj 169 610 sel;
+#X text 20 37 In its simplest form shown below \, Select checks its input agains the constant "6". If they match \, the first outlet gives "bang" and otherwise the input is copied to the second outlet. If Select is used with a single argument \, a second inlet allows you to change the test value.;
+#X text 22 239 You can give several arguments. You get an outlet for each test value and finally an outlet for values which match none of them. In this case you don't get inlets to change the test values:;
+#X obj 32 566 print x1;
+#X obj 114 567 print x2;
+#X msg 34 451 symbol cort;
+#X msg 46 476 symbol zack;
+#X msg 178 476 symbol cort;
+#X msg 184 501 symbol zack;
+#X obj 34 539 select cort;
+#X msg 308 462 symbol cort;
+#X msg 415 462 symbol zack;
+#X obj 308 551 print x1;
+#X obj 385 551 print x2;
+#X obj 308 521 select cort zack;
+#X obj 462 551 print x3;
+#X msg 413 487 symbol bill;
+#X text 24 426 Select can also be used to sort symbols:;
+#X text 83 637 see also:;
+#X obj 175 639 route;
+#X obj 32 10 select;
+#X text 92 10 - compare numbers or symbols;
+#X text 370 629 updated for Pd version 0.33;
+#X connect 0 0 18 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 11 1;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 17 0;
+#X connect 11 0 13 0;
+#X connect 11 1 14 0;
+#X connect 12 0 17 0;
+#X connect 17 0 11 0;
+#X connect 18 0 6 0;
+#X connect 18 1 7 0;
+#X connect 18 2 15 0;
+#X connect 18 3 16 0;
+#X connect 25 0 29 0;
+#X connect 26 0 29 0;
+#X connect 27 0 29 1;
+#X connect 28 0 29 1;
+#X connect 29 0 23 0;
+#X connect 29 1 24 0;
+#X connect 30 0 34 0;
+#X connect 31 0 34 0;
+#X connect 34 0 32 0;
+#X connect 34 1 33 0;
+#X connect 34 2 35 0;
+#X connect 36 0 34 0;
diff --git a/pd/doc/5.reference/send.pd b/pd/doc/5.reference/send.pd
new file mode 100644
index 00000000..f8d44a85
--- /dev/null
+++ b/pd/doc/5.reference/send.pd
@@ -0,0 +1,26 @@
+#N canvas 257 45 511 351 12;
+#X text 278 321 updated for Pd version 0.32;
+#X obj 21 10 send;
+#X text 60 11 -- send messages without patch cords;
+#X obj 36 80 send help-send1;
+#X obj 152 81 send help-send1;
+#X obj 271 81 send help-send2;
+#X obj 38 110 receive help-send1;
+#X obj 171 110 receive help-send2;
+#X obj 305 110 receive help-send2;
+#X floatatom 36 55 5 0 0;
+#X floatatom 152 58 5 0 0;
+#X floatatom 272 57 5 0 0;
+#X floatatom 38 134 5 0 0;
+#X floatatom 171 136 5 0 0;
+#X floatatom 305 134 5 0 0;
+#X obj 161 320 s;
+#X text 62 321 abbreviation:;
+#X text 31 161 "Send" sends messages to "receive" objects. Sends and receives are named to tell them whom to connect to. They work across windows too. Also \, you can use message boxes as shown:;
+#X msg 84 233 \; help-send1 34 \; help-send2 67;
+#X connect 6 0 12 0;
+#X connect 7 0 13 0;
+#X connect 8 0 14 0;
+#X connect 9 0 3 0;
+#X connect 10 0 4 0;
+#X connect 11 0 5 0;
diff --git a/pd/doc/5.reference/send~.pd b/pd/doc/5.reference/send~.pd
new file mode 100644
index 00000000..5c9db395
--- /dev/null
+++ b/pd/doc/5.reference/send~.pd
@@ -0,0 +1,32 @@
+#N canvas 31 28 678 406 12;
+#X floatatom 344 238 0 0 0;
+#X obj 344 189 receive~ signal1;
+#X obj 17 215 send~ signal1;
+#X obj 17 192 sig~ 50;
+#X obj 344 213 snapshot~;
+#X obj 42 22 send~;
+#X obj 94 23 receive~;
+#X text 178 23 - one-to-many nonlocal signal connections;
+#X obj 507 133 loadbang;
+#X obj 507 194 metro 200;
+#X msg 517 155 \; pd dsp 1;
+#X floatatom 18 168 4 0 0;
+#X text 48 51 A send~ object copies its input to a local buffer which all receive~ objects of the same name read from. They may be in different windows or even different patches. Any number of receives may be associated with one send~ but it is an error to have two send~s of the same name.;
+#X obj 179 344 tabreceive~;
+#X text 405 368 updated for Pd version 0.33.;
+#X obj 148 187 sig~ 25;
+#X obj 148 215 send~ signal2;
+#X msg 355 139 set signal2;
+#X msg 356 161 set signal1;
+#X text 34 287 Send~/Receive~ only work for the default block size (64) \; for FFT applications see also:;
+#X text 35 262 Receive~ takes "set" messages to switch between send~s.;
+#X connect 1 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 0 0;
+#X connect 8 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 4 0;
+#X connect 11 0 3 0;
+#X connect 15 0 16 0;
+#X connect 17 0 1 0;
+#X connect 18 0 1 0;
diff --git a/pd/doc/5.reference/set.pd b/pd/doc/5.reference/set.pd
new file mode 100644
index 00000000..227b29b4
--- /dev/null
+++ b/pd/doc/5.reference/set.pd
@@ -0,0 +1,45 @@
+#N struct help-set-template1 float x float y;
+#N canvas 300 3 583 365 12;
+#X text 19 263 see also:;
+#X obj 137 308 template;
+#X obj 112 284 append;
+#X obj 170 284 getsize;
+#X obj 237 284 setsize;
+#X obj 215 308 element;
+#X obj 11 308 sublist;
+#X obj 78 308 scalar;
+#X msg 210 155 next;
+#X obj 21 10 get;
+#X floatatom 19 173 5 0 0;
+#X floatatom 108 181 5 0 0;
+#X obj 196 180 pointer;
+#X text 273 113 output first scalar in list;
+#X text 256 155 output next item;
+#X text 262 204 First argument selects template.;
+#X text 263 219 Remaining args are names of fields.;
+#X obj 11 283 pointer;
+#X msg 196 131 traverse pd-help-set-data \, next;
+#N canvas 0 0 276 122 help-set-data 1;
+#X scalar help-set-template1 39 23 \;;
+#X scalar help-set-template1 99 73 \;;
+#X restore 377 244 pd help-set-data;
+#N canvas 164 72 425 146 help-set-template1 0;
+#X obj 41 87 filledpolygon 9 0 1 0 0 20 0 20 30 0 30;
+#X obj 60 21 template float x float y;
+#X restore 377 266 pd help-set-template1;
+#X text 86 10 -- set values in a scalar;
+#X obj 19 204 set help-set-template1 x y;
+#X text 18 155 x value;
+#X text 106 162 y value;
+#X obj 79 283 get;
+#X text 19 32 "Set" takes a pointer to a scalar in its rightmost inlet
+\; the remaining inlets set numeric values of fields. Only the leftmost
+inlet is "hot". You can't "set" arrays or sublists. Instead \, you
+can get pointers into them using "element" and "sublist" (probably
+not working yet) and set individual items.;
+#X text 336 342 updated for Pd version 0.35;
+#X connect 8 0 12 0;
+#X connect 10 0 22 0;
+#X connect 11 0 22 1;
+#X connect 12 0 22 2;
+#X connect 18 0 12 0;
diff --git a/pd/doc/5.reference/setsize.pd b/pd/doc/5.reference/setsize.pd
new file mode 100644
index 00000000..ce68f5fc
--- /dev/null
+++ b/pd/doc/5.reference/setsize.pd
@@ -0,0 +1,54 @@
+#N struct help-setsize-template float x float y array array1 help-setsize-array1-template
+;
+#N struct help-setsize-array1-template float y;
+#N canvas 331 45 678 459 12;
+#X text 31 359 see also:;
+#X obj 28 379 template;
+#N canvas 393 10 491 261 help-setsize-template 0;
+#X obj 27 174 filledpolygon 509 509 0 -10 -10 10 -10 10 10 -10 10;
+#X obj 24 16 template float x float y array array1 help-setsize-array1-template
+;
+#X obj 27 76 plot array1 500 1 10 15 10;
+#X restore 364 261 pd help-setsize-template;
+#N canvas 0 0 295 165 help-setsize-data 1;
+#X scalar help-setsize-template 31 23 \; 0 \; 10 \; 0 \; 10 \; 20 \;
+10 \; 20 \; 70 \; 10 \; \;;
+#X restore 363 240 pd help-setsize-data;
+#N canvas 196 292 365 134 help-setsize-array1-template 0;
+#X obj 30 71 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5;
+#X obj 32 27 template float y;
+#X restore 363 284 pd help-setsize-array1-template;
+#X obj 107 379 pointer;
+#X obj 242 379 setsize;
+#X obj 272 186 pointer;
+#X msg 272 162 traverse pd-help-setsize-data \, next;
+#X floatatom 25 189 5 0 0;
+#X text 359 210 arguments: template \, field name;
+#X obj 25 213 setsize help-setsize-template array1;
+#X text 115 183 inlet for pointer;
+#X obj 36 11 setsize;
+#X obj 174 379 element;
+#X text 31 156 number sets;
+#X text 30 170 size;
+#X text 99 12 -- resize an array;
+#X text 25 34 "setsize" takes a pointer to a scalar at left and a number
+at right. Its creation arguments specify the template of the pointer
+and the name of an array field. Sending a number then sets the number
+of elements of the array.;
+#X text 24 93 The smallest possible size is one. If the array is resized
+downward the extra data are lost. If resized upward \, the new elements
+are initialized to default values.;
+#X msg 566 335 bang;
+#X text 297 333 click to reload from file -->;
+#X text 274 143 click here first;
+#N canvas 460 63 435 172 readit 1;
+#X msg 66 65 \; pd-help-setsize-data read setsize.txt;
+#X obj 107 18 inlet;
+#X msg 62 123 \; pd-help-setsize-data write setsize.txt;
+#X connect 1 0 0 0;
+#X restore 566 361 pd readit;
+#X text 416 395 updated for Pd version 0.35;
+#X connect 7 0 11 1;
+#X connect 8 0 7 0;
+#X connect 9 0 11 0;
+#X connect 20 0 23 0;
diff --git a/pd/doc/5.reference/setsize.txt b/pd/doc/5.reference/setsize.txt
new file mode 100644
index 00000000..d238fb59
--- /dev/null
+++ b/pd/doc/5.reference/setsize.txt
@@ -0,0 +1,21 @@
+data;
+template help-setsize-template;
+float x;
+float y;
+array array1 help-setsize-array1-template;
+;
+template help-setsize-array1-template;
+float y;
+;
+;
+help-setsize-template 31 23;
+0;
+10;
+0;
+10;
+20;
+10;
+20;
+70;
+10;
+;
diff --git a/pd/doc/5.reference/sigbinops.pd b/pd/doc/5.reference/sigbinops.pd
new file mode 100644
index 00000000..b461c846
--- /dev/null
+++ b/pd/doc/5.reference/sigbinops.pd
@@ -0,0 +1,60 @@
+#N canvas 18 67 1086 595 10;
+#X obj 8 251 +~;
+#X obj 115 249 -~;
+#X obj 222 249 *~;
+#X obj 327 251 /~;
+#X obj 38 17 +~;
+#X obj 73 17 -~;
+#X obj 106 16 *~;
+#X obj 140 16 /~;
+#X graph graph1 0 -1 100 1 678 446 1078 146;
+#X array array1 100 float;
+#X pop;
+#X obj 327 293 tabwrite~ array1;
+#X obj 8 293 tabwrite~ array1;
+#X obj 115 293 tabwrite~ array1;
+#X obj 222 293 tabwrite~ array1;
+#X text 266 14 -- operators on audio signals;
+#X obj 8 160 osc~ 440;
+#X obj 480 157 osc~ 675;
+#X msg 17 271 bang;
+#X obj 173 15 max~;
+#X obj 207 15 min~;
+#X text 487 458 modified for Pd version 0.27;
+#X obj 536 293 tabwrite~ array1;
+#X obj 431 293 tabwrite~ array1;
+#X obj 431 249 max~;
+#X obj 536 251 min~;
+#X msg 127 272 bang;
+#X msg 233 271 bang;
+#X msg 343 272 bang;
+#X msg 443 271 bang;
+#X msg 553 272 bang;
+#X text 52 332 The binary signal operators can be configured to combine two signals as above \, or \, if you give a numeric argument \, audio signals are combined with scalars:;
+#X obj 204 377 +~ 5;
+#X text 60 406 The right inlet takes audio signals or numbers depending on whether the argument is present or not.;
+#X msg 68 71 \; pd dsp 1;
+#X connect 0 0 10 0;
+#X connect 1 0 11 0;
+#X connect 2 0 12 0;
+#X connect 3 0 9 0;
+#X connect 14 0 0 0;
+#X connect 14 0 1 0;
+#X connect 14 0 3 0;
+#X connect 14 0 2 0;
+#X connect 14 0 22 0;
+#X connect 14 0 23 0;
+#X connect 15 0 3 1;
+#X connect 15 0 2 1;
+#X connect 15 0 1 1;
+#X connect 15 0 0 1;
+#X connect 15 0 22 1;
+#X connect 15 0 23 1;
+#X connect 16 0 10 0;
+#X connect 22 0 21 0;
+#X connect 23 0 20 0;
+#X connect 24 0 11 0;
+#X connect 25 0 12 0;
+#X connect 26 0 9 0;
+#X connect 27 0 21 0;
+#X connect 28 0 20 0;
diff --git a/pd/doc/5.reference/sig~.pd b/pd/doc/5.reference/sig~.pd
new file mode 100644
index 00000000..72781487
--- /dev/null
+++ b/pd/doc/5.reference/sig~.pd
@@ -0,0 +1,20 @@
+#N canvas 132 175 547 284 12;
+#X obj 109 221 snapshot~;
+#X floatatom 110 246 0 0 0;
+#X obj 78 12 sig~;
+#X obj 24 133 sig~;
+#X floatatom 24 108 0 0 0;
+#X text 114 14 - convert numbers to audio signal;
+#X text 11 53 In this example \, the sig~ object converts numbers to an audio signal \, which the snapshot~ converts back again.;
+#X text 64 108 <-- Scroll to set value;
+#X obj 109 131 loadbang;
+#X msg 118 155 \; pd dsp 1;
+#X obj 109 195 metro 200;
+#X text 291 249 updated for Pd version 0.33;
+#X connect 0 0 1 0;
+#X connect 0 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 0;
+#X connect 8 0 9 0;
+#X connect 8 0 10 0;
+#X connect 10 0 0 0;
diff --git a/pd/doc/5.reference/snapshot~.pd b/pd/doc/5.reference/snapshot~.pd
new file mode 100644
index 00000000..244a2a7c
--- /dev/null
+++ b/pd/doc/5.reference/snapshot~.pd
@@ -0,0 +1,28 @@
+#N canvas 40 55 704 399 12;
+#X obj 205 266 snapshot~;
+#X floatatom 205 292 0 0 0;
+#X obj 105 274 snapshot~;
+#X floatatom 105 318 0 0 0;
+#X obj 74 14 snapshot~;
+#X msg 205 236 bang;
+#X text 201 313 This output updates each time bang is clicked above.;
+#X text 154 14 - convert a signal to a number on demand;
+#X text 9 46 The snapshot~ object takes a signal and converts it to a control value whenever it receives a bang in its left outlet. This object is particularly useful for monitoring outputs.;
+#X text 459 375 updated for Pd version 0.33;
+#X msg 19 212 \; pd dsp 1;
+#X obj 12 187 loadbang;
+#X obj 12 251 metro 200;
+#X text 104 334 This output updates every 200 milliseconds.;
+#X obj 105 214 osc~ 0.1;
+#X text 110 196 0.1 Hz cosine;
+#X text 7 111 In the example below \, the first snapshot~ object prints out the values of a low frequency cosine wave every 200 milliseconds. The second snapshot~ object prints the output value when the bang button above it is clicked.;
+#X connect 0 0 1 0;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 2 0 3 0;
+#X connect 5 0 0 0;
+#X connect 11 0 10 0;
+#X connect 11 0 12 0;
+#X connect 12 0 2 0;
+#X connect 14 0 2 0;
+#X connect 14 0 0 0;
diff --git a/pd/doc/5.reference/soundfiler.pd b/pd/doc/5.reference/soundfiler.pd
new file mode 100644
index 00000000..c6384664
--- /dev/null
+++ b/pd/doc/5.reference/soundfiler.pd
@@ -0,0 +1,66 @@
+#N canvas 82 31 926 613 10;
+#X graph graph1 0 -1 77971 1 71 453 371 353;
+#X array array1 77971 float 0;
+#X pop;
+#X graph graph1 0 -1 77971 1 71 575 371 475;
+#X array array2 77971 float 0;
+#X pop;
+#X obj 12 293 soundfiler;
+#X msg 532 476 \; array1 resize 1000 \; array2 resize 1000 \;;
+#X msg 18 221 write -aiff /tmp/foo1 array2;
+#X msg 19 132 read ../sound/bell.aiff array2;
+#X msg 18 179 read -raw 128 2 2 b ../sound/bell.aiff array1 array2
+;
+#X msg 532 522 \; array1 resize 160000 \; array2 resize 160000;
+#X msg 530 431 \; array1 const 0 \; array2 const 0;
+#X text 26 10 SOUNDFILER - read and write soundfiles to arrays;
+#X text 18 31 The soundfiler object reads and writes floating point
+arrays to binary soundfiles which may contain 2 or 3 byte fixed point
+or 4 byte floating point samples in wave \, aiff \, or next formats
+(only next supports floating point \, though.). The number of channels
+of the soundfile need not match the number of arrays given (extras
+are dropped and unsupplied channels are zeroed out.);
+#X text 475 9 When reading you can leave soundfiler to figure out which
+of the three known soundfile formats the file belongs to or override
+all header information using the "-raw" flag.;
+#X text 479 51 Flags for reading:;
+#X text 498 73 -skip <sample frames to skip in file>;
+#X text 498 90 -nframes <maximum number of sample frames to read>;
+#X text 499 148 -raw <headersize> <channels> <bytespersample> <endianness>
+;
+#X text 518 166 This causes all header information to be ignored. Endianness
+is "l" ("little") for Intel machines or "b" ("big") for Macintoshes
+and SGIs. You can give "n" (natural) to take the byte order your machine
+prefers.;
+#X text 499 111 -resize;
+#X text 499 127 -maxsize <maximum number of samples we can resize to>
+;
+#X text 488 225 Flags for writing:;
+#X text 503 246 -wave \, -nextstep \, -aiff;
+#X text 504 265 -big \, -little (nextstep only!);
+#X text 503 287 -skip <number of sample frames to skip in array>;
+#X text 504 309 -nframes <maximum number to write>;
+#X text 505 353 -normalize;
+#X text 504 331 -bytes <2 \, 3 \, or 4>;
+#X floatatom 12 317 0 0 0;
+#X msg 16 155 read -resize ../sound/bell.aiff array2;
+#X text 707 581 updated for Pd version 0.29;
+#X msg 18 268 write -nextstep -bytes 4 /tmp/foo3 array1 array2;
+#X msg 17 245 write -wave -nframes 10000 /tmp/foo2 array2;
+#X text 257 130 read a file;
+#X text 302 155 ...optionally resize;
+#X text 230 196 ...or even overriding everything;
+#X text 235 221 write a file;
+#X text 376 270 write stereo;
+#X text 488 384 The number of channels is limited to 64;
+#X text 790 429 see also:;
+#X obj 784 452 tabwrite~;
+#X obj 785 476 tabread4~;
+#X obj 784 503 tabplay~;
+#X connect 2 0 26 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 2 0;
+#X connect 27 0 2 0;
+#X connect 29 0 2 0;
+#X connect 30 0 2 0;
diff --git a/pd/doc/5.reference/spigot.pd b/pd/doc/5.reference/spigot.pd
new file mode 100644
index 00000000..3daf9157
--- /dev/null
+++ b/pd/doc/5.reference/spigot.pd
@@ -0,0 +1,21 @@
+#N canvas 349 223 586 335 12;
+#X msg 25 157 0.5 1000;
+#X floatatom 74 242 1 0 0;
+#X obj 25 267 spigot;
+#X obj 25 300 print;
+#X msg 38 210 walk the cat;
+#X msg 31 182 bang;
+#X obj 35 11 spigot;
+#X text 100 12 - pass or block messages;
+#X text 99 242 control: nonzero to pass messages \, zero to stop them
+;
+#X text 333 303 updated for Pd version 0.33;
+#X text 35 63 Spigot passes messages from its left inlet to its outlet
+\, as long as a nonzero number is sent to its right inlet. When its
+right inlet gets zero \, incoming messages are "blocked \, " i.e. \,
+ignored.;
+#X connect 0 0 2 0;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
diff --git a/pd/doc/5.reference/sqrt~.pd b/pd/doc/5.reference/sqrt~.pd
new file mode 100644
index 00000000..b7b8e1a4
--- /dev/null
+++ b/pd/doc/5.reference/sqrt~.pd
@@ -0,0 +1,32 @@
+#N canvas 182 132 778 399 12;
+#X obj 71 201 metro 500;
+#X obj 71 176 r metro;
+#X msg 575 106 \; metro 0;
+#X msg 574 48 \; pd dsp 1 \; metro 1;
+#X floatatom 55 102 0 0 0;
+#X floatatom 55 258 0 0 0;
+#X text 470 371 updated for Pd version 0.33;
+#X obj 574 21 loadbang;
+#X obj 36 16 sqrt~;
+#X text 88 18 - signal square root;
+#X obj 55 152 sqrt~;
+#X obj 55 225 snapshot~;
+#X floatatom 54 341 9 0 0;
+#X obj 54 285 t f f;
+#X obj 54 312 *;
+#X obj 55 128 sig~;
+#X text 18 45 sqrt~ takes the approximate square root of the incoming
+signal \, using a fast \, approximate algorithm which is probably accurate
+to about 120 dB (20 bits).;
+#X connect 0 0 11 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 0;
+#X connect 4 0 15 0;
+#X connect 5 0 13 0;
+#X connect 7 0 3 0;
+#X connect 10 0 11 0;
+#X connect 11 0 5 0;
+#X connect 13 0 14 0;
+#X connect 13 1 14 1;
+#X connect 14 0 12 0;
+#X connect 15 0 10 0;
diff --git a/pd/doc/5.reference/stripnote.pd b/pd/doc/5.reference/stripnote.pd
new file mode 100644
index 00000000..80a8cecb
--- /dev/null
+++ b/pd/doc/5.reference/stripnote.pd
@@ -0,0 +1,16 @@
+#N canvas 53 36 458 251 10;
+#X msg 39 100 23 0;
+#X obj 39 175 print x1;
+#X obj 96 175 print x2;
+#X obj 39 139 stripnote;
+#X msg 79 100 34.5 67.8;
+#X obj 65 214 makenote;
+#X text 83 12 - send note-on messages and schedule note-off for later;
+#X text 283 220 updated for Pd version 0.28;
+#X text 10 214 see also;
+#X obj 23 10 stripnote;
+#X text 17 44 Stripnote takes note-off (zero-velocity) messages out of a stream of MIDI-style note message and passes the others through unchanged.;
+#X connect 0 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 1 2 0;
+#X connect 4 0 3 0;
diff --git a/pd/doc/5.reference/struct.pd b/pd/doc/5.reference/struct.pd
new file mode 100644
index 00000000..a18fa6e9
--- /dev/null
+++ b/pd/doc/5.reference/struct.pd
@@ -0,0 +1,26 @@
+#N canvas 343 45 557 321 12;
+#X text 88 11 -- declare the fields in a data structure.;
+#N canvas 345 476 638 171 help-template1 0;
+#X obj 60 21 struct struct-1 float x float y symbol dog array weasel
+struct-2;
+#X text 40 76 In this example \, the "struct-1" structure is defined
+in which "x" and "y" are "floats" \, i.e. \, numbers \, but "dog" is
+a symbol and "weasel" is an array of objects of structure "struct-2".
+;
+#X restore 324 156 pd help-template1;
+#N canvas 10 274 588 157 help-template2 0;
+#X text 28 95 Here is one which specifies only the floating point "y"
+\; it's used for the elements of the array shown in the other template.
+;
+#X obj 60 21 struct struct-2 float y;
+#X restore 324 183 pd help-template2;
+#X obj 36 215 drawpolygon;
+#X text 36 195 see also:;
+#X obj 141 215 drawnumber;
+#X obj 236 216 plot;
+#X text 281 290 updated for Pd version 0.35;
+#X obj 21 10 struct;
+#X text 16 49 There should be one "struct" object in each Pd window
+you are using as a data structure template. The arguments specify the
+types and names of the fields \; and for array fields \, a third argument
+specifies the template that the array elements should belong to.;
diff --git a/pd/doc/5.reference/sublist.pd b/pd/doc/5.reference/sublist.pd
new file mode 100644
index 00000000..a3067d5a
--- /dev/null
+++ b/pd/doc/5.reference/sublist.pd
@@ -0,0 +1,10 @@
+#N canvas 252 0 559 226 12;
+#X text 311 181 updated for Pd version 0.32;
+#X obj 21 10 sublist;
+#X text 86 10 -- get a list from a field of a scalar;
+#X text 31 37 Don't try this yet -- it's untested.;
+#X text 36 89 "sublist" will take as creation arguments a template
+name and a field name \; its one input takes a pointer. If you send
+a pointer (which should agree with the template name) \, "sublist"
+will output the field (which should be of type "list".) The output
+is in fact a pointer to the head of the sublist.;
diff --git a/pd/doc/5.reference/swap.pd b/pd/doc/5.reference/swap.pd
new file mode 100644
index 00000000..987a5844
--- /dev/null
+++ b/pd/doc/5.reference/swap.pd
@@ -0,0 +1,20 @@
+#N canvas 376 130 488 326 12;
+#X msg 67 124 bang;
+#X floatatom 67 252;
+#X floatatom 79 154;
+#X floatatom 118 194;
+#X obj 66 15 swap;
+#X text 114 16 - SWAP TWO NUMBERS \, RESPECTING RIGHT-TO-LEFT ORDER;
+#X text 284 309 updated for Pd version 0.27;
+#X text 12 42 The swap object stores numbers from its left inlet to output on its right inlet -- after repeating its right hand input out the left.;
+#X text 112 123 outputs 2 stored values;
+#X obj 67 226 swap 6.5;
+#X text 110 154 sets second value and outputs both;
+#X text 150 195 sets first value;
+#X text 142 226 creation argument initializes first value;
+#X floatatom 118 254;
+#X connect 0 0 9 0;
+#X connect 2 0 9 0;
+#X connect 3 0 9 1;
+#X connect 9 0 1 0;
+#X connect 9 1 13 0;
diff --git a/pd/doc/5.reference/switch~.pd b/pd/doc/5.reference/switch~.pd
new file mode 100644
index 00000000..c3ab8797
--- /dev/null
+++ b/pd/doc/5.reference/switch~.pd
@@ -0,0 +1,45 @@
+#N canvas 218 166 619 368 12;
+#X msg 382 133 \; metro 0;
+#X text 462 92 <-Click to start;
+#X text 455 137 <-Click to stop;
+#X text 47 13 switch and block - turn DSP on and off for subpatches
+and control block size;
+#N canvas 15 32 598 301 switched 1;
+#X obj 265 148 switch~;
+#X floatatom 265 121 1 0 0;
+#X floatatom 75 168 4 0 0;
+#X obj 75 104 noise~;
+#X obj 75 136 env~ 512;
+#X text 25 26 DSP in this subwindow is turned on and off by the switch~
+object. Any subwindows of this window can also be switched off here.
+If a patch and a superpatch both have switches \, both must be "on"
+for DSP to run in the patch.;
+#X text 32 203 switch~ takes optional arguments the same as block~.
+If you supply arguments to switch \, the patch will be switched AND
+reblocked.;
+#X text 31 258 Only one switch~ or block~ may appear in any window.
+;
+#X connect 1 0 0 0;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X restore 139 124 pd switched;
+#N canvas 13 421 564 200 blocked 1;
+#X obj 184 35 block~ 1024 4;
+#X text 14 76 This object specified that DSP in this subwindow is to
+be computed at a block size of 1024 \, and an overlap of 4 \, i.e.
+\, every 256 samples. You may not (yet) specify a block size smaller
+than your superpatch. This is useful for writing FFT based patches
+(see the "fft examples" tutorial series.);
+#X restore 141 158 pd blocked;
+#X msg 382 87 \; pd dsp 1;
+#X obj 382 61 loadbang;
+#X text 38 82 see the subpatches for explanation:;
+#X text 362 334 updated for Pd version 0.34;
+#X text 34 195 BUG! -- dac~ and adc~ work only with a blocksize of
+64 If you want to reblock audio computation \, do so in a sub-patch
+and keep the adc~ and dac~ objects in a super-patch. Also \, you can't
+send~ or receive~ between windows with different block sizes or overlapping.
+Only the inlet~ and outlet~ objects know how to reblock signals. In
+this example \, you could put a dac~ in this \, outer window \, or
+in the switched subwindow \, but not the blocked one.;
+#X connect 7 0 6 0;
diff --git a/pd/doc/5.reference/table.txt b/pd/doc/5.reference/table.txt
new file mode 100644
index 00000000..f2a27ae0
--- /dev/null
+++ b/pd/doc/5.reference/table.txt
@@ -0,0 +1 @@
+0 0.1 0.2 0.3 0.4 0.5 0.6 0.5 0.4 0.3 0.2 0.1 0
diff --git a/pd/doc/5.reference/tabosc4~.pd b/pd/doc/5.reference/tabosc4~.pd
new file mode 100644
index 00000000..ada694e1
--- /dev/null
+++ b/pd/doc/5.reference/tabosc4~.pd
@@ -0,0 +1,86 @@
+#N canvas 307 35 742 511 12;
+#X floatatom 66 450 0 0 0;
+#N canvas 159 26 495 270 output 0;
+#X obj 414 196 t b;
+#X obj 414 134 f;
+#X obj 414 73 inlet;
+#X text 421 36 mute;
+#X obj 414 227 f;
+#X msg 521 218 0;
+#X msg 414 104 bang;
+#X obj 414 166 moses 1;
+#X obj 521 187 t b f;
+#X obj 486 143 moses 1;
+#X obj 102 181 dbtorms;
+#X obj 486 113 r master-lvl;
+#X obj 102 52 r master-lvl;
+#X obj 414 257 s master-lvl;
+#X obj 26 222 inlet~;
+#X obj 244 50 inlet;
+#X text 244 22 level;
+#X obj 244 122 s master-lvl;
+#X msg 118 80 set \$1;
+#X obj 118 109 outlet;
+#X msg 262 78 \; pd dsp 1;
+#X obj 102 238 line~;
+#X obj 26 259 *~;
+#X obj 26 295 dac~;
+#X obj 102 210 pack 0 50;
+#X text 24 195 audio;
+#X text 114 135 show level;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 24 0;
+#X connect 11 0 1 1;
+#X connect 11 0 9 0;
+#X connect 12 0 10 0;
+#X connect 12 0 18 0;
+#X connect 14 0 22 0;
+#X connect 15 0 17 0;
+#X connect 15 0 20 0;
+#X connect 18 0 19 0;
+#X connect 21 0 22 1;
+#X connect 22 0 23 0;
+#X connect 22 0 23 1;
+#X connect 24 0 21 0;
+#X restore 32 476 pd output;
+#X msg 102 450 MUTE;
+#X text 148 449 <--- volume in dB;
+#X floatatom 32 296 4 0 0;
+#X obj 32 326 sig~ 100;
+#X obj 547 52 table table1;
+#X obj 547 80 table table2;
+#X msg 372 287 \; table1 sinesum 512 0.5 0.5 0.5 0.5 \; table2 cosinesum 512 0 1;
+#X text 433 474 Updated for Pd version 0.33;
+#X obj 20 11 tabosc4~;
+#X text 110 12 4-point interpolating oscillator;
+#X msg 52 372 set table1;
+#X obj 32 413 tabosc4~ table1;
+#X msg 156 372 set table2;
+#X text 372 343 click above \, start DSP \, and turn output;
+#X text 372 361 volume up to hear this;
+#X text 14 40 tabosc4~ is a traditional computer music style wavetable lookup oscillator using 4-point polynomial interpolation. The table should have a poiwer of two points plus three "guard points" \, one at the beginning and two at the end \, which should be wraparound copies of the last point and the first two points \, respectively. The "sinesum" and "cosinesum" methods for arrays do this automatically for you if you just want to specify partial strengths.;
+#X text 14 178 For good results use 512 points for up to about 15 partials \, or 32*npartials (rounded up to a power of 2) for more than 15;
+#X floatatom 275 391 4 0 0;
+#X text 12 233 Don't send new "sinesum" messages to tables while you're running -- instead \, use "set" messages to switch between tables.;
+#X text 80 298 signal input for frequency (Hz.);
+#X text 46 349 message to switch tables;
+#X text 325 391 inlet to reset phase;
+#X text 166 414 creation argument initializes table;
+#X connect 0 0 1 1;
+#X connect 1 0 0 0;
+#X connect 2 0 1 2;
+#X connect 4 0 5 0;
+#X connect 5 0 13 0;
+#X connect 12 0 13 0;
+#X connect 13 0 1 0;
+#X connect 14 0 13 0;
+#X connect 19 0 13 1;
diff --git a/pd/doc/5.reference/tabplay~.pd b/pd/doc/5.reference/tabplay~.pd
new file mode 100644
index 00000000..92cdb81e
--- /dev/null
+++ b/pd/doc/5.reference/tabplay~.pd
@@ -0,0 +1,66 @@
+#N canvas 28 13 707 471 10;
+#X msg 639 93 \; pd dsp 0;
+#X graph graph1 0 -1 155948 1 428 369 678 169;
+#X array array99 155948 float 0;
+#X pop;
+#X floatatom 11 342 0 0 0;
+#X msg 11 109 set array99;
+#X text 93 109 "set" message permits you to switch between arrays;
+#X text 128 228 creation argument initializes array name;
+#X text 5 392 see also the "array" tutorial in section 2 of the Pd
+documentation \, and these objects:;
+#X obj 6 438 tabwrite~;
+#X obj 140 439 tabread;
+#X obj 194 439 tabwrite;
+#X obj 254 439 tabsend~;
+#X obj 315 439 tabreceive~;
+#X obj 41 13 tabplay~;
+#X text 108 14 play a table as a sample (non-transposing);
+#X obj 11 228 tabplay~ array99;
+#X obj 452 82 soundfiler;
+#X msg 452 48 read -resize ../sound/bell.aiff array99 \; pd dsp 1 \;
+;
+#X floatatom 452 104 0 0 0;
+#X obj 11 316 env~ 16384;
+#X obj 396 439 soundfiler;
+#X obj 73 439 tabread4~;
+#X obj 87 360 dac~ 1;
+#X obj 87 323 *~;
+#X obj 100 304 line~;
+#X msg 100 263 0.1 100;
+#X msg 116 284 0 100;
+#X text 162 264 on;
+#X text 157 283 off;
+#X text 148 301 envelope;
+#X text 148 312 generator;
+#X text 101 248 amplitude controls:;
+#X text 131 362 audio output;
+#X obj 87 342 hip~ 5;
+#X msg 26 179 0 44100;
+#X msg 27 158 44100;
+#X msg 26 138 bang;
+#X text 475 449 updated for Pd version 0.29;
+#X text 29 43 The tabplay~ object plays a sample \, or part of one
+\, with no transposition or interpolation. It is cheaper than tabread4~
+and there are none of tabread4~'s interpolation artifacts.;
+#X text 509 25 click here to load table;
+#X text 80 136 "bang" or 0 plays whole sample;
+#X text 82 157 play starting at 44100th sample;
+#X text 93 177 play starting at beginning for 44100 samples;
+#X msg 25 199 44100 1000;
+#X text 103 198 play from 44100 through 45099 (1000 samples);
+#X connect 3 0 14 0;
+#X connect 14 0 18 0;
+#X connect 14 0 22 0;
+#X connect 15 0 17 0;
+#X connect 16 0 15 0;
+#X connect 18 0 2 0;
+#X connect 22 0 32 0;
+#X connect 23 0 22 1;
+#X connect 24 0 23 0;
+#X connect 25 0 23 0;
+#X connect 32 0 21 0;
+#X connect 33 0 14 0;
+#X connect 34 0 14 0;
+#X connect 35 0 14 0;
+#X connect 42 0 14 0;
diff --git a/pd/doc/5.reference/tabread.pd b/pd/doc/5.reference/tabread.pd
new file mode 100644
index 00000000..fa671a21
--- /dev/null
+++ b/pd/doc/5.reference/tabread.pd
@@ -0,0 +1,21 @@
+#N canvas 44 26 703 454 12;
+#X text 52 181 index;
+#X obj 36 9 tabread;
+#X obj 15 244 tabread array99;
+#X floatatom 15 182 0 0 0;
+#X floatatom 15 278 0 0 0;
+#X graph graph1 0 0 10 10 362 379 612 179;
+#X array array99 10 float;
+#X pop;
+#X msg 31 56 \; readout 1 \; array99 resize 10 \; array99 bounds 0 0 10 10 \; array99 xlabel -0.5 0 1 2 3 4 5 6 7 8 9 10 \; array99 ylabel -1 0 1 2 3 4 5 6 7 8 9 10 \; array99 0 1 4 2 8 5 6 1 4 2 8;
+#X text 60 276 output = array99[index];
+#X text 141 33 click here to initialize;
+#X text 159 236 creation argument;
+#X text 155 254 gives array name;
+#X msg 25 204 set array99;
+#X text 137 204 change array name;
+#X text 422 407 updated for Pd version 0.33;
+#X text 110 8 - read numbers from a table;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;
+#X connect 11 0 2 0;
diff --git a/pd/doc/5.reference/tabread4~.pd b/pd/doc/5.reference/tabread4~.pd
new file mode 100644
index 00000000..c28f580a
--- /dev/null
+++ b/pd/doc/5.reference/tabread4~.pd
@@ -0,0 +1,43 @@
+#N canvas 59 33 814 475 10;
+#X obj 11 228 tabread4~ array99;
+#X text 21 207 signal input x(n);
+#X msg 727 51 \; pd dsp 0;
+#X graph graph1 0 -1 9 1 514 373 764 173;
+#X array array99 10 float 0;
+#X pop;
+#X text 127 21 4-point-interpolating table lookup;
+#X obj 11 316 snapshot~;
+#X obj 30 290 metro 200;
+#X obj 11 124 sig~;
+#X floatatom 11 98 0 0 0;
+#X obj 30 264 r readout;
+#X floatatom 11 342 0 0 0;
+#X msg 452 50 \; readout 1 \; array99 resize 10 \; array99 0 -0.5 -0.5
+-0.5 0.5 0.5 0.5 \; pd dsp 1 \;;
+#X text 49 94 incoming signal is index. Indices should range from 1
+to (size-2) so that the 4-point interpolation is meaningful. You can
+shift-drag the number box to see the effect of interpolation.;
+#X msg 34 158 set array99;
+#X text 116 158 "set" message permits you to switch between arrays
+;
+#X text 139 228 creation argument initializes array name;
+#X text 5 392 see also the "array" tutorial in section 2 of the Pd
+documentation \, and these objects:;
+#X obj 47 21 tabread4~;
+#X text 509 27 click here to test;
+#X obj 12 442 tabwrite~;
+#X obj 157 442 tabread;
+#X obj 216 442 tabwrite;
+#X obj 281 442 tabsend~;
+#X obj 346 442 tabreceive~;
+#X text 7 58 Tabread4~ is used to build samplers and other table lookup
+algorithms. The interpolation scheme is 4-point polynomial.;
+#X text 616 460 updated for Pd version 0.29;
+#X obj 83 442 tabplay~;
+#X connect 0 0 5 0;
+#X connect 5 0 10 0;
+#X connect 6 0 5 0;
+#X connect 7 0 0 0;
+#X connect 8 0 7 0;
+#X connect 9 0 6 0;
+#X connect 13 0 0 0;
diff --git a/pd/doc/5.reference/tabreceive~.pd b/pd/doc/5.reference/tabreceive~.pd
new file mode 100644
index 00000000..7de98346
--- /dev/null
+++ b/pd/doc/5.reference/tabreceive~.pd
@@ -0,0 +1,6 @@
+#N canvas 109 83 646 239 12;
+#X obj 21 18 tabreceive~;
+#X text 17 53 creation argument: name of array;
+#X text 16 83 By default a block is 64 samples \; this can be reset using the block~ object.;
+#X text 380 201 updated for Pd version 0.33;
+#X text 129 18 - read a block of a signal from an array continuously;
diff --git a/pd/doc/5.reference/tabsend~.pd b/pd/doc/5.reference/tabsend~.pd
new file mode 100644
index 00000000..85a4183f
--- /dev/null
+++ b/pd/doc/5.reference/tabsend~.pd
@@ -0,0 +1,6 @@
+#N canvas 151 91 596 222 12;
+#X obj 31 27 tabsend~;
+#X text 113 26 writes one block of a signal continuously to an array;
+#X text 41 60 creation argument: name of array;
+#X text 29 96 By default a block is 64 samples \; this can be reset using the block~ object.;
+#X text 318 186 updated for Pd version 0.33;
diff --git a/pd/doc/5.reference/tabwrite.pd b/pd/doc/5.reference/tabwrite.pd
new file mode 100644
index 00000000..60b31513
--- /dev/null
+++ b/pd/doc/5.reference/tabwrite.pd
@@ -0,0 +1,21 @@
+#N canvas 44 17 653 456 12;
+#X obj 31 27 tabwrite;
+#X floatatom 9 176 0 0 0;
+#X obj 9 282 tabwrite array99;
+#X text 113 28 write numbers to a table;
+#X graph graph1 0 0 10 10 355 389 605 189;
+#X array array99 10 float;
+#X pop;
+#X msg 9 53 \; readout 1 \; array99 resize 10 \; array99 bounds 0 0 10 10 \; array99 xlabel -0.5 0 1 2 3 4 5 6 7 8 9 10 \; array99 ylabel -1 0 1 2 3 4 5 6 7 8 9 10 \; array99 0 1 4 2 8 5 6 1 4 2 8;
+#X text 406 94 click here to initialize;
+#X floatatom 146 257 0 0 0;
+#X text 158 279 creation argument;
+#X text 160 297 is array name;
+#X text 46 174 set y value;
+#X text 44 239 right inlet selects x value;
+#X msg 25 204 set array99;
+#X text 133 203 change array name;
+#X text 389 423 updated for Pd version 0.33;
+#X connect 1 0 2 0;
+#X connect 7 0 2 1;
+#X connect 12 0 2 0;
diff --git a/pd/doc/5.reference/tabwrite~.pd b/pd/doc/5.reference/tabwrite~.pd
new file mode 100644
index 00000000..606f4f30
--- /dev/null
+++ b/pd/doc/5.reference/tabwrite~.pd
@@ -0,0 +1,30 @@
+#N canvas 119 134 697 332 10;
+#X obj 31 27 tabwrite~;
+#X text 110 27 object to write a signal in an array;
+#X msg 43 131 bang;
+#X obj 23 211 tabwrite~ array99;
+#X graph graph1 0 -1 100 1 460 235 610 135;
+#X array array99 100 float;
+#X pop;
+#X obj 23 82 sig~ 3000;
+#X obj 23 110 phasor~;
+#X text 149 213 creation argument initializes array name;
+#X msg 40 181 set array99;
+#X msg 445 35 \; pd dsp 1;
+#X msg 524 37 \; pd dsp 0;
+#X text 85 133 bang to start recording;
+#X text 126 180 set the destination array;
+#X text 18 251 see also the "array" tutorial in section 2 of the Pd documentation \, and these objects:;
+#X obj 90 282 tabread;
+#X obj 149 282 tabwrite;
+#X obj 214 282 tabsend~;
+#X obj 279 282 tabreceive~;
+#X obj 17 282 tabread4~;
+#X msg 43 153 stop;
+#X text 85 154 stop recording;
+#X text 458 288 updated for Pd version 0.29;
+#X connect 2 0 3 0;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X connect 8 0 3 0;
+#X connect 19 0 3 0;
diff --git a/pd/doc/5.reference/text.pd b/pd/doc/5.reference/text.pd
new file mode 100644
index 00000000..96664048
--- /dev/null
+++ b/pd/doc/5.reference/text.pd
@@ -0,0 +1,4 @@
+#N canvas 74 127 544 214 12;
+#X text 281 174 updated for Pd version 0.26;
+#X text 107 13 comments;
+#X text 38 73 This is Pd's help window for comments \, which don't do anything.;
diff --git a/pd/doc/5.reference/textfile.pd b/pd/doc/5.reference/textfile.pd
new file mode 100644
index 00000000..8da1dde6
--- /dev/null
+++ b/pd/doc/5.reference/textfile.pd
@@ -0,0 +1,59 @@
+#N canvas 12 43 1181 529 12;
+#X msg 582 27 rewind;
+#X obj 577 416 print done;
+#X text 745 185 read a file;
+#X text 801 214 write one;
+#X text 97 472 see also:;
+#X obj 521 365 textfile;
+#X msg 584 188 read textfile.txt;
+#X obj 176 473 qlist;
+#X obj 145 20 textfile;
+#X text 236 20 read and write text files;
+#X text 34 92 The textfile object reads and writes text files to and
+from memory. You can read a file and output sequential lines as lists
+\, or collect lines and write them out. You can use this object to
+generate "models" for Gem \, for instance.;
+#X text 665 28 go to beginning;
+#X msg 582 54 bang;
+#X text 665 53 output one line as a list;
+#X msg 584 216 write /tmp/textfile.txt;
+#X msg 584 243 write /tmp/textfile2.txt cr;
+#X text 593 264 write a file \, terminating lines only with carriage
+return (omitting semicolons.) You can read files this way too \, in
+which case carriage returns are mapped to semicolons.;
+#X obj 521 438 print list;
+#X msg 583 312 read textfile.txt cr;
+#X msg 582 82 clear;
+#X text 737 83 empty the object;
+#X text 737 111 add a message;
+#X text 521 464 this outlet gets the lines in sequence.;
+#X text 35 246 You can also use this object simply for storing heterogeneous
+sequences of lists.;
+#X text 608 385 This outlet gets a bang when you hit the end of the
+sequence.;
+#X msg 582 162 set 2 4 6 8;
+#X text 740 163 clear and then add one message;
+#X msg 582 109 add cis boom bah;
+#X msg 582 136 add2 bang;
+#X text 734 136 add an unterminated message;
+#X text 31 160 To record textual messages and save them to a file \,
+first send "clear" to empty the qlist and "add" to add messages (terminated
+with semicolons.) The message \, "add2" adds a list of atoms without
+finishing with a semicolon in case you want to make variable-length
+messages.;
+#X msg 582 339 print;
+#X text 636 342 debugging printout;
+#X text 901 500 updated for Pd version 0.33;
+#X connect 0 0 5 0;
+#X connect 5 0 17 0;
+#X connect 5 1 1 0;
+#X connect 6 0 5 0;
+#X connect 12 0 5 0;
+#X connect 14 0 5 0;
+#X connect 15 0 5 0;
+#X connect 18 0 5 0;
+#X connect 19 0 5 0;
+#X connect 25 0 5 0;
+#X connect 27 0 5 0;
+#X connect 28 0 5 0;
+#X connect 31 0 5 0;
diff --git a/pd/doc/5.reference/textfile.txt b/pd/doc/5.reference/textfile.txt
new file mode 100644
index 00000000..99d21c09
--- /dev/null
+++ b/pd/doc/5.reference/textfile.txt
@@ -0,0 +1,6 @@
+2 4 6 8;
+cis boom bah;
+cis boom bah;
+cis boom bah;
+cis boom bah;
+cis boom bah;
diff --git a/pd/doc/5.reference/threshold~.pd b/pd/doc/5.reference/threshold~.pd
new file mode 100644
index 00000000..5922d15b
--- /dev/null
+++ b/pd/doc/5.reference/threshold~.pd
@@ -0,0 +1,31 @@
+#N canvas 114 43 685 360 12;
+#X msg 452 58 \; pd dsp 0;
+#X msg 452 24 \; pd dsp 1;
+#X obj 124 11 threshold~;
+#X text 200 12 - TRIGGER FROM AUDIO SIGNAL;
+#X obj 49 183 sig~;
+#X obj 49 261 threshold~ 10 100 0 100;
+#X text 303 255 Arguments:;
+#X text 384 255 1 trigger threshold;
+#X floatatom 49 156 5 0 0;
+#X obj 49 289 print trigger;
+#X obj 205 287 print rest;
+#X text 385 271 2 trigger debounce time;
+#X text 385 288 3 rest threshold;
+#X text 384 303 4 rest debounce time;
+#X text 486 342 updated for Pd version 0.32;
+#X msg 205 209 1;
+#X msg 235 210 0;
+#X text 12 39 threshold~ monitors its input signal and outputs bangs when the signal exceeds a specified "trigger" value \, and also when the signal recedes below a "rest" value. You can specify debounce times in milliseconds \, for the threshold~ to wait after the two event types before triggering again.;
+#X msg 131 151 set 0 2000 1 2000;
+#X msg 131 174 set 10 100 0 100;
+#X text 262 150 "set" to change the parameters;
+#X text 268 210 zero or nonszero in inlet to set the state to "high" or "low". There is no debounce period after this.;
+#X connect 4 0 5 0;
+#X connect 5 0 9 0;
+#X connect 5 1 10 0;
+#X connect 8 0 4 0;
+#X connect 15 0 5 1;
+#X connect 16 0 5 1;
+#X connect 18 0 5 0;
+#X connect 19 0 5 0;
diff --git a/pd/doc/5.reference/throw~.pd b/pd/doc/5.reference/throw~.pd
new file mode 100644
index 00000000..c9a1ce9d
--- /dev/null
+++ b/pd/doc/5.reference/throw~.pd
@@ -0,0 +1,34 @@
+#N canvas 80 120 664 313 12;
+#X obj 97 159 throw~ signal1;
+#X floatatom 268 211 0 0 0;
+#X obj 90 193 sig~ 50;
+#X obj 268 181 snapshot~;
+#X obj 90 221 throw~ signal1;
+#X obj 97 88 sig~ 25;
+#X obj 268 135 catch~ signal1;
+#X obj 35 17 throw~;
+#X obj 97 17 catch~;
+#X text 163 16 - summing signal bus and non-local connection;
+#X obj 551 88 loadbang;
+#X msg 561 110 \; pd dsp 1;
+#X obj 551 151 metro 200;
+#X text 33 48 Any number of throw~ objects can add into one catch~ object (but two catch~ objects cannot share the same name.);
+#X floatatom 401 206 0 0 0;
+#X obj 402 182 snapshot~;
+#X obj 402 134 catch~ signal2;
+#X msg 113 111 set signal2;
+#X msg 114 135 set signal1;
+#X text 75 252 You can redirect throw~ via a "set" message.;
+#X text 410 283 updated for Pd version 0.33;
+#X connect 2 0 4 0;
+#X connect 3 0 1 0;
+#X connect 5 0 0 0;
+#X connect 6 0 3 0;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 12 0 3 0;
+#X connect 12 0 15 0;
+#X connect 15 0 14 0;
+#X connect 16 0 15 0;
+#X connect 17 0 0 0;
+#X connect 18 0 0 0;
diff --git a/pd/doc/5.reference/timer.pd b/pd/doc/5.reference/timer.pd
new file mode 100644
index 00000000..0f7b3829
--- /dev/null
+++ b/pd/doc/5.reference/timer.pd
@@ -0,0 +1,15 @@
+#N canvas 440 273 514 280 10;
+#X msg 60 146 bang;
+#X msg 30 115 bang;
+#X obj 30 175 timer;
+#X obj 66 15 timer;
+#X text 111 16 - measure logical time;
+#X floatatom 30 206;
+#X text 71 113 Click here to reset;
+#X text 98 147 Click here to get elapsed logical time;
+#X text 27 232 Output is in milliseconds;
+#X text 6 51 The timer object measures elapsed logical time. Logical time moves forward as if all computation were instantaneous and as if all "delay" and "metro" objects were exact.;
+#X text 319 260 updated for Pd version 0.25;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
diff --git a/pd/doc/5.reference/toggle.pd b/pd/doc/5.reference/toggle.pd
new file mode 100644
index 00000000..5cb9ae75
--- /dev/null
+++ b/pd/doc/5.reference/toggle.pd
@@ -0,0 +1,273 @@
+#N canvas 205 140 489 376 10;
+#X obj 1 1 cnv 8 100 60 empty empty toggle=tgl 20 20 1 18 -262144 -1109
+0;
+#X text 21 296 (c) musil@iem.kug.ac.at;
+#X text 63 309 IEM KUG;
+#X text 115 41 click properties to;
+#X text 103 52 modify geometry \, colors \, etc.;
+#X obj 168 113 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X obj 168 179 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X obj 168 133 s foo6_rcv;
+#X obj 168 159 r foo6_snd;
+#X text 153 14 gui-toggle:;
+#X obj 26 270 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 10 117 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X msg 26 39 33;
+#X obj 26 180 tgl 60 1 foo6_snd foo6_rcv big_toggle 63 20 194 13 -228992
+-4033 -34 1 1;
+#X msg 42 79 1;
+#X msg 49 99 0;
+#X floatatom 26 249 4 0 0;
+#X msg 33 59 -0.001;
+#X msg 103 135 set 1;
+#X msg 108 157 set 0;
+#X obj 3 155 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1
+;
+#X obj 65 249 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
+1;
+#X msg 95 114 set -0.23;
+#X obj 189 93 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 188 179 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
+1;
+#X msg 93 93 0 3 4.55;
+#X msg 85 73 0.22 0 -5.44;
+#X msg 189 113 set \$1;
+#X text 96 222 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 95 233 for moving selected gui-objects;
+#N canvas 440 175 699 530 edit 0;
+#X msg 47 151 \; foo6_rcv color \$1 \$2 \$3;
+#X obj 47 126 pack 0 0 0;
+#X obj 47 98 f;
+#X msg 24 50 bang;
+#X floatatom 63 48 3 0 29;
+#X floatatom 79 68 3 0 29;
+#X floatatom 112 84 3 0 29;
+#X text 91 48 background;
+#X text 106 68 front-color;
+#X text 140 85 label-color;
+#X obj 49 223 f;
+#X msg 27 202 bang;
+#X floatatom 65 201 3 63 88;
+#X floatatom 100 223 3 0 37;
+#X obj 49 246 pack 0 0;
+#X text 127 223 y-label;
+#X text 93 201 x-label;
+#X msg 49 271 \; foo6_rcv label_pos \$1 \$2;
+#X floatatom 505 55 3 8 75;
+#X text 532 55 size;
+#X msg 505 76 \; foo6_rcv size \$1;
+#X obj 282 182 f;
+#X msg 260 161 bang;
+#X floatatom 298 160 3 -10 10;
+#X floatatom 333 182 3 -10 10;
+#X obj 282 205 pack 0 0;
+#X msg 282 230 \; foo6_rcv delta \$1 \$2;
+#X obj 296 301 f;
+#X msg 274 280 bang;
+#X floatatom 312 279 3 20 60;
+#X floatatom 347 301 3 150 200;
+#X obj 296 324 pack 0 0;
+#X msg 296 349 \; foo6_rcv pos \$1 \$2;
+#X text 326 160 x-delta;
+#X text 360 182 y-delta;
+#X text 340 279 x-position;
+#X text 374 301 y-position;
+#X obj 305 423 f;
+#X msg 283 402 bang;
+#X floatatom 321 401 3 -10 10;
+#X floatatom 356 423 3 -10 10;
+#X obj 305 446 pack 0 0;
+#X text 383 423 y-label;
+#X text 349 401 x-label;
+#X msg 305 471 \; foo6_rcv delta \$1 \$2;
+#X msg 499 140 \; foo6_rcv send foo6a_snd;
+#X msg 499 178 \; foo6_rcv send foo6_snd;
+#X msg 494 216 \; foo6_rcv receive foo6a_rcv;
+#X msg 494 254 \; foo6a_rcv receive foo6_rcv;
+#X msg 41 448 \; foo6_rcv label blabla;
+#X msg 41 484 \; foo6_rcv label big_toggle;
+#X obj 69 338 f;
+#X msg 47 317 bang;
+#X floatatom 85 316 3 0 2;
+#X floatatom 120 338 3 4 36;
+#X obj 69 361 pack 0 0;
+#X msg 69 386 \; foo6_rcv label_font \$1 \$2;
+#X text 113 316 font;
+#X text 149 338 height;
+#X floatatom 498 307 5 -200 200;
+#X text 542 307 nonzero-value;
+#X msg 498 331 \; foo6_rcv nonzero \$1;
+#X msg 503 412 \; foo6_rcv init 0;
+#X msg 510 479 \; foo6_rcv init 1;
+#X text 524 393 no init;
+#X text 500 461 init value on loadbang;
+#X msg 285 47 back;
+#X msg 285 67 front;
+#X msg 285 87 label;
+#X msg 247 47 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 108 pd RGB_____________;
+#X floatatom 327 77 3 0 255;
+#X floatatom 370 77 3 0 255;
+#X floatatom 413 78 3 0 255;
+#X text 34 22 preset-colors;
+#X text 296 19 RGB-colors;
+#X text 327 59 red;
+#X text 363 58 green;
+#X text 411 58 blue;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 1;
+#X connect 5 0 1 1;
+#X connect 6 0 1 2;
+#X connect 10 0 14 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 1;
+#X connect 13 0 14 1;
+#X connect 14 0 17 0;
+#X connect 18 0 20 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 26 0;
+#X connect 27 0 31 0;
+#X connect 28 0 27 0;
+#X connect 29 0 27 1;
+#X connect 30 0 31 1;
+#X connect 31 0 32 0;
+#X connect 37 0 41 0;
+#X connect 38 0 37 0;
+#X connect 39 0 37 1;
+#X connect 40 0 41 1;
+#X connect 41 0 44 0;
+#X connect 51 0 55 0;
+#X connect 52 0 51 0;
+#X connect 53 0 51 1;
+#X connect 54 0 55 1;
+#X connect 55 0 56 0;
+#X connect 59 0 61 0;
+#X connect 66 0 70 0;
+#X connect 67 0 70 0;
+#X connect 68 0 70 0;
+#X connect 69 0 70 0;
+#X connect 70 0 1 0;
+#X connect 70 1 1 1;
+#X connect 70 2 1 2;
+#X connect 71 0 70 1;
+#X connect 72 0 70 2;
+#X connect 73 0 70 3;
+#X restore 278 136 pd edit;
+#X obj 222 276 tgl 15 0 bbb bbb empty 20 8 192 8 -262144 -1 -1 1 1
+;
+#X text 191 320 updated for Pd version 0.35;
+#X text 38 321 graz \, austria 2002;
+#X obj 127 255 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 5 0 7 0;
+#X connect 8 0 6 0;
+#X connect 8 0 24 0;
+#X connect 11 0 13 0;
+#X connect 12 0 13 0;
+#X connect 13 0 16 0;
+#X connect 13 0 21 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 16 0 10 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 0;
+#X connect 19 0 13 0;
+#X connect 20 0 13 0;
+#X connect 22 0 13 0;
+#X connect 23 0 27 0;
+#X connect 25 0 13 0;
+#X connect 26 0 13 0;
+#X connect 27 0 7 0;
diff --git a/pd/doc/5.reference/trigger.pd b/pd/doc/5.reference/trigger.pd
new file mode 100644
index 00000000..a32d5def
--- /dev/null
+++ b/pd/doc/5.reference/trigger.pd
@@ -0,0 +1,37 @@
+#N canvas 58 142 685 355 12;
+#X msg 28 149 2.5;
+#X msg 126 151 bang;
+#X msg 68 150 23 64;
+#X obj 28 242 print x1;
+#X obj 112 242 print x2;
+#X obj 196 240 print x3;
+#X obj 43 26 trigger;
+#X obj 286 241 print x4;
+#X text 114 27 - sequence messages in right-to-left order;
+#X text 417 331 updated for Pd version 0.33;
+#X text 81 290 the above can be abbreviated as:;
+#X msg 172 152 symbol dog;
+#X text 39 59 The trigger object outputs its input from right to left
+\, converting to the types indicated by its creation arguments. There
+is also a "pointer" argument type (see the pointer object.);
+#X obj 381 293 t f b l s a;
+#X msg 466 167 dog my cats;
+#X obj 466 199 trigger bang anything;
+#X obj 374 242 print x5;
+#X obj 466 240 print y1;
+#X obj 552 242 print y2;
+#X obj 28 202 trigger float bang symbol list anything;
+#X text 464 122 "anythings" can only;
+#X text 461 142 be converted to bang:;
+#X connect 0 0 19 0;
+#X connect 1 0 19 0;
+#X connect 2 0 19 0;
+#X connect 11 0 19 0;
+#X connect 14 0 15 0;
+#X connect 15 0 17 0;
+#X connect 15 1 18 0;
+#X connect 19 0 3 0;
+#X connect 19 1 4 0;
+#X connect 19 2 5 0;
+#X connect 19 3 7 0;
+#X connect 19 4 16 0;
diff --git a/pd/doc/5.reference/unpack.pd b/pd/doc/5.reference/unpack.pd
new file mode 100644
index 00000000..5f1a4120
--- /dev/null
+++ b/pd/doc/5.reference/unpack.pd
@@ -0,0 +1,28 @@
+#N canvas 234 84 730 277 12;
+#X floatatom 80 180 0 0 0;
+#X floatatom 205 180 0 0 0;
+#X floatatom 243 180 0 0 0;
+#X floatatom 46 180 0 0 0;
+#X obj 117 180 print foo;
+#X obj 133 243 pack;
+#X text 51 242 See also;
+#X obj 101 9 unpack;
+#X text 164 8 - split a message to atoms;
+#X text 196 139 <-- creation arguments specify the types of atoms expected
+;
+#X msg 46 102 1 2;
+#X msg 85 102 3 4 shut;
+#X msg 164 102 5 6 pick 7 8;
+#X text 368 239 updated for Pd version 0.33;
+#X obj 46 139 unpack 0 0 s 0 0;
+#X text 25 36 unpack takes lists of atoms and distributes them to its
+outlets. The creation arguments specify float (any number or the symbol
+'f') \, pointer (symbol 'p') or symbol (symbol 's').;
+#X connect 10 0 14 0;
+#X connect 11 0 14 0;
+#X connect 12 0 14 0;
+#X connect 14 0 3 0;
+#X connect 14 1 0 0;
+#X connect 14 2 4 0;
+#X connect 14 3 1 0;
+#X connect 14 4 2 0;
diff --git a/pd/doc/5.reference/until.pd b/pd/doc/5.reference/until.pd
new file mode 100644
index 00000000..9da7a9ce
--- /dev/null
+++ b/pd/doc/5.reference/until.pd
@@ -0,0 +1,25 @@
+#N canvas 142 97 410 273 10;
+#X msg 65 116 bang;
+#X obj 66 15 until;
+#X text 114 16 - LOOP;
+#X text 24 36 The until object's left inlet starts a loop in which it outputs "bang" until its right inlet gets a bang which stops it. If you start "until" with a number \, it iterates at most that number of times \, as in the Max "uzi" object.;
+#X text 24 85 WARNING: if you bang an "until" which doesn't have a stopping mechanism \, Pd goes into an infinite loop!;
+#X obj 65 168 until;
+#X text 110 115 start;
+#X msg 73 137 3;
+#X text 109 138 start limited to 3 iterations;
+#X obj 65 196 f;
+#X obj 96 198 + 1;
+#X obj 140 198 sel 0;
+#X obj 65 240 print;
+#X obj 96 219 mod 10;
+#X text 225 247 updated for Pd version 0.28;
+#X connect 0 0 5 0;
+#X connect 5 0 9 0;
+#X connect 7 0 5 0;
+#X connect 9 0 10 0;
+#X connect 9 0 12 0;
+#X connect 10 0 13 0;
+#X connect 11 0 5 1;
+#X connect 13 0 9 1;
+#X connect 13 0 11 0;
diff --git a/pd/doc/5.reference/value.pd b/pd/doc/5.reference/value.pd
new file mode 100644
index 00000000..66c457a3
--- /dev/null
+++ b/pd/doc/5.reference/value.pd
@@ -0,0 +1,30 @@
+#N canvas 257 45 500 281 12;
+#X text 290 257 updated for Pd version 0.32;
+#X floatatom 36 55 5 0 0;
+#X text 50 249 abbreviation:;
+#X text 79 10 -- nonlocal shared value (named variable);
+#X floatatom 36 130 5 0 0;
+#X msg 46 78 bang;
+#X obj 21 10 value;
+#X obj 36 105 value help-value1;
+#X obj 149 248 v;
+#X floatatom 163 55 5 0 0;
+#X floatatom 163 130 5 0 0;
+#X msg 173 78 bang;
+#X obj 163 105 value help-value1;
+#X floatatom 291 55 5 0 0;
+#X floatatom 291 130 5 0 0;
+#X msg 301 78 bang;
+#X obj 291 105 value help-value2;
+#X text 31 171 "Value" stores a numeric value which is shared between all values with the same name (which need not be in the same Pd window.);
+#X text 345 54 numbers set the value;
+#X text 349 77 bang retrieves it;
+#X connect 1 0 7 0;
+#X connect 5 0 7 0;
+#X connect 7 0 4 0;
+#X connect 9 0 12 0;
+#X connect 11 0 12 0;
+#X connect 12 0 10 0;
+#X connect 13 0 16 0;
+#X connect 15 0 16 0;
+#X connect 16 0 14 0;
diff --git a/pd/doc/5.reference/vcf~.pd b/pd/doc/5.reference/vcf~.pd
new file mode 100644
index 00000000..45dde1d8
--- /dev/null
+++ b/pd/doc/5.reference/vcf~.pd
@@ -0,0 +1,35 @@
+#N canvas 0 0 644 422 12;
+#X obj 257 200 sig~;
+#X text 14 193 test signal;
+#X text 100 341 amp in (db);
+#X text 92 144 test frequency;
+#X text 224 340 amp out (db);
+#X obj 220 264 vcf~;
+#X text 246 144 center frequency;
+#X text 374 184 q;
+#X floatatom 122 168 5 0 0;
+#X floatatom 257 171 5 0 0;
+#X obj 122 193 osc~;
+#X floatatom 353 203 5 0 0;
+#X obj 122 291 env~ 8192;
+#X obj 220 290 env~ 8192;
+#X floatatom 121 318 5 0 0;
+#X floatatom 220 319 5 0 0;
+#X obj 80 13 vcf~;
+#X text 135 13 -- voltage-controlled bandpass filter;
+#X text 26 395 see also:;
+#X obj 115 394 bp~;
+#X text 302 394 updated for Pd version 0.35;
+#X text 12 45 vcf~ is like bp~ except that it takes an audio signal
+to set center frequency \, which may thus change continuously in time.
+The "Q" or filter sharpness is still only set by messages. More expensive
+than bp~ in CPU time but more powerful too.;
+#X connect 0 0 5 1;
+#X connect 5 0 13 0;
+#X connect 8 0 10 0;
+#X connect 9 0 0 0;
+#X connect 10 0 5 0;
+#X connect 10 0 12 0;
+#X connect 11 0 5 2;
+#X connect 12 0 14 0;
+#X connect 13 0 15 0;
diff --git a/pd/doc/5.reference/vdial.pd b/pd/doc/5.reference/vdial.pd
new file mode 100644
index 00000000..048c4c2b
--- /dev/null
+++ b/pd/doc/5.reference/vdial.pd
@@ -0,0 +1,282 @@
+#N canvas 106 314 558 455 10;
+#X obj 1 1 cnv 8 100 60 empty empty vdial=vdl 20 20 1 18 -262144 -1109
+0;
+#X text 13 390 (c) musil@iem.kug.ac.at;
+#X text 55 403 IEM KUG;
+#X text 132 122 click properties to;
+#X text 120 133 modify geometry \, colors \, etc.;
+#X obj 159 261 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X msg 41 319 \$1;
+#X floatatom 41 341 4 0 0;
+#X obj 41 363 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 86 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 86 317 route 0 1 2 3 4 5 6 7 8 9;
+#X msg 194 92 set \$1;
+#X floatatom 194 71 4 0 9;
+#X floatatom 44 54 4 0 9;
+#X msg 91 41 7 0 -5.44;
+#X msg 95 63 3 3 4.55;
+#X obj 103 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 120 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
+1;
+#X obj 137 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 154 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 171 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 188 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 205 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 222 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 239 338 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+1;
+#X obj 79 355 print;
+#X floatatom 183 287 4 0 0;
+#X msg 183 261 \$1;
+#X msg 158 192 set \$1;
+#X floatatom 158 171 4 0 9;
+#X text 125 355 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 124 366 for moving selected gui-objects;
+#N canvas 230 247 699 530 edit 0;
+#X obj 42 198 f;
+#X msg 20 177 bang;
+#X floatatom 58 176 3 63 156;
+#X floatatom 93 198 3 -20 37;
+#X obj 42 221 pack 0 0;
+#X text 120 198 y-label;
+#X text 86 176 x-label;
+#X floatatom 270 187 3 8 50;
+#X text 297 187 size;
+#X obj 286 293 f;
+#X msg 264 272 bang;
+#X floatatom 302 271 3 -10 10;
+#X floatatom 337 293 3 -10 10;
+#X obj 286 316 pack 0 0;
+#X obj 300 412 f;
+#X msg 278 391 bang;
+#X floatatom 316 390 3 20 60;
+#X floatatom 351 412 3 100 200;
+#X obj 300 435 pack 0 0;
+#X text 330 271 x-delta;
+#X text 364 293 y-delta;
+#X text 344 390 x-position;
+#X text 378 412 y-position;
+#X obj 62 313 f;
+#X msg 40 292 bang;
+#X floatatom 78 291 3 0 2;
+#X floatatom 113 313 3 4 36;
+#X obj 62 336 pack 0 0;
+#X text 106 291 font;
+#X text 142 313 height;
+#X text 504 293 no init;
+#X text 475 348 init value on loadbang;
+#X floatatom 482 228 5 2 20;
+#X text 491 417 changing-behavior;
+#X text 526 228 number of buttons;
+#X obj 47 104 pack 0 0 0;
+#X obj 47 76 f;
+#X msg 24 28 bang;
+#X floatatom 63 26 3 0 29;
+#X floatatom 79 46 3 0 29;
+#X floatatom 112 62 3 0 29;
+#X text 91 26 background;
+#X text 106 46 front-color;
+#X text 140 63 label-color;
+#X msg 285 25 back;
+#X msg 285 45 front;
+#X msg 285 65 label;
+#X msg 247 25 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 86 pd RGB_____________;
+#X floatatom 327 55 3 0 255;
+#X floatatom 370 55 3 0 255;
+#X floatatom 413 56 3 0 255;
+#X text 34 0 preset-colors;
+#X text 296 -3 RGB-colors;
+#X text 327 37 red;
+#X text 363 36 green;
+#X text 411 36 blue;
+#X msg 47 125 \; foo12_rcv color \$1 \$2 \$3;
+#X msg 42 246 \; foo12_rcv label_pos \$1 \$2;
+#X msg 62 361 \; foo12_rcv label_font \$1 \$2;
+#X msg 34 423 \; foo12_rcv label blabla;
+#X msg 34 459 \; foo12_rcv label vdial_0_9;
+#X msg 300 460 \; foo12_rcv pos \$1 \$2;
+#X msg 286 341 \; foo12_rcv delta \$1 \$2;
+#X msg 270 216 \; foo12_rcv size \$1;
+#X msg 483 50 \; foo12_rcv send foo12a_snd;
+#X msg 483 88 \; foo12_rcv send foo12_snd;
+#X msg 482 171 \; foo12a_rcv receive foo12_rcv;
+#X msg 483 133 \; foo12_rcv receive foo12a_rcv;
+#X msg 482 254 \; foo12_rcv number \$1;
+#X msg 483 312 \; foo12_rcv init 0;
+#X msg 485 366 \; foo12_rcv init 1;
+#X msg 490 436 \; foo12_rcv single_change;
+#X msg 490 470 \; foo12_rcv double_change;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 58 0;
+#X connect 7 0 64 0;
+#X connect 9 0 13 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 1;
+#X connect 12 0 13 1;
+#X connect 13 0 63 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 1;
+#X connect 17 0 18 1;
+#X connect 18 0 62 0;
+#X connect 23 0 27 0;
+#X connect 24 0 23 0;
+#X connect 25 0 23 1;
+#X connect 26 0 27 1;
+#X connect 27 0 59 0;
+#X connect 32 0 69 0;
+#X connect 35 0 57 0;
+#X connect 36 0 35 0;
+#X connect 37 0 36 0;
+#X connect 38 0 36 1;
+#X connect 39 0 35 1;
+#X connect 40 0 35 2;
+#X connect 44 0 48 0;
+#X connect 45 0 48 0;
+#X connect 46 0 48 0;
+#X connect 47 0 48 0;
+#X connect 48 0 35 0;
+#X connect 48 1 35 1;
+#X connect 48 2 35 2;
+#X connect 49 0 48 1;
+#X connect 50 0 48 2;
+#X connect 51 0 48 3;
+#X restore 267 222 pd edit;
+#X obj 221 11 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 30 415 graz \, austria 2002;
+#X text 223 401 updated for Pd version 0.35;
+#X text 144 11 gui-vdial:;
+#X obj 79 110 vdl 25 1 0 8 foo12_snd foo12_rcv vdial_0_9 20 -8 192
+10 -99865 -262144 -260818 0;
+#X obj 352 36 vdl 15 1 0 8 iii iii empty 20 8 192 8 -262144 -1 -1 0
+;
+#X obj 158 213 s foo12_rcv;
+#X obj 159 239 r foo12_snd;
+#X connect 6 0 38 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 11 0 10 0;
+#X connect 11 1 17 0;
+#X connect 11 2 18 0;
+#X connect 11 3 19 0;
+#X connect 11 4 20 0;
+#X connect 11 5 21 0;
+#X connect 11 6 22 0;
+#X connect 11 7 23 0;
+#X connect 11 8 24 0;
+#X connect 11 9 25 0;
+#X connect 12 0 38 0;
+#X connect 13 0 12 0;
+#X connect 14 0 38 0;
+#X connect 15 0 38 0;
+#X connect 16 0 38 0;
+#X connect 28 0 27 0;
+#X connect 29 0 40 0;
+#X connect 30 0 29 0;
+#X connect 38 0 11 0;
+#X connect 38 0 26 0;
+#X connect 38 0 7 0;
+#X connect 41 0 5 0;
+#X connect 41 0 28 0;
diff --git a/pd/doc/5.reference/vd~.pd b/pd/doc/5.reference/vd~.pd
new file mode 100644
index 00000000..5a36ff73
--- /dev/null
+++ b/pd/doc/5.reference/vd~.pd
@@ -0,0 +1,19 @@
+#N canvas 109 10 654 410 12;
+#X floatatom 50 194 0 0 0;
+#X obj 50 287 outlet~;
+#X text 130 286 signal output (delayed signal);
+#X obj 24 16 vd~;
+#X text 60 9 reads a signal from a delay line at a variable delay time (4-point-interpolation);
+#X obj 50 222 sig~;
+#X text 99 219 signal input (delay time in ms);
+#X obj 50 254 vd~ del_example;
+#X text 193 252 creation argument: name of delay line;
+#X text 31 51 vd~ implements a 4-point interpolating delay tap from a corresponding delwrite~ object. The delay in milliseconds of the tap is specified by the incoming signal.;
+#X text 35 340 see also:;
+#X obj 123 343 delwrite~;
+#X obj 212 342 delread~;
+#X text 354 373 updated for Pd version 0.33;
+#X text 28 103 The delay time is always at least one sample and at most the length of the delay line (specified by hte delwrite~). In addition \, in case the delwrite~ runs later in the DSP loop than the vd~ \, the delay is constrained below by one vector length (64 samples.);
+#X connect 0 0 5 0;
+#X connect 5 0 7 0;
+#X connect 7 0 1 0;
diff --git a/pd/doc/5.reference/vslider.pd b/pd/doc/5.reference/vslider.pd
new file mode 100644
index 00000000..69452ad6
--- /dev/null
+++ b/pd/doc/5.reference/vslider.pd
@@ -0,0 +1,302 @@
+#N canvas 147 201 617 416 10;
+#X obj 1 1 cnv 8 100 60 empty empty vslider=vsl 20 20 1 18 -262144
+-1109 0;
+#X floatatom 38 300 9 0 0;
+#X msg 47 84 set \$1;
+#X floatatom 38 43 7 0 0;
+#X text 25 363 (c) musil@iem.kug.ac.at;
+#X text 67 376 IEM KUG;
+#X obj 38 324 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 18 47 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X floatatom 47 63 7 0 0;
+#X floatatom 116 324 9 0 0;
+#X floatatom 106 42 7 0 0;
+#X floatatom 147 113 7 0 0;
+#X obj 75 249 ftom;
+#X floatatom 75 271 9 0 0;
+#X floatatom 111 244 9 0 0;
+#X floatatom 185 266 9 0 0;
+#X text 181 151 click properties to;
+#X floatatom 75 112 9 0 0;
+#X obj 75 134 mtof;
+#X text 166 12 gui-vertical-slider:;
+#X obj 38 162 vsl 15 101 100 300 0 1 foo3_snd foo3_rcv empty 8 -8 192
+10 -225280 -1109 -1 2500 1;
+#X obj 75 168 vsl 15 73 55 3520 1 1 goo4_snd goo4_rcv log.freq. 11
+-6 192 10 -261681 -260818 -90881 0 1;
+#X obj 185 244 r goo4_snd;
+#X obj 147 133 s goo4_rcv;
+#X text 202 65 (0.01 pixels);
+#X text 57 99 ------------------------------------------;
+#X text 57 286 --------------------------------------------;
+#X text 169 162 modify geometry \, colors \, etc.;
+#X obj 106 84 s foo3_rcv;
+#X obj 116 302 r foo3_snd;
+#X msg 106 63 set \$1;
+#X text 188 44 shift-click & drag;
+#X text 194 54 for fine-tuning;
+#X text 119 192 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 118 203 for moving selected gui-objects;
+#N canvas 239 379 699 530 edit 0;
+#X obj 37 233 f;
+#X msg 15 212 bang;
+#X floatatom 53 211 3 6 88;
+#X floatatom 88 233 3 -20 37;
+#X obj 37 256 pack 0 0;
+#X text 115 233 y-label;
+#X text 81 211 x-label;
+#X obj 287 271 f;
+#X msg 265 250 bang;
+#X floatatom 303 249 3 -10 10;
+#X floatatom 338 271 3 -10 10;
+#X obj 287 294 pack 0 0;
+#X obj 299 381 f;
+#X msg 277 360 bang;
+#X floatatom 315 359 3 20 90;
+#X floatatom 350 381 3 150 200;
+#X obj 299 404 pack 0 0;
+#X text 331 249 x-delta;
+#X text 365 271 y-delta;
+#X text 343 359 x-position;
+#X text 377 381 y-position;
+#X obj 57 348 f;
+#X msg 35 327 bang;
+#X floatatom 73 326 3 0 2;
+#X floatatom 108 348 3 4 36;
+#X obj 57 371 pack 0 0;
+#X text 101 326 font;
+#X text 137 348 height;
+#X floatatom 476 188 1 0 1;
+#X text 523 401 no init;
+#X text 493 453 init value on loadbang;
+#X text 520 188 steady;
+#X obj 486 291 f;
+#X msg 464 270 bang;
+#X floatatom 502 269 4 55 440;
+#X floatatom 537 291 6 440 3520;
+#X obj 486 314 pack 0 0;
+#X text 269 469 linear / logarithmical;
+#X msg 47 158 \; goo4_rcv color \$1 \$2 \$3;
+#X msg 37 281 \; goo4_rcv label_pos \$1 \$2;
+#X msg 57 396 \; goo4_rcv label_font \$1 \$2;
+#X msg 40 442 \; goo4_rcv label blabla;
+#X msg 269 487 \; goo4_rcv lin;
+#X msg 363 486 \; goo4_rcv log;
+#X msg 299 429 \; goo4_rcv pos \$1 \$2;
+#X msg 287 319 \; goo4_rcv delta \$1 \$2;
+#X msg 475 21 \; goo4_rcv send goo4a_snd;
+#X msg 475 59 \; goo4_rcv send goo4_snd;
+#X msg 476 105 \; goo4_rcv receive goo4a_rcv;
+#X msg 476 143 \; goo4a_rcv receive goo4_rcv;
+#X msg 486 339 \; goo4_rcv range \$1 \$2;
+#X msg 502 420 \; goo4_rcv init 0;
+#X msg 503 471 \; goo4_rcv init 1;
+#X text 539 270 bottom-range-bound;
+#X text 586 292 top-range-bound;
+#X obj 286 160 f;
+#X msg 264 139 bang;
+#X floatatom 302 138 3 4 55;
+#X floatatom 337 160 3 15 73;
+#X obj 286 183 pack 0 0;
+#X msg 286 208 \; goo4_rcv size \$1 \$2;
+#X text 330 138 width;
+#X text 368 161 height;
+#X msg 41 478 \; goo4_rcv label log.freq.;
+#X msg 476 212 \; goo4_rcv steady \$1;
+#X obj 47 116 pack 0 0 0;
+#X obj 47 88 f;
+#X msg 24 40 bang;
+#X floatatom 63 38 3 0 29;
+#X floatatom 79 58 3 0 29;
+#X floatatom 112 74 3 0 29;
+#X text 91 38 background;
+#X text 106 58 front-color;
+#X text 140 75 label-color;
+#X msg 285 37 back;
+#X msg 285 57 front;
+#X msg 285 77 label;
+#X msg 247 37 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 98 pd RGB_____________;
+#X floatatom 327 67 3 0 255;
+#X floatatom 370 67 3 0 255;
+#X floatatom 413 68 3 0 255;
+#X text 34 12 preset-colors;
+#X text 296 9 RGB-colors;
+#X text 327 49 red;
+#X text 363 48 green;
+#X text 411 48 blue;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 39 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 45 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 44 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 40 0;
+#X connect 28 0 64 0;
+#X connect 32 0 36 0;
+#X connect 33 0 32 0;
+#X connect 34 0 32 1;
+#X connect 35 0 36 1;
+#X connect 36 0 50 0;
+#X connect 55 0 59 0;
+#X connect 56 0 55 0;
+#X connect 57 0 55 1;
+#X connect 58 0 59 1;
+#X connect 59 0 60 0;
+#X connect 65 0 38 0;
+#X connect 66 0 65 0;
+#X connect 67 0 66 0;
+#X connect 68 0 66 1;
+#X connect 69 0 65 1;
+#X connect 70 0 65 2;
+#X connect 74 0 78 0;
+#X connect 75 0 78 0;
+#X connect 76 0 78 0;
+#X connect 77 0 78 0;
+#X connect 78 0 65 0;
+#X connect 78 1 65 1;
+#X connect 78 2 65 2;
+#X connect 79 0 78 1;
+#X connect 80 0 78 2;
+#X connect 81 0 78 3;
+#X restore 327 48 pd edit;
+#X obj 61 345 print;
+#N canvas 276 200 290 224 once 0;
+#X obj 38 47 t b b f;
+#X msg 56 85 1;
+#X obj 31 108 f 0;
+#X obj 31 131 pack 0 0;
+#X obj 31 156 route 0;
+#X obj 38 24 inlet;
+#X obj 31 180 outlet;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 0 2 3 1;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 0;
+#X connect 5 0 0 0;
+#X restore 61 322 pd once;
+#X obj 377 110 vsl 15 128 0 127 0 0 ccc ccc empty 20 8 192 8 -262144
+-1 -1 4200 1;
+#X obj 249 87 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 218 387 updated for Pd version 0.35;
+#X text 42 388 graz \, austria 2002;
+#X connect 1 0 6 0;
+#X connect 2 0 20 0;
+#X connect 3 0 20 0;
+#X connect 7 0 20 0;
+#X connect 8 0 2 0;
+#X connect 10 0 30 0;
+#X connect 11 0 23 0;
+#X connect 12 0 13 0;
+#X connect 17 0 18 0;
+#X connect 18 0 21 0;
+#X connect 20 0 1 0;
+#X connect 20 0 37 0;
+#X connect 21 0 14 0;
+#X connect 21 0 12 0;
+#X connect 22 0 15 0;
+#X connect 29 0 9 0;
+#X connect 30 0 28 0;
+#X connect 37 0 36 0;
diff --git a/pd/doc/5.reference/vu.pd b/pd/doc/5.reference/vu.pd
new file mode 100644
index 00000000..3c94ba52
--- /dev/null
+++ b/pd/doc/5.reference/vu.pd
@@ -0,0 +1,247 @@
+#N canvas 171 210 549 418 10;
+#X obj 1 1 cnv 8 100 60 empty empty vu 20 20 1 18 -262144 -1109 0;
+#X text 19 363 (c) musil@iem.kug.ac.at;
+#X text 61 376 IEM KUG;
+#X floatatom 177 129 7 -110 20;
+#X text 202 41 click properties to;
+#X text 190 52 modify geometry \, colors \, etc.;
+#X text 49 13 gui-vu-meter-display:;
+#X obj 99 39 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1
+;
+#X obj 12 179 vu 16 120 foo7_rcv vu-meter 60 0 64 10 -1 -355 1 0;
+#X floatatom 11 332 6 0 0;
+#X floatatom 22 310 6 0 0;
+#X text 75 309 dB;
+#X text 63 333 dB;
+#X text 71 128 dB;
+#X text 80 148 dB;
+#X text 103 146 peak-level;
+#X text 101 125 rms-level;
+#X text 96 308 peak-level;
+#X text 83 332 rms-level;
+#X text 108 99 <list> of rms \, peak;
+#X obj 177 231 s foo7_rcv;
+#X obj 177 211 pack 0 0;
+#X floatatom 195 150 7 -110 20;
+#X obj 195 191 t b f;
+#X text 236 129 dB;
+#X text 255 151 dB;
+#X text 71 258 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 70 269 for moving selected gui-objects;
+#X floatatom 11 128 7 -110 20;
+#X floatatom 22 149 7 -110 20;
+#N canvas 236 62 699 530 edit 0;
+#X obj 37 222 f;
+#X msg 15 201 bang;
+#X floatatom 53 200 3 50 88;
+#X floatatom 88 222 3 0 37;
+#X obj 37 245 pack 0 0;
+#X text 115 222 y-label;
+#X text 81 200 x-label;
+#X obj 292 313 f;
+#X msg 270 292 bang;
+#X floatatom 308 291 3 -10 10;
+#X floatatom 343 313 3 -10 10;
+#X obj 292 336 pack 0 0;
+#X obj 304 435 f;
+#X msg 282 414 bang;
+#X floatatom 320 413 3 20 140;
+#X floatatom 355 435 3 150 200;
+#X obj 304 458 pack 0 0;
+#X text 336 291 x-delta;
+#X text 370 313 y-delta;
+#X text 348 413 x-position;
+#X text 382 435 y-position;
+#X obj 57 337 f;
+#X msg 35 316 bang;
+#X floatatom 73 315 3 0 2;
+#X floatatom 108 337 3 8 36;
+#X obj 57 360 pack 0 0;
+#X text 101 315 font;
+#X text 137 337 height;
+#X floatatom 471 106 1 0 1;
+#X msg 52 131 \; foo7_rcv color \$1 \$2;
+#X msg 37 270 \; foo7_rcv label_pos \$1 \$2;
+#X msg 57 386 \; foo7_rcv label_font \$1 \$2;
+#X msg 37 427 \; foo7_rcv label blabla;
+#X msg 292 361 \; foo7_rcv delta \$1 \$2;
+#X msg 304 483 \; foo7_rcv pos \$1 \$2;
+#X msg 469 23 \; foo7_rcv receive foo7a_rcv;
+#X msg 469 60 \; foo7a_rcv receive foo7_rcv;
+#X text 492 106 display scale;
+#X msg 471 132 \; foo7_rcv scale \$1;
+#X obj 279 193 f;
+#X msg 257 172 bang;
+#X floatatom 295 171 3 8 50;
+#X floatatom 330 193 3 110 200;
+#X obj 279 216 pack 0 0;
+#X text 323 171 width;
+#X text 357 193 height;
+#X msg 279 241 \; foo7_rcv size \$1 \$2;
+#X msg 37 463 \; foo7_rcv label vu-meter;
+#X obj 52 79 f;
+#X msg 29 31 bang;
+#X floatatom 68 29 3 0 29;
+#X floatatom 103 47 3 0 29;
+#X text 96 29 background;
+#X text 131 48 label-color;
+#X msg 290 25 back;
+#X msg 290 49 label;
+#X msg 252 25 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 97 135 route back label bang;
+#X obj 235 168 t b b b;
+#X connect 0 0 29 0;
+#X connect 1 0 25 0;
+#X connect 2 0 26 0;
+#X connect 3 0 27 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 11 1;
+#X connect 6 0 10 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 1;
+#X connect 9 0 11 1;
+#X connect 10 0 24 1;
+#X connect 11 0 23 1;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 19 1 20 1;
+#X connect 20 0 28 0;
+#X connect 22 0 6 0;
+#X connect 23 0 21 0;
+#X connect 24 0 12 0;
+#X connect 25 0 20 0;
+#X connect 26 0 18 0;
+#X connect 27 0 17 0;
+#X connect 28 0 11 0;
+#X connect 28 0 10 0;
+#X connect 29 0 4 0;
+#X connect 29 1 7 0;
+#X connect 29 2 30 0;
+#X connect 30 0 24 0;
+#X connect 30 1 23 0;
+#X connect 30 2 28 0;
+#X restore 290 86 pd RGB_____________;
+#X floatatom 332 55 3 0 255;
+#X floatatom 375 55 3 0 255;
+#X floatatom 418 56 3 0 255;
+#X text 39 3 preset-colors;
+#X text 301 0 RGB-colors;
+#X text 332 37 red;
+#X text 368 36 green;
+#X text 416 36 blue;
+#X obj 52 104 pack 0 0;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 30 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 33 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 34 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 31 0;
+#X connect 28 0 38 0;
+#X connect 39 0 43 0;
+#X connect 40 0 39 0;
+#X connect 41 0 39 1;
+#X connect 42 0 43 1;
+#X connect 43 0 46 0;
+#X connect 48 0 66 0;
+#X connect 49 0 48 0;
+#X connect 50 0 48 1;
+#X connect 51 0 66 1;
+#X connect 54 0 57 0;
+#X connect 55 0 57 0;
+#X connect 56 0 57 0;
+#X connect 57 0 66 0;
+#X connect 57 1 66 1;
+#X connect 58 0 57 1;
+#X connect 59 0 57 2;
+#X connect 60 0 57 3;
+#X connect 66 0 29 0;
+#X restore 313 188 pd edit;
+#N canvas 147 336 290 278 source 0;
+#X obj 40 95 random 102;
+#X obj 40 171 - 101;
+#X obj 40 205 pack 0 0;
+#X obj 40 45 metro 300;
+#X obj 40 69 t b b;
+#X obj 133 95 random 20;
+#X obj 40 117 t f f;
+#X obj 91 147 +;
+#X obj 91 172 - 101;
+#X obj 40 21 inlet;
+#X obj 40 230 outlet;
+#X connect 0 0 6 0;
+#X connect 1 0 2 0;
+#X connect 2 0 10 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 4 1 5 0;
+#X connect 5 0 7 1;
+#X connect 6 0 1 0;
+#X connect 6 1 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 2 1;
+#X connect 9 0 3 0;
+#X restore 99 62 pd source;
+#X obj 263 94 s fff;
+#X obj 186 302 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 210 386 updated for Pd version 0.35;
+#X text 36 388 graz \, austria 2002;
+#X connect 3 0 21 0;
+#X connect 7 0 31 0;
+#X connect 8 0 9 0;
+#X connect 8 1 10 0;
+#X connect 21 0 20 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X connect 23 1 21 1;
+#X connect 28 0 8 0;
+#X connect 29 0 8 1;
+#X connect 31 0 8 0;
+#X connect 31 0 32 0;
diff --git a/pd/doc/5.reference/wrap~.pd b/pd/doc/5.reference/wrap~.pd
new file mode 100644
index 00000000..81681f30
--- /dev/null
+++ b/pd/doc/5.reference/wrap~.pd
@@ -0,0 +1,26 @@
+#N canvas 182 132 703 319 12;
+#X obj 58 220 metro 500;
+#X obj 58 195 r metro;
+#X msg 575 106 \; metro 0;
+#X msg 574 48 \; pd dsp 1 \; metro 1;
+#X floatatom 42 121 0 0 0;
+#X floatatom 42 277 0 0 0;
+#X text 443 271 updated for Pd version 0.33;
+#X obj 574 21 loadbang;
+#X obj 42 244 snapshot~;
+#X obj 42 147 sig~;
+#X obj 36 16 wrap~;
+#X text 93 16 - remainder modulo 1;
+#X text 18 45 wrap~ gives the difference between the input and the
+largest integer not exceeding it (for positive numbers this is the
+fractional part).;
+#X obj 42 171 wrap~;
+#X text 127 123 <-- shift-drag here to get non-integers to try;
+#X connect 0 0 8 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 0;
+#X connect 4 0 9 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X connect 9 0 13 0;
+#X connect 13 0 8 0;
diff --git a/pd/doc/5.reference/writesf~.pd b/pd/doc/5.reference/writesf~.pd
new file mode 100644
index 00000000..053e0dee
--- /dev/null
+++ b/pd/doc/5.reference/writesf~.pd
@@ -0,0 +1,27 @@
+#N canvas 388 177 450 290 10;
+#X msg 365 19 \; pd dsp 1;
+#X msg 141 133 print;
+#X msg 56 50 bang;
+#X msg 140 85 start;
+#X msg 142 111 stop;
+#X obj 189 133 osc~ 441;
+#X obj 56 81 del 1000;
+#X text 41 9 writesf~ -- write audio signals to a soundfile;
+#X text 269 276 updated for Pd version 0.32.;
+#X text 205 158 creation argument is number of channels;
+#X text 206 169 (1 to 64).;
+#X text 250 58 create a new soundfile;
+#X text 181 85 start streaming audio;
+#X text 176 111 stop streaming audio;
+#X text 27 186 writesf~ creates a subthread whose task is to write audio streams to disk. You need not provide any access time between "open" and "start" \, but between "stop" and the next "open" you must give the object time to flush all the output to disk.;
+#X text 27 240 writesf~ works best with pd in "realtime" mode (pd -rt). Available for linux only at the moment...;
+#X obj 132 158 writesf~ 2;
+#X msg 136 60 open /tmp/foo.wav;
+#X connect 1 0 16 0;
+#X connect 2 0 3 0;
+#X connect 2 0 6 0;
+#X connect 3 0 16 0;
+#X connect 4 0 16 0;
+#X connect 5 0 16 0;
+#X connect 6 0 4 0;
+#X connect 17 0 16 0;
diff --git a/pd/doc/5.reference/x_all_guis.pd b/pd/doc/5.reference/x_all_guis.pd
new file mode 100644
index 00000000..3c18031b
--- /dev/null
+++ b/pd/doc/5.reference/x_all_guis.pd
@@ -0,0 +1,20 @@
+#N canvas 209 342 290 271 10;
+#X obj 23 31 bng 15 250 50 532480 \$1 \$1 empty 20 8 192 8 -262144
+-1 -1;
+#X obj 23 63 tgl 15 1.06496e+06 \$2 \$2 empty 20 8 192 8 -262144 -1
+-1 0 1;
+#X obj 22 95 vsl 15 128 0 127 0 1.59744e+06 \$3 \$3 empty 20 8 192
+8 -262144 -1 -1 0 1;
+#X obj 65 30 hsl 128 15 0 127 0 2.12992e+06 \$4 \$4 empty 20 8 192
+8 -262144 -1 -1 0 1;
+#X obj 63 63 hdl 15 1 2.6624e+06 8 \$5 \$5 empty 20 8 192 8 -262144
+-1 -1 0;
+#X obj 62 99 vu 15 120 \$6 empty 35 8 64 8 -66577 -1 1 49152;
+#X obj 115 99 cnv 15 100 60 \$7 \$7 \$7 20 12 917696 14 -233017 -66577
+3.72736e+06;
+#X obj 41 308 inlet;
+#X obj 41 334 outlet;
+#X obj 227 30 vdl 15 1 4.79232e+06 8 \$9 \$9 empty 20 8 192 8 -262144
+-1 -1 0;
+#X obj 116 176 nbx 5 14 -1e+37 1e+37 0 4.25984e+06 \$8 \$8 empty 45
+7 192 10 -262144 -1 -1 0;