当前位置: 首页 > 专利查询>陈超专利>正文

一种从BMS格式文件解析五线谱的方法技术

技术编号:24012886 阅读:62 留言:0更新日期:2020-05-02 02:21
一种通过BMS(DTX)格式文件解析五线谱显示信息的算法,公知的标准BMS格式数据文件中只保存了每个音符的位置信息,并未保存每个音符的类型、时长、强弱音、左右手等附加信息,本发明专利技术使用一种循环递归算法,通过计算相邻两个音符的相对位置,推算出每个音符应有的时长(比如四分音符或八分音符)和类型(比如普通音符或休止符),通过对这些信息的补充,使BMS格式文件可以显示为五线谱。

A method of analyzing staff from BMS format file

【技术实现步骤摘要】
一种从BMS格式文件解析五线谱的方法所属
本专利技术涉及一种计算机文件格式的解析算法,能使该文件格式内容以五线谱的方式显示,从而为音乐作曲者和音乐游戏玩家提供信息服务。技术背景目前,公知的计算机五线谱显示技术主要由专业的音乐类软件(或称制谱软件)提供,其数据文件储存格式主要是以MusicXML格式为代表的音乐数据文件。在MusicXML这种文件格式中,储存了诸如小节编号、节拍数、音符时长、连音记号等诸多信息,软件通过对这些信息的解码,以相应的表现形式,将这些信息显示在屏幕上,形成五线谱。而BMS文件格式(又称DTX格式),是由日本NBK公司于1998年为一款音乐电子游戏BM98而设计,同时为了推广这款游戏,对该格式进行了开源(既任何人都可以免费使用)。该文件格式有数据组织简单,可读性好,易于编辑等优点,但由于其是针对电子游戏进行的设计,文件的数据结构中并未保存单个音符的乐理信息(比如音符时长、休止符等),因此无法用来进行五线谱显示。
技术实现思路
以MusicXML格式为例,专业的音乐数据文件格式是一个复杂数据的集合,需要专业的编谱软件(比如CubeBase、Overture)来进行编辑,从而要求编辑人员具备专业的乐理知识,对普通人来说有很高的进入门槛,很难参与到曲谱的创作和编辑中。而BMS格式虽然编辑方便,进入门槛低,但缺少乐理信息,无法显示为五线谱。而专业的演奏者在演奏时,需要对照五线谱进行演奏,故BMS格式无法为演奏者所使用。本专利技术的解决方案是:对BMS数据格式进行一定的补充完善,增加乐理相关的枚举数据类型,然后从BMS数据中,获取每个音符相对于整首曲子的位置信息(一个正整数),通过一种循环递归算法,逐小节的分析每个音符的相对位置的差值,从而推算出小节内各个音符的时长(比如是四分音符或八分音符),并进行标记,进而显示在屏幕上形成五线谱。本专利技术的有益效果是,通过从BMS格式文件解析五线谱的算法,使原本一些不能显示为五线谱的音乐游戏数据,可以显示出五线谱,很大程度的降低了音乐创作和编辑的门槛,尤其简化了音乐细分领域中“鼓谱”的编辑过程,通过对应的dtx文件(BMS格式)编辑器,用户只需简单的使用鼠标标记每个鼓点(音符)的位置,即可在软件内自动生成五线谱谱面。而不需要编辑者懂得专业的乐理知识,进行音符或休止符的选择操作。附图说明下面结合附图和实例对本专利技术进一步说明。图1是本专利技术的算法流程图图2是休止符填充算法流程图图3是对BMS格式文件进行乐理信息补充具体流程如下首先将BMS数据文件中的所有音符数据读入列表(如listChip),然后对该列表按音符的时间先后位置进行排序,先出现的音符排在前面。然后使用一个小节处理循环,按顺序处理每个小节。在小节处理循环中嵌套一个逐拍处理循环,用来处理每一拍的音符,在该循环的内部,使用两个临时列表(如tempSoprano和tempBasso)来分别保存高音声部的音符和低音声部的音符(由于五线谱中高音声部与低音声部的符杆连线分别朝上和朝下,所以需要分开保存)。然后开始取出本小节的第一拍的第一个音符,判断该音符的位置是否等于该小节的起始位置,如果当前音符的位置大于该小节的起始位置,则说明该音符的前面有一段空白空间,应填入休止符。反之则将该音符存入临时列表tempSoprano和tempBasso,接着继续取出本小节内的第二个音符,将第二个音符与前面存入列表中的第一个音符进行比较,如果两个音符处在时间轴的同一个位置上,则说明第二个音符与第一个音符在同一列的不同轨道上(比如军鼓和底鼓同时敲击),反之,则用第二个音符的位置减去第一个音符的位置,得到两个音符的距离差,换算得到第一个音符的时长(比如四分音符或八分音符)。如此循环计算出这一拍内所有音符的时长。当这一拍的处理结束时,进行结束检查,继续将临时列表(如tempSoprano和tempBasso)中的音符按以上规则处理完毕,如果这一拍内没有音符,则对这一拍填充休止符。休止符填充方法是一个递归函数,首先传入休止符开始的位置和结束的位置作为参数,用结束位置减去开始位置得到所需填充的空间大小,然后计算该大小能匹配到的最大音符长度(比是全音符休止符还是二分休止符),并生成类型为“休止符”的Chip填入listChip,如果还有剩余空间未被填充,则先计算剩余空间的长度是否为当前休止符的一半,如果是,则表示这部分空间属于当前休止符的附点,如果不是,则表示不能用附点表示这部分剩余空间,将调用函数自身继续进行递归计算。以上流程,为本专利技术的核心算法,在实际应用中,还需要对BMS文件格式内容进行补充如(图3)所示,以满足对休止符等乐理信息的表示需求。本文档来自技高网...

【技术保护点】
1.一种BMS格式解析算法,其特征是使用一个枚举类型表示各种不同的音符轨道(如军鼓、底鼓等),并在该类型中增加休止符(包括高音休止符和低音休止符)等变量,用来补充乐理信息,使用一个循环遍历所有的小节,进而遍历该小节内的所有音符,通过对相邻两个音符的位置数据相减,得到前一个音符所占用的空间大小(在一个小节内),从而换算出该音符的时长(比如该音符是四分音符或八分音符)和类型(比如该音符是普通音符还是休止符),进而显示为五线谱。/n

【技术特征摘要】
1.一种BMS格式解析算法,其特征是使用一个枚举类型表示各种不同的音符轨道(如军鼓、底鼓等),并在该类型中增加休止符(包括高音休止符和低音休止符)等变量,用来补充乐理信息,使用一个循环遍历所有的小节,进而遍历该小节内的所有音符,通过对相邻两个音符的位置数据相减,得到前一个音符所占用的空间大小(在一个小节内),从而换算出该音符的时长(比如该音符是四分音符或八分音符)和类型(比如该音符是普通音符还是休止符),进而显示为五线谱。


2.根据权利要求1所述的算法,其特...

【专利技术属性】
技术研发人员:陈超
申请(专利权)人:陈超
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利