[preset00]
fRating=1.000000
fGammaAdj=2.013328
fDecay=0.974
fVideoEchoZoom=1.014851
fVideoEchoAlpha=0.001339
nVideoEchoOrientation=2
nWaveMode=6
bAdditiveWaves=1
bWaveDots=0
bWaveThick=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=1
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=4.089408
fWaveScale=4.061914
fWaveSmoothing=0.893392
fWaveParam=0.820357
fModWaveAlphaStart=0.6907
fModWaveAlphaEnd=1.285837
fWarpAnimSpeed=1.003879
fWarpScale=1.317889
fZoomExponent=0.99395
fShader=0.000997
zoom=1.068231
rot=0.008654
cx=0.509134
cy=0.505007
dx=0.012951
dy=0.019927
warp=0.21213
sx=0.983901
sy=0.985109
wave_r=0.173493
wave_g=0.314463
wave_b=0.994274
wave_x=0.814175
wave_y=0.113972
ob_size=0
ob_r=0.28525
ob_g=0.096257
ob_b=0.172696
ob_a=0
ib_size=0.023197
ib_r=0.568091
ib_g=0.199823
ib_b=0.943238
ib_a=0
nMotionVectorsX=11.999315
nMotionVectorsY=8.992329
mv_dx=-0.380524
mv_dy=0.620417
mv_l=3.905494
mv_r=0.889021
mv_g=0.590976
mv_b=0.14545
mv_a=0.688509
per_frame_1=volume = 0.3*(bass+mid+att);
per_frame_2=beatrate = if(equal(beatrate,0),1,if(below(volume,0.01),1,beatrate));
per_frame_3=lastbeat = if(equal(lastbeat,0),time,lastbeat);
per_frame_4=meanbass_att = 0.1*(meanbass_att*9 + bass_att);
per_frame_5=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_6=beatrate = max(if(beat,if(below(time-lastbeat,2*beatrate),0.5*(beatrate + time - lastbeat),beatrate),beatrate),0.1);
per_frame_7=peakbass_att = if(equal(beat,0),if(above(time - lastbeat,2*beatrate),peakbass_att*0.95,peakbass_att*0.995),bass_att);
per_frame_8=lastbeat = if(beat,time,lastbeat);
per_frame_9=peakbass_att = max(if(beat,bass_att,peakbass_att),1.1*meanbass_att);
per_frame_10=q1=beat;
per_frame_11=ob_r = 49.5036006*asin(if(equal(peakbass_att * mv_l , wave_mode * ib_r) , ob_a - ob_a , wave_mode - mv_x));
per_frame_12=ib_r = max(warp * treb , mv_r + ib_g);
per_frame_13=ib_b = 39.6116972*asin(bnot(mv_l * sy));
per_frame_14=mv_a = 29.12615538*int(92.13204384*sqrt(ib_b + ib_size));
per_frame_15=wave_y = bnot(treb - mv_l);
per_frame_16=cy = 21.95614576*int(-92.39946604*sign(bor(wave_mode - progress , warp - mid)));
per_pixel_1=rot=if(above(bnot(1*bass),bnot(1*treb)),rot*sin(rad*sin(time)),-rot*sin(rad*cos(time)));
per_pixel_2=cy = x * rad;
per_pixel_3=zoomexp = ang * ang;
