将多行展示的乐谱数据处理为播放数据的方法及计算机程序技术

技术编号:31020849 阅读:14 留言:0更新日期:2021-11-30 03:09
本发明专利技术涉及一种将多行展示的乐谱数据处理为播放数据的方法及计算机程序,其中的方法主要包括:获取乐谱数据和播放命令,遍历每个单谱表中的每行,遍历每行的每个小节,遍历每个小节的各声部,计算每个声部中的音符在当前单谱中的序并将每个声部中的音符的数据按序保存在当前播放数据中;若当前音符和其上一个音符不在同一个复谱里,从头开始记录当前音符的序;若当前声部中存在符号,按照符号将其对应的音符的播放数据处理为带有符号状态的音符。本发明专利技术可以实现将复调音乐涉及的结构复杂的分成多行显示的复谱的显示数据整合并转为可播放的数据。可播放的数据。可播放的数据。

【技术实现步骤摘要】
将多行展示的乐谱数据处理为播放数据的方法及计算机程序


[0001]本专利技术涉及音乐教学软件领域,尤其涉及一种将多行展示的乐谱数据处理为播放数据的方法及计算机程序。

技术介绍

[0002]传统教学模式下的音乐教学主要通过教师现场演示实现,不仅对于教师的素质要求较高,而且学生们往往缺乏实践学习的参与。而在信息技术的融合之下,市场上出现了一些具有交互功能的音乐教学软件和智能设备,让学生们更多地参与到音乐学习中,感受到不同的学习体验。
[0003]现有用于音乐教学的交互智能设备中通常乐谱显示数据播由乐谱的播放数据生成。当乐谱显示数据已生成,尤其是复调音乐涉及的结构复杂的复谱通常将一个单谱分成多行显示,需要将多行乐谱显示数据整合并转为可播放的数据。

技术实现思路

[0004]基于以上技术问题,本专利技术的技术方案涉及以下三个方面,
[0005]第一方面提出一种将多行展示的乐谱数据处理为播放数据的方法,包括以下步骤:
[0006]获取乐谱数据;
[0007]读取播放命令,所述播放命令包括播放的起点和终点信息;
[0008]从所述起点至所述终点的区间内,遍历所述起点所标记的单谱的各行;
[0009]遍历所述行内的各小节,记录每个所述小节在当前单谱中的序;
[0010]遍历所述小节的各声部,计算每个所述声部中的音符在所述当前单谱中的序并将每个所述声部中的音符的数据按序保存在所述当前播放数据中;
[0011]若所述当前音符和其上一个音符不在同一个复谱里,从头开始记录所述当前音符的序;
[0012]若所述当前声部中存在符号,按照所述符号将其对应的音符的播放数据处理为带有所述符号状态的音符。
[0013]第二方面,本专利技术提出一种计算机程序产品,包括程序和/或指令,该程序和/或指令被处理器执行时实现本专利技术的方法中的步骤。
[0014]第三方面,本专利技术提出一种基于交互式窗口的音乐教学系统,该系统被运行时实现本专利技术的方法中的步骤。
[0015]本专利技术可以实现将复调音乐涉及的结构复杂的分成多行显示的复谱的显示数据整合并转为可播放的数据。
附图说明
[0016]图1、一些实施方式中的方法的流程图。
具体实施方式
[0017]一些实施方式涉及的方法流程如图1,包括以下步骤:
[0018]获取乐谱数据;
[0019]读取播放命令,播放命令包括播放的起点和终点信息;
[0020]从起点至终点的区间内,
[0021]遍历起点所标记的单谱的各行:
[0022]遍历行内的各小节:记录每个小节在当前单谱中的序;
[0023]遍历小节的各声部:
[0024]计算每个声部中的音符在当前单谱中的序并将每个声部中的音符的数据按序保存在当前播放数据中;
[0025]若当前音符和其上一个音符不在同一个复谱里,从头开始记录当前音符的序;
[0026]若当前声部中存在符号,按照符号将其对应的音符的播放数据处理为带有符号状态的音符。
[0027]其中,术语“乐谱数据”包括全局乐谱数据和/或其中的一部分乐谱数据,该数据的表现形式包括(但不限于)五线谱和简谱。该“乐谱数据”包括XML格式或JSON格式的对象。优选地,该数据保存为JSON格式,该JSON对象包括全局乐谱类,每个全局乐谱类的数据中包括若干个复谱表类的数据组成的数组,每个复谱表类数据中包括若干个单谱表类的数据组成的数组,每个单谱表类数据中包括若干小节数据组成的数组,其中:有一些小节类数据包括若干声部,有一些小节类数据包括与小节对应的副旋律数据。以下是对一部分JSON数据的字段的具体描述的举例:
[0028][0029]乐谱XML文件已经被业界广泛的使用,乐谱JSON文件才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是乐谱XML文件让位于乐谱JSON文件。乐谱JSON文件相对乐谱XML文件,数据的体积小。乐谱JSON文件与JavaScript的交互更加方便,读取和查找速度要远远快于乐谱XML文件。
[0030]需要说明的是,播放命令还包括的信息:播放时间数据,循环次数数据,开始播放的行下标,开始播放的行里开始的小节下标,开始播放的行里开始的小节里的开始音符下
标,开始播放的段落,结束播放的行下标,结束播放的行里开始的小节下标,结束播放的行里开始的小节里的开始音符下标,结束播放的段落。如果播放命令中没有出现开始播放的起点信息,则从全局乐谱数据的起点作为播放起点;如果播放命令中没有出现结束播放的终点信息,则从全局乐谱数据的终点作为播放终点。
[0031]在遍历复谱的各个单谱的步骤需要先查询最大的单行并记录其长度,然后将遍历的次数按照该数值设置,以确保每一个单谱表都可以查询并且设置到播放数据内。
[0032]一些实施方式中,符号包括八度号,踏板号,强弱记号中的一种或几种。
[0033]一些实施方式中,音符的播放数据包括时值数据和强弱数据中的一种或两种。
[0034]一些实施方式还包括:若当前小节中无拍号数据,依次查找当前小节之前的若干个小节的拍号数据,将获取的第一个拍号数据作为当前小节的拍号数据。因为小节的拍号所管辖的区间是连续的,依次向前查询可以获取拍号。
[0035]一些更具体的实施方式还包括一种处理八度号的方法,具体包括以下步骤:
[0036]计算八度号结束时间点,结束时间点等于八度号出现时间点加八度号对应的音符的时值;
[0037]记录八度号结束的小节在当前单谱中的序。
[0038]一些更具体的实施方式还包括一种处理踏板号的方法,处理踏板号的方法包括以下步骤:
[0039]记录踏板号开始位置对应的音符在当前单谱中的序;
[0040]记录踏板号结束位置对应的音符在当前单谱中的序;
[0041]将所有踏板号按照序记录为踏板号数组。
[0042]需要说明的是,八度的详细信息都是存在一个八度的对象里,对象里分了当前的八度类型,比如高八度低八度等,字段是八度里的type字段,里面是一个枚举,0高八度,1表示低八度等。
[0043]一些更具体的实施方式还包括一种处理强弱号的方法,处理强弱号的方法包括以下步骤:将所有强弱号按照其对应的音符在所述当前单谱中的序记录为强弱号数组。
[0044]一些更具体的实施方式还包括处理琶音的方法,所述处理琶音的方法包括以下步骤:
[0045]将所述琶音的和弦音个数;
[0046]将所述和弦音按照所述琶音对应的音符的升降方向排序;
[0047]计算每个所述和弦音的时值,所述每个和弦音的时值为该音符的时值减去所述和弦音的补偿值,所述和弦音的补偿值按式I计算:
[0048][0049]其中,Offset为补偿值,i为所述和弦音在所述琶音中的序,Duration为一个音符的时值;为求两的者最小值。
[0050]乐谱数据展示的时候,分为复谱表和单谱本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种将多行展示的乐谱数据处理为播放数据的方法,其特征在于,包括以下步骤:获取乐谱数据;读取播放命令,所述播放命令包括播放的起点和终点信息;从所述起点至所述终点的区间内,遍历所述起点所标记的单谱的各行;遍历所述行内的各小节,记录每个所述小节在当前单谱中的序;遍历所述小节的各声部,计算每个所述声部中的音符在所述当前单谱中的序并将每个所述声部中的音符的数据按序保存在所述当前播放数据中;若所述当前音符和其上一个音符不在同一个复谱里,从头开始记录所述当前音符的序;若所述当前声部中存在符号,按照所述符号将其对应的音符的播放数据处理为带有所述符号状态的音符。2.如权利要求1所述的方法,其特征在于,所述符号包括八度号,踏板号,强弱号中的一种或几种。3.如权利要求2所述的方法,其特征在于,所述音符的播放数据包括时值数据和强弱数据中的一种或两种。4.如权利要求3所述的方法,其特征在于,还包括以下步骤:若所述当前小节中无拍号数据,则依次查找所述当前小节之前的若干个小节的拍号数据,将获取的第一个拍号数据作为所述当前小节的拍号数据。5.如权利要求4所述的方法,其特征在于,还包括一种处理八度号的方法,所述处理八度号的方法包括以下步骤:计算所述八度号结束时间点,所述结束时间点等于所述八度号出现时间点加所述八度号对应的音符的时值;记录所述八度号结束的小节在所述当前单谱中的序;将...

【专利技术属性】
技术研发人员:李现峰魏宏惠魏宏茹
申请(专利权)人:北京金三惠科技有限公司
类型:发明
国别省市:

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

1