资讯详情

用Beep()函数来实现c语言编写歌曲

用Beep()函数实现C语言歌曲编写Beep()函数是一种能控制扬声器发出提示声的函数,包括在内windows.h内.事实上,所有的用途Sleep()函数的地方,可以用这个,以后再详细说。

准备什么?一首歌的所有音符对应的音高和音值。

将这些信息转换为音符频率,持续时间

怎样做?首先,让我们知道什么是声音是由物体的振动引起的.在自然界中,有很多声音可以感受到我们的听觉,但并不是所有的声音都可以作为音乐的材料.音乐中使用的声音是人们在长期的生产斗争和阶级斗争中特别选择的,以表达他们的生活、思想和感受.这些声音形成一个固定的系统,用于表达音乐思想和塑造音乐形象.

音有四种性质:高度、强度、长度、音色.

由于物体在一定时间内的振动间内的振动频率决定的.振动次数多,音高;振动次数少,音低.

声音的长度取决于声音的延续时间.声音延续时间长,音则长;声音延续时间短,音则短.

声音的强度取决于振幅(声音振动范围)的大小.振幅大,声音强;振幅小,声音弱.

音色因发音的性质、形状和泛音量而异.

上述四种性质在音乐表演中非常重要,但声音的高度和长度具有更重要的意义.以《社会主义好》这首歌为例。无论你是用人声唱歌还是用乐器演奏,用小声唱歌还是大声唱歌,虽然声音的强度随着音色的变化而变化,但仍然很容易识别旋律.但是,如果改变这首歌的音高或音值,音乐形象会立即受到严重破坏.因此,无论是创作还是演唱,都要特别注意音高和音值.

-->>从《音乐理论基础》中引用的李重光,第一页上提到的四种性质中,最重要的是音高和音值,这是Beep函数的两个参数.

准备曲谱,这里就不赘述了。这是一个知识面,离编程本身很远,需要基本的分类.扒谱可获得音高,bpm,学习表演节拍的信息,学起来也不难,这里推荐,b站善哉君的金颠簸垃圾生产技术P2,P3的一些内容.转向机器能理解的程序.#include#include#defineK0///这个频率0不响,作为空拍///以下所有表示音符的符号均来自flstudio14的flkeys的标注,也许与普通钢琴的标签不同。///音频频率只有三个八度,因为一般人声能达到的频率大概会落在这些里面#defineC4523#defineC#4554#defineD4588#defineD#4623#defineE4660#defineF4700#defineF#4742#defineG4786#defineG#4833#defineA4884#defineA#4936#defineB4992#defineC51046#defineC#51108#defineD51176#defineD#51246#defineE51320#defineF51400#defineF#51484#defineG51572#defineG#51666#defineA51768#defineA#51872#defineB51984#defineC62092#defineC#62216#defineD62352#defineD#62492#defineE62640#defineF62800#defineF#62968#defineG63144#defineG#63332#defineA63536#defineA#63744#defineB63968#defineP125//折合bpm==120,原bpm为105,这里取了一个近似值typedefstruct{intfrequency;intduration;

}PU;//以下乐谱是《社会主义好》的一段PUt[]={B5,1,B5,2,B5,1,D6,2,B5,5,A5,2,G5,1,E5,2,G5,1,A5,2,B5,2,K,5,B5,1,B5,2,B5,1,D6,2,E6,4,D6,3,E5,1,E5,2,E5,1,G5,2,A5,2,K,5,B5,3,A5,1,G5,3,G5,2,E5,1,D5,3,B5,2,D6,1,B5,2,A5,1,G5,2,A5,1,G5,2,A5,2,B5,3,E5,3,G5,1,D5,2,K,5,B5,2,D6,1,B5,1,D6,2,E6,3,E6,2,D6,1,E6,5,B5,2,A5,3,B5,1,E6,3,D6,3,B5,3,A5,3,K,1,E6,2,D6,1,B5,2,A5,1,G5,4,K,3,E6,2,D6,1,B5,2,A5,1,G5,4,};intmain(){inti;//结构体数组的长度sizeof(t)/sizeof(PU)总结结构体数组的大小/单个结构体的大小

for(i=0;i

Beep(t[i].frequency,t[i].duration*P);

}以此类推,你可以制作出你想要的曲子,只需要改变乐谱,bpm相关的部分,是不是不难呢?

至于为什么它可以在一定程度上取代它Sleep(),我不需要多说,直接用吧.

打开App,阅读手记

标签: 3968连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台