screen.resolution.set (512,384)
music.play ("avo\music.xm")
text.display ("Press a key to exit.",CENTER,350)
@vumeter=macro.vumeter.create ("avo\gradient.gif",4,OFF)
repeat ()
macro.vumeter.display (@vumeter,60,(384/2))
until (keyboard.get ())
script.stop ()
function macro.vumeter.create ($filename,%space,%base) : objectid
%vumeter_space=%space
%vumeter_base=%base
return (picture.load ($filename))
end function
procedure macro.vumeter.display (@pic,%x,%y)
local (%width,%height,!div,%vumeter_x,%i)
%width=picture.width.get (@pic)
%height=picture.height.get (@pic)
!div=256/%height
%vumeter_x=0
for (%i=1 to music.channel.number.get())
if (%vumeter_amplitude[%i]>%vumeter_amplitude2[%i])
%vumeter_amplitude2[%i]=%vumeter_amplitude[%i]
else ()
%vumeter_amplitude2[%i]-=1
endif ()
picture.block.display (@pic,%x+%vumeter_x,%y+%vumeter_y,0,0,%width,%height)
screen.block.clear (%x+%vumeter_x,%y,%width,%height-%vumeter_amplitude2[%i]-%vumeter_base)
%vumeter_x+=%width+%vumeter_space
%vumeter_amplitude[%i]=(music.amplitude.get (%i-1)/!div)
next ()
time.wait (0.004)
end procedure