收藏 分享(赏)

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

上传人:wspkg9802 文档编号:12402813 上传时间:2021-12-12 格式:DOC 页数:7 大小:264.91KB
下载 相关 举报
改进的电子乐谱数据结构.doc_第1页
第1页 / 共7页
改进的电子乐谱数据结构.doc_第2页
第2页 / 共7页
改进的电子乐谱数据结构.doc_第3页
第3页 / 共7页
改进的电子乐谱数据结构.doc_第4页
第4页 / 共7页
改进的电子乐谱数据结构.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、 电子乐谱数据结构设想(二)树型结构:乐谱系统(歌曲数,歌曲队列歌曲 1(五线谱队列) 歌曲 2(五线谱队列五线谱 1 五线谱 2五线谱(其他属性,如位置;声部链表队列)声部(其他属性,小节队列) 声部(其他属性,小节队列)小节 小节谱号调号 拍号小节线音符对象队列(其他属性,符头对象队列等).多首歌曲数据结构Typedef struct multisongint number; /歌曲号SYSTEMS *systems /歌曲链表 MULTISONG;一曲钢琴曲数据结构Typedef struct systemInt linedistance; /五线谱谱线间距离Int staveconty

2、pe;/ 五线谱声部连接符号类型 1,花括号 2 中括号Int number; / 五线谱数STAVES *staves; SYSTEM五线谱数据结构typedef struct staveint partdistance;/ 声部距离int number; /声部数VOICEPARTS * voiceparts; / 五线谱声部链表 STAVE声部数据结构.typedef struct voicepartint number; /小节数 MEASURES * measures; / 小节链表 VOICEPART小节数据结构.typedef struct measureint totalnum

3、ber;/ 音符的总数int number;/ 组合音符看成一个音符时的音符总数,为确定连接线位置做基准PEDIGREE *pedigrees;/ 谱号SIGATURE * signatures;/ 调号BAT *bats;/ 拍号CHORDS *chords;/ 音符链表BARLINE * barlines; / 小节线CONNECTS * connects; /音符连接线CONNETCTS *connectsyin / 连音符TRAILBRIDGES *trailbridges; /尾桥队列BOOL repeat; /有无重复符号int repeattype;/ 重复符号的类型int st

4、art4, end4; /重复符号的起点,终点位置;位置五线谱号,声部,小节和音符(组合音符看成一个音符)决定. MEASURE;.谱号数据结构.typedef struct pedigreePEDIGREE_TPYE type; /谱号类型int location; /谱号线位置 (从下加三线到上加三线, 第一线位置设定为 0) PEDIGREE;调号数据结构.typedef struct signatureint type; /调号值 (-7 7)int location; /调号线位置 SIGNATURE;拍号数据结构typedef struct batint top, down; /拍

5、号上、下数字int posx, posy / 拍号线坐标 BAT小节线数据结构.typedef struct batlineBARTLINE_TPYE type;/小节线的类型BOOL decoration; / 有无装饰符号int decorationtype2; /小节线装饰符号类型,如延长音,换气符号等。 BATLINE;typedef struct connectBOOL type; / 连接线的类型,ture 完全在一个小节内 int start4, end4; /连接线起点和终点位置,位置定义同重复符号 CONNECTtypedef struct connectyinBOOL ty

6、pe; / 连音符的类型, 几连音 int start4; /连接音起点位置, CONNECTTypedef struct trailbridgeint start4, end4,; /尾桥起点位置 TRAILBRIDGE 特征音符数据结构typedef struct chordint naugdots;/ 记录附点数int type;/ 记录特征音符和休止符的类型 (如 0 表示全音符)int location;/ 记录符头谱线位置ACCID_TYPE type;/ 记录变音记号类型;升音、降音和还原记号int nflags;/ 记录符尾个数int varlocation; /记录变音记号谱

7、线位置BOOL decoration; /有无装饰音Int decorationtype; / 装饰音的类型BOOL yiyin; /有无倚音;YIYIN note; / 倚音信息;CHORD;typedef struct strongweakint type; / 由强变弱,还是弱变强int start2,end2; /起点、终点位置,位置定义由小节,音符决定int length; / 长度(几个音符)STRONGWEAKtypedef struct yiyinint type; / 倚音的类型 ,int notetype2; /倚音中的音符类型int location2; / 倚音音符号位

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

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

10、ines= /表示第 1 个小节线d0.connects= /表示有 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=

11、0; /表示没有附点数e40. 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; /不在一个小

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报