/usr/share/puredata/doc/3.audio.examples/D12.sampler.bis.pd is in puredata-doc 0.47.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | #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;
|