声音生成分配设备、乐音生成器和声音生成分配处理程序的制作方法

文档序号:2829979阅读:187来源:国知局
专利名称:声音生成分配设备、乐音生成器和声音生成分配处理程序的制作方法
技术领域
本发明涉及一种声音生成分配设备、一种乐音(music sound)生成器和一种声音生成分配处理程序。
背景技术
在诸如电子乐器这样的乐音生成器中,多个声音生成通道被分配给一个端口,为每个声音生成通道设定乐音的音色(timbre),然后在同一时间产生声音。例如,根据MIDI 1.0规范,生成器(音源)最多可以被分配到对于一个端口最多的16个通道,并且可以同时以16种音色来产生乐音。此外,近年来,具有32种或者64种音色的生成器被多个端口共享,这些生成器被分配给每个端口的多个声音生成通道。例如,旋律部分、节奏部分、和弦部分和低音部分被作为一首乐曲的多个部分而设置到每个端口作为乐音生成应用,从而能够生成复调的、丰富的乐音。另一方面,有这样一种情况,其中对于来自音乐键盘或者其它外部MIDI设备的乐音数据输入,作为任意应用的一个部分的声音生成器所被分配的通道的数目可能不足。在这种情况下,其它部分的声音生成通道被临时使用。
但是,对于音乐上很重要的部分,比如旋律部分来说,为每个端口都设置了优先级,以便即使其它部分的声音生成通道不足,旋律部分的声音生成通道也不会被用作临时不足的那些部分的声音生成通道。更具体地说,在具有高优先级的一个部分要求新声音生成、并且在该部分中没有空闲的声音生成通道的情况下,在具有低优先级的部分中当前正在产生声音的声音生成通道的生成器会被静音(mute),并且该声音生成通道被当作空闲的声音生成通道,而这个空闲的声音生成通道被分配给具有高优先级的部分的新声音生成。
此外,近年来,乐音生成器被集成到如蜂窝电话这样的移动通信终端中,从而产生出铃声旋律(具有旋律的来电信号)、游戏虚拟声音、从网络下载的乐曲的再现声音等等。蜂窝电话逐年演进,因此可以预计在不久的将来,也会要求蜂窝电话具备与电子乐器相同的音乐演奏水平。
在日本专利申请KOKAI公开No.8-202361中披露的一种电子乐器中,当声音生成时机出现时,确定是否有空闲的声音生成通道。在没有空闲的通道的情况下,从具有最高静音优先级的部分中,确定该部分中是否有当前正在产生声音的声音生成通道。然后,在其中检测到了当前正在产生声音的声音生成通道的那部分中,根据预定的条件,选择一个当前正在产生声音的通道,该声音生成通道的声音生成被停止,并且被释放的声音生成通道被分配给新接通(key-on)信息。此外,上述公开中描述了一种配置,其支持通过用户操作、自动播放数据的命令、MIDI的专有消息等来改变静音优先级。按照这个配置,即使声音生成通道的数目不足时,必要的声音也不会被删除。
此外,在日本专利No.2562260中,披露了一种电子乐器分配器。当新输入用于播放多个部分中的一个的放音数据时,选择新的放音数据被分配的声音生成通道。这个时候,如果新的放音数据被分配的声音生成通道不足,则依据存储在存储器中的各个部分的优先级,从具有低优先级的部分被分配的声音生成通道中选择一个声音生成通道。利用这个配置,每个部分使用的声音生成通道的数目不是固定分配给该部分的。因此,新输入的部分能够获得必需的声音生成通道数量,要播放的声音也不会被限制,因此,可以使音乐演奏表现更加丰富。
在日本专利申请KOKAI公开No.8-202361和日本专利No.2562260中,当对于某个部分有新声音生成请求、而将用于该声音生成的声音生成通道不够的时候,优先级被设置为很低的部分总是被牺牲。然而,存在不能为设置给多个端口中的各个端口的应用设定优先级的情况。例如,现在的蜂窝电话具备使用复音的乐音来玩游戏的功能,当玩游戏过程中有来电信号时,用户可能想不中止游戏而接听来电。但是如果为接收来电信号的应用设置的端口的优先级很低,则这个来电不能被识别。相反,如果为玩游戏的应用设置的端口的优先级很低,则游戏会被终止。
同时,在日本专利申请KOKAI公开No.8-202361中披露的电子乐器中,多个部分或者声音生成通道可以被分配一个优先级。要被静音的声音生成通道可以从具有相同优先级下最多数目的声音生成通道的那部分中选出,并且每个部分的声音生成通道可以被顺序地选择。但是,这种配置实质上与其中一个部分或者一个声音生成通道被分配一个优先级的配置相同。因此,即使多个部分或者声音生成通道被分配了一个优先级,优先级被设置成很低的部分依然总是被牺牲。

发明内容
因此,提出本发明以解决现有技术中的问题,本发明的一个目的在于,当给多个端口中的每一个设置了应用,而对于某一端口有新声音生成请求时,响应该新声音生成请求,同时减少其它端口被牺牲的可能性,即使该端口的声音生成通道不足时也是如此。
更具体地,本发明有如下配置。给分别被设置了乐音生成应用的多个端口中的每个端口设置优先级和声音生成通道的最大数目,这些声音生成通道从音源的多个生成器中给每个端口分配任意生成器并产生声音。当对于任意的一个端口,有新的声音生成指令时,由于声音生成的增加,用于声音生成的通道可能不足。在这种情况下,与该声音生成指令相对应的生成器被分配给设置有相同优先级的应用的其它端口中当前没有产生声音的一个声音生成通道。


图1是示出根据本发明的一个实施例的乐音生成器的配置的方框图;图2是图1中的CPU的主例程的流程图;图3是图2中的开关处理的流程图;图4是图2中的音源声音生成处理的流程图;图5是图4中的单端口情况下生成器分配处理的流程图;图6是图5中的另一个生成器的搜索处理的流程图;以及图7是图4中的多端口情况下生成器分配处理的流程图。
具体实施例方式
在下文中,将参照附图更具体地描述根据本发明的乐音生成器的实施例。
图1是示出根据本发明的一个实施例的乐音生成器的配置的方框图。CPU 1通过系统总线连接到ROM 2、RAM 3、开关4、显示器5和音源6。CPU 1向这些组件发送或者从这些组件接收命令和数据,以此来控制乐音生成。例如,音源6包含MAX_GEN个生成器。响应于来自CPU 1的声音生成指令,音源6从波形ROM 7中读取波形数据然后生成乐音信号,并通过D/A转换器(DAC)8把这些信号转换成模拟音频输出信号,由此把模拟音频输出信号发送到音响系统(未显示),并在有来自CPU 1的静音指令时执行静音处理。
CPU 1具有与MAX_GEN个生成器相对应的声音生成通道。通过MAX_PORT个MIDI IN端口,经由MIDI接口(I/F)9接收到来自于诸如音乐键盘这样的外部MIDI设备的进行声音生成所要求的MIDI数据。此外,在其中设定了可用于每个端口的乐音生成应用和生成器的最大数目,即可用的声音生成通道的最大数目。
当在MAX_PORT个端口中同时生成的声音的最大数目的变量数组(variable alignment)被定义为max_poly[]时,从0到MAX_PORT-1的每个端口的变量数组可以被表示成max_poly
到max_poly[MAX_PORT-1]。以蜂窝电话为例,对于每个端口的应用的实例包括多种铃声旋律的应用(其中旋律根据发送者而改变)、多种游戏虚拟声音的应用、播放乐曲的应用、以及切换操作声音的应用。
此外,当在MAX_PORT个端口中当前正在生成声音的声音生成通道的数目的变量数组被定义为crnt_poly[]时,从0到MAX_PORT-1的每个端口的变量数组可以被表示成crnt_poly
到crnt_poly[MAX_PORT-1]。
而且,当在MAX_PORT个端口中的优先级的变量数组被定义为priority[]时,从0到MAX_PORT-1的每个端口的变量数组可以被表示成priority
到priority[MAX_PORT-1]。
接下来,图1中的乐音生成器的操作将参考图2到图7中所示的流程图在下文中加以说明。
图2是图1中的CPU的主例程的流程图。首先,CPU执行初始化处理(步骤SA1)。在该初始化处理中,每个端口中最大数目的同时生成的声音的所有变量数组max_poly
到max_poly[MAX_PORT-1]被设置成MAX_GEN;每个端口中当前正在生成声音的声音生成通道的数目的所有变量数组crnt_poly
到crnt_poly[MAX_PORT-1]被设置成0;每个端口的优先级的所有变量数组priority
到priority[MAX_PORT-1]被设置成0。
初始化处理之后,CPU重复从步骤SA2到步骤SA8的循环处理。CPU确定是否有开关输入(步骤SA2),如果有开关输入,则CPU执行开关处理(步骤SA3)。稍后将给出对开关处理更详细的描述。CPU确定显示更新是否必要(步骤SA4),如果显示更新必要的话,CPU执行显示更新处理(步骤SA5)。例如,当开关处理改变了设置时,CPU会显示发生了改变的内容。CPU确定是否有MIDI输入(步骤SA6),如果有MIDI输入,则CPU执行MIDI处理(步骤SA7)。MIDI处理包括有声音生成指令、静音指令、效果指令等。接下来,CPU执行音源声音生成处理(步骤SA8)。稍后将给出对音源声音生成处理更详细的描述。
图3是主例程的SA3步骤中的开关处理的流程图。CPU确定指定端口n的同时生成的声音的数目的设置开关是否被按下(步骤SB1),如果这个开关被按下,则CPU将同时生成的声音的数目设置为max_poly[n](步骤SB2)。然后,CPU确定指定端口n的优先级的设置开关是否被按下(步骤SB3),如果这个开关被按下,则CPU将优先级设置为priority[n](步骤SB4)。同时,对于优先级来说,所设置的数值越小,优先级越高。
以蜂窝电话为例,假定从0到3这4个端口被分别设置给铃声旋律应用(端口0)、游戏应用(端口1)、乐曲播放应用(端口2)、以及开关操作应用(端口3)。如果32、32、32、和8被设置给端口0到3作为同时生成的声音的数目,0、0、1、和2被设置成其优先级,则变量数组如下max_poly
=32max_poly[1]=32max_poly[2]=32max_poly[3]=8priority
=0priority[1]=0priority[2]=1priority[3]=2如上例所示,多个端口可能被设置了同一优先级。
图4是图2中主例程的步骤SA8中的音源声音生成处理的流程图。首先,CPU执行控制来更新分配到每个端口的通道上的当前正在生成声音的生成器的音调和音量(步骤SC1)。接着,CPU确定对于任意MIDI IN端口p,是否有新声音生成请求(步骤SC2)。如果没有新声音生成请求,则CPU返回主例程,但是如果有新声音生成请求,则CPU确定是否有其优先级与该端口的priority[p]值相同的一个端口(步骤SC3)。如果没有端口具有相同值的优先级,则CPU在单个端口的情况下执行生成器分配(步骤SC4)。相反,如果有端口具有相同值的优先级,则CPU在多个端口的情况下执行生成器分配处理(步骤SC5)。执行了上述生成器分配处理之一后,CPU确定是否有生成器被分配到相应端口的通道(步骤SC6)。如果有一个声音生成器被分配,则CPU指示音源6通过通道生成新的声音(步骤SC7)。在指示了声音生成以后,或者当生成器没有被分配到相应端口的声音生成通道时,CPU返回主例程。
图5是图4中的步骤SC4中的单端口情况下生成器分配处理的流程图。首先,CPU确定端口p的max_poly[p]和crnt_poly[p]是否相等(步骤SD1)。即,CPU确定是否已给MIDI IN端口p的所有声音生成通道分配了生成器,以及端口p是否达到了要生成的声音的最大数目。如果端口p已达到了要生成的声音的最大数目,并且没有可以分配给新生成器的空闲的声音生成通道,则CPU令生成新声音所必需的一定数目的生成器静音,其中这些生成器是被分配到MIDI IN端口p的声音生成通道的、并且当前正在生成声音的生成器,然后,CPU为要生成的新声音分配生成器(步骤SD2)。即,在任意端口已达到了要生成的声音的最大数目并且根本没有空闲的声音生成通道的情况下,还可以向该端口请求新的声音生成。在这种情况下,CPU只在该端口中调整声音生成通道,并为要生成的新声音分配生成器,而不考虑其它端口的声音生成情况。
另一方面,如果被分配到MIDI IN端口p的所有声音生成通道的生成器没有到达要生成的声音的最大数目,并且有空闲的没有分配生成器的声音生成通道,则CPU执行另一个生成器的搜索处理(步骤SD3)。即CPU搜索新的声音生成所必需的数目的通道,包括端口p的空闲的声音生成通道。
图6是另一个生成器的搜索处理的流程图。CPU确定在被请求生成新声音的端口P中当前未在生成声音的声音生成通道中,是否有必需的数目的通道(步骤SE1)。如果具备有必需数目的声音生成通道,则CPU分配生成器给那些当前未在生成声音的通道,以用于新声音生成(步骤SE2),并把生成新声音的生成器的数目添加到crnt_poly[p](步骤SE3)。然后,CPU返回主例程。
另一方面,在步骤SE1中,如果端口p中不具备必需数目的当前未在生成声音的通道,则CPU得到满足其优先级priority[n]低于端口p的priority[p]这一条件的所有端口n(步骤SE4)。如果在端口n的声音通道中没有当前正在生成声音的生成器,则CPU删除端口n(步骤SE5)。CPU得到端口i,其priority[i]在剩下的端口n中是最大的(优先级最低)(步骤SE6)。然后,CPU令端口i的当前正在生成声音的通道的必需数目的生成器静音,并且分配这些声音生成器以用于新声音生成(步骤SE7)。而后,CPU返回主例程。
现在,以蜂窝电话的上述情况为例。对于铃声旋律应用(端口0)、游戏应用(端口1)、乐曲播放应用(端口2)以及开关操作应用(端口3),端口2播放乐曲所需的要生成的声音的最大数目(通道的最大数目)是32并且其优先级是1。现在假定端口2的声音生成通道中当前正在生成声音的生成器的数目是28。当进一步发出了新声音生成请求时,没有其优先级与端口2的priority[2]=1相同的其它端口。在这种情况下,进行单端口情况下的生成分配。在这种情况下,当必需的生成器的数目是4时,只在端口2中进行新声音生成。然而,当必需的生成器的数目是8时,CPU令低优先级priority[2]=2的端口3中当前正在生成声音的4个生成器静音,并且分配这些空闲的声音生成通道用于端口2的新声音生成。
图7是图4中的多端口情况下生成器分配处理的流程图。在这种情况下的生成器分配中,CPU把具有相同优先级的端口p和端口q的要生成的声音的各自的最大数目max_poly[p]和max_poly[q]进行相加,并把和值存储为变量max_sum(步骤SF1)。随后,CPU把作为端口p和端口q中各自的当前正在生成声音的通道crnt_poly[p]和crnt_poly[q]进行相加,并把和值存储为变量crnt_sum(步骤SF2)。之后,CPU确定max_sum的值和crnt_sum的值是否相等(步骤SF3)。即,CPU确定端口p和端口q中当前正在生成声音的生成器的总数是否已达到要生成的声音的最大数目(通道的最大数目)。如果当前正在生成声音的生成器的总数达到了要生成的声音的最大数目,则CPU从已经开始算入crnt_sum的生成器中,令进行新声音生成所必需数目的生成器静音,并分配这些生成器用于新声音生成(步骤SF4)。然后,CPU返回主例程。更具体地说,如果端口p和端口q中根本没有当前未在生成声音的任何空闲的声音生成通道,则为了新声音生成,只会在端口p和端口q中进行通道的调整,而不会牺牲任何其它低优先级的端口。
另一方面,如果当前正在生成声音的生成器的总数没有达到要生成的声音的最大数目,则CPU以与单端口情况下生成器分配相同的方式,执行如图6所示的其它生成器的搜索处理(步骤SF5)。最后,CPU返回主例程。
现在,以蜂窝电话的上述情况为例。对于铃声旋律应用(端口0)、游戏应用(端口1)、乐曲播放应用(端口2)以及开关操作应用(端口3),铃声旋律所需要的端口0的要生成的声音(生成器)的最大数目是32,并且其优先级是0。现在,当端口0的声音生成通道中当前正在生成声音的生成器的数目是28,并且进一步发出新声音生成请求时,有一个优先级等于端口0的priority
=0的端口1。在这种情况下,进行多端口情况下的生成分配。在这种情况下,当必需的生成器的数目是8时,只通过端口0和端口1进行新声音生成。然而,当必需的生成器的数目是16时,CPU令低优先级priority[2]=2的端口3中当前正在生成声音的8个生成器静音,然后分配这些生成器用于端口0的新声音生成。当必需的生成器的数目是24时,CPU令低优先级priority[2]=2的端口3中当前正在生成声音的8个生成器静音。此外,CPU令低优先级priority[2]=1的端口2中当前正在生成声音的8个生成器静音,从端口3和端口2中搜索短缺的16个生成器,并分配这些声音生成器用于端口0的新声音生成。
如上所述,根据本优选实施例,CPU 1给多个端口中的每个端口设置乐音生成应用,给所设置的应用设置优先级,此外,设置从多种音源中分配任意音源给每个端口的通道的最大数目,并产生声音。如果对于任意端口有新声音生成请求,而由于声音生成的增加导致用于声音生成的通道不足,则CPU把被设置了相同优先级的应用的其它端口中当前未在生成声音的通道分配给不足的声音生成通道。
在给多个端口中的每个端口设置了应用的情况下,对于某个端口可能会有新声音生成请求。这时,即使该端口的声音生成通道不足,也可以响应该新声音生成请求,同时降低其它端口被牺牲的可能性。
在这种情况下,当对于任意端口有增加新声音生成的请求时,CPU 1把与该端口中当前未在生成声音的声音生成通道具有相同优先级的应用的其它端口中当前未在生成声音的声音生成通道加起来,并把生成器分配给不足的通道。
因此,如果对于某个端口有新声音生成请求,而该端口的声音生成通道不足,则可以从有相同优先级的端口中补足通道,并避免其它低优先级的端口被盲目牺牲。
而且,当对于任意端口有增加新声音生成的请求,并且该端口已在用最大数目的声音生成通道来生成声音时,CPU 1令该端口中的通道的要生成的声音静音,并分配这些通道给不足的通道。
因此,如果对于某个端口有新声音生成请求,而该端口中根本没有空闲的声音生成通道,不需要通过牺牲其它端口来支持该端口,CPU只在该端口内补足声音生成通道并响应该新声音生成请求。
此外,当其它分配了相同优先级的应用的端口中当前未在生成声音的声音生成通道无法补足全部那些不足的声音生成通道时,CPU 1把其应用的优先级比所述相同优先级要低的其它端口中的声音生成通道分配给那些无法被补足的声音生成通道。
因此,如果对于某个端口有新声音生成请求,以下情况的发生很少见,即,就算把该端口的空闲通道和具有相同优先级的其它端口的空闲声音生成通道加在一起,该新声音生成请求也不能被响应。此外,临时牺牲其它优先级较低的端口也没有太大问题,因此,不足的通道会由低优先级的其它端口的声音生成通道来补足。
同时,在上述实施例中,已通过用一种配置的乐音生成器为例说明了本发明,其中在该配置中,给多个端口中的每个端口设置了乐音生成应用。然而,除了这样的物理上分离的端口外,本发明也可以被应用于这样一种配置,其中,以分时的方式将一个公共端口实质上用作多个端口。
在上述实施例中,已说明了设备发明,其中,CPU 1执行预先存在ROM 2中的乐音生成处理程序。然而,本发明也可以被实现为一种通过结合通用个人计算机和音乐键盘而得到的系统。即,存储在例如软盘(FD)、CD和MD这样的记录介质中的乐音生成处理程序,或者从例如因特网这样的网络上下载的乐音生成处理程序,可以被安装到个人计算机中例如硬盘或者闪存这样的非易失性存储器中,然后个人计算机可以执行该程序。在这种情况下,可以实现程序发明以及其中记录有该程序的记录介质发明。
更明确地说,根据本发明的乐音生成处理程序是一种应用于乐音分配设备的乐音生成处理程序,其中该乐音分配设备包括多个声音生成通道,当提供了声音生成指令时,与其连接的音源所具有的多个生成器中的任一个被分配到这些声音生成通道中的每一个;以及多个输入端口,对于这些输入端口中的每一个,都设置了乐音生成应用并输入了来自外部的声音生成指令。该程序使该乐音分配设备执行优先级设置过程,用于给每个应用设置优先级;最大通道数目设置过程,用于设置可分配给每个端口的声音生成通道的最大数目;以及通道调整过程,用于当有新声音生成指令被输入到任意端口,并且在属于该任意端口的最大数目的声音生成通道中还有尚未被分配生成器的声音生成通道时,将对应于该声音生成请求的生成器分配给尚未被分配生成器的那些声音生成通道,并且当所有声音生成通道都被分配了生成器时,将对应于该声音生成请求的生成器分配给尚未被分配生成器的声音生成通道,其中这些声音生成通道属于与该任意端口具有相同优先级的应用的另一个端口。
可能会有这样的情况,当对于任意端口有新声音生成请求时,分配给该端口的最大数目的声音生成通道当前都在生成声音,而没有设置了相同优先级的应用的其它端口。在这种情况下,该通道调整过程停止该端口中已在生成声音的声音生成通道的声音生成,并把新声音的生成请求提供给其声音生成被停止的声音生成通道。
如果设置了相同优先级的应用的其它端口中的所有声音生成通道当前都正在生成声音,则该通道调整过程把新声音生成请求提供给当前未在生成声音的声音生成通道,这些声音生成通道是被分配给设置了比所述相同优先级低的优先级的应用的其它端口的通道。
如果输入到任意端口的新声音生成指令的数目超出属于该端口的最大数目的声音生成通道中尚未被分配生成器的声音生成通道的数目,则该通道调整过程将对应于该声音生成指令的生成器分配给属于该端口的且尚未被分配生成器的声音生成通道、以及属于设置了相同优先级的应用的其它端口的且尚未被分配生成器的声音生成通道。
权利要求
1.一种声音生成分配设备,包括多个声音生成通道(1),当提供了声音生成指令时,与其连接的音源所具有的多个生成器中的任一个被分配给该多个声音生成通道;多个输入端口(1),对于其中每个端口,都设置乐音生成应用并输入来自外部的声音生成指令;优先级设置模块(SB3、SB4),用于为所述每个端口设置优先级;最大通道数目设置模块(SB1、SB2),用于设置可分配给所述每个端口的声音生成通道的最大数目;以及通道调整模块(SC1到SC5、SD1到SD3、SE1到SE7、SF1到SF5),用于当向任意端口输入新声音生成指令、并且在属于该任意端口的最大数目的声音生成通道中还有尚未被分配生成器的声音生成通道时,将对应于所述声音生成指令的生成器分配给尚未被分配生成器的声音生成通道;以及当全部声音生成通道都被分配了生成器时,将对应于所述声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,这些声音生成通道属于被所述优先级设置模块设置了与该任意端口的应用具有相同优先级的应用的另一端口。
2.根据权利要求1所述的声音生成分配设备,其中,如果当有新声音生成指令输入到所述任意端口时,属于该任意端口的最大数目的声音生成通道全部被分配了生成器,并且没有任何设置了相同优先级的应用的其它端口,则所述通道调整模块(SD1到SD3)将对应于所述新声音生成指令的生成器分配给该任意端口中已经分配了生成器的声音生成通道。
3.根据权利要求1所述的声音生成分配设备,其中,如果在设置了相同优先级的应用的另一端口中全部声音生成通道都被分配了生成器,则所述通道调整模块(SE1到SE7、SF1到SF5)将对应于所述新声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,这些声音生成通道属于被所述优先级设置模块设置了比所述相同优先级低的优先级的应用的另一端口。
4.根据权利要求1所述的声音生成分配设备,其中,如果输入到任意端口的新声音生成指令的数目超出属于该任意端口的最大数目的声音生成通道中尚未被分配生成器的声音生成通道的数目,则所述通道调整模块(SF1到SF5)将对应于所述声音生成指令的生成器分配给属于该任意端口的且尚未被分配生成器的声音生成通道、以及属于具有被设置的相同优先级的应用的另一端口的且尚未被分配生成器的声音生成通道。
5.一种乐音生成器,包括音源(6),其具有用于生成乐音的多个生成器;多个声音生成通道(1),当提供了声音生成指令时,所述音源的所述多个生成器中的任一个被分配给该多个声音生成通道;多个输入端口(1),对于其中每个端口,都设置乐音生成应用并输入来自外部的声音生成指令;优先级设置模块(SB3、SB4),用于为所述每个端口设置优先级;最大通道数目设置模块(SB1、SB2),用于设置可分配给所述每个端口的声音生成通道的最大数目;以及通道调整模块(SC1到SC5、SD1到SD3、SE1到SE7、SF1到SF5),用于当向任意端口输入新声音生成指令、并且在属于该任意端口的最大数目的声音生成通道中还有尚未被分配生成器的声音生成通道时,将对应于所述声音生成指令的生成器分配给尚未被分配生成器的声音生成通道;以及当全部声音生成通道都被分配了生成器时,将对应于所述声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,这些声音生成通道属于被所述优先级设置模块设置了与该任意端口的应用具有相同优先级的应用的另一端口。
6.根据权利要求5所述的乐音生成器,其中,如果当有新声音生成指令输入到所述任意端口时,属于该任意端口的最大数目的声音生成通道全部被分配了生成器,并且没有任何设置了相同优先级的应用的其它端口,则所述通道调整模块(SD1到SD3)将对应于所述新声音生成指令的生成器分配给该任意端口中已经分配了生成器的声音生成通道。
7.根据权利要求5所述的乐音生成器,其中,如果在设置了相同优先级的应用的另一端口中全部声音生成通道都被分配了生成器,则所述通道调整模块(SE1到SE7、SF1到SF5)将对应于所述新声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,这些声音生成通道属于被所述优先级设置模块设置了比所述相同优先级低的优先级的应用的另一端口。
8.根据权利要求5所述的乐音生成器,其中,如果输入到任意端口的新声音生成指令的数目超出属于该任意端口的最大数目的声音生成通道中尚未被分配生成器的声音生成通道的数目,则所述通道调整模块(SF1到SF5)将对应于所述声音生成指令的生成器分配给属于该任意端口的且尚未被分配生成器的声音生成通道、以及属于具有被设置的相同优先级的应用的另一端口的且尚未被分配生成器的声音生成通道。
9.一种应用于乐音分配设备的乐音生成处理程序,该乐音分配设备包括多个声音生成通道(1)以及多个输入端口(1),其中当提供了声音生成指令时,与该多个声音生成通道连接的音源所具有的多个生成器中的任一个被分配给该多个声音生成通道,并且对于每个输入端口,都设置乐音生成应用并输入来自外部的声音生成指令,该程序使所述乐音分配设备执行优先级设置过程(SB3、SB4),用于为每个所设置的应用设置优先级;最大通道数目设置过程(SB1、SB2),用于设置可分配给每个端口的声音生成通道的最大数目;以及通道调整过程(SC1到SC5、SD1到SD3、SE1到SE7、SF1到SF5),用于当向任意端口输入新声音生成指令、并且在属于该任意端口的最大数目的声音生成通道中还有尚未被分配生成器的声音生成通道时,将对应于所述声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,以及当全部声音生成通道都被分配了生成器时,将对应于所述声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,这些声音生成通道属于被设置了与该任意端口的应用具有相同优先级的应用的另一端口。
10.根据权利要求9所述的乐音生成过程程序,其中,如果当有新声音生成指令输入到所述任意端口时,属于该任意端口的最大数目的声音生成通道全部被分配了生成器,并且没有任何设置了相同优先级的应用的其它端口,则所述通道调整过程(SD1到SD3)将对应于所述新声音生成指令的生成器分配给该任意端口中已经分配了生成器的声音生成通道。
11.根据权利要求9所述的乐音生成过程程序,其中,如果在设置了相同优先级的应用的另一端口中全部声音生成通道都被分配了生成器,则所述通道调整过程(SE1到SE7、SF1到SF5)将对应于所述新声音生成指令的生成器分配给尚未被分配生成器的声音生成通道,这些声音生成通道属于被设置了比所述相同优先级低的优先级的应用的另一端口。
12.根据权利要求9所述的乐音生成处理程序,其中,如果输入到任意端口的新声音生成指令的数目超出属于该任意端口的最大数目的声音生成通道中尚未被分配生成器的声音生成通道的数目,则所述通道调整过程(SF1到SF5)将对应于所述声音生成指令的生成器分配给属于该任意端口的且尚未被分配生成器的声音生成通道、以及属于具有被设置的相同优先级的应用的另一端口的且尚未被分配生成器的声音生成通道。
全文摘要
CPU(1)给多个端口中的每个端口设置乐音生成应用,给所设置的应用设置优先级,以及还设置从多种音源中给每个端口分配任意音源并产生声音的通道的最大数目。当新声音生成请求被提供给其所有声音生成通道当前都正在生成声音的某个端口时,或者当用于声音生成的声音生成通道不足时,CPU(1)把该声音生成请求提供给被设置有相同优先级的应用的其它端口中当前未在生成声音的通道。
文档编号G10H1/18GK101080764SQ20068000135
公开日2007年11月28日 申请日期2006年3月15日 优先权日2005年3月28日
发明者寺尾健 申请人:卡西欧计算机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1