钢琴简谱音乐板软件vb6.0代码

’ 《VB》http://282615109@qq.com
'************************************************************
'* VB 系列功能演示程序 *
'* *
'* 如果您发现此程序有任何不妥之处或存在需要改进的地方, *
'* 望告诉我本人,本人将非常感激您,并一定回信致谢! *
'* *
'* by 简易科技(龙川)有限公司 my Email:282615109@qq.com *
'************************************************************
'程序编号∶033
'功 能∶MIDI电子琴
'日 期∶4/25/1999
'
*********************************************************
Option Explicit

Private Declare Function GetKeyState% Lib “user32” (ByVal nVirtKey As Long)
Private Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)
Private sudu As Integer
Private Const VK_LBUTTON& = &H1
Private isOgain As Boolean '是否重复按键
Private Sta As Integer
Private Sub ComDevies_Click()
Dim dl As Integer
dl = MIDI_OutOpen(ComDevies.ItemData(ComDevies.ListIndex))
End Sub

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Command2_Click()
Open App.Path & “\haap.txt” For Input As #1
ComDevies.ListIndex = 0
ComSounds.ListIndex = 9
HScroll1.Value = 32
Timer2.Enabled = True
Command2.Enabled = False
End Sub

Private Sub ComSounds_Click()
Call program_change(0, 0, ComSounds.ListIndex)
End Sub

Private Sub Form_Load()
Dim Retu As Boolean
Dim i As Integer

Retu = Midi_OutDevsToList(ComDevies)
ComDevies.ListIndex = 0
Call fill_sound_list

For i = 0 To 64
   Picture1(i).DragMode = 1
Next
HScroll1.Value = 36
HScroll2.Value = 127

End Sub
Private Sub fill_sound_list()
Dim s As String

Open App.Path & "\genmidi.txt" For Input As #1
Do While Not EOF(1)
    Line Input #1, s
    ComSounds.AddItem s
Loop
ComSounds.ListIndex = 0
Close #1

End Sub

Private Sub Form_Unload(Cancel As Integer)
midi_OutClose
End
End Sub

Private Sub HScroll1_Change()
Sta = HScroll1.Value
Label2.Caption = Diao(Sta Mod 12)
End Sub

Private Sub HScroll2_Change()
sudu = HScroll2.Value
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
Dim i As Integer
For i = 0 To 64 '关闭所有的发音
Call note_off(0, i + Sta)
Next
End Sub

Private Sub Picture1_DragOver(Index As Integer, Source As Control, x As Single, Y As Single, State As Integer)
'完成发音
Static OldNote As Integer
If (OldNote <> Index) Then
Call note_off(0, OldNote + Sta)
Call note_on(0, Index + Sta, sudu) '参数分别为通道编号,音调,速度
OldNote = Index
isOgain = False
End If
End Sub
Private Sub Timer1_Timer()
Dim MyKey As Integer
MyKey% = GetKeyState(VK_LBUTTON)
If MyKey% And &H4000 Then
isOgain = False
Else
isOgain = True
End If
End Sub

Private Sub Timer2_Timer()
Dim s As String
Dim Index As Integer
Line Input #1, s
s = Trim(s)
If s = “End” Then
Close #1
Timer2.Enabled = False
Command2.Enabled = True
Label1_MouseMove 0, 0, 1, 1
Exit Sub
End If
Index = Val(s)
If Index < 100 Then
Index = Index + 7
Picture1_DragOver Index, Picture1(Index), 1, 1, 1
Index = Index + 24
Picture1_DragOver Index, Picture1(Index), 1, 1, 1
End If
isOgain = True
End Sub
Private Function Diao(i As Integer) As String
Select Case i
Case 0
Diao = “C”
Case 1
Diao = “C#”
Case 2
Diao = “D”
Case 3
Diao = “D#”
Case 4
Diao = “E”
Case 5
Diao = “F”
Case 6
Diao = “F#”
Case 7
Diao = “G”
Case 8
Diao = “G#”
Case 9
Diao = “A”
Case 10
Diao = “A#”
Case 11
Diao = “B”
End Select
End Function

Private Sub Command4_Click()

Dim s As String
Dim i, k As Integer
k = Text2.Text
s = Text1.Text

For i = 1 To Len(s)

Select Case Mid(s, i, 2)

Case “a0”
Call note_on(0, 0 + Sta, sudu)
Sleep k
Call note_off(0, 0 + Sta)

Case “a1”
Call note_on(0, 1 + Sta, sudu)
Sleep k
Call note_off(0, 1 + Sta)

Case “a2”
Call note_on(0, 2 + Sta, sudu)
Sleep k
Call note_off(0, 2 + Sta)

Case “a3”
Call note_on(0, 3 + Sta, sudu)
Sleep k
Call note_off(0, 3 + Sta)

Case “a4”
Call note_on(0, 4 + Sta, sudu)
Sleep k
Call note_off(0, 4 + Sta)

Case “a5”
Call note_on(0, 5 + Sta, sudu)
Sleep k
Call note_off(0, 5 + Sta)

Case “a6”
Call note_on(0, 6 + Sta, sudu)
Sleep k
Call note_off(0, 6 + Sta)

Case “a7”
Call note_on(0, 7 + Sta, sudu)
Sleep k
Call note_off(0, 7 + Sta)

Case “b1”
Call note_on(0, 8 + Sta, sudu)
Sleep k
Call note_off(0, 8 + Sta)

Case “b2”
Call note_on(0, 9 + Sta, sudu)
Sleep k
Call note_off(0, 9 + Sta)

Case “b3”
Call note_on(0, 10 + Sta, sudu)
Sleep k
Call note_off(0, 10 + Sta)

Case “b4”
Call note_on(0, 11 + Sta, sudu)
Sleep k
Call note_off(0, 11 + Sta)

Case “b5”
Call note_on(0, 12 + Sta, sudu)
Sleep k
Call note_off(0, 12 + Sta)

Case “b6”
Call note_on(0, 13 + Sta, sudu)
Sleep k
Call note_off(0, 13 + Sta)

Case “b7”
Call note_on(0, 14 + Sta, sudu)
Sleep k
Call note_off(0, 14 + Sta)

Case “c1”
Call note_on(0, 15 + Sta, sudu)
Sleep k
Call note_off(0, 15 + Sta)

Case “c2”
Call note_on(0, 16 + Sta, sudu)
Sleep k
Call note_off(0, 16 + Sta)

Case “c3”
Call note_on(0, 17 + Sta, sudu)
Sleep k
Call note_off(0, 17 + Sta)

Case “c4”
Call note_on(0, 18 + Sta, sudu)
Sleep k
Call note_off(0, 18 + Sta)

Case “c5”
Call note_on(0, 19 + Sta, sudu)
Sleep k
Call note_off(0, 19 + Sta)

Case “c6”
Call note_on(0, 20 + Sta, sudu)
Sleep k
Call note_off(0, 20 + Sta)

Case “c7”
Call note_on(0, 21 + Sta, sudu)
Sleep k
Call note_off(0, 21 + Sta)

Case “d1”
Call note_on(0, 22 + Sta, sudu)
Sleep k
Call note_off(0, 22 + Sta)

Case “d2”
Call note_on(0, 23 + Sta, sudu)
Sleep k
Call note_off(0, 23 + Sta)

Case “d3”
Call note_on(0, 24 + Sta, sudu)
Sleep k
Call note_off(0, 24 + Sta)

Case “d4”
Call note_on(0, 25 + Sta, sudu)
Sleep k
Call note_off(0, 25 + Sta)

Case “d5”
Call note_on(0, 26 + Sta, sudu)
Sleep k
Call note_off(0, 26 + Sta)

Case “d6”
Call note_on(0, 27 + Sta, sudu)
Sleep k
Call note_off(0, 27 + Sta)

Case “d7”
Call note_on(0, 28 + Sta, sudu)
Sleep k
Call note_off(0, 28 + Sta)

Case “e1”
Call note_on(0, 29 + Sta, sudu)
Sleep k
Call note_off(0, 29 + Sta)

Case “e2”
Call note_on(0, 30 + Sta, sudu)
Sleep k
Call note_off(0, 30 + Sta)

Case “e3”
Call note_on(0, 31 + Sta, sudu)
Sleep k
Call note_off(0, 31 + Sta)

Case “e4”
Call note_on(0, 32 + Sta, sudu)
Sleep k
Call note_off(0, 32 + Sta)

Case “e5”
Call note_on(0, 33 + Sta, sudu)
Sleep k
Call note_off(0, 33 + Sta)

Case “e6”
Call note_on(0, 34 + Sta, sudu)
Sleep k
Call note_off(0, 34 + Sta)

Case “e7”
Call note_on(0, 35 + Sta, sudu)
Sleep k
Call note_off(0, 35 + Sta)

Case “f1”
Call note_on(0, 36 + Sta, sudu)
Sleep k
Call note_off(0, 36 + Sta)

Case “f2”
Call note_on(0, 37 + Sta, sudu)
Sleep k
Call note_off(0, 37 + Sta)

Case “f3”
Call note_on(0, 38 + Sta, sudu)
Sleep k
Call note_off(0, 38 + Sta)

Case “f4”
Call note_on(0, 39 + Sta, sudu)
Sleep k
Call note_off(0, 39 + Sta)

Case “f5”
Call note_on(0, 40 + Sta, sudu)
Sleep k
Call note_off(0, 40 + Sta)

Case “f6”
Call note_on(0, 41 + Sta, sudu)
Sleep k
Call note_off(0, 41 + Sta)

Case “f7”
Call note_on(0, 42 + Sta, sudu)
Sleep k
Call note_off(0, 42 + Sta)

Case “g1”
Call note_on(0, 43 + Sta, sudu)
Sleep k
Call note_off(0, 43 + Sta)

Case “g2”
Call note_on(0, 44 + Sta, sudu)
Sleep k
Call note_off(0, 44 + Sta)

Case “g3”
Call note_on(0, 45 + Sta, sudu)
Sleep k
Call note_off(0, 45 + Sta)

Case “g4”
Call note_on(0, 46 + Sta, sudu)
Sleep k
Call note_off(0, 46 + Sta)

Case “g5”
Call note_on(0, 47 + Sta, sudu)
Sleep k
Call note_off(0, 47 + Sta)

Case “g6”
Call note_on(0, 48 + Sta, sudu)
Sleep k
Call note_off(0, 48 + Sta)

Case “g7”
Call note_on(0, 49 + Sta, sudu)
Sleep k
Call note_off(0, 49 + Sta)

Case “h1”
Call note_on(0, 50 + Sta, sudu)
Sleep k
Call note_off(0, 50 + Sta)

Case “h2”
Call note_on(0, 51 + Sta, sudu)
Sleep k
Call note_off(0, 51 + Sta)

Case “h3”
Call note_on(0, 52 + Sta, sudu)
Sleep k
Call note_off(0, 52 + Sta)

Case “h4”
Call note_on(0, 53 + Sta, sudu)
Sleep k
Call note_off(0, 53 + Sta)

Case “h5”
Call note_on(0, 54 + Sta, sudu)
Sleep k
Call note_off(0, 54 + Sta)

Case “h6”
Call note_on(0, 55 + Sta, sudu)
Sleep k
Call note_off(0, 55 + Sta)

Case “h7”
Call note_on(0, 56 + Sta, sudu)
Sleep k
Call note_off(0, 56 + Sta)

Case “i1”
Call note_on(0, 57 + Sta, sudu)
Sleep k
Call note_off(0, 57 + Sta)

Case “i2”
Call note_on(0, 58 + Sta, sudu)
Sleep k
Call note_off(0, 58 + Sta)

Case “i3”
Call note_on(0, 59 + Sta, sudu)
Sleep k
Call note_off(0, 59 + Sta)

Case “i4”
Call note_on(0, 60 + Sta, sudu)
Sleep k
Call note_off(0, 60 + Sta)

Case “i5”
Call note_on(0, 61 + Sta, sudu)
Sleep k
Call note_off(0, 61 + Sta)

Case “i6”
Call note_on(0, 62 + Sta, sudu)
Sleep k
Call note_off(0, 62 + Sta)

Case “i7”
Call note_on(0, 63 + Sta, sudu)
Sleep k
Call note_off(0, 63 + Sta)

Case “j1”
Call note_on(0, 64 + Sta, sudu)
Sleep k
Call note_off(0, 64 + Sta)

Case “–”
Call note_off(0, 64 + Sta)
Sleep k
Call note_off(0, 64 + Sta)

End Select
Next
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易软科技(河源)有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值