[preset00]
fRating=2
fGammaAdj=1.994
fDecay=0.93
fVideoEchoZoom=0.999834
fVideoEchoAlpha=0.5
nVideoEchoOrientation=1
nWaveMode=0
bAdditiveWaves=0
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=1
fWaveScale=0.197884
fWaveSmoothing=0.75
fWaveParam=0.5001
fModWaveAlphaStart=0.75
fModWaveAlphaEnd=0.95
fWarpAnimSpeed=1
fWarpScale=1
fZoomExponent=1
fShader=0
zoom=0.9999
rot=0.1
cx=0.5
cy=0.5
dx=0
dy=0
warp=1
sx=1
sy=1
wave_r=0.5
wave_g=0.5
wave_b=0.5
wave_x=0.5
wave_y=0.5
ob_size=0
ob_r=0
ob_g=0
ob_b=0
ob_a=0.6
ib_size=0.005
ib_r=0.5
ib_g=0.5
ib_b=0.5
ib_a=0.38
nMotionVectorsX=12.799999
nMotionVectorsY=11.399998
mv_dx=0
mv_dy=0
mv_l=5
mv_r=1
mv_g=1
mv_b=1
mv_a=1
per_frame_1=warp=0;
per_frame_2=vol = 0.167*(bass+mid);
per_frame_3=xamptarg = if(equal(frame%15,0),min(0.5*vol*bass_att,0.5),xamptarg);
per_frame_4=xamp = xamp + 0.5*(xamptarg-xamp);
per_frame_5=xdir = if(above(abs(xpos),xamp),-sign(xpos),if(below(abs(xspeed),0.1),2*above(xpos,0)-1,xdir));
per_frame_6=xspeed = xspeed + xdir*xamp - xpos - xspeed*0.055*below(abs(xpos),xamp);
per_frame_7=xpos = xpos + 0.001*xspeed;
per_frame_8=yamptarg = if(equal(frame%15,0),min(0.3*vol*treb_att,0.5),yamptarg);
per_frame_9=yamp = yamp + 0.5*(yamptarg-yamp);
per_frame_10=ydir = if(above(abs(ypos),yamp),-sign(ypos),if(below(abs(yspeed),0.1),2*above(ypos,0)-1,ydir));
per_frame_11=yspeed = yspeed + ydir*yamp - ypos - yspeed*0.055*below(abs(ypos),yamp);
per_frame_12=ypos = ypos + 0.001*yspeed;
per_frame_13=ib_r = ib_r + 2.3*sin(time*4.132)*xpos;
per_frame_14=ib_g = ib_g + 2.3*sin(time*3.547)*ypos;
per_frame_15=ib_b = ib_b + 0.499*sin(time*0.731);
per_frame_16=ob_g = beat*treb*0.5;
per_frame_17=ob_a = 0.5 + 0.5*beat;
per_frame_18=ob_size = ob_size + 0.01*beat;
per_frame_19=mv_dx =0.15* xpos;
per_frame_20=mv_dy = 0.15*ypos;
per_frame_21=mv_l = 0.15;
per_frame_22=mv_r = 1 - ib_g;
per_frame_23=mv_b = ib_r;
per_frame_24=mv_g = 1-ib_b;
per_frame_25=volume = 0.15*(bass_att+bass+mid+mid_att);
per_frame_26=beatrate = if(equal(beatrate,0),1,if(below(volume,0.01),1,beatrate));
per_frame_27=lastbeat = if(equal(lastbeat,0),time,lastbeat);
per_frame_28=meanbass_att = 0.1*(meanbass_att*9 + bass_att);
per_frame_29=peakbass_att = if(above(bass_att,peakbass_att),bass_att,peakbass_att);
per_frame_30=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_31=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.1*(beatrate*9 + time - lastbeat),beatrate),beatrate),0.1);
per_frame_32=peakbass_att = if(equal(beat,0),if(above(time - lastbeat,2*beatrate),peakbass_att*0.95,peakbass_att*0.995),bass_att);
per_frame_33=lastbeat = if(beat,time,lastbeat);
per_frame_34=peakbass_att = max(if(beat,bass_att,peakbass_att),1.1*meanbass_att);
per_frame_35=Eff_test = if(below(Eff_size*200,500),1,0);
per_frame_36=Eff_size = if(beat,2.5*Eff_test+ 0.0025*rand(500),Old_Eff_size);
per_frame_37=Old_Eff_size =Eff_size;
per_frame_38=q5 = Eff_size;
per_frame_39=mv_l = if(Eff_test,q5*3,mv_l);
per_frame_40=q6 = 3*xpos;
per_frame_41=q4 = 3*ypos;
per_frame_42=decay = decay + if(Eff_test,0,0.07);
per_frame_43=wave_r = 1-ib_g;
per_frame_44=wave_g = 1-ib_b;
per_frame_45=wave_b = 1-ib_b;
per_pixel_1=q1 = 0.8*((sqrt(2)*0.5)-rad);
per_pixel_2=q3  = below(rad,0.1*q5+ 0.3);
per_pixel_3=q7 =if(q3,0,12 + int(3*(rad)));
per_pixel_4=q8 =if(q3,0,10 + int(1*(rad)));
per_pixel_5=cx =if(q3,0.5,(0&(x*q7-q1))*(1/q7)+0.1*q1);
per_pixel_6=cy =if(q3,0.5,(0&(y*q8-0.3*rad))*(1/(q8-0.3*rad))+0.1*(0.3*rad));
per_pixel_7=rot = if(q3,2*q6*rad,0.1*(0.5*sqrt(2)-rad)- 0.1*bass_att-0.02*cx*cy);
per_pixel_8=zoomexp = if(q3,0.2+0.2*(1-rad)+0.1*q5+ 0.5*q4,zoomexp);
per_pixel_9=zoom = zoomexp-0.005*(rad);
per_pixel_10=dx = if(q3,0,-0.0015);
per_pixel_11=sx = 1.05 + if(q3,0,0.05*q4);
per_pixel_12=sy = 1.05 + if(q3,0,0.05*q4);
per_frame_init_1=Eff_test =1;
per_frame_init_2=Eff_size = 400;
