数字化曲谱渲染方法、装置、电子设备和计算机可读介质与流程



1.本公开的实施例涉及曲谱渲染领域,具体涉及数字化曲谱渲染方法、装置、电子设备和计算机可读介质。


背景技术:



2.在曲谱渲染领域中大多通过png或pdf等类型的资源文件直接展示。目前,对曲谱文件中的某个音符进行渲染时,通常采用的方式为:重新绘制一个音符,覆盖到png或pdf的曲谱文件上。
3.然而,采用上述对音符渲染的方式,通常会存在以下技术问题:
4.第一,对某个音符进行渲染时,需要遍历查询音符的位置,导致渲染的时间较长;
5.第二,在用户学习弹奏曲谱时,无法在曲谱文件中显示用户弹奏错误的音符,造成学习时间的浪费。


技术实现要素:



6.本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
7.本公开的一些实施例提出了数字化曲谱渲染方法、装置、电子设备和计算机可读介质,来解决以上背景技术部分提到的技术问题中的一项或多项。
8.第一方面,本公开的一些实施例提供了一种数字化曲谱渲染方法,该方法包括:根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;根据上述至少一个曲谱层级树,生成曲谱层级树对象;根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。
9.第二方面,本公开的一些实施例提供了一种数字化曲谱渲染装置,装置包括:解析单元,被配置成根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;第一生成单元,被配置成根据上述至少一个曲谱层级树,生成曲谱层级树对象;第二生成单元,被配置成根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;第三生成单元,被配置成根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;渲染单元,被配置成根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。
10.第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或至少一个处理器;存储装置,其上存储有一个或至少一个程序,当一个或至少一个程序被一个或至少一个处理器执行,使得一个或至少一个处理器实现上述第一方面任一实现方式所描述的方法。
11.第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机
程序,其中,程序被处理器执行时实现上述第一方面任一实现方式所描述的方法。
12.本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的数字化曲谱渲染方法,减少了渲染的时间。具体来说,导致渲染的时间较长的原因在于:对某个音符进行渲染时,需要遍历查询音符的位置,导致渲染的时间较长。基于此,本公开的一些实施例的数字化曲谱渲染方法,首先,根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树。其次,根据上述至少一个曲谱层级树,生成曲谱层级树对象。由此,可以对曲谱进行分级处理,便于后续查询音符。接着,根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象。然后,根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件。由此,便于后续根据曲谱时序数据查询曲谱层级树文件中音符的位置。最后,根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。由此,可以将曲谱层级树文件中的曲谱分层级的渲染至页面上,便于根据曲谱时序数据查询音符的位置,减少了渲染的时间。
附图说明
13.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,元件和元素不一定按照比例绘制。
14.图1是根据本公开的数字化曲谱渲染方法的一些实施例的流程图;
15.图2是根据本公开的数字化曲谱渲染方法中的曲谱层级树的示意图;
16.图3是根据本公开的数字化曲谱渲染方法的另一些实施例的流程图;
17.图4是根据本公开的数字化曲谱渲染装置的一些实施例的结构示意图;
18.图5是适于用来实现本公开的一些实施例的电子设备的结构示意图。
具体实施方式
19.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
20.另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
21.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
22.需要注意,本公开中提及的“一个”、“至少一个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或至少一个”。
23.本公开实施方式中的至少一个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
24.下面将参考附图并结合实施例来详细说明本公开。
25.图1是根据本公开的数字化曲谱渲染方法的一些实施例的流程图,示出了根据本
公开的数字化曲谱渲染方法的一些实施例的流程100。
26.该数字化曲谱渲染方法,包括以下步骤:
27.步骤101,根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树。
28.在一些实施例中,数字化曲谱渲染方法的执行主体(例如,计算设备或客户端)可以根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树。这里,目标曲谱可以是指任意曲谱类型的曲谱。这里,曲谱类型可以包括但不限于:五线谱、简谱、文字谱。这里,曲谱文件可以是指包含上述目标曲谱的文件。例如,曲谱文件的文件格式可以为基于xml(extensible markup language)的音乐符号文件格式。这里,曲谱文件包含至少一页音符。其中,上述至少一页音符组成上述目标曲谱。这里,预设层级格式可以是指预先划分的分级格式。例如,预设层级格式可以包括但不限于:页层级、行层级、小节层级、音符层级。这里,页层级可以表示一页音符。行层级可以表示一行音符。小节层级可以表示一小节音符。音符层级可以表示一个音符。这里,曲谱层级解析可以是指将曲谱文件按照页层级、行层级、小节层级和音符层级进行分层。如图2所示例,曲谱层级树可以是指包含页层级(page)、行层级(system)、小节层级(measure)和音符层级(note)的曲谱树。即,上述至少一个曲谱层级树中的曲谱层级树包括页层级。上述页层级包括至少一个行层级。上述至少一个行层级中的行层级包括至少一个小节层级。上述至少一个小节层级中的小节层级包括至少一个音符层级。实践中,首先,可以将上述曲谱文件按照页层级进行划分,得到至少一个页层级曲谱。接着,对于上述至少一个页层级曲谱中的每个页层级曲谱,可以将上述页层级曲谱按照行层级进行划分,得到至少一个行层级曲谱。然后,对于上述至少一个行层级曲谱中的每个行层级曲谱,可以将上述行层级曲谱按照小节层级进行划分,得到至少一个小节层级曲谱。再然后,对于上述至少一个小节层级曲谱中的每个小节层级曲谱,可以将上述小节层级曲谱按照音符层级进行划分,得到至少一个音符。最后,可以将每个划分完成的页层级曲谱作为曲谱层级树。
29.步骤102,根据上述至少一个曲谱层级树,生成曲谱层级树对象。
30.在一些实施例中,上述执行主体可以根据上述至少一个曲谱层级树,生成曲谱层级树对象。实践中,首先,上述执行主体可以对上述至少一个曲谱层级树进行合并处理,得到合并曲谱层级树。然后,可以对上述合并曲谱层级树进行实例化处理,以生成曲谱层级树对象。
31.在一些实施例的一些可选的实现方式中,根据上述至少一个曲谱层级树,上述执行主体可以通过以下步骤生成曲谱层级树对象:
32.第一步,对于上述至少一个曲谱层级树中的每个曲谱层级树,对上述曲谱层级树中各个层级的节点进行标记处理,以生成曲谱标记层级树。实践中,可以对上述曲谱层级树中的页层级、各个行层级、小节层级和音符层级的节点分别标记上唯一标记,以生成曲谱标记层级树。
33.第二步,根据上述曲谱文件包括的每个音符的技法标识,对所生成的曲谱标记层级树中对应上述音符的音符层级节点进行标识处理。这里,技法标识可以表示音符弹奏的手法。实践中,可以在所生成的曲谱标记层级树中对应上述音符的音符层级节点之后,标记上对应的技法标识。
34.第三步,根据标识处理后的各个曲谱标记层级树,生成曲谱层级树对象。实践中,首先,上述执行主体可以按照音符在目标曲谱中的顺序,将标识处理后的各个曲谱标记层级树进行合并,得到合并曲谱标记层级树。然后,可以对上述合并曲谱层级树进行实例化处理,以生成曲谱层级树对象。
35.步骤103,根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象。
36.在一些实施例中,上述执行主体可以根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象。这里,上述至少一个二维曲谱图包括的各个二维曲谱组成上述目标曲谱。上述至少一个二维曲谱图中的二维曲谱图可以为二维矢量图。例如,二维曲谱图的图像格式可以为svg(scalable vector graphics)格式。实践中,对于上述至少一个二维曲谱图中的每个二维曲谱图,首先,按照上述预设层级格式对上述二维曲谱图进行层级划分处理,以生成二维曲谱层级树。然后,可以对上述二维曲谱层级树进行实例化处理,以生成二维曲谱层级树对象。
37.在一些实施例的一些可选的实现方式中,根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,上述执行主体可以通过以下步骤生成至少一个二维曲谱层级树对象:
38.第一步,对于上述至少一个二维曲谱图中的每个二维曲谱图,执行如下处理步骤:
39.第一步骤,根据上述目标曲谱的曲谱类型,识别出上述二维曲谱图中包括的音符节点和小节节点,得到音符节点序列和小节节点序列。这里,曲谱类型可以包括但不限于:五线谱、简谱、文字谱。这里,每种类型的曲谱表示音符和小节的方式不同。例如,文字谱通过文字区分音符和小节,五线谱通过音符符号区分音符和小节。实践中,可以按照上述目标曲谱的曲谱类型对应的区分音符和小节的方式,识别出上述二维曲谱图中包括的音符节点和小节节点,得到音符节点序列和小节节点序列。这里,音符节点可以表示音符层级的节点。这里,小节节点可以表示小节层级的节点。
40.第二步骤,确定上述音符节点序列中每个音符节点的音符节点坐标。实践中,首先,可以将上述音符节点的音符顶端与上述二维曲谱图的图像上顶端的距离确定为上述音符节点的纵坐标。然后,可以将上述音符节点的最右侧音符端与上述二维曲谱图的图像左侧边缘线的距离确定为上述音符节点的横坐标。最后,将上述纵坐标与横坐标组合为上述音符节点的音符节点坐标。
41.第三步骤,确定上述小节节点序列中每个小节节点的小节节点坐标。实践中,首先,可以将上述小节节点包括的各个音符中音符高度最高的音符的音符上顶端与上述二维曲谱图的图像上顶端的距离确定为上述小节节点的纵坐标。然后,可以将上述小节节点包括的最左侧的音符的最左侧音符端与上述二维曲谱图的图像左侧边缘线的距离确定为上述小节节点的横坐标。最后,可以将纵坐标与横坐标组合为上述小节节点的小节节点坐标。
42.第四步骤,确定上述二维曲谱图中每行曲谱的行曲谱坐标。实践中,首先,可以将上述行曲谱包括的各个音符中音符高度最高的音符的音符上顶端与上述二维曲谱图的图像上顶端的距离确定为上述行曲谱的纵坐标。然后,可以将上述行曲谱包括的最左侧的音符的最左侧音符端与上述二维曲谱图的图像左侧边缘线的距离确定为上述行曲谱的横坐标。最后,可以将纵坐标与横坐标组合为上述行曲谱的行曲谱坐标。
43.第五步骤,确定上述二维曲谱图中每行曲谱的行高度。这里,可以将上述行曲谱中音符高度最高的音符的音符上顶端与上述行曲谱中音符高度最低的音符的音符下顶端的纵向距离确定为上述行曲谱的行高度。
44.第二步,根据上述预设层级格式,对上述至少一个二维曲谱图中的每个二维曲谱图进行层级解析处理,以生成二维曲谱层级树,得到二维曲谱层级树组。这里,进行层级解析处理的具体方式可以参见步骤101中的具体描述,在此不再赘述。
45.第三步,对于上述二维曲谱层级树组中的每个二维曲谱层级树,对上述二维曲谱层级树中各个层级的节点进行标记处理,以生成二维曲谱标记层级树。实践中,可以对上述二维曲谱层级树中的页层级、各个行层级、小节层级和音符层级的节点分别标记上唯一标记,以生成二维曲谱标记层级树。
46.第四步,根据所生成的二维曲谱标记层级树、上述至少一个二维曲谱图对应的各个音符节点坐标、小节节点坐标、行曲谱坐标和行高度,生成至少一个二维曲谱层级树对象。实践中,对于所生成的每个二维曲谱标记层级树,首先,可以将上述二维曲谱标记层级树中的每个音符节点标记上对应的音符节点坐标。其次,可以将上述二维曲谱标记层级树中的每个小节节点标记上小节节点坐标。接着,可以将上述二维曲谱标记层级树中的每个行曲谱节点标记上行曲谱坐标。然后,可以将上述二维曲谱标记层级树中的每个行曲谱节点标记上行高度。最后,可以对标记完成的二维曲谱标记层级树进行实例化处理,以生产二维曲谱层级树对象。这里,标记完成的二维曲谱标记层级树可以表示音符节点、小节节点、行曲谱节点均完成标记。这里,音符节点可以表示音符层级的节点。小节节点可以表示小节层级的节点。行曲谱节点可以表示行曲谱层级的节点。
47.实践中,上述第四步可以包括以下子步骤:
48.对于所生成的每个二维曲谱标记层级树,执行如下处理步骤:
49.第一子步骤,将上述二维曲谱标记层级树对应的二维曲谱图确定为目标二维曲谱图。
50.第二子步骤,根据上述目标二维曲谱图对应的每个音符节点坐标,对上述二维曲谱标记层级树中对应上述音符节点坐标的音符节点进行标识处理,以生成第一二维曲谱标记层级树。这里,上述音符节点坐标表示的音符节点与上述二维曲谱标记层级树中对应上述音符节点坐标的音符节点相同。这里,标识处理可以是指将上述二维曲谱标记层级树中对应上述音符节点坐标的音符节点标记上上述音符节点坐标。
51.第三子步骤,根据上述目标二维曲谱图对应的每个小节节点坐标,对上述第一二维曲谱标记层级树中对应上述小节节点坐标的音符节点进行标识处理,以生成第二二维曲谱标记层级树。这里,上述小节节点坐标表示的小节节点与上述二维曲谱标记层级树中对应上述小节节点坐标的小节节点相同。这里,标识处理可以是指将上述二维曲谱标记层级树中对应上述小节节点坐标的小节节点标记上上述小节节点坐标。
52.第四子步骤,根据上述目标二维曲谱图对应的每个行曲谱坐标,对上述第二二维曲谱标记层级树中对应上述行曲谱坐标的行曲谱节点进行标识处理,以生成第三二维曲谱标记层级树。这里,上述行曲谱坐标表示的行曲谱与上述二维曲谱标记层级树中对应上述行曲谱坐标的行曲谱相同。这里,标识处理可以是指将上述二维曲谱标记层级树中对应上述行曲谱坐标的行曲谱节点标记上上述行曲谱坐标。
53.第五子步骤,根据上述目标二维曲谱图对应的每个行高度,对上述第三二维曲谱标记层级树中对应上述行高度的行曲谱节点进行标识处理,以生成第四二维曲谱标记层级树。这里,上述行高度表示的行曲谱与上述二维曲谱标记层级树中对应上述行高度的行曲谱相同。这里,标识处理可以是指将上述二维曲谱标记层级树中对应上述行高度的行曲谱节点标记上上述行高度。
54.第六子步骤,根据上述第四二维曲谱标记层级树,生成二维曲谱层级树对象。实践中,可以对上述第四二维曲谱标记层级树进行实例化处理,以生成二维曲谱层级树对象。
55.步骤104,根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件。
56.在一些实施例中,首先,上述执行主体可以将上述曲谱层级树对象中的每个音符标记上对应上述音符的音符时值。从而,可以将标记后的曲谱层级树对象确定为曲谱时序数据。然后,可以将上述至少一个二维曲谱层级树对象进行合并处理,以生成曲谱层级树文件。
57.在一些实施例的一些可选的实现方式中,根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,上述执行主体可以通过以下步骤生成曲谱时序数据和曲谱层级树文件:
58.第一步,对于上述曲谱层级树对象中的每个音符节点,将上述至少一个二维曲谱层级树对象中对应上述音符节点的音符的标记关联至上述音符节点,以对上述曲谱层级树对象进行更新。这里,对应上述音符节点的音符的标记可以唯一表示音符。实践中,可以将上述至少一个二维曲谱层级树对象中对应上述音符节点的音符的标记合并至上述音符节点对应的音符标记。例如,音符节点对应的“二分音符”的音符标记可以为“009”。上述至少一个二维曲谱层级树对象中对应上述音符节点的音符的标记可以为“a09”。可以将“a09”合并至上述音符节点对应的音符标记“009”,得到合并后的音符标记“009-a09”。
59.第二步,根据更新后的曲谱层级树对象中各个音符对应的音符时值和音高,构建曲谱时序数据。
60.实践中,上述第二步可以包括以下子步骤:
61.第一子步骤,将上述更新后的曲谱层级树对象中各个音符对应的音符时值的总和确定为曲谱时长。其中,上述曲谱时长的时长单位为预设时长单位。这里,预设时长单位可以是指以上述更新后的曲谱层级树对象中各个音符中对应的最短的音符时值。
62.第二子步骤,按照上述更新后的曲谱层级树对象中音符的顺序和音符时值,将上述更新后的曲谱层级树对象中每个音符和对应上述音符的音高标记在上述曲谱时长中对应的时间点,以及将标记后的曲谱时长作为曲谱时序数据。实践中,首先,对于上述更新后的曲谱层级树对象中的每个音符,将上述音符和对应上述音符的音高标记在上述曲谱时长中对应的时间点。然后,可以将标记后的曲谱时长作为曲谱时序数据。这里,曲谱时序数据中每两个音符之间的时长间隔为上述两个音符中的第一个音符的音符时值。例如,上述更新后的曲谱层级树对象中的第一个音符标记在上述曲谱时长的起始位置,上述更新后的曲谱层级树对象中的第二个音符标记在上述曲谱时长中第一个音符的音符时值结束之后的位置。例如,第一个音符的音符时值的时长为1秒,则第二个音符标记在曲谱时长的第一秒处。
63.第三步,对上述至少一个二维曲谱层级树对象进行合并处理,以生成曲谱层级树文件。
64.步骤105,根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。
65.在一些实施例中,上述执行主体可以根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。例如,上述执行主体可以将上述曲谱时序数据和上述曲谱层级树文件渲染至显示界面进行显示。
66.在一些实施例的一些可选的实现方式中,根据上述曲谱时序数据和上述曲谱层级树文件,上述执行主体可以通过以下步骤进行页面曲谱渲染:
67.第一步,响应于遍历到上述曲谱层级树文件中的页层级曲谱,将上述页层级曲谱渲染至目标页面中。这里,目标页面可以是用于显示曲谱的页面。
68.第二步,响应于检测到作用于上述目标页面显示的页层级曲谱的点击操作,确定上述点击操作对应上述页层级曲谱中的点击位置。这里,点击位置可以说指点击操作所点击页层级曲谱中的位置。
69.第三步,将上述点击位置对应的上述页层级曲谱中的音符的节点标记确定为目标音符标记。这里,可以将上述页层级曲谱中距离上述点击位置最近的音符的节点标记确定为目标音符标记。
70.第四步,确定上述目标音符标记对应的对象样式属性。这里,对象样式属性可以是指预先设置的用于对目标音符标记进行渲染的样式属性,可以包括但不限于:字体样式、颜。
71.第五步,根据上述对象样式属性,对上述目标音符标记对应的上述页层级曲谱中的音符进行渲染。实践中,可以将上述目标音符标记对应的上述页层级曲谱中的音符按照上述对象样式属性进行音符渲染。例如,可以将上述目标音符标记对应的上述页层级曲谱中的音符渲染成上述对象样式属性包括的颜。
72.在一些实施例的另一些可选的实现方式中,根据上述曲谱时序数据和上述曲谱层级树文件,上述执行主体还可以通过以下步骤进行页面曲谱渲染:
73.第一步,响应于检测到弹奏上述曲谱层级树文件中的目标音符的时序信息,从上述曲谱时序数据选择对应上述时序信息的音符时序数据。这里,时序信息可以表示当前弹奏的音符的信息,可以包括但不限于:音符、对应上述音符的音符时值、音高和技法标识、在上述曲谱层级树文件对应的曲谱时长中的时间点。例如,目标音符的时序信息可以是“在曲谱时长的第35秒处”。实践中,可以从上述曲谱时序数据中选择与上述时序信息所表示的音符相同的音符时序数据。这里,音符时序数据可以包括音符、上述音符对应的音高、音符时值、技法标识和在上述曲谱时长中对应的时间点。这里,目标音符可以是指当前弹奏的上述曲谱层级树文件中的音符。
74.第二步,确定上述音符时序数据包括的音符信息与上述时序信息包括的音符信息是否相同。其中,上述音符信息包括:音符、对应上述音符的音符时值、音高和技法标识。
75.第三步,响应于确定上述音符时序数据包括的音符信息与上述时序信息包括的音符信息不相同,根据预设颜,对上述目标音符进行渲染。这里,预设颜可以是指预先设置的用于渲染目标音符的颜。实践中,可以将上述目标音符的颜渲染成上述预设颜。
76.第四步,将上述目标音符对应的小节节点确定为目标小节节点。
77.第五步,根据预设框选格式,对上述目标小节节点所包括的各个音符进行框选处理。这里,预设框选格式可以是长方形的筛选框。可以对上述目标小节节点所包括的各个音符进行框选处理。这里,框选处理可以是指将上述目标小节节点所包括的各个音符用筛选框框选住。
78.一些可选的实现方式中的相关内容作为本公开的一个发明点,由此解决了背景技术提及的技术问题二“在用户学习弹奏曲谱时,无法在曲谱文件中显示用户弹奏错误的音符,造成学习时间的浪费。”。造成学习时间的浪费的因素往往如下:在用户学习弹奏曲谱时,无法在曲谱文件中显示用户弹奏错误的音符,造成学习时间的浪费。如果解决了上述因素,就能减少学习时间浪费的效果。首先,响应于检测到弹奏上述曲谱层级树文件中的目标音符的时序信息,从上述曲谱时序数据选择对应上述时序信息的音符时序数据。由此,便于后续检测上述目标音符是否弹奏准确。其次,确定上述音符时序数据包括的音符信息与上述时序信息包括的音符信息是否相同。由此,可以将用户弹奏的音符与标准音符(音符时序数据)进行对比,以确定用户弹奏的音符是否准确。接着,响应于确定上述音符时序数据包括的音符信息与上述时序信息包括的音符信息不相同,根据预设颜,对上述目标音符进行渲染。由此,可以将用户弹奏错误的音符进行颜渲染,以提醒用户弹奏错误。然后,将上述目标音符对应的小节节点确定为目标小节节点。最后,根据预设框选格式,对上述目标小节节点所包括的各个音符进行框选处理。由此,可以将用户弹奏错误的音符小节框选出来,以便于用户反复练习弹奏错误的音符小节。从而,提升用户学习弹奏曲谱的效率,减少了学习时间的浪费。
79.可选地,确定上述曲谱时序数据中每个音符对应的音信息。
80.在一些实施例中,上述执行主体可以确定上述曲谱时序数据中每个音符对应的音信息。这里,音信息可以表示音符的音。实践中,可以从音库中确定上述曲谱时序数据中每个音符对应的音信息。
81.可选地,根据上述曲谱时序数据和上述曲谱时序数据中每个音符对应的音信息,控制相关联的语音设备播放上述目标曲谱。
82.在一些实施例中,上述执行主体可以根据上述曲谱时序数据和上述曲谱时序数据中每个音符对应的音信息,控制相关联的语音设备播放上述目标曲谱。实践中,可以相关联的语音设备按照上述曲谱时序数据中音符的顺序,依次按照每个音符的音高、音和音符时值进行声音的播放。这里,语音设备可以是指扬声器。
83.本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的数字化曲谱渲染方法,减少了渲染的时间。具体来说,导致渲染的时间较长的原因在于:对某个音符进行渲染时,需要遍历查询音符的位置,导致渲染的时间较长。基于此,本公开的一些实施例的数字化曲谱渲染方法,首先,根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树。其次,根据上述至少一个曲谱层级树,生成曲谱层级树对象。由此,可以对曲谱进行分级处理,便于后续查询音符。接着,根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象。然后,根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件。由此,便于后续根据曲谱时序数据查询曲谱层级树文件中音符的位置。最后,根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。由此,可以将曲谱层级树文
件中的曲谱分层级的渲染至页面上,便于根据曲谱时序数据查询音符的位置,减少了渲染的时间。
84.进一步参考图3,示出了根据本公开的数字化曲谱渲染方法的另一些实施例。该数字化曲谱渲染方法,包括以下步骤:
85.步骤301,根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树。
86.步骤302,根据上述至少一个曲谱层级树,生成曲谱层级树对象。
87.步骤303,根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象。
88.步骤304,根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件。
89.步骤305,根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。
90.在一些实施例中,步骤301-305的具体实现及所带来的技术效果可以参考图1对应的那些实施例中的步骤101-105,在此不再赘述。
91.步骤306,将上述曲谱层级树文件中每个音符对应的音符节点坐标确定为目标光标的移动坐标,得到移动坐标序列。
92.在一些实施例中,字化曲谱渲染方法的执行主体(例如,计算设备或客户端)可以将上述曲谱层级树文件中每个音符对应的音符节点坐标确定为目标光标的移动坐标,得到移动坐标序列。这里,目标光标可以是指通过rect元素绘制的用于跟随用户弹奏的音符的光标。
93.步骤307,响应于检测到弹奏上述目标曲谱中的目标音符的信息,将上述目标光标移动至上述移动坐标序列中对应上述目标音符的移动坐标的位置。
94.在一些实施例中,上述执行主体可以响应于检测到弹奏上述目标曲谱中的目标音符的信息,将上述目标光标移动至上述移动坐标序列中对应上述目标音符的移动坐标的位置。例如,响应于检测到弹奏上述目标曲谱中的第三个音符(目标音符),可以将上述目标光标移动至曲谱层级树文件中对应上述目标音符的移动坐标的位置。
95.从图3可以看出,与图1对应的一些实施例的描述相比,图3对应的一些实施例中的流程300,可以根据光标的移动位置,实时展示用户弹奏曲谱的进度,提高了用户的感知能力。
96.进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种数字化曲谱渲染装置的一些实施例,这些装置实施例与图1所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
97.如图4所示,一些实施例的数字化曲谱渲染装置400包括:解析单元401、第一生成单元402、第二生成单元403、第三生成单元404和渲染单元405。其中,解析单元401,被配置成根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;第一生成单元402,被配置成根据上述至少一个曲谱层级树,生成曲谱层级树对象;第二生成单元403,被配置成根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;第三生成单元404,被配置成根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;渲染单
元405,被配置成根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。
98.可以理解的是,该装置400中记载的诸单元与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置400及其中包含的单元,在此不再赘述。
99.下面参考图5,其示出了适于用来实现本公开的一些实施例的电子设备500的结构示意图。本公开的一些实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
100.如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
101.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表至少一个装置。
102.特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom502被安装。在该计算机程序被处理装置501执行时,执行本公开的一些实施例的方法中限定的上述功能。
103.需要说明的是,本公开的一些实施例中记载的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或至少一个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计
算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
104.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
105.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者至少一个程序,当上述一个或者至少一个程序被该电子设备执行时,使得该电子设备:根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;根据上述至少一个曲谱层级树,生成曲谱层级树对象;根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。
106.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
107.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
108.描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括解析单元、第一生成单元、第二生成单元、第三生成单元和渲染单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,解析单元还可以被描述为“根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树的单元”。
109.本文中以上描述的功能可以至少部分地由一个或至少一个硬件逻辑部件来执行。
例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
110.以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:


1.一种数字化曲谱渲染方法,包括:根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;根据所述至少一个曲谱层级树,生成曲谱层级树对象;根据所述预设层级格式和所述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;根据所述曲谱层级树对象和所述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;根据所述曲谱时序数据和所述曲谱层级树文件,进行页面曲谱渲染。2.根据权利要求1所述的方法,其中,所述至少一个曲谱层级树中的曲谱层级树包括页层级,所述页层级包括至少一个行层级,所述至少一个行层级中的行层级包括至少一个小节层级,所述至少一个小节层级中的小节层级包括至少一个音符层级;以及所述根据所述至少一个曲谱层级树,生成曲谱层级树对象,包括:对于所述至少一个曲谱层级树中的每个曲谱层级树,对所述曲谱层级树中各个层级的节点进行标记处理,以生成曲谱标记层级树;根据所述曲谱文件包括的每个音符的技法标识,对所生成的曲谱标记层级树中对应所述音符的音符层级节点进行标识处理;根据标识处理后的各个曲谱标记层级树,生成曲谱层级树对象。3.根据权利要求1所述的方法,其中,所述根据所述曲谱层级树对象和所述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件,包括:对于所述曲谱层级树对象中的每个音符节点,将所述至少一个二维曲谱层级树对象中对应所述音符节点的音符的标记关联至所述音符节点,以对所述曲谱层级树对象进行更新;根据更新后的曲谱层级树对象中各个音符对应的音符时值和音高,构建曲谱时序数据;对所述至少一个二维曲谱层级树对象进行合并处理,以生成曲谱层级树文件。4.根据权利要求3所述的方法,其中,所述根据更新后的曲谱层级树对象中各个音符对应的音符时值和音高,构建曲谱时序数据,包括:将所述更新后的曲谱层级树对象中各个音符对应的音符时值的总和确定为曲谱时长,其中,所述曲谱时长的时长单位为预设时长单位;按照所述更新后的曲谱层级树对象中音符的顺序和音符时值,将所述更新后的曲谱层级树对象中每个音符和对应所述音符的音高标记在所述曲谱时长中对应的时间点,以及将标记后的曲谱时长作为曲谱时序数据。5.根据权利要求1所述的方法,其中,所述根据所述曲谱时序数据和所述曲谱层级树文件,进行页面曲谱渲染,包括:响应于遍历到所述曲谱层级树文件中的页层级曲谱,将所述页层级曲谱渲染至目标页面中;响应于检测到作用于所述目标页面显示的页层级曲谱的点击操作,确定所述点击操作对应所述页层级曲谱中的点击位置;
将所述点击位置对应的所述页层级曲谱中的音符的节点标记确定为目标音符标记;确定所述目标音符标记对应的对象样式属性;根据所述对象样式属性,对所述目标音符标记对应的所述页层级曲谱中的音符进行渲染。6.根据权利要求1所述的方法,其中,所述方法还包括:将所述曲谱层级树文件中每个音符对应的音符节点坐标确定为目标光标的移动坐标,得到移动坐标序列;响应于检测到弹奏所述目标曲谱中的目标音符的信息,将所述目标光标移动至所述移动坐标序列中对应所述目标音符的移动坐标的位置。7.根据权利要求1所述的方法,其中,所述根据所述曲谱时序数据和所述曲谱层级树文件,进行页面曲谱渲染,包括:响应于检测到弹奏所述曲谱层级树文件中的目标音符的时序信息,从所述曲谱时序数据选择对应所述时序信息的音符时序数据;确定所述音符时序数据包括的音符信息与所述时序信息包括的音符信息是否相同,其中,所述音符信息包括:音符、对应所述音符的音符时值、音高和技法标识;响应于确定所述音符时序数据包括的音符信息与所述时序信息包括的音符信息不相同,根据预设颜,对所述目标音符进行渲染。8.一种数字化曲谱渲染装置,包括:解析单元,被配置成根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;第一生成单元,被配置成根据所述至少一个曲谱层级树,生成曲谱层级树对象;第二生成单元,被配置成根据所述预设层级格式和所述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;第三生成单元,被配置成根据所述曲谱层级树对象和所述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;渲染单元,被配置成根据所述曲谱时序数据和所述曲谱层级树文件,进行页面曲谱渲染。9.一种电子设备,包括:一个或至少一个处理器;存储装置,其上存储有一个或至少一个程序;当所述一个或至少一个程序被所述一个或至少一个处理器执行,使得所述一个或至少一个处理器实现如权利要求1-7中任一所述的方法。10.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。

技术总结


本公开的实施例公开了数字化曲谱渲染方法、装置、电子设备和计算机可读介质。该方法的一具体实施方式包括:根据预设层级格式,对目标曲谱的曲谱文件进行曲谱层级解析,得到至少一个曲谱层级树;根据上述至少一个曲谱层级树,生成曲谱层级树对象;根据上述预设层级格式和上述目标曲谱对应的至少一个二维曲谱图,生成至少一个二维曲谱层级树对象;根据上述曲谱层级树对象和上述至少一个二维曲谱层级树对象,生成曲谱时序数据和曲谱层级树文件;根据上述曲谱时序数据和上述曲谱层级树文件,进行页面曲谱渲染。该实施方式便于根据曲谱时序数据查询音符的位置,减少了渲染的时间。减少了渲染的时间。减少了渲染的时间。


技术研发人员:

任阳芝 徐豪骏 李山亭

受保护的技术使用者:

上海妙克信息科技有限公司

技术研发日:

2022.03.16

技术公布日:

2022/6/30

本文发布于:2024-09-20 15:37:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/7780.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:曲谱   层级   音符   节点
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议