怎么写midi文件

1.MIDI文件是什么,里面写的是什么啊,谁能解释下啊MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法 。MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统 。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息 。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱 。
应用
电视晚会的音乐编导可以用MIDI功能辅助音乐创作,或按MI-DI标准生成音乐数据传播媒介,或直接进行乐曲演奏 。如果在计算机上装备了高级的MIDI软件库,可将音乐的创作、乐谱的打印、节目编排、音乐的调整、音响的幅度、节奏的速度、各声部之间的协调、混响由MIDI来控制完成 。利用MIDI技术将电子合成器、电子节奏机(电子鼓机)和其他电子音源与序列器连接在一起即可演奏模 MIDI
拟出气势雄伟、音色变化万千的音响效果,又可将演奏中的多种按键数据存储起来,极大的改善了音乐演奏的能力和条件 。
2.如何用VC++编写MIDI文件播放程序DWORD PlaySound(LPSTR path,HWND hwnd)
{
MCI_OPEN_PARMS mciOpen;
MCI_PLAY_PARMS mciPlay;
char b[STRINGSIZE+1];
unsigned int rtrn;
mciOpen.wDeviceID=NULL;
mciOpen.lpstrDeviceType="sequencer";
mciOpen.lpstrElementName=path;
if((rtrn=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpen))!=0L)
{
mciGetErrorString(rtrn,(LPSTR)b,STRINGSIZE); DoMessage(hwnd,b); return(0L);
}
soundID=mciOpen.wDeviceID;
mciPlay.dwCallback=hwnd;
if((rtrn=mciSendCommand(soundID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciPlay))!=0L)
{
mciSendCommand(soundID,MCI_CLOSE,0,NULL);
mciGetErrorString(rtrn,(LPSTR)b,STRINGSIZE);
DoMessage(hwnd,b);
return(0L);
}
return(1L);
}
很早很早以前的代码了 。是用BORLAND C写的 。
【怎么写midi文件】

怎么写midi文件

文章插图