MILKDROP_PRESET_VERSION=201
PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=5.000000
fGammaAdj=1.900
fDecay=0.980
fVideoEchoZoom=1.169
fVideoEchoAlpha=0.000
nVideoEchoOrientation=0
nWaveMode=7
bAdditiveWaves=0
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=1
bMaximizeWaveColor=1
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.303
fWaveScale=2.911
fWaveSmoothing=0.900
fWaveParam=0.000
fModWaveAlphaStart=1.110
fModWaveAlphaEnd=1.230
fWarpAnimSpeed=1.000
fWarpScale=3.138
fZoomExponent=1.00000
fShader=0.000
zoom=1.03300
rot=0.00000
cx=0.500
cy=0.500
dx=0.00000
dy=0.00000
warp=0.00054
sx=1.00000
sy=1.00000
wave_r=0.500
wave_g=0.500
wave_b=0.800
wave_x=0.500
wave_y=0.500
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=12.000
nMotionVectorsY=9.000
mv_dx=0.000
mv_dy=0.000
mv_l=0.900
mv_r=1.000
mv_g=1.000
mv_b=1.000
mv_a=0.000
b1n=0.000
b2n=0.000
b3n=0.000
b1x=1.000
b2x=1.000
b3x=1.000
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.00000
wavecode_0_smoothing=0.50000
wavecode_0_r=1.000
wavecode_0_g=1.000
wavecode_0_b=1.000
wavecode_0_a=1.000
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.00000
wavecode_1_smoothing=0.50000
wavecode_1_r=1.000
wavecode_1_g=1.000
wavecode_1_b=1.000
wavecode_1_a=1.000
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.00000
wavecode_2_smoothing=0.50000
wavecode_2_r=1.000
wavecode_2_g=1.000
wavecode_2_b=1.000
wavecode_2_a=1.000
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.00000
wavecode_3_smoothing=0.50000
wavecode_3_r=1.000
wavecode_3_g=1.000
wavecode_3_b=1.000
wavecode_3_a=1.000
shapecode_0_enabled=0
shapecode_0_sides=4
shapecode_0_additive=0
shapecode_0_thickOutline=0
shapecode_0_textured=0
shapecode_0_x=0.500
shapecode_0_y=0.500
shapecode_0_rad=0.10000
shapecode_0_ang=0.00000
shapecode_0_tex_ang=0.00000
shapecode_0_tex_zoom=1.00000
shapecode_0_r=1.000
shapecode_0_g=0.000
shapecode_0_b=0.000
shapecode_0_a=1.000
shapecode_0_r2=0.000
shapecode_0_g2=1.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.100
shapecode_1_enabled=0
shapecode_1_sides=4
shapecode_1_additive=0
shapecode_1_thickOutline=0
shapecode_1_textured=0
shapecode_1_x=0.500
shapecode_1_y=0.500
shapecode_1_rad=0.10000
shapecode_1_ang=0.00000
shapecode_1_tex_ang=0.00000
shapecode_1_tex_zoom=1.00000
shapecode_1_r=1.000
shapecode_1_g=0.000
shapecode_1_b=0.000
shapecode_1_a=1.000
shapecode_1_r2=0.000
shapecode_1_g2=1.000
shapecode_1_b2=0.000
shapecode_1_a2=0.000
shapecode_1_border_r=1.000
shapecode_1_border_g=1.000
shapecode_1_border_b=1.000
shapecode_1_border_a=0.100
shapecode_2_enabled=0
shapecode_2_sides=4
shapecode_2_additive=0
shapecode_2_thickOutline=0
shapecode_2_textured=0
shapecode_2_x=0.500
shapecode_2_y=0.500
shapecode_2_rad=0.10000
shapecode_2_ang=0.00000
shapecode_2_tex_ang=0.00000
shapecode_2_tex_zoom=1.00000
shapecode_2_r=1.000
shapecode_2_g=0.000
shapecode_2_b=0.000
shapecode_2_a=1.000
shapecode_2_r2=0.000
shapecode_2_g2=1.000
shapecode_2_b2=0.000
shapecode_2_a2=0.000
shapecode_2_border_r=1.000
shapecode_2_border_g=1.000
shapecode_2_border_b=1.000
shapecode_2_border_a=0.100
shapecode_3_enabled=0
shapecode_3_sides=4
shapecode_3_additive=0
shapecode_3_thickOutline=0
shapecode_3_textured=0
shapecode_3_x=0.500
shapecode_3_y=0.500
shapecode_3_rad=0.10000
shapecode_3_ang=0.00000
shapecode_3_tex_ang=0.00000
shapecode_3_tex_zoom=1.00000
shapecode_3_r=1.000
shapecode_3_g=0.000
shapecode_3_b=0.000
shapecode_3_a=1.000
shapecode_3_r2=0.000
shapecode_3_g2=1.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.100
per_frame_1=wave_r = wave_r + 0.650*( 0.60*sin(1.437*time) + 0.40*sin(0.970*time) );
per_frame_2=wave_g = wave_g + 0.650*( 0.60*sin(1.344*time) + 0.40*sin(0.841*time) );
per_frame_3=wave_b = wave_b + 0.650*( 0.60*sin(1.251*time) + 0.40*sin(1.055*time) );
per_frame_4=rot = rot + 0.010*( 0.60*sin(0.381*time) + 0.40*sin(0.579*time) );
per_frame_5=cx = cx + 0.210*( 0.60*sin(0.374*time) + 0.40*sin(0.294*time) );
per_frame_6=cy = cy + 0.210*( 0.60*sin(0.393*time) + 0.40*sin(0.223*time) );
per_frame_7=dx = dx + 0.010*( 0.60*sin(0.234*time) + 0.40*sin(0.277*time) );
per_frame_8=dy = dy + 0.010*( 0.60*sin(0.284*time) + 0.40*sin(0.247*time) );
per_frame_9=decay = decay - 0.01*equal(frame%6,0);
per_frame_10=dx = dx + dx_residual;
per_frame_11=dy = dy + dy_residual;
per_frame_12=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);
per_frame_13=dx_residual = (equal(bass_thresh,2.13)*0.016*sin(time*7) + (1-equal(bass_thresh,2.13))*dx_residual)*0.9;
per_frame_14=dy_residual = (equal(bass_thresh,2.13)*0.012*sin(time*9) + (1-equal(bass_thresh,2.13))*dy_residual)*0.9;
per_frame_15=wave_x = wave_x - dx_residual*7;
per_frame_16=wave_y = wave_y - dy_residual*7;
per_frame_17=dx = dx*0.6;
per_frame_18=dy = dy*0.4;
warp_1=`shader_body
warp_2=`{
warp_3=`  // sample previous frame
warp_4=`  ret = tex2D( sampler_pw_main, uv ).xyz;
warp_5=`
warp_6=`  float n;
warp_7=`  float2 d = texsize.zw*1;
warp_8=`  n  = saturate(tex2D(sampler_pw_main, uv+d*float2( 1, 1)).x*999);
warp_9=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2( 1, 0)).x*999);
warp_10=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2( 1,-1)).x*999);
warp_11=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2( 0, 1)).x*999);
warp_12=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2( 0,-1)).x*999);
warp_13=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2(-1, 1)).x*999);
warp_14=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2(-1, 0)).x*999);
warp_15=`  n += saturate(tex2D(sampler_pw_main, uv+d*float2(-1,-1)).x*999);
warp_16=`  
warp_17=`float t = 0.4;
warp_18=`  if (n < 1.9)
warp_19=`    ret -= t;
warp_20=`  if (n > 3.1)
warp_21=`    ret -= t;
warp_22=`  if (ret.x < 0.1 && abs(n-3) < 0.5)
warp_23=`    ret += t;
warp_24=`
warp_25=`  //ret *= saturate(6 - 19*(GetBlur1(uv_orig).x));
warp_26=`  
warp_27=`  //float dist_from_bar = abs(uv_orig.y - frac(time*0.23));
warp_28=`  //ret *= saturate( 24*dist_from_bar - 0.5 );  
warp_29=`
warp_30=`  // darken (decay) over time
warp_31=`  //ret = (ret - 0.016)*0.985;
warp_32=`}
comp_1=`shader_body
comp_2=`{
comp_3=`    uv = 0.05 + 0.9*uv;
comp_4=`
comp_5=`    // equivalent of a laplacian: [center*4 - each of the 4 neighbors*1]
comp_6=`    ret = 0;
comp_7=`    ret += tex2D(sampler_main, uv ).xyz*4;
comp_8=`    ret -= GetBlur1(uv)*3;
comp_9=`
comp_10=`    // little bit of noise:
comp_11=`    ret *= 1 + 0.12*(tex2D(sampler_noise_lq, rand_frame.xy 
comp_12=`           + uv*texsize.xy*texsize_noise_lq.zw).xxx*2-1);
comp_13=` 
comp_14=`    // palettize:
comp_15=`    ret = pow(ret, float3(0.5, 0.5, 0.7));
comp_16=`
comp_17=`    ret = (ret-0.1)*1.1;
comp_18=`   
comp_19=`    //ret.xyz *= 2; // a little bit of overbright
comp_20=`}
comp_21=`
comp_22=`
