@音声Flag解析 kerokero9696 --track0:Buf番号,1,1024,20,1 --track1:Buf補正,1,4096,25,0.01 --track2:グラフY,-1000,1000,60,0.1 --track3:サイズ,0,100,4,1 --check0:初期化,0 --dialog:音分割数,local div=40;描画密度,lcoef=2;赤点間隔,v1=50;黄点間隔,v2=10;基本色/col,col=0xffffff;基準値,ref=100;Flag図形係数,fc=3;Flag図形色/col,col2=0x00aeff;表示1/chk,chk1=0;FlagWrite/chk,chk2=0;File,file="R:\\BVFlag.txt"; -------------------------------------set local t0=math.floor(obj.track0) if(t0>=div)then t0=div end local t1=obj.track1 local t2=obj.track2 local t3=obj.track3 local sw=obj.screen_w local sh=obj.screen_h ------------------------------------- local bcor=t1 local buf={} local abm="spectrum" --pcm,spectrum,fourier local n=obj.getaudio(buf,"audiobuffer",abm,div) ------------------------------------script fs=sh/30 bv=0 if(chk1==1)then for i=1,div do bv=buf[i]/bcor dx=i*fs -div*fs/2+fs/2 dy=-bv +sh/2-fs/2 if(i==t0)then col1=0xff0000 else col1=col end obj.setfont("MS Gothic",fs,0,col1,col1) obj.load("text",i) obj.draw(dx,dy) end end if(bsum==null or obj.check0)then bsum={} end if(flag==null or obj.check0)then flag={} end if(obj.frame==0)then idx=1 idx2=1 end len=math.floor(sw*lcoef*obj.frame/obj.totalframe)+1 bsum[len]=buf[t0] fgs=t3 for i=1,len do bv=bsum[i]/bcor dx=i/lcoef-sw/2 dy=-bv+t2 if(v1<=v2)then v2=v1/2 end if(i%v1==0)then col1=0xff0000 fgs1=fgs*2 elseif(i%v2==0)then col1=0xffc900 fgs1=fgs*2 else col1=col fgs1=fgs end if(i==len)then fgs1=fgs*2 end if(bv>=ref)then col1=col2 fgs1=fgs*fc end obj.load("figure","円",col1,fgs1) obj.draw(dx,dy) end fs=sh/30 obj.setfont("MS Gothic",fs) output="Buf-N:"..t0.." Frame:"..(obj.frame+1).." Buf-V:"..math.floor(bv) obj.load("text",output) dx=-sw/2+fs*10 dy=-sh/2+fs*2 obj.draw(dx,dy) if(bv>=ref)then flag[idx2]=idx idx2=idx2+1 obj.setfont("MS Gothic",fs*2,3,0x00000,0xffffff) obj.load("text","Flag!!!") obj.draw() end idx=idx+1 ------------------------------------ if(chk2==1 and obj.frame==obj.totalframe)then f=io.open(file,"w") for i=1,#flag do f:write(flag[i].."\n") end io.close(f) f:close() end ------------------------------------- @フレーム平均Buf値表示 kerokero9696 --track0:音分割数,1,1024,20,1 --track1:Buf補正,1,1000,25,0.01 --track2:総数間隔,1,25,8,1 --track3:数値サイズ,4,120,12,1 --check0:Infomation,1 --dialog:図形選択/fig,fig="六角形";Color/col,col0=0xffc503;座標,pos={150,0}; ------------------------------------set t0=math.floor(obj.track0) t1=obj.track1 t2=obj.track2 fs=math.floor(obj.track3) sw=obj.screen_w sh=obj.screen_h ogvz=obj.getvalue("zoom")/100 ------------------------------------ div=t0 buf={} n=obj.getaudio(buf,"audiobuffer","spectrum",div) obj.setanchor("pos",1) if(#pos>2)then for i=3,#pos do pos[i]=null end end ------------------------------------ ik=50 for i=0,sw,ik do obj.load("figure","四角形",0x666666,sh) obj.aspect=0.998 dx=-sw/2+i dy=0 obj.draw(dx,dy) info=i--ここに表示したい開発時の値を入力 obj.setfont("MS Gothic",fs,0,0xffffff,0x444444) obj.load("text",info) dx=-sw/2+i+fs*6/5 dy=-sh/2+fs/2 obj.draw(dx,dy) end if(bvle==null)then bvle={} end if(obj.frame==0)then for i=1,div do bvle[i]=0 end end for i=1,div do if(i%2==0)then obj.load("figure","四角形",0x555555,sw) obj.aspect=-0.998 dx=0 dy=-sh/2+sh*(i-1/2)/div obj.draw(dx,dy) end fgs1=math.floor(sh/div-sh/100) if(fgs1<8)then fgs1=8 end obj.load("figure","円",col0,fgs1) dx=-sw/2+buf[i]/t1+fgs1/2 dy=-sh/2+sh*(i-1/2)/div obj.draw(dx,dy) if(obj.check0)then info=string.format("%02d",i)..":"..math.floor(buf[i]/t1) --ここに表示したい開発時の値を入力 obj.setfont("MS Gothic",fs,0,0xffffff,0x000000) obj.load("text",info) dx=-sw/2+buf[i]/t1+string.len(info)*fs*2/3 dy=-sh/2+sh*(i-1/2)/div obj.draw(dx,dy) bvle[i]=bvle[i]+buf[i]/t1 info=string.format("%02d",i)..":"..math.floor(bvle[i]/(obj.frame+1)).."/"..math.floor(bvle[i]) --ここに表示したい開発時の値を入力 obj.load("text",info) dx=pos[1]+(math.floor((i-1)/10)*fs+math.floor((i-1)/10)*fs*t2) dy=pos[2]+(sh*((i-1)%10-1/2)/div)*1.2 obj.draw(dx,dy) end end ------------------------------------- --[[http://madeinpc.blog50.fc2.com/]]--