ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:510.38KB ,
资源ID:8573184      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8573184.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(改进的电子乐谱数据结构一.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

改进的电子乐谱数据结构一.docx

1、改进的电子乐谱数据结构一 电子乐谱数据结构设想(二)树型结构:.多首歌曲数据结构.Typedef struct multisongint number; /歌曲号SYSTEMS *systems /歌曲链表 MULTISONG;一曲钢琴曲数据结构.Typedef struct systemInt linedistance; /五线谱谱线间距离Int stavecontype;/ 五线谱声部连接符号类型 1,花括号 2 中括号Int number; / 五线谱数STAVES *staves; SYSTEM五线谱数据结构typedef struct staveint v_distance;/ 声部

2、距离int number; /声部数VOICE * voice; / 五线谱声部链表 STAVE声部数据结构.typedef struct voiceint number; /小节数 MEASURE * fmeasure; / 指向前一小节MEASURE * bmeasure; / 指向后一小节 VOICE 小节数据结构.typedef struct measureint total number;/ 音符的总数int number;/ 组合音符看成一个音符时的音符总数,为确定连接线位置做基准CLEF *clef;/ 谱号KEYSIGATURE * keysignature;/ 调号BAT *

3、bats;/ 拍号NOTATION *fnotation;/ 音符链表,指向第一个音符NOTATION *bnotation; / 指向最后一个音符BARLINE * barline; / 小节线CONNECTS * connect; /音符连接线CONNECTS *connectsyin / 连音符TRAILBRIDGES *trailbridges; /尾桥队列BOOL repeat; /有无重复符号int repeattype;/ 重复符号的类型int start4, end4; /重复符号的起点,终点位置;位置五线谱号,声部, 小节和音符(组合音符看成一个音符)决定. MEASURE;

4、.谱号数据结构.typedef struct clefCLEF_TPYE type; /谱号类型int location; /谱号线位置 (从下加三线到上加三线, 第一线位置设定为0)CLEF;Enum CLEF_TYPE G,F,C调号数据结构.typedef struct keysignatureint type; /调号值 (-77)int location; /调号线位置 KEYSIGNATURE;拍号数据结构.typedef struct batint top, down; /拍号上、下数字int posx, posy / 拍号线坐标 BAT.小节线数据结构.typedef stru

5、ct batlineBARTLINE_TPYE type;/小节线的类型BOOL decoration; / 有无装饰符号int decorationtype2; /小节线装饰符号类型,如延长音,换气符号等。 BATLINE; enum barlinebarline,dbline,slineBARLINE_TYPE; /小节线类型,小节线,复纵线,终止线 typedef struct legatoBOOL type; / 连接线的类型,ture 完全在一个小节内 int start4, end4; /连接线起点和重点位置,位置定义同重复符号 LEGATOtypedef struct conne

6、ctyinBOOL type; / 连音符的类型, 几连音 int start4; /连接音起点位置, CONNECTTypedef struct trailbridgeint start4, end4,; /尾桥起点位置 TRAILBRIDGE .特征音符数据结构.基类符号数据结构.typedef struct notationint location;struct notation *flink;struct notation *blink;.单个音符数据结构.typedef struct note BOOL e_stem; / 标示音符有无符干BOOL stemup; / 标志符干的方向

7、BOOL hook;/标志有无符尾int nflag;/记录符尾的数目HEAD *head;BOOL dot;Note.符头数据结构.typedef struct headHEAD_TYPE h_type; / 记录符头形状(空心或实心)int location; / 记录符头谱线位置ACCID_TYPE accidental; 记录变音记号类型;升音、降音和还原记号int a_location; 记录变音记号谱线位置Head;enum head_typehollowness,solid;.单个音符数据结构.typedef struct notefloat duration;struct no

8、te *flink;struct note *blink;int naugdots;/ 记录附点数int type;/ 记录特征音符和休止符的类型 (如0表示全音符)int location;/ 记录符头谱线位置BOOL stemup; / 标志符干的方向ACCID_TYPE type;/ 记录变音记号类型;升音、降音和还原记号int nflags;/ 记录符尾个数int varlocation; /记录变音记号谱线位置BOOL ornament; /有无装饰音Int ornamenttype; / 装饰音的类型BOOL ellipsis;/有无省略符号Int ellipsis;/省略符号的类

9、型BOOL common;/有无常用记号Int common;/常用记号类型BOOL yiyin; /有无倚音;YIYIN note; / 倚音信息;Note;.和弦数据结构.typedef struct chordint nnotes;/记录和弦中音符个数struct note Cnotennotes;/构成和弦的音符int locationnnotes;/记录各音符符头在五线谱中的位置int naugdots;/ 记录附点数int type;/ 记录特征音符和休止符的类型 (如0表示全音符)int location;/ 记录符头谱线位置BOOL stemup; / 标志符干的方向ACCID

10、_TYPE type;/ 记录变音记号类型;升音、降音和还原记号int nflags;/ 记录符尾个数int varlocation; /记录变音记号谱线位置BOOL ornament; /有无装饰音Int ornamenttype; / 装饰音的类型BOOL ellipsis;/有无省略符号Int ellipsis;/省略符号的类型BOOL common;/有无常用记号Int common;/常用记号类型BOOL yiyin; /有无倚音;YIYIN note; / 倚音信息;CHORD;.休止符数据结构.typedef struct restint location;rest_type r

11、type;BOOL edot;float duration;(1,1/2,1/4)struct note *link;Restenum rest_type.附点数据结构.typedef struct dotint location;Dot_type dot;/记录附点类型(单附点,复符点)Dotenum dot_typesingledot,doubledot;.typedef struct strongweakint type; / 由强变弱,还是弱变强int start2,end2; /起点、终点位置,位置定义由小节,音符决定int length; / 长度(几个音符)STRONGWEAKT

12、ypedef struct pauseint location;typedef struct yiyinint type; / 倚音的类型 ,int notetype2; /倚音中的音符类型int location2; / 倚音音符号位置(在第几线上)YIYIN-typedef struct mordentint type; / 波音的类型int notetype2; /波音中的音符类型int location2; /波音音符的位置Mordenttypedef struct trillint type; / 颤音的类型int notetype2; /颤音中的音符类型int location2;

13、 /颤音音符的位置Trilltypedef struct inverted turnint type; / 回音的类型int notetype2; /回音中的音符类型int location2; /回音音符的位置Turntypedef struct octaveint type; /八度记号的类型int notetype2; /八度记号的音符类型int location2; /八度记号音符的位置Octavetypedef struct tremboloint type; /震音记号的类型int notetype2; /震音记号的音符类型int location2; /震音记号音符的位置Trem

14、bolo /(震音记号的斜线数目和尾符相同)typedef struct rptnotationint type; /反复记号的类型int notetype2; /反复记号的音符类型int location2; /反复记号音符的位置Enum repeattypedef struct staccatoint type; /断音记号的类型int notetype2; /断音记号的音符类型int location2; /断音记号音符的位置typedef struct sostenutoint location;/保持音记号typedef struct arpeggio /琶音记号只用在和弦中int

15、type;/琶音记号int notetype2;int location;typedef struct glissandoint type;int location;/滑音记号typedef struct breathint location;/呼吸记号typedef struct accentint location;/重音记号typedef struct tieBOOL interbar;/延音线是否在一个小节内int start4,end4;(前奏prelude,间奏interlude,后奏coda)Typedef struct intervalInterval_type type;/音

16、程 以悲怆交响乐第一乐章的五线谱为例,其五线谱数据结构可以表示为:SYSTEM a; a.linedistance=20; /表示该歌曲五线谱谱线间隔为20个象素 a.stavecontype=1; /表示该歌曲五线谱两个声部之间由花括号相连a.number=5; /表示该歌曲由五个五线谱构成a.staves=b0; / b0为其中一个五线谱,该歌曲中一共有五个, 因为是描述第一五线谱,/所以取b0, 如果描述第2个,则取b1STAVE *b4; /五个五线谱b0.number=2; /表示第1个五线谱包含2个声部 b0.voiceparts=&c0; / c0为乐谱中的第一个声部,该歌曲中一

17、共有10个, 因为是描述第一个声部,/所以取c0, 如果描述第2个,则取c1VOICEPART *c10; /五个五线谱c0.number=4; /表示第1个声部包含4个小节 c0.voiceparts=&d0; /d0为乐谱中的一个小节,该歌曲中一共有40个, 因为是描述/第一个小节,/所以取d0, MEASURE *d40; /40个小节d0.pedigrees=&e10; /表示第1个谱号 d0.signatures=&e20; /表示第1个调号 d0.bats=&e30; /表示第1个拍号 d0.chords=&e40; /表示第1个音符 d0.barlines=&e50; /表示第1

18、个小节线 d0.connects=&f10; /表示有1个连接线,f10 表示PEDIGREE *e140; /一共有40个谱号 SIGATURE *e240; /一共有40个谱号 BATS *e340; /一共有40个谱号 CHORDS *e440; /一共有40个谱号 BARLINES *e540; /一共有40个谱号 e10.type=1; / 表示高音谱号 e10.location=3; / 表示起点位置在第二线 调号,拍号,小节线的描述方法都相类型,只需对照数据结构即可很轻易的描述出来,在这里不再描述,下面把第一个乐谱符号表达如下:e40. Naugdots=0; /表示没有附点数e

19、40. length =50; /表示符干的长度为50e40. type =6; /表示4分休止符e40. location =3; /位置在第二线上e40. type =0; /表示无变音记号e40. nflags=0; /表示无符尾e40. varlocation =0; /表示无位置信息e40. bflags; =0; /表示无尾桥e40. decoration =false; /表示无装饰符号CONNECT *f10;f10.type=false; /不在一个小节内f10.start=false; /不在一个小节内f10.end=false; /不在一个小节内谱号的类型:G谱, F谱,

20、C一线谱 C二线谱,C三线谱(中音谱表),C四线谱(次中音谱), C五线谱,连谱号中的由括号(分为直括号和花括号两种)和起线(连接数行五线谱的垂直线)组成。小节线类型:单一垂直线,复纵线,终止线音符类型:全音符 .1/32 音符, 全休止符(四线下) 二分休止符(三线上).1/32休止符, 其他 长休止符(表示整小节休止)( 连续休止数小节时 可在长休止符上方加小节号表示)附点: 个数连接线:上括号或下括号,根据符头的位置来确定类型延长记号: 放在休止符、音符的上方或下方,连音符:包括单纯音符构成的连音符和附点音符构成的连音符,常见的单纯音连音符有三连音,五连音,七连音,九连音,十连音(还有十

21、一十五)等, 常见的附点音符构成的连音符有二连音和四连音(即将附点音符(即带附点的音符)分成两部分,四部分,代替三部分)。变音符号:升高,降低,重升,重降,还原拍号:分为分子和分母两部分装饰音:倚音(前倚音(记录在主要音的前面)和后倚音(记录在主要音的后面)、长倚音(符干向上,与主要音相隔2度,总在主要音的前面) ; 波音(记录在音符上方,顺波,复顺波,逆波,复逆波);颤音( 音符的上方,显示的时候,只有颤音一种装饰音,使用第二种表示方法,否则使用第一种表示方法); 回音( 顺回音或逆回音,记录在音符的上方或两个音符之间)省略记号:移动八度记号(高八度和低八度)(标记在声部信息内), 重复八度(标记在音符的上方或者下方,标记作为音符装饰音的一种类型)震音记号:(用斜线表示,数目与符尾数目相同)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1