[preset00]
fRating=1
fGammaAdj=1
fDecay=1
fVideoEchoZoom=0.999609
fVideoEchoAlpha=0
nVideoEchoOrientation=0
nWaveMode=7
bAdditiveWaves=0
bWaveDots=0
bWaveThick=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=1
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.001
fWaveScale=0.6401
fWaveSmoothing=0.27
fWaveParam=0
fModWaveAlphaStart=0.75
fModWaveAlphaEnd=0.95
fWarpAnimSpeed=5.99579
fWarpScale=1.331
fZoomExponent=1.01
fShader=0
zoom=0.998531
rot=0
cx=0.5
cy=0.5
dx=0
dy=0
warp=0.01
sx=1
sy=1
wave_r=0.5
wave_g=0.5
wave_b=0.5
wave_x=0.5
wave_y=0.96
ob_size=0.01
ob_r=0
ob_g=0.9
ob_b=0.2
ob_a=1
ib_size=0
ib_r=0.5
ib_g=0.5
ib_b=0.5
ib_a=0.23
nMotionVectorsX=64
nMotionVectorsY=48
mv_dx=0
mv_dy=0
mv_l=0.25
mv_r=1
mv_g=1
mv_b=1
mv_a=0
per_frame_1=ob_r = 0.7 - 0.3*(0.5*sin(time*0.701)+ 0.3*cos(time*0.438));
per_frame_2=ob_g = 0.5- 0.4*sin(time*5.924);
per_frame_3=ob_b = 0.45 - 0.3*cos(time*0.816);
per_frame_4=warp =0;
per_frame_5=volume = 0.08*(bass_att+3*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=peakbass_att = max(if(beat,bass_att,peakbass_att),1.1*meanbass_att);
per_frame_15=q5 = if(beat,0.1*rand(1000),oldq5);
per_frame_16=oldq5 = q5;
per_frame_17=q3 = if(beat,0.1*rand(1000),oldq3);
per_frame_18=oldq3 = q3;
per_frame_19=ib_size = 0.02;
per_frame_20=ib_r = ib_r + 0.5*sin(time*2.424);
per_frame_21=ib_g = ib_g + 0.5*sin(time*2.247);
per_frame_22=ib_b = ib_b - 0.5*sin(time*1.131);
per_frame_23=q8 = oldq8 +0.003*(((pow(1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps) + (pow(1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,5)/fps) + (pow(1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,4)/fps) + (pow(1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,3)/fps) + (pow(1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,2)/fps) +(1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att)/fps)) + 1/(fps*5);
per_frame_24=oldq8 = q8;
per_pixel_1=box=abs(x*2-0.4*sin(q3))%2 + abs(y*2+0.4*sin(q5))%2;
per_pixel_2=q1 = 4.05+(sin(x+0.237*time)-cos(y+0.513*time));
per_pixel_3=zoom = if(above(box,1),q1*.1,zoom);
per_pixel_4=rot = if(above(box,1),sin(0.885*q8),0);
per_pixel_5=dx = if(above(box,1),sin(0.542*time),0.005*sin((y*2-1)*48)+0.001*tan((y*2-1)*64));
per_pixel_6=dy= if(above(box,1),sin(0.581*time),((1+abs(sin(q8)))*0.001)*cos((x*2-1)*48)+0.001*tan((x*2-1)*48));
per_pixel_7=zoomexp = if(above(box,1),3,1);
