#N canvas 465 0 719 454 10;
#X obj 49 19 inlet;
#X obj 216 399 outlet;
#X obj 216 235 pdp_gain;
#X obj 216 286 pdp_gain;
#X obj 216 340 pdp_gain;
#X msg 361 217 chanmask 1;
#X msg 361 268 chanmask 2;
#X obj 361 178 loadbang;
#X obj 99 267 unpack 0 0 0;
#X msg 361 322 chanmask 4;
#X obj 216 146 pdp_grey2mask;
#X obj 5 198 unpack 0 0 0;
#X obj 267 207 r \$0-ch1;
#X obj 267 260 r \$0-ch2;
#X obj 267 312 r \$0-ch3;
#X obj 5 328 s \$0-ch1;
#X obj 127 328 s \$0-ch3;
#X obj 66 328 s \$0-ch2;
#X obj 5 229 pdp_ut_rgb2ycrcb;
#X msg 111 46 rgb 1 0.5 0;
#X msg 111 74 ycrcb 1 0.5 0;
#X text 230 46 set a red/green/blue gradient;
#X text 140 16 a gradient abstraction based on gain and grey2mask;
#X obj 49 118 route rgb ycrcb;
#X text 308 391 hint: replace pdp_gain by pdp_cheby to get nonlinear
gradients.;
#X text 229 76 set a luma/chroma_red/chroma_blue gradient;
#X text 322 146 this copies luma channel to chroma channels;
#X connect 0 0 23 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X connect 5 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 6 0 9 0;
#X connect 7 0 5 0;
#X connect 7 0 19 0;
#X connect 8 0 15 0;
#X connect 8 1 17 0;
#X connect 8 2 16 0;
#X connect 9 0 4 0;
#X connect 10 0 2 0;
#X connect 11 0 18 0;
#X connect 11 1 18 1;
#X connect 11 2 18 2;
#X connect 12 0 2 1;
#X connect 13 0 3 1;
#X connect 14 0 4 1;
#X connect 18 0 15 0;
#X connect 18 1 17 0;
#X connect 18 2 16 0;
#X connect 19 0 23 0;
#X connect 20 0 23 0;
#X connect 23 0 11 0;
#X connect 23 1 8 0;
#X connect 23 2 10 0;
