[preset00]
fRating=3.000000
fGammaAdj=1.999001
fDecay=0.980000
fVideoEchoZoom=0.998100
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=1
nWaveMode=5
bAdditiveWaves=0
bWaveDots=0
bModWaveAlphaByVolume=1
bMaximizeWaveColor=1
bTexWrap=1
bDarkenCenter=0
bMotionVectorsOn=0
bRedBlueStereo=0
nMotionVectorsX=64
nMotionVectorsY=1
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=13.378749
fWaveScale=0.717349
fWaveSmoothing=0.531000
fWaveParam=0.020000
fModWaveAlphaStart=0.750000
fModWaveAlphaEnd=0.950000
fWarpAnimSpeed=1.208100
fWarpScale=1.263386
fZoomExponent=0.111607
fShader=0.509900
zoom=0.054279
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=1.333300
sx=0.999901
sy=0.999901
wave_r=0.250000
wave_g=0.350000
wave_b=0.700000
wave_x=0.500000
wave_y=0.500000
ob_size=0.010000
ob_r=0.500000
ob_g=0.250000
ob_b=0.150000
ob_a=0.970000
ib_size=0.010000
ib_r=0.100000
ib_g=0.300000
ib_b=0.500000
ib_a=0.970000
per_frame_1=warp=0;
per_frame_2=old_bass_flop=bass_flop;
per_frame_3=old_treb_flop=treb_flop;
per_frame_4=old_mid_flop=mid_flop;
per_frame_5=chaos=.9+.1*sin(pulse);
per_frame_6=entropy=if(bnot(entropy),2,if(equal(pulse,-20),1+rand(3),entropy));
per_frame_7=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*chaos+1.3);
per_frame_8=bass_flop=abs(bass_flop-equal(bass_thresh,2));
per_frame_9=treb_thresh=above(treb_att,treb_thresh)*2 + (1-above(treb_att,treb_thresh))*((treb_thresh-1.3)*chaos+1.3);
per_frame_10=treb_flop=abs(treb_flop-equal(treb_thresh,2));
per_frame_11=mid_thresh=above(mid_att,mid_thresh)*2 + (1-above(mid_att,mid_thresh))*((mid_thresh-1.3)*chaos+1.3);
per_frame_12=mid_flop=abs(mid_flop-equal(mid_thresh,2));
per_frame_13=bass_changed=bnot(equal(old_bass_flop,bass_flop));
per_frame_14=mid_changed=bnot(equal(old_mid_flop,mid_flop));
per_frame_15=treb_changed=bnot(equal(old_treb_flop,treb_flop));
per_frame_16=bass_residual = bass_changed*sin(pulse*bass_thresh*.1*entropy) + bnot(bass_changed)*bass_residual;
per_frame_17=treb_residual = treb_changed*sin(pulse*treb_thresh*.1*entropy) + bnot(treb_changed)*treb_residual;
per_frame_18=mid_residual = mid_changed*sin(pulse*mid_thresh*.1*entropy) + bnot(mid_changed)*mid_residual;
per_frame_19=pulse=if(above(abs(pulse),20),-20,pulse+.1*bor(bor(bass_changed,treb_changed),mid_changed)+(mid_thresh+bass_thresh+treb_thresh)*entropy*.025);
per_frame_20=q1=mid_residual;
per_frame_21=q2=bass_residual;
per_frame_22=q3=treb_residual;
per_frame_23=q4=sin(pulse);
per_frame_24=q5=sin(pulse/2);
per_frame_25=wave_r=wave_r+.5*bass_residual;
per_frame_26=wave_r=wave_g+.5*mid_residual;
per_frame_27=wave_r=wave_b+.5*treb_residual;
per_frame_28=wave_mystery=mid_residual;
per_frame_29=ob_r=if(bass_flop,treb_flop,wave_r);
per_frame_30=ob_b=if(treb_flop,mid_flop,wave_b);
per_frame_31=ob_g=if(mid_flop,bass_flop,wave_g);
per_frame_32=ob_a=.03+.02*wave_r;
per_frame_33=ob_size=.25+.25*treb_residual;
per_frame_34=ib_size=.05+.04*bass_residual;
per_frame_35=ib_r = if(bass_flop,ob_b,.5+ 0.2*sin(time*0.5413));
per_frame_36=ib_g = if(treb_flop,ob_g,.5 + 0.2*sin(time*0.6459));
per_frame_37=ib_b = if(mid_flop,ob_r,.5 + 0.2*sin(time*0.4354));
per_frame_38=rot = rot + 0.04*q1;
per_frame_39=zoom=max(0.98, 0.2+0.35*bass_thresh);
per_pixel_1=radix=if(above(q3,0),min(x,y),max(x,y));
per_pixel_2=radix=if(above(q2,0),min(radix,rad),max(radix,rad));
per_pixel_3=rot=if(above(q4,0),rad*.2*q5,rot);
per_pixel_4=zoom=if(above(q2,0),zoom,if(above(q3,0),zoom+q1*.05,zoom+.07*cos(radix*10*q1)));
per_pixel_5=rot=if(equal(q1,1),rad*(sin(mid+treb)/7),rad*(sin(-mid-treb)/7));
