一种乐谱拆分方法及装置与流程

文档序号:15147824发布日期:2018-08-10 20:40阅读:514来源:国知局

本发明涉及一种乐谱处理方法及装置,更具体涉及一种乐谱拆分方法及装置。



背景技术:

随着人们生活水平的提高,人们在追求物质生活之外越来越多的追求精神方面的享受,尤其在音乐方面的享受。钢琴,作为经典乐器的代表,也越来越受人们的喜爱,学习钢琴的人也越来越多。

由于不同的消费者在年龄、受教育程度、阅历方面的不同,导致不同的消费者对钢琴乐谱的喜好也不相同,例如,有的消费者喜欢古典风格、有的消费者喜欢儿童乐曲、有的消费者喜欢新潮乐谱。为了适应不同消费者的需求,需要编写多种多样的乐谱。在编辑乐谱时,会遇到乐谱中存在重复片段的乐谱。目前,通常由乐谱编辑人员将反复的乐谱进行拆分,然后进行编辑。

但是,当乐谱中包含的音符较多时,或者乐谱中出现的反复标记比较多导致乐谱结构较为复杂时,人工拆分乐谱效率较低。



技术实现要素:

本发明所要解决的技术问题在于提供了一种乐谱的拆分方法及装置,以实现提高乐谱的拆分效率。

本发明是通过以下技术方案解决上述技术问题的:

本发明实施例提供了一种乐谱拆分方法,所述方法包括:

获取待拆分乐谱中包含的反复标记,其中,所述反复标记包括:反复结束标记、反复开始标记、跳房子标记、dc标记和ds标记;

遍历所述待拆分乐谱;

自反复结束标记开始反向查找反复开始标记,如果未查找到所述反复开始标记,将从乐谱起点至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;如果查找到所述反复开始标记,将从所述反复开始标记至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;

针对所述跳房子标记中的每一跳房子标记,将自所述乐谱起点至所述当前跳房子标记中的前一子房子结束之间的乐谱片段作为所述前一子房子中的各个反复编号对应的各个第一设定乐谱片段;将自所述乐谱起点自所述当前跳房子标记中的后一子房子中,且不包括所述前一子房子中的乐符的乐谱片段作为所述后一子房子中的各个反复编号对应的各个第二设定乐谱片段,并将所述第一设定乐谱片段和所述第二设定乐谱片段的集合作为所述当前跳房子标记对应的第二乐谱片段;

针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱作为拆分后的第三乐谱片段;

针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱作为拆分后的第四乐谱片段;

将获得的所述第一乐谱片段、所述第二乐谱片段、所述第三乐谱片段和所述第四乐谱片段的集合作为拆分后的乐谱。

可选的,在本发明实施例的一种具体实施方式中,所述获取待拆分乐谱中包含的反复标记,包括:

获取待拆分乐谱对应的midi文件;

利用量化算法对所述midi文件进行量化,并获取量化后的midi文件中包含的反复标记。

可选的,在本发明实施例的一种具体实施方式中,所述针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱作为拆分后的第三乐谱片段,包括:

针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号;

将从乐谱起点至乐谱结束标记或者所述dc标记之间的乐谱,除预设乐谱片段外的乐谱作为第三乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

可选的,在本发明实施例的一种具体实施方式中,所述针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱作为拆分后的第四乐谱片段,包括:

针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号;

将从预设标记至乐谱结束标记或者所述ds标记之间的乐谱,除预设乐谱片段外的乐谱作为第四乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

可选的,在本发明实施例的一种具体实施方式中,所述方法还包括:

根据所述待拆分乐谱中,每一音符对应的midi时刻,针对每一拆分后的乐谱片段,获取该拆分后的乐谱片段对应的开始时刻及结束时刻;

根据所述开始时刻及所述结束时刻,与所述待拆分乐谱中的各个时刻的对应关系,以及所述待拆分乐谱中的各个时刻与所述待拆分乐谱中各个音符标识信息之间的对应关系,获取所述开始时刻至所述结束时刻之间的每一音符的标识信息;根据所述开始时刻至所述结束时刻之间的每一音符的标识信息,从所述待拆分乐谱中获取对应的音符;

根据所述拆分后的乐谱片段的播放顺序,和所述拆分后的乐谱片段中每一音符对应的midi时刻,获取所述拆分后的乐谱片段中的每一音符对应的播放时刻;

将所述拆分后的乐谱片段中的每一音符对应的midi时刻更新为所述播放时刻。

本发明实施例还提供了一种乐谱拆分装置,所述装置包括:第一获取模块、遍历模块、设置模块、第二设置模块、第三设置模块、第四设置模块和第五设置模块,其中,

所述第一获取模块,用于获取待拆分乐谱中包含的反复标记,其中,所述反复标记包括:反复结束标记、反复开始标记、跳房子标记、dc标记和ds标记;

所述遍历模块,用于遍历所述待拆分乐谱;

所述第一设置模块,用于自反复结束标记开始反向查找反复开始标记,如果未查找到所述反复开始标记,将从乐谱起点至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;如果查找到所述反复开始标记,将从所述反复开始标记至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;

所述第二设置模块,用于针对所述跳房子标记中的每一跳房子标记,将自所述乐谱起点至所述当前跳房子标记中的前一子房子结束之间的乐谱片段作为所述前一子房子中的各个反复编号对应的各个第一设定乐谱片段;将自所述乐谱起点自所述当前跳房子标记中的后一子房子中,且不包括所述前一子房子中的乐符的乐谱片段作为所述后一子房子中的各个反复编号对应的各个第二设定乐谱片段,并将所述第一设定乐谱片段和所述第二设定乐谱片段的集合作为所述当前跳房子标记对应的第二乐谱片段;

所述第三设置模块,用于针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱作为拆分后的第三乐谱片段;

所述第四设置模块,用于针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱作为拆分后的第四乐谱片段;

所述第五设置模块,用于将获得的所述第一乐谱片段、所述第二乐谱片段、所述第三乐谱片段和所述第四乐谱片段的集合作为拆分后的乐谱。

可选的,在本发明实施例的一种具体实施方式中,所述第一获取模块,还用于

获取待拆分乐谱对应的midi文件;

利用量化算法对所述midi文件进行量化,并获取量化后的midi文件中包含的反复标记。

可选的,在本发明实施例的一种具体实施方式中,所述第三设置模块,还用于:

针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号;

将从乐谱起点至乐谱结束标记或者所述dc标记之间的乐谱,除预设乐谱片段外的乐谱作为第三乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

可选的,在本发明实施例的一种具体实施方式中,所述第三设置模块,还用于:

针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号;

将从预设标记至乐谱结束标记或者所述ds标记之间的乐谱,除预设乐谱片段外的乐谱作为第四乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

可选的,在本发明实施例的一种具体实施方式中,所述装置还包括:第二获取模块、第三获取模块、第四获取模块和更新模块,其中,

所述第二获取模块,用于根据所述待拆分乐谱中,每一音符对应的midi时刻,针对每一拆分后的乐谱片段,获取该拆分后的乐谱片段对应的开始时刻及结束时刻;

所述第三获取模块,用于根据所述开始时刻及所述结束时刻,与所述待拆分乐谱中的各个时刻的对应关系,以及所述待拆分乐谱中的各个时刻与所述待拆分乐谱中各个音符标识信息之间的对应关系,获取所述开始时刻至所述结束时刻之间的每一音符的标识信息;根据所述开始时刻至所述结束时刻之间的每一音符的标识信息,从所述待拆分乐谱中获取对应的音符;

所述第四获取模块,用于根据所述拆分后的乐谱片段的播放顺序,和所述拆分后的乐谱片段中每一音符对应的midi时刻,获取所述拆分后的乐谱片段中的每一音符对应的播放时刻;

所述更新模块,用于将所述拆分后的乐谱片段中的每一音符对应的midi时刻更新为所述播放时刻。

本发明相比现有技术具有以下优点:

应用本发明实施例,根据乐谱中包含的反复标记对乐谱进行拆分,当用户需要拆分乐谱时,将反复标记加入到乐谱的相应位置,即可对乐谱进行自动拆分,相对于现有技术中由人工进行乐谱拆分,提高了乐谱拆分效率。

附图说明

图1为本发明实施例提供的一种乐谱拆分方法的流程示意图;

图2为本发明实施例提供的跳房子标记的示意图;

图3为本发明实施例提供的另一种乐谱拆分方法的流程示意图;

图4为本发明实施例提供的一种乐谱拆分装置的结构示意图;

图5为本发明实施例提供的另一种乐谱拆分装置的结构示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

为解决现有技术问题,本发明实施例提供了一种乐谱拆分方法及装置,下面首先就本发明实施例提供的一种乐谱拆分方法进行介绍。

图1为本发明实施例提供的一种乐谱拆分方法的流程示意图,如图1所示,所述方法包括:

s101:获取待拆分乐谱中包含的反复标记,其中,所述反复标记包括:反复结束标记、反复开始标记、跳房子标记、dc标记和ds标记。

示例性的,待拆分乐谱可以为midi(musicalinstrumentdigitalinterface,乐器数字接口)文件,还可以为量化后的待拆分文件。如果待拆分乐谱为midi文件,需要对midi文件进行量化,得到量化后的midi文件。再根据midi协议解析midi文件,进而识别出midi文件中包含的反复结束标记、反复开始标记、跳房子标记、dc标记和ds标记。

需要说明的是,反复结束标记为“:|┃”;反复开始标记为“┃|:”。在实际应用中,dc标记也可以记为d.c标记;ds标记也可以记为d.s标记。可以理解的是,上述dc标记为从乐谱起点开始反复的标记,通常可以为“dcalfine”,从乐谱起点开始反复至“fine”标记处;还可以为“dcalcoda”,从乐谱起点开始反复并跳过coda之间的乐谱片段的反复标记,并反复至乐谱结束。

s102:遍历所述待拆分乐谱。

示例性的,可以从乐谱起点开始遍历待拆分乐谱对应的量化后的midi文件。

s103:自反复结束标记开始反向查找反复开始标记,如果未查找到所述反复开始标记,将从乐谱起点至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;如果查找到所述反复开始标记,将从所述反复开始标记至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段。

示例性的,反复结束标记为a,反复开始标记为b;待拆分乐谱为111a3142b12527,从开头的音符“1”处开始,沿着音符的播放顺序向后遍历待拆分乐谱,遍历至“a”处,由于“a”为反复结束标记,从“a”处沿着音符的播放顺序的反方向向前遍历,查找反复开始标记,由于“a”之前没有反复开始标记,因此将音符“111”作为第一乐谱片段。

示例性的,待拆分乐谱为42b1111a312527,从开头的音符“4”处开始,沿着音符的播放顺序向后遍历待拆分乐谱,遍历至“a”处,由于“a”为反复结束标记,从“a”处沿着音符的播放顺序的方向向后遍历,查找反复开始标记,由于“a”之后有反复开始标记,因此将音符“1111”作为第一乐谱片段。

s104:针对所述跳房子标记中的每一跳房子标记,将自所述乐谱起点至所述当前跳房子标记中的前一子房子结束之间的乐谱片段作为所述前一子房子中的各个反复编号对应的各个第一设定乐谱片段;将自所述乐谱起点自所述当前跳房子标记中的后一子房子中,且不包括所述前一子房子标记中的乐符的乐谱片段作为所述后一子房子中的各个反复编号对应的各个第二设定乐谱片段,并将所述第一设定乐谱片段和所述第二设定乐谱片段的集合作为所述当前跳房子标记对应的第二乐谱片段。

示例性的,图2为本发明实施例提供的跳房子标记的示意图;如图2所示,待拆分乐谱200中包含一个跳房子标记,第一个跳房子标记包括第一前一子房子201、第一后一子房子202和图2中的反复结束标记205。待拆分乐谱300中包含一个跳房子标记,该跳房子标记包括第二前一子房子203、第二后一子房子204和图2中的反复结束标记206。

当进行待拆分乐谱200的拆分时,如图2所示,从开头的音符“a”处开始,沿着音符的播放顺序向后遍历待拆分乐谱,遍历至第一个跳房子标记中的第一前一子房子201结束处的反复结束标记205时,将自乐谱起点至反复结束标记205之间的乐谱片段“abcd”作为第一设定乐谱片段。继续遍历待拆分乐谱200,当遍历至第一后一子房子202时,将自乐谱起点至乐符d的乐谱片段“aanbd”作为第二设定乐谱片段。再将乐谱片段“abcd”和乐谱片段“aanbd”作为待拆分乐谱200对应的第二乐谱片段。

可以理解的是,在待拆分乐谱200中,乐符“d”为最后一个乐符,也就是说待拆分乐谱200的乐谱终点为乐符“d”。如果在乐符“d”与第一后一子房子202之间存在乐谱结束标记,如“反复结束标记为“:|┃”时,应当将乐谱片段“aanb”作为第二设定乐谱片段。

当进行待拆分乐谱300的拆分时,如图2所示,从开头的音符“a”处开始,沿着音符的播放顺序向后遍历待拆分乐谱,遍历至第一个跳房子标记中的第二前一子房子203结束处的反复结束标记206时。由于第二前一子房子203中存在反复编号“1.”和“2.”,也就是说,第二前一子房子203存在两次反复,对应两个设定乐谱片段。将自乐谱起点至反复结束标记205之间的乐谱片段“abcd”作为反复编号“1.”对应的第三设定乐谱片段。另外,由于反复编号“1.”和“2.”对应同一个子房子,因此,反复编号“2.”第四设定乐谱片段为“abcd”。继续遍历待拆分乐谱300,当遍历至第二后一子房子204时,将自乐谱起点至乐符d的乐谱片段“aanbd”作为反复编号“3.”第五设定乐谱片段。再将乐谱片段“abcd”、乐谱片段“abcd”和乐谱片段“aanbd”作为待拆分乐谱300对应的第二乐谱片段。

需要说明的是,跳房子标记为向下扣的中括号,且中括号内还具有该跳房子标记所属的段落的段落标记。在实际应用中,具有段落标记1的跳房子标记为一房子;具有段落标记2的跳房子标记为二房子。第一前一子房子中的乐符为“bcd”。第二前一子房子中的乐符为“bcd”。

s105:针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱作为拆分后的第三乐谱片段。

示例性的,待拆分乐谱为“142121fine11dc3527”,从开头的音符“1”处开始,沿着音符的播放顺序向后遍历待拆分乐谱,遍历至“dc”处,由于“dc”为反复标记,将乐谱起点“1”至“fine”之间的乐谱“142121”作为第三乐谱片段。

s106:针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱作为拆分后的第四乐谱片段。

示例性的,待拆分乐谱为“1421x21fine11ds3527”,从乐符“1”开始遍历待拆分乐谱,遍历至ds反复标记处,反向遍历待拆分乐谱,遍历至预设标记“x”处,将预设标记“x”与乐谱结束标记“fine”之间的乐谱片段“21”作为第四乐谱片段。

需要说明的是,预设标记为s加“/”,且s左右两边分别有一个点的标记。另外,乐谱结束标记可以为“fine”标记、或者待拆分乐谱的结尾。

s107:将获得的所述第一乐谱片段、所述第二乐谱片段、所述第三乐谱片段和所述第四乐谱片段的集合作为拆分后的乐谱。

示例性的,加工s103步骤至s106步骤中获得的乐谱片段作为待拆分乐谱对应的拆分后的乐谱。

可以理解的是,拆分后的乐谱中还应当包括:在第一次遍历待拆分乐谱时,自乐谱开始位置至乐谱结束位置之间的乐谱。

应用本发明图1所示实施例,根据乐谱中包含的反复标记对乐谱进行拆分,当用户需要拆分乐谱时,将反复标记加入到乐谱的相应位置,即可对乐谱进行自动拆分,相对于现有技术中由人工进行乐谱拆分,提高了乐谱拆分效率。

在本发明实施例的一种具体实施方式中,s101步骤,包括:

s101a(图中未示出):获取待拆分乐谱对应的midi文件。

示例性的,待拆分乐谱可以为midi文件,还可以为量化后的待拆分文件。如果待拆分乐谱为midi文件,需要对midi文件进行量化,得到量化后的midi文件。

s101b(图中未示出):利用量化算法对所述midi文件进行量化,并获取量化后的midi文件中包含的反复标记。

示例性的,再根据midi协议解析midi文件,进而识别出midi文件中包含的反复结束标记、反复开始标记、跳房子标记、dc标记和ds标记。

应用本发明上述实施例,可以获取待拆分乐谱中的反复标记。

在本发明实施例的一种具体实施方式中,s105步骤,包括:

s105a(图中未示出):针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号。

示例性的,如果coda标记为“y”。

待拆分乐谱为“12y11y11y35y24fine2dc7”,将乐谱起点“1”至“fine”之间的乐谱中包含的“y”按照乐谱演奏的顺序进行编号。

在实际应用中,coda标记也被成为“乌龟标记”。

可以理解的是,乐谱播放的顺序为,自乐谱的起点依次向后的顺序;另外,coda标记为成对出现的标记,也就是说,乐谱中出现的coda标记的个数为偶数个。

s105b(图中未示出):将从乐谱起点至乐谱结束标记或者所述dc标记之间的乐谱,除预设乐谱片段外的乐谱作为第三乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

示例性的,“12y11y1135242dc7”,将从乐谱起点至乐谱结束标记之间的乐谱中,第一个coda与第二个coda之间的乐谱片段排除;由于乐符“7”为待拆分乐谱中的最后一个乐符,因此,剩余的乐谱片段为,11352427,则将乐谱“11352427”作为第三乐谱片段。

另外,当dc标记为位于待拆分乐谱的结束位置时,即dc标记位于“7”后时,将从乐谱起点至dc标记之间的乐谱中,第一个coda与第二个coda之间的乐谱片段排除,剩余的乐谱片段作为第三乐谱片段。

而且,示例性的,待拆分乐谱中存在不止两个coda标记时,例如,待拆分乐谱为“12y11y11y35y242dc7”,将从乐谱起点至乐谱结束标记之间的乐谱中,第一个coda与第二个coda之间的乐谱片段排除,将第三个coda与第四个coda之间的乐谱片段排除;剩余的乐谱片段为,12112427,则将乐谱“12112427”作为第五乐谱片段。

可以理解的是,coda可以称为coda标记。

应用本发明上述实施例,可以获取第三乐谱片段。

在本发明实施例的一种具体实施方式中,s106步骤,包括:

s106a(图中未示出):针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号。

示例性的,如果coda标记为“y”,预设标记为“x”。

待拆分乐谱为“124x82y11y56ds7”,将预设标记“x”至“7”之间的乐谱中包含的“y”按照乐谱演奏的顺序进行编号。

在实际应用中,coda标记也被成为“乌龟标记”。

可以理解的是,乐谱播放的顺序为,自乐谱的起点依次向后的顺序;另外,coda标记为成对出现的标记,也就是说,乐谱中出现的coda标记的个数为偶数个。

s106b(图中未示出):将从预设标记至乐谱结束标记或者所述ds标记之间的乐谱,除预设乐谱片段外的乐谱作为第四乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

示例性的,“124x82y11y56ds7”,将从预设标记“x”至乐谱结束标记之间的乐谱中,第一个coda与第二个coda之间的乐谱片段排除;剩余的乐谱片段为,82567,则将乐谱“82567”作为第四乐谱片段。

另外,当ds标记为位于待拆分乐谱的结束位置时,即ds标记位于“7”后时,将从预设标记至ds标记之间的乐谱中,第一个coda与第二个coda之间的乐谱片段排除,剩余的乐谱片段作为第四乐谱片段。

而且,示例性的,待拆分乐谱中存在不止两个coda标记时,例如,待拆分乐谱为“124x82y11y11y35y242ds7”,将从预设标记“x”至乐谱结束标记或者所述ds标记之间的乐谱中,第一个coda与第二个coda之间的乐谱片段排除,将第三个coda与第四个coda之间的乐谱片段排除;剩余的乐谱片段为,82112427,则将乐谱“82112427”作为第四乐谱片段。

可以理解的是,coda可以称为coda标记。

应用本发明上述实施例,可以获取第四乐谱片段。

图3为本发明实施例提供的另一种乐谱拆分方法的流程示意图,如图3所示,本发明图3所示实施例在本发明图1所示实施例的基础上增加了:

s108:根据所述待拆分乐谱中,每一音符对应的midi时刻,针对每一拆分后的乐谱片段,获取该拆分后的乐谱片段对应的开始时刻及结束时刻。

示例性的,midi文件中包含的每一音符都对应有midi时间,可以利用midi协议读取每一音符的midi时刻,例如,音符“1”对应的midi时间为900。

需要说明的是,midi时间为,开始播放midi文件的时刻为时刻的一种计时方式。

s109:根据所述开始时刻及所述结束时刻,与所述待拆分乐谱中的各个时刻的对应关系,以及所述待拆分乐谱中的各个时刻与所述待拆分乐谱中各个音符标识信息之间的对应关系,获取所述开始时刻至所述结束时刻之间的每一音符的标识信息;根据所述开始时刻至所述结束时刻之间的每一音符的标识信息,从所述待拆分乐谱中获取对应的音符。

智能钢琴播放midi文件时,是根据系统时间与midi时间的对应关系,获取midi时间,进而根据midi时间获取midi时间中每一midi时刻对应的音符,进而获取系统时刻中的每一时刻对应的音符。再在系统时间运行到某一时刻后,将该时刻对应的音符进行播放。

示例性的,待拆分乐谱的开始时刻为音符“1”,音符“1”对应的midi时间为900;midi时间为900对应的音符标识信息为mmm。再根据播放待拆分乐谱的开始时刻时对应的midi时间900,获得开始时刻对应的音符对应的音符标识信息mmm,进而可以根据音符标识信息mmm获取音符“1”。

s1010:根据所述拆分后的乐谱片段的播放顺序,和所述拆分后的乐谱片段中每一音符对应的midi时刻,获取所述拆分后的乐谱片段中的每一音符对应的播放时刻。

示例性的,拆分待拆分乐谱时,拆分出的乐谱片段在播放时具有先后顺序。按照乐谱片段的时长,计算所有乐谱片段中每一音符对应的midi时刻。

例如,a乐谱片段1139对应的midi时刻为100-200;每一个音符对应的midi时间为25;因此,在a乐谱片段之后b乐谱片段1752,具有四个音符,b乐谱片段对应的midi时刻为200-300。以此类推,计算所有乐谱片段对应的midi时刻。进而根据midi时刻与播放时刻的对应关系获取每一音符的播放时刻,例如,midi时刻100对应的系统时间中的时刻为12:00:00,如果以10个midi时间单位为一秒,则,midi时刻200对应的系统时间中的时刻为12:00:10,类似的,midi时刻为300对应的系统时间中的时刻为12:00:20。

s1011:将所述拆分后的乐谱片段中的每一音符对应的midi时刻更新为所述播放时刻。

示例性的,将s108步骤中获取的音符的播放时刻更新为s1009步骤中获取的播放时刻。

例如,midi时刻100对应音符为“1”,midi时刻100对应的s109步骤中获取的系统时刻为12:00:00,将音符“1”的播放时刻更新为12:00:00。

应用本发明图3所示实施例,可以对拆分后得到的乐谱片段的系统时刻进行校正,进而可以根据正确的系统时间对拆分后的乐谱进行播放。

与本发明图1所示实施例相对应,本发明实施例还提供了一种乐谱拆分装置。

图4为本发明实施例提供的一种乐谱拆分装置的结构示意图,如图4所示,所述装置包括:第一获取模块401、遍历模块402、第一设置模块403、第二设置模块404、第三设置模块405、第四设置模块406和第五设置模块407,其中,

所述第一获取模块401,用于获取待拆分乐谱中包含的反复标记,其中,所述反复标记包括:反复结束标记、反复开始标记、跳房子标记、dc标记和ds标记;

所述遍历模块402,用于遍历所述待拆分乐谱;

所述第一设置模块403,用于自反复结束标记开始反向查找反复开始标记,如果未查找到所述反复开始标记,将从乐谱起点至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;如果查找到所述反复开始标记,将从所述反复开始标记至所述反复结束标记之间的乐谱作为拆分后的第一乐谱片段;

所述第二设置模块404,用于针对所述跳房子标记中的每一跳房子标记,将自所述乐谱起点至所述当前跳房子标记中的前一子房子结束之间的乐谱片段作为所述前一子房子中的各个反复编号对应的各个第一设定乐谱片段;将自所述乐谱起点自所述当前跳房子标记中的后一子房子中,且不包括所述前一子房子中的乐符的乐谱片段作为所述后一子房子中的各个反复编号对应的各个第二设定乐谱片段,并将所述第一设定乐谱片段和所述第二设定乐谱片段的集合作为所述当前跳房子标记对应的第二乐谱片段;

所述第三设置模块405,用于针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱作为拆分后的第三乐谱片段;

所述第四设置模块406,用于针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱作为拆分后的第四乐谱片段;

所述第五设置模块407,用于将获得的所述第一乐谱片段、所述第二乐谱片段、所述第三乐谱片段和所述第四乐谱片段的集合作为拆分后的乐谱。

在本发明实施例的一种具体实施方式中,所述第一获取模块401,还用于

获取待拆分乐谱对应的midi文件;

利用量化算法对所述midi文件进行量化,并获取量化后的midi文件中包含的反复标记。

应用本发明上述实施例,可以获取待拆分乐谱中的反复标记。

应用本发明图4所示实施例,根据乐谱中包含的反复标记对乐谱进行拆分,当用户需要拆分乐谱时,将反复标记加入到乐谱的相应位置,即可对乐谱进行自动拆分,相对于现有技术中由人工进行乐谱拆分,提高了乐谱拆分效率。

在本发明实施例的一种具体实施方式中,所述第三设置模块405,还用于:

针对每一所述dc反复标记,将从乐谱起点至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号;

将从乐谱起点至乐谱结束标记或者所述dc标记之间的乐谱,除预设乐谱片段外的乐谱作为第三乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

应用本发明上述实施例,可以获取第三乐谱片段。

在本发明实施例的一种具体实施方式中,所述第四设置模块406,还用于:

针对每一所述ds反复标记,将从预设标记至乐谱结束标记之间的乐谱中包含的coda标记按照演奏顺序进行编号;

将从预设标记至乐谱结束标记或者所述ds标记之间的乐谱,除预设乐谱片段外的乐谱作为第四乐谱片段,其中,所述预设乐谱片段为,奇数次序对应的coda与该奇数次序对应的coda的下一coda之间的乐谱片段。

应用本发明上述实施例,可以获取第四乐谱片段。

与本发明图3所示实施例相对应,本发明实施例还提供了另一种乐谱拆分装置。

图5为本发明实施例提供的另一种乐谱拆分装置的结构示意图,如图5所示,本发明图5所示实施例在本发明图4所示实施例的基础上增加了第二获取模块408、第三获取模块409、第四获取模块4010和更新模块4011,其中,

所述第二获取模块408,用于根据所述待拆分乐谱中,每一音符对应的midi时刻,针对每一拆分后的乐谱片段,获取该拆分后的乐谱片段对应的开始时刻及结束时刻;

所述第三获取模块409,用于根据所述开始时刻及所述结束时刻,与所述待拆分乐谱中的各个时刻的对应关系,以及所述待拆分乐谱中的各个时刻与所述待拆分乐谱中各个音符标识信息之间的对应关系,获取所述开始时刻至所述结束时刻之间的每一音符的标识信息;根据所述开始时刻至所述结束时刻之间的每一音符的标识信息,从所述待拆分乐谱中获取对应的音符;

所述第四获取模块4010,用于根据所述拆分后的乐谱片段的播放顺序,和所述拆分后的乐谱片段中每一音符对应的midi时刻,获取所述拆分后的乐谱片段中的每一音符对应的播放时刻;

所述更新模块4011,用于将所述拆分后的乐谱片段中的每一音符对应的midi时刻更新为所述播放时刻。

应用本发明图3所示实施例,可以对拆分后得到的乐谱片段的系统时刻进行校正,进而可以根据正确的系统时间对拆分后的乐谱进行播放。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1