MILKDROP_PRESET_VERSION=201
PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=5.000000
fGammaAdj=1.000000
fDecay=1.000000
fVideoEchoZoom=0.999797
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=0
nWaveMode=7
bAdditiveWaves=0
bWaveDots=0
bWaveThick=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.004538
fWaveScale=0.167026
fWaveSmoothing=0.000000
fWaveParam=0.000001
fModWaveAlphaStart=1.000000
fModWaveAlphaEnd=1.000001
fWarpAnimSpeed=1.000000
fWarpScale=0.106584
fZoomExponent=4.100456
fShader=0.000000
zoom=1.000000
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=0.010000
sx=1.000000
sy=1.000000
wave_r=1.000000
wave_g=1.000000
wave_b=1.000000
wave_x=0.950000
wave_y=1.000000
ob_size=0.005000
ob_r=1.000000
ob_g=1.000000
ob_b=1.000000
ob_a=0.000000
ib_size=0.000000
ib_r=1.000000
ib_g=1.000000
ib_b=1.000000
ib_a=0.000000
nMotionVectorsX=64.000000
nMotionVectorsY=48.000000
mv_dx=0.000000
mv_dy=0.000000
mv_l=0.000000
mv_r=1.000000
mv_g=1.000000
mv_b=0.000000
mv_a=0.000000
b1n=0.000000
b2n=0.000000
b3n=0.000000
b1x=1.000000
b2x=1.000000
b3x=1.000000
b1ed=0.000000
wavecode_0_enabled=1
wavecode_0_samples=41
wavecode_0_sep=0
wavecode_0_bSpectrum=0
wavecode_0_bUseDots=1
wavecode_0_bDrawThick=0
wavecode_0_bAdditive=1
wavecode_0_scaling=0.010000
wavecode_0_smoothing=0.000000
wavecode_0_r=1.000000
wavecode_0_g=0.000000
wavecode_0_b=1.000000
wavecode_0_a=1.000000
wave_0_init1=t8 = 1;
wave_0_init2=t1 = q5;
wave_0_per_point1=x = rand(1001)*.001;
wave_0_per_point2=y = rand(1001)*.001;
wave_0_per_point3=
wave_0_per_point4=//r = rand(1001)*.001;
wave_0_per_point5=g=above(rand(1001)*.001,.9)*.5;
wave_0_per_point6=b = 0;
wave_0_per_point7=r = 0;
wave_0_per_point8=
wavecode_1_enabled=0
wavecode_1_samples=61
wavecode_1_sep=0
wavecode_1_bSpectrum=0
wavecode_1_bUseDots=0
wavecode_1_bDrawThick=0
wavecode_1_bAdditive=1
wavecode_1_scaling=0.012402
wavecode_1_smoothing=0.000000
wavecode_1_r=1.000000
wavecode_1_g=1.000000
wavecode_1_b=0.000000
wavecode_1_a=1.000000
wave_1_init1=t8 = 1;
wave_1_init2=t1 = q5;
wave_1_per_point1=x = (sample-.5)*.02 + .2;
wave_1_per_point2=y = .5;
wave_1_per_point3=r = 1;
wave_1_per_point4=g = 1;
wave_1_per_point5=b = 1;
wavecode_2_enabled=0
wavecode_2_samples=31
wavecode_2_sep=0
wavecode_2_bSpectrum=0
wavecode_2_bUseDots=1
wavecode_2_bDrawThick=1
wavecode_2_bAdditive=0
wavecode_2_scaling=0.013034
wavecode_2_smoothing=0.000000
wavecode_2_r=1.000000
wavecode_2_g=1.000000
wavecode_2_b=1.000000
wavecode_2_a=1.000000
wave_2_init1=t8 = 1;
wave_2_init2=t1 = q5;
wave_2_per_frame1=t1 = q5;
wave_2_per_frame2=t2 = q4;
wave_2_per_frame3=t3 = q6;
wave_2_per_point1=t8 = -t8;
wave_2_per_point2=d1 = 0.15 + t8*0.01 - value1*0.1*(t8+1);
wave_2_per_point3=dir1 = t2;
wave_2_per_point4=dir2 = t2*0.5 + t1*3/2 - t3*3;
wave_2_per_point5=dir3 = sample*asin(1)*4 + t3 - t2*5/6 + t1*3/2;
wave_2_per_point6=
wave_2_per_point7=x = 0.5 + sin(dir1)*0.1 + sin(dir2)*0.05 + sin(dir3)*d1;
wave_2_per_point8=y = 0.5 + cos(dir1)*0.1 + cos(dir2)*0.05 + cos(dir3)*d1;
wave_2_per_point9=y = (y-0.5)*1.2 + 0.5;
wavecode_3_enabled=0
wavecode_3_samples=511
wavecode_3_sep=4
wavecode_3_bSpectrum=0
wavecode_3_bUseDots=0
wavecode_3_bDrawThick=1
wavecode_3_bAdditive=1
wavecode_3_scaling=0.023445
wavecode_3_smoothing=0.000000
wavecode_3_r=1.000000
wavecode_3_g=1.000000
wavecode_3_b=1.000000
wavecode_3_a=0.990000
wave_3_init1=t2 = 0;
wave_3_init2=t3 = 0;
wave_3_init3=t4 = 0;
wave_3_init4=ab = 1;
wave_3_per_frame1=t1 = q4*0.75;
wave_3_per_frame2=t2 = q5*0.75;
wave_3_per_frame3=t3 = q6*0.75;
wave_3_per_frame4=t4 = q4*0.75;
wave_3_per_frame5=t5 = q5*0.75;
wave_3_per_frame6=t6 = q6*0.75;
wave_3_per_frame7=t8 = 1;
wave_3_per_point1=
wave_3_per_point2=pi = asin(1);
wave_3_per_point3=n = 80;
wave_3_per_point4=t8 = -t8;
wave_3_per_point5=rd = 0.075+0.02*(t8+1)/2;
wave_3_per_point6=xx = sin(sample*pi*4)*0.5 + cos(sample*pi*n)*rd*sin(sample*pi*4);
wave_3_per_point7=yy = cos(sample*pi*4)*0.5 + cos(sample*pi*n)*rd*cos(sample*pi*4);
wave_3_per_point8=zz = sin(sample*pi*n)*rd;
wave_3_per_point9=
wave_3_per_point10=d = sqrt( xx*xx + yy*yy + zz*zz)*0.004;
wave_3_per_point11=d1 = 1;
wave_3_per_point12=xx = xx*d1;
wave_3_per_point13=yy = yy*d1;
wave_3_per_point14=zz = zz*d1;
wave_3_per_point15=
wave_3_per_point16=
wave_3_per_point17=
wave_3_per_point18=
wave_3_per_point19=w1 = d*t4;
wave_3_per_point20=w2 = d*t5;
wave_3_per_point21=w3 = d*t6;
wave_3_per_point22=
wave_3_per_point23=s1 = sin(t1*1+w1);
wave_3_per_point24=s2 = sin(t2*1+w2);
wave_3_per_point25=s3 = sin(t3*1+w3);
wave_3_per_point26=c1 = cos(t1*1+w1);
wave_3_per_point27=c2 = cos(t2*1+w2);
wave_3_per_point28=c3 = cos(t3*1+w3);
wave_3_per_point29=
wave_3_per_point30=z = (c3*s1*c2 + s3*s2)*xx - (c3*s1*s2-s3*c2)*yy + c3*c1*zz;
wave_3_per_point31=x1 = (c1*c2*xx + c1*s2*yy - s1*zz);
wave_3_per_point32=y1 = ((s3*s1*c2 - c3*s2)*xx + (s3*s1*s2+c3*c2)*yy + s3*c1*zz);
wave_3_per_point33=
wave_3_per_point34=a = 0.5;
wave_3_per_point35=zoom = 0.5*atan2(a,a+z);//0.5*(1/(z+a));
wave_3_per_point36=x = 0.5 + zoom*x1;
wave_3_per_point37=y = 0.5 + zoom*y1;
wave_3_per_point38=
wave_3_per_point39=pi3 = 3.1415*2*0.3333;
wave_3_per_point40=t = -z*2 - time*0.8;//sample*pi*4-0*time +t4*3;
wave_3_per_point41=c=2;
wave_3_per_point42=r = sin(t)*c;
wave_3_per_point43=
wave_3_per_point44=g = sin(t+pi3)*c;
wave_3_per_point45=
wave_3_per_point46=b = sin(t-pi3)*c;
wave_3_per_point47=
wave_3_per_point48=j = 0.71;
wave_3_per_point49=//r = 0.5+xx*j;
wave_3_per_point50=//g = 0.5+yy*j;
wave_3_per_point51=//b = 0.5+zz*j;
wave_3_per_point52=
wave_3_per_point53=r = if(above(r,1),1,r);
wave_3_per_point54=r = if(below(r,0),0,r);
wave_3_per_point55=g = if(above(g,1),1,g);
wave_3_per_point56=g = if(below(g,0),0,g);
wave_3_per_point57=b = if(above(b,1),1,b);
wave_3_per_point58=b = if(below(b,0),0,b);
wave_3_per_point59=
wave_3_per_point60=a = sigmoid(-z,7)+0.;
wave_3_per_point61=
shapecode_0_enabled=0
shapecode_0_sides=34
shapecode_0_additive=0
shapecode_0_thickOutline=1
shapecode_0_textured=1
shapecode_0_x=0.750000
shapecode_0_y=0.500000
shapecode_0_rad=0.304784
shapecode_0_ang=0.000000
shapecode_0_tex_ang=1.570796
shapecode_0_tex_zoom=0.827733
shapecode_0_r=1.000000
shapecode_0_g=0.000000
shapecode_0_b=1.000000
shapecode_0_a=1.000000
shapecode_0_r2=1.000000
shapecode_0_g2=1.000000
shapecode_0_b2=1.000000
shapecode_0_a2=0.000000
shapecode_0_border_r=1.000000
shapecode_0_border_g=1.000000
shapecode_0_border_b=1.000000
shapecode_0_border_a=0.000000
shape_0_init1=vx = 0;
shape_0_init2=vy = 0;
shape_0_per_frame1=rad = .3;
shape_0_per_frame2=tex_zoom = .28;
shape_0_per_frame3=tex_zoom = 1/rad*tex_zoom;
shape_0_per_frame4=
shape_0_per_frame5=x = .5 + sin(time*.957)*.1;
shapecode_1_enabled=0
shapecode_1_sides=74
shapecode_1_additive=0
shapecode_1_thickOutline=1
shapecode_1_textured=1
shapecode_1_x=0.250000
shapecode_1_y=0.500000
shapecode_1_rad=0.453782
shapecode_1_ang=0.000000
shapecode_1_tex_ang=0.000000
shapecode_1_tex_zoom=0.503296
shapecode_1_r=1.000000
shapecode_1_g=1.000000
shapecode_1_b=1.000000
shapecode_1_a=1.000000
shapecode_1_r2=0.000000
shapecode_1_g2=1.000000
shapecode_1_b2=1.000000
shapecode_1_a2=0.000000
shapecode_1_border_r=1.000000
shapecode_1_border_g=1.000000
shapecode_1_border_b=1.000000
shapecode_1_border_a=0.000000
shape_1_per_frame1=rad = .3;
shape_1_per_frame2=tex_zoom = .3;
shape_1_per_frame3=tex_zoom = 1/rad*tex_zoom;
shape_1_per_frame4=
shape_1_per_frame5=x = .5 + sin(time)*.15;
shapecode_2_enabled=1
shapecode_2_sides=84
shapecode_2_additive=1
shapecode_2_thickOutline=1
shapecode_2_textured=0
shapecode_2_x=0.500000
shapecode_2_y=0.500000
shapecode_2_rad=0.167768
shapecode_2_ang=0.000000
shapecode_2_tex_ang=0.000000
shapecode_2_tex_zoom=0.503296
shapecode_2_r=0.000000
shapecode_2_g=0.000000
shapecode_2_b=0.200000
shapecode_2_a=0.600000
shapecode_2_r2=0.000000
shapecode_2_g2=0.000000
shapecode_2_b2=0.000000
shapecode_2_a2=0.000000
shapecode_2_border_r=1.000000
shapecode_2_border_g=1.000000
shapecode_2_border_b=1.000000
shapecode_2_border_a=0.000000
shape_2_init1=vx = 0;
shape_2_init2=vy = 0;
shape_2_per_frame1=ti = time*.3;
shape_2_per_frame2=x = .5 + .34*sin(ti);
shape_2_per_frame3=y = .5 + .34*cos(ti);
shape_2_per_frame4=
shape_2_per_frame5=rad = rad + bass;
shape_2_per_frame6=
shape_2_per_frame7=ti = time*2.3;
shape_2_per_frame8=x = x + .1*sin(ti);
shape_2_per_frame9=y = y + .1*cos(ti);
shapecode_3_enabled=0
shapecode_3_sides=74
shapecode_3_additive=1
shapecode_3_thickOutline=0
shapecode_3_textured=0
shapecode_3_x=0.500000
shapecode_3_y=0.500000
shapecode_3_rad=0.167769
shapecode_3_ang=0.000000
shapecode_3_tex_ang=0.000000
shapecode_3_tex_zoom=1.000000
shapecode_3_r=1.000000
shapecode_3_g=0.000000
shapecode_3_b=0.000000
shapecode_3_a=1.000000
shapecode_3_r2=1.000000
shapecode_3_g2=0.000000
shapecode_3_b2=0.000000
shapecode_3_a2=1.000000
shapecode_3_border_r=1.000000
shapecode_3_border_g=1.000000
shapecode_3_border_b=0.000000
shapecode_3_border_a=0.100000
shape_3_per_frame1=ti = -time*.3;
shape_3_per_frame2=x = .5 + .3*sin(ti);
shape_3_per_frame3=y = .5 + .3*cos(ti);
shape_3_per_frame4=
shape_3_per_frame5=ti = -time*2.3;
shape_3_per_frame6=x = x + .2*sin(ti);
shape_3_per_frame7=y = y + .2*cos(ti);
per_frame_1=//begin beat code
per_frame_2=volume = 0.3*(bass+mid);
per_frame_3=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);
per_frame_4=lastbeat = lastbeat + equal(lastbeat,0)*time;
per_frame_5=meanbass_att = 0.05*(meanbass_att*19 + bass_att);
per_frame_6=peakbass_att = max(bass_att,peakbass_att);
per_frame_7=beat = above(volume,0.8)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));
per_frame_8=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);
per_frame_9=//Adjust responsiveness: To increase responsiveness, set the "0.96 and "0.996" on the next line to slightly lower values. Higher values decrease responsiveness.
per_frame_10=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.96 + (1-above(time - lastbeat, 2*beatrate))*0.996);
per_frame_11=lastbeat = beat*time + (1-beat)*lastbeat;
per_frame_12=peakbass_att = max(peakbass_att,1.1*meanbass_att);
per_frame_13=//end beat code
per_frame_14=
per_frame_15=zoom = 1;
per_frame_16=decay = 1;
per_frame_17=warp = 0;
per_frame_18=wave_a = 0;
per_frame_19=
per_frame_20=tic = min(time-tin,.1);
per_frame_21=tin = time;
per_frame_22=
per_frame_23=q2 = 1;
per_frame_24=
per_frame_25=q1=1;
per_frame_26=vol = vol + ((alt + bass + mid)/3-vol)*tic*1;
per_frame_27=q5 = vol*vol*vol*2;
per_frame_28=
per_frame_29=
per_frame_30=q8 = sin(time)*.5;
per_frame_31=q9 = sin(time*.75)*.5;
per_frame_32=
per_frame_33=sw = abs(sw - beat);
per_frame_34=an = an + tic*.5*(1-2*sw);
per_frame_35=
per_frame_36=
per_frame_37=q7 = 1+(pow(q8,2) + pow(q9,2))*1;
per_frame_38=q10 = sin(an);
per_frame_39=q11 = cos(an);
per_frame_40=
per_frame_41=sp = sp + tic*vol*vol*.5;
per_frame_42=
per_frame_43=q12 = sp;
per_frame_44=
per_frame_45=monitor = q12;
per_pixel_1=//zoom = pow(rad,2)+.01;
warp_1=`
warp_2=`shader_body
warp_3=`{
warp_4=`
warp_5=`ret.xyz = tex2D(sampler_main, uv_orig).xyz*float3(.97,1,.97) - float3(.03,0,.03);
warp_6=`
warp_7=`ret.z += GetBlur1(uv_orig).z*.45;
warp_8=`ret.x += GetBlur1(uv_orig).z*.05 + GetBlur3(uv_orig).z*.05;
warp_9=`ret.z -= ret.x;
warp_10=`
warp_11=`float2 pixelsize = texsize.zw;
warp_12=`ret.y = saturate(tex2D( sampler_pw_main,uv_orig).y);
warp_13=`
warp_14=`float1 conway = tex2D( sampler_pw_main, uv_orig + float2(-1,-1)*pixelsize).y;
warp_15=`       conway += tex2D( sampler_pw_main, uv_orig + float2(0,-1)*pixelsize).y;
warp_16=`       conway += tex2D( sampler_pw_main, uv_orig + float2(1,-1)*pixelsize).y;
warp_17=`       conway += tex2D( sampler_pw_main, uv_orig + float2(-1,0)*pixelsize).y;
warp_18=`       conway += tex2D( sampler_pw_main, uv_orig + float2(1,0)*pixelsize).y;
warp_19=`       conway += tex2D( sampler_pw_main, uv_orig + float2(-1,1)*pixelsize).y;
warp_20=`       conway += tex2D( sampler_pw_main, uv_orig + float2(0,1)*pixelsize).y;
warp_21=`       conway += tex2D( sampler_pw_main, uv_orig + float2(1,1)*pixelsize).y;
warp_22=`
warp_23=`float1 test = q5*(1-GetBlur1(uv_orig).y)*(1-GetBlur2(uv_orig).y)*(1-GetBlur3(uv_orig).y);
warp_24=`
warp_25=`conway -= tex2D( sampler_pw_main, uv_orig).x;
warp_26=`
warp_27=`
warp_28=`if (conway > 0) {
warp_29=`if (saturate(ret.y) == 0) {
warp_30=`ret.y = floor(test*1.8)*q1;
warp_31=`}
warp_32=`}
warp_33=`
warp_34=`ret.y -= ret.x;
warp_35=`
warp_36=`ret.xyz -= 1-q2;
warp_37=`}
comp_1=`sampler sampler_rose;
comp_2=`shader_body
comp_3=`{
comp_4=`
comp_5=`float2 uvm = (uv - .5)*q7*(1/(1-rad*.1+q9*(uv.x - .5)+q8*(uv.y - .5)))+.5;
comp_6=`
comp_7=`uvm = (uvm - .5);
comp_8=`uvm = (q10*uvm.xy + float2(1,-1)*q11*uvm.yx)*aspect.zw + .5;
comp_9=`
comp_10=`
comp_11=`uvm = abs(frac((uvm+q12)*.5) - .5)*2;
comp_12=`
comp_13=`
comp_14=`float2 uv3 = tex2D( sampler_main, uvm).zzz;
comp_15=`uv3 = (uv3.xy-0.37) * .13 + uvm;
comp_16=`
comp_17=`
comp_18=`ret.xyz = tex2D(sampler_pw_main, uvm).yyy;
comp_19=`
comp_20=`ret = lerp (
comp_21=`GetBlur1(uv3).z + GetBlur3(uv3).z,
comp_22=`ret,
comp_23=`ret);
comp_24=`  
comp_25=`ret = pow(ret,float3(.5,1,2)) - .25;
comp_26=`
comp_27=`ret *= GetBlur3(uv3).y;
comp_28=`
comp_29=`//ret = tex2D(sampler_pw_main, uv).xyz;
comp_30=`
comp_31=`}
