网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月03日漏签0天
vb吧 关注:156,050贴子:1,166,240
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 9回复贴,共1页
<<返回vb吧
>0< 加载中...

vb模拟生日歌(失败品)

  • 只看楼主
  • 收藏

  • 回复
  • Teletypes
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Option Explicit
Private Declare Function midiOutOpen Lib "winmm" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Private Declare Function midiOutClose Lib "winmm" (ByVal hMidiOut As Long) As Long
Private Declare Function midiOutShortMsg Lib "winmm" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'参考资料一:https://tieba.baidu.com/p/7232176258
'参考资料二:https://blog.csdn.net/vcacc/article/details/17787239
'参考资料三:生日快乐歌简谱
Dim I As Integer, hMO As Long, YueQi As Long
Dim A As Long, j As Long, k As Long
Private Sub Form_Activate()
Me.AutoRedraw = False
Me.FontSize = 15
Me.Print "模拟音效播放ing"
DoEvents
j = 1
k = 5
If midiOutOpen(hMO, -1&, 0&, 0&, 0&) Then Exit Sub
midiOutShortMsg hMO, &HC0& Or (26 * &H100&)
A = &H7F3990
'ret=midiOutShortMsg(midiout, &H90 + ((flip) * &H100) + (volume * &H10000) + channel)
midiOutShortMsg hMO, A + &H500 * j: Sleep 50 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 50 * k
midiOutShortMsg hMO, A + &H600 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H800 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H700 * j: Sleep 200 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 50 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 50 * k
midiOutShortMsg hMO, A + &H600 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H900 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H800 * j: Sleep 200 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 50 * k
midiOutShortMsg hMO, A + &H500 * j: Sleep 50 * k
midiOutShortMsg hMO, A + &HC00 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &HA00 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H800 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H700 * j: Sleep 100 * k
midiOutShortMsg hMO, A + &H600 * j: Sleep 100 * k
midiOutClose hMO
Me.Print "模拟音效播放完毕"
End Sub


  • 余思培
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
复制这段内容后打开百度网盘App,操作更方便哦。链接:网页链接提取码:gt94


2026-02-03 13:06:01
广告
不感兴趣
开通SVIP免广告
  • 余思培
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
恰巧学过一点点音乐知识,所以按照我的理解对代码进行了修改(其实是直接根据谱子重写的),并保留原代码用以对比



  • 余思培
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
查了一下midi音符代码表,发现基准音高为77(也即F大调)(另外,代码只是仿写你的,实际上并未学过相关函数,建议楼主若有兴趣可以更仔细的研究dwMsg)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示