midi音乐下载,midi音乐下载版

前言

本人对乐器一窍不通,但是看到别人能够熟练地吹拉弹奏,总有一种羡慕之情。无奈只略懂一些简谱知识, 经过一番学习之后,发现了MIDI这个好东西,可以通过编程来播放自己喜欢的音乐。经过努力写一个编音乐小工具,只要识谱就可以操作,现在拿出来与大家分享一下,欢迎批评指正!文章末尾会附上源码地址,欢迎大家下载修改。

MIDI基础

基本的MIDI函数有3个:midiOutOpen 、MidiOutShortMsg、MidiOutClose,分别用来打开MIDI设备、操作MIDI设备和关闭MIDI设备。我们就是通过程序操作这三个API来实现播放音乐的。

midiOutShortMsg函数说明

主要操作是对调用midiOutShortMsg( HMIDIOUT hmo,DWORD dwMsg ) ,dwMsg是4字节无符号整数,分成4个部分,每个部分1个字节:

字节

作用

最高字节(第3字节)

基本不用

字节2 (第2字节)

音量0-0x7F或不用

字节1 (第1字节)

音阶0-0x7F或音色

最低字节(第0字节)

命令或状态、通道

第0字节16进制高位

命令或状态0x9/0xC、0xB

第0字节16进制低位

通道0-0xF

具体格式如下(16进制):

字节3

字节2

字节1

字节0

功能

00

音色值

CN

为通道N指定一个音色值,即选择一个乐器,乐器有128种

00

音量值

音阶值

9N

在通道N上,使用指定音量,演奏一个即定乐器的指定音阶

00

0x7B

BN

停止通道N上的演奏

举例说明

  1. 设置消息(CN):
    midiOutShortMsg(hMidi,16<<8 | 0xC0) //设置通道0的乐器为 风琴
    midiOutShortMsg(hMidi, 0<<8 | 0xC1) //设置通道1的乐器为 大钢琴
  2. 演奏消息(9N):
    midiOutShortMsg(hMidi,0x7F<<16 | 60<<8| 0x9A) //在通道10上以最高音量(0x7F)弹一个中央C(音高60,音名c1)
    midiOutShortMsg(hMidi,0x40<<16 | 72<<8| 0x93) //在通道3上以半高音量(0x40)弹一个高音do(音高72,音名c2)
  3. 停止[演奏]消息(BN):
    midiOutShortMsg(hMidi, 0x7BB7) //停止通道7上的演奏
    midiOutShortMsg(hMidi, 0x7BB3) //停止通道3上的演奏

程序操作说明

1. 可以设置主旋律和伴奏部分的音调以及乐器音色,设置音乐每分钟的节拍数

2. 两个文本框的内容为音乐的编码,要自己手动输入。

3. ”31,4”中的31为中音duo,41为高音duo,21为低音duo,其它依次类推。

4. ”31,4”的4含义为中音duo播放一拍,也指一个全音符。计算方式为:音符节拍数*4

5. 点击“播放”,电脑就可以播放出美妙的音乐。试试吧!!!

6. 大家猜猜程序里自带的歌曲是什么,欢迎在评论区留言!

源码地址:https://gitee.com/JiuTianYinHe/MIDITools.git。

大家可以自行下载修改,有好的意见建议,欢迎留言!!!

每天一个小知识,每天进步一点点!!![加油][加油][加油]

AE剪辑教程

3d短片下载,

2022-12-8 22:24:42

AE剪辑教程

爱的网,爱的图案

2022-12-8 22:25:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索