1.本发明涉及到智能钢琴技术领域,尤其涉及一种基于钢琴全智能系统的采集还原方法。
背景技术:2.随着全球智能化的发展,各种各样的智能产品应运而生。即使传统行业中的真钢琴领域也产生了智能真钢琴,尤其是自动演奏系统,结合物联网技术后可实现远程教学。因此,一种精准的采集还原方法显得尤为重要,直接影响到老师和学生的教学体验。而且,由于真钢琴中的大部分结构都是木质的,受环境中湿度影响经常会发生形变,导致采集还原效果受到较大影响。
3.鉴于此,设计一种功能强大的钢琴采集还原方法不仅可以提高采集还原的精准度,还能减少钢琴本身发生形变造成的影响。
技术实现要素:4.本发明的目的是提供一种基于钢琴全智能系统的采集还原方法,所述方法包括以下步骤:
5.s1、将每一个钢琴琴键下方设置的光电传感器均与ad转换芯片连接,并根据光电传感器的特性设置若干个预设ad值区间;
6.s2、调整各个琴键与对应光电传感器之间的位置至第一预设位置并读出第一最大ad值,将所读出的第一最大ad值调整到所设置的第一预设ad值区间内;
7.s3、利用钢琴自动演奏系统选择不同力度值依次在各个琴键上进行弹奏,同时利用光电传感器与ad转换芯片读出各个琴键在不同力度值情形下的对应ad值,然后根据所读出的ad值计算出对应的ad变化率;
8.s4、将各个琴键弹奏的力度值与对应的ad变化率绘制在坐标轴上,进而拟合出钢琴琴键在对应ad值区间的算法曲线;
9.s5、依次调整各个琴键与对应光电传感器之间的位置,以使所读出的其他最大ad值能够匹配到对应所设置的其他预设ad值区间内,重复步骤s3-步骤s4,直至拟合出设置的所有预设ad值区间的算法曲线,进而根据所得到的算法曲线即可在采集还原时还原出钢琴弹奏时敲击琴键的力度。
10.优选地,所述步骤s1中设置的预设ad值区间有六个,分别为4096-3700、3700-3600、3600-3450、3450-3200、3200-2800和2800-2400。
11.优选地,所述步骤s3中ad变化率是指钢琴琴键按下或抬起运动过程中的起始点ad值和结束点ad值之间的变化率,用公式表示为:
[0012][0013]
式(1)中,y表示ad变化率,m1表示钢琴琴键按下或抬起运动过程中的起始点ad值,
m2表示钢琴琴键按下或抬起运动过程中的结束点ad值,t表示钢琴琴键按下或抬起运动过程中的起始点和结束点之间的间隔时间。
[0014]
优选地,所述琴键按下或抬起运动过程中的起始点和结束点的判断方法为:当所读出的ad值波动超过第一预设阈值且ad值连续第一预设次数逐渐减小或增大时,则认为是琴键按下或抬起运动过程中的起始点;当所读出的ad值逐渐减小或增大到第二预设阈值且所读出的ad值连续第二预设次数超过第二预设阈值或所读出的ad值连续第一预设次数发生反相变化时,则认为是琴键按下或抬起运动过程中的结束点。
[0015]
优选地,所述步骤s4中琴键在对应预设ad值区间的算法曲线用公式表示为:
[0016]
y=kx+b
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0017]
式(2)中,y表示该对应预设ad值区间的ad变化率,x表示力度值,k和b表示参数。
[0018]
优选地,所述光电传感器与ad转换芯片读出的ad值包括关键ad值数据和无效ad值数据,所述关键ad值数据是指琴键运动过程中起始点ad值和结束点ad值,以及起始点与结束点之间间隔时间的ad值;无效ad值数据是指琴键运动过程中相邻两个ad值变化小于第一预设阈值的ad值。
[0019]
优选地,所述步骤s3中还包括将对读出ad值进行过滤,进而过滤掉无效ad值数据并保留关键ad值数据以计算出对应的ad变化率。
[0020]
优选地,所述第二预设阈值包括琴键完全抬起的阈值和琴键完全按下的阈值,所述琴键完全抬起的阈值是指琴键正常抬起时最大ad值减去500所得到的值,琴键完全按下的阈值是指琴键正常抬起时最大ad值减去1200所得到的值。
[0021]
与现有技术比较,本发明首先根据光电传感器的特性设置若干个预设ad值区间,在不同的预设ad值区间内通过光电传感器和ad转换芯片读出各个琴键在不同力度值弹奏情况下的对应ad值,进而计算出对应的ad变化率,然后根据力度值与ad变化率在坐标轴可以拟合出不同预设ad值区间内的算法曲线,因此,本发明按照不同预设ad值区间匹配不同的算法曲线,可以采集还原时精准计算出琴键按下或抬起运动过程中的力度值,从而达到还原钢琴弹奏时敲击琴键力度的目的。
附图说明
[0022]
图1是本发明一种基于钢琴全智能系统的采集还原方法的流程图,
[0023]
图2是本发明其中一个预设ad值区间的力度值与ad变化率的算法曲线示意图。
具体实施方式
[0024]
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
[0025]
如图1、图2所示,本发明提供了一种基于钢琴全智能系统的采集还原方法,所述方法包括以下步骤:
[0026]
s1、将每一个钢琴琴键下方设置的光电传感器均与ad转换芯片(模拟量转换为数字量的芯片)连接,并根据光电传感器的特性设置若干个预设ad值(模拟量转换为数字量的值)区间;
[0027]
s2、调整各个琴键与对应光电传感器之间的位置至第一预设位置并读出第一最大
ad值,将所读出的第一最大ad值匹配到所设置的对应第一预设ad值区间内;
[0028]
s3、利用钢琴自动演奏系统依次选择不同力度值在各个琴键上进行弹奏,同时利用光电传感器与ad转换芯片读出各个琴键在不同力度值情形下的对应ad值,然后根据所读出的ad值计算出对应的ad变化率;
[0029]
s4、将各个琴键弹奏的力度值与对应的ad变化率绘制在坐标轴上,进而拟合出钢琴琴键在对应ad值区间的算法曲线;
[0030]
s5、依次调整各个琴键与对应光电传感器之间的位置,以使所读出的其他最大ad值分别匹配到对应所设置的其他预设ad值区间内,重复步骤s3-步骤s4,直至拟合出步骤s1设置的所有预设ad值区间的算法曲线,进而根据所得到的算法曲线即可还原出钢琴弹奏时敲击琴键的力度。
[0031]
本实施例中,首先根据所设置光电传感器的特性设置若干个预设ad值区间,在不同的预设ad值区间内通过光电传感器和ad转换芯片读出各个琴键在不同力度值弹奏情况下的对应ad值,进而计算出对应的ad变化率,然后根据力度值与ad变化率在坐标轴可以拟合出不同预设ad值区间内的算法曲线,最后,在钢琴采集还原过程中,即可按照不同预设ad值区间所匹配的不同算法曲线精准计算出琴键按下或抬起运动过程中的力度值,从而达到还原钢琴弹奏时敲击琴键力度的目的。
[0032]
本实施例中,由于标准的midi的力度值划分为0-127,这里将刚好让钢琴琴键发声的力度值设为1,以此类推,将力度值从1逐渐增加到127,通过钢琴自动弹奏系统即可利用光电传感器和ad转换芯片读出对应127个ad值,进而计算出127个力度值下的ad变化率,然后在坐标系中画出力度值与ad变化率的对应关系,即可得到一条曲线。如图2所示,该曲线为一条近似四条直线组成的折线,找出该折线转折点的力度值,即可拟合出四条直线的线性方程,当在钢琴采集还原时,将所计算得到的ad变化率代入该线性方程中,能够计算出最终对应的力度值,达到还原钢琴弹奏时敲击琴键力度的目的。
[0033]
本实施例中,所述预设ad值区间共设置有六个,分别为4096-3700、3700-3600、3600-3450、3450-3200、3200-2800和2800-2400。其中,图2示出了预设ad值区间为3450-3200的力度值与ad变化率的算法曲线。
[0034]
其中,所述ad变化率是指钢琴琴键按下或抬起运动过程中的起始点ad值和结束点ad值之间的变化率,用公式表示为:
[0035][0036]
式(1)中,y表示ad变化率,m1表示钢琴琴键按下或抬起运动过程中的起始点ad值,m2表示钢琴琴键按下或抬起运动过程中的结束点ad值,t表示钢琴琴键按下或抬起运动过程中的起始点和结束点之间的间隔时间。
[0037]
其中,所述琴键按下或抬起运动过程中的起始点和结束点的判断方法为:当所读出的ad值波动超过第一预设阈值且ad值连续第一预设次数逐渐减小或增大时,则认为是琴键按下或抬起运动过程中的起始点;当所读出的ad值逐渐减小或增大到所设第二预设阈值且所读出的ad值连续第二预设次数超过第二预设阈值或所读出的ad值连续第一预设次数次发生反相变化时,则认为是琴键按下或抬起运动过程中的结束点。
[0038]
本实施例中,所述第一预设次数为3次,第二预设次数为2次,第一预设阈值为5,第
二预设阈值包括琴键完全抬起的阈值和琴键完全按下的阈值,所述琴键完全抬起的阈值是指琴键正常抬起时最大ad值减去500所得到的值,琴键完全按下的阈值是指琴键正常抬起时最大ad值减去1200所得到的值。所述反相变化是指ad值从逐渐减小变成逐渐增大或ad值从逐渐增大变成逐渐减小的变化。
[0039]
其中,所述琴键在对应预设ad值区间的算法曲线用公式表示为:
[0040]
y=kx+b
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0041]
式(2)中,y表示该对应预设ad值区间的ad变化率,x表示力度值,k和b表示参数。
[0042]
其中,所述光电传感器与ad转换芯片读出的ad值包括关键ad值数据和无效ad值数据,所述关键ad值数据是指琴键运动过程中起始点ad值和结束点ad值,以及起始点与结束点之间间隔时间的ad值;无效ad值数据是指琴键运动过程中相邻两个ad值变化小于第一预设阈值的ad值。
[0043]
本实施例中,通过对读出ad值进行过滤后将无效ad值数据过滤掉进而保留关键ad值数据,根据所述关键ad值数据计算出对应的ad变化率,有效保证了计算结果的精准性。其中,无效数据是指ad值本身的浮动值,在静止状态下,ad值会在当前值上下的第一预设阈值范围内变化,因此,当ad值变化小于第一预设阈值时,即可认为该ad值数据为无效ad值。
[0044]
以上对本发明所提供的一种基于钢琴全智能系统的采集还原方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。