[preset00]
fRating=3.000000
fGammaAdj=2.000000
fDecay=0.960000
fVideoEchoZoom=1.343305
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=0
nWaveMode=0
bAdditiveWaves=0
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=1
bTexWrap=0
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=1
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=3.221673
fWaveScale=0.010000
fWaveSmoothing=0.750000
fWaveParam=-0.480000
fModWaveAlphaStart=0.750000
fModWaveAlphaEnd=0.950000
fWarpAnimSpeed=1.000000
fWarpScale=1.000000
fZoomExponent=1.000000
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=0.500000
wave_g=0.500000
wave_b=0.500000
wave_x=0.960000
wave_y=0.500000
ob_size=0.110000
ob_r=1.000000
ob_g=0.000000
ob_b=1.000000
ob_a=0.100000
ib_size=0.010500
ib_r=0.250000
ib_g=0.700000
ib_b=1.000000
ib_a=1.000000
nMotionVectorsX=63.936001
nMotionVectorsY=48.000000
mv_dx=0.000000
mv_dy=0.000000
mv_l=1.000000
mv_r=0.630000
mv_g=0.200000
mv_b=0.300000
mv_a=0.000000
per_frame_1=myframe = frame%3;
per_frame_2=firsttest = above(myframe,0);
per_frame_3=secondtest = above(myframe,1);
per_frame_4=warp = 0;
per_frame_5=wave_y = if(firsttest,if(secondtest,0.9,.5 + (treb_att*.07)),.25 + (mid_att*.06) - 0.12) ;
per_frame_6=wave_r=if(firsttest,if(secondtest,1,0),1);
per_frame_7=wave_g=if(firsttest,if(secondtest,0.8,1),1);
per_frame_8=wave_b=if(firsttest,if(secondtest,1,0),1);
per_frame_9=wave_x=if(firsttest,if(secondtest,0.9+0.05*(1-bass),0.92),0.14);
per_frame_10=wave_mode=if(firsttest,if(secondtest,6,0),0);
per_frame_11=wave_mystery=if(firsttest,if(secondtest,0,wave_mystery),wave_mystery);
per_frame_12=decay = 1000000.94;
per_frame_13=volume = 0.15*(bass_att+bass+mid+mid_att);
per_frame_14=beatrate = if(equal(beatrate,0),1,if(below(volume,0.01),1,beatrate));
per_frame_15=lastbeat = if(equal(lastbeat,0),time,lastbeat);
per_frame_16=meanbass_att = 0.1*(meanbass_att*9 + bass_att);
per_frame_17=peakbass_att = if(above(bass_att,peakbass_att),bass_att,peakbass_att);
per_frame_18=beat = if(above(volume,0.8),if(below(peakbass_att - bass_att, 0.05*peakbass_att),if(above(time - lastbeat,0.1+0.5*(beatrate-0.1)),1,0),0),0);
per_frame_19=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);
per_frame_20=peakbass_att = if(equal(beat,0),if(above(time - lastbeat,2*beatrate),peakbass_att*0.95,peakbass_att*0.995),bass_att);
per_frame_21=lastbeat = if(beat,time,lastbeat);
per_frame_22=peakbass_att = max(if(beat,bass_att,peakbass_att),1.1*meanbass_att);
per_frame_23=ob_r = if(beat,1,0);
per_frame_24=ob_a = if(beat,1,ob_a);
per_frame_25=ib_a = if(above(treb,1.8),1,0);
per_frame_26=bass_effect = max(max(bass,bass_att)-1.2,0);
per_frame_27=echo_zoom = echo_zoom + 0.05*bass_effect -0.02;
per_pixel_1=dx = dx -.005-abs(x-1)*.01;
per_pixel_2=dx = if(below(y,0.3),dx+0.01*x,if(above(y,0.6),0.01+0.01*x*x,-abs(2*sin(time*0.953)*dx)+0.001));
per_pixel_3=dy =if(below(y,0.3),0.01*(-bass),dy);
