一种MIDI音乐播放的方法及MIDI音乐播放装置转让专利

申请号 : CN200410091009.4

文献号 : CN1604181B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金传恩董欣戴春泉

申请人 : 北京中星微电子有限公司

摘要 :

一种MIDI音乐播放的方法,在其MIDI数据指令输入步骤中采用多路序列器分别输入多路MIDI数据指令,并等待执行时间到达。在其仲裁选择步骤中,当多路序列器中只有一路序列器内的MIDI数据指令的执行时间到达时,则该序列器输出MIDI数据指令;当多路序列器中存在至少两路序列器,它们的MIDI数据指令的执行时间同时到达,则在它们之间作出仲裁选择,使其中的一路序列器输出MIDI数据指令。在其音乐合成步骤中采用音乐合成器接收所述序列器输出的MIDI数据指令,进行MIDI音乐合成,并输出合成后的MIDI音乐。本发明同时公开了一种MIDI音乐播放装置,包括音乐合成器、仲裁器以及多路序列器。

权利要求 :

1.一种MIDI音乐播放的方法,其特征在于:包括MIDI数据指令输入步骤、仲裁选择步骤以及音乐合成步骤,其中,所述MIDI数据指令输入步骤为:采用多路序列器分别输入多路MIDI数据指令,所述序列器首先自缓存器内预取MIDI数据指令的部分数据,其中包括该指令的执行时间数据,并等待所输入的MIDI数据指令的执行时间的到达;

所述仲裁选择步骤为:当多路序列器中只有一路序列器内的MIDI数据指令的执行时间到达时,则该序列器输出MIDI数据指令;当多路序列器中存在至少两路序列器,它们的MIDI数据指令的执行时间同时到达,则在它们之间作出仲裁选择,使其中的一路序列器输出MIDI数据指令;

所述音乐合成步骤为:采用音乐合成器接收所述序列器输出的MIDI数据指令,进行MIDI音乐合成,并输出合成后的MIDI音乐。

2.如权利要求1所述MIDI音乐播放的方法,其特征在于:所述仲裁选择是根据预先设定的优先级,选择优先级最高的一路序列器输出MIDI数据指令。

3.如权利要求1所述的MIDI音乐播放的方法,其特征在于:所述MIDI数据指令输入步骤中,当该指令的执行时间到达,并且该序列器获得仲裁许可时,则该序列器从所述缓存器内取出该MIDI数据指令的全部数据,并传输至所述音乐合成器。

4.如权利要求1所述的MIDI音乐播放的方法,其特征在于:所述音乐合成步骤中,首先采用通道分配器为输出至音乐合成器内的MIDI数据指令选择正确的合成器通道,从而控制相应通道的合成器合成音乐。

5.一种MIDI音乐播放装置,包括音乐合成器,其特征在于:还包括多路缓存器、仲裁器以及多路序列器,多路缓存器,且每路缓存器的输出端对应连接至一路序列器的输入端,用于缓存MIDI数据指令;所述多路序列器用于分别输入多路MIDI数据指令,所述序列器首先自缓存器内预取MIDI数据指令的部分数据,其中包括该指令的执行时间数据,并按该MIDI数据指令的执行时间输出;所述仲裁器用于对多路序列器作出仲裁选择,从而使其中一路序列器的MIDI数据指令传输至所述音乐合成器。

6.如权利要求5所述MIDI音乐播放装置,其特征在于:还包括通道分配器,用于接收序列器输出的MIDI数据指令,并为其分配正确的音乐合成器的通道,控制相应通道合成音乐。

7.如权利要求5所述MIDI音乐播放装置,其特征在于:还包括中央控制器,用于读入MIDI文件,并将其转换成可控制音乐合成器的MIDI数据指令后,输入对应的缓存器。

8.如权利要求5所述MIDI音乐播放装置,其特征在于:还包括模数转换器,用于将所述音乐合成器输出的数字信号的MIDI音乐转换成模拟信号,以进行播放。

说明书 :

一种MIDI音乐播放的方法及MIDI音乐播放装置

技术领域

[0001] 本发明涉及一种播放音频数据的方法,特别是一种MIDI音乐播放的方法。本发明同时还涉及一种采用该方法的MIDI音乐播放的装置。技术背景
[0002] MIDI是Musical Instrument Digital Interface的首写字母组合词,可译成“电子乐器数字接口”。用于在音乐合成器(music synthesizers)、乐器(musical instruments)和计算机之间交换音乐信息的一种标准协议。MIDI文件没有记录声音本身,而是对乐曲的描述,比如说“在什么时候,使用什么乐器,以什么音符开始,以什么音调结束,加以什么伴奏”。也就是说它只记录了乐曲的信息。所以播放MIDI就需要一些音乐合成手段,其中一种方法为波表合成方法。波表合成方法是在MIDI播放时,根据MIDI记录的乐曲信息向波表发出命令,从表格中找出对应的声音信息,经过合成、加工后回放出来。而音乐合成器通常有自己独特的指令,所以需要预先把输入的MIDI文件或别的格式的MIDI音乐转换为控制音乐合成器的指令格式。现有的MIDI音乐播放装置一般为采用一个中央控制器(CPU)读入MIDI文件,并转换成可控制音乐合成器的MIDI指令数据;然后由一个序列器(sequencer)定时从这些指令中取出一条指令送入一个音乐合成器合成乐曲。而现有的这种MIDI音乐播放装置都只能每次读入一路MIDI文件,进行一路MIDI音乐的合成。随着人们需求的提高,同时播放多路MIDI音乐,获得更丰富的视听享受也将成为人们的需求趋势。

发明内容

[0003] 本发明的目的是:针对现有技术的不足,提供一种简单实用,且可实现同时播放多路MIDI音乐的方法和MIDI音乐播放装置。
[0004] 为了解决上述技术问题,本发明所采取的技术方案是:一种MIDI音乐播放的方法,包括MIDI数据指令输入步骤、仲裁选择步骤以及音乐合成步骤,其中, [0005] 所述MIDI数据指令输入步骤为:采用多路序列器分别输入多路MIDI数据指令,所述序列器首先自缓存器内预取MIDI数据指令的部分数据,其中包括该指令的执行时间数据,并等待所输入的MIDI数据指令的执行时间的到达;
[0006] 所述仲裁选择步骤为:当多路序列器中只有一路序列器内的MIDI数据指令的执行时间到达时,则该序列器输出MIDI数据指令;当多路序列器中存在至少两路序列器,它们的MIDI数据指令的执行时间同时到达,则在它们之间作出仲裁选择,使其中的一路序列器输出MIDI数据指令;
[0007] 所述音乐合成步骤为:采用音乐合成器接收所述序列器输出的MIDI数据指令,进行MIDI音乐合成,并输出合成后的MIDI音乐。
[0008] 所述仲裁选择可以是根据预先设定的优先级,选择优先级最高的一路序列器输出MIDI数据指令。
[0009] 可以采用缓存器对将要输入所述序列器内的MIDI数据指令进行缓存。 [0010] 所述MIDI数据指令输入步骤中,所述序列器可以首先自所述缓存器内预取MIDI数据指令的部分数据,其中包括该指令的执行时间数据,当该指令的执行时间到达,并且该序列器获得仲裁许可时,则该序列器从所述缓存器内取出该MIDI数据指令的全部数据,并传输至所述音乐合成器。
[0011] 所述音乐合成步骤中,可以首先采用通道分配器为输出至音乐合成器内的MIDI数据指令选择正确的合成器通道,从而控制相应通道的合成器合成音乐。 [0012] 一种MIDI音乐播放装置,包括音乐合成器、仲裁器以及多路序列器,所述多路序列器用于分别输入多路MIDI数据指令,所述序列器首先自缓存器内预取MIDI数据指令的部分数据,其中包括该指令的执行时间数据,并按该MIDI数据指令的执行时间输出;所述仲裁器用于对多路序列器作出仲裁选择,从而使其中一路序列器的MIDI数据指令传输至所述音乐合成器。
[0013] 还可以包括多路缓存器,且每路缓存器的输出端对应连接至一路序列器的输入端,用于缓存MIDI数据指令。
[0014] 还可以包括通道分配器,用于接收序列器输出的MIDI数据指令,并为其分配正确的音乐合成器的通道,控制相应通道合成音乐。
[0015] 还可以包括中央控制器,用于读入MIDI文件,并将其转换成可控制音乐合成器的MIDI数据指令后,输入对应的缓存器。
[0016] 还可以包括模数转换器,用于将所述音乐合成器输出的数字信号的MIDI音乐转换成模拟信号,以进行播放。
[0017] 在上述技术方案中,本发明通过采用多路序列器并列获取MIDI数据指令,并通过仲裁选择的方法选取其中一路输出到音乐合成器内合成,从而实现了多路MIDI音乐并发播放的目的,获得更好的音乐播放的效果;并且,由于多路序列器共享一个音乐合成器,则可以最大限度的利用好音乐合成器资源,简化系统结构、缩小装置的体积,并可降低成本。另外,在序列器前设置缓存器缓存MIDI数据指令可减少序列器的工作负荷;在音乐合成器前设置通道分配器进行合成器通道的配置则可更有效的利用音乐合成器的通道。相对现有技术,本发明具有资源配置合理、结构简单,可实现多路MIDI音乐同时播放,播放效果好等特点。

附图说明

[0018] 附图1为本发明一种MIDI音乐播放的方法的流程图;
[0019] 附图2为本发明一种MIDI音乐播放装置的结构原理方框图;
[0020] 附图3为本发明的一种较佳实施例的MIDI音乐播放装置的结构原理方框图; [0021] 附图4为本发明的一种较佳实施例的MIDI音乐播放方法的流程图。 具体实施方式
[0022] 下面将结合说明书附图及具体实施例对本发明作进一步详细说明。 [0023] 参考图1,本发明提供的一种MIDI音乐播放的方法,包括MIDI数据指令输入步骤、仲裁选择步骤以及音乐合成步骤。其中:
[0024] 所述MIDI数据指令输入步骤为:采用多路序列器分别输入多路MIDI数据指令,并等待所输入的MIDI数据指令的执行时间的到达。
[0025] 所述仲裁选择步骤为:序列器在其执行时间到达时发出仲裁请求。这时判断是否有多路序列器同时发出仲裁请求。当多路序列器中只有一路序列器内的MIDI数据指令的执行时间到达,并发出仲裁请求时,则该序列器输出MIDI数据指令;当多路序列器中存在至少两路序列器,它们的MIDI数据指 令的执行时间同时到达,则在它们之间作出仲裁选择,使其中的一路序列器输出MIDI数据指令。
[0026] 所述音乐合成步骤为:采用音乐合成器接收所述序列器输出的MIDI数据指令,进行MIDI音乐合成,并输出合成后的MIDI音乐。
[0027] 参考附图2,本发明提供的一种MIDI音乐播放装置,包括音乐合成器、仲裁器以及多路序列器,所述多路序列器用于分别输入多路MIDI数据指令,并按该MIDI数据指令的执行时间输出;所述仲裁器用于对多路序列器作出仲裁选择,从而使其中一路序列器的MIDI数据指令传输至所述音乐合成器。
[0028] 图3、4给出本发明的一个较佳实施例。
[0029] 如图3,本实施例中给出具有两路序列器的MIDI音乐播放装置的结构。具有两路以上序列器的MIDI音乐播放装置的结构以及工作原理均与此类似,因此本发明包括但不局限于本实施例。
[0030] 本实施例的MIDI音乐播放装置包括中央控制器(CPU)、多路缓存器、多路序列器、仲裁器、通道分配器、音乐合成器及模数转换器。其中各个模块的具体结构均可采用现有技术的结构实现,如序列器可采用状态机实现,仲裁器可采用选择电路实现等,该现有技术为本技术领域内的技术人员所公知的技术方案,本专利中不再详细描述。 [0031] 本实施例的结构中,所述中央控制器用于读入所有MIDI文件,并将其转换成可控制音乐合成器的MIDI数据指令后,输入对应的缓存器。
[0032] 每路缓存器的输出端对应连接至一路序列器的输入端,用于缓存MIDI数据指令。 [0033] 所述序列器用于首先自所述缓存器内预取MIDI数据指令的部分数据,其中包括该指令的执行时间数据。当该指令的执行时间到达,并且该序列器获得仲裁许可时,该序列器再从所述缓存器内取出该MIDI数据指令的全部数据,并传输至所述音乐合成器。由此可见,序列器不必如现有技术中,预先存取所有的MIDI数据指令,消耗过多的系统资源。当然,在MIDI数据指令较短的情况下,亦可对本实施例作出修改,去掉多路缓存器,使多路序列 器直接从中央控制器中获得全部的MIDI数据指令。
[0034] 所述仲裁器用于根据预先设定的优先级,选择优先级最高的一路序列器输出MIDI数据指令。
[0035] 所述通道分配器用于接收序列器输出的MIDI数据指令,并为其分配正确的音乐合成器的通道,控制相应通道合成音乐。
[0036] 所述模数转换器用于将所述音乐合成器输出的数字信号的MIDI音乐转换成模拟信号,以进行播放。
[0037] 下面对照图4说明本实施例的具体的工作流程。
[0038] 首先我们假定一种应用场景:在通过手机上网玩游戏时,手机的背景音乐是一路MIDI音乐,当按下按键时会发出按键音,这是另一路MIDI音乐,这两路MIDI音乐需要同时播放,而且预先规定按键音的优先级高于背景音乐。
[0039] 当需要播放背景音乐文件的时候,CPU从MIDI文件1读入MIDI文件,作分析处理,将MIDI指令转变为可以控制音乐合成器的指令,然后将该指令送入缓存器1,当要播放按键音时CPU就读入MIDI文件2,作同样的处理,将处理结果送入缓存器2。缓存器1和缓存器2是两个缓冲区,用来缓冲CPU送入的数据。序列器1和序列器2是两个相同的序列器,当缓冲区中有数据的时候,序列器从缓冲区中取出部分MIDI数据指令,其中包含了该命令的执行时间,序列器等待该执行时间,当时间到达后序列器向仲裁器发出仲裁请求。如果只有一路序列器向仲裁器发出仲裁请求,则直接将该路序列器的MIDI数据指令发送给通道分配器。而当序列器1和序列器2同时向仲裁器发送仲裁请求时,由于设定序列器2的优先级高于序列器1的优先级,序列器2的MIDI数据指令将被仲裁器选择送给通道分配器,序列器1则要等到序列器2发送完MIDI指令后才能发送。由于音乐合成器可以有16、64等多个通道,通道分配器需要为来自仲裁器的MIDI指令选择正确的合成器通道,控制相应通道的合成器合成音乐。当命令送入音乐合成器后就开始合成音乐,从音乐合成器输出合成的MIDI音乐,再经过一个模数转换模块将数字 信号变成模拟信号,就得到了两路MIDI音乐。
[0040] 以上仅为本发明的一个具体实施例。而在实际实施过程中,还可根据实际应用作出相应的调整,如仲裁器的实施结构以及进行仲裁选择的方法可以按照不同的应用环境、不同的MIDI指令等因素作出相应的改变;再如通道分配器的功能亦可在CPU内完成。因此,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。