// Project: Vumeters
// Created: 2017-01-05
// show all errors
SetErrorMode(2)
// set window properties
SetWindowTitle( "Vumeters" )
SetWindowSize( 1024, 768, 0 )
// set display properties
SetVirtualResolution( 1024, 768 )
SetOrientationAllowed( 1, 1, 1, 1 )
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
UseNewDefaultFonts( 1 ) // since version 2.0.20 we can use nicer default fonts
type _vumeters
x# as float
y# as float
sizex as float
level# as float // 0 to 100%
maxlevel# as float
groundx# as float
groundy# as float
up as integer
speed as integer
endtype
global vumeters as _vumeters[70]
ground# = 500
for i=1 to vumeters.length
vumeters[i].sizex = 10
vumeters[i].x# = i * vumeters[i].sizex*1.5
vumeters[i].y# = ground#
vumeters[i].level#=0
vumeters[i].maxlevel#=100
vumeters[i].up=1
vumeters[i].speed = random(10,20)
next
colorbegin=makecolor(255,0,0)
colorend =makecolor(255,255,0)
volume=100
offset=vumeters.length
do
for i=1 to vumeters.length
DrawBox(vumeters[i].x#, vumeters[i].y#, vumeters[i].x# + vumeters[i].sizex, vumeters[i].y# - vumeters[i].level#,colorbegin,colorbegin,colorend,colorend,1)
DrawBox(vumeters[i].x#, vumeters[i].y#, vumeters[i].x# + vumeters[i].sizex, vumeters[i].y# + vumeters[i].level#,makecolor(255,255,255),makecolor(255,255,255),makecolor(255,255,255),makecolor(255,255,255),1)
if vumeters[i].up=1 then inc vumeters[i].level#, vumeters[i].speed
if vumeters[i].up=0 then dec vumeters[i].level#, vumeters[i].speed
if vumeters[i].level# <=0
vumeters[i].level#=0
vumeters[i].up=1
endif
if vumeters[i].level# > vumeters[i].maxlevel#
vumeters[i].level#=vumeters[i].maxlevel#
vumeters[i].up=0
vumeters[i].maxlevel#=random(1,100)
endif
next
if GetRawKeyPressed(38)=1 then dec volume, 20
if GetRawKeyPressed(40)=1 then inc volume, 20
if volume<=0 then volume=0
Print( ScreenFPS() )
Sync()
loop
Just add music and sound volume then its as close as can ever get - with no specialised music channel frequency commands
Nice effect all the same
Damo