[preset00]
fRating=3.000000
fGammaAdj=1.980001
fDecay=0.990000
fVideoEchoZoom=2.000000
fVideoEchoAlpha=0.000000
nVideoEchoOrientation=0
nWaveMode=5
bAdditiveWaves=0
bWaveDots=1
bWaveThick=1
bModWaveAlphaByVolume=1
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=1
bSolarize=0
bInvert=0
fWaveAlpha=1.179297
fWaveScale=0.491915
fWaveSmoothing=0.216000
fWaveParam=-0.420000
fModWaveAlphaStart=0.750000
fModWaveAlphaEnd=0.950000
fWarpAnimSpeed=1.000000
fWarpScale=2.853000
fZoomExponent=1.000000
fShader=0.000000
zoom=1.001829
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=0.010000
sx=0.999005
sy=0.999005
wave_r=0.770000
wave_g=0.600000
wave_b=0.600000
wave_x=0.420000
wave_y=0.500000
ob_size=0.020000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=0.250001
ib_size=0.155000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.270000
nMotionVectorsX=30.079998
nMotionVectorsY=0.000000
mv_dx=0.320000
mv_dy=0.420000
mv_l=3.199998
mv_r=1.000000
mv_g=1.000000
mv_b=1.000000
mv_a=0.000000
per_frame_1=warp = 0;
per_frame_2=wave_r = min(1,max(0,0.3*bass));
per_frame_3=wave_g = min(1,max(0,0.3*mid));
per_frame_4=wave_b = min(1,max(0,0.3*treb));
per_frame_5=
per_frame_6=//Thanks to Zylot for rainbow generator
per_frame_7=counter1 = if(equal(counter2,1),if(equal(counter1,1),0,counter1+.2),1);
per_frame_8=counter2 = if(equal(counter1,1),if(equal(counter2,1),0,counter2+.2),1);
per_frame_9=cdelay1 = if(equal(cdelay2,1),1,if(equal(colorcounter%2,1),if(equal(counter1,1),2 ,0), if(equal(counter2,1),2,0)));
per_frame_10=cdelay2 = if(equal(cdelay1,2),1,0);
per_frame_11=colorcounter = if(above(colorcounter,7),0,if(equal(cdelay1,1),colorcounter+1,colorcounter));
per_frame_12=ob_r = if(equal(colorcounter,1),1, if(equal(colorcounter,2),1, if(equal(colorcounter,3),1, if(equal(colorcounter,4),sin(counter2+2.1), if(equal(colorcounter,5),0, if(equal(colorcounter,6),0,sin(counter1)))))));
per_frame_13=ob_g = if(equal(colorcounter,1),0, if(equal(colorcounter,2),sin(counter2*.5), if(equal(colorcounter,3),sin((counter1+1.75)*.4), if(equal(colorcounter,4),1, if(equal(colorcounter,5),1, if(equal(colorcounter,6),sin(counter2+2),0))))));
per_frame_14=ob_b = if(equal(colorcounter,1),sin(counter1+2.1), if(equal(colorcounter,2),0, if(equal(colorcounter,3),0, if(equal(colorcounter,4),0, if(equal(colorcounter,5),sin(counter1), if(equal(colorcounter,6),1,1))))));
per_frame_15=
per_frame_16=mbass=max(bass_att,3);
per_frame_17=xmovn = 0.1*rand(10)*mbass*0.015*(1-2*above(rand(10),5));
per_frame_18=ymovn = pow(pow(mbass*0.015,2)-pow(xmovn,2),1/2)*(1-2*above(rand(10),5));
per_frame_19=//ymovn=.05;
per_frame_20=xmov = if(beat,xmovn,xmov*.9);
per_frame_21=ymov = if(beat,ymovn,ymov*.9);
per_frame_22=q1=oldx;
per_frame_23=q2=oldy;
per_frame_24=out_x = bor(above(q1+xmov,.9),below(q1+xmov,.1));
per_frame_25=out_y = bor(above(q2+ymov,.9),below(q2+ymov,.1));
per_frame_26=xmov = xmov + (-2*xmov*out_x);
per_frame_27=ymov = ymov + (-2*ymov*out_y);
per_frame_28=wave_x =  q1+xmov ;
per_frame_29=wave_y = q2+ymov;
per_frame_30=q1=wave_x;
per_frame_31=q2=wave_y;
per_frame_32=oldx = q1;
per_frame_33=oldy = q2;
per_frame_34=
per_frame_35=decay = decay - 0.91*(treble);
per_frame_36=
per_frame_37=//Thanks to krash for beat detection (modified)
per_frame_38=volume = 0.3*bass+mid;
per_frame_39=beatrate = equal(beatrate,0) + (1-equal(beatrate,0))*(below(volume,0.01) + (1-below(volume,0.01))*beatrate);
per_frame_40=lastbeat = lastbeat + equal(lastbeat,0)*time;
per_frame_41=meanbass_att = 0.1*(meanbass_att*9 + bass_att);
per_frame_42=runmeanbass =(runmeanbass*2 + bass_att)/3;
per_frame_43=peakbass_att = max(bass_att,peakbass_att);
per_frame_44=beat = above(volume,0.8)*above(bass_att,runmeanbass*1.1)*below(peakbass_att - bass_att, 0.05*peakbass_att)*above(time - lastbeat, 0.1 + 0.5*(beatrate - 0.1));
per_frame_45=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);
per_frame_46=peakbass_att = beat*bass_att + (1-beat)*peakbass_att*(above(time - lastbeat, 2*beatrate)*0.95 + (1-above(time - lastbeat, 2*beatrate))*0.995);
per_frame_47=lastbeat = beat*time + (1-beat)*lastbeat;
per_frame_48=peakbass_att = max(peakbass_att,1.1*meanbass_att);
per_frame_49=q3=volume+treb;
per_frame_50=monitor =meanbass_att;
per_pixel_1=mx= x-q1;
per_pixel_2=my = y-(1-q2);
per_pixel_3=mrad = pow(pow(mx,2)+pow(my,2),0.5)*pow(2,0.5);
per_pixel_4=cx = q1;
per_pixel_5=cy = 1-q2;
per_pixel_6=rot= rot + below(mrad-0.18,0)*0.5*sin(mrad*40)*(mrad-0.1)*40- above(mrad-0.18,0)*0.3*sin(mrad*2)*(mrad-0.1)*sin((cx-0.5)*(cy-0.5)*6.28)*q3;
per_pixel_7=zoom= zoom - above(mrad-0.18,0)*0.05*mrad*q3;
per_pixel_8=dx = dx +below(mrad-0.18,0)*0.015*(mx/mrad);
per_pixel_9=dy = dy +below(mrad-0.18,0)*0.015*(my/mrad);
per_frame_init_1=oldx=.5;
per_frame_init_2=oldy=.5;
