#N canvas 118 136 590 580 10;
#X obj -177 96 mask 1 50 100;
#X obj -177 -28 random 1000;
#X obj -177 -9 / 1000;
#X floatatom -222 19 5 0 0 0 random_mask_input - -;
#X floatatom -166 10 10 0.125 4 1 mapping_control - -;
#X obj -166 26 t b f;
#X floatatom -177 115 5 0 0 1 mask_output - -;
#X floatatom -120 26 10 0 0 1 output_low - -;
#X obj -120 42 t b f;
#X floatatom -70 42 10 0 0 1 output_high - -;
#X obj -70 58 t b f;
#X floatatom -222 39 5 0 1 0 explicit_mask_input - -;
#X obj -177 -64 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj -177 -47 metro 2000;
#X floatatom -112 -63 5 0 0 0 - - -;
#X text -310 179 mask - a mask takes a value between 0..1 \, and scales
the output to span over the requested range. the signal is also skewed
by the mapping_control \, by calculating the power of the signal. if
mapping_control is 1 \, then the signal will be linear. if mapping_control
is 0.5 \, the the square root of the signal will be output. if mapping_control
is 2 \, the square of the signal will be output. if the output_low
value is higher than the high value \, an inversion of the input will
be output.;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 5 0 0 0;
#X connect 5 1 0 1;
#X connect 7 0 8 0;
#X connect 8 0 0 0;
#X connect 8 1 0 2;
#X connect 9 0 10 0;
#X connect 10 0 0 0;
#X connect 10 1 0 3;
#X connect 11 0 0 0;
#X connect 12 0 13 0;
#X connect 13 0 1 0;
#X connect 14 0 13 1;
