#N canvas 397 56 683 514 12;
#X obj 54 256 osc~;
#X floatatom 130 98 7 0 10000 1 frequency - - 0;
#X obj 55 435 outlet~;
#X floatatom 130 122 7 0 10000 1 bandwidth - - 0;
#X obj 139 247 max 1;
#X obj 139 273 t b f;
#X obj 55 338 *~;
#X obj 55 386 expr~ exp(-$v1*$v1);
#X obj 54 203 * 0.5;
#X obj 347 192 f;
#X obj 347 221 pack;
#X obj 287 99 savestate;
#X obj 287 269 unpack;
#X obj 130 302 / 1;
#X text 165 422 This is a waveshaping pulse generator using a Gaussian
table lookup \, as described in Theory and Technique of electronic
music \, chapter 6 The controls are "F" to set fundamental frequency
\, and "BW" to set bandwidth \, both in cycles per second., f 68;
#X text 342 258 Left outlet returns the list or lists to the abstraction
which can use them to restore its state when it is reloaded., f 40
;
#X text 367 90 right outlet gets bang when parent patch is saved. In
response we send [savestate] one or more lists that will be stored
as part of the parent patch, f 41;
#X text 391 214 Here we build and send a list of parameters we want
to save, f 30;
#X obj 139 160 s \$0-bw;
#X obj 382 191 r \$0-bw;
#X obj 326 321 s \$0-set-bw;
#X obj 287 353 s \$0-set-hz;
#X obj 172 46 r \$0-set-bw;
#X text 307 34 This is an abstraction used by the [savestate] help
file., f 29;
#X obj 130 15 r \$0-set-freq;
#X obj 54 147 s \$0-freq;
#X obj 54 176 r \$0-freq;
#X obj 365 165 r \$0-freq;
#X connect 0 0 6 0;
#X connect 1 0 25 0;
#X connect 3 0 13 0;
#X connect 3 0 18 0;
#X connect 4 0 5 0;
#X connect 5 0 13 0;
#X connect 5 1 13 1;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 0 0;
#X connect 8 0 4 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 1 9 0;
#X connect 12 0 21 0;
#X connect 12 1 20 0;
#X connect 13 0 6 1;
#X connect 19 0 10 1;
#X connect 22 0 3 0;
#X connect 24 0 1 0;
#X connect 26 0 8 0;
#X connect 27 0 9 1;
#X coords 0 -1 1 1 125 70 1 125 75;
