[发明专利]一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法有效
申请号: | 201610627686.6 | 申请日: | 2016-08-03 |
公开(公告)号: | CN106098038B | 公开(公告)日: | 2019-07-26 |
发明(设计)人: | 潘蕾全;吴以凡;方俊鹏;张桦;戴国骏 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G10H1/00 | 分类号: | G10H1/00;G10H1/34;G10F1/02 |
代理公司: | 浙江杭州金通专利事务所有限公司 33100 | 代理人: | 王佳健 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法。本发明中的控制主板将从MIDI接口或者USB端口接收到的MIDI数据,通过适用于自动钢琴弹奏的多音轨MIDI文件翻译技术译码,并包装成链表格式的音符数据,通过CAN总线技术传输到驱动板,驱动板接收链表格式的音符数据转换为PWM波形经GPIO口传输到电流放大电路,从而控制琴键下方的电磁螺线圈驱动琴键。本发明综合多音轨MIDI翻译技术、基于CAN总线技术的板间通信协议和PWM控制技术,在尽量保证乐曲质量的基础上,有效提高了自动钢琴演奏系统的适用性和可靠性。 | ||
搜索关键词: | 一种 自动 钢琴 演奏 系统 多音 midi 文件 方法 | ||
【主权项】:
1.一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法,其特征在于该方法包括以下步骤:步骤(1).接收并翻译MIDI文件:MIDI数据文件通过USB端口传输给控制主板;控制主板接收到MIDI文件之后,逐音轨提取出所有的MIDI消息,并将每个消息的间隔时间delta_time转换为公共时间,再将所有音符数据按链表音符数据存储格式再存储,按照每个消息公共时间的先后插入对应音轨的通道链或者系统消息链中;所述的链表音符数据存储格式,共包含16条通道链,16条通道链对应16条MIDI通道,每个链节点分别存储了一个MIDI事件的音符信息,还有1条系统消息链;步骤(2).简化通道链,减少链节点数量:音轨块翻译结束之后,遍历通道链,删去所有的关音操作节点,记录关音时刻t关,并向前回溯,找到对应的开音操作的开音时刻t开,将时间差记入持续时间T,即持续时间T=t关-t开;步骤(3).通过CAN接口传输数据至驱动板:第一步、控制主板将系统消息链按第二种数据帧格式传输至驱动板,系统消息链包含音符速度、拍子号、通道号、音调符号;第二步、将16条通道链所有的音符数据按第一种数据帧格式传输至驱动板;第三步、驱动板将传来的音符数据提取还原为包含音符数据的通道链和系统消息链;第四步、钢琴演奏按照开音时刻对所有通道链进行排序,直到所有的音符和系统消息数据接收排序完毕;所述的第一种数据帧格式包含了第一消息类型、通道号、音符号、开音时刻、第一数据区长度和第一数据区;所述的第二种数据帧格式包含了第二消息类型、控制号、第二数据区长度和第二数据区;步骤(4).驱动板输出PWM波形演奏音符:先从系统消息链中提取出音乐参数,并根据音乐参数设置一个公共时间作为参照,利用函数设置PWM参数,改变演奏琴键的力度,利用中断控制琴键对象输出PWM波形,依次对16条通道链的音符数据进行弹奏。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610627686.6/,转载请声明来源钻瓜专利网。