[preset00]
fRating=2
fGammaAdj=1.21
fDecay=1
fVideoEchoZoom=1.006596
fVideoEchoAlpha=0
nVideoEchoOrientation=3
nWaveMode=3
bAdditiveWaves=0
bWaveDots=1
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=0
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=1
bSolarize=0
bInvert=0
fWaveAlpha=9.08852
fWaveScale=0.4995
fWaveSmoothing=0
fWaveParam=1
fModWaveAlphaStart=0.71
fModWaveAlphaEnd=1.3
fWarpAnimSpeed=1
fWarpScale=1.331
fZoomExponent=1
fShader=0
zoom=0.999514
rot=0
cx=0.5
cy=0.5
dx=0
dy=0
warp=0.01
sx=1
sy=1
wave_r=0.99
wave_g=0
wave_b=0
wave_x=0.5
wave_y=0.5
ob_size=0.005
ob_r=0.3
ob_g=0
ob_b=0.5
ob_a=0
ib_size=0.26
ib_r=0.25
ib_g=0.25
ib_b=0.25
ib_a=0
nMotionVectorsX=64
nMotionVectorsY=2.759997
mv_dx=0
mv_dy=-0.62
mv_l=5
mv_r=0
mv_g=1
mv_b=1
mv_a=0.4
per_frame_1=// Hello,
per_frame_2=
per_frame_3=// My beat detection algorithm had the aim of being able to detect and pickup a reliable beat throughout a song.  This has creative possibilities of being able to PREDICT coming beats, and to have things lasting for (say) half a beat, etc.  It still requires work, but I think I have made progress
per_frame_4=// I emplore you to have a look over it and try to underdstand it. Help me out here - I think it could be reallly good
per_frame_5=
per_frame_6=//Telek Sterling =:-)
per_frame_7=//Dilettante Extrodinaire
per_frame_8=
per_frame_9=
per_frame_10=//rt = realtime (for use with beat count)
per_frame_11=rt=time-start;
per_frame_12=
per_frame_13=//color cycling, yellow dynamic treble
per_frame_14=wave_g = max(0,min(1,.25*sin(time*10)+treb/2));
per_frame_15=wave_x = cos(time*2.12)*.33+.5;
per_frame_16=wave_y = sin(time*1.5)*.13+.3;
per_frame_17=
per_frame_18=//initialisation bug patch
per_frame_19=beatrate = if(below(beatcount,2),.1,beatrate);
per_frame_20=
per_frame_21=//beat = if(longer that 10 sec,1,above(bass, decaying threshold)*(can't be less that .4 of last beat length)
per_frame_22=beat =if(above(rt-lastbeat,10),1, above(bass,1.6+.2*(lastbeat-rt)/beatrate)* above((rt-lastbeat)/beatrate,max(.4,.95-abs(accuracy*2))));
per_frame_23=
per_frame_24=//Testing auto-beat trigger... exciting stuff.
per_frame_25=beat = if(beat,1, if(below(abs(accuracy),0.1)*below((lastbeat-rt)/beatrate,-1),1,0));
per_frame_26=
per_frame_27=//Comparison of last beat duration to current. Best value is 0. -1 and 5 are pretty bad
per_frame_28=accuracy =if(beat,(rt-nextbeat)/beatrate,accuracy);
per_frame_29=
per_frame_30=beatcount = beatcount + beat;
per_frame_31=
per_frame_32=w_a = if(beat,1,w_a*0);
per_frame_33=wave_a = w_a;            // I can't actually change this, can I..... Oh well, it's here now
per_frame_34=
per_frame_35=//Preserve beat rate
per_frame_36=l_beatrate=if(beat,beatrate, l_beatrate);
per_frame_37=//Record new beatrate
per_frame_38=beatrate = if(beat,rt-lastbeat,beatrate);
per_frame_39=
per_frame_40=//Record most recent beat
per_frame_41=lastbeat=if(beat,rt,lastbeat);
per_frame_42=//Predict time of next beat
per_frame_43=nextbeat=if(beat,rt+beatrate,nextbeat);
per_frame_44=
per_frame_45=
per_frame_46=
per_frame_47=
per_frame_48=//Actual Display code:
per_frame_49=
per_frame_50=//Current direction of travel
per_frame_51=state = beat * (state+1)%4+(1-beat)*state;
per_frame_52=
per_frame_53=//acceleration of horizon point
per_frame_54=dddy = state%2-.5;
per_frame_55=dddx = above(state,1.5)-.5;
per_frame_56=
per_frame_57=//adjustment factors to play with
per_frame_58=ddx = dddx*.5;
per_frame_59=ddy = dddy*.5;
per_frame_60=
per_frame_61=
per_frame_62=q1 = (qq1*19+ddx)*.041;
per_frame_63=//preserve q variables
per_frame_64=qq1 = q1;
per_frame_65=
per_frame_66=q2 = (qq2*19+ddy)*.035;
per_frame_67=qq2 = q2;
per_frame_68=
per_frame_69=//Decay to Blue!!
per_frame_70=ob_a = 0.1*above(frame%10,6);
per_frame_71=
per_frame_72=
per_frame_73=
per_frame_74=
per_frame_75=//Well, what do we want to monitor??
per_frame_76=
per_frame_77=//monitor = q1;
per_frame_78=//monitor = beat;
per_frame_79=//monitor = 1.6+.2*(lastbeat-rt)/beatrate;
per_frame_80=monitor = (rt-lastbeat)/beatrate;
per_frame_81=//monitor = accuracy;
per_frame_82=//monitor = max(.4,.95-abs(accuracy*2));
per_frame_83=//monitor = wave_a;
per_frame_84=//monitor = wave_g;
per_frame_85=//qwer =   accuracy + if(below(abs(accuracy),0.1)*above((lastbeat-rt)/beatrate,1),1,0)*1000;
per_frame_86=//monitor = qwer;
per_frame_87=//monitor  = (lastbeat-rt)/beatrate;
per_pixel_1=dx = sin(.5-x)*.1+q1;
per_pixel_2=dy = sin(.5-y)*.1+q2;
per_frame_init_1=ddx = 0;
per_frame_init_2=ddy = 0;
per_frame_init_3=start = time;
per_frame_init_4=rt = 0;
per_frame_init_5=beatcount = 0;
