MILKDROP_PRESET_VERSION=201
PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=5.000000
fGammaAdj=1.0
fDecay=1.0
fVideoEchoZoom=0.999797
fVideoEchoAlpha=0.0
nVideoEchoOrientation=2
nWaveMode=1
bAdditiveWaves=0
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=0
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.004361
fWaveScale=0.010000
fWaveSmoothing=0.0
fWaveParam=-0.440000
fModWaveAlphaStart=1.0
fModWaveAlphaEnd=1.000001
fWarpAnimSpeed=0.010000
fWarpScale=100.0
fZoomExponent=0.321044
fShader=0.0
zoom=1.0
rot=0.0
cx=0.5
cy=0.5
dx=0.0
dy=0.0
warp=0.010000
sx=1.0
sy=1.0
wave_r=1.0
wave_g=1.0
wave_b=1.0
wave_x=0.5
wave_y=0.040000
ob_size=0.005000
ob_r=0.0
ob_g=0.0
ob_b=0.0
ob_a=1.0
ib_size=0.0
ib_r=0.0
ib_g=0.0
ib_b=0.0
ib_a=1.0
nMotionVectorsX=0.0
nMotionVectorsY=0.0
mv_dx=0.0
mv_dy=0.0
mv_l=1.0
mv_r=1.0
mv_g=0.910000
mv_b=0.710000
mv_a=0.0
b1n=0.0
b2n=0.0
b3n=0.0
b1x=1.0
b2x=1.0
b3x=1.0
b1ed=0.0
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.444150
wavecode_0_smoothing=0.0
wavecode_0_r=1.0
wavecode_0_g=1.0
wavecode_0_b=1.0
wavecode_0_a=0.0
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=0
wavecode_1_samples=512
wavecode_1_sep=0
wavecode_1_bSpectrum=0
wavecode_1_bUseDots=0
wavecode_1_bDrawThick=0
wavecode_1_bAdditive=0
wavecode_1_scaling=7.751800
wavecode_1_smoothing=0.0
wavecode_1_r=1.0
wavecode_1_g=1.0
wavecode_1_b=1.0
wavecode_1_a=1.0
wave_1_init1=t2 = 0;
wave_1_init2=t3 = 0;
wave_1_init3=t4 = 0;
wave_1_init4=cl = 0;
wave_1_per_frame1=t8 = 1;
wave_1_per_frame2=
wave_1_per_frame3=t1 = 0.5;
wave_1_per_frame4=t2 = 0.9;
wave_1_per_point1=d = d*0.85 + (value1)*1;
wave_1_per_point2=
wave_1_per_point3=x = 0.5 + d*sample*(1-sample);
wave_1_per_point4=y = 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.925558
wavecode_2_smoothing=0.0
wavecode_2_r=1.0
wavecode_2_g=0.0
wavecode_2_b=0.0
wavecode_2_a=0.660000
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.925558
wavecode_3_smoothing=0.0
wavecode_3_r=0.650000
wavecode_3_g=0.450000
wavecode_3_b=1.0
wavecode_3_a=1.0
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=1
shapecode_0_sides=100
shapecode_0_additive=1
shapecode_0_thickOutline=1
shapecode_0_textured=0
shapecode_0_x=0.5
shapecode_0_y=0.750000
shapecode_0_rad=0.074934
shapecode_0_ang=0.0
shapecode_0_tex_ang=0.0
shapecode_0_tex_zoom=0.734576
shapecode_0_r=1.0
shapecode_0_g=1.0
shapecode_0_b=0.0
shapecode_0_a=1.0
shapecode_0_r2=0.0
shapecode_0_g2=0.0
shapecode_0_b2=0.0
shapecode_0_a2=0.0
shapecode_0_border_r=1.0
shapecode_0_border_g=1.0
shapecode_0_border_b=1.0
shapecode_0_border_a=0.0
shape_0_init1=vx = 0
shape_0_per_frame1=x = q4;
shape_0_per_frame2=y = q8;
shapecode_1_enabled=1
shapecode_1_sides=100
shapecode_1_additive=1
shapecode_1_thickOutline=1
shapecode_1_textured=1
shapecode_1_x=0.7
shapecode_1_y=0.3
shapecode_1_rad=0.662300
shapecode_1_ang=2.450441
shapecode_1_tex_ang=0.0
shapecode_1_tex_zoom=0.749341
shapecode_1_r=1.0
shapecode_1_g=0.1
shapecode_1_b=0.1
shapecode_1_a=1.0
shapecode_1_r2=1.0
shapecode_1_g2=0.1
shapecode_1_b2=0.1
shapecode_1_a2=1.0
shapecode_1_border_r=1.0
shapecode_1_border_g=1.0
shapecode_1_border_b=1.0
shapecode_1_border_a=0.0
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=1
shapecode_2_sides=100
shapecode_2_additive=1
shapecode_2_thickOutline=1
shapecode_2_textured=1
shapecode_2_x=0.430000
shapecode_2_y=0.6
shapecode_2_rad=1.167812
shapecode_2_ang=5.969028
shapecode_2_tex_ang=0.0
shapecode_2_tex_zoom=0.671652
shapecode_2_r=1.0
shapecode_2_g=0.0
shapecode_2_b=0.0
shapecode_2_a=1.0
shapecode_2_r2=1.0
shapecode_2_g2=0.0
shapecode_2_b2=0.0
shapecode_2_a2=1.0
shapecode_2_border_r=1.0
shapecode_2_border_g=1.0
shapecode_2_border_b=1.0
shapecode_2_border_a=0.0
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_x=0.5
shapecode_3_y=0.750000
shapecode_3_rad=0.070592
shapecode_3_ang=0.0
shapecode_3_tex_ang=0.0
shapecode_3_tex_zoom=0.734576
shapecode_3_r=1.0
shapecode_3_g=0.5
shapecode_3_b=0.5
shapecode_3_a=1.0
shapecode_3_r2=0.0
shapecode_3_g2=0.0
shapecode_3_b2=0.0
shapecode_3_a2=0.0
shapecode_3_border_r=1.0
shapecode_3_border_g=1.0
shapecode_3_border_b=1.0
shapecode_3_border_a=0.0
shape_3_init1=vx = 0
shape_3_per_frame1=x = q1;
shape_3_per_frame2=y = q5;
per_frame_init_1=x1 = 0;
per_frame_init_2=y1 = 0;
per_frame_1=decay = 0.25;
per_frame_2=xx1 = xx1*0.9 + (bass)*0.01;
per_frame_3=xx2 = xx2*0.9 + (treb)*0.01;
per_frame_4=yy1 = yy1*0.94 + (treb+bass)*0.0075;
per_frame_5=
per_frame_6=x1 = 0.5 + (xx1-xx2)*2;
per_frame_7=y1 = 0.4 + yy1;
per_frame_8=
per_frame_9=x1 = max(0,min(1,x1));
per_frame_10=y1 = max(0,min(1,y1));
per_frame_11=//x2 = 0;y2 = 0;x3 = 0;y3 = 0;x4 = 0;y4 = 0;
per_frame_12=
per_frame_13=spring = 50;
per_frame_14=grav = 2;
per_frame_15=resist = 5;
per_frame_16=bounce = 0.75;
per_frame_17=dt = 0.0005;
per_frame_18=
per_frame_19=spx2 = (x1+x3-2*x2)*spring;
per_frame_20=spy2 = (y1+y3-2*y2)*spring;
per_frame_21=spx3 = (x2+x4-2*x3)*spring;
per_frame_22=spy3 = (y2+y4-2*y3)*spring;
per_frame_23=spx4 = (x3-x4)*spring;
per_frame_24=spy4 = (y3-y4)*spring;
per_frame_25=
per_frame_26=vx2 = vx2*(1-resist*dt) + dt*(spx2);
per_frame_27=vy2 = vy2*(1-resist*dt) + dt*(spy2-grav);
per_frame_28=vx3 = vx3*(1-resist*dt) + dt*(spx3);
per_frame_29=vy3 = vy3*(1-resist*dt) + dt*(spy3-grav);
per_frame_30=vx4 = vx4*(1-resist*dt) + dt*(spx4);
per_frame_31=vy4 = vy4*(1-resist*dt) + dt*(spy4-grav);
per_frame_32=
per_frame_33=x2 = x2 + vx2;
per_frame_34=y2 = y2 + vy2;
per_frame_35=x3 = x3 + vx3;
per_frame_36=y3 = y3 + vy3;
per_frame_37=x4 = x4 + vx4;
per_frame_38=y4 = y4 + vy4;
per_frame_39=
per_frame_40=vx2 = if(above(x2,0.1),vx2,abs(vx2)*bounce);
per_frame_41=vx2 = if(below(x2,0.9),vx2,-abs(vx2)*bounce);
per_frame_42=vx3 = if(above(x3,0.1),vx3,abs(vx3)*bounce);
per_frame_43=vx3 = if(below(x3,0.9),vx3,-abs(vx3)*bounce);
per_frame_44=vx4 = if(above(x4,0.1),vx4,abs(vx4)*bounce);
per_frame_45=vx4 = if(below(x4,0.9),vx4,-abs(vx4)*bounce);
per_frame_46=
per_frame_47=vy2 = if(above(y2,0),vy2,abs(vy2)*bounce);
per_frame_48=vy2 = if(below(y2,1),vy2,-abs(vy2)*bounce);
per_frame_49=vy3 = if(above(y3,0),vy3,abs(vy3)*bounce);
per_frame_50=vy3 = if(below(y3,1),vy3,-abs(vy3)*bounce);
per_frame_51=vy4 = if(above(y4,0),vy4,abs(vy4)*bounce);
per_frame_52=vy4 = if(below(y4,1),vy4,-abs(vy4)*bounce);
per_frame_53=
per_frame_54=
per_frame_55=q1 = x1;
per_frame_56=q2 = x2;
per_frame_57=q3 = x3;
per_frame_58=q4 = x4;
per_frame_59=
per_frame_60=q5 = y1;
per_frame_61=q6 = y2;
per_frame_62=q7 = y3;
per_frame_63=q8 = y4;
per_frame_64=
per_frame_65=monitor = ry4;
per_frame_66=
per_frame_67=zoom = 1;
warp_1=`shader_body
warp_2=`{
warp_3=`    float1 d = 0.005;
warp_4=`    float1 dx = ( GetBlur2(uv + float2(d,0)) - GetBlur2(uv-float2(d,0)) ).y;
warp_5=`    float1 dy = ( GetBlur2(uv + float2(0,d)) - GetBlur2(uv-float2(0,d)) ).y;
warp_6=`    float2 my_uv = uv - float2(dx,dy)*0.01;
warp_7=`
warp_8=`
warp_9=`
warp_10=`    float2 v = 0.01;
warp_11=`    ret.y = tex2D( sampler_fc_main, my_uv-floor(my_uv)).y;
warp_12=`
warp_13=`    
warp_14=`    ret.y += (ret.y - GetBlur3(my_uv-floor(my_uv)).y)*.1;
warp_15=`    ret.y += 0.006-GetBlur3(uv-floor(uv)).x*5;
warp_16=`
warp_17=`    ret.y = lerp( ret.y, lum(ret).x, 0);
warp_18=`
warp_19=`//--------------------------------
warp_20=`
warp_21=`    d = 0.01;
warp_22=`    my_uv = float2(-dy,dx)*0.05;
warp_23=`
warp_24=`    dx = ( GetBlur2(uv + float2(d,0)) - GetBlur2(uv-float2(d,0)) ).z;
warp_25=`    dy = ( GetBlur2(uv + float2(0,d)) - GetBlur2(uv-float2(0,d)) ).z;
warp_26=`    my_uv += uv - float2(dx,dy)*0.005;
warp_27=`
warp_28=`
warp_29=`
warp_30=`    v = 0.01;
warp_31=`    ret.z =tex2D( sampler_fw_main, my_uv - floor(my_uv)).z;
warp_32=`
warp_33=`    
warp_34=`    ret.z += (ret.z - GetBlur3(my_uv-floor(my_uv)).z)*0.13;
warp_35=`    ret.z *= 0.95;
warp_36=`    ret.z += 0.03-GetBlur3(uv-floor(uv)).x - tex2D( sampler_main, my_uv - floor(my_uv)).y*0.05;
warp_37=`
warp_38=`    ret.x = tex2D( sampler_main, uv_orig).x - 0.3;
warp_39=`
warp_40=`}
comp_1=`shader_body
comp_2=`{
comp_3=`    float3 c = tex2D(sampler_main, uv);
comp_4=`    float2 s1 = float2(0.51,0.5);
comp_5=`    float2 s2 = float2(0.5,0.5);
comp_6=`    float2 uv1 = s1 + (uv-0.5)*1;
comp_7=`    float2 uv2 = s2 + (uv-0.5)*0.96;
comp_8=`    float1 b3c1 = GetBlur3(uv1).x;
comp_9=`    float1 b2c0 = GetBlur2(uv).x;
comp_10=`    float1 b1c2 = GetBlur1(uv2).x;
comp_11=`    ret = lerp(float3(1,1,0.5),float3(0.15,0,0.2),1-b3c1);
comp_12=`    ret = lerp(ret,float3(0.0,0.0,0),b2c0.x);
comp_13=`    ret = lerp(ret,float3(-0.2,0,0.5),b1c2.x);
comp_14=`    ret = lerp(ret,float3(0.9,0.7,0),c.x);
comp_15=`    ret = lerp(ret,float3(0.5,0.5,0),c.y);
comp_16=`    ret = lerp(ret,0,GetBlur1(uv).z*2 - c.y*1);
comp_17=`    ret = lerp(ret,float3(0.5,0,0.1),c.z);
comp_18=`
comp_19=`}
