一种基于MIDI数据实时弹奏纠错方法与流程

阅读: 评论:0


一种基于midi数据实时弹奏纠错方法
技术领域
1.本发明属于智能钢琴技术领域,特别是涉及一种基于midi数据实时弹奏纠错方法。


背景技术:



2.随着人们生活水平的提高,人们在追求物质生活之外越来越追求精神层面的享受。钢琴,作为经典乐器的代表,受到了越来越多人的喜爱。
3.对于低龄的琴(钢琴)童来说,初学曲子没有教、弹错琴键无人指导,节奏把握不准,导致学习的效率不高,因此,对音符弹奏进行纠错是亟需待解决的问题。


技术实现要素:



4.针对以上技术问题,本发明提供一种基于midi数据实时弹奏纠错方法。
5.本发明解决其技术问题采用的技术方案是:
6.一种基于midi数据实时弹奏纠错方法,方法包括以下步骤:
7.s100:记录用户弹奏的开始时间,开启电子节拍器,采集用户弹奏时的midi数据并对midi数据进行解析;
8.s200:将解析后的midi数据传递到待判别队列中;
9.s300:有序取出队列中的midi数据,分别取出midi中对应按键的key值,以及按键按下的时间,并将按键按下的时间转换成曲谱对应的tick时间;
10.s400:将用户当前按下按键的tick时间和当前节拍时间的曲谱标准midi进行对比,确定预设时间误差范围内是否存在有效音符;若存在有效音符,将用户按下按键的tick时间对应的key值与曲谱标准midi的key值进行匹配,若匹配成功,分别分析上一tick时间对应的key值和下一tick时间对应的key值与曲谱标准midi对应节拍时间对应的key值是否匹配,若均匹配,则确认当前按的键是正确的,否则判别为当前按的键是错误的;
11.s500:当用户弹奏结束后,将每个按键的结果保存汇总,并根据汇总后的结果划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和待加强练习区域进行合并后并发送至数据展示层显示。
12.优选地,s400中将用户当前按下按键的tick时间和当前节拍时间的曲谱标准midi进行对比,确定预设时间误差范围内是否存在有效音符,包括:
13.s410:根据用户当前按下按键的tick时间遍历匹配出与曲谱标准midi最接近的tick值,通过与曲谱标准midi最接近的tick值从曲谱标准midi中取出对应的音,再取出上一个tick的音以及下一个tick值的音作为一个集合;
14.s420:根据用户按下按键的tick时间对应的key值与上述集合进行匹配,当确认集合中存在与用户按下按键的tick时间对应的key值匹配的key值时,则表示预设时间误差范围内存在有效音符。
15.优选地,s400中判别为当前按的键是错误的,包括:
16.根据用户按下按键的tick时间以及曲谱标准midi到距离标准音最近的tick时间的位置,当用户按下按键的tick时间与距离标准音最近的tick时间的差值在预设的标准时间范围内时,将距离标准音最近的tick时间的位置标记为错音;当用户按下按键的tick时间与距离标准音最近的tick时间的差值超过预设的标准时间范围时,将距离标准音最近的tick时间的位置标记为漏音。
17.优选地,s500中当用户弹奏结束后,将每个按键的结果保存汇总之后,还包括:
18.遍历当前正确的音,根据当前解析后的midi数据添加到队列的时间减去s100记录的用户开始弹奏的时间,得到差值;
19.根据差值与曲谱标准midi的开始时间进行对比,如果相差拍数小于在预设拍以内,则代表精准弹奏;如果差值大于曲谱标准midi的开始时间,则代表弹晚了,否则代表弹早了。
20.优选地,s200之后还包括:保存当前解析后的midi数据添加到队列的时间;s500中并根据汇总后的结果划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和待加强练习区域进行合并后并发送至数据展示层显示,包括:
21.筛选出全部错音、漏音、弹早了和弹晚了的音作为待加强练习音,以小节划分,按照预设的规则标记待加强练习小节,根据小节信息再划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和待加强练习区域进行合并后通过数组的形势返回给数据显示层展示。
22.优选地,预设的规则包括:
23.单个音标:以音符为单位,1个音的错误且不满足连续错音条件,只进行单音标,无需计入到待加强练习小节;
24.1小节内区域标:以小节为单位,小节音符数量需要≥3个,当待加强练习音数量≥50%时,则该小节进行不熟练区域的标记;或者,小节音符数量>10个,当待加强练习音数量≥5个,则直接将该小节标记为待加强练习小节;
25.两个小节内区域标:以两个小节为单位,两个小节音符数量需要≥4个,当待加强练习音数量≥50%,则两个小节都标记为待加强练习小节。
26.优选地,根据小节信息再划分出待加强区域,包括:
27.当1个小节满足标记条件,下一个小节也满足标记条件时,则两个小节进行合并标记;当2个小节满足标记条件,下一个小节也满足标记条件时,则三个小节进行合并标记;当2个小节满足标记条件,下两个小节也满足标记条件时,则四个小节进行合并标记;当满足任意一个小节都存在待加强练习音数量≥1,按整体进行为待加强练习区域标记。
28.上述一种基于midi数据实时弹奏纠错方法,将用户弹奏的midi数据与曲谱标准midi对比实现实时判别纠错,将midi数据通过无线通讯方式实时传输给终端设备,并实时进行反馈,有效提升了纠错效果,提高琴童的学习效率。
附图说明
29.图1为本发明一实施例中一种基于midi数据实时弹奏纠错方法流程图;
30.图2为本发明一实施例中一种基于midi数据实时弹奏纠错方法的流程示意图。
具体实施方式
31.为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
32.在一个实施例中,如图1、2所示,一种基于midi数据实时弹奏纠错方法,方法包括以下步骤:
33.s100:记录用户弹奏的开始时间,开启电子节拍器,采集用户弹奏时的midi数据并对midi数据进行解析;
34.s200:将解析后的midi数据传递到待判别队列中;
35.s300:有序取出队列中的midi数据,分别取出midi中对应按键的key值,以及按键按下的时间,并将按键按下的时间转换成曲谱对应的tick时间;
36.s400:将用户当前按下按键的tick时间和当前节拍时间的曲谱标准midi进行对比,确定预设时间误差范围内是否存在有效音符;若存在有效音符,将用户按下按键的tick时间对应的key值与曲谱标准midi的key值进行匹配,若匹配成功,分别分析上一tick时间对应的key值和下一tick时间对应的key值与曲谱标准midi对应节拍时间对应的key值是否匹配,若均匹配,则确认当前按的键是正确的,否则判别为当前按的键是错误的;
37.s500:当用户弹奏结束后,将每个按键的结果保存汇总,并根据汇总后的结果划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和待加强练习区域进行合并后并发送至数据展示层显示。
38.具体地,数据展示层为终端设备,如手机、平板等,进一步地,通过无线通讯方式如蓝牙、wifi等方式进行发送。
39.上述一种基于midi数据实时弹奏纠错方法,将用户弹奏的midi数据与曲谱标准midi对比实现实时判别纠错,将midi数据通过无线通讯方式实时传输给终端设备,并实时进行反馈,有效提升了纠错效果,提高琴童的学习效率。
40.在一个实施例中,s400中将用户当前按下按键的tick时间和当前节拍时间的曲谱标准midi进行对比,确定预设时间误差范围内是否存在有效音符,包括:
41.s410:根据用户当前按下按键的tick时间遍历匹配出与曲谱标准midi最接近的tick值,通过与曲谱标准midi最接近的tick值从曲谱标准midi中取出对应的音,再取出上一个tick的音以及下一个tick值的音作为一个集合;
42.s420:根据用户按下按键的tick时间对应的key值与上述集合进行匹配,当确认集合中存在与用户按下按键的tick时间对应的key值匹配的key值时,则表示预设时间误差范围内存在有效音符。
43.具体地,比如根据用户当前按下按键的tick时间遍历匹配出与曲谱标准midi最接近的tick值,通过与曲谱标准midi最接近的tick值从曲谱标准midi中取出对应的音为60,上一个tick的音为46,下一个tick值的音为63,则该集合为{60 46 63},用户如果输入了63,则与集合进行匹配,当集合中存在63时,则表示预设时间误差范围内存在有效音符。
44.在一个实施例中,s400中判别为当前按的键是错误的,包括:
45.根据用户按下按键的tick时间以及曲谱标准midi到距离标准音最近的tick时间的位置,当用户按下按键的tick时间与距离标准音最近的tick时间的差值在预设的标准时间范围内时,将距离标准音最近的tick时间的位置标记为错音;当用户按下按键的tick
时间与距离标准音最近的tick时间的差值超过预设的标准时间范围时,将距离标准音最近的tick时间的位置标记为漏音。
46.在一个实施例中,s500中当用户弹奏结束后,将每个按键的结果保存汇总之后,还包括:
47.遍历当前正确的音,根据当前解析后的midi数据添加到队列的时间减去s100记录的用户开始弹奏的时间,得到差值;
48.根据差值与曲谱标准midi的开始时间进行对比,如果相差拍数小于在预设拍以内,则代表精准弹奏;如果差值大于曲谱标准midi的开始时间,则代表弹晚了,否则代表弹早了。
49.具体地,在本实施例中,如果相差小于在1/6拍以内(根据弹奏速度和拍数,时间不一),则代表精准弹奏。
50.在一个实施例中,s200之后还包括:保存当前解析后的midi数据添加到队列的时间;s500中并根据汇总后的结果划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和待加强练习区域进行合并后并发送至数据展示层显示,包括:
51.筛选出全部错音、漏音、弹早了和弹晚了的音作为待加强练习音,以小节划分,按照预设的规则标记待加强练习小节,根据小节信息再划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和待加强练习区域进行合并后通过数组的形势返回给数据显示层展示。
52.具体地,在整个曲子弹奏完毕后。筛选出全部有问题的音,以小节划分,按照规则确定出有问题的小节,根据小节信息再划分出不熟练区域,通过数组的形势返回给数据显示层展示,到此,整个纠错流程结束。对用户弹奏的曲子,实时通过平板/手机出来,让琴童立马知道弹奏的音准不准、节奏稳不稳等问题。
53.在一个实施例中,预设的规则包括:
54.单个音标:以音符为单位,1个音的错误且不满足连续错音条件,只进行单音标,无需计入到待加强练习小节;
55.1小节内区域标:以小节为单位,小节音符数量需要≥3个,当待加强练习音数量≥50%时,则该小节进行不熟练区域的标记;或者,小节音符数量>10个,当待加强练习音数量≥5个,则直接将该小节标记为待加强练习小节;
56.两个小节内区域标:以两个小节为单位,两个小节音符数量需要≥4个,当待加强练习音数量≥50%,则两个小节都标记为待加强练习小节。
57.在一个实施例中,根据小节信息再划分出待加强区域,包括:
58.当1个小节满足标记条件,下一个小节也满足标记条件时,则两个小节进行合并标记;当2个小节满足标记条件,下一个小节也满足标记条件时,则三个小节进行合并标记;当2个小节满足标记条件,下两个小节也满足标记条件时,则四个小节进行合并标记;当满足任意一个小节都存在待加强练习音数量≥1,按整体进行为待加强练习区域标记。
59.上述一种基于midi数据实时弹奏纠错方法,将用户弹奏的midi数据与曲谱标准midi对比实现实时判别纠错,将midi数据通过无线通讯方式实时传输给终端设备,并实时进行反馈,有效提升了纠错效果,提高琴童的学习效率。
60.以上对本发明所提供的一种基于midi数据实时弹奏纠错方法进行了详细介绍。本
文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

技术特征:


1.一种基于midi数据实时弹奏纠错方法,其特征在于,所述方法包括以下步骤:s100:记录用户弹奏的开始时间,开启电子节拍器,采集用户弹奏时的midi数据并对所述midi数据进行解析;s200:将解析后的midi数据传递到待判别队列中;s300:有序取出队列中的midi数据,分别取出midi中对应按键的key值,以及按键按下的时间,并将所述按键按下的时间转换成曲谱对应的tick时间;s400:将用户当前按下按键的tick时间和当前节拍时间的曲谱标准midi进行对比,确定预设时间误差范围内是否存在有效音符,若存在有效音符,将用户按下按键的tick时间对应的key值与曲谱标准midi的key值进行匹配,若匹配成功,分别分析上一tick时间对应的key值和下一tick时间对应的key值与所述曲谱标准midi对应节拍时间对应的key值是否匹配,若均匹配,则确认当前按的键是正确的,否则判别为当前按的键是错误的;s500:当用户弹奏结束后,将每个按键的结果保存汇总,并根据汇总后的结果划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和所述待加强练习区域进行合并后并发送至数据展示层显示。2.根据权利要求1所述的方法,其特征在于,s400中将用户当前按下按键的tick时间和当前节拍时间的曲谱标准midi进行对比,确定预设时间误差范围内是否存在有效音符,包括:s410:根据用户当前按下按键的tick时间遍历匹配出与曲谱标准midi最接近的tick值,通过与曲谱标准midi最接近的tick值从曲谱标准midi中取出对应的音,再取出上一个tick的音以及下一个tick值的音作为一个集合;s420:根据用户按下按键的tick时间对应的key值与上述集合进行匹配,当确认集合中存在与用户按下按键的tick时间对应的key值匹配的key值时,则表示预设时间误差范围内存在有效音符。3.根据权利要求2所述的方法,其特征在于,s400中判别为当前按的键是错误的,包括:根据用户按下按键的tick时间以及曲谱标准midi到距离标准音最近的tick时间的位置,当所述用户按下按键的tick时间与所述距离标准音最近的tick时间的差值在预设的标准时间范围内时,将所述距离标准音最近的tick时间的位置标记为错音;当所述用户按下按键的tick时间与所述距离标准音最近的tick时间的差值超过预设的标准时间范围时,将所述距离标准音最近的tick时间的位置标记为漏音。4.根据权利要求3所述的方法,其特征在于,s500中当用户弹奏结束后,将每个按键的结果保存汇总之后,还包括:遍历当前正确的音,根据当前解析后的midi数据添加到队列的时间减去s100记录的用户开始弹奏的时间,得到差值;根据所述差值与所述曲谱标准midi的开始时间进行对比,如果相差拍数小于在预设拍以内,则代表精准弹奏;如果所述差值大于曲谱标准midi的开始时间,则代表弹晚了,否则代表弹早了。5.根据权利要求4所述的方法,其特征在于,s200之后还包括:保存当前解析后的midi数据添加到队列的时间;s500中并根据汇总后的结果划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和所述待加强练习区域进行合并后并发送至数据展示层显示,
包括:筛选出全部错音、漏音、弹早了和弹晚了的音作为待加强练习音,以小节划分,按照预设的规则标记待加强练习小节,根据小节信息再划分出待加强练习区域,按照节拍时间取出数据,将取出的数据和所述待加强练习区域进行合并后通过数组的形势返回给数据显示层展示。6.根据权利要求5所述的方法,其特征在于,预设的规则包括:单个音标:以音符为单位,1个音的错误且不满足连续错音条件,只进行单音标,无需计入到待加强练习小节;1小节内区域标:以小节为单位,小节音符数量需要≥3个,当待加强练习音数量≥50%时,则该小节进行不熟练区域的标记;或者,小节音符数量>10个,当待加强练习音数量≥5个,则直接将该小节标记为待加强练习小节;两个小节内区域标:以两个小节为单位,两个小节音符数量需要≥4个,当待加强练习音数量≥50%,则两个小节都标记为待加强练习小节。7.根据权利要求6所述的方法,其特征在于,所述根据小节信息再划分出待加强区域,包括:当1个小节满足标记条件,下一个小节也满足标记条件时,则两个小节进行合并标记;当2个小节满足标记条件,下一个小节也满足标记条件时,则三个小节进行合并标记;当2个小节满足标记条件,下两个小节也满足标记条件时,则四个小节进行合并标记;当满足任意一个小节都存在待加强练习音数量≥1,按整体进行为待加强练习区域标记。

技术总结


本发明公开了一种基于MIDI数据实时弹奏纠错方法,包括:采集用户弹奏时的MIDI数据并解析传递到待判别队列中;将用户当前按下按键的tick时间和当前节拍时间的曲谱标准MIDI进行对比,确定预设时间误差范围内是否存在有效音符,若存在,将用户按下按键的tick时间对应的key值与曲谱标准MIDI的key值进行匹配,若匹配成功,分别分析上一tick时间和下一tick时间对应的key值与所述曲谱标准MIDI对应节拍时间对应的key值是否匹配,若均匹配,则确认当前按的键是正确的,否则判别为当前按的键是错误的;当用户弹奏结束后,将每个按键的结果保存汇总并划分出待加强练习区域,按照节拍时间取出数据,合并后并发送至数据展示层显示。有效提升了纠错效果,提高琴童的学习效率。提高琴童的学习效率。提高琴童的学习效率。


技术研发人员:

郭立 刘天作 江红 张伟

受保护的技术使用者:

湖南卡罗德钢琴有限公司

技术研发日:

2022.10.27

技术公布日:

2023/3/24

本文发布于:2023-03-31 07:22:13,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/83804.html

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

标签:小节   时间   曲谱   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图