aboutsummaryrefslogtreecommitdiff
path: root/desiredata/doc/3.audio.examples
diff options
context:
space:
mode:
Diffstat (limited to 'desiredata/doc/3.audio.examples')
-rw-r--r--desiredata/doc/3.audio.examples/A00.intro.pd10
-rw-r--r--desiredata/doc/3.audio.examples/A00.intro.txt9
-rw-r--r--desiredata/doc/3.audio.examples/A01.sinewave.pd32
-rw-r--r--desiredata/doc/3.audio.examples/A02.amplitude.pd37
-rw-r--r--desiredata/doc/3.audio.examples/A03.line.pd55
-rw-r--r--desiredata/doc/3.audio.examples/A04.line2.pd59
-rw-r--r--desiredata/doc/3.audio.examples/A05.output.subpatch.pd30
-rw-r--r--desiredata/doc/3.audio.examples/A06.frequency.pd60
-rw-r--r--desiredata/doc/3.audio.examples/A07.frequency.mod.pd54
-rw-r--r--desiredata/doc/3.audio.examples/A08.review.pd41
-rw-r--r--desiredata/doc/3.audio.examples/B01.wavetables.pd50
-rw-r--r--desiredata/doc/3.audio.examples/B02.two-wavetables.pd147
-rw-r--r--desiredata/doc/3.audio.examples/B03.tabread4.pd130
-rw-r--r--desiredata/doc/3.audio.examples/B04.tabread4.interpolation.pd44
-rw-r--r--desiredata/doc/3.audio.examples/B05.tabread.FM.pd107
-rw-r--r--desiredata/doc/3.audio.examples/B06.table.switching.pd127
-rw-r--r--desiredata/doc/3.audio.examples/B07.sampler.pd52
-rw-r--r--desiredata/doc/3.audio.examples/B08.sampler.loop.pd64
-rw-r--r--desiredata/doc/3.audio.examples/B09.sampler.loop.smooth.pd72
-rw-r--r--desiredata/doc/3.audio.examples/B10.sampler.scratch.pd83
-rw-r--r--desiredata/doc/3.audio.examples/B11.sampler.nodoppler.pd85
-rw-r--r--desiredata/doc/3.audio.examples/B12.sampler.transpose.pd109
-rw-r--r--desiredata/doc/3.audio.examples/B13.sampler.overlap.pd158
-rw-r--r--desiredata/doc/3.audio.examples/B14.sampler.rockafella.pd166
-rw-r--r--desiredata/doc/3.audio.examples/C01.nyquist.pd102
-rw-r--r--desiredata/doc/3.audio.examples/C02.sawtooth-foldover.pd39
-rw-r--r--desiredata/doc/3.audio.examples/C03.zipper.noise.pd55
-rw-r--r--desiredata/doc/3.audio.examples/C04.control.to.signal.pd48
-rw-r--r--desiredata/doc/3.audio.examples/C05.sampler.oneshot.pd84
-rw-r--r--desiredata/doc/3.audio.examples/C06.signal.to.control.pd25
-rw-r--r--desiredata/doc/3.audio.examples/C07.envelope.follower.pd113
-rw-r--r--desiredata/doc/3.audio.examples/C08.analog.sequencer.pd156
-rw-r--r--desiredata/doc/3.audio.examples/C09.sample.hold.pd104
-rw-r--r--desiredata/doc/3.audio.examples/C10.monophonic.synth.pd107
-rw-r--r--desiredata/doc/3.audio.examples/D01.envelope.gen.pd50
-rw-r--r--desiredata/doc/3.audio.examples/D02.adsr.pd42
-rw-r--r--desiredata/doc/3.audio.examples/D03.envelope.dB.pd100
-rw-r--r--desiredata/doc/3.audio.examples/D04.envelope.quartic.pd81
-rw-r--r--desiredata/doc/3.audio.examples/D05.envelope.pitch.pd153
-rw-r--r--desiredata/doc/3.audio.examples/D06.envelope.portamento.pd148
-rw-r--r--desiredata/doc/3.audio.examples/D07.additive.pd50
-rw-r--r--desiredata/doc/3.audio.examples/D08.table.spectrum.pd91
-rw-r--r--desiredata/doc/3.audio.examples/D09.shepard.tone.pd108
-rw-r--r--desiredata/doc/3.audio.examples/D10.sampler.notes.pd263
-rw-r--r--desiredata/doc/3.audio.examples/D11.sampler.poly.pd175
-rw-r--r--desiredata/doc/3.audio.examples/D12.sampler.bis.pd203
-rw-r--r--desiredata/doc/3.audio.examples/D13.additive.qlist.pd47
-rw-r--r--desiredata/doc/3.audio.examples/D14.vibrato.pd104
-rw-r--r--desiredata/doc/3.audio.examples/E01.spectrum.pd179
-rw-r--r--desiredata/doc/3.audio.examples/E02.ring.modulation.pd197
-rw-r--r--desiredata/doc/3.audio.examples/E03.octave.divider.pd141
-rw-r--r--desiredata/doc/3.audio.examples/E04.difference.tone.pd45
-rw-r--r--desiredata/doc/3.audio.examples/E05.chebychev.pd257
-rw-r--r--desiredata/doc/3.audio.examples/E06.exponential.pd335
-rw-r--r--desiredata/doc/3.audio.examples/E07.evenodd.pd109
-rw-r--r--desiredata/doc/3.audio.examples/E08.phase.mod.pd196
-rw-r--r--desiredata/doc/3.audio.examples/E09.FM.spectrum.pd139
-rw-r--r--desiredata/doc/3.audio.examples/E10.complex.FM.pd156
-rw-r--r--desiredata/doc/3.audio.examples/F01.pulse.pd82
-rw-r--r--desiredata/doc/3.audio.examples/F02.just.say.pd152
-rw-r--r--desiredata/doc/3.audio.examples/F03.pulse.spectrum.pd126
-rw-r--r--desiredata/doc/3.audio.examples/F04.waveshaping.pulse.pd133
-rw-r--r--desiredata/doc/3.audio.examples/F05.ring.modulation.pd160
-rw-r--r--desiredata/doc/3.audio.examples/F06.packets.pd117
-rw-r--r--desiredata/doc/3.audio.examples/F07.packet.spectrum.pd147
-rw-r--r--desiredata/doc/3.audio.examples/F08.two.cosines.pd70
-rw-r--r--desiredata/doc/3.audio.examples/F09.declickit.pd94
-rw-r--r--desiredata/doc/3.audio.examples/F10.sweepable.FM.pd152
-rw-r--r--desiredata/doc/3.audio.examples/F11.anharmonic.FM.pd126
-rw-r--r--desiredata/doc/3.audio.examples/F12.paf.pd226
-rw-r--r--desiredata/doc/3.audio.examples/F13.paf.control.pd164
-rw-r--r--desiredata/doc/3.audio.examples/G01.delay.pd48
-rw-r--r--desiredata/doc/3.audio.examples/G02.delay.loop.pd44
-rw-r--r--desiredata/doc/3.audio.examples/G03.delay.variable.pd77
-rw-r--r--desiredata/doc/3.audio.examples/G04.control.blocksize.pd79
-rw-r--r--desiredata/doc/3.audio.examples/G05.execution.order.pd79
-rw-r--r--desiredata/doc/3.audio.examples/G06.octave.doubler.pd114
-rw-r--r--desiredata/doc/3.audio.examples/G07.shaker.pd80
-rw-r--r--desiredata/doc/3.audio.examples/G08.reverb.pd253
-rw-r--r--desiredata/doc/3.audio.examples/G09.pitchshift.pd162
-rw-r--r--desiredata/doc/3.audio.examples/H01.low-pass.pd185
-rw-r--r--desiredata/doc/3.audio.examples/H02.high-pass.pd173
-rw-r--r--desiredata/doc/3.audio.examples/H03.band-pass.pd57
-rw-r--r--desiredata/doc/3.audio.examples/H04.filter.sweep.pd58
-rw-r--r--desiredata/doc/3.audio.examples/H05.filter.floyd.pd132
-rw-r--r--desiredata/doc/3.audio.examples/H06.envelope.follower.pd86
-rw-r--r--desiredata/doc/3.audio.examples/H07.measure.spectrum.pd88
-rw-r--r--desiredata/doc/3.audio.examples/H08.heterodyning.pd85
-rw-r--r--desiredata/doc/3.audio.examples/H09.ssb.modulation.pd103
-rw-r--r--desiredata/doc/3.audio.examples/H10.measurement.pd90
-rw-r--r--desiredata/doc/3.audio.examples/H11.shelving.pd74
-rw-r--r--desiredata/doc/3.audio.examples/H12.peaking.pd112
-rw-r--r--desiredata/doc/3.audio.examples/H13.butterworth.pd74
-rw-r--r--desiredata/doc/3.audio.examples/H14.all.pass.pd85
-rw-r--r--desiredata/doc/3.audio.examples/H15.phaser.pd109
-rw-r--r--desiredata/doc/3.audio.examples/H16.adsr.filter.qlist.pd167
-rw-r--r--desiredata/doc/3.audio.examples/I01.Fourier.analysis.pd90
-rw-r--r--desiredata/doc/3.audio.examples/I02.Hann.window.pd181
-rw-r--r--desiredata/doc/3.audio.examples/I03.resynthesis.pd132
-rw-r--r--desiredata/doc/3.audio.examples/I04.noisegate.pd330
-rw-r--r--desiredata/doc/3.audio.examples/I05.compressor.pd237
-rw-r--r--desiredata/doc/3.audio.examples/I06.timbre.stamp.pd370
-rw-r--r--desiredata/doc/3.audio.examples/I07.phase.vocoder.pd548
-rw-r--r--desiredata/doc/3.audio.examples/I08.pvoc.reverb.pd421
-rw-r--r--desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd411
-rw-r--r--desiredata/doc/3.audio.examples/I10.phase.bash.pd569
-rw-r--r--desiredata/doc/3.audio.examples/J01.even.odd.pd66
-rw-r--r--desiredata/doc/3.audio.examples/J02.trapezoids.pd84
-rw-r--r--desiredata/doc/3.audio.examples/J03.pulse.width.mod.pd48
-rw-r--r--desiredata/doc/3.audio.examples/J04.corners.pd112
-rw-r--r--desiredata/doc/3.audio.examples/J05.triangle.pd56
-rw-r--r--desiredata/doc/3.audio.examples/J06.enveloping.pd97
-rw-r--r--desiredata/doc/3.audio.examples/J07.oversampling.pd61
-rw-r--r--desiredata/doc/3.audio.examples/J08.classicsynth.pd135
-rw-r--r--desiredata/doc/3.audio.examples/J09.bandlimited.pd216
-rw-r--r--desiredata/doc/3.audio.examples/adsr.pd96
-rw-r--r--desiredata/doc/3.audio.examples/buttercoef3.pd80
-rw-r--r--desiredata/doc/3.audio.examples/butterworth3~.pd104
-rw-r--r--desiredata/doc/3.audio.examples/filter-graph1.pd84
-rw-r--r--desiredata/doc/3.audio.examples/filter-graph2.pd121
-rw-r--r--desiredata/doc/3.audio.examples/osc-voice.pd89
-rw-r--r--desiredata/doc/3.audio.examples/output~.pd66
-rw-r--r--desiredata/doc/3.audio.examples/partial.pd76
-rw-r--r--desiredata/doc/3.audio.examples/qlist-sampler.txt147
-rw-r--r--desiredata/doc/3.audio.examples/qlist.txt56
-rw-r--r--desiredata/doc/3.audio.examples/qlist2.txt5
-rw-r--r--desiredata/doc/3.audio.examples/reverb-echo.pd24
-rw-r--r--desiredata/doc/3.audio.examples/sampvoice.pd114
-rw-r--r--desiredata/doc/3.audio.examples/sampvoice2.pd122
-rw-r--r--desiredata/doc/3.audio.examples/shepvoice.pd47
-rw-r--r--desiredata/doc/3.audio.examples/sinevoice.pd67
-rw-r--r--desiredata/doc/3.audio.examples/spectrum-partial.pd57
132 files changed, 0 insertions, 15865 deletions
diff --git a/desiredata/doc/3.audio.examples/A00.intro.pd b/desiredata/doc/3.audio.examples/A00.intro.pd
deleted file mode 100644
index 69087781..00000000
--- a/desiredata/doc/3.audio.examples/A00.intro.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 440 252 579 286 12;
-#X text 87 6 INTRODUCTION TO THE PD AUDIO EXAMPLE PATCHES;
-#X text 328 257 updated for Pd version 0.37;
-#X text 34 45 This is the second of three tutorial series on Pd. This
-one shows the time-domain audio processing features. (The first one
-showed how to use Pd to do "control" computations \, and the third
-is about frequency-domain techniques.);
-#X text 33 125 These patches are accompanied by an ONLINE BOOK:;
-#X text 100 158 http://www.crca.ucsd.edu/~msp/techniques.htm;
-#X text 37 189 which develops the underlying theory.;
diff --git a/desiredata/doc/3.audio.examples/A00.intro.txt b/desiredata/doc/3.audio.examples/A00.intro.txt
deleted file mode 100644
index d982eedd..00000000
--- a/desiredata/doc/3.audio.examples/A00.intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is the second of three tutorial series on Pd. This one shows the
-time-domain audio processing features. (The first one showed how to use Pd to
-do "control" computations, and the third is about frequency-domain techniques.)
-
-These patches are accompanied by an ONLINE BOOK:
-
- http://www.crca.ucsd.edu/~msp/techniques.htm
-
-which develops the underlying theory.
diff --git a/desiredata/doc/3.audio.examples/A01.sinewave.pd b/desiredata/doc/3.audio.examples/A01.sinewave.pd
deleted file mode 100644
index 42b8aed0..00000000
--- a/desiredata/doc/3.audio.examples/A01.sinewave.pd
+++ /dev/null
@@ -1,32 +0,0 @@
-#N canvas 6 2 588 513 12;
-#X obj 108 109 osc~ 440;
-#X obj 108 168 dac~;
-#X text 187 111 <-- 440 Hz. sine wave at full blast;
-#X obj 108 138 *~ 0.05;
-#X text 202 3 MAKING A SINE WAVE;
-#X text 32 195 Audio computation can be turned on and off by sending
-messages to the global "pd" object as follows:;
-#X msg 98 239 \; pd dsp 1;
-#X msg 202 239 \; pd dsp 0;
-#X text 113 276 ON;
-#X text 222 276 OFF;
-#X text 29 297 You should see the Pd window change to reflect whether
-audio is on or off. You can also turn audio on and off using the "audio"
-menu \, but the buttons are provided as a shortcut.;
-#X text 30 368 When DSP is on \, you should hear a tone whose pitch
-is A 440 and whose amplitude is 0.05. If instead you are greeted with
-silence \, you might want to read the HTML documentation on setting
-up audio.;
-#X text 28 434 In general when you start a work session with Pd \,
-you will want to choose "test audio and MIDI" from the help window
-\, which opens a more comprehensive test patch than this one.;
-#X text 296 247 <-- click these;
-#X text 187 139 <-- reduce amplitude to 0.05;
-#X text 160 168 <----- send to the audio output device;
-#X text 32 23 Audio computation in Pd is done using "tilde objects"
-such as the three below. They use continuous audio streams to intercommunicate
-\, as well as communicating with other ("control") Pd objects using
-messages.;
-#X text 342 490 updated for Pd version 0.36;
-#X connect 0 0 3 0;
-#X connect 3 0 1 0;
diff --git a/desiredata/doc/3.audio.examples/A02.amplitude.pd b/desiredata/doc/3.audio.examples/A02.amplitude.pd
deleted file mode 100644
index d24be18d..00000000
--- a/desiredata/doc/3.audio.examples/A02.amplitude.pd
+++ /dev/null
@@ -1,37 +0,0 @@
-#N canvas 73 190 702 512 12;
-#X obj 64 65 osc~ 440;
-#X obj 64 283 dac~;
-#X text 145 66 <-- 440 Hz. sine wave at full blast;
-#X msg 431 7 \; pd dsp 1;
-#X msg 514 7 \; pd dsp 0;
-#X text 456 45 ON;
-#X text 534 43 OFF;
-#X text 164 18 CONTROLLING AMPLITUDE;
-#X text 35 327 Amplitudes of audio signals can have any reasonable
-range \, but when you output a signal via the dac~ object \, the samples
-should range between -1 and +1. Values out of that range will be "clipped."
-;
-#X obj 64 202 *~ 0;
-#X floatatom 107 165 0 0 0 0 - - -;
-#X obj 95 132 dbtorms;
-#X floatatom 95 100 0 0 80 0 - - -;
-#X text 141 100 <-- set amplitude here in dB;
-#X text 211 133 <-- this converts dB to linear units;
-#X text 210 164 <-- this shows the linear gain;
-#X text 116 204 <-- multiply the sine wave by the gain \, reducing
-its amplitude. You can also use the "*~" object to multiply two signals.
-The "0" argument here instructs it that we'll just send it messages
-to set the multiplier.;
-#X text 35 396 Here we calculate a gain for the multiplier (*~) using
-a "dbtorms" object (acronym for "dB to RMS"). 100 dB is normalized
-to one \, and zero dB artificially outputs a true 0;
-#X text 34 452 Pd assumes you have a two channel audio system unless
-you tell it otherwise.;
-#X text 440 486 updated for Pd version 0.33;
-#X text 114 282 <-- and out. We're sending to both channels now.;
-#X connect 0 0 9 0;
-#X connect 9 0 1 0;
-#X connect 9 0 1 1;
-#X connect 11 0 9 1;
-#X connect 11 0 10 0;
-#X connect 12 0 11 0;
diff --git a/desiredata/doc/3.audio.examples/A03.line.pd b/desiredata/doc/3.audio.examples/A03.line.pd
deleted file mode 100644
index 392df533..00000000
--- a/desiredata/doc/3.audio.examples/A03.line.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 369 106 647 598 12;
-#X obj 56 79 osc~ 440;
-#X obj 56 309 dac~;
-#X msg 446 79 \; pd dsp 1;
-#X msg 538 79 \; pd dsp 0;
-#X text 467 112 ON;
-#X text 555 112 OFF;
-#X obj 56 269 *~;
-#X obj 72 243 line~;
-#X text 129 243 <--- ramp generator;
-#X text 132 78 <-- sine wave;
-#X msg 72 103 0.1 2000;
-#X msg 72 177 0 2000;
-#X msg 72 125 0.1 50;
-#X msg 72 199 0 50;
-#X msg 72 147 0.1;
-#X msg 72 221 0;
-#X text 274 124 ON;
-#X text 154 105 <-- slow;
-#X text 144 126 <-- fast;
-#X text 111 146 <-- instantly;
-#X text 271 197 OFF;
-#X text 136 178 <-- slow;
-#X text 129 199 <-- fast;
-#X text 109 219 <-- instantly;
-#X text 112 161 ----------------------;
-#X text 97 308 <-- out;
-#X text 103 7 CONTROLLING AMPLITUDE USING LINE~;
-#X text 38 342 Line~'s left inlet is a target value \; it reaches that
-target in the time specified (in milliseconds) to its right inlet.
-;
-#X text 34 495 The line~ object (and its control brother \, line) treat
-their right inlet specially. The inlets don't retain values the way
-other inlets do but revert to zero whenever a target is received.;
-#X text 14 27 In this patch \, the multiplier is configured to multiply
-two signals. The amplitude is now a signal computed by the line~ object.
-;
-#X text 37 395 (In this example \, message boxes with two numbers each
-are connected to line~'s left inlet. Except in some special cases \,
-Pd objects with more than one inlet will automatically distribute lists
-of numbers across their inlets. In this case \, "0 50" becomes \, "50
-at right and 0 at left.");
-#X text 386 557 updated for Pd version 0.36;
-#X text 93 268 <-- multiply the sine wave by the ramp. There's no longer
-a "0" argument-- this tells Pd to expect a signal here.;
-#X connect 0 0 6 0;
-#X connect 6 0 1 0;
-#X connect 6 0 1 1;
-#X connect 7 0 6 1;
-#X connect 10 0 7 0;
-#X connect 11 0 7 0;
-#X connect 12 0 7 0;
-#X connect 13 0 7 0;
-#X connect 14 0 7 0;
-#X connect 15 0 7 0;
diff --git a/desiredata/doc/3.audio.examples/A04.line2.pd b/desiredata/doc/3.audio.examples/A04.line2.pd
deleted file mode 100644
index c6dd1679..00000000
--- a/desiredata/doc/3.audio.examples/A04.line2.pd
+++ /dev/null
@@ -1,59 +0,0 @@
-#N canvas 30 68 949 754 12;
-#X obj 67 77 osc~ 440;
-#X obj 67 329 dac~;
-#X obj 67 242 *~;
-#X obj 86 180 line~;
-#X text 116 330 <-- out;
-#X text 124 9 LINES GRAPHED;
-#X text 24 33 Here again is a line~ controlling the amplitude of an
-osc~ \, but with the outputs graphed:;
-#X obj 149 89 r graphit;
-#X obj 151 179 r graphit;
-#X obj 151 246 r graphit;
-#X obj 86 149 r to-line;
-#X graph graph1 0 -1.02 44100 1.02 631 480 831 350;
-#X array product 44100 float 0;
-#X pop;
-#X graph graph1 0 -1.02 44100 1.02 631 150 831 20;
-#X array osc-output 44100 float 0;
-#X pop;
-#X graph graph1 0 -1.02 44100 1.02 631 315 831 185;
-#X array line-output 44100 float 0;
-#X pop;
-#X obj 149 119 tabwrite~ osc-output;
-#X obj 67 299 *~ 0.1;
-#X msg 38 401 \; pd dsp 1 \; to-line 0 \, 1 500 \; graphit bang;
-#X msg 210 401 \; pd dsp 1 \; to-line 1 \, 0 500 \; graphit bang;
-#X obj 151 209 tabwrite~ line-output;
-#X obj 151 276 tabwrite~ product;
-#X text 70 379 ramp up;
-#X text 235 378 ramp down;
-#X text 406 376 to 1/2;
-#X msg 375 400 \; pd dsp 1 \; to-line 0.5 1000 \; graphit bang;
-#X text 634 491 ------ 1 second ------;
-#X text 38 485 Click the message boxes above to try it. Note that in
-the first two boxes \, the line~ objects get two messages. The first
-one \, with no time value \, causes the line~ to jump immediately to
-the value. The third box takes line~'s previous value as a point of
-departure. What you see will depend on which box you last clicked and
-how long you waited between the two.;
-#X text 662 727 updated for Pd version 0.33;
-#X text 41 600 On most machines \, you will hear an interruption in
-the sound one second after you click on the first or third box. This
-is because the graphical updates are likely to eat more CPU time than
-your audio buffer has pre-buffered for. You can avoid this if you keep
-your graphs in sub-windows and open them only when you need them. In
-some future version of Pd this behavior will be improved. Until then
-\, you'll have to avoid having arrays getting re-drawn during music
-performances.;
-#X connect 0 0 2 0;
-#X connect 0 0 14 0;
-#X connect 2 0 15 0;
-#X connect 2 0 19 0;
-#X connect 3 0 2 1;
-#X connect 3 0 18 0;
-#X connect 7 0 14 0;
-#X connect 8 0 18 0;
-#X connect 9 0 19 0;
-#X connect 10 0 3 0;
-#X connect 15 0 1 0;
diff --git a/desiredata/doc/3.audio.examples/A05.output.subpatch.pd b/desiredata/doc/3.audio.examples/A05.output.subpatch.pd
deleted file mode 100644
index d24fdba2..00000000
--- a/desiredata/doc/3.audio.examples/A05.output.subpatch.pd
+++ /dev/null
@@ -1,30 +0,0 @@
-#N canvas 300 159 635 486 12;
-#X text 261 20 CONTROLLING OUTPUT AMPLITUDE;
-#X obj 32 27 osc~ 440;
-#X obj 54 55 osc~ 550;
-#X obj 54 116 osc~ 660;
-#X obj 32 88 +~;
-#X obj 32 142 +~;
-#X text 108 177 <-- this is a subwindow--right click on it;
-#X text 149 197 and select "open" to see inside.;
-#X text 30 401 The output control automatically starts DSP whenever
-you touch the level control. Hitting "mute" toggles between the current
-level and zero.;
-#X obj 32 173 output~;
-#X text 383 463 updated for Pd version 0.36;
-#X text 143 115 <-- Here we make an A major triad as a test signal.
-;
-#X text 31 250 In this and subsequent patches \, we'll use a subwindow
-\, "output" \, to control overall amplitude. The amplitudes are in
-decibels \, with 100 being full blast. In this example \, you can't
-actually push the output amplitude past 90 or so without clipping.
-You'll know you're clipping if \, instead of an A major chord \, you
-hear a single \, distorted tone two octaves down. The clipping happens
-at Pd's last stage of audio output. Audio signals internal to Pd have
-essentially no level limit.;
-#X connect 1 0 4 0;
-#X connect 2 0 4 1;
-#X connect 3 0 5 1;
-#X connect 4 0 5 0;
-#X connect 5 0 9 0;
-#X connect 5 0 9 1;
diff --git a/desiredata/doc/3.audio.examples/A06.frequency.pd b/desiredata/doc/3.audio.examples/A06.frequency.pd
deleted file mode 100644
index 50cff7c0..00000000
--- a/desiredata/doc/3.audio.examples/A06.frequency.pd
+++ /dev/null
@@ -1,60 +0,0 @@
-#N canvas 8 17 693 642 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array osc-output 4410 float 0;
-#X coords 0 1.02 4410 -1.02 200 130 1;
-#X restore 473 167 graph;
-#X obj 98 261 tabwrite~ osc-output;
-#X msg 98 232 bang;
-#X floatatom 280 66 0 0 0 0 - - -;
-#X text 147 231 <-- click to graph;
-#X obj 15 206 r frequency;
-#X msg 280 37 set \$1;
-#X floatatom 6 66 0 0 0 0 - - -;
-#X obj 6 8 r frequency;
-#X msg 6 37 set \$1;
-#X obj 19 90 s frequency;
-#X obj 280 8 r pitch;
-#X obj 289 90 s pitch;
-#X obj 280 116 mtof;
-#X obj 280 145 s frequency;
-#X obj 6 145 s pitch;
-#X obj 6 116 ftom;
-#X text 105 66 <-- set frequency;
-#X text 372 65 <-- set MIDI pitch;
-#X text 15 429 Frequency and pitch are converted using the "ftom" and
-"mtof" objects. Frequency refers to the number of cycles per second.
-Pitch is "60" for Middle C \, 61 for C sharp \, 72 for the next C up
-\, and so on.;
-#X text 476 308 ---- 0.1 seconds ----;
-#X text 447 6 FREQUENCY AND PITCH;
-#X text 16 363 The osc~ object \, if you give it an argument \, expects
-floating-point messages to set its frequency. Without arguments \,
-its frequency is controlled by connecting an audio signal to its input.
-;
-#X text 14 496 Mtof and ftom work fine for microtones (non-integral
-"MIDI pitch" ) and don't have MIDI's range restriction-- for example
-\, MIDI -36 is about 1 Hz.;
-#X text 15 553 Note also the "set" messages going to the number boxes
-so that they can each update the other without bringing on an infinite
-loop. (get help on number boxes for details.);
-#X text 87 291 <-- output level;
-#X text 51 116 <-- convert frequency;
-#X text 106 134 to "MIDI" pitch;
-#X text 327 117 <-- convert "MIDI" pitch to frequency;
-#X obj 15 273 output~;
-#X text 437 619 updated for Pd version 0.36;
-#X obj 15 232 osc~;
-#X connect 2 0 1 0;
-#X connect 3 0 12 0;
-#X connect 3 0 13 0;
-#X connect 5 0 31 0;
-#X connect 6 0 3 0;
-#X connect 7 0 10 0;
-#X connect 7 0 16 0;
-#X connect 8 0 9 0;
-#X connect 9 0 7 0;
-#X connect 11 0 6 0;
-#X connect 13 0 14 0;
-#X connect 16 0 15 0;
-#X connect 31 0 1 0;
-#X connect 31 0 29 0;
diff --git a/desiredata/doc/3.audio.examples/A07.frequency.mod.pd b/desiredata/doc/3.audio.examples/A07.frequency.mod.pd
deleted file mode 100644
index aedb1cc1..00000000
--- a/desiredata/doc/3.audio.examples/A07.frequency.mod.pd
+++ /dev/null
@@ -1,54 +0,0 @@
-#N canvas 92 96 760 640 12;
-#X obj 259 168 *~;
-#X floatatom 259 83 0 0 0 0 - - -;
-#X floatatom 169 118 0 0 0 0 - - -;
-#X obj 169 188 +~;
-#N canvas 0 0 450 300 graph1 0;
-#X array fm-output 441 float 0;
-#X coords 0 1.02 440 -1.02 200 130 1;
-#X restore 527 40 graph;
-#X msg 244 228 bang;
-#X text 286 228 <-- click to graph;
-#X obj 244 252 tabwrite~ fm-output;
-#X floatatom 281 138 0 0 0 0 - - -;
-#X text 166 75 carrier;
-#X text 165 93 frequency;
-#X text 244 59 frequency;
-#X text 245 42 modulation;
-#X text 33 8 FREQUENCY MODULATION ("FM") USING TWO OSCILLATORS;
-#X obj 168 232 osc~;
-#X text 52 214 "carrier";
-#X text 34 232 oscillator -->;
-#X text 47 149 add modulator;
-#X text 46 167 to carrier;
-#X text 44 186 frequency -->;
-#X text 320 150 index;
-#X text 322 131 modulation;
-#X obj 259 108 osc~;
-#X text 531 172 --- 0.01 seconds ----;
-#X text 53 443 To get the FM sound \, set all three of carrier frequency
-\, modulation frequency \, and modulation index in the hundreds. Note
-that you get a timbral change as you sweep modulation index \, because
-this changes the amplitudes of the components of the output sound but
-not their frequencies.;
-#X obj 167 270 output~;
-#X text 489 613 updated for Pd version 0.37;
-#X text 54 332 This patch shows the classical FM synthesis technique
-developed by John Chowning. It's nothing but an oscillator with vibrato
-controlled by another "modulation" oscillator. First \, to understand
-the patch \, set carrier frequency to 400 or so \, modulation frequency
-between 5 and 10 \, and try modulation index values between 0 and 400
-\, say. You'll hear a sine wave with vibrato.;
-#X text 55 526 The component frequencies are equal to the carrier frequency
-\, plus or minus multiples of the modulator frequency. A more complete
-discussion of FM occurs in part 5 of this series.;
-#X connect 0 0 3 1;
-#X connect 1 0 22 0;
-#X connect 2 0 3 0;
-#X connect 3 0 14 0;
-#X connect 5 0 7 0;
-#X connect 8 0 0 1;
-#X connect 14 0 7 0;
-#X connect 14 0 25 0;
-#X connect 14 0 25 1;
-#X connect 22 0 0 0;
diff --git a/desiredata/doc/3.audio.examples/A08.review.pd b/desiredata/doc/3.audio.examples/A08.review.pd
deleted file mode 100644
index 9b190a19..00000000
--- a/desiredata/doc/3.audio.examples/A08.review.pd
+++ /dev/null
@@ -1,41 +0,0 @@
-#N canvas 36 68 701 588 12;
-#X text 444 542 updated for Pd version 0.34;
-#X text 39 14 PART 1 REVIEW;
-#X obj 66 131 tabwrite~;
-#X obj 66 105 line~;
-#X obj 54 298 +;
-#X obj 66 79 +~;
-#X obj 66 209 cos~;
-#X obj 66 157 osc~;
-#X obj 66 183 phasor~;
-#X obj 54 324 pack;
-#X obj 52 511 r;
-#X obj 53 487 s;
-#X obj 54 408 inlet;
-#X obj 53 462 f;
-#X obj 53 436 t;
-#X obj 54 378 dbtorms;
-#X obj 97 351 mtof;
-#X obj 54 350 ftom;
-#X obj 105 408 outlet;
-#X obj 66 235 dac~;
-#X text 26 52 So far we've seen these audio ("tilde") objects:;
-#X text 123 104 -- ramp generator;
-#X text 157 131 -- sampler (which we've only used for graphing so far)
-;
-#X text 111 157 -- a cosine wave oscillator;
-#X text 139 183 -- phase generator for making your own oscillator;
-#X text 112 209 -- cosine waveshape lookup;
-#X text 112 236 -- audio output ("digital/analog converter" -- a misnomer)
-;
-#X text 31 266 ... and these "control" objects:;
-#X text 145 349 -- frequency to pitch conversion;
-#X text 126 378 -- decibel to amplitude conversion;
-#X text 167 409 -- input and output to a subpatch;
-#X text 90 437 ("trigger") -- message ordering and conversion;
-#X text 93 462 ("float") -- store a (floating point) number;
-#X text 90 488 ("send") -- wireless message sending;
-#X text 91 513 ("receive") ... and receiving;
-#X text 106 78 (etc.) -- arithmetic on audio signals;
-#X text 92 296 (etc.) -- arithmetic;
-#X text 99 323 -- combine two or more values in a single message;
diff --git a/desiredata/doc/3.audio.examples/B01.wavetables.pd b/desiredata/doc/3.audio.examples/B01.wavetables.pd
deleted file mode 100644
index 66549d3e..00000000
--- a/desiredata/doc/3.audio.examples/B01.wavetables.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 19 22 722 608 12;
-#X floatatom 164 43 0 0 0 0 - - -;
-#N canvas 0 0 450 300 graph1 0;
-#X array table10 259 float 1;
-#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0.612 0.612 0.612 0.612 0.612 0.627692 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 -0.470769 -0.470769 -0.470769 -0.470769 -0.470769
--0.470769 -0.470769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0.627692 0.627692 0.627692 0.643385 0.643385 0.643385
-0.659077 0 -0.502154 -0.502154 -0.502154 -0.486462 -0.486462 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0.580615 0.596308 0.596308 0.596308 0.596308
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-#X coords 0 1.02 258 -1.02 258 130 1;
-#X restore 445 47 graph;
-#X text 30 123 oscillator -->;
-#X text 456 587 updated for Pd version 0.34;
-#X text 33 8 WAVETABLE OSCILLATORS;
-#X text 36 106 wavetable;
-#X obj 164 70 mtof;
-#X floatatom 164 97 0 0 0 0 - - -;
-#X obj 164 123 tabosc4~ table10;
-#X text 94 42 pitch->;
-#X text 35 309 Note that I selected "save contents" in the properties
-dialog for table10 (right click on the table to see.) If this isn't
-set \, the waveform won't be remembered as part of the patch but will
-be reinitialized to zero when the patch is reopened.;
-#X msg 35 549 \; table10 cosinesum 256 0.2 -0.2 0.2 -0.2 0.2 -0.2 0.2
-;
-#X msg 578 240 \; table10 const 0;
-#X text 597 217 CLEAR TABLE;
-#X text 35 395 For efficiency's sake tabosc4~ requires that the table
-have a power of two plus three points (64+3=67 \, 128+3=131 \, 256+3=259
-\, etc.) If you want wraparound to work smoothly \, you should make
-the last three points copies of the first three. This is done because
-tabread4~ does 4-point interpolation.;
-#X text 38 494 If you want a specific sinusoidal composition \, you
-can send table10 a message \, as below (see 11.arrays in the control
-examples):;
-#X text 36 240 Here \, in place of the "osc~" cosine wave oscillator
-\, we introduce the tabosc4~ oscillator which produces an arbitrary
-waveform. You can draw in the waveform with the mouse.;
-#X obj 164 151 output~;
-#X connect 0 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 17 0;
-#X connect 8 0 17 1;
diff --git a/desiredata/doc/3.audio.examples/B02.two-wavetables.pd b/desiredata/doc/3.audio.examples/B02.two-wavetables.pd
deleted file mode 100644
index c4cc6d60..00000000
--- a/desiredata/doc/3.audio.examples/B02.two-wavetables.pd
+++ /dev/null
@@ -1,147 +0,0 @@
-#N canvas 74 98 749 466 12;
-#X graph graph1 0 -1.02 258 1.02 475 298 733 168;
-#X array waveform11 259 float 1;
-#A 0 -0.0896033 0 0.0896033 0.178356 0.265425 0.350007 0.431348 0.508756
-0.58161 0.649372 0.711597 0.767935 0.818137 0.862053 0.89963 0.930912
-0.956028 0.975187 0.988669 0.996811 1 0.998655 0.993223 0.984158 0.971919
-0.956953 0.939691 0.920538 0.899867 0.878018 0.85529 0.831945 0.808204
-0.784252 0.760239 0.736284 0.712477 0.688888 0.665568 0.642553 0.619872
-0.59755 0.575607 0.554066 0.532953 0.512296 0.49213 0.472491 0.453419
-0.434957 0.417147 0.400027 0.383632 0.367992 0.353126 0.339046 0.32575
-0.313227 0.301453 0.290394 0.280002 0.270224 0.260995 0.252248 0.24391
-0.235908 0.22817 0.220628 0.213219 0.205888 0.198586 0.191278 0.183936
-0.176545 0.169098 0.1616 0.154063 0.146505 0.138954 0.131437 0.123987
-0.116636 0.109415 0.102354 0.0954784 0.0888083 0.08236 0.0761442 0.0701659
-0.0644253 0.0589178 0.0536354 0.0485669 0.0436994 0.0390194 0.0345135
-0.0301695 0.0259776 0.0219306 0.0180245 0.0142591 0.0106377 0.00716724
-0.00385775 0.000722025 -0.00222511 -0.0049675 -0.00748845 -0.00977153
--0.0118014 -0.0135644 -0.0150493 -0.0162479 -0.0171551 -0.0177693 -0.0180928
--0.0181312 -0.0178936 -0.017392 -0.0166417 -0.0156601 -0.0144666 -0.0130822
--0.0115294 -0.00983114 -0.0080113 -0.00609396 -0.0041034 -0.00206402
--2.23572e-07 0.00206358 0.00410297 0.00609353 0.00801089 0.00983075
-0.011529 0.0130819 0.0144663 0.0156599 0.0166416 0.0173919 0.0178935
-0.0181312 0.0180929 0.0177695 0.0171552 0.0162481 0.0150496 0.0135647
-0.0118018 0.009772 0.00748897 0.00496807 0.00222573 -0.000721367 -0.00385706
--0.00716651 -0.010637 -0.0142583 -0.0180237 -0.0219297 -0.0259767 -0.0301686
--0.0345125 -0.0390184 -0.0436984 -0.0485658 -0.0536343 -0.0589167 -0.0644241
--0.0701647 -0.0761429 -0.0823587 -0.0888069 -0.0954769 -0.102353 -0.109414
--0.116634 -0.123985 -0.131435 -0.138952 -0.146504 -0.154061 -0.161598
--0.169097 -0.176543 -0.183935 -0.191276 -0.198584 -0.205886 -0.213218
--0.220627 -0.228169 -0.235906 -0.243908 -0.252246 -0.260993 -0.270222
--0.28 -0.290392 -0.301451 -0.313224 -0.325747 -0.339043 -0.353123 -0.367989
--0.383629 -0.400023 -0.417143 -0.434954 -0.453415 -0.472486 -0.492125
--0.512292 -0.532948 -0.554062 -0.575602 -0.597545 -0.619868 -0.642548
--0.665563 -0.688883 -0.712472 -0.736279 -0.760234 -0.784247 -0.808199
--0.83194 -0.855285 -0.878013 -0.899863 -0.920533 -0.939687 -0.956949
--0.971916 -0.984156 -0.993221 -0.998655 -1 -0.996813 -0.988671 -0.975191
--0.956033 -0.930918 -0.899638 -0.862061 -0.818147 -0.767947 -0.71161
--0.649386 -0.581625 -0.508772 -0.431366 -0.350025 -0.265443 -0.178375
--0.0896226 -1.94061e-05 0.089584;
-#X pop;
-#X floatatom 202 171 0 0 100;
-#N canvas 159 26 532 285 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 426 180 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 397 110 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 397 85 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 20 155 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 105 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 90 outlet;
-#X msg 214 65 \; pd dsp 1;
-#X obj 83 198 line~;
-#X obj 20 207 *~;
-#X obj 20 232 dac~;
-#X obj 83 173 pack 0 50;
-#X text 20 132 audio;
-#X text 96 114 show level;
-#X obj 426 155 t b;
-#X obj 20 181 hip~ 1;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 12 0;
-#X connect 5 0 12 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 26 0;
-#X connect 8 1 4 1;
-#X connect 9 0 23 0;
-#X connect 10 0 1 1;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 11 0 17 0;
-#X connect 13 0 27 0;
-#X connect 14 0 16 0;
-#X connect 14 0 19 0;
-#X connect 17 0 18 0;
-#X connect 20 0 21 1;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
-#X connect 23 0 20 0;
-#X connect 26 0 5 0;
-#X connect 27 0 21 0;
-#X restore 164 199 pd output;
-#X msg 240 172 MUTE;
-#X text 30 123 oscillator -->;
-#X text 485 445 updated for Pd version 0.34;
-#X text 33 8 WAVETABLE OSCILLATORS;
-#X text 36 106 wavetable;
-#X text 88 54 pitch->;
-#X graph graph2 0 0 258 1000 475 155 734 15;
-#X array pitch11 259 float 1;
-#A 0 757.143 757.143 735.714 700 671.429 650 621.429 600 571.429 550
-521.429 507.143 485.714 464.286 442.857 428.571 414.286 400 378.571
-364.286 342.857 328.571 928.571 921.429 921.429 914.286 907.143 892.857
-885.714 878.571 864.286 850 828.571 807.143 792.857 785.714 775 764.286
-753.571 742.857 735.714 728.571 721.429 714.286 703.571 692.857 682.143
-671.429 650 628.571 617.857 607.143 596.429 585.714 575 564.286 553.571
-542.857 532.143 521.429 510.714 500 485.714 478.571 464.286 450 435.714
-428.571 400 392.857 385.714 378.571 357.143 350 342.857 335.714 328.571
-314.286 292.857 285.714 271.429 264.286 571.429 571.429 571.429 571.429
-571.429 564.286 564.286 278.571 271.429 271.429 278.571 278.571 278.571
-278.571 571.429 571.429 571.429 575 578.571 578.571 278.571 278.571
-285.714 285.714 278.571 278.571 278.571 878.571 878.571 878.571 878.571
-878.571 321.429 325 328.571 328.571 328.571 328.571 885.714 885.714
-885.714 885.714 207.143 207.143 207.143 200 207.143 207.143 207.143
-214.286 214.286 221.429 228.571 228.571 242.857 250 257.143 264.286
-278.571 292.857 307.143 321.429 335.714 350 371.429 392.857 421.429
-435.714 471.429 500 542.857 571.429 628.571 664.286 700 728.571 757.143
-792.857 828.571 885.714 928.571 978.571 1000 1007.14 1007.14 1000 1000
-992.857 985.714 885.714 914.286 671.429 671.429 671.429 671.429 671.429
-671.429 671.429 671.429 671.429 671.429 678.571 635.714 635.714 678.571
-714.286 714.286 678.571 635.714 635.714 635.714 742.857 742.857 685.714
-685.714 635.714 621.429 685.714 792.857 792.857 678.571 521.429 521.429
-521.429 864.286 857.143 857.143 471.429 471.429 471.429 471.429 921.429
-921.429 385.714 385.714 385.714 964.286 964.286 964.286 328.571 328.571
-328.571 328.571 885.714 885.714 885.714 685.714 214.286 214.286 207.143
-207.143 921.429 921.429 921.429 921.429 207.143 207.143 200 200 957.143
-957.143 950 214.286 214.286 207.143 207.143 957.143 957.143 950 200
-207.143 207.143 942.857 942.857 942.857 950 950;
-#X pop;
-#X obj 164 87 tabosc4~ pitch11;
-#X obj 164 123 tabosc4~ waveform11;
-#X obj 164 55 sig~ 0.5;
-#X text 13 319 Here's a tabosc4~ controlling the frequency of another
-one. If you get properties on the two arrays \, you'll see that the
-top graph has a vertical scale from 0 to 1000 \; we're looping through
-that at a frequency of 0.5 Hz. and the output is used as the frequency
-input of the second tabosc4~. I've detected Klingons \, Captain Kirk...
-;
-#X connect 1 0 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 2;
-#X connect 10 0 11 0;
-#X connect 11 0 2 0;
-#X connect 12 0 10 0;
diff --git a/desiredata/doc/3.audio.examples/B03.tabread4.pd b/desiredata/doc/3.audio.examples/B03.tabread4.pd
deleted file mode 100644
index 15fa6652..00000000
--- a/desiredata/doc/3.audio.examples/B03.tabread4.pd
+++ /dev/null
@@ -1,130 +0,0 @@
-#N canvas 55 137 820 651 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array waveform12 131 float 1;
-#A 0 -0.172615 -0.172615 -0.172615 -0.172615 -0.172615 -0.141231 -0.109846
--0.0941538 -0.0627692 -0.0470769 0.0156923 0.0784615 0.125538 0.188308
-0.235385 0.298154 0.360923 0.392308 0.470769 0.533538 0.596308 0.643385
-0.674769 0.721846 0.753231 0.784615 0.816 0.831692 0.847385 0.878769
-0.894462 0.910154 0.910154 0.910154 0.910154 0.910154 0.894462 0.894462
-0.894462 0.894462 0.878769 0.863077 0.816 0.800308 0.768923 0.737538
-0.706154 0.674769 0.643385 0.596308 0.564923 0.533538 0.470769 0.423692
-0.376615 0.313846 0.266769 0.204 0.172615 0.109846 0.0627692 0.0156923
-0 -0.0313846 -0.0627692 -0.0784615 -0.0941538 -0.109846 -0.141231 -0.156923
--0.172615 -0.204 -0.219692 -0.219692 -0.235385 -0.235385 -0.235385
--0.219692 -0.219692 -0.219692 -0.204 -0.156923 -0.125538 -0.0784615
-0 0.172615 0.313846 0.470769 0.564923 0.627692 0.690462 0.721846 0.737538
-0.753231 0.768923 0.768923 0.753231 0.737538 0.706154 0.674769 0.612
-0.580615 0.549231 0.517846 0.486462 0.423692 0.392308 0.360923 0.282462
-0.219692 0.109846 -0.0156923 -0.0941538 -0.109846 -0.141231 -0.156923
--0.172615 -0.188308 -0.204 -0.204 -0.219692 -0.204 -0.204 -0.219692
--0.219692 -0.204 -0.204 -0.204 -0.204 -0.204 -0.188308;
-#X coords 0 1.02 130 -1.02 258 130 1;
-#X restore 462 30 graph;
-#X floatatom 194 299 0 0 100 0 - - -;
-#N canvas 159 26 532 285 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 426 180 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 397 110 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 397 85 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 20 155 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 105 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 90 outlet;
-#X msg 214 65 \; pd dsp 1;
-#X obj 83 198 line~;
-#X obj 20 207 *~;
-#X obj 20 232 dac~;
-#X obj 83 173 pack 0 50;
-#X text 20 132 audio;
-#X text 96 114 show level;
-#X obj 426 155 t b;
-#X obj 20 181 hip~ 1;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 12 0;
-#X connect 5 0 12 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 26 0;
-#X connect 8 1 4 1;
-#X connect 9 0 23 0;
-#X connect 10 0 1 1;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 11 0 17 0;
-#X connect 13 0 27 0;
-#X connect 14 0 16 0;
-#X connect 14 0 19 0;
-#X connect 17 0 18 0;
-#X connect 20 0 21 1;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
-#X connect 23 0 20 0;
-#X connect 26 0 5 0;
-#X connect 27 0 21 0;
-#X restore 156 327 pd output;
-#X msg 232 300 MUTE;
-#X text 33 8 WAVETABLE OSCILLATORS;
-#X obj 156 95 phasor~;
-#X obj 156 184 tabread4~ waveform12;
-#X obj 156 157 +~ 1;
-#X floatatom 156 66 4 0 0 0 - - -;
-#X floatatom 250 59 4 0 1000 0 - - -;
-#X obj 250 80 pack 0 50;
-#X obj 250 104 line~;
-#X obj 156 131 *~;
-#X text 21 81 phase;
-#X text 20 96 generation -->;
-#X text 25 117 range;
-#X text 24 132 adjustment -->;
-#X text 250 38 squeeze;
-#X text 133 40 frequency;
-#N canvas 0 0 450 300 graph3 0;
-#X array wave-out12 441 float 0;
-#X coords 0 1 440 -1 300 140 1;
-#X restore 481 190 graph;
-#X obj 177 247 tabwrite~ wave-out12;
-#X msg 177 216 bang;
-#X text 223 217 <--click to graph;
-#X text 25 360 The tabread4~ module is available for situations requiring
-more control than tabosc4~ offers. The relationship between the two
-is the same as between cos~ and osc~ \, although the units are different
-between cos~ and tabread4~. Cos~ assumes input is normalized from 0
-to 1 (and will wrap around as needed.) Tabread4~ takes values from
-1 to n-2 where n is the number of points in the table-- for a 259-point
-table such as we have here \, it's 1 to 129 (so the "good" segment
-is 128 samples long.);
-#X text 30 508 You would use tabread4~ (as opposed to tabosc4~) if
-you need direct control of the phase \, for instance if you to advance
-nonlinearly through the table. In the case shown here \, the "squeeze"
-factor makes the phase grow to a value at least \, and possibly much
-graeater than \, 129 (to which tabread4~ then limits it). So the resulting
-waveform is compressed in time.;
-#X obj 250 128 +~ 128;
-#X text 554 624 updated for Pd version 0.37;
-#X connect 1 0 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 2;
-#X connect 5 0 12 0;
-#X connect 6 0 2 0;
-#X connect 6 0 20 0;
-#X connect 7 0 6 0;
-#X connect 8 0 5 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 11 0 25 0;
-#X connect 12 0 7 0;
-#X connect 21 0 20 0;
-#X connect 25 0 12 1;
diff --git a/desiredata/doc/3.audio.examples/B04.tabread4.interpolation.pd b/desiredata/doc/3.audio.examples/B04.tabread4.interpolation.pd
deleted file mode 100644
index 18aef089..00000000
--- a/desiredata/doc/3.audio.examples/B04.tabread4.interpolation.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 137 102 781 520 12;
-#X graph graph1 0 -1.02 10 1.02 468 159 648 29;
-#X array waveform13 11 float 1;
-#A 0 1 1 1 1 1 1 1 -1 -1 -1 -1;
-#X pop;
-#X text 533 502 updated for Pd version 0.34;
-#X obj 156 157 +~ 1;
-#X text 21 81 phase;
-#X text 20 96 generation -->;
-#X text 25 117 range;
-#X text 24 132 adjustment -->;
-#X graph graph3 0 -1.02 440 1.02 469 362 769 222;
-#X array wave-out13 441 float 0;
-#X pop;
-#X msg 177 216 bang;
-#X text 223 217 <--click to graph;
-#N canvas 11 418 523 216 other-stuff 0;
-#X obj 41 49 loadbang;
-#X msg 39 81 \; waveform13 0 1 1 1 1 1 1 1 -1 -1 -1 -1 \; waveform13
-xlabel -1.2 0 1 2 3 4 5 6 7 8 9 10 \; pd dsp 1;
-#X connect 0 0 1 0;
-#X restore 626 426 pd other-stuff;
-#X obj 156 247 tabwrite~ wave-out13;
-#X obj 156 184 tabread4~ waveform13;
-#X obj 156 131 *~ 8;
-#X obj 156 95 phasor~ 220;
-#X text 36 22 4-POINT INTERPOLATION IN DETAIL;
-#X obj 216 316 sig~ 220;
-#X obj 216 346 tabosc4~ waveform13;
-#X text 35 293 (this would be;
-#X text 36 313 equivalent to the;
-#X text 110 333 above) -->;
-#X text 18 409 This patch demonstrates 4-point interpolation in tabread4~.
-The 11-point table \, waveform13 \, contains a transition from from
-1 to -1 \, which is "smoothed" as seen in wave-out13. There's no such
-transition at the wraparoind point--the interpolation always happens
-between 4 consccutive samples of the table \, disregarding wraparound.
-;
-#X connect 2 0 12 0;
-#X connect 8 0 11 0;
-#X connect 12 0 11 0;
-#X connect 13 0 2 0;
-#X connect 14 0 13 0;
-#X connect 16 0 17 0;
diff --git a/desiredata/doc/3.audio.examples/B05.tabread.FM.pd b/desiredata/doc/3.audio.examples/B05.tabread.FM.pd
deleted file mode 100644
index 0dff773e..00000000
--- a/desiredata/doc/3.audio.examples/B05.tabread.FM.pd
+++ /dev/null
@@ -1,107 +0,0 @@
-#N canvas 55 137 777 467 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array pitchmod14 131 float 1;
-#A 0 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.863077
-0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077
-0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077
-0.863077 0.863077 0.863077 0.863077 0.863077 0.831692 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
-0.847385 0.863077 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
--0.800308 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.768923 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.768923 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.800308 -0.800308
--0.800308 -0.800308 -0.800308 -0.800308 -0.800308;
-#X coords 0 1.02 130 -1.02 258 130 1;
-#X restore 462 30 graph;
-#X floatatom 191 277 0 0 100 0 - - -;
-#N canvas 159 26 532 285 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 426 180 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 397 110 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 397 85 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 20 155 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 105 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 90 outlet;
-#X msg 214 65 \; pd dsp 1;
-#X obj 83 198 line~;
-#X obj 20 207 *~;
-#X obj 20 232 dac~;
-#X obj 83 173 pack 0 50;
-#X text 20 132 audio;
-#X text 96 114 show level;
-#X obj 426 155 t b;
-#X obj 20 181 hip~ 1;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 12 0;
-#X connect 5 0 12 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 26 0;
-#X connect 8 1 4 1;
-#X connect 9 0 23 0;
-#X connect 10 0 1 1;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 11 0 17 0;
-#X connect 13 0 27 0;
-#X connect 14 0 16 0;
-#X connect 14 0 19 0;
-#X connect 17 0 18 0;
-#X connect 20 0 21 1;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
-#X connect 23 0 20 0;
-#X connect 26 0 5 0;
-#X connect 27 0 21 0;
-#X restore 153 305 pd output;
-#X msg 229 278 MUTE;
-#X floatatom 153 95 4 0 0 0 - - -;
-#X text 153 69 frequency;
-#X floatatom 195 206 4 0 0 0 - - -;
-#X text 155 50 modulation;
-#X obj 152 157 *~;
-#X text 255 150 modulation;
-#X text 253 169 depth;
-#X floatatom 201 157 4 0 0 0 - - -;
-#X obj 152 205 +~;
-#X text 250 212 frequency;
-#X obj 152 237 osc~;
-#X obj 153 122 tabosc4~ pitchmod14;
-#X text 254 194 carrier;
-#X text 33 8 FREQUENCY MODULATION BY WAVETABLE;
-#X text 47 356 This tabosc4~ controls the pitch of a sinusoidal oscillator
-(osc~). Try changing the waveform as well as the three familiar parameters.
-;
-#X text 520 438 updated for Pd version 0.37;
-#X connect 1 0 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 2;
-#X connect 4 0 15 0;
-#X connect 6 0 12 1;
-#X connect 8 0 12 0;
-#X connect 11 0 8 1;
-#X connect 12 0 14 0;
-#X connect 14 0 2 0;
-#X connect 15 0 8 0;
diff --git a/desiredata/doc/3.audio.examples/B06.table.switching.pd b/desiredata/doc/3.audio.examples/B06.table.switching.pd
deleted file mode 100644
index 558f91c4..00000000
--- a/desiredata/doc/3.audio.examples/B06.table.switching.pd
+++ /dev/null
@@ -1,127 +0,0 @@
-#N canvas 55 137 835 504 12;
-#X graph graph1 0 -1.02 130 1.02 565 153 823 23;
-#X array waveshape15a 131 float 1;
-#A 0 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.863077
-0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077
-0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077 0.863077
-0.863077 0.863077 0.863077 0.863077 0.863077 0.831692 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
-0.847385 0.863077 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385
--0.800308 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.768923 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.768923 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.800308 -0.800308
--0.800308 -0.800308 -0.800308 -0.800308 -0.800308;
-#X pop;
-#X floatatom 194 299 0 0 100;
-#N canvas 159 26 532 285 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 426 180 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 397 110 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 397 85 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 20 155 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 105 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 90 outlet;
-#X msg 214 65 \; pd dsp 1;
-#X obj 83 198 line~;
-#X obj 20 207 *~;
-#X obj 20 232 dac~;
-#X obj 83 173 pack 0 50;
-#X text 20 132 audio;
-#X text 96 114 show level;
-#X obj 426 155 t b;
-#X obj 20 181 hip~ 1;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 12 0;
-#X connect 5 0 12 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 26 0;
-#X connect 8 1 4 1;
-#X connect 9 0 23 0;
-#X connect 10 0 1 1;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 11 0 17 0;
-#X connect 13 0 27 0;
-#X connect 14 0 16 0;
-#X connect 14 0 19 0;
-#X connect 17 0 18 0;
-#X connect 20 0 21 1;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
-#X connect 23 0 20 0;
-#X connect 26 0 5 0;
-#X connect 27 0 21 0;
-#X restore 156 327 pd output;
-#X msg 232 300 MUTE;
-#X text 581 481 updated for Pd version 0.34;
-#X text 33 8 SWITCHING BETWEEN TABLES;
-#X graph graph1 0 -1.02 130 1.02 565 308 823 178;
-#X array waveshape15b 131 float 1;
-#A 0 -0.659077 -0.643385 -0.643385 -0.627692 -0.612 -0.612 -0.596308
--0.596308 -0.580615 -0.580615 -0.580615 -0.580615 -0.580615 -0.580615
--0.580615 -0.596308 -0.596308 -0.596308 -0.596308 -0.596308 -0.596308
--0.596308 -0.596308 -0.580615 -0.580615 -0.580615 -0.580615 -0.580615
--0.580615 -0.580615 -0.580615 -0.564923 -0.549231 -0.549231 -0.533538
--0.517846 -0.517846 -0.517846 -0.517846 -0.517846 -0.517846 -0.517846
--0.517846 -0.533538 -0.549231 -0.580615 -0.580615 0.847385 0.847385
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 0.863077
-0.847385 0.847385 0.847385 0.847385 0.847385 0.847385 -0.800308 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.768923 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.768923 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615 -0.784615
--0.784615 -0.784615 -0.784615 -0.800308 -0.800308 -0.800308 -0.800308
--0.800308 -0.800308 -0.800308;
-#X pop;
-#X obj 156 274 tabosc4~ waveshape15a;
-#X obj 156 186 sig~ 110;
-#X msg 181 215 set waveshape15a;
-#X msg 182 244 set waveshape15b;
-#X text 20 51 During a performance you're unlikely to want to draw
-or recalculate wavetables on the fly \, because you don't want to give
-Pd computationally intensive atomic tasks that could make Pd miss a
-DAC deadline. Instead \, use "set" mesages to switch tabosc~ or tabread4~
-between pre-prepared tables. Indeed \, you will eventually want to
-save screen space by throwing all your wavetables in a subpatch somewhere.
-;
-#X obj 161 401 table waveshape15c 131;
-#X text 41 362 There's also a "text object" hook so that you can have
-arrays with parametrizable names and sizes:;
-#X text 31 431 You would use this if you want to include one or more
-arrays in an abstraction. In this invocation you can't save the state
-of the array--instead \, juts read it in from a file or calculate it
-at startup.;
-#X connect 1 0 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 2;
-#X connect 7 0 2 0;
-#X connect 8 0 7 0;
-#X connect 9 0 7 0;
-#X connect 10 0 7 0;
diff --git a/desiredata/doc/3.audio.examples/B07.sampler.pd b/desiredata/doc/3.audio.examples/B07.sampler.pd
deleted file mode 100644
index 632c1d03..00000000
--- a/desiredata/doc/3.audio.examples/B07.sampler.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 11 3 915 618 12;
-#X obj 37 217 hip~ 5;
-#X text 96 219 high pass filter to cut DC;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample-table 44104 float 0;
-#X coords 0 1.02 44103 -1.02 200 130 1;
-#X restore 585 20 graph;
-#X obj 37 185 tabread4~ sample-table;
-#X obj 37 150 line~;
-#X obj 37 101 * 441;
-#X floatatom 37 47 0 0 100 0 - - -;
-#X obj 37 125 pack 0 100;
-#X text 102 13 SCRATCH MACHINE;
-#X text 72 48 <-- read point in 100ths of a second;
-#X text 94 101 convert to SAMPLES (441 samples in 0.01 sec);
-#X obj 405 235 loadbang;
-#X text 246 174 read from the table;
-#X text 237 192 (the input is the index in samples);
-#X text 16 482 For more on reading and writing soundfiles to tables
-\, setting their lengths \, etc \, see "arrays" in the "control examples"
-series.;
-#X text 14 355 This patch introduces the "tabread4~" object \, which
-reads audio samples out of a floating-point array \, often called a
-"sample table." The input is the index of the sample to read \, counting
-from zero. The output is calculated using 4-point cubic interpolation
-\, which is adequate for most purposes. Because of the interpolation
-scheme \, tabread4~'s input cannot be less than one or greater than
-the table length minus two.;
-#X text 17 539 Fanatics take note: if you want really high-fidelity
-sampling \, use a high-quality resampling program to up-sample your
-soundfile to 88200 to drastically reduce interpolation error.;
-#X text 591 173 (one second plus three extra;
-#X text 593 192 for 4-point interpolation);
-#X text 385 304 message to read a soundfile into the table (automatically
-sent when you load this patch by the "loadbang" object.);
-#X text 84 150 convert smoothly to audio signal;
-#X text 84 62 (range is 0-100.) YOU ONLY HEAR OUTPUT;
-#X text 85 78 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.;
-#X text 596 589 updated for Pd version 0.33;
-#X text 584 151 --- 44103 samples ---;
-#X msg 405 259 read ../sound/voice.wav sample-table;
-#X obj 405 284 soundfiler;
-#X obj 36 249 output~;
-#X connect 0 0 27 0;
-#X connect 0 0 27 1;
-#X connect 3 0 0 0;
-#X connect 4 0 3 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 7 0 4 0;
-#X connect 11 0 25 0;
-#X connect 25 0 26 0;
diff --git a/desiredata/doc/3.audio.examples/B08.sampler.loop.pd b/desiredata/doc/3.audio.examples/B08.sampler.loop.pd
deleted file mode 100644
index db2362e8..00000000
--- a/desiredata/doc/3.audio.examples/B08.sampler.loop.pd
+++ /dev/null
@@ -1,64 +0,0 @@
-#N canvas 143 17 992 621 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array tabread4-out 44100 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 632 200 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array table17 44103 float 0;
-#X coords 0 1.02 44103 -1.02 200 130 1;
-#X restore 631 14 graph;
-#X obj 568 496 loadbang;
-#X obj 65 277 tabwrite~ tabread4-out;
-#X obj 34 308 hip~ 5;
-#X floatatom 34 54 0 0 0 0 - - -;
-#X text 241 215 read from the table;
-#X text 49 11 LOOPING SAMPLER;
-#X text 83 54 <-- frequency (Hz.);
-#X floatatom 65 107 0 0 0 0 - - -;
-#X obj 65 133 * 441;
-#X obj 34 160 *~ 0;
-#X obj 34 187 +~ 1;
-#X text 110 248 <-- click to display output;
-#X obj 34 80 phasor~ 0;
-#X msg 65 245 bang;
-#X text 110 108 <-- chunk size (100ths of a second);
-#X obj 561 395 adc~ 1;
-#X msg 575 422 bang;
-#X text 615 423 <-- click here to record your own sample;
-#X text 678 501 v-- re-read the original sample;
-#X text 14 540 In this patch you will frequently hear discontinuities
-at the looping point. If you're working in a studio \, you can sometimes
-find "good" loop points for samples. Another approach \, better for
-live situations \, is shown in the next patch.;
-#X text 80 159 <-- readjust phase for range 0 - (chunk size);
-#X text 79 187 <-- add one to avoid beginning of table;
-#X obj 568 549 soundfiler;
-#X text 629 153 ---- 44103 samples ----;
-#X text 643 336 ---- 1 second ------;
-#X obj 34 335 output~;
-#X text 742 591 updated for Pd version 0.37;
-#X obj 34 216 tabread4~ table17;
-#X obj 562 455 tabwrite~ table17;
-#X msg 568 524 read ../sound/voice.wav table17;
-#X text 16 409 This is a looping sampler in which you specify the number
-of loops per second (the frequency) and the size of the chunk to loop.
-If the frequency is less than about 20 \, you will hear repetition
-and the chunk size will sound like transposition. For frequencies above
-50 or so \, you hear a tone whose timbre is controlled by the chunk
-size (best kept below 10 or so.) Remember you can use the "shift" key
-on number boxes to make fine adjustments.;
-#X connect 2 0 31 0;
-#X connect 4 0 27 0;
-#X connect 4 0 27 1;
-#X connect 5 0 14 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 1;
-#X connect 11 0 12 0;
-#X connect 12 0 29 0;
-#X connect 14 0 11 0;
-#X connect 15 0 3 0;
-#X connect 17 0 30 0;
-#X connect 18 0 30 0;
-#X connect 29 0 4 0;
-#X connect 29 0 3 0;
-#X connect 31 0 24 0;
diff --git a/desiredata/doc/3.audio.examples/B09.sampler.loop.smooth.pd b/desiredata/doc/3.audio.examples/B09.sampler.loop.smooth.pd
deleted file mode 100644
index 818d9206..00000000
--- a/desiredata/doc/3.audio.examples/B09.sampler.loop.smooth.pd
+++ /dev/null
@@ -1,72 +0,0 @@
-#N canvas 75 15 973 599 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array cos-output 44100 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 724 191 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array table18 44103 float 0;
-#X coords 0 1.02 44103 -1.02 200 130 1;
-#X restore 721 16 graph;
-#X obj 584 491 loadbang;
-#X obj 45 249 hip~ 5;
-#X floatatom 46 50 0 0 0 0 - - -;
-#X text 85 49 <-- frequency (Hz.);
-#X floatatom 132 87 0 0 0 0 - - -;
-#X obj 132 114 * 441;
-#X obj 110 163 +~ 1;
-#X text 171 86 <-- chunk size (100ths of a second);
-#X obj 584 404 adc~ 1;
-#X msg 599 429 bang;
-#X text 40 9 ENVELOPING YOUR LOOPING SAMPLER;
-#X obj 45 139 -~ 0.5;
-#X obj 45 189 cos~;
-#X obj 45 222 *~;
-#X obj 584 545 soundfiler;
-#X text 736 148 -- 44103 samples ---;
-#X text 727 322 ----- 1 second ------;
-#X obj 46 77 phasor~;
-#X obj 45 164 *~ 0.5;
-#X obj 44 281 output~;
-#X obj 110 138 *~;
-#X text 28 362 Here we apply an amplitude envelope to protect against
-discontinuities at the loop point. The envelope is just a cosine wave
-from -90 degrees to +90 degrees \, (-pi/2 to pi/2 radians) \, i.e.
-\, the part that is zero or positive in sign. The "cos~" object's input
-is in cycles (units of 2pi radians) so -1/4 to +1/4 addresses the desired
-part of the waveform.;
-#X obj 167 247 tabwrite~ cos-output;
-#X obj 167 223 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 188 220 <-- click to graph envelope;
-#X text 28 476 To see the envelope \, put the phasor on 2 Hz or so
-\, click the "graph" button \, and look at "cos-output." This is multiplied
-by the tabread4~ output so that it doesn't click when the phase wraps
-around.;
-#X text 26 545 It is possible to get much more control over the shape
-of the envelope \, but this will be taken up later.;
-#X obj 110 189 tabread4~ table18;
-#X obj 584 456 tabwrite~ table18;
-#X msg 584 520 read ../sound/voice.wav table18;
-#X text 641 430 <-- click here to record to table;
-#X text 675 499 v-- re-read the original sound;
-#X text 708 565 updated for Pd version 0.37;
-#X connect 2 0 31 0;
-#X connect 3 0 21 0;
-#X connect 3 0 21 1;
-#X connect 4 0 19 0;
-#X connect 6 0 7 0;
-#X connect 7 0 22 1;
-#X connect 8 0 29 0;
-#X connect 10 0 30 0;
-#X connect 11 0 30 0;
-#X connect 13 0 20 0;
-#X connect 14 0 15 0;
-#X connect 14 0 24 0;
-#X connect 15 0 3 0;
-#X connect 19 0 13 0;
-#X connect 19 0 22 0;
-#X connect 20 0 14 0;
-#X connect 22 0 8 0;
-#X connect 25 0 24 0;
-#X connect 29 0 15 1;
-#X connect 31 0 16 0;
diff --git a/desiredata/doc/3.audio.examples/B10.sampler.scratch.pd b/desiredata/doc/3.audio.examples/B10.sampler.scratch.pd
deleted file mode 100644
index 38c67b76..00000000
--- a/desiredata/doc/3.audio.examples/B10.sampler.scratch.pd
+++ /dev/null
@@ -1,83 +0,0 @@
-#N canvas 53 232 936 654 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array table19 44103 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 680 8 graph;
-#X obj 40 382 hip~ 5;
-#X floatatom 99 51 0 0 0 0 - - -;
-#X text 146 50 <-- frequency (Hz.);
-#X floatatom 129 106 0 0 0 0 - - -;
-#X obj 129 135 * 441;
-#X obj 100 158 *~ 0;
-#X obj 100 181 +~ 1;
-#X msg 194 281 bang;
-#X text 164 106 <-- chunk size (100ths of a second);
-#X obj 591 369 adc~ 1;
-#X obj 591 395 hip~ 5;
-#X msg 609 423 bang;
-#N canvas 0 0 450 300 graph2 0;
-#X array graph19 44100 float 0;
-#X coords 0 44100 44100 0 200 130 1;
-#X restore 681 196 graph;
-#X obj 40 356 *~;
-#X obj 123 276 line~;
-#X obj 123 228 * 441;
-#X floatatom 123 205 0 0 0 0 - - -;
-#X obj 123 252 pack 0 100;
-#X obj 101 310 +~;
-#X text 34 474 In this patch we can loop in any "window" of the input
-sample. The "read point" (0-100) gives the starting point of the window
-and "chunk" is its size (both in 100ths of a second.) Try \, for example
-\, frequency 4 \, sharpness 10 \, chunk size 25 \, and vary the read
-point from -25 to 100 \, listening to the result.;
-#X text 242 281 <-- graph table index;
-#X text 684 337 ----- 1 second ------;
-#X obj 595 490 loadbang;
-#X text 631 514 v-- re-read the original sample;
-#X obj 605 559 soundfiler;
-#X text 678 147 ---- 44103 samples ---;
-#X obj 591 455 tabwrite~ table19;
-#X msg 605 535 read ../sound/voice.wav table19;
-#X text 688 628 updated for Pd version 0.37;
-#X msg 595 585 \; graph19 ylabel 48000 0 44100;
-#X obj 39 103 -~ 0.5;
-#X obj 99 76 phasor~;
-#X obj 39 127 *~ 0.5;
-#X obj 39 150 cos~;
-#X text 157 206 <-- read point (100ths of a second);
-#X obj 41 406 output~;
-#X text 651 422 <-- record;
-#X text 36 13 ENVELOPING THE LOOPING SAMPLER;
-#X text 37 574 You should hear some doppler shift as you change the
-read point. To see why \, click on "graph table index" and quickly
-start changing the read point--- you should see entertaining pictures
-in "table-index". The next patch shows how to prevent this if you wish
-to.;
-#X obj 100 336 tabread4~ table19;
-#X obj 194 307 tabwrite~ graph19;
-#X connect 1 0 36 0;
-#X connect 2 0 32 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 1;
-#X connect 6 0 7 0;
-#X connect 7 0 19 0;
-#X connect 8 0 41 0;
-#X connect 10 0 11 0;
-#X connect 11 0 27 0;
-#X connect 12 0 27 0;
-#X connect 14 0 1 0;
-#X connect 15 0 19 1;
-#X connect 16 0 18 0;
-#X connect 17 0 16 0;
-#X connect 18 0 15 0;
-#X connect 19 0 40 0;
-#X connect 19 0 41 0;
-#X connect 23 0 30 0;
-#X connect 23 0 28 0;
-#X connect 28 0 25 0;
-#X connect 31 0 33 0;
-#X connect 32 0 6 0;
-#X connect 32 0 31 0;
-#X connect 33 0 34 0;
-#X connect 34 0 14 0;
-#X connect 40 0 14 1;
diff --git a/desiredata/doc/3.audio.examples/B11.sampler.nodoppler.pd b/desiredata/doc/3.audio.examples/B11.sampler.nodoppler.pd
deleted file mode 100644
index 1ec362ac..00000000
--- a/desiredata/doc/3.audio.examples/B11.sampler.nodoppler.pd
+++ /dev/null
@@ -1,85 +0,0 @@
-#N canvas 177 116 924 622 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array table20 44103 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 631 10 graph;
-#X obj 582 447 loadbang;
-#X obj 13 425 hip~ 5;
-#X floatatom 87 49 0 0 0 0 - - -;
-#X text 126 48 <-- frequency (Hz.);
-#X floatatom 150 108 0 0 0 0 - - -;
-#X obj 150 133 * 441;
-#X obj 50 220 +~ 1;
-#X obj 87 73 phasor~ 0;
-#X msg 175 273 bang;
-#X text 189 107 <-- chunk size (100ths of a second);
-#X obj 576 343 adc~ 1;
-#X obj 576 367 hip~ 5;
-#X msg 591 390 bang;
-#X text 630 464 v-- re-read the original sample;
-#N canvas 0 0 450 300 graph2 0;
-#X array graph20 44100 float 0;
-#X coords 0 44100 44100 0 200 130 1;
-#X restore 633 179 graph;
-#X obj 13 401 *~;
-#X obj 72 308 line~;
-#X obj 149 242 * 441;
-#X floatatom 149 218 0 0 0 0 - - -;
-#X obj 72 284 pack 0 100;
-#X text 184 217 <-- read point in 100ths of a second;
-#X obj 51 356 +~;
-#X text 218 272 <-- graph table index;
-#X obj 72 332 samphold~;
-#X obj 74 170 samphold~;
-#X obj 51 196 *~;
-#X text 643 315 ----- 1 second ------;
-#X text 631 144 ---- 44103 samples ---;
-#X obj 591 508 soundfiler;
-#X text 21 8 SLIDING STABLE LOOPS WITHOUT DOPPLER SHIFT;
-#X msg 582 534 \; graph20 ylabel 48000 0 44100;
-#X text 631 390 <-- record;
-#X obj 13 451 output~;
-#X obj 12 103 -~ 0.5;
-#X obj 12 127 *~ 0.5;
-#X obj 12 150 cos~;
-#X obj 175 353 tabwrite~ graph20;
-#X obj 51 381 tabread4~ table20;
-#X obj 576 417 tabwrite~ table20;
-#X msg 591 484 read ../sound/voice.wav table20;
-#X text 11 518 This example differs from the previous one in having
-samphold~ objects which allow the chunk size and especially the read
-point to change only at points where the phase wraps around. This removes
-signal discontinuities (when the chunk size changes) and doppler shift
-when the read point is changing.;
-#X text 652 592 updated for Pd version 0.37;
-#X connect 1 0 31 0;
-#X connect 1 0 40 0;
-#X connect 2 0 33 0;
-#X connect 2 0 33 1;
-#X connect 3 0 8 0;
-#X connect 5 0 6 0;
-#X connect 6 0 25 0;
-#X connect 7 0 22 0;
-#X connect 8 0 24 1;
-#X connect 8 0 25 1;
-#X connect 8 0 26 0;
-#X connect 8 0 34 0;
-#X connect 9 0 37 0;
-#X connect 11 0 12 0;
-#X connect 12 0 39 0;
-#X connect 13 0 39 0;
-#X connect 16 0 2 0;
-#X connect 17 0 24 0;
-#X connect 18 0 20 0;
-#X connect 19 0 18 0;
-#X connect 20 0 17 0;
-#X connect 22 0 37 0;
-#X connect 22 0 38 0;
-#X connect 24 0 22 1;
-#X connect 25 0 26 1;
-#X connect 26 0 7 0;
-#X connect 34 0 35 0;
-#X connect 35 0 36 0;
-#X connect 36 0 16 0;
-#X connect 38 0 16 1;
-#X connect 40 0 29 0;
diff --git a/desiredata/doc/3.audio.examples/B12.sampler.transpose.pd b/desiredata/doc/3.audio.examples/B12.sampler.transpose.pd
deleted file mode 100644
index fc7a7d14..00000000
--- a/desiredata/doc/3.audio.examples/B12.sampler.transpose.pd
+++ /dev/null
@@ -1,109 +0,0 @@
-#N canvas 107 88 930 596 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array table21 44103 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 645 291 graph;
-#X obj 467 506 loadbang;
-#X obj 19 508 hip~ 5;
-#X floatatom 10 254 0 0 0 0 - - -;
-#X obj 10 279 * 441;
-#X obj 10 401 +~ 1;
-#X text 47 253 <-- chunk size (100ths of a second);
-#X obj 471 402 adc~ 1;
-#X obj 471 427 hip~ 5;
-#X msg 486 449 bang;
-#X obj 44 482 *~;
-#X obj 106 404 line~;
-#X obj 106 354 * 441;
-#X floatatom 106 329 0 0 0 0 - - -;
-#X obj 106 379 pack 0 100;
-#X text 152 331 <-- read point in 100ths of a second;
-#X obj 44 433 +~;
-#X obj 106 429 samphold~;
-#X obj 10 329 samphold~;
-#X obj 10 304 sig~;
-#X obj 10 376 *~;
-#X text 18 5 CALCULATING LOOP FREQUENCY AS FUNCTION OF TRANSPOSITION
-;
-#X obj 124 485 r~ phase;
-#X obj 10 204 s~ phase;
-#X obj 68 304 r~ phase;
-#X obj 26 351 r~ phase;
-#X obj 164 405 r~ phase;
-#X obj 151 299 s chunk-size;
-#X floatatom 10 50 0 0 0 0 - - -;
-#X text 48 51 <-- transposition (10ths of a halftone);
-#X obj 151 274 * 0.01;
-#X text 264 287 chunk size;
-#X text 264 309 in seconds;
-#X obj 21 105 r chunk-size;
-#X obj 21 130 t b f;
-#X obj 10 154 /;
-#X text 80 131 divide speed change by chunk;
-#X text 78 152 size to get loop frequency;
-#X text 382 75 The transposition is frequency in Hz. divided by chunk
-size in seconds. This patch calculates the loop frequency as a function
-of desired transposition;
-#X text 384 126 Notice now that we get Doppler effects when the chunk
-size changes. You can suppress that if you don't want it \, by converting
-the chunk size to an audio signal \, sampling and holding it. But then
-there would be more work to deal with very low frequencies never triggering
-the sample and hold...;
-#X obj 467 560 soundfiler;
-#X obj 10 27 loadbang;
-#X obj 124 509 -~ 0.5;
-#X obj 124 533 *~ 0.5;
-#X obj 124 556 cos~;
-#X obj 19 533 output~;
-#X obj 44 458 tabread4~ table21;
-#X text 527 449 <-- record;
-#X text 560 513 v-- re-read original table;
-#X text 682 572 updated for Pd version 0.37;
-#X text 647 425 --- 44103 samples ---;
-#X obj 10 75 expr pow(2 \, $f1/120);
-#X text 199 75 speed change;
-#X text 387 208 You might also want to have a way to retrigger the
-loop to sync it with some other process. By the time we had all this
-built the patch would be fairly involved. For now \, we'll move on
-to the next topic...;
-#X obj 10 178 phasor~;
-#X obj 471 476 tabwrite~ table21;
-#X msg 467 533 read ../sound/voice.wav table21;
-#X connect 1 0 56 0;
-#X connect 2 0 45 0;
-#X connect 2 0 45 1;
-#X connect 3 0 4 0;
-#X connect 3 0 30 0;
-#X connect 4 0 19 0;
-#X connect 5 0 16 0;
-#X connect 7 0 8 0;
-#X connect 8 0 55 0;
-#X connect 9 0 55 0;
-#X connect 10 0 2 0;
-#X connect 11 0 17 0;
-#X connect 12 0 14 0;
-#X connect 13 0 12 0;
-#X connect 14 0 11 0;
-#X connect 16 0 46 0;
-#X connect 17 0 16 1;
-#X connect 18 0 20 0;
-#X connect 19 0 18 0;
-#X connect 20 0 5 0;
-#X connect 22 0 42 0;
-#X connect 24 0 18 1;
-#X connect 25 0 20 1;
-#X connect 26 0 17 1;
-#X connect 28 0 51 0;
-#X connect 30 0 27 0;
-#X connect 33 0 34 0;
-#X connect 34 0 35 0;
-#X connect 34 1 35 1;
-#X connect 35 0 54 0;
-#X connect 41 0 28 0;
-#X connect 42 0 43 0;
-#X connect 43 0 44 0;
-#X connect 44 0 10 1;
-#X connect 46 0 10 0;
-#X connect 51 0 35 0;
-#X connect 54 0 23 0;
-#X connect 56 0 40 0;
diff --git a/desiredata/doc/3.audio.examples/B13.sampler.overlap.pd b/desiredata/doc/3.audio.examples/B13.sampler.overlap.pd
deleted file mode 100644
index 35acc48b..00000000
--- a/desiredata/doc/3.audio.examples/B13.sampler.overlap.pd
+++ /dev/null
@@ -1,158 +0,0 @@
-#N canvas 28 47 748 713 12;
-#X obj 19 511 hip~ 5;
-#X floatatom 25 38 0 0 100 0 - - -;
-#X obj 25 63 * 441;
-#X obj 20 380 +~ 1;
-#X text 69 35 <-- chunk size (100ths of a second);
-#X obj 20 458 *~;
-#X obj 26 211 line~;
-#X obj 26 161 * 441;
-#X floatatom 26 136 0 0 100 0 - - -;
-#X obj 26 186 pack 0 100;
-#X text 60 137 <-- read point in 100ths of a second;
-#X obj 20 409 +~;
-#X obj 76 408 samphold~;
-#X obj 20 308 samphold~;
-#X obj 20 355 *~;
-#X obj 185 369 r~ phase;
-#X obj 418 210 s~ phase;
-#X obj 108 308 r~ phase;
-#X obj 42 332 r~ phase;
-#X obj 96 383 r~ phase;
-#X obj 77 82 s chunk-size;
-#X floatatom 418 56 0 0 0 0 - - -;
-#X obj 77 57 * 0.01;
-#X text 189 58 chunk size;
-#X text 189 80 in seconds;
-#X obj 429 111 r chunk-size;
-#X obj 429 136 t b f;
-#X obj 418 160 /;
-#X obj 418 33 loadbang;
-#X obj 185 393 -~ 0.5;
-#X obj 185 417 *~ 0.5;
-#X obj 185 440 cos~;
-#X obj 19 536 output~;
-#X text 486 684 updated for Pd version 0.37;
-#X obj 418 81 expr pow(2 \, $f1/120);
-#X text 607 81 speed change;
-#X obj 418 184 phasor~;
-#X text 18 5 TWO OVERLAPPING SAMPLE READ ELEMENTS;
-#N canvas 30 567 660 275 table 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array table22 44103 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 442 61 graph;
-#X text 444 195 --- 44103 samples ---;
-#X obj 41 148 loadbang;
-#X obj 45 44 adc~ 1;
-#X obj 45 69 hip~ 5;
-#X msg 60 91 bang;
-#X obj 41 202 soundfiler;
-#X text 101 91 <-- record;
-#X text 134 155 v-- re-read original table;
-#X obj 45 118 tabwrite~ table22;
-#X msg 41 175 read ../sound/voice.wav table22;
-#X connect 2 0 10 0;
-#X connect 3 0 4 0;
-#X connect 4 0 9 0;
-#X connect 5 0 9 0;
-#X connect 10 0 6 0;
-#X restore 567 327 pd table;
-#X obj 25 110 s chunk-size-samples;
-#X text 211 112 ... and in samples;
-#X obj 26 234 s~ read-pt;
-#X obj 77 360 r~ read-pt;
-#X obj 505 203 +~ 0.5;
-#X obj 506 229 wrap~;
-#X obj 506 254 s~ phase2;
-#X obj 20 283 r chunk-size-samples;
-#X obj 274 391 +~ 1;
-#X obj 274 469 *~;
-#X obj 274 420 +~;
-#X obj 329 419 samphold~;
-#X obj 274 319 samphold~;
-#X obj 274 366 *~;
-#X obj 439 404 -~ 0.5;
-#X obj 439 428 *~ 0.5;
-#X obj 439 451 cos~;
-#X obj 330 371 r~ read-pt;
-#X obj 274 294 r chunk-size-samples;
-#X obj 363 320 r~ phase2;
-#X obj 296 343 r~ phase2;
-#X obj 439 380 r~ phase2;
-#X obj 339 394 r~ phase2;
-#X obj 19 487 +~;
-#X text 453 56 <-- transposition \, halftones/10;
-#X text 456 159 loop frequency;
-#X text 566 190 second phase signal;
-#X text 566 210 out of phase from;
-#X text 565 231 first one;
-#X text 70 265 copy 1;
-#X text 327 274 copy 2;
-#X text 118 503 Here is the previous patch modified to use two copies
-of the sample reader \, 180 degrees out of phase. The second sawtooth
-signal is derived from the first one by adding a constant (0.5) and
-wrapping the result to fit again between zero and one. The result is
-the "phase2" signal.;
-#X text 119 584 The computation of "chunk-size-samples" (as a message)
-and "read-pt" (an audio signal) is the same for both copies and is
-separated out at top left. At top right is the same loop frequency
-calculation as before.;
-#X text 120 654 Finally \, the two copies' outputs are added and the
-result sent to the audio output.;
-#X obj 20 434 tabread4~ table22;
-#X obj 274 445 tabread4~ table22;
-#X connect 0 0 32 0;
-#X connect 0 0 32 1;
-#X connect 1 0 2 0;
-#X connect 1 0 22 0;
-#X connect 2 0 39 0;
-#X connect 3 0 11 0;
-#X connect 5 0 62 0;
-#X connect 6 0 41 0;
-#X connect 7 0 9 0;
-#X connect 8 0 7 0;
-#X connect 9 0 6 0;
-#X connect 11 0 73 0;
-#X connect 12 0 11 1;
-#X connect 13 0 14 0;
-#X connect 14 0 3 0;
-#X connect 15 0 29 0;
-#X connect 17 0 13 1;
-#X connect 18 0 14 1;
-#X connect 19 0 12 1;
-#X connect 21 0 34 0;
-#X connect 22 0 20 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 26 1 27 1;
-#X connect 27 0 36 0;
-#X connect 28 0 21 0;
-#X connect 29 0 30 0;
-#X connect 30 0 31 0;
-#X connect 31 0 5 1;
-#X connect 34 0 27 0;
-#X connect 36 0 16 0;
-#X connect 36 0 43 0;
-#X connect 42 0 12 0;
-#X connect 43 0 44 0;
-#X connect 44 0 45 0;
-#X connect 46 0 13 0;
-#X connect 47 0 49 0;
-#X connect 48 0 62 1;
-#X connect 49 0 74 0;
-#X connect 50 0 49 1;
-#X connect 51 0 52 0;
-#X connect 52 0 47 0;
-#X connect 53 0 54 0;
-#X connect 54 0 55 0;
-#X connect 55 0 48 1;
-#X connect 56 0 50 0;
-#X connect 57 0 51 0;
-#X connect 58 0 51 1;
-#X connect 59 0 52 1;
-#X connect 60 0 53 0;
-#X connect 61 0 50 1;
-#X connect 62 0 0 0;
-#X connect 73 0 5 0;
-#X connect 74 0 48 0;
diff --git a/desiredata/doc/3.audio.examples/B14.sampler.rockafella.pd b/desiredata/doc/3.audio.examples/B14.sampler.rockafella.pd
deleted file mode 100644
index 20416b6b..00000000
--- a/desiredata/doc/3.audio.examples/B14.sampler.rockafella.pd
+++ /dev/null
@@ -1,166 +0,0 @@
-#N canvas 123 36 683 718 12;
-#X obj 6 529 hip~ 5;
-#X floatatom 8 47 4 0 100 0 - - -;
-#X obj 7 476 *~;
-#X floatatom 7 123 0 0 200 0 - - -;
-#X obj 7 378 +~;
-#X obj 6 330 samphold~;
-#X obj 7 354 *~;
-#X obj 172 385 r~ phase;
-#X obj 357 210 s~ phase;
-#X obj 94 331 r~ phase;
-#X obj 42 355 r~ phase;
-#X obj 8 90 s chunk-size;
-#X floatatom 357 42 0 0 0 0 - - -;
-#X text 124 82 chunk size;
-#X text 121 96 in seconds;
-#X obj 369 79 r chunk-size;
-#X obj 369 104 t b f;
-#X obj 172 409 -~ 0.5;
-#X obj 172 433 *~ 0.5;
-#X obj 172 456 cos~;
-#X obj 7 560 output~;
-#X text 417 698 updated for Pd version 0.37;
-#X obj 357 184 phasor~;
-#N canvas 30 567 660 275 table 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array table23 44103 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 442 61 graph;
-#X text 444 195 --- 44103 samples ---;
-#X obj 41 148 loadbang;
-#X obj 45 44 adc~ 1;
-#X obj 45 69 hip~ 5;
-#X msg 60 91 bang;
-#X obj 41 202 soundfiler;
-#X text 101 91 <-- record;
-#X text 134 155 v-- re-read original table;
-#X obj 45 118 tabwrite~ table23;
-#X msg 41 175 read ../sound/voice.wav table23;
-#X connect 2 0 10 0;
-#X connect 3 0 4 0;
-#X connect 4 0 9 0;
-#X connect 5 0 9 0;
-#X connect 10 0 6 0;
-#X restore 558 460 pd table;
-#X obj 7 263 s~ read-pt;
-#X obj 45 378 r~ read-pt;
-#X obj 444 203 +~ 0.5;
-#X obj 445 229 wrap~;
-#X obj 445 254 s~ phase2;
-#X obj 6 505 +~;
-#X text 391 43 <-- transposition \, halftones/10;
-#X obj 8 67 * 0.001;
-#X obj 7 215 phasor~;
-#X obj 7 402 *~ 44100;
-#X obj 7 452 tabread4~ table23;
-#X obj 6 305 r chunk-size;
-#X obj 6 428 +~ 1;
-#X floatatom 365 161 5 0 0 0 - - -;
-#X obj 15 169 s precession;
-#X obj 482 103 t b f;
-#X obj 482 78 r precession;
-#X obj 7 146 * 0.01;
-#X obj 258 485 *~;
-#X obj 258 387 +~;
-#X obj 257 339 samphold~;
-#X obj 258 363 *~;
-#X obj 423 418 -~ 0.5;
-#X obj 423 442 *~ 0.5;
-#X obj 423 465 cos~;
-#X obj 296 387 r~ read-pt;
-#X obj 258 411 *~ 44100;
-#X obj 258 461 tabread4~ table23;
-#X obj 257 314 r chunk-size;
-#X obj 257 437 +~ 1;
-#X obj 345 340 r~ phase2;
-#X obj 293 364 r~ phase2;
-#X obj 423 394 r~ phase2;
-#X text 37 123 <-- precession \, percent;
-#X obj 8 3 loadbang;
-#X text 158 3 TIME COMPRESSION/EXPANSION BY LOOPED SAMPLING;
-#X text 111 529 Here \, rather than ask you to push the read pointer
-back and forth in the sample \, we use a phasor~. This makes it possible
-to avoid the samphold~ on the read pointer (r~ read-pt) \, since \,
-knowing the precession \, we can correct for it in computing the frequency
-of the original phasor~ at right.;
-#X text 111 626 We've changed the control for "chunk size" to milliseconds
-for added convenience \, and delayed multiplying sample location by
-the sample rate (44100) until the last moment \, so that calculations
-using "read-pt" and "chunk size" can be in the same units (seconds.)
-;
-#X msg 8 25 25;
-#X floatatom 139 192 4 0 900 0 - - -;
-#X obj 139 212 * 0.001;
-#X msg 139 170 900;
-#X text 48 47 <-- chunk size (msec);
-#X obj 357 136 expr (pow(2 \, $f1/120)-$f3)/$f2;
-#X obj 139 237 t b f;
-#X obj 139 146 loadbang;
-#X text 182 188 <-- loop length;
-#X text 223 203 (msec);
-#X obj 7 239 *~;
-#X obj 7 191 /;
-#X connect 0 0 20 0;
-#X connect 0 0 20 1;
-#X connect 1 0 31 0;
-#X connect 2 0 29 0;
-#X connect 3 0 41 0;
-#X connect 4 0 33 0;
-#X connect 5 0 6 0;
-#X connect 6 0 4 0;
-#X connect 7 0 17 0;
-#X connect 9 0 5 1;
-#X connect 10 0 6 1;
-#X connect 12 0 67 0;
-#X connect 15 0 16 0;
-#X connect 16 0 67 0;
-#X connect 16 1 67 1;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
-#X connect 19 0 2 1;
-#X connect 22 0 8 0;
-#X connect 22 0 26 0;
-#X connect 25 0 4 1;
-#X connect 26 0 27 0;
-#X connect 27 0 28 0;
-#X connect 29 0 0 0;
-#X connect 31 0 11 0;
-#X connect 32 0 72 0;
-#X connect 33 0 36 0;
-#X connect 34 0 2 0;
-#X connect 35 0 5 0;
-#X connect 36 0 34 0;
-#X connect 39 0 67 0;
-#X connect 39 1 67 2;
-#X connect 40 0 39 0;
-#X connect 41 0 38 0;
-#X connect 41 0 73 0;
-#X connect 42 0 29 1;
-#X connect 43 0 50 0;
-#X connect 44 0 45 0;
-#X connect 45 0 43 0;
-#X connect 46 0 47 0;
-#X connect 47 0 48 0;
-#X connect 48 0 42 1;
-#X connect 49 0 43 1;
-#X connect 50 0 53 0;
-#X connect 51 0 42 0;
-#X connect 52 0 44 0;
-#X connect 53 0 51 0;
-#X connect 54 0 44 1;
-#X connect 55 0 45 1;
-#X connect 56 0 46 0;
-#X connect 58 0 62 0;
-#X connect 62 0 1 0;
-#X connect 63 0 64 0;
-#X connect 64 0 68 0;
-#X connect 64 0 72 1;
-#X connect 65 0 63 0;
-#X connect 67 0 22 0;
-#X connect 67 0 37 0;
-#X connect 68 0 73 0;
-#X connect 68 1 73 1;
-#X connect 69 0 65 0;
-#X connect 72 0 24 0;
-#X connect 73 0 32 0;
diff --git a/desiredata/doc/3.audio.examples/C01.nyquist.pd b/desiredata/doc/3.audio.examples/C01.nyquist.pd
deleted file mode 100644
index 256da0e3..00000000
--- a/desiredata/doc/3.audio.examples/C01.nyquist.pd
+++ /dev/null
@@ -1,102 +0,0 @@
-#N canvas 601 188 580 659 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array table24 259 float 1;
-#A 0 -0.294693 0 0.294693 0.4 0.28948 0.10749 0.022875 0.0789655 0.181673
-0.218249 0.171348 0.115564 0.119192 0.169863 0.201356 0.178657 0.137857
-0.138353 0.188891 0.23571 0.22487 0.164534 0.115848 0.125265 0.176634
-0.214361 0.205655 0.169043 0.14204 0.134157 0.124033 0.0997798 0.0859507
-0.118173 0.195202 0.270956 0.301868 0.293569 0.285908 0.289835 0.256276
-0.128881 -0.0684912 -0.215994 -0.195335 -0.0145421 0.174701 0.203986
-0.0451069 -0.159794 -0.231026 -0.119011 0.0575033 0.135323 0.0628509
--0.0665307 -0.124779 -0.0776696 0.000279083 0.0247376 -0.00546273 -0.0222151
-0.017933 0.0755681 0.0749102 4.97367e-06 -0.0729564 -0.0490464 0.0834901
-0.232853 0.286943 0.213202 0.0759584 -0.0357248 -0.0863297 -0.101697
--0.115455 -0.125625 -0.107127 -0.0530433 0.012152 0.0608637 0.0902219
-0.111597 0.119683 0.0910146 0.0236817 -0.0326555 -0.0100379 0.100844
-0.216022 0.223032 0.094995 -0.0649958 -0.110291 0.00678482 0.180334
-0.247439 0.144699 -0.0319975 -0.124321 -0.0648335 0.0680811 0.141409
-0.100343 0.00354248 -0.0636733 -0.0891566 -0.131987 -0.227286 -0.316392
--0.293048 -0.12222 0.100475 0.222686 0.173879 0.0281889 -0.0714016
--0.0482686 0.0482418 0.108884 0.0773858 -0.00559103 -0.0590099 -0.0454391
-0.00509731 0.0411467 0.0421476 0.0225557 2.40108e-06 -0.0225508 -0.0421448
--0.0411506 -0.00510821 0.0454302 0.0590142 0.0056084 -0.0773706 -0.108887
--0.0482625 0.048252 0.0714103 -0.0281575 -0.173853 -0.222693 -0.100517
-0.122172 0.293026 0.316402 0.22731 0.132002 0.0891614 0.063682 -0.00352253
--0.100324 -0.141412 -0.0681076 0.0648079 0.124324 0.0320316 -0.144663
--0.247435 -0.180365 -0.00682225 0.110282 0.0650224 -0.0949583 -0.223017
--0.216038 -0.100873 0.010022 0.0326611 -0.0236657 -0.0910033 -0.119682
--0.111601 -0.0902271 -0.0608718 -0.0121649 0.0530291 0.107119 0.125625
-0.115458 0.101699 0.0863353 0.0357423 -0.0759289 -0.213176 -0.28694
--0.232878 -0.0835252 0.0490278 0.0729642 1.4921e-05 -0.0749008 -0.0755765
--0.0179463 0.0222127 0.00547055 -0.0247352 -0.000292052 0.0776522 0.12478
-0.0665546 -0.062824 -0.135322 -0.0575355 0.118973 0.23102 0.159828
--0.0450604 -0.203969 -0.174729 0.014495 0.195309 0.21601 0.0685338
--0.128843 -0.25626 -0.289835 -0.285909 -0.293565 -0.30187 -0.270969
--0.195221 -0.118186 -0.0859518 -0.0997742 -0.124029 -0.134156 -0.142036
--0.169035 -0.205649 -0.214364 -0.176646 -0.125273 -0.115843 -0.16452
--0.22486 -0.235715 -0.188904 -0.13836 -0.137851 -0.178647 -0.201357
--0.169874 -0.1192 -0.115557 -0.171333 -0.218246 -0.181691 -0.0789875
--0.0228734 -0.107456 -0.289441 -0.399997 -0.294741 -7.20325e-05 0.294645
-;
-#X coords 0 1.02 258 -1.02 258 130 1;
-#X restore 93 408 graph;
-#X obj 33 288 line~;
-#X msg 33 237 500 \, 1423 4000;
-#X floatatom 41 262 5 0 0 0 - - -;
-#X text 24 556 Synthesis techniques vary in their tendency to make
-foldover. For higher pitched sounds you'll want to try out relatively
-folvover-resistant ones.;
-#X obj 33 342 output~;
-#X obj 201 281 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#N canvas 0 0 618 384 make-tab 0;
-#X obj 13 28 inlet;
-#X obj 99 28 inlet;
-#X obj 183 28 inlet;
-#X obj 255 29 inlet;
-#X msg 38 176 \; table24 sinesum 256 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0
-1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 \, normalize
-0.4;
-#X msg 14 277 \; table24 sinesum 256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 \, normalize
-0.2;
-#X msg 183 101 \; table24 const 0 \, 0 1 1 1 1 1;
-#X msg 255 58 \; table24 const 0;
-#X connect 0 0 5 0;
-#X connect 1 0 4 0;
-#X connect 2 0 6 0;
-#X connect 3 0 7 0;
-#X restore 201 355 pd make-tab;
-#X obj 232 300 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 263 317 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 295 334 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 222 276 sine;
-#X text 252 297 complex;
-#X text 284 314 rectangle;
-#X text 313 332 clear;
-#X obj 33 315 tabosc4~ table24;
-#X text 56 2 THE NYQUIST THEOREM AND FOLDOVER;
-#X text 30 33 WARNING: PLAY THIS QUIETLY TO AVOID UNPLEASANTNESS AND
-POSSIBLE EAR DAMAGE.;
-#X text 29 77 Foldover occurs when you synthesize frequencies greater
-than the Nyquist frequency (half the sample rate). In this example
-\, the fundamental only reaches 1423 \, but the tables contain high
-partials. As the partials sweep upward you hear them reflect off the
-Nyquist frequency. Also \, partials can come into contact with each
-other causing beating. The value of 1423 was chosen to make the beating
-effect especially strong if you're running at a sample rate of 44100
-(the usual one.);
-#X text 330 616 updated for Pd version 0.37;
-#X text 219 245 waveforms:;
-#X connect 1 0 15 0;
-#X connect 2 0 1 0;
-#X connect 3 0 1 0;
-#X connect 6 0 7 0;
-#X connect 8 0 7 1;
-#X connect 9 0 7 2;
-#X connect 10 0 7 3;
-#X connect 15 0 5 0;
-#X connect 15 0 5 1;
diff --git a/desiredata/doc/3.audio.examples/C02.sawtooth-foldover.pd b/desiredata/doc/3.audio.examples/C02.sawtooth-foldover.pd
deleted file mode 100644
index f52fc548..00000000
--- a/desiredata/doc/3.audio.examples/C02.sawtooth-foldover.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 180 71 562 473 12;
-#X obj 155 348 output~;
-#X text 310 443 updated for Pd version 0.37;
-#X text 56 2 FOLDOVER IN SAWTOOTH WAVES;
-#X obj 154 320 clip~ 0 1;
-#X obj 155 153 mtof;
-#X floatatom 155 131 3 0 0 0 - - -;
-#X obj 155 269 *~ 20;
-#X obj 155 295 -~ 19;
-#X obj 155 177 phasor~;
-#N canvas 0 0 560 183 /SUBPATCH/ 0;
-#X obj 25 74 loadbang;
-#X msg 25 99 61;
-#X obj 25 124 outlet;
-#X text 7 6 This sets the pitch initially to 61 when the patch is first
-opened.;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 155 105 pd;
-#X text 190 130 <--pitch;
-#X obj 164 206 output~;
-#X text 237 205 <--sawtooth amplitude;
-#X text 233 373 <--pulse train amplitude;
-#X text 28 406 We'll explain more about making pulses later on... this
-example is mostly intended as ear training.;
-#X text 19 23 In more ordinary kinds of waveforms \, foldover comes
-across as a "cheap synth" sound. You can hear the foldover clearly
-in the pulse train here \, and less clearly (but still audibly) in
-the straight sawtooth \, especially at high pitches.;
-#X connect 3 0 0 0;
-#X connect 3 0 0 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 7 0;
-#X connect 7 0 3 0;
-#X connect 8 0 6 0;
-#X connect 8 0 11 0;
-#X connect 8 0 11 1;
-#X connect 9 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/C03.zipper.noise.pd b/desiredata/doc/3.audio.examples/C03.zipper.noise.pd
deleted file mode 100644
index a49f51ad..00000000
--- a/desiredata/doc/3.audio.examples/C03.zipper.noise.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 298 115 555 414 12;
-#X obj 42 349 output~;
-#X text 302 376 updated for Pd version 0.37;
-#X text 56 2 ZIPPER NOISE;
-#X obj 43 321 *~;
-#X obj 125 350 output~;
-#X obj 126 322 *~;
-#X obj 65 262 line;
-#X obj 149 262 line~;
-#N canvas 0 0 450 300 metro 0;
-#X obj 88 39 loadbang;
-#X msg 87 65 1;
-#X obj 87 96 metro 500;
-#X obj 87 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 87 153 sel 0 1;
-#X obj 87 190 outlet;
-#X obj 151 192 outlet;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 4 1 6 0;
-#X restore 65 170 pd metro;
-#X obj 65 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 132 199 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 65 219 1 300;
-#X msg 132 221 0 300;
-#X obj 72 290 osc~ 880;
-#X text 30 28 Here is a related issue: if we use a (control) line object
-to change an amplitude \, it sends ramping control messages \, once
-every 20 msec by default. At left we use this to control the amplitude
-of a sinusoid. In effect we're multiplying the sinusoid by a staircase
-signal (50 increments per second.) Using the signal version \, line~
-\, fixes the problem. Line~ outputs a ramp that is incremented every
-sample.;
-#X connect 3 0 0 0;
-#X connect 3 0 0 1;
-#X connect 5 0 4 0;
-#X connect 5 0 4 1;
-#X connect 6 0 3 1;
-#X connect 7 0 5 1;
-#X connect 8 0 9 0;
-#X connect 8 1 10 0;
-#X connect 9 0 11 0;
-#X connect 10 0 12 0;
-#X connect 11 0 6 0;
-#X connect 11 0 7 0;
-#X connect 12 0 6 0;
-#X connect 12 0 7 0;
-#X connect 13 0 3 0;
-#X connect 13 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/C04.control.to.signal.pd b/desiredata/doc/3.audio.examples/C04.control.to.signal.pd
deleted file mode 100644
index eed326dd..00000000
--- a/desiredata/doc/3.audio.examples/C04.control.to.signal.pd
+++ /dev/null
@@ -1,48 +0,0 @@
-#N canvas 215 77 561 455 12;
-#X text 14 7 CONVERTING CONTROL TO SIGNALS;
-#X obj 29 350 output~;
-#X obj 107 352 output~;
-#N canvas 0 0 450 300 metro 0;
-#X obj 88 39 loadbang;
-#X msg 87 65 1;
-#X obj 87 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 87 153 sel 0 1;
-#X obj 87 190 outlet;
-#X obj 151 192 outlet;
-#X obj 87 96 metro 2;
-#X connect 0 0 1 0;
-#X connect 1 0 6 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 5 0;
-#X connect 6 0 2 0;
-#X restore 30 242 pd metro;
-#X msg 30 268 1 2;
-#X msg 97 270 0 2;
-#X obj 30 305 line~;
-#X obj 108 306 vline~;
-#X text 13 107 Here we try out line~ and vline~ as triangle wave generators.
-The subpatch is still sending alternating bangs as in the last patch
-\, but now at an audible frequency \, every 2 msec.;
-#X text 17 172 The effect of line~ rounding breakpoints to the nearest
-block (on the order of a millisecond) is that each 4-millisecond-long
-cycle has a different shape. Using vline~ resolves the problem.;
-#X text 385 437 Updated for Pd 0.37;
-#X text 16 411 Sometimes you will want to use vline~ in place of sig~
-for the same reason.;
-#X text 15 27 For controlling amplitudes \, line~ \, with its block-aligned
-breakpoints \, is accurate enough for most purposes. But certain usages
-\, such as this patch \, demand more accuracy. The vline~ object \,
-somewhat more expensive than line~ \, can handle breakpoints to sub-sample
-accuracy.;
-#X connect 3 0 4 0;
-#X connect 3 1 5 0;
-#X connect 4 0 6 0;
-#X connect 4 0 7 0;
-#X connect 5 0 6 0;
-#X connect 5 0 7 0;
-#X connect 6 0 1 0;
-#X connect 6 0 1 1;
-#X connect 7 0 2 0;
-#X connect 7 0 2 1;
diff --git a/desiredata/doc/3.audio.examples/C05.sampler.oneshot.pd b/desiredata/doc/3.audio.examples/C05.sampler.oneshot.pd
deleted file mode 100644
index f75d5517..00000000
--- a/desiredata/doc/3.audio.examples/C05.sampler.oneshot.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas 34 0 985 746 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array tab28 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 740 126 graph;
-#X obj 577 486 loadbang;
-#X obj 31 340 hip~ 5;
-#X obj 587 345 adc~ 1;
-#X obj 587 375 hip~ 5;
-#X msg 558 306 bang;
-#X text 681 492 v-- re-read the original sample;
-#X text 20 6 ONE-SHOT SAMPLER USING LINE~ AS PHASE;
-#X obj 31 306 *~;
-#X obj 71 279 r cutoff;
-#X obj 31 194 r phase;
-#X msg 24 37 bang;
-#X obj 124 92 delay 5;
-#X text 77 37 <-- play the sample;
-#X msg 24 128 \; cutoff 0 5;
-#X text 34 85 cut the;
-#X text 34 104 sound off;
-#X text 204 77 Wait for the;
-#X text 202 97 cutoff to finish;
-#X text 349 121 set the upper line~ to start;
-#X text 349 140 at the first sample and go;
-#X text 348 161 forever (until the next trigger);
-#X text 18 486 To start a note \, first we have to mute the output
-in case ther's already something playing---otherwise we'll get a click.
-The "cutoff" line~ then takes 5 msec to get to zero. After that amount
-of delay \, we reset the phase to sample number 1 and set it in motion.
-We want the line~ output to increase by 1 each sample of output \,
-so we ask for it to do 4.41e+08 samples in 1e+07 milliseconds.;
-#X text 18 602 The cutoff mechanism is still safe if we happen to ask
-for two notes in under 5 msec. The second request would reset the delay
-\, so that there's no way the delay can possibly fire without the cutoff
-line~ at zero.;
-#X text 596 305 <-- record;
-#X obj 622 405 line~;
-#X obj 587 410 *~;
-#X text 738 267 ------ 4 seconds ------;
-#X obj 655 342 del 3990;
-#X msg 655 370 0 10;
-#X text 706 371 <--stop recording;
-#X text 19 672 We avoid clicking at the end of the table by getting
-the table's own contents to go smoothly to zero. To do this we added
-a level control to the recording patch that cuts off just before the
-recording reaches the end of the table.;
-#X text 576 599 this is.;
-#X text 578 575 My apologies to Jonathan Harvey whose bell;
-#X obj 577 545 soundfiler;
-#X text 19 443 Here's how to make a sampler with a line~ object \,
-instead of a phasor~ \, to generate the read location signal.;
-#X obj 71 306 vline~;
-#X obj 30 369 output~;
-#X obj 31 224 vline~;
-#X obj 558 439 tabwrite~ tab28;
-#X msg 577 516 read ../sound/bell.aiff tab28;
-#X obj 31 254 tabread4~ tab28;
-#X msg 124 127 \; phase 1 \, 4.41e+08 1e+07 \; cutoff 1;
-#X msg 497 386 0 \, 1 5;
-#X text 719 717 updated for Pd version 0.37;
-#X connect 1 0 40 0;
-#X connect 2 0 37 0;
-#X connect 2 0 37 1;
-#X connect 3 0 4 0;
-#X connect 4 0 26 0;
-#X connect 5 0 28 0;
-#X connect 5 0 43 0;
-#X connect 5 0 39 0;
-#X connect 8 0 2 0;
-#X connect 9 0 36 0;
-#X connect 10 0 38 0;
-#X connect 11 0 14 0;
-#X connect 11 0 12 0;
-#X connect 12 0 42 0;
-#X connect 25 0 26 1;
-#X connect 26 0 39 0;
-#X connect 28 0 29 0;
-#X connect 29 0 25 0;
-#X connect 36 0 8 1;
-#X connect 38 0 41 0;
-#X connect 40 0 34 0;
-#X connect 41 0 8 0;
-#X connect 43 0 25 0;
diff --git a/desiredata/doc/3.audio.examples/C06.signal.to.control.pd b/desiredata/doc/3.audio.examples/C06.signal.to.control.pd
deleted file mode 100644
index 1c3e4bf0..00000000
--- a/desiredata/doc/3.audio.examples/C06.signal.to.control.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 215 77 561 455 12;
-#N canvas 0 0 269 179 metro 0;
-#X obj 88 39 loadbang;
-#X msg 87 65 1;
-#X obj 87 128 outlet;
-#X obj 87 96 metro 100;
-#X msg 178 70 \; pd dsp 1;
-#X connect 0 0 1 0;
-#X connect 0 0 4 0;
-#X connect 1 0 3 0;
-#X connect 3 0 2 0;
-#X restore 41 247 pd metro;
-#X text 374 425 Updated for Pd 0.37;
-#X obj 41 316 snapshot~;
-#X obj 66 286 phasor~ 1;
-#X floatatom 41 347 5 0 0 0 - - -;
-#X text 14 7 CONVERTING SIGNALS TO CONTROLS;
-#X text 15 35 The snapshot~ object allows you to convert from signals
-back to control streams (float messages) -- an opposite of signal~.
-The value output is always the end of the most recently computed audio
-block \, so that even if you bang it metronomically (as here) it need
-not give you samples that are exactly evenly spaced.;
-#X connect 0 0 2 0;
-#X connect 2 0 4 0;
-#X connect 3 0 2 0;
diff --git a/desiredata/doc/3.audio.examples/C07.envelope.follower.pd b/desiredata/doc/3.audio.examples/C07.envelope.follower.pd
deleted file mode 100644
index 51f8f56b..00000000
--- a/desiredata/doc/3.audio.examples/C07.envelope.follower.pd
+++ /dev/null
@@ -1,113 +0,0 @@
-#N canvas 66 7 617 909 12;
-#X text 164 5 ENVELOPE FOLLOWERS;
-#X text 10 25 The env~ object reports ths RMS signal level over the
-last 256 samples (by default) or any other power of 2 that's at least
-twice the block size. The analysis is done in an overlapped fashion
-so that results appear every N/2 points if N is the analysis window
-size. So the larger the window \, the stabler the result and the less
-frequently it appears. Computation time doesn't depend heavily on N.
-;
-#X text 11 135 Envelope followers are frequently used to detect attacks
-and periods of silence. (There are fancier attack detectors out there
-\, though.) Here is a simple threshold-based attack and rest detector.
-;
-#X obj 102 297 dbtorms;
-#X obj 23 293 osc~ 440;
-#X obj 23 339 env~;
-#X floatatom 78 329 0 0 0 0 - - -;
-#X floatatom 102 274 0 0 0 0 - - -;
-#X msg 451 320 \; pd dsp 1;
-#X obj 119 380 t b f;
-#X floatatom 119 403 0 0 0 0 - - -;
-#X obj 126 458 pack;
-#X obj 126 481 route 0 1;
-#X obj 126 504 > 55;
-#X obj 176 504 < 45;
-#X obj 126 527 sel 1;
-#X obj 176 527 sel 1;
-#X msg 90 538 1;
-#X msg 90 516 0;
-#X obj 126 564 print attack;
-#X obj 119 435 != 0;
-#X obj 24 612 t b f;
-#X floatatom 15 638 0 0 0 0 - - -;
-#X obj 27 688 pack;
-#X obj 27 711 route 0 1;
-#X obj 27 749 sel 1;
-#X msg 6 856 1;
-#X msg 7 879 0;
-#X obj 20 666 != 0;
-#X obj 58 639 < 45;
-#X obj 31 783 timer;
-#X obj 113 712 sel 0;
-#X obj 95 832 sel 0;
-#X obj 45 832 sel 1;
-#X obj 45 873 print rest;
-#X obj 31 806 > 1000;
-#X text 162 403 state -- 1 if waiting for low threshold \,;
-#X text 199 418 0 if we've attained it and now want the;
-#X text 202 434 high one.;
-#X text 209 480 route the RMS value according to state;
-#X text 239 506 if off \, 55 dB means attack. If on \, 45;
-#X text 240 527 dB or less means state changes to off.;
-#X text 132 359 ATTACK DETECTION;
-#X text 40 594 REST DETECTION;
-#X text 100 637 Here we always will test RMS against a low value;
-#X text 125 654 but as before we route the result according to;
-#X text 147 671 our state \, 1 if "resting" \, 0 if not.;
-#X text 163 709 regardless of state \, when RMS isn't low;
-#X text 185 724 reset the timer;
-#X text 202 846 RMS isn't low enough.;
-#X text 120 744 If we're not in rest \, and the RMS is low \,;
-#X text 143 761 check elapsed time sinse RMS last wasn't low.;
-#X text 122 802 If more than 1 second \, report a rest.;
-#X text 170 828 If we're at rest \, pop out of it when;
-#X text 11 201 Both detectors are state machines with two states \,
-on and off. If on \, a test is run to determine whether to turn off
-\, and vice versa. The tests are run at each output of the rms~ object.
-;
-#X text 355 884 updated for Pd version 0.37;
-#X text 109 320 note 3.01 dB difference between;
-#X text 113 336 peak and RMS amplitudes.;
-#X obj 451 297 loadbang;
-#X obj 23 316 *~;
-#X connect 3 0 59 1;
-#X connect 4 0 59 0;
-#X connect 5 0 6 0;
-#X connect 5 0 9 0;
-#X connect 5 0 21 0;
-#X connect 7 0 3 0;
-#X connect 9 0 10 0;
-#X connect 9 1 11 1;
-#X connect 10 0 20 0;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 12 1 14 0;
-#X connect 13 0 15 0;
-#X connect 14 0 16 0;
-#X connect 15 0 17 0;
-#X connect 15 0 19 0;
-#X connect 16 0 18 0;
-#X connect 17 0 10 0;
-#X connect 18 0 10 0;
-#X connect 20 0 11 0;
-#X connect 21 0 22 0;
-#X connect 21 1 29 0;
-#X connect 22 0 28 0;
-#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 24 1 32 0;
-#X connect 25 0 30 1;
-#X connect 26 0 22 0;
-#X connect 27 0 22 0;
-#X connect 28 0 23 0;
-#X connect 29 0 23 1;
-#X connect 29 0 31 0;
-#X connect 30 0 35 0;
-#X connect 31 0 30 0;
-#X connect 32 0 27 0;
-#X connect 33 0 26 0;
-#X connect 33 0 34 0;
-#X connect 35 0 33 0;
-#X connect 58 0 8 0;
-#X connect 59 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/C08.analog.sequencer.pd b/desiredata/doc/3.audio.examples/C08.analog.sequencer.pd
deleted file mode 100644
index 9ee9e6de..00000000
--- a/desiredata/doc/3.audio.examples/C08.analog.sequencer.pd
+++ /dev/null
@@ -1,156 +0,0 @@
-#N canvas 46 22 825 554 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array 29-sequence 9 float 1;
-#A 0 55 550 385 495 165 385 495 275 615;
-#X coords 0 500 8 0 200 100 1;
-#X restore 621 42 graph;
-#X obj 27 426 *~;
-#X obj 27 454 hip~ 5;
-#N canvas 0 0 450 300 graph1 0;
-#X array 29-envelope 103 float 1;
-#A 0 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1.01111 1 0.988889 0.977778
-0.966667 0.955556 0.944444 0.933333 0.922222 0.911111 0.9 0.888889
-0.797778 0.737777 0.677777 0.647777 0.617777 0.557777 0.487777 0.467777
-0.447776 0.417776 0.397776 0.387776 0.377776 0.367776 0.347776 0.327776
-0.317776 0.297776 0.277776 0.267776 0.257776 0.257776 0.277776 0.297776
-0.327776 0.357776 0.377776 0.397776 0.407776 0.427776 0.437776 0.387776
-0.367776 0.347776 0.337776 0.287776 0.277776 0.277776 0.277776 0.267776
-0.267776 0.267776 0.297776 0.317776 0.347776 0.367776 0.367776 0.357776
-0.347776 0.337776 0.307776 0.287776 0.257776 0.227776 0.197776 0.167776
-0.167776 0.167776 0.167776 0.167776 0.157776 0.157776 0.157776 0.157776
-0.147776 0.147776 0.147776 0.137776 0.137776 0.111111 0.1 0.0888889
-0.0777778 0.0666667 0.0555556 0.0444444 0.0333333 0.0222222 0.0111111
-0 -0.0111111;
-#X coords 0 1 102 0 200 100 1;
-#X restore 622 146 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array 29-sample 259 float 1;
-#A 0 0.989177 1 0.989177 0.95694 0.903989 0.83147 0.740952 0.634394
-0.514103 0.382684 0.242981 0.0980184 -0.0490663 -0.195089 -0.336888
--0.471395 -0.595698 -0.707105 -0.803206 -0.88192 -0.941543 -0.980785
--0.998795 -0.995185 -0.970032 -0.923881 -0.85773 -0.773013 -0.671561
--0.555573 -0.427558 -0.290288 -0.146734 -3.98038e-06 0.146726 0.290281
-0.427551 0.555566 0.671556 0.773007 0.857726 0.923878 0.97003 0.995184
-0.998796 0.980786 0.941546 0.881924 0.803211 0.707111 0.595704 0.471402
-0.336896 0.195097 0.0490743 -0.0980105 -0.242974 -0.382677 -0.514097
--0.634388 -0.740946 -0.831465 -0.903986 -0.956938 -0.989175 -1 -0.989178
--0.956943 -0.903993 -0.831474 -0.740957 -0.6344 -0.51411 -0.382692
--0.242989 -0.0980263 0.0490584 0.195081 0.336881 0.471388 0.595691
-0.7071 0.803202 0.881916 0.941541 0.980783 0.998795 0.995186 0.970034
-0.923884 0.857734 0.773018 0.671567 0.55558 0.427566 0.290296 0.146742
-1.19412e-05 -0.146719 -0.290273 -0.427544 -0.55556 -0.67155 -0.773002
--0.857722 -0.923875 -0.970028 -0.995183 -0.998796 -0.980788 -0.941549
--0.881928 -0.803216 -0.707117 -0.595711 -0.471409 -0.336903 -0.195104
--0.0490822 0.0980025 0.242966 0.38267 0.51409 0.634382 0.740941 0.831461
-0.903983 0.956936 0.989174 1 0.989179 0.956945 0.903996 0.831479 0.740962
-0.634406 0.514117 0.382699 0.242997 0.0980342 -0.0490504 -0.195073
--0.336873 -0.471381 -0.595685 -0.707094 -0.803197 -0.881913 -0.941538
--0.980782 -0.998795 -0.995187 -0.970036 -0.923887 -0.857738 -0.773023
--0.671573 -0.555586 -0.427573 -0.290303 -0.14675 -1.99019e-05 0.146711
-0.290265 0.427537 0.555553 0.671544 0.772997 0.857718 0.923872 0.970026
-0.995183 0.998797 0.980789 0.941551 0.881931 0.803221 0.707122 0.595717
-0.471416 0.336911 0.195112 0.0490902 -0.0979946 -0.242958 -0.382662
--0.514083 -0.634375 -0.740936 -0.831457 -0.903979 -0.956933 -0.989173
--1 -0.98918 -0.956947 -0.904 -0.831483 -0.740968 -0.634412 -0.514124
--0.382706 -0.243004 -0.0980421 0.0490425 0.195065 0.336866 0.471374
-0.595679 0.707088 0.803192 0.881909 0.941535 0.98078 0.998794 0.995187
-0.970038 0.92389 0.857742 0.773028 0.671579 0.555593 0.42758 0.290311
-0.146758 2.78627e-05 -0.146703 -0.290258 -0.42753 -0.555547 -0.671538
--0.772992 -0.857714 -0.923868 -0.970024 -0.995182 -0.998797 -0.980791
--0.941554 -0.881935 -0.803225 -0.707128 -0.595723 -0.471423 -0.336918
--0.19512 -0.0490981 0.0979867 0.24295 0.382655 0.514076 0.634369 0.74093
-0.831452 0.903976 0.956931 0.989172 1 0.989181;
-#X coords 0 1 258 -1 200 100 1;
-#X restore 619 281 graph;
-#X text 566 533 updated for Pd version 0.37;
-#X obj 26 218 tabread~ 29-sequence;
-#X obj 106 241 wrap~;
-#X obj 106 265 *~ 100;
-#X obj 106 289 +~ 1;
-#X obj 26 242 phasor~;
-#X obj 26 266 -~ 0.5;
-#X obj 27 377 cos~;
-#X obj 84 336 *~;
-#X obj 28 488 output~;
-#X obj 84 408 tabread4~ 29-sample;
-#X obj 106 313 tabread4~ 29-envelope;
-#X obj 84 360 *~ 128;
-#X obj 84 384 +~ 129;
-#X obj 27 401 +~ 1;
-#X obj 26 194 *~ 9;
-#N canvas 328 85 609 424 make-tables 0;
-#X msg 109 52 bang;
-#X obj 109 77 t b b;
-#X obj 152 134 f;
-#X obj 190 134 + 1;
-#X msg 174 106 0;
-#X obj 109 103 until;
-#X obj 152 162 t f f;
-#X obj 27 190 moses 10;
-#X obj 18 272 tabwrite 29-envelope;
-#X obj 75 159 sel 102;
-#X obj 23 218 expr ($f1-1)/10;
-#X obj 35 243 expr (101-$f1)/90;
-#X msg 120 380 \; 29-sample cosinesum 256 0 0 0 0 0 0 1;
-#X msg 120 338 \; 29-sequence 0 55 550 385 495 165 385 495 275 615
-;
-#X text 30 8 bang to recalculate the envelope table (I did this but
-then went in and changed it with the mouse afterward.);
-#X text 84 299 The sequence is just a list of specified frequencies
-\; the wavetable is a cosine.;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 1 1 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 6 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 1;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 6 0 7 0;
-#X connect 6 1 8 1;
-#X connect 7 0 10 0;
-#X connect 7 1 11 0;
-#X connect 9 0 5 1;
-#X connect 10 0 8 0;
-#X connect 11 0 8 0;
-#X restore 689 401 pd make-tables;
-#X text 46 1 ANALOG-SYNTH-STYLE SEQUENCER;
-#X obj 26 170 phasor~ 0.6;
-#X text 27 27 Some control operations can be carried out entirely by
-tilde objects passing audio signals around. Here is an imitation of
-an analog sequencer and envelope generator. A phasor~ loops through
-the "sequence" table at 0.6 Hz \, generating 9 frequencies. Simultaneously
-\, by multiplying by 9 and wrapping \, we create a sawtooth at 9*0.6=5.4
-Hz \, which reads a second table for an envelope shape. This becomes
-the grain size for a samplerbased on the 18.sampler.looped example
-earlier.;
-#X text 97 194 main loop: sawtooth of amplitude 9;
-#X text 218 219 read frequency sequence;
-#X text 162 241 9x original frequency sawtooth;
-#X text 173 266 adjust for reading;
-#X text 346 266 envelope sample;
-#X text 123 336 multiply envelope by audio-frequency sawtooth;
-#X text 147 361 adjust amplitude and center for wavetable;
-#X text 62 428 multiply by raised-cosine smoothing function;
-#X text 478 401 how to make the tables:;
-#X connect 1 0 2 0;
-#X connect 2 0 14 0;
-#X connect 2 0 14 1;
-#X connect 6 0 10 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 9 0 16 0;
-#X connect 10 0 11 0;
-#X connect 11 0 13 0;
-#X connect 11 0 12 0;
-#X connect 12 0 19 0;
-#X connect 13 0 17 0;
-#X connect 15 0 1 1;
-#X connect 16 0 13 1;
-#X connect 17 0 18 0;
-#X connect 18 0 15 0;
-#X connect 19 0 1 0;
-#X connect 20 0 6 0;
-#X connect 20 0 7 0;
-#X connect 23 0 20 0;
diff --git a/desiredata/doc/3.audio.examples/C09.sample.hold.pd b/desiredata/doc/3.audio.examples/C09.sample.hold.pd
deleted file mode 100644
index dc41aacd..00000000
--- a/desiredata/doc/3.audio.examples/C09.sample.hold.pd
+++ /dev/null
@@ -1,104 +0,0 @@
-#N canvas 120 85 930 452 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array samphold 44100 float 0;
-#X coords 0 1 44100 0 300 200 1;
-#X restore 606 36 graph;
-#N canvas 0 0 439 429 tables 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array dbtorms 123 float 1;
-#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
-2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
-4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
-8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
-0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
-0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
-0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
-0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
-0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
-0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
-0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
-0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
-0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
-0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
-0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
-2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
-6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
-#X coords 0 10 123 0 200 100 1;
-#X restore 78 55 graph;
-#X text 280 148 0;
-#X text 282 48 10;
-#X text 97 158 ------ 123 samples ------;
-#N canvas 0 0 450 300 graph2 0;
-#X array mtof 130 float 1;
-#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499
-12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017
-21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478
-36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705
-61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989
-103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814
-174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183
-293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164
-493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991
-830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51
-1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32
-2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07
-4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88
-7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3
-11839.8 12543.9 13289.8 14080;
-#X coords 0 12000 130 0 200 100 1;
-#X restore 85 232 graph;
-#X text 95 340 ------ 130 samples ------;
-#X text 294 325 0;
-#X text 296 225 12000;
-#X restore 648 280 pd tables;
-#X text 67 8 SAMPLE AND HOLD;
-#X obj 141 266 phasor~ 5;
-#X obj 44 241 phasor~ 7;
-#X obj 44 266 samphold~;
-#X floatatom 44 216 0 0 0 0 - - -;
-#X floatatom 141 211 0 0 0 0 - - -;
-#X obj 216 319 tabwrite~ samphold;
-#X msg 216 294 bang;
-#X obj 44 341 tabread4~ mtof;
-#X obj 44 291 *~ 48;
-#X obj 44 316 +~ 36;
-#X obj 44 366 osc~;
-#X msg 216 236 0;
-#X text 259 293 <--graph output;
-#X obj 44 191 unpack;
-#X text 254 233 <-- reset phase;
-#X msg 311 131 32 96.33;
-#X msg 124 131 5 7;
-#X msg 44 131 1 5;
-#X msg 78 131 2 11;
-#X msg 161 131 3.7 8.8;
-#X msg 235 131 3.4 8.9;
-#X text 16 31 Another analog favorite \, the sample and hold unit freezes
-an audio signal on command. In the Pd version \, the second input of
-samphold~ triggers it \, and the first input becomes the output's new
-value whenever the trigger decreases from one sample to the next. This
-is ideal for updating values when a phasor wraps around.;
-#X text 679 428 updated for Pd version 0.37;
-#X obj 44 392 output~;
-#X connect 3 0 5 1;
-#X connect 4 0 5 0;
-#X connect 5 0 11 0;
-#X connect 5 0 8 0;
-#X connect 6 0 4 0;
-#X connect 7 0 3 0;
-#X connect 9 0 8 0;
-#X connect 10 0 13 0;
-#X connect 11 0 12 0;
-#X connect 12 0 10 0;
-#X connect 13 0 26 0;
-#X connect 13 0 26 1;
-#X connect 14 0 3 1;
-#X connect 14 0 4 1;
-#X connect 16 0 6 0;
-#X connect 16 1 7 0;
-#X connect 18 0 16 0;
-#X connect 19 0 16 0;
-#X connect 20 0 16 0;
-#X connect 21 0 16 0;
-#X connect 22 0 16 0;
-#X connect 23 0 16 0;
diff --git a/desiredata/doc/3.audio.examples/C10.monophonic.synth.pd b/desiredata/doc/3.audio.examples/C10.monophonic.synth.pd
deleted file mode 100644
index 66b14564..00000000
--- a/desiredata/doc/3.audio.examples/C10.monophonic.synth.pd
+++ /dev/null
@@ -1,107 +0,0 @@
-#N canvas 57 27 578 769 12;
-#X obj 13 514 mtof;
-#X obj 13 463 stripnote;
-#X obj 164 519 select;
-#X obj 155 413 float;
-#X obj 164 381 t b f;
-#X obj 164 487 float;
-#X text 217 367 f - store pitch below;
-#X text 209 415 velocity stored here;
-#X text 128 459 off;
-#X text 216 486 recall pitch;
-#X text 132 2 MONOPHONIC MIDI SYNTH;
-#X obj 13 340 unpack;
-#X obj 13 273 notein;
-#X obj 13 300 pack;
-#X obj 94 570 line~;
-#X msg 94 544 \$1 100;
-#X msg 164 545 0 1000;
-#X text 15 75 First \, at top \, incoming MIDI notes are parsed and
-used to set pitch and trigger an ADSR envelope. Second \, the envelope
-generator itself has been extended to offer controls over the time
-and target values via number boxes.;
-#X text 17 21 This patch shows how to make a monophonic synthesizer
-that could be controlled from a MIDI or voltage-control keyboard--in
-this example we assume MIDI.;
-#X msg 152 290 55 64;
-#X msg 152 316 55 0;
-#X msg 95 291 48 64;
-#X msg 95 317 48 0;
-#X text 14 142 The note-off testing is complicated by the fact that
-we have to test both that the velocity is zero \, and further that
-the note-off pitch matches the pitch that is now playing (the most
-recent note-on pitch.);
-#X text 218 387 b - bang to recall velocity;
-#X obj 155 442 sel 0;
-#X text 177 463 on;
-#X obj 16 712 output~;
-#X obj 15 688 hip~ 5;
-#X obj 14 642 *~;
-#X obj 13 541 phasor~;
-#X obj 13 565 -~ 0.5;
-#X obj 14 593 cos~;
-#X obj 102 617 *~;
-#X obj 14 617 +~ 1;
-#X text 332 741 updated for Pd version 0.37;
-#X obj 102 665 cos~;
-#X msg 95 268 48 128;
-#X text 18 491 pitch;
-#X text 19 443 messages;
-#X text 210 441 test for note on or off;
-#X text 227 520 test against latest;
-#X text 270 535 note-on pitch;
-#X text 18 407 filter;
-#X text 19 425 note-on;
-#X obj 15 664 *~;
-#X obj 94 517 / 127;
-#X text 14 208 The synthesis technique is the same as in the previous
-patch \, done in a simpler (but less general) way with a cos~ object
-replacing the wavetable lookup.;
-#X text 148 571 envelope generator now controls amplitude;
-#X text 317 589 as well as grain size;
-#X obj 102 641 *~ 2;
-#X obj 123 594 +~ 0.5;
-#X text 148 687 The +~ 0.5 and *~ 2 are fudge factors.;
-#X text 148 648 This replaces the tabread4~;
-#X text 146 668 in the previous patch.;
-#X text 211 290 These buttons simulate MIDI input.;
-#X connect 0 0 30 0;
-#X connect 1 0 2 1;
-#X connect 1 0 0 0;
-#X connect 2 0 16 0;
-#X connect 3 0 25 0;
-#X connect 4 0 3 0;
-#X connect 4 1 5 1;
-#X connect 5 0 2 0;
-#X connect 11 0 1 0;
-#X connect 11 0 4 0;
-#X connect 11 1 1 1;
-#X connect 11 1 3 1;
-#X connect 12 0 13 0;
-#X connect 12 1 13 1;
-#X connect 13 0 11 0;
-#X connect 14 0 45 1;
-#X connect 14 0 51 0;
-#X connect 15 0 14 0;
-#X connect 16 0 14 0;
-#X connect 19 0 11 0;
-#X connect 20 0 11 0;
-#X connect 21 0 11 0;
-#X connect 22 0 11 0;
-#X connect 25 0 5 0;
-#X connect 25 1 46 0;
-#X connect 28 0 27 0;
-#X connect 28 0 27 1;
-#X connect 29 0 45 0;
-#X connect 30 0 31 0;
-#X connect 31 0 33 0;
-#X connect 31 0 32 0;
-#X connect 32 0 34 0;
-#X connect 33 0 50 0;
-#X connect 34 0 29 0;
-#X connect 36 0 29 1;
-#X connect 37 0 11 0;
-#X connect 45 0 28 0;
-#X connect 46 0 15 0;
-#X connect 50 0 36 0;
-#X connect 51 0 33 1;
diff --git a/desiredata/doc/3.audio.examples/D01.envelope.gen.pd b/desiredata/doc/3.audio.examples/D01.envelope.gen.pd
deleted file mode 100644
index cd58d50c..00000000
--- a/desiredata/doc/3.audio.examples/D01.envelope.gen.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 173 105 567 576 12;
-#X text 246 260 attack;
-#X text 317 261 release;
-#X obj 248 397 line~;
-#X msg 318 355 0 500;
-#X text 126 7 ENVELOPE GENERATORS;
-#X obj 65 369 phasor~ 50;
-#X obj 65 417 *~;
-#X obj 65 465 wrap~;
-#X msg 247 355 1 2500;
-#X obj 65 393 -~ 0.5;
-#X msg 182 331 10 200;
-#X obj 247 331 del 200;
-#X text 26 22 This patch uses an envelope generator to control a sound.
-When you hit "attack" two things happen. First \, the line~ object
-rises to 10 in 200 milliseconds. Then after a "delay" of the same 200
-msec \, the second message sends the line~ back down to 1 over another
-2500 msec. The "release" just ramps us down to zero at the end.;
-#X obj 65 513 output~;
-#X text 311 550 updated for Pd version 0.37;
-#X obj 65 441 +~ 0.5;
-#X obj 65 489 hip~ 5;
-#X obj 247 280 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 318 281 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 257 308 stop;
-#X text 28 121 You can hit the "attack" and/or "release" while something
-is still going on from a previous attack or release \, and the envelope
-generator does the ``right thing". In particular \, the release button
-sends a "stop" to the "del" object \, in case it is still scheduled
-to go off from a previous attack.;
-#X text 27 218 The synthesis method is a form of waveshaping \, which
-is the subject of a later chapter.;
-#X connect 2 0 6 1;
-#X connect 3 0 2 0;
-#X connect 5 0 9 0;
-#X connect 6 0 15 0;
-#X connect 7 0 16 0;
-#X connect 8 0 2 0;
-#X connect 9 0 6 0;
-#X connect 10 0 2 0;
-#X connect 11 0 8 0;
-#X connect 15 0 7 0;
-#X connect 16 0 13 0;
-#X connect 17 0 11 0;
-#X connect 17 0 10 0;
-#X connect 18 0 3 0;
-#X connect 18 0 19 0;
-#X connect 19 0 11 0;
diff --git a/desiredata/doc/3.audio.examples/D02.adsr.pd b/desiredata/doc/3.audio.examples/D02.adsr.pd
deleted file mode 100644
index c2a6a940..00000000
--- a/desiredata/doc/3.audio.examples/D02.adsr.pd
+++ /dev/null
@@ -1,42 +0,0 @@
-#N canvas 40 23 609 630 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array adsr-output 44100 float 0;
-#X coords 0 1.02 44100 -1.02 200 130 1;
-#X restore 121 332 graph;
-#X text 121 464 ------ 1 second ------;
-#X obj 18 92 r trigger;
-#X obj 34 168 tabwrite~ adsr-output;
-#X obj 56 143 r graphit;
-#X msg 261 89 bang;
-#X text 305 90 <-- attack and delayed release;
-#X obj 272 113 del 500;
-#X text 376 196 <-- attack only;
-#X msg 261 177 \; pd dsp 1 \; trigger 1 \; graphit bang;
-#X text 377 273 <-- release only;
-#X msg 260 247 \; pd dsp 1 \; trigger 0 \; graphit bang;
-#X msg 272 138 \; trigger 0;
-#X text 324 452 -1;
-#X text 326 327 1;
-#X text 12 27 This patch introduces a simple "adsr" abstraction we'll
-use frequently. You can click on the "adsr" object to see what's inside.
-;
-#X text 16 516 The active ingredient of the ADSR envelope generator
-is a single line~ which gets passed messages to make the attack and
-release behavior. You can retrigger the ADSR envelope generator all
-you wish without having to wait for attacks or releases to finish;
-#X text 104 5 ENVELOPE GENERATOR ABSTRACTION;
-#X obj 18 118 adsr 1 100 200 50 300;
-#X text 356 601 updated for Pd version 0.37;
-#X obj 36 195 osc~ 440;
-#X obj 17 220 *~;
-#X obj 16 249 output~;
-#X connect 2 0 18 0;
-#X connect 4 0 3 0;
-#X connect 5 0 9 0;
-#X connect 5 0 7 0;
-#X connect 7 0 12 0;
-#X connect 18 0 3 0;
-#X connect 18 0 21 0;
-#X connect 20 0 21 1;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
diff --git a/desiredata/doc/3.audio.examples/D03.envelope.dB.pd b/desiredata/doc/3.audio.examples/D03.envelope.dB.pd
deleted file mode 100644
index 70711f8a..00000000
--- a/desiredata/doc/3.audio.examples/D03.envelope.dB.pd
+++ /dev/null
@@ -1,100 +0,0 @@
-#N canvas 158 69 674 673 12;
-#X obj 32 80 r trigger;
-#X text 85 8 USING ADSR'S OUTPUT AS dB;
-#X obj 32 131 tabread4~ dbtorms;
-#N canvas 0 0 450 300 graph1 0;
-#X array dbtorms 123 float 1;
-#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
-2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
-4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
-8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
-0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
-0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
-0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
-0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
-0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
-0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
-0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
-0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
-0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
-0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
-0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
-2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
-6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
-#X coords 0 10 123 0 200 100 1;
-#X restore 387 83 graph;
-#N canvas 461 495 663 358 make-table 0;
-#X obj 97 195 moses 2;
-#X msg 81 44 bang;
-#X obj 81 73 t b b;
-#X obj 152 134 f;
-#X obj 190 134 + 1;
-#X msg 174 106 0;
-#X obj 81 102 until;
-#X obj 73 162 sel 122;
-#X msg 97 226 0;
-#X obj 141 227 dbtorms;
-#X obj 152 162 t f f;
-#X obj 97 259 tabwrite dbtorms;
-#X floatatom 435 103 0 0 0 0 - - -;
-#X floatatom 435 186 0 0 0 0 - - -;
-#X obj 435 157 tabread4 dbtorms;
-#X floatatom 331 183 0 0 0 0 - - -;
-#X obj 331 154 dbtorms;
-#X text 35 12 bang to recalculate the table;
-#X text 268 62 check accuracy of reading table against;
-#X text 268 81 the "real" dbtorms object.;
-#X connect 0 0 8 0;
-#X connect 0 1 9 0;
-#X connect 1 0 2 0;
-#X connect 2 0 6 0;
-#X connect 2 1 5 0;
-#X connect 3 0 4 0;
-#X connect 3 0 7 0;
-#X connect 3 0 10 0;
-#X connect 4 0 3 1;
-#X connect 5 0 3 1;
-#X connect 6 0 3 0;
-#X connect 7 0 6 1;
-#X connect 8 0 11 0;
-#X connect 9 0 11 0;
-#X connect 10 0 0 0;
-#X connect 10 1 11 1;
-#X connect 12 0 14 0;
-#X connect 12 0 16 0;
-#X connect 14 0 13 0;
-#X connect 16 0 15 0;
-#X restore 266 351 pd make-table;
-#X text 257 327 here's the patch I used to make the table:;
-#X obj 53 157 osc~ 440;
-#X text 589 176 0;
-#X text 590 77 10;
-#X text 406 186 ------ 123 samples ------;
-#X text 117 306 <-- attack;
-#X text 116 362 <-- release;
-#X msg 31 347 \; pd dsp 1 \; trigger 0;
-#X obj 32 182 *~;
-#X msg 30 292 \; pd dsp 1 \; trigger 1;
-#X obj 32 106 adsr 100 100 200 70 300;
-#X text 28 409 The table is indexed from 1 to 120 so that 1 gives a
-true zero out and 120 gives 10 (a 20 dB boost.) The extra 20 dB are
-for headroom.;
-#X text 25 459 (There's also a "real" dbtorms~ object... but it's almost
-certainly much more compute-intensive than tabread4~ \, since it has
-to call a library "exp" function.);
-#X text 26 518 Notice how the attack sounds different when you retrigger
-than when you start from zero. This is because if you go from the steady
-state you only rise 30 dB instead of 100 \, so it sounds slower...
-a slur effect. If you don't want this \, you might try increasing the
-amplitude of retriggered notes in comparison to isolated ones.;
-#X text 34 28 For more natural sounding amplitude control \, you can
-use the ADSR's output as log amplitude. In practice this is best done
-using a lookup table:;
-#X obj 31 211 output~;
-#X text 406 631 updated for Pd version 0.37;
-#X connect 0 0 15 0;
-#X connect 2 0 13 0;
-#X connect 6 0 13 1;
-#X connect 13 0 20 0;
-#X connect 13 0 20 1;
-#X connect 15 0 2 0;
diff --git a/desiredata/doc/3.audio.examples/D04.envelope.quartic.pd b/desiredata/doc/3.audio.examples/D04.envelope.quartic.pd
deleted file mode 100644
index 5b440ebe..00000000
--- a/desiredata/doc/3.audio.examples/D04.envelope.quartic.pd
+++ /dev/null
@@ -1,81 +0,0 @@
-#N canvas 130 66 646 584 12;
-#X obj 21 345 osc~;
-#X obj 21 370 *~;
-#X obj 81 350 line~;
-#X obj 21 320 line~;
-#X obj 163 455 osc~;
-#X obj 212 483 *~;
-#X obj 234 366 line~;
-#X obj 163 366 line~;
-#X obj 163 313 sqrt;
-#X obj 163 339 sqrt;
-#X obj 234 313 sqrt;
-#X obj 234 339 sqrt;
-#X obj 163 398 *~;
-#X obj 163 428 *~;
-#X obj 234 398 *~;
-#X obj 234 427 *~;
-#X obj 163 288 unpack;
-#X obj 234 288 unpack;
-#X obj 21 295 r freq;
-#X obj 81 326 r amp;
-#X obj 163 263 r freq;
-#X obj 234 263 r amp;
-#X msg 340 277 \; amp 0 5000 \;;
-#X msg 340 232 \; amp 1 5000 \;;
-#X msg 492 278 \; amp 0 1000 \;;
-#X msg 494 232 \; amp 1 1000 \;;
-#X msg 337 357 \; freq 1760 5000 \;;
-#X msg 338 404 \; freq 55 5000 \;;
-#X msg 493 357 \; freq 1760 1000 \;;
-#X msg 496 405 \; freq 55 1000 \;;
-#X text 90 15 QUARTIC AND LINEAR ENVELOPES COMPARED;
-#X obj 341 464 loadbang;
-#X msg 341 492 \; amp 1 \; freq 1760;
-#X text 22 265 LINEAR;
-#X text 168 236 QUARTIC;
-#X obj 21 397 output~;
-#X obj 212 509 output~;
-#X text 14 123 In the quartic example \, for both the amplitude and
-the frequency \, we have to take the fourth root of the target value
-(which we get by taking square root twice.) Then we raise the line~
-output to the fourth power by squaring twice (the *~ objects \, whose
-left and right inlets are the same.) The cost is mostly that of the
-four additional *~ objects.;
-#X text 350 553 updated for Pd version 0.37;
-#X text 19 39 This patch has two sine wave oscillators \, one with
-linear envelopes \, the other with quartic ones which sound more uniform.
-The message boxes sweep the amplitude and frequency up and down. You
-can compare the two to see that quartic-shaped changes sound more uniform
-than linear ones.;
-#X connect 0 0 1 0;
-#X connect 1 0 35 0;
-#X connect 1 0 35 1;
-#X connect 2 0 1 1;
-#X connect 3 0 0 0;
-#X connect 4 0 5 0;
-#X connect 5 0 36 0;
-#X connect 5 0 36 1;
-#X connect 6 0 14 0;
-#X connect 6 0 14 1;
-#X connect 7 0 12 0;
-#X connect 7 0 12 1;
-#X connect 8 0 9 0;
-#X connect 9 0 7 0;
-#X connect 10 0 11 0;
-#X connect 11 0 6 0;
-#X connect 12 0 13 0;
-#X connect 12 0 13 1;
-#X connect 13 0 4 0;
-#X connect 14 0 15 0;
-#X connect 14 0 15 1;
-#X connect 15 0 5 1;
-#X connect 16 0 8 0;
-#X connect 16 1 7 1;
-#X connect 17 0 10 0;
-#X connect 17 1 6 1;
-#X connect 18 0 3 0;
-#X connect 19 0 2 0;
-#X connect 20 0 16 0;
-#X connect 21 0 17 0;
-#X connect 31 0 32 0;
diff --git a/desiredata/doc/3.audio.examples/D05.envelope.pitch.pd b/desiredata/doc/3.audio.examples/D05.envelope.pitch.pd
deleted file mode 100644
index b91477aa..00000000
--- a/desiredata/doc/3.audio.examples/D05.envelope.pitch.pd
+++ /dev/null
@@ -1,153 +0,0 @@
-#N canvas 222 84 686 544 12;
-#X obj 48 106 r trigger;
-#X obj 48 154 tabread4~ dbtorms;
-#X text 144 313 <-- attack;
-#X text 568 305 <-- release;
-#X obj 48 208 *~;
-#N canvas 151 343 812 522 make-table 0;
-#X msg 82 49 bang;
-#X obj 82 78 t b b;
-#X obj 141 142 f;
-#X obj 179 142 + 1;
-#X msg 150 112 0;
-#X obj 82 107 until;
-#X obj 141 176 t f f;
-#X floatatom 369 67 0 0 0 0 - - -;
-#X floatatom 369 127 0 0 0 0 - - -;
-#N canvas 0 0 450 300 graph1 0;
-#X array dbtorms 123 float 1;
-#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
-2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
-4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
-8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
-0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
-0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
-0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
-0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
-0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
-0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
-0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
-0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
-0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
-0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
-0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
-2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
-6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
-#X coords 0 10 123 0 200 100 1;
-#X restore 538 298 graph;
-#X text 740 391 0;
-#X text 742 291 10;
-#X text 544 403 ------ 123 samples ------;
-#N canvas 0 0 450 300 graph2 0;
-#X array mtof 130 float 1;
-#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499
-12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017
-21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478
-36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705
-61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989
-103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814
-174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183
-293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164
-493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991
-830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51
-1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32
-2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07
-4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88
-7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3
-11839.8 12543.9 13289.8 14080;
-#X coords 0 12000 130 0 200 100 1;
-#X restore 537 130 graph;
-#X obj 283 102 mtof;
-#X floatatom 282 127 0 0 0 0 - - -;
-#X text 541 237 ------ 130 samples ------;
-#X text 746 223 0;
-#X text 748 123 12000;
-#X obj 81 203 mtof;
-#X obj 72 167 sel 129;
-#X obj 80 229 tabwrite mtof;
-#X obj 369 99 tabread4 mtof;
-#X obj 71 418 moses 2;
-#X msg 55 267 bang;
-#X obj 55 296 t b b;
-#X obj 126 357 f;
-#X obj 164 357 + 1;
-#X msg 148 329 0;
-#X obj 55 325 until;
-#X obj 47 385 sel 122;
-#X msg 71 449 0;
-#X obj 115 450 dbtorms;
-#X obj 126 385 t f f;
-#X obj 71 482 tabwrite dbtorms;
-#X text 312 40 ... and test accuracy;
-#X text 23 15 patch to recalculate the mtof table;
-#X text 107 267 bang to recalculate dbtorms table;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 1 1 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 6 0;
-#X connect 2 0 20 0;
-#X connect 3 0 2 1;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 6 0 19 0;
-#X connect 6 1 21 1;
-#X connect 7 0 14 0;
-#X connect 7 0 22 0;
-#X connect 14 0 15 0;
-#X connect 19 0 21 0;
-#X connect 20 0 5 1;
-#X connect 22 0 8 0;
-#X connect 23 0 31 0;
-#X connect 23 1 32 0;
-#X connect 24 0 25 0;
-#X connect 25 0 29 0;
-#X connect 25 1 28 0;
-#X connect 26 0 27 0;
-#X connect 26 0 30 0;
-#X connect 26 0 33 0;
-#X connect 27 0 26 1;
-#X connect 28 0 26 1;
-#X connect 29 0 26 0;
-#X connect 30 0 29 1;
-#X connect 31 0 34 0;
-#X connect 32 0 34 0;
-#X connect 33 0 23 0;
-#X connect 33 1 34 1;
-#X restore 451 222 pd make-table;
-#X text 35 6 PITCH ENVELOPES;
-#X text 125 24 For pitch envelopes \, unlike amplitude envelopes \,
-discontinuities are allowed and sometimes you would rather the envelope
-generator actually jump to zero when it's triggered. The "adsr" object
-does this for you if you send a negative trigger instead of a positive
-one:;
-#X obj 280 106 r trigger2;
-#X obj 280 178 tabread4~ mtof;
-#X obj 280 202 osc~;
-#X msg 46 299 \; pd dsp 1 \; trigger 1 \; trigger2 1;
-#X text 358 297 <-- attack;
-#X msg 249 293 \; pd dsp 1 \; trigger 1 \; trigger2 -1;
-#X msg 472 293 \; pd dsp 1 \; trigger 0 \; trigger2 0;
-#X obj 280 154 +~ 69;
-#X text 358 314 restarting;
-#X text 363 331 pitch env;
-#X text 37 377 We have added a new table \, mtof \, for converting
-audio signals from pitch to frequency. Its range is 1-127 \, so you
-want to add a base pitch in before you start reading from it.;
-#X text 37 443 This is an extreme use of pitch enveloping. In a real
-situation you might want an envelope controlling vibrato depth or the
-like instead of straight pitch.;
-#X obj 48 130 adsr 100 50 200 90 1000;
-#X obj 280 130 adsr 20 200 100 100 1000;
-#X text 413 497 updated for Pd version 0.37;
-#X obj 48 233 output~;
-#X connect 0 0 20 0;
-#X connect 1 0 4 0;
-#X connect 4 0 23 0;
-#X connect 4 0 23 1;
-#X connect 8 0 21 0;
-#X connect 9 0 10 0;
-#X connect 10 0 4 1;
-#X connect 15 0 9 0;
-#X connect 20 0 1 0;
-#X connect 21 0 15 0;
diff --git a/desiredata/doc/3.audio.examples/D06.envelope.portamento.pd b/desiredata/doc/3.audio.examples/D06.envelope.portamento.pd
deleted file mode 100644
index 6542e8b5..00000000
--- a/desiredata/doc/3.audio.examples/D06.envelope.portamento.pd
+++ /dev/null
@@ -1,148 +0,0 @@
-#N canvas 222 84 642 346 12;
-#X floatatom 75 227 0 0 0;
-#N canvas 159 26 495 266 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 425 178 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 425 153 t b f;
-#X obj 397 117 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 397 92 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 22 181 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 100 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 89 outlet;
-#X msg 214 64 \; pd dsp 1;
-#X obj 83 194 line~;
-#X obj 22 212 *~;
-#X obj 22 241 dac~;
-#X obj 83 171 pack 0 50;
-#X text 20 158 audio;
-#X text 93 110 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 46 255 pd output;
-#X msg 123 227 MUTE;
-#X text 166 225 <-- output amplitude;
-#X obj 46 173 tabread4~ mtof;
-#X obj 46 197 osc~;
-#N canvas 247 30 505 439 tables 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array dbtorms 123 float 1;
-#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
-2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
-4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
-8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
-0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
-0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
-0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
-0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
-0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
-0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
-0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
-0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
-0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
-0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
-0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
-2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
-6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
-#X coords 0 10 123 0 200 100 1;
-#X restore 129 49 graph;
-#X text 331 142 0;
-#X text 333 42 10;
-#X text 127 157 ------ 123 samples ------;
-#N canvas 0 0 450 300 graph2 0;
-#X array mtof 130 float 1;
-#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499
-12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017
-21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478
-36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705
-61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989
-103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814
-174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183
-293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164
-493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991
-830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51
-1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32
-2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07
-4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88
-7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3
-11839.8 12543.9 13289.8 14080;
-#X coords 0 12000 130 0 200 100 1;
-#X restore 136 226 graph;
-#X text 128 336 ------ 130 samples ------;
-#X text 340 318 0;
-#X text 342 218 12000;
-#X restore 490 225 pd tables;
-#X text 35 6 PORTAMENTO;
-#X obj 46 149 line~;
-#X obj 46 101 r pitch;
-#X msg 316 101 36;
-#X msg 345 101 48;
-#X msg 372 101 60;
-#X msg 429 101 72;
-#X msg 401 101 67;
-#X msg 483 101 76;
-#X msg 457 101 74;
-#X obj 451 165 s pitch;
-#X msg 514 101 84;
-#X msg 544 101 96;
-#X floatatom 143 125 0 0 0;
-#X text 173 126 <-- change speed;
-#X floatatom 451 139 0 0 0;
-#X obj 46 125 pack 0 100;
-#X obj 388 192 loadbang;
-#X msg 387 214 \; pitch 72;
-#X text 40 37 Portamento can be done using just line~ \, but you still
-might want to sweep in pitch \, not frequency:;
-#X text 363 293 updated for Pd version 0.35;
-#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 1 0;
-#X connect 8 0 4 0;
-#X connect 9 0 23 0;
-#X connect 10 0 22 0;
-#X connect 11 0 22 0;
-#X connect 12 0 22 0;
-#X connect 13 0 22 0;
-#X connect 14 0 22 0;
-#X connect 15 0 22 0;
-#X connect 16 0 22 0;
-#X connect 18 0 22 0;
-#X connect 19 0 22 0;
-#X connect 20 0 23 1;
-#X connect 22 0 17 0;
-#X connect 23 0 8 0;
-#X connect 24 0 25 0;
diff --git a/desiredata/doc/3.audio.examples/D07.additive.pd b/desiredata/doc/3.audio.examples/D07.additive.pd
deleted file mode 100644
index c35a47fe..00000000
--- a/desiredata/doc/3.audio.examples/D07.additive.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 9 13 684 547 12;
-#X obj 37 449 catch~ sum;
-#X obj 349 274 s frequency;
-#X obj 463 274 s duration;
-#X floatatom 463 224 0 0 0 0 - - -;
-#X obj 463 249 * 100;
-#X obj 349 249 mtof;
-#X floatatom 349 224 0 0 0 0 - - -;
-#X text 82 7 ADDITIVE SYNTHESIS;
-#X text 501 214 duration in tenths;
-#X text 503 230 of a second;
-#X text 387 223 pitch;
-#X text 433 518 updated for Pd version 0.37;
-#X obj 37 488 output~;
-#X text 26 83 Partial takes as arguments an amplitude \, a relative
-frequency \, a detuning frequency \, and a relative duration. You set
-absolute duration and pitch using the controls below. Hit the trigger
-to make sound.;
-#X obj 36 164 partial 1 1 0.56 0;
-#X text 27 31 This patch demonstrates using an abstraction \, "partial"
-\, to make a simple additive synthesis instrument originally from Jean-Claude
-Risset.;
-#X obj 349 169 loadbang;
-#X msg 349 192 72;
-#X msg 463 194 40;
-#X obj 352 322 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 385 324 <-- click to play a note;
-#X obj 352 358 s trigger;
-#X obj 36 189 partial 0.67 0.9 0.56 1;
-#X obj 36 214 partial 1 0.65 0.92 0;
-#X obj 36 239 partial 1.8 0.55 0.92 1.7;
-#X obj 36 264 partial 2.67 0.325 1.19 0;
-#X obj 36 289 partial 1.67 0.35 1.7 0;
-#X obj 36 314 partial 1.46 0.25 2 0;
-#X obj 36 339 partial 1.33 0.2 2.74 0;
-#X obj 36 364 partial 1.33 0.15 3 0;
-#X obj 36 389 partial 1 0.1 3.76 0;
-#X obj 36 414 partial 1.33 0.075 4.07 0;
-#X connect 0 0 12 0;
-#X connect 0 0 12 1;
-#X connect 3 0 4 0;
-#X connect 4 0 2 0;
-#X connect 5 0 1 0;
-#X connect 6 0 5 0;
-#X connect 16 0 17 0;
-#X connect 16 0 18 0;
-#X connect 17 0 6 0;
-#X connect 18 0 3 0;
-#X connect 19 0 21 0;
diff --git a/desiredata/doc/3.audio.examples/D08.table.spectrum.pd b/desiredata/doc/3.audio.examples/D08.table.spectrum.pd
deleted file mode 100644
index d9257e6c..00000000
--- a/desiredata/doc/3.audio.examples/D08.table.spectrum.pd
+++ /dev/null
@@ -1,91 +0,0 @@
-#N canvas 251 127 807 425 12;
-#N canvas 0 0 450 300 graph3 0;
-#X array spectrum-tab 127 float 1;
-#A 0 48.5713 48.5713 48.5713 48.2142 48.2142 48.2142 48.2142 48.2142
-48.2142 48.2142 48.2142 48.2142 48.2142 48.5713 48.5713 48.9284 48.9284
-48.9284 48.9284 48.9284 48.9284 48.9284 48.5713 48.5713 48.5713 48.2142
-48.2142 47.4999 47.1427 46.4285 46.4285 46.0713 46.0713 46.0713 45.7142
-44.9999 44.6428 43.5713 43.2142 42.8571 42.4999 41.7856 38.2143 36.7857
-34.6429 31.7857 30.3572 29.6429 28.5715 27.8572 26.7858 25.3572 25.7144
-23.9287 23.9287 23.5715 23.5715 23.5715 23.5715 23.2144 23.2144 23.2144
-22.8573 22.8573 23.5715 23.9287 23.5715 26.0715 26.0715 48.5713 48.5713
-48.5713 48.2142 47.4999 46.7856 46.7856 17.143 16.4287 16.0716 16.4287
-14.643 13.5716 13.5716 40.7142 40.7142 40.7142 14.643 13.2145 12.8573
-12.5002 12.5002 24.2858 29.6429 30.7143 16.4287 10.7145 11.7859 10.7145
-24.2858 23.5715 17.143 13.9288 9.64309 6.78597 5.71455 5.71455 4.28599
-3.92885 3.92885 3.92885 1.42887 1.42887 1.42887 1.07174 1.07174 1.07174
-0.714596 0.714596 0.714596 0.714596 0.714596 1.07174 1.07174 1.07174
-1.07174 0.714286 0.357143;
-#X coords 0 50 126 0 300 140 1;
-#X restore 496 136 graph;
-#N canvas 98 16 694 474 oscbank 0;
-#X obj 36 53 spectrum-partial 1;
-#X obj 36 79 spectrum-partial 2;
-#X obj 36 105 spectrum-partial 3;
-#X obj 36 131 spectrum-partial 4;
-#X obj 36 157 spectrum-partial 5;
-#X obj 36 183 spectrum-partial 6;
-#X obj 36 209 spectrum-partial 7;
-#X obj 36 235 spectrum-partial 8;
-#X obj 36 261 spectrum-partial 9;
-#X obj 36 287 spectrum-partial 10;
-#X obj 216 53 spectrum-partial 11;
-#X obj 122 382 loadbang;
-#X obj 122 407 metro 30;
-#X obj 122 433 s poll-table;
-#X text 107 21 This is the bank of oscillators--open one to see:;
-#X text 72 345 And here we send bangs to "poll-table" needed by the
-abstraction.;
-#X obj 216 79 spectrum-partial 12;
-#X obj 216 105 spectrum-partial 13;
-#X obj 216 131 spectrum-partial 14;
-#X obj 216 157 spectrum-partial 15;
-#X obj 216 183 spectrum-partial 16;
-#X obj 216 209 spectrum-partial 17;
-#X obj 216 235 spectrum-partial 18;
-#X obj 215 261 spectrum-partial 19;
-#X obj 215 287 spectrum-partial 20;
-#X obj 395 53 spectrum-partial 21;
-#X obj 395 78 spectrum-partial 22;
-#X obj 395 104 spectrum-partial 23;
-#X obj 395 130 spectrum-partial 24;
-#X obj 395 156 spectrum-partial 25;
-#X obj 395 182 spectrum-partial 26;
-#X obj 395 207 spectrum-partial 27;
-#X obj 396 234 spectrum-partial 28;
-#X obj 395 260 spectrum-partial 29;
-#X obj 395 287 spectrum-partial 30;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X restore 17 251 pd oscbank;
-#X obj 19 321 catch~ sum-bus;
-#X obj 16 153 s pitch;
-#X floatatom 16 125 4 0 0 0 - - -;
-#X text 43 18 DRAWABLE SPECTRA;
-#X floatatom 14 183 4 0 0 0 - - -;
-#X obj 14 211 s whammybar;
-#N canvas 0 0 650 341 table-setup 0;
-#X obj 39 227 loadbang;
-#X msg 39 261 \; spectrum-tab xlabel -5 0 12 24 36 48 60 72 84 96 108
-120;
-#X text 82 60 comment;
-#X connect 0 0 1 0;
-#X restore 17 283 pd table-setup;
-#X msg 596 65 \; spectrum-tab const 0;
-#X text 26 42 In this array \, you can draw a spectral envelope that
-will be synthesized by an oscillator bank. Each oscillator in the bank
-computes its own frequency and uses it to look up amplitude from the
-array.;
-#X text 113 254 <-- the oscillator bank;
-#X text 71 128 <-- pitch;
-#X text 61 185 <-- left or right shift (normally 0);
-#X text 157 318 <-- here we just collect the sum of all the partials
-which are computed in "oscbank".;
-#X text 662 44 CLEAR;
-#X text 148 283 <-- make the number labels;
-#X obj 19 358 output~;
-#X text 556 389 Updated for Pd version 0.37;
-#X connect 2 0 17 0;
-#X connect 2 0 17 1;
-#X connect 4 0 3 0;
-#X connect 6 0 7 0;
diff --git a/desiredata/doc/3.audio.examples/D09.shepard.tone.pd b/desiredata/doc/3.audio.examples/D09.shepard.tone.pd
deleted file mode 100644
index 8cb66603..00000000
--- a/desiredata/doc/3.audio.examples/D09.shepard.tone.pd
+++ /dev/null
@@ -1,108 +0,0 @@
-#N canvas 124 20 599 828 12;
-#X floatatom 169 520 0 0 0 0 - - -;
-#X floatatom 169 446 0 0 0 0 - - -;
-#X text 462 208 START;
-#X floatatom 190 303 0 0 0 0 - - -;
-#X obj 190 280 r incr;
-#X obj 168 255 metro 50;
-#X floatatom 168 373 5 0 0 0 - - -;
-#X obj 168 394 s phase;
-#X obj 168 350 +;
-#X obj 169 469 s dropoff+;
-#X obj 169 622 s interval+;
-#X floatatom 169 599 0 0 0 0 - - -;
-#X obj 169 543 s pitch+;
-#X obj 169 423 r dropoff;
-#X obj 169 497 r pitch;
-#X obj 169 576 r interval;
-#X obj 168 212 r metro;
-#X obj 228 345 f;
-#X obj 12 212 shepvoice 0;
-#X floatatom 83 708 0 0 0 0 - - -;
-#X obj 83 685 r rev;
-#X obj 138 685 r revtime;
-#X floatatom 138 708 0 0 0 0 - - -;
-#X obj 228 368 mod 10000;
-#X obj 168 327 f;
-#X obj 73 742 rev2~;
-#X obj 12 769 output~;
-#X obj 168 235 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X msg 446 225 \; dropoff 10 \; pitch 60 \; interval 120 \; metro 1
-\; rev 84 \; revtime 87 \; incr -2 \; pd dsp 1;
-#X text 27 7 SHEPARD TONE;
-#X text 339 804 updated for Pd version 0.37;
-#X obj 12 235 shepvoice 500;
-#X obj 12 258 shepvoice 1000;
-#X obj 12 281 shepvoice 1500;
-#X obj 12 304 shepvoice 2000;
-#X obj 12 327 shepvoice 2500;
-#X obj 12 350 shepvoice 3000;
-#X obj 12 373 shepvoice 3500;
-#X obj 12 396 shepvoice 4000;
-#X obj 12 419 shepvoice 4500;
-#X obj 12 442 shepvoice 5000;
-#X obj 12 465 shepvoice 5500;
-#X obj 12 488 shepvoice 6000;
-#X obj 12 511 shepvoice 6500;
-#X obj 12 534 shepvoice 7000;
-#X obj 12 557 shepvoice 7500;
-#X obj 12 580 shepvoice 8000;
-#X obj 12 603 shepvoice 8500;
-#X obj 12 626 shepvoice 9000;
-#X obj 12 649 shepvoice 9500;
-#X text 25 31 This patch is a bank of 20 sinusoids \, arranged so that
-their frequencies sweep upward or downward in parallel \, and their
-amplitudes fade in and out so that each one is quiet when it wraps
-around from one end to the other. The overall "phase" computed here
-is added to each voice's relative phase (its creation argument). The
-"incr" parameter controlls how fast the phase changes \, "dropoff"
-the slope at which the amplitudes fall off at the ends \, "pitch" the
-center pitch of the cluster \, "interval" the number of (tenths of
-halftones) between successive voices \, and "rev" and "revtime" the
-reverberator at bottom.;
-#X connect 0 0 12 0;
-#X connect 1 0 9 0;
-#X connect 3 0 24 1;
-#X connect 4 0 3 0;
-#X connect 5 0 24 0;
-#X connect 6 0 7 0;
-#X connect 8 0 17 0;
-#X connect 8 0 6 0;
-#X connect 11 0 10 0;
-#X connect 13 0 1 0;
-#X connect 14 0 0 0;
-#X connect 15 0 11 0;
-#X connect 16 0 27 0;
-#X connect 17 0 23 0;
-#X connect 18 0 31 0;
-#X connect 19 0 25 1;
-#X connect 20 0 19 0;
-#X connect 21 0 22 0;
-#X connect 22 0 25 2;
-#X connect 23 0 8 1;
-#X connect 24 0 8 0;
-#X connect 25 0 26 0;
-#X connect 25 1 26 1;
-#X connect 27 0 5 0;
-#X connect 31 0 32 0;
-#X connect 32 0 33 0;
-#X connect 33 0 34 0;
-#X connect 34 0 35 0;
-#X connect 35 0 36 0;
-#X connect 36 0 37 0;
-#X connect 37 0 38 0;
-#X connect 38 0 39 0;
-#X connect 39 0 40 0;
-#X connect 40 0 41 0;
-#X connect 41 0 42 0;
-#X connect 42 0 43 0;
-#X connect 43 0 44 0;
-#X connect 44 0 45 0;
-#X connect 45 0 46 0;
-#X connect 46 0 47 0;
-#X connect 47 0 48 0;
-#X connect 48 0 49 0;
-#X connect 49 0 25 0;
-#X connect 49 0 26 0;
-#X connect 49 0 26 1;
diff --git a/desiredata/doc/3.audio.examples/D10.sampler.notes.pd b/desiredata/doc/3.audio.examples/D10.sampler.notes.pd
deleted file mode 100644
index 6bfd1402..00000000
--- a/desiredata/doc/3.audio.examples/D10.sampler.notes.pd
+++ /dev/null
@@ -1,263 +0,0 @@
-#N canvas 12 0 1074 786 12;
-#X msg 257 7 bang;
-#X obj 257 35 delay 5;
-#X text 497 269 end of note;
-#X obj 363 35 r note;
-#N canvas 459 46 678 451 samples 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample1 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 262 41 graph;
-#X text 264 376 ------ 4 seconds ------;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample2 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 262 226 graph;
-#X restore 33 277 pd samples;
-#N canvas 21 287 947 410 recorder 0;
-#X obj 318 43 inlet;
-#X obj 272 196 adc~ 1;
-#X obj 272 224 hip~ 5;
-#X obj 341 254 line~;
-#X obj 272 253 *~;
-#X msg 341 226 1;
-#X obj 400 191 del 3990;
-#X msg 377 226 0 10;
-#X obj 272 304 tabwrite~ sample1;
-#X obj 124 110 makefilename sample%1;
-#X msg 124 139 set \$1 \, bang;
-#X msg 446 162 stop;
-#X msg 400 162 bang;
-#X obj 557 182 loadbang;
-#X obj 660 137 openpanel;
-#X msg 660 109 bang;
-#X text 702 108 <-- browse for samples;
-#X text 628 233 v-- re-read original samples;
-#X obj 318 72 route record stop reload browse;
-#X obj 557 319 soundfiler;
-#X msg 557 261 read ../sound/bell.aiff sample1 \, read ../sound/voice2.wav
-sample2;
-#X msg 660 164 read \$1 sample1;
-#X obj 660 191 soundfiler;
-#X connect 0 0 18 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 3 0 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 3 0;
-#X connect 6 0 7 0;
-#X connect 7 0 3 0;
-#X connect 9 0 10 0;
-#X connect 10 0 8 0;
-#X connect 11 0 6 0;
-#X connect 12 0 6 0;
-#X connect 13 0 20 0;
-#X connect 14 0 21 0;
-#X connect 15 0 14 0;
-#X connect 18 0 9 0;
-#X connect 18 0 12 0;
-#X connect 18 0 5 0;
-#X connect 18 1 7 0;
-#X connect 18 1 11 0;
-#X connect 18 2 20 0;
-#X connect 18 3 15 0;
-#X connect 20 0 19 0;
-#X connect 21 0 22 0;
-#X restore 33 443 pd recorder;
-#X msg 33 305 record 1;
-#X msg 33 360 stop;
-#N canvas 359 226 666 626 playback 0;
-#X obj 20 45 line~;
-#X obj 39 237 line~;
-#X obj 20 268 *~;
-#X obj 39 208 r cutoff;
-#X obj 20 16 r phase;
-#X obj 20 592 outlet~;
-#X obj 20 564 hip~ 5;
-#X obj 32 79 r sample-number;
-#X obj 32 108 makefilename sample%d;
-#X msg 32 136 set \$1;
-#X obj 20 177 tabread4~ sample1;
-#X obj 38 304 r envelope;
-#X obj 38 362 dbtorms;
-#X obj 38 333 unpack;
-#X obj 38 391 sqrt;
-#X obj 38 420 sqrt;
-#X obj 38 448 line~;
-#X obj 20 535 *~;
-#X obj 38 477 *~;
-#X obj 38 506 *~;
-#X text 90 17 messages to the phase generating line~;
-#X text 171 80 setting the sample number.;
-#X text 221 109 compute the name;
-#X text 93 137 and send a "set" message to the tabread4~.;
-#X text 99 236 line~ for de-clicking;
-#X text 139 307 The envelope generator. Rather than sending our message
-straight to the line~ we unpack it in order to fool with the amplitude
-field.;
-#X text 109 363 convert amplitude to linear units.;
-#X text 104 392 take the fourth root. This because we want to raies
-the line~'s output to the 4th power afterward. This is an inexpensive
-way to give the rise and decay a more natural sounding evolution than
-just a straight line.;
-#X text 77 480 square the output twice to get the fourth power.;
-#X connect 0 0 10 0;
-#X connect 1 0 2 1;
-#X connect 2 0 17 0;
-#X connect 3 0 1 0;
-#X connect 4 0 0 0;
-#X connect 6 0 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 2 0;
-#X connect 11 0 13 0;
-#X connect 12 0 14 0;
-#X connect 13 0 12 0;
-#X connect 13 1 16 1;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 16 0 18 0;
-#X connect 16 0 18 1;
-#X connect 17 0 6 0;
-#X connect 18 0 19 0;
-#X connect 18 0 19 1;
-#X connect 19 0 17 1;
-#X restore 33 480 pd playback;
-#X msg 33 332 record 2;
-#X text 645 25 ARGUMENTS FOR NOTES:;
-#X text 666 53 pitch in halftones;
-#X text 666 77 amplitude (dB);
-#X text 666 125 sample number;
-#X text 666 101 duration (msec);
-#X text 666 149 start location (msec);
-#X text 666 173 rise time (msec);
-#X text 666 197 decay time (msec);
-#X obj 363 62 unpack 0 0 0 0 0 0 0;
-#X text 50 6 CHOCOLATE SAMPLER;
-#X obj 521 168 f;
-#X obj 456 142 f;
-#X obj 387 142 f;
-#X obj 350 142 f;
-#X obj 318 142 f;
-#X obj 224 142 f;
-#X obj 224 169 mtof;
-#X obj 224 197 / 261.62;
-#X obj 224 224 * 4.41e+08;
-#X obj 224 252 +;
-#X obj 489 142 delay;
-#X obj 318 312 pack 0 0 0 0 0;
-#X obj 257 62 t b b b;
-#X text 498 346 This starts the note \, sending to "receives" in the
-playback subptach. The new receive "envelope" is an amplitude control
-in parallel with the cutoff control. The "sample-number" switches the
-tabread4~ between tables.;
-#X msg 156 44 \; pd dsp 1 \; cutoff 0 5;
-#X obj 387 197 + 1;
-#X msg 556 467 60 100 10000 1 0 0 0;
-#X obj 556 737 s note;
-#X msg 521 196 \; envelope 0 \$1;
-#X msg 675 691 62;
-#X msg 710 691 64;
-#X msg 641 691 60;
-#X msg 612 691 55;
-#X msg 743 691 72;
-#X msg 580 691 48;
-#X msg 642 734 60.5;
-#X msg 556 494 60 90 10000 1 0 0 0;
-#X msg 556 522 60 100 10000 2 0 0 0;
-#X msg 556 550 60 100 10000 1 3000 0 0;
-#X obj 387 169 * 44.1;
-#X msg 556 605 60 100 100 1 0 0 0;
-#X msg 556 632 60 100 100 1 0 0 1000;
-#X msg 556 577 60 100 10000 1 0 1000 0;
-#X msg 318 340 \; envelope 0 \, \$1 \$2 \; phase \$3 \, \$4 1e+07 \;
-sample-number \$5 \; cutoff 1 5 \;;
-#X text 117 305 <-- record;
-#X msg 33 388 reload;
-#X msg 33 415 browse;
-#X text 7 109 transposition works;
-#X text 7 133 by altering the phase;
-#X text 7 181 The mtof and / 261;
-#X text 7 205 calculate speed change;
-#X text 7 229 considering 60 as unity.;
-#X text 24 43 as before we;
-#X text 15 64 mute and wait;
-#X text 7 157 target ($4 below right.);
-#X text 450 303 combine amplitude \, rise time \, start phase \, end
-phase \, and sample number in one message;
-#X text 764 467 straight playback;
-#X text 764 493 change amplitude;
-#X text 767 521 change sample number;
-#X text 769 550 change start location;
-#X text 768 576 change rise time;
-#X text 768 609 change duration;
-#X text 769 633 ... and decay time;
-#X text 692 736 microtones OK too.;
-#X text 580 667 If you omit values they stay unchanged;
-#X text 552 426 Here are buttons to demonstrate the effect of varying
-the parameters one by one.;
-#X obj 34 511 output~;
-#X text 13 596 This patch take the same principle as the earlier "one-shot
-sampler" \, but allows you to parametrize sample playback. Since we
-must wait 5 msec before starting the playback \, we store all the parameters
-in "f" objects \, and recall them to construct the new note. Transposition
-is done by altering the amount to play back in the (artificial) ten
-thousand seconds (1e+07). The playback segment can be altered to start
-in the middle of the sample instead of the beginning \, and you can
-change the duration and rise and decay times.;
-#X text 823 763 updated for Pd version 0.37;
-#X connect 0 0 1 0;
-#X connect 0 0 34 0;
-#X connect 1 0 32 0;
-#X connect 3 0 18 0;
-#X connect 6 0 5 0;
-#X connect 7 0 5 0;
-#X connect 8 0 76 0;
-#X connect 8 0 76 1;
-#X connect 9 0 5 0;
-#X connect 18 0 25 1;
-#X connect 18 0 0 0;
-#X connect 18 1 24 1;
-#X connect 18 2 30 1;
-#X connect 18 3 23 1;
-#X connect 18 4 22 1;
-#X connect 18 5 21 1;
-#X connect 18 6 20 1;
-#X connect 20 0 38 0;
-#X connect 21 0 31 1;
-#X connect 22 0 49 0;
-#X connect 23 0 31 4;
-#X connect 24 0 31 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 28 0;
-#X connect 28 0 29 0;
-#X connect 29 0 31 3;
-#X connect 30 0 20 0;
-#X connect 31 0 53 0;
-#X connect 32 0 24 0;
-#X connect 32 1 25 0;
-#X connect 32 2 21 0;
-#X connect 32 2 22 0;
-#X connect 32 2 23 0;
-#X connect 32 2 30 0;
-#X connect 35 0 31 2;
-#X connect 35 0 29 1;
-#X connect 36 0 37 0;
-#X connect 39 0 37 0;
-#X connect 40 0 37 0;
-#X connect 41 0 37 0;
-#X connect 42 0 37 0;
-#X connect 43 0 37 0;
-#X connect 44 0 37 0;
-#X connect 45 0 37 0;
-#X connect 46 0 37 0;
-#X connect 47 0 37 0;
-#X connect 48 0 37 0;
-#X connect 49 0 35 0;
-#X connect 50 0 37 0;
-#X connect 51 0 37 0;
-#X connect 52 0 37 0;
-#X connect 55 0 5 0;
-#X connect 56 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/D11.sampler.poly.pd b/desiredata/doc/3.audio.examples/D11.sampler.poly.pd
deleted file mode 100644
index a0863964..00000000
--- a/desiredata/doc/3.audio.examples/D11.sampler.poly.pd
+++ /dev/null
@@ -1,175 +0,0 @@
-#N canvas 91 72 1119 674 12;
-#N canvas 0 0 600 392 samples 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample1 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 262 41 graph;
-#X text 282 385 ------ 4 seconds ------;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample2 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 262 226 graph;
-#X restore 931 97 pd samples;
-#N canvas 52 219 967 340 recorder 0;
-#X obj 220 21 inlet;
-#X obj 174 174 adc~ 1;
-#X obj 174 202 hip~ 5;
-#X obj 243 232 line~;
-#X obj 174 231 *~;
-#X msg 243 204 1;
-#X obj 302 169 del 3990;
-#X msg 279 204 0 10;
-#X obj 174 282 tabwrite~ sample1;
-#X msg 26 117 set \$1 \, bang;
-#X msg 348 140 stop;
-#X msg 302 140 bang;
-#X obj 220 50 route record stop reload browse;
-#X obj 411 158 loadbang;
-#X obj 514 113 openpanel;
-#X msg 514 85 bang;
-#X text 556 84 <-- browse for samples;
-#X text 482 209 v-- re-read original samples;
-#X obj 411 295 soundfiler;
-#X msg 411 237 read ../sound/bell.aiff sample1 \, read ../sound/voice2.wav
-sample2;
-#X msg 514 140 read \$1 sample1;
-#X obj 514 167 soundfiler;
-#X obj 26 88 makefilename sample%d;
-#X connect 0 0 12 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 3 0 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 3 0;
-#X connect 6 0 7 0;
-#X connect 7 0 3 0;
-#X connect 9 0 8 0;
-#X connect 10 0 6 0;
-#X connect 11 0 6 0;
-#X connect 12 0 11 0;
-#X connect 12 0 5 0;
-#X connect 12 0 22 0;
-#X connect 12 1 7 0;
-#X connect 12 1 10 0;
-#X connect 12 2 19 0;
-#X connect 12 3 15 0;
-#X connect 13 0 19 0;
-#X connect 14 0 20 0;
-#X connect 15 0 14 0;
-#X connect 19 0 18 0;
-#X connect 20 0 21 0;
-#X connect 22 0 9 0;
-#X restore 931 284 pd recorder;
-#X msg 931 146 record 1;
-#X msg 931 202 stop;
-#X msg 931 174 record 2;
-#X text 19 49 ARGUMENTS FOR NOTES:;
-#X text 19 71 pitch in halftones;
-#X text 19 95 amplitude (dB);
-#X text 19 143 sample number;
-#X text 19 119 duration (msec);
-#X text 19 167 start location (msec);
-#X text 19 191 rise time (msec);
-#X text 19 215 decay time (msec);
-#X msg 931 229 reload;
-#X msg 931 257 browse;
-#X text 47 10 POLYPHONIC SAMPLER;
-#X obj 547 329 sampvoice;
-#X obj 631 17 r note;
-#X obj 631 44 unpack 0 0 0 0 0 0 0;
-#X obj 604 76 t b f;
-#X obj 544 109 f;
-#X obj 580 109 + 1;
-#X obj 552 146 mod 1e+06;
-#X obj 544 175 makenote 64;
-#X obj 544 203 poly 8 1;
-#X obj 544 230 stripnote;
-#X obj 617 272 pack 0 0 0 0 0 0 0 0;
-#X obj 617 300 route 1 2 3 4 5 6 7 8;
-#X text 929 124 record \, etc.;
-#X text 335 203 allocate sampler voice;
-#X text 361 228 drop note off again;
-#X obj 704 516 qlist;
-#X obj 870 520 r comment;
-#X text 732 445 sailors to untie him...;
-#X text 735 395 Lashed to the mast of his boat \, Ulysses;
-#X text 735 420 hears beautiful singing. He begs his;
-#X text 7 263 Here we take the previous patch and make it polyphonic
-\, with 8 voices. The single voice which we had before has been made
-into an abstraction \, "sampvoice.pd" \, which we instantiate in 8
-copies. Earlier we used sends and receives to pass messages to "cutoff"
-\, etc \, but here if we did that the copies of sampvoice would be
-sending messages to each other \, so we combine the control and the
-audio computation in the sampvoice abstraction without using send and
-receive. Click on one to see how.;
-#X text 8 413 The "poly" object essentially repeats pitch and velocity
-pairs to its output \, but also sending a voice number from its left
-outlet. To use it \, we unpack the 7 parameters \, calculate the voice
-number \, repack the message as 8 parameters with voice number first
-\, and use "route" to send it to one of the 8 voices.;
-#X text 8 515 There's some bother because poly expects to track note
-on and note off messages separately as they would come from a MIDI
-keyboard. So we assign each note a unique fake "pitch" \, use makenote
-to generate the note-off messages \, and run poly on the resulting
-stream. We then discard both pitch and velocity (using the velocity
-only to strip note-offs) and rebuild the original message adding the
-voice number we just scored.;
-#X text 854 639 updated for Pd version 0.33;
-#X msg 704 486 read qlist-sampler.txt \, rewind \, tempo 1 \, bang
-;
-#X obj 548 551 output~;
-#X text 249 108 increment mod 1e+06 to make tag;
-#X text 276 127 (acts like a MIDI pitch to;
-#X text 277 146 identify the note to "poly");
-#X text 258 175 supply delayed note-off message;
-#X obj 547 522 sampvoice;
-#X obj 547 494 sampvoice;
-#X obj 547 467 sampvoice;
-#X obj 547 439 sampvoice;
-#X obj 547 412 sampvoice;
-#X obj 547 384 sampvoice;
-#X obj 547 356 sampvoice;
-#X connect 2 0 1 0;
-#X connect 3 0 1 0;
-#X connect 4 0 1 0;
-#X connect 13 0 1 0;
-#X connect 14 0 1 0;
-#X connect 16 0 52 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
-#X connect 18 1 26 2;
-#X connect 18 2 23 2;
-#X connect 18 2 26 3;
-#X connect 18 3 26 4;
-#X connect 18 4 26 5;
-#X connect 18 5 26 6;
-#X connect 18 6 26 7;
-#X connect 19 0 20 0;
-#X connect 19 1 26 1;
-#X connect 20 0 21 0;
-#X connect 20 0 23 0;
-#X connect 21 0 22 0;
-#X connect 22 0 20 1;
-#X connect 23 0 24 0;
-#X connect 23 1 24 1;
-#X connect 24 0 25 0;
-#X connect 24 2 25 1;
-#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 16 1;
-#X connect 27 1 52 1;
-#X connect 27 2 51 1;
-#X connect 27 3 50 1;
-#X connect 27 4 49 1;
-#X connect 27 5 48 1;
-#X connect 27 6 47 1;
-#X connect 27 7 46 1;
-#X connect 40 0 31 0;
-#X connect 46 0 41 0;
-#X connect 46 0 41 1;
-#X connect 47 0 46 0;
-#X connect 48 0 47 0;
-#X connect 49 0 48 0;
-#X connect 50 0 49 0;
-#X connect 51 0 50 0;
-#X connect 52 0 51 0;
diff --git a/desiredata/doc/3.audio.examples/D12.sampler.bis.pd b/desiredata/doc/3.audio.examples/D12.sampler.bis.pd
deleted file mode 100644
index f0fa13fd..00000000
--- a/desiredata/doc/3.audio.examples/D12.sampler.bis.pd
+++ /dev/null
@@ -1,203 +0,0 @@
-#N canvas 104 78 1119 674 12;
-#N canvas 0 0 600 392 samples 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample1 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 262 41 graph;
-#X text 282 385 ------ 4 seconds ------;
-#N canvas 0 0 450 300 graph1 0;
-#X array sample2 176403 float 0;
-#X coords 0 1.02 176403 -1.02 200 130 1;
-#X restore 262 226 graph;
-#X restore 785 563 pd samples;
-#N canvas 52 219 971 512 recorder 0;
-#X obj 174 304 adc~ 1;
-#X obj 174 332 hip~ 5;
-#X obj 243 362 line~;
-#X obj 174 361 *~;
-#X msg 243 334 1;
-#X obj 302 299 del 3990;
-#X msg 279 334 0 10;
-#X obj 174 412 tabwrite~ sample1;
-#X msg 26 247 set \$1 \, bang;
-#X msg 348 270 stop;
-#X msg 302 270 bang;
-#X obj 220 180 route record stop reload browse;
-#X obj 411 288 loadbang;
-#X obj 514 243 openpanel;
-#X msg 514 215 bang;
-#X text 556 214 <-- browse for samples;
-#X text 482 339 v-- re-read original samples;
-#X obj 411 425 soundfiler;
-#X msg 411 367 read ../sound/bell.aiff sample1 \, read ../sound/voice2.wav
-sample2;
-#X msg 514 270 read \$1 sample1;
-#X obj 514 297 soundfiler;
-#X msg 220 41 record 1;
-#X msg 220 97 stop;
-#X msg 220 69 record 2;
-#X msg 220 124 reload;
-#X msg 220 152 browse;
-#X text 218 19 record \, etc.;
-#X obj 26 218 makefilename sample%d;
-#X connect 0 0 1 0;
-#X connect 1 0 3 0;
-#X connect 2 0 3 1;
-#X connect 3 0 7 0;
-#X connect 4 0 2 0;
-#X connect 5 0 6 0;
-#X connect 6 0 2 0;
-#X connect 8 0 7 0;
-#X connect 9 0 5 0;
-#X connect 10 0 5 0;
-#X connect 11 0 10 0;
-#X connect 11 0 4 0;
-#X connect 11 0 27 0;
-#X connect 11 1 6 0;
-#X connect 11 1 9 0;
-#X connect 11 2 18 0;
-#X connect 11 3 14 0;
-#X connect 12 0 18 0;
-#X connect 13 0 19 0;
-#X connect 14 0 13 0;
-#X connect 18 0 17 0;
-#X connect 19 0 20 0;
-#X connect 21 0 11 0;
-#X connect 22 0 11 0;
-#X connect 23 0 11 0;
-#X connect 24 0 11 0;
-#X connect 25 0 11 0;
-#X connect 27 0 8 0;
-#X restore 785 586 pd recorder;
-#X text 782 458 sample number;
-#X obj 619 96 unpack 0 0 0 0 0 0 0;
-#X obj 563 124 poly 8 1;
-#X obj 654 270 route 1 2 3 4 5 6 7 8;
-#X obj 558 487 output~;
-#X obj 563 149 swap;
-#X obj 563 196 route 0;
-#X obj 563 173 pack;
-#X obj 605 221 unpack;
-#X obj 557 289 sampvoice2;
-#X obj 563 221 pack;
-#X text 933 411 amplitude;
-#X text 932 435 pitch;
-#X text 851 344 ARGUMENTS FOR:;
-#X text 784 386 pitch;
-#X text 784 410 amplitude;
-#X text 784 434 duration;
-#X text 13 4 POLY SAMPLER \, VERSION 2 FOR SEPARATE NOTE-ON/OFF MESSAGES
-;
-#X obj 619 71 r onoff;
-#X text 932 368 ON/OFF TRANSITIONS:;
-#X text 785 367 ENTIRE NOTES:;
-#X text 932 390 tag;
-#X text 782 485 sample onset;
-#X text 782 511 rise time;
-#X text 783 535 decay time;
-#X text 929 460 (same other 4);
-#X obj 836 159 f;
-#X obj 872 159 + 1;
-#X obj 836 185 mod 1e+06;
-#X obj 654 245 pack 0 0 0 0 0 0 0;
-#X obj 918 74 r note;
-#X obj 918 100 unpack 0 0 0 0 0 0 0;
-#X text 860 641 updated for Pd version 0.37;
-#X obj 895 127 t b f;
-#X obj 936 237 pack 0 0 0 0 0 0 0;
-#X obj 889 285 s onoff;
-#X obj 870 230 pipe;
-#X obj 870 253 pack;
-#X msg 103 528 \; onoff 1 90 60 1 0 0 100;
-#X msg 323 528 \; onoff 1 0;
-#X msg 104 570 \; onoff 2 90 48 1 0 0 100;
-#X msg 324 570 \; onoff 2 0;
-#X msg 104 627 \; note 51 90 1000 1 0 0 100;
-#X obj 557 312 sampvoice2;
-#X obj 557 336 sampvoice2;
-#X obj 557 360 sampvoice2;
-#X obj 557 383 sampvoice2;
-#X obj 557 407 sampvoice2;
-#X obj 557 430 sampvoice2;
-#X obj 557 454 sampvoice2;
-#X text 14 35 Here is a variation on the polyphonic sampler \, which
-can take separate messages to start and stop notes (so that you can
-attach it to a MIDI keyboard \, for example.) "Note" messages act as
-before \, but in an intermediate step they are split onto note-on and
-note-off messages \, sent to "onoff". You can alternatively send messages
-straight to onoff if you don't know the duration in advance.;
-#X text 12 150 Messages to "onoff" require a tag \, which is a number
-shared between the note-on and note-off message so that we can track
-down the voice to turn it off. If you're using MIDI input \, you can
-just re-use the pitch as a tag.;
-#X text 102 508 separate messages for not on and off:;
-#X text 101 608 single messages to do both as before:;
-#X text 10 221 Messages to "onoff" whose amplitude is zero are note-off
-messages (the other parameters of note-off messages are ignored). The
-"sampvoice2" abstraction is a modification of "sampvoice" which looks
-at the amplitude field to decide whether to begin or end a note.;
-#X text 10 301 To convert "note" messages to pairs of "onoff" messages
-\, first a counter generates a tag. The the "pipe" object delays a
-copy of the tag \, which the following "pack" object converts into
-a note-off message (a pair of numbers \, the tag and a zero.);
-#X text 9 382 Under "r onoff" \, the poly object allocates a voice
-number \, putting it out paired with velocity. After swapping the two
-and packing them into a single message \, the amplitude is checked
-against zero by the "route 0" object \; if zero \, the "pack" confects
-a 2-argument message (voice number and zero). Otherwise \, the "unpack"
-retrieves the nonzero amplitude for a note-on message \, to which we
-add all the other parameters and route to the appropriate voice.;
-#X connect 3 0 4 0;
-#X connect 3 1 31 1;
-#X connect 3 1 4 1;
-#X connect 3 2 31 2;
-#X connect 3 3 31 3;
-#X connect 3 4 31 4;
-#X connect 3 5 31 5;
-#X connect 3 6 31 6;
-#X connect 4 0 7 0;
-#X connect 4 2 7 1;
-#X connect 5 0 11 1;
-#X connect 5 1 45 1;
-#X connect 5 2 46 1;
-#X connect 5 3 47 1;
-#X connect 5 4 48 1;
-#X connect 5 5 49 1;
-#X connect 5 6 50 1;
-#X connect 5 7 51 1;
-#X connect 7 0 9 0;
-#X connect 7 1 9 1;
-#X connect 8 0 12 0;
-#X connect 8 1 10 0;
-#X connect 9 0 8 0;
-#X connect 10 1 31 0;
-#X connect 11 0 45 0;
-#X connect 12 0 5 0;
-#X connect 20 0 3 0;
-#X connect 28 0 29 0;
-#X connect 29 0 30 0;
-#X connect 30 0 28 1;
-#X connect 30 0 38 0;
-#X connect 30 0 36 0;
-#X connect 31 0 5 0;
-#X connect 32 0 33 0;
-#X connect 33 0 35 0;
-#X connect 33 1 36 1;
-#X connect 33 2 38 1;
-#X connect 33 3 36 3;
-#X connect 33 4 36 4;
-#X connect 33 5 36 5;
-#X connect 33 6 36 6;
-#X connect 35 0 28 0;
-#X connect 35 1 36 2;
-#X connect 36 0 37 0;
-#X connect 38 0 39 0;
-#X connect 39 0 37 0;
-#X connect 45 0 46 0;
-#X connect 46 0 47 0;
-#X connect 47 0 48 0;
-#X connect 48 0 49 0;
-#X connect 49 0 50 0;
-#X connect 50 0 51 0;
-#X connect 51 0 6 0;
-#X connect 51 0 6 1;
diff --git a/desiredata/doc/3.audio.examples/D13.additive.qlist.pd b/desiredata/doc/3.audio.examples/D13.additive.qlist.pd
deleted file mode 100644
index 2c9b3cb7..00000000
--- a/desiredata/doc/3.audio.examples/D13.additive.qlist.pd
+++ /dev/null
@@ -1,47 +0,0 @@
-#N canvas 233 179 667 449 12;
-#X obj 16 182 osc-voice amp1 pit1;
-#X obj 16 206 osc-voice amp2 pit2;
-#X obj 16 230 osc-voice amp3 pit3;
-#X obj 16 254 osc-voice amp4 pit4;
-#X obj 16 278 osc-voice amp5 pit5;
-#X obj 16 302 osc-voice amp6 pit6;
-#X obj 16 326 osc-voice amp7 pit7;
-#X obj 16 350 osc-voice amp8 pit8;
-#X obj 464 343 qlist;
-#X msg 394 185 stop;
-#X msg 524 300 read qlist.txt;
-#X obj 524 255 loadbang;
-#X text 258 164 start;
-#X text 395 161 stop;
-#X text 534 279 reread file;
-#X msg 467 199 rewind;
-#X msg 535 199 next;
-#X msg 251 212 tempo 100 \, bang;
-#X msg 250 188 tempo 1 \, bang;
-#X text 82 11 USING QLIST TO SEQUENCE AN OSCILLATOR BANK;
-#X text 479 178 single step;
-#X obj 532 392 r #;
-#X text 28 49 Here is an eight voice additive synthesis patch controlled
-by a qlist. Open a text editor on the file \, "qlist.txt" \, to see
-how the oscillators' amplitudes and frequencies are specified. The
-abstraction \, "osc-voice" \, shows an effective way to make patches
-react to qlists but also to mousing.;
-#X text 234 391 this is where qlist comments go:;
-#X obj 16 380 output~;
-#X text 394 423 updatged for Pd version 0.39;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 24 0;
-#X connect 7 0 24 1;
-#X connect 9 0 8 0;
-#X connect 10 0 8 0;
-#X connect 11 0 10 0;
-#X connect 15 0 8 0;
-#X connect 16 0 8 0;
-#X connect 17 0 8 0;
-#X connect 18 0 8 0;
diff --git a/desiredata/doc/3.audio.examples/D14.vibrato.pd b/desiredata/doc/3.audio.examples/D14.vibrato.pd
deleted file mode 100644
index 3f4d6ea2..00000000
--- a/desiredata/doc/3.audio.examples/D14.vibrato.pd
+++ /dev/null
@@ -1,104 +0,0 @@
-#N canvas 80 10 709 653 12;
-#X obj 28 258 r trigger;
-#X obj 28 454 *~;
-#X obj 28 482 *~;
-#X floatatom 63 304 3 0 100 0 - - -;
-#X msg 460 493 \; trigger 0;
-#X obj 28 281 unpack;
-#X floatatom 28 304 1 0 100 0 - - -;
-#X obj 27 533 +~ 0.3;
-#X obj 27 559 cos~;
-#X obj 27 507 osc~;
-#X obj 63 323 mtof;
-#X obj 63 345 sqrt;
-#X obj 63 367 sqrt;
-#X text 572 461 <-- octave up;
-#X msg 460 416 \; trigger 1 60;
-#X msg 460 453 \; trigger 1 72;
-#X text 550 494 <-- release;
-#X text 556 512 is optional;
-#X obj 28 424 *~;
-#X obj 237 404 +~ 1;
-#N canvas 0 0 450 300 graph1 0;
-#X array array62 131 float 1;
-#A 0 0.970031 1 0.970031 0.881921 0.740952 0.555571 0.336891 0.0980184
--0.146729 -0.382682 -0.595698 -0.773009 -0.88 -0.9 -0.92 -0.92 -0.85773
--0.707109 -0.514106 -0.290288 -0.0490716 0.195086 0.427551 0.63439
-0.803205 0.86 0.88 0.88 0.88 0.84 0.82 0.471402 0.242986 6.63397e-06
--0.242974 -0.471391 -0.671554 -0.831465 -0.941541 -0.995184 -0.989178
--0.923883 -0.803213 -0.68 -0.42 -0.24 0.1 0.4 0.6 0.7071 0.857723 0.956937
-0.998795 0.980787 0.903994 0.773018 0.595708 0.382694 0.146742 -0.0980052
--0.336878 -0.55556 -0.7 -0.8 -0.88 -0.88 -0.88 -0.84 -0.82 -0.555582
--0.336903 -0.0980316 0.146716 0.38267 0.595687 0.773001 0.903983 0.980782
-0.998796 0.956945 0.857737 0.707119 0.514117 0.290301 0.0490849 -0.195073
--0.427539 -0.63438 -0.803197 -0.923873 -0.989174 -0.995187 -0.94155
--0.83148 -0.671573 -0.471414 -0.242999 -1.99019e-05 0.242961 0.471379
-0.671544 0.831458 0.88 0.9 0.9 0.88 0.803221 0.63441 0.08 -0.14 -0.28
--0.48 -0.64 -0.72 -0.857717 -0.956933 -0.998794 -0.98079 -0.904 -0.773026
--0.595719 -0.382706 -0.146755 0.097992 0.336866 0.555549 0.740934 0.881909
-0.970025 1 0.970038;
-#X coords 0 1 130 -1 200 100 1;
-#X restore 246 508 graph;
-#X obj 237 356 tabosc4~ array62;
-#X floatatom 237 312 3 0 0 0 - - -;
-#X obj 237 333 / 6;
-#X obj 237 380 *~;
-#X floatatom 391 333 3 0 0 0 - - -;
-#X text 236 438 since we'll multiply \,;
-#X text 235 453 vibrato output should;
-#X text 235 470 be centered at 1 \, not 0;
-#X text 273 384 multiply by vib depth;
-#X obj 391 361 / 6923;
-#X text 62 425 apply vibrato;
-#X text 66 453 fourth;
-#X text 69 469 power;
-#X text 97 537 waveform;
-#X text 96 517 simple;
-#X text 457 354 4/(exp(log(2)/1200)-1);
-#X text 461 335 conversion factor is;
-#X text 384 295 vibrato depth;
-#X text 383 312 in cents;
-#X text 228 274 vibrato speed;
-#X text 227 291 in Hertz;
-#X obj 28 392 adsr 0 100 200 100 300;
-#X obj 26 587 output~;
-#X text 88 9 USING ADSRS FOR PORTAMENTO AND ADDING VIBRATO TOO;
-#X text 43 30 Portamento can be treated as a special case of an ADSR
-envelope \, with 100 percent sustain. Vibrato is properly computed
-in units of pitch \, but it's also possible to do the job without having
-to convert from pitch to frequency units at the audio rate. To do this
-we just raise the "pitch" to the fourth power \, so that it acts pseudo-exponentially.
-Rather than add vibrato to the ADSR output \, we multiply a signal
-which controls relative frequency. The relative frequency change is
-one plus an oscillator.;
-#X text 439 626 updated for Pd version 0.39;
-#X text 45 185 The table below holds 6 cycles of vibrato with small
-variations to get a not-exactly-repeating vibrato. We thus have to
-divide vibrato frequency by six. You can just use a sine or triangle
-wave if you prefer.;
-#X text 573 426 <-- middle C;
-#X connect 0 0 5 0;
-#X connect 1 0 2 0;
-#X connect 1 0 2 1;
-#X connect 2 0 9 0;
-#X connect 3 0 10 0;
-#X connect 5 0 6 0;
-#X connect 5 1 3 0;
-#X connect 6 0 42 0;
-#X connect 7 0 8 0;
-#X connect 8 0 43 0;
-#X connect 8 0 43 1;
-#X connect 9 0 7 0;
-#X connect 10 0 11 0;
-#X connect 11 0 12 0;
-#X connect 12 0 42 1;
-#X connect 18 0 1 0;
-#X connect 18 0 1 1;
-#X connect 19 0 18 1;
-#X connect 21 0 24 0;
-#X connect 22 0 23 0;
-#X connect 23 0 21 0;
-#X connect 24 0 19 0;
-#X connect 25 0 30 0;
-#X connect 30 0 24 1;
-#X connect 42 0 18 0;
diff --git a/desiredata/doc/3.audio.examples/E01.spectrum.pd b/desiredata/doc/3.audio.examples/E01.spectrum.pd
deleted file mode 100644
index 6754bda1..00000000
--- a/desiredata/doc/3.audio.examples/E01.spectrum.pd
+++ /dev/null
@@ -1,179 +0,0 @@
-#N canvas 190 29 773 821 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array E01-signal 882 float 0;
-#X coords 0 5 882 -5 200 130 1;
-#X restore 531 41 graph;
-#X obj 40 304 hip~ 5;
-#N canvas 0 0 450 300 graph1 0;
-#X array E01-spectrum 128 float 0;
-#X coords 0 4300 127 -40 257 130 1;
-#X restore 485 226 graph;
-#X text 134 243 <-- click to graph;
-#N canvas 45 83 558 569 fft 0;
-#X obj 19 62 inlet~;
-#X obj 85 214 inlet;
-#X obj 19 92 rfft~;
-#X obj 19 125 *~;
-#X obj 50 125 *~;
-#X obj 19 155 sqrt~;
-#X obj 85 248 tabwrite~ E01-spectrum;
-#X obj 332 109 block~ 4096 1;
-#X obj 19 181 biquad~ 0 0 0 0 1;
-#X text 83 93 Fourier series;
-#X text 88 146 magnitude;
-#X text 86 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 62 signal to analyze;
-#X text 182 166 delay two samples;
-#X text 181 182 for better graphing;
-#X obj 90 425 samplerate~;
-#X obj 90 402 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 90 472 5 0 0 0 - - -;
-#X obj 90 448 / 256;
-#X obj 90 378 loadbang;
-#X floatatom 90 541 5 0 0 0 - - -;
-#X obj 98 494 s fundamental;
-#X obj 90 517 ftom;
-#X text 146 540 <-just out of curiosity \, here's the pitch;
-#X text 14 319 At load time \, calculate a good choice of fundamental
-frequency for showing spectra: the 16th bin in a 4096-point spectrum
-\, so SR*16/4096 or SR/256.;
-#X text 135 216 "bang" into this inlet to graph it;
-#X connect 0 0 2 0;
-#X connect 1 0 6 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 8 0;
-#X connect 8 0 6 0;
-#X connect 16 0 19 0;
-#X connect 17 0 16 0;
-#X connect 18 0 22 0;
-#X connect 18 0 23 0;
-#X connect 19 0 18 0;
-#X connect 20 0 17 0;
-#X connect 23 0 21 0;
-#X restore 51 279 pd fft;
-#X text 531 173 ---- 0.02 seconds ----;
-#X obj 111 244 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 40 332 output~;
-#X obj 111 279 tabwrite~ E01-signal;
-#X text 523 800 updated for Pd version 0.37;
-#X text 516 359 1;
-#X text 550 359 2;
-#X text 582 359 3;
-#X text 614 359 4;
-#X text 647 359 5;
-#X text 677 359 6;
-#X text 708 359 7;
-#X text 484 359 0;
-#X text 520 378 -- partial number --;
-#X text 733 97 0;
-#X obj 42 42 r fundamental;
-#X obj 42 111 osc~;
-#X obj 63 136 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 41 161 *~;
-#X obj 85 111 osc~;
-#X obj 106 136 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 84 161 *~;
-#X obj 128 111 osc~;
-#X obj 149 136 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 127 161 *~;
-#X obj 128 88 * 2;
-#X obj 171 111 osc~;
-#X obj 192 136 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 170 161 *~;
-#X obj 214 111 osc~;
-#X obj 235 136 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 213 161 *~;
-#X obj 257 111 osc~;
-#X obj 278 136 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 256 161 *~;
-#X obj 42 88 * 0;
-#X obj 85 88 * 1;
-#X obj 171 88 * 3;
-#X obj 214 88 * 4;
-#X obj 257 88 * 5;
-#X text 303 136 <-- On/Off;
-#X text 337 152 for each;
-#X text 339 168 partial;
-#X text 595 11 WAVEFORM;
-#X text 578 204 SPECTRUM;
-#X text 25 415 The next series of patches demonstrates various kinds
-of modulation: AM \, waveshaping \, and FM. We will need a tool for
-graphing spectra which is introduced here. In this patch the signal
-to be analyzed is a simple sum of up to six partials of a fundamental
-frequency (which is 172 Hz \, close to F below middle C \, if your
-sample rate happens to be 44100 Hz. The fundamental is chosen to agree
-with the analysis patch ("pd FFT") and is computed within it).;
-#X text 25 546 The partials are numbered 0 through 5 \, where 0 means
-DC \, or zero frequency \, 1 is the fundamental \, and so on. The toggle
-switches allow you to turn them on and off separately. You have to
-press the "click to graph" button to update the two graphs.;
-#X text 745 344 0;
-#X text 743 223 1;
-#X text 744 282 0.5;
-#X text 26 631 The upper graph is just the (time domain) waveform \,
-about four periods long. The lower graph is the magnitude spectrum.
-Its peaks are the magnitudes of the partials. Note that a DC signal
-of amplitude one is considered a partial of magnitude 1 \, but the
-other partials \, which have peak amplitudes of 1 (and RMS 0.707) \,
-have peak magnitudes of only 0.5 in the spectrum.;
-#X obj 41 222 *~ 1;
-#X text 733 37 5;
-#X text 734 157 -5;
-#X text 81 221 sum;
-#X text 96 5 GRAPHING SPECTRA OF AUDIO SIGNALS;
-#X text 24 742 Here we're introducing a new feature: multiple signals
-connected to a signal inlet (as in the "*~ 1") are added. This is the
-most convenient way to sum the six partials.;
-#X connect 1 0 7 0;
-#X connect 1 0 7 1;
-#X connect 6 0 4 1;
-#X connect 6 0 8 0;
-#X connect 20 0 40 0;
-#X connect 20 0 41 0;
-#X connect 20 0 30 0;
-#X connect 20 0 42 0;
-#X connect 20 0 43 0;
-#X connect 20 0 44 0;
-#X connect 21 0 23 0;
-#X connect 22 0 23 1;
-#X connect 23 0 56 0;
-#X connect 24 0 26 0;
-#X connect 25 0 26 1;
-#X connect 26 0 56 0;
-#X connect 27 0 29 0;
-#X connect 28 0 29 1;
-#X connect 29 0 56 0;
-#X connect 30 0 27 0;
-#X connect 31 0 33 0;
-#X connect 32 0 33 1;
-#X connect 33 0 56 0;
-#X connect 34 0 36 0;
-#X connect 35 0 36 1;
-#X connect 36 0 56 0;
-#X connect 37 0 39 0;
-#X connect 38 0 39 1;
-#X connect 39 0 56 0;
-#X connect 40 0 21 0;
-#X connect 41 0 24 0;
-#X connect 42 0 31 0;
-#X connect 43 0 34 0;
-#X connect 44 0 37 0;
-#X connect 56 0 4 0;
-#X connect 56 0 1 0;
-#X connect 56 0 8 0;
diff --git a/desiredata/doc/3.audio.examples/E02.ring.modulation.pd b/desiredata/doc/3.audio.examples/E02.ring.modulation.pd
deleted file mode 100644
index 81004cf2..00000000
--- a/desiredata/doc/3.audio.examples/E02.ring.modulation.pd
+++ /dev/null
@@ -1,197 +0,0 @@
-#N canvas 269 43 755 746 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array E02-signal 882 float 0;
-#X coords 0 5 882 -5 200 130 1;
-#X restore 501 66 graph;
-#X obj 15 370 hip~ 5;
-#N canvas 0 0 450 300 graph1 0;
-#X array E02-spectrum 128 float 0;
-#X coords 0 4300 127 -40 257 130 1;
-#X restore 455 251 graph;
-#N canvas 45 83 558 569 fft 0;
-#X obj 19 61 inlet~;
-#X obj 95 214 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 192 166 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 16 425 samplerate~;
-#X obj 16 402 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 16 472 5 0 0 0 - - -;
-#X obj 16 448 / 256;
-#X obj 16 378 loadbang;
-#X floatatom 16 541 5 0 0 0 - - -;
-#X obj 24 494 s fundamental;
-#X obj 16 517 ftom;
-#X text 14 319 At load time \, calculate a good choice of fundamental
-frequency for showing spectra: the 16th bin in a 4096-point spectrum
-\, so SR*16/4096 or SR/256.;
-#X text 145 216 "bang" into this inlet to graph it;
-#X floatatom 191 480 5 0 0 0 - - -;
-#X obj 191 456 / 4096;
-#X text 187 425 One bin is SR/4096:;
-#X text 72 540 <-just out of curiosity \, here's the fundamental pitch
-;
-#X obj 191 502 s freq-step;
-#X obj 95 248 tabwrite~ E02-spectrum;
-#X obj 20 281 tabwrite~ E02-signal;
-#X connect 0 0 2 0;
-#X connect 0 0 31 0;
-#X connect 1 0 30 0;
-#X connect 1 0 31 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 30 0;
-#X connect 15 0 18 0;
-#X connect 15 0 26 0;
-#X connect 16 0 15 0;
-#X connect 17 0 21 0;
-#X connect 17 0 22 0;
-#X connect 18 0 17 0;
-#X connect 19 0 16 0;
-#X connect 22 0 20 0;
-#X connect 25 0 29 0;
-#X connect 26 0 25 0;
-#X restore 23 343 pd fft;
-#X text 501 198 ---- 0.02 seconds ----;
-#X obj 84 344 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 15 398 output~;
-#X text 501 720 updated for Pd version 0.37;
-#X text 486 384 1;
-#X text 520 384 2;
-#X text 552 384 3;
-#X text 584 384 4;
-#X text 617 384 5;
-#X text 647 384 6;
-#X text 678 384 7;
-#X text 454 384 0;
-#X text 490 403 -- partial number --;
-#X text 703 120 0;
-#X obj 18 32 r fundamental;
-#X obj 18 94 osc~;
-#X obj 39 119 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 17 144 *~;
-#X obj 61 94 osc~;
-#X obj 82 119 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 60 144 *~;
-#X obj 104 94 osc~;
-#X obj 125 119 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 103 144 *~;
-#X obj 104 71 * 2;
-#X obj 147 94 osc~;
-#X obj 168 119 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 146 144 *~;
-#X obj 190 94 osc~;
-#X obj 211 119 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 189 144 *~;
-#X obj 233 94 osc~;
-#X obj 254 119 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 232 144 *~;
-#X obj 18 71 * 0;
-#X obj 61 71 * 1;
-#X obj 147 71 * 3;
-#X obj 190 71 * 4;
-#X obj 233 71 * 5;
-#X text 282 118 <-- On/Off;
-#X text 565 46 WAVEFORM;
-#X text 548 229 SPECTRUM;
-#X text 715 367 0;
-#X text 713 246 1;
-#X text 714 305 0.5;
-#X text 703 60 5;
-#X text 704 180 -5;
-#X obj 16 239 *~;
-#X text 300 102 partials;
-#X obj 154 270 osc~;
-#X floatatom 154 210 3 0 200 0 - - -;
-#X obj 154 239 *;
-#X obj 187 239 r freq-step;
-#X text 226 177 modulation;
-#X text 222 192 frequency in;
-#X text 185 209 <-- "steps" of f/16;
-#X text 97 -1 RING MODULATION: multiplying a complex tone by a sinusoid
-;
-#X obj 84 299 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X text 107 343 <-- graph once;
-#X obj 84 321 metro 500;
-#X text 107 298 <-- graph repeatedly;
-#X text 35 463 Now we ring modulate the signal by multiplying it by
-another sinusoid. The modulation frequency is controlled in steps of
-f/16 where "f" is the fundamental frequency \, giving roughly 11 Hz.
-per step. Note that if the modulation frequency is set to zero we can't
-predict the overall amplitude because it depends on what phase the
-modulation oscillator happened to have at that moment.;
-#X text 32 579 If you choose a multiple of the fundamental as a modulation
-frequency (16 \, 32 \, 48 \, 64 \, ... "steps") the result is again
-periodic at the original frequency. If you select a half-integer times
-the fundamental (8 \, 24 \, 40 \, ... steps) the pitch drops by an
-octave and you get only odd partials. For most other settings you'll
-get an inharmonic complex of tones. These are sometimes heard as separate
-pitches and other times they seem to fuse into a single timbre with
-indeterminate pitch.;
-#X connect 1 0 6 0;
-#X connect 1 0 6 1;
-#X connect 5 0 3 1;
-#X connect 18 0 38 0;
-#X connect 18 0 39 0;
-#X connect 18 0 28 0;
-#X connect 18 0 40 0;
-#X connect 18 0 41 0;
-#X connect 18 0 42 0;
-#X connect 19 0 21 0;
-#X connect 20 0 21 1;
-#X connect 21 0 51 0;
-#X connect 22 0 24 0;
-#X connect 23 0 24 1;
-#X connect 24 0 51 0;
-#X connect 25 0 27 0;
-#X connect 26 0 27 1;
-#X connect 27 0 51 0;
-#X connect 28 0 25 0;
-#X connect 29 0 31 0;
-#X connect 30 0 31 1;
-#X connect 31 0 51 0;
-#X connect 32 0 34 0;
-#X connect 33 0 34 1;
-#X connect 34 0 51 0;
-#X connect 35 0 37 0;
-#X connect 36 0 37 1;
-#X connect 37 0 51 0;
-#X connect 38 0 19 0;
-#X connect 39 0 22 0;
-#X connect 40 0 29 0;
-#X connect 41 0 32 0;
-#X connect 42 0 35 0;
-#X connect 51 0 3 0;
-#X connect 51 0 1 0;
-#X connect 53 0 51 1;
-#X connect 54 0 55 0;
-#X connect 55 0 53 0;
-#X connect 56 0 55 1;
-#X connect 61 0 63 0;
-#X connect 63 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/E03.octave.divider.pd b/desiredata/doc/3.audio.examples/E03.octave.divider.pd
deleted file mode 100644
index 251e4561..00000000
--- a/desiredata/doc/3.audio.examples/E03.octave.divider.pd
+++ /dev/null
@@ -1,141 +0,0 @@
-#N canvas 159 17 793 665 12;
-#X obj 477 135 loadbang;
-#X obj 31 289 hip~ 5;
-#X obj 477 53 adc~ 1;
-#X obj 477 190 soundfiler;
-#X obj 32 322 output~;
-#X text 544 646 updated for Pd version 0.37;
-#X obj 478 100 tabwrite~ E03-table;
-#X msg 477 162 read ../sound/voice.wav E03-table;
-#X obj 117 64 fiddle~ 2048;
-#X obj 118 95 unpack;
-#X obj 111 199 osc~;
-#X obj 118 119 moses 1;
-#X obj 77 199 *~;
-#X obj 145 147 mtof;
-#X obj 145 170 *;
-#X msg 194 125 0.5;
-#X floatatom 194 154 3 0 0 0 - - -;
-#X msg 232 125 15;
-#N canvas 0 0 446 202 /SUBPATCH/ 0;
-#X obj 261 30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 100 20 inlet~;
-#X obj 99 87 *~;
-#X obj 98 159 outlet~;
-#X text 381 181 corner;
-#X connect 0 0 2 1;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X coords 0 0 100 100 40 18 1;
-#X restore 78 248 pd;
-#N canvas 0 0 446 202 /SUBPATCH/ 0;
-#X obj 261 30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 100 20 inlet~;
-#X obj 99 87 *~;
-#X obj 98 159 outlet~;
-#X text 381 181 corner;
-#X connect 0 0 2 1;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X coords 0 0 100 100 40 18 1;
-#X restore 32 248 pd;
-#X obj 78 222 *~ 2;
-#X obj 194 100 loadbang;
-#N canvas 414 195 613 302 looper 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array E03-table 44103 float 0;
-#X coords 0 1.02 44103 -1.02 200 130 1;
-#X restore 349 22 graph;
-#X text 347 161 ---- 44103 samples ----;
-#X obj 35 77 +~ 1;
-#X obj 35 25 phasor~ 1;
-#X obj 35 50 *~ 44100;
-#X obj 35 106 tabread4~ E03-table;
-#X obj 35 132 outlet~;
-#X text 46 238 one-second sample reader loop. You can replace this
-with an adc~ if you want to go live.;
-#X connect 2 0 5 0;
-#X connect 3 0 4 0;
-#X connect 4 0 2 0;
-#X connect 5 0 6 0;
-#X restore 118 18 pd looper;
-#X text 561 141 re-read original sample;
-#X obj 489 77 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#N canvas 300 203 758 306 delay 0;
-#X obj 15 222 outlet~;
-#X obj 14 21 inlet~;
-#X obj 15 102 loadbang;
-#X obj 14 49 delwrite~ E03-del 40;
-#X obj 15 195 delread~ E03-del;
-#X obj 15 152 expr 1000*1024/$f1;
-#X obj 15 128 samplerate~;
-#X text 208 47 write to delay line which has enough memory to hold
-40 msec;
-#X text 125 128 get sample rate at load time;
-#X text 185 152 divide 1024 by sample rate to give time in seconds
-\; multiply by 1000 to convert to milliseconds.;
-#X text 168 197 read from the delay line at the calculater delay;
-#X text 317 268 1024-sample delay;
-#X connect 1 0 3 0;
-#X connect 2 0 6 0;
-#X connect 4 0 0 0;
-#X connect 5 0 4 0;
-#X connect 6 0 5 0;
-#X restore 31 71 pd delay;
-#X text 242 4 OCTAVE DIVIDING VIA RING MODULATION;
-#X text 508 75 <-- record a sample;
-#X text 265 125 <-- choose an effect;
-#X text 157 231 on/off for original;
-#X text 128 247 <--and processed sounds;
-#X text 196 274 This patch demonstrates using ring modulation to alias
-a sound down one octave. The ring modulation itself ("osc~" and multiplier)
-is easy. (We step it up by a factor of 2 to balance the original better.)
-;
-#X text 198 340 Harder is getting the fundamental frequency of the
-original sound. We do this with the complicated "fiddle~" object \,
-which puts out a stream of analysis data for an incoming signal. The
-"2048" argument specifies the analysis window size. The analysis is
-most closely aligned with what the sound was doing at the middle of
-the window \, i.e. \, 1024 samples ago. The "pd delay" window delays
-the signal itself 1024 samples so it will be as tightly synchronized
-with the analysis data as possible. (If you're doing this on a real-time
-input \, you might drop the delay and settle for less perfect synchronization.)
-;
-#X text 198 512 About fiddle~ \, suffice it to say that the third outlet
-contains (pitch \, amplitude) pairs. We unpack the pitch and strip
-out any zeros (when fiddle~ fails to find a pitch it outputs zero but
-we'd rather stick with the most recent good one). This is converted
-from MIDI to Hertz \, and multiplied by 1/2 to control the modulation
-oscillator. (You can also try large-ish integers which leave the pitch
-intact but introduce funny formants.);
-#X msg 406 237 read ../../saucisse.wav E03-table;
-#X obj 25 16 adc~ 1;
-#X connect 0 0 7 0;
-#X connect 1 0 4 0;
-#X connect 1 0 4 1;
-#X connect 2 0 6 0;
-#X connect 7 0 3 0;
-#X connect 8 2 9 0;
-#X connect 9 0 11 0;
-#X connect 10 0 12 1;
-#X connect 11 1 13 0;
-#X connect 12 0 20 0;
-#X connect 13 0 14 0;
-#X connect 14 0 10 0;
-#X connect 15 0 16 0;
-#X connect 16 0 14 1;
-#X connect 17 0 16 0;
-#X connect 18 0 1 0;
-#X connect 19 0 1 0;
-#X connect 20 0 18 0;
-#X connect 21 0 15 0;
-#X connect 22 0 8 0;
-#X connect 22 0 25 0;
-#X connect 24 0 6 0;
-#X connect 25 0 19 0;
-#X connect 25 0 12 0;
-#X connect 34 0 3 0;
-#X connect 35 0 25 0;
diff --git a/desiredata/doc/3.audio.examples/E04.difference.tone.pd b/desiredata/doc/3.audio.examples/E04.difference.tone.pd
deleted file mode 100644
index 7272222b..00000000
--- a/desiredata/doc/3.audio.examples/E04.difference.tone.pd
+++ /dev/null
@@ -1,45 +0,0 @@
-#N canvas 266 135 637 523 12;
-#X obj 19 128 +~;
-#X obj 18 209 output~;
-#X text 141 3 NONLINEAR DISTORTION AND DIFFERENCE TONES;
-#X obj 154 171 / 100;
-#X floatatom 154 151 5 0 500 0 - - -;
-#X obj 18 181 clip~ -1 1;
-#X floatatom 42 81 5 0 0 0 - - -;
-#X obj 42 103 osc~ 200;
-#X obj 18 155 *~;
-#X obj 42 35 loadbang;
-#X msg 154 127 50;
-#X obj 154 103 loadbang;
-#X text 385 494 updated for Pd version 0.37;
-#X text 94 80 <-- frequency of second tone;
-#X text 209 151 <-- before clipping;
-#X text 234 134 amplitude of sum;
-#X obj 18 9 osc~ 300;
-#X msg 42 58 225;
-#X text 99 226 This patch demonstrates how nonlinear distortion (also
-known as "waveshaping") can create difference tones from a pair of
-sinusoids. The sinusoids are initially tuned to 225 and 300 Hz \, a
-musical fourth \, and have amplitude of 50 percent (0.5) so that the
-sum is always less than 1 in absolute value. At these settings the
-"clip~" object passes its input through unchanged.;
-#X text 100 344 If the amplitude rises above 50 percent \, the clip~
-object starts altering the signal nonlinearly \, and the result is
-no longer as if the two sinusoids had been processed separately. Instead
-\, they "intermodulate" \, finding a common subharmonic if one exists.
-At 300 and 225 Hz \, the subharmonic is at 75 \, two octaves below
-the upper tone and a twelveth below the lower one. Change the frequency
-of the second tone and you will hear a variety of effects.;
-#X connect 0 0 8 0;
-#X connect 3 0 8 1;
-#X connect 4 0 3 0;
-#X connect 5 0 1 0;
-#X connect 5 0 1 1;
-#X connect 6 0 7 0;
-#X connect 7 0 0 1;
-#X connect 8 0 5 0;
-#X connect 9 0 17 0;
-#X connect 10 0 4 0;
-#X connect 11 0 10 0;
-#X connect 16 0 0 0;
-#X connect 17 0 6 0;
diff --git a/desiredata/doc/3.audio.examples/E05.chebychev.pd b/desiredata/doc/3.audio.examples/E05.chebychev.pd
deleted file mode 100644
index 90c628db..00000000
--- a/desiredata/doc/3.audio.examples/E05.chebychev.pd
+++ /dev/null
@@ -1,257 +0,0 @@
-#N canvas 224 60 657 571 12;
-#X obj 23 269 output~;
-#X obj 45 74 / 100;
-#X floatatom 45 54 5 0 100 0 - - -;
-#X obj 23 144 *~;
-#X text 403 539 updated for Pd version 0.37;
-#X obj 22 29 osc~ 220;
-#X obj 45 97 pack 0 50;
-#X obj 45 121 line~;
-#X text 97 54 <-- index in;
-#X text 117 68 hundredths;
-#X obj 23 169 *~ 128;
-#X obj 23 217 tabread4~ E05-tab;
-#N canvas 0 0 450 300 graph1 0;
-#X array E05-tab 259 float 1;
-#A 0 -1.20148 -1 -0.810724 -0.63326 -0.467216 -0.31221 -0.167866 -0.0338144
-0.0903053 0.204849 0.310166 0.406597 0.494477 0.574137 0.645895 0.71007
-0.766969 0.816895 0.860145 0.897008 0.927771 0.952708 0.972093 0.98619
-0.995261 0.999557 0.999329 0.994816 0.986257 0.97388 0.957912 0.938572
-0.916074 0.890625 0.86243 0.831684 0.798582 0.76331 0.726049 0.686977
-0.646266 0.60408 0.560583 0.515931 0.470276 0.423765 0.37654 0.328738
-0.280493 0.231934 0.183183 0.13436 0.0855808 0.0369554 -0.01141 -0.0594134
--0.106956 -0.153946 -0.200292 -0.245909 -0.290715 -0.334633 -0.377589
--0.419512 -0.460337 -0.5 -0.538443 -0.57561 -0.611449 -0.645912 -0.678953
--0.710532 -0.740609 -0.76915 -0.796122 -0.821497 -0.845248 -0.867354
--0.887794 -0.906551 -0.923612 -0.938965 -0.952601 -0.964516 -0.974704
--0.983167 -0.989906 -0.994925 -0.99823 -0.999832 -0.999741 -0.997972
--0.994539 -0.98946 -0.982757 -0.97445 -0.964564 -0.953125 -0.94016
--0.925699 -0.909772 -0.892414 -0.873658 -0.85354 -0.832098 -0.809372
--0.785401 -0.760228 -0.733895 -0.706446 -0.677928 -0.648387 -0.61787
--0.586426 -0.554105 -0.520957 -0.487033 -0.452386 -0.417069 -0.381135
--0.344638 -0.307632 -0.270174 -0.232319 -0.194122 -0.15564 -0.11693
--0.0780487 -0.039053 0 0.039053 0.0780487 0.11693 0.15564 0.194122
-0.232319 0.270174 0.307632 0.344638 0.381135 0.417069 0.452386 0.487033
-0.520957 0.554105 0.586426 0.61787 0.648387 0.677928 0.706446 0.733895
-0.760228 0.785401 0.809372 0.832098 0.85354 0.873658 0.892414 0.909772
-0.925699 0.94016 0.953125 0.964564 0.97445 0.982757 0.98946 0.994539
-0.997972 0.999741 0.999832 0.99823 0.994925 0.989906 0.983167 0.974704
-0.964516 0.952601 0.938965 0.923612 0.906551 0.887794 0.867354 0.845248
-0.821497 0.796122 0.76915 0.740609 0.710532 0.678953 0.645912 0.611449
-0.57561 0.538443 0.5 0.460337 0.419512 0.377589 0.334633 0.290715 0.245909
-0.200292 0.153946 0.106956 0.0594134 0.01141 -0.0369554 -0.0855808
--0.13436 -0.183183 -0.231934 -0.280493 -0.328738 -0.37654 -0.423765
--0.470276 -0.515931 -0.560583 -0.60408 -0.646266 -0.686977 -0.726049
--0.76331 -0.798582 -0.831684 -0.86243 -0.890625 -0.916074 -0.938572
--0.957912 -0.97388 -0.986257 -0.994816 -0.999329 -0.999557 -0.995261
--0.98619 -0.972093 -0.952708 -0.927771 -0.897008 -0.860145 -0.816895
--0.766969 -0.71007 -0.645895 -0.574137 -0.494477 -0.406597 -0.310166
--0.204849 -0.0903053 0.0338144 0.167866 0.31221 0.467216 0.63326 0.810724
-1 1.20148;
-#X coords 0 1 258 -1 200 140 1;
-#X restore 262 46 graph;
-#X text 497 28 subpatch to;
-#N canvas 113 0 849 700 make-table 0;
-#X obj 141 304 t b b;
-#X obj 213 329 f;
-#X obj 251 329 + 1;
-#X msg 235 306 0;
-#X obj 141 327 until;
-#X obj 213 359 t f f;
-#X obj 114 436 tabwrite E05-tab;
-#X obj 140 355 sel 258;
-#X text 203 172 normalize from -1 to 1;
-#X obj 141 285 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 88 386 expr ($f1-129)/128;
-#X obj 141 262 inlet;
-#X obj 171 534 t b b;
-#X obj 243 559 f;
-#X obj 281 559 + 1;
-#X msg 265 536 0;
-#X obj 171 557 until;
-#X obj 243 589 t f f;
-#X obj 144 666 tabwrite E05-tab;
-#X obj 170 585 sel 258;
-#X obj 171 515 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 118 616 expr ($f1-129)/128;
-#X obj 171 492 inlet;
-#X obj 444 228 t b b;
-#X obj 516 253 f;
-#X obj 554 253 + 1;
-#X msg 538 230 0;
-#X obj 444 251 until;
-#X obj 516 283 t f f;
-#X obj 417 360 tabwrite E05-tab;
-#X obj 443 279 sel 258;
-#X obj 391 334 expr 16*$f1*$f1*$f1*$f1*$f1-20*$f1*$f1*$f1+5*$f1;
-#X obj 444 209 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 391 310 expr ($f1-129)/128;
-#X obj 444 186 inlet;
-#X obj 504 476 t b b;
-#X obj 576 501 f;
-#X obj 614 501 + 1;
-#X msg 598 478 0;
-#X obj 504 499 until;
-#X obj 576 531 t f f;
-#X obj 477 624 tabwrite E05-tab;
-#X obj 503 527 sel 258;
-#X obj 504 457 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 448 558 expr ($f1-129)/128;
-#X obj 504 434 inlet;
-#X obj 88 410 expr 4*$f1*$f1*$f1-3*$f1;
-#X obj 118 640 expr 8*$f1*$f1*$f1*$f1-8*$f1*$f1+1;
-#X obj 448 582 expr 32*$f1*$f1*$f1*$f1*$f1*$f1 -48*$f1*$f1*$f1*$f1+18*$f1*$f1-1
-;
-#X text 641 622 6th C.P. and basta.;
-#X obj 83 92 t b b;
-#X obj 155 117 f;
-#X obj 193 117 + 1;
-#X msg 177 94 0;
-#X obj 83 115 until;
-#X obj 155 147 t f f;
-#X obj 56 224 tabwrite E05-tab;
-#X obj 82 143 sel 258;
-#X obj 83 73 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 30 174 expr ($f1-129)/128;
-#X obj 83 50 inlet;
-#X obj 30 198 expr 2*$f1*$f1-1;
-#X text 203 198 2nd C.P.;
-#X text 309 410 3rd C.P.;
-#X text 331 660 4th C.P.;
-#X text 613 357 5th C.P.;
-#X text 259 51 This patch computes Chebychev polynomials and stores
-them in a wavetable for use later.;
-#X connect 0 0 4 0;
-#X connect 0 1 3 0;
-#X connect 1 0 2 0;
-#X connect 1 0 5 0;
-#X connect 1 0 7 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 1;
-#X connect 4 0 1 0;
-#X connect 5 0 10 0;
-#X connect 5 1 6 1;
-#X connect 7 0 4 1;
-#X connect 9 0 0 0;
-#X connect 10 0 46 0;
-#X connect 11 0 9 0;
-#X connect 12 0 16 0;
-#X connect 12 1 15 0;
-#X connect 13 0 14 0;
-#X connect 13 0 17 0;
-#X connect 13 0 19 0;
-#X connect 14 0 13 1;
-#X connect 15 0 13 1;
-#X connect 16 0 13 0;
-#X connect 17 0 21 0;
-#X connect 17 1 18 1;
-#X connect 19 0 16 1;
-#X connect 20 0 12 0;
-#X connect 21 0 47 0;
-#X connect 22 0 20 0;
-#X connect 23 0 27 0;
-#X connect 23 1 26 0;
-#X connect 24 0 25 0;
-#X connect 24 0 28 0;
-#X connect 24 0 30 0;
-#X connect 25 0 24 1;
-#X connect 26 0 24 1;
-#X connect 27 0 24 0;
-#X connect 28 0 33 0;
-#X connect 28 1 29 1;
-#X connect 30 0 27 1;
-#X connect 31 0 29 0;
-#X connect 32 0 23 0;
-#X connect 33 0 31 0;
-#X connect 34 0 32 0;
-#X connect 35 0 39 0;
-#X connect 35 1 38 0;
-#X connect 36 0 37 0;
-#X connect 36 0 40 0;
-#X connect 36 0 42 0;
-#X connect 37 0 36 1;
-#X connect 38 0 36 1;
-#X connect 39 0 36 0;
-#X connect 40 0 44 0;
-#X connect 40 1 41 1;
-#X connect 42 0 39 1;
-#X connect 43 0 35 0;
-#X connect 44 0 48 0;
-#X connect 45 0 43 0;
-#X connect 46 0 6 0;
-#X connect 47 0 18 0;
-#X connect 48 0 41 0;
-#X connect 50 0 54 0;
-#X connect 50 1 53 0;
-#X connect 51 0 52 0;
-#X connect 51 0 55 0;
-#X connect 51 0 57 0;
-#X connect 52 0 51 1;
-#X connect 53 0 51 1;
-#X connect 54 0 51 0;
-#X connect 55 0 59 0;
-#X connect 55 1 56 1;
-#X connect 57 0 54 1;
-#X connect 58 0 50 0;
-#X connect 59 0 61 0;
-#X connect 60 0 58 0;
-#X connect 61 0 56 0;
-#X restore 489 146 pd make-table;
-#X obj 489 126 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 517 126 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 545 126 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 573 126 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 600 126 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 497 45 calculate;
-#X text 495 64 Chebychev;
-#X text 496 83 polynomials;
-#X text 490 107 2;
-#X text 517 107 3;
-#X text 546 107 4;
-#X text 572 108 5;
-#X text 601 107 6;
-#X text 134 2 waveshaping with Chebychev polynomials;
-#X obj 23 193 +~ 129;
-#X obj 23 242 hip~ 5;
-#X text 107 256 This patch demonstrates using Chebychev polynomials
-(of the first kind) to generate pure harmonics using waveshaping. The
-pure harmonic only comes out when the index is one (top of the scale).
-Smaller indices will give various mixes of harmonics. The table initially
-holds the fifth Chebychev polynomial \, so you can get the fifth harmonic.
-;
-#X text 106 355 There is an audible "rolling" sound as the index changes
-for the higher degree polynomials \, because the amplitudes of the
-lower partials can rise and fall several times apiece as the index
-rises from zero to one.;
-#X text 105 422 Indices greater than one will try to read values outside
-the table (which would be clipped appropriately). Anyway \, the polynomials
-increase rapidly in value outside the interval from -1 to 1 that we
-are using here.;
-#X text 106 491 When you get tired of Chebychef polynomials you can
-draw your own functions by hand and/or try other formulas.;
-#X connect 1 0 6 0;
-#X connect 2 0 1 0;
-#X connect 3 0 10 0;
-#X connect 5 0 3 0;
-#X connect 6 0 7 0;
-#X connect 7 0 3 1;
-#X connect 10 0 29 0;
-#X connect 11 0 30 0;
-#X connect 15 0 14 0;
-#X connect 16 0 14 1;
-#X connect 17 0 14 2;
-#X connect 18 0 14 3;
-#X connect 19 0 14 4;
-#X connect 29 0 11 0;
-#X connect 30 0 0 0;
-#X connect 30 0 0 1;
diff --git a/desiredata/doc/3.audio.examples/E06.exponential.pd b/desiredata/doc/3.audio.examples/E06.exponential.pd
deleted file mode 100644
index 02fe058b..00000000
--- a/desiredata/doc/3.audio.examples/E06.exponential.pd
+++ /dev/null
@@ -1,335 +0,0 @@
-#N canvas 88 112 754 729 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array E06-signal 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 509 46 graph;
-#X obj 14 265 hip~ 5;
-#N canvas 0 0 450 300 graph1 0;
-#X array E06-spectrum 128 float 0;
-#X coords 0 4300 127 -40 257 130 1;
-#X restore 463 222 graph;
-#N canvas 45 83 558 569 fft 0;
-#X obj 19 61 inlet~;
-#X obj 208 212 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 193 164 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 16 425 samplerate~;
-#X obj 16 402 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 16 472 5 0 0 0 - - -;
-#X obj 16 448 / 256;
-#X obj 16 378 loadbang;
-#X floatatom 16 541 5 0 0 0 - - -;
-#X obj 24 494 s fundamental;
-#X obj 16 517 ftom;
-#X text 14 319 At load time \, calculate a good choice of fundamental
-frequency for showing spectra: the 16th bin in a 4096-point spectrum
-\, so SR*16/4096 or SR/256.;
-#X floatatom 191 480 5 0 0 0 - - -;
-#X obj 191 456 / 4096;
-#X text 187 425 One bin is SR/4096:;
-#X obj 191 502 s freq-step;
-#X obj 208 295 tabwrite~ E06-spectrum;
-#X obj 19 295 tabwrite~ E06-signal;
-#X text 71 540 <-fundamental pitch;
-#X obj 220 257 metro 500;
-#X obj 220 234 inlet;
-#X text 273 232 toggle to graph repeatedly;
-#X text 262 212 bang to graph once;
-#X connect 0 0 2 0;
-#X connect 0 0 29 0;
-#X connect 1 0 28 0;
-#X connect 1 0 29 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 28 0;
-#X connect 15 0 18 0;
-#X connect 15 0 25 0;
-#X connect 16 0 15 0;
-#X connect 17 0 21 0;
-#X connect 17 0 22 0;
-#X connect 18 0 17 0;
-#X connect 19 0 16 0;
-#X connect 22 0 20 0;
-#X connect 24 0 27 0;
-#X connect 25 0 24 0;
-#X connect 31 0 28 0;
-#X connect 31 0 29 0;
-#X connect 32 0 31 0;
-#X restore 22 238 pd fft;
-#X text 509 178 ---- 0.02 seconds ----;
-#X obj 82 217 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 14 293 output~;
-#X text 499 708 updated for Pd version 0.37;
-#X text 494 355 1;
-#X text 528 355 2;
-#X text 560 355 3;
-#X text 592 355 4;
-#X text 625 355 5;
-#X text 655 355 6;
-#X text 686 355 7;
-#X text 462 355 0;
-#X text 496 372 -- partial number --;
-#X text 711 100 0;
-#X obj 12 30 r fundamental;
-#X obj 12 57 osc~;
-#X text 573 26 WAVEFORM;
-#X text 557 204 SPECTRUM;
-#X text 723 338 0;
-#X text 721 217 1;
-#X text 722 276 0.5;
-#X obj 82 238 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#N canvas 0 0 450 300 graph1 0;
-#X array E06-tab 1003 float 1;
-#A 0 1.01005 1 0.99005 0.980199 0.970446 0.960789 0.951229 0.941765
-0.932394 0.923116 0.913931 0.904837 0.895834 0.88692 0.878095 0.869358
-0.860708 0.852144 0.843665 0.83527 0.826959 0.818731 0.810584 0.802519
-0.794534 0.786628 0.778801 0.771052 0.76338 0.755784 0.748264 0.740818
-0.733447 0.726149 0.718924 0.71177 0.704688 0.697676 0.690734 0.683861
-0.677057 0.67032 0.66365 0.657047 0.650509 0.644036 0.637628 0.631284
-0.625002 0.618783 0.612626 0.606531 0.600496 0.594521 0.588605 0.582748
-0.57695 0.571209 0.565525 0.559898 0.554327 0.548812 0.543351 0.537944
-0.532592 0.527292 0.522046 0.516851 0.511709 0.506617 0.501576 0.496585
-0.491644 0.486752 0.481909 0.477114 0.472367 0.467666 0.463013 0.458406
-0.453845 0.449329 0.444858 0.440432 0.436049 0.431711 0.427415 0.423162
-0.418952 0.414783 0.410656 0.40657 0.402524 0.398519 0.394554 0.390628
-0.386741 0.382893 0.379083 0.375311 0.371577 0.367879 0.364219 0.360595
-0.357007 0.353455 0.349938 0.346456 0.343008 0.339595 0.336216 0.332871
-0.329559 0.32628 0.323033 0.319819 0.316637 0.313486 0.310367 0.307279
-0.304221 0.301194 0.298197 0.29523 0.292293 0.289384 0.286505 0.283654
-0.280832 0.278037 0.275271 0.272532 0.26982 0.267135 0.264477 0.261846
-0.25924 0.256661 0.254107 0.251579 0.249075 0.246597 0.244143 0.241714
-0.239309 0.236928 0.23457 0.232236 0.229925 0.227638 0.225373 0.22313
-0.22091 0.218712 0.216536 0.214381 0.212248 0.210136 0.208045 0.205975
-0.203926 0.201897 0.199888 0.197899 0.19593 0.19398 0.19205 0.190139
-0.188247 0.186374 0.18452 0.182684 0.180866 0.179066 0.177284 0.17552
-0.173774 0.172045 0.170333 0.168638 0.16696 0.165299 0.163654 0.162026
-0.160414 0.158817 0.157237 0.155673 0.154124 0.15259 0.151072 0.149569
-0.14808 0.146607 0.145148 0.143704 0.142274 0.140858 0.139457 0.138069
-0.136695 0.135335 0.133989 0.132655 0.131336 0.130029 0.128735 0.127454
-0.126186 0.12493 0.123687 0.122456 0.121238 0.120032 0.118837 0.117655
-0.116484 0.115325 0.114178 0.113042 0.111917 0.110803 0.109701 0.108609
-0.107528 0.106459 0.105399 0.10435 0.103312 0.102284 0.101266 0.100259
-0.0992613 0.0982736 0.0972958 0.0963276 0.0953692 0.0944202 0.0934807
-0.0925506 0.0916297 0.0907179 0.0898153 0.0889216 0.0880368 0.0871608
-0.0862936 0.085435 0.0845849 0.0837432 0.08291 0.082085 0.0812682 0.0804596
-0.079659 0.0788664 0.0780817 0.0773047 0.0765356 0.075774 0.07502 0.0742736
-0.0735345 0.0728029 0.0720785 0.0713613 0.0706512 0.0699482 0.0692522
-0.0685631 0.0678809 0.0672055 0.0665368 0.0658748 0.0652193 0.0645703
-0.0639279 0.0632918 0.062662 0.0620385 0.0614212 0.0608101 0.060205
-0.0596059 0.0590129 0.0584257 0.0578443 0.0572688 0.0566989 0.0561348
-0.0555762 0.0550232 0.0544757 0.0539337 0.053397 0.0528657 0.0523397
-0.0518189 0.0513033 0.0507928 0.0502874 0.0497871 0.0492917 0.0488012
-0.0483156 0.0478349 0.0473589 0.0468877 0.0464212 0.0459593 0.045502
-0.0450492 0.044601 0.0441572 0.0437178 0.0432828 0.0428521 0.0424257
-0.0420036 0.0415857 0.0411719 0.0407622 0.0403566 0.0399551 0.0395575
-0.0391639 0.0387742 0.0383884 0.0380064 0.0376283 0.0372538 0.0368832
-0.0365162 0.0361528 0.0357931 0.035437 0.0350844 0.0347353 0.0343896
-0.0340475 0.0337087 0.0333733 0.0330412 0.0327124 0.0323869 0.0320647
-0.0317456 0.0314298 0.031117 0.0308074 0.0305009 0.0301974 0.0298969
-0.0295994 0.0293049 0.0290133 0.0287246 0.0284388 0.0281559 0.0278757
-0.0275983 0.0273237 0.0270518 0.0267827 0.0265162 0.0262523 0.0259911
-0.0257325 0.0254765 0.025223 0.024972 0.0247235 0.0244775 0.024234
-0.0239928 0.0237541 0.0235177 0.0232837 0.0230521 0.0228227 0.0225956
-0.0223708 0.0221482 0.0219278 0.0217096 0.0214936 0.0212797 0.021068
-0.0208584 0.0206508 0.0204453 0.0202419 0.0200405 0.0198411 0.0196437
-0.0194482 0.0192547 0.0190631 0.0188734 0.0186856 0.0184997 0.0183156
-0.0181334 0.017953 0.0177743 0.0175975 0.0174224 0.017249 0.0170774
-0.0169075 0.0167392 0.0165727 0.0164078 0.0162445 0.0160829 0.0159229
-0.0157644 0.0156076 0.0154523 0.0152985 0.0151463 0.0149956 0.0148464
-0.0146986 0.0145524 0.0144076 0.0142642 0.0141223 0.0139818 0.0138427
-0.0137049 0.0135686 0.0134336 0.0132999 0.0131675 0.0130365 0.0129068
-0.0127784 0.0126512 0.0125254 0.0124007 0.0122773 0.0121552 0.0120342
-0.0119145 0.0117959 0.0116786 0.0115624 0.0114473 0.0113334 0.0112206
-0.011109 0.0109985 0.010889 0.0107807 0.0106734 0.0105672 0.0104621
-0.010358 0.0102549 0.0101529 0.0100518 0.00995182 0.0098528 0.00975476
-0.0096577 0.0095616 0.00946646 0.00937227 0.00927902 0.00918669 0.00909528
-0.00900478 0.00891518 0.00882647 0.00873865 0.0086517 0.00856561 0.00848038
-0.008396 0.00831246 0.00822975 0.00814786 0.00806679 0.00798652 0.00790705
-0.00782838 0.00775048 0.00767337 0.00759701 0.00752142 0.00744658 0.00737249
-0.00729913 0.0072265 0.0071546 0.00708341 0.00701293 0.00694315 0.00687406
-0.00680567 0.00673795 0.0066709 0.00660453 0.00653881 0.00647375 0.00640933
-0.00634556 0.00628242 0.00621991 0.00615802 0.00609675 0.00603608 0.00597602
-0.00591656 0.00585769 0.0057994 0.0057417 0.00568457 0.00562801 0.00557201
-0.00551657 0.00546167 0.00540733 0.00535353 0.00530026 0.00524752 0.0051953
-0.00514361 0.00509243 0.00504176 0.00499159 0.00494193 0.00489275 0.00484407
-0.00479587 0.00474815 0.00470091 0.00465413 0.00460782 0.00456197 0.00451658
-0.00447164 0.00442715 0.0043831 0.00433948 0.00429631 0.00425356 0.00421123
-0.00416933 0.00412785 0.00408677 0.00404611 0.00400585 0.00396599 0.00392653
-0.00388746 0.00384878 0.00381048 0.00377257 0.00373503 0.00369786 0.00366107
-0.00362464 0.00358857 0.00355287 0.00351752 0.00348252 0.00344786 0.00341356
-0.00337959 0.00334597 0.00331267 0.00327971 0.00324708 0.00321477 0.00318278
-0.00315111 0.00311976 0.00308871 0.00305798 0.00302755 0.00299743 0.0029676
-0.00293808 0.00290884 0.0028799 0.00285124 0.00282287 0.00279478 0.00276698
-0.00273944 0.00271219 0.0026852 0.00265848 0.00263203 0.00260584 0.00257991
-0.00255424 0.00252883 0.00250366 0.00247875 0.00245409 0.00242967 0.00240549
-0.00238156 0.00235786 0.0023344 0.00231117 0.00228818 0.00226541 0.00224287
-0.00222055 0.00219846 0.00217658 0.00215492 0.00213348 0.00211225 0.00209124
-0.00207043 0.00204983 0.00202943 0.00200924 0.00198925 0.00196945 0.00194986
-0.00193045 0.00191125 0.00189223 0.0018734 0.00185476 0.0018363 0.00181803
-0.00179994 0.00178203 0.0017643 0.00174675 0.00172937 0.00171216 0.00169512
-0.00167826 0.00166156 0.00164502 0.00162866 0.00161245 0.00159641 0.00158052
-0.0015648 0.00154923 0.00153381 0.00151855 0.00150344 0.00148848 0.00147367
-0.00145901 0.00144449 0.00143012 0.00141589 0.0014018 0.00138785 0.00137404
-0.00136037 0.00134683 0.00133343 0.00132016 0.00130703 0.00129402 0.00128115
-0.0012684 0.00125578 0.00124328 0.00123091 0.00121866 0.00120654 0.00119453
-0.00118265 0.00117088 0.00115923 0.00114769 0.00113627 0.00112497 0.00111377
-0.00110269 0.00109172 0.00108086 0.0010701 0.00105946 0.00104891 0.00103848
-0.00102814 0.00101791 0.00100779 0.000997758 0.00098783 0.000978001
-0.00096827 0.000958635 0.000949097 0.000939653 0.000930303 0.000921047
-0.000911882 0.000902808 0.000893825 0.000884932 0.000876127 0.000867409
-0.000858778 0.000850233 0.000841773 0.000833397 0.000825105 0.000816895
-0.000808767 0.000800719 0.000792752 0.000784864 0.000777055 0.000769323
-0.000761668 0.000754089 0.000746586 0.000739157 0.000731803 0.000724521
-0.000717312 0.000710174 0.000703108 0.000696112 0.000689185 0.000682328
-0.000675539 0.000668817 0.000662162 0.000655574 0.00064905 0.000642592
-0.000636198 0.000629868 0.000623601 0.000617396 0.000611253 0.000605171
-0.000599149 0.000593188 0.000587285 0.000581442 0.000575656 0.000569928
-0.000564257 0.000558643 0.000553084 0.000547581 0.000542133 0.000536738
-0.000531398 0.00052611 0.000520875 0.000515692 0.000510561 0.000505481
-0.000500451 0.000495472 0.000490542 0.000485661 0.000480829 0.000476044
-0.000471307 0.000466618 0.000461975 0.000457378 0.000452827 0.000448321
-0.000443861 0.000439444 0.000435072 0.000430743 0.000426456 0.000422213
-0.000418012 0.000413853 0.000409735 0.000405658 0.000401622 0.000397626
-0.000393669 0.000389752 0.000385874 0.000382034 0.000378233 0.00037447
-0.000370744 0.000367055 0.000363402 0.000359786 0.000356206 0.000352662
-0.000349153 0.000345679 0.000342239 0.000338834 0.000335463 0.000332125
-0.00032882 0.000325548 0.000322309 0.000319102 0.000315927 0.000312783
-0.000309671 0.00030659 0.000303539 0.000300519 0.000297529 0.000294568
-0.000291637 0.000288735 0.000285862 0.000283018 0.000280202 0.000277414
-0.000274654 0.000271921 0.000269215 0.000266536 0.000263884 0.000261259
-0.000258659 0.000256085 0.000253537 0.000251014 0.000248517 0.000246044
-0.000243596 0.000241172 0.000238772 0.000236396 0.000234044 0.000231716
-0.00022941 0.000227127 0.000224867 0.00022263 0.000220415 0.000218221
-0.00021605 0.0002139 0.000211772 0.000209665 0.000207579 0.000205513
-0.000203468 0.000201444 0.000199439 0.000197455 0.00019549 0.000193545
-0.000191619 0.000189713 0.000187825 0.000185956 0.000184106 0.000182274
-0.00018046 0.000178665 0.000176887 0.000175127 0.000173384 0.000171659
-0.000169951 0.00016826 0.000166586 0.000164928 0.000163287 0.000161663
-0.000160054 0.000158461 0.000156885 0.000155324 0.000153778 0.000152248
-0.000150733 0.000149233 0.000147748 0.000146278 0.000144823 0.000143382
-0.000141955 0.000140543 0.000139144 0.00013776 0.000136389 0.000135032
-0.000133688 0.000132358 0.000131041 0.000129737 0.000128446 0.000127168
-0.000125903 0.00012465 0.00012341 0.000122182 0.000120966 0.000119763
-0.000118571 0.000117391 0.000116223 0.000115067 0.000113922 0.000112788
-0.000111666 0.000110555 0.000109455 0.000108366 0.000107287 0.00010622
-0.000105163 0.000104117 0.00010308 0.000102055 0.000101039 0.000100034
-9.90387e-05 9.80533e-05 9.70776e-05 9.61117e-05 9.51553e-05 9.42085e-05
-9.32711e-05 9.23431e-05 9.14242e-05 9.05145e-05 8.96139e-05 8.87222e-05
-8.78394e-05 8.69654e-05 8.61001e-05 8.52434e-05 8.43952e-05 8.35554e-05
-8.27241e-05 8.1901e-05 8.1086e-05 8.02792e-05 7.94804e-05 7.86896e-05
-7.79066e-05 7.71314e-05 7.6364e-05 7.56041e-05 7.48518e-05 7.4107e-05
-7.33696e-05 7.26396e-05 7.19169e-05 7.12012e-05 7.04928e-05 6.97914e-05
-6.9097e-05 6.84094e-05 6.77287e-05 6.70548e-05 6.63876e-05 6.5727e-05
-6.5073e-05 6.44256e-05 6.37845e-05 6.31498e-05 6.25215e-05 6.18994e-05
-6.12835e-05 6.06737e-05 6.007e-05 5.94723e-05 5.88805e-05 5.82947e-05
-5.77146e-05 5.71403e-05 5.65718e-05 5.60089e-05 5.54516e-05 5.48998e-05
-5.43536e-05 5.38128e-05 5.32773e-05 5.27472e-05 5.22224e-05 5.17027e-05
-5.11883e-05 5.06789e-05 5.01747e-05 4.96754e-05 4.91812e-05 4.86918e-05
-4.82073e-05 4.77276e-05 4.72527e-05 4.67826e-05 4.63171e-05;
-#A 1000 0 0 0;
-#X coords 0 1 1002 0 180 100 1;
-#X restore 254 118 graph;
-#N canvas 140 79 589 249 make-table 0;
-#X obj 164 81 t b b;
-#X obj 236 106 f;
-#X obj 274 106 + 1;
-#X msg 258 83 0;
-#X obj 164 104 until;
-#X obj 236 136 t f f;
-#X obj 164 62 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 104 164 expr exp(-($f1-1)/100);
-#X obj 163 132 sel 999;
-#X text 35 10 This patch computes a decaying exponential function \,
-100 points per unit.;
-#X obj 137 196 tabwrite E06-tab;
-#X connect 0 0 4 0;
-#X connect 0 1 3 0;
-#X connect 1 0 2 0;
-#X connect 1 0 5 0;
-#X connect 1 0 8 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 1;
-#X connect 4 0 1 0;
-#X connect 5 0 7 0;
-#X connect 5 1 10 1;
-#X connect 6 0 0 0;
-#X connect 7 0 10 0;
-#X connect 8 0 4 1;
-#X restore 302 258 pd make-table;
-#X text 251 95 waveshaping function;
-#X text 438 210 0;
-#X text 437 114 1;
-#X obj 12 168 +~ 1;
-#X obj 12 146 *~ 100;
-#X obj 12 83 +~ 1;
-#X floatatom 68 53 5 0 200 0 - - -;
-#X obj 68 96 pack 0 50;
-#X obj 68 120 line~;
-#X text 157 69 tenths;
-#X obj 68 73 / 10;
-#X obj 12 124 *~;
-#X obj 13 190 tabread4~ E06-tab;
-#X text 711 40 1;
-#X text 712 160 -1;
-#X text 103 237 <-- repeatedly;
-#X text 104 217 <-- graph once;
-#X text 121 0 Waveshaping using an exponential function;
-#X text 120 53 <--index in;
-#X text 250 218 0;
-#X text 417 220 10;
-#X text 14 652 When the index of modulation exceeds 5 we scan past
-the right hand border of the table (the thousandth point \, corresponding
-to exp(-10). This isn't a problem because the values are all close
-to zero there.;
-#X text 14 555 Table lookup is prepared as follows. First add one to
-the sinusoid and adjust its amplitude according to index \; it ranges
-from 0 to 2*index. Then adjust for the table's input scale (100 points
-per unit \, so multiply by 100) and add one to skip the interpolation
-point at the beginning of the table.;
-#X text 13 398 Here we use an exponential function as a waveshaping
-transfer function. The theory is shown in detail in the accompanying
-book \, but in short \, we adjust the sinusoid so that \, as the index
-increases \, we scan starting from the left of the transfer function
-(previously the reading location grew from the center). The table contains
-exp(-x) with x varying from 0 to 10 When the index is zero \, the output
-is the constant 1 and the spectrum holds only DC. As the index grows
-\, the output is a sequence of steadily narrower pulses \, whose spectrum
-gets progressively fatter.;
-#X connect 1 0 6 0;
-#X connect 1 0 6 1;
-#X connect 5 0 3 1;
-#X connect 18 0 19 0;
-#X connect 19 0 33 0;
-#X connect 25 0 3 2;
-#X connect 31 0 40 0;
-#X connect 32 0 31 0;
-#X connect 33 0 39 0;
-#X connect 34 0 38 0;
-#X connect 35 0 36 0;
-#X connect 36 0 39 1;
-#X connect 38 0 35 0;
-#X connect 39 0 32 0;
-#X connect 40 0 3 0;
-#X connect 40 0 1 0;
diff --git a/desiredata/doc/3.audio.examples/E07.evenodd.pd b/desiredata/doc/3.audio.examples/E07.evenodd.pd
deleted file mode 100644
index 9715e1ea..00000000
--- a/desiredata/doc/3.audio.examples/E07.evenodd.pd
+++ /dev/null
@@ -1,109 +0,0 @@
-#N canvas 187 149 784 591 12;
-#X obj 230 101 f;
-#X obj 264 77 + 1;
-#X obj 264 101 mod 11;
-#N canvas 0 0 450 300 graph1 0;
-#X array E07 11 float 0;
-#X coords 0 96 11 36 100 160 1;
-#X restore 528 15 graph;
-#X floatatom 320 53 0 10 999 0 - - -;
-#X obj 230 173 mtof;
-#X msg 26 92 1;
-#X obj 27 217 *~;
-#X obj 27 267 cos~;
-#X obj 27 292 hip~ 5;
-#X obj 27 244 +~ 0.1;
-#X floatatom 61 144 0 0 0 0 - - -;
-#X floatatom 166 145 0 0 200 0 - - -;
-#X floatatom 96 144 0 0 999 0 - - -;
-#X floatatom 131 144 0 0 999 0 - - -;
-#X msg 112 267 0;
-#X msg 112 245 0.1;
-#X msg 112 289 0.25;
-#X text 68 108 ADSR controls;
-#X text 106 125 A;
-#X text 141 125 D;
-#X text 176 125 S;
-#X floatatom 320 77 0 1 11 0 - - -;
-#X text 354 79 <--increment;
-#X text 355 56 <--msec;
-#X obj 26 193 *~ 0.01;
-#X obj 230 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 27 321 output~;
-#X text 527 562 updated for Pd version 0.37;
-#X obj 26 170 adsr 70 10 90 50 500;
-#X obj 230 150 +;
-#X floatatom 265 150 0 -48 120 0 - - -;
-#X text 299 152 <--transpose;
-#N canvas 0 0 538 208 make-table 0;
-#X obj 38 71 loadbang;
-#X text 16 11 This patch loads a sequence of pitches into array1. The
-values are floating-point \, so we could use microtones (60.5 \, for
-example) if we wish.;
-#X msg 38 99 \; array1 0 55 56 57 55 57 61 55 61 63 57 63 \; array1
-yticks 36 12 1 \; array1 ylabel 12 36 48 60 72 84 96;
-#X connect 0 0 2 0;
-#X restore 527 195 pd make-table;
-#X obj 176 50 sel 0;
-#X msg 26 69 0;
-#X text 48 125 level;
-#X obj 230 53 metro 130;
-#X obj 60 217 osc~;
-#X text 111 225 symmetry;
-#X text 157 265 even;
-#X text 165 288 odd;
-#X text 147 244 mixed;
-#X obj 230 126 tabread E07;
-#X text 253 26 <--ON/OFF;
-#X text 238 232 This patch uses a stepping sequencer to control a waveshaping
-instrument. A metronome (metro 130) drives a counter (f \, +1 \, and
-mod 11) which counts repeatedly through 11 values which are read from
-the stored table (tabread E07). The values may be read in sequence
-\, by twos or threes \, etc. \, according to the "increment" parameter.
-;
-#X text 239 328 The metronome also triggers an ADSR envelope \, whose
-parameters may also be changed using the "level" \, "A" \, "D" \, and
-"S" controls.;
-#X text 142 5 SEQUENCED WAVESHAPING SYNTHESIZER;
-#X text 240 380 The synthesis (osc~ \, *~ \, +~ 0.1 \, cos~) is a very
-simple application of the waveshaping technique. The oscillator (whose
-amplitude depends on the ADSR generator) is used as an index into the
-"cos~" wavetable. An additional offset ("symmetry") controls how the
-oscillator's waveform is centered on the wavetable. If the offset is
-zero \, the oscillator reads into the (even) cosine function (producing
-only even harmonics). If the offset is 0.25 \, we read 1/4 wave into
-the cosine function: the result is an odd function and we get odd harmonics.
-Between the two we get mixtures of even and odd.;
-#X connect 0 0 1 0;
-#X connect 0 0 43 0;
-#X connect 1 0 2 0;
-#X connect 2 0 0 1;
-#X connect 4 0 37 1;
-#X connect 5 0 38 0;
-#X connect 6 0 29 0;
-#X connect 7 0 10 0;
-#X connect 8 0 9 0;
-#X connect 9 0 27 0;
-#X connect 9 0 27 1;
-#X connect 10 0 8 0;
-#X connect 11 0 29 1;
-#X connect 12 0 29 4;
-#X connect 13 0 29 2;
-#X connect 14 0 29 3;
-#X connect 15 0 10 1;
-#X connect 16 0 10 1;
-#X connect 17 0 10 1;
-#X connect 22 0 1 1;
-#X connect 25 0 7 0;
-#X connect 26 0 34 0;
-#X connect 26 0 37 0;
-#X connect 29 0 25 0;
-#X connect 30 0 5 0;
-#X connect 31 0 30 1;
-#X connect 34 0 35 0;
-#X connect 35 0 29 0;
-#X connect 37 0 0 0;
-#X connect 37 0 6 0;
-#X connect 38 0 7 1;
-#X connect 43 0 30 0;
diff --git a/desiredata/doc/3.audio.examples/E08.phase.mod.pd b/desiredata/doc/3.audio.examples/E08.phase.mod.pd
deleted file mode 100644
index 53a6e052..00000000
--- a/desiredata/doc/3.audio.examples/E08.phase.mod.pd
+++ /dev/null
@@ -1,196 +0,0 @@
-#N canvas 36 68 722 738 12;
-#X obj 224 164 *~;
-#X floatatom 224 107 0 0 0 0 - - -;
-#X obj 312 144 line~;
-#X floatatom 128 121 0 0 0 0 - - -;
-#X obj 128 235 cos~;
-#X obj 128 191 +~;
-#X obj 224 132 osc~ 0;
-#X obj 312 118 pack 0 50;
-#X floatatom 312 65 0 0 0 0 - - -;
-#X obj 312 92 / 100;
-#X text 286 27 modulation index;
-#X text 286 42 in hundredths;
-#X text 125 78 carrier;
-#X text 124 96 frequency;
-#X text 209 83 frequency;
-#X text 210 66 modulation;
-#X text 33 132 carrier;
-#X text 33 147 phase -->;
-#X text 6 175 phase;
-#X text 5 190 modulation-->;
-#X text 12 217 output;
-#X text 11 234 waveform -->;
-#X text 129 1 PHASE MODULATION;
-#X text 16 378 Most implementations of "FM" actually use phase \, not
-frequency \, modulation \, because it extends in a more natural way
-to "multi-operator FM" with three or more oscillators.;
-#X text 16 434 To do phase modulation \, we split the "carrier oscillator"
-into its phase calculation (phasor~) and its waveform lookup (cos~).
-These together would be equivalent to an osc~ object \, but the "+~"
-between them adds the modulating oscillator's output to the phase.
-;
-#X text 20 652 We also have to use a line~ to smooth changes in the
-modulation index \, which wasn't necessary in the previous patch.;
-#X obj 128 148 phasor~;
-#X obj 117 557 cos~;
-#X obj 117 529 phasor~;
-#X text 60 539 this:;
-#X text 219 532 is the same;
-#X text 220 551 as this:;
-#X obj 335 544 osc~;
-#N canvas 0 0 450 300 graph2 0;
-#X array phase-out 441 float 1;
-#A 0 0.43245 0.433463 0.434452 0.435418 0.43636 0.43728 0.438178 0.439056
-0.439912 0.440749 0.441567 0.442366 0.443148 0.443912 0.444659 0.445391
-0.446107 0.446809 0.447497 0.448172 0.448834 0.449484 0.450122 0.450751
-0.451369 0.451978 0.452579 0.453172 0.453758 0.454338 0.454911 0.45548
-0.456045 0.456606 0.457164 0.457719 0.458274 0.458827 0.45938 0.459934
-0.460489 0.461046 0.461605 0.462168 0.462735 0.463306 0.463883 0.464466
-0.465056 0.465654 0.466259 0.466873 0.467497 0.468131 0.468776 0.469433
-0.470102 0.470783 0.471479 0.472188 0.472913 0.473653 0.474409 0.475182
-0.475973 0.476782 0.477611 0.478459 0.479327 0.480216 0.481127 0.48206
-0.483015 0.483994 0.484997 0.486024 0.487077 0.488156 0.48926 0.490392
-0.491552 0.49274 0.493957 0.495203 0.496479 0.497785 0.499123 0.500493
-0.501896 0.503332 0.504801 0.506304 0.507842 0.509415 0.511023 0.512667
-0.514348 0.516066 0.517821 0.519615 0.521447 0.523318 0.525228 0.527179
-0.52917 0.531202 0.533275 0.53539 0.537547 0.539747 0.541992 0.54428
-0.546613 0.548989 0.551411 0.553877 0.556389 0.558947 0.561551 0.564202
-0.5669 0.569645 0.572437 0.575278 0.578166 0.581104 0.58409 0.587125
-0.59021 0.593345 0.596529 0.599764 0.603051 0.606389 0.609778 0.613219
-0.61671 0.620254 0.62385 0.627497 0.631197 0.634949 0.638754 0.642612
-0.646522 0.650486 0.654503 0.658573 0.662696 0.666873 0.671104 -0.324611
--0.320273 -0.315881 -0.311434 -0.306931 -0.302375 -0.297764 -0.2931
--0.288381 -0.283608 -0.278781 -0.2739 -0.268964 -0.263975 -0.258931
--0.253833 -0.248682 -0.243476 -0.238217 -0.232904 -0.227537 -0.222116
--0.216642 -0.211115 -0.205534 -0.1999 -0.194211 -0.18847 -0.182675
--0.176829 -0.170929 -0.164978 -0.158975 -0.152919 -0.146813 -0.140655
--0.134446 -0.128186 -0.121875 -0.115514 -0.109103 -0.102642 -0.0961313
--0.0895714 -0.0829625 -0.0763049 -0.0695988 -0.0628447 -0.056041 -0.0491896
--0.0422913 -0.0353461 -0.0283546 -0.0213171 -0.0142339 -0.00710538
-6.80089e-05 0.00728586 0.0145478 0.0218535 0.0292025 0.0365944 0.0440286
-0.0515049 0.0590228 0.0665818 0.0741815 0.0818213 0.0895009 0.0972198
-0.104978 0.112776 0.120611 0.128484 0.136393 0.144339 0.15232 0.160337
-0.168388 0.176473 0.184592 0.192744 0.200929 0.209146 0.217393 0.225672
-0.233981 0.24232 0.250688 0.259084 0.267509 0.27596 0.284439 0.292944
-0.301475 0.310031 0.318611 0.327215 0.335842 0.344491 0.353162 0.361854
-0.370566 0.379298 0.38805 0.39682 0.405608 0.414413 0.423234 0.432072
-0.440924 0.449792 0.458673 0.467567 0.476474 0.485394 0.494324 0.503265
-0.512216 0.521176 0.530145 0.539121 0.548104 0.557094 0.566089 0.575089
-0.584094 0.593102 0.602113 0.611126 0.620141 0.629157 0.638173 0.647189
-0.656203 0.665215 0.674225 0.683232 0.692234 0.701231 0.710224 0.71921
-0.728189 0.737161 0.746124 0.755079 0.764024 0.772959 0.781884 0.790796
-0.799697 0.808584 0.817458 0.826318 0.835162 0.843992 0.852804 0.861601
-0.870379 0.879139 0.887879 0.8966 0.905301 0.913981 0.92264 0.931276
-0.93989 0.94848 0.957046 0.965588 0.974105 0.982595 0.99106 0.999497
-1.00791 1.01629 1.02464 1.03296 1.04126 1.04952 1.05775 1.06595 1.07412
-1.08225 1.09035 1.09841 1.10645 1.11444 1.1224 1.13033 1.13822 1.14607
-1.15388 1.16166 1.1694 1.17709 1.18475 1.19237 1.19995 1.20749 1.21498
-1.22244 1.22985 1.23722 1.24454 1.25182 1.25906 1.26625 1.2734 0.280502
-0.287559 0.29457 0.301536 0.308454 0.315325 0.32215 0.328926 0.335655
-0.342335 0.348967 0.35555 0.362084 0.368568 0.375003 0.381388 0.387722
-0.394004 0.400235 0.406415 0.412544 0.418621 0.424647 0.430621 0.436542
-0.442412 0.448228 0.453993 0.459704 0.465363 0.470969 0.476521 0.48202
-0.487466 0.492858 0.498196 0.503481 0.508712 0.513889 0.519011 0.524077
-0.52909 0.534049 0.538953 0.543804 0.5486 0.553342 0.55803 0.562664
-0.567243 0.571769 0.57624 0.580658 0.585021 0.589331 0.593587 0.597789
-0.601938 0.606033 0.610075 0.614064 0.617999 0.621879 0.625706 0.629481
-0.633203 0.636873 0.640491 0.644057 0.647571 0.651033 0.654445 0.657805
-0.661114 0.664372 0.66758 0.670739 0.673847 0.676905 0.679914 0.682875
-;
-#X array cos-out 441 float 1;
-#A 0 -0.911256 -0.913872 -0.916365 -0.918789 -0.921097 -0.923342 -0.925486
--0.927564 -0.92956 -0.931483 -0.93335 -0.935129 -0.936867 -0.938528
--0.940137 -0.941707 -0.943197 -0.944657 -0.946072 -0.947426 -0.948755
--0.95004 -0.951276 -0.952491 -0.953672 -0.954806 -0.955924 -0.957024
--0.958071 -0.959106 -0.960132 -0.961119 -0.962086 -0.963047 -0.963993
--0.964903 -0.965811 -0.966718 -0.967595 -0.968461 -0.969329 -0.970192
--0.971025 -0.971863 -0.972707 -0.973527 -0.974343 -0.975168 -0.975986
--0.976786 -0.977597 -0.978414 -0.979202 -0.980003 -0.980816 -0.981596
--0.982391 -0.983194 -0.983968 -0.984757 -0.985543 -0.98631 -0.987093
--0.987851 -0.98861 -0.98937 -0.990102 -0.990852 -0.991557 -0.992275
--0.99296 -0.993642 -0.994295 -0.994935 -0.995544 -0.996137 -0.996687
--0.997227 -0.997705 -0.998173 -0.998575 -0.998944 -0.999273 -0.999527
--0.999743 -0.999894 -0.999966 -0.999981 -0.999927 -0.999765 -0.999526
--0.999202 -0.998785 -0.99824 -0.997586 -0.996816 -0.995923 -0.994897
--0.99373 -0.992413 -0.990934 -0.989283 -0.987458 -0.985449 -0.983247
--0.980843 -0.978222 -0.975372 -0.972288 -0.968961 -0.965377 -0.96153
--0.95741 -0.952995 -0.948265 -0.943231 -0.937881 -0.932182 -0.926128
--0.919728 -0.912938 -0.905762 -0.898197 -0.890198 -0.881799 -0.87293
--0.863637 -0.853855 -0.843612 -0.832873 -0.821629 -0.809886 -0.797593
--0.784764 -0.771394 -0.757466 -0.742953 -0.727864 -0.712189 -0.695918
--0.679041 -0.661549 -0.643437 -0.624697 -0.605324 -0.585314 -0.564664
--0.543374 -0.521441 -0.498869 -0.475658 -0.451811 -0.427334 -0.402219
--0.376482 -0.350131 -0.323174 -0.295626 -0.267508 -0.238824 -0.2096
--0.179853 -0.149603 -0.118875 -0.0876953 -0.0560885 -0.0240874 0.00827867
-0.040974 0.0739643 0.107208 0.140666 0.174297 0.208056 0.241893 0.275757
-0.309603 0.343385 0.377036 0.410498 0.443712 0.476616 0.509148 0.541242
-0.572835 0.603858 0.634244 0.66391 0.692797 0.720837 0.747961 0.774084
-0.799131 0.823051 0.845758 0.867169 0.887248 0.90588 0.923037 0.938628
-0.952605 0.964885 0.975433 0.984153 0.991037 0.995988 0.998986 0.999997
-0.998938 0.995807 0.990576 0.983211 0.973668 0.961961 0.948075 0.932007
-0.913757 0.893328 0.87073 0.845995 0.81915 0.790227 0.759268 0.726324
-0.691452 0.654714 0.616181 0.57593 0.534037 0.490599 0.445716 0.399491
-0.352033 0.303459 0.253886 0.203441 0.152259 0.100478 0.0482368 -0.00432081
--0.057045 -0.109786 -0.162386 -0.214696 -0.266564 -0.317814 -0.368301
--0.417864 -0.466337 -0.513584 -0.559424 -0.603732 -0.646344 -0.687125
--0.725934 -0.762631 -0.797101 -0.829205 -0.858847 -0.8859 -0.91028
--0.931885 -0.950636 -0.966466 -0.97929 -0.989092 -0.995773 -0.999358
--0.999773 -0.997042 -0.991152 -0.982099 -0.969941 -0.954655 -0.936332
--0.915008 -0.890737 -0.863625 -0.833713 -0.801132 -0.765979 -0.728348
--0.688394 -0.646219 -0.601975 -0.555817 -0.507869 -0.45832 -0.407319
--0.355036 -0.301652 -0.247328 -0.192258 -0.136617 -0.0805873 -0.0243537
-0.0319027 0.0879985 0.143752 0.198986 0.253526 0.307194 0.359834 0.411262
-0.461345 0.509907 0.556823 0.601935 0.645131 0.686266 0.725245 0.761935
-0.796272 0.828125 0.857461 0.884158 0.9082 0.929508 0.948044 0.9638
-0.976698 0.986778 0.99402 0.998404 0.999981 0.998763 0.994751 0.988022
-0.978621 0.966582 0.95197 0.93487 0.915357 0.893512 0.869405 0.843139
-0.814817 0.784538 0.752408 0.718535 0.68303 0.646007 0.607581 0.567872
-0.526996 0.485074 0.442227 0.398573 0.354231 0.30932 0.263957 0.218256
-0.172326 0.126282 0.0802317 0.0342922 -0.0114471 -0.0568861 -0.101931
--0.146492 -0.190474 -0.233802 -0.276394 -0.318171 -0.359072 -0.399015
--0.437958 -0.475821 -0.512573 -0.548149 -0.582512 -0.615632 -0.647446
--0.677951 -0.707119 -0.734897 -0.761296 -0.786293 -0.80988 -0.83204
--0.852773 -0.872085 -0.88998 -0.906462 -0.921542 -0.935229 -0.94754
--0.95849 -0.968102 -0.976397 -0.9834 -0.989136 -0.993613 -0.996882
--0.998976 -0.99993 -0.999748 -0.998484 -0.996188 -0.99286 -0.988563
--0.983336 -0.977186 -0.970195 -0.962347 -0.953732 -0.944344 -0.934249
--0.923482 -0.912051 -0.900028 -0.887441 -0.874296 -0.860659 -0.846562
--0.832035 -0.817101 -0.801792 -0.786149 -0.770201 -0.753977 -0.737507
--0.720826 -0.703952 -0.686912 -0.669731 -0.652436 -0.635043 -0.617572
--0.600055 -0.582513 -0.564966 -0.547418 -0.529898 -0.512429 -0.495016
--0.477676 -0.460438 -0.443287 -0.426265 -0.409364;
-#X coords 0 1 440 -1 200 140 1;
-#X restore 509 190 graph;
-#X obj 213 246 tabwrite~ phase-out;
-#X obj 213 273 tabwrite~ cos-out;
-#X msg 213 221 bang;
-#X text 260 220 <-- graph them;
-#X obj 126 296 output~;
-#X obj 127 270 hip~;
-#X text 408 98 ramped to avoid;
-#X text 407 114 clicks.);
-#X text 407 82 (the index is;
-#X text 435 704 updated for Pd version 0.37;
-#X text 21 588 The "modulation" index \, which in true FM is in units
-of Hertz \, is dimensionless for phase moduation. "Good" values tend
-to be between 0 and 1... in this patch the index is in hundredths.
-;
-#X connect 0 0 5 1;
-#X connect 1 0 6 0;
-#X connect 2 0 0 1;
-#X connect 3 0 26 0;
-#X connect 4 0 35 0;
-#X connect 4 0 39 0;
-#X connect 5 0 4 0;
-#X connect 5 0 34 0;
-#X connect 6 0 0 0;
-#X connect 7 0 2 0;
-#X connect 8 0 9 0;
-#X connect 9 0 7 0;
-#X connect 26 0 5 0;
-#X connect 28 0 27 0;
-#X connect 36 0 34 0;
-#X connect 36 0 35 0;
-#X connect 39 0 38 0;
-#X connect 39 0 38 1;
diff --git a/desiredata/doc/3.audio.examples/E09.FM.spectrum.pd b/desiredata/doc/3.audio.examples/E09.FM.spectrum.pd
deleted file mode 100644
index 21094b41..00000000
--- a/desiredata/doc/3.audio.examples/E09.FM.spectrum.pd
+++ /dev/null
@@ -1,139 +0,0 @@
-#N canvas 127 136 697 536 12;
-#X obj 94 188 *~;
-#X obj 136 188 line~;
-#X obj 18 179 cos~;
-#X obj 18 154 +~;
-#X obj 136 165 pack 0 50;
-#X floatatom 136 117 0 0 0 0 - - -;
-#X obj 136 141 / 100;
-#X obj 18 129 phasor~;
-#X obj 18 284 output~;
-#X obj 17 253 hip~;
-#X text 442 513 updated for Pd version 0.37;
-#N canvas 122 211 558 609 fft 1;
-#X obj 19 61 inlet~;
-#X obj 208 212 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 193 164 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 19 459 samplerate~;
-#X obj 19 436 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 19 506 5 0 0 0 - - -;
-#X obj 19 482 / 256;
-#X obj 19 412 loadbang;
-#X obj 75 528 s fundamental;
-#X text 17 359 At load time \, calculate a good choice of fundamental
-frequency for showing spectra: the 16th bin in a 4096-point spectrum
-\, so SR*16/4096 or SR/256.;
-#X obj 231 259 metro 500;
-#X obj 231 236 inlet;
-#X text 284 234 toggle to graph repeatedly;
-#X text 262 212 bang to graph once;
-#X obj 19 295 tabwrite~ E09-signal;
-#X obj 231 298 tabwrite~ E09-spectrum;
-#X obj 19 528 t b f;
-#X msg 19 551 \; cm 6;
-#X text 25 585 set carrier multiplier after fundamental;
-#X obj 29 205 /~ 4096;
-#X msg 209 322 \; pd dsp 1;
-#X connect 0 0 2 0;
-#X connect 0 0 26 0;
-#X connect 1 0 26 0;
-#X connect 1 0 27 0;
-#X connect 1 0 32 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 31 0;
-#X connect 15 0 18 0;
-#X connect 16 0 15 0;
-#X connect 17 0 28 0;
-#X connect 18 0 17 0;
-#X connect 19 0 16 0;
-#X connect 22 0 26 0;
-#X connect 22 0 27 0;
-#X connect 23 0 22 0;
-#X connect 23 0 32 0;
-#X connect 28 0 29 0;
-#X connect 28 1 20 0;
-#X connect 31 0 27 0;
-#X restore 62 243 pd fft;
-#X obj 122 222 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 122 243 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 143 242 <-- repeatedly;
-#X text 144 222 <-- graph once;
-#N canvas 0 0 450 300 graph1 0;
-#X array E09-signal 882 float 0;
-#X coords 0 1.02 882 -1.02 200 80 1;
-#X restore 433 28 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array E09-spectrum 259 float 0;
-#X coords 0 0.51 258 -0.008 259 130 1;
-#X restore 403 175 graph;
-#X text 442 114 ---- 0.02 seconds ----;
-#X text 433 306 2;
-#X text 464 306 4;
-#X text 403 306 0;
-#X text 441 321 -- partial number --;
-#X text 497 8 WAVEFORM;
-#X text 497 157 SPECTRUM;
-#X text 663 291 0;
-#X text 664 173 0.5;
-#X obj 93 117 osc~;
-#X obj 93 86 r fundamental;
-#X text 171 117 index (x100);
-#X text 496 306 6;
-#X text 529 306 8;
-#X text 557 306 10;
-#X text 589 306 12;
-#X text 621 306 14;
-#X text 43 3 SPECTRUM OF TWO-OPERATOR PHASE MODULATION;
-#X floatatom 18 58 3 0 15 0 - - -;
-#X obj 18 105 *;
-#X obj 18 33 r cm;
-#X text 52 57 carrier harmonic #;
-#X text 71 367 This patch measures the spectrum of two-operator phase
-modulation. The carrier frequency is initially six times the modulation
-frequency \, but you can change it with the "carrier harmonic #" control.
-Changing the index changes the relative strengths of the harmonics.
-Past a certain index (which depends on the carrier frequency) the lower
-sidebands begin to reflect about the left edge of the spectrum \, causing
-complicated interference effects.;
-#X connect 0 0 3 1;
-#X connect 1 0 0 1;
-#X connect 2 0 9 0;
-#X connect 2 0 11 0;
-#X connect 3 0 2 0;
-#X connect 4 0 1 0;
-#X connect 5 0 6 0;
-#X connect 6 0 4 0;
-#X connect 7 0 3 0;
-#X connect 9 0 8 0;
-#X connect 9 0 8 1;
-#X connect 12 0 11 1;
-#X connect 13 0 11 2;
-#X connect 27 0 0 0;
-#X connect 28 0 27 0;
-#X connect 28 0 37 1;
-#X connect 36 0 37 0;
-#X connect 37 0 7 0;
-#X connect 38 0 36 0;
diff --git a/desiredata/doc/3.audio.examples/E10.complex.FM.pd b/desiredata/doc/3.audio.examples/E10.complex.FM.pd
deleted file mode 100644
index 094d68ed..00000000
--- a/desiredata/doc/3.audio.examples/E10.complex.FM.pd
+++ /dev/null
@@ -1,156 +0,0 @@
-#N canvas 165 123 695 505 12;
-#X obj 94 247 *~;
-#X obj 109 223 line~;
-#X obj 18 179 cos~;
-#X obj 18 154 +~;
-#X obj 109 200 pack 0 50;
-#X floatatom 109 152 0 0 300 0 - - -;
-#X obj 109 176 / 100;
-#X obj 18 129 phasor~;
-#X obj 20 340 output~;
-#X obj 19 309 hip~;
-#X text 437 472 updated for Pd version 0.37;
-#N canvas 62 299 558 609 fft 0;
-#X obj 19 61 inlet~;
-#X obj 208 212 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 193 164 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 16 425 samplerate~;
-#X obj 16 402 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 16 472 5 0 0 0 - - -;
-#X obj 16 448 / 256;
-#X obj 16 378 loadbang;
-#X obj 72 494 s fundamental;
-#X text 14 319 At load time \, calculate a good choice of fundamental
-frequency for showing spectra: the 16th bin in a 4096-point spectrum
-\, so SR*16/4096 or SR/256.;
-#X obj 220 257 metro 500;
-#X obj 220 234 inlet;
-#X text 273 232 toggle to graph repeatedly;
-#X text 262 212 bang to graph once;
-#X obj 16 494 t b f;
-#X obj 19 295 tabwrite~ E10-signal;
-#X obj 208 295 tabwrite~ E10-spectrum;
-#X text 72 536 set carrier multiplier and modulation multipliers after
-fundamental;
-#X msg 16 516 \; cm 8 \; m1 2 \; m2 3;
-#X connect 0 0 2 0;
-#X connect 0 0 27 0;
-#X connect 1 0 27 0;
-#X connect 1 0 28 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 28 0;
-#X connect 15 0 18 0;
-#X connect 16 0 15 0;
-#X connect 17 0 26 0;
-#X connect 18 0 17 0;
-#X connect 19 0 16 0;
-#X connect 22 0 27 0;
-#X connect 22 0 28 0;
-#X connect 23 0 22 0;
-#X connect 26 0 30 0;
-#X connect 26 1 20 0;
-#X restore 65 311 pd fft;
-#X obj 125 290 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 125 311 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X text 146 310 <-- repeatedly;
-#X text 147 290 <-- graph once;
-#N canvas 0 0 450 300 graph1 0;
-#X array E10-spectrum 259 float 0;
-#X coords 0 2100 258 -20 259 130 1;
-#X restore 396 122 graph;
-#X text 426 253 2;
-#X text 457 253 4;
-#X text 396 253 0;
-#X text 434 268 -- partial number --;
-#X text 490 104 SPECTRUM;
-#X text 656 238 0;
-#X text 657 120 0.5;
-#X obj 93 128 osc~;
-#X obj 267 79 r fundamental;
-#X text 489 253 6;
-#X text 522 253 8;
-#X text 550 253 10;
-#X text 582 253 12;
-#X text 614 253 14;
-#X floatatom 18 58 3 0 15 0 - - -;
-#X obj 18 105 *;
-#X obj 18 33 r cm;
-#X text 43 3 SPECTRUM OF COMPLEX PHASE MODULATION;
-#X text 23 73 carrier;
-#X obj 93 107 *;
-#X floatatom 93 60 3 0 15 0 - - -;
-#X text 99 74 mod 1;
-#X obj 93 35 r m1;
-#X text 138 154 index1;
-#X obj 197 249 *~;
-#X obj 212 225 line~;
-#X obj 212 202 pack 0 50;
-#X floatatom 212 154 0 0 300 0 - - -;
-#X obj 212 178 / 100;
-#X obj 196 130 osc~;
-#X obj 196 109 *;
-#X floatatom 196 62 3 0 15 0 - - -;
-#X text 202 76 mod 2;
-#X text 246 154 index2;
-#X obj 196 37 r m2;
-#X text 126 349 Now we introduce a second modulator oscillator. The
-carrier is on the 8th harmonic and the two modulators are at 2 and
-3 times the fundamental. When either index of modulation is zero \,
-changing the other index gives the familiar 2-operator FM result. But
-if index2 is nonzero (try around 10 \, for example) then sliding index1
-upward from 0 introduces sidebands around each of the sidebands.;
-#X connect 0 0 3 1;
-#X connect 1 0 0 1;
-#X connect 2 0 9 0;
-#X connect 2 0 11 0;
-#X connect 3 0 2 0;
-#X connect 4 0 1 0;
-#X connect 5 0 6 0;
-#X connect 6 0 4 0;
-#X connect 7 0 3 0;
-#X connect 9 0 8 0;
-#X connect 9 0 8 1;
-#X connect 12 0 11 1;
-#X connect 13 0 11 2;
-#X connect 24 0 0 0;
-#X connect 25 0 32 1;
-#X connect 25 0 36 1;
-#X connect 25 0 47 1;
-#X connect 31 0 32 0;
-#X connect 32 0 7 0;
-#X connect 33 0 31 0;
-#X connect 36 0 24 0;
-#X connect 37 0 36 0;
-#X connect 39 0 37 0;
-#X connect 41 0 3 1;
-#X connect 42 0 41 1;
-#X connect 43 0 42 0;
-#X connect 44 0 45 0;
-#X connect 45 0 43 0;
-#X connect 46 0 41 0;
-#X connect 47 0 46 0;
-#X connect 48 0 47 0;
-#X connect 51 0 48 0;
diff --git a/desiredata/doc/3.audio.examples/F01.pulse.pd b/desiredata/doc/3.audio.examples/F01.pulse.pd
deleted file mode 100644
index 5ef7e862..00000000
--- a/desiredata/doc/3.audio.examples/F01.pulse.pd
+++ /dev/null
@@ -1,82 +0,0 @@
-#N canvas 15 126 835 625 12;
-#X obj 272 163 line~;
-#X floatatom 53 64 0 0 0 0 - - -;
-#X obj 30 315 cos~;
-#N canvas 0 0 450 300 graph1 0;
-#X array pulse-output 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 583 409 graph;
-#X obj 53 91 phasor~ 0;
-#X obj 272 139 pack 0 50;
-#X floatatom 272 90 0 0 100 0 - - -;
-#X text 50 43 frequency;
-#X obj 53 115 -~ 0.5;
-#X obj 53 207 *~;
-#X obj 272 114 / 10;
-#X obj 30 265 clip~ -0.5 0.5;
-#X obj 30 418 hip~ 5;
-#N canvas 0 0 450 300 graph1 0;
-#X array phase-output 882 float 0;
-#X coords 0 1.02 882 -1.02 200 60 1;
-#X restore 583 150 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array clip-output 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 583 272 graph;
-#X text 113 114 phase -1/2 to 1/2;
-#X text 139 91 phase 0 to 1;
-#X text 119 5 PULSE GENERATOR;
-#X obj 19 234 tabwrite~ phase-output;
-#X obj 19 393 tabwrite~ pulse-output;
-#X text 103 419 high pass filter to cut DC;
-#X text 319 115 fix range;
-#X text 326 164 smooth it;
-#X text 314 187 add 1;
-#X text 41 148 <-- click to graph;
-#X text 83 209 increase amplitude;
-#X text 164 264 clip back to range -1/2 to 1/2;
-#X text 90 316 cosine wave lookup (-1/2 and 1/2 give -1);
-#X obj 272 188 +~ 1;
-#X obj 19 292 tabwrite~ clip-output;
-#X text 585 539 ---- 0.02 seconds ----;
-#X obj 19 148 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 30 446 output~;
-#X obj 30 338 +~ 1;
-#X obj 30 361 *~ 0.5;
-#X text 574 589 updated for Pd version 0.37;
-#X text 88 337 add one (range now from 0 to 2);
-#X text 96 360 ...and now from 0 to 1;
-#X text 20 531 This patch computes a pulse train \, with an "index"
-control that essentually squeezes the pulses. If "bandwidth" is zero
-you get a pure cosine wave \, and for larger values of the bandwidth
-\, the cosine wave is squeezed to fill smaller portions of the waveform.
-;
-#X text 269 71 index;
-#X text 790 142 0.5;
-#X text 787 198 -0.5;
-#X text 785 264 1;
-#X text 787 390 -1;
-#X text 785 405 1;
-#X text 786 528 -1;
-#X connect 0 0 28 0;
-#X connect 1 0 4 0;
-#X connect 2 0 33 0;
-#X connect 4 0 8 0;
-#X connect 5 0 0 0;
-#X connect 6 0 10 0;
-#X connect 8 0 9 0;
-#X connect 9 0 11 0;
-#X connect 9 0 18 0;
-#X connect 10 0 5 0;
-#X connect 11 0 2 0;
-#X connect 11 0 29 0;
-#X connect 12 0 32 0;
-#X connect 12 0 32 1;
-#X connect 28 0 9 1;
-#X connect 31 0 18 0;
-#X connect 31 0 29 0;
-#X connect 31 0 19 0;
-#X connect 33 0 34 0;
-#X connect 34 0 19 0;
-#X connect 34 0 12 0;
diff --git a/desiredata/doc/3.audio.examples/F02.just.say.pd b/desiredata/doc/3.audio.examples/F02.just.say.pd
deleted file mode 100644
index b82b4953..00000000
--- a/desiredata/doc/3.audio.examples/F02.just.say.pd
+++ /dev/null
@@ -1,152 +0,0 @@
-#N canvas 32 67 900 421 12;
-#X obj 39 247 cos~;
-#X graph graph1 0 -1.02 44100 1.02 452 206 652 76;
-#X array env-output 44100 float 0;
-#X pop;
-#X floatatom 71 305 0 0 0;
-#N canvas 159 26 495 266 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 425 178 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 425 153 t b f;
-#X obj 397 117 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 397 92 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 22 181 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 100 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 89 outlet;
-#X msg 214 64 \; pd dsp 1;
-#X obj 83 194 line~;
-#X obj 22 212 *~;
-#X obj 22 241 dac~;
-#X obj 83 171 pack 0 50;
-#X text 20 158 audio;
-#X text 93 110 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 39 333 pd output;
-#X msg 115 306 MUTE;
-#X msg 162 93 bang;
-#X text 203 93 <-- click to graph;
-#X obj 39 168 -~ 0.5;
-#X obj 39 192 *~;
-#X obj 39 219 clip~ -0.5 0.5;
-#X obj 39 274 hip~ 5;
-#X obj 126 60 *~;
-#X floatatom 205 142 0 0 0;
-#X floatatom 205 168 0 0 0;
-#X obj 126 27 phasor~ -4;
-#X obj 126 191 +~ 0.5;
-#X obj 162 117 tabwrite~ env-output;
-#X text 451 211 --------- 1 second ---------;
-#X floatatom 205 194 0 0 0;
-#X obj 126 142 lop~ 130;
-#N canvas 168 232 351 420 freq 0;
-#X obj 180 176 t f f;
-#X obj 181 202 *;
-#X obj 60 320 line 0 30;
-#X obj 90 132 t b b;
-#X obj 90 107 metro 100;
-#X obj 61 287 pack;
-#X obj 60 376 outlet;
-#X floatatom 89 82 0 0 0;
-#X floatatom 54 243 0 0 0;
-#X floatatom 94 248 0 0 0;
-#X obj 60 348 pack 0 30;
-#X obj 55 202 + 150;
-#X obj 88 34 loadbang;
-#X msg 89 58 1;
-#X obj 56 175 random 300;
-#X obj 181 226 + 100;
-#X obj 179 152 random 35;
-#X connect 0 0 1 0;
-#X connect 0 1 1 1;
-#X connect 1 0 15 0;
-#X connect 2 0 10 0;
-#X connect 3 0 14 0;
-#X connect 3 1 16 0;
-#X connect 4 0 3 0;
-#X connect 5 0 2 0;
-#X connect 7 0 4 0;
-#X connect 8 0 5 0;
-#X connect 9 0 5 1;
-#X connect 10 0 6 0;
-#X connect 11 0 8 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 14 0 11 0;
-#X connect 15 0 4 1;
-#X connect 15 0 9 0;
-#X connect 16 0 0 0;
-#X restore 38 94 pd freq;
-#X obj 39 119 line~;
-#X obj 39 144 phasor~;
-#X text 225 19 negative frequency;
-#X text 226 35 makes falling sawtooth;
-#X text 155 59 square it to make a curve;
-#X text 245 152 you can;
-#X text 243 170 adjust these;
-#X text 247 189 values;
-#X text 334 250 We interrupt this series of patches to bring you an
-important message from Nancy Reagan. If \, anywhere \, at any time
-\, someone offers you an illicit drug \, just say one word in reply...
-;
-#X text 334 313 Now that I'm sure you've heard this important message
-\, we can return to the essentially frivolous occupation of making
-turn-of-the-millenium western art music.;
-#X obj 126 165 *~ 6;
-#X text 561 384 updated for Pd version 0.34;
-#X text 156 305 <-- output;
-#X connect 0 0 10 0;
-#X connect 2 0 3 1;
-#X connect 3 0 2 0;
-#X connect 4 0 3 2;
-#X connect 5 0 16 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 9 0 0 0;
-#X connect 10 0 3 0;
-#X connect 11 0 16 0;
-#X connect 11 0 19 0;
-#X connect 12 0 19 1;
-#X connect 13 0 31 1;
-#X connect 14 0 11 0;
-#X connect 14 0 11 1;
-#X connect 15 0 8 1;
-#X connect 18 0 15 1;
-#X connect 19 0 31 0;
-#X connect 20 0 21 0;
-#X connect 21 0 22 0;
-#X connect 22 0 7 0;
-#X connect 31 0 15 0;
diff --git a/desiredata/doc/3.audio.examples/F03.pulse.spectrum.pd b/desiredata/doc/3.audio.examples/F03.pulse.spectrum.pd
deleted file mode 100644
index 1d04bf85..00000000
--- a/desiredata/doc/3.audio.examples/F03.pulse.spectrum.pd
+++ /dev/null
@@ -1,126 +0,0 @@
-#N canvas 227 143 860 515 12;
-#X obj 189 166 line~;
-#X obj 42 187 cos~;
-#X obj 189 142 pack 0 50;
-#X floatatom 189 41 0 0 100 0 - - -;
-#X obj 43 114 -~ 0.5;
-#X obj 43 140 *~;
-#X obj 189 67 / 10;
-#X obj 189 91 moses 0;
-#X msg 189 115 0;
-#X obj 42 163 clip~ -0.5 0.5;
-#X text 184 23 bandwidth;
-#X obj 189 191 +~ 1;
-#X obj 42 211 +~ 1;
-#X text 63 1 PULSE SPECTRUM MEASUREMENT;
-#X text 14 357 Here is a measured amplitude spectrum for the pulse
-train. Nutice that \, other than a smallish spillover \, the energy
-sits in one "lobe" whose changing width justifies our calling the squeeze
-factor the "bandwidth.";
-#X text 16 428 The spectrum is in units of amplitude. THe sidelobes
-\, although they look small \, are actually only about 34 dB down.
-You can design more complicated pulse trains \, little Blackman window
-functions \, which control the sidelobes much better.;
-#X obj 42 293 output~;
-#X obj 41 262 hip~;
-#N canvas 122 211 558 609 fft 0;
-#X obj 19 61 inlet~;
-#X obj 208 212 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 193 164 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 264 434 samplerate~;
-#X obj 264 457 / 256;
-#X obj 238 261 metro 500;
-#X obj 238 238 inlet;
-#X text 291 236 toggle to graph repeatedly;
-#X text 262 212 bang to graph once;
-#X obj 29 205 /~ 4096;
-#X obj 19 295 tabwrite~ F03-signal;
-#X obj 235 299 tabwrite~ F03-spectrum;
-#X obj 264 409 bang~;
-#X msg 209 322 \; pd dsp 1;
-#X obj 264 482 s freq;
-#X connect 0 0 2 0;
-#X connect 0 0 22 0;
-#X connect 1 0 22 0;
-#X connect 1 0 23 0;
-#X connect 1 0 25 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 21 0;
-#X connect 15 0 16 0;
-#X connect 16 0 26 0;
-#X connect 17 0 22 0;
-#X connect 17 0 23 0;
-#X connect 18 0 17 0;
-#X connect 18 0 25 0;
-#X connect 21 0 23 0;
-#X connect 24 0 15 0;
-#X restore 95 264 pd fft;
-#X obj 155 243 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 155 264 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 176 263 <-- repeatedly;
-#X text 177 243 <-- graph once;
-#X obj 42 235 *~ 0.5;
-#X obj 43 90 phasor~;
-#N canvas 0 0 450 300 graph1 0;
-#X array F03-signal 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 640 321 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array F03-spectrum 259 float 0;
-#X coords 0 0.51 258 -0.008 256 130 1;
-#X restore 579 99 graph;
-#X text 640 454 ---- 0.02 seconds ----;
-#X text 608 230 2;
-#X text 639 230 4;
-#X text 578 230 0;
-#X text 616 245 -- partial number --;
-#X text 671 230 6;
-#X text 704 230 8;
-#X text 732 230 10;
-#X text 764 230 12;
-#X text 796 230 14;
-#X text 605 488 updated for Pd version 0.37;
-#X obj 43 63 r freq;
-#X connect 0 0 11 0;
-#X connect 1 0 12 0;
-#X connect 2 0 0 0;
-#X connect 3 0 6 0;
-#X connect 4 0 5 0;
-#X connect 5 0 9 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 7 1 2 0;
-#X connect 8 0 2 0;
-#X connect 9 0 1 0;
-#X connect 11 0 5 1;
-#X connect 12 0 23 0;
-#X connect 17 0 16 0;
-#X connect 17 0 16 1;
-#X connect 19 0 18 1;
-#X connect 20 0 18 2;
-#X connect 23 0 17 0;
-#X connect 23 0 18 0;
-#X connect 24 0 4 0;
-#X connect 38 0 24 0;
diff --git a/desiredata/doc/3.audio.examples/F04.waveshaping.pulse.pd b/desiredata/doc/3.audio.examples/F04.waveshaping.pulse.pd
deleted file mode 100644
index 5724aeba..00000000
--- a/desiredata/doc/3.audio.examples/F04.waveshaping.pulse.pd
+++ /dev/null
@@ -1,133 +0,0 @@
-#N canvas 240 229 900 586 12;
-#X obj 220 171 line~;
-#X obj 220 147 pack 0 50;
-#X floatatom 220 46 0 0 0 0 - - -;
-#X obj 70 108 *~;
-#X obj 220 72 / 10;
-#X obj 220 96 moses 0;
-#X msg 220 120 0;
-#X text 215 28 bandwidth;
-#X obj 78 141 *~;
-#X obj 18 141 sig~ 1;
-#X obj 39 194 /~;
-#X obj 54 168 +~;
-#X text 111 141 X^2;
-#X text 84 171 1+X^2;
-#X text 71 196 1/(1+X^2);
-#X text 28 4 ANOTHER PULSE WIDTH MOD ALGORITHM;
-#N canvas 0 0 450 300 graph1 0;
-#X array F04-signal 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 646 328 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array F04-spectrum 259 float 0;
-#X coords 0 1.01 258 -0.008 256 200 1;
-#X restore 587 38 graph;
-#X text 646 461 ---- 0.02 seconds ----;
-#X text 614 237 2;
-#X text 645 237 4;
-#X text 584 237 0;
-#X text 622 252 -- partial number --;
-#X text 677 237 6;
-#X text 710 237 8;
-#X text 738 237 10;
-#X text 770 237 12;
-#X text 802 237 14;
-#X obj 40 277 output~;
-#X obj 39 246 hip~;
-#N canvas 122 211 558 609 fft 0;
-#X obj 19 61 inlet~;
-#X obj 224 210 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 193 164 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 264 434 samplerate~;
-#X obj 251 255 metro 500;
-#X obj 251 232 inlet;
-#X text 301 232 toggle to graph repeatedly;
-#X text 278 210 bang to graph once;
-#X obj 29 205 /~ 4096;
-#X obj 264 409 bang~;
-#X obj 264 457 / 512;
-#X obj 19 295 tabwrite~ F04-signal;
-#X obj 250 291 tabwrite~ F04-spectrum;
-#X obj 264 483 s freq/2;
-#X msg 224 321 \; pd dsp 1;
-#X connect 0 0 2 0;
-#X connect 0 0 23 0;
-#X connect 1 0 23 0;
-#X connect 1 0 24 0;
-#X connect 1 0 26 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 20 0;
-#X connect 15 0 22 0;
-#X connect 16 0 23 0;
-#X connect 16 0 24 0;
-#X connect 17 0 16 0;
-#X connect 17 0 26 0;
-#X connect 20 0 24 0;
-#X connect 21 0 15 0;
-#X connect 22 0 25 0;
-#X restore 93 248 pd fft;
-#X obj 153 227 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 153 248 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 174 247 <-- repeatedly;
-#X text 175 227 <-- graph once;
-#X obj 69 81 osc~;
-#X text 632 540 updated for Pd version 0.37;
-#X text 23 515 NOTE: The PAF algorithm is protected by patents belonging
-to IRCAM. Noncommercial use seems to be fine with them but contact
-them first if you want to sell something using this.;
-#X text 24 473 This is the form of pulse train used in the original
-Phase Aligned Formant (PAF) algorithm.;
-#X text 23 342 Here we use waveshaping to make another form of pulse
-train. This one has a neat spectrum: the partials drop off exponentially
-(with the "bandwidth" controlling the rate of dropoff.) In later patches
-we'll use a wavetable to do the waveshaping but for simplicity \, it's
-done algebraically here. The oscillator runs at half the fundamental
-frequency. The symmetry of the waveshaping doubles the frequency of
-the output.;
-#X text 849 222 0;
-#X text 846 35 1;
-#X obj 69 56 r freq/2;
-#X connect 0 0 3 1;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 8 0;
-#X connect 3 0 8 1;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 5 1 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 11 1;
-#X connect 9 0 10 0;
-#X connect 9 0 11 0;
-#X connect 10 0 29 0;
-#X connect 10 0 30 0;
-#X connect 11 0 10 1;
-#X connect 29 0 28 0;
-#X connect 29 0 28 1;
-#X connect 31 0 30 1;
-#X connect 32 0 30 2;
-#X connect 35 0 3 0;
-#X connect 42 0 35 0;
diff --git a/desiredata/doc/3.audio.examples/F05.ring.modulation.pd b/desiredata/doc/3.audio.examples/F05.ring.modulation.pd
deleted file mode 100644
index 937b579e..00000000
--- a/desiredata/doc/3.audio.examples/F05.ring.modulation.pd
+++ /dev/null
@@ -1,160 +0,0 @@
-#N canvas 83 89 793 595 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array F05-signal 882 float 0;
-#X coords 0 1 882 -1 200 130 1;
-#X restore 554 218 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array F05-spectrum 256 float 0;
-#X coords 0 0.51 255 -0.008 256 130 1;
-#X restore 499 22 graph;
-#X text 552 349 ---- 0.02 seconds ----;
-#X text 507 563 updated for Pd version 0.37;
-#X text 495 155 0;
-#X text 534 174 -- partial number --;
-#X text 761 142 0;
-#X text 758 19 0.5;
-#X floatatom 51 61 0 0 100 0 - - -;
-#N canvas 329 22 680 421 pulse-train 0;
-#X obj 184 348 line~;
-#X obj 39 317 cos~;
-#X obj 184 324 pack 0 50;
-#X obj 39 245 -~ 0.5;
-#X obj 39 269 *~;
-#X obj 184 252 / 10;
-#X obj 184 276 moses 0;
-#X msg 184 300 0;
-#X obj 39 293 clip~ -0.5 0.5;
-#X obj 184 372 +~ 1;
-#X obj 39 341 +~ 1;
-#X obj 184 228 inlet;
-#X obj 39 389 outlet~;
-#X obj 39 365 *~ 0.5;
-#X text 53 5 This is a modified version of the pulse train generator
-from two examples back.;
-#X text 107 140 We have to add 1/2 and wrap so that the center of the
-pulse comes at phase zero (previously it was 1/2 cycle out of phase).
-This wasn't a problem before but now we have to be in phase with the
-oscillator we're multpplying with.;
-#X text 276 262 otherwise it's the same as before.;
-#X obj 40 85 phasor~;
-#X obj 40 58 r freq;
-#X connect 0 0 9 0;
-#X connect 1 0 10 0;
-#X connect 2 0 0 0;
-#X connect 3 0 4 0;
-#X connect 4 0 8 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 6 1 2 0;
-#X connect 7 0 2 0;
-#X connect 8 0 1 0;
-#X connect 9 0 4 1;
-#X connect 10 0 13 0;
-#X connect 11 0 5 0;
-#X connect 13 0 12 0;
-#X connect 17 0 3 0;
-#X connect 18 0 17 0;
-#X restore 51 86 pd pulse-train;
-#X text 83 61 <-- bandwidth;
-#X obj 51 219 *~;
-#X text 113 123 <-- modulation frequency as;
-#X text 152 137 multiple of fundamental;
-#X obj 51 277 output~;
-#X obj 50 246 hip~;
-#N canvas 122 211 563 534 fft 0;
-#X obj 19 61 inlet~;
-#X obj 208 212 inlet;
-#X obj 29 92 rfft~;
-#X obj 29 125 *~;
-#X obj 60 125 *~;
-#X obj 29 155 sqrt~;
-#X obj 332 109 block~ 4096 1;
-#X obj 29 181 biquad~ 0 0 0 0 1;
-#X text 93 93 Fourier series;
-#X text 98 146 magnitude;
-#X text 96 131 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 193 164 delay two samples;
-#X text 191 182 for better graphing;
-#X obj 264 434 samplerate~;
-#X obj 245 262 metro 500;
-#X obj 245 233 inlet;
-#X text 298 231 toggle to graph repeatedly;
-#X text 262 212 bang to graph once;
-#X obj 29 205 /~ 4096;
-#X obj 264 409 bang~;
-#X obj 264 483 s freq;
-#X obj 264 457 / 256;
-#X obj 19 295 tabwrite~ F05-signal;
-#X obj 245 294 tabwrite~ F05-spectrum;
-#X msg 224 321 \; pd dsp 1;
-#X connect 0 0 2 0;
-#X connect 0 0 24 0;
-#X connect 1 0 24 0;
-#X connect 1 0 25 0;
-#X connect 1 0 26 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 20 0;
-#X connect 15 0 23 0;
-#X connect 16 0 24 0;
-#X connect 16 0 25 0;
-#X connect 17 0 16 0;
-#X connect 17 0 26 0;
-#X connect 20 0 25 0;
-#X connect 21 0 15 0;
-#X connect 23 0 22 0;
-#X restore 98 245 pd fft;
-#X obj 158 224 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 158 245 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X text 179 244 <-- repeatedly;
-#X text 180 224 <-- graph once;
-#X text 527 155 2;
-#X text 559 155 4;
-#X text 591 155 6;
-#X text 623 155 8;
-#X text 656 155 10;
-#X text 688 155 12;
-#X text 719 155 14;
-#X text 759 213 1;
-#X text 759 337 -1;
-#X text 122 185 modulating oscillator;
-#X text 153 6 RING MODULATED PULSE TRAINS;
-#X text 23 357 Now we take a pulse train and ring modulate it \, which
-effectively aliases the spectrum so that it is centered at any desired
-partial number. The "bandwidth" control still affects the shape of
-the peak \, independently of where it is centered. This generates a
-formant centered at the given partial.;
-#X floatatom 73 123 0 0 100 0 - - -;
-#X obj 73 182 osc~;
-#X obj 73 157 *;
-#X obj 107 157 r freq;
-#X text 23 457 This patch is limited to making formants centered on
-harmonics. The center frequency thus can't be moved smoothly up and
-down at will (try shift-clicking on modulation frequency to make fractions).
-Next we'll look at two techniques for sliding a formant frequency without
-losing harmonicity.;
-#X text 184 85 <-- pulse train;
-#X text 220 101 generator from before;
-#X connect 8 0 9 0;
-#X connect 9 0 11 0;
-#X connect 11 0 15 0;
-#X connect 11 0 16 0;
-#X connect 15 0 14 0;
-#X connect 15 0 14 1;
-#X connect 17 0 16 1;
-#X connect 18 0 16 2;
-#X connect 33 0 35 0;
-#X connect 34 0 11 1;
-#X connect 35 0 34 0;
-#X connect 36 0 35 1;
diff --git a/desiredata/doc/3.audio.examples/F06.packets.pd b/desiredata/doc/3.audio.examples/F06.packets.pd
deleted file mode 100644
index ef098bba..00000000
--- a/desiredata/doc/3.audio.examples/F06.packets.pd
+++ /dev/null
@@ -1,117 +0,0 @@
-#N canvas 207 159 864 663 12;
-#X obj 327 413 line~;
-#X obj 55 456 cos~;
-#N canvas 0 0 450 300 graph1 0;
-#X array pulse-output 882 float 0;
-#X coords 0 1 882 -1 200 130 1;
-#X restore 627 339 graph;
-#X obj 327 390 pack 0 50;
-#X floatatom 327 344 0 0 0 0 - - -;
-#X obj 55 355 -~ 0.5;
-#X obj 55 410 *~;
-#X obj 327 367 / 10;
-#X obj 55 433 clip~ -0.5 0.5;
-#X text 327 322 bandwidth;
-#X obj 327 436 +~ 1;
-#X obj 55 479 +~ 1;
-#X obj 206 491 cos~;
-#X obj 56 547 *~;
-#X floatatom 228 346 4 0 0 0 - - -;
-#X obj 228 366 / 10;
-#X text 627 472 --- 0.02 seconds ---;
-#X obj 206 465 *~;
-#N canvas 129 316 777 218 graph 1;
-#X obj 70 76 inlet~;
-#X obj 662 76 inlet;
-#X obj 67 143 tabwrite~ pulse-output;
-#X obj 298 81 inlet~;
-#X obj 472 74 inlet~;
-#X obj 295 148 tabwrite~ window;
-#X obj 477 149 tabwrite~ carrier;
-#X msg 654 140 \; pd dsp 1;
-#X connect 0 0 2 0;
-#X connect 1 0 2 0;
-#X connect 1 0 5 0;
-#X connect 1 0 6 0;
-#X connect 1 0 7 0;
-#X connect 3 0 5 0;
-#X connect 4 0 6 0;
-#X restore 100 572 pd graph;
-#X obj 228 412 line~;
-#X obj 228 389 pack 0 50;
-#N canvas 0 0 450 300 graph3 0;
-#X array carrier 882 float 0;
-#X coords 0 1 881 -1 200 140 1;
-#X restore 627 188 graph;
-#N canvas 0 0 450 300 graph4 0;
-#X array window 882 float 0;
-#X coords 0 1 881 -1 200 140 1;
-#X restore 628 35 graph;
-#X text 204 573 <-- graph;
-#X floatatom 55 310 4 0 0 0 - - -;
-#X obj 55 331 phasor~ 100;
-#X text 31 2 WINDOWED PACKETS;
-#X text 51 266 fundamental;
-#X text 206 260 center;
-#X text 204 279 freq. (in;
-#X text 203 298 tenths of;
-#X text 202 318 fundamental);
-#X text 119 493 window;
-#X text 241 469 magnified phase;
-#X text 283 509 desired center frequency;
-#X text 255 492 <--this cosine goes at the;
-#X text 284 528 but its phase is reset each;
-#X text 282 547 fundamental period.;
-#X text 28 32 The simpler of two techniques for making slidable center
-frequencies is to synthesize enveloped sinusoidal wave packets. The
-packets should repeat at the fundamental frequency \, but the frequency
-of the packet itself controls the center frequency of the formant.
-The length of the packet varies inversely with bandwidth.;
-#X obj 55 604 output~;
-#X obj 55 580 hip~;
-#X obj 182 573 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 601 635 updated for Pd version 0.37;
-#X obj 55 502 *~ 0.5;
-#X text 831 161 -1;
-#X text 833 31 1;
-#X text 831 314 -1;
-#X text 835 184 1;
-#X text 832 458 -1;
-#X text 835 333 1;
-#X text 26 132 In the patch below \, the "clip~" followed by "cos~"
-and "+~ 1" is the enveloping ("windowing") function \, which appears
-in the top graph. The carrier \, on the other hand \, is a broken sinusoid
-made by amplifying the phasor~ (the "*~" controlled by "center freq.")
-and taking the cos~ of the result. The "breaks" in the sinusoid only
-occur when the enveloping signal is zero.;
-#X text 105 464 raised;
-#X text 113 479 cosine;
-#X text 51 285 frequency;
-#X connect 0 0 10 0;
-#X connect 1 0 11 0;
-#X connect 3 0 0 0;
-#X connect 4 0 7 0;
-#X connect 5 0 6 0;
-#X connect 5 0 17 0;
-#X connect 6 0 8 0;
-#X connect 7 0 3 0;
-#X connect 8 0 1 0;
-#X connect 10 0 6 1;
-#X connect 11 0 43 0;
-#X connect 12 0 13 1;
-#X connect 12 0 18 2;
-#X connect 13 0 18 0;
-#X connect 13 0 40 0;
-#X connect 14 0 15 0;
-#X connect 15 0 20 0;
-#X connect 17 0 12 0;
-#X connect 19 0 17 1;
-#X connect 20 0 19 0;
-#X connect 24 0 25 0;
-#X connect 25 0 5 0;
-#X connect 40 0 39 0;
-#X connect 40 0 39 1;
-#X connect 41 0 18 3;
-#X connect 43 0 13 0;
-#X connect 43 0 18 1;
diff --git a/desiredata/doc/3.audio.examples/F07.packet.spectrum.pd b/desiredata/doc/3.audio.examples/F07.packet.spectrum.pd
deleted file mode 100644
index bef1483b..00000000
--- a/desiredata/doc/3.audio.examples/F07.packet.spectrum.pd
+++ /dev/null
@@ -1,147 +0,0 @@
-#N canvas 83 221 774 628 12;
-#X obj 302 351 line~;
-#X obj 34 444 cos~;
-#X floatatom 71 560 0 0 0;
-#N canvas 176 241 532 273 output 0;
-#X obj 338 160 t b;
-#X obj 338 110 f;
-#X obj 338 60 inlet;
-#X text 344 29 mute;
-#X obj 338 185 f;
-#X msg 425 178 0;
-#X msg 338 85 bang;
-#X obj 338 135 moses 1;
-#X obj 398 111 moses 1;
-#X obj 83 148 dbtorms;
-#X obj 398 86 r master-lvl;
-#X obj 83 42 r master-lvl;
-#X obj 338 210 s master-lvl;
-#X obj 17 148 inlet~;
-#X obj 199 41 inlet;
-#X text 199 18 level;
-#X obj 199 100 s master-lvl;
-#X msg 96 65 set \$1;
-#X obj 96 89 outlet;
-#X msg 214 64 \; pd dsp 1;
-#X obj 83 194 line~;
-#X obj 22 212 *~;
-#X obj 22 241 dac~;
-#X obj 83 171 pack 0 50;
-#X text 15 125 audio;
-#X text 93 110 show level;
-#X obj 17 177 hip~ 1;
-#X connect 0 0 4 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 12 0;
-#X connect 5 0 12 0;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 7 1 5 0;
-#X connect 8 1 4 1;
-#X connect 9 0 23 0;
-#X connect 10 0 1 1;
-#X connect 10 0 8 0;
-#X connect 11 0 9 0;
-#X connect 11 0 17 0;
-#X connect 13 0 26 0;
-#X connect 14 0 16 0;
-#X connect 14 0 19 0;
-#X connect 17 0 18 0;
-#X connect 20 0 21 1;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
-#X connect 23 0 20 0;
-#X connect 26 0 21 0;
-#X restore 35 587 pd output;
-#X msg 111 560 MUTE;
-#X obj 302 327 pack 0 50;
-#X floatatom 302 255 0 0 0;
-#X obj 34 356 -~ 0.5;
-#X obj 34 395 *~;
-#X obj 302 279 / 10;
-#X obj 34 420 clip~ -0.5 0.5;
-#X text 302 233 bandwidth;
-#X obj 302 375 +~ 1;
-#X obj 35 467 +~ 1;
-#X obj 184 440 cos~;
-#X obj 35 496 *~;
-#X floatatom 206 269 4 0 0;
-#X obj 206 293 / 10;
-#X obj 184 414 *~;
-#X text 204 224 center;
-#X text 204 243 freq.;
-#X obj 302 303 max 0;
-#X obj 206 365 line~;
-#X obj 206 341 pack 0 50;
-#X obj 206 317 max 0;
-#X floatatom 34 308 4 0 0;
-#X obj 34 332 phasor~ 100;
-#X text 156 559 <-- output;
-#X text 30 283 freq.;
-#X text 30 264 fundamental;
-#X graph graph1 0 0 128 500 440 492 696 362;
-#X array spectrum 128 float 0;
-#X pop;
-#X msg 108 498 bang;
-#N canvas 204 17 358 238 fft 0;
-#X obj 46 48 inlet~;
-#X obj 159 181 tabwrite~ spectrum;
-#X obj 159 145 inlet;
-#X obj 46 78 rfft~;
-#X obj 46 111 *~;
-#X obj 77 111 *~;
-#X obj 46 141 sqrt~;
-#X obj 191 45 block~ 1024 1;
-#X connect 0 0 3 0;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 3 0 4 1;
-#X connect 3 1 5 0;
-#X connect 3 1 5 1;
-#X connect 4 0 6 0;
-#X connect 5 0 6 0;
-#X connect 6 0 1 0;
-#X restore 59 524 pd fft;
-#X text 439 502 0;
-#X text 687 499 5512;
-#X text 149 498 <-- graph;
-#X text 31 2 WINDOWED PACKET SPECTRUM;
-#X text 19 34 Here's the spectrum you get. Note that even if you put
-the center frequency right on a partial \, there is significant energy
-in neighboring partials (try fundamental 440 \, "center freq" 30 \,
-bandwidth 0.);
-#X text 18 104 The center frequency is in units of ten per partial
-\, or in other words a value of "30" means "centered on the third partial".
-;
-#X text 505 596 updated for Pd version 0.34;
-#X text 22 155 This technique only works if you're doing Hanning-window
-shaped PWM--you can't combine this naturally with FM or with the waveshaping
-technique we'll see later.;
-#X connect 0 0 12 0;
-#X connect 1 0 13 0;
-#X connect 2 0 3 1;
-#X connect 3 0 2 0;
-#X connect 4 0 3 2;
-#X connect 5 0 0 0;
-#X connect 6 0 9 0;
-#X connect 7 0 8 0;
-#X connect 7 0 18 0;
-#X connect 8 0 10 0;
-#X connect 9 0 21 0;
-#X connect 10 0 1 0;
-#X connect 12 0 8 1;
-#X connect 13 0 15 0;
-#X connect 14 0 15 1;
-#X connect 15 0 3 0;
-#X connect 15 0 32 0;
-#X connect 16 0 17 0;
-#X connect 17 0 24 0;
-#X connect 18 0 14 0;
-#X connect 21 0 5 0;
-#X connect 22 0 18 1;
-#X connect 23 0 22 0;
-#X connect 24 0 23 0;
-#X connect 25 0 26 0;
-#X connect 26 0 7 0;
-#X connect 31 0 32 1;
diff --git a/desiredata/doc/3.audio.examples/F08.two.cosines.pd b/desiredata/doc/3.audio.examples/F08.two.cosines.pd
deleted file mode 100644
index ae4788f6..00000000
--- a/desiredata/doc/3.audio.examples/F08.two.cosines.pd
+++ /dev/null
@@ -1,70 +0,0 @@
-#N canvas 534 115 698 613 12;
-#X obj 157 408 cos~;
-#X floatatom 204 198 4 0 100 0 - - -;
-#X obj 204 222 / 10;
-#X text 461 275 --- 0.02 seconds ---;
-#X obj 157 378 *~;
-#X obj 204 294 line~;
-#X obj 204 246 max 0;
-#N canvas 0 0 450 300 graph3 0;
-#X array F08-carrier 882 float 0;
-#X coords 0 2 881 -2 200 140 1;
-#X restore 447 123 graph;
-#X floatatom 57 295 4 0 0 0 - - -;
-#X text 53 251 fundamental;
-#X text 53 270 frequency;
-#X obj 199 408 cos~;
-#X obj 240 321 wrap~;
-#X obj 204 348 -~;
-#X obj 199 378 +~;
-#X obj 204 445 -~;
-#X obj 219 475 *~;
-#X obj 197 500 +~;
-#X obj 204 270 pack 0 50;
-#X text 254 408 synthesize the two partials;
-#X text 447 590 updated for Pd version 0.37;
-#X obj 198 526 hip~;
-#X obj 199 552 output~;
-#X text 26 29 The other \, spiffier way is to make a sum of cosines
-to interpolate between adjacent harmonics. Suppose for example we want
-a center frequency of 5.3 (in units of the fundamental.) We just take
-partial 5 with amplitude 0.7 and partial 6 with amplitude 0.3:;
-#X obj 286 552 tabwrite~ F08-carrier;
-#X text 316 528 <-graph;
-#X obj 284 527 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 57 319 phasor~ 100;
-#X text 83 149 center frequency (in;
-#X text 82 169 tenths of fundamental);
-#X text 125 3 MOVABLE CENTER FREQUENCY BY ADDING TWO COSINES;
-#X text 295 320 the fractional part "q";
-#X text 253 347 subtract to get the integer part "k";
-#X text 249 380 multiply phase by k and k+1;
-#X text 252 444 c2 - c1;
-#X text 267 473 q * (c2 - c1);
-#X text 236 500 q * c2 + (1-q) * c1;
-#X connect 0 0 15 1;
-#X connect 0 0 17 0;
-#X connect 1 0 2 0;
-#X connect 2 0 6 0;
-#X connect 4 0 0 0;
-#X connect 4 0 14 0;
-#X connect 5 0 13 0;
-#X connect 5 0 12 0;
-#X connect 6 0 18 0;
-#X connect 8 0 27 0;
-#X connect 11 0 15 0;
-#X connect 12 0 13 1;
-#X connect 12 0 16 1;
-#X connect 13 0 4 1;
-#X connect 14 0 11 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 1;
-#X connect 17 0 21 0;
-#X connect 17 0 24 0;
-#X connect 18 0 5 0;
-#X connect 21 0 22 0;
-#X connect 21 0 22 1;
-#X connect 26 0 24 0;
-#X connect 27 0 4 0;
-#X connect 27 0 14 1;
diff --git a/desiredata/doc/3.audio.examples/F09.declickit.pd b/desiredata/doc/3.audio.examples/F09.declickit.pd
deleted file mode 100644
index f35f5da8..00000000
--- a/desiredata/doc/3.audio.examples/F09.declickit.pd
+++ /dev/null
@@ -1,94 +0,0 @@
-#N canvas 10 49 579 665 12;
-#X obj 130 481 cos~;
-#X obj 130 451 *~;
-#X obj 172 481 cos~;
-#X obj 214 397 wrap~;
-#X obj 177 402 -~;
-#X obj 172 451 +~;
-#X obj 172 516 -~;
-#X obj 192 548 *~;
-#X obj 170 573 +~;
-#X obj 204 159 loadbang;
-#X obj 204 185 metro 400;
-#X obj 216 209 del 200;
-#X obj 252 326 samphold~;
-#N canvas 0 0 405 406 switch 0;
-#X obj 15 383 outlet~;
-#X obj 8 193 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 329 195 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 18 99 loadbang;
-#X obj 18 131 1;
-#X obj 53 261 sel 1;
-#X obj 53 287 0;
-#X obj 339 259 sel 1;
-#X obj 339 288 0;
-#X obj 47 316 inlet~;
-#X obj 15 344 *~;
-#X obj 340 312 inlet~;
-#X obj 308 340 *~;
-#X connect 1 0 5 0;
-#X connect 1 0 10 1;
-#X connect 2 0 7 0;
-#X connect 2 0 12 1;
-#X connect 3 0 4 0;
-#X connect 4 0 1 0;
-#X connect 5 0 6 0;
-#X connect 6 0 2 0;
-#X connect 7 0 8 0;
-#X connect 8 0 1 0;
-#X connect 9 0 10 0;
-#X connect 10 0 0 0;
-#X connect 11 0 12 0;
-#X connect 12 0 0 0;
-#X coords 0 0 1 1 80 35 1;
-#X restore 177 351 pd switch;
-#X text 31 2 CHANGING THE CENTER FREQUENCY QUICKLY;
-#X text 34 27 Since in the previous patch the amplitudes of the two
-cosines depend on "center frequency" we can't change that discontinuously
-without clicking \, as you hear in this patch. The fix is to use a
-samphold~ object to keep the center frequency frozen except at phase
-crossings. At the phase crossings the two weighted cosines add to one
-\, so we can discontinuously change the frequencies and weights there.
-;
-#X text 266 365 <--toggles to select which one;
-#X text 369 384 is actually used;
-#X obj 171 602 output~;
-#X floatatom 225 264 3 0 50 0 - - -;
-#X obj 178 263 pack;
-#X text 258 263 <--gliss time;
-#X text 324 647 updated for Pd version 0.37;
-#X obj 178 287 line~;
-#X msg 216 239 13.5;
-#X msg 178 239 4;
-#X obj 70 287 phasor~ 80;
-#X connect 0 0 6 1;
-#X connect 0 0 8 0;
-#X connect 1 0 0 0;
-#X connect 1 0 5 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 1;
-#X connect 3 0 7 1;
-#X connect 4 0 1 1;
-#X connect 5 0 2 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 18 0;
-#X connect 8 0 18 1;
-#X connect 9 0 10 0;
-#X connect 10 0 25 0;
-#X connect 10 0 11 0;
-#X connect 11 0 24 0;
-#X connect 12 0 13 1;
-#X connect 13 0 4 0;
-#X connect 13 0 3 0;
-#X connect 19 0 20 1;
-#X connect 20 0 23 0;
-#X connect 23 0 13 0;
-#X connect 23 0 12 0;
-#X connect 24 0 20 0;
-#X connect 25 0 20 0;
-#X connect 26 0 1 0;
-#X connect 26 0 5 1;
-#X connect 26 0 12 1;
diff --git a/desiredata/doc/3.audio.examples/F10.sweepable.FM.pd b/desiredata/doc/3.audio.examples/F10.sweepable.FM.pd
deleted file mode 100644
index 17fc920b..00000000
--- a/desiredata/doc/3.audio.examples/F10.sweepable.FM.pd
+++ /dev/null
@@ -1,152 +0,0 @@
-#N canvas 60 64 834 697 12;
-#X obj 168 476 cos~;
-#X obj 168 430 *~;
-#X obj 211 478 cos~;
-#X obj 252 379 wrap~;
-#X obj 215 378 -~;
-#X obj 211 455 +~;
-#X obj 209 513 -~;
-#X obj 230 539 *~;
-#X obj 215 348 samphold~;
-#X text 167 6 APPLYING TWO-COSINE CARRIER TO FM;
-#X floatatom 232 228 4 0 200 0 - - -;
-#X obj 232 251 / 10;
-#X text 232 147 center;
-#X obj 232 300 line~;
-#X text 232 167 freq. (in;
-#X text 232 187 tenths of;
-#X text 232 207 fundamental);
-#X obj 232 277 pack 0 50;
-#X obj 121 283 phasor~;
-#X floatatom 121 260 4 0 0 0 - - -;
-#X text 106 207 fundamental;
-#X text 106 227 (= mod freq);
-#X text 435 254 index;
-#X text 435 274 (percent);
-#X floatatom 435 295 4 0 500 0 - - -;
-#X obj 385 361 cos~;
-#X obj 435 364 line~;
-#X obj 385 384 *~;
-#X obj 435 318 / 100;
-#X obj 435 341 pack 0 50;
-#X obj 168 453 +~;
-#X text 388 410 modulating;
-#X text 388 430 oscillator;
-#X text 40 452 both phases-->;
-#X text 9 435 add modulator to;
-#X obj 233 632 output~;
-#X obj 232 601 hip~;
-#N canvas 122 211 558 609 fft 0;
-#X obj 23 55 inlet~;
-#X obj 210 303 inlet;
-#X obj 27 215 rfft~;
-#X obj 27 248 *~;
-#X obj 58 248 *~;
-#X obj 27 278 sqrt~;
-#X obj 334 200 block~ 4096 1;
-#X obj 27 304 biquad~ 0 0 0 0 1;
-#X text 91 216 Fourier series;
-#X text 96 269 magnitude;
-#X text 94 254 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 195 255 delay two samples;
-#X text 193 273 for better graphing;
-#X obj 292 79 samplerate~;
-#X obj 240 352 metro 500;
-#X obj 240 329 inlet;
-#X text 293 327 toggle to graph repeatedly;
-#X text 264 303 bang to graph once;
-#X obj 27 328 /~ 4096;
-#X obj 292 54 bang~;
-#X msg 211 413 \; pd dsp 1;
-#X obj 237 390 tabwrite~ F10-spectrum;
-#X obj 292 102 / 4096;
-#X obj 58 135 osc~;
-#X obj 58 163 +~ 1;
-#X obj 28 188 *~;
-#X text 113 138 hanning window;
-#X obj 254 79 0.5;
-#X connect 0 0 27 0;
-#X connect 1 0 22 0;
-#X connect 1 0 23 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 20 0;
-#X connect 15 0 24 0;
-#X connect 16 0 23 0;
-#X connect 17 0 16 0;
-#X connect 17 0 22 0;
-#X connect 20 0 23 0;
-#X connect 21 0 15 0;
-#X connect 21 0 29 0;
-#X connect 24 0 25 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 1;
-#X connect 27 0 2 0;
-#X connect 29 0 25 1;
-#X restore 286 601 pd fft;
-#X obj 346 580 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 346 601 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X text 367 600 <-- repeatedly;
-#X text 368 580 <-- graph once;
-#X text 580 663 updated for Pd version 0.37;
-#N canvas 0 0 450 300 graph1 0;
-#X array F10-spectrum 259 float 0;
-#X coords 0 0.51 258 -0.008 256 130 1;
-#X restore 560 386 graph;
-#X text 552 517 0;
-#X obj 207 565 +~;
-#X text 31 30 We can apply the two-cosine method to FM synthesis to
-get FM spectra which slide up and down: we just treat the cosines like
-carrier signals in an FM instrument. This doesn't work as well as you'd
-wish \, because the phases of the partials of the two FM instruments
-don't line up \, so that \, for indices of modulation above about 20%
-\, you get beating effects as the center frequency goes up and down.
-;
-#X text 614 527 -- frequency --;
-#X text 792 518 2700;
-#X connect 0 0 6 1;
-#X connect 0 0 45 0;
-#X connect 1 0 30 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 1;
-#X connect 3 0 7 1;
-#X connect 4 0 1 1;
-#X connect 5 0 2 0;
-#X connect 6 0 7 0;
-#X connect 7 0 45 1;
-#X connect 8 0 4 0;
-#X connect 8 0 3 0;
-#X connect 10 0 11 0;
-#X connect 11 0 17 0;
-#X connect 13 0 8 0;
-#X connect 17 0 13 0;
-#X connect 18 0 8 1;
-#X connect 18 0 25 0;
-#X connect 18 0 1 0;
-#X connect 18 0 5 1;
-#X connect 19 0 18 0;
-#X connect 24 0 28 0;
-#X connect 25 0 27 0;
-#X connect 26 0 27 1;
-#X connect 27 0 30 1;
-#X connect 28 0 29 0;
-#X connect 29 0 26 0;
-#X connect 30 0 5 0;
-#X connect 30 0 0 0;
-#X connect 36 0 35 0;
-#X connect 36 0 35 1;
-#X connect 38 0 37 1;
-#X connect 39 0 37 2;
-#X connect 45 0 36 0;
-#X connect 45 0 37 0;
diff --git a/desiredata/doc/3.audio.examples/F11.anharmonic.FM.pd b/desiredata/doc/3.audio.examples/F11.anharmonic.FM.pd
deleted file mode 100644
index 333a6e44..00000000
--- a/desiredata/doc/3.audio.examples/F11.anharmonic.FM.pd
+++ /dev/null
@@ -1,126 +0,0 @@
-#N canvas 60 64 790 527 12;
-#X obj 122 381 cos~;
-#X floatatom 173 184 4 0 200 0 - - -;
-#X obj 173 207 / 10;
-#X text 173 103 center;
-#X text 173 123 freq. (in;
-#X text 173 143 tenths of;
-#X text 173 163 fundamental);
-#X floatatom 70 192 4 0 0 0 - - -;
-#X text 46 145 fundamental;
-#X text 46 165 (= mod freq);
-#X text 251 208 index;
-#X text 251 228 (percent);
-#X floatatom 251 249 4 0 500 0 - - -;
-#X obj 251 318 line~;
-#X obj 201 338 *~;
-#X obj 251 272 / 100;
-#X obj 251 295 pack 0 50;
-#X obj 122 358 +~;
-#X text 204 364 modulating;
-#X text 209 381 oscillator;
-#X obj 123 459 output~;
-#X obj 122 428 hip~;
-#N canvas 122 211 558 609 fft 0;
-#X obj 23 55 inlet~;
-#X obj 210 303 inlet;
-#X obj 27 215 rfft~;
-#X obj 27 248 *~;
-#X obj 58 248 *~;
-#X obj 27 278 sqrt~;
-#X obj 334 200 block~ 4096 1;
-#X obj 27 304 biquad~ 0 0 0 0 1;
-#X text 91 216 Fourier series;
-#X text 96 269 magnitude;
-#X text 94 254 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 195 255 delay two samples;
-#X text 193 273 for better graphing;
-#X obj 292 79 samplerate~;
-#X obj 240 352 metro 500;
-#X obj 240 329 inlet;
-#X text 293 327 toggle to graph repeatedly;
-#X text 264 303 bang to graph once;
-#X obj 27 328 /~ 4096;
-#X obj 292 54 bang~;
-#X msg 211 413 \; pd dsp 1;
-#X obj 292 102 / 4096;
-#X obj 58 135 osc~;
-#X obj 58 163 +~ 1;
-#X obj 28 188 *~;
-#X text 113 138 hanning window;
-#X obj 254 79 0.5;
-#X obj 240 390 tabwrite~ F11-spectrum;
-#X connect 0 0 26 0;
-#X connect 1 0 22 0;
-#X connect 1 0 29 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 20 0;
-#X connect 15 0 23 0;
-#X connect 16 0 29 0;
-#X connect 17 0 16 0;
-#X connect 17 0 22 0;
-#X connect 20 0 29 0;
-#X connect 21 0 15 0;
-#X connect 21 0 28 0;
-#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 25 0 26 1;
-#X connect 26 0 2 0;
-#X connect 28 0 24 1;
-#X restore 176 428 pd fft;
-#X obj 236 407 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 236 428 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 257 427 <-- repeatedly;
-#X text 258 407 <-- graph once;
-#X text 530 479 updated for Pd version 0.37;
-#N canvas 0 0 450 300 graph1 0;
-#X array F11-spectrum 259 float 0;
-#X coords 0 0.51 258 -0.008 256 130 1;
-#X restore 514 291 graph;
-#X text 506 422 0;
-#X text 568 432 -- frequency --;
-#X text 743 427 2700;
-#X obj 173 256 *;
-#X obj 173 233 t b f;
-#X obj 201 315 osc~;
-#X obj 122 322 phasor~;
-#X text 31 30 Here's what happens if you just slide the carrier frequency
-around. The spectrum moves up and down all right \, but is only periodic
-at the original period when the center frequency roosts on a harmonic.
-;
-#X text 50 308 carrier;
-#X text 24 325 oscillator;
-#X text 167 6 HOW NOT TO APPLY TWO-COSINE CARRIER TO FM;
-#X connect 0 0 21 0;
-#X connect 0 0 22 0;
-#X connect 1 0 2 0;
-#X connect 2 0 33 0;
-#X connect 7 0 32 0;
-#X connect 7 0 34 0;
-#X connect 12 0 15 0;
-#X connect 13 0 14 1;
-#X connect 14 0 17 1;
-#X connect 15 0 16 0;
-#X connect 16 0 13 0;
-#X connect 17 0 0 0;
-#X connect 21 0 20 0;
-#X connect 21 0 20 1;
-#X connect 23 0 22 1;
-#X connect 24 0 22 2;
-#X connect 32 0 35 0;
-#X connect 33 0 32 0;
-#X connect 33 1 32 1;
-#X connect 34 0 14 0;
-#X connect 35 0 17 0;
diff --git a/desiredata/doc/3.audio.examples/F12.paf.pd b/desiredata/doc/3.audio.examples/F12.paf.pd
deleted file mode 100644
index f220bd45..00000000
--- a/desiredata/doc/3.audio.examples/F12.paf.pd
+++ /dev/null
@@ -1,226 +0,0 @@
-#N canvas 262 0 692 819 12;
-#X obj 38 593 cos~;
-#X obj 38 570 *~;
-#X obj 81 593 cos~;
-#X obj 137 527 wrap~;
-#X obj 101 527 -~;
-#X obj 81 570 +~;
-#X obj 74 623 -~;
-#X obj 94 655 *~;
-#X obj 56 655 +~;
-#X obj 100 500 samphold~;
-#X floatatom 159 378 4 0 500 0 - - -;
-#X obj 159 401 / 10;
-#X text 157 311 center;
-#X obj 159 449 line~;
-#X text 157 359 fundamental);
-#X obj 159 426 pack 0 50;
-#X obj 39 446 phasor~;
-#X floatatom 39 425 4 0 0 0 - - -;
-#X text 19 398 fundamental;
-#X text 303 460 index;
-#X text 303 477 (percent);
-#X floatatom 303 498 4 0 500 0 - - -;
-#X obj 303 544 line~;
-#X obj 224 564 *~;
-#X obj 303 521 pack 0 50;
-#N canvas 0 0 450 300 graph4 0;
-#X array bell-curve 200 float 1;
-#A 0 1.12535e-07 1.54727e-07 2.12059e-07 2.89706e-07 3.94519e-07 5.35535e-07
-7.24633e-07 9.77371e-07 1.31404e-06 1.76105e-06 2.35258e-06 3.13275e-06
-4.15832e-06 5.50199e-06 7.25659e-06 9.54016e-06 1.25023e-05 1.63317e-05
-2.1266e-05 2.76026e-05 3.57128e-05 4.60584e-05 5.92113e-05 7.58768e-05
-9.69224e-05 0.00012341 0.000156634 0.000198167 0.000249912 0.000314163
-0.000393669 0.000491721 0.000612231 0.000759842 0.000940028 0.00115923
-0.00142498 0.00174605 0.00213263 0.00259648 0.00315111 0.00381201 0.00459678
-0.0055254 0.0066204 0.00790705 0.0094136 0.0111714 0.013215 0.0155826
-0.0183156 0.0214592 0.0250621 0.0291763 0.0338573 0.0391639 0.0451575
-0.0519019 0.0594631 0.0679081 0.0773047 0.0877205 0.0992216 0.111872
-0.125732 0.140858 0.1573 0.1751 0.194291 0.214896 0.236928 0.260383
-0.285247 0.311486 0.339053 0.367879 0.397882 0.428956 0.46098 0.493812
-0.527292 0.561244 0.595473 0.62977 0.663916 0.697676 0.730811 0.763074
-0.794216 0.823987 0.852144 0.878447 0.902668 0.924595 0.944027 0.960789
-0.974725 0.985703 0.99362 0.998401 1 0.998401 0.99362 0.985703 0.974725
-0.960789 0.944027 0.924595 0.902668 0.878447 0.852144 0.823987 0.794216
-0.763074 0.730811 0.697676 0.663916 0.62977 0.595473 0.561244 0.527292
-0.493812 0.46098 0.428956 0.397882 0.367879 0.339053 0.311486 0.285247
-0.260383 0.236928 0.214896 0.194291 0.1751 0.1573 0.140858 0.125732
-0.111872 0.0992216 0.0877205 0.0773047 0.0679081 0.0594631 0.0519019
-0.0451575 0.0391639 0.0338573 0.0291763 0.0250621 0.0214592 0.0183156
-0.0155826 0.013215 0.0111714 0.0094136 0.00790705 0.0066204 0.0055254
-0.00459678 0.00381201 0.00315111 0.00259648 0.00213263 0.00174605 0.00142498
-0.00115923 0.000940028 0.000759842 0.000612231 0.000491721 0.000393669
-0.000314163 0.000249912 0.000198167 0.000156634 0.00012341 9.69224e-05
-7.58768e-05 5.92113e-05 4.60584e-05 3.57128e-05 2.76026e-05 2.1266e-05
-1.63317e-05 1.25023e-05 9.54016e-06 7.25659e-06 5.50199e-06 4.15832e-06
-3.13275e-06 2.35258e-06 1.76105e-06 1.31404e-06 9.77371e-07 7.24633e-07
-5.35535e-07 3.94519e-07 2.89706e-07 2.12059e-07 1.54727e-07;
-#X coords 0 1 199 0 200 140 1;
-#X restore 443 555 graph;
-#N canvas 94 264 600 388 make-table 0;
-#X msg 81 44 bang;
-#X obj 81 73 t b b;
-#X obj 159 142 f;
-#X obj 197 142 + 1;
-#X msg 175 112 0;
-#X obj 81 102 until;
-#X obj 161 177 t f f;
-#X obj 76 306 tabwrite bell-curve;
-#X obj 52 270 expr exp(-$f1*$f1);
-#X obj 63 168 sel 199;
-#X obj 51 241 expr ($f1-100)/25;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 1 1 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 6 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 1;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 6 0 10 0;
-#X connect 6 1 7 1;
-#X connect 8 0 7 0;
-#X connect 9 0 5 1;
-#X connect 10 0 8 0;
-#X restore 507 515 pd make-table;
-#X obj 224 541 cos~;
-#X obj 224 518 -~ 0.25;
-#X obj 224 587 +~ 100;
-#X obj 224 610 tabread4~ bell-curve;
-#X obj 95 684 *~;
-#X text 131 682 <--ring mod step;
-#X text 256 635 waveshaper;
-#X text 425 791 updated for Pd version 0.37;
-#X text 157 326 frequency;
-#X text 157 342 (tenths of;
-#X text 441 698 0;
-#X text 632 697 200;
-#N canvas 0 0 450 300 graph1 0;
-#X array F12-spectrum 259 float 0;
-#X coords 0 0.51 258 -0.008 256 130 1;
-#X restore 421 308 graph;
-#X text 418 440 0;
-#X text 475 444 -- frequency --;
-#X text 644 441 2700;
-#X obj 95 756 output~;
-#X obj 94 725 hip~;
-#N canvas 122 211 558 609 fft 0;
-#X obj 23 55 inlet~;
-#X obj 210 303 inlet;
-#X obj 27 215 rfft~;
-#X obj 27 248 *~;
-#X obj 58 248 *~;
-#X obj 27 278 sqrt~;
-#X obj 334 200 block~ 4096 1;
-#X obj 27 304 biquad~ 0 0 0 0 1;
-#X text 91 216 Fourier series;
-#X text 96 269 magnitude;
-#X text 94 254 calculate;
-#X text 21 3 This subpatch computes the spectrum of the incoming signal
-with a (rectangular windowed) FFT. FFTs aren't properly introduced
-until much later.;
-#X text 83 61 signal to analyze;
-#X text 195 255 delay two samples;
-#X text 193 273 for better graphing;
-#X obj 292 79 samplerate~;
-#X obj 240 352 metro 500;
-#X obj 240 329 inlet;
-#X text 293 327 toggle to graph repeatedly;
-#X text 264 303 bang to graph once;
-#X obj 27 328 /~ 4096;
-#X obj 292 54 bang~;
-#X msg 211 413 \; pd dsp 1;
-#X obj 292 102 / 4096;
-#X obj 58 135 osc~;
-#X obj 58 163 +~ 1;
-#X obj 28 188 *~;
-#X text 113 138 hanning window;
-#X obj 254 79 0.5;
-#X obj 240 390 tabwrite~ F12-spectrum;
-#X connect 0 0 26 0;
-#X connect 1 0 22 0;
-#X connect 1 0 29 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 1 4 0;
-#X connect 2 1 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 7 0 20 0;
-#X connect 15 0 23 0;
-#X connect 16 0 29 0;
-#X connect 17 0 16 0;
-#X connect 17 0 22 0;
-#X connect 20 0 29 0;
-#X connect 21 0 15 0;
-#X connect 21 0 28 0;
-#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 25 0 26 1;
-#X connect 26 0 2 0;
-#X connect 28 0 24 1;
-#X restore 148 725 pd fft;
-#X obj 208 704 bng 18 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 208 725 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X text 229 724 <-- repeatedly;
-#X text 230 704 <-- graph once;
-#X text 17 21 Instead of using the two cosines as FM carrier oscillators
-\, we can use them as ring modulators for a natural or synthetic tone.
-Here we use waveshaping - to wit \, a sinusoid looking up a Gaussian
-bell curve. This has the nice properties that the partials are always
-positive cosines in phase \, and the spectrum spreads out smoothly
-as the index changes.;
-#X text 98 1 PAF: TWO-COSINE RING MODULATOR FOR WAVESHAPER;
-#X text 17 253 Then with ~* we do the ring modulation and we're done.
-This is the PAF (phase-aligned formant) synthesis algorithm (patented
-1993 by IRCAM).;
-#X obj 224 492 *~ 0.5;
-#X text 17 129 For phase coherency \, the waveshaper and the cosine
-pair are driven from the same phasor~ object. Since the waveshaping
-is done using a symmetric curve \, its output is at double the frequency
-of the input. So for each cycle of the phasor we compute a half-cycle
-of the sine function (by multiplying by 0.5 and subtracting 0.25 before
-the cosine lookup). We center the cosine output for lookup in a 200-point
-table containing a bell curve.;
-#X connect 0 0 6 1;
-#X connect 0 0 8 0;
-#X connect 1 0 5 0;
-#X connect 1 0 0 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 1;
-#X connect 3 0 7 1;
-#X connect 4 0 1 1;
-#X connect 5 0 2 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 31 0;
-#X connect 9 0 4 0;
-#X connect 9 0 3 0;
-#X connect 10 0 11 0;
-#X connect 11 0 15 0;
-#X connect 13 0 9 0;
-#X connect 15 0 13 0;
-#X connect 16 0 9 1;
-#X connect 16 0 5 1;
-#X connect 16 0 1 0;
-#X connect 16 0 53 0;
-#X connect 17 0 16 0;
-#X connect 21 0 24 0;
-#X connect 22 0 23 1;
-#X connect 23 0 29 0;
-#X connect 24 0 22 0;
-#X connect 27 0 23 0;
-#X connect 28 0 27 0;
-#X connect 29 0 30 0;
-#X connect 30 0 31 1;
-#X connect 31 0 44 0;
-#X connect 31 0 45 0;
-#X connect 44 0 43 0;
-#X connect 44 0 43 1;
-#X connect 46 0 45 1;
-#X connect 47 0 45 2;
-#X connect 53 0 28 0;
diff --git a/desiredata/doc/3.audio.examples/F13.paf.control.pd b/desiredata/doc/3.audio.examples/F13.paf.control.pd
deleted file mode 100644
index 59ebd334..00000000
--- a/desiredata/doc/3.audio.examples/F13.paf.control.pd
+++ /dev/null
@@ -1,164 +0,0 @@
-#N canvas 89 36 756 792 12;
-#X obj 127 608 cos~;
-#X obj 127 585 *~;
-#X obj 170 608 cos~;
-#X obj 225 553 wrap~;
-#X obj 189 553 -~;
-#X obj 170 585 +~;
-#X obj 163 638 -~;
-#X obj 183 670 *~;
-#X obj 145 670 +~;
-#X obj 189 521 samphold~;
-#X floatatom 189 321 4 0 127 0 - - -;
-#X text 185 283 center;
-#X obj 189 388 line~;
-#X obj 189 365 pack 0 50;
-#X obj 80 464 phasor~;
-#X floatatom 80 370 4 0 127 0 - - -;
-#X text 71 331 fundamental;
-#X floatatom 387 384 4 0 127 0 - - -;
-#X obj 387 455 line~;
-#X obj 298 584 *~;
-#X obj 387 432 pack 0 50;
-#N canvas 94 264 600 388 make-table 0;
-#X msg 81 44 bang;
-#X obj 81 73 t b b;
-#X obj 159 142 f;
-#X obj 197 142 + 1;
-#X msg 175 112 0;
-#X obj 81 102 until;
-#X obj 161 177 t f f;
-#X obj 76 306 tabwrite bell-curve;
-#X obj 52 270 expr exp(-$f1*$f1);
-#X obj 63 168 sel 199;
-#X obj 51 241 expr ($f1-100)/25;
-#N canvas 0 0 450 300 graph4 0;
-#X array bell-curve 200 float 1;
-#A 0 1.12535e-07 1.54727e-07 2.12059e-07 2.89706e-07 3.94519e-07 5.35535e-07
-7.24633e-07 9.77371e-07 1.31404e-06 1.76105e-06 2.35258e-06 3.13275e-06
-4.15832e-06 5.50199e-06 7.25659e-06 9.54016e-06 1.25023e-05 1.63317e-05
-2.1266e-05 2.76026e-05 3.57128e-05 4.60584e-05 5.92113e-05 7.58768e-05
-9.69224e-05 0.00012341 0.000156634 0.000198167 0.000249912 0.000314163
-0.000393669 0.000491721 0.000612231 0.000759842 0.000940028 0.00115923
-0.00142498 0.00174605 0.00213263 0.00259648 0.00315111 0.00381201 0.00459678
-0.0055254 0.0066204 0.00790705 0.0094136 0.0111714 0.013215 0.0155826
-0.0183156 0.0214592 0.0250621 0.0291763 0.0338573 0.0391639 0.0451575
-0.0519019 0.0594631 0.0679081 0.0773047 0.0877205 0.0992216 0.111872
-0.125732 0.140858 0.1573 0.1751 0.194291 0.214896 0.236928 0.260383
-0.285247 0.311486 0.339053 0.367879 0.397882 0.428956 0.46098 0.493812
-0.527292 0.561244 0.595473 0.62977 0.663916 0.697676 0.730811 0.763074
-0.794216 0.823987 0.852144 0.878447 0.902668 0.924595 0.944027 0.960789
-0.974725 0.985703 0.99362 0.998401 1 0.998401 0.99362 0.985703 0.974725
-0.960789 0.944027 0.924595 0.902668 0.878447 0.852144 0.823987 0.794216
-0.763074 0.730811 0.697676 0.663916 0.62977 0.595473 0.561244 0.527292
-0.493812 0.46098 0.428956 0.397882 0.367879 0.339053 0.311486 0.285247
-0.260383 0.236928 0.214896 0.194291 0.1751 0.1573 0.140858 0.125732
-0.111872 0.0992216 0.0877205 0.0773047 0.0679081 0.0594631 0.0519019
-0.0451575 0.0391639 0.0338573 0.0291763 0.0250621 0.0214592 0.0183156
-0.0155826 0.013215 0.0111714 0.0094136 0.00790705 0.0066204 0.0055254
-0.00459678 0.00381201 0.00315111 0.00259648 0.00213263 0.00174605 0.00142498
-0.00115923 0.000940028 0.000759842 0.000612231 0.000491721 0.000393669
-0.000314163 0.000249912 0.000198167 0.000156634 0.00012341 9.69224e-05
-7.58768e-05 5.92113e-05 4.60584e-05 3.57128e-05 2.76026e-05 2.1266e-05
-1.63317e-05 1.25023e-05 9.54016e-06 7.25659e-06 5.50199e-06 4.15832e-06
-3.13275e-06 2.35258e-06 1.76105e-06 1.31404e-06 9.77371e-07 7.24633e-07
-5.35535e-07 3.94519e-07 2.89706e-07 2.12059e-07 1.54727e-07;
-#X coords 0 1 199 0 200 140 1;
-#X restore 342 85 graph;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 1 1 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 6 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 1;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 6 0 10 0;
-#X connect 6 1 7 1;
-#X connect 8 0 7 0;
-#X connect 9 0 5 1;
-#X connect 10 0 8 0;
-#X restore 536 647 pd make-table;
-#X obj 298 558 cos~;
-#X obj 298 533 -~ 0.25;
-#X obj 298 610 +~ 100;
-#X obj 298 633 tabread4~ bell-curve;
-#X obj 184 699 *~;
-#X text 330 658 waveshaper;
-#X text 31 2 CHANGING PAF CONTROLS TO NATURAL UNITS;
-#X obj 80 394 mtof;
-#X obj 211 413 expr 1/$f1;
-#X obj 189 341 mtof;
-#X text 184 298 freq.;
-#X obj 189 437 *~;
-#X text 385 357 bandwidth;
-#X obj 387 406 mtof;
-#X obj 387 491 *~;
-#X obj 387 515 *~ 25;
-#X text 18 23 The more "natural" units for describing a formant might
-be center frequency and bandwidth \, so that you can change the fundamental
-without having the formant shift up and down in parallel. Here all
-three frequencies are expressed in MIDI units. The bandwidth and center
-frequency have to be divided by the fundamental (the expr 1/$f1 takes
-its reciprocal and two *~ objects finish the division.);
-#X text 427 490 divide by fundamental;
-#X text 445 514 range for table;
-#X text 364 609 offset to middle of table;
-#X text 196 459 C.F. relative;
-#X text 197 475 to fundamental;
-#X text 69 346 (MIDI units);
-#X text 220 697 ring mod;
-#X obj 184 726 output~;
-#X text 483 762 updated for Pd version 0.37;
-#X text 19 137 Here we take a somewhat lax approach to sampholding
-the center frequency control. The frequency itself changes instantly
-\, but the center/fundamental frequency ratio waits for the next period.
-This gives a slight "chirp" if the fundamental is abruptly raised a
-couple of octaves. There's no easy way using Pd's built-in primitives
-to avoid this. Note however that there's a "paf~" extern available
-which solves this problem better and \, moreover \, runs much faster.
-;
-#X obj 298 508 *~ 0.5;
-#X connect 0 0 6 1;
-#X connect 0 0 8 0;
-#X connect 1 0 5 0;
-#X connect 1 0 0 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 1;
-#X connect 3 0 7 1;
-#X connect 4 0 1 1;
-#X connect 5 0 2 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 26 0;
-#X connect 9 0 4 0;
-#X connect 9 0 3 0;
-#X connect 10 0 31 0;
-#X connect 12 0 33 0;
-#X connect 13 0 12 0;
-#X connect 14 0 9 1;
-#X connect 14 0 1 0;
-#X connect 14 0 5 1;
-#X connect 14 0 49 0;
-#X connect 15 0 29 0;
-#X connect 17 0 35 0;
-#X connect 18 0 36 0;
-#X connect 19 0 24 0;
-#X connect 20 0 18 0;
-#X connect 22 0 19 0;
-#X connect 23 0 22 0;
-#X connect 24 0 25 0;
-#X connect 25 0 26 1;
-#X connect 26 0 46 0;
-#X connect 26 0 46 1;
-#X connect 29 0 30 0;
-#X connect 29 0 14 0;
-#X connect 30 0 33 1;
-#X connect 30 0 36 1;
-#X connect 31 0 13 0;
-#X connect 33 0 9 0;
-#X connect 35 0 20 0;
-#X connect 36 0 37 0;
-#X connect 37 0 19 1;
-#X connect 49 0 23 0;
diff --git a/desiredata/doc/3.audio.examples/G01.delay.pd b/desiredata/doc/3.audio.examples/G01.delay.pd
deleted file mode 100644
index 6b03ed12..00000000
--- a/desiredata/doc/3.audio.examples/G01.delay.pd
+++ /dev/null
@@ -1,48 +0,0 @@
-#N canvas 19 35 777 377 12;
-#X text 103 7 DELAYS;
-#X text 248 79 The delwrite~ object creates the delay line \; you give
-it a name and a size in milliseconds. Each delwrite~ should have a
-different name.;
-#N canvas 0 0 548 248 sample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array G01-tab 61079 float 0;
-#X coords 0 1 61078 -1 200 140 1;
-#X restore 100 20 graph;
-#X obj 61 176 loadbang;
-#X obj 60 221 soundfiler;
-#X msg 61 199 read -resize ../sound/voice.wav G01-tab;
-#X connect 1 0 3 0;
-#X connect 3 0 2 0;
-#X restore 253 337 pd sample;
-#X floatatom 38 196 4 0 999 0 - - -;
-#X text 81 195 <-- delay time;
-#X text 46 230 read from delay line;
-#X obj 38 249 delread~ delay1;
-#X obj 14 87 tabplay~ G01-tab;
-#X obj 14 63 metro 1000;
-#X obj 14 39 loadbang;
-#X text 40 146 write to delay line;
-#X obj 16 303 output~;
-#X obj 15 275 +~;
-#X obj 24 165 delwrite~ delay1 1000;
-#X text 499 348 updated for Pd version 0.37-1;
-#X text 248 24 You can delay a signal using the delwrite~ and delread~
-objects. In this example \, a sample loops continuously and is added
-to a delayed copy of itself.;
-#X text 247 215 The delread~ object always delays the signal an integer
-number of samples and does no interpolation.;
-#X text 28 107 test signal to delay;
-#X text 248 130 Delread~'s arguments are the name of a delwrite (of
-which there should be exactly one) and an optional delay time in milliseconds
-between 0 and the length of the delay line. Each delwrite~ may have
-as many delread~s as you wish \, which can then function as multiple
-delay taps.;
-#X text 114 209 (msec);
-#X connect 3 0 6 0;
-#X connect 6 0 12 1;
-#X connect 7 0 12 0;
-#X connect 7 0 13 0;
-#X connect 8 0 7 0;
-#X connect 9 0 8 0;
-#X connect 12 0 11 0;
-#X connect 12 0 11 1;
diff --git a/desiredata/doc/3.audio.examples/G02.delay.loop.pd b/desiredata/doc/3.audio.examples/G02.delay.loop.pd
deleted file mode 100644
index ba355b7c..00000000
--- a/desiredata/doc/3.audio.examples/G02.delay.loop.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 130 225 601 527 12;
-#X floatatom 36 197 5 -30 130 0 - - -;
-#X floatatom 58 322 0 0 0 0 - - -;
-#X text 88 196 <-- pitch;
-#X text 88 321 <-- delay time;
-#X text 287 420 write to delay line;
-#X text 246 346 read from delay line;
-#X text 72 393 add the original and the delayed signal;
-#X obj 36 233 mtof;
-#X msg 111 233 1;
-#X obj 37 282 *~;
-#X obj 37 394 +~;
-#X obj 58 370 *~ 0.7;
-#X text 116 370 feedback gain;
-#X text 57 9 DELAYS WITH FEEDBACK;
-#X text 33 39 You can feed the result of a delread~ module back into
-its own delwrite~ \, as long as you're careful about stability. For
-delays below 30 msec \, you can frequently hear the resonant pitch.
-For longer delay times you get the famous old delay loop effect.;
-#X obj 111 281 *~;
-#X obj 111 257 adsr 1 100 1000 0 1000;
-#X obj 37 463 output~;
-#X text 32 118 We've added an amplitude control here so that the test
-oscillator only speaks while you're dragging the pitch up and down.
-Be sure to try shift-dragging on the pitch control.;
-#X text 330 495 updated for Pd version 0.37-1;
-#X obj 36 257 phasor~;
-#X obj 58 346 delread~ G02-del 160;
-#X obj 77 419 delwrite~ G02-del 2000;
-#X connect 0 0 7 0;
-#X connect 0 0 8 0;
-#X connect 1 0 21 0;
-#X connect 7 0 20 0;
-#X connect 8 0 16 0;
-#X connect 9 0 10 0;
-#X connect 10 0 17 0;
-#X connect 10 0 17 1;
-#X connect 10 0 22 0;
-#X connect 11 0 10 1;
-#X connect 15 0 9 1;
-#X connect 16 0 15 0;
-#X connect 16 0 15 1;
-#X connect 20 0 9 0;
-#X connect 21 0 11 0;
diff --git a/desiredata/doc/3.audio.examples/G03.delay.variable.pd b/desiredata/doc/3.audio.examples/G03.delay.variable.pd
deleted file mode 100644
index c2ece553..00000000
--- a/desiredata/doc/3.audio.examples/G03.delay.variable.pd
+++ /dev/null
@@ -1,77 +0,0 @@
-#N canvas 100 17 660 504 12;
-#X obj 33 305 hip~ 10;
-#X floatatom 301 221 0 0 0 0 - - -;
-#X obj 301 269 line~;
-#X obj 301 245 pack 0 100;
-#X floatatom 226 191 0 0 0 0 - - -;
-#X floatatom 382 297 0 0 0 0 - - -;
-#X obj 382 369 line~;
-#X obj 382 345 pack 0 100;
-#X obj 382 321 * 0.01;
-#X floatatom 113 166 0 0 0 0 - - -;
-#X obj 113 237 line~;
-#X obj 113 213 pack 0 100;
-#X obj 33 257 *~;
-#X obj 33 281 cos~;
-#X floatatom 33 134 0 0 0 0 - - -;
-#X obj 33 158 mtof;
-#X obj 33 182 * 0.5;
-#X obj 33 329 clip~ -0.2 0.2;
-#X obj 113 189 * 0.01;
-#X obj 33 353 +~;
-#X obj 361 395 *~;
-#X obj 226 287 *~;
-#X obj 226 215 / 100;
-#X obj 33 377 hip~ 5;
-#X obj 226 263 +~ 1;
-#X obj 226 239 osc~ 0;
-#X obj 226 311 +~ 1.46;
-#X text 154 164 <-- timbre;
-#X text 66 135 <-- pitch;
-#X text 279 191 <-- cycle frequency (hundredths);
-#X text 354 222 <-- cycle depth (msec);
-#X text 431 298 <-- feedback (hundredths);
-#X text 89 6 VARIABLE DELAYS;
-#X obj 33 206 osc~ 0;
-#X text 46 32 This is a fuzzed FM generator going into a delay loop
-\, this time using a variable delay object (vd~). You can get several
-interesting effects this way. We have taken the precaution of clipping
-inside the loop to avoid instabilities. You can push the loop gain
-past 1 if you want \, it will just oscillate.;
-#X obj 32 409 output~;
-#X obj 226 335 vd~ G03-del;
-#X obj 361 443 delwrite~ G03-del 1000;
-#X obj 361 419 clip~ -1 1;
-#X text 387 481 updated for Pd version 0.37-1;
-#X connect 0 0 17 0;
-#X connect 1 0 3 0;
-#X connect 2 0 21 1;
-#X connect 3 0 2 0;
-#X connect 4 0 22 0;
-#X connect 5 0 8 0;
-#X connect 6 0 20 1;
-#X connect 7 0 6 0;
-#X connect 8 0 7 0;
-#X connect 9 0 18 0;
-#X connect 10 0 12 1;
-#X connect 11 0 10 0;
-#X connect 12 0 13 0;
-#X connect 13 0 0 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 16 0 33 0;
-#X connect 17 0 19 0;
-#X connect 18 0 11 0;
-#X connect 19 0 23 0;
-#X connect 20 0 38 0;
-#X connect 21 0 26 0;
-#X connect 22 0 25 0;
-#X connect 23 0 20 0;
-#X connect 23 0 35 0;
-#X connect 23 0 35 1;
-#X connect 24 0 21 0;
-#X connect 25 0 24 0;
-#X connect 26 0 36 0;
-#X connect 33 0 12 0;
-#X connect 36 0 19 1;
-#X connect 38 0 37 0;
diff --git a/desiredata/doc/3.audio.examples/G04.control.blocksize.pd b/desiredata/doc/3.audio.examples/G04.control.blocksize.pd
deleted file mode 100644
index efae501a..00000000
--- a/desiredata/doc/3.audio.examples/G04.control.blocksize.pd
+++ /dev/null
@@ -1,79 +0,0 @@
-#N canvas 100 17 637 513 12;
-#N canvas 195 311 647 354 delay-writer 0;
-#X obj 86 220 inlet~;
-#X obj 86 326 outlet~;
-#X obj 392 197 block~ 1;
-#X obj 164 267 *~ 0.99;
-#X obj 87 272 +~;
-#X obj 165 221 inlet;
-#X text 80 7 Because of the feedback \, the delwrite~ has to be computed
-after the delread~. So we set the blocksize to 1 to minimize the resulting
-delay.;
-#X text 390 219 this object sets the;
-#X text 389 236 block size for audio;
-#X text 388 255 computations in this;
-#X obj 165 244 delread~ G04-del;
-#X obj 98 302 delwrite~ G04-del 1000;
-#X text 79 183 incoming;
-#X text 81 198 pulses;
-#X text 165 182 delay;
-#X text 166 197 time;
-#X text 388 273 window. Must be a;
-#X text 388 292 power of two.;
-#X text 77 60 The smaller the blocksize the more expensive the computations
-are \, so don't reduce it lower than you have to. Also \, it's a good
-idea to isolate the portion of the patch that requires the smaller
-block size \, and only run that portion that way. Here \, the pulses
-that excite the delay line are computed outside this window \, and
-the output level control as well.;
-#X connect 0 0 4 0;
-#X connect 3 0 4 1;
-#X connect 4 0 1 0;
-#X connect 4 0 11 0;
-#X connect 5 0 10 0;
-#X connect 10 0 3 0;
-#X restore 153 420 pd delay-writer;
-#X obj 283 384 expr 1000/$f1;
-#X obj 283 358 mtof;
-#X msg 153 355 1;
-#X msg 192 355 0;
-#X obj 153 254 metro 500;
-#X obj 283 304 random 60;
-#X obj 153 228 loadbang;
-#X obj 283 330 + 30;
-#X text 86 9 CONTROLLING DELAY WITH BLOCK~;
-#X text 299 420 <-- here is the delay loop;
-#X text 63 43 In situations where a delay read feeds back to a delay
-write \, the minimum possible delay you can achieve is one block \,
-which by default is 64 samples \, or 1.45 msec at 44100 Hz. You can
-shorten the minimum delay by changing the block size. Do this in a
-subpatch (open it to see how).;
-#X obj 153 449 output~;
-#X obj 153 387 vline~;
-#X text 371 487 updated for Pd version 0.37-1;
-#X text 61 124 Here we use this principle to make a harpisichord-like
-sound by sending pulses into a recirculating delay line (which imitates
-the travel of the wave up and down the harpsichord string.) This is
-related to Karplus-Strong synthesis \, but the idea is probably much
-older than their paper.;
-#X text 33 328 this makes;
-#X text 32 346 a rectangular;
-#X text 31 384 long.;
-#X text 409 366 length of delay line is;
-#X text 410 384 1000/(frequency);
-#X obj 192 329 del 1;
-#X text 32 364 pulse 1 msec;
-#X connect 0 0 12 0;
-#X connect 0 0 12 1;
-#X connect 1 0 0 1;
-#X connect 2 0 1 0;
-#X connect 3 0 13 0;
-#X connect 4 0 13 0;
-#X connect 5 0 3 0;
-#X connect 5 0 6 0;
-#X connect 5 0 21 0;
-#X connect 6 0 8 0;
-#X connect 7 0 5 0;
-#X connect 8 0 2 0;
-#X connect 13 0 0 0;
-#X connect 21 0 4 0;
diff --git a/desiredata/doc/3.audio.examples/G05.execution.order.pd b/desiredata/doc/3.audio.examples/G05.execution.order.pd
deleted file mode 100644
index d50c97a9..00000000
--- a/desiredata/doc/3.audio.examples/G05.execution.order.pd
+++ /dev/null
@@ -1,79 +0,0 @@
-#N canvas 100 17 683 605 12;
-#X floatatom 424 290 0 0 100 0 - - -;
-#X obj 59 404 +~;
-#X text 86 9 ORDER OF EXECUTION OF DELWRITE~ AND DELREAD~/VD~;
-#X text 42 29 If you're writing to and reading from a delay line \,
-you have to get the write sorted before the read or else you'll never
-get less than a block's delay. This patch compares a "wrong" flanger
-with a "right" one:;
-#X text 471 284 <-- delay in samples;
-#X obj 94 490 *~;
-#X obj 94 466 -~;
-#N canvas 0 0 600 400 delay-writer 0;
-#X obj 96 107 inlet~;
-#X obj 96 180 outlet~;
-#X obj 116 144 delwrite~ G05-d2 1000;
-#X connect 0 0 1 0;
-#X connect 0 0 2 0;
-#X restore 283 403 pd delay-writer;
-#N canvas 0 0 280 330 delay-reader 0;
-#X obj 96 107 inlet~;
-#X obj 89 267 outlet~;
-#X obj 112 163 inlet~;
-#X obj 89 237 +~;
-#X obj 112 198 vd~ G05-d2;
-#X connect 0 0 3 0;
-#X connect 2 0 4 0;
-#X connect 3 0 1 0;
-#X connect 4 0 3 1;
-#X restore 282 431 pd delay-reader;
-#X obj 59 490 +~;
-#X obj 424 313 / 44.1;
-#X obj 59 534 output~;
-#X obj 135 490 tgl 18 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X text 159 490 <-- off to hear left-hand side \; on to hear right
-hand side.;
-#X text 393 575 updated for Pd version 0.37-1;
-#X obj 424 337 pack 0 30;
-#N canvas 0 0 450 300 pulse 0;
-#X obj 64 197 outlet~;
-#X obj 63 93 phasor~ 50;
-#X obj 63 119 *~ 100;
-#X obj 63 144 clip~ 0.75 1.25;
-#X obj 64 170 cos~;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X restore 60 302 pd pulse;
-#X obj 81 354 delwrite~ G05-d1 1000;
-#X obj 82 381 vd~ G05-d1;
-#X obj 424 362 line~;
-#X text 44 96 To get them to go off in the correct order \, put the
-delread~ and vd~ objects in subpatches. The audio connections between
-the subpatches force the "reader" to be sorted after the "writer".
-DSP sorting in Pd follows the hierarchy of subpatches.;
-#X text 43 175 To hear the difference scroll the delay time between
-0 and 100 samples. The patch at left doesn't let you get below 64 samples
-\, but the patch at right can go all the way down to one sample.;
-#X text 45 241 You can use the same strategy to avoid picking up unwanted
-64-sample delays in send~/receive~ and throw~/catch~ pairs.;
-#X connect 0 0 10 0;
-#X connect 1 0 6 1;
-#X connect 1 0 9 0;
-#X connect 5 0 9 1;
-#X connect 6 0 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 6 0;
-#X connect 9 0 11 0;
-#X connect 9 0 11 1;
-#X connect 10 0 15 0;
-#X connect 12 0 5 1;
-#X connect 15 0 19 0;
-#X connect 16 0 1 0;
-#X connect 16 0 7 0;
-#X connect 16 0 17 0;
-#X connect 18 0 1 1;
-#X connect 19 0 8 1;
-#X connect 19 0 18 0;
diff --git a/desiredata/doc/3.audio.examples/G06.octave.doubler.pd b/desiredata/doc/3.audio.examples/G06.octave.doubler.pd
deleted file mode 100644
index a95fe24e..00000000
--- a/desiredata/doc/3.audio.examples/G06.octave.doubler.pd
+++ /dev/null
@@ -1,114 +0,0 @@
-#N canvas 110 17 775 614 12;
-#X obj 463 303 loadbang;
-#X obj 553 222 adc~ 1;
-#X obj 463 358 soundfiler;
-#X obj 31 394 output~;
-#X obj 554 269 tabwrite~ E03-table;
-#X msg 463 330 read ../sound/voice.wav E03-table;
-#X obj 58 83 fiddle~ 2048;
-#X obj 126 106 unpack;
-#X obj 126 130 moses 1;
-#X obj 199 108 mtof;
-#N canvas 0 0 446 202 /SUBPATCH/ 0;
-#X obj 261 30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X obj 100 20 inlet~;
-#X obj 99 87 *~;
-#X obj 98 159 outlet~;
-#X text 381 181 corner;
-#X connect 0 0 2 1;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X coords 0 0 100 100 40 18 1;
-#X restore 77 329 pd;
-#N canvas 0 0 446 202 /SUBPATCH/ 0;
-#X obj 261 30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 100 20 inlet~;
-#X obj 99 87 *~;
-#X obj 98 159 outlet~;
-#X text 381 181 corner;
-#X connect 0 0 2 1;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X coords 0 0 100 100 40 18 1;
-#X restore 31 329 pd;
-#N canvas 414 195 613 302 looper 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array E03-table 44103 float 0;
-#X coords 0 1.02 44103 -1.02 200 130 1;
-#X restore 349 22 graph;
-#X text 347 161 ---- 44103 samples ----;
-#X obj 35 77 +~ 1;
-#X obj 35 25 phasor~ 1;
-#X obj 35 50 *~ 44100;
-#X obj 35 106 tabread4~ E03-table;
-#X obj 35 132 outlet~;
-#X text 46 238 one-second sample reader loop. You can replace this
-with an adc~ if you want to go live.;
-#X connect 2 0 5 0;
-#X connect 3 0 4 0;
-#X connect 4 0 2 0;
-#X connect 5 0 6 0;
-#X restore 31 30 pd looper;
-#X text 547 309 re-read original sample;
-#X obj 565 246 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 584 244 <-- record a sample;
-#X text 152 314 on/off for original;
-#X text 123 330 <--and processed sounds;
-#X text 240 3 OCTAVE DOUBLING VIA VARIABLE COMB FILTER;
-#X obj 31 367 +~;
-#X obj 252 157 samplerate~;
-#X obj 199 156 t f b;
-#X obj 59 58 delwrite~ G06-del 100;
-#X obj 79 234 delread~ G06-del;
-#X obj 101 282 vd~ G06-del;
-#X obj 78 306 +~;
-#X obj 230 210 +;
-#X obj 199 131 expr 500/$f1;
-#X obj 230 262 line~;
-#X obj 230 239 pack 0 20;
-#X text 243 108 fundamental frequency;
-#X text 311 131 1/2 period \, in msec;
-#X text 286 201 estimate fiddle~ delay;
-#X text 491 592 updated for Pd version 0.37-1;
-#X text 159 401 We already saw how to use ring modulation to alias
-a pitched sound down one octave. Here we do the reverse: filter out
-all odd harmonics using a variable-delay comb filter tuned one octave
-above the incoming sound. We use two taps into the delay line. The
-fixed one (delread~) adjusts for the delayed output of fiddle~. The
-variable one (vd~) adds to this an additional delay equal to 1/2 the
-measured period of the incoming sound. THese two are added. Odd harmonics
-are 180 degrees out of phase at the two taps and cancel. Even harmonics
-get through - so the sound goes up an octave \, without denaturing
-the timbre as a speed-up would.;
-#X obj 252 183 expr 2048000/$f1;
-#X text 288 216 as one window (in msec);
-#X connect 0 0 5 0;
-#X connect 1 0 4 0;
-#X connect 5 0 2 0;
-#X connect 6 2 7 0;
-#X connect 7 0 8 0;
-#X connect 8 1 9 0;
-#X connect 9 0 27 0;
-#X connect 10 0 19 1;
-#X connect 11 0 19 0;
-#X connect 12 0 6 0;
-#X connect 12 0 11 0;
-#X connect 12 0 22 0;
-#X connect 14 0 4 0;
-#X connect 19 0 3 0;
-#X connect 19 0 3 1;
-#X connect 20 0 35 0;
-#X connect 21 0 26 0;
-#X connect 21 1 20 0;
-#X connect 23 0 25 0;
-#X connect 24 0 25 1;
-#X connect 25 0 10 0;
-#X connect 26 0 29 0;
-#X connect 27 0 21 0;
-#X connect 28 0 24 0;
-#X connect 29 0 28 0;
-#X connect 35 0 26 1;
-#X connect 35 0 23 0;
diff --git a/desiredata/doc/3.audio.examples/G07.shaker.pd b/desiredata/doc/3.audio.examples/G07.shaker.pd
deleted file mode 100644
index 1da97e8e..00000000
--- a/desiredata/doc/3.audio.examples/G07.shaker.pd
+++ /dev/null
@@ -1,80 +0,0 @@
-#N canvas 159 89 808 531 12;
-#X obj 21 438 output~;
-#X obj 21 411 +~;
-#X obj 33 192 delwrite~ G07-del 30;
-#X obj 99 391 line~;
-#X obj 63 391 *~;
-#X obj 93 335 line~;
-#X obj 57 335 *~;
-#X obj 80 281 line~;
-#X obj 44 281 *~;
-#X obj 58 221 line~;
-#X obj 22 221 *~;
-#X text 51 8 THE "SHAKER";
-#X obj 279 86 + 1;
-#X obj 279 109 mod 4;
-#X obj 244 83 f;
-#X obj 284 160 random 1000;
-#X obj 244 135 t f b;
-#X obj 244 37 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X floatatom 347 34 5 10 1000 0 - - -;
-#X obj 244 242 route 0 1 2 3;
-#X obj 44 255 delread~ G07-del 30;
-#X obj 23 165 phasor~ 80;
-#X obj 57 309 delread~ G07-del 17;
-#X obj 63 365 delread~ G07-del 11;
-#X obj 347 59 * 4;
-#X obj 284 187 expr 2 * $f1/1000 - 0.7;
-#X floatatom 23 142 5 30 1000 0 - - -;
-#X obj 244 58 metro 50;
-#X obj 244 218 pack 0 0 200;
-#X text 23 118 frequency;
-#X text 225 17 on/off;
-#X text 344 13 time constant (msec);
-#X text 536 511 updated for Pd version 0.37-1;
-#X text 266 306 This is a time-varying comb filter \, combining four
-delayed copies of the input signal. The amplitude of each delayed copy
-varies randomly between -0.7 and +1.3. Each time the metronome goes
-off \, one of the four delay's gains is changed in sequence. The change
-occurs over the next four ticks of the metronome (so \, if the metronome
-ticks every 50 msec \, each message to a line~ has a second argument
-of 200.);
-#X text 268 424 Any collection of four gains for the four delayed copies
-of the signal (including the original) defines some sort of irregular
-comb filter. The peaks and valleys of the comb filter shift constantly
-as the gains change to new \, random values.;
-#X connect 1 0 0 0;
-#X connect 1 0 0 1;
-#X connect 3 0 4 1;
-#X connect 4 0 1 1;
-#X connect 5 0 6 1;
-#X connect 6 0 1 1;
-#X connect 7 0 8 1;
-#X connect 8 0 1 1;
-#X connect 9 0 10 1;
-#X connect 10 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 14 1;
-#X connect 14 0 12 0;
-#X connect 14 0 16 0;
-#X connect 15 0 25 0;
-#X connect 16 0 28 0;
-#X connect 16 1 15 0;
-#X connect 17 0 27 0;
-#X connect 18 0 24 0;
-#X connect 18 0 27 1;
-#X connect 19 0 9 0;
-#X connect 19 1 7 0;
-#X connect 19 2 5 0;
-#X connect 19 3 3 0;
-#X connect 20 0 8 0;
-#X connect 21 0 2 0;
-#X connect 21 0 10 0;
-#X connect 22 0 6 0;
-#X connect 23 0 4 0;
-#X connect 24 0 28 2;
-#X connect 25 0 28 1;
-#X connect 26 0 21 0;
-#X connect 27 0 14 0;
-#X connect 28 0 19 0;
diff --git a/desiredata/doc/3.audio.examples/G08.reverb.pd b/desiredata/doc/3.audio.examples/G08.reverb.pd
deleted file mode 100644
index 09941436..00000000
--- a/desiredata/doc/3.audio.examples/G08.reverb.pd
+++ /dev/null
@@ -1,253 +0,0 @@
-#N canvas 390 121 616 352 12;
-#N canvas 0 0 499 321 test-input 0;
-#X obj 75 253 outlet~;
-#X obj 74 201 -~;
-#X obj 74 177 *~ 3;
-#X obj 111 183 *~ 2;
-#X floatatom 74 81 0 0 0 0 - - -;
-#X obj 74 153 clip~ 0 0.667;
-#X text 124 80 <-- pitch;
-#X obj 74 105 mtof;
-#X msg 195 142 1;
-#X obj 74 225 *~;
-#X obj 74 129 phasor~ 0;
-#X obj 195 190 tabread4~ dbtorms;
-#X obj 195 166 adsr 100 100 2000 0 2000;
-#X obj 73 54 inlet;
-#N canvas 0 0 600 392 conversion-tables 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array dbtorms 123 float 1;
-#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
-2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
-4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
-8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
-0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
-0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
-0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
-0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
-0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
-0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
-0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
-0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
-0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
-0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
-0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
-2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
-6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
-#X coords 0 10 123 0 200 100 1;
-#X restore 70 45 graph;
-#X text 272 138 0;
-#X text 274 38 10;
-#X text 89 148 ------ 123 samples ------;
-#N canvas 0 0 450 300 graph2 0;
-#X array mtof 130 float 1;
-#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499
-12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017
-21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478
-36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705
-61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989
-103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814
-174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183
-293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164
-493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991
-830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51
-1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32
-2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07
-4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88
-7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3
-11839.8 12543.9 13289.8 14080;
-#X coords 0 12000 130 0 200 100 1;
-#X restore 77 222 graph;
-#X text 87 330 ------ 130 samples ------;
-#X text 286 315 0;
-#X text 288 215 12000;
-#N canvas 244 212 672 338 regenerate-tables 0;
-#X msg 415 84 bang;
-#X obj 415 113 t b b;
-#X obj 474 177 f;
-#X obj 512 177 + 1;
-#X msg 483 147 0;
-#X obj 415 142 until;
-#X obj 474 211 t f f;
-#X obj 414 238 mtof;
-#X obj 405 202 sel 129;
-#X obj 413 264 tabwrite mtof;
-#X obj 35 227 moses 2;
-#X msg 19 76 bang;
-#X obj 19 105 t b b;
-#X obj 90 166 f;
-#X obj 128 166 + 1;
-#X msg 112 138 0;
-#X obj 19 134 until;
-#X obj 11 194 sel 122;
-#X msg 35 258 0;
-#X obj 79 259 dbtorms;
-#X obj 90 194 t f f;
-#X obj 35 291 tabwrite dbtorms;
-#X text 18 49 bang to recalculate dbtorms table;
-#X text 356 50 bang to recalculate the mtof table;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 1 1 4 0;
-#X connect 2 0 3 0;
-#X connect 2 0 6 0;
-#X connect 2 0 8 0;
-#X connect 3 0 2 1;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 6 0 7 0;
-#X connect 6 1 9 1;
-#X connect 7 0 9 0;
-#X connect 8 0 5 1;
-#X connect 10 0 18 0;
-#X connect 10 1 19 0;
-#X connect 11 0 12 0;
-#X connect 12 0 16 0;
-#X connect 12 1 15 0;
-#X connect 13 0 14 0;
-#X connect 13 0 17 0;
-#X connect 13 0 20 0;
-#X connect 14 0 13 1;
-#X connect 15 0 13 1;
-#X connect 16 0 13 0;
-#X connect 17 0 16 1;
-#X connect 18 0 21 0;
-#X connect 19 0 21 0;
-#X connect 20 0 10 0;
-#X connect 20 1 21 1;
-#X restore 375 76 pd regenerate-tables;
-#X restore 260 101 pd conversion-tables;
-#X connect 1 0 9 0;
-#X connect 2 0 1 0;
-#X connect 3 0 1 1;
-#X connect 4 0 7 0;
-#X connect 4 0 8 0;
-#X connect 5 0 2 0;
-#X connect 7 0 10 0;
-#X connect 8 0 12 0;
-#X connect 9 0 0 0;
-#X connect 10 0 3 0;
-#X connect 10 0 5 0;
-#X connect 11 0 9 1;
-#X connect 12 0 11 0;
-#X connect 13 0 4 0;
-#X restore 39 114 pd test-input;
-#X text 135 6 REVERBERATOR;
-#X floatatom 39 87 0 10 130 0 - - -;
-#X text 76 87 <-- pitch;
-#N canvas 96 169 958 610 reverb 0;
-#X obj 13 19 inlet~;
-#X obj 13 43 reverb-echo echo-del1 5.43216;
-#X obj 277 215 +~;
-#X obj 319 215 +~;
-#X obj 67 276 outlet~;
-#X obj 137 276 outlet~;
-#X obj 238 334 +~;
-#X obj 347 335 +~;
-#X obj 280 334 -~;
-#X obj 387 334 -~;
-#X obj 237 390 +~;
-#X obj 281 391 +~;
-#X obj 325 392 -~;
-#X obj 364 392 -~;
-#X obj 324 474 *~ 0;
-#X obj 282 473 *~ 0;
-#X obj 237 472 *~ 0;
-#X obj 365 475 *~ 0;
-#X obj 632 365 inlet;
-#X obj 632 437 / 200;
-#X obj 632 389 min 100;
-#X obj 632 412 max 0;
-#X obj 238 583 delwrite~ loop-del1 60;
-#X obj 283 561 delwrite~ loop-del2 71.9345;
-#X obj 364 515 delwrite~ loop-del4 95.945;
-#X obj 298 154 delread~ loop-del1 60;
-#X obj 340 179 delread~ loop-del2 71.9345;
-#X obj 408 233 delread~ loop-del4 95.945;
-#X obj 386 208 delread~ loop-del3 86.7545;
-#X obj 325 538 delwrite~ loop-del3 86.7545;
-#X obj 13 67 reverb-echo echo-del2 8.45346;
-#X obj 13 91 reverb-echo echo-del3 13.4367;
-#X obj 13 115 reverb-echo echo-del4 21.5463;
-#X obj 13 139 reverb-echo echo-del5 34.3876;
-#X obj 13 163 reverb-echo echo-del6 55.5437;
-#X text 286 42 "early echo" generators \, which also increase echo
-density. Open one to see what they do.;
-#X text 300 115 Get the outputs of the recirculating delays. Add the
-inputs to two of them.;
-#X text 420 313 Do a power-conserving mix of them in pairs. First combine
-(1 \, 2) and (3 \, 4)...;
-#X text 402 385 ...then (1 \, 3) and (2 \, 4);
-#X text 446 469 The two mixing stages have a combined gain of 2 \,
-so the recirculation gain is limited to 0.5.;
-#X text 586 542 Put the signals back into the;
-#X text 584 557 recirculating delays.;
-#X text 29 296 Tap outputs from here.;
-#X text 708 381 0 to 100 to control reverb;
-#X text 719 396 time.;
-#X text 691 364 feedback gain on a scale of;
-#X connect 0 0 1 0;
-#X connect 1 0 30 0;
-#X connect 1 1 30 1;
-#X connect 2 0 4 0;
-#X connect 2 0 6 0;
-#X connect 2 0 8 0;
-#X connect 3 0 5 0;
-#X connect 3 0 6 1;
-#X connect 3 0 8 1;
-#X connect 6 0 10 0;
-#X connect 6 0 12 0;
-#X connect 7 0 12 1;
-#X connect 7 0 10 1;
-#X connect 8 0 11 0;
-#X connect 8 0 13 0;
-#X connect 9 0 11 1;
-#X connect 9 0 13 1;
-#X connect 10 0 16 0;
-#X connect 11 0 15 0;
-#X connect 12 0 14 0;
-#X connect 13 0 17 0;
-#X connect 14 0 29 0;
-#X connect 15 0 23 0;
-#X connect 16 0 22 0;
-#X connect 17 0 24 0;
-#X connect 18 0 20 0;
-#X connect 19 0 17 1;
-#X connect 19 0 16 1;
-#X connect 19 0 15 1;
-#X connect 19 0 14 1;
-#X connect 20 0 21 0;
-#X connect 21 0 19 0;
-#X connect 25 0 2 1;
-#X connect 26 0 3 1;
-#X connect 27 0 7 1;
-#X connect 27 0 9 1;
-#X connect 28 0 7 0;
-#X connect 28 0 9 0;
-#X connect 30 0 31 0;
-#X connect 30 1 31 1;
-#X connect 31 0 32 0;
-#X connect 31 1 32 1;
-#X connect 32 0 33 0;
-#X connect 32 1 33 1;
-#X connect 33 0 34 0;
-#X connect 33 1 34 1;
-#X connect 34 0 2 0;
-#X connect 34 1 3 0;
-#X restore 58 179 pd reverb;
-#X floatatom 134 155 0 0 100 0 - - -;
-#X text 169 155 <-- feedback (100 maximum);
-#X obj 38 206 output~;
-#X text 342 317 updated for Pd version 0.37-1;
-#X text 149 180 <-- open to see how it works;
-#X text 34 269 Many improvements are possible. Much better reverberators
-can be found in the "extras" library.;
-#X text 29 30 Here is a simple recirculating reverberator. "Feedback"
-should be between 0 and 100 - if 100 \, the reverberation lasts forever.
-;
-#X connect 0 0 4 0;
-#X connect 0 0 7 0;
-#X connect 2 0 0 0;
-#X connect 4 0 7 0;
-#X connect 4 1 7 1;
-#X connect 5 0 4 1;
diff --git a/desiredata/doc/3.audio.examples/G09.pitchshift.pd b/desiredata/doc/3.audio.examples/G09.pitchshift.pd
deleted file mode 100644
index 7687dc66..00000000
--- a/desiredata/doc/3.audio.examples/G09.pitchshift.pd
+++ /dev/null
@@ -1,162 +0,0 @@
-#N canvas 93 36 964 554 12;
-#X floatatom 19 87 0 0 0 0 - - -;
-#X obj 82 358 *~;
-#X obj 205 295 line~;
-#X floatatom 237 112 0 0 0 0 - - -;
-#X text 68 9 PITCH SHIFTER;
-#X obj 205 269 pack 0 200;
-#X obj 237 86 r window;
-#X obj 19 61 r transpose;
-#X obj 19 143 exp;
-#X floatatom 19 169 6 0 0 0 - - -;
-#X obj 19 259 /;
-#X obj 146 189 * 0.001;
-#X obj 314 365 line~;
-#X obj 314 340 pack 0 200;
-#X floatatom 314 289 0 0 0 0 - - -;
-#X obj 314 263 r delay;
-#X obj 82 384 +~;
-#X obj 19 410 cos~;
-#X obj 19 437 *~;
-#X obj 19 466 +~;
-#X obj 106 317 wrap~;
-#X obj 251 360 *~;
-#X obj 251 393 +~;
-#X obj 188 420 cos~;
-#X obj 188 447 *~;
-#X msg 492 56 \; transpose 0 \; window 100 \; delay 0;
-#X obj 492 30 loadbang;
-#X obj 146 216 t b f;
-#X floatatom 19 285 6 0 0 0 - - -;
-#X obj 106 290 +~ 0.5;
-#X obj 19 358 -~ 0.5;
-#X obj 19 384 *~ 0.5;
-#X obj 188 359 -~ 0.5;
-#X obj 188 392 *~ 0.5;
-#X obj 19 196 - 1;
-#X obj 19 117 * 0.05776;
-#X obj 19 222 * -1;
-#X text 53 86 <-- transposition;
-#X text 96 99 (halftones);
-#X text 82 163 speed;
-#X text 81 177 change;
-#X text 281 111 <--window (msec);
-#X text 54 252 tape head;
-#N canvas 0 0 612 637 test-input 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array array1 155948 float 0;
-#X coords 0 1 155947 -1 200 150 1;
-#X restore 150 141 graph;
-#X obj 139 518 tabread4~ array1;
-#X obj 139 333 r totsamps;
-#X obj 139 413 /;
-#X obj 139 465 *~ 0;
-#X obj 139 439 phasor~ 0;
-#X obj 139 492 +~ 1;
-#X msg 139 386 44100;
-#X obj 139 360 t b f;
-#X obj 182 469 r totsamps;
-#X text 153 538 sample loop for;
-#X text 153 555 test signal;
-#X obj 162 30 loadbang;
-#X obj 139 590 outlet~;
-#X obj 393 169 r readfile;
-#X obj 393 199 symbol;
-#X msg 392 228 read -resize \$1 array1;
-#X obj 392 256 soundfiler;
-#X obj 392 284 s totsamps;
-#X msg 161 64 \; readfile ../sound/bell.aiff;
-#X connect 1 0 13 0;
-#X connect 2 0 8 0;
-#X connect 3 0 5 0;
-#X connect 4 0 6 0;
-#X connect 5 0 4 0;
-#X connect 6 0 1 0;
-#X connect 7 0 3 0;
-#X connect 8 0 7 0;
-#X connect 8 1 3 1;
-#X connect 9 0 4 1;
-#X connect 12 0 19 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X restore 264 11 pd test-input;
-#X text 425 153 This is a classic rotating-tape-head style pitch shifter
-using the vd~ variable delay object. Ther are two moving tape heads
-\, each of which is loudest at the middle of its trajectory \, and
-enveloped out at the moment it has to jump back (or forward) to start
-another scratch. Most of the brain work is in computing how fast the
-tape heads have to move to get the desired transposition.;
-#X text 425 272 The "window size" is the total trajectory of the read
-points in the delay line \, in milliseconds. The delay times are controlled
-by a phasor~ object. The second delay time \, 180 degrees out of phase
-from the first one \, is computed using the "wrap" object.;
-#X text 423 362 The "window size" is the total trajectory of the read
-points in the delay line \, in milliseconds. The delay times are controlled
-by a phasor~ object. The second delay time \, 180 degrees out of phase
-from the first one \, is computed using the "wrap" object.;
-#X text 422 454 The cos~ objects compute the fadein and fadeout of
-the two delay line outputs. They each traverse the positive half of
-the cosine waveform (phase -0.25 to +0.25) over the time the phase
-goes from one end to the other.;
-#X obj 19 493 output~;
-#X obj 19 316 phasor~;
-#X text 689 534 updated for Pd version 0.37-1;
-#X obj 314 316 max 1.5;
-#X text 317 222 delay;
-#X text 314 240 (msec);
-#X obj 237 139 max 1;
-#X text 55 265 rotation freq;
-#X obj 82 410 vd~ G09-del;
-#X obj 251 422 vd~ G09-del;
-#X obj 264 42 delwrite~ G09-del 5000;
-#X connect 0 0 35 0;
-#X connect 1 0 16 0;
-#X connect 2 0 1 1;
-#X connect 2 0 21 1;
-#X connect 3 0 54 0;
-#X connect 5 0 2 0;
-#X connect 6 0 3 0;
-#X connect 7 0 0 0;
-#X connect 8 0 9 0;
-#X connect 9 0 34 0;
-#X connect 10 0 28 0;
-#X connect 11 0 27 0;
-#X connect 12 0 16 1;
-#X connect 12 0 22 1;
-#X connect 13 0 12 0;
-#X connect 14 0 51 0;
-#X connect 15 0 14 0;
-#X connect 16 0 56 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
-#X connect 19 0 48 0;
-#X connect 19 0 48 1;
-#X connect 20 0 21 0;
-#X connect 20 0 32 0;
-#X connect 21 0 22 0;
-#X connect 22 0 57 0;
-#X connect 23 0 24 0;
-#X connect 24 0 19 1;
-#X connect 26 0 25 0;
-#X connect 27 0 10 0;
-#X connect 27 1 10 1;
-#X connect 28 0 49 0;
-#X connect 29 0 20 0;
-#X connect 30 0 31 0;
-#X connect 31 0 17 0;
-#X connect 32 0 33 0;
-#X connect 33 0 23 0;
-#X connect 34 0 36 0;
-#X connect 35 0 8 0;
-#X connect 36 0 10 0;
-#X connect 43 0 58 0;
-#X connect 49 0 1 0;
-#X connect 49 0 30 0;
-#X connect 49 0 29 0;
-#X connect 51 0 13 0;
-#X connect 54 0 11 0;
-#X connect 54 0 5 0;
-#X connect 56 0 18 1;
-#X connect 57 0 24 1;
diff --git a/desiredata/doc/3.audio.examples/H01.low-pass.pd b/desiredata/doc/3.audio.examples/H01.low-pass.pd
deleted file mode 100644
index 81a713b8..00000000
--- a/desiredata/doc/3.audio.examples/H01.low-pass.pd
+++ /dev/null
@@ -1,185 +0,0 @@
-#N canvas 97 42 601 612 12;
-#X obj 72 411 mtof;
-#X floatatom 72 388 5 0 0 0 - #0-pit -;
-#X obj 41 542 output~;
-#X obj 41 457 lop~;
-#X obj 42 354 noise~;
-#X text 124 387 <-- cutoff (pitch units);
-#X text 135 434 <-- cutoff (Hertz);
-#X floatatom 72 436 5 0 0 0 - - -;
-#X text 348 582 updated for Pd version 0.39;
-#X text 88 459 low-pass filter;
-#X obj 130 535 tabwrite~ H01-graph;
-#X obj 130 510 metro 250;
-#X obj 130 490 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 148 487 graphing on/off;
-#N canvas 0 0 450 300 graph2 0;
-#X array H01-graph 882 float 3;
-#A 0 -0.107788 -0.0695636 -0.0991016 -0.104581 -0.0683972 -0.0547128
--0.0857414 -0.0731684 -0.0892636 -0.115914 -0.0935128 -0.0572466 -0.0387586
--0.0429956 -0.03826 -0.0628797 -0.0383263 -0.0720175 -0.0923909 -0.0707558
--0.0792164 -0.102187 -0.0888189 -0.119908 -0.083863 -0.0677126 -0.0554309
--0.044719 -0.0248649 -0.0482707 -0.0692472 -0.103905 -0.101273 -0.117807
--0.100956 -0.0905779 -0.0676211 -0.0299763 -0.0190183 0.00623894 -0.000664497
-0.0291359 0.0310484 0.0412564 0.0375735 0.0676889 0.0348717 0.00747152
-0.0416666 0.0529021 0.0418099 0.0405759 0.0303367 -0.00428127 0.0140712
--0.0111072 0.0243947 -0.0104408 -0.0142505 -0.0287291 -0.0119835 0.00876151
--0.0281321 -0.0325635 -0.0618363 -0.0379124 -0.0447592 -0.0507954 -0.0403398
--0.0277581 -0.00226383 0.000989536 -0.0323217 -0.0164512 -0.0156964
--0.0436928 -0.045223 -0.0706908 -0.0382667 -0.00177098 0.0290649 0.0149072
-0.0483574 0.0453535 0.0100187 -0.00270613 0.0298578 0.0470317 0.0301263
-0.0478455 0.0134859 0.0488288 0.0766369 0.0916206 0.11869 0.0944563
-0.102745 0.086215 0.0845207 0.0662227 0.0609466 0.0952278 0.0771313
-0.103073 0.101067 0.0915918 0.100309 0.0651311 0.0553397 0.0623315
-0.050316 0.0844677 0.0996978 0.0715106 0.084598 0.0947672 0.115172
-0.134093 0.118854 0.106047 0.120693 0.0961966 0.0571329 0.0854602 0.084371
-0.0538877 0.0744577 0.0563968 0.0753962 0.0748331 0.0605493 0.0795627
-0.0600295 0.0432455 0.0582205 0.0920203 0.0640656 0.0253824 -0.008527
--0.0243436 -0.0588714 -0.0239946 0.00784105 0.0119875 0.0161209 0.00780566
-0.00216991 -0.0288565 -0.0521791 -0.0658445 -0.0868191 -0.0673713 -0.0889776
--0.0546807 -0.0256506 -0.0375237 -0.0118962 -0.0477717 -0.0384217 -0.0385089
--0.0696784 -0.098759 -0.121121 -0.127174 -0.157189 -0.121443 -0.0989412
--0.0615983 -0.0711882 -0.0760313 -0.0566161 -0.056104 -0.0875121 -0.0734271
--0.037525 -0.0681574 -0.0689616 -0.0900591 -0.0574559 -0.04051 -0.0333117
--0.0260634 -0.0202531 -0.0302473 -0.0346772 -0.052936 -0.0798849 -0.0780231
--0.111591 -0.112165 -0.129226 -0.11253 -0.138539 -0.122338 -0.138645
--0.132606 -0.112523 -0.139122 -0.169654 -0.132431 -0.136376 -0.130106
--0.110972 -0.113595 -0.131592 -0.141568 -0.108734 -0.075847 -0.0711363
--0.0525791 -0.0216604 -0.0196736 -0.0186081 -0.0186695 -0.00602199
-0.0257979 0.0132076 0.0225488 0.00748564 0.0165994 0.00166184 -0.00116405
-0.0028765 0.01807 0.0157059 0.0473739 0.0708991 0.0862786 0.0650413
-0.038138 0.015989 0.0521245 0.0605891 0.0431341 0.00429233 0.028138
-0.00477928 0.00181729 -0.028107 -0.0360127 -0.00712468 -0.0312668 -0.0523252
--0.0479352 -0.0513783 -0.0250772 -0.0142933 -0.047864 -0.0252179 -0.0219197
-0.0153334 0.0518051 0.082624 0.0535017 0.0535462 0.0506847 0.0717359
-0.0774448 0.0591473 0.0602611 0.0708395 0.0654832 0.0261038 0.0107588
-0.00770543 0.0203729 0.033363 0.029335 0.0483838 0.0607855 0.0245724
-0.0550305 0.0593506 0.0753188 0.081294 0.096557 0.117197 0.105438 0.111979
-0.0953627 0.0978146 0.084516 0.0952146 0.117297 0.0851524 0.0863281
-0.049295 0.0757788 0.0866482 0.0738062 0.0984422 0.0885168 0.116305
-0.0949217 0.0562471 0.0898681 0.0643755 0.0681146 0.0863296 0.0516047
-0.0595782 0.0605373 0.0295923 0.0568693 0.0749412 0.0804035 0.108818
-0.0786603 0.0506026 0.0129134 0.0381891 0.0305477 0.0364073 0.0411764
-0.0721042 0.0629199 0.03039 0.0474877 0.0100055 0.0283331 0.0424028
-0.0700528 0.0932837 0.116089 0.146493 0.171112 0.198628 0.1636 0.135356
-0.164266 0.144544 0.132615 0.128501 0.129495 0.141165 0.145633 0.141941
-0.170706 0.193988 0.204823 0.228202 0.219125 0.204054 0.227319 0.231326
-0.230171 0.204664 0.230591 0.189557 0.202459 0.184563 0.212896 0.202201
-0.221436 0.214395 0.195221 0.209657 0.214416 0.202139 0.222888 0.237836
-0.245874 0.22457 0.194835 0.159835 0.142986 0.120742 0.119331 0.147719
-0.17693 0.157802 0.153323 0.151851 0.155677 0.148854 0.139333 0.145233
-0.166518 0.140436 0.150237 0.126701 0.135908 0.166416 0.15391 0.152768
-0.181048 0.149057 0.136385 0.1213 0.144767 0.113465 0.0980506 0.0852771
-0.106682 0.130461 0.10524 0.0793894 0.07123 0.0447812 0.0792345 0.0479509
-0.0700904 0.0308896 0.0279068 0.0312166 0.010152 -0.00943106 0.0010242
--0.00752998 0.0143407 0.0027725 0.033508 0.0621824 0.0643498 0.0827609
-0.113321 0.11629 0.139206 0.101752 0.0988734 0.107286 0.128068 0.14154
-0.148363 0.124029 0.0968996 0.127442 0.100244 0.0940884 0.0805303 0.103963
-0.0874826 0.0588413 0.0720198 0.0853478 0.0902383 0.0788942 0.0475014
-0.0707652 0.0384297 0.0538394 0.0763012 0.0483987 0.0713554 0.0473328
-0.0415702 0.0532321 0.0475937 0.0208587 0.0030926 0.00438177 -0.0204396
--0.00825569 0.0180096 0.0456204 0.0765333 0.0938012 0.110089 0.115665
-0.13934 0.144259 0.155082 0.164549 0.192087 0.159342 0.176142 0.149727
-0.174968 0.170935 0.134127 0.123663 0.11653 0.113447 0.102327 0.0764594
-0.0887578 0.079355 0.0692447 0.0727442 0.0913222 0.115159 0.137636
-0.154978 0.176904 0.156243 0.13039 0.104399 0.0853428 0.0666318 0.0615526
-0.0907602 0.0502914 0.0434091 0.00788628 -0.0191843 -0.0395026 -0.0596938
--0.0723036 -0.0806951 -0.0861116 -0.0864571 -0.0488058 -0.0711986 -0.0797166
--0.0688114 -0.0318625 -0.0673463 -0.0444878 -0.0250519 -0.024727 -0.0310858
--0.00561093 -0.0207001 -0.0340927 -0.0551734 -0.0817888 -0.0705976
--0.0835859 -0.0866976 -0.0565736 -0.0797509 -0.0968247 -0.0655236 -0.0760219
--0.0670947 -0.0342146 -0.0274503 -0.0263804 -0.0317333 -0.039663 -0.0119034
--0.046866 -0.0359958 -0.0318836 -0.0499625 -0.0574402 -0.029796 0.0028338
--0.0262898 -0.041154 -0.0473188 -0.0255545 -0.058172 -0.0601881 -0.0914168
--0.102286 -0.135733 -0.13837 -0.13175 -0.139201 -0.160906 -0.136196
--0.11435 -0.073056 -0.0694626 -0.0599314 -0.0349573 -0.00661064 -0.0128436
--0.0368892 -0.00783622 -0.0285016 -0.0257515 -0.000656539 0.000578916
-0.00997914 0.0309158 0.00448781 -0.0276183 -0.00975017 -0.0431335 -0.0420573
--0.0318631 -0.0461821 -0.0493957 -0.0468264 -0.0278063 -0.0239267 -0.0240269
--0.0446192 -0.0791041 -0.0634024 -0.0949552 -0.122094 -0.130089 -0.110653
--0.07832 -0.0717672 -0.0448359 -0.0454325 -0.075843 -0.0655465 -0.0499949
--0.0848139 -0.107986 -0.0831531 -0.0721088 -0.103859 -0.0650817 -0.0753315
--0.0991717 -0.072808 -0.0810555 -0.0679525 -0.0566175 -0.0827188 -0.0822597
--0.0497494 -0.0154982 -0.00131288 0.0318942 -0.00235687 -0.0344436
--0.0249813 -0.00212817 0.0348011 0.0207401 0.00218581 -0.0346692 -0.000621661
--0.0106329 -0.0261485 0.00856931 -0.0171581 0.0152674 0.0466481 0.0456615
-0.0728295 0.0601254 0.0639082 0.0949887 0.09166 0.118261 0.120631 0.120818
-0.150657 0.154468 0.134964 0.0965974 0.0907992 0.069314 0.0611587 0.0707784
-0.0627047 0.0717109 0.0659585 0.0296832 0.0352495 0.00141861 0.010894
-0.0426848 0.0419218 0.0141017 0.0413311 0.037778 0.0154291 0.0312945
-0.00510286 -0.00271059 -0.0291284 -0.045397 -0.0762688 -0.0445058 -0.057707
--0.0779557 -0.0735523 -0.0922772 -0.0727918 -0.0429784 -0.00911861
--0.0379944 -0.0658339 -0.0784915 -0.0792981 -0.0453014 -0.0197867 -0.00123178
-0.000799734 -0.00204599 0.0349492 0.0623098 0.0770006 0.0882193 0.0484045
-0.0760622 0.0945022 0.0567368 0.0286078 0.00189384 0.0315546 0.0374527
-0.0395075 0.0591211 0.0415475 0.0732162 0.0588977 0.0850963 0.0465228
-0.0698241 0.0407602 0.0431113 0.0065717 0.00936337 0.0222241 0.0327647
-0.0270807 -0.0111891 0.0063837 -0.0086459 -0.0364951 -0.0200965 -0.0318325
--0.0576028 -0.0557316 -0.0675803 -0.0887475 -0.0980934 -0.0881446 -0.117229
--0.125822 -0.13378 -0.142539 -0.108397 -0.13497 -0.138471 -0.164523
--0.174647 -0.18636 -0.157472 -0.148646 -0.108121 -0.104372 -0.0695942
--0.0542974 -0.0701001 -0.100999 -0.0658883 -0.0947834 -0.113894 -0.0981114
--0.108426 -0.100378 -0.102227 -0.0818266 -0.103135 -0.0720306 -0.0440222
--0.0219618 -0.0453231 -0.019184 0.0157131 -0.013545 -0.0248696 -0.0166098
--0.0489199 -0.0269982 -0.0224125 -0.0413912 -0.0728588 -0.0586017 -0.0349842
--0.0338855 -0.0588961 -0.0928709 -0.11376 -0.0790886 -0.100094 -0.126293
--0.10676 -0.136216 -0.109541 -0.136053 -0.112742 -0.136117 -0.146529
--0.156998 -0.163319 -0.137112 -0.146644 -0.138866 -0.159482 -0.185248
--0.206002 -0.16925 -0.178855 -0.140085 -0.105426 -0.095303 -0.0736452
--0.066341 -0.0689736 -0.0914969 -0.0725721 -0.0824288 -0.049098 -0.0139474
--0.00957104 0.0134051 -0.0091349 0.00555033 0.0117049 -0.0230348 -0.0545547
--0.050228 -0.0431037 -0.0668625 -0.029803 -0.0551605 -0.0175891 -0.0435808
--0.0240586 -0.0455508 -0.00746894 0.0213663 0.0569028 0.0190693 0.000740271
-0.000412262 -0.0233437 -0.0205415 -0.0240432 0.00448952 0.00916993
-0.00155166 -0.00567939 -0.00725616 0.0138388 0.0162082 -0.00138934
--0.0077004 -0.0261998 -0.0100701 -0.0337348 -0.0154704 -0.0291058 -0.0299364
--0.00924212 0.0247502 -0.0060416 -0.0118114 -0.0158459 0.0158545 -0.00827235
--0.00602365 -0.0132283 0.0105079 0.0432025 0.0698796 0.0576105 0.0538253
-0.066991 0.0715161 0.0405482 0.0741857 0.0802094 0.113967 0.126283
-0.111464 0.0926309 0.0545991 0.0568134 0.0770984 0.0533353 0.0142316
--0.0181225 0.00490977 0.0275315 0.0202685 0.00414232 0.0273551 0.0158572
--0.00476758 -0.0362654 -0.0701252 -0.0547324 -0.0708724 -0.0970369
--0.099428 -0.102544 -0.0736354 -0.0556618 -0.0863601;
-#X coords 0 1 882 -1 200 140 1;
-#X restore 384 386 graph;
-#X text 408 528 --- 0.02 sec ---;
-#X text 28 30 This and the following patches show how to use filters
-in Pd \, starting with the simplest one: the one-pole low-pass filter.
-Here we test it with an input of white noise. The lop~ object does
-the filtering. Its left inlet takes an audio signal to be filtered
-\, and its right inlet takes messages to set its cutoff frequency in
-Hertz.;
-#X text 26 129 The lop~ object is normalized to pass DC (the lowest
-frequency) with a gain of one. Higher frequencies are progressively
-more and more attenuated. The lower the cutoff frequency \, the lower
-the total power of the filtered noise. If you graph the output you'll
-see that the waveform gets smoother (and smaller overall) as the cutoff
-frequency is lowered.;
-#X text 28 243 At the cutoff frequency the gain is about -3 dB \, and
-above that the gain drops a further 6 dB per octave. (Sometimes one
-uses the word "rolloff" instead of "cutoff" to emphasize the gradual
-way the gain drops off with frequency.);
-#X text 108 353 white noise \, test signal;
-#X text 185 6 ONE-POLE LOW-PASS FILTER;
-#N canvas 0 0 450 300 loadbang 0;
-#X obj 85 16 loadbang;
-#X obj 85 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 85 59 f \$0;
-#X text 18 179 boxes.;
-#X text 16 161 This subpatch loads initial values in number;
-#X msg 84 83 \; \$1-pit 60;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 129 582 pd loadbang;
-#X connect 0 0 7 0;
-#X connect 1 0 0 0;
-#X connect 3 0 2 0;
-#X connect 3 0 2 1;
-#X connect 3 0 10 0;
-#X connect 4 0 3 0;
-#X connect 7 0 3 1;
-#X connect 11 0 10 0;
-#X connect 12 0 11 0;
diff --git a/desiredata/doc/3.audio.examples/H02.high-pass.pd b/desiredata/doc/3.audio.examples/H02.high-pass.pd
deleted file mode 100644
index 3342c64e..00000000
--- a/desiredata/doc/3.audio.examples/H02.high-pass.pd
+++ /dev/null
@@ -1,173 +0,0 @@
-#N canvas 29 10 607 643 12;
-#X obj 38 563 output~;
-#X text 336 611 updated for Pd version 0.39;
-#X obj 126 544 metro 250;
-#X obj 126 524 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 144 521 graphing on/off;
-#N canvas 0 0 450 300 graph2 0;
-#X array H02-graph 882 float 3;
-#A 0 0.86084 0.876465 0.891113 0.904785 0.917725 0.929688 0.940918
-0.950928 0.960205 0.968506 0.97583 0.982178 0.987793 0.992188 0.995605
-0.998047 0.999512 1 0.999756 0.998291 0.99585 0.992432 0.988037 0.982666
-0.976318 0.968994 0.960938 0.95166 0.94165 0.930664 0.918701 0.905762
-0.89209 0.877441 0.862061 0.845703 0.828613 0.810547 0.791748 0.772217
-0.751953 0.730957 0.709229 0.686768 0.663574 0.639893 0.615479 0.590576
-0.564941 0.538818 0.511963 0.484863 0.457275 0.429199 0.400635 0.371826
-0.342529 0.312744 0.282959 0.252686 0.222168 0.19165 0.160645 0.129639
-0.0986328 0.0673828 0.0358887 0.00463867 -0.0266113 -0.0581055 -0.0893555
--0.120361 -0.151611 -0.182373 -0.213135 -0.243652 -0.273926 -0.303955
--0.33374 -0.363037 -0.39209 -0.420654 -0.448975 -0.476807 -0.50415
--0.530762 -0.557129 -0.583008 -0.608154 -0.632568 -0.656738 -0.679932
--0.702637 -0.724609 -0.74585 -0.766357 -0.786133 -0.805176 -0.823242
--0.840576 -0.857178 -0.873047 -0.887939 -0.901855 -0.915039 -0.927246
--0.938477 -0.94873 -0.958252 -0.966797 -0.974365 -0.980957 -0.986572
--0.991211 -0.994873 -0.997559 -0.999268 -1 -0.999756 -0.998535 -0.996338
--0.993164 -0.989014 -0.983887 -0.977783 -0.970947 -0.962891 -0.953857
--0.944092 -0.933105 -0.921387 -0.908936 -0.895264 -0.880859 -0.865479
--0.849365 -0.83252 -0.814697 -0.796143 -0.776855 -0.756592 -0.73584
--0.714111 -0.691895 -0.668945 -0.645264 -0.621094 -0.596191 -0.570801
--0.544678 -0.518066 -0.491211 -0.463623 -0.435547 -0.407227 -0.378418
--0.349121 -0.31958 -0.289795 -0.259521 -0.229248 -0.198486 -0.167725
--0.136719 -0.105713 -0.0744629 -0.0432129 -0.0117188 0.0195312 0.0507812
-0.0822754 0.113281 0.144531 0.175293 0.206055 0.236816 0.26709 0.297119
-0.326904 0.356445 0.385498 0.414307 0.442627 0.470459 0.497803 0.524902
-0.55127 0.577148 0.602539 0.627197 0.651367 0.674805 0.69751 0.719727
-0.740967 0.761719 0.781738 0.800781 0.819336 0.836914 0.853516 0.869385
-0.884521 0.898682 0.912109 0.924561 0.936035 0.946533 0.956299 0.964844
-0.972656 0.979492 0.985352 0.990234 0.994141 0.99707 0.999023 1 1 0.999023
-0.99707 0.994141 0.990234 0.985352 0.979248 0.972412 0.964844 0.956055
-0.946289 0.935791 0.924316 0.911865 0.898438 0.884277 0.869141 0.853271
-0.836426 0.818848 0.800537 0.78125 0.76123 0.740723 0.719238 0.697021
-0.674316 0.650879 0.626709 0.601807 0.57666 0.550781 0.52417 0.497314
-0.469971 0.441895 0.413574 0.38501 0.355713 0.326416 0.296631 0.266357
-0.236084 0.205566 0.174805 0.143799 0.112793 0.081543 0.050293 0.0187988
--0.0124512 -0.0437012 -0.0749512 -0.106201 -0.137451 -0.168457 -0.199219
--0.229736 -0.260254 -0.290283 -0.320068 -0.349609 -0.378906 -0.407715
--0.436035 -0.464111 -0.491699 -0.518799 -0.545166 -0.571289 -0.59668
--0.621582 -0.645752 -0.669434 -0.692383 -0.7146 -0.736328 -0.75708
--0.7771 -0.796631 -0.815186 -0.832764 -0.849854 -0.865967 -0.881104
--0.895508 -0.90918 -0.921631 -0.93335 -0.944092 -0.954102 -0.962891
--0.970947 -0.978027 -0.984131 -0.989258 -0.993408 -0.996582 -0.998779
--0.999756 -1 -0.999268 -0.997559 -0.994873 -0.991211 -0.986328 -0.980713
--0.974121 -0.966553 -0.958008 -0.94873 -0.938232 -0.927002 -0.914551
--0.901611 -0.887451 -0.872559 -0.856934 -0.840332 -0.822998 -0.804688
--0.785645 -0.765869 -0.745361 -0.724121 -0.702148 -0.679443 -0.65625
--0.63208 -0.607666 -0.582275 -0.556641 -0.530273 -0.503418 -0.476074
--0.448242 -0.420166 -0.391357 -0.362305 -0.333008 -0.303223 -0.273193
--0.24292 -0.212402 -0.181885 -0.150879 -0.119873 -0.088623 -0.057373
--0.026123 0.00537109 0.0366211 0.0678711 0.0991211 0.130371 0.161377
-0.192139 0.2229 0.253418 0.283447 0.313477 0.343018 0.372314 0.401123
-0.429688 0.457764 0.485352 0.512695 0.539307 0.56543 0.591064 0.615967
-0.640381 0.664062 0.687256 0.709717 0.731445 0.752441 0.772705 0.792236
-0.811035 0.828857 0.845947 0.862305 0.877686 0.892334 0.906006 0.918945
-0.930908 0.941895 0.951904 0.961182 0.969238 0.976562 0.98291 0.988037
-0.992432 0.99585 0.998291 0.999756 1 0.999512 0.998047 0.995605 0.991943
-0.987549 0.982178 0.97583 0.968506 0.960205 0.950928 0.940674 0.929443
-0.91748 0.904541 0.890869 0.876221 0.860596 0.844238 0.826904 0.808838
-0.790039 0.770508 0.75 0.729004 0.707275 0.684814 0.661621 0.637695
-0.613281 0.588135 0.5625 0.536377 0.509521 0.482422 0.45459 0.426514
-0.397949 0.369141 0.339844 0.310059 0.280029 0.25 0.219482 0.188721
-0.157959 0.126953 0.0957031 0.0644531 0.0332031 0.00170898 -0.029541
--0.060791 -0.092041 -0.123291 -0.154297 -0.185303 -0.21582 -0.246338
--0.276611 -0.306641 -0.336426 -0.365723 -0.394775 -0.42334 -0.451416
--0.479248 -0.506592 -0.533203 -0.55957 -0.585205 -0.610352 -0.63501
--0.658691 -0.682129 -0.70459 -0.726562 -0.747803 -0.768066 -0.787842
--0.806885 -0.824951 -0.842285 -0.858643 -0.874268 -0.88916 -0.903076
--0.916016 -0.928223 -0.939453 -0.949707 -0.958984 -0.967529 -0.974854
--0.981445 -0.987061 -0.991455 -0.995117 -0.997803 -0.999512 -1 -0.999756
--0.998535 -0.996094 -0.99292 -0.98877 -0.983398 -0.977295 -0.970215
--0.962158 -0.953125 -0.943115 -0.932129 -0.92041 -0.907715 -0.894043
--0.879639 -0.864258 -0.8479 -0.831055 -0.812988 -0.794434 -0.774902
--0.754883 -0.733887 -0.712158 -0.689941 -0.666748 -0.643066 -0.618896
--0.593994 -0.568359 -0.542236 -0.515625 -0.488525 -0.460938 -0.433105
--0.404541 -0.375732 -0.346436 -0.316895 -0.286865 -0.256836 -0.226318
--0.195801 -0.165039 -0.134033 -0.102783 -0.0715332 -0.0402832 -0.0090332
-0.0224609 0.0537109 0.0849609 0.116211 0.147217 0.178223 0.208984 0.239502
-0.269775 0.299805 0.32959 0.359131 0.388184 0.416748 0.445068 0.4729
-0.500244 0.527344 0.553711 0.579346 0.604736 0.629395 0.65332 0.676758
-0.699463 0.72168 0.74292 0.763672 0.783447 0.80249 0.820801 0.838379
-0.85498 0.87085 0.885742 0.899902 0.913086 0.925537 0.937012 0.94751
-0.957031 0.965576 0.973389 0.97998 0.98584 0.990723 0.994385 0.997314
-0.999023 1 1 0.998779 0.996826 0.993652 0.989746 0.984619 0.97876 0.971924
-0.963867 0.955078 0.945312 0.934814 0.923096 0.910645 0.897217 0.882812
-0.867676 0.851807 0.834961 0.817139 0.798828 0.779541 0.759521 0.73877
-0.717285 0.695068 0.672119 0.648682 0.624512 0.599609 0.574219 0.54834
-0.521729 0.494873 0.467285 0.439453 0.411133 0.382324 0.353027 0.32373
-0.293701 0.263672 0.233398 0.202637 0.171875 0.140869 0.109863 0.0786133
-0.0473633 0.0161133 -0.0153809 -0.0466309 -0.0778809 -0.109131 -0.140137
--0.171143 -0.201904 -0.232666 -0.262939 -0.292969 -0.322754 -0.352295
--0.381592 -0.4104 -0.438721 -0.466553 -0.494141 -0.52124 -0.547607
--0.57373 -0.599121 -0.623779 -0.647949 -0.671631 -0.694336 -0.716797
--0.738281 -0.759033 -0.779053 -0.79834 -0.81665 -0.834473 -0.851318
--0.867432 -0.882568 -0.896729 -0.910156 -0.922852 -0.934326 -0.945068
--0.954834 -0.963867 -0.97168 -0.978516 -0.984619 -0.989502 -0.993652
--0.996826 -0.998779 -1 -1 -0.999268 -0.997314 -0.994629 -0.990723 -0.98584
--0.980225 -0.973633 -0.96582 -0.957275 -0.947754 -0.937256 -0.925781
--0.913574 -0.900391 -0.88623 -0.871338 -0.855469 -0.838867 -0.821289
--0.802979 -0.783936 -0.76416 -0.743408 -0.722168 -0.700195 -0.67749
--0.654053 -0.629883 -0.605225 -0.580078 -0.554199 -0.527832 -0.500977
--0.473633 -0.445801 -0.41748 -0.388916 -0.359863 -0.330322 -0.300537
--0.270508 -0.240234 -0.209717 -0.178955 -0.147949 -0.116943 -0.0856934
--0.0544434 -0.0231934 0.00805664 0.0395508 0.0708008 0.102051 0.133057
-0.164062 0.195068 0.225586 0.256104 0.286133 0.316162 0.345703 0.375
-0.403809 0.432373 0.460449 0.488037 0.515137 0.541748 0.567871 0.593262
-0.618164 0.642578 0.66626 0.689209 0.71167 0.733398 0.754395 0.774414
-0.793945 0.812744 0.830566 0.847656 0.86377 0.87915 0.893555 0.907227
-0.919922 0.931885 0.942871 0.952881 0.961914 0.969971 0.977051 0.983398
-0.988525 0.99292 0.996094 0.998535 0.999756 1 0.999512 0.997803 0.995361
-0.991699 0.987061 0.981689 0.975098 0.967773 0.959229 0.949951 0.939697
-0.928467 0.916504 0.90332 0.889404 0.874756 0.859131 0.842529 0.825439
-0.807129 0.78833 0.768555 0.748291 0.727051 0.705078 0.682617 0.659424
-0.635498 0.611084 0.585938 0.560059 0.533936 0.50708 0.47998 0.452148
-0.424072 0.395508 0.366455 0.337158 0.307373 0.277344 0.24707 0.216553
-0.186035 0.155029 0.124023 0.0927734 0.0615234 0.0302734 -0.000976562
--0.0324707 -0.0637207 -0.0949707 -0.125977 -0.157227 -0.187988 -0.21875
--0.249268 -0.279297 -0.309326 -0.339111 -0.368408;
-#X coords 0 1 882 -1 200 140 1;
-#X restore 381 407 graph;
-#X text 405 549 --- 0.02 sec ---;
-#X text 24 31 Many synthesis algorithms and transformations can have
-outputs with a zero-freqency component (commonly called DC for "direct
-current"). These are inaudible and sometimes cause distortion in audio
-output devices \, or when converting to fixed-point soundfile formats.
-It is often desirable to filter an audio signal to remove its DC component.
-;
-#X text 23 147 The simplest way to do this is to use a one-pole low-pass
-filter \, tuned to a low frequency such as 3 Hertz \, and to subtract
-its output from the original. This difference is called a one-pole
-\, one-zero high-pass filter \, and it is used so often that Pd provides
-one in the "hip~" object.;
-#X obj 38 354 +~ 1;
-#X obj 37 491 hip~ 5;
-#X text 100 491 high-pass filter;
-#X floatatom 86 450 5 0 0 0 - - -;
-#X msg 86 380 0;
-#X text 122 329 sinusoidal test signal;
-#X text 83 354 add "DC";
-#X text 124 380 zero for no filtering;
-#X msg 86 403 3;
-#X text 121 404 3 (or so) to remove DC;
-#X text 126 427 higher freqencies affect;
-#X text 166 443 the audible part of;
-#X text 166 459 the signal as well.;
-#X obj 38 329 osc~ 220;
-#X msg 86 426 220;
-#X text 23 229 The simplest way to do this is to use a one-pole low-pass
-filter \, tuned to a low frequency such as 3 Hertz \, and to subtract
-its output from the original. This difference is computed by a one-pole
-\, one-zero high-pass filter. These are used so often that Pd provides
-one in the "hip~" object.;
-#X text 131 4 ONE-POLE \, ONE-ZERO HIGH-PASS FILTER;
-#X obj 126 569 tabwrite~ H02-graph;
-#X connect 2 0 26 0;
-#X connect 3 0 2 0;
-#X connect 9 0 10 0;
-#X connect 10 0 0 0;
-#X connect 10 0 0 1;
-#X connect 10 0 26 0;
-#X connect 12 0 10 1;
-#X connect 13 0 12 0;
-#X connect 17 0 12 0;
-#X connect 22 0 9 0;
-#X connect 23 0 12 0;
diff --git a/desiredata/doc/3.audio.examples/H03.band-pass.pd b/desiredata/doc/3.audio.examples/H03.band-pass.pd
deleted file mode 100644
index 976fee54..00000000
--- a/desiredata/doc/3.audio.examples/H03.band-pass.pd
+++ /dev/null
@@ -1,57 +0,0 @@
-#N canvas 44 0 604 533 12;
-#X obj 43 278 mtof;
-#X floatatom 43 255 5 0 150 0 - #0-pit -;
-#X obj 32 446 output~;
-#X obj 32 225 noise~;
-#X text 95 254 <-- cutoff (pitch units);
-#X text 106 301 <-- cutoff (Hertz);
-#X floatatom 43 303 5 0 0 0 - - -;
-#X text 330 494 updated for Pd version 0.39;
-#X obj 121 414 metro 250;
-#X obj 121 394 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 139 391 graphing on/off;
-#N canvas 0 0 450 300 graph2 0;
-#X array H03-graph 882 float 2;
-#X coords 0 1 882 -1 200 140 1;
-#X restore 375 290 graph;
-#X text 399 432 --- 0.02 sec ---;
-#X text 98 224 white noise \, test signal;
-#X obj 32 361 bp~;
-#X text 73 363 band-pass filter;
-#X obj 121 439 tabwrite~ H03-graph;
-#X floatatom 54 331 5 0 1000 0 - #0-q -;
-#X text 106 329 <-- q;
-#N canvas 0 0 450 300 loadbang 0;
-#X obj 85 16 loadbang;
-#X obj 85 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 85 59 f \$0;
-#X text 18 179 boxes.;
-#X text 16 161 This subpatch loads initial values in number;
-#X msg 85 83 \; \$1-pit 72 \; \$1-q 1;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 139 482 pd loadbang;
-#X text 154 8 RESONANT (BAND-PASS) FILTER;
-#X text 26 129 The two controls specify \, first \, the center frequency
-\, and second \, the sharpness of the filter \, commonly called "q".
-If you increase q to 10 or 20 \, you will see a drop in total signal
-power \, and moreover \, you'll see and hear the resonant frequency
-more clearly in the result.;
-#X text 28 30 A simple resonant band-pass filter is provided in the
-bp~ object. Resonant filters can be tuned to a specific "center frequency"
-and then will pass that frequency while attenuating other frequencies
-(the further from the center frequency \, the more attenuation). This
-patch uses a white noise source to demonstrate bp~.;
-#X connect 0 0 6 0;
-#X connect 1 0 0 0;
-#X connect 3 0 14 0;
-#X connect 6 0 14 1;
-#X connect 8 0 16 0;
-#X connect 9 0 8 0;
-#X connect 14 0 2 0;
-#X connect 14 0 2 1;
-#X connect 14 0 16 0;
-#X connect 17 0 14 2;
diff --git a/desiredata/doc/3.audio.examples/H04.filter.sweep.pd b/desiredata/doc/3.audio.examples/H04.filter.sweep.pd
deleted file mode 100644
index e4f3cf09..00000000
--- a/desiredata/doc/3.audio.examples/H04.filter.sweep.pd
+++ /dev/null
@@ -1,58 +0,0 @@
-#N canvas 360 15 553 524 12;
-#X floatatom 44 146 5 0 150 0 - #0-pitch -;
-#X text 126 9 SWEEPING FILTERS;
-#X obj 44 193 phasor~;
-#X obj 59 351 +~;
-#X floatatom 81 326 5 0 100 0 - #0-offset -;
-#X floatatom 60 222 5 0 0 0 - #0-speed -;
-#X floatatom 82 273 5 0 100 0 - #0-depth -;
-#X floatatom 75 404 5 0 1000 0 - #0-q -;
-#X obj 44 426 vcf~;
-#X obj 59 375 tabread4~ mtof;
-#X text 127 403 <-- Q (selectivity);
-#X text 115 182 sawtooth;
-#X text 116 198 oscillator;
-#X text 112 221 <-- sweep speed;
-#X text 137 245 LFO for sweep;
-#X text 134 274 <-- sweep depth;
-#X text 131 326 <-- base center frequency;
-#X text 103 350 add base to sweep;
-#X text 192 375 convert to Hz.;
-#X text 97 144 <-- pitch;
-#X obj 43 457 output~;
-#X obj 44 169 mtof;
-#X obj 60 244 phasor~;
-#X obj 60 298 *~;
-#X text 294 496 updated for Pd version 0.39;
-#N canvas 706 247 450 300 startup 0;
-#X obj 85 16 loadbang;
-#X obj 85 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 85 59 f \$0;
-#X text 9 257 boxes.;
-#X text 18 209 This subpatch loads initial values in number;
-#X msg 85 83 \; \$1-pitch 48 \; \$1-speed -2 \; \$1-depth 27 \; \$1-offset
-56 \; \$1-q 2;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 168 491 pd startup;
-#X text 14 109 Note the different effects of negative and positive
-sweep speeds.;
-#X text 13 32 If you want actively changing center frequencies \, use
-"vcf~" instead of "bp~". The vcf~ module takes an audio signal to set
-center frequency. (Q is still set by messages though.) Vcf is computationally
-somewhat more expensive than bp~.;
-#X connect 0 0 21 0;
-#X connect 2 0 8 0;
-#X connect 3 0 9 0;
-#X connect 4 0 3 1;
-#X connect 5 0 22 0;
-#X connect 6 0 23 1;
-#X connect 7 0 8 2;
-#X connect 8 0 20 0;
-#X connect 8 0 20 1;
-#X connect 9 0 8 1;
-#X connect 21 0 2 0;
-#X connect 22 0 23 0;
-#X connect 23 0 3 0;
diff --git a/desiredata/doc/3.audio.examples/H05.filter.floyd.pd b/desiredata/doc/3.audio.examples/H05.filter.floyd.pd
deleted file mode 100644
index 2187f05d..00000000
--- a/desiredata/doc/3.audio.examples/H05.filter.floyd.pd
+++ /dev/null
@@ -1,132 +0,0 @@
-#N canvas 708 41 555 646 12;
-#N canvas 0 0 600 392 conversion-tables 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array dbtorms 123 float 1;
-#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05
-2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05
-4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05
-8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828
-0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813
-0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946
-0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489
-0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813
-0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328
-0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526
-0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684
-0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202
-0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838
-0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946
-0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526
-2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341
-6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893;
-#X coords 0 10 123 0 200 100 1;
-#X restore 302 48 graph;
-#X text 504 141 0;
-#X text 506 41 10;
-#X text 321 151 ------ 123 samples ------;
-#N canvas 0 0 450 300 graph2 0;
-#X array mtof 130 float 1;
-#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499
-12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017
-21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478
-36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705
-61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989
-103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814
-174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183
-293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164
-493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991
-830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51
-1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32
-2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07
-4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88
-7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3
-11839.8 12543.9 13289.8 14080;
-#X coords 0 12000 130 0 200 100 1;
-#X restore 309 225 graph;
-#X text 319 333 ------ 130 samples ------;
-#X text 518 318 0;
-#X text 520 218 12000;
-#X restore 121 588 pd conversion-tables;
-#X obj 31 411 line~;
-#X obj 31 387 pack 0 100;
-#X floatatom 31 339 3 0 150 0 - #0-cf -;
-#X floatatom 47 461 3 0 999 0 - #0-q -;
-#X obj 16 512 vcf~;
-#X obj 31 436 tabread4~ mtof;
-#X text 81 461 <-- Q (selectivity);
-#X text 88 5 ANOTHER SWEEPING FILTER EXAMPLE;
-#X obj 15 267 clip~ 0 0.5;
-#X obj 15 291 *~ 2;
-#X obj 15 315 -~;
-#X text 119 268 trick to;
-#X text 120 285 make symmetric;
-#X text 118 302 triangle wave;
-#X obj 22 147 f;
-#X obj 55 145 + 1;
-#X obj 22 217 mtof;
-#X obj 55 169 mod 8;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-array1 8 float 2;
-#X coords 0 96 8 36 200 100 1;
-#X restore 340 144 graph;
-#X text 73 336 <-- center frequency;
-#X obj 22 123 metro 85;
-#X text 107 147 sequencer for;
-#X text 122 164 8 note loop;
-#X obj 16 576 output~;
-#X obj 22 104 tgl 15 0 empty \$1-metro empty 0 -6 0 8 -262144 -1 -1
-1 1;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-cf 61 \; \$1-q 10 \; \$1-metro 1 \; \$1-array1
-0 45 48 50 48 55 53 55 57;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 121 611 pd startup;
-#X text 96 364 at least 61;
-#X obj 22 241 phasor~;
-#X text 294 616 updated for Pd version 0.39;
-#X obj 22 193 tabread \$0-array1;
-#X obj 16 540 vcf~;
-#X obj 31 362 max 61;
-#X text 82 409 smooth & convert to Hz.;
-#X obj 47 482 max 3;
-#X text 105 483 at least 3;
-#X text 11 28 Here's an approximate reconstruction of an old riff by
-Pink Floyd. Because we're filtering a waveform with odd partials \,
-it's easier to pick out the partials in the filtered sound than if
-we had had both even and odd ones.;
-#X text 78 527 rejection of the stop bands without having;
-#X text 79 509 Put two vcf objects in series for better;
-#X text 77 545 to make the passband excessively narrow.;
-#X connect 1 0 6 0;
-#X connect 2 0 1 0;
-#X connect 3 0 32 0;
-#X connect 4 0 34 0;
-#X connect 5 0 31 0;
-#X connect 6 0 5 1;
-#X connect 6 0 31 1;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 11 0 5 0;
-#X connect 15 0 16 0;
-#X connect 15 0 30 0;
-#X connect 16 0 18 0;
-#X connect 17 0 28 0;
-#X connect 18 0 15 1;
-#X connect 21 0 15 0;
-#X connect 25 0 21 0;
-#X connect 28 0 9 0;
-#X connect 28 0 11 1;
-#X connect 30 0 17 0;
-#X connect 31 0 24 0;
-#X connect 31 0 24 1;
-#X connect 32 0 2 0;
-#X connect 34 0 5 2;
-#X connect 34 0 31 2;
diff --git a/desiredata/doc/3.audio.examples/H06.envelope.follower.pd b/desiredata/doc/3.audio.examples/H06.envelope.follower.pd
deleted file mode 100644
index 8f536fba..00000000
--- a/desiredata/doc/3.audio.examples/H06.envelope.follower.pd
+++ /dev/null
@@ -1,86 +0,0 @@
-#N canvas 87 74 585 621 12;
-#X floatatom 354 464 4 0 0 0 - - -;
-#X floatatom 150 316 3 0 999 0 - #0-osc2 -;
-#X obj 150 336 osc~;
-#X text 162 12 ENVELOPE FOLLOWER;
-#X text 22 33 An envelope follower measures the mean square power of
-an signal as it changes over time. (You can convert mean square power
-to RMS ampitude or to decibels if you wish.) The term "mean square"
-means simply that the signal should be squared \, and then averaged.
-The averageing is done using a low-pass filter such as lop~.;
-#X obj 62 466 lop~;
-#X floatatom 93 444 3 0 100 0 - #0-lop -;
-#X obj 61 356 +~;
-#X text 187 317 <-- frequency of second oscillator;
-#X obj 62 330 osc~ 500;
-#X obj 62 413 *~;
-#X obj 62 522 snapshot~;
-#X floatatom 62 573 5 0 999 0 - - -;
-#X obj 62 545 sqrt;
-#X text 335 361 built-in envelope;
-#X obj 354 491 dbtorms;
-#X floatatom 354 518 5 0 999 0 - - -;
-#N canvas 536 459 382 265 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-osc2 400 \; \$1-lop 10 \; \$1-metro 1 \; pd dsp
-1;
-#X obj 223 132 metro 250;
-#X obj 223 107 r \$0-metro;
-#X obj 223 156 s \$0-tick;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X restore 217 598 pd startup;
-#X text 115 414 square the signal;
-#X text 124 440 <-- responsiveness;
-#X text 159 501 take snapshot;
-#X text 108 548 convert to RMS;
-#X text 327 599 updated for Pd version 0.39;
-#X text 334 381 follower for comparison;
-#X text 107 466 low-pass filter;
-#X text 114 573 output;
-#X obj 70 497 r \$0-tick;
-#X text 159 517 every 1/4 second;
-#X obj 389 439 r \$0-tick;
-#X obj 354 439 f;
-#X obj 376 414 env~;
-#X text 20 242 The env~ object at right \, which is a built-in envelope
-follower using a higher-quality low-pass filter than lop~ \, is shown
-for comparison. Its output is artificially slowed down to match the
-homemade one at left.;
-#X obj 150 359 *~;
-#X obj 185 360 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 204 358 <-- on/off;
-#X text 20 128 Here we're adding two oscillators so the result should
-be an RMS of one if the second oscillator is on \, 0.707 otherwise.
-Note two effects: first \, the more responsive the envelope follower
-\, the less accurate the result (but the faster it responds). Second
-\, if the two oscillators are tuned close to each other their beating
-affects the nombers coming out.;
-#X connect 0 0 15 0;
-#X connect 1 0 2 0;
-#X connect 2 0 32 0;
-#X connect 5 0 11 0;
-#X connect 6 0 5 1;
-#X connect 7 0 10 0;
-#X connect 7 0 10 1;
-#X connect 7 0 30 0;
-#X connect 9 0 7 0;
-#X connect 10 0 5 0;
-#X connect 11 0 13 0;
-#X connect 13 0 12 0;
-#X connect 15 0 16 0;
-#X connect 26 0 11 0;
-#X connect 28 0 29 0;
-#X connect 29 0 0 0;
-#X connect 30 0 29 1;
-#X connect 32 0 7 1;
-#X connect 33 0 32 1;
diff --git a/desiredata/doc/3.audio.examples/H07.measure.spectrum.pd b/desiredata/doc/3.audio.examples/H07.measure.spectrum.pd
deleted file mode 100644
index f290ca4a..00000000
--- a/desiredata/doc/3.audio.examples/H07.measure.spectrum.pd
+++ /dev/null
@@ -1,88 +0,0 @@
-#N canvas 407 54 626 729 12;
-#X floatatom 145 654 5 0 0 0 - - -;
-#X obj 44 565 bp~;
-#X obj 44 536 bp~;
-#X obj 55 467 mtof;
-#X floatatom 55 490 7 0 0 0 - - -;
-#X floatatom 98 520 3 0 999 0 - #0-q -;
-#X floatatom 55 447 7 0 150 0 - #0-pitch -;
-#X obj 145 586 env~ 4096;
-#X obj 45 370 *~ 0;
-#X obj 44 395 +~ 1;
-#X obj 145 608 + 0.5;
-#X obj 145 631 int;
-#X text 12 41 In this example we use two cascaded bandpass filters
-to troll for partials in Jonathan Harvey's famous bell sample.;
-#X text 16 233 You can hear partials around 48 \, 51.3 \, 55 (faint!)
-\, 57 (fainter!) \, 60 \, two beating partials around 65 \, 67 \, 69
-\, 70.9 \, 71.75 \, 72.6 \, 74 \, 74.65 \, 75.6 \, 77 \, 81.2 \, 84.6
-\, 86.5 \, and probably many more. There's also one down at 36 \, but
-it's easier to see it on the meter than hear it.;
-#X text 124 447 <-- center pitch;
-#X text 120 463 (shift-drag to fine tune);
-#X text 131 491 <-- center frequency;
-#X text 138 520 <-- Q (filter selectivity);
-#X obj 44 614 output~;
-#X text 341 680 updated for Pd version 0.39;
-#X text 14 82 Note that filters can give unexpected level changes.
-The bp~ object is designed to have roughly unit gain at the pass band
-\, so the higher you set "Q" the more amplitude is lost. You can correct
-for this by pushing the output amplitude \, but be sure to remember
-to reset the output amplitude before you reduce Q again. I set the
-Q to 100 and the output amplitude to 110 or 120 (with the room gain
-way down.) Then holding the shift key \, slowly drag the center pitch
-upward listening for modes.;
-#N canvas 316 21 483 471 startup 0;
-#X obj 53 335 r readfile;
-#X obj 53 388 soundfiler;
-#X obj 59 23 loadbang;
-#X obj 59 49 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 59 70 f \$0;
-#X obj 60 271 /;
-#X msg 60 248 44100;
-#X obj 60 223 t b f;
-#X obj 60 199 r \$0-totsamps;
-#X obj 60 294 s \$0-loopf;
-#X msg 59 102 \; readfile symbol \$1-array \; \$1-totsamps 143718 \;
-\$1-pitch 69 \; \$1-q 0;
-#X msg 53 361 read -resize ../sound/bell.aiff \$1;
-#X connect 0 0 11 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 10 0;
-#X connect 5 0 9 0;
-#X connect 6 0 5 0;
-#X connect 7 0 6 0;
-#X connect 7 1 5 1;
-#X connect 8 0 7 0;
-#X connect 11 0 1 0;
-#X restore 456 625 pd startup;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-array 155948 float 0;
-#X coords 0 1 155947 -1 200 150 1;
-#X restore 396 322 graph;
-#X obj 45 322 r \$0-loopf;
-#X obj 45 346 phasor~;
-#X obj 44 419 tabread4~ \$0-array;
-#X obj 89 370 r \$0-totsamps;
-#X text 109 12 MEASURING SPECTRA USING BANDPASS FILTERS;
-#X connect 1 0 7 0;
-#X connect 1 0 18 0;
-#X connect 1 0 18 1;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 4 0 2 1;
-#X connect 4 0 1 1;
-#X connect 5 0 2 2;
-#X connect 5 0 1 2;
-#X connect 6 0 3 0;
-#X connect 7 0 10 0;
-#X connect 8 0 9 0;
-#X connect 9 0 25 0;
-#X connect 10 0 11 0;
-#X connect 11 0 0 0;
-#X connect 23 0 24 0;
-#X connect 24 0 8 0;
-#X connect 25 0 2 0;
-#X connect 26 0 8 1;
diff --git a/desiredata/doc/3.audio.examples/H08.heterodyning.pd b/desiredata/doc/3.audio.examples/H08.heterodyning.pd
deleted file mode 100644
index 5bdf28e3..00000000
--- a/desiredata/doc/3.audio.examples/H08.heterodyning.pd
+++ /dev/null
@@ -1,85 +0,0 @@
-#N canvas 280 49 607 705 12;
-#X text 336 665 updated for Pd version 0.39;
-#X text 109 12 MORE ON MEASURING SPECTRA: HETERODYNING;
-#X obj 46 289 phasor~ 100;
-#X obj 99 343 phasor~;
-#X floatatom 99 320 5 0 999 0 - #0-freq -;
-#X obj 99 395 cos~;
-#X obj 148 395 cos~;
-#X obj 148 370 +~ 0.25;
-#X obj 47 547 snapshot~;
-#N canvas 536 459 382 265 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X obj 223 132 metro 250;
-#X obj 223 107 r \$0-metro;
-#X obj 223 156 s \$0-tick;
-#X msg 22 91 \; \$1-freq 100 \; \$1-lop 2 \; \$1-metro 1 \; pd dsp
-1;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 8 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X restore 382 573 pd startup;
-#X obj 47 446 *~;
-#X obj 91 446 *~;
-#X obj 48 471 lop~;
-#X obj 92 471 lop~;
-#X floatatom 153 435 3 0 100 0 - #0-lop -;
-#X text 186 435 <-- responsiveness;
-#X obj 136 547 snapshot~;
-#X floatatom 47 575 5 0 0 0 - - -;
-#X floatatom 136 575 5 0 0 0 - - -;
-#X obj 161 496 r \$0-tick;
-#X obj 161 517 t b b;
-#X obj 47 643 expr sqrt($f1*$f1+$f2*$f2);
-#X floatatom 47 669 5 0 0 0 - - -;
-#X text 56 248 signal to;
-#X text 58 268 analyze;
-#X text 51 44 Another method for picking out the strengths of partials
-in a sound is heterodyning. We guess the frequency of a partial (as
-in the previous patch) but this time we multiply by a complex exponential
-to frequency-shift the partial down to zero (DC).;
-#X text 47 126 Then a low-pass filter (applied separately on the real
-and imaginary parts) removes all but the DC component thus obtained.
-The result is two audio signals (which we take snapshots of) holding
-the real and imaginary parts of the complex amplitude of the partial
-we want. Compared to the previous method \, this had the advantage
-of reporting the phase of the partial as well as its frequency.;
-#X text 240 358 modulate;
-#X text 237 394 to DC;
-#X text 154 321 <-- test frequency;
-#X text 236 376 test frequency;
-#X text 132 471 low-pass filter;
-#X text 55 596 real;
-#X text 59 611 part;
-#X text 207 589 part;
-#X text 198 574 imaginary;
-#X text 105 670 magnitude;
-#X connect 2 0 10 0;
-#X connect 2 0 11 0;
-#X connect 3 0 5 0;
-#X connect 3 0 7 0;
-#X connect 4 0 3 0;
-#X connect 5 0 10 1;
-#X connect 6 0 11 1;
-#X connect 7 0 6 0;
-#X connect 8 0 17 0;
-#X connect 10 0 12 0;
-#X connect 11 0 13 0;
-#X connect 12 0 8 0;
-#X connect 13 0 16 0;
-#X connect 14 0 13 1;
-#X connect 14 0 12 1;
-#X connect 16 0 18 0;
-#X connect 17 0 21 0;
-#X connect 18 0 21 1;
-#X connect 19 0 20 0;
-#X connect 20 0 8 0;
-#X connect 20 1 16 0;
-#X connect 21 0 22 0;
diff --git a/desiredata/doc/3.audio.examples/H09.ssb.modulation.pd b/desiredata/doc/3.audio.examples/H09.ssb.modulation.pd
deleted file mode 100644
index c0fbf2df..00000000
--- a/desiredata/doc/3.audio.examples/H09.ssb.modulation.pd
+++ /dev/null
@@ -1,103 +0,0 @@
-#N canvas 7 6 605 578 12;
-#X obj 188 393 cos~;
-#X obj 231 371 +~ -0.25;
-#X obj 231 394 cos~;
-#X obj 23 438 *~;
-#X obj 89 438 *~;
-#X obj 22 462 -~;
-#X floatatom 188 322 5 0 0 0 - - -;
-#X text 30 242 sample loop for;
-#X text 30 260 test signal;
-#X text 35 321 pair of allpass;
-#X text 34 338 filters to make;
-#X text 34 356 90 degree phase;
-#X text 32 373 shifted versions;
-#X text 238 323 <-- shift frequency;
-#X text 310 356 cosine and sine waves;
-#X text 55 7 SINGLE SIDEBAND MODULATION;
-#X text 300 7 (AKA FREQUENCY SHIFTING);
-#N canvas 555 154 448 326 bell-loop 0;
-#X obj 23 142 /;
-#X obj 23 214 +~ 1;
-#X msg 23 117 44100;
-#X obj 23 91 t b f;
-#X obj 24 264 outlet~;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-array 155948 float 0;
-#X coords 0 1 155947 -1 200 150 1;
-#X restore 234 88 graph;
-#X obj 23 67 r \$0-totsamps;
-#X obj 65 190 r \$0-totsamps;
-#X obj 23 190 *~;
-#X obj 23 166 phasor~;
-#X obj 23 238 tabread4~ \$0-array;
-#X connect 0 0 9 0;
-#X connect 1 0 10 0;
-#X connect 2 0 0 0;
-#X connect 3 0 2 0;
-#X connect 3 1 0 1;
-#X connect 6 0 3 0;
-#X connect 7 0 8 1;
-#X connect 8 0 1 0;
-#X connect 9 0 8 0;
-#X connect 10 0 4 0;
-#X restore 24 279 pd bell-loop;
-#N canvas 711 110 483 471 startup 0;
-#X obj 53 335 r readfile;
-#X obj 53 388 soundfiler;
-#X obj 59 23 loadbang;
-#X obj 59 49 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 59 70 f \$0;
-#X obj 60 271 /;
-#X msg 60 248 44100;
-#X obj 60 223 t b f;
-#X obj 60 199 r \$0-totsamps;
-#X obj 60 294 s \$0-loopf;
-#X msg 53 361 read -resize ../sound/bell.aiff \$1;
-#X msg 59 102 \; readfile symbol \$1-array \; \$1-totsamps 143718;
-#X connect 0 0 10 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 11 0;
-#X connect 5 0 9 0;
-#X connect 6 0 5 0;
-#X connect 7 0 6 0;
-#X connect 7 1 5 1;
-#X connect 8 0 7 0;
-#X connect 10 0 1 0;
-#X restore 157 530 pd startup;
-#X obj 21 495 output~;
-#X text 352 547 updated for Pd version 0.39;
-#X obj 188 347 phasor~;
-#X text 123 438 <-- complex multipier;
-#X text 122 455 (calculates real part);
-#X text 309 371 to form the real and;
-#X text 309 387 imaginary part of a;
-#X text 309 404 complex sinusoid;
-#X text 43 37 The signal sideband modulator gives you only one sideband
-for each frequency in the input signal (whereas ring modulation gave
-both a positive and negative sideband). You can set the shift frequency
-positive to shift all frequencies upward \, or negative to shift them
-downwards.;
-#X text 42 117 The technique is to filter the input into two versions
-\, 90 degrees out of phase \, which can be interpreted as the real
-and imaginary part of a complex signal with positive frequencies only.
-You can then form the (complex) product of this with a (complex) sinusoid
-to modulate upward or downward in frequency.;
-#X obj 23 400 hilbert~;
-#X text 42 213 The "Hilbert~" object is an abstraction in pd/extra.
-;
-#X connect 0 0 3 1;
-#X connect 1 0 2 0;
-#X connect 2 0 4 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 19 0;
-#X connect 5 0 19 1;
-#X connect 6 0 21 0;
-#X connect 17 0 29 0;
-#X connect 21 0 1 0;
-#X connect 21 0 0 0;
-#X connect 29 0 3 0;
-#X connect 29 1 4 0;
diff --git a/desiredata/doc/3.audio.examples/H10.measurement.pd b/desiredata/doc/3.audio.examples/H10.measurement.pd
deleted file mode 100644
index d0a04774..00000000
--- a/desiredata/doc/3.audio.examples/H10.measurement.pd
+++ /dev/null
@@ -1,90 +0,0 @@
-#N canvas 25 22 868 421 12;
-#X obj 25 338 filter-graph2 tab1 tab2;
-#N canvas 0 0 450 300 graph2 0;
-#X array tab1 100 float 1;
-#A 0 0.830737 0.844715 0.882793 0.953057 1.0592 1.19383 1.30927 1.28362
-1.08532 0.848171 0.656605 0.517756 0.418204 0.345252 0.291106 0.249389
-0.216703 0.190566 0.169369 0.1519 0.137418 0.12526 0.114871 0.105957
-0.0982917 0.0916027 0.0857987 0.0806894 0.076187 0.0722001 0.0686727
-0.0655318 0.0627325 0.060178 0.0580025 0.056008 0.0542273 0.0526222
-0.0511875 0.0499289 0.0488555 0.0478795 0.0470241 0.0462859 0.0456642
-0.0451251 0.0447277 0.0444219 0.0442324 0.0443406 0.0449216 0.0393798
-0.0442362 0.0444218 0.0447274 0.0451473 0.0456706 0.0462777 0.0470196
-0.0478395 0.0488555 0.0499664 0.0512245 0.0526221 0.05419 0.0559661
-0.0580025 0.0602342 0.0627325 0.0655169 0.0686727 0.0722052 0.076187
-0.0806893 0.085799 0.0916177 0.0982915 0.10592 0.11479 0.12526 0.137483
-0.151997 0.169411 0.190532 0.216594 0.24918 0.291106 0.345511 0.418206
-0.517664 0.656606 0.848216 1.08532 1.28264 1.30927 1.19534 1.05919
-0.951738 0.882758 0.851605;
-#X coords 0 2 99 0 200 140 1;
-#X restore 634 -1 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array tab2 100 float 3;
-#A 0 8.59501e-06 0.0327982 0.0790568 0.143062 0.250239 0.425263 0.697661
-1.04745 1.37257 1.59826 1.73194 1.8042 1.83798 1.84726 1.84029 1.8221
-1.79589 1.76375 1.72711 1.68696 1.64405 1.5989 1.55192 1.50343 1.45366
-1.40283 1.35108 1.29854 1.24532 1.19151 1.13718 1.0824 1.02722 0.971679
-0.915831 0.859703 0.803332 0.746743 0.689957 0.633001 0.57589 0.518653
-0.461293 0.403871 0.346275 0.288763 0.230985 0.173676 0.11652 0.0674726
--0.000119478 6.21552 6.16648 6.10932 6.05201 5.99424 5.93673 5.87913
-5.82171 5.76435 5.70711 5.65 5.59304 5.53626 5.47967 5.4233 5.36717
-5.31132 5.25578 5.2006 5.14582 5.09149 5.03768 4.98446 4.93192 4.88017
-4.82934 4.77958 4.73108 4.6841 4.63895 4.59604 4.55589 4.51925 4.48711
-4.4609 4.44271 4.43574 4.44501 4.4788 4.55106 4.68474 4.91043 5.23555
-5.58534 5.85774 6.03276 6.13994 6.20394 6.24278;
-#X coords 0 6.283 99 0 200 140 1;
-#X restore 639 200 graph;
-#X text 621 56 1;
-#X text 633 342 0;
-#X text 615 265 pi;
-#X text 608 195 2pi;
-#X obj 25 203 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 33 249 5 0 0 0 - - -;
-#X text 621 -8 2;
-#X text 104 -6 MEASURING FILTER FREQUENCY AND PHASE RESPONSE;
-#X text 610 382 updated for Pd version 0.39;
-#X text 691 145 frequency;
-#X text 631 141 0;
-#X text 814 144 44100;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-freq 3000 \; \$1-q 3;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 285 350 pd startup;
-#X floatatom 238 257 5 0 10000 0 - #0-freq -;
-#X floatatom 249 280 3 0 999 0 - #0-q -;
-#X text 12 18 You can use the "filter-graph1" and "filter-graph2" abstractions
-as shown to test filters. Connect them as shown with a filter between
-them. Try varying the parameters and/or substituting other filters.
-;
-#X text 575 127 gain=0;
-#X text 574 327 phase=0;
-#X obj 25 226 filter-graph1 100 44100;
-#X obj 227 310 bp~;
-#X text 44 202 <-- compute;
-#X text 34 266 index;
-#X text 290 254 <-- center frequency;
-#X text 288 279 <-- "Q";
-#X text 9 86 "filter-graph1" takes as arguments the number of points
-to graph and the frequency range. "filter-graph2 takes as arguments
-the name of a table to hold the (frequency dependent) gain \, and another
-\, if specified \, for the phase.;
-#X text 8 153 You can edit this patch to replace "bp" with any other
-filter you're curious about.;
-#X connect 7 0 21 0;
-#X connect 16 0 22 1;
-#X connect 17 0 22 2;
-#X connect 21 0 0 0;
-#X connect 21 0 8 0;
-#X connect 21 1 0 1;
-#X connect 21 1 22 0;
-#X connect 21 2 0 2;
-#X connect 22 0 0 3;
diff --git a/desiredata/doc/3.audio.examples/H11.shelving.pd b/desiredata/doc/3.audio.examples/H11.shelving.pd
deleted file mode 100644
index 8eee1178..00000000
--- a/desiredata/doc/3.audio.examples/H11.shelving.pd
+++ /dev/null
@@ -1,74 +0,0 @@
-#N canvas 25 22 868 421 12;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-tab1 100 float 1;
-#A 0 1.39998 1.39868 1.3942 1.39349 1.38496 1.3772 1.36745 1.35633
-1.34208 1.32931 1.31817 1.30372 1.28879 1.27458 1.25944 1.24351 1.22874
-1.21386 1.19924 1.18487 1.17063 1.15653 1.14284 1.13144 1.11914 1.10722
-1.09603 1.08515 1.07479 1.06474 1.05519 1.04606 1.03715 1.02899 1.02092
-1.0128 1.00624 0.999291 0.992705 0.986255 0.980081 0.974014 0.969307
-0.964106 0.959111 0.954207 0.949901 0.945593 0.941227 0.937556 0.933778
-0.930231 0.926681 0.923353 0.920059 0.917466 0.914627 0.911849 0.9092
-0.906745 0.904264 0.901469 0.900065 0.898006 0.896023 0.893895 0.892373
-0.890666 0.889038 0.887483 0.885924 0.884597 0.883215 0.881537 0.880075
-0.879619 0.878522 0.877414 0.876234 0.87571 0.874819 0.873886 0.873124
-0.87241 0.871807 0.870763 0.870512 0.869952 0.869465 0.868958 0.868403
-0.86826 0.867939 0.866731 0.867094 0.867762 0.867796 0.864339 0.872811
-0.920535;
-#X coords 0 5 99 0 200 300 1;
-#X restore 621 28 graph;
-#X obj 29 245 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 37 289 3 0 0 0 - - -;
-#X text 676 334 frequency;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-pole 60 \; \$1-zero 20;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 289 390 pd startup;
-#X floatatom 281 265 3 -99 99 0 - #0-pole -;
-#X text 559 316 gain=0;
-#X text 108 34 SHELVING FILTER;
-#X obj 29 378 filter-graph2 \$0-tab1;
-#X obj 29 266 filter-graph1 100 22050;
-#X text 796 330 22050;
-#X obj 232 314 rpole~;
-#X obj 281 288 / 100;
-#X floatatom 335 264 4 -100 100 0 - #0-zero -;
-#X obj 335 287 / 100;
-#X obj 231 346 rzero~;
-#X text 608 21 5;
-#X text 616 327 0;
-#X text 604 258 1;
-#X text 16 58 This patch demonstrates using the raw filters \, rpole~
-and rzero~ (raw \, real-valued one-pole and one-zero filters) \, to
-make a shelving filter.;
-#X text 14 109 If the pole is at p and the zero is at q \, the gain
-at DC is (1-q)/(1-p) and the gain at Nyquist is (1+q)/(1+p). If the
-pole location is close to plus or minus one \, this can give large
-gains unless q is in the same vicinity. (try \, for example \, p=90%
-\, q=70%).;
-#X text 11 191 The crossover region varies from DC to Nyquist as p
-and q decrease from 100% to -100%.;
-#X text 278 241 pole;
-#X text 334 241 zero;
-#X text 383 263 (in hundredths);
-#X text 610 387 updated for Pd version 0.39;
-#X connect 1 0 9 0;
-#X connect 5 0 12 0;
-#X connect 9 0 2 0;
-#X connect 9 0 8 0;
-#X connect 9 1 8 1;
-#X connect 9 1 11 0;
-#X connect 9 2 8 2;
-#X connect 11 0 15 0;
-#X connect 12 0 11 1;
-#X connect 13 0 14 0;
-#X connect 14 0 15 1;
-#X connect 15 0 8 3;
diff --git a/desiredata/doc/3.audio.examples/H12.peaking.pd b/desiredata/doc/3.audio.examples/H12.peaking.pd
deleted file mode 100644
index e005e01a..00000000
--- a/desiredata/doc/3.audio.examples/H12.peaking.pd
+++ /dev/null
@@ -1,112 +0,0 @@
-#N canvas 41 39 854 640 12;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-tab1 100 float 1;
-#A 0 0.960563 0.960996 0.962862 0.970269 0.977017 0.985214 1.00122
-1.02249 1.05453 1.10332 1.18193 1.31034 1.5315 1.91468 2.37977 2.37001
-1.92679 1.57244 1.36114 1.23298 1.15262 1.09943 1.06243 1.03636 1.0162
-1.00108 0.990295 0.981066 0.973613 0.967183 0.962328 0.958092 0.95445
-0.951329 0.948619 0.946121 0.943931 0.941728 0.940557 0.93934 0.938046
-0.936816 0.935569 0.934901 0.933719 0.933252 0.932534 0.931875 0.93121
-0.930347 0.929637 0.929717 0.929279 0.928865 0.928444 0.927868 0.92761
-0.926893 0.927202 0.926932 0.926666 0.926305 0.925926 0.926007 0.925702
-0.925624 0.92545 0.925285 0.924954 0.924532 0.924071 0.924718 0.924596
-0.924454 0.924247 0.923846 0.924172 0.923627 0.924005 0.92393 0.923866
-0.923769 0.923157 0.923666 0.923974 0.923561 0.923498 0.923437 0.922882
-0.922781 0.92203 0.923331 0.923265 0.922948 0.922413 0.922799 0.925651
-0.921397 0.931729 0.976084;
-#X coords 0 5 99 0 200 300 1;
-#X restore 616 193 graph;
-#X obj 41 404 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 49 448 3 0 0 0 - - -;
-#X text 671 499 frequency;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-pole 60 \; \$1-zero 20;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 328 602 pd startup;
-#X floatatom 276 368 3 0 99 0 - #0-pole -;
-#X text 554 481 gain=0;
-#X obj 41 600 filter-graph2 \$0-tab1;
-#X obj 41 425 filter-graph1 100 22050;
-#X text 791 495 22050;
-#X obj 276 391 / 100;
-#X floatatom 330 367 4 0 100 0 - #0-zero -;
-#X obj 330 390 / 100;
-#X text 594 182 5;
-#X text 611 492 0;
-#X text 599 423 1;
-#X text 596 596 updated for Pd version 0.39;
-#X text 183 10 PEAKING FILTER;
-#X floatatom 406 366 3 0 180 0 - #0-pole -;
-#X text 415 328 angle;
-#X text 399 344 (degrees);
-#X obj 460 435 sin;
-#X obj 405 436 cos;
-#X obj 405 387 * 3.14159;
-#X obj 405 411 / 180;
-#X obj 241 515 *;
-#X obj 405 460 t b f;
-#X obj 460 460 t b f;
-#X obj 209 543 cpole~;
-#X obj 226 574 czero~;
-#X text 266 332 pole and zero;
-#X text 284 347 radii (%);
-#X obj 277 516 *;
-#X obj 314 542 *;
-#X obj 349 542 *;
-#X text 21 34 To get a peaking filter \, start with a shelving filter
-but rotate the pole and zero to the point on the unit circle you want
-to amplify or attenuate. The rpole~ and rzero~ filters are replaced
-with their complex-valued siblings \, cpole~ and czero~. These filters
-take a (real \, imaginary) pair to filter and another (real-imaginary)
-pair to specify the pole or zero. As for rpole~ and rzero~ \, the coefficients
-may change at audio rate.;
-#X text 22 162 The outputs of cpole~ and czero~ are also in the form
-of a (real-imaginary) pair. Both outlets of cpole~ are connected to
-czero~ in this example \, but then since we want a real-valued filter
-\, we only take the real part of the (complex) output of czero~.;
-#X text 23 246 Here the pole and zero radii (p and q) control the center-frequency
-gain by the formula (1-q)/(1-p). The closer to 1 the radii \, the narrower
-the band affected. The non-peak gain \, (1+q)/(1+p) \, is close to
-1 as long as p and q are at least 50% or so.;
-#X connect 1 0 8 0;
-#X connect 5 0 10 0;
-#X connect 8 0 2 0;
-#X connect 8 0 7 0;
-#X connect 8 1 7 1;
-#X connect 8 1 28 0;
-#X connect 8 2 7 2;
-#X connect 10 0 25 0;
-#X connect 10 0 32 0;
-#X connect 11 0 12 0;
-#X connect 12 0 33 0;
-#X connect 12 0 34 0;
-#X connect 18 0 23 0;
-#X connect 21 0 27 0;
-#X connect 22 0 26 0;
-#X connect 23 0 24 0;
-#X connect 24 0 22 0;
-#X connect 24 0 21 0;
-#X connect 25 0 28 2;
-#X connect 26 0 25 0;
-#X connect 26 0 33 0;
-#X connect 26 1 25 1;
-#X connect 26 1 33 1;
-#X connect 27 0 32 0;
-#X connect 27 0 34 0;
-#X connect 27 1 34 1;
-#X connect 27 1 32 1;
-#X connect 28 0 29 0;
-#X connect 28 1 29 1;
-#X connect 29 0 7 3;
-#X connect 32 0 28 3;
-#X connect 33 0 29 2;
-#X connect 34 0 29 3;
diff --git a/desiredata/doc/3.audio.examples/H13.butterworth.pd b/desiredata/doc/3.audio.examples/H13.butterworth.pd
deleted file mode 100644
index 4cdcb628..00000000
--- a/desiredata/doc/3.audio.examples/H13.butterworth.pd
+++ /dev/null
@@ -1,74 +0,0 @@
-#N canvas 49 22 840 502 12;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-tab1 100 float 1;
-#A 0 0.999974 0.998121 0.998981 1.00106 1.00019 1.00133 1.00017 0.997406
-0.995891 0.986251 0.976591 0.959539 0.93749 0.903172 0.859824 0.805118
-0.744756 0.682757 0.617726 0.555802 0.496807 0.443599 0.395099 0.351557
-0.313317 0.279982 0.250867 0.225225 0.202565 0.182842 0.165875 0.150662
-0.13708 0.125107 0.11452 0.105018 0.0965065 0.0887956 0.0819179 0.0757449
-0.0701302 0.0650313 0.0604129 0.056344 0.0525467 0.0490616 0.04589
-0.0429836 0.0403206 0.0378735 0.0355742 0.0334788 0.0315483 0.0297412
-0.0280809 0.0265134 0.0251207 0.0237881 0.0225431 0.0213794 0.0203074
-0.0192861 0.0183551 0.0174563 0.0166231 0.0158432 0.0151 0.0144158
-0.0137608 0.0131513 0.0125729 0.0120266 0.0115073 0.0110253 0.0105541
-0.0101301 0.00971218 0.0093198 0.00894806 0.00859575 0.00825236 0.00794149
-0.00763651 0.00734779 0.00707258 0.0068092 0.00656191 0.0063171 0.00609739
-0.00587868 0.0056713 0.00547262 0.00528366 0.00509866 0.00493017 0.00476291
-0.00460384 0.00445121 0.00430475 0.00416536;
-#X coords 0 5 99 0 200 300 1;
-#X restore 615 71 graph;
-#X obj 32 250 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 40 294 3 0 0 0 - - -;
-#X text 670 377 frequency;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-lf 80 \; \$1-hf 150 \;;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 324 431 pd startup;
-#X text 553 359 gain=0;
-#X obj 32 446 filter-graph2 \$0-tab1;
-#X text 593 60 5;
-#X text 610 370 0;
-#X text 598 301 1;
-#X text 575 435 updated for Pd version 0.39;
-#X text 186 -4 BUTTERWORTH FILTER;
-#X obj 216 398 butterworth3~;
-#X floatatom 244 340 3 0 100 0 - #0-lf -;
-#X floatatom 291 339 3 85 150 0 - #0-hf -;
-#X obj 244 366 mtof;
-#X obj 291 366 mtof;
-#X text 790 373 5000;
-#X obj 32 271 filter-graph1 100 5000;
-#X text 232 318 poles;
-#X text 288 318 zeros;
-#X text 24 20 The butterworth filter can be configured for low-pass
-\, high-pass \, and shelving \, depending on the placement of the poles
-and zeros. For low-pass \, the poles are placed to set the cutoff frequency
-and the zeros are at -1 (the Nyquist). Leaving the poles fixed and
-moving the zeros then gives shelving filters. In this example \, the
-actual filtering is relegated to an abstraction (butterworth3~) which
-takes frequencies corresponding to the pole and zero placement.;
-#X text 24 147 The butterworth3~ abstraction computes filter coeffients
-using control messages \, and so it is not suitable for continuously
-time-varying Butterworth filters. For that \, it is often appropriate
-to use time-saving approximations \, but precisely which approximations
-to use will depend on the way the filter is to be used.;
-#X connect 1 0 18 0;
-#X connect 12 0 6 3;
-#X connect 13 0 15 0;
-#X connect 14 0 16 0;
-#X connect 15 0 12 1;
-#X connect 16 0 12 2;
-#X connect 18 0 2 0;
-#X connect 18 0 6 0;
-#X connect 18 1 6 1;
-#X connect 18 1 12 0;
-#X connect 18 2 6 2;
diff --git a/desiredata/doc/3.audio.examples/H14.all.pass.pd b/desiredata/doc/3.audio.examples/H14.all.pass.pd
deleted file mode 100644
index d493df7b..00000000
--- a/desiredata/doc/3.audio.examples/H14.all.pass.pd
+++ /dev/null
@@ -1,85 +0,0 @@
-#N canvas 25 22 868 421 12;
-#X obj 25 338 filter-graph2 tab1 tab2;
-#N canvas 0 0 450 300 graph2 0;
-#X array tab1 100 float 1;
-#A 0 0.999994 1.0015 1.00454 0.999907 0.99994 0.999773 1.00002 1.0004
-0.999993 0.998703 1 0.999993 1 0.999699 0.999312 0.99924 0.999999 1
-0.999937 0.999782 0.999733 0.999322 0.9998 1 0.999998 0.999945 0.999998
-0.999779 0.999998 1 0.999991 0.999998 0.999999 0.99949 1 0.999165 1
-0.999991 0.999833 0.999694 1.00014 0.999247 1.00001 0.999976 1.00001
-0.99974 0.999947 0.998428 1.00052 1.00383 1.00011 0.991395 1.0006 1.00077
-0.999952 0.999955 1.00003 0.999937 0.999955 0.999616 0.999266 0.99916
-1 0.999989 0.999831 0.999696 1 0.999239 0.999998 0.999998 0.999993
-0.999998 0.999998 0.999426 0.999998 0.999999 0.999998 0.999916 0.999714
-0.99951 0.999825 0.999998 0.999999 0.999962 0.999837 0.999605 1 0.999164
-0.999996 0.99999 1 0.99999 0.999991 0.998888 1.00002 0.999955 0.999942
-0.999432 1.00007 1.00956;
-#X coords 0 2 99 0 200 140 1;
-#X restore 634 -1 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array tab2 100 float 3;
-#A 0 8.595e-06 0.0615936 0.127096 0.18809 0.251487 0.314087 0.376949
-0.439804 0.502669 0.565481 0.628309 0.691149 0.753982 0.816816 0.879645
-0.942477 1.00531 1.06814 1.13097 1.1938 1.25663 1.31947 1.3823 1.44513
-1.50796 1.5708 1.63363 1.69646 1.75929 1.82212 1.88496 1.94779 2.01062
-2.07345 2.13628 2.19912 2.26195 2.32478 2.38761 2.45045 2.51327 2.5761
-2.63893 2.70178 2.76457 2.82751 2.89011 2.9535 3.01727 3.08969 3.14147
-3.19331 3.26573 3.3295 3.39289 3.45549 3.51843 3.58122 3.64407 3.7069
-3.76973 3.83255 3.89539 3.95822 4.02105 4.08388 4.14672 4.20955 4.27238
-4.33521 4.39804 4.46088 4.52371 4.58654 4.64937 4.7122 4.77504 4.83787
-4.9007 4.96353 5.02637 5.0892 5.15203 5.21486 5.27769 5.34052 5.40335
-5.46619 5.52902 5.59185 5.65469 5.71752 5.78033 5.8432 5.90605 5.96891
-6.03151 6.09491 6.1559 6.21446;
-#X coords 0 6.283 99 0 200 140 1;
-#X restore 639 200 graph;
-#X text 621 56 1;
-#X text 633 342 0;
-#X text 615 265 pi;
-#X text 608 195 2pi;
-#X obj 25 203 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 33 249 5 0 0 0 - - -;
-#X text 621 -8 2;
-#X text 610 382 updated for Pd version 0.39;
-#X text 691 145 frequency;
-#X text 631 141 0;
-#X text 814 144 44100;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-pole 80;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 398 370 pd startup;
-#X text 575 127 gain=0;
-#X text 574 327 phase=0;
-#X obj 25 226 filter-graph1 100 44100;
-#X text 44 202 <-- compute;
-#X text 34 266 index;
-#X text 104 -6 ALL-PASS FILTERS;
-#X floatatom 346 264 3 -99 99 0 - #0-pole -;
-#X obj 239 306 rpole~;
-#X obj 346 287 / 100;
-#X obj 239 281 rzero_rev~;
-#X text 341 240 pole (%);
-#X text 14 20 The all-pass filter has a phase response that depends
-on its coefficient \, and a flat frequency response. The coefficient
-(p) gives the location of the pole. There is a zero at 1/p \, unless
-p=0. If p=0 the filter is effectively a one-sample delay. Negative
-values of $p$ are allowed \, as long as p is between -1 and 1;
-#X connect 7 0 17 0;
-#X connect 17 0 0 0;
-#X connect 17 0 8 0;
-#X connect 17 1 0 1;
-#X connect 17 1 24 0;
-#X connect 17 2 0 2;
-#X connect 21 0 23 0;
-#X connect 22 0 0 3;
-#X connect 23 0 24 1;
-#X connect 23 0 22 1;
-#X connect 24 0 22 0;
diff --git a/desiredata/doc/3.audio.examples/H15.phaser.pd b/desiredata/doc/3.audio.examples/H15.phaser.pd
deleted file mode 100644
index 4de372c1..00000000
--- a/desiredata/doc/3.audio.examples/H15.phaser.pd
+++ /dev/null
@@ -1,109 +0,0 @@
-#N canvas 25 22 703 596 12;
-#X text 448 562 updated for Pd version 0.39;
-#X text 167 -1 PHASER;
-#N canvas 876 177 375 255 startup 0;
-#X obj 22 24 loadbang;
-#X obj 22 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 67 f \$0;
-#X text 35 195 This subpatch loads initial;
-#X text 31 219 values in number boxes.;
-#X msg 22 91 \; \$1-pole 80;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X restore 323 561 pd startup;
-#N canvas 0 0 660 424 chord 0;
-#X obj 87 97 -~ 0.5;
-#X obj 87 146 clip~ -0.5 0.5;
-#X obj 87 169 cos~;
-#X obj 91 252 hip~ 5;
-#X obj 91 315 outlet~;
-#X obj 87 122 *~ 3;
-#X obj 87 74 phasor~ 220;
-#X obj 221 97 -~ 0.5;
-#X obj 221 146 clip~ -0.5 0.5;
-#X obj 221 169 cos~;
-#X obj 221 122 *~ 3;
-#X obj 356 100 -~ 0.5;
-#X obj 356 149 clip~ -0.5 0.5;
-#X obj 356 172 cos~;
-#X obj 356 125 *~ 3;
-#X obj 491 100 -~ 0.5;
-#X obj 491 149 clip~ -0.5 0.5;
-#X obj 491 172 cos~;
-#X obj 491 125 *~ 3;
-#X obj 221 74 phasor~ 251;
-#X obj 356 77 phasor~ 281;
-#X obj 491 77 phasor~ 311;
-#X text 147 32 test sound for phaser;
-#X obj 91 285 *~ 0.2;
-#X connect 0 0 5 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 23 0;
-#X connect 5 0 1 0;
-#X connect 6 0 0 0;
-#X connect 7 0 10 0;
-#X connect 8 0 9 0;
-#X connect 9 0 3 0;
-#X connect 10 0 8 0;
-#X connect 11 0 14 0;
-#X connect 12 0 13 0;
-#X connect 13 0 3 0;
-#X connect 14 0 12 0;
-#X connect 15 0 18 0;
-#X connect 16 0 17 0;
-#X connect 17 0 3 0;
-#X connect 18 0 16 0;
-#X connect 19 0 7 0;
-#X connect 20 0 11 0;
-#X connect 21 0 15 0;
-#X connect 23 0 4 0;
-#X restore 73 271 pd chord;
-#X obj 72 533 output~;
-#X obj 95 325 rpole~;
-#X obj 95 300 rzero_rev~;
-#X obj 95 374 rpole~;
-#X obj 95 349 rzero_rev~;
-#X obj 95 422 rpole~;
-#X obj 95 397 rzero_rev~;
-#X obj 95 471 rpole~;
-#X obj 95 446 rzero_rev~;
-#X obj 72 501 +~;
-#X text 23 17 The phaser ranks \, along with fuzz and wah-wah \, as
-one of the great guitar pedals. A phaser simply adds an all-passed
-copy of the signal to the original \, making phase reinforcement and
-cancellation at frequencies that depend on the all-pass coefficients.
-In this example the coefficients range from 0.88 to 0.98 \, controlled
-by a phasor~ object (no relation). The phasor~ is converted to a symmetrical
-triangle wave (abs($v1-0.5)) and then ranged appropriately.;
-#X obj 250 417 phasor~ 0.3;
-#X text 22 158 Many variations of this have been invented. A deeper
-effect can be obtained by using 12 all-pass filters and adding the
-outputs of the 4th \, 8th. and 12th one to the original. Various stereo
-configurations are possible. Some people use 6 instead of the 4 stages
-used here. Controls can be added to change the frequency of sweeping
-and the range of the all-pass coeefficients.;
-#X obj 250 449 expr~ 1 - 0.03 - 0.6*abs($v1-0.5)*abs($v1-0.5);
-#X connect 3 0 6 0;
-#X connect 3 0 13 0;
-#X connect 5 0 8 0;
-#X connect 6 0 5 0;
-#X connect 7 0 10 0;
-#X connect 8 0 7 0;
-#X connect 9 0 12 0;
-#X connect 10 0 9 0;
-#X connect 11 0 13 1;
-#X connect 12 0 11 0;
-#X connect 13 0 4 0;
-#X connect 13 0 4 1;
-#X connect 15 0 17 0;
-#X connect 17 0 6 1;
-#X connect 17 0 5 1;
-#X connect 17 0 8 1;
-#X connect 17 0 7 1;
-#X connect 17 0 10 1;
-#X connect 17 0 9 1;
-#X connect 17 0 12 1;
-#X connect 17 0 11 1;
diff --git a/desiredata/doc/3.audio.examples/H16.adsr.filter.qlist.pd b/desiredata/doc/3.audio.examples/H16.adsr.filter.qlist.pd
deleted file mode 100644
index f112d2b6..00000000
--- a/desiredata/doc/3.audio.examples/H16.adsr.filter.qlist.pd
+++ /dev/null
@@ -1,167 +0,0 @@
-#N canvas 131 52 921 585 12;
-#X obj 12 219 r trigger;
-#X obj 12 437 *~;
-#X obj 12 330 *~ 0.01;
-#X obj 12 365 *~;
-#X obj 12 395 *~;
-#X obj 59 359 r pitch;
-#X obj 59 409 mtof;
-#X floatatom 59 384 4 0 0 0 - - -;
-#X floatatom 36 271 4 0 0 0 - - -;
-#X obj 36 246 r level;
-#X floatatom 110 271 4 0 0 0 - - -;
-#X obj 110 246 r attack;
-#X floatatom 195 271 4 0 0 0 - - -;
-#X obj 195 246 r decay;
-#X floatatom 270 271 4 0 0 0 - - -;
-#X floatatom 364 271 4 0 0 0 - - -;
-#X obj 270 246 r sustain;
-#X obj 364 246 r release;
-#X obj 499 158 r note;
-#X msg 500 236 \; trigger 1;
-#X obj 602 225 del;
-#X msg 602 247 \; trigger 0;
-#X obj 14 166 qlist;
-#X obj 14 7 r qlist;
-#X msg 35 34 bang;
-#X msg 35 59 rewind;
-#X obj 42 88 r tempo;
-#X floatatom 42 113 4 0 0 0 - - -;
-#X msg 42 138 tempo \$1;
-#X obj 499 201 t b f;
-#X obj 550 198 s pitch;
-#X obj 624 176 r duration;
-#X floatatom 624 201 4 0 0 0 - - -;
-#X floatatom 499 181 4 0 0 0 - - -;
-#X obj 268 319 r trigger;
-#X floatatom 294 375 4 0 0 0 - - -;
-#X floatatom 366 405 4 0 0 0 - - -;
-#X floatatom 456 405 4 0 0 0 - - -;
-#X floatatom 542 405 4 0 0 0 - - -;
-#X floatatom 638 405 4 0 0 0 - - -;
-#X obj 294 350 r level2;
-#X obj 366 380 r attack2;
-#X obj 456 380 r decay2;
-#X obj 542 380 r sustain2;
-#X obj 638 380 r release2;
-#X obj 59 434 tabosc4~ array1;
-#X floatatom 218 365 4 0 0 0 - - -;
-#X obj 12 481 vcf~;
-#X floatatom 119 487 4 0 0 0 - - -;
-#X obj 119 462 r q;
-#X obj 12 305 adsr 0 0 0 0 0;
-#X obj 268 443 adsr 0 0 0 0 0;
-#X obj 294 400 / 69.23;
-#X obj 218 390 mtof;
-#X obj 218 415 sqrt;
-#X obj 218 440 sqrt;
-#X obj 176 335 r filter;
-#X obj 219 493 *~;
-#X obj 219 518 *~;
-#X obj 268 468 +~ 1;
-#X obj 218 465 *~;
-#X text 118 214 ADSR for amplitude:;
-#N canvas 0 258 703 380 otherstuff 0;
-#X obj 289 86 loadbang;
-#X obj 418 85 loadbang;
-#N canvas 0 0 450 300 graph2 0;
-#X array array1 67 float 1;
-#A 0 0 0 0 0 0.714286 0.742857 0.757143 0.771429 0.778571 0.785714
-0.785714 0.785714 0.785714 0.790476 0.795238 0.614286 0.585714 0.442857
-0.271429 -0.128571 -0.142857 -0.157143 -0.171429 -0.642857 -0.528571
--0.614286 -0.685714 -0.828571 -0.828571 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0.557143 0.571429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-#X coords 0 1 66 -1 200 140 1;
-#X restore 62 81 graph;
-#X msg 418 115 \; qlist read qlist2.txt;
-#X msg 289 111 \; level 100 \; attack 20 \; decay 300 \; sustain 70
-\; release 300 \; duration 300 \; pitch 72 \; filter 38 \; level2 49
-\; attack2 19 \; decay2 300 \; sustain2 17 \; release2 700 \; q 3 \;
-tempo 4;
-#X connect 0 0 4 0;
-#X connect 1 0 3 0;
-#X restore 134 560 pd otherstuff;
-#X text 87 33 <--start loop;
-#X text 104 61 <--stop loop;
-#X text 90 113 <--set tempo;
-#X text 257 562 <--loadbangs and table;
-#X msg 447 517 \; qlist read qlist2.txt;
-#X text 441 493 click to reload qlist2.txt;
-#X obj 12 509 output~;
-#X text 229 19 This is an analog-synth sound made using a wavetable
-oscillator and a "vcf~' object. Unkike the "floyd" example earlier
-\, we use a qlist object to do the sequencing. This can also be adapted
-to make a keyboard synth.;
-#X text 227 85 The qlist reads the file \, "qlist2.txt" \, which contains
-four "note" messages and a message at the end that restarts the qlist
-at the beginning. The "note" messages are translated into a pitch change
-and triggers for the ADSRs.;
-#X text 667 551 updated for Pd version 0.39;
-#X text 379 305 ADSR for filter. Here \, it works better to make the
-envelope modify a constant "filter pitch"--so the "filter" receive
-gets the "mtof" treatment and the ADSR is an offset in halftones.;
-#X text 231 1 ANALOG_STYLE SYNTH USING QLIST;
-#X connect 0 0 50 0;
-#X connect 1 0 47 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 3 0 4 0;
-#X connect 3 0 4 1;
-#X connect 4 0 1 0;
-#X connect 5 0 7 0;
-#X connect 6 0 45 0;
-#X connect 7 0 6 0;
-#X connect 8 0 50 1;
-#X connect 9 0 8 0;
-#X connect 10 0 50 2;
-#X connect 11 0 10 0;
-#X connect 12 0 50 3;
-#X connect 13 0 12 0;
-#X connect 14 0 50 4;
-#X connect 15 0 50 5;
-#X connect 16 0 14 0;
-#X connect 17 0 15 0;
-#X connect 18 0 33 0;
-#X connect 20 0 21 0;
-#X connect 23 0 22 0;
-#X connect 24 0 22 0;
-#X connect 25 0 22 0;
-#X connect 26 0 27 0;
-#X connect 27 0 28 0;
-#X connect 28 0 22 0;
-#X connect 29 0 20 0;
-#X connect 29 0 19 0;
-#X connect 29 1 30 0;
-#X connect 31 0 32 0;
-#X connect 32 0 20 1;
-#X connect 33 0 29 0;
-#X connect 34 0 51 0;
-#X connect 35 0 52 0;
-#X connect 36 0 51 2;
-#X connect 37 0 51 3;
-#X connect 38 0 51 4;
-#X connect 39 0 51 5;
-#X connect 40 0 35 0;
-#X connect 41 0 36 0;
-#X connect 42 0 37 0;
-#X connect 43 0 38 0;
-#X connect 44 0 39 0;
-#X connect 45 0 1 1;
-#X connect 46 0 53 0;
-#X connect 47 0 69 0;
-#X connect 47 0 69 1;
-#X connect 48 0 47 2;
-#X connect 49 0 48 0;
-#X connect 50 0 2 0;
-#X connect 51 0 59 0;
-#X connect 52 0 51 1;
-#X connect 53 0 54 0;
-#X connect 54 0 55 0;
-#X connect 55 0 60 0;
-#X connect 56 0 46 0;
-#X connect 57 0 58 0;
-#X connect 57 0 58 1;
-#X connect 58 0 47 1;
-#X connect 59 0 60 1;
-#X connect 60 0 57 0;
-#X connect 60 0 57 1;
diff --git a/desiredata/doc/3.audio.examples/I01.Fourier.analysis.pd b/desiredata/doc/3.audio.examples/I01.Fourier.analysis.pd
deleted file mode 100644
index 31bcce63..00000000
--- a/desiredata/doc/3.audio.examples/I01.Fourier.analysis.pd
+++ /dev/null
@@ -1,90 +0,0 @@
-#N canvas 25 8 688 708 12;
-#X floatatom 38 264 7 0 0 0 - - -;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-real 64 float 2;
-#X coords 0 64 64 -64 256 200 1;
-#X restore 423 184 graph;
-#X floatatom 38 168 5 0 32 0 - - -;
-#X obj 78 240 samplerate~;
-#X obj 38 215 t f b;
-#X obj 38 240 *;
-#X obj 80 568 metro 250;
-#X obj 38 637 tabwrite~ \$0-real;
-#X obj 67 614 tabwrite~ \$0-imaginary;
-#X obj 38 384 osc~;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-imaginary 64 float 2;
-#X coords 0 64 64 -64 256 200 1;
-#X restore 423 417 graph;
-#X obj 69 360 f;
-#X floatatom 91 316 3 0 100 0 - - -;
-#X obj 91 337 / 100;
-#X obj 38 191 / 64;
-#X text 504 163 real part;
-#X text 489 398 imaginary part;
-#X obj 80 545 loadbang;
-#X text 94 166 <- frequency;
-#X text 133 182 (as multiple;
-#X text 135 198 of SR/64 \, the;
-#X text 133 215 fundamental);
-#X text 170 345 of a cycle;
-#X text 431 638 updated for PD version 0.39;
-#X obj 89 590 s \$0-snap;
-#X obj 69 286 r \$0-snap;
-#X text 127 315 <- phase in;
-#X text 161 331 hundredths;
-#X text 113 264 <- frequency \, Hz.;
-#X text 87 415 given the real and imaginary part;
-#X text 88 431 of a complex-valued signal. Here;
-#X text 87 447 the imaginary part is zero (the;
-#X text 86 400 fft~ computes the Fourier transform \,;
-#X text 186 541 real and imaginary;
-#X text 186 557 outputs are graphed;
-#X text 185 574 separately.;
-#X text 86 464 input is real-valued). The output;
-#X text 85 482 is a (real \, imaginary) pair for each;
-#X text 86 500 frequency from 0 to 63 (in units of;
-#X text 87 520 SR/64).;
-#X text 145 -36 The "fft~" object has separate inlets for the real
-and imaginary parts of a complex-valued signal and outputs its Fourier
-transform \, again using separate outlets for the real and imaginary
-part. The transform is done on one block of samples (here the block
-size is 64 \, Pd's default.) The outputs give the complex amplitudes
-of the harmonics of the input signal \, from DC up. The harmonics are
-tuned to the fundamental frequency of the analysis \, 1/64th of the
-sample rate. If the frequency (in harmonics) is an integer \, the result
-is two harmonics symmetric about the Nyquist frequency. Fractional
-frequencies spill across harmonics. Changing the initial phase rotates
-energy from real to imaginary and back.;
-#X text 26 -24 ANALYSIS;
-#X text 27 -42 FOURIER;
-#X msg 38 79 0;
-#X msg 38 100 10;
-#X msg 38 121 10.5;
-#X text 159 283 bang-on-snapshot;
-#X text 157 297 from below;
-#X text 100 363 sync phase with snapshots;
-#X obj 37 423 fft~;
-#X msg 274 614 \; pd dsp 1;
-#X connect 0 0 9 0;
-#X connect 2 0 14 0;
-#X connect 3 0 5 1;
-#X connect 4 0 5 0;
-#X connect 4 1 3 0;
-#X connect 5 0 0 0;
-#X connect 6 0 7 0;
-#X connect 6 0 8 0;
-#X connect 6 0 24 0;
-#X connect 9 0 49 0;
-#X connect 11 0 9 1;
-#X connect 12 0 13 0;
-#X connect 13 0 11 1;
-#X connect 14 0 4 0;
-#X connect 17 0 6 0;
-#X connect 17 0 50 0;
-#X connect 25 0 11 0;
-#X connect 43 0 2 0;
-#X connect 44 0 2 0;
-#X connect 45 0 2 0;
-#X connect 49 0 7 0;
-#X connect 49 1 8 0;
diff --git a/desiredata/doc/3.audio.examples/I02.Hann.window.pd b/desiredata/doc/3.audio.examples/I02.Hann.window.pd
deleted file mode 100644
index 1cf8b46a..00000000
--- a/desiredata/doc/3.audio.examples/I02.Hann.window.pd
+++ /dev/null
@@ -1,181 +0,0 @@
-#N canvas 281 223 567 589 12;
-#N canvas 228 148 651 544 fft-analysis 0;
-#X obj 15 164 *~;
-#X obj 14 99 inlet~;
-#X obj 15 218 rfft~;
-#X obj 36 140 tabreceive~ \$0-hann;
-#X obj 14 306 *~;
-#X obj 56 306 *~;
-#X obj 15 356 sqrt~;
-#X obj 14 498 tabwrite~ \$0-magnitude;
-#X obj 23 386 loadbang;
-#X obj 23 470 metro 250;
-#X obj 23 449 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X msg 31 411 \; pd dsp 1;
-#X obj 15 8 block~ 512;
-#X text 225 131 tabreceive~ outputs array contents \,;
-#X text 225 149 constantly \, every block. Here it's;
-#X text 223 169 used to get the Hann window to;
-#X text 225 187 multiply by the input.;
-#X text 120 7 block~ object does no computation but declares this;
-#X text 120 24 window to be operating at a different block size from
-;
-#X text 122 58 Fourier transform.;
-#X text 121 40 the parent window. This determines the size of the;
-#X text 76 99 The inlet~ automatically re-blocks to the new block size.
-;
-#X obj 15 332 +~;
-#X text 94 308 Take the magnitude by squaring real and imaginary part
-\, adding and taking square root.;
-#X text 110 424 periodically graph the output. It appears every 512
-samples (about 12 milliseconds) but we only update the graph 4 times
-per second. The graph is back on the main (parent) window.;
-#X text 82 215 forward real FFT. Like "fft~" \, but only one inlet
-(for the real part) and only the first half of the output signals are
-used. (The others are determined by symmetry: they're complex conjugates
-of the first half \, in reverse order.) This takes 1/2 the CPU time
-of "fft".;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 2 0 4 1;
-#X connect 2 1 5 0;
-#X connect 2 1 5 1;
-#X connect 3 0 0 1;
-#X connect 4 0 22 0;
-#X connect 5 0 22 1;
-#X connect 6 0 7 0;
-#X connect 8 0 10 0;
-#X connect 8 0 11 0;
-#X connect 9 0 7 0;
-#X connect 10 0 9 0;
-#X connect 22 0 6 0;
-#X restore 26 289 pd fft-analysis;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-magnitude 256 float 0;
-#X coords 0 256 255 0 256 100 1;
-#X restore 287 208 graph;
-#X text 110 6 WINDOWING AND BLOCKING FOURIER TRANSFORMS;
-#X obj 25 264 osc~;
-#X floatatom 25 218 5 0 0 0 - - -;
-#X obj 25 240 * 10;
-#X text 305 559 updated for Pd version 0.39;
-#X text 349 183 magnitude;
-#X text 284 311 0;
-#X text 522 311 255;
-#X text 273 297 0;
-#X text 255 253 128;
-#X text 254 203 256;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 512 float 1;
-#A 0 0 3.76403e-05 0.000150591 0.000338793 0.000602275 0.000940949
-0.00135478 0.00184369 0.00240764 0.00304651 0.00376022 0.00454867 0.00541174
-0.0063493 0.00736117 0.00844723 0.00960734 0.0108413 0.0121489 0.01353
-0.0149843 0.0165117 0.0181119 0.0197847 0.0215298 0.0233469 0.0252359
-0.0271963 0.0292279 0.0313304 0.0335035 0.0357469 0.0380601 0.040443
-0.042895 0.0454159 0.0480052 0.0506626 0.0533877 0.05618 0.0590392
-0.0619648 0.0649563 0.0680134 0.0711355 0.0743222 0.077573 0.0808874
-0.0842649 0.0877051 0.0912073 0.0947711 0.0983959 0.102081 0.105826
-0.109631 0.113494 0.117416 0.121395 0.125431 0.129524 0.133672 0.137876
-0.142134 0.146446 0.150811 0.155229 0.159699 0.16422 0.168792 0.173413
-0.178084 0.182803 0.18757 0.192384 0.197244 0.20215 0.2071 0.212095
-0.217133 0.222214 0.227337 0.2325 0.237704 0.242948 0.24823 0.25355
-0.258907 0.264301 0.26973 0.275194 0.280691 0.286222 0.291785 0.297379
-0.303003 0.308658 0.314341 0.320052 0.32579 0.331555 0.337344 0.343159
-0.348997 0.354857 0.36074 0.366643 0.372567 0.37851 0.384471 0.390449
-0.396444 0.402454 0.40848 0.414519 0.420571 0.426634 0.432709 0.438794
-0.444889 0.450991 0.457101 0.463218 0.469339 0.475466 0.481596 0.487729
-0.493864 0.5 0.506136 0.512271 0.518404 0.524534 0.53066 0.536782 0.542899
-0.549009 0.555111 0.561205 0.56729 0.573365 0.579429 0.585481 0.59152
-0.597545 0.603556 0.609551 0.615529 0.62149 0.627433 0.633357 0.63926
-0.645143 0.651003 0.656841 0.662656 0.668445 0.67421 0.679948 0.685659
-0.691342 0.696997 0.702621 0.708215 0.713778 0.719309 0.724806 0.73027
-0.735699 0.741092 0.74645 0.75177 0.757052 0.762295 0.767499 0.772663
-0.777786 0.782867 0.787905 0.7929 0.79785 0.802756 0.807616 0.81243
-0.817197 0.821916 0.826587 0.831209 0.83578 0.840301 0.844771 0.849189
-0.853554 0.857866 0.862124 0.866328 0.870476 0.874569 0.878605 0.882584
-0.886506 0.890369 0.894174 0.897919 0.901605 0.905229 0.908793 0.912295
-0.915736 0.919113 0.922428 0.925678 0.928865 0.931987 0.935044 0.938036
-0.940961 0.94382 0.946613 0.949338 0.951995 0.954585 0.957106 0.959558
-0.96194 0.964254 0.966497 0.96867 0.970773 0.972804 0.974765 0.976654
-0.978471 0.980216 0.981889 0.983489 0.985016 0.98647 0.987852 0.989159
-0.990393 0.991553 0.992639 0.993651 0.994589 0.995452 0.99624 0.996954
-0.997593 0.998156 0.998645 0.999059 0.999398 0.999661 0.999849 0.999962
-1 0.999962 0.999849 0.999661 0.999398 0.999059 0.998645 0.998156 0.997592
-0.996953 0.996239 0.995451 0.994588 0.99365 0.992638 0.991552 0.990392
-0.989158 0.987851 0.986469 0.985015 0.983488 0.981887 0.980215 0.978469
-0.976652 0.974763 0.972803 0.970771 0.968669 0.966495 0.964252 0.961939
-0.959556 0.957104 0.954583 0.951993 0.949336 0.946611 0.943819 0.940959
-0.938034 0.935042 0.931985 0.928863 0.925676 0.922425 0.919111 0.915733
-0.912293 0.908791 0.905227 0.901602 0.897917 0.894171 0.890367 0.886503
-0.882582 0.878602 0.874566 0.870473 0.866325 0.862121 0.857863 0.853551
-0.849186 0.844768 0.840298 0.835777 0.831205 0.826584 0.821913 0.817194
-0.812427 0.807613 0.802753 0.797847 0.792896 0.787901 0.782863 0.777782
-0.77266 0.767496 0.762292 0.757048 0.751766 0.746446 0.741089 0.735695
-0.730266 0.724802 0.719305 0.713774 0.708211 0.702617 0.696993 0.691338
-0.685655 0.679944 0.674206 0.668441 0.662652 0.656837 0.650999 0.645139
-0.639256 0.633353 0.627429 0.621486 0.615525 0.609547 0.603552 0.597541
-0.591516 0.585477 0.579425 0.573361 0.567286 0.561201 0.555107 0.549004
-0.542895 0.536778 0.530656 0.52453 0.518399 0.512266 0.506132 0.499996
-0.49386 0.487725 0.481592 0.475462 0.469335 0.463213 0.457097 0.450987
-0.444885 0.43879 0.432705 0.42663 0.420566 0.414515 0.408476 0.40245
-0.39644 0.390445 0.384466 0.378505 0.372563 0.366639 0.360736 0.354853
-0.348993 0.343155 0.33734 0.331551 0.325786 0.320048 0.314337 0.308654
-0.303 0.297375 0.291781 0.286218 0.280687 0.27519 0.269726 0.264297
-0.258904 0.253547 0.248226 0.242944 0.237701 0.232497 0.227333 0.222211
-0.21713 0.212092 0.207097 0.202146 0.19724 0.19238 0.187566 0.182799
-0.17808 0.17341 0.168788 0.164217 0.159696 0.155226 0.150808 0.146443
-0.142131 0.137873 0.133669 0.129521 0.125428 0.121392 0.117413 0.113491
-0.109628 0.105823 0.102078 0.0983929 0.0947681 0.0912044 0.0877022
-0.0842621 0.0808846 0.0775702 0.0743194 0.0711327 0.0680107 0.0649537
-0.0619622 0.0590366 0.0561775 0.0533853 0.0506602 0.0480029 0.0454136
-0.0428928 0.0404408 0.038058 0.0357448 0.0335015 0.0313284 0.029226
-0.0271944 0.025234 0.0233452 0.0215281 0.019783 0.0181104 0.0165102
-0.0149829 0.0135286 0.0121476 0.01084 0.00960615 0.0084461 0.0073601
-0.00634828 0.00541082 0.00454783 0.00375944 0.00304583 0.00240701 0.00184315
-0.00135431 0.000940561 0.000601947 0.000338584 0.000150442 3.75807e-05
-;
-#X coords 0 1 511 0 200 120 1;
-#X restore 278 401 graph;
-#X msg 156 415 0;
-#X obj 50 464 osc~;
-#X obj 50 416 samplerate~;
-#X obj 50 487 *~ -0.5;
-#X obj 50 510 +~ 0.5;
-#X obj 42 535 tabwrite~ \$0-hann;
-#X text 264 393 1;
-#X text 257 511 0;
-#X text 273 524 0;
-#X obj 50 440 / 512;
-#X obj 42 393 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 321 373 Hann window;
-#X text 98 462 period 512;
-#X text 40 368 recalculate Hann;
-#X text 75 383 window table;
-#X text 100 233 tens of Hz.;
-#X text 80 215 <- frequency \,;
-#X text 98 270 click here and;
-#X text 170 286 <- see;
-#X text 21 32 In this example we use a sub-patch ("pd fft-analysis")
-to re-block the Fourier transform to 512 points. The signal is multiplied
-by the Hann window function (which is just a raised cosine.) The magnitude
-\, which is computed in the sub-patch \, is graphed below in this window.
-The point at 255 corresponds to just below the Nyquist frequency. Phase
-isn't shown \, and unlike the previous patch we don't control the initial
-phase of the oscillator. (For fun \, try drawing other window functions
-with the mouse...);
-#X text 459 527 511;
-#X connect 3 0 0 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 14 0 15 1;
-#X connect 15 0 17 0;
-#X connect 16 0 23 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
-#X connect 23 0 15 0;
-#X connect 24 0 16 0;
-#X connect 24 0 14 0;
-#X connect 24 0 19 0;
diff --git a/desiredata/doc/3.audio.examples/I03.resynthesis.pd b/desiredata/doc/3.audio.examples/I03.resynthesis.pd
deleted file mode 100644
index f709d29f..00000000
--- a/desiredata/doc/3.audio.examples/I03.resynthesis.pd
+++ /dev/null
@@ -1,132 +0,0 @@
-#N canvas 73 310 580 406 12;
-#N canvas 265 48 643 640 fft-analysis 0;
-#X obj 15 164 *~;
-#X obj 14 99 inlet~;
-#X obj 15 218 rfft~;
-#X obj 36 140 tabreceive~ \$0-hann;
-#X obj 14 353 *~;
-#X obj 56 353 *~;
-#X obj 15 8 block~ 512 4;
-#X text 85 88 The inlet~ now re-uses 3/4 of the previous block \, along
-with the 128 new samples.;
-#X text 221 141 window function as before.;
-#X obj 76 196 tabreceive~ \$0-gain;
-#X obj 77 225 *~;
-#X obj 16 506 *~;
-#X obj 37 481 tabreceive~ \$0-hann;
-#X obj 77 283 /~ 768;
-#X text 98 301 divide by 3N/2 (factor of N because rfft and rifft aren't
-normalized \, and 3/2 is the gain of overlap-4 reconstruction when
-Hann window function is applied twice.);
-#X text 120 216 Just to show we're doing something \, we multiply each
-channel by a gain controlled by an array in the main window. The control
-is quartic-scaled for easy editing.;
-#X obj 78 251 *~;
-#X text 92 357 Multiply the (complex-valued) spectrum amplitudes by
-the (real-valued) gain-and-normalization-factor;
-#X obj 15 399 rifft~;
-#X text 89 396 Real-valued inverse Fourier transform. This uses only
-the first N/@ points of its inputs \, supplying the rest by symmerty
-(so it's OK that rfft~ obly puts out those N/2 points.) There's only
-one outlet because the output is real-valued.;
-#X obj 16 566 outlet~;
-#X text 88 499 Multiply by the Hann window function again \, necessary
-because the operation we performed might result in a signal that doesn't
-go smoothly to zero at both ends.;
-#X text 89 566 This repackages the output into 64-sample chunks for
-the parent window. Since we're operating with an overlap \, the outlet~
-object performs an overlapped sum of the blocks computed in this window.
-;
-#X text 129 8 block~ object specifies vector size of 512 and overlap
-four. This window now computes blocks of 512 samples at intervals of
-128 samples computed on the parent patch.;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 2 1 5 0;
-#X connect 3 0 0 1;
-#X connect 4 0 18 0;
-#X connect 5 0 18 1;
-#X connect 9 0 10 0;
-#X connect 9 0 10 1;
-#X connect 10 0 16 0;
-#X connect 10 0 16 1;
-#X connect 11 0 20 0;
-#X connect 12 0 11 1;
-#X connect 13 0 4 1;
-#X connect 13 0 5 1;
-#X connect 16 0 13 0;
-#X connect 18 0 11 0;
-#X restore 26 289 pd fft-analysis;
-#X text 290 362 updated for Pd version 0.39;
-#N canvas 35 66 592 433 Hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 512 float 0;
-#X coords 0 1 511 0 200 120 1;
-#X restore 293 249 graph;
-#X msg 171 263 0;
-#X obj 65 312 osc~;
-#X obj 65 264 samplerate~;
-#X obj 65 335 *~ -0.5;
-#X obj 65 358 +~ 0.5;
-#X obj 57 383 tabwrite~ \$0-hann;
-#X text 279 241 1;
-#X text 272 359 0;
-#X text 288 372 0;
-#X obj 65 288 / 512;
-#X obj 57 241 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 336 221 Hann window;
-#X text 113 310 period 512;
-#X text 90 215 recalculate Hann;
-#X text 125 230 window table;
-#X obj 57 146 loadbang;
-#X msg 79 179 \; pd dsp 1;
-#X text 40 27 The Hann window is now recomputed on 'loadbang' to make
-the file smaller (it doesn't have to be saved with the array.);
-#X text 474 375 511;
-#X connect 1 0 2 1;
-#X connect 2 0 4 0;
-#X connect 3 0 10 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 10 0 2 0;
-#X connect 11 0 3 0;
-#X connect 11 0 1 0;
-#X connect 11 0 6 0;
-#X connect 16 0 11 0;
-#X connect 16 0 17 0;
-#X restore 192 318 pd Hann-window;
-#X obj 27 323 output~;
-#X obj 25 264 noise~;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-gain 256 float 3;
-#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-#X coords 0 1 256 -0.01 512 60 1;
-#X restore 22 168 graph;
-#X msg 192 264 const 0;
-#X obj 192 293 s \$0-gain;
-#X text 138 0 FOURIER RESYNTHESIS;
-#X text 6 218 0;
-#X text 6 159 1;
-#X text 19 228 0;
-#X text 516 231 22K;
-#X text 270 261 <- reset gain;
-#X text 224 148 GAIN;
-#X text 21 24 Using Fourier resynthesis you can take an incoming sound
-\, operate on its spectrum \, and hear the result. Here we start with
-white noise and apply a frequency-dependent gain \, which works as
-a graphic equalizer. There are N/2 = 256 points \, each spaced SR/512
-Hz. apart (although their frequency ranges overlap). Open the "fft-analysis"
-patch to see the workings.;
-#X connect 0 0 3 0;
-#X connect 0 0 3 1;
-#X connect 4 0 0 0;
-#X connect 6 0 7 0;
diff --git a/desiredata/doc/3.audio.examples/I04.noisegate.pd b/desiredata/doc/3.audio.examples/I04.noisegate.pd
deleted file mode 100644
index 0a8bd12a..00000000
--- a/desiredata/doc/3.audio.examples/I04.noisegate.pd
+++ /dev/null
@@ -1,330 +0,0 @@
-#N canvas 42 28 657 564 12;
-#X floatatom 316 376 0 0 0 0 - - -;
-#X floatatom 81 384 0 0 100 0 - - -;
-#N canvas 98 0 648 669 fft-analysis 0;
-#X obj 35 589 *~;
-#X obj 143 305 *~;
-#X obj 158 150 *~;
-#X obj 35 72 *~;
-#X obj 76 527 *~;
-#X obj 35 44 inlet~;
-#X obj 35 528 *~;
-#X obj 34 101 rfft~;
-#X obj 35 558 rifft~;
-#X obj 36 616 outlet~;
-#X obj 119 149 *~;
-#X obj 119 176 +~;
-#X obj 165 278 r mask-level;
-#X obj 100 422 /~;
-#X obj 355 23 block~ 1024 4;
-#X text 176 446 is signal power and "m" is mask.;
-#X obj 131 332 -~;
-#X obj 131 355 max~ 0;
-#X obj 99 448 q8_sqrt~;
-#X text 175 464 (zero if s < m).;
-#X obj 144 256 tabreceive~ \$0-mask;
-#X obj 76 72 tabreceive~ \$0-hann;
-#X obj 69 590 tabreceive~ \$0-hann;
-#N canvas 91 250 910 495 calculate-mask 0;
-#X obj 125 379 inlet~;
-#X msg 371 283 0;
-#X msg 371 166 0;
-#X obj 240 196 float;
-#X obj 294 200 + 1;
-#X obj 240 144 bang~;
-#X obj 240 169 spigot;
-#X floatatom 411 218 0 0 0 0 - - -;
-#X obj 315 408 -~;
-#X obj 371 258 sel 0;
-#X obj 327 443 *~;
-#X obj 293 443 +~;
-#X floatatom 351 313 0 0 0 0 - - -;
-#X obj 240 219 t f f;
-#X obj 370 113 r make-mask;
-#X obj 371 141 t b f;
-#X obj 411 165 /;
-#X text 483 212 number of;
-#X text 491 227 frames;
-#X floatatom 481 166 0 0 0 0 - - -;
-#X obj 480 113 r window-msec;
-#X obj 481 136 / 4;
-#X text 521 133 hop size (analysis;
-#X text 546 149 period) in msec;
-#X obj 359 408 tabreceive~ \$0-mask;
-#X obj 292 468 tabsend~ \$0-mask;
-#X obj 371 218 <;
-#X obj 235 258 expr 1/($f1+1);
-#X text 134 17 calculate a mask using N msec of background noise;
-#X text 43 354 current power (for each channel);
-#X text 367 430 average the current power into the last mask to get
-the new mask. The new value is weighted 1/n on the nth iteration.;
-#X text 390 312 weight to average in new power to mask;
-#X text 11 203 loop counting to desired;
-#X text 78 219 number of frames;
-#X text 72 39 This loops for "make-mask" milliseconds \, averaging
-power in each channel over that amount of time. This is done by a moving
-average whose weight is adjusted to average each new value equally
-with each of the accumulating ones.;
-#X connect 0 0 8 0;
-#X connect 1 0 12 0;
-#X connect 2 0 3 1;
-#X connect 2 0 26 0;
-#X connect 3 0 13 0;
-#X connect 3 0 4 0;
-#X connect 4 0 3 1;
-#X connect 5 0 6 0;
-#X connect 6 0 3 0;
-#X connect 7 0 26 1;
-#X connect 8 0 10 0;
-#X connect 9 0 1 0;
-#X connect 10 0 11 1;
-#X connect 11 0 25 0;
-#X connect 12 0 10 1;
-#X connect 13 0 26 0;
-#X connect 13 1 27 0;
-#X connect 14 0 15 0;
-#X connect 15 0 2 0;
-#X connect 15 1 16 0;
-#X connect 16 0 7 0;
-#X connect 20 0 21 0;
-#X connect 21 0 16 1;
-#X connect 21 0 19 0;
-#X connect 24 0 8 1;
-#X connect 24 0 11 0;
-#X connect 26 0 6 1;
-#X connect 26 0 9 0;
-#X connect 27 0 12 0;
-#X restore 132 203 pd calculate-mask;
-#X text 91 98 real Fourier transform;
-#X obj 357 57 loadbang;
-#X msg 357 80 \; pd dsp 1 \; window-size 1024;
-#X text 193 355 ... but not less than zero;
-#X text 101 561 real inverse Fourier transform;
-#X text 196 498 normalize by 2/(3N) where N is window size;
-#X text 168 332 current power ("s") minus level-adjusted mask ("m")
-;
-#X text 156 175 compute power (call it "s") in each channel;
-#X obj 123 395 +~ 1e-20;
-#X text 203 395 protect against division by zero;
-#X text 179 426 compute sqrt((s-m)/s) where "s";
-#X text 296 204 <- subwindow calculates noise mask;
-#X obj 98 499 /~ 1536;
-#X connect 0 0 9 0;
-#X connect 1 0 16 1;
-#X connect 2 0 11 1;
-#X connect 3 0 7 0;
-#X connect 4 0 8 1;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X connect 7 0 10 0;
-#X connect 7 0 10 1;
-#X connect 7 1 4 0;
-#X connect 7 1 2 0;
-#X connect 7 1 2 1;
-#X connect 8 0 0 0;
-#X connect 10 0 11 0;
-#X connect 11 0 16 0;
-#X connect 11 0 23 0;
-#X connect 11 0 32 0;
-#X connect 12 0 1 1;
-#X connect 13 0 18 0;
-#X connect 16 0 17 0;
-#X connect 17 0 13 0;
-#X connect 18 0 36 0;
-#X connect 20 0 1 0;
-#X connect 21 0 3 1;
-#X connect 22 0 0 1;
-#X connect 25 0 26 0;
-#X connect 32 0 13 1;
-#X connect 36 0 6 1;
-#X connect 36 0 4 1;
-#X restore 80 441 pd fft-analysis;
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 1024 float 0;
-#X coords 0 1 1023 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 331 478 pd hann-window;
-#X text 197 355 noise;
-#N canvas 132 255 660 373 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample 155948 float 0;
-#X coords 0 1 155947 -1 400 150 1;
-#X restore 236 25 graph;
-#X obj 19 23 r read-sample;
-#X obj 19 74 unpack s f;
-#X obj 116 74 s insamprate;
-#X obj 19 184 soundfiler;
-#X obj 19 208 s insamplength;
-#X text 113 252 read a sample;
-#X obj 33 251 loadbang;
-#X obj 19 100 t s b;
-#X obj 75 99 symbol \$0-sample;
-#X obj 19 135 pack s s;
-#X msg 19 160 read -resize \$1 \$2;
-#X obj 74 46 44100;
-#X msg 33 275 \; read-sample ../sound/bell.aiff;
-#X msg 31 322 \; read-sample ../sound/voice.wav;
-#X obj 19 47 t a b;
-#X connect 1 0 15 0;
-#X connect 2 0 8 0;
-#X connect 2 1 3 0;
-#X connect 4 0 5 0;
-#X connect 7 0 13 0;
-#X connect 8 0 10 0;
-#X connect 8 1 9 0;
-#X connect 9 0 10 1;
-#X connect 10 0 11 0;
-#X connect 11 0 4 0;
-#X connect 12 0 3 0;
-#X connect 15 0 2 0;
-#X connect 15 1 12 0;
-#X restore 331 456 pd insample;
-#X obj 316 401 s mask-level;
-#X floatatom 202 379 0 0 100 0 - - -;
-#X text 317 325 on;
-#X text 362 326 off;
-#X text 317 309 masking;
-#X text 290 5 DENOISER;
-#X msg 361 349 0;
-#N canvas 190 43 812 571 test-signal 0;
-#X obj 75 328 line~;
-#X obj 75 250 f;
-#X obj 251 164 r insamprate;
-#X obj 583 219 *~;
-#X obj 76 442 *~;
-#X obj 583 110 noise~;
-#X obj 370 493 +~;
-#X obj 98 415 dbtorms;
-#X obj 605 193 dbtorms;
-#X obj 98 390 inlet;
-#X obj 605 169 inlet;
-#X obj 371 541 outlet~;
-#X obj 236 139 r insamplength;
-#X msg 75 304 0 \, \$1 \$2;
-#X obj 75 276 pack 0 0;
-#X obj 236 248 /;
-#X obj 251 190 * 0.001;
-#X obj 251 219 t b f;
-#X obj 370 516 hip~ 5;
-#X obj 75 136 loadbang;
-#X obj 75 182 metro 1000;
-#X obj 583 135 bp~ 10000 3;
-#X obj 75 161 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X text 270 247 sample duration \, msec;
-#X text 126 84 looped sample playback;
-#X obj 75 356 tabread4~ \$0-sample;
-#X text 580 83 filtered noise;
-#X text 105 15 TEST SIGNAL: looped sample plus noise. The inlets control
-amplitude of each in dB.;
-#X connect 0 0 25 0;
-#X connect 1 0 14 0;
-#X connect 2 0 16 0;
-#X connect 3 0 6 1;
-#X connect 4 0 6 0;
-#X connect 5 0 21 0;
-#X connect 6 0 18 0;
-#X connect 7 0 4 1;
-#X connect 8 0 3 1;
-#X connect 9 0 7 0;
-#X connect 10 0 8 0;
-#X connect 12 0 1 1;
-#X connect 12 0 15 0;
-#X connect 13 0 0 0;
-#X connect 14 0 13 0;
-#X connect 15 0 14 1;
-#X connect 15 0 20 1;
-#X connect 16 0 17 0;
-#X connect 17 0 15 0;
-#X connect 17 1 15 1;
-#X connect 18 0 11 0;
-#X connect 19 0 22 0;
-#X connect 20 0 1 0;
-#X connect 21 0 3 0;
-#X connect 22 0 20 0;
-#X connect 25 0 4 0;
-#X restore 81 409 pd test-signal;
-#X text 69 357 sampler;
-#X text 443 311 calculate noise mask;
-#X obj 80 488 output~;
-#X msg 462 338 \; make-mask 2000;
-#X msg 316 348 15;
-#N canvas 0 0 592 442 mask-table 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-mask 512 float 0;
-#X coords 0 500 511 0 400 300 1;
-#X restore 110 76 graph;
-#X text 25 14 This table ($0-mask) is the average power measured in
-each channel of the spectrum \, presumed to represent the noise floor.
-;
-#X restore 331 500 pd mask-table;
-#X text 80 322 amplitudes (dB);
-#X text 68 26 This patch attempts to scrub the noise floor from a sample
-in two steps. First using the "make-mask" message (which is caught
-in the "fft-analysis" window) \, you estimate the background spectrum.
-You would normally do this at a moment when only the background noise
-is audible. Then \, turn on "masking" (to 15 by default \, but try
-other values) and the patch will try to clean the background noise
-out of a signal.;
-#X text 67 149 For this demonstration \, you control the amplitudes
-of a looping sample and a filtered noise source. Normally you'd hit
-"calculate noise mask" with only hte noise turned on \, then turn both
-the noise and the sampler on \, and also "masking" \, to see if the
-patch can clean the noise out of the signal. Open the "fft-analysis"
-window to see the algorithm \, or the "insample" window to change samples
-\, or "mask-table" to see the current mask (the average signal power
-of the noise to clean out of the signal).;
-#X connect 0 0 6 0;
-#X connect 1 0 13 0;
-#X connect 2 0 16 0;
-#X connect 2 0 16 1;
-#X connect 7 0 13 1;
-#X connect 12 0 0 0;
-#X connect 13 0 2 0;
-#X connect 18 0 0 0;
diff --git a/desiredata/doc/3.audio.examples/I05.compressor.pd b/desiredata/doc/3.audio.examples/I05.compressor.pd
deleted file mode 100644
index 10fe3375..00000000
--- a/desiredata/doc/3.audio.examples/I05.compressor.pd
+++ /dev/null
@@ -1,237 +0,0 @@
-#N canvas 557 371 620 428 12;
-#N canvas 297 254 646 523 fft-analysis 0;
-#X obj 115 409 *~;
-#X obj 75 409 *~;
-#X obj 76 114 *~;
-#X obj 77 88 inlet~;
-#X obj 76 137 rfft~;
-#X obj 75 466 *~;
-#X obj 171 177 *~;
-#X obj 75 432 rifft~;
-#X obj 75 489 outlet~;
-#X obj 137 177 *~;
-#X obj 137 200 +~;
-#X obj 461 85 block~ 1024 4;
-#X obj 137 351 clip~;
-#X obj 178 306 r squelch;
-#X obj 110 114 tabreceive~ \$0-hann;
-#X obj 177 329 expr 0.01*$f1*$f1;
-#X obj 461 116 loadbang;
-#X obj 137 381 *~ 0.00065;
-#X obj 137 225 +~ 1e-20;
-#X obj 136 262 q8_rsqrt~;
-#X obj 109 466 tabreceive~ \$0-hann;
-#X text 31 5 As in the previous patch \, this works by multiplying
-each channel of the Fourier analysis by a real number computed from
-the magnitude. If the magnutude is "m" \, the correction factor is
-1/m \, but only to an upper limit controlled by the "squelch" parameter.
-;
-#X text 211 174 squared magnitude;
-#X text 219 225 protect against divide-by-zero;
-#X text 223 261 quick 8-bit-accurate reciprocal square root;
-#X text 222 277 (done by table lookup - about 0.25% accurate);
-#X text 193 351 limit the gain to squelch*squelch/100;
-#X text 238 381 normalize for 1024-point \, overlap-4 Hann;
-#X text 151 409 multiply gain by real and complex part;
-#X text 152 429 of the amplitude;
-#X text 130 137 outputs complex amplitudes;
-#X msg 461 139 \; pd dsp 1 \; window-size 1024 \; squelch 10 \; squelch-set
-set 10;
-#X connect 0 0 7 1;
-#X connect 1 0 7 0;
-#X connect 2 0 4 0;
-#X connect 3 0 2 0;
-#X connect 4 0 9 0;
-#X connect 4 0 9 1;
-#X connect 4 0 1 0;
-#X connect 4 1 6 0;
-#X connect 4 1 6 1;
-#X connect 4 1 0 0;
-#X connect 5 0 8 0;
-#X connect 6 0 10 1;
-#X connect 7 0 5 0;
-#X connect 9 0 10 0;
-#X connect 10 0 18 0;
-#X connect 12 0 17 0;
-#X connect 13 0 15 0;
-#X connect 14 0 2 1;
-#X connect 15 0 12 2;
-#X connect 16 0 31 0;
-#X connect 17 0 0 1;
-#X connect 17 0 1 1;
-#X connect 18 0 19 0;
-#X connect 19 0 12 0;
-#X connect 20 0 5 1;
-#X restore 42 330 pd fft-analysis;
-#X floatatom 57 196 0 0 500 0 - squelch-set -;
-#X obj 57 220 s squelch;
-#N canvas 190 43 427 657 test-signal 0;
-#X obj 90 444 line~;
-#X obj 90 369 f;
-#X obj 90 524 outlet~;
-#X msg 90 423 0 \, \$1 \$2;
-#X obj 90 397 pack 0 0;
-#X obj 190 344 /;
-#X obj 317 295 * 0.001;
-#X obj 90 497 hip~ 5;
-#X obj 35 246 loadbang;
-#X msg 90 322 1;
-#X obj 90 344 metro 1000;
-#X obj 259 272 t b b f;
-#X obj 117 270 t b f;
-#X obj 90 469 tabread4~ \$0-sample;
-#X text 21 28 test signal: looped sample playback;
-#X obj 67 131 hip~ 5;
-#X obj 67 107 adc~ 1;
-#X obj 129 131 s insamprate;
-#X obj 67 70 inlet;
-#X obj 129 107 samplerate~;
-#X obj 116 246 r \$0-samplength;
-#X obj 259 246 r \$0-insamprate;
-#X obj 67 154 tabwrite~ \$0-sample;
-#X connect 0 0 13 0;
-#X connect 1 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 3 0;
-#X connect 5 0 4 1;
-#X connect 5 0 10 1;
-#X connect 6 0 5 1;
-#X connect 7 0 2 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 1 0;
-#X connect 11 0 9 0;
-#X connect 11 1 5 0;
-#X connect 11 2 6 0;
-#X connect 12 0 9 0;
-#X connect 12 1 5 0;
-#X connect 12 1 1 1;
-#X connect 13 0 7 0;
-#X connect 15 0 22 0;
-#X connect 16 0 15 0;
-#X connect 18 0 19 0;
-#X connect 18 0 16 0;
-#X connect 19 0 17 0;
-#X connect 20 0 12 0;
-#X connect 21 0 11 0;
-#X restore 43 303 pd test-signal;
-#X obj 43 359 output~;
-#N canvas 388 86 722 350 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample 155948 float 0;
-#X coords 0 1 155947 -1 400 150 1;
-#X restore 259 24 graph;
-#X obj 19 23 r read-sample;
-#X obj 19 74 unpack s f;
-#X obj 19 184 soundfiler;
-#X text 356 250 read a sample;
-#X obj 276 249 loadbang;
-#X obj 19 100 t s b;
-#X obj 75 99 symbol \$0-sample;
-#X obj 19 135 pack s s;
-#X msg 19 160 read -resize \$1 \$2;
-#X obj 74 46 44100;
-#X obj 19 47 t a b;
-#X msg 276 273 \; read-sample ../sound/bell.aiff;
-#X obj 29 208 s \$0-samplength;
-#X obj 116 74 s \$0-insamprate;
-#X obj 19 247 /;
-#X obj 19 271 * 1000;
-#X obj 19 294 s \$0-samp-msec;
-#X obj 57 247 r \$0-insamprate;
-#X connect 1 0 11 0;
-#X connect 2 0 6 0;
-#X connect 2 1 14 0;
-#X connect 3 0 13 0;
-#X connect 3 0 15 0;
-#X connect 5 0 12 0;
-#X connect 6 0 8 0;
-#X connect 6 1 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 9 0;
-#X connect 9 0 3 0;
-#X connect 10 0 14 0;
-#X connect 11 0 2 0;
-#X connect 11 1 10 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X connect 18 0 15 1;
-#X restore 223 313 pd insample;
-#X text 362 406 updated for Pd version 0.39;
-#X text 56 43 Here we divide each complex channel in the Fourier analysis
-by its own magnitude to "flatten" the spectrum. The "squelch" control
-limits the amplitude boost the algorithm will apply. If infinite \,
-you'll get a white spectrum. If less \, the louder parts of the spectrum
-will be flattened but the quieter ones will only be boosted by the
-squelch value.;
-#X text 73 6 DYNAMIC RANGE COMPRESSION BY FOURIER ANALYSIS CHANNEL
-;
-#X floatatom 223 366 5 0 0 0 - #0-samp-msec -;
-#X obj 43 282 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 62 281 <- record;
-#X text 276 365 sample length \, msec;
-#X msg 292 183 ../sound/bell.aiff;
-#X msg 292 208 ../sound/voice.wav;
-#X msg 292 233 ../sound/voice2.wav;
-#X text 91 197 <- squelch;
-#X text 295 161 change input sound;
-#X obj 292 259 s read-sample;
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 1024 float 0;
-#X coords 0 1 1023 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 223 335 pd hann-window;
-#X connect 0 0 4 0;
-#X connect 0 0 4 1;
-#X connect 1 0 2 0;
-#X connect 3 0 0 0;
-#X connect 10 0 3 0;
-#X connect 13 0 18 0;
-#X connect 14 0 18 0;
-#X connect 15 0 18 0;
diff --git a/desiredata/doc/3.audio.examples/I06.timbre.stamp.pd b/desiredata/doc/3.audio.examples/I06.timbre.stamp.pd
deleted file mode 100644
index 0fd540cd..00000000
--- a/desiredata/doc/3.audio.examples/I06.timbre.stamp.pd
+++ /dev/null
@@ -1,370 +0,0 @@
-#N canvas 72 0 668 530 12;
-#N canvas 147 0 795 617 fft-analysis 0;
-#X obj 94 511 *~;
-#X obj 55 511 *~;
-#X obj 413 356 *~;
-#X obj 372 356 *~;
-#X obj 372 379 +~;
-#X obj 54 183 *~;
-#X obj 54 158 inlet~;
-#X obj 54 206 rfft~;
-#X obj 54 560 *~;
-#X obj 141 245 *~;
-#X obj 372 333 rfft~;
-#X obj 54 535 rifft~;
-#X obj 54 583 outlet~;
-#X obj 107 245 *~;
-#X obj 107 268 +~;
-#X text 458 408 modulus;
-#X obj 107 420 *~;
-#X obj 600 13 block~ 1024 4;
-#X obj 107 398 clip~;
-#X obj 87 184 tabreceive~ \$0-hann;
-#X obj 599 53 loadbang;
-#X obj 148 346 r squelch;
-#X obj 147 369 expr 0.01*$f1*$f1;
-#X obj 107 294 +~ 1e-20;
-#X obj 108 480 *~ 0.00065;
-#X obj 87 560 tabreceive~ \$0-hann;
-#X obj 373 307 *~;
-#X obj 373 282 inlet~;
-#X obj 406 308 tabreceive~ \$0-hann;
-#X obj 107 321 q8_rsqrt~;
-#X obj 372 402 q8_sqrt~;
-#X text 458 425 of control;
-#X text 456 442 amplitude;
-#X text 196 248 reciprocal;
-#X text 199 267 modulus of;
-#X text 195 287 filter input;
-#X text 196 306 amplitude;
-#X msg 599 76 \; pd dsp 1 \; window-size 1024 \; squelch 30 \; squelch-set
-set 30;
-#X text 115 159 filter input;
-#X text 438 282 control source;
-#X text 434 332 Fourier transform;
-#X text 28 17 Internal workings of the timbre stamping algorithm. First
-the "filter input" is treated as in the compressor patch \, multiplying
-each channel amplitude by one over its modulus (but limited by the
-"squelch" parameter.) It is then multiplied by the modulus of the channel
-amplitude for the control source (which is Fourier analyzed in parallel
-with the filter input.);
-#X text 145 422 multiply the two amplitude;
-#X text 143 439 factors (for compression;
-#X text 145 455 and to apply new timbre);
-#X connect 0 0 11 1;
-#X connect 1 0 11 0;
-#X connect 2 0 4 1;
-#X connect 3 0 4 0;
-#X connect 4 0 30 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 7 0 13 0;
-#X connect 7 0 13 1;
-#X connect 7 0 1 0;
-#X connect 7 1 9 0;
-#X connect 7 1 9 1;
-#X connect 7 1 0 0;
-#X connect 8 0 12 0;
-#X connect 9 0 14 1;
-#X connect 10 0 3 0;
-#X connect 10 0 3 1;
-#X connect 10 1 2 0;
-#X connect 10 1 2 1;
-#X connect 11 0 8 0;
-#X connect 13 0 14 0;
-#X connect 14 0 23 0;
-#X connect 16 0 24 0;
-#X connect 18 0 16 0;
-#X connect 19 0 5 1;
-#X connect 20 0 37 0;
-#X connect 21 0 22 0;
-#X connect 22 0 18 2;
-#X connect 23 0 29 0;
-#X connect 24 0 0 1;
-#X connect 24 0 1 1;
-#X connect 25 0 8 1;
-#X connect 26 0 10 0;
-#X connect 27 0 26 0;
-#X connect 28 0 26 1;
-#X connect 29 0 18 0;
-#X connect 30 0 16 1;
-#X restore 86 444 pd fft-analysis;
-#X text 137 12 CORT&ZACK's SECRET;
-#X text 27 422 filter;
-#X text 29 437 input;
-#X text 232 441 source;
-#X text 233 422 control;
-#X floatatom 53 300 0 0 500 0 - squelch-set -;
-#X obj 53 324 s squelch;
-#X obj 86 468 output~;
-#X msg 157 278 ../sound/bell.aiff;
-#X msg 157 303 ../sound/voice.wav;
-#X msg 157 328 ../sound/voice2.wav;
-#X obj 157 354 s read-sound1;
-#X msg 373 280 ../sound/bell.aiff;
-#X msg 373 305 ../sound/voice.wav;
-#X msg 373 330 ../sound/voice2.wav;
-#X obj 373 355 s read-sound2;
-#X text 386 256 control source;
-#X text 169 255 filter input;
-#X text 255 231 change input sounds;
-#X floatatom 454 409 5 0 0 0 - #0-samp-msec -;
-#X obj 87 394 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 215 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#N canvas 190 43 661 593 test-signals 0;
-#X obj 90 444 line~;
-#X obj 90 369 f;
-#X obj 90 524 outlet~;
-#X msg 90 423 0 \, \$1 \$2;
-#X obj 90 397 pack 0 0;
-#X obj 190 344 /;
-#X obj 249 325 * 0.001;
-#X obj 90 497 hip~ 5;
-#X obj 35 246 loadbang;
-#X msg 90 322 1;
-#X obj 90 344 metro 1000;
-#X obj 191 302 t b b f;
-#X obj 117 270 t b f;
-#X obj 90 469 tabread4~ \$0-sample;
-#X text 21 28 test signal: looped sample playback;
-#X obj 40 159 hip~ 5;
-#X obj 40 135 adc~ 1;
-#X obj 102 159 s insamprate;
-#X obj 40 98 inlet;
-#X obj 102 135 samplerate~;
-#X obj 116 246 r \$0-samplength;
-#X obj 191 276 r \$0-insamprate;
-#X obj 40 182 tabwrite~ \$0-sample;
-#X obj 398 437 line~;
-#X obj 398 362 f;
-#X obj 398 517 outlet~;
-#X msg 398 416 0 \, \$1 \$2;
-#X obj 398 390 pack 0 0;
-#X obj 498 337 /;
-#X obj 557 318 * 0.001;
-#X obj 398 490 hip~ 5;
-#X obj 343 239 loadbang;
-#X msg 398 315 1;
-#X obj 398 337 metro 1000;
-#X obj 499 295 t b b f;
-#X obj 425 263 t b f;
-#X obj 348 152 hip~ 5;
-#X obj 348 128 adc~ 1;
-#X obj 348 91 inlet;
-#X obj 410 128 samplerate~;
-#X obj 410 152 s insamprate2;
-#X obj 348 175 tabwrite~ \$0-sample2;
-#X obj 424 239 r \$0-samplength2;
-#X obj 499 269 r \$0-insamprate2;
-#X obj 398 462 tabread4~ \$0-sample2;
-#X connect 0 0 13 0;
-#X connect 1 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 3 0;
-#X connect 5 0 4 1;
-#X connect 5 0 10 1;
-#X connect 6 0 5 1;
-#X connect 7 0 2 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 1 0;
-#X connect 11 0 9 0;
-#X connect 11 1 5 0;
-#X connect 11 2 6 0;
-#X connect 12 0 9 0;
-#X connect 12 1 5 0;
-#X connect 12 1 1 1;
-#X connect 13 0 7 0;
-#X connect 15 0 22 0;
-#X connect 16 0 15 0;
-#X connect 18 0 19 0;
-#X connect 18 0 16 0;
-#X connect 19 0 17 0;
-#X connect 20 0 12 0;
-#X connect 21 0 11 0;
-#X connect 23 0 44 0;
-#X connect 24 0 27 0;
-#X connect 26 0 23 0;
-#X connect 27 0 26 0;
-#X connect 28 0 27 1;
-#X connect 28 0 33 1;
-#X connect 29 0 28 1;
-#X connect 30 0 25 0;
-#X connect 31 0 32 0;
-#X connect 32 0 33 0;
-#X connect 33 0 24 0;
-#X connect 34 0 32 0;
-#X connect 34 1 28 0;
-#X connect 34 2 29 0;
-#X connect 35 0 32 0;
-#X connect 35 1 28 0;
-#X connect 35 1 24 1;
-#X connect 36 0 41 0;
-#X connect 37 0 36 0;
-#X connect 38 0 39 0;
-#X connect 38 0 37 0;
-#X connect 39 0 40 0;
-#X connect 42 0 35 0;
-#X connect 43 0 34 0;
-#X connect 44 0 30 0;
-#X restore 87 415 pd test-signals;
-#X text 104 393 <- record ->;
-#N canvas 388 86 722 350 insample2 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample2 62079 float 0;
-#X coords 0 1 62078 -1 400 150 1;
-#X restore 298 24 graph;
-#X obj 19 74 unpack s f;
-#X obj 19 184 soundfiler;
-#X text 356 250 read a sample;
-#X obj 276 249 loadbang;
-#X obj 19 100 t s b;
-#X obj 19 135 pack s s;
-#X msg 19 160 read -resize \$1 \$2;
-#X obj 74 46 44100;
-#X obj 19 47 t a b;
-#X obj 19 247 /;
-#X obj 19 271 * 1000;
-#X obj 19 23 r read-sound2;
-#X obj 116 74 s \$0-insamprate2;
-#X obj 75 99 symbol \$0-sample2;
-#X obj 29 208 s \$0-samplength2;
-#X obj 57 247 r \$0-insamprate2;
-#X obj 19 294 s \$0-samp2-msec;
-#X msg 276 273 \; read-sound2 ../sound/voice.wav;
-#X connect 1 0 5 0;
-#X connect 1 1 13 0;
-#X connect 2 0 10 0;
-#X connect 2 0 15 0;
-#X connect 4 0 18 0;
-#X connect 5 0 6 0;
-#X connect 5 1 14 0;
-#X connect 6 0 7 0;
-#X connect 7 0 2 0;
-#X connect 8 0 13 0;
-#X connect 9 0 1 0;
-#X connect 9 1 8 0;
-#X connect 10 0 11 0;
-#X connect 11 0 17 0;
-#X connect 12 0 9 0;
-#X connect 14 0 6 1;
-#X connect 16 0 10 1;
-#X restore 334 430 pd insample2;
-#N canvas 388 86 722 350 insample1 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample 155948 float 0;
-#X coords 0 1 155947 -1 400 150 1;
-#X restore 259 24 graph;
-#X obj 19 74 unpack s f;
-#X obj 19 184 soundfiler;
-#X text 356 250 read a sample;
-#X obj 276 249 loadbang;
-#X obj 19 100 t s b;
-#X obj 75 99 symbol \$0-sample;
-#X obj 19 135 pack s s;
-#X msg 19 160 read -resize \$1 \$2;
-#X obj 74 46 44100;
-#X obj 19 47 t a b;
-#X obj 29 208 s \$0-samplength;
-#X obj 116 74 s \$0-insamprate;
-#X obj 19 247 /;
-#X obj 19 271 * 1000;
-#X obj 19 294 s \$0-samp-msec;
-#X obj 57 247 r \$0-insamprate;
-#X obj 19 23 r read-sound1;
-#X msg 276 273 \; read-sound1 ../sound/bell.aiff;
-#X connect 1 0 5 0;
-#X connect 1 1 12 0;
-#X connect 2 0 11 0;
-#X connect 2 0 13 0;
-#X connect 4 0 18 0;
-#X connect 5 0 7 0;
-#X connect 5 1 6 0;
-#X connect 6 0 7 1;
-#X connect 7 0 8 0;
-#X connect 8 0 2 0;
-#X connect 9 0 12 0;
-#X connect 10 0 1 0;
-#X connect 10 1 9 0;
-#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 16 0 13 1;
-#X connect 17 0 10 0;
-#X restore 334 408 pd insample1;
-#X floatatom 453 432 5 0 0 0 - #0-samp2-msec -;
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 1024 float 0;
-#X coords 0 1 1023 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 334 455 pd hann-window;
-#X text 509 412 sample lengths \,;
-#X text 510 427 msec;
-#X text 27 35 This is a Fourier-based "vocoder" (perhaps better called
-a "timbre stamp") like the one the Convolution brothers use. The "control
-source" is analyzed to get its spectral envelope \, which is then stamped
-onto the "filter input" by adjusting the amplitudes of its Fourier
-transform. The "filter input" is first whitened by the compression
-algorithm from the previous patch in this series. The best value of
-"squelch" to use depends critically on what kind of sounds are used
-for the filter input and the control source.;
-#X text 402 498 updated for Pd version 0.39;
-#X connect 0 0 8 0;
-#X connect 0 0 8 1;
-#X connect 6 0 7 0;
-#X connect 9 0 12 0;
-#X connect 10 0 12 0;
-#X connect 11 0 12 0;
-#X connect 13 0 16 0;
-#X connect 14 0 16 0;
-#X connect 15 0 16 0;
-#X connect 21 0 23 0;
-#X connect 22 0 23 1;
-#X connect 23 0 0 0;
-#X connect 23 1 0 1;
diff --git a/desiredata/doc/3.audio.examples/I07.phase.vocoder.pd b/desiredata/doc/3.audio.examples/I07.phase.vocoder.pd
deleted file mode 100644
index 735b8cd2..00000000
--- a/desiredata/doc/3.audio.examples/I07.phase.vocoder.pd
+++ /dev/null
@@ -1,548 +0,0 @@
-#N canvas 425 33 744 599 12;
-#X floatatom 494 315 5 0 0 0 - transpo-set -;
-#X floatatom 167 383 3 0 0 0 - speed-set -;
-#X floatatom 55 385 7 0 0 0 - location-set -;
-#N canvas 90 42 821 693 fft-analysis 0;
-#X obj 51 477 *~;
-#X obj 18 477 *~;
-#X obj 18 499 -~;
-#X obj 167 475 *~;
-#X obj 136 475 *~;
-#X obj 136 497 +~;
-#X obj 109 193 *~;
-#X obj 78 193 *~;
-#X obj 50 193 *~;
-#X obj 19 193 *~;
-#X obj 19 218 +~;
-#X obj 127 379 *~;
-#X obj 20 622 *~;
-#X obj 238 430 rfft~;
-#X obj 108 161 rfft~;
-#X obj 19 564 rifft~;
-#X obj 21 646 outlet~;
-#X obj 97 379 *~;
-#X obj 97 401 +~;
-#X obj 124 218 -~;
-#X obj 18 431 *~;
-#X obj 51 432 *~;
-#X obj 127 622 r window-size;
-#X obj 426 595 r window-size;
-#X obj 426 644 block~;
-#X obj 19 349 +~ 1e-15;
-#X obj 19 598 *~;
-#X obj 52 598 tabreceive~ \$0-hann;
-#X obj 127 643 expr 2/(3*$f1);
-#X obj 591 563 loadbang;
-#X msg 591 589 \; pd dsp 1 \; window-size 2048 \; transpo 0 \; rewind
-bang;
-#X msg 426 619 set \$1 4;
-#X obj 97 425 q8_rsqrt~;
-#N canvas 139 105 1006 799 read-windows 0;
-#X obj 18 693 *~;
-#X obj 340 448 r window-size;
-#X obj 156 300 f;
-#X obj 102 91 r window-size;
-#X obj 102 139 /;
-#X obj 195 695 *~;
-#X obj 156 255 bang~;
-#X obj 17 551 line~;
-#X obj 102 164 * 1000;
-#X obj 288 224 r speed;
-#X obj 178 276 r location;
-#X obj 198 302 +;
-#X obj 288 272 *;
-#X obj 183 470 +;
-#X obj 143 446 t f f;
-#X msg 17 523 \$1 \, \$2 \$3;
-#X obj 17 496 pack 0 0 0;
-#X obj 178 371 / 1000;
-#X obj 156 394 *;
-#X text 188 394 reading location (samples);
-#X obj 51 597 / 4;
-#X obj 288 245 * 0.01;
-#X floatatom 340 498 7 0 0 0 - - -;
-#X obj 340 474 *;
-#X obj 499 365 r transpo;
-#X obj 499 387 * 0.01;
-#X obj 501 408 + 69;
-#X obj 502 429 mtof;
-#X obj 502 451 / 440;
-#X obj 375 474 t b f;
-#X obj 19 719 outlet~;
-#X obj 195 720 outlet~;
-#X obj 218 664 tabreceive~ \$0-hann;
-#X obj 803 386 r location;
-#X msg 803 409 0;
-#X obj 803 432 s speed;
-#X obj 768 508 r speed;
-#X msg 768 532 set \$1;
-#X obj 768 557 s speed-set;
-#X text 411 498 stretched window size (samples);
-#X obj 877 507 r transpo;
-#X msg 877 533 set \$1;
-#X obj 877 558 s transpo-set;
-#X obj 808 94 r location;
-#X msg 826 278 set \$1;
-#X obj 808 140 t b f;
-#X obj 826 257 f;
-#X obj 754 171 int;
-#X obj 754 203 sel 0;
-#X msg 813 174 1;
-#X msg 813 197 0;
-#X obj 754 228 del 300;
-#X obj 826 302 s location-set;
-#X obj 17 637 tabread4~ \$0-sample;
-#X obj 194 637 tabread4~ \$0-sample;
-#X obj 178 347 r \$0-insamprate;
-#X obj 528 586 r rewind;
-#X msg 528 744 \; location \$1;
-#X floatatom 111 187 5 0 0 0 - - -;
-#X obj 102 115 t f b;
-#X obj 142 139 samplerate~;
-#X obj 102 208 / 4;
-#X obj 233 306 s see-loc;
-#X obj 817 116 r see-loc;
-#X obj 193 420 / 2;
-#X obj 156 420 -;
-#X text 229 417 back up 1/2 window;
-#X obj 16 597 -~;
-#X text 43 6 Read two windows out of the recorded sample \, one 1/4
-ahead of the other. The mid point of the front window is specified
-by "location". If "speed" is nonzero \, "location" automatically precesses.
-;
-#X obj 528 720 * -0.5;
-#X text 91 587 "back" window 1/4 cycle behind "front" one;
-#X text 137 205 computation period (msec) for overlap of 4;
-#X text 164 186 msec in a window;
-#X obj 528 666 /;
-#X obj 528 691 * 1000;
-#X obj 528 642 t f b;
-#X obj 568 666 samplerate~;
-#X obj 528 619 f;
-#X msg 845 711 \; rewind bang \; speed \$1;
-#X obj 845 684 r auto;
-#X obj 730 685 r no-detune;
-#X msg 730 707 \; detune 0;
-#X text 326 275 loop to precess the location according;
-#X text 325 291 to the "speed" parameter.;
-#X text 611 31 if location changes \, update number box;
-#X text 610 50 in main window via "location-set" \, but;
-#X text 613 69 taking care to limit frequency of updates.;
-#X text 756 462 reflect control changes;
-#X text 756 479 in main window.;
-#X text 754 344 setting location by hand;
-#X text 752 362 sets speed to zero.;
-#X text 760 653 misc controls;
-#X text 496 527 "rewind" control takes us;
-#X text 499 545 to a location depending on;
-#X text 499 564 stretched window size.;
-#X connect 0 0 30 0;
-#X connect 1 0 23 0;
-#X connect 2 0 11 0;
-#X connect 2 0 18 0;
-#X connect 3 0 59 0;
-#X connect 4 0 8 0;
-#X connect 5 0 31 0;
-#X connect 6 0 2 0;
-#X connect 7 0 67 0;
-#X connect 7 0 54 0;
-#X connect 8 0 58 0;
-#X connect 8 0 61 0;
-#X connect 9 0 21 0;
-#X connect 10 0 2 1;
-#X connect 11 0 2 1;
-#X connect 11 0 62 0;
-#X connect 12 0 11 1;
-#X connect 13 0 16 1;
-#X connect 14 0 16 0;
-#X connect 14 1 13 0;
-#X connect 15 0 7 0;
-#X connect 16 0 15 0;
-#X connect 17 0 18 1;
-#X connect 18 0 65 0;
-#X connect 20 0 67 1;
-#X connect 21 0 12 0;
-#X connect 22 0 20 0;
-#X connect 22 0 13 1;
-#X connect 22 0 64 0;
-#X connect 22 0 77 1;
-#X connect 23 0 22 0;
-#X connect 24 0 25 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 28 0;
-#X connect 28 0 29 0;
-#X connect 29 0 23 0;
-#X connect 29 1 23 1;
-#X connect 32 0 5 1;
-#X connect 32 0 0 1;
-#X connect 33 0 34 0;
-#X connect 34 0 35 0;
-#X connect 36 0 37 0;
-#X connect 37 0 38 0;
-#X connect 40 0 41 0;
-#X connect 41 0 42 0;
-#X connect 43 0 45 0;
-#X connect 44 0 52 0;
-#X connect 45 0 47 0;
-#X connect 45 1 46 1;
-#X connect 46 0 44 0;
-#X connect 47 0 48 0;
-#X connect 48 0 49 0;
-#X connect 48 0 51 0;
-#X connect 49 0 47 1;
-#X connect 50 0 47 1;
-#X connect 51 0 50 0;
-#X connect 51 0 46 0;
-#X connect 53 0 0 0;
-#X connect 54 0 5 0;
-#X connect 55 0 17 0;
-#X connect 56 0 77 0;
-#X connect 59 0 4 0;
-#X connect 59 1 60 0;
-#X connect 60 0 4 1;
-#X connect 61 0 16 2;
-#X connect 61 0 12 1;
-#X connect 63 0 45 0;
-#X connect 64 0 65 1;
-#X connect 65 0 14 0;
-#X connect 67 0 53 0;
-#X connect 69 0 57 0;
-#X connect 73 0 74 0;
-#X connect 74 0 69 0;
-#X connect 75 0 73 0;
-#X connect 75 1 76 0;
-#X connect 76 0 73 1;
-#X connect 77 0 75 0;
-#X connect 79 0 78 0;
-#X connect 80 0 81 0;
-#X restore 109 133 pd read-windows;
-#X obj 137 543 tabsend~ prev-imag;
-#X obj 136 567 tabsend~ prev-real;
-#X obj 20 8 tabreceive~ prev-real;
-#X obj 73 29 tabreceive~ prev-imag;
-#X text 272 5 recall previous output amplitude. Its phase will be added
-to the phase difference we measure from two windows in the the recorded
-sound.;
-#X obj 121 69 *~;
-#X obj 89 69 *~;
-#X obj 89 91 +~;
-#X obj 159 94 q8_rsqrt~;
-#X obj 159 71 +~ 1e-20;
-#X obj 73 119 *~;
-#X obj 19 118 *~;
-#X obj 181 290 r lock;
-#X obj 29 245 lrshift~ 1;
-#X obj 24 269 lrshift~ -1;
-#X obj 141 245 lrshift~ 1;
-#X obj 133 269 lrshift~ -1;
-#X obj 35 300 *~;
-#X obj 159 312 *~;
-#X obj 19 325 +~;
-#X obj 125 331 +~;
-#X text 247 66 divide by the magnitude to make a unit-magnitude complex
-amplitude (phase only). The 1e-20 is to prevent overflows. q8_rsqrt~
-is reciprocal square root.;
-#X text 247 165 Take FT of the window in back. Multiply its conjugate
-by the normalized previous output. The result has the magnitude of
-the input sound and phase (previous output phase) minus (back window
-phase).;
-#X text 249 370 Normalize again \, this time taking care to salt each
-channel with 1e-15 so that we get a unit complex number even if everything
-was zero heretofore.;
-#X text 288 427 Now take the FT of the forward window and multiply
-it by the unit complex number from above. The magnitude will be that
-of the forward window and the phase will be the previous output phase
-plus the phase difference between the two analysis windows -- except
-that if "lock" is on \, they will be modified to agree progressively
-better with the inter-channel phase relationships of the input.;
-#X text 249 242 If "lock" is on \, encourage neighboring channels to
-stay in phase by adding the two neighboring complex amplitudes. The
-result will tend toward the channel with the strongest amplitude. If
-the phase relationships between channels in the output and those in
-the input are in parallel \, then neighboring channels of the quotient
-will all have the same phase and this will not change any phases. (lrshift
-shifts the signal to the left or right depending on its argument.)
-;
-#X text 387 560 'set' message to block;
-#X text 390 577 allows variable size;
-#X text 259 126 Read two windows \, one 1/4 length behind the other
-\, of the input sound \, with Hann window function (see inside).;
-#X connect 0 0 2 1;
-#X connect 1 0 2 0;
-#X connect 2 0 35 0;
-#X connect 2 0 15 0;
-#X connect 3 0 5 1;
-#X connect 4 0 5 0;
-#X connect 5 0 34 0;
-#X connect 5 0 15 1;
-#X connect 6 0 19 1;
-#X connect 7 0 19 0;
-#X connect 8 0 10 1;
-#X connect 9 0 10 0;
-#X connect 10 0 48 0;
-#X connect 10 0 47 0;
-#X connect 10 0 53 0;
-#X connect 11 0 18 1;
-#X connect 12 0 16 0;
-#X connect 13 0 1 1;
-#X connect 13 0 3 1;
-#X connect 13 1 0 1;
-#X connect 13 1 4 1;
-#X connect 14 0 9 1;
-#X connect 14 0 7 1;
-#X connect 14 1 6 1;
-#X connect 14 1 8 1;
-#X connect 15 0 26 0;
-#X connect 17 0 18 0;
-#X connect 18 0 32 0;
-#X connect 19 0 49 0;
-#X connect 19 0 50 0;
-#X connect 19 0 54 0;
-#X connect 20 0 1 0;
-#X connect 20 0 4 0;
-#X connect 21 0 0 0;
-#X connect 21 0 3 0;
-#X connect 22 0 28 0;
-#X connect 23 0 31 0;
-#X connect 25 0 17 1;
-#X connect 25 0 17 0;
-#X connect 25 0 20 0;
-#X connect 26 0 12 0;
-#X connect 27 0 26 1;
-#X connect 28 0 12 1;
-#X connect 29 0 30 0;
-#X connect 31 0 24 0;
-#X connect 32 0 20 1;
-#X connect 32 0 21 1;
-#X connect 33 0 14 0;
-#X connect 33 1 13 0;
-#X connect 36 0 40 1;
-#X connect 36 0 40 0;
-#X connect 36 0 45 0;
-#X connect 37 0 39 1;
-#X connect 37 0 39 0;
-#X connect 37 0 44 0;
-#X connect 39 0 41 1;
-#X connect 40 0 41 0;
-#X connect 41 0 43 0;
-#X connect 42 0 44 1;
-#X connect 42 0 45 1;
-#X connect 43 0 42 0;
-#X connect 44 0 8 0;
-#X connect 44 0 7 0;
-#X connect 45 0 9 0;
-#X connect 45 0 6 0;
-#X connect 46 0 51 1;
-#X connect 46 0 52 1;
-#X connect 47 0 51 0;
-#X connect 48 0 51 0;
-#X connect 49 0 52 0;
-#X connect 50 0 52 0;
-#X connect 51 0 53 1;
-#X connect 52 0 54 1;
-#X connect 53 0 25 0;
-#X connect 54 0 11 0;
-#X connect 54 0 11 1;
-#X connect 54 0 21 0;
-#X restore 55 480 pd fft-analysis;
-#N canvas 260 23 647 768 phase-tables 0;
-#N canvas 0 0 450 300 graph2 0;
-#X array prev-imag 4096 float 0;
-#X coords 0 1000 4096 -1000 400 300 1;
-#X restore 169 326 graph;
-#N canvas 0 0 450 300 graph3 0;
-#X array prev-real 4096 float 0;
-#X coords 0 500 4096 -500 400 300 1;
-#X restore 170 17 graph;
-#X restore 440 504 pd phase-tables;
-#X obj 494 338 s transpo;
-#X text 164 364 hundredths;
-#X text 493 294 in cents;
-#X text 389 359 normal;
-#X obj 56 517 output~;
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 1024 float 0;
-#X coords 0 1 1023 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 440 528 pd hann-window;
-#N canvas 388 86 694 447 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample 160161 float 0;
-#X coords 0 1 160160 -1 400 150 1;
-#X restore 281 135 graph;
-#X obj 28 133 r read-sample;
-#X obj 28 184 unpack s f;
-#X obj 28 294 soundfiler;
-#X text 365 360 read a sample;
-#X obj 285 359 loadbang;
-#X obj 28 210 t s b;
-#X obj 84 209 symbol \$0-sample;
-#X obj 28 245 pack s s;
-#X msg 28 270 read -resize \$1 \$2;
-#X obj 83 156 44100;
-#X obj 28 157 t a b;
-#X obj 38 318 s \$0-samplength;
-#X obj 125 184 s \$0-insamprate;
-#X obj 28 357 /;
-#X obj 28 381 * 1000;
-#X obj 28 404 s \$0-samp-msec;
-#X obj 66 357 r \$0-insamprate;
-#X obj 29 70 hip~ 5;
-#X obj 29 46 adc~ 1;
-#X obj 29 9 inlet;
-#X obj 91 46 samplerate~;
-#X obj 29 93 tabwrite~ \$0-sample;
-#X obj 91 70 s \$0-insamprate;
-#X msg 285 383 \; read-sample ../sound/voice.wav;
-#X obj 276 20 inlet;
-#X obj 276 42 openpanel;
-#X obj 276 67 s read-sample;
-#X connect 1 0 11 0;
-#X connect 2 0 6 0;
-#X connect 2 1 13 0;
-#X connect 3 0 12 0;
-#X connect 3 0 14 0;
-#X connect 5 0 24 0;
-#X connect 6 0 8 0;
-#X connect 6 1 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 9 0;
-#X connect 9 0 3 0;
-#X connect 10 0 13 0;
-#X connect 11 0 2 0;
-#X connect 11 1 10 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 14 1;
-#X connect 18 0 22 0;
-#X connect 19 0 18 0;
-#X connect 20 0 21 0;
-#X connect 20 0 19 0;
-#X connect 21 0 23 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X restore 441 480 pd insample;
-#X floatatom 552 480 5 0 0 0 - #0-samp-msec -;
-#X msg 229 486 ../sound/bell.aiff;
-#X msg 229 511 ../sound/voice.wav;
-#X msg 229 536 ../sound/voice2.wav;
-#X obj 229 562 s read-sample;
-#X obj 441 439 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 460 438 <- record;
-#X obj 493 387 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 55 407 s location;
-#X obj 167 407 s speed;
-#X obj 262 386 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 262 408 s rewind;
-#X msg 345 336 200;
-#X msg 345 358 100;
-#X msg 345 380 20;
-#X text 386 335 contract;
-#X text 390 380 expand;
-#X obj 493 407 s lock;
-#X text 494 277 detune;
-#X text 55 330 location;
-#X text 52 346 (stops;
-#X text 57 361 motion);
-#X text 165 348 motion in;
-#X text 232 464 read input sound;
-#X text 103 7 PHASE VOCODER FOR TIME STETCHING AND CONTRACTION;
-#X text 604 479 length \, msec;
-#X floatatom 607 419 5 0 0 0 - window-size -;
-#X msg 607 307 512;
-#X msg 607 329 1024;
-#X msg 607 351 2048;
-#X msg 607 373 4096;
-#X obj 607 395 s window-size;
-#X text 607 274 window size \,;
-#X text 607 289 samples;
-#X text 648 306 <- set;
-#X text 100 306 ------- location controls -------;
-#X text 660 419 (check);
-#X obj 345 407 s auto;
-#X text 23 35 This patch takes a sound \, analyzes windows in it both
-for channel magnitude and for phase precession in each channel (compared
-to another operlapping window). The real-time output recreates the
-same magnitudes and phase precession \, althought the phases themselves
-are in general different. You can control either the location or its
-motion (setting location stops motion \, while setting a non-zero motion
-causes the location to change automatically). "Rewind" goes back to
-the beginning. You can use different window sizes (use the message
-boxes - the number box is for readout). The "lock" feature forces phase
-coherency between neighboring channels \, which makes a more present
-sound but can add artifacts to the sound. Look in "pd fft-analysis"
-to see the workings.;
-#X text 483 568 updated for Pd version 0.39;
-#X obj 551 316 bng 15 250 50 0 no-detune empty empty 0 -6 0 8 -262144
--1 -1;
-#X obj 535 460 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 466 458 file ->;
-#X connect 0 0 5 0;
-#X connect 1 0 21 0;
-#X connect 2 0 20 0;
-#X connect 3 0 9 0;
-#X connect 3 0 9 1;
-#X connect 13 0 16 0;
-#X connect 14 0 16 0;
-#X connect 15 0 16 0;
-#X connect 17 0 11 0;
-#X connect 19 0 29 0;
-#X connect 22 0 23 0;
-#X connect 24 0 49 0;
-#X connect 25 0 49 0;
-#X connect 26 0 49 0;
-#X connect 39 0 43 0;
-#X connect 40 0 43 0;
-#X connect 41 0 43 0;
-#X connect 42 0 43 0;
-#X connect 53 0 11 1;
diff --git a/desiredata/doc/3.audio.examples/I08.pvoc.reverb.pd b/desiredata/doc/3.audio.examples/I08.pvoc.reverb.pd
deleted file mode 100644
index 6898c216..00000000
--- a/desiredata/doc/3.audio.examples/I08.pvoc.reverb.pd
+++ /dev/null
@@ -1,421 +0,0 @@
-#N canvas 502 83 570 415 12;
-#N canvas 105 328 986 609 fft 0;
-#X obj 18 500 *~;
-#X obj 291 455 *~;
-#X obj 258 454 *~;
-#X obj 356 456 *~;
-#X obj 324 455 *~;
-#X obj 324 477 +~;
-#X obj 258 479 -~;
-#X obj 560 383 *~;
-#X obj 54 124 *~;
-#X obj 22 124 *~;
-#X obj 22 145 +~;
-#X obj 325 82 *~;
-#X obj 293 82 *~;
-#X obj 608 312 *~;
-#X obj 576 312 *~;
-#X obj 93 63 *~;
-#X obj 18 522 outlet~;
-#X obj 18 475 *~;
-#X obj 126 63 inlet~;
-#X obj 93 84 rfft~;
-#X obj 18 451 rifft~;
-#X obj 576 334 rsqrt~;
-#X obj 293 103 +~;
-#X obj 484 383 *~;
-#X obj 56 499 sig~ 0.0002;
-#N canvas 167 161 699 396 decision 0;
-#X obj 49 101 inlet~;
-#X obj 50 341 outlet~;
-#X obj 50 183 -~;
-#X obj 50 226 clip~ 0 1;
-#X obj 50 204 *~ 1e+20;
-#X obj 196 98 inlet~;
-#X text 137 213 stronger than;
-#X text 139 228 old one;
-#X obj 274 202 -~;
-#X obj 288 177 lrshift~ 1;
-#X obj 274 250 clip~ 0 1;
-#X obj 274 228 *~ 1e+20;
-#X obj 450 202 -~;
-#X obj 450 250 clip~ 0 1;
-#X obj 450 228 *~ 1e+20;
-#X obj 464 177 lrshift~ -1;
-#X obj 50 283 *~;
-#X obj 50 312 *~;
-#X text 135 199 1 if new signal;
-#X text 55 73 new;
-#X text 203 70 old;
-#X text 51 12 Choose whether to replace the "lod" signal with the "new"
-one. The "new" one must be stronger than the old one and also must
-be stronger than its two neighboring channels;
-#X text 267 283 1 if we're louder than neighbor;
-#X connect 0 0 2 0;
-#X connect 0 0 9 0;
-#X connect 0 0 8 0;
-#X connect 0 0 12 0;
-#X connect 0 0 15 0;
-#X connect 2 0 4 0;
-#X connect 3 0 16 0;
-#X connect 4 0 3 0;
-#X connect 5 0 2 1;
-#X connect 8 0 11 0;
-#X connect 9 0 8 1;
-#X connect 10 0 16 1;
-#X connect 11 0 10 0;
-#X connect 12 0 14 0;
-#X connect 13 0 17 1;
-#X connect 14 0 13 0;
-#X connect 15 0 12 1;
-#X connect 16 0 17 0;
-#X connect 17 0 1 0;
-#X restore 23 172 pd decision;
-#X obj 576 356 *~;
-#N canvas 276 481 755 363 divide-by-prev 0;
-#X obj 283 99 inlet~;
-#X obj 385 101 inlet~;
-#X obj 284 249 outlet~;
-#X obj 386 249 outlet~;
-#X obj 107 251 outlet~;
-#X obj 208 253 outlet~;
-#X obj 250 180 *~;
-#X obj 217 180 *~;
-#X obj 182 181 *~;
-#X obj 149 181 *~;
-#X obj 149 203 +~;
-#X obj 217 202 -~;
-#X obj 92 49 tabreceive~ \$0-last-real;
-#X obj 190 72 tabreceive~ \$0-last-imag;
-#X connect 0 0 2 0;
-#X connect 0 0 9 0;
-#X connect 0 0 6 0;
-#X connect 1 0 3 0;
-#X connect 1 0 8 0;
-#X connect 1 0 7 0;
-#X connect 6 0 11 1;
-#X connect 7 0 11 0;
-#X connect 8 0 10 1;
-#X connect 9 0 10 0;
-#X connect 10 0 4 0;
-#X connect 11 0 5 0;
-#X connect 12 0 9 1;
-#X connect 12 0 7 1;
-#X connect 13 0 8 1;
-#X connect 13 0 6 1;
-#X restore 603 192 pd divide-by-prev;
-#N canvas 650 183 602 327 switch 0;
-#X obj 19 163 inlet~;
-#X obj 107 99 inlet~;
-#X obj 169 100 inlet~;
-#X obj 273 97 inlet~;
-#X obj 333 97 inlet~;
-#X obj 367 185 -~;
-#X obj 338 231 +~;
-#X obj 372 229 *~;
-#X obj 250 182 -~;
-#X obj 220 228 +~;
-#X obj 254 228 *~;
-#X obj 219 278 outlet~;
-#X obj 338 274 outlet~;
-#X text 46 28 switch between two pairs of inputs. If first inlet is
-one \, take the left-hand pair \, otherwise the right-hand one.;
-#X text 15 140 switch;
-#X text 92 76 pass this if one;
-#X text 269 77 pass this if zero;
-#X connect 0 0 10 1;
-#X connect 0 0 7 1;
-#X connect 1 0 8 0;
-#X connect 2 0 5 0;
-#X connect 3 0 9 0;
-#X connect 3 0 8 1;
-#X connect 4 0 6 0;
-#X connect 4 0 5 1;
-#X connect 5 0 7 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 8 0 10 0;
-#X connect 9 0 11 0;
-#X connect 10 0 9 1;
-#X restore 327 275 pd switch;
-#N canvas 650 183 602 327 switch 0;
-#X obj 19 163 inlet~;
-#X obj 107 99 inlet~;
-#X obj 169 100 inlet~;
-#X obj 273 97 inlet~;
-#X obj 333 97 inlet~;
-#X obj 367 185 -~;
-#X obj 338 231 +~;
-#X obj 372 229 *~;
-#X obj 250 182 -~;
-#X obj 220 228 +~;
-#X obj 254 228 *~;
-#X obj 219 278 outlet~;
-#X obj 338 274 outlet~;
-#X text 46 28 switch between two pairs of inputs. If first inlet is
-one \, take the left-hand pair \, otherwise the right-hand one.;
-#X text 15 140 switch;
-#X text 92 76 pass this if one;
-#X text 269 77 pass this if zero;
-#X connect 0 0 10 1;
-#X connect 0 0 7 1;
-#X connect 1 0 8 0;
-#X connect 2 0 5 0;
-#X connect 3 0 9 0;
-#X connect 3 0 8 1;
-#X connect 4 0 6 0;
-#X connect 4 0 5 1;
-#X connect 5 0 7 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 8 0 10 0;
-#X connect 9 0 11 0;
-#X connect 10 0 9 1;
-#X restore 484 266 pd switch;
-#X obj 655 270 r revtime;
-#X obj 54 476 tabreceive~ \$0-hann;
-#X obj 94 35 tabreceive~ \$0-hann;
-#X obj 505 112 tabreceive~ \$0-inc-real;
-#X obj 587 134 tabreceive~ \$0-inc-imag;
-#X obj 752 220 tabsend~ \$0-last-imag;
-#X obj 702 243 tabsend~ \$0-last-real;
-#X obj 559 426 tabsend~ \$0-inc-imag;
-#X obj 484 449 tabsend~ \$0-inc-real;
-#X msg 665 293 set \$1;
-#X obj 665 317 s revtime-set;
-#X obj 800 483 loadbang;
-#X msg 800 509 \; pd dsp 1 \; window-size 4096 \; revtime 20;
-#X obj 800 411 r window-size;
-#X msg 800 433 set \$1 4;
-#X obj 800 455 block~;
-#X obj 655 341 expr 1 - 0.2/max(0.2 \, $f1);
-#X text 20 206 choose whether to;
-#X text 18 224 punch in new (amplitude \,;
-#X text 16 243 increment) pair;
-#X obj 367 26 tabreceive~ \$0-amp-real;
-#X obj 443 50 tabreceive~ \$0-amp-imag;
-#X obj 325 537 tabsend~ \$0-amp-imag;
-#X obj 258 560 tabsend~ \$0-amp-real;
-#X text 361 6 previous output amplitude \, encoding both magnitude
-and phase;
-#X text 453 87 previous phase increment (unit-magnitude complex number)
-;
-#X obj 506 134 +~ 1e-15;
-#X obj 366 50 +~ 1e-15;
-#X text 363 482 propagate amplitudes by multiplying in the;
-#X text 361 499 increments \, which advance the phase and drop;
-#X text 365 514 magnitude according to revtime.;
-#X text 608 370 normalize increments between 0 and;
-#X text 606 388 1 according to revtime.;
-#X text 78 453 IFFT and output;
-#X connect 0 0 16 0;
-#X connect 1 0 6 1;
-#X connect 2 0 6 0;
-#X connect 3 0 5 1;
-#X connect 4 0 5 0;
-#X connect 5 0 52 0;
-#X connect 6 0 53 0;
-#X connect 7 0 1 0;
-#X connect 7 0 3 0;
-#X connect 7 0 37 0;
-#X connect 8 0 10 1;
-#X connect 9 0 10 0;
-#X connect 10 0 25 0;
-#X connect 11 0 22 1;
-#X connect 12 0 22 0;
-#X connect 13 0 21 0;
-#X connect 14 0 21 0;
-#X connect 15 0 19 0;
-#X connect 17 0 0 0;
-#X connect 18 0 15 1;
-#X connect 19 0 9 0;
-#X connect 19 0 9 1;
-#X connect 19 0 27 0;
-#X connect 19 0 28 1;
-#X connect 19 1 8 0;
-#X connect 19 1 8 1;
-#X connect 19 1 27 1;
-#X connect 19 1 28 2;
-#X connect 20 0 17 0;
-#X connect 21 0 26 0;
-#X connect 22 0 25 1;
-#X connect 23 0 2 0;
-#X connect 23 0 4 0;
-#X connect 23 0 38 0;
-#X connect 24 0 0 1;
-#X connect 25 0 28 0;
-#X connect 25 0 29 0;
-#X connect 26 0 23 1;
-#X connect 26 0 7 1;
-#X connect 27 0 29 1;
-#X connect 27 1 29 2;
-#X connect 27 2 36 0;
-#X connect 27 3 35 0;
-#X connect 28 0 20 0;
-#X connect 28 0 3 1;
-#X connect 28 0 2 1;
-#X connect 28 1 20 1;
-#X connect 28 1 1 1;
-#X connect 28 1 4 1;
-#X connect 29 0 14 0;
-#X connect 29 0 14 1;
-#X connect 29 0 23 0;
-#X connect 29 1 13 0;
-#X connect 29 1 13 1;
-#X connect 29 1 7 0;
-#X connect 30 0 39 0;
-#X connect 30 0 46 0;
-#X connect 31 0 17 1;
-#X connect 32 0 15 0;
-#X connect 33 0 56 0;
-#X connect 34 0 29 4;
-#X connect 39 0 40 0;
-#X connect 41 0 42 0;
-#X connect 43 0 44 0;
-#X connect 44 0 45 0;
-#X connect 46 0 26 1;
-#X connect 50 0 57 0;
-#X connect 51 0 11 0;
-#X connect 51 0 11 1;
-#X connect 51 0 28 4;
-#X connect 56 0 29 3;
-#X connect 57 0 12 0;
-#X connect 57 0 12 1;
-#X connect 57 0 28 3;
-#X restore 141 301 pd fft;
-#X floatatom 377 233 0 0 1000 0 - revtime-set -;
-#X floatatom 68 239 0 0 0 0 - - -;
-#X text 131 9 PIANO REVERB;
-#X text 418 236 reverb time;
-#X obj 141 331 output~;
-#X obj 36 333 output~;
-#X text 23 25 This is a phase vocoder acting as a reverberator. The
-sound is more coherent (less "whispered") than a real room or a standard
-delay-based reverberator.;
-#X text 25 80 The technique is to "punch" the incoming sound into channels
-where (1) there's a peak \, and (2) the incoming sound drowns out whatever
-might already be there. If the sound already in any channel is louder
-than the input the input for that channel is ignored.;
-#N canvas 0 0 508 303 test-sound 0;
-#X obj 35 33 inlet;
-#X obj 36 144 osc~;
-#X obj 164 173 line~;
-#X floatatom 36 95 0 0 0 0 - - -;
-#X obj 37 71 mtof;
-#X obj 36 169 cos~;
-#X obj 36 193 hip~ 20;
-#X obj 36 118 t f b;
-#X obj 164 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 209 144 pack 0 30;
-#X obj 194 90 del 20;
-#X obj 164 116 pack 1 20;
-#X obj 38 224 *~;
-#X obj 42 270 outlet~;
-#X connect 0 0 4 0;
-#X connect 1 0 5 0;
-#X connect 2 0 12 1;
-#X connect 3 0 7 0;
-#X connect 4 0 3 0;
-#X connect 5 0 6 0;
-#X connect 6 0 12 0;
-#X connect 7 0 1 0;
-#X connect 7 1 8 0;
-#X connect 8 0 10 0;
-#X connect 8 0 11 0;
-#X connect 9 0 2 0;
-#X connect 10 0 9 0;
-#X connect 11 0 2 0;
-#X connect 12 0 13 0;
-#X restore 68 266 pd test-sound;
-#X text 56 217 short tone;
-#X obj 377 257 s revtime;
-#X text 24 164 For each window \, the amplitude in each channel is
-propagated by a constant phase increment and multiplied downward by
-a gain that determines the "reverb time".;
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 4096 float 0;
-#X coords 0 1 4095 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 360 305 pd hann-window;
-#N canvas 52 71 774 520 tables 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-last-real 2048 float 0;
-#X coords 0 500 2048 -500 200 150 1;
-#X restore 103 15 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-last-imag 2048 float 0;
-#X coords 0 500 2048 500 200 150 1;
-#X restore 497 6 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-amp-real 2048 float 0;
-#X coords 0 500 2048 -500 200 150 1;
-#X restore 105 185 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-amp-imag 2048 float 0;
-#X coords 0 500 2048 -500 200 150 1;
-#X restore 501 178 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-inc-real 2048 float 0;
-#X coords 0 1 2048 -1 200 150 1;
-#X restore 105 357 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-inc-imag 2048 float 0;
-#X coords 0 1 2048 -1 200 150 1;
-#X restore 503 342 graph;
-#X restore 360 326 pd tables;
-#X text 307 383 Updated for Pd version 0.39;
-#X text 26 389 reverb in;
-#X text 133 388 reverb out;
-#X connect 0 0 5 0;
-#X connect 0 0 5 1;
-#X connect 1 0 11 0;
-#X connect 2 0 9 0;
-#X connect 9 0 0 0;
-#X connect 9 0 6 0;
-#X connect 9 0 6 1;
diff --git a/desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd b/desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd
deleted file mode 100644
index 87a779ed..00000000
--- a/desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd
+++ /dev/null
@@ -1,411 +0,0 @@
-#N canvas -6 5 609 588 12;
-#N canvas 300 81 867 775 fft-analysis 0;
-#X obj 85 664 *~;
-#X obj 35 712 *~;
-#X obj 316 148 *~;
-#X obj 34 58 *~;
-#X obj 34 35 inlet~;
-#X obj 34 82 rfft~;
-#X obj 35 688 rifft~;
-#X obj 35 737 outlet~;
-#X obj 277 147 *~;
-#X obj 277 198 rsqrt~;
-#X obj 105 421 -~;
-#X obj 34 663 *~;
-#X obj 68 58 tabreceive~ \$0-hann;
-#X obj 644 51 loadbang;
-#X obj 644 133 r window-size;
-#X obj 69 711 tabreceive~ \$0-hann;
-#X obj 131 327 *~;
-#X msg 644 155 set \$1 4;
-#X obj 644 179 block~;
-#X msg 643 75 \; pd dsp 1 \; window-size 1024;
-#X obj 125 616 /~ 1000;
-#X obj 197 616 r window-size;
-#X obj 254 229 *~;
-#X obj 113 220 *~;
-#X obj 277 171 +~ 1e-20;
-#X obj 152 246 lrshift~ 1;
-#X obj 313 254 lrshift~ 1;
-#X obj 152 272 lrshift~ -1;
-#X obj 314 281 lrshift~ -1;
-#X obj 292 335 *~;
-#X obj 105 475 clip~ 0 1;
-#X obj 106 448 *~ 1e+20;
-#X obj 105 392 +~;
-#X obj 105 508 *~;
-#X obj 144 508 lrshift~ 1;
-#X obj 251 508 lrshift~ -1;
-#X obj 125 540 *~;
-#X obj 410 411 -~;
-#X obj 410 459 clip~ 0 1;
-#X obj 411 435 *~ 1e+20;
-#X obj 410 488 *~;
-#X obj 449 488 lrshift~ 1;
-#X obj 553 487 lrshift~ -1;
-#X obj 430 517 *~;
-#X obj 430 540 *~ -1;
-#X obj 430 563 +~ 1;
-#X obj 125 582 +~;
-#X obj 255 335 *~;
-#X obj 98 327 *~;
-#X text 195 476 0 if clean;
-#X text 170 541 0 if a neighbor is clean;
-#X obj 97 301 +~;
-#X obj 130 300 +~;
-#X obj 255 309 +~;
-#X obj 292 308 +~;
-#X text 169 558 1 if all neighbors dirty;
-#X text 470 584 1 if a neighbor dirty;
-#X text 472 568 0 if all neighbors clean;
-#X obj 224 679 lrshift~ -1;
-#X obj 224 655 sig~ 1;
-#X obj 125 638 *~;
-#X obj 220 442 expr $f1*$f1/1250;
-#X obj 432 385 expr $f1*$f1/1250;
-#X obj 220 417 r dirty;
-#X obj 432 360 r clean;
-#X text 362 148 normalize the amplitudes;
-#X text 439 253 add neighboring amplitude to this one;
-#X text 437 269 and take squared magnitude of result -;
-#X text 437 286 do this for both the left neightbor and;
-#X text 436 303 the right one;
-#X text 94 82 forward real Hann-windowed FT;
-#X text 284 658 I had trouble with the DC bin - this zeros it.;
-#X text 594 366 adjust threshold to quadratic;
-#X text 594 382 units and scale;
-#X text 142 389 total incoherence;
-#X text 496 414 compare incoherence with the threshold;
-#X text 532 511 multiply by left and right;
-#X text 531 529 neighbors \, so 0 if any of;
-#X text 531 546 the 3 is "clean".;
-#X text 497 429 If greater (dirty) \, the "clip" outputs;
-#X text 498 444 1 \, otherwise (if clean) \, zero.;
-#X text 161 583 add to let in channels;
-#X text 159 597 for either criterion;
-#X connect 0 0 6 1;
-#X connect 1 0 7 0;
-#X connect 2 0 24 0;
-#X connect 3 0 5 0;
-#X connect 4 0 3 0;
-#X connect 5 0 11 0;
-#X connect 5 0 8 0;
-#X connect 5 0 8 1;
-#X connect 5 0 23 0;
-#X connect 5 1 0 0;
-#X connect 5 1 2 0;
-#X connect 5 1 2 1;
-#X connect 5 1 22 0;
-#X connect 6 0 1 0;
-#X connect 8 0 24 0;
-#X connect 9 0 23 1;
-#X connect 9 0 22 1;
-#X connect 10 0 31 0;
-#X connect 11 0 6 0;
-#X connect 12 0 3 1;
-#X connect 13 0 19 0;
-#X connect 14 0 17 0;
-#X connect 15 0 1 1;
-#X connect 16 0 32 0;
-#X connect 17 0 18 0;
-#X connect 20 0 60 0;
-#X connect 21 0 20 1;
-#X connect 22 0 26 0;
-#X connect 22 0 28 0;
-#X connect 22 0 53 0;
-#X connect 22 0 54 0;
-#X connect 23 0 25 0;
-#X connect 23 0 27 0;
-#X connect 23 0 51 0;
-#X connect 23 0 52 0;
-#X connect 24 0 9 0;
-#X connect 25 0 51 1;
-#X connect 26 0 53 1;
-#X connect 27 0 52 1;
-#X connect 28 0 54 1;
-#X connect 29 0 32 1;
-#X connect 30 0 33 0;
-#X connect 30 0 35 0;
-#X connect 30 0 34 0;
-#X connect 31 0 30 0;
-#X connect 32 0 10 0;
-#X connect 32 0 37 0;
-#X connect 33 0 36 0;
-#X connect 34 0 33 1;
-#X connect 35 0 36 1;
-#X connect 36 0 46 0;
-#X connect 37 0 39 0;
-#X connect 38 0 40 0;
-#X connect 38 0 42 0;
-#X connect 38 0 41 0;
-#X connect 39 0 38 0;
-#X connect 40 0 43 0;
-#X connect 41 0 40 1;
-#X connect 42 0 43 1;
-#X connect 43 0 44 0;
-#X connect 44 0 45 0;
-#X connect 45 0 46 1;
-#X connect 46 0 20 0;
-#X connect 47 0 32 1;
-#X connect 48 0 32 0;
-#X connect 51 0 48 0;
-#X connect 51 0 48 1;
-#X connect 52 0 16 0;
-#X connect 52 0 16 1;
-#X connect 53 0 47 0;
-#X connect 53 0 47 1;
-#X connect 54 0 29 0;
-#X connect 54 0 29 1;
-#X connect 58 0 60 1;
-#X connect 59 0 58 0;
-#X connect 60 0 11 1;
-#X connect 60 0 0 1;
-#X connect 61 0 10 1;
-#X connect 62 0 37 1;
-#X connect 63 0 61 0;
-#X connect 64 0 62 0;
-#X restore 49 410 pd fft-analysis;
-#X floatatom 355 287 0 0 100 0 - - -;
-#X text 138 10 PITCHED/UNPITCHED SEPARATION;
-#X obj 48 443 output~;
-#X floatatom 48 356 0 0 100 0 - - -;
-#X text 105 337 noise;
-#X floatatom 108 356 0 0 100 0 - - -;
-#N canvas 214 193 769 642 test-signal 0;
-#X obj 75 328 line~;
-#X obj 75 250 f;
-#X obj 517 236 *~;
-#X obj 76 442 *~;
-#X obj 517 127 noise~;
-#X obj 371 494 +~;
-#X obj 98 415 dbtorms;
-#X obj 539 210 dbtorms;
-#X obj 98 390 inlet;
-#X obj 539 186 inlet;
-#X obj 373 568 outlet~;
-#X msg 75 304 0 \, \$1 \$2;
-#X obj 75 276 pack 0 0;
-#X obj 236 248 /;
-#X obj 251 190 * 0.001;
-#X obj 251 219 t b f;
-#X obj 372 543 hip~ 5;
-#X obj 75 136 loadbang;
-#X obj 75 182 metro 1000;
-#X obj 517 152 bp~ 10000 3;
-#X obj 75 161 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X text 270 247 sample duration \, msec;
-#X text 126 84 looped sample playback;
-#X obj 75 356 tabread4~ \$0-sample;
-#X text 514 100 filtered noise;
-#X text 105 15 TEST SIGNAL: looped sample plus noise. The inlets control
-amplitude of each in dB.;
-#X obj 236 139 r \$0-samplength;
-#X obj 251 164 r \$0-insamprate;
-#X obj 658 244 *~;
-#X obj 680 218 dbtorms;
-#X obj 680 194 inlet;
-#X text 655 108 osc;
-#X obj 658 134 osc~ 440;
-#X obj 372 519 *~ 3;
-#X connect 0 0 23 0;
-#X connect 1 0 12 0;
-#X connect 2 0 5 1;
-#X connect 3 0 5 0;
-#X connect 4 0 19 0;
-#X connect 5 0 33 0;
-#X connect 6 0 3 1;
-#X connect 7 0 2 1;
-#X connect 8 0 6 0;
-#X connect 9 0 7 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 0;
-#X connect 13 0 12 1;
-#X connect 13 0 18 1;
-#X connect 14 0 15 0;
-#X connect 15 0 13 0;
-#X connect 15 1 13 1;
-#X connect 16 0 10 0;
-#X connect 17 0 20 0;
-#X connect 18 0 1 0;
-#X connect 19 0 2 0;
-#X connect 20 0 18 0;
-#X connect 23 0 3 0;
-#X connect 26 0 1 1;
-#X connect 26 0 13 0;
-#X connect 27 0 14 0;
-#X connect 28 0 5 1;
-#X connect 29 0 28 1;
-#X connect 30 0 29 0;
-#X connect 32 0 28 0;
-#X connect 33 0 16 0;
-#X restore 48 380 pd test-signal;
-#X text 32 334 sampler;
-#X text 56 314 amplitudes (dB);
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 1024 float 0;
-#X coords 0 1 1023 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 457 458 pd hann-window;
-#N canvas 52 71 774 520 tables 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-last-real 2048 float 0;
-#X coords 0 500 2048 -500 200 150 1;
-#X restore 103 15 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-last-imag 2048 float 0;
-#X coords 0 500 2048 500 200 150 1;
-#X restore 497 6 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-precess-real 2048 float 0;
-#X coords 0 500 2048 -500 200 150 1;
-#X restore 105 185 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-precess-imag 2048 float 0;
-#X coords 0 500 2048 -500 200 150 1;
-#X restore 501 178 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-inc-real 2048 float 0;
-#X coords 0 1 2048 -1 200 150 1;
-#X restore 105 357 graph;
-#N canvas 0 0 450 300 graph2 0;
-#X array \$0-inc-imag 2048 float 0;
-#X coords 0 1 2048 -1 200 150 1;
-#X restore 503 342 graph;
-#X restore 457 479 pd tables;
-#N canvas 388 86 722 350 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample 62079 float 0;
-#X coords 0 1 62078 -1 400 150 1;
-#X restore 259 24 graph;
-#X obj 19 23 r read-sample;
-#X obj 19 74 unpack s f;
-#X obj 19 184 soundfiler;
-#X text 356 250 read a sample;
-#X obj 276 249 loadbang;
-#X obj 19 100 t s b;
-#X obj 75 99 symbol \$0-sample;
-#X obj 19 135 pack s s;
-#X msg 19 160 read -resize \$1 \$2;
-#X obj 74 46 44100;
-#X obj 19 47 t a b;
-#X msg 276 273 \; read-sample ../sound/bell.aiff;
-#X obj 29 208 s \$0-samplength;
-#X obj 116 74 s \$0-insamprate;
-#X obj 19 247 /;
-#X obj 19 271 * 1000;
-#X obj 19 294 s \$0-samp-msec;
-#X obj 57 247 r \$0-insamprate;
-#X connect 1 0 11 0;
-#X connect 2 0 6 0;
-#X connect 2 1 14 0;
-#X connect 3 0 13 0;
-#X connect 3 0 15 0;
-#X connect 5 0 12 0;
-#X connect 6 0 8 0;
-#X connect 6 1 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 9 0;
-#X connect 9 0 3 0;
-#X connect 10 0 14 0;
-#X connect 11 0 2 0;
-#X connect 11 1 10 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X connect 18 0 15 1;
-#X restore 233 501 pd insample;
-#X msg 233 403 ../sound/bell.aiff;
-#X msg 233 426 ../sound/voice.wav;
-#X msg 233 449 ../sound/voice2.wav;
-#X text 236 383 change input sound;
-#X obj 233 473 s read-sample;
-#X floatatom 233 523 5 0 0 0 - #0-samp-msec -;
-#X text 286 522 sample length \, msec;
-#X floatatom 233 285 0 0 100 0 - - -;
-#X floatatom 169 356 0 0 100 0 - - -;
-#X text 167 336 osc;
-#X msg 471 325 512;
-#X msg 471 346 1024;
-#X msg 471 368 2048;
-#X obj 471 413 s window-size;
-#X msg 471 390 4096;
-#X obj 233 308 s clean;
-#X text 233 331 0=silent;
-#X text 231 351 100=all;
-#X obj 355 310 s dirty;
-#X text 351 331 100=silent;
-#X text 353 348 0=all;
-#X text 354 563 updated for Pd version 0.39;
-#X text 11 212 Two separate thresholds may be adjusted to listen to
-the "clean" or "dirty" part of the signal. You'll hear anything less
-incoherent than the clean threshold \, OR more incoherent than the
-dirty one.;
-#X text 13 35 This patch applies a very simple coherence test to distinguish
-between sinusoids and noise in an input signal. It works very imperfectly
-(since noise is random \, no matter what test we place on it it will
-sometimes spoof its way in.) Here we just test that neighboring channels
-are 180 degrees (pi radians) out of phase \, as they should be in the
-main lobe in response to a sinusoid. If any three channels are so arranged
-\, all three are considered as contributing to a sinusoid. To do this
-we make an "incoherence" measure which is zero if the phase relationship
-is perfect and progressively larger otherwise.;
-#X connect 0 0 3 0;
-#X connect 0 0 3 1;
-#X connect 1 0 31 0;
-#X connect 4 0 7 0;
-#X connect 6 0 7 1;
-#X connect 7 0 0 0;
-#X connect 13 0 17 0;
-#X connect 14 0 17 0;
-#X connect 15 0 17 0;
-#X connect 20 0 28 0;
-#X connect 21 0 7 2;
-#X connect 23 0 26 0;
-#X connect 24 0 26 0;
-#X connect 25 0 26 0;
-#X connect 27 0 26 0;
diff --git a/desiredata/doc/3.audio.examples/I10.phase.bash.pd b/desiredata/doc/3.audio.examples/I10.phase.bash.pd
deleted file mode 100644
index 4c66f9b7..00000000
--- a/desiredata/doc/3.audio.examples/I10.phase.bash.pd
+++ /dev/null
@@ -1,569 +0,0 @@
-#N canvas 165 311 718 552 12;
-#X floatatom 407 323 0 0 0 0 - - -;
-#N canvas 122 165 801 538 fft 0;
-#X obj 39 153 *~;
-#X obj 7 153 *~;
-#X obj 7 98 *~;
-#X obj 7 70 inlet~;
-#X obj 7 125 rfft~;
-#X obj 7 227 *~;
-#X obj 7 306 rifft~;
-#X obj 43 99 tabreceive~ \$0-hann;
-#X obj 7 200 q8_sqrt~;
-#X obj 337 158 samplerate~;
-#X obj 328 124 bang~;
-#X obj 337 183 t f b;
-#X obj 444 4 loadbang;
-#X obj 636 19 r window-size;
-#X obj 636 65 block~;
-#X obj 337 207 osc~;
-#X msg 381 207 0;
-#X obj 8 333 *~;
-#X obj 44 334 tabreceive~ \$0-hann;
-#X obj 9 363 outlet~;
-#X obj 77 281 r window-size;
-#X obj 7 281 /~ 1000;
-#X msg 636 41 set \$1 2;
-#X obj 387 267 r \$0-start;
-#X obj 328 320 spigot;
-#X msg 387 292 1;
-#X msg 354 292 0;
-#X obj 328 516 outlet;
-#X obj 364 372 r window-size;
-#X obj 364 441 t f b;
-#X obj 396 464 samplerate~;
-#X obj 364 464 /;
-#X obj 364 487 * 1000;
-#X obj 328 493 del;
-#X obj 364 395 / 2;
-#X obj 364 418 - 1;
-#X msg 443 28 \; pd dsp 1 \; window-size 1024 \; pitch 48 \; specshift
-0;
-#X text 96 196 magnitude of FT;
-#X text 18 249 align partials to middle of window;
-#X text 39 232 alternate every other sign to;
-#X text 383 122 control computations to do every frame;
-#X text 414 180 set sample rate of the oscillator to;
-#X text 416 195 Nyquist (here we're operating at twice;
-#X text 418 211 the global "samplerate~" because of;
-#X text 417 228 the overlap-2 blocking.) Also set phase;
-#X text 417 244 to zero at beginning of frame.;
-#X text 424 287 When analysis starts \, set a delay to;
-#X text 425 304 one frame minus a sample (i.e. \, just;
-#X text 424 321 one 64-sample block before the next;
-#X text 423 338 frame) which is synchronized with the;
-#X text 423 352 first frame emerging from outlet~ at;
-#X text 499 368 left. In the parent window;
-#X text 497 385 this is used to start;
-#X text 497 402 recording synchronously.;
-#X text 14 384 output phase-aligned frames;
-#X text 395 514 output a bang to start recording;
-#X connect 0 0 8 0;
-#X connect 1 0 8 0;
-#X connect 2 0 4 0;
-#X connect 3 0 2 0;
-#X connect 4 0 1 0;
-#X connect 4 0 1 1;
-#X connect 4 1 0 0;
-#X connect 4 1 0 1;
-#X connect 5 0 21 0;
-#X connect 6 0 17 0;
-#X connect 7 0 2 1;
-#X connect 8 0 5 0;
-#X connect 9 0 11 0;
-#X connect 10 0 9 0;
-#X connect 10 0 24 0;
-#X connect 11 0 15 0;
-#X connect 11 1 16 0;
-#X connect 12 0 36 0;
-#X connect 13 0 22 0;
-#X connect 15 0 5 1;
-#X connect 16 0 15 1;
-#X connect 17 0 19 0;
-#X connect 18 0 17 1;
-#X connect 20 0 21 1;
-#X connect 21 0 6 0;
-#X connect 22 0 14 0;
-#X connect 23 0 25 0;
-#X connect 24 0 26 0;
-#X connect 24 0 33 0;
-#X connect 25 0 24 1;
-#X connect 26 0 24 1;
-#X connect 28 0 34 0;
-#X connect 29 0 31 0;
-#X connect 29 1 30 0;
-#X connect 30 0 31 1;
-#X connect 31 0 32 0;
-#X connect 32 0 33 1;
-#X connect 33 0 27 0;
-#X connect 34 0 35 0;
-#X connect 35 0 29 0;
-#X restore 22 459 pd fft;
-#X floatatom 586 377 0 0 120 0 - pitch-set -;
-#X floatatom 583 330 0 0 0 0 - specshift-set -;
-#X obj 583 353 s specshift;
-#X obj 407 443 s loco;
-#X obj 586 400 s pitch;
-#X obj 407 346 pack 0 100;
-#X obj 588 453 output~;
-#X text 214 -1 PHASE BASHING;
-#X text 455 515 updated for Pd version 0.39;
-#X floatatom 199 389 5 0 0 0 - #0-samp-msec -;
-#X text 197 403 sample length \, msec;
-#X msg 198 288 ../sound/bell.aiff;
-#X msg 198 313 ../sound/voice.wav;
-#X msg 198 338 ../sound/voice2.wav;
-#X text 201 266 change input sound;
-#X obj 198 364 s read-sample;
-#N canvas 190 43 657 626 test-signal 0;
-#X obj 88 381 line~;
-#X obj 88 306 f;
-#X obj 88 536 outlet~;
-#X msg 88 360 0 \, \$1 \$2;
-#X obj 88 334 pack 0 0;
-#X obj 190 303 /;
-#X obj 269 283 * 0.001;
-#X obj 211 260 t b b f;
-#X obj 152 225 t b f;
-#X obj 88 406 tabread4~ \$0-sample;
-#X obj 286 391 adc~ 1;
-#X obj 414 280 inlet;
-#X obj 454 339 samplerate~;
-#X obj 151 201 r \$0-samplength;
-#X obj 211 234 r \$0-insamprate;
-#X obj 87 189 inlet;
-#X obj 454 363 s \$0-insamprate;
-#X obj 285 423 *~;
-#X obj 363 380 del;
-#X obj 414 312 t b b;
-#X msg 402 379 1;
-#X msg 401 404 0;
-#X obj 87 473 hip~ 5;
-#X obj 88 444 +~;
-#X text 73 123 play sample;
-#X text 71 143 once;
-#X obj 482 420 s \$0-start;
-#X connect 0 0 9 0;
-#X connect 1 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 3 0;
-#X connect 5 0 4 1;
-#X connect 5 0 18 1;
-#X connect 6 0 5 1;
-#X connect 7 1 5 0;
-#X connect 7 2 6 0;
-#X connect 8 1 5 0;
-#X connect 8 1 1 1;
-#X connect 9 0 23 0;
-#X connect 10 0 17 0;
-#X connect 11 0 19 0;
-#X connect 12 0 16 0;
-#X connect 13 0 8 0;
-#X connect 14 0 7 0;
-#X connect 15 0 1 0;
-#X connect 15 0 26 0;
-#X connect 17 0 23 1;
-#X connect 18 0 21 0;
-#X connect 19 0 20 0;
-#X connect 19 0 18 0;
-#X connect 19 0 26 0;
-#X connect 19 1 12 0;
-#X connect 20 0 17 1;
-#X connect 21 0 17 1;
-#X connect 22 0 2 0;
-#X connect 23 0 22 0;
-#X restore 22 436 pd test-signal;
-#X obj 143 417 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#N canvas 0 110 565 454 hann-window 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-hann 2048 float 0;
-#X coords 0 1 2047 0 300 100 1;
-#X restore 82 311 graph;
-#X obj 378 165 osc~;
-#X obj 378 190 *~ -0.5;
-#X obj 378 214 +~ 0.5;
-#X obj 331 247 tabwrite~ \$0-hann;
-#X obj 37 88 r window-size;
-#X obj 38 173 /;
-#X obj 127 142 samplerate~;
-#X obj 38 251 s window-sec;
-#X obj 177 204 swap;
-#X obj 177 228 /;
-#X obj 177 252 s window-hz;
-#X obj 49 201 * 1000;
-#X obj 49 228 s window-msec;
-#X obj 38 115 t f b f;
-#X msg 173 92 resize \$1;
-#X obj 173 116 s \$0-hann;
-#X obj 330 105 r window-hz;
-#X msg 382 130 0;
-#X obj 330 131 t f b;
-#X text 15 8 calculate Hann window table (variable window size) and
-constants window-hz (fundamental frequency of analysis) \, window-sec
-and window-msec (analysis window size in seconds and msec).;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 6 0 12 0;
-#X connect 7 0 6 1;
-#X connect 7 0 9 1;
-#X connect 9 0 10 0;
-#X connect 9 1 10 1;
-#X connect 10 0 11 0;
-#X connect 12 0 13 0;
-#X connect 14 0 6 0;
-#X connect 14 0 9 0;
-#X connect 14 1 7 0;
-#X connect 14 2 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 19 0;
-#X connect 18 0 1 1;
-#X connect 19 0 1 0;
-#X connect 19 1 4 0;
-#X connect 19 1 18 0;
-#X restore 195 441 pd hann-window;
-#X msg 28 269 512;
-#X msg 28 290 1024;
-#X msg 28 312 2048;
-#X obj 28 357 s window-size;
-#X msg 28 334 4096;
-#N canvas 388 86 736 499 insample 0;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sample 62079 float 0;
-#X coords 0 1 62078 -1 400 150 1;
-#X restore 259 24 graph;
-#X obj 19 23 r read-sample;
-#X obj 19 74 unpack s f;
-#X obj 19 184 soundfiler;
-#X text 118 379 read a sample;
-#X obj 38 378 loadbang;
-#X obj 19 100 t s b;
-#X obj 75 99 symbol \$0-sample;
-#X obj 19 135 pack s s;
-#X msg 19 160 read -resize \$1 \$2;
-#X obj 74 46 44100;
-#X obj 19 47 t a b;
-#X obj 29 208 s \$0-samplength;
-#X obj 116 74 s \$0-insamprate;
-#X obj 19 281 /;
-#X obj 19 305 * 1000;
-#X obj 19 328 s \$0-samp-msec;
-#X obj 57 281 r \$0-insamprate;
-#X msg 38 402 \; read-sample ../sound/voice.wav;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-nophase 62079 float 0;
-#X coords 0 1 62078 -1 400 150 1;
-#X restore 256 185 graph;
-#X msg 376 403 resize \$1;
-#X obj 376 379 r \$0-samplength;
-#X obj 376 428 s \$0-nophase;
-#X connect 1 0 11 0;
-#X connect 2 0 6 0;
-#X connect 2 1 13 0;
-#X connect 3 0 12 0;
-#X connect 3 0 14 0;
-#X connect 5 0 18 0;
-#X connect 6 0 8 0;
-#X connect 6 1 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 9 0;
-#X connect 9 0 3 0;
-#X connect 10 0 13 0;
-#X connect 11 0 2 0;
-#X connect 11 1 10 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 17 0 14 1;
-#X connect 20 0 22 0;
-#X connect 21 0 20 0;
-#X restore 195 464 pd insample;
-#X obj 22 416 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 33 384 ---analyze---;
-#X text 20 399 sample;
-#X obj 94 489 tabwrite~ \$0-nophase;
-#X obj 21 492 output~;
-#X msg 415 384 0 \, 400 4000;
-#X msg 415 419 0 \, 400 10000;
-#X text 47 18 This patch takes an incoming sound \, does an overlap-2
-FFT analysis of it \, and bashes the phases of the spectra so that
-when regenerated the components will all have zero phase at the middle
-of each window. You can use the windows as waveforms and cross-fade
-them at will without getting phase modulation. This might be useful
-for making synthetic instruments that mimic the spectral variation
-of recorded sounds.;
-#X text 398 305 (hundredths of sec);
-#X text 401 289 location in sample;
-#X text 420 365 normal speed;
-#X text 422 403 slow;
-#X text 458 262 ------ playback -------;
-#N canvas 81 424 887 624 playback 0;
-#X obj 101 479 r invblk;
-#X obj 28 499 *~;
-#X obj 61 501 clip~ 1 1000;
-#X floatatom 38 89 0 0 0 0 - - -;
-#X floatatom 510 93 0 0 0 0 - - -;
-#X obj 496 392 *~;
-#X obj 626 369 samphold~;
-#X obj 733 369 samphold~;
-#X obj 538 369 samphold~;
-#X obj 481 500 clip~ -0.5 0.5;
-#X obj 481 523 cos~;
-#X obj 651 427 +~;
-#X obj 653 506 -~;
-#X obj 642 533 *~;
-#X obj 642 558 +~;
-#X obj 621 582 *~;
-#X obj 40 408 *~;
-#X obj 197 362 samphold~;
-#X obj 302 367 samphold~;
-#X obj 508 290 phasor~;
-#X obj 174 288 wrap~;
-#X obj 510 68 r pitch;
-#X obj 510 140 mtof;
-#X obj 269 199 line~;
-#X obj 268 224 -~;
-#X text 8 42 spectral stretch;
-#X obj 89 367 samphold~;
-#X obj 665 187 t b f;
-#X obj 699 210 /;
-#X obj 665 209 1;
-#X obj 29 524 clip~ -0.5 0.5;
-#X obj 29 546 cos~;
-#X obj 211 425 +~;
-#X obj 212 505 -~;
-#X obj 194 526 *~;
-#X obj 201 549 +~;
-#X text 45 426 offset into;
-#X text 50 440 sample;
-#X text 368 169 samples;
-#X text 368 154 period in;
-#X text 204 378 weight for;
-#X text 204 393 next block;
-#X obj 760 312 wrap~;
-#X obj 700 232 s invblk;
-#X obj 558 453 r invblk;
-#X obj 665 138 r window-size;
-#X obj 38 65 r specshift;
-#X obj 261 64 r loco;
-#X obj 482 473 *~;
-#X obj 518 474 clip~ 1 1000;
-#X obj 510 117 - 12;
-#X obj 38 136 + 69;
-#X obj 38 159 mtof;
-#X obj 38 182 / 440;
-#X obj 28 284 *~ 1;
-#X obj 760 287 +~ 0.5;
-#X obj 60 479 *~ 1;
-#X obj 518 453 *~ 1;
-#X obj 481 545 +~ 1;
-#X obj 29 569 +~ 1;
-#X obj 267 292 *~ 1;
-#X obj 212 453 +~ 0;
-#X obj 652 456 +~ 0;
-#X obj 28 366 -~ 0.5;
-#X obj 479 369 -~ 0.5;
-#X obj 286 603 outlet~;
-#X obj 212 479 tabread4~ \$0-nophase;
-#X obj 249 504 tabread4~ \$0-nophase;
-#X obj 652 480 tabread4~ \$0-nophase;
-#X obj 688 505 tabread4~ \$0-nophase;
-#X obj 268 247 +~ 0.5;
-#X text 60 248 grain size;
-#X text 62 264 in samples;
-#X text 97 383 grain size;
-#X text 311 389 middle;
-#X text 311 404 of block;
-#X text 165 248 fractional;
-#X text 164 265 part of loc;
-#X text 295 224 integer part of loc;
-#X text 328 247 middle of block;
-#X text 310 290 cvt to samples;
-#X text 522 265 run two copies 180 degrees out of phase;
-#X text 29 589 window shaped;
-#X text 27 604 by raised cos;
-#X text 265 522 weighted sum of;
-#X text 265 538 2 windows;
-#X obj 180 573 *~;
-#X obj 286 577 +~;
-#X obj 704 163 s blksize;
-#X obj 683 429 r blksize;
-#X obj 243 427 r blksize;
-#X obj 297 270 r blksize;
-#X obj 665 162 / 2;
-#X obj 366 132 /;
-#X obj 366 105 samplerate~;
-#X obj 365 82 t b f;
-#X obj 38 112 * 0.125;
-#X text 223 44 read location in sec/100;
-#X obj 200 120 samplerate~;
-#X obj 167 72 / 100;
-#X obj 167 96 t f b;
-#X obj 167 119 *;
-#X obj 200 144 r blksize;
-#X obj 167 144 /;
-#X text 113 162 read location \, blocks;
-#X obj 260 89 unpack;
-#X msg 630 52 set \$1;
-#X obj 771 32 r pitch;
-#X msg 771 55 set \$1;
-#X obj 630 30 r specshift;
-#X text 723 190 1/(block size);
-#X obj 630 76 s specshift-set;
-#X obj 770 78 s pitch-set;
-#X text 607 104 analysis overlap was 2 so our;
-#X text 606 120 block size is (window size)/2;
-#X text 12 -1 OVERLAPPED \, WINDOWED SAMPLE PLAYBACK;
-#X text 357 0 - with controls for pitch \, location \, and spectral
-shift;
-#X connect 0 0 56 1;
-#X connect 1 0 30 0;
-#X connect 2 0 1 1;
-#X connect 3 0 96 0;
-#X connect 4 0 50 0;
-#X connect 5 0 11 0;
-#X connect 6 0 13 0;
-#X connect 7 0 11 1;
-#X connect 8 0 5 1;
-#X connect 8 0 57 0;
-#X connect 9 0 10 0;
-#X connect 10 0 58 0;
-#X connect 11 0 62 0;
-#X connect 11 0 69 0;
-#X connect 12 0 13 1;
-#X connect 13 0 14 0;
-#X connect 14 0 15 1;
-#X connect 15 0 87 1;
-#X connect 16 0 32 0;
-#X connect 17 0 34 0;
-#X connect 18 0 32 1;
-#X connect 19 0 26 1;
-#X connect 19 0 18 1;
-#X connect 19 0 17 1;
-#X connect 19 0 55 0;
-#X connect 19 0 63 0;
-#X connect 20 0 24 1;
-#X connect 20 0 17 0;
-#X connect 20 0 6 0;
-#X connect 21 0 4 0;
-#X connect 22 0 19 0;
-#X connect 22 0 95 0;
-#X connect 23 0 20 0;
-#X connect 23 0 24 0;
-#X connect 24 0 70 0;
-#X connect 26 0 16 1;
-#X connect 26 0 56 0;
-#X connect 27 0 29 0;
-#X connect 27 1 28 1;
-#X connect 28 0 43 0;
-#X connect 29 0 28 0;
-#X connect 30 0 31 0;
-#X connect 31 0 59 0;
-#X connect 32 0 61 0;
-#X connect 32 0 67 0;
-#X connect 33 0 34 1;
-#X connect 34 0 35 0;
-#X connect 35 0 86 1;
-#X connect 42 0 8 1;
-#X connect 42 0 6 1;
-#X connect 42 0 7 1;
-#X connect 42 0 64 0;
-#X connect 44 0 57 1;
-#X connect 45 0 92 0;
-#X connect 46 0 3 0;
-#X connect 47 0 105 0;
-#X connect 48 0 9 0;
-#X connect 49 0 48 1;
-#X connect 50 0 22 0;
-#X connect 51 0 52 0;
-#X connect 52 0 53 0;
-#X connect 53 0 54 1;
-#X connect 54 0 26 0;
-#X connect 54 0 8 0;
-#X connect 55 0 42 0;
-#X connect 56 0 2 0;
-#X connect 57 0 49 0;
-#X connect 58 0 15 0;
-#X connect 59 0 86 0;
-#X connect 60 0 18 0;
-#X connect 60 0 7 0;
-#X connect 61 0 66 0;
-#X connect 62 0 68 0;
-#X connect 63 0 16 0;
-#X connect 63 0 1 0;
-#X connect 64 0 5 0;
-#X connect 64 0 48 0;
-#X connect 66 0 33 0;
-#X connect 67 0 33 1;
-#X connect 67 0 35 1;
-#X connect 68 0 12 0;
-#X connect 69 0 12 1;
-#X connect 69 0 14 1;
-#X connect 70 0 60 0;
-#X connect 86 0 87 0;
-#X connect 87 0 65 0;
-#X connect 89 0 62 1;
-#X connect 90 0 61 1;
-#X connect 91 0 60 1;
-#X connect 92 0 88 0;
-#X connect 92 0 27 0;
-#X connect 93 0 54 0;
-#X connect 94 0 93 0;
-#X connect 95 0 94 0;
-#X connect 95 1 93 1;
-#X connect 96 0 51 0;
-#X connect 98 0 101 1;
-#X connect 99 0 100 0;
-#X connect 100 0 101 0;
-#X connect 100 1 98 0;
-#X connect 101 0 103 0;
-#X connect 102 0 103 1;
-#X connect 103 0 23 0;
-#X connect 105 0 99 0;
-#X connect 105 1 23 1;
-#X connect 106 0 111 0;
-#X connect 107 0 108 0;
-#X connect 108 0 112 0;
-#X connect 109 0 106 0;
-#X restore 589 428 pd playback;
-#X text 585 290 spectral shift;
-#X text 583 306 (hundredths of;
-#X text 646 323 octave);
-#X text 126 398 live;
-#X text 45 141 You can save the analyses and needn't be running the
-FFT patch to do the resynthesis. You can read a sample \, select window
-size \, and press "sample" to analyze it \, or else analyze a "live"
-input. You'll hear the phase-bashed sample as the analysis runs. You
-can regenerate the sound with specified pitch \, sample location \,
-and spectral shift \, using the "playback" controls.;
-#X text 83 278 analysis;
-#X text 80 264 (redo;
-#X text 83 294 after;
-#X text 84 309 changing;
-#X text 84 325 window;
-#X text 85 339 size);
-#X connect 0 0 7 0;
-#X connect 1 0 30 0;
-#X connect 1 0 31 0;
-#X connect 1 0 31 1;
-#X connect 1 1 30 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 0;
-#X connect 7 0 5 0;
-#X connect 13 0 17 0;
-#X connect 14 0 17 0;
-#X connect 15 0 17 0;
-#X connect 18 0 1 0;
-#X connect 19 0 18 1;
-#X connect 21 0 24 0;
-#X connect 22 0 24 0;
-#X connect 23 0 24 0;
-#X connect 25 0 24 0;
-#X connect 27 0 18 0;
-#X connect 32 0 5 0;
-#X connect 33 0 5 0;
-#X connect 40 0 8 0;
-#X connect 40 0 8 1;
diff --git a/desiredata/doc/3.audio.examples/J01.even.odd.pd b/desiredata/doc/3.audio.examples/J01.even.odd.pd
deleted file mode 100644
index 71c9fdf5..00000000
--- a/desiredata/doc/3.audio.examples/J01.even.odd.pd
+++ /dev/null
@@ -1,66 +0,0 @@
-#N canvas 213 27 782 599 12;
-#X obj 80 156 wrap~;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-phasor 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 567 35 graph;
-#X obj 24 57 -~ 0.5;
-#X obj 80 184 -~ 0.5;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sum 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 567 189 graph;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-difference 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 566 343 graph;
-#X text 570 475 ---- 0.02 seconds ----;
-#X text 528 567 updated for Pd version 0.39;
-#X obj 22 335 output~;
-#X obj 138 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 29 270 output~;
-#X text 41 -1 Splitting a sawtooth wave into even and odd harmonics
-;
-#X obj 24 29 phasor~ 100;
-#X text 87 58 remove DC bias;
-#X text 132 29 original sawtooth;
-#X text 144 173 180-degree-out-of-phase;
-#X text 147 188 sawtooth;
-#X text 145 212 form the sum and difference;
-#X obj 23 224 +~;
-#X obj 59 223 -~;
-#X text 4 408 This patch splits a sawtooth wave into its even and odd
-harmonics. The wrap~ object is used to make the phased copy. Adding
-and subtracting this to and from the original gives the results shown
-and heard. (Listen to the two outputs separately \, then together.)
-;
-#X text 102 291 output level;
-#X text 93 367 for sum;
-#X text 95 350 output level;
-#X text 100 308 for difference;
-#X text 157 77 <-- click to graph;
-#X msg 148 97 \; pd DSP 1;
-#X obj 138 247 tabwrite~ \$0-difference;
-#X obj 138 270 tabwrite~ \$0-sum;
-#X obj 138 138 tabwrite~ \$0-phasor;
-#X text 4 491 This is a classic technique for gaining separate control
-over the even and odd harmonics in a synthetic sound. It can also be
-used conceptually to understand the harmonic content of a square wave
-in terms of that of a sawtooth \, or vice versa.;
-#X connect 0 0 3 0;
-#X connect 2 0 0 0;
-#X connect 2 0 18 0;
-#X connect 2 0 19 0;
-#X connect 2 0 29 0;
-#X connect 3 0 18 1;
-#X connect 3 0 19 1;
-#X connect 9 0 26 0;
-#X connect 9 0 27 0;
-#X connect 9 0 28 0;
-#X connect 9 0 29 0;
-#X connect 12 0 2 0;
-#X connect 18 0 8 0;
-#X connect 18 0 28 0;
-#X connect 19 0 10 1;
-#X connect 19 0 27 0;
diff --git a/desiredata/doc/3.audio.examples/J02.trapezoids.pd b/desiredata/doc/3.audio.examples/J02.trapezoids.pd
deleted file mode 100644
index 1e7e5d27..00000000
--- a/desiredata/doc/3.audio.examples/J02.trapezoids.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas 262 74 690 585 12;
-#X obj 137 133 wrap~;
-#X obj 137 155 -~ 0.5;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sum 882 float 0;
-#X coords 0 1.02 881 -1.02 200 130 1;
-#X restore 421 155 graph;
-#X text 420 293 ---- 0.02 seconds ----;
-#X text 427 550 updated for Pd version 0.39;
-#X obj 53 335 output~;
-#X obj 147 369 tabwrite~ \$0-sum;
-#X obj 137 111 -~;
-#X obj 159 70 / 100;
-#X floatatom 159 49 4 -100 100 0 - - -;
-#X obj 158 220 / 100;
-#X floatatom 158 199 4 -100 100 0 - - -;
-#X obj 136 242 *~;
-#X obj 209 134 wrap~;
-#X obj 209 156 -~ 0.5;
-#X obj 209 112 -~;
-#X obj 231 71 / 100;
-#X floatatom 231 50 4 -100 100 0 - - -;
-#X obj 230 221 / 100;
-#X floatatom 230 200 4 -100 100 0 - - -;
-#X obj 208 243 *~;
-#X obj 280 135 wrap~;
-#X obj 280 157 -~ 0.5;
-#X obj 280 113 -~;
-#X obj 302 72 / 100;
-#X floatatom 302 51 4 -100 100 0 - - -;
-#X obj 301 222 / 100;
-#X floatatom 301 201 4 -100 100 0 - - -;
-#X obj 279 244 *~;
-#X text 138 30 -- PHASES (percent) --;
-#X text 164 180 AMPLITUDES (percent);
-#X obj 111 268 +~;
-#X obj 112 294 +~;
-#X text 31 3 Making trapezoidal waves from sawtooth waves;
-#X obj 158 321 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 25 77 phasor~ 88.2;
-#X obj 158 343 metro 193;
-#X text 4 476 If the amplitudes sum to zero (with negative ones to
-balance positive ones) \, the slope of each linear segment becomes
-zero. Otherrwise \, the segments have just enough slope to make up
-for the three jumps ane get to the same starting value after each cycle..
-;
-#X text 4 408 Here we combine three sawtooth waves with controllable
-relative phases and amplitudes (in percent \, between -100 and 100.)
-Each sawtooth wave gives rise to one jump (upward or downward) per
-cycle.;
-#X connect 0 0 1 0;
-#X connect 1 0 12 0;
-#X connect 7 0 0 0;
-#X connect 8 0 7 1;
-#X connect 9 0 8 0;
-#X connect 10 0 12 1;
-#X connect 11 0 10 0;
-#X connect 12 0 31 0;
-#X connect 13 0 14 0;
-#X connect 14 0 20 0;
-#X connect 15 0 13 0;
-#X connect 16 0 15 1;
-#X connect 17 0 16 0;
-#X connect 18 0 20 1;
-#X connect 19 0 18 0;
-#X connect 20 0 31 1;
-#X connect 21 0 22 0;
-#X connect 22 0 28 0;
-#X connect 23 0 21 0;
-#X connect 24 0 23 1;
-#X connect 25 0 24 0;
-#X connect 26 0 28 1;
-#X connect 27 0 26 0;
-#X connect 28 0 32 1;
-#X connect 31 0 32 0;
-#X connect 32 0 6 0;
-#X connect 32 0 5 0;
-#X connect 32 0 5 1;
-#X connect 34 0 36 0;
-#X connect 35 0 7 0;
-#X connect 35 0 15 0;
-#X connect 35 0 23 0;
-#X connect 36 0 6 0;
diff --git a/desiredata/doc/3.audio.examples/J03.pulse.width.mod.pd b/desiredata/doc/3.audio.examples/J03.pulse.width.mod.pd
deleted file mode 100644
index 06301686..00000000
--- a/desiredata/doc/3.audio.examples/J03.pulse.width.mod.pd
+++ /dev/null
@@ -1,48 +0,0 @@
-#N canvas 46 315 784 514 12;
-#X floatatom 95 64 0 0 0 0 - - -;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-difference 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 565 325 graph;
-#X text 81 39 frequency;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-phasor1 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 565 24 graph;
-#X text 57 9 CLASSICAL PULSE WIDTH MODULATION;
-#X obj 111 156 phasor~ 0;
-#X obj 111 132 + 0.2;
-#X obj 95 206 -~;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-phasor2 882 float 0;
-#X coords 0 1.02 882 -1.02 200 130 1;
-#X restore 565 176 graph;
-#X text 24 314 This patch demonstrates pulse width modulation \, which
-is accomplished simply by subtracting two sawtooth waves at a varying
-phase difference. Here their frequencies are set to differ by 1/5 Hz.
-so that the relative phase wanders continuously.;
-#X text 570 457 ---- 0.02 seconds ----;
-#X text 524 487 updated for Pd version 0.39;
-#X obj 96 247 output~;
-#X obj 200 124 tabwrite~ \$0-phasor1;
-#X obj 200 182 tabwrite~ \$0-phasor2;
-#X obj 200 236 tabwrite~ \$0-difference;
-#X obj 95 97 phasor~;
-#X obj 200 82 metro 193;
-#X obj 200 62 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
-;
-#X text 219 60 <-- start/stop graphing;
-#X connect 0 0 6 0;
-#X connect 0 0 16 0;
-#X connect 5 0 7 1;
-#X connect 5 0 14 0;
-#X connect 6 0 5 0;
-#X connect 7 0 12 0;
-#X connect 7 0 12 1;
-#X connect 7 0 15 0;
-#X connect 16 0 7 0;
-#X connect 16 0 13 0;
-#X connect 17 0 13 0;
-#X connect 17 0 14 0;
-#X connect 17 0 15 0;
-#X connect 18 0 17 0;
diff --git a/desiredata/doc/3.audio.examples/J04.corners.pd b/desiredata/doc/3.audio.examples/J04.corners.pd
deleted file mode 100644
index 72671d3d..00000000
--- a/desiredata/doc/3.audio.examples/J04.corners.pd
+++ /dev/null
@@ -1,112 +0,0 @@
-#N canvas 612 -7 619 714 12;
-#X obj 117 132 wrap~;
-#X obj 117 154 -~ 0.5;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sum 882 float 0;
-#X coords 0 0.25 881 -0.25 200 130 1;
-#X restore 411 70 graph;
-#X text 410 208 ---- 0.02 seconds ----;
-#X text 354 676 updated for Pd version 0.39;
-#X obj 33 427 output~;
-#X obj 127 461 tabwrite~ \$0-sum;
-#X obj 117 110 -~;
-#X obj 139 69 / 100;
-#X floatatom 139 48 4 -100 100 0 - - -;
-#X obj 138 312 / 100;
-#X floatatom 138 291 4 -100 100 0 - - -;
-#X obj 116 334 *~;
-#X obj 203 133 wrap~;
-#X obj 203 155 -~ 0.5;
-#X obj 203 111 -~;
-#X obj 225 70 / 100;
-#X floatatom 225 49 4 -100 100 0 - - -;
-#X obj 225 313 / 100;
-#X floatatom 225 292 4 -100 100 0 - - -;
-#X obj 203 335 *~;
-#X obj 290 134 wrap~;
-#X obj 290 156 -~ 0.5;
-#X obj 290 112 -~;
-#X obj 311 71 / 100;
-#X floatatom 311 50 4 -100 100 0 - - -;
-#X obj 313 314 / 100;
-#X floatatom 313 293 4 -100 100 0 - - -;
-#X obj 291 336 *~;
-#X text 129 26 -- PHASES (percent) --;
-#X text 140 267 AMPLITUDES (percent);
-#X obj 91 360 +~;
-#X obj 92 386 +~;
-#X obj 138 413 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 138 435 metro 193;
-#X obj 20 80 phasor~;
-#X floatatom 20 59 5 0 0 0 - - -;
-#X text 12 36 frequency;
-#X obj 116 184 *~;
-#X obj 203 184 *~;
-#X obj 290 184 *~;
-#X obj 116 209 *~ 0.5;
-#X obj 116 234 -~ 0.0833;
-#X obj 203 209 *~ 0.5;
-#X obj 290 209 *~ 0.5;
-#X obj 204 234 -~ 0.0833;
-#X obj 291 234 -~ 0.0833;
-#X text 30 3 Making waveforms with corners using parabolic waves;
-#X text 14 499 Here we combine three parabolic waves (in the same way
-as \, two patches ago \, we combined sawtooth waves). The parabolic
-wave is obtained from the sawtooth wave (assuming it runs from -0.5
-to 0.5) by the formula: y=x*x/2 - 1/12. This is normalized so that
-the corner has a slope change of minus one unit per cycle \, and adjusted
-to remove any DC component.;
-#X text 12 593 In general \, the segments of the result will be curved
-\, but if the three magnitudes sum algebraicly to zero \, the segments
-will be linear.;
-#X text 371 67 0.25;
-#X text 362 184 -0.25;
-#X text 14 644 Note the reduced scale of the graph (from -0.25 to 0.25)
-compared to the previous examples.;
-#X connect 0 0 1 0;
-#X connect 1 0 38 0;
-#X connect 1 0 38 1;
-#X connect 7 0 0 0;
-#X connect 8 0 7 1;
-#X connect 9 0 8 0;
-#X connect 10 0 12 1;
-#X connect 11 0 10 0;
-#X connect 12 0 31 0;
-#X connect 13 0 14 0;
-#X connect 14 0 39 0;
-#X connect 14 0 39 1;
-#X connect 15 0 13 0;
-#X connect 16 0 15 1;
-#X connect 17 0 16 0;
-#X connect 18 0 20 1;
-#X connect 19 0 18 0;
-#X connect 20 0 31 1;
-#X connect 21 0 22 0;
-#X connect 22 0 40 0;
-#X connect 22 0 40 1;
-#X connect 23 0 21 0;
-#X connect 24 0 23 1;
-#X connect 25 0 24 0;
-#X connect 26 0 28 1;
-#X connect 27 0 26 0;
-#X connect 28 0 32 1;
-#X connect 31 0 32 0;
-#X connect 32 0 6 0;
-#X connect 32 0 5 0;
-#X connect 32 0 5 1;
-#X connect 33 0 34 0;
-#X connect 34 0 6 0;
-#X connect 35 0 7 0;
-#X connect 35 0 15 0;
-#X connect 35 0 23 0;
-#X connect 36 0 35 0;
-#X connect 38 0 41 0;
-#X connect 39 0 43 0;
-#X connect 40 0 44 0;
-#X connect 41 0 42 0;
-#X connect 42 0 12 0;
-#X connect 43 0 45 0;
-#X connect 44 0 46 0;
-#X connect 45 0 20 0;
-#X connect 46 0 28 0;
diff --git a/desiredata/doc/3.audio.examples/J05.triangle.pd b/desiredata/doc/3.audio.examples/J05.triangle.pd
deleted file mode 100644
index fda0ef05..00000000
--- a/desiredata/doc/3.audio.examples/J05.triangle.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 111 30 606 531 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-sum 882 float 0;
-#X coords 0 0.5 881 -0.5 200 130 1;
-#X restore 382 119 graph;
-#X text 381 257 ---- 0.02 seconds ----;
-#X text 350 505 updated for Pd version 0.39;
-#X obj 46 242 output~;
-#X obj 140 276 tabwrite~ \$0-sum;
-#X obj 130 107 / 100;
-#X floatatom 130 86 4 0 100 0 - - -;
-#X obj 206 108 / 100;
-#X floatatom 206 87 4 0 100 0 - - -;
-#X obj 151 228 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 151 250 metro 193;
-#X obj 19 95 phasor~;
-#X floatatom 19 74 5 0 0 0 - - -;
-#X text 11 51 frequency;
-#X text 126 50 SLOPES (percent);
-#X obj 108 137 *~;
-#X obj 19 129 *~ -1;
-#X obj 19 154 +~ 1;
-#X obj 184 156 *~;
-#X obj 108 189 min~;
-#X text 341 118 0.5;
-#X text 338 237 -0.5;
-#X text 30 4 Making waveforms with corners by specifying line segment
-slopes;
-#X text 136 67 up;
-#X text 209 68 down;
-#X text 29 317 Occasionally a second method for making corners is more
-convenient. Here we specify the slopes of the rising and falling segments
-(as always \, in units per cycle). We then make a triangle wave with
-a corner at (0 \, 0) and another one \, placed somewhere within the
-cycle. The slopes of the two lines determine the second point \, which
-will have an x value of t/(s+t) (if we let s denote the rising slope
-and t the falling one \, both as positive numbers). The y value is
-st/(s+t). If we wish instead to specify the corner location (x \, y)
-(with x in cycles \, 0<x<1) we set s = y/x and t = y/(1-x). The DC
-value is y/2.;
-#X connect 5 0 15 1;
-#X connect 6 0 5 0;
-#X connect 7 0 18 1;
-#X connect 8 0 7 0;
-#X connect 9 0 10 0;
-#X connect 10 0 4 0;
-#X connect 11 0 15 0;
-#X connect 11 0 16 0;
-#X connect 12 0 11 0;
-#X connect 15 0 19 0;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 1;
-#X connect 19 0 3 0;
-#X connect 19 0 4 0;
diff --git a/desiredata/doc/3.audio.examples/J06.enveloping.pd b/desiredata/doc/3.audio.examples/J06.enveloping.pd
deleted file mode 100644
index 52bae857..00000000
--- a/desiredata/doc/3.audio.examples/J06.enveloping.pd
+++ /dev/null
@@ -1,97 +0,0 @@
-#N canvas 4 -26 874 736 12;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-waveform 882 float 0;
-#X coords 0 1.02 881 -1.02 200 130 1;
-#X restore 639 379 graph;
-#X floatatom 47 25 0 0 20 0 - - -;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-env 22050 float 0;
-#X coords 0 1.02 22049 -1.02 200 130 1;
-#X restore 638 189 graph;
-#X obj 47 52 phasor~;
-#X text 126 2 ENVELOPE GENERATORS FROM LINE SEGMENTS;
-#X obj 19 514 output~;
-#X text 610 698 updated for Pd version 0.39;
-#X obj 46 98 *~;
-#X obj 11 165 -~;
-#X obj 10 214 *~;
-#X floatatom 68 75 3 0 100 0 - - -;
-#X obj 16 244 min~;
-#X floatatom 68 123 3 0 100 0 - - -;
-#X obj 68 146 / 100;
-#X floatatom 68 172 3 0 100 0 - - -;
-#X obj 60 386 *~ 2;
-#X obj 60 409 min~;
-#X obj 110 386 -~ 1;
-#X obj 60 358 phasor~ 200;
-#X obj 18 477 *~;
-#X obj 27 326 tabwrite~ \$0-env;
-#X obj 38 306 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 68 195 * -1;
-#X obj 69 457 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 61 478 tabwrite~ \$0-waveform;
-#X obj 111 409 *~ -3;
-#X obj 60 432 -~ 0.5;
-#X text 639 514 ----- 0.02 second ----;
-#X text 86 24 <-- frequency (Hz.);
-#X text 636 322 ----- 0.5 second ------;
-#X text 107 72 <-- slope of rise segment. Just multiply this by the
-phase to make the segment.;
-#X text 129 140 Subtract this to make the phasor cross zero at the
-desired point of the cycle.;
-#X text 107 173 <-- slope of decay segment.;
-#X text 112 190 multiply the phasor (with the zero crossing shifted
-as above) by the desired slope \, negating it so the segment points
-downward.;
-#X text 63 244 minimum of rise and decay segments (makes a triangle
-wave);
-#X obj 17 267 clip~ 0 1;
-#X text 109 266 clip the triangle wave to between 0 and 1 \, to make
-the sustain and silent regions.;
-#X text 108 121 <-- Duty cycle (end of decay segment as % of cycle.)
-;
-#X text 60 304 <-- click to graph envelope shape;
-#X text 91 456 <-- click to graph audio waveform;
-#X text 172 364 this makes a quick-and-dirty triangle wave;
-#X text 172 382 as described in the previous patch. It's;
-#X text 172 419 to listen to.;
-#X text 97 511 You can make a phasor-generated envelope generator using
-"min" and "clip" to combine line segments. Here a rise segment starts
-at phase 0 \, and a decay segment passes through zero at a controllable
-point (the "duty cycle" \, as a percentage of a cycle.) Each has a
-controllable slope (in units per cycle). The resulting triangle wave
-(the minimum of the rise and decay segments) is limited to 1 \, thus
-making a flat "sustain" segment (unless the rise and decay segments
-meet at a value less than one \, in which case there is none). Limiting
-below by 0 prevents us from following the decay segment into negative
-values. Reasonable values to start with are 6 Hz. frequency \, rise
-and decay slope 10 \, duty cycle 75%.;
-#X text 173 401 used here so we'll have something;
-#X connect 1 0 3 0;
-#X connect 3 0 7 0;
-#X connect 3 0 8 0;
-#X connect 7 0 11 1;
-#X connect 8 0 9 0;
-#X connect 9 0 11 0;
-#X connect 10 0 7 1;
-#X connect 11 0 35 0;
-#X connect 12 0 13 0;
-#X connect 13 0 8 1;
-#X connect 14 0 22 0;
-#X connect 15 0 16 0;
-#X connect 16 0 26 0;
-#X connect 17 0 25 0;
-#X connect 18 0 15 0;
-#X connect 18 0 17 0;
-#X connect 19 0 5 0;
-#X connect 19 0 5 1;
-#X connect 21 0 20 0;
-#X connect 22 0 9 1;
-#X connect 23 0 24 0;
-#X connect 25 0 16 1;
-#X connect 26 0 24 0;
-#X connect 26 0 19 1;
-#X connect 35 0 19 0;
-#X connect 35 0 20 0;
diff --git a/desiredata/doc/3.audio.examples/J07.oversampling.pd b/desiredata/doc/3.audio.examples/J07.oversampling.pd
deleted file mode 100644
index 0b124c03..00000000
--- a/desiredata/doc/3.audio.examples/J07.oversampling.pd
+++ /dev/null
@@ -1,61 +0,0 @@
-#N canvas 343 48 578 498 12;
-#N canvas 158 4 728 420 16x 0;
-#X obj 21 151 *~ 0.064;
-#X obj 21 174 rpole~ 0.93538;
-#X obj 21 197 *~ 0.00431;
-#X obj 21 220 cpole~ 0.96559 0.05592;
-#X obj 21 246 cpole~ 0.96559 -0.05592;
-#X obj 21 269 *~ 0.125;
-#X obj 21 292 rzero~ -1;
-#X obj 21 315 rzero~ -1;
-#X obj 21 338 rzero~ -1;
-#X obj 21 66 phasor~;
-#X obj 204 29 block~ 1024 1 16;
-#X obj 21 31 inlet;
-#X obj 21 372 outlet~;
-#X text 170 151 These objects make a 3-pole \, 3-zero Butterwirth low-pass
-filter with cutoff at 15kHz (assuming 44100 sample rate.) The filter
-was designed using the "buttercoef3" abstraction introduced in patch
-H13.butterworth.pd in this series.;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 12 0;
-#X connect 9 0 0 0;
-#X connect 11 0 9 0;
-#X restore 23 148 pd 16x;
-#X floatatom 23 111 7 0 0 0 - - -;
-#X obj 109 149 phasor~;
-#X obj 22 194 output~;
-#X obj 108 194 output~;
-#X obj 23 83 mtof;
-#X floatatom 23 59 3 -24 135 0 - - -;
-#X text 131 18 UPSAMPLING TO CONTROL FOLDOVER;
-#X text 56 57 <-- pitch;
-#X text 126 250 not;
-#X text 22 265 sampled;
-#X text 26 249 16x up-;
-#X text 20 293 The "pd 16x" subpatch at left contains a phasor~ object
-\, but is locally upsampled by a factor of sixteen. Without upsampling
-\, partials as low as 24 Khz. fold back over into the audible range.
-With upsampling \, the first audibly folding over partial is at almost
-700 Hz \, 29 times higher. The relevant partials will be 29 times \,
-or almost 30 dB \, quieter when upsampled.;
-#X text 21 403 A third-order Butterworth filter is used inside the
-"pd 16x" subpatch - without that \, the internal signal would fold
-over as it gets downsampled at the outlet~ object.;
-#X text 324 464 Updated for Pd version 0.39;
-#X connect 0 0 3 0;
-#X connect 0 0 3 1;
-#X connect 1 0 0 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 2 0 4 1;
-#X connect 5 0 1 0;
-#X connect 6 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/J08.classicsynth.pd b/desiredata/doc/3.audio.examples/J08.classicsynth.pd
deleted file mode 100644
index ae9ce754..00000000
--- a/desiredata/doc/3.audio.examples/J08.classicsynth.pd
+++ /dev/null
@@ -1,135 +0,0 @@
-#N canvas 203 294 592 528 12;
-#N canvas 158 4 781 654 16x 0;
-#X obj 69 345 *~ 0.064;
-#X obj 69 368 rpole~ 0.93538;
-#X obj 69 391 *~ 0.00431;
-#X obj 69 414 cpole~ 0.96559 0.05592;
-#X obj 69 440 cpole~ 0.96559 -0.05592;
-#X obj 69 463 *~ 0.125;
-#X obj 69 486 rzero~ -1;
-#X obj 69 509 rzero~ -1;
-#X obj 69 532 rzero~ -1;
-#X obj 63 97 phasor~;
-#X obj 69 566 outlet~;
-#X obj 86 151 wrap~;
-#X obj 86 127 -~;
-#X obj 86 175 *~;
-#X obj 63 204 +~;
-#X obj 271 156 phasor~;
-#X obj 294 210 wrap~;
-#X obj 294 186 -~;
-#X obj 294 234 *~;
-#X obj 271 263 +~;
-#X obj 64 271 +~;
-#X obj 457 31 block~ 1024 1 16;
-#X obj 62 29 inlet;
-#X obj 250 34 r osc-params;
-#X obj 250 57 unpack 0 0 0 0 0 0;
-#X obj 272 100 *~;
-#X obj 272 128 +~;
-#X msg 341 338 \; osc-params 0.5 -0.5 0.5 0.5 1 0.5;
-#X obj 341 312 loadbang;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 10 0;
-#X connect 9 0 12 0;
-#X connect 9 0 14 0;
-#X connect 11 0 13 0;
-#X connect 12 0 11 0;
-#X connect 13 0 14 1;
-#X connect 14 0 20 0;
-#X connect 15 0 17 0;
-#X connect 15 0 19 0;
-#X connect 16 0 18 0;
-#X connect 17 0 16 0;
-#X connect 18 0 19 1;
-#X connect 19 0 20 1;
-#X connect 20 0 0 0;
-#X connect 22 0 9 0;
-#X connect 22 0 25 0;
-#X connect 23 0 24 0;
-#X connect 24 0 12 1;
-#X connect 24 1 13 1;
-#X connect 24 2 17 1;
-#X connect 24 3 18 1;
-#X connect 24 4 25 1;
-#X connect 24 5 26 1;
-#X connect 25 0 26 0;
-#X connect 26 0 15 0;
-#X connect 28 0 27 0;
-#X restore 41 160 pd 16x;
-#X obj 44 255 output~;
-#X text 333 501 Updated for Pd version 0.39;
-#X text 151 7 THE CLASSIC SUBTRACTIVE SYNTH SOUND;
-#X obj 152 132 *~;
-#X obj 151 102 +~ 0.2;
-#X obj 151 156 *~ 2000;
-#X obj 108 221 *~;
-#X obj 43 218 *~;
-#X obj 41 122 mtof;
-#X obj 41 13 r \$0-note;
-#X obj 41 62 makenote 1;
-#X obj 404 150 + 20;
-#X obj 404 102 metro 300;
-#X obj 404 80 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 404 201 s \$0-note;
-#X obj 404 125 random 70;
-#X obj 42 192 vcf~ 3;
-#X floatatom 228 112 3 0 0 0 - - -;
-#X floatatom 228 157 7 0 0 0 - - -;
-#X obj 228 133 mtof;
-#X obj 108 196 adsr 2 30 200 50 500;
-#X obj 151 77 adsr 1 10 200 50 500;
-#X obj 404 175 pack 0 200;
-#X obj 41 92 poly 1 1;
-#X obj 41 36 unpack;
-#X floatatom 480 80 3 0 0 0 - - -;
-#X floatatom 489 154 3 0 0 0 - - -;
-#X text 31 323 Now that we can make reasonably high-quality classic
-waveforms using upsampling \, we combine an upsampled oscillator with
-a "vcf" filter and ADSR generators to control the filter resonant frequency
-and the amplitude to make the classic subtractive synthesis sound.
-Send an "s \$0-note" object a (pitch \, duration) pair to play a note.
-(Classic VC synths did not have velocity sensitive keyboards!) You
-can add controls to change the parameters of the ADSR envelopes and/or
-the vcf~ "Q" parameter. THe oscillators' waveforms and tuning relationship
-is controlled by other parameters set within the "pd 16x" window.;
-#X connect 0 0 17 0;
-#X connect 4 0 6 0;
-#X connect 5 0 4 0;
-#X connect 5 0 4 1;
-#X connect 6 0 17 1;
-#X connect 7 0 8 1;
-#X connect 8 0 1 0;
-#X connect 8 0 1 1;
-#X connect 9 0 0 0;
-#X connect 10 0 25 0;
-#X connect 11 0 24 0;
-#X connect 11 1 24 1;
-#X connect 12 0 23 0;
-#X connect 13 0 16 0;
-#X connect 14 0 13 0;
-#X connect 16 0 12 0;
-#X connect 17 0 8 0;
-#X connect 18 0 20 0;
-#X connect 19 0 6 1;
-#X connect 20 0 19 0;
-#X connect 21 0 7 0;
-#X connect 21 0 7 1;
-#X connect 22 0 5 0;
-#X connect 23 0 15 0;
-#X connect 24 1 9 0;
-#X connect 24 2 22 0;
-#X connect 24 2 21 0;
-#X connect 25 0 11 0;
-#X connect 25 1 11 2;
-#X connect 26 0 13 1;
-#X connect 27 0 23 1;
diff --git a/desiredata/doc/3.audio.examples/J09.bandlimited.pd b/desiredata/doc/3.audio.examples/J09.bandlimited.pd
deleted file mode 100644
index 38247473..00000000
--- a/desiredata/doc/3.audio.examples/J09.bandlimited.pd
+++ /dev/null
@@ -1,216 +0,0 @@
-#N canvas 33 1 608 881 12;
-#X floatatom 201 163 0 0 0 0 - - -;
-#X obj 53 387 -~;
-#X obj 201 237 /~;
-#X obj 208 214 clip~ 1 999999;
-#X obj 76 195 phasor~;
-#X obj 88 257 *~;
-#X obj 88 281 clip~ -0.5 0.5;
-#X floatatom 76 147 0 0 0 0 - - -;
-#X floatatom 201 115 0 0 0 0 - - -;
-#X obj 201 139 mtof;
-#X text 208 45 band limit (MIDI units);
-#X obj 201 67 loadbang;
-#X obj 88 305 *~ 1000;
-#X obj 88 329 +~ 501;
-#X obj 76 219 -~ 0.5;
-#X text 219 397 graph output;
-#X obj 76 101 samplerate~;
-#X obj 76 125 / 512;
-#N canvas 49 311 450 300 fft 0;
-#X obj 31 41 inlet~;
-#X obj 35 85 rfft~;
-#X obj 34 118 *~;
-#X obj 78 118 *~;
-#X obj 34 161 sqrt~;
-#X obj 37 201 expr~ 50 + 20 * log($v1)/log(10);
-#X obj 38 235 max~ 0;
-#X obj 254 28 block~ 512;
-#X obj 33 263 tabsend~ \$0-fft;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 0 2 1;
-#X connect 1 1 3 0;
-#X connect 1 1 3 1;
-#X connect 2 0 4 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 8 0;
-#X restore 126 423 pd fft;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-fft 256 float 3;
-#A 0 8.35364 88.2226 82.204 78.6857 76.1917 74.2598 72.6836 71.3537
-70.204 69.1927 68.2904 67.4768 66.7365 66.0581 65.4323 64.8524 64.3122
-63.8074 63.3336 62.8881 62.4675 62.0699 61.693 61.3352 60.9946 60.6703
-60.3606 60.0649 59.7817 59.5107 59.2506 59.0011 58.7612 58.5307 58.3086
-58.0948 57.8885 57.6896 57.4975 57.3119 57.1324 56.9588 56.7906 56.6279
-56.4699 56.3169 56.1681 56.0239 55.8835 55.7472 55.6144 55.4853 55.3594
-55.2368 55.1171 55.0005 54.8864 54.7751 54.6661 54.5596 54.4552 54.3531
-54.2528 54.1546 54.0581 53.9635 53.8703 53.7788 53.6886 53.5999 53.5124
-53.4262 53.341 53.257 53.1738 53.0917 53.0103 52.9299 52.85 52.771
-52.6924 52.6146 52.537 52.4601 52.3835 52.3073 52.2313 52.1556 52.0801
-52.0048 51.9295 51.8545 51.7793 51.7042 51.629 51.5538 51.4784 51.4029
-51.3271 51.2513 51.175 51.0985 51.0216 50.9444 50.8667 50.7887 50.7102
-50.6312 50.5516 50.4716 50.3909 50.3097 50.2277 50.1452 50.0619 49.978
-49.8932 49.8078 49.7214 49.6344 49.5464 49.4576 49.3678 49.2771 49.1854
-49.0929 48.9992 48.9046 48.8089 48.7121 48.6142 48.5152 48.415 48.3137
-48.2111 48.1073 48.0022 47.8959 47.7882 47.6792 47.5688 47.4571 47.3439
-47.2293 47.1131 46.9956 46.8764 46.7558 46.6334 46.5096 46.384 46.2568
-46.1278 45.9972 45.8646 45.7304 45.5942 45.4563 45.3163 45.1746 45.0306
-44.8849 44.7369 44.5869 44.4347 44.2804 44.1238 43.965 43.8038 43.6404
-43.4744 43.3062 43.1352 42.9619 42.7858 42.6072 42.4257 42.2417 42.0546
-41.8649 41.6719 41.4762 41.2771 41.0752 40.8697 40.6613 40.4491 40.2338
-40.0147 39.7922 39.5657 39.3357 39.1016 38.8637 38.6214 38.3752 38.1243
-37.8694 37.6096 37.3454 37.076 36.8021 36.5227 36.2385 35.9484 35.6533
-35.3519 35.0451 34.7318 34.4127 34.0866 33.7542 33.4145 33.0681 32.7138
-32.3524 31.9824 31.6049 31.2182 30.8233 30.4185 30.0049 29.5806 29.1467
-28.7012 28.2454 27.7769 27.297 26.8034 26.2972 25.7759 25.2407 24.6887
-24.1212 23.5348 22.9309 22.3055 21.6598 20.9892 20.2947 19.5705 18.8168
-18.0266 17.1987 16.3231 15.3963 14.404 13.3362 12.1694 10.8809 9.42496
-7.74107 5.71798 3.15337 0 0;
-#X coords 0 100 256 0 200 140 1;
-#X restore 375 275 graph;
-#X floatatom 375 425 5 0 0 0 - - -;
-#X floatatom 375 471 5 0 0 0 - - -;
-#X obj 52 443 output~;
-#X obj 88 353 tabread4~ \$0-transition;
-#X obj 201 186 * 0.4;
-#X msg 201 91 136.766;
-#X obj 375 447 tabread \$0-fft;
-#X obj 195 400 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 195 422 tabwrite~ \$0-out;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-out 882 float 0;
-#X coords 0 1 882 -1 200 140 1;
-#X restore 378 108 graph;
-#X text 75 15 BAND-LIMITED SAWTOOTH GENERATOR USING A TRANSITION TABLE
-;
-#X obj 76 60 loadbang;
-#X obj 76 83 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 39 657 Now any time we wish to make a discontinuity in the
-output signal \, we make it look exactly like the bandlimited square
-wave looks. We do this by reading through the table we recorded \,
-carefully adding a "digital" \, non-band-limited \, sawtooth to "array1"
-so that the discontinuities in the two cancel out and what you have
-left is the transition in the table.;
-#N canvas 151 52 754 678 transition-table 0;
-#X obj 428 534 cos~;
-#X obj 262 534 cos~;
-#X obj 214 529 cos~;
-#X msg 158 598 bang;
-#X text 242 138 back the phase up one sample;
-#X msg 295 444 -0.0005;
-#X obj 262 508 *~ 3;
-#X obj 427 510 *~ 5;
-#X obj 262 559 *~ 0.33333;
-#X obj 427 560 *~ -0.2;
-#X obj 214 557 *~ -1;
-#X msg 159 425 bang;
-#X obj 213 468 phasor~ 22.05;
-#X obj 214 590 *~ 0.57692;
-#X obj 204 259 cos~;
-#X obj 156 254 cos~;
-#X msg 100 323 bang;
-#X msg 13 195 \; pd dsp 1;
-#X msg 237 169 -0.0005;
-#X obj 204 233 *~ 3;
-#X obj 204 284 *~ 0.33333;
-#X obj 156 282 *~ -1;
-#X msg 100 150 bang;
-#X obj 155 193 phasor~ 22.05;
-#X obj 156 315 *~ 0.75;
-#X obj 214 617 tabwrite~ \$0-transition;
-#X obj 156 342 tabwrite~ \$0-transition;
-#X obj 100 128 loadbang;
-#X text 292 216 twice the table length;
-#X text 280 193 period is 2000 samples \,;
-#X text 80 369 This one is used - first and third harmonics only.;
-#X text 28 644 This alternate one puts in harmonics 1 \, 3 \, and 5
-;
-#N canvas 0 0 450 300 graph1 0;
-#X array \$0-transition 1002 float 0;
-#X coords 0 1 1002 -1 200 140 1;
-#X restore 539 32 graph;
-#X text 537 179 ----- 1002 samples ----;
-#X text 24 27 This network puts a half cycle of a band-limited square
-wave into the table "array1.";
-#X text 22 64 Logically the half-cycle is in samples 1 through 1000
-\; samples 0 and 1001 are provided so that the 4-point interpolation
-will work everywhere.;
-#X connect 0 0 9 0;
-#X connect 1 0 8 0;
-#X connect 2 0 10 0;
-#X connect 3 0 25 0;
-#X connect 5 0 12 1;
-#X connect 6 0 1 0;
-#X connect 7 0 0 0;
-#X connect 8 0 13 0;
-#X connect 9 0 13 0;
-#X connect 10 0 13 0;
-#X connect 11 0 5 0;
-#X connect 11 0 3 0;
-#X connect 12 0 2 0;
-#X connect 12 0 6 0;
-#X connect 12 0 7 0;
-#X connect 13 0 25 0;
-#X connect 14 0 20 0;
-#X connect 15 0 21 0;
-#X connect 16 0 26 0;
-#X connect 18 0 23 1;
-#X connect 19 0 14 0;
-#X connect 20 0 24 0;
-#X connect 21 0 24 0;
-#X connect 22 0 18 0;
-#X connect 22 0 17 0;
-#X connect 22 0 16 0;
-#X connect 23 0 15 0;
-#X connect 23 0 19 0;
-#X connect 24 0 26 0;
-#X connect 27 0 22 0;
-#X restore 182 465 pd transition-table;
-#X text 351 853 updated for Pd version 0.39;
-#X text 37 515 A more sophisticated way to control foldover in sawtooth
-waves is to replace the once-a-cycle jump with a bandlimited transition.
-To get a band-limited transition we synthesize a band-limited square
-wave and harvest the transition from the middle of the top half to
-the middle of the bottom half. Here we use a square wave at SR/10 \,
-so that only partials 1 and 3 fit below the Nyquist. The transition
-should take 1/2 period \, or 5 samples. The table is calculated and
-stored in the "transition-table" subpatch.;
-#X text 40 767 The "band limit" controls how fast the transition table
-is read. If it is set to the Nyquist frequency the table is read at
-0.4 times the Nyquist \, or five samples a cycle. Lowering the band
-limit cuts off the partials of the generated sawtooth wave at frequencies
-below the Nyquist.;
-#X connect 0 0 24 0;
-#X connect 1 0 18 0;
-#X connect 1 0 22 0;
-#X connect 1 0 22 1;
-#X connect 1 0 28 0;
-#X connect 2 0 5 1;
-#X connect 3 0 2 1;
-#X connect 4 0 14 0;
-#X connect 5 0 6 0;
-#X connect 6 0 12 0;
-#X connect 7 0 4 0;
-#X connect 7 0 3 0;
-#X connect 8 0 9 0;
-#X connect 9 0 0 0;
-#X connect 11 0 25 0;
-#X connect 12 0 13 0;
-#X connect 13 0 23 0;
-#X connect 14 0 5 0;
-#X connect 14 0 1 1;
-#X connect 16 0 17 0;
-#X connect 17 0 7 0;
-#X connect 20 0 26 0;
-#X connect 23 0 1 0;
-#X connect 24 0 2 0;
-#X connect 25 0 8 0;
-#X connect 26 0 21 0;
-#X connect 27 0 28 0;
-#X connect 31 0 32 0;
-#X connect 32 0 16 0;
diff --git a/desiredata/doc/3.audio.examples/adsr.pd b/desiredata/doc/3.audio.examples/adsr.pd
deleted file mode 100644
index 351f354c..00000000
--- a/desiredata/doc/3.audio.examples/adsr.pd
+++ /dev/null
@@ -1,96 +0,0 @@
-#N canvas 371 139 752 655 12;
-#X obj 105 111 inlet;
-#X obj 435 151 inlet;
-#X text 101 86 trigger;
-#X obj 105 139 sel 0;
-#X obj 244 155 t b;
-#X obj 166 264 f \$1;
-#X obj 166 289 pack 0 \$2;
-#X obj 492 151 inlet;
-#X obj 438 281 del \$2;
-#X obj 458 429 line~;
-#X obj 462 304 f \$4;
-#X obj 501 379 pack 0 \$3;
-#X obj 554 151 inlet;
-#X obj 616 151 inlet;
-#X obj 689 150 inlet;
-#X msg 105 170 stop;
-#X obj 612 306 pack 0 \$5;
-#X text 435 129 level;
-#X obj 501 355 * \$1;
-#X obj 458 454 outlet~;
-#X text 102 378 and pack with;
-#X text 103 398 attack time;
-#X text 31 126 if zero;
-#X text 32 143 release;
-#X text 12 160 and cancel;
-#X text 43 177 decay;
-#X text 284 272 on attack \, set a;
-#X text 278 305 recall sustain value;
-#X text 315 378 pack with decay time;
-#X text 605 332 on release ramp;
-#X text 606 349 back to zero;
-#X obj 462 329 * 0.01;
-#X text 47 567 Objects such as "f" and "pack" can be given dollar sign
-arguments to initialize their contents from adsr's creation arguments.
-Inlets are supplied to change them on the fly.;
-#X text 13 2 ADSR ENVELOPE;
-#X text 488 129 attack;
-#X text 555 128 decay;
-#X text 609 129 sustain;
-#X text 686 129 release;
-#X text 202 71 attack;
-#X obj 204 92 moses;
-#X obj 194 122 t b b;
-#X msg 128 290 0;
-#X text 20 273 optionally;
-#X text 10 291 bash to zero;
-#X text 25 246 ATTACK:;
-#X text 49 477 When you send this patch a positive trigger it schedules
-a line~ to do an attack and decay \, and if zero \, it starts the release
-ramp.;
-#X text 495 629 Updated for Pd version 0.37;
-#X text 255 89 test for negative trigger;
-#X text 253 113 if so \, zero;
-#X text 254 129 the output;
-#X text 278 165 in any case;
-#X text 303 355 multiply by peak level;
-#X text 280 286 delay for sustain;
-#X text 276 328 convert from percent;
-#X text 155 340 ... then;
-#X text 103 359 recall peak level;
-#X text 439 113 peak;
-#X text 281 149 ... do this;
-#X text 47 529 Negative triggers cause the output to jump to zero and
-then attack (instead of attacking from the current location).;
-#X text 208 1 Arguments: level \, attack time \, decay time \, sustain
-level \, release time. A \, D \, and R are in msec and S is in percent.
-This patch is used as an abstraction in various examples.;
-#X connect 0 0 3 0;
-#X connect 1 0 5 1;
-#X connect 1 0 18 1;
-#X connect 3 0 15 0;
-#X connect 3 0 16 0;
-#X connect 3 1 39 0;
-#X connect 4 0 5 0;
-#X connect 4 0 8 0;
-#X connect 5 0 6 0;
-#X connect 6 0 9 0;
-#X connect 7 0 6 1;
-#X connect 7 0 8 1;
-#X connect 8 0 10 0;
-#X connect 9 0 19 0;
-#X connect 10 0 31 0;
-#X connect 11 0 9 0;
-#X connect 12 0 11 1;
-#X connect 13 0 10 1;
-#X connect 14 0 16 1;
-#X connect 15 0 8 0;
-#X connect 16 0 9 0;
-#X connect 18 0 11 0;
-#X connect 31 0 18 0;
-#X connect 39 0 40 0;
-#X connect 39 1 4 0;
-#X connect 40 0 4 0;
-#X connect 40 1 41 0;
-#X connect 41 0 9 0;
diff --git a/desiredata/doc/3.audio.examples/buttercoef3.pd b/desiredata/doc/3.audio.examples/buttercoef3.pd
deleted file mode 100644
index 6d15d6af..00000000
--- a/desiredata/doc/3.audio.examples/buttercoef3.pd
+++ /dev/null
@@ -1,80 +0,0 @@
-#N canvas 139 346 714 532 10;
-#X obj 63 51 inlet;
-#X floatatom 522 134 5 0 0 0 - - -;
-#X obj 101 153 t f f;
-#X msg 101 108 0.667;
-#X msg 82 283 0;
-#X obj 517 270 loadbang;
-#X obj 528 298 inlet;
-#X obj 517 322 f;
-#X obj 517 346 expr 1 - 2*$f1;
-#X obj 63 79 t b b b f;
-#X obj 205 228 * -1;
-#X obj 163 228 t f f;
-#X obj 63 391 f;
-#X obj 30 463 outlet;
-#X text 515 237 1 to normalize at Nyquist;
-#X text 59 30 characteristic frequency \, 0(DC) to 1(Nyquist);
-#X obj 283 470 outlet;
-#X obj 439 472 outlet;
-#X text 439 494 imag2a;
-#X text 283 492 real1;
-#X text 374 494 real2;
-#X obj 500 473 outlet;
-#X text 500 495 imag2b;
-#X obj 373 470 outlet;
-#X text 27 485 normalizer1;
-#X obj 173 470 outlet;
-#X text 170 492 normalizer2;
-#X obj 156 436 expr (($f2-$f1)*($f2-$f1)+$f3*$f3);
-#X obj 63 412 t f f;
-#X obj 101 176 expr (1 - $f2*$f2) / (1 + $f2*$f2 + 2*$f2*cos($f1))
-;
-#X obj 163 205 expr 2*$f2*sin($f1) / (1 + $f2*$f2 + 2*$f2*cos($f1))
-;
-#X obj 82 307 expr (1 - $f2*$f2) / (1 + $f2*$f2 + 2*$f2*cos($f1));
-#X obj 522 89 clip 0 1;
-#X obj 522 111 expr tan($f1*1.57);
-#X obj 101 131 expr $f1*1.5708;
-#X text 515 251 0 to normalize at DC;
-#X text 119 4 3-pole (or zero) Butterworth filter coefficient calculator
-;
-#X text 145 109 "theta" in units of pi/2;
-#X text 211 138 conjugate pair of pole/zero locations:;
-#X text 197 155 real part: (1-r*r)/(1+r*r-2rcos(th));
-#X text 245 226 imaginary part: 2rsin(th)/(...);
-#X text 270 282 real-valued one \, theta=0;
-#X obj 30 439 expr abs($f1-$f2);
-#X connect 0 0 9 0;
-#X connect 1 0 29 1;
-#X connect 1 0 30 1;
-#X connect 1 0 31 1;
-#X connect 2 0 29 0;
-#X connect 2 1 30 0;
-#X connect 3 0 34 0;
-#X connect 4 0 31 0;
-#X connect 5 0 7 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 12 1;
-#X connect 9 0 12 0;
-#X connect 9 1 4 0;
-#X connect 9 2 3 0;
-#X connect 9 3 32 0;
-#X connect 10 0 21 0;
-#X connect 11 0 17 0;
-#X connect 11 0 27 2;
-#X connect 11 1 10 0;
-#X connect 12 0 28 0;
-#X connect 27 0 25 0;
-#X connect 28 0 42 0;
-#X connect 28 1 27 0;
-#X connect 29 0 23 0;
-#X connect 29 0 27 1;
-#X connect 30 0 11 0;
-#X connect 31 0 16 0;
-#X connect 31 0 42 1;
-#X connect 32 0 33 0;
-#X connect 33 0 1 0;
-#X connect 34 0 2 0;
-#X connect 42 0 13 0;
diff --git a/desiredata/doc/3.audio.examples/butterworth3~.pd b/desiredata/doc/3.audio.examples/butterworth3~.pd
deleted file mode 100644
index 9b6511c6..00000000
--- a/desiredata/doc/3.audio.examples/butterworth3~.pd
+++ /dev/null
@@ -1,104 +0,0 @@
-#N canvas -21 471 656 598 10;
-#X obj 59 313 rpole~;
-#X obj 58 379 cpole~;
-#X obj 82 410 cpole~;
-#X obj 58 351 *~;
-#X msg 488 421 clear;
-#X obj 127 160 loadbang;
-#X obj 131 468 rzero~;
-#X obj 131 519 czero~;
-#X obj 156 545 czero~;
-#X obj 131 497 /~;
-#X obj 397 257 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-50;
-#X obj 59 289 *~;
-#X obj 131 446 /~;
-#X obj 171 207 samplerate~;
-#X obj 171 228 / 2;
-#X obj 127 250 / 22050;
-#X obj 127 208 f \$1;
-#X obj 127 228 t f b;
-#X obj 135 181 inlet;
-#X obj 397 164 loadbang;
-#X obj 405 185 inlet;
-#X obj 263 162 loadbang;
-#X obj 307 209 samplerate~;
-#X obj 307 230 / 2;
-#X obj 263 252 / 22050;
-#X obj 263 230 t f b;
-#X obj 271 183 inlet;
-#X obj 58 163 inlet~;
-#X obj 488 166 inlet;
-#X obj 155 568 outlet~;
-#X obj 263 210 f \$2;
-#X obj 397 212 f \$3;
-#X text 58 142 audio;
-#X text 133 140 lp freq;
-#X text 263 142 hp freq;
-#X text 395 146 hi/lo norm;
-#X text 490 143 clear;
-#X text 68 10 3-pole \, 3-zero butterworth lp/hp/shelving filter. Args:
-lp freq \, hp freq \, normalize-hi. Inlets: input signal \, lo freq
-\, hi freq \, hi norm \, reset.;
-#X text 70 75 For high-pass: set LP freq =0 and hi/lo to 1;
-#X text 70 56 For low-pass: set HP freq >= SR/2 and hi/lo to 0;
-#X text 69 92 Shelving: HP and LP specify shelving band. Gain difference
-is about HP/LP cubed (so HP=2LP should give about 18 dB \, for example.)
-;
-#X obj 127 272 buttercoef3;
-#X obj 198 429 buttercoef3;
-#X connect 0 0 3 0;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 12 0;
-#X connect 3 0 1 0;
-#X connect 4 0 0 0;
-#X connect 4 0 1 0;
-#X connect 4 0 2 0;
-#X connect 4 0 6 0;
-#X connect 4 0 7 0;
-#X connect 4 0 8 0;
-#X connect 5 0 16 0;
-#X connect 6 0 9 0;
-#X connect 7 0 8 0;
-#X connect 7 1 8 1;
-#X connect 8 0 29 0;
-#X connect 9 0 7 0;
-#X connect 10 0 41 1;
-#X connect 10 0 42 1;
-#X connect 11 0 0 0;
-#X connect 12 0 6 0;
-#X connect 13 0 14 0;
-#X connect 14 0 15 1;
-#X connect 15 0 41 0;
-#X connect 16 0 17 0;
-#X connect 17 0 15 0;
-#X connect 17 1 13 0;
-#X connect 18 0 16 0;
-#X connect 19 0 31 0;
-#X connect 20 0 31 0;
-#X connect 21 0 30 0;
-#X connect 22 0 23 0;
-#X connect 23 0 24 1;
-#X connect 24 0 42 0;
-#X connect 25 0 24 0;
-#X connect 25 1 22 0;
-#X connect 26 0 30 0;
-#X connect 27 0 11 0;
-#X connect 28 0 4 0;
-#X connect 30 0 25 0;
-#X connect 31 0 10 0;
-#X connect 41 0 11 1;
-#X connect 41 1 3 1;
-#X connect 41 2 0 1;
-#X connect 41 3 1 2;
-#X connect 41 3 2 2;
-#X connect 41 4 1 3;
-#X connect 41 5 2 3;
-#X connect 42 0 12 1;
-#X connect 42 1 9 1;
-#X connect 42 2 6 1;
-#X connect 42 3 7 2;
-#X connect 42 3 8 2;
-#X connect 42 4 7 3;
-#X connect 42 5 8 3;
diff --git a/desiredata/doc/3.audio.examples/filter-graph1.pd b/desiredata/doc/3.audio.examples/filter-graph1.pd
deleted file mode 100644
index 747c283e..00000000
--- a/desiredata/doc/3.audio.examples/filter-graph1.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas -4 364 603 514 10;
-#X obj 145 292 f;
-#X obj 175 292 + 1;
-#X obj 46 160 t b b;
-#X msg 161 268 0;
-#X obj 125 355 sel 1;
-#X msg 48 218 0;
-#X msg 46 191 1;
-#X floatatom 452 292 7 0 0 0 - - -;
-#X obj 442 333 phasor~;
-#X obj 415 384 cos~;
-#X obj 450 384 cos~;
-#X obj 449 361 -~ 0.25;
-#X obj 46 134 inlet;
-#X obj 394 413 outlet~;
-#X obj 451 413 outlet~;
-#X obj 216 329 t f f;
-#X obj 217 391 outlet;
-#X msg 114 122 \; pd dsp 1;
-#X obj 125 332 >= \$1;
-#X msg 498 333 0;
-#X obj 145 237 metro;
-#X text 166 7 filter-graph1 -- generate sinusoids to test a filter
-;
-#X text 168 23 arg 1: number of steps - arg2: frequency range;
-#X text 40 53 This \, together with its companion filter-graph2 \,
-measure a filter's frequency and phase response. Here we count from
-0 to n-1 (where n is the table size) and output the index and a complex
-sinusoid at each frequency to test.;
-#X text 222 192 fudge to estimate settling time;
-#X obj 487 67 loadbang;
-#X obj 487 105 t b b;
-#X obj 519 151 max 1;
-#X obj 487 128 f \$2;
-#X obj 519 128 f \$1;
-#X obj 487 151 /;
-#X obj 442 265 *;
-#X obj 217 367 pack;
-#X floatatom 500 183 5 0 0 0 - - -;
-#X floatatom 248 237 5 0 0 0 - - -;
-#X obj 487 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 202 173 expr max(50 \, 40000/($f2*max($f1 \, 1)));
-#X connect 0 0 1 0;
-#X connect 0 0 15 0;
-#X connect 0 0 18 0;
-#X connect 1 0 0 1;
-#X connect 2 0 6 0;
-#X connect 2 1 3 0;
-#X connect 2 1 17 0;
-#X connect 3 0 0 1;
-#X connect 4 0 5 0;
-#X connect 5 0 20 0;
-#X connect 6 0 20 0;
-#X connect 8 0 11 0;
-#X connect 8 0 9 0;
-#X connect 9 0 13 0;
-#X connect 10 0 14 0;
-#X connect 11 0 10 0;
-#X connect 12 0 2 0;
-#X connect 15 0 32 0;
-#X connect 15 1 31 0;
-#X connect 15 1 36 0;
-#X connect 18 0 4 0;
-#X connect 19 0 8 1;
-#X connect 20 0 0 0;
-#X connect 20 0 19 0;
-#X connect 25 0 35 0;
-#X connect 26 0 28 0;
-#X connect 26 1 29 0;
-#X connect 27 0 30 1;
-#X connect 28 0 30 0;
-#X connect 29 0 27 0;
-#X connect 30 0 31 1;
-#X connect 30 0 33 0;
-#X connect 30 0 36 1;
-#X connect 31 0 7 0;
-#X connect 31 0 8 0;
-#X connect 31 0 32 1;
-#X connect 32 0 16 0;
-#X connect 35 0 26 0;
-#X connect 36 0 20 1;
-#X connect 36 0 34 0;
-#X connect 36 0 32 1;
diff --git a/desiredata/doc/3.audio.examples/filter-graph2.pd b/desiredata/doc/3.audio.examples/filter-graph2.pd
deleted file mode 100644
index a800957d..00000000
--- a/desiredata/doc/3.audio.examples/filter-graph2.pd
+++ /dev/null
@@ -1,121 +0,0 @@
-#N canvas 72 200 758 579 10;
-#X obj 266 177 *~;
-#X obj 317 175 *~;
-#X obj 182 276 t b b;
-#X obj 368 382 atan2;
-#X obj 267 302 snapshot~;
-#X obj 341 301 snapshot~;
-#X obj 450 259 butterworth3~ 80 100000 0;
-#X obj 64 135 inlet;
-#X obj 368 410 expr $f1 + 6.283 * ($f1 < -0.01);
-#X obj 71 417 t b f b;
-#X obj 448 457 symbol \$2;
-#X obj 519 457 symbol;
-#X obj 463 434 t b b;
-#X obj 447 504 t b;
-#X obj 474 505 t b;
-#X msg 447 525 0;
-#X msg 474 526 1;
-#X obj 447 481 sel symbol;
-#X floatatom 447 549 5 0 0 0 - - -;
-#X obj 195 493 f;
-#X obj 265 135 inlet~;
-#X obj 318 135 inlet~;
-#X obj 418 134 inlet~;
-#X obj 374 495 f;
-#X obj 368 442 spigot;
-#X obj 333 495 t f b;
-#X obj 154 493 t f b;
-#X obj 154 521 tabwrite \$1;
-#X obj 333 520 tabwrite \$2;
-#X obj 637 259 env~ 2048;
-#X obj 311 362 f;
-#X obj 267 324 t f f b;
-#X obj 311 382 dbtopow;
-#X obj 137 411 expr sqrt($f1*$f1 + $f2*$f2)/$f3;
-#X obj 63 245 sel 0;
-#X obj 87 270 - 1;
-#X obj 64 156 unpack;
-#X obj 117 157 expr 10000/$f1;
-#X text 257 102 test sinusoid:;
-#X text 272 116 cos;
-#X text 325 115 sin;
-#X text 397 97 output of filter;
-#X text 398 113 we're testing;
-#X text 31 103 index and time to next step;
-#X text 39 82 ----- from filter-graph1's 3 outlets: -------;
-#X text 117 193 low-pass filters;
-#X text 118 177 cutoff freq. for;
-#X obj 368 360 swap;
-#X obj 620 215 t b;
-#X text 583 184 clear filters;
-#X text 582 198 to start;
-#X text 578 452 cbeck if any table;
-#X text 577 467 is specified for phase;
-#X text 577 483 (don't compute it if;
-#X text 578 498 not.);
-#X text 31 3 filter-graph2: measures frequency and phase response of
-a filter \, which should be driven by a "filter-graph1" object. We
-need the three outputs of filter-graph1 \, plus the filter output.
-;
-#X text 438 55 1: table name for frequency response;
-#X text 518 39 creation arguments:;
-#X text 438 71 2 (optional): table name for phase response;
-#X obj 266 260 butterworth3~ 80 100000 0;
-#X connect 0 0 59 0;
-#X connect 1 0 6 0;
-#X connect 2 0 4 0;
-#X connect 2 1 5 0;
-#X connect 3 0 8 0;
-#X connect 4 0 31 0;
-#X connect 5 0 33 1;
-#X connect 5 0 47 1;
-#X connect 6 0 5 0;
-#X connect 7 0 36 0;
-#X connect 8 0 24 0;
-#X connect 9 0 2 0;
-#X connect 9 1 19 1;
-#X connect 9 1 23 1;
-#X connect 9 2 12 0;
-#X connect 10 0 17 0;
-#X connect 11 0 17 1;
-#X connect 12 0 10 0;
-#X connect 12 1 11 0;
-#X connect 13 0 15 0;
-#X connect 14 0 16 0;
-#X connect 15 0 18 0;
-#X connect 16 0 18 0;
-#X connect 17 0 13 0;
-#X connect 17 1 14 0;
-#X connect 18 0 24 1;
-#X connect 19 0 27 1;
-#X connect 20 0 0 0;
-#X connect 20 0 29 0;
-#X connect 21 0 1 0;
-#X connect 22 0 1 1;
-#X connect 22 0 0 1;
-#X connect 23 0 28 1;
-#X connect 24 0 25 0;
-#X connect 25 0 28 0;
-#X connect 25 1 23 0;
-#X connect 26 0 27 0;
-#X connect 26 1 19 0;
-#X connect 29 0 30 1;
-#X connect 30 0 32 0;
-#X connect 31 0 33 0;
-#X connect 31 1 47 0;
-#X connect 31 2 30 0;
-#X connect 32 0 33 2;
-#X connect 33 0 26 0;
-#X connect 34 1 35 0;
-#X connect 34 1 48 0;
-#X connect 35 0 9 0;
-#X connect 36 0 34 0;
-#X connect 36 1 37 0;
-#X connect 37 0 6 1;
-#X connect 37 0 59 1;
-#X connect 47 0 3 0;
-#X connect 47 1 3 1;
-#X connect 48 0 6 4;
-#X connect 48 0 59 4;
-#X connect 59 0 4 0;
diff --git a/desiredata/doc/3.audio.examples/osc-voice.pd b/desiredata/doc/3.audio.examples/osc-voice.pd
deleted file mode 100644
index 48bb81ea..00000000
--- a/desiredata/doc/3.audio.examples/osc-voice.pd
+++ /dev/null
@@ -1,89 +0,0 @@
-#N canvas 153 209 946 576 12;
-#X obj 163 390 line~;
-#X obj 401 438 line~;
-#X obj 163 511 *~;
-#X obj 383 229 r \$1;
-#X obj 363 316 dbtorms;
-#X obj 383 281 unpack;
-#X obj 383 255 t l b;
-#X obj 401 412 pack;
-#X obj 447 283 30;
-#X obj 163 286 unpack;
-#X obj 163 260 r \$2;
-#X obj 163 470 osc~;
-#X obj 163 312 mtof;
-#X obj 363 342 sqrt;
-#X obj 363 368 sqrt;
-#X obj 163 338 sqrt;
-#X obj 163 364 sqrt;
-#X obj 163 418 *~;
-#X obj 163 444 *~;
-#X obj 401 464 *~;
-#X obj 400 492 *~;
-#X obj 96 486 inlet~;
-#X obj 96 538 outlet~;
-#X obj 96 512 +~;
-#X floatatom 293 342 0 0 0;
-#X msg 294 316 set \$1;
-#X obj 294 368 s \$1;
-#X floatatom 96 336 0 0 0;
-#X msg 96 310 set \$1;
-#X obj 96 362 s \$2;
-#X text 370 201 amplitude;
-#X text 157 233 pitch;
-#X text 27 36 The amplitude and pitch are controlled by quartic envelopes
-as in the previous example. Here we introduce two new features. First
-\, there are number boxes to show the most recent targets for amplitude
-and frequency \, which you can also use to change the values. Also
-\, if amplitude gets a message without an explicit time value \, we
-supply a default of "30".;
-#X text 27 149 Other small differences from the previous patch: pitch
-and amplitude are now in MIDI and dB \, and there's a summing bus arrangement
-(the inlet~ \, +~ \, and outlet~).;
-#X text 15 295 see or;
-#X text 16 315 change;
-#X text 16 336 pitch-->;
-#X text 233 325 and;
-#X text 233 342 amp-->;
-#X text 488 283 "30" is short for "float 30." This is;
-#X text 495 302 more CPU efficient than a message.;
-#X text 451 403 The "pack" always gets a 30 \, but if you send a pair
-of numbers to amplitude \, the second one overrides the 30;
-#X text 439 254 first bang the "30" \, then pass the list on;
-#X text 62 7 This abstraction is used in patch 68.qlist.pd.;
-#X connect 0 0 17 0;
-#X connect 0 0 17 1;
-#X connect 1 0 19 0;
-#X connect 1 0 19 1;
-#X connect 2 0 23 1;
-#X connect 3 0 6 0;
-#X connect 4 0 13 0;
-#X connect 5 0 4 0;
-#X connect 5 0 25 0;
-#X connect 5 1 7 1;
-#X connect 6 0 5 0;
-#X connect 6 1 8 0;
-#X connect 7 0 1 0;
-#X connect 8 0 7 1;
-#X connect 9 0 12 0;
-#X connect 9 0 28 0;
-#X connect 9 1 0 1;
-#X connect 10 0 9 0;
-#X connect 11 0 2 0;
-#X connect 12 0 15 0;
-#X connect 13 0 14 0;
-#X connect 14 0 7 0;
-#X connect 15 0 16 0;
-#X connect 16 0 0 0;
-#X connect 17 0 18 0;
-#X connect 17 0 18 1;
-#X connect 18 0 11 0;
-#X connect 19 0 20 0;
-#X connect 19 0 20 1;
-#X connect 20 0 2 1;
-#X connect 21 0 23 0;
-#X connect 23 0 22 0;
-#X connect 24 0 26 0;
-#X connect 25 0 24 0;
-#X connect 27 0 29 0;
-#X connect 28 0 27 0;
diff --git a/desiredata/doc/3.audio.examples/output~.pd b/desiredata/doc/3.audio.examples/output~.pd
deleted file mode 100644
index 81ad3b7f..00000000
--- a/desiredata/doc/3.audio.examples/output~.pd
+++ /dev/null
@@ -1,66 +0,0 @@
-#N canvas 0 0 615 578 12;
-#X obj 353 490 t b;
-#X obj 353 437 f;
-#X obj 353 515 f;
-#X msg 467 514 0;
-#X obj 353 467 moses 1;
-#X obj 467 486 t b f;
-#X obj 433 447 moses 1;
-#X obj 29 97 dbtorms;
-#X obj 85 170 inlet~;
-#X msg 299 310 \; pd dsp 1;
-#X obj 29 170 line~;
-#X obj 64 242 *~;
-#X obj 64 272 dac~;
-#X obj 29 127 pack 0 50;
-#X text 121 146 audio in;
-#X text 138 464 test if less than 1 -->;
-#X text 104 491 if true convert to bang -->;
-#X text 100 96 <-- convert from dB to linear units;
-#X floatatom 323 219 3 0 100 0 dB - -;
-#X obj 350 240 bng 15 250 50 0 empty empty mute -38 7 0 12 -262144
--1 -1;
-#X text 118 126 <-- make a ramp to avoid clicks or zipper noise;
-#X obj 148 170 inlet~;
-#X obj 154 241 *~;
-#X text 373 378 MUTE logic:;
-#X obj 323 174 r \$0-master-lvl;
-#X obj 353 541 s \$0-master-lvl;
-#X obj 323 279 s \$0-master-out;
-#X obj 29 71 r \$0-master-out;
-#X obj 433 418 r \$0-master-out;
-#X text 60 10 Level control abstraction \, used in many of the Pd example
-patches. The "level" and "mute" controls show up on the parent \, calling
-patch.;
-#X text 66 517 previous nonzero master-lvl -->;
-#X text 138 421 recall previous;
-#X text 138 439 value of master-lvl -->;
-#X text 39 319 automatically start DSP -->;
-#X obj 85 192 hip~ 3;
-#X obj 147 192 hip~ 3;
-#X connect 0 0 2 0;
-#X connect 1 0 4 0;
-#X connect 2 0 25 0;
-#X connect 3 0 25 0;
-#X connect 4 0 0 0;
-#X connect 4 1 5 0;
-#X connect 5 0 3 0;
-#X connect 6 1 2 1;
-#X connect 7 0 13 0;
-#X connect 8 0 34 0;
-#X connect 10 0 22 0;
-#X connect 10 0 11 0;
-#X connect 11 0 12 0;
-#X connect 13 0 10 0;
-#X connect 18 0 9 0;
-#X connect 18 0 26 0;
-#X connect 19 0 1 0;
-#X connect 21 0 35 0;
-#X connect 22 0 12 1;
-#X connect 24 0 18 0;
-#X connect 27 0 7 0;
-#X connect 28 0 1 1;
-#X connect 28 0 6 0;
-#X connect 34 0 11 1;
-#X connect 35 0 22 1;
-#X coords 0 0 1 1 65 55 1 300 200;
diff --git a/desiredata/doc/3.audio.examples/partial.pd b/desiredata/doc/3.audio.examples/partial.pd
deleted file mode 100644
index 03bb925d..00000000
--- a/desiredata/doc/3.audio.examples/partial.pd
+++ /dev/null
@@ -1,76 +0,0 @@
-#N canvas 18 78 880 448 12;
-#X obj 465 234 sqrt;
-#X text 17 88 trigger;
-#X text 33 175 relative frequency;
-#X obj 17 341 *~;
-#X obj 227 322 line~;
-#X obj 227 349 *~;
-#X obj 227 376 *~;
-#X msg 227 285 0 \$1;
-#X obj 465 261 sqrt;
-#X obj 17 113 r trigger;
-#X obj 465 180 float \$1;
-#X obj 249 235 r duration;
-#X obj 39 226 r frequency;
-#X obj 227 158 t b b;
-#X text 303 209 relative duration;
-#X obj 17 368 throw~ sum;
-#X obj 17 140 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 465 288 \$1 5;
-#X obj 227 185 del 5;
-#X obj 465 207 * 0.1;
-#X obj 17 279 + \$4;
-#X text 550 178 get amplitude from argument 1;
-#X text 524 206 normalize to 0.1;
-#X text 516 233 take fourth root (square root twice);
-#X text 544 250 because we'll raise line~ output to;
-#X text 543 267 fourth power;
-#X text 515 292 attack time 5 msec;
-#X text 280 184 decay after 5 msec;
-#X text 469 157 attack;
-#X obj 226 211 float \$2;
-#X obj 227 258 *;
-#X text 264 258 actual duration;
-#X obj 17 200 float \$3;
-#X obj 17 252 *;
-#X obj 17 314 osc~;
-#X text 49 252 times global freq.;
-#X text 60 279 plus detune;
-#X text 271 285 decay msg to line~;
-#X text 266 350 raise to fourth power for;
-#X text 267 368 natural-sounding decay shape;
-#X text 20 396 add to global;
-#X text 19 415 summing bus;
-#X text 21 45 This patch is used as an abstraction in the additive
-synthesis example \, D06.additive.pd;
-#X text 25 4 partial -- sinusoidal partial for additive synthesis;
-#X text 631 12 arguments:;
-#X text 605 37 1 amplitude \; 2 relative duration \; 3 relative frequency
-\; 4 detune;
-#X connect 0 0 8 0;
-#X connect 3 0 15 0;
-#X connect 4 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 6 0;
-#X connect 5 0 6 1;
-#X connect 6 0 3 1;
-#X connect 7 0 4 0;
-#X connect 8 0 17 0;
-#X connect 9 0 16 0;
-#X connect 10 0 19 0;
-#X connect 11 0 30 1;
-#X connect 12 0 33 1;
-#X connect 13 0 18 0;
-#X connect 13 1 10 0;
-#X connect 16 0 13 0;
-#X connect 16 0 32 0;
-#X connect 17 0 4 0;
-#X connect 18 0 29 0;
-#X connect 19 0 0 0;
-#X connect 20 0 34 0;
-#X connect 29 0 30 0;
-#X connect 30 0 7 0;
-#X connect 32 0 33 0;
-#X connect 33 0 20 0;
-#X connect 34 0 3 0;
diff --git a/desiredata/doc/3.audio.examples/qlist-sampler.txt b/desiredata/doc/3.audio.examples/qlist-sampler.txt
deleted file mode 100644
index 0c412767..00000000
--- a/desiredata/doc/3.audio.examples/qlist-sampler.txt
+++ /dev/null
@@ -1,147 +0,0 @@
-note 60 90 50 2 50 30 30;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-15 note 60;
-100 note 59 90 100;
-comment measure 1;
-100 note 60 90 150 2 0;
- note 36 90 200 2 50;
-200 note 48 90 250 2 0;
- note 40 90 200 2 50;
- note 43 90 200 2 50;
-200 note 48 90 250 2 0;
- note 31 90 200 2 50;
-200 note 55 90 100;
- note 41 90 200;
- note 43 90 200;
-100 note 53 90 100;
-100 note 52 90 100;
- note 36 90 200;
-100 note 55 90 100;
-100 note 60 90 100;
- note 40 90 200;
- note 43 90 200;
-100 note 59 90 100;
-100 note 60 90 100;
- note 25 90 200;
-100 note 64 90 100;
-100 note 62 90 100;
- note 39 90 200;
- note 43 90 200;
-100 note 61 90 100;
-
-comment measure 2;
-100 note 62 90 150 2 0;
- note 26 90 200;
-200 note 50 90 250 2 50;
- note 41 90 200;
- note 42 90 200;
-200 note 50 90 250;
- note 29 90 200;
-200 note 50 90 100;
- note 30 90 200;
- note 44 90 200;
- note 48 90 200;
-100 note 48 90 100;
-100 note 47 90 100;
- note 31 90 200;
- note 43 90 200;
- note 47 90 200;
-100 note 50 90 100;
-100 note 55 90 100;
- note 34 90 200;
- note 42 90 200;
- note 46 90 200;
-100 note 54 90 100;
-100 note 55 90 200;
- note 35 90 200;
- note 42 90 200;
- note 45 90 200;
-200 note 57 90 100;
- note 41 90 200;
- note 47 90 200;
-100 note 59 90 100;
-comment measure 3;
-100 note 60 90 100;
- note 24 90 200;
- note 40 90 200;
- note 48 90 200 2 0;
-
-100 note 59 90 100 2 50;
-100 note 57 90 100;
-100 note 55 90 100;
-
-100 note 57 90 100;
- note 28 90 200;
- note 38 90 200;
- note 46 90 200;
-100 note 55 90 100;
-100 note 53 90 100;
-100 note 52 90 100;
-
-100 note 53 90 100;
- note 29 90 100;
- note 36 90 100;
- note 45 90 100;
-100 note 52 90 100;
-100 note 50 90 100;
- note 29 90 300;
- note 36 90 300;
- note 45 90 300;
-100 note 48 90 100;
-
-100 note 50 90 100;
-100 note 48 90 100;
-100 note 47 90 100;
- note 29 90 300;
- note 38 90 300;
- note 44 90 300 2 0;
-100 note 45 90 100 2 50;
-
-comment measure 4;
-100 note 43 90 100;
- note 31 90 200;
- note 38 90 200;
-100 note 48 90 100;
-100 note 47 90 100;
- note 31 90 300;
- note 40 90 300;
- note 43 90 300 2 0;
-100 note 50 90 100 2 50;
-
-100 note 48 90 100;
-100 note 52 90 100;
-100 note 50 90 100;
- note 31 90 300 2 0;
- note 41 90 300;
- note 43 90 300;
-100 note 53 90 100 2 50;
-
-100 note 52 90 200;
- note 31 90 300 2 50;
-200 note 48 90 200;
- note 19 90 200 2 50;
- note 29 90 200 2 50;
- note 36 90 200 2 50;
-
-200 note 48 90 100 2 50 0 4000;
- note 12 90 300;
- note 28 90 300;
- note 36 90 300;
-
-
-
diff --git a/desiredata/doc/3.audio.examples/qlist.txt b/desiredata/doc/3.audio.examples/qlist.txt
deleted file mode 100644
index 719dc89b..00000000
--- a/desiredata/doc/3.audio.examples/qlist.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-# This is a qlist for patch number 68, which demonstrates an oscillator
-bank.
-;
-# comments start with a "#" which must be followed by a space. The comment
-is terminated by a semicolon like this: ;
-
-# first an arpeggio. You can group them in lines as you please. The 100s at
-the beginnings of lines are delay times. ;
-
-pit1 89; amp1 80;
-100 pit2 72; amp2 80;
-100 pit3 57; amp3 90;
-100 pit4 84; amp4 78;
-100 pit5 74; amp5 74;
-100 pit6 73; amp6 74;
-100 pit7 100; amp7 78;
-100 pit8 37; amp8 95;
-
-# after a 600-msec rest, gliss four of the oscillators to new frequencies. ;
-600 pit1 70 1000;
-300 pit8 40 1000;
-300 pit4 89 1000;
-300 pit7 95 1000;
-
-# a second later, turn them off with decay time 1500 ;
-1000
-amp1 0 1500;
-amp2 0 1500;
-amp3 0 1500;
-amp4 0 1500;
-amp5 0 1500;
-amp6 0 1500;
-amp7 0 1500;
-amp8 0 1500;
-
-# and re-attack them.. ;
-1000
-amp1 85 5;
-amp2 85 5;
-amp3 85 5;
-amp4 90 5;
-amp5 85 5;
-amp6 85 5;
-amp7 90 5;
-amp8 85 5;
-
-# this time, try varying decay times. ;
-10
-amp1 0 2000;
-amp2 0 2000;
-amp3 0 2000;
-amp4 0 500;
-amp5 0 1000;
-amp6 0 1000;
-amp7 0 500;
-amp8 0 4000;
diff --git a/desiredata/doc/3.audio.examples/qlist2.txt b/desiredata/doc/3.audio.examples/qlist2.txt
deleted file mode 100644
index 5c272646..00000000
--- a/desiredata/doc/3.audio.examples/qlist2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-note 36;
-1000 note 34;
-1000 note 33;
-1000 note 31;
-1000 qlist bang;
diff --git a/desiredata/doc/3.audio.examples/reverb-echo.pd b/desiredata/doc/3.audio.examples/reverb-echo.pd
deleted file mode 100644
index 81c96131..00000000
--- a/desiredata/doc/3.audio.examples/reverb-echo.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 118 224 600 492 12;
-#X obj 66 95 inlet~;
-#X obj 130 96 inlet~;
-#X obj 68 216 outlet~;
-#X obj 141 215 outlet~;
-#X obj 67 143 +~;
-#X obj 140 141 -~;
-#X obj 141 165 delwrite~ \$1 \$2;
-#X obj 140 191 delread~ \$1 \$2;
-#X text 48 14 This appears as an abstraction in patch G08.reverb.pd
-;
-#X text 27 267 This network makes two copies of the (stereo) input
-\, one in phase \, the other out of phase and delayed. The total frequency
-response is flat. The total signal power out is exactly twice that
-of the input \, no matter what freqiencies the input contains. This
-is used to increase echo density \, by stacking several of these units
-with different delay times. Each stage doubles the echo density.;
-#X connect 0 0 4 0;
-#X connect 0 0 5 0;
-#X connect 1 0 4 1;
-#X connect 1 0 5 1;
-#X connect 4 0 2 0;
-#X connect 5 0 6 0;
-#X connect 7 0 3 0;
diff --git a/desiredata/doc/3.audio.examples/sampvoice.pd b/desiredata/doc/3.audio.examples/sampvoice.pd
deleted file mode 100644
index b277d345..00000000
--- a/desiredata/doc/3.audio.examples/sampvoice.pd
+++ /dev/null
@@ -1,114 +0,0 @@
-#N canvas 231 67 705 628 12;
-#X obj 278 476 *~;
-#X obj 177 604 outlet~;
-#X obj 104 396 makefilename sample%d;
-#X msg 104 419 set \$1;
-#X obj 104 442 tabread4~ sample1;
-#X obj 360 419 dbtorms;
-#X obj 381 395 unpack;
-#X obj 360 442 sqrt;
-#X obj 360 465 sqrt;
-#X obj 338 559 *~;
-#X obj 406 513 *~;
-#X obj 406 536 *~;
-#X msg 201 42 bang;
-#X obj 201 72 delay 5;
-#X obj 289 95 unpack 0 0 0 0 0 0 0;
-#X obj 426 184 f;
-#X obj 367 161 f;
-#X obj 309 161 f;
-#X obj 278 161 f;
-#X obj 247 161 f;
-#X obj 156 159 f;
-#X obj 156 182 mtof;
-#X obj 156 205 / 261.62;
-#X obj 156 228 * 4.41e+08;
-#X obj 156 251 +;
-#X obj 399 161 delay;
-#X obj 247 303 pack 0 0 0 0 0;
-#X obj 201 95 t b b b;
-#X obj 309 207 + 1;
-#X obj 309 184 * 44.1;
-#X msg 55 338 0 5;
-#X msg 289 337 1 5;
-#X msg 325 337 0 \, \$1 \$2;
-#X msg 128 338 \$3 \, \$4 1e+07;
-#X msg 253 337 \$5;
-#X msg 405 337 0 \$1;
-#X obj 289 72 inlet;
-#X obj 177 553 inlet~;
-#X obj 177 579 +~;
-#X text 44 15 This is an abstraction used by the polyphonic sampler.
-;
-#X text 505 67 ARGUMENTS FOR NOTES:;
-#X text 505 89 pitch in halftones;
-#X text 505 113 amplitude (dB);
-#X text 505 161 sample number;
-#X text 505 137 duration (msec);
-#X text 505 185 start location (msec);
-#X text 505 209 rise time (msec);
-#X text 505 233 decay time (msec);
-#X obj 45 396 vline~;
-#X obj 301 396 vline~;
-#X obj 406 490 vline~;
-#X connect 0 0 9 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 6 1 50 1;
-#X connect 7 0 8 0;
-#X connect 8 0 50 0;
-#X connect 9 0 38 1;
-#X connect 10 0 11 0;
-#X connect 10 0 11 1;
-#X connect 11 0 9 1;
-#X connect 12 0 13 0;
-#X connect 12 0 30 0;
-#X connect 13 0 27 0;
-#X connect 14 0 20 1;
-#X connect 14 0 12 0;
-#X connect 14 1 19 1;
-#X connect 14 2 25 1;
-#X connect 14 3 18 1;
-#X connect 14 4 17 1;
-#X connect 14 5 16 1;
-#X connect 14 6 15 1;
-#X connect 15 0 35 0;
-#X connect 16 0 26 1;
-#X connect 17 0 29 0;
-#X connect 18 0 26 4;
-#X connect 19 0 26 0;
-#X connect 20 0 21 0;
-#X connect 21 0 22 0;
-#X connect 22 0 23 0;
-#X connect 23 0 24 0;
-#X connect 24 0 26 3;
-#X connect 25 0 15 0;
-#X connect 26 0 31 0;
-#X connect 26 0 32 0;
-#X connect 26 0 33 0;
-#X connect 26 0 34 0;
-#X connect 27 0 19 0;
-#X connect 27 1 20 0;
-#X connect 27 2 16 0;
-#X connect 27 2 17 0;
-#X connect 27 2 18 0;
-#X connect 27 2 25 0;
-#X connect 28 0 26 2;
-#X connect 28 0 24 1;
-#X connect 29 0 28 0;
-#X connect 30 0 49 0;
-#X connect 31 0 49 0;
-#X connect 32 0 6 0;
-#X connect 33 0 48 0;
-#X connect 34 0 2 0;
-#X connect 35 0 6 0;
-#X connect 36 0 14 0;
-#X connect 37 0 38 0;
-#X connect 38 0 1 0;
-#X connect 48 0 4 0;
-#X connect 49 0 0 1;
-#X connect 50 0 10 0;
-#X connect 50 0 10 1;
diff --git a/desiredata/doc/3.audio.examples/sampvoice2.pd b/desiredata/doc/3.audio.examples/sampvoice2.pd
deleted file mode 100644
index 4350ea48..00000000
--- a/desiredata/doc/3.audio.examples/sampvoice2.pd
+++ /dev/null
@@ -1,122 +0,0 @@
-#N canvas 231 67 770 791 12;
-#X obj 284 616 *~;
-#X obj 183 744 outlet~;
-#X obj 110 536 makefilename sample%d;
-#X msg 110 559 set \$1;
-#X obj 110 582 tabread4~ sample1;
-#X obj 367 559 dbtorms;
-#X obj 367 536 unpack;
-#X obj 367 582 sqrt;
-#X obj 367 605 sqrt;
-#X obj 367 628 line~;
-#X obj 344 699 *~;
-#X obj 367 651 *~;
-#X obj 367 674 *~;
-#X msg 122 184 bang;
-#X obj 130 207 delay 5;
-#X obj 437 275 f;
-#X obj 399 276 f;
-#X obj 322 276 f;
-#X obj 283 276 f;
-#X obj 252 276 f;
-#X obj 159 263 f;
-#X obj 159 286 mtof;
-#X obj 159 309 / 261.62;
-#X obj 159 332 * 4.41e+08;
-#X obj 159 363 +;
-#X obj 253 443 pack 0 0 0 0 0;
-#X obj 130 230 t b b b;
-#X obj 322 322 + 1;
-#X obj 322 299 * 44.1;
-#X msg 85 478 0 5;
-#X msg 295 477 1 5;
-#X msg 331 477 0 \, \$1 \$2;
-#X msg 134 478 \$3 \, \$4 1e+07;
-#X msg 259 477 \$5;
-#X msg 411 477 0 \$1;
-#X obj 230 119 inlet;
-#X obj 183 693 inlet~;
-#X obj 183 719 +~;
-#X text 498 181 pitch in halftones;
-#X text 499 158 amplitude (dB);
-#X text 499 206 sample number;
-#X text 499 230 start location (msec);
-#X text 499 254 rise time (msec);
-#X text 499 278 decay time (msec);
-#X text 498 133 ARGUMENTS FOR NOTE ON:;
-#X text 460 317 (Zero amplitude means note off \;;
-#X text 481 338 other parameters are ignored.);
-#X obj 230 144 route 0;
-#X obj 288 175 unpack 0 0 0 0 0 0;
-#X text 35 5 This is an abstraction used by the polyphonic sampler
-\, version 2 \, which takes separate note-on and note-off messages.
-Unlike "sampvoice" (the first version) \, there is no "duration" field
-\, and the amplitude and pitch fields are reversed to make it easy
-to separate note-on from note-off messages (which have amplitude zero.)
-;
-#X text 299 153 note-on;
-#X text 155 153 note-off;
-#X obj 50 536 vline~;
-#X obj 307 536 vline~;
-#X msg 230 166 bang;
-#X connect 0 0 10 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 6 1 9 1;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 9 0 11 0;
-#X connect 9 0 11 1;
-#X connect 10 0 37 1;
-#X connect 11 0 12 0;
-#X connect 11 0 12 1;
-#X connect 12 0 10 1;
-#X connect 13 0 14 0;
-#X connect 13 0 29 0;
-#X connect 14 0 26 0;
-#X connect 15 0 34 0;
-#X connect 16 0 25 1;
-#X connect 17 0 28 0;
-#X connect 18 0 25 4;
-#X connect 19 0 25 0;
-#X connect 20 0 21 0;
-#X connect 21 0 22 0;
-#X connect 22 0 23 0;
-#X connect 23 0 24 0;
-#X connect 24 0 25 3;
-#X connect 25 0 30 0;
-#X connect 25 0 31 0;
-#X connect 25 0 32 0;
-#X connect 25 0 33 0;
-#X connect 26 0 19 0;
-#X connect 26 1 20 0;
-#X connect 26 2 16 0;
-#X connect 26 2 17 0;
-#X connect 26 2 18 0;
-#X connect 27 0 25 2;
-#X connect 27 0 24 1;
-#X connect 28 0 27 0;
-#X connect 29 0 53 0;
-#X connect 30 0 53 0;
-#X connect 31 0 6 0;
-#X connect 32 0 52 0;
-#X connect 33 0 2 0;
-#X connect 34 0 6 0;
-#X connect 35 0 47 0;
-#X connect 36 0 37 0;
-#X connect 37 0 1 0;
-#X connect 47 0 54 0;
-#X connect 47 1 48 0;
-#X connect 48 0 13 0;
-#X connect 48 0 19 1;
-#X connect 48 1 20 1;
-#X connect 48 2 18 1;
-#X connect 48 3 17 1;
-#X connect 48 4 16 1;
-#X connect 48 5 15 1;
-#X connect 52 0 4 0;
-#X connect 53 0 0 1;
-#X connect 54 0 15 0;
diff --git a/desiredata/doc/3.audio.examples/shepvoice.pd b/desiredata/doc/3.audio.examples/shepvoice.pd
deleted file mode 100644
index 9e05c48b..00000000
--- a/desiredata/doc/3.audio.examples/shepvoice.pd
+++ /dev/null
@@ -1,47 +0,0 @@
-#N canvas 471 146 638 403 12;
-#X obj 156 262 pack 0 50;
-#X obj 98 216 pack 0 50;
-#X obj 29 298 inlet~;
-#X obj 98 242 line~;
-#X obj 156 288 line~;
-#X obj 99 306 *~;
-#X obj 29 324 +~;
-#X obj 29 350 outlet~;
-#X obj 285 165 r pitch+;
-#X obj 185 139 r interval+;
-#X obj 98 164 expr $f1 * $f2 + $f3;
-#X obj 481 137 r dropoff+;
-#X obj 297 63 expr ($i1% 10000) * 0.0002 - 1;
-#X obj 297 11 r phase;
-#X obj 297 37 + \$1;
-#X obj 376 165 expr exp(-$f1*$f1*$f2);
-#X obj 98 190 mtof;
-#X obj 98 268 osc~;
-#X text 64 8 our local phase =;
-#X text 61 26 overall phase + our;
-#X text 60 45 relative phase;
-#X text 57 64 (modulo 10000);
-#X text 59 81 normalized from -1 to 1;
-#X text 349 36 \$1: relative phase;
-#X text 9 110 pitch is center pitch;
-#X text 16 125 + interval*phase;
-#X text 373 194 amplitude is Gaussian \, with;
-#X text 321 215 peak width controlled by "dropoff";
-#X connect 0 0 4 0;
-#X connect 1 0 3 0;
-#X connect 2 0 6 0;
-#X connect 3 0 17 0;
-#X connect 4 0 5 1;
-#X connect 5 0 6 1;
-#X connect 6 0 7 0;
-#X connect 8 0 10 2;
-#X connect 9 0 10 1;
-#X connect 10 0 16 0;
-#X connect 11 0 15 1;
-#X connect 12 0 10 0;
-#X connect 12 0 15 0;
-#X connect 13 0 14 0;
-#X connect 14 0 12 0;
-#X connect 15 0 0 0;
-#X connect 16 0 1 0;
-#X connect 17 0 5 0;
diff --git a/desiredata/doc/3.audio.examples/sinevoice.pd b/desiredata/doc/3.audio.examples/sinevoice.pd
deleted file mode 100644
index d8d1848b..00000000
--- a/desiredata/doc/3.audio.examples/sinevoice.pd
+++ /dev/null
@@ -1,67 +0,0 @@
-#N canvas 621 65 547 441 12;
-#X obj 120 299 line~;
-#X obj 120 323 *~;
-#X obj 120 346 *~;
-#X obj 125 232 sqrt;
-#X obj 96 39 inlet;
-#X obj 125 253 sqrt;
-#X obj 51 360 inlet~;
-#X obj 51 413 outlet~;
-#X obj 120 370 *~;
-#X obj 206 351 osc~;
-#X obj 51 388 +~;
-#X obj 261 210 pack;
-#X text 142 40 inlet: volume \, pitch \, duration;
-#X obj 96 88 unpack 0 0 0;
-#X text 12 2 arguments: \$1 = relative amplitude \, \$2 = pitch multiplier
-\, \$3 = detune \, \$4 = time multiplier;
-#X obj 157 117 dbtorms;
-#X obj 157 139 * \$1;
-#X obj 125 211 f;
-#X obj 206 216 f;
-#X obj 228 117 mtof;
-#X obj 228 142 * \$2;
-#X obj 228 164 + \$3;
-#X obj 273 118 * \$4;
-#X msg 8 148 0 5;
-#X msg 99 118 bang;
-#X obj 42 148 del 5;
-#X obj 106 65 outlet;
-#X msg 99 161 0;
-#X obj 125 272 pack 0 5;
-#X obj 99 139 del 10;
-#X connect 0 0 1 0;
-#X connect 0 0 1 1;
-#X connect 1 0 2 0;
-#X connect 1 0 2 1;
-#X connect 2 0 8 0;
-#X connect 3 0 5 0;
-#X connect 4 0 13 0;
-#X connect 4 0 26 0;
-#X connect 5 0 28 0;
-#X connect 6 0 10 0;
-#X connect 8 0 10 1;
-#X connect 9 0 8 1;
-#X connect 10 0 7 0;
-#X connect 11 0 0 0;
-#X connect 13 0 15 0;
-#X connect 13 0 23 0;
-#X connect 13 0 24 0;
-#X connect 13 1 19 0;
-#X connect 13 2 22 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 1;
-#X connect 17 0 3 0;
-#X connect 18 0 9 0;
-#X connect 19 0 20 0;
-#X connect 20 0 21 0;
-#X connect 21 0 18 1;
-#X connect 22 0 11 1;
-#X connect 23 0 0 0;
-#X connect 24 0 25 0;
-#X connect 24 0 29 0;
-#X connect 25 0 17 0;
-#X connect 25 0 18 0;
-#X connect 27 0 11 0;
-#X connect 28 0 0 0;
-#X connect 29 0 27 0;
diff --git a/desiredata/doc/3.audio.examples/spectrum-partial.pd b/desiredata/doc/3.audio.examples/spectrum-partial.pd
deleted file mode 100644
index 3c242504..00000000
--- a/desiredata/doc/3.audio.examples/spectrum-partial.pd
+++ /dev/null
@@ -1,57 +0,0 @@
-#N canvas 211 116 826 530 12;
-#X obj 28 412 osc~;
-#X obj 94 197 r poll-table;
-#X obj 129 337 + 50;
-#X obj 129 363 dbtorms;
-#X msg 78 339 0;
-#X obj 78 392 pack 0 30;
-#X obj 78 422 line~;
-#X obj 28 471 throw~ sum-bus;
-#X obj 28 442 *~;
-#X obj 28 87 r pitch;
-#X obj 28 114 mtof;
-#X obj 78 230 f;
-#X obj 28 142 * \$1;
-#X obj 37 168 ftom;
-#X obj 79 256 -;
-#X obj 121 255 r whammybar;
-#X text 28 9 This abstraction is used by the spectrum drawing example
-\, number 16...;
-#X text 61 46 \$1 is the partial number.;
-#X text 79 114 pitch to frequency;
-#X text 78 141 then get the frequency of this specific partial;
-#X text 81 167 ... and then convert back to pitch.;
-#X text 115 230 ... at which time we get the pitch back...;
-#X text 233 249 ... and transpose \, effectively shifting the spectral
-envelope left and right.;
-#X text 203 341 The vertical scale is dB from 1 to 50 \, but we want
-true zero when the table value is 0 or less.;
-#X text 172 398 Amplitude control via pack \, line~ \, and *~.;
-#X text 171 444 Finally \, add to a summing bus via throw~. All the
-throw~s in the instantiations of this abstraction will add into the
-one "catch~ sum-bus" at the output.;
-#X text 216 195 the calling patch bangs "poll-table" every 30 msec.
-;
-#X obj 78 284 tabread4 spectrum-tab;
-#X text 285 288 Finally get the strength from the table. Note that
-we use the control object \, tabread4 \, not tabread4~.;
-#X obj 78 311 moses 1;
-#X connect 0 0 8 0;
-#X connect 1 0 11 0;
-#X connect 2 0 3 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 8 1;
-#X connect 8 0 7 0;
-#X connect 9 0 10 0;
-#X connect 10 0 12 0;
-#X connect 11 0 14 0;
-#X connect 12 0 13 0;
-#X connect 12 0 0 0;
-#X connect 13 0 11 1;
-#X connect 14 0 27 0;
-#X connect 15 0 14 1;
-#X connect 27 0 29 0;
-#X connect 29 0 4 0;
-#X connect 29 1 2 0;