MILKDROP_PRESET_VERSION=201
PSVERSION=2
PSVERSION_WARP=2
PSVERSION_COMP=2
[preset00]
fRating=1.0
fGammaAdj=1.0
fDecay=1.0
fVideoEchoZoom=1.998789
fVideoEchoAlpha=0.5
nVideoEchoOrientation=1
nWaveMode=1
bAdditiveWaves=0
bWaveDots=1
bWaveThick=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=1
bTexWrap=1
bDarkenCenter=0
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=11.200613
fWaveScale=1.285751
fWaveSmoothing=0.630000
fWaveParam=0.0
fModWaveAlphaStart=0.540000
fModWaveAlphaEnd=0.0
fWarpAnimSpeed=0.010000
fWarpScale=1.331000
fZoomExponent=2.216699
fShader=0.0
zoom=0.999922
rot=0.0
cx=0.5
cy=0.5
dx=0.0
dy=0.0
warp=0.010000
sx=1.0
sy=1.0
wave_r=1.0
wave_g=1.0
wave_b=0.0
wave_x=0.5
wave_y=0.5
ob_size=0.5
ob_r=0.0
ob_g=0.0
ob_b=0.0
ob_a=0.020000
ib_size=0.5
ib_r=0.0
ib_g=0.0
ib_b=0.0
ib_a=0.020000
nMotionVectorsX=12.0
nMotionVectorsY=9.0
mv_dx=0.0
mv_dy=0.0
mv_l=0.0
mv_r=1.0
mv_g=1.0
mv_b=1.0
mv_a=0.0
b1n=0.0
b2n=0.0
b3n=0.0
b1x=1.0
b2x=1.0
b3x=1.0
b1ed=0.25
wavecode_0_enabled=1
wavecode_0_samples=512
wavecode_0_sep=0
wavecode_0_bSpectrum=0
wavecode_0_bUseDots=0
wavecode_0_bDrawThick=1
wavecode_0_bAdditive=0
wavecode_0_scaling=0.891519
wavecode_0_smoothing=0.820000
wavecode_0_r=1.0
wavecode_0_g=1.0
wavecode_0_b=1.0
wavecode_0_a=0.1
wave_0_init1=t1 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init2=t2 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init3=t3 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init4=t4 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init5=t5 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init6=t6 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init7=t7 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init8=t8 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_0_init9=
wave_0_per_frame1=tm = time*.1;
wave_0_per_frame2=t1 = t1*sin(tm*t4) + (1-t1)*sin(tm*t7);
wave_0_per_frame3=t2 = t2*sin(tm*t5) + (1-t2)*sin(tm*t8);
wave_0_per_frame4=t3 = t3*sin(tm*t6) + (1-t3)*sin(tm*1);
wave_0_per_frame5=
wave_0_per_frame6=tic = min(time - tin,1);
wave_0_per_frame7=tin = time;
wave_0_per_frame8=
wave_0_per_frame9=tva = (tic*q1*.5);
wave_0_per_frame10=tvb = (tic*q2*.5);
wave_0_per_frame11=tvc = (tic*q3*.5);
wave_0_per_frame12=
wave_0_per_frame13=q1 = tva;
wave_0_per_frame14=q2 = tvb;
wave_0_per_frame15=q3 = tvc;
wave_0_per_frame16=
wave_0_per_frame17=sz = .2;
wave_0_per_frame18=ra = .1;
wave_0_per_frame19=len = if(above(q6,0),if(below(len,sz),len + ra*sz*tic,min(sz,len)),if(above(len,0),len - ra*sz*tic,max(0,len)));
wave_0_per_frame20=t4 = len;
wave_0_per_point1=ang = 0;
wave_0_per_point2=len = t4;
wave_0_per_point3=mad = .6;
wave_0_per_point4=
wave_0_per_point5=it = if(above(sample,0),(it+equal(lev,8)),1);
wave_0_per_point6=ita = (ita + 1)*above(sample,0);
wave_0_per_point7=
wave_0_per_point8=mod = if(equal(it%2,0),1,  if(equal((it+1)%4,0),2,  if(equal((it+3)%8,0),3,  if(equal((it+7)%16,0),4,  if(equal((it+15)%32,0),5,  if(equal((it+31)%64,0),6,  if(equal((it+63)%128,0),7,7)  ))))));
wave_0_per_point9=
wave_0_per_point10=sw = sw - 1;
wave_0_per_point11=sw = if(equal(lev,8),mod,sw)*above(sample,0);
wave_0_per_point12=
wave_0_per_point13=lev = if(above(sample,0),if(above(sw,0),lev-1,lev+1),0);
wave_0_per_point14=a = lev*.1*1.46;
wave_0_per_point15=a = equal(lev,8);
wave_0_per_point16=
wave_0_per_point17=ar = if(above(sample,0),ar,1);
wave_0_per_point18=ar = if(equal(lev,0),ar*-1,ar);
wave_0_per_point19=br = if(above(sample,0),br,1);
wave_0_per_point20=br = if(equal(lev,1),br*-1,br);
wave_0_per_point21=cr = if(above(sample,0),cr,1);
wave_0_per_point22=cr = if(equal(lev,2),cr*-1,cr);
wave_0_per_point23=dr = if(above(sample,0),dr,1);
wave_0_per_point24=dr = if(equal(lev,3),dr*-1,dr);
wave_0_per_point25=er = if(above(sample,0),er,1);
wave_0_per_point26=er = if(equal(lev,4),er*-1,er);
wave_0_per_point27=fr = if(above(sample,0),fr,1);
wave_0_per_point28=fr = if(equal(lev,5),fr*-1,fr);
wave_0_per_point29=gr = if(above(sample,0),gr,1);
wave_0_per_point30=gr = if(equal(lev,6),gr*-1,gr);
wave_0_per_point31=hr = if(above(sample,0),hr,1);
wave_0_per_point32=hr = if(equal(lev,7),hr*-1,hr);
wave_0_per_point33=
wave_0_per_point34=mlev = lev*above(sample,0);
wave_0_per_point35=
wave_0_per_point36=swi = equal(q4,0)*equal(sample,0);
wave_0_per_point37=
wave_0_per_point38=ha = if(swi,1-2*rand(2),ha);
wave_0_per_point39=hb = if(swi,1-2*rand(2),hb);
wave_0_per_point40=hc = if(swi,1-2*rand(2),hc);
wave_0_per_point41=hd = if(swi,1-2*rand(2),hd);
wave_0_per_point42=he = if(swi,1-2*rand(2),he);
wave_0_per_point43=hf = if(swi,1-2*rand(2),hf);
wave_0_per_point44=hg = if(swi,1-2*rand(2),hg);
wave_0_per_point45=hh = if(swi,1-2*rand(2),hh);
wave_0_per_point46=
wave_0_per_point47=aang = if(above(sample,0),aang,aang + (q1*.8 + q2*.1 + q3*.1)*ha*1);
wave_0_per_point48=bang = if(above(sample,0),bang,bang + (q1*.57 + q2*.33 + q3*.1)*hb*1.33);
wave_0_per_point49=cang = if(above(sample,0),cang,cang + (q1*.33 + q2*.57 + q3*.1)*hc*1.67);
wave_0_per_point50=dang = if(above(sample,0),dang,dang + (q1*.1 + q2*.8 + q3*.1)*hd*2);
wave_0_per_point51=eang = if(above(sample,0),eang,eang + (q1*.1 + q2*.57 + q3*.33)*he*2.33);
wave_0_per_point52=fang = if(above(sample,0),fang,fang + (q1*.1 + q2*.33 + q3*.57)*hf*2.67);
wave_0_per_point53=gang = if(above(sample,0),gang,gang + (q1*.1 + q2*.1 + q3*.8)*hg*3);
wave_0_per_point54=hang = if(above(sample,0),hang,hang + (q3)*hh*3);
wave_0_per_point55=
wave_0_per_point56=len = len*mad;
wave_0_per_point57=x = .5 + above(lev,0)*sin(aang)*len*ar;
wave_0_per_point58=y = 0.5 + above(lev,0)*cos(aang)*len;
wave_0_per_point59=
wave_0_per_point60=an = bang*(ar + br)*br;
wave_0_per_point61=len = len*mad;
wave_0_per_point62=x = x + above(lev,1)*sin(an)*len*br;
wave_0_per_point63=y = y + above(lev,1)*cos(an)*len;
wave_0_per_point64=
wave_0_per_point65=an = cang*(ar + br + cr)*cr;
wave_0_per_point66=len = len*mad;
wave_0_per_point67=x = x + above(lev,2)*sin(an)*len*cr;
wave_0_per_point68=y = y + above(lev,2)*cos(an)*len;
wave_0_per_point69=
wave_0_per_point70=an = dang*(ar + br + cr + dr)*dr;
wave_0_per_point71=len = len*mad;
wave_0_per_point72=x = x + above(lev,3)*sin(an)*len*dr;
wave_0_per_point73=y = y + above(lev,3)*cos(an)*len;
wave_0_per_point74=
wave_0_per_point75=an = eang*(ar + br + cr + dr + er)*er;
wave_0_per_point76=len = len*mad;
wave_0_per_point77=x = x + above(lev,4)*sin(an)*len*er;
wave_0_per_point78=y = y + above(lev,4)*cos(an)*len;
wave_0_per_point79=
wave_0_per_point80=an = fang*(ar + br + cr + dr + er + fr)*fr;
wave_0_per_point81=len = len*mad;
wave_0_per_point82=x = x + above(lev,5)*sin(an)*len*fr;
wave_0_per_point83=y = y + above(lev,5)*cos(an)*len;
wave_0_per_point84=
wave_0_per_point85=an = gang*(ar + br + cr + dr + er + fr + gr)*gr;
wave_0_per_point86=len = len*mad;
wave_0_per_point87=x = x + above(lev,6)*sin(an)*len*gr;
wave_0_per_point88=y = y + above(lev,6)*cos(an)*len;
wave_0_per_point89=
wave_0_per_point90=an = hang*(ar + br + cr + dr + er + fr + gr + hr)*hr;
wave_0_per_point91=len = len*mad;
wave_0_per_point92=x = x + above(lev,7)*sin(an)*len*hr;
wave_0_per_point93=y = y + above(lev,7)*cos(an)*len;
wave_0_per_point94=
wave_0_per_point95=x = (x-.5)*.75 + .5;
wave_0_per_point96=
wave_0_per_point97=x = int(x*200)*.005;
wave_0_per_point98=y = int(y*200)*.005;
wavecode_1_enabled=1
wavecode_1_samples=512
wavecode_1_sep=0
wavecode_1_bSpectrum=0
wavecode_1_bUseDots=0
wavecode_1_bDrawThick=1
wavecode_1_bAdditive=0
wavecode_1_scaling=0.891519
wavecode_1_smoothing=0.820000
wavecode_1_r=1.0
wavecode_1_g=1.0
wavecode_1_b=1.0
wavecode_1_a=0.1
wave_1_init1=t1 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init2=t2 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init3=t3 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init4=t4 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init5=t5 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init6=t6 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init7=t7 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init8=t8 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_1_init9=
wave_1_per_frame1=tm = time*.1;
wave_1_per_frame2=t1 = t1*sin(tm*t4) + (1-t1)*sin(tm*t7);
wave_1_per_frame3=t2 = t2*sin(tm*t5) + (1-t2)*sin(tm*t8);
wave_1_per_frame4=t3 = t3*sin(tm*t6) + (1-t3)*sin(tm*1);
wave_1_per_frame5=
wave_1_per_frame6=tic = min(time - tin,1);
wave_1_per_frame7=tin = time;
wave_1_per_frame8=
wave_1_per_frame9=tva = (tic*q1*.5);
wave_1_per_frame10=tvb = (tic*q2*.5);
wave_1_per_frame11=tvc = (tic*q3*.5);
wave_1_per_frame12=
wave_1_per_frame13=q1 = tva;
wave_1_per_frame14=q2 = tvb;
wave_1_per_frame15=q3 = tvc;
wave_1_per_frame16=
wave_1_per_frame17=sz = .3;
wave_1_per_frame18=ra = .1;
wave_1_per_frame19=len = if(above(q6,0),if(below(len,sz),len + ra*sz*tic,min(sz,len)),if(above(len,0),len - ra*sz*tic,max(0,len)));
wave_1_per_frame20=t4 = len;
wave_1_per_point1=ang = 0;
wave_1_per_point2=len = t4;
wave_1_per_point3=mad = .6;
wave_1_per_point4=
wave_1_per_point5=it = if(above(sample,0),(it+equal(lev,8)),1);
wave_1_per_point6=ita = (ita + 1)*above(sample,0);
wave_1_per_point7=
wave_1_per_point8=mod = if(equal(it%2,0),1,  if(equal((it+1)%4,0),2,  if(equal((it+3)%8,0),3,  if(equal((it+7)%16,0),4,  if(equal((it+15)%32,0),5,  if(equal((it+31)%64,0),6,  if(equal((it+63)%128,0),7,7)  ))))));
wave_1_per_point9=
wave_1_per_point10=sw = sw - 1;
wave_1_per_point11=sw = if(equal(lev,8),mod,sw)*above(sample,0);
wave_1_per_point12=
wave_1_per_point13=lev = if(above(sample,0),if(above(sw,0),lev-1,lev+1),0);
wave_1_per_point14=a = lev*.1*1.46;
wave_1_per_point15=a = equal(lev,8);
wave_1_per_point16=
wave_1_per_point17=ar = if(above(sample,0),ar,1);
wave_1_per_point18=ar = if(equal(lev,0),ar*-1,ar);
wave_1_per_point19=br = if(above(sample,0),br,1);
wave_1_per_point20=br = if(equal(lev,1),br*-1,br);
wave_1_per_point21=cr = if(above(sample,0),cr,1);
wave_1_per_point22=cr = if(equal(lev,2),cr*-1,cr);
wave_1_per_point23=dr = if(above(sample,0),dr,1);
wave_1_per_point24=dr = if(equal(lev,3),dr*-1,dr);
wave_1_per_point25=er = if(above(sample,0),er,1);
wave_1_per_point26=er = if(equal(lev,4),er*-1,er);
wave_1_per_point27=fr = if(above(sample,0),fr,1);
wave_1_per_point28=fr = if(equal(lev,5),fr*-1,fr);
wave_1_per_point29=gr = if(above(sample,0),gr,1);
wave_1_per_point30=gr = if(equal(lev,6),gr*-1,gr);
wave_1_per_point31=hr = if(above(sample,0),hr,1);
wave_1_per_point32=hr = if(equal(lev,7),hr*-1,hr);
wave_1_per_point33=
wave_1_per_point34=mlev = lev*above(sample,0);
wave_1_per_point35=
wave_1_per_point36=swi = equal(q4,0)*equal(sample,0);
wave_1_per_point37=
wave_1_per_point38=ha = if(swi,1-2*rand(2),ha);
wave_1_per_point39=hb = if(swi,1-2*rand(2),hb);
wave_1_per_point40=hc = if(swi,1-2*rand(2),hc);
wave_1_per_point41=hd = if(swi,1-2*rand(2),hd);
wave_1_per_point42=he = if(swi,1-2*rand(2),he);
wave_1_per_point43=hf = if(swi,1-2*rand(2),hf);
wave_1_per_point44=hg = if(swi,1-2*rand(2),hg);
wave_1_per_point45=hh = if(swi,1-2*rand(2),hh);
wave_1_per_point46=
wave_1_per_point47=aang = if(above(sample,0),aang,aang + (q1*.8 + q2*.1 + q3*.1)*ha*1);
wave_1_per_point48=bang = if(above(sample,0),bang,bang + (q1*.57 + q2*.33 + q3*.1)*hb*1.33);
wave_1_per_point49=cang = if(above(sample,0),cang,cang + (q1*.33 + q2*.57 + q3*.1)*hc*1.67);
wave_1_per_point50=dang = if(above(sample,0),dang,dang + (q1*.1 + q2*.8 + q3*.1)*hd*2);
wave_1_per_point51=eang = if(above(sample,0),eang,eang + (q1*.1 + q2*.57 + q3*.33)*he*2.33);
wave_1_per_point52=fang = if(above(sample,0),fang,fang + (q1*.1 + q2*.33 + q3*.57)*hf*2.67);
wave_1_per_point53=gang = if(above(sample,0),gang,gang + (q1*.1 + q2*.1 + q3*.8)*hg*3);
wave_1_per_point54=hang = if(above(sample,0),hang,hang + (q3)*hh*3);
wave_1_per_point55=
wave_1_per_point56=len = len*mad;
wave_1_per_point57=x = .5 + above(lev,0)*sin(aang)*len*ar;
wave_1_per_point58=y = 0.5 + above(lev,0)*cos(aang)*len;
wave_1_per_point59=
wave_1_per_point60=an = bang*(ar + br)*br;
wave_1_per_point61=len = len*mad;
wave_1_per_point62=x = x + above(lev,1)*sin(an)*len*br;
wave_1_per_point63=y = y + above(lev,1)*cos(an)*len;
wave_1_per_point64=
wave_1_per_point65=an = cang*(ar + br + cr)*cr;
wave_1_per_point66=len = len*mad;
wave_1_per_point67=x = x + above(lev,2)*sin(an)*len*cr;
wave_1_per_point68=y = y + above(lev,2)*cos(an)*len;
wave_1_per_point69=
wave_1_per_point70=an = dang*(ar + br + cr + dr)*dr;
wave_1_per_point71=len = len*mad;
wave_1_per_point72=x = x + above(lev,3)*sin(an)*len*dr;
wave_1_per_point73=y = y + above(lev,3)*cos(an)*len;
wave_1_per_point74=
wave_1_per_point75=an = eang*(ar + br + cr + dr + er)*er;
wave_1_per_point76=len = len*mad;
wave_1_per_point77=x = x + above(lev,4)*sin(an)*len*er;
wave_1_per_point78=y = y + above(lev,4)*cos(an)*len;
wave_1_per_point79=
wave_1_per_point80=an = fang*(ar + br + cr + dr + er + fr)*fr;
wave_1_per_point81=len = len*mad;
wave_1_per_point82=x = x + above(lev,5)*sin(an)*len*fr;
wave_1_per_point83=y = y + above(lev,5)*cos(an)*len;
wave_1_per_point84=
wave_1_per_point85=an = gang*(ar + br + cr + dr + er + fr + gr)*gr;
wave_1_per_point86=len = len*mad;
wave_1_per_point87=x = x + above(lev,6)*sin(an)*len*gr;
wave_1_per_point88=y = y + above(lev,6)*cos(an)*len;
wave_1_per_point89=
wave_1_per_point90=an = hang*(ar + br + cr + dr + er + fr + gr + hr)*hr;
wave_1_per_point91=len = len*mad;
wave_1_per_point92=x = x + above(lev,7)*sin(an)*len*hr;
wave_1_per_point93=y = y + above(lev,7)*cos(an)*len;
wave_1_per_point94=
wave_1_per_point95=x = (x-.5)*.75 + .5;
wave_1_per_point96=
wave_1_per_point97=x = int(x*200)*.005;
wave_1_per_point98=y = int(y*200)*.005;
wavecode_2_enabled=1
wavecode_2_samples=512
wavecode_2_sep=0
wavecode_2_bSpectrum=0
wavecode_2_bUseDots=0
wavecode_2_bDrawThick=1
wavecode_2_bAdditive=0
wavecode_2_scaling=0.891519
wavecode_2_smoothing=0.820000
wavecode_2_r=1.0
wavecode_2_g=1.0
wavecode_2_b=1.0
wavecode_2_a=0.1
wave_2_init1=t1 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init2=t2 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init3=t3 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init4=t4 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init5=t5 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init6=t6 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init7=t7 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init8=t8 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_2_init9=
wave_2_per_frame1=tm = time*.1;
wave_2_per_frame2=t1 = t1*sin(tm*t4) + (1-t1)*sin(tm*t7);
wave_2_per_frame3=t2 = t2*sin(tm*t5) + (1-t2)*sin(tm*t8);
wave_2_per_frame4=t3 = t3*sin(tm*t6) + (1-t3)*sin(tm*1);
wave_2_per_frame5=
wave_2_per_frame6=tic = min(time - tin,1);
wave_2_per_frame7=tin = time;
wave_2_per_frame8=
wave_2_per_frame9=tva = (tic*q1*.5);
wave_2_per_frame10=tvb = (tic*q2*.5);
wave_2_per_frame11=tvc = (tic*q3*.5);
wave_2_per_frame12=
wave_2_per_frame13=q1 = tva;
wave_2_per_frame14=q2 = tvb;
wave_2_per_frame15=q3 = tvc;
wave_2_per_frame16=
wave_2_per_frame17=sz = .4;
wave_2_per_frame18=ra = .1;
wave_2_per_frame19=len = if(above(q6,0),if(below(len,sz),len + ra*sz*tic,min(sz,len)),if(above(len,0),len - ra*sz*tic,max(0,len)));
wave_2_per_frame20=t4 = len;
wave_2_per_point1=ang = 0;
wave_2_per_point2=len = t4;
wave_2_per_point3=mad = .6;
wave_2_per_point4=
wave_2_per_point5=it = if(above(sample,0),(it+equal(lev,8)),1);
wave_2_per_point6=ita = (ita + 1)*above(sample,0);
wave_2_per_point7=
wave_2_per_point8=mod = if(equal(it%2,0),1,  if(equal((it+1)%4,0),2,  if(equal((it+3)%8,0),3,  if(equal((it+7)%16,0),4,  if(equal((it+15)%32,0),5,  if(equal((it+31)%64,0),6,  if(equal((it+63)%128,0),7,7)  ))))));
wave_2_per_point9=
wave_2_per_point10=sw = sw - 1;
wave_2_per_point11=sw = if(equal(lev,8),mod,sw)*above(sample,0);
wave_2_per_point12=
wave_2_per_point13=lev = if(above(sample,0),if(above(sw,0),lev-1,lev+1),0);
wave_2_per_point14=a = lev*.1*1.46;
wave_2_per_point15=a = equal(lev,8);
wave_2_per_point16=
wave_2_per_point17=ar = if(above(sample,0),ar,1);
wave_2_per_point18=ar = if(equal(lev,0),ar*-1,ar);
wave_2_per_point19=br = if(above(sample,0),br,1);
wave_2_per_point20=br = if(equal(lev,1),br*-1,br);
wave_2_per_point21=cr = if(above(sample,0),cr,1);
wave_2_per_point22=cr = if(equal(lev,2),cr*-1,cr);
wave_2_per_point23=dr = if(above(sample,0),dr,1);
wave_2_per_point24=dr = if(equal(lev,3),dr*-1,dr);
wave_2_per_point25=er = if(above(sample,0),er,1);
wave_2_per_point26=er = if(equal(lev,4),er*-1,er);
wave_2_per_point27=fr = if(above(sample,0),fr,1);
wave_2_per_point28=fr = if(equal(lev,5),fr*-1,fr);
wave_2_per_point29=gr = if(above(sample,0),gr,1);
wave_2_per_point30=gr = if(equal(lev,6),gr*-1,gr);
wave_2_per_point31=hr = if(above(sample,0),hr,1);
wave_2_per_point32=hr = if(equal(lev,7),hr*-1,hr);
wave_2_per_point33=
wave_2_per_point34=mlev = lev*above(sample,0);
wave_2_per_point35=
wave_2_per_point36=swi = equal(q4,0)*equal(sample,0);
wave_2_per_point37=
wave_2_per_point38=ha = if(swi,1-2*rand(2),ha);
wave_2_per_point39=hb = if(swi,1-2*rand(2),hb);
wave_2_per_point40=hc = if(swi,1-2*rand(2),hc);
wave_2_per_point41=hd = if(swi,1-2*rand(2),hd);
wave_2_per_point42=he = if(swi,1-2*rand(2),he);
wave_2_per_point43=hf = if(swi,1-2*rand(2),hf);
wave_2_per_point44=hg = if(swi,1-2*rand(2),hg);
wave_2_per_point45=hh = if(swi,1-2*rand(2),hh);
wave_2_per_point46=
wave_2_per_point47=aang = if(above(sample,0),aang,aang + (q1*.8 + q2*.1 + q3*.1)*ha*1);
wave_2_per_point48=bang = if(above(sample,0),bang,bang + (q1*.57 + q2*.33 + q3*.1)*hb*1.33);
wave_2_per_point49=cang = if(above(sample,0),cang,cang + (q1*.33 + q2*.57 + q3*.1)*hc*1.67);
wave_2_per_point50=dang = if(above(sample,0),dang,dang + (q1*.1 + q2*.8 + q3*.1)*hd*2);
wave_2_per_point51=eang = if(above(sample,0),eang,eang + (q1*.1 + q2*.57 + q3*.33)*he*2.33);
wave_2_per_point52=fang = if(above(sample,0),fang,fang + (q1*.1 + q2*.33 + q3*.57)*hf*2.67);
wave_2_per_point53=gang = if(above(sample,0),gang,gang + (q1*.1 + q2*.1 + q3*.8)*hg*3);
wave_2_per_point54=hang = if(above(sample,0),hang,hang + (q3)*hh*3);
wave_2_per_point55=
wave_2_per_point56=len = len*mad;
wave_2_per_point57=x = .5 + above(lev,0)*sin(aang)*len*ar;
wave_2_per_point58=y = 0.5 + above(lev,0)*cos(aang)*len;
wave_2_per_point59=
wave_2_per_point60=an = bang*(ar + br)*br;
wave_2_per_point61=len = len*mad;
wave_2_per_point62=x = x + above(lev,1)*sin(an)*len*br;
wave_2_per_point63=y = y + above(lev,1)*cos(an)*len;
wave_2_per_point64=
wave_2_per_point65=an = cang*(ar + br + cr)*cr;
wave_2_per_point66=len = len*mad;
wave_2_per_point67=x = x + above(lev,2)*sin(an)*len*cr;
wave_2_per_point68=y = y + above(lev,2)*cos(an)*len;
wave_2_per_point69=
wave_2_per_point70=an = dang*(ar + br + cr + dr)*dr;
wave_2_per_point71=len = len*mad;
wave_2_per_point72=x = x + above(lev,3)*sin(an)*len*dr;
wave_2_per_point73=y = y + above(lev,3)*cos(an)*len;
wave_2_per_point74=
wave_2_per_point75=an = eang*(ar + br + cr + dr + er)*er;
wave_2_per_point76=len = len*mad;
wave_2_per_point77=x = x + above(lev,4)*sin(an)*len*er;
wave_2_per_point78=y = y + above(lev,4)*cos(an)*len;
wave_2_per_point79=
wave_2_per_point80=an = fang*(ar + br + cr + dr + er + fr)*fr;
wave_2_per_point81=len = len*mad;
wave_2_per_point82=x = x + above(lev,5)*sin(an)*len*fr;
wave_2_per_point83=y = y + above(lev,5)*cos(an)*len;
wave_2_per_point84=
wave_2_per_point85=an = gang*(ar + br + cr + dr + er + fr + gr)*gr;
wave_2_per_point86=len = len*mad;
wave_2_per_point87=x = x + above(lev,6)*sin(an)*len*gr;
wave_2_per_point88=y = y + above(lev,6)*cos(an)*len;
wave_2_per_point89=
wave_2_per_point90=an = hang*(ar + br + cr + dr + er + fr + gr + hr)*hr;
wave_2_per_point91=len = len*mad;
wave_2_per_point92=x = x + above(lev,7)*sin(an)*len*hr;
wave_2_per_point93=y = y + above(lev,7)*cos(an)*len;
wave_2_per_point94=
wave_2_per_point95=x = (x-.5)*.75 + .5;
wave_2_per_point96=
wave_2_per_point97=x = int(x*200)*.005;
wave_2_per_point98=y = int(y*200)*.005;
wavecode_3_enabled=1
wavecode_3_samples=512
wavecode_3_sep=0
wavecode_3_bSpectrum=0
wavecode_3_bUseDots=0
wavecode_3_bDrawThick=1
wavecode_3_bAdditive=0
wavecode_3_scaling=0.891519
wavecode_3_smoothing=0.820000
wavecode_3_r=1.0
wavecode_3_g=1.0
wavecode_3_b=1.0
wavecode_3_a=0.1
wave_3_init1=t1 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init2=t2 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init3=t3 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init4=t4 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init5=t5 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init6=t6 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init7=t7 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init8=t8 = 1 + (rand(101)*.01 - rand(101)*.01)*.3;
wave_3_init9=
wave_3_per_frame1=tm = time*.1;
wave_3_per_frame2=t1 = t1*sin(tm*t4) + (1-t1)*sin(tm*t7);
wave_3_per_frame3=t2 = t2*sin(tm*t5) + (1-t2)*sin(tm*t8);
wave_3_per_frame4=t3 = t3*sin(tm*t6) + (1-t3)*sin(tm*1);
wave_3_per_frame5=
wave_3_per_frame6=tic = min(time - tin,1);
wave_3_per_frame7=tin = time;
wave_3_per_frame8=
wave_3_per_frame9=tva = (tic*q1*.5);
wave_3_per_frame10=tvb = (tic*q2*.5);
wave_3_per_frame11=tvc = (tic*q3*.5);
wave_3_per_frame12=
wave_3_per_frame13=q1 = tva;
wave_3_per_frame14=q2 = tvb;
wave_3_per_frame15=q3 = tvc;
wave_3_per_frame16=
wave_3_per_frame17=sz = .5;
wave_3_per_frame18=ra = .1;
wave_3_per_frame19=len = if(above(q6,0),if(below(len,sz),len + ra*sz*tic,min(sz,len)),if(above(len,0),len - ra*sz*tic,max(0,len)));
wave_3_per_frame20=t4 = len;
wave_3_per_point1=ang = 0;
wave_3_per_point2=len = t4;
wave_3_per_point3=mad = .6;
wave_3_per_point4=
wave_3_per_point5=it = if(above(sample,0),(it+equal(lev,8)),1);
wave_3_per_point6=ita = (ita + 1)*above(sample,0);
wave_3_per_point7=
wave_3_per_point8=mod = if(equal(it%2,0),1,  if(equal((it+1)%4,0),2,  if(equal((it+3)%8,0),3,  if(equal((it+7)%16,0),4,  if(equal((it+15)%32,0),5,  if(equal((it+31)%64,0),6,  if(equal((it+63)%128,0),7,7)  ))))));
wave_3_per_point9=
wave_3_per_point10=sw = sw - 1;
wave_3_per_point11=sw = if(equal(lev,8),mod,sw)*above(sample,0);
wave_3_per_point12=
wave_3_per_point13=lev = if(above(sample,0),if(above(sw,0),lev-1,lev+1),0);
wave_3_per_point14=a = lev*.1*1.46;
wave_3_per_point15=a = equal(lev,8);
wave_3_per_point16=
wave_3_per_point17=ar = if(above(sample,0),ar,1);
wave_3_per_point18=ar = if(equal(lev,0),ar*-1,ar);
wave_3_per_point19=br = if(above(sample,0),br,1);
wave_3_per_point20=br = if(equal(lev,1),br*-1,br);
wave_3_per_point21=cr = if(above(sample,0),cr,1);
wave_3_per_point22=cr = if(equal(lev,2),cr*-1,cr);
wave_3_per_point23=dr = if(above(sample,0),dr,1);
wave_3_per_point24=dr = if(equal(lev,3),dr*-1,dr);
wave_3_per_point25=er = if(above(sample,0),er,1);
wave_3_per_point26=er = if(equal(lev,4),er*-1,er);
wave_3_per_point27=fr = if(above(sample,0),fr,1);
wave_3_per_point28=fr = if(equal(lev,5),fr*-1,fr);
wave_3_per_point29=gr = if(above(sample,0),gr,1);
wave_3_per_point30=gr = if(equal(lev,6),gr*-1,gr);
wave_3_per_point31=hr = if(above(sample,0),hr,1);
wave_3_per_point32=hr = if(equal(lev,7),hr*-1,hr);
wave_3_per_point33=
wave_3_per_point34=mlev = lev*above(sample,0);
wave_3_per_point35=
wave_3_per_point36=swi = equal(q4,0)*equal(sample,0);
wave_3_per_point37=
wave_3_per_point38=ha = if(swi,1-2*rand(2),ha);
wave_3_per_point39=hb = if(swi,1-2*rand(2),hb);
wave_3_per_point40=hc = if(swi,1-2*rand(2),hc);
wave_3_per_point41=hd = if(swi,1-2*rand(2),hd);
wave_3_per_point42=he = if(swi,1-2*rand(2),he);
wave_3_per_point43=hf = if(swi,1-2*rand(2),hf);
wave_3_per_point44=hg = if(swi,1-2*rand(2),hg);
wave_3_per_point45=hh = if(swi,1-2*rand(2),hh);
wave_3_per_point46=
wave_3_per_point47=aang = if(above(sample,0),aang,aang + (q1*.8 + q2*.1 + q3*.1)*ha*1);
wave_3_per_point48=bang = if(above(sample,0),bang,bang + (q1*.57 + q2*.33 + q3*.1)*hb*1.33);
wave_3_per_point49=cang = if(above(sample,0),cang,cang + (q1*.33 + q2*.57 + q3*.1)*hc*1.67);
wave_3_per_point50=dang = if(above(sample,0),dang,dang + (q1*.1 + q2*.8 + q3*.1)*hd*2);
wave_3_per_point51=eang = if(above(sample,0),eang,eang + (q1*.1 + q2*.57 + q3*.33)*he*2.33);
wave_3_per_point52=fang = if(above(sample,0),fang,fang + (q1*.1 + q2*.33 + q3*.57)*hf*2.67);
wave_3_per_point53=gang = if(above(sample,0),gang,gang + (q1*.1 + q2*.1 + q3*.8)*hg*3);
wave_3_per_point54=hang = if(above(sample,0),hang,hang + (q3)*hh*3);
wave_3_per_point55=
wave_3_per_point56=len = len*mad;
wave_3_per_point57=x = .5 + above(lev,0)*sin(aang)*len*ar;
wave_3_per_point58=y = 0.5 + above(lev,0)*cos(aang)*len;
wave_3_per_point59=
wave_3_per_point60=an = bang*(ar + br)*br;
wave_3_per_point61=len = len*mad;
wave_3_per_point62=x = x + above(lev,1)*sin(an)*len*br;
wave_3_per_point63=y = y + above(lev,1)*cos(an)*len;
wave_3_per_point64=
wave_3_per_point65=an = cang*(ar + br + cr)*cr;
wave_3_per_point66=len = len*mad;
wave_3_per_point67=x = x + above(lev,2)*sin(an)*len*cr;
wave_3_per_point68=y = y + above(lev,2)*cos(an)*len;
wave_3_per_point69=
wave_3_per_point70=an = dang*(ar + br + cr + dr)*dr;
wave_3_per_point71=len = len*mad;
wave_3_per_point72=x = x + above(lev,3)*sin(an)*len*dr;
wave_3_per_point73=y = y + above(lev,3)*cos(an)*len;
wave_3_per_point74=
wave_3_per_point75=an = eang*(ar + br + cr + dr + er)*er;
wave_3_per_point76=len = len*mad;
wave_3_per_point77=x = x + above(lev,4)*sin(an)*len*er;
wave_3_per_point78=y = y + above(lev,4)*cos(an)*len;
wave_3_per_point79=
wave_3_per_point80=an = fang*(ar + br + cr + dr + er + fr)*fr;
wave_3_per_point81=len = len*mad;
wave_3_per_point82=x = x + above(lev,5)*sin(an)*len*fr;
wave_3_per_point83=y = y + above(lev,5)*cos(an)*len;
wave_3_per_point84=
wave_3_per_point85=an = gang*(ar + br + cr + dr + er + fr + gr)*gr;
wave_3_per_point86=len = len*mad;
wave_3_per_point87=x = x + above(lev,6)*sin(an)*len*gr;
wave_3_per_point88=y = y + above(lev,6)*cos(an)*len;
wave_3_per_point89=
wave_3_per_point90=an = hang*(ar + br + cr + dr + er + fr + gr + hr)*hr;
wave_3_per_point91=len = len*mad;
wave_3_per_point92=x = x + above(lev,7)*sin(an)*len*hr;
wave_3_per_point93=y = y + above(lev,7)*cos(an)*len;
wave_3_per_point94=
wave_3_per_point95=x = (x-.5)*.75 + .5;
wave_3_per_point96=
wave_3_per_point97=x = int(x*200)*.005;
wave_3_per_point98=y = int(y*200)*.005;
shapecode_0_enabled=0
shapecode_0_sides=4
shapecode_0_additive=0
shapecode_0_thickOutline=0
shapecode_0_textured=1
shapecode_0_x=0.630000
shapecode_0_y=0.5
shapecode_0_rad=3.356410
shapecode_0_ang=3.141593
shapecode_0_tex_ang=3.141593
shapecode_0_tex_zoom=0.138466
shapecode_0_r=1.0
shapecode_0_g=1.0
shapecode_0_b=1.0
shapecode_0_a=1.0
shapecode_0_r2=1.0
shapecode_0_g2=1.0
shapecode_0_b2=1.0
shapecode_0_a2=1.0
shapecode_0_border_r=1.0
shapecode_0_border_g=1.0
shapecode_0_border_b=1.0
shapecode_0_border_a=0.0
shape_0_per_frame1=it = (it + 1)*below(it,10000);
shape_0_per_frame2=x = if(it%2,.26,.7247);
shape_0_per_frame3=
shape_0_per_frame4=tm = time*.1;
shape_0_per_frame5=x = .26 + .4647*(tm-int(tm));
shapecode_1_enabled=0
shapecode_1_sides=40
shapecode_1_additive=0
shapecode_1_thickOutline=0
shapecode_1_textured=1
shapecode_1_x=0.1
shapecode_1_y=0.8
shapecode_1_rad=0.833456
shapecode_1_ang=3.141593
shapecode_1_tex_ang=5.403539
shapecode_1_tex_zoom=0.499805
shapecode_1_r=1.0
shapecode_1_g=1.0
shapecode_1_b=1.0
shapecode_1_a=1.0
shapecode_1_r2=1.0
shapecode_1_g2=1.0
shapecode_1_b2=1.0
shapecode_1_a2=0.0
shapecode_1_border_r=1.0
shapecode_1_border_g=1.0
shapecode_1_border_b=1.0
shapecode_1_border_a=0.0
shapecode_2_enabled=1
shapecode_2_sides=4
shapecode_2_additive=0
shapecode_2_thickOutline=1
shapecode_2_textured=1
shapecode_2_x=0.5
shapecode_2_y=0.5
shapecode_2_rad=2.008520
shapecode_2_ang=0.0
shapecode_2_tex_ang=1.570797
shapecode_2_tex_zoom=0.498300
shapecode_2_r=0.9
shapecode_2_g=0.940000
shapecode_2_b=0.890000
shapecode_2_a=1.0
shapecode_2_r2=0.840000
shapecode_2_g2=0.930000
shapecode_2_b2=1.0
shapecode_2_a2=1.0
shapecode_2_border_r=1.0
shapecode_2_border_g=1.0
shapecode_2_border_b=0.0
shapecode_2_border_a=0.1
shape_2_init1=t1 = rand(100)*0.01;
shape_2_init2=t2 = rand(100)*0.01;
shape_2_init3=te = 1;
shape_2_init4=poly = 5;
shape_2_per_frame1=r = .75 + .25*sin(time*1.187);
shape_2_per_frame2=g = .75 + .25*sin(time*1.153);
shape_2_per_frame3=b = .75 + .25*sin(time*1.105);
shape_2_per_frame4=
shape_2_per_frame5=r2 = 1.5 - r;
shape_2_per_frame6=g2 = 1.5 - g;
shape_2_per_frame7=b2 = 1.5 - b;
shapecode_3_enabled=0
shapecode_3_sides=40
shapecode_3_additive=0
shapecode_3_thickOutline=0
shapecode_3_textured=1
shapecode_3_x=0.5
shapecode_3_y=0.5
shapecode_3_rad=1.847536
shapecode_3_ang=3.141593
shapecode_3_tex_ang=5.592035
shapecode_3_tex_zoom=0.499805
shapecode_3_r=1.0
shapecode_3_g=1.0
shapecode_3_b=1.0
shapecode_3_a=1.0
shapecode_3_r2=1.0
shapecode_3_g2=1.0
shapecode_3_b2=1.0
shapecode_3_a2=1.0
shapecode_3_border_r=1.0
shapecode_3_border_g=1.0
shapecode_3_border_b=1.0
shapecode_3_border_a=0.0
per_frame_1=wave_a = 0;
per_frame_2=
per_frame_3=tic = min(time - tin,1);
per_frame_4=tin = time;
per_frame_5=
per_frame_6=ra = 10;
per_frame_7=
per_frame_8=
per_frame_9=treb_avg = tic*(treb_avg*(1/tic - ra) + ra*treb);
per_frame_10=mid_avg = tic*(mid_avg*(1/tic - ra) + ra*mid);
per_frame_11=bass_avg = tic*(bass_avg*(1/tic - ra) + ra*bass);
per_frame_12=
per_frame_13=rb = 1;
per_frame_14=vav = tic*(vav*(1/tic - rb) + rb*(bass+treb+mid)*.33333);
per_frame_15=q1 = treb_avg;
per_frame_16=q2 = mid_avg;
per_frame_17=q3 = bass_avg;
per_frame_18=
per_frame_19=db = bass - bass_avg;
per_frame_20=
per_frame_21=it = (it + tic)*below(it,1);
per_frame_22=
per_frame_23=rb = .5*(1/tic);
per_frame_24=bvb = tic*(bass*rb + (1/tic-rb)*bvb);
per_frame_25=bd = bass - bvb;
per_frame_26=
per_frame_27=vm = vm - tic + swi;
per_frame_28=swi = above(bd - vm,0);
per_frame_29=
per_frame_30=q4 = 1-swi;
per_frame_31=
per_frame_32=cm = if(above(iter,30) + equal(time,0),rand(3) + 1,cm);
per_frame_33=iter = (iter + tic)*(1-above(iter,30));
per_frame_34=q5 = if(equal(cm,0),3,cm);
per_frame_35=
per_frame_36=cma = if(above(itar,5) + equal(time,0),int(vav*5),cma);
per_frame_37=itar = (itar + tic)*(1-above(itar,5));
per_frame_38=
per_frame_39=q6 = int(vav*5);
per_frame_40=
per_frame_41=monitor = q6;
per_frame_42=
per_frame_43=decay = 1;
warp_1=`shader_body
warp_2=`{
warp_3=`    // sample previous frame
warp_4=`    ret.xyz = tex2D( sampler_main, uv ).xyz;
warp_5=`    
warp_6=`    // darken over time
warp_7=`    ret.xyz *= 1.00; //or try: ret.xyz -= 0.004;
warp_8=`}
comp_1=`shader_body
comp_2=`{
comp_3=`    float2 uv_echo = (uv - 0.5)*0.500*float2(-1,1) + 0.5;
comp_4=`    ret.xyz = max( tex2D(sampler_main, uv).xyz, 
comp_5=`                   tex2D(sampler_main, uv_echo).xyz
comp_6=`                  ); //old video echo effect
comp_7=`    ret.xyz *= 1.00; //old gamma effect
comp_8=`}
