MILKDROP_PRESET_VERSION=201
PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=4.0
fGammaAdj=1.0
fDecay=1.0
fVideoEchoZoom=1.007
fVideoEchoAlpha=0.5
nVideoEchoOrientation=1
nWaveMode=2
bAdditiveWaves=1
bWaveDots=0
bWaveThick=0
bModWaveAlphaByVolume=1
bMaximizeWaveColor=1
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.088
fWaveScale=3.815
fWaveSmoothing=0.9
fWaveParam=0.0
fModWaveAlphaStart=0.0
fModWaveAlphaEnd=1.1
fWarpAnimSpeed=1.0
fWarpScale=1.0
fZoomExponent=1.0
fShader=0.0
zoom=0.99980
rot=0.0
cx=0.5
cy=0.5
dx=0.0
dy=0.0
warp=0.01000
sx=1.0
sy=1.0
wave_r=0.650
wave_g=0.650
wave_b=1.0
wave_x=0.5
wave_y=0.5
ob_size=0.007
ob_r=0.0
ob_g=0.0
ob_b=0.0
ob_a=0.0
ib_size=0.260
ib_r=0.250
ib_g=0.250
ib_b=0.250
ib_a=0.0
nMotionVectorsX=64.0
nMotionVectorsY=48.0
mv_dx=0.0
mv_dy=0.0
mv_l=0.850
mv_r=0.5
mv_g=0.5
mv_b=0.5
mv_a=0.0
b1n=0.0
b2n=0.0
b3n=0.0
b1x=1.0
b2x=1.0
b3x=1.0
b1ed=0.250
wavecode_0_enabled=0
wavecode_0_samples=512
wavecode_0_sep=0
wavecode_0_bSpectrum=0
wavecode_0_bUseDots=0
wavecode_0_bDrawThick=0
wavecode_0_bAdditive=0
wavecode_0_scaling=1.0
wavecode_0_smoothing=0.5
wavecode_0_r=1.0
wavecode_0_g=1.0
wavecode_0_b=1.0
wavecode_0_a=1.0
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=1.0
wavecode_1_smoothing=0.5
wavecode_1_r=1.0
wavecode_1_g=1.0
wavecode_1_b=1.0
wavecode_1_a=1.0
wavecode_2_enabled=0
wavecode_2_samples=512
wavecode_2_sep=0
wavecode_2_bSpectrum=0
wavecode_2_bUseDots=0
wavecode_2_bDrawThick=0
wavecode_2_bAdditive=0
wavecode_2_scaling=1.0
wavecode_2_smoothing=0.5
wavecode_2_r=1.0
wavecode_2_g=1.0
wavecode_2_b=1.0
wavecode_2_a=1.0
wavecode_3_enabled=0
wavecode_3_samples=512
wavecode_3_sep=0
wavecode_3_bSpectrum=0
wavecode_3_bUseDots=0
wavecode_3_bDrawThick=0
wavecode_3_bAdditive=0
wavecode_3_scaling=1.0
wavecode_3_smoothing=0.5
wavecode_3_r=1.0
wavecode_3_g=1.0
wavecode_3_b=1.0
wavecode_3_a=1.0
shapecode_0_enabled=1
shapecode_0_sides=3
shapecode_0_additive=0
shapecode_0_thickOutline=0
shapecode_0_textured=0
shapecode_0_num_inst=1
shapecode_0_x=0.480
shapecode_0_y=0.510
shapecode_0_rad=6.81129
shapecode_0_ang=3.64425
shapecode_0_tex_ang=0.0
shapecode_0_tex_zoom=1.0
shapecode_0_r=0.0
shapecode_0_g=0.0
shapecode_0_b=0.0
shapecode_0_a=0.8
shapecode_0_r2=0.0
shapecode_0_g2=0.0
shapecode_0_b2=1.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=t1 = rand(100)*0.01;
shape_0_init2=t2 = rand(100)*0.01;
shape_0_per_frame1=x = x + 0.23*cos(time*0.01317+1);
shape_0_per_frame2=y = y + 0.17*cos(time*0.00843+3);
shape_0_per_frame3=ang = q1*(0.303 + 0.01*t1 + instance);
shape_0_per_frame4=r = min(1,max(0,0+ 0.1*sin(time*0.417 + 1)));
shape_0_per_frame5=g = min(1,max(0,0 + 0.1*sin(time*0.391 + 2)));
shape_0_per_frame6=b = min(1,max(0,0 + 0.1*sin(time*0.432 + 4)));
shape_0_per_frame7=r2 = min(1,max(0,r2 + 0.02*sin(time*0.657 + 3)));
shape_0_per_frame8=g2 = min(1,max(0,g2 + 0.02*sin(time*0.737 + 5)));
shape_0_per_frame9=b2 = min(1,max(0,b2 + 0.02*sin(time*0.884 + 6)));
shape_0_per_frame10=additive =0.5+0.15*(bass+bass_att);
shapecode_1_enabled=1
shapecode_1_sides=100
shapecode_1_additive=0
shapecode_1_thickOutline=0
shapecode_1_textured=1
shapecode_1_num_inst=1
shapecode_1_x=0.440
shapecode_1_y=0.5
shapecode_1_rad=0.89796
shapecode_1_ang=3.64425
shapecode_1_tex_ang=0.0
shapecode_1_tex_zoom=1.0
shapecode_1_r=1.0
shapecode_1_g=1.0
shapecode_1_b=1.0
shapecode_1_a=1.0
shapecode_1_r2=1.0
shapecode_1_g2=1.0
shapecode_1_b2=1.0
shapecode_1_a2=0.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=t1 = rand(100)*0.01;
shape_1_init2=t2 = rand(100)*0.01;
shape_1_per_frame1=x = x + 0.17*sin(q1*0.15+3);
shape_1_per_frame2=y = y + 0.13*sin(q1*0.19+1);
shape_1_per_frame3=tex_ang = q1*(0.01 + 0.0001*t1);
shape_1_per_frame4=r = min(1,max(0,r + 0.01*sin(time*0.0417 + 1)));
shape_1_per_frame5=g = min(1,max(0,g + 0.01*sin(time*0.391 + 2)));
shape_1_per_frame6=b = min(1,max(0,b + 0.01*sin(time*0.432 + 4)));
shape_1_per_frame7=r2 = min(1,max(0,r2 + 0.01*sin(time*0.457 + 3)));
shape_1_per_frame8=g2 = min(1,max(0,g2 + 0.01*sin(time*0.0437 + 5)));
shape_1_per_frame9=b2 = min(1,max(0,b2 + 0.01*sin(time*0.484 + 6)));
shapecode_2_enabled=1
shapecode_2_sides=100
shapecode_2_additive=1
shapecode_2_thickOutline=0
shapecode_2_textured=1
shapecode_2_num_inst=1
shapecode_2_x=0.530
shapecode_2_y=0.460
shapecode_2_rad=0.51386
shapecode_2_ang=4.20974
shapecode_2_tex_ang=0.0
shapecode_2_tex_zoom=1.0
shapecode_2_r=1.0
shapecode_2_g=1.0
shapecode_2_b=1.0
shapecode_2_a=1.0
shapecode_2_r2=1.0
shapecode_2_g2=1.0
shapecode_2_b2=0.0
shapecode_2_a2=0.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=t1 = rand(100)*0.01;
shape_2_init2=t2 = rand(100)*0.01;
shape_2_per_frame1=x = x + 0.25*sin(q1*0.017);
shape_2_per_frame2=y = y + 0.19*sin(q1*0.013);
shape_2_per_frame3=tex_ang = q1*(0.02 + 0.0001*t1);
shape_2_per_frame4=rad = rad * (0.9 + 0.2*t2);
shape_2_per_frame5=r = min(1,max(0,r + 0.01*sin(time*0.417 + 1)));
shape_2_per_frame6=g = min(1,max(0,g + 0.01*sin(time*0.391 + 2)));
shape_2_per_frame7=b = min(1,max(0,b + 0.01*sin(time*0.432 + 4)));
shape_2_per_frame8=r2 = min(1,max(0,r2 + 0.01*sin(time*0.457 + 3)));
shape_2_per_frame9=g2 = min(1,max(0,g2 + 0.01*sin(time*0.437 + 5)));
shape_2_per_frame10=b2 = min(1,max(0,b2 + 0.01*sin(time*0.484 + 6)));
shapecode_3_enabled=1
shapecode_3_sides=100
shapecode_3_additive=1
shapecode_3_thickOutline=0
shapecode_3_textured=1
shapecode_3_num_inst=1
shapecode_3_x=0.5
shapecode_3_y=0.5
shapecode_3_rad=0.44747
shapecode_3_ang=0.0
shapecode_3_tex_ang=1.88496
shapecode_3_tex_zoom=1.48886
shapecode_3_r=0.6
shapecode_3_g=0.8
shapecode_3_b=1.0
shapecode_3_a=1.0
shapecode_3_r2=1.0
shapecode_3_g2=1.0
shapecode_3_b2=0.5
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_per_frame1=x = x + 0.21*sin(q1*0.25);
shape_3_per_frame2=y = y + 0.17*sin(q1*0.5+2);
shape_3_per_frame3=ang = time;
per_frame_1=movement = movement + 0.1*max(0,bass+bass_att-2) + 0.15*pow(bass,3) + 0.005;
per_frame_2=q1 = movement;
per_frame_3=monitor =q1;
warp_1=`shader_body
warp_2=`{
warp_3=`    // PAINTERLY EFFECT:
warp_4=`    float2 uv2 = uv;
warp_5=`    const float mipbias = 0;
warp_6=`    float2 delta2 = texsize.zw*float2(1,1);
warp_7=`    float3 blurry_color = tex2D( sampler_main, uv2 + delta2 ).xyz;
warp_8=`    //uv2.xy += (blurry_color.xy-0.37) * 0.005;
warp_9=`
warp_10=`  
warp_11=`    // sample previous frame
warp_12=`    ret = tex2D( sampler_main, uv2 ).xyz;
warp_13=`
warp_14=`    ret += (ret - GetBlur1(uv2))*0.2;
warp_15=`
warp_16=`    // darken over time
warp_17=`    ret -= 0.02;    
warp_18=`}
comp_1=`shader_body
comp_2=`{
comp_3=`    ret = tex2D(sampler_main, uv).xyz;    
comp_4=`/*   float3 d = float3(texsize.zw, 0)*1.25;
comp_5=`    float b1 = lum(GetBlur1(uv + d.xz));
comp_6=`    float b2 = lum(GetBlur1(uv - d.xz));
comp_7=`    float b3 = lum(GetBlur1(uv + d.zy));
comp_8=`    float b4 = lum(GetBlur1(uv - d.zy));
comp_9=`
comp_10=`    ret *= 0.2; 
comp_11=`    ret += saturate((b1-b2)*8)*0.60*float3(1,0.6,0.1);
comp_12=`    ret += saturate((b3-b4)*8)*0.60*float3(0.2,0.5,0.7);
comp_13=`
comp_14=`    ret *= 1.5;*/
comp_15=`}
