#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;