展示乐谱连音线的方法及计算机程序与流程

文档序号:27614921发布日期:2021-11-29 12:59阅读:275来源:国知局
展示乐谱连音线的方法及计算机程序与流程

1.本发明涉及音乐教学软件领域,尤其涉及一种展示乐谱连音线的方法及计算机程序。


背景技术:

2.传统教学模式下的音乐教学主要通过教师现场演示实现,不仅对于教师的素质要求较高,而且学生们往往缺乏实践学习的参与。而在信息技术的融合之下,市场上出现了一些具有交互功能的音乐教学软件和智能设备,让学生们更多地参与到音乐学习中,感受到不同的学习体验。
3.现有用于音乐教学的交互智能设备中锁显示的乐谱通常需要带有连音线。如何根据音符的位置和形态自动生成光滑且线条优美的连音线是本领域需要进一步解决的问题。


技术实现要素:

4.基于以上技术问题,本发明提出以下三个方面的内容:
5.第一方面,提出一种展示乐谱连音线的方法,包括以下步骤:
6.获取连音线的起始位置点s的坐标(xs,ys)和结束位置点e的坐标(xe,ye);
7.确定所述连音线的凸向,所述凸向与所述s和所述e分别对应的两个音符的符头方向一致;
8.在所述s和e之间、并且在所述凸向的一侧布设若干控制点,所述控制点包括所述s点和e点;
9.取所述s和e之间的若干个控制点,通过三阶贝塞尔曲线拟合公式递归得到一段圆弧;
10.将所述一段圆弧或将多段圆弧连接在一起生成连音线。
11.第二方面,本发明还提出一种计算机程序产品,包括程序和/或指令,该程序和/或指令被处理器执行时实现本发明的方法中的步骤。
12.第三方面,本发明还提出一种基于交互式窗口的音乐教学系统,被处理器执行时实现本发明的方法中的步骤。
13.本发明可以根据两个音符生成弧度优美的连音线。
附图说明
14.图1、一些实施方式中的方法的流程图;
15.图2、一些更具体的实施方式生成的连音线的效果图。
具体实施方式
16.一些实施方式涉及的方法流程如图1,包括以下步骤:
17.获取连音线的起始位置点s的坐标(xs,ys)和结束位置点e的坐标(xe,ye);
18.确定连音线的凸向,凸向与s和e分别对应的两个音符的符头方向一致;
19.在s和e之间、并且在凸向的一侧布设若干控制点,控制点包括s点和e点;
20.取s和e之间的若干个控制点,通过三阶贝塞尔曲线拟合公式递归得到一段圆弧;
21.将一段圆弧或将多段圆弧连接在一起生成连音线。
22.需要说明的是,凸向包括上凸和下凸,凸向决定了连音线最终位于两个音符的连接线的上侧还是下侧。
23.一些实施方式,还包括以下步骤:
24.通过s的斜率k1求得通过s的切线v1;
25.通过e的斜率k2求得通过e的切线v2。
26.其中,斜率k1通过所述s点的坐标和所述凸向求得;所述斜率k2通过所述e点的坐标和所述凸向求得。也可以将k1和k2作为预设的固定参数输入。
27.一些实施方式涉及的一种布设控制点的方法具体包括以下步骤:
28.基于s的坐标,沿着v1的方向,向靠近凸向的一侧移动至点p1并计算得到p1的坐标为(x1,y1),其中x1=xs+δx,δx=t
×
(xe

xs);
29.基于s的坐标,沿着v2的方向,向靠近凸向的一侧移动至点p2并计算得到p2的坐标为(x2,y2),其中x2=xe

δx,δx=t
×
(xe

xs);
30.t取值在0

1的范围内。
31.在一些更具体的实施方式中涉及的布设控制点的方法的计算机的程序采用c#作为开发语言编写如下:
32.[0033][0034]
一些实施方式还包括:
[0035]
求v1与v2的交点v;
[0036]
获取s、e、v三角形的重心点g的坐标(xg,yg)。
[0037]
在一些更具体的实施方式中涉及的求两切线交点的计算机的程序采用c#作为开发语言编写如下:
[0038][0039]
一些实施方式,将连音线分成若干段圆弧求得,第一段圆弧的控制点通过包括以下步骤获得:
[0040]
将s作为第一段圆弧的起始位置点;
[0041]
将g作为所述第一段圆弧的结束位置点;
[0042]
在凸向一侧沿s与g的中垂线两侧对称布设两个控制点c1和c2;
[0043]
获取s与c1之间的中点m1;
[0044]
获取c1与c2之间的中点m2;
[0045]
获取c2与g之间的中点m;
[0046]
优选地,将m记录为第一段圆弧上的点。
[0047]
一些实施方式,连音线分成两段圆弧求得,其中第二段圆弧的控制点通过包括以下步骤获得:
[0048]
将g作为第二段圆弧的起始位置点;
[0049]
将e作为所述第二段圆弧的结束位置点;
[0050]
在凸向一侧沿g与e的中垂线两侧对称布设两个控制点n1和n2;
[0051]
通过设置参数k1和k2的值,使对应的两段圆弧的半径不相等,可以生成一种具有跃动感的连音线。
[0052]
在一些更具体的实施方式中涉及的获取第一段圆弧的控制点的计算机的程序采用c#作为开发语言编写如下:
[0053]
[0054][0055]
一些实施方式,控制点c1的布设具体包括以下步骤:
[0056]
基于s的坐标,沿着v1的方向,向靠近凸向的一侧移动至点c1并计算得到c1的坐标为(cx,cy),其中cx=xs+δx,δx=q
×
(xg

xs);
[0057]
其中,q取值在0

0.5的范围内。
[0058]
一些实施方式,三阶贝塞尔曲线拟合公式使用de casteljau方法递归。
[0059]
一些具体的实施方式生成的连音线效果如图2所示。
[0060]
本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序,即,一个或多个有形非暂时性程序载体上编码的计算机程序指令的一个或多个模块,用以被数据处理设备执行或者控制数据处理设备的操作。计算机程序(还可以被称为或者描述为程序、软件、软件应用、模块、软件模块、脚本或者代码)可以以任意形式的编程语言而被写出,包括编译语言或者解释语言或者声明性语言或过程式语言,并且计算机程序可以以任意形式展开,包括作为独立程序或者作为模块、组件、子程序或者适于在计算环境中使用的其他单元。计算机程序可以但不必须对应于文件系统中的文件。程序可以被存储在保存其他程序
或者数据的文件的一部分中,例如,存储在如下中的一个或多个脚本:在标记语言文档中;在专用于相关程序的单个文件中;或者在多个协同文件中,例如,存储一个或多个模块、子程序或者代码部分的文件。计算机程序可以被展开为执行在一个计算机或者多个计算机上,计算机位于一处,或者分布至多个场所并且通过通信网络而互相连接。
[0061]
在本说明书中描述的处理和逻辑流程可以由一个或多个可编程计算机执行,该计算机通过运算输入数据并且生成输出而执行一个或多个的计算机程序,以运行函数。处理和逻辑流程还可以由专用逻辑电路,例如,fpga(可现场编程门阵列)或者asic(专用集成电路)执行,并且设备也可以被实施为专用逻辑电路。
[0062]
适于实行计算机程序的计算机包括并且示例性地可以基于通用微处理器或者专用微处理器或者上述处理器两者,或者任意其他种类的中央处理单元。通常地,中央处理单元将接收来自只读存储器或者随机存取存储器或者这两者的指令和数据。计算机的主要元件是用于运行或者执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。通常地,计算机还将包括或者是可操作性地耦合,以从用于存储数据的一个或多个大容量存储装置接收数据或者传递数据到大容量存储装置,或者接收和传递两者,该大容量存储器例如为磁盘、磁光盘或者光盘。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失存储器、介质和存储器装置。
[0063]
为了发送与用户的交互,本说明书中描述的主题的实施方式可以被实施在计算机上,该计算机具有:显示装置,例如,crt(阴极射线管)或者lcd(液晶显示器)监控器,用于向用户显示信息;以及键盘和例如鼠标或者追踪球这样的定位装置,用户利用它们可以将输入发送到计算机。其他种类的装置也可以用于发送与用户的交互;例如,提供给用户的反馈可以是任意形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;以及来自用户的输入可以以任意形式接收到,包括声响输入、语音输入或者触觉输入。
[0064]
本说明书中描述的主题的实施方式可以在计算系统中实施,该计算系统包括例如数据服务器这样的后端组件,或者包括例如应用服务器这样的中间组件,或者包括例如客户端计算机这样的前端组件,该客户端计算机具有图形用户界面或者网络浏览器,用户可以通过图形用户界面或者网络浏览器而与本说明书中描述的主题的实施进行交互,或者该计算机系统包括一个或多个这种后端组件、中间组件或者前端组件的任意组合。系统中的组件可以通过例如通信网络的任意形式或介质的数字数据通信而互相连接。通信网络的实例包括局域网络(“lan”)和广域网络(“wan”),例如,因特网。该计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络而交互。客户端与服务器之间的关系利用在各自的计算机上运行并且具有彼此之间的客户端

服务器关系的计算机程序而产生。
[0065]
虽然本说明书包含很多具体的实施细节,但是这些不应当被解释为对任何发明的范围或者对可以要求保护的内容的范围的限制,而是作为可以使特定发明的特定实施方式具体化的特征的说明。在独立的实施方式的语境中的本说明书中描述的特定特征还可以与单个实施方式组合地实施。相反地,在单个实施方式的语境中描述的各种特征还可以独立地在多个实施方式中实施,或者在任何合适的子组合中实施。此外,虽然以上可以将特征描述为组合作用并且甚至最初这样要求,但是来自要求的组合的一个或多个特征在一些情况下可以从该组合去掉,并且要求的组合可以转向子组合或者子组合的变形。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1