[preset00]
fRating=4.000000
fGammaAdj=1.980000
fDecay=1.000000
fVideoEchoZoom=1.006596
fVideoEchoAlpha=0.000000
nVideoEchoOrientation=0
nWaveMode=2
bAdditiveWaves=0
bWaveDots=0
bWaveThick=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=0
bDarkenCenter=1
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=1
fWaveAlpha=0.001000
fWaveScale=0.010000
fWaveSmoothing=0.900000
fWaveParam=-0.400000
fModWaveAlphaStart=0.710000
fModWaveAlphaEnd=1.300000
fWarpAnimSpeed=1.000000
fWarpScale=1.331000
fZoomExponent=1.000000
fShader=0.000000
zoom=1.000000
rot=0.000000
cx=0.500000
cy=0.500000
dx=-1.000000
dy=-1.000000
warp=0.010000
sx=1.000000
sy=0.972365
wave_r=0.650000
wave_g=0.650000
wave_b=0.650000
wave_x=0.500000
wave_y=0.500000
ob_size=0.005000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=1.000000
ib_size=0.005000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=1.000000
nMotionVectorsX=64.000000
nMotionVectorsY=48.000000
mv_dx=0.000000
mv_dy=0.000000
mv_l=0.500000
mv_r=0.350000
mv_g=0.350000
mv_b=0.350000
mv_a=0.000000
per_frame_1=warp=0;
per_frame_2=q8 =oldq8+ 0.0003*(pow(1+1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);
per_frame_3=oldq8 = q8;
per_frame_4=ib_a =bass;
per_frame_5=volume = 0.15*(bass_att+bass+mid+mid_att);
per_frame_6=beatrate = if(equal(beatrate,0),1,if(below(volume,0.01),1,beatrate));
per_frame_7=lastbeat = if(equal(lastbeat,0),time,lastbeat);
per_frame_8=meanbass_att = 0.1*(meanbass_att*9 + bass_att);
per_frame_9=peakbass_att = if(above(bass_att,peakbass_att),bass_att,peakbass_att);
per_frame_10=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_11=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);
per_frame_12=peakbass_att = if(equal(beat,0),if(above(time - lastbeat,2*beatrate),peakbass_att*0.95,peakbass_att*0.995),bass_att);
per_frame_13=lastbeat = if(beat,time,lastbeat);
per_frame_14=countertime = if(beat,time,countertime);
per_frame_15=counter =-1*pow(min((time-countertime-1.5),0),9);
per_frame_16=q7 = if(beat,0.001+0.0001*rand(40),oldq7);
per_frame_17=oldq7=q7;
per_frame_18=q6 = if(beat,0.001+0.0001*rand(40),oldq6);
per_frame_19=oldq6=q6;
per_frame_20=q5= if(beat,0.001+0.0001*rand(40),oldq5);
per_frame_21=oldq5=q5;
per_frame_22=q4 = if(beat,0.001+0.0001*rand(40),oldq4);
per_frame_23=oldq4=q4;
per_frame_24=Flag = If(beat,if(Rand(2)-1,1,0),oldFlag);
per_frame_25=oldflag = flag;
per_frame_26=Ratio = If(Beat,50+rand(100),oldRatio);
per_frame_27=OldRatio = Ratio;
per_frame_28=q1 = if(beat,if(flag,ratio,0.75*ratio),oldq1);
per_frame_29=oldq1=q1;
per_frame_30=q2 = if(beat,if(flag,0.75*ratio,ratio),oldq2);
per_frame_31=//q2 = if(beat, rand(2)+1,oldq2);
per_frame_32=oldq2=q2;
per_frame_33=//monitor = if(rand(2)-1,-1,1);
per_frame_34=temp_b = cos(time)  + abs(cos(time));
per_frame_35=temp_g = abs(sin(time)) ;
per_frame_36=temp_r = (-1 * cos(time))  + abs(-1 * cos(time)) + 0.2 * (cos(sin(time))+(abs(cos(sin(time)))+cos(sin(time))));
per_frame_37=ob_r = 1 - if(above(temp_r,1),1,if(above(temp_r,0), abs(temp_r),0));
per_frame_38=ob_g = 1 - if(above(temp_g,1),1,if(above(temp_g,0), abs(temp_g),0));
per_frame_39=ob_b = 1 - if(above(temp_b,1),1,if(above(temp_b,0), abs(temp_b),0));
per_pixel_1=dx=q4*sin((y-0.5)*q1)+q5*sin((y-0.5)*q2);
per_pixel_2=dy=q6*cos((x-0.5)*q2)+q7*cos((x-0.5)*q1);
per_pixel_3=rot = 0.1*(rad+cos((5+5*sin(q8*1.211)*x)-0.5) -sin(((5+5*sin(q8*0.973))*y)-dx));
per_pixel_4=cx = if(above(dy,-.5),1-rot * 2,rot*q8);
per_frame_init_1=decay=0.1;
