// Project: Mertonome // Created: 2016-10-22 // show all errors SetErrorMode(2) // set window properties SetWindowTitle( "Mertonome" ) SetWindowSize( 720, 1280, 0 ) // set display properties SetVirtualResolution( 720, 1280 ) SetOrientationAllowed( 1, 1, 1, 1 ) SetSyncRate(120, 1 ) // 30fps instead of 60 to save battery CreateSprite(Loadimage("Metronome.png")) border=loadimage("line.png") Needle=LoadImage("Needle.png") bordersprite=CreateSprite(border) bordersprite1=CreateSprite(border) NeedleSprite=CreateSprite(Needle) SetSpriteShape ( needleSprite, 3 ) SetSpriteShape ( borderSprite, 2 ) SetSpriteShape ( borderSprite1, 2 ) SetSpritePosition(bordersprite,715,1) SetSpritePosition(bordersprite1,1,1) LoadSound(1,"beep-29.wav") loadsound(2,"button-29.wav") SetClearColor(255,255,255) ClearScreen() SetSpriteAnimation(NeedleSprite,47,836,1) SetSpriteOffset(NeedleSprite,30,835) SetSpritePosition(NeedleSprite,321,161) AddVirtualButton(1,351,1130,60) Timer$ as string BPM$ as String BMPLog as String [10] CreateText(2,"Beat="+BPM$) Createtext(1,"Time="+Timer$) SetTextColor(1,0,0,0,255) SetTextPosition(1,351,1200) SetTextSize(1,30) SetTextColor(2,0,0,0,255) SetTextPosition(2,351,1170) SetTextSize(2,30) Createtext(3,"BMP=") SetTextColor(3,0,0,0,255) SetTextPosition(3,351,1140) SetTextSize(3,30) bpm#=132 beat#=60/bpm# measure=4 beatwait#=beat#*1000 beatwait$=(Str(beatwait#)) beats$="1" Start() do x=x+1 c=x-1 SetTextString(3,"BMP="+Bmplog[c]) ResetTimer() //Timedelay#=455 b#=2 counter=1 measure=4 delay=0 degree=40 Angle#=2 BMP=0 Do Time=Timer() if time=60 BMPLog[x]=(STR(BMP)) Sleep(1000) Exit Endif Timer$=Str(Time) sleep(10) SetTextString (2,"Beats="+BMP$) SetTextString(1,"Time="+Timer$) SetSpriteAngle(NeedleSprite,Angle#) //if GetSpriteCollision (NeedleSprite,Bordersprite)=1 if Angle#<=(-degree) or Angle#>=degree if counter<>measure PlaySound(1) counter=counter+1 else PlaySound(2) counter=1 Endif BMP=BMP+1 BMP$=STR(BMP) Endif // If GetSpriteCollision(Needlesprite,BorderSprite1)=1 /*if Angle#>=degree Angle#=degree PlaySound(1) BMP=BMP+1 BMP$=STR(BMP) Endif*/ if Angle#>=degree then b#=-b# if Angle#<=(-degree) then b#=(abs(b#)) sync() Angle#=Angle#+b# delay=GetMilliseconds() loop loop Function Start() Repeat Sync() Until GetVirtualButtonPressed(1) EndFunction