#N canvas 407 40 832 553 12;
#X declare -stdpath ./;
#N canvas 0 0 450 300 (subpatch) 0;
#X array samphold 44100 float 0;
#X coords 0 1 44100 0 300 200 1;
#X restore 497 87 graph;
#X text 61 29 SAMPLE AND HOLD;
#X obj 267 310 phasor~ 5;
#X obj 144 285 phasor~ 7;
#X obj 144 310 samphold~;
#X floatatom 144 255 5 0 0 0 - - - 0;
#X floatatom 267 255 5 0 0 0 - - - 0;
#X obj 236 373 tabwrite~ samphold;
#X obj 144 355 *~ 48;
#X obj 144 380 +~ 36;
#X obj 144 438 osc~;
#X msg 327 280 0;
#X msg 310 173 32 96.33;
#X msg 144 173 5 7;
#X msg 69 173 1 5;
#X msg 103 173 2 11;
#X msg 179 173 3.7 8.8;
#X msg 244 173 3.4 8.9;
#X text 35 57 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 574 494 updated for Pd version 0.37;
#X obj 144 471 output~;
#X text 356 280 <= reset phase;
#X obj 651 24 declare -stdpath ./;
#X obj 144 225 unpack float float;
#X obj 236 344 bng 17 250 50 0 empty empty empty 17 7 0 10 #dfdfdf
#000000 #000000;
#X text 262 343 <-- graph output;
#X obj 144 410 mtof~;
#X connect 2 0 4 1;
#X connect 3 0 4 0;
#X connect 4 0 8 0;
#X connect 4 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 2 0;
#X connect 8 0 9 0;
#X connect 9 0 26 0;
#X connect 10 0 20 0;
#X connect 10 0 20 1;
#X connect 11 0 2 1;
#X connect 11 0 3 1;
#X connect 12 0 23 0;
#X connect 13 0 23 0;
#X connect 14 0 23 0;
#X connect 15 0 23 0;
#X connect 16 0 23 0;
#X connect 17 0 23 0;
#X connect 23 0 5 0;
#X connect 23 1 6 0;
#X connect 24 0 7 0;
#X connect 26 0 10 0;
