diff options
Diffstat (limited to 'desiredata/doc/3.audio.examples')
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; |