MIDI入门: 用简谱轻松自定义midi音乐 [圣诞贺卡+铃儿响叮当]

本文介绍如何使用简谱轻松自定义MIDI音乐,以创建音乐贺卡。提供midiMusic_v1.exe精简版及测试版下载,便于初学者通过模块化编程实现。编译说明中指出,通过修改版本号可切换不同类型的贺卡,并需手动添加Winmm.lib库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

音乐贺卡midiMusic_v1.exe;

–用简谱轻松自定义midi音乐;[圣诞树+铃儿响叮当;]

下载链接:
音乐贺卡midiMusic_v1.exe; (精简优化版)
音乐贺卡midiMusic_v0.exe (通道测试版);
相关链接:
音乐贺卡beepMusic_v6d.exe (调试优化版)

/*/
编译说明:
1.在版本号v6前加 * 号同时去掉v5前的 * 号,可切换到生日贺卡;
2.程序精简,注释详细;采用简谱编曲,大大降低初学难度;
3.程序结构;
本程序为演示模块化编程风格,由三部分构成;
(1)项目自定义部分;
(2)项目主程序;
(3)项目本地函数;
4.如出现链接错误,需手工添加库Winmm.lib;添加位置:
Project->Settings->Link->Object/libraymodule;

  • //proj自定义部分;
//----------------------------------------------*/
//MIDI参数说明:
//--针对库函数midiOutShortMsg()@"winmm.lib"; 
//通道channel	: 0x90~0x9f;--默认0x99为鼓;其余为钢琴等音色;[状态字节channel=(状态位8~f<<4|通道号0~f);]
//音阶keyb		: 0x00~0x7f;--其中0x3c=中央C=C4=(4+1)*12=60;C8=108;C1=24;A0=21;[键盘keyb88=21~108;]
//音量volume	: 0x00~0x7f;--音符力度;[即键盘产生的按键力度;Rest=0;]
//音色tone		: 0x00~0x7f;--MIDI乐器序号;[通道音色;即标准GM乐器音色;]
//音符noteFmt	: 0x0vvkk9n;--MIDI短消息格式;[noteFmt=(音量<<16)+(音阶<<8)+状态字节;]
//----------------------------------------------*/
//v1;定义宏:
//#define tuneDef	0								//默认c调;[tuneDef=0;]
//#define msgRest	((0x00<<16)+(0x00<<8)+channel)	//定义休止符0;
//计算c调'1'的键号;[8度转换宏;取值oct=0~8;]
#define C1(oct)		(((oct)+1)*12)					
//计算音符键号Kn;--八度oct[0~8]+简谱音阶scale['1'~'7']+变调tune[0~11];
#define Kn(o,c)		(C1(o)+simple[(c)-'1']+tune)		
//合成音符短消息;--音符信息打包;[msgFmt=0x90+(Tn|Kn<<8|volume<<16);包括休止符0;]
#define msgFmt(tn,c) ((c)=='0'?(tn):(tn)|volume<<16|Kn(m,c)<<8)	//控制字节tn=通道+状态;	
//定义歌唱音域voiceOct;中央C=mC=4;[即中音组默认m=4;]
//enum voiceOct{vlC=2,lC,mC=4,hC,vhC=6};		//中音组mC~mB;其余类推;
//[88键钢琴A0~C8共7.4个8度=7*12+4键;]
//enum keyb88{xlC,ulC=1,vlC,lC,mC=4,hC,vhC,uhC=7,xhC};	//八度oct=0~8;
//定义变调控制字符cTune;
//typedef enum{C=0,d,D,e,E,F,g,G,a,A,b,B}cTune;	//变调tune=0~11;[小写字符为降调;]
//----------------------------------------------*/
//定义简谱音阶scale到12平均律keyb的映射;Scale['1'~'7']-'1'=simple[0~6];
const int simple[]={
   0,2,4,5,7,9,11};
//v1;定义歌曲等效简谱;[加乐句同步线;]
const char song[]={
   
	//上学歌;d=C;2/4;
	//"12 31 5-|66 `16 5-|66 `1_ 56 3_|65 35 31 23 1-- 0 ||"
	//"|"//"t250G|"//铃儿响叮当;d=G;4/4;
	",5321 ,5- |,5321 ,6- |,6432 ,7- | 55 42 3- |"
	",5321 ,5- |,5321 ,6- |,6432555_ | 65 42 1- |"
	"333_ 333_ | 3512  3- | 4444433_ | 32212_5_ |"
	"333_ 333_ | 3512  3- | 4444433_ | 55 42 1- ||"
};
//----------------------------------------------+------------------------------------------------*/
  • //proj主程序;
//----------------------------------------------+------------------------------------------------*/
//最简单的MIDI程序;		[C++编译@vc60;兼容vs2010~2019;]
//v1;20201225;"音乐贺卡midiMusic_v1";[src@midiMusic.cpp;]
//v0;20201223;"音乐贺卡midiMusic_v0";[src@midiMusic.cpp;]
//v6;20201222;"音乐贺卡beepMusic_v6";[src@beepMusic.cpp;]
//----------------------------------------------*/
//#include <graphics.h>   	//图形库;
#include <windows.h>		//WinAPI库;
#include <iostre
04-14 378
一、这两个虚拟MIDI通道软件是5大教程里要用到的软件,且不太容易找到。5教程中提到的其它软件(freepiano+ EveryonePiano+Addictive Keys+EOP简谱大师),百度搜索都很容易可以得到。 二、5个PDF教程为本人原创,后期如有空,会上传百度经验(百度经验ID:morzate),但是百度经验的通过率不是太高,对图片、对标题、对正文的要求太多了)。 三、本付费附件包的内容包括以下三个方面,PDF教程的核心文字下面也会列出。 1、虚拟MIDI通道软件MidiYoke 2、虚拟MIDI通道软件loopMIDI 3、5大PDF教程 四、 第1个PDF教程《01键盘侠用PC电脑键盘虚拟MIDI键盘弹模拟钢琴并另存为MIDI教程——freepiano(免费软件)》,主要内容简介如下: 4.1下载freepiano 4.2解压后双击freepiano.exe打开它,全默认设置 4.3点击录制,PC键盘弹奏,再点停止。 4.4点左上角的菜单“录音”导出MIDI ,wav,MP4 五、 第2个PDF教程 《02实体MIDI键盘弹模拟钢琴并另存为MIDI教程——freepiano(免费软件)》,主要内容简介如下: 5.1下载freepiano解压后双击freepiano.exe打开它 5.2点击 设置,设备,MIDI输入,选你的实体MIDI键盘 5.3点击录制,用MIDI键盘弹奏,再点停止 5.4再点左上角的菜单“录音” ,导出MIDI ,wav,MP4 六、 第3个PDF教程 《03键盘侠用PC电脑键盘虚拟MIDI键盘弹钢琴EOP格式转MIDI格式教程(WIN10)》,主要内容简介如下: 6.1、安装2个虚拟MIDI通道软件( Midi Yoke(虚拟MIDI接口) + loopMIDISetup) 期间需要重启, loopMIDI中增加2个midi虚拟端口loopMIDI+loopMIDI1; Midi Yoke增加16个端口后) ——一般这两个loopmidi是默认随开机启动的,运后续步骤都必须开启这两个虚拟软件。 6.2、安装虚拟PC键盘钢琴软件 EveryonePiano. (因为EveryonePiano 不能将内录另存为MIDI,只能存为eop) 6.3、安装能内录弹出的PC键盘音乐,并能另存为MIDI的软件Addictive Keys(因为EveryonePiano 不能将内录另存为MIDI,只能存为eop) 6.4、 第一步,将EveryonePiano的音源设置为虚拟端口loopMIDI;同时设置里,勾选“音源自身独立控制通道”; 第二步,再将Addictive Keys的输入选择为虚拟端口loopMIDI。 6.5、打开Addictive Keys的录音功能,再点开EveryonePiano进行弹奏或者播放EOP或者EOPN文件(需要用“EOP简谱跟我弹插件”播放EOPN),关闭Addictive Keys的录音功能,另存为MIDI。结束。 七、 第4个PDF教程 《04实体MIDI键盘弹模拟钢琴EOP格式转midi格式教程(WIN10)》,主要内容简介如下: 7.1、安装钢琴模拟软件 EveryonePiano. (因为EveryonePiano 不能将内录另存为MIDI,只能存为eop) 7.2、安装能内录弹出的PC键盘音乐,并能另存为MIDI的软件Addictive Keys(因为EveryonePiano 不能将内录另存为MIDI,只能存为eop) 7.3、第一步,将EveryonePiano的音源设置为Addictive Keys ;同时设置里,勾选“音源自身独立控制通道”;Everyone piano设置里,MIDI输入中选择你的实体MIDI键盘;第二步,将Addictive Keys的输入选择为端口-你的实体MIDI键盘。 7.4、打开Addictive Keys的录音功能,再点开EveryonePiano,后在实体MIDI键盘上弹奏,弹完关闭Addictive Keys的录音功能,另存为MIDI。结束。 八、 最后第5个PDF教程《05打开MIDI简谱教程——EOP简谱大师(免费软件)》,主要内容简介如下: 1.1、下载EOP简谱大师 1.2、双击EopNMNMaster打开它,安装它 1.3、安装后找到桌面EOPNMNMaster图标, 双击打开。 1.4、在菜单“文件”→打开→格式下拉选MID,选择你的MIDI 文件输入,简谱就出来了,如果你机器上有PDF虚拟打印机(如果装有福昕pdf阅读器,会自动出现一个虚拟PDF打印机Foxit Reader PDF Printer),还可以把简谱打印成pdf。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值