Microsoft Small Basic

Program Listing: PMR444
GraphicsWindow.Title = "Metronome"
GraphicsWindow.CanResize = "False"
WW = 800
WH = 800
GraphicsWindow.Width = WW
GraphicsWindow.Height = WH
TimeSignature = 60

GraphicsWindow.BrushColor = "Black"
GraphicsWindow.FontSize = 25
GraphicsWindow.DrawText(10, 10, "Time Signature")
GoButton = Controls.AddButton("Go!", 380, 8)
TextBox = Controls.AddTextBox(210, 10)
Controls.ButtonClicked = Click
Controls.SetTextBoxText(TextBox, "60")

GraphicsWindow.KeyDown = OnKeyDown

While 1=1
SPB = (60/TimeSignature) 'seconds per beep
Beep()
EndWhile

Sub OnKeyDown
If GraphicsWindow.LastKey = "Return" Then
Click()
EndIf
EndSub
Sub Click
t = Controls.GetTextBoxText(TextBox)
If t > 0 And t <= 400 Then
TimeSignature = t
Else
Controls.SetTextBoxText(TextBox, TimeSignature)
EndIf
EndSub

Sub Beep
Sound.PlayClick()
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.FillRectangle(200, 200, 400, 400)
Program.Delay((SPB*1000)/2)
GraphicsWindow.BrushColor = "White"
GraphicsWindow.FillRectangle(200, 200, 400, 400)
Program.Delay((SPB*1000)/2)
EndSub