MILKDROP_PRESET_VERSION=201
PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=5.000000
fGammaAdj=1.000
fDecay=1.000
fVideoEchoZoom=1.000
fVideoEchoAlpha=0.000
nVideoEchoOrientation=2
nWaveMode=1
bAdditiveWaves=0
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.004
fWaveScale=0.773
fWaveSmoothing=0.000
fWaveParam=-0.440
fModWaveAlphaStart=1.000
fModWaveAlphaEnd=1.000
fWarpAnimSpeed=1.000
fWarpScale=1.331
fZoomExponent=1.00000
fShader=0.000
zoom=1.00400
rot=0.00000
cx=0.500
cy=0.500
dx=0.00000
dy=0.00000
warp=0.19788
sx=0.99967
sy=0.99990
wave_r=1.000
wave_g=1.000
wave_b=1.000
wave_x=0.500
wave_y=0.040
ob_size=0.010
ob_r=0.000
ob_g=0.000
ob_b=0.000
ob_a=0.000
ib_size=0.010
ib_r=0.250
ib_g=0.250
ib_b=0.250
ib_a=0.000
nMotionVectorsX=0.000
nMotionVectorsY=0.000
mv_dx=0.000
mv_dy=0.000
mv_l=1.000
mv_r=1.000
mv_g=0.910
mv_b=0.710
mv_a=0.000
b1n=0.000
b2n=0.000
b3n=0.000
b1x=1.000
b2x=1.000
b3x=1.000
b1ed=0.000
wavecode_0_enabled=0
wavecode_0_samples=512
wavecode_0_sep=0
wavecode_0_bSpectrum=0
wavecode_0_bUseDots=1
wavecode_0_bDrawThick=0
wavecode_0_bAdditive=0
wavecode_0_scaling=2.44415
wavecode_0_smoothing=0.00000
wavecode_0_r=1.000
wavecode_0_g=1.000
wavecode_0_b=1.000
wavecode_0_a=0.000
wave_0_init1=t2 = 0;
wave_0_init2=t3 = 0;
wave_0_init3=t4 = 0;
wave_0_init4=cl = 0;
wave_0_per_frame1=t1 = 0;
wave_0_per_frame2=v = 0.01;
wave_0_per_frame3=j = j + (bass)*0.01;
wave_0_per_frame4=j2 = j2 + (mid_att)*0.01;
wave_0_per_frame5=j3 = j3 + (treb_att)*0.01;
wave_0_per_frame6=t2 = j;
wave_0_per_frame7=t3 = j2;
wave_0_per_frame8=t4 = j3;
wave_0_per_frame9=//t5 = 0;
wave_0_per_frame10=k = k*0.99 + 10*mid/fps;
wave_0_per_frame11=t5 = -k;
wave_0_per_frame12=
wave_0_per_frame13=cl1 = cl1 + 0.002;
wave_0_per_frame14=cl1 = if(above(cl1,1),0,cl1);
wave_0_per_frame15=cl1 = if(below(cl1,0),1,cl1);
wave_0_per_frame16=t8 = cl1;
wave_0_per_frame17=
wave_0_per_frame18=cl2 = cl2 -1*q1;
wave_0_per_frame19=cl2 = if(above(cl2,1),0,cl2);
wave_0_per_frame20=cl2 = if(below(cl2,0),1,cl2);
wave_0_per_frame21=t7 = cl2;
wave_0_per_frame22=
wave_0_per_frame23=cl3 = cl3 +0.001;
wave_0_per_frame24=cl3 = if(above(cl3,1),0,cl3);
wave_0_per_frame25=cl3 = if(below(cl3,0),1,cl3);
wave_0_per_frame26=t6 = cl3;
wave_0_per_point1=xx = ((sample*0983624912364)%10000000+100)/10000000;
wave_0_per_point2=yy = ((xx*1896575575)%10000000+100)/10000000;
wave_0_per_point3=zz = ((yy*58652340875)%10000000+100)/10000000;
wave_0_per_point4=
wave_0_per_point5=
wave_0_per_point6=d = sqrt(sqr(xx)+sqr(yy)+sqr(zz));
wave_0_per_point7=
wave_0_per_point8=zz = zz + t8 - if(above(zz+t8,1),1,0) - 0.5;
wave_0_per_point9=xx = xx + t7 - if(above(xx+t7,1),1,0) - 0.5;
wave_0_per_point10=yy = yy + t6 - if(above(yy+t6,1),1,0) - 0.5;
wave_0_per_point11=
wave_0_per_point12=v = 0.001;
wave_0_per_point13=
wave_0_per_point14=w = 1;// (sample*sin(time*0.3)*0.01-1);
wave_0_per_point15=bb = d*d*0.5;
wave_0_per_point16=n= 0.3;
wave_0_per_point17=s1 = sin(sin(t2*w+bb)*n);
wave_0_per_point18=s2 = sin(sin(t3*w+bb)*n);
wave_0_per_point19=s3 = sin(sin(t4*w+bb)*n);
wave_0_per_point20=c1 = cos(sin(t2*w+bb)*n);
wave_0_per_point21=c2 = cos(sin(t3*w+bb)*n);
wave_0_per_point22=c3 = cos(sin(t4*w+bb)*n);
wave_0_per_point23=
wave_0_per_point24=z = (c3*s1*c2 + s3*s2)*xx - (c3*s1*s2-s3*c2)*yy + c3*c1*zz;
wave_0_per_point25=x1 = (c1*c2*xx + c1*s2*yy - s1*zz);
wave_0_per_point26=y1 = ((s3*s1*c2 - c3*s2)*xx + (s3*s1*s2+c3*c2)*yy + s3*c1*zz);
wave_0_per_point27=
wave_0_per_point28=zoom = .5*(1/(z+0.5));
wave_0_per_point29=x = 0.5 + zoom*x1 + sin(time*0.1)*0.;;
wave_0_per_point30=y = 0.5 + zoom*y1 + cos(time*0.16801)*0.;
wave_0_per_point31=
wave_0_per_point32=pi3 = 3.1415*2*0.3333;
wave_0_per_point33=t = z*2+t2*1;
wave_0_per_point34=c=3;
wave_0_per_point35=//r = sin(t)*c;
wave_0_per_point36=
wave_0_per_point37=//g = sin(t+pi3)*c;
wave_0_per_point38=
wave_0_per_point39=//b = sin(t-pi3)*c;
wave_0_per_point40=
wave_0_per_point41=
wave_0_per_point42=r = if(above(r,1),1,r);
wave_0_per_point43=r = if(below(r,0),0,r);
wave_0_per_point44=g = if(above(g,1),1,g);
wave_0_per_point45=g = if(below(g,0),0,g);
wave_0_per_point46=b = if(above(b,1),1,b);
wave_0_per_point47=b = if(below(b,0),0,b);
wave_0_per_point48=
wave_0_per_point49=a = 0.4;
wavecode_1_enabled=1
wavecode_1_samples=512
wavecode_1_sep=0
wavecode_1_bSpectrum=0
wavecode_1_bUseDots=0
wavecode_1_bDrawThick=1
wavecode_1_bAdditive=0
wavecode_1_scaling=1.48612
wavecode_1_smoothing=0.00000
wavecode_1_r=0.500
wavecode_1_g=0.300
wavecode_1_b=1.000
wavecode_1_a=1.000
wave_1_init1=t2 = 0;
wave_1_init2=t3 = 0;
wave_1_init3=t4 = 0;
wave_1_init4=cl = 0;
wave_1_per_point1=d3 = d3*0.85 + value1;
wave_1_per_point2=d2 = d2*0.85 + d3*0.18;
wave_1_per_point3=d1 = d1*0.85 + d2*0.12;
wave_1_per_point4=d = d*0.85 + d1*0.06;
wave_1_per_point5=
wave_1_per_point6=y = 0.5 + d*sample*(1-sample);
wave_1_per_point7=x = 0.9 - sample*0.8;
wavecode_2_enabled=0
wavecode_2_samples=512
wavecode_2_sep=0
wavecode_2_bSpectrum=0
wavecode_2_bUseDots=1
wavecode_2_bDrawThick=1
wavecode_2_bAdditive=0
wavecode_2_scaling=5.92556
wavecode_2_smoothing=0.00000
wavecode_2_r=1.000
wavecode_2_g=0.000
wavecode_2_b=0.000
wavecode_2_a=0.660
wave_2_per_frame1=t1 = q1;
wave_2_per_frame2=t2 = q2;
wave_2_per_frame3=t3 = q3;
wave_2_per_frame4=t4 = q4;
wave_2_per_frame5=t5 = q5;
wave_2_per_frame6=t6 = q6;
wave_2_per_frame7=t7 = q7;
wave_2_per_frame8=t8 = q8;
wave_2_per_point1=sample = 1-sample;
wave_2_per_point2=xxx = xx;
wave_2_per_point3=yyy = yy;
wave_2_per_point4=xx = pow(sample,5)*t1 + 5*pow(sample,4)*(1-sample)*t1 + 10*pow(sample,3)*sqr(1-sample)*t2
wave_2_per_point5=+ 10*sqr(sample)*pow(1-sample,3)*t3 + 5*pow(1-sample,4)*sample*t4 + pow(1-sample,5)*t4;
wave_2_per_point6=
wave_2_per_point7=yy = pow(sample,5)*t5 + 5*pow(sample,4)*(1-sample)*t5 + 10*pow(sample,3)*sqr(1-sample)*t6
wave_2_per_point8=+ 10*sqr(sample)*pow(1-sample,3)*t7 + 5*pow(1-sample,4)*sample*t8 + pow(1-sample,5)*t8;
wave_2_per_point9=
wave_2_per_point10=d = 1/sqrt(sqr(xx-xxx)+sqr(yy-yyy));
wave_2_per_point11=dd = dd*0.95 + (value1);
wave_2_per_point12=ddd = dd*sample*(1-sample)*d;
wave_2_per_point13=
wave_2_per_point14=x = xx + (yy-yyy)*ddd;
wave_2_per_point15=y = yy - (xx-xxx)*ddd;
wavecode_3_enabled=0
wavecode_3_samples=512
wavecode_3_sep=0
wavecode_3_bSpectrum=0
wavecode_3_bUseDots=0
wavecode_3_bDrawThick=1
wavecode_3_bAdditive=0
wavecode_3_scaling=5.92556
wavecode_3_smoothing=0.00000
wavecode_3_r=0.650
wavecode_3_g=0.450
wavecode_3_b=1.000
wavecode_3_a=1.000
wave_3_init1=t2 = 0
wave_3_per_frame1=t1 = q1;
wave_3_per_frame2=t2 = q2;
wave_3_per_frame3=t3 = q3;
wave_3_per_frame4=t4 = q4;
wave_3_per_frame5=t5 = q5;
wave_3_per_frame6=t6 = q6;
wave_3_per_frame7=t7 = q7;
wave_3_per_frame8=t8 = q8;
wave_3_per_point1=sample = 1-sample;
wave_3_per_point2=xxx = xx;
wave_3_per_point3=yyy = yy;
wave_3_per_point4=xx = pow(sample,5)*t1 + 5*pow(sample,4)*(1-sample)*t1 + 10*pow(sample,3)*sqr(1-sample)*t2
wave_3_per_point5=+ 10*sqr(sample)*pow(1-sample,3)*t3 + 5*pow(1-sample,4)*sample*t4 + pow(1-sample,5)*t4;
wave_3_per_point6=
wave_3_per_point7=yy = pow(sample,5)*t5 + 5*pow(sample,4)*(1-sample)*t5 + 10*pow(sample,3)*sqr(1-sample)*t6
wave_3_per_point8=+ 10*sqr(sample)*pow(1-sample,3)*t7 + 5*pow(1-sample,4)*sample*t8 + pow(1-sample,5)*t8;
wave_3_per_point9=
wave_3_per_point10=d = 1/sqrt(sqr(xx-xxx)+sqr(yy-yyy));
wave_3_per_point11=dd = dd*0.95 + (value1);
wave_3_per_point12=ddd = dd*sample*(1-sample)*d;
wave_3_per_point13=ddd = sample*(1-sample)*sin(sample*200)*d*0.05;
wave_3_per_point14=x = xx + (yy-yyy)*ddd;
wave_3_per_point15=y = yy - (xx-xxx)*ddd;
shapecode_0_enabled=0
shapecode_0_sides=100
shapecode_0_additive=0
shapecode_0_thickOutline=1
shapecode_0_textured=0
shapecode_0_num_inst=1
shapecode_0_x=0.500
shapecode_0_y=0.500
shapecode_0_rad=0.04043
shapecode_0_ang=0.00000
shapecode_0_tex_ang=0.00000
shapecode_0_tex_zoom=0.73458
shapecode_0_r=0.000
shapecode_0_g=0.000
shapecode_0_b=0.000
shapecode_0_a=0.100
shapecode_0_r2=0.000
shapecode_0_g2=0.000
shapecode_0_b2=0.000
shapecode_0_a2=0.000
shapecode_0_border_r=1.000
shapecode_0_border_g=1.000
shapecode_0_border_b=1.000
shapecode_0_border_a=0.000
shape_0_init1=vx = 0
shapecode_1_enabled=0
shapecode_1_sides=100
shapecode_1_additive=1
shapecode_1_thickOutline=1
shapecode_1_textured=1
shapecode_1_num_inst=1
shapecode_1_x=0.700
shapecode_1_y=0.300
shapecode_1_rad=0.66230
shapecode_1_ang=2.45044
shapecode_1_tex_ang=0.00000
shapecode_1_tex_zoom=0.74934
shapecode_1_r=1.000
shapecode_1_g=0.100
shapecode_1_b=0.100
shapecode_1_a=1.000
shapecode_1_r2=1.000
shapecode_1_g2=0.100
shapecode_1_b2=0.100
shapecode_1_a2=1.000
shapecode_1_border_r=1.000
shapecode_1_border_g=1.000
shapecode_1_border_b=1.000
shapecode_1_border_a=0.000
shape_1_init1=xx = 0.5;
shape_1_init2=yy = 0.4;
shape_1_per_frame1=d = sqrt( sqr(xx-q4)+sqr(yy-q8));
shape_1_per_frame2=
shape_1_per_frame3=xx = if(below(d,0.15),0.4+rand(200)/1000,xx);
shape_1_per_frame4=yy = if(below(d,0.15),0.3+rand(400)/1000,yy);
shape_1_per_frame5=aang = if(below(d,0.12),rand(1000)/1000,aang);
shape_1_per_frame6=ang =aang*4*asin(1);
shape_1_per_frame7=x = xx;
shape_1_per_frame8=y = yy;
shapecode_2_enabled=0
shapecode_2_sides=100
shapecode_2_additive=1
shapecode_2_thickOutline=1
shapecode_2_textured=1
shapecode_2_num_inst=1
shapecode_2_x=0.430
shapecode_2_y=0.600
shapecode_2_rad=1.16781
shapecode_2_ang=5.96903
shapecode_2_tex_ang=0.00000
shapecode_2_tex_zoom=0.67165
shapecode_2_r=1.000
shapecode_2_g=0.000
shapecode_2_b=0.000
shapecode_2_a=1.000
shapecode_2_r2=1.000
shapecode_2_g2=0.000
shapecode_2_b2=0.000
shapecode_2_a2=1.000
shapecode_2_border_r=1.000
shapecode_2_border_g=1.000
shapecode_2_border_b=1.000
shapecode_2_border_a=0.000
shape_2_init1=xx = 0.5;
shape_2_init2=yy = 0.4;
shape_2_per_frame1=d = sqrt( sqr(xx-q4)+sqr(yy-q8));
shape_2_per_frame2=
shape_2_per_frame3=xx = if(below(d,0.15),0.4+rand(200)/1000,xx);
shape_2_per_frame4=yy = if(below(d,0.15),0.3+rand(400)/1000,yy);
shape_2_per_frame5=aang = if(below(d,0.12),rand(1000)/1000,aang);
shape_2_per_frame6=ang =aang*4*asin(1);
shape_2_per_frame7=x = xx;
shape_2_per_frame8=y = yy;
shapecode_3_enabled=0
shapecode_3_sides=100
shapecode_3_additive=1
shapecode_3_thickOutline=1
shapecode_3_textured=0
shapecode_3_num_inst=1
shapecode_3_x=0.500
shapecode_3_y=0.750
shapecode_3_rad=0.07059
shapecode_3_ang=0.00000
shapecode_3_tex_ang=0.00000
shapecode_3_tex_zoom=0.73458
shapecode_3_r=1.000
shapecode_3_g=0.500
shapecode_3_b=0.500
shapecode_3_a=1.000
shapecode_3_r2=0.000
shapecode_3_g2=0.000
shapecode_3_b2=0.000
shapecode_3_a2=0.000
shapecode_3_border_r=1.000
shapecode_3_border_g=1.000
shapecode_3_border_b=1.000
shapecode_3_border_a=0.000
shape_3_init1=vx = 0
shape_3_per_frame1=x = q1;
shape_3_per_frame2=y = q5;
per_frame_1=wave_r = wave_r + 0.2*( 0.60*sin(0.980*time) + 0.40*sin(1.047*time) );
per_frame_2=wave_g = wave_g + 0.2*( 0.60*sin(0.835*time) + 0.40*sin(1.081*time) );
per_frame_3=wave_b = wave_b + 0.2*( 0.60*sin(0.814*time) + 0.40*sin(1.011*time) );
per_frame_4=q1 = (cx*2-1) + 0.6*( 0.60*sin(0.374*time) + 0.40*sin(0.294*time) );
per_frame_5=q2 = (cy*2-1) + 0.6*( 0.60*sin(0.393*time) + 0.40*sin(0.223*time) );
per_pixel_1=du = (x*2-1) - q1;
per_pixel_2=dv = (y*2-1) - q2;
per_pixel_3=dist = sqrt(du*du+dv*dv);
per_pixel_4=ang2 = atan2(du,dv) + time*0.15;
per_pixel_5=mult = 0.65*sin(dist*0.05);
per_pixel_6=dx = mult*sin(ang2*2-1.5);
per_pixel_7=dy = mult*cos(ang2*2-1.5);
warp_1=`shader_body
warp_2=`{
warp_3=`    float2 scale = float2(1280,1024)*texsize.zw; // 1280x1024 : the resolution i modelled this shader with
warp_4=`    float1 d = 0.005;
warp_5=`    float1 dx = ( GetBlur2(uv + float2(d,0)) - GetBlur2(uv-float2(d,0)) ).x*scale.x;
warp_6=`    float1 dy = ( GetBlur2(uv + float2(0,d)) - GetBlur2(uv-float2(0,d)) ).x*scale.y;
warp_7=`    float1 dxb = ( GetBlur2(uv + float2(d,0)) - GetBlur2(uv-float2(d,0)) ).x*scale.x;
warp_8=`    float1 dyb = ( GetBlur2(uv + float2(0,d)) - GetBlur2(uv-float2(0,d)) ).x*scale.y;
warp_9=`    float2 my_uv = uv - float2(dx,dy)*0.01 + float2(dxb,dyb)*0.003;
warp_10=`
warp_11=`
warp_12=`
warp_13=`    float2 v = 0.01;
warp_14=`    ret.x = tex2D( sampler_fw_main, my_uv -floor(my_uv)*0).x;
warp_15=`
warp_16=`    
warp_17=`    ret.x += (ret.x - GetBlur3(uv).x)*.1;
warp_18=`    ret.x += 0.004;
warp_19=`
warp_20=`
warp_21=`//--------------------------------
warp_22=`
warp_23=`    my_uv = uv + float2(dy,-dx)*0.05*(1.2-GetBlur3(uv).y);
warp_24=`
warp_25=`
warp_26=`
warp_27=`    v = 0.01;
warp_28=`    ret.z = tex2D( sampler_fw_main, my_uv).z;
warp_29=`    
warp_30=`    ret.z += (ret.z - GetBlur1(uv).z)*length(my_uv-uv)*180/length(scale);
warp_31=`    ret.z *= 0.8;
warp_32=`    ret.z += 0.004;
warp_33=`
warp_34=`
warp_35=`
warp_36=`//--------------------------------
warp_37=`
warp_38=`    d = 0.01;
warp_39=`    my_uv = float2(-dy,dx)*0.045;
warp_40=`
warp_41=`    dx = ( GetBlur2(uv + float2(d,0)) - GetBlur2(uv-float2(d,0)) ).y*scale.x;
warp_42=`    dy = ( GetBlur2(uv + float2(0,d)) - GetBlur2(uv-float2(0,d)) ).y*scale.y;
warp_43=`    my_uv += uv - float2(dx,dy)*0.03;
warp_44=`
warp_45=`
warp_46=`
warp_47=`    v = 0.01;
warp_48=`    ret.y =tex2D( sampler_fw_main, my_uv).y;
warp_49=`
warp_50=`    
warp_51=`    ret.y += (ret.y - GetBlur3(my_uv).y)*0.2 + 0.0;
warp_52=`    ret = lerp(ret, tex2D(sampler_main,uv_orig), 0.2); //motionblur
warp_53=`
warp_54=`//ret = 0;
warp_55=`}
comp_1=`sampler sampler_rand00;
comp_2=`sampler sampler_rand01;
comp_3=`
comp_4=`shader_body
comp_5=`{
comp_6=`
comp_7=`float3 main = tex2D(sampler_main,uv);
comp_8=`    float2 d = texsize.zw*12;
comp_9=`    float3 dx = ( GetBlur1(uv + float2(1,0)*d) - GetBlur1(uv-float2(1,0)*d) );
comp_10=`    float3 dy = ( GetBlur1(uv + float2(0,1)*d) - GetBlur1(uv-float2(0,1)*d) );
comp_11=`    float2 my_uv = uv + float2(dx.y,dy.y)*0.1;
comp_12=`
comp_13=`float3 re;
comp_14=`
comp_15=`//uv = uv + 0.02*float2(cos(uv.y*27),sin(uv.x*39));
comp_16=`float2 m = float2(1-q4,q8);
comp_17=`float2 bg_uv = m + (uv-m)*0.992; // subtle 3D shadow drop
comp_18=`float2 mid_uv = m + (uv-m)*0.996;
comp_19=`ret = lerp( float3(0,0,0.2), float3(0.3,0,1),tex2D( sampler_fw_main, bg_uv).y);
comp_20=`ret = lerp(ret, float3(1,1,0), max(GetBlur1(bg_uv).z*1.5,tex2D( sampler_main, mid_uv).z)); // if that isn't a cool glow effect?
comp_21=`ret *= 1-GetBlur1(bg_uv).x*2; // drop shadow
comp_22=`ret = lerp( ret, float3(1,0.1,0.4),tex2D( sampler_fw_main, uv).x);
comp_23=`//ret = tex2D(sampler_main, uv);
comp_24=`re = tex2D( sampler_rand00, my_uv);
comp_25=`re = lerp( tex2D(sampler_rand01,my_uv), re, ret.x);
comp_26=`ret = lerp( re, 1-re, ret.y);
comp_27=`main.xy +=float2(0.5,0.5)*main.yx - GetBlur1(uv).zz*1.75 + float2(0,.6)*main.z;
comp_28=`main = lerp(main,float3(1,-0.3,-0.3),main.z);
comp_29=`ret = lerp(ret ,main*float3(1,1,0.7),.6);
comp_30=`}
