-- title: wavetest -- author: mieki256 -- desc: short description -- script: lua waveid=4 WAVADR=0x0ffe4 function makeWave() dt={} for i=0,31 do local v=0 -- multiplier, speed, shift v=v+getSin(i, 1.0, 1.0, 0) v=v+getSin(i, 1.5, 0.5, 0) v=v+getSin(i, 1.5, 2.0, 0) v=v+getSin(i, 0.5, 3.0, 90) --[[ v=v+getSin(i, 0.5, 3.0, 0) v=v+getSin(i, 0.25, 4.0, 0) --]] table.insert(dt,v) end return dt end function getSin(i,m,spd,sft) return m*math.sin(math.rad(spd*i*360/32+sft)) end function writeWave(id,dt) -- adjust if id<0 or id>15 then return end if #dt>32 then return end local vmax,vmin vmax=0 vmin=0 for i=1,#dt do if dt[i]>vmax then vmax=dt[i] end if dt[i]>4)&0x0f table.insert(dt,v1) table.insert(dt,v2) end -- draw wave local bx,by=24,12 local w,h=6,6 local x,y for ix=0,31 do x = ix * w + bx for iy=0,15 do y = iy * h + by rect(x,y,w,h,0) rect(x,y,w-1,h-1,1) end y=(15-dt[ix+1])*h+by rect(x,y,w-1,h-1,6) end drawGuide(bx,by,w,h) end dt=makeWave() writeWave(waveid,dt) t=0 function TIC() if keyp(14) then sfx(0,"A-4",30,0) end if keyp(25) then sfx(1,"A-4",30,0) end if btnp(5) then -- write to cart sync(1<<3,0,true) end cls(0) drawWave(waveid) print("WAVE ID: "..waveid, 2,120) print("Play: N or Y / Write: X", 2,128) t=t+1 end