--track0:ŒΒ”,1,1024,200,1 --track1:Buf•β³,0.01,1024,25,0.01 --track2:‘¬“x,1,1024,100,1 --track3:ŒΒ•Κ”,2,120,12,1 --check0:d—Ν,0 --dialog:Šξ€’l,local iki=100;Œp‘±ŽžŠΤ,local etime=3.00;Μͺ°Δή±³Δ/chk,chk2=1;}Œ`‘I‘π/fig,fig="‰~";»²½ή,local fgs1=10;ό•,local fgs2=100;Seed,sd=100;d—Ν’l,local grv0=9.8;Χέΐήъp“x/chk,chk1=0;FMin,local cmin=128;FMax,cmax=255;•ŒW”,local ww=1.00;‚‚³ŒW”,local hh=1.00;Χέΐήь”/chk,chk3=1; -------------------------------------set local t0=math.floor(obj.track0) local t1=obj.track1 local t2=math.floor(obj.track2) local t3=math.floor(obj.track3) local sw=obj.screen_w*ww local sh=obj.screen_h*hh ------------------------------------- local div=t0 local bcor=t1 buf={} n=obj.getaudio(buf,"audiobuffer","spectrum",div) -------------------------------------script if(time1==null)then time1={} end if(time2==null)then time2={} end if(flagl==null)then flagl={} end if(nidxl==null)then nidxl={} end if(obj.frame==0)then --*** for j=1,div do time1[j]=0 time2[j]=0 flagl[j]=false nidxl[j]=0 end if(div<#buf)then for j=div+1,#buf do buf[j]=null time1[j]=null time2[j]=null flagl[j]=null nidxl[j]=null end end end obj.setoption("drawtarget","tempbuffer",sw,sh) for j=1,div do bv=buf[j]/bcor if(bv>iki and flagl[j]==false)then --*** time1[j]=obj.time flagl[j]=true nidxl[j]=nidxl[j]+1 else time2[j]=obj.time end if(flagl[j]==true and math.abs(time1[j]-time2[j])<=etime)then --*** r=obj.rand(cmin,cmax,sd+j+nidxl[j],j) g=obj.rand(cmin,cmax,sd+j+nidxl[j]+1,j+1) b=obj.rand(cmin,cmax,sd+j+nidxl[j]+2,j+2) col=RGB(r,g,b) obj.load("figure",fig,col,fgs1,fgs2) spd=obj.rand(t2/2,t2,sd+j+nidxl[j],j) dst=math.abs(time1[j]-time2[j])*spd if(chk1==1)then rndr=obj.rand(-36000,36000,sd+nidxl[j],j)/100 else rndr=0 end rndx=obj.rand(-sw/3,sw/3,sd+nidxl[j],j) rndy=obj.rand(-sh/3,sh/3,sd+nidxl[j],j) et=math.abs(time1[j]-time2[j]) if(obj.check0)then grv=grv0/2*et^2 else grv=0 end if(chk3==0)then num=t3-1 else num=obj.rand(2,t3,sd+10,j+1)-1 end ang=360/(num+1) for i=0,num do r=math.rad(ang*i-90+rndr) cs=math.cos(r) sn=math.sin(r) dx=dst*cs+rndx dy=dst*sn+rndy+grv if(chk2==1)then zm=1-et/etime al=1-et/etime else zm=1 al=1 end rz=ang*i-90+rndr obj.draw(dx,dy,0,zm,al,0,0,rz) end end if(math.abs(time1[j]-time2[j])>etime)then --*** flagl[j]=false end end obj.load("tempbuffer") -- SpectrumCC22 kerokero9696 --[[http://madeinpc.blog50.fc2.com/]]--