Code: Select all
#Load files and recontruct the progressive frames
LoadVirtualdubplugin("D:\Video\Programs\VirtualDub\plugins\gradation.vdf", "gradation",1)
DGDecode_mpeg2source(".\VTS_01_1.d2v",info=3)
ColorMatrix(hints=true,interlaced=true)
tfm(d2v="VTS_01_1.d2v",slow=2,PP=0,mode=5).tdecimate(mode=1,hybrid=1)
#original = last.ConvertToRGB32(matrix="rec709").Crop(9,0,-9,0).Spline64Resize(720,540).ConvertToYV12(matrix="rec709")
#Color correction Luminance of 83
ConvertToRGB32(matrix="rec709")
opening = trim(0,2615).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff0000000000000000000000000000000000000000000000010203040405060708090a0b0c0d0d0e0f10111213141516161718191a1b1c1d1e1e1f20212223242526272728292a2b2c2d2e2f3030313233343536373839393a3b3c3d3e3f40414142434445464748494a4a4b4c4d4e4f50515253535455565758595a5b5b5c5d5e5f60616263646465666768696a6b6c6d6d6e6f70717273747576767778797a7b7c7d7e7e7f80818283848586878788898a8b8c8d8e8f9090919293949596979898999a9b9c9d9e9fa0a1a1a2a3a4a5a6a7a8a9aaaaabacadaeafb0b1b2b3b3b4b5b6b7b8b9babbbbbcbdbebfc0c1c2c3c4c4c5c6c7c8c9cacbcccdcdcecfd0d100000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f5051525354555657585a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9091929395969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebeced00000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f10111213131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536373839393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f80818283848485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaaaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1600ffd11600ffed1600ffe30000ffff")
part1a = trim(2616,12583).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717273737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e600000000000000000000000000000000000001020305060708090a0b0d0e0f1011121315161718191a1b1d1e1f2021222325262728292a2b2d2e2f3031323335363738393a3b3d3e3f4041424345464748494a4b4d4e4f5051525355565758595a5b5d5e5f6061626365666768696a6b6d6e6f7071727375767778797a7b7d7e7f8081828485868788898a8c8d8e8f9091929495969798999a9c9d9e9fa0a1a2a4a5a6a7a8a9aaacadaeafb0b1b2b4b5b6b7b8b9babcbdbebfc0c1c2c4c5c6c7c8c9cacccdcecfd0d1d2d4d5d6d7d8d9dadcdddedfe0e1e2e4e5e6e7e8e9eaecedeeeff0f1f2f4f5f6f7f8f9fafcfdfeffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1600ffe61100f0ff1500ffe80000ffff")
part1b= trim(12584,12775).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252628292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727374757778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebec000000000000000000000000000000000000000000000000000001020305060708090a0b0c0e0f1011121314161718191a1b1c1d1f2021222324252728292a2b2c2d2e3031323334353638393a3b3c3d3e3f41424344454647494a4b4c4d4e4f50525354555657585a5b5c5d5e5f6061636465666768696b6c6d6e6f7071727475767778797a7c7d7e7f8081828385868788898a8b8d8e8f9091929394969798999a9b9c9e9fa0a1a2a3a4a5a7a8a9aaabacadafb0b1b2b3b4b5b6b8b9babbbcbdbec0c1c2c3c4c5c6c7c9cacbcccdcecfd1d2d3d4d5d6d7d8dadbdcdddedfe0e2e3e4e5e6e7e8e9ebecedeeeff0f1f3f4f5f6f7f8f9fafcfdfeffffffffffff000000000000000000000000000000000000000000000000000102030405060708090a0c0d0e0f101112131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f3031323334353638393a3b3c3d3e3f404142434445464748494a4b4c4e4f505152535455565758595a5b5c5d5e5f6061626465666768696a6b6c6d6e6f7071727374757677787a7b7c7d7e7f808182838485868788898a8b8c8d8e909192939495969798999a9b9c9d9e9fa0a1a2a3a4a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e8e9eaebecedeeeff0f1f2000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1600ffec1900faff1800fff20000ffff")
part1c = trim(12776,16599).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717273747576767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaeb0000000000000000000000000001020304060708090a0b0c0d0f1011121314151617191a1b1c1d1e1f2022232425262728292b2c2d2e2f3031323335363738393a3b3c3e3f4041424344454648494a4b4c4d4e4f5152535455565758595b5c5d5e5f6061626465666768696a6b6c6e6f7071727374757778797a7b7c7d7e8081828384858687888a8b8c8d8e8f9091939495969798999a9b9d9e9fa0a1a2a3a4a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b7b9babbbcbdbebfc0c1c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d5d6d7d8d9dadbdcdddfe0e1e2e3e4e5e6e8e9eaebecedeeeff0f2f3f4f5f6f7f8f9fbfcfdfeffffffffffffffffffffffffffffffff00000000000000000000000000000000000102030405060708090a0b0c0d0e101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9abacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e9eaebecedeeeff0f1f2f3f4f5f6f7000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1300ffeb0c00f0ff1000fff70000ffff")
eyecatch1 = trim(16600,16767).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000000000000000000000000000000000000000000000000000000000000000000010203040506070808090a0b0c0d0e0f10111213141516171818191a1b1c1d1e1f20212223242526272828292a2b2c2d2e2f30313233343536373839393a3b3c3d3e3f40414243444546474849494a4b4c4d4e4f50515253545556575859595a5b5c5d5e5f60616263646566676869696a6b6c6d6e6f70717273747576777879797a7b7c7d7e7f80818283848586878889898a8b8c8d8e8f90919293949596979899999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaaaabacadaeafb0b1b2b3b4b5b6b7b8b9bababbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacacbcccdcecfd0d1d2000000000000000000000000000000000000000000000000000000000001020305060708090a0b0d0e0f1011121315161718191a1b1d1e1f2021222325262728292a2b2d2e2f3031323335363738393a3b3d3e3f4041424345464748494a4b4d4e4f5051525355565758595a5b5d5e5f6061626365666768696a6b6d6e6f7071727375767778797a7b7d7e7f8081828485868788898a8c8d8e8f9091929495969798999a9c9d9e9fa0a1a2a4a5a6a7a8a9aaacadaeafb0b1b2b4b5b6b7b8b9babcbdbebfc0c1c2c4c5c6c7c8c9cacccdcecfd0d1d2d4d5d6d7d8d9dadcdddedfe0e1e2e4e5e6e7e8e9eaecedeeeff0f1f2f4f5f6f7f8f9fafcfdfeffffffffff0000000000000000000000000000000000000000000000000000000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f2021222324252627292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041434445464748494a4b4c4d4e4f505152535455565758595a5b5c5e5f606162636465666768696a6b6c6d6e6f7071727374757678797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f9092939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e2e3e4e5e6e7e8e9eaebecedee000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff2000ffd21c00fbff1a00ffee0000ffff")
eyecatch2 = trim(16768,16891).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000000000000000000000000000000000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da0000000000000000000000000000000000000000000000000000000001020405060708090b0c0d0e0f10121314151618191a1b1c1d1f2021222324262728292a2b2d2e2f30313334353637383a3b3c3d3e3f41424344454748494a4b4c4e4f5051525355565758595a5c5d5e5f60626364656667696a6b6c6d6e7071727374767778797a7b7d7e7f8081828485868788898b8c8d8e8f91929394959698999a9b9c9d9fa0a1a2a3a5a6a7a8a9aaacadaeafb0b1b3b4b5b6b7b8babbbcbdbec0c1c2c3c4c5c7c8c9cacbcccecfd0d1d2d4d5d6d7d8d9dbdcdddedfe0e2e3e4e5e6e7e9eaebecedeff0f1f2f3f4f6f7f8f9fafbfdfeffffffffffffffffffffffff000000000000000000000000000000000000000000000000000001020304050607090a0b0c0d0e0f1011121314151618191a1b1c1d1e1f2021222324252728292a2b2c2d2e2f3031323334353738393a3b3c3d3e3f4041424344464748494a4b4c4d4e4f5051525354565758595a5b5c5d5e5f6061626365666768696a6b6c6d6e6f7071727475767778797a7b7c7d7e7f8081828485868788898a8b8c8d8e8f9091939495969798999a9b9c9d9e9fa0a2a3a4a5a6a7a8a9aaabacadaeafb0b2b3b4b5b6b7b8b9babbbcbdbebfc1c2c3c4c5c6c7c8c9cacbcccdcecfd1d2d3d4d5d6d7d8d9dadbdcdddee0e1e2e3e4e5e6e7e8e9eaebecedeff0f1f2f3f4f5f6000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff2400ffda1b00f4ff1900fff60000ffff")
part2 = trim(16892,32419).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff0000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebeced0000000000000000000000000000010204050607080a0b0c0d0e1011121314161718191a1c1d1e1f20222324252628292a2b2d2e2f30313334353637393a3b3c3d3f4041424345464748494b4c4d4e4f51525354555758595a5b5d5e5f60616364656667696a6b6c6d6f7071727375767778797b7c7d7e7f81828384868788898a8c8d8e8f90929394959698999a9b9c9e9fa0a1a2a4a5a6a7a8aaabacadaeb0b1b2b3b4b6b7b8b9babcbdbebfc0c2c3c4c5c6c8c9cacbcccecfd0d1d2d4d5d6d7d9dadbdcdddfe0e1e2e3e5e6e7e8e9ebecedeeeff1f2f3f4f5f7f8f9fafbfdfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000102030405060708090b0c0d0e0f101112131415161718191a1b1c1e1f202122232425262728292a2b2c2d2e2f3132333435363738393a3b3c3d3e3f4041424445464748494a4b4c4d4e4f5051525354555758595a5b5c5d5e5f6061626364656667686a6b6c6d6e6f707172737475767778797a7b7d7e7f808182838485868788898a8b8c8d8e8f9192939495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeef0f1f2f3f4f5f6f7f8f9000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1400ffed0d00e1ff1300fff90000ffff")
credits = trim(32420,34723).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000000000000000000000000000000000000000000000000000102030405060708090a0b0c0d0e0f10111213141516171718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243444445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e200000000000000000000000000000000000000000000000000010304050608090a0b0d0e0f111213141617181a1b1c1d1f20212224252628292a2b2d2e2f30323334363738393b3c3d3e40414244454647494a4b4d4e4f50525354555758595b5c5d5e60616263656667696a6b6c6e6f70717374757778797a7c7d7e7f818283858687888a8b8c8e8f90919394959698999a9c9d9e9fa1a2a3a4a6a7a8aaabacadafb0b1b3b4b5b6b8b9babbbdbebfc1c2c3c4c6c7c8c9cbcccdcfd0d1d2d4d5d6d7d9dadbdddedfe0e2e3e4e5e7e8e9ebecedeef0f1f2f4f5f6f7f9fafbfcfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000001020304050708090a0b0c0d0e0f1012131415161718191a1b1c1e1f2021222324252627282a2b2c2d2e2f3031323335363738393a3b3c3d3e3f4142434445464748494a4c4d4e4f5051525354555658595a5b5c5d5e5f6061626465666768696a6b6c6d6f707172737475767778797b7c7d7e7f8081828384868788898a8b8c8d8e8f9092939495969798999a9b9d9e9fa0a1a2a3a4a5a6a7a9aaabacadaeafb0b1b2b3b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d4d5d7d8d9dadbdcdddedfe0e1e3e4e5e6e7e8e9eaebecedeff0f1f2f3f4f5f6f7f8fafbfcfdfeffff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1800ffe21800e0ff1500feff0000ffff")
preview = trim(34724,99999).gradation(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00000000000000000000000000000000000001020305060708090a0b0d0e0f1011121315161718191a1b1d1e1f2021222325262728292a2b2d2e2f3031323335363738393a3b3d3e3f4041424345464748494a4b4d4e4f5051525355565758595a5b5d5e5f6061626365666768696a6b6d6e6f7071727375767778797a7b7d7e7f8081828485868788898a8c8d8e8f9091929495969798999a9c9d9e9fa0a1a2a4a5a6a7a8a9aaacadaeafb0b1b2b4b5b6b7b8b9babcbdbebfc0c1c2c4c5c6c7c8c9cacccdcecfd0d1d2d4d5d6d7d8d9dadcdddedfe0e1e2e4e5e6e7e8e9eaecedeeeff0f1f2f4f5f6f7f8f9fafcfdfeffffffffffffffffffffffffffffffff0000000000000000000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f2021222324252728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f5051525354555657585a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727475767778797a7b7c7d7e7f808182838485868788898a8b8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f3f4f5f6f7f8f9fafbfcfdfeffffff0000000000000000000000000001020405060708090b0c0d0e0f11121314151718191a1b1c1e1f20212224252627282a2b2c2d2e2f31323334353738393a3b3c3e3f40414244454647484a4b4c4d4e4f51525354555758595a5b5d5e5f60616264656667686a6b6c6d6e6f71727374757778797a7b7d7e7f80818284858687888a8b8c8d8e9091929394959798999a9b9d9e9fa0a1a2a4a5a6a7a8aaabacadaeb0b1b2b3b4b5b7b8b9babbbdbebfc0c1c3c4c5c6c7c8cacbcccdced0d1d2d3d4d5d7d8d9dadbdddedfe0e1e3e4e5e6e7e8eaebecedeef0f1f2f3f4f6f7f8f9fafbfdfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff1100f0ff0800fdff0c00e3ff0000ffff")
last = opening + part1a + part1b + part1c + eyecatch1 + eyecatch2 + part2 + credits + preview
#ConvertToYV12(matrix="rec709")
part1 = trim(0,2615).CB(offset=-10, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part2 = trim(2616,4504).CB(offset=-29, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part3 = trim(4505,4682).CB(offset=-30, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part4 = trim(4683,4961).CB(offset=-21, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part5 = trim(4962,9724).CB(offset=-29, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part6 = trim(9725,11087).CB(offset=-20, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part7 = trim(11088,12583).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part8 = trim(12584,12775).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part9 = trim(12776,16599).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part10 = trim(16600,16891).CB(offset=-0, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)# no adjustment -- eyecatch
part11 = trim(16892,17306).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11a = trim(17307,17345).CB(offset=-12, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11b = trim(17346,17359).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11c = trim(17360,17372).CB(offset=-10, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11d = trim(17373,17531).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11e = trim(17532,17723).CB(offset=-19, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11f = trim(17724,17986).CB(offset=-28, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part11g = trim(17987,18154).CB(offset=-11, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part12 = trim(18155,18715).CB(offset=-25, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part13 = trim(18716,18763).CB(offset=-30, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part13a = trim(18764,18929).CB(offset=-3, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part13b = trim(18930,19051).CB(offset=-25, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part13c = trim(19052,19171).CB(offset=-2, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part14 = trim(19172,19231).CB(offset=-15, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part15 = trim(19232,22216).CB(offset=-24, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part16 = trim(22217,24170).CB(offset=-22, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part17 = trim(24171,25054).CB(offset=-20, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part18 = trim(25055,25992).CB(offset=-0, green_rate=1, blue_rate=1).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)# doesn't really need anything
part19 = trim(25993,29645).CB(offset=-30, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part20 = trim(29646,29724).CB(offset=-23, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part21 = trim(29725,30478).CB(offset=-30, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part22 = trim(30479,30742).CB(offset=-20, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part23 = trim(30743,32419).CB(offset=-30, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0)
part24 = trim(32420,34723).CB(offset=-4, green_rate=1, blue_rate=1).ST(offset=-5, magenta_rate=2, yellow_rate=2).Tweak(bright=-0) # end credits
part25 = trim(34724,99999).CB(offset=-20, green_rate=2, blue_rate=2).ST(offset=-20, magenta_rate=2, yellow_rate=2).Tweak(bright=-0) # Preview
last = part1 + part2 + part3 + part4 + part5 + part6 + part7 + part8 + part9 + part10 + part11 + part11a + part11b + part11c + part11d + part11e + part11f + part11g + part12 + part13 + part13a + part13b + part13c + part14 + part15 + part16 + part17 + part18 + part19 + part20 + part21 + part22 + part23 + part25 + part24
############################################################
#### Grain Removal, Cropping and Subtitles ###
############################################################
SMDegrain(tr=2,thSAD=800,search=5,pel=1,blksize=8,RefineMotion=true)
ConvertToRGB32(matrix="rec709")
TextSub("031.ass")
Crop(9,0,-9,0)
Spline64Resize(720,540)
ConvertToYV12(matrix="rec709")
#Subtitle("Bulma Hair", text_color = $29e6ff).Subtitle("SkinTone", text_color = $ff1100).Histogram(mode="classic").Histogram(mode="color2")
#edit = last
#StackHorizontal(original,edit)
#####################################################################
#####################################################################
# Cyans to Blues
function CB(clip c, float "offset", float "green_rate", float "blue_rate"){
#assumes the offset value is negative
c = c.ConvertToYV12(matrix="rec709")
c = c.Tweak(startHue=324,endHue=325,hue=(abs(offset)-(blue_rate*30) < 0 ? 0 : offset+(blue_rate*30)))
c = c.Tweak(startHue=323,endHue=324,hue=(abs(offset)-(blue_rate*29) < 0 ? 0 : offset+(blue_rate*29)))
c = c.Tweak(startHue=322,endHue=323,hue=(abs(offset)-(blue_rate*28) < 0 ? 0 : offset+(blue_rate*28)))
c = c.Tweak(startHue=321,endHue=322,hue=(abs(offset)-(blue_rate*27) < 0 ? 0 : offset+(blue_rate*27)))
c = c.Tweak(startHue=320,endHue=321,hue=(abs(offset)-(blue_rate*26) < 0 ? 0 : offset+(blue_rate*26)))
c = c.Tweak(startHue=319,endHue=320,hue=(abs(offset)-(blue_rate*25) < 0 ? 0 : offset+(blue_rate*25)))
c = c.Tweak(startHue=318,endHue=319,hue=(abs(offset)-(blue_rate*24) < 0 ? 0 : offset+(blue_rate*24)))
c = c.Tweak(startHue=317,endHue=318,hue=(abs(offset)-(blue_rate*23) < 0 ? 0 : offset+(blue_rate*23)))
c = c.Tweak(startHue=316,endHue=317,hue=(abs(offset)-(blue_rate*22) < 0 ? 0 : offset+(blue_rate*22)))
c = c.Tweak(startHue=315,endHue=316,hue=(abs(offset)-(blue_rate*21) < 0 ? 0 : offset+(blue_rate*21)))
c = c.Tweak(startHue=314,endHue=315,hue=(abs(offset)-(blue_rate*20) < 0 ? 0 : offset+(blue_rate*20)))
c = c.Tweak(startHue=313,endHue=314,hue=(abs(offset)-(blue_rate*19) < 0 ? 0 : offset+(blue_rate*19)))
c = c.Tweak(startHue=312,endHue=313,hue=(abs(offset)-(blue_rate*18) < 0 ? 0 : offset+(blue_rate*18)))
c = c.Tweak(startHue=311,endHue=312,hue=(abs(offset)-(blue_rate*17) < 0 ? 0 : offset+(blue_rate*17)))
c = c.Tweak(startHue=310,endHue=311,hue=(abs(offset)-(blue_rate*16) < 0 ? 0 : offset+(blue_rate*16)))
c = c.Tweak(startHue=309,endHue=310,hue=(abs(offset)-(blue_rate*15) < 0 ? 0 : offset+(blue_rate*15)))
c = c.Tweak(startHue=308,endHue=309,hue=(abs(offset)-(blue_rate*14) < 0 ? 0 : offset+(blue_rate*14)))
c = c.Tweak(startHue=307,endHue=308,hue=(abs(offset)-(blue_rate*13) < 0 ? 0 : offset+(blue_rate*13)))
c = c.Tweak(startHue=306,endHue=307,hue=(abs(offset)-(blue_rate*12) < 0 ? 0 : offset+(blue_rate*12)))
c = c.Tweak(startHue=305,endHue=306,hue=(abs(offset)-(blue_rate*11) < 0 ? 0 : offset+(blue_rate*11)))
c = c.Tweak(startHue=304,endHue=305,hue=(abs(offset)-(blue_rate*10) < 0 ? 0 : offset+(blue_rate*10)))
c = c.Tweak(startHue=303,endHue=304,hue=(abs(offset)-(blue_rate*9) < 0 ? 0 : offset+(blue_rate*9)))
c = c.Tweak(startHue=302,endHue=303,hue=(abs(offset)-(blue_rate*8) < 0 ? 0 : offset+(blue_rate*8)))
c = c.Tweak(startHue=301,endHue=302,hue=(abs(offset)-(blue_rate*7) < 0 ? 0 : offset+(blue_rate*7)))
c = c.Tweak(startHue=300,endHue=301,hue=(abs(offset)-(blue_rate*6) < 0 ? 0 : offset+(blue_rate*6)))
c = c.Tweak(startHue=299,endHue=300,hue=(abs(offset)-(blue_rate*5) < 0 ? 0 : offset+(blue_rate*5)))
c = c.Tweak(startHue=298,endHue=299,hue=(abs(offset)-(blue_rate*4) < 0 ? 0 : offset+(blue_rate*4)))
c = c.Tweak(startHue=297,endHue=298,hue=(abs(offset)-(blue_rate*3) < 0 ? 0 : offset+(blue_rate*3)))
c = c.Tweak(startHue=296,endHue=297,hue=(abs(offset)-(blue_rate*2) < 0 ? 0 : offset+(blue_rate*2)))
c = c.Tweak(startHue=295,endHue=296,hue=(abs(offset)-(blue_rate*1) < 0 ? 0 : offset+(blue_rate*1)))
c = c.Tweak(startHue=210,endHue=295,hue=offset)#<--CENTER -- Main color range of Cyan
c = c.Tweak(startHue=209,endHue=210,hue=(abs(offset)-(green_rate*1) < 0 ? 0 : offset+(green_rate*1)))
c = c.Tweak(startHue=208,endHue=209,hue=(abs(offset)-(green_rate*2) < 0 ? 0 : offset+(green_rate*2)))
c = c.Tweak(startHue=207,endHue=208,hue=(abs(offset)-(green_rate*3) < 0 ? 0 : offset+(green_rate*3)))
c = c.Tweak(startHue=206,endHue=207,hue=(abs(offset)-(green_rate*4) < 0 ? 0 : offset+(green_rate*4)))
c = c.Tweak(startHue=205,endHue=206,hue=(abs(offset)-(green_rate*5) < 0 ? 0 : offset+(green_rate*5)))
c = c.Tweak(startHue=204,endHue=205,hue=(abs(offset)-(green_rate*6) < 0 ? 0 : offset+(green_rate*6)))
c = c.Tweak(startHue=203,endHue=204,hue=(abs(offset)-(green_rate*7) < 0 ? 0 : offset+(green_rate*7)))
c = c.Tweak(startHue=202,endHue=203,hue=(abs(offset)-(green_rate*8) < 0 ? 0 : offset+(green_rate*8)))
c = c.Tweak(startHue=201,endHue=202,hue=(abs(offset)-(green_rate*9) < 0 ? 0 : offset+(green_rate*9)))
c = c.Tweak(startHue=200,endHue=201,hue=(abs(offset)-(green_rate*10) < 0 ? 0 : offset+(green_rate*10)))
c = c.Tweak(startHue=199,endHue=200,hue=(abs(offset)-(green_rate*11) < 0 ? 0 : offset+(green_rate*11)))
c = c.Tweak(startHue=198,endHue=199,hue=(abs(offset)-(green_rate*12) < 0 ? 0 : offset+(green_rate*12)))
c = c.Tweak(startHue=197,endHue=198,hue=(abs(offset)-(green_rate*13) < 0 ? 0 : offset+(green_rate*13)))
c = c.Tweak(startHue=196,endHue=197,hue=(abs(offset)-(green_rate*14) < 0 ? 0 : offset+(green_rate*14)))
c = c.Tweak(startHue=195,endHue=196,hue=(abs(offset)-(green_rate*15) < 0 ? 0 : offset+(green_rate*15)))
c = c.Tweak(startHue=194,endHue=195,hue=(abs(offset)-(green_rate*16) < 0 ? 0 : offset+(green_rate*16)))
c = c.Tweak(startHue=193,endHue=194,hue=(abs(offset)-(green_rate*17) < 0 ? 0 : offset+(green_rate*17)))
c = c.Tweak(startHue=192,endHue=193,hue=(abs(offset)-(green_rate*18) < 0 ? 0 : offset+(green_rate*18)))
c = c.Tweak(startHue=191,endHue=192,hue=(abs(offset)-(green_rate*19) < 0 ? 0 : offset+(green_rate*19)))
c = c.Tweak(startHue=190,endHue=191,hue=(abs(offset)-(green_rate*20) < 0 ? 0 : offset+(green_rate*20)))
c = c.Tweak(startHue=189,endHue=190,hue=(abs(offset)-(green_rate*21) < 0 ? 0 : offset+(green_rate*21)))
c = c.Tweak(startHue=188,endHue=189,hue=(abs(offset)-(green_rate*22) < 0 ? 0 : offset+(green_rate*22)))
c = c.Tweak(startHue=187,endHue=188,hue=(abs(offset)-(green_rate*23) < 0 ? 0 : offset+(green_rate*23)))
c = c.Tweak(startHue=186,endHue=187,hue=(abs(offset)-(green_rate*24) < 0 ? 0 : offset+(green_rate*24)))
c = c.Tweak(startHue=185,endHue=186,hue=(abs(offset)-(green_rate*25) < 0 ? 0 : offset+(green_rate*25)))
c = c.Tweak(startHue=184,endHue=185,hue=(abs(offset)-(green_rate*26) < 0 ? 0 : offset+(green_rate*26)))
c = c.Tweak(startHue=183,endHue=184,hue=(abs(offset)-(green_rate*27) < 0 ? 0 : offset+(green_rate*27)))
c = c.Tweak(startHue=182,endHue=183,hue=(abs(offset)-(green_rate*28) < 0 ? 0 : offset+(green_rate*28)))
c = c.Tweak(startHue=181,endHue=182,hue=(abs(offset)-(green_rate*29) < 0 ? 0 : offset+(green_rate*29)))
c = c.Tweak(startHue=180,endHue=181,hue=(abs(offset)-(green_rate*30) < 0 ? 0 : offset+(green_rate*30)))
return c
}
function ST(clip c, float "offset", float "magenta_rate", float "yellow_rate"){
#assumes the offset value is negative
#c = c.ConvertToYV12(matrix="rec709")
c = c.Tweak(startHue=144,endHue=145,hue=(abs(offset)-(yellow_rate*29) < 0 ? 0 : offset+(yellow_rate*30)))
c = c.Tweak(startHue=143,endHue=144,hue=(abs(offset)-(yellow_rate*28) < 0 ? 0 : offset+(yellow_rate*29)))
c = c.Tweak(startHue=142,endHue=143,hue=(abs(offset)-(yellow_rate*27) < 0 ? 0 : offset+(yellow_rate*28)))
c = c.Tweak(startHue=141,endHue=142,hue=(abs(offset)-(yellow_rate*26) < 0 ? 0 : offset+(yellow_rate*27)))
c = c.Tweak(startHue=140,endHue=141,hue=(abs(offset)-(yellow_rate*25) < 0 ? 0 : offset+(yellow_rate*26)))
c = c.Tweak(startHue=139,endHue=140,hue=(abs(offset)-(yellow_rate*24) < 0 ? 0 : offset+(yellow_rate*25)))
c = c.Tweak(startHue=138,endHue=139,hue=(abs(offset)-(yellow_rate*23) < 0 ? 0 : offset+(yellow_rate*24)))
c = c.Tweak(startHue=137,endHue=138,hue=(abs(offset)-(yellow_rate*23) < 0 ? 0 : offset+(yellow_rate*23)))
c = c.Tweak(startHue=136,endHue=137,hue=(abs(offset)-(yellow_rate*22) < 0 ? 0 : offset+(yellow_rate*22)))
c = c.Tweak(startHue=135,endHue=136,hue=(abs(offset)-(yellow_rate*21) < 0 ? 0 : offset+(yellow_rate*21)))
c = c.Tweak(startHue=134,endHue=135,hue=(abs(offset)-(yellow_rate*20) < 0 ? 0 : offset+(yellow_rate*20)))
c = c.Tweak(startHue=133,endHue=134,hue=(abs(offset)-(yellow_rate*19) < 0 ? 0 : offset+(yellow_rate*19)))
c = c.Tweak(startHue=132,endHue=133,hue=(abs(offset)-(yellow_rate*18) < 0 ? 0 : offset+(yellow_rate*18)))
c = c.Tweak(startHue=131,endHue=132,hue=(abs(offset)-(yellow_rate*17) < 0 ? 0 : offset+(yellow_rate*17)))
c = c.Tweak(startHue=130,endHue=131,hue=(abs(offset)-(yellow_rate*16) < 0 ? 0 : offset+(yellow_rate*16)))
c = c.Tweak(startHue=129,endHue=130,hue=(abs(offset)-(yellow_rate*15) < 0 ? 0 : offset+(yellow_rate*15)))
c = c.Tweak(startHue=128,endHue=129,hue=(abs(offset)-(yellow_rate*14) < 0 ? 0 : offset+(yellow_rate*14)))
c = c.Tweak(startHue=127,endHue=128,hue=(abs(offset)-(yellow_rate*13) < 0 ? 0 : offset+(yellow_rate*13)))
c = c.Tweak(startHue=126,endHue=127,hue=(abs(offset)-(yellow_rate*12) < 0 ? 0 : offset+(yellow_rate*12)))
c = c.Tweak(startHue=125,endHue=126,hue=(abs(offset)-(yellow_rate*11) < 0 ? 0 : offset+(yellow_rate*11)))
c = c.Tweak(startHue=124,endHue=125,hue=(abs(offset)-(yellow_rate*10) < 0 ? 0 : offset+(yellow_rate*10)))
c = c.Tweak(startHue=123,endHue=124,hue=(abs(offset)-(yellow_rate*9) < 0 ? 0 : offset+(yellow_rate*9)))
c = c.Tweak(startHue=122,endHue=123,hue=(abs(offset)-(yellow_rate*8) < 0 ? 0 : offset+(yellow_rate*8)))
c = c.Tweak(startHue=121,endHue=122,hue=(abs(offset)-(yellow_rate*7) < 0 ? 0 : offset+(yellow_rate*7)))
c = c.Tweak(startHue=120,endHue=121,hue=(abs(offset)-(yellow_rate*6) < 0 ? 0 : offset+(yellow_rate*6)))
c = c.Tweak(startHue=119,endHue=120,hue=(abs(offset)-(yellow_rate*5) < 0 ? 0 : offset+(yellow_rate*5)))
c = c.Tweak(startHue=118,endHue=119,hue=(abs(offset)-(yellow_rate*4) < 0 ? 0 : offset+(yellow_rate*4)))
c = c.Tweak(startHue=117,endHue=118,hue=(abs(offset)-(yellow_rate*3) < 0 ? 0 : offset+(yellow_rate*3)))
c = c.Tweak(startHue=116,endHue=117,hue=(abs(offset)-(yellow_rate*2) < 0 ? 0 : offset+(yellow_rate*2)))
c = c.Tweak(startHue=115,endHue=116,hue=(abs(offset)-(yellow_rate*1) < 0 ? 0 : offset+(yellow_rate*1)))
c = c.Tweak(startHue=75,endHue=115,hue=offset)#<--CENTER -- Main color range of Red
c = c.Tweak(startHue=74,endHue=75,hue=(abs(offset)-(magenta_rate*1) < 0 ? 0 : offset+(magenta_rate*1)))
c = c.Tweak(startHue=73,endHue=74,hue=(abs(offset)-(magenta_rate*2) < 0 ? 0 : offset+(magenta_rate*2)))
c = c.Tweak(startHue=72,endHue=73,hue=(abs(offset)-(magenta_rate*3) < 0 ? 0 : offset+(magenta_rate*3)))
c = c.Tweak(startHue=71,endHue=72,hue=(abs(offset)-(magenta_rate*4) < 0 ? 0 : offset+(magenta_rate*4)))
c = c.Tweak(startHue=70,endHue=71,hue=(abs(offset)-(magenta_rate*5) < 0 ? 0 : offset+(magenta_rate*5)))
c = c.Tweak(startHue=69,endHue=70,hue=(abs(offset)-(magenta_rate*6) < 0 ? 0 : offset+(magenta_rate*6)))
c = c.Tweak(startHue=68,endHue=69,hue=(abs(offset)-(magenta_rate*7) < 0 ? 0 : offset+(magenta_rate*7)))
c = c.Tweak(startHue=67,endHue=68,hue=(abs(offset)-(magenta_rate*8) < 0 ? 0 : offset+(magenta_rate*8)))
c = c.Tweak(startHue=66,endHue=67,hue=(abs(offset)-(magenta_rate*9) < 0 ? 0 : offset+(magenta_rate*9)))
c = c.Tweak(startHue=65,endHue=66,hue=(abs(offset)-(magenta_rate*10) < 0 ? 0 : offset+(magenta_rate*10)))
c = c.Tweak(startHue=64,endHue=65,hue=(abs(offset)-(magenta_rate*11) < 0 ? 0 : offset+(magenta_rate*11)))
c = c.Tweak(startHue=63,endHue=64,hue=(abs(offset)-(magenta_rate*12) < 0 ? 0 : offset+(magenta_rate*12)))
c = c.Tweak(startHue=62,endHue=63,hue=(abs(offset)-(magenta_rate*13) < 0 ? 0 : offset+(magenta_rate*13)))
c = c.Tweak(startHue=61,endHue=62,hue=(abs(offset)-(magenta_rate*14) < 0 ? 0 : offset+(magenta_rate*14)))
c = c.Tweak(startHue=60,endHue=61,hue=(abs(offset)-(magenta_rate*15) < 0 ? 0 : offset+(magenta_rate*15)))
c = c.Tweak(startHue=59,endHue=60,hue=(abs(offset)-(magenta_rate*16) < 0 ? 0 : offset+(magenta_rate*16)))
c = c.Tweak(startHue=58,endHue=59,hue=(abs(offset)-(magenta_rate*17) < 0 ? 0 : offset+(magenta_rate*17)))
c = c.Tweak(startHue=57,endHue=58,hue=(abs(offset)-(magenta_rate*18) < 0 ? 0 : offset+(magenta_rate*18)))
c = c.Tweak(startHue=56,endHue=57,hue=(abs(offset)-(magenta_rate*19) < 0 ? 0 : offset+(magenta_rate*19)))
c = c.Tweak(startHue=55,endHue=56,hue=(abs(offset)-(magenta_rate*20) < 0 ? 0 : offset+(magenta_rate*20)))
c = c.Tweak(startHue=54,endHue=55,hue=(abs(offset)-(magenta_rate*21) < 0 ? 0 : offset+(magenta_rate*21)))
c = c.Tweak(startHue=53,endHue=54,hue=(abs(offset)-(magenta_rate*22) < 0 ? 0 : offset+(magenta_rate*22)))
c = c.Tweak(startHue=52,endHue=53,hue=(abs(offset)-(magenta_rate*23) < 0 ? 0 : offset+(magenta_rate*23)))
c = c.Tweak(startHue=51,endHue=52,hue=(abs(offset)-(magenta_rate*24) < 0 ? 0 : offset+(magenta_rate*24)))
c = c.Tweak(startHue=50,endHue=51,hue=(abs(offset)-(magenta_rate*25) < 0 ? 0 : offset+(magenta_rate*25)))
c = c.Tweak(startHue=49,endHue=50,hue=(abs(offset)-(magenta_rate*26) < 0 ? 0 : offset+(magenta_rate*26)))
c = c.Tweak(startHue=48,endHue=49,hue=(abs(offset)-(magenta_rate*27) < 0 ? 0 : offset+(magenta_rate*27)))
c = c.Tweak(startHue=47,endHue=48,hue=(abs(offset)-(magenta_rate*28) < 0 ? 0 : offset+(magenta_rate*28)))
c = c.Tweak(startHue=46,endHue=47,hue=(abs(offset)-(magenta_rate*29) < 0 ? 0 : offset+(magenta_rate*29)))
c = c.Tweak(startHue=45,endHue=46,hue=(abs(offset)-(magenta_rate*30) < 0 ? 0 : offset+(magenta_rate*30)))
return c
}