首页 > 专利 > 杭州电子科技大学 > 一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法专利详情

一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2016-08-03
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2016-12-07
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2019-07-26
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2036-08-03
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201610627686.6 申请日 2016-08-03
公开/公告号 CN106098038B 公开/公告日 2019-07-26
授权日 2019-07-26 预估到期日 2036-08-03
申请年 2016年 公开/公告年 2019年
缴费截止日
分类号 G10H1/00G10H1/34G10F1/02 主分类号 G10H1/00
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 4
权利要求数量 5 非专利引证数量 1
引用专利数量 5 被引证专利数量 0
非专利引证 1、迟耀丹 等.浅谈钢琴自动演奏系统《.现代制造技术与装备》.2015,153-154.;
引用专利 CN1460989A、CN101042861A、CN103531188A、CN1409295A、JP2016114717A 被引证专利
专利权维持 6 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 潘蕾全、吴以凡、方俊鹏、张桦、戴国骏 第一发明人 潘蕾全
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 5
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
浙江杭州金通专利事务所有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
王佳健
摘要
本发明公开了一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法。本发明中的控制主板将从MIDI接口或者USB端口接收到的MIDI数据,通过适用于自动钢琴弹奏的多音轨MIDI文件翻译技术译码,并包装成链表格式的音符数据,通过CAN总线技术传输到驱动板,驱动板接收链表格式的音符数据转换为PWM波形经GPIO口传输到电流放大电路,从而控制琴键下方的电磁螺线圈驱动琴键。本发明综合多音轨MIDI翻译技术、基于CAN总线技术的板间通信协议和PWM控制技术,在尽量保证乐曲质量的基础上,有效提高了自动钢琴演奏系统的适用性和可靠性。
  • 摘要附图
    一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法
  • 说明书附图:图1
    一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法
  • 说明书附图:图2
    一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法
  • 说明书附图:图3
    一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法
  • 说明书附图:图4
    一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2019-07-26 授权
2 2016-12-07 实质审查的生效 IPC(主分类): G10H 1/00 专利申请号: 201610627686.6 申请日: 2016.08.03
3 2016-11-09 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
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条通道链的音符数据进行弹奏。

2.根据权利要求1所述的一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法,其特征在于:所述的通道链中的每个链节点包含音符操作、音符号、消息时刻、持续时间、按下力度和释放力度。

3.根据权利要求1所述的一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法,其特征在于:所述的系统消息链中的每个链节点包含了控制号、控制参数和消息时刻。

4.根据权利要求1所述的一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法,其特征在于:所述的第一数据区包含力度数值。

5.根据权利要求1所述的一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法,其特征在于:所述的第二数据区包含拍子号、音调号。
说明书

技术领域

[0001] 本发明涉及一种多音轨MIDI文件的演奏方法,尤其是一种自动钢琴演奏系统中多音轨MIDI文件的演奏方法。

背景技术

[0002] 自动钢琴起源于19世纪欧洲,发明至今都深受音乐爱好者甚至音乐艺术家的青睐,从早期的纸卷自动钢琴到现如今的电磁原理自动钢琴,人类追求钢琴自动化的脚步从未停歇。二十世纪七十年代末,为解决电声乐器之间通信的问题,国际乐器制造者协会通过并公布了一种通用的电子音乐格式——MIDI格式。这一技术的发明,不仅使得乐器之间不再存在通讯障碍,更重要的是也为电磁原理自动钢琴的出现提供了可能。电磁原理自动钢琴由传统机械自动钢琴和自动演奏系统两部分组成。目前已存在的自动钢琴演奏技术,都是以单音轨MIDI音乐文件作为源文件,弹奏只含钢琴音符的乐曲,但随着现今乐曲的成分越来越多样化,为了提高自动钢琴的实用性,本发明提供了一种适应性更强的多音轨MIDI翻译技术,以及一种适用于自动钢琴演奏的链表音符数据存储格式,便于驱动板快速提取音符数据并进行弹奏。这种多音轨MIDI翻译技术算法易理解,同时能很好地适用现今乐曲发展的趋势,让更多的人愿意接触自动演奏钢琴。
[0003] 设计自动钢琴演奏方法另一难点就是力度的控制。呈现一首优质的音乐,至少需要精确地表达出MIDI音乐中规定的127级力度。和合成器发声不同,自动钢琴是采用电磁线圈驱动活塞的方式控制琴键进行弹奏,那么控制力度就成了控制电磁线圈的电流通量。为了解决这个问题,本发明采用了在工业控制领域很受用的PWM控制技术。PWM技术是一种用占空比和周期来控制脉冲电流中高电平的占比的控制技术,而应用于自动钢琴中,细微差别的占空比和周期都能产生不同的力度演奏琴键,这种技术极大地满足了MIDI音乐127级力度级的控制要求,为乐曲的质量提供了保证。

发明内容

[0004] 本发明针对当前自动演奏系统的MIDI源文件的局限性,提供了一种多音轨MIDI文件翻译方法,并结合钢琴演奏的需求,定义了一种信息更精简、音符更便于演奏的数据格式存储MIDI文件提取的音符数据。由设计的通信协议将音符数据从控制主板发送至驱动板,完成驱动的设计。
[0005] 多音轨翻译技术的核心包含MIDI事件delta_time的转换和音符数据的再存储。首先,每个MIDI消息的delta_time因弹奏的需要,需要转换为公共时间(即与音轨第一个MIDI消息时刻的时间差),以提高操作音符数据的灵活性。其次,本发明定义了一种链表音符数据存储格式,共包含16条通道链一一对应16条MIDI通道,每个链节点分别存储了一个MIDI事件的音符信息,包含音符操作、音符号、消息时刻、持续时间、按下力度、释放力度。还有一条系统消息链,包含了控制号、控制参数、消息时刻。这种链表音符数据存储格式以链表形式将音符数据再存储,更好地适应自动钢琴的演奏。
[0006] 板间通信技术的设计是为了能够确保在控制主板和驱动板之间音符数据的完整传输。根据链表音符数据存储格式的需要,本发明提出了一种基于CAN总线技术的通信技术,包含两种数据帧格式分别用来传输通道链数据和系统消息链数据:①通道链数据帧包含了消息类型,通道号,音符号,开音时刻,数据区长度,数据区。②系统消息链数据帧包含了消息类型,控制号,数据区长度,数据区。
[0007] 本发明PWM控制技术的设计,因考虑到MIDI音乐的127级力度和钢琴的88个琴键,采用面向对象思想,设计了88个琴键数据对象,每个琴键对象控制一个琴键,每个琴键对象都包含相应琴键号,PWM参数(占空比、周期),琴键状态以及GPIO端口号。驱动板通过中断控制琴键对象输出PWM脉冲波形的时长,通过函数修改琴键对象中PWM参数值达到不同力度控制琴键的目的。
[0008] 本发明技术方案如下:
[0009] 步骤(1).接收并翻译MIDI文件。控制主板设置有MIDI接口和USB端口,使用者可以将MIDI文件储存在U盘等存储设备中,通过USB端口将MIDI数据文件传输给控制主板。控制主板接收到MIDI文件之后,逐音轨提取出所有的MIDI消息(MIDI message),并将每个消息的间隔时间delta_time转换为公共时间(与音轨块第一个MIDI消息时刻的时间差),再将所有音符数据按链表音符数据存储格式再存储,按照每个消息公共时间的先后插入对应音轨的通道链或者系统消息链中。
[0010] 步骤(2).简化通道链,减少链节点数量。由于MIDI标准格式提供的音符事件只存在开音和关音两种操作,而驱动板控制音符数据更适用音符开操作和持续时间参数。因此,为了减少音符数据的冗余,同时提高音符数据的可操作性,音轨块翻译结束之后,遍历通道链,删去所有的关音操作节点,记录关音时刻t关,并向前回溯,找到对应的开音操作的开音时刻t开,将时间差记入持续时间T,即持续时间T=t关-t开(秒)。
[0011] 步骤(3).通过CAN接口传输数据至驱动板。第一步,控制主板将系统消息链按消息类型②传输至驱动板,系统消息链包含音符速度、拍子号、通道号、音调符号等。第二步,将16条通道链所有的音符数据按消息类型①传输至驱动板。最后,驱动板将传来的音符数据提取还原为包含音符数据的通道链和系统消息链。钢琴演奏按照开音时刻对所有通道数据链进行排序。直到所有的音符和系统消息数据接收排序完毕后,进入下一步。
[0012] 步骤(4).驱动板输出PWM波形演奏音符。先从系统消息链中提取出音乐参数,例如音符速度、四分音符时间等。并根据音乐参数设置一个公共时间T作为参照,利用函数设置PWM参数,利用中断控制琴键对象输出PWM波形,依次对16条通道链的音符数据进行弹奏。
[0013] 与背景技术相比,本发明有益效果:本发明综合多音轨MIDI翻译技术、基于CAN总线技术的板间通信协议和PWM控制技术,在尽量保证乐曲质量的基础上,有效提高了自动钢琴演奏系统的适用性和可靠性。具体表现为:
[0014] (1).实用性。采用多音轨MIDI文件翻译技术,解决了当前大部分自动钢琴弹奏源文件仅限于单音轨文件的问题。当需要弹奏多音轨乐曲时,多音轨MIDI文件翻译方法可以将所有音轨的音符信息记录下来,提供驱动板弹奏钢琴音轨音符或者弹奏完整曲子,而已往的自动钢琴演奏方法只能弹奏单一钢琴音轨的乐曲。在乐曲成分越来越多样化的今天,多音轨MIDI演奏方法可能会更加受到大众的欢迎。
[0015] (2).可靠性。采用CAN总线技术与自主设计的板间通信协议进行控制主板与驱动板之间的通信,很大程度上提高了数据传输的可靠性,可以较为完整的保存乐曲的所有音符,提高自动钢琴演奏的音效。确保了乐曲的质量不会因为演奏系统的操作而受到影响。
[0016] (3).精确性。采用PWM控制技术控制电磁螺线圈以至少127级力度演奏乐曲,不仅简化了控制琴键力度的难度,而且极大地还原了乐曲本身的音乐质量,提高了整个自动钢琴演奏方法成果的质量。

实施方案

[0021] 以下结合附图对本发明进一步说明。
[0022] 如图1所示,本次发明的自动钢琴演奏系统分以下几个步骤:
[0023] 步骤一,接收并翻译MIDI文件:接收到由USB端口输入的多音轨MIDI文件,按照MIDI文件中音轨排列的先后,逐字节分析音轨块(包含音轨块头MTrk,系统消息,MIDI消息,音轨结束标志ff 2f 00),将由MIDI标准格式存储的音符数据,转换为更适合自动钢琴演奏的链表节点数据,即每条通道对应音轨中的音符数据构成一条通道消息链,直到分析完MIDI文件所含的所有音轨。
[0024] 步骤二,简化通道链,目的在于减少音符数据的冗余,方便驱动板驱动琴键。由于标准MIDI格式的音符事件只存在开音和关音两种操作,而驱动板控制音符数据更适用音符开操作和持续时间参数。因此,为了减少音符数据的冗余,同时提高音符数据的可操作性,引进音轨块简化算法。音轨块简化算法为倒序遍历通道链,删去关音操作的音符数据节点,记录关音时刻t关,并向前回溯,找到对应音符的开音操作的消息时刻t开,即持续时间T=t关-t开(秒),保留此音符开音操作的数据节点,其中消息时刻为t开,持续时间为T。
[0025] 步骤三,利用CAN总线技术传输数据至驱动板。控制主板先将系统消息链按消息类型②传输至驱动板,包含音符速度,通道前缀,拍子记号、音调等参数。再将16条通道链所有的音符数据按消息类型①传输至驱动板,驱动板提取传来的音符数据帧还原为包含音符数据的通道链。按照开音时刻对所有通道数据链进行排序,驱动板每接受完一条完整的通道链返回ACK信号,直到所有的音符和系统消息数据接收排序完毕。
[0026] 步骤四,输出PWM波形演奏音符,驱动板设置一个公共时间值T_public作为参照,于乐曲第一个音符开始弹奏时开始计时。利用中断控制琴键对象的状态位,控制PWM波形的输出;利用函数设置PWM参数值,改变演奏琴键的力度。例如音符C#从T=10时刻开音,持续15个时间单位。此算法即在T_public=10时,将此音符状态位使能,并将此音符事件加入到任务链中,直到T_public=25时系统产生中断,修改琴键对象的状态位,释放琴键,并将此事件从任务链移除,直到整首乐曲弹奏完毕。
[0027] 如图2所示,本次发明的自动演奏钢琴的系统结构由两部分组成:控制主板和驱动板。控制主板设置有USB端口、CAN接口、微处理器以及为控制主板供电的电源接口。驱动板设置有CAN接口、微处理器以及GPIO引脚。控制主板运算能力强、资源丰富,且已拓展,可以根据设计者的需求,添加功能,比如蓝牙功能。驱动板资源丰富,配置大量的GPIO引脚,提供琴键对象输出PWM脉冲波形至电流放大电路驱动电磁铁弹奏琴键。CAN接口保证了控制主板和驱动板信息的交互。
[0028] 如图3所示,抽象展示了两种链表节点:通道消息链节点和系统消息链节点。通道消息链节点为音符数据,为了便于驱动板读取音符数据,设置了音符操作、音符号、消息时刻、持续时间、按下力度、释放力度六大参数,并且按照消息时刻升序排列链表。系统消息链设置了控制号、控制参数、消息时刻三个参数。
[0029] 如图4所示,抽象展示了两种通信数据帧:通道消息数据帧和系统消息数据帧。通道消息数据帧包含的数据为通道链数据,即为音符数据,因此这个数据帧较为复杂,包括消息类型,通道号,音符号,开音时刻,数据区长度,数据区,其中数据区主要包含力度数值。系统消息数据帧包含系统消息链的数据,包括消息类型,控制号,数据区长度,数据区。其中数据区在不同系统消息中包括不同的数据,例如拍子号、音调号等。

附图说明

[0017] 图1.自动演奏系统流程图;
[0018] 图2.自动演奏系统结构示意图;
[0019] 图3.通道链与系统消息链节点示意图;
[0020] 图4.数据帧结构示意图。
专利联系人(活跃度排行)
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号