Last week I was browsing though my RSS feeds and came across a post called Python Gangnam Style! that was all about playing music with Python. Now Python is a fine language but at heart I am a Visual Basic person. Clearly converting the program to Visual basic was a must do. It turns out to be pretty easy as you might expect. My version is below (it plays in response to a button click)
I’m sure there are other ways to do this by the way. I took the path of least resistance. I think that making music is something that many students do enjoy. This sort of project involves music, and physics as well as computer science. So it gives you a lot of things to talk about and allows you to tie different disciplines together as tends to happen in the so-called real world.
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("Kernel32.dll")> _
Public Shared Function Beep(dwFreq As Int32, _
dwDuration As Int32) As Boolean
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
Beep(293, 200) ' D
Beep(293, 200) ' D
Beep(293, 200) ' D
Beep(293, 600) ' D
Beep(246, 600) ' B
System.Threading.Thread.Sleep(0.1)
Beep(369, 200) ' F#
Beep(369, 200) ' F#
Beep(369, 200) ' F#
Beep(369, 600) ' F#
Beep(329, 600) ' E
System.Threading.Thread.Sleep(0.1)
Beep(329, 200) ' E
Beep(329, 200) ' E
Beep(329, 200) ' E
Beep(369, 500) ' F#
System.Threading.Thread.Sleep(0.9)
Beep(369, 200) ' F#
Beep(369, 200) ' F#
Beep(369, 200) ' F#
Beep(369, 600) ' F#
System.Threading.Thread.Sleep(0.9)
Beep(369, 200) ' F#
Beep(369, 200) ' F#
Beep(369, 200) ' F#
For i = 1 To 4
Beep(369, 200) ' F#
System.Threading.Thread.Sleep(0.1)
Next
For i = 1 To 4
Beep(369, 100) ' F#
System.Threading.Thread.Sleep(0.1)
Beep(369, 600) ' F#
Next
End Sub
End Class
BTW if you are as musically challenged as I am, you can visit this full list of the hertz frequencies to get the other octaves for higher and lower notes. I confess that page doesn’t mean all that much to me but I’d imagine it does to the more musical among us.
No comments:
Post a Comment