// v3.5 // // wvwwvwvww // \ / // \______/ // // Joe's Filters // for Final Cut Pro // (C) 2002 Joe Maller // http://www.joesfilters.com // http://www.fxscriptreference.org filter "Joe's Simple Saturation"; group "Joe's Adjustments"; input RGBtarget, "Source:", RadioGroup, 1, "Gray (Average)", "Gray (Luma)", "Red Channel","Green Channel","Blue Channel"; input desat, "Saturation", Slider, 0, 0, 1000 ramp 93 label "%" detent 100; input title, "Joe's Filters", Label,""; input title1, "www.joesfilters.com", Label,""; code float rTGT, gTGT, bTGT, rr, rg, rb, gr, gg, gb, br, bg, bb, offset0[3], mat[3][3]; //define initial matrix values for straight pass-through rr = 1; rg = 0; rb = 0 gr = 0; gg = 1; gb = 0 br = 0; bg = 0; bb = 1 desat = 1 - desat/100; //makes the desaturate value a decimal value between 0 and 1 if RGBtarget == 1; rTGT = 1/3; gTGT = 1/3; bTGT = 1/3; end if // gray if RGBtarget == 2; rTGT = 0.3086; gTGT = 0.6094; bTGT = 0.0820; end if // luma if RGBtarget == 3; rTGT = 1; gTGT = 0; bTGT = 0; end if // red if RGBtarget == 4; rTGT = 0; gTGT = 1; bTGT = 0; end if // green if RGBtarget == 5; rTGT = 0; gTGT = 0; bTGT = 1; end if // blue rr -= (rr - rTGT) * desat rg -= (rg - rTGT) * desat rb -= (rb - rTGT) * desat gr -= (gr - gTGT) * desat gg -= (gg - gTGT) * desat gb -= (gb - gTGT) * desat br -= (br - bTGT) * desat bg -= (bg - bTGT) * desat bb -= (bb - bTGT) * desat mat = {rr, rg, rb, gr, gg, gb, br, bg, bb} colorTransform(Src1, Dest, mat, offset0, offset0);