diff options
Diffstat (limited to 'pd/doc/3.audio.examples/30.sampler.scratch.pd')
-rw-r--r-- | pd/doc/3.audio.examples/30.sampler.scratch.pd | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/pd/doc/3.audio.examples/30.sampler.scratch.pd b/pd/doc/3.audio.examples/30.sampler.scratch.pd new file mode 100644 index 00000000..d4602050 --- /dev/null +++ b/pd/doc/3.audio.examples/30.sampler.scratch.pd @@ -0,0 +1,175 @@ +#N canvas 33 19 1046 749 12; +#X msg 354 13 \; pd dsp 1; +#X msg 437 13 \; pd dsp 0; +#X text 379 51 ON; +#X text 457 51 OFF; +#X graph graph1 0 -1.02 44100 1.02 757 142 957 12; +#X array sample-table 44103 float 0; +#X pop; +#X floatatom 71 466 0 0 0; +#N canvas 159 26 495 266 output 0; +#X obj 406 192 t b; +#X obj 406 132 f; +#X obj 406 72 inlet; +#X text 413 35 mute; +#X obj 406 222 f; +#X msg 510 214 0; +#X msg 406 102 bang; +#X obj 406 162 moses 1; +#X obj 510 184 t b f; +#X obj 476 140 moses 1; +#X obj 100 178 dbtorms; +#X obj 476 110 r master-lvl; +#X obj 100 50 r master-lvl; +#X obj 406 252 s master-lvl; +#X obj 26 217 inlet~; +#X obj 239 49 inlet; +#X text 239 22 level; +#X obj 239 120 s master-lvl; +#X msg 115 78 set \$1; +#X obj 115 107 outlet; +#X msg 257 77 \; pd dsp 1; +#X obj 100 233 line~; +#X obj 26 254 *~; +#X obj 26 289 dac~; +#X obj 100 205 pack 0 50; +#X text 24 190 audio; +#X text 112 132 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 36 499 pd output; +#X msg 106 466 MUTE; +#X text 145 465 <-- output amplitude; +#X obj 36 427 hip~ 5; +#X obj 55 368 tabread4~ sample-table; +#X floatatom 55 60 0 0 0; +#X text 102 59 <-- frequency (Hz.); +#X floatatom 109 152 0 0 0; +#X obj 109 181 * 441; +#X obj 55 152 *~ 0; +#X obj 55 181 +~ 1; +#X obj 55 89 phasor~ 0; +#X msg 172 246 bang; +#X text 156 151 <-- chunk size (100ths of a second); +#X obj 598 451 adc~ 1; +#X obj 598 480 hip~ 5; +#X obj 598 540 tabwrite~ sample-table; +#X msg 616 508 bang; +#X text 654 507 <-- click here to record your own sample; +#X text 64 17 ENVELOPING YOUR LOOPING SAMPLER; +#X graph graph2 0 0 44100 44100 760 345 960 215; +#X array table-index 44100 float 0; +#X pop; +#X obj 172 308 tabwrite~ table-index; +#X obj 36 398 *~; +#N canvas 160 476 591 415 envelope 0; +#X obj 97 82 -~ 0.5; +#X obj 100 331 clip~ -0.5 0.5; +#X obj 100 305 *~ 1; +#X obj 152 272 moses 1; +#X msg 115 272 1; +#X obj 100 361 cos~; +#X obj 97 112 wrap~; +#X obj 97 146 -~ 0.5; +#X obj 100 419 *~ -0.5; +#X obj 100 389 -~ 1; +#X floatatom 152 234 0 0 0; +#X text 162 78 subtracting 0.5 and wrapping produces a sawtooth wave +180 degrees out of phase from the original.; +#X text 156 139 as before we subtract 1/2 again to center the sawtooth +from -1/2 to 1/2.; +#X text 212 234 <-- sharpness (at least 1); +#X obj 97 50 inlet~; +#X obj 100 455 outlet~; +#X obj 152 208 inlet; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 1 2 1; +#X connect 4 0 2 1; +#X connect 5 0 9 0; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 0 15 0; +#X connect 9 0 8 0; +#X connect 10 0 3 0; +#X connect 14 0 0 0; +#X connect 16 0 10 0; +#X restore 36 122 pd envelope; +#X floatatom 146 124 0 0 0; +#X text 187 123 <-- envelope sharpness; +#X obj 74 304 line~; +#X obj 74 246 * 441; +#X floatatom 174 215 0 0 0; +#X obj 74 275 pack 0 100; +#X text 216 214 <-- read point in 100ths of a second; +#X obj 55 338 +~; +#X text 31 529 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 220 246 <-- graph table index; +#X text 34 627 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 text 763 356 ----- 1 second ------; +#X obj 602 583 loadbang; +#X text 711 597 v-- re-read the original sample; +#X msg 602 670 \; graph2 ylabel 48000 0 44100; +#X msg 662 619 read ../sound/voice.wav sample-table; +#X obj 662 643 soundfiler; +#X text 766 719 updated for Pd version 0.33; +#X text 755 151 ---- 44103 samples ---; +#X connect 5 0 6 1; +#X connect 6 0 5 0; +#X connect 7 0 6 2; +#X connect 9 0 6 0; +#X connect 10 0 28 1; +#X connect 11 0 17 0; +#X connect 13 0 14 0; +#X connect 14 0 15 1; +#X connect 15 0 16 0; +#X connect 16 0 37 0; +#X connect 17 0 15 0; +#X connect 17 0 29 0; +#X connect 18 0 27 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 23 0 22 0; +#X connect 28 0 9 0; +#X connect 29 0 28 0; +#X connect 30 0 29 1; +#X connect 32 0 37 1; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X connect 35 0 32 0; +#X connect 37 0 27 0; +#X connect 37 0 10 0; +#X connect 42 0 44 0; +#X connect 42 0 45 0; +#X connect 45 0 46 0; |