c语言谱曲软件,基于C语言的音乐谱曲技巧与应用研究

基于C语言的音乐谱曲技巧与应用研究

1.引言

2.基于C语言的乐谱表示与实现 2.1乐谱的表示

简谱中音高(或音调)的表示是通过1到7这7个阿拉伯数字作为音名,再加上表示升

1-28-png_6_0_0_166_1051_212_32_892.979_1262.879-188-0-0-188.jpg

”来表示的。例如,中音re写成2,低音re写成,高音re写成,最高音re写成,这些都是C语言无法识别的符 。怎样把这些符 变成C语言能识别的数据呢方法是用一个结构体的两个域来表示,一个域用阿拉伯数字“2”表示音名2,一个域表示升降符 ,分别用符 “L”、“M”、“H”和“Z”表示低音、中音、高音和最高音。

简谱中音长(或节拍)的表示是通过音名加后划线和下划线来表示的。例如,2、2-、2—和2分别表示1拍、2拍、3拍和半拍、四分之一拍,假设1拍的时值为1秒,那么,上面5个音的音长分别为1秒、2秒、3秒和0.5秒、0.25秒。在C语言中,我们可以在上面的结构体中增加一个浮点数域来表示音长。

综上所述,我们把一个音定义为拥有3个域的结构体,3个域分别表示音的音名、音的高低和音的时值。用C语言具体描述如下:

typedef struct { char name; char high; float beat; } SOUND;

解决了一个音的表示,接下来就是如何表示一首乐曲。简单地说,一首乐曲就是连续的一串音,在C语言中可以用一个数组表示。C语言的描述如下:

SOUND music[100];

例如,下面是孟庭苇的歌曲《羞答答的玫瑰静悄悄的爱》中的一段曲子:

图1

用C语言表示如下:

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114767 人正在系统学习中 相关资源:Yalefree雅乐简谱打谱软件_打谱软件-WindowsServer工具类资源…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月16日
下一篇 2021年4月16日

相关推荐