乐音发生方法与设备技术

技术编号:3041368 阅读:120 留言:0更新日期:2012-04-11 18:40
对于给定的乐音发生通道,用算术方法集体地形成对应于多个取样循环的波形试样数据。一旦把性能信息如MIDI事件数据供给来自在应用程序的乐音发生器MIDI驱动器,该MIDI驱动器就根据输入MIDI信号把新的乐音发生分配给乐音发生器任务的指定乐音发生通道。该乐音发生器任务利用乐音控制参数用算术方法形成乐音波形数据并把该乐音波形数据送给数/模转换器作用的CODEC电路。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种乐音发生方法与设备,该方法和设备允许用一种具有一个计算装置的通用处理器来形成乐音。本专利技术还涉及一种乐音发生方法,该方法通过在一个可编程计算单元上,例如一个CPU或DSP(数字信号处理器)上,执行一个乐音发生程序来形成一种乐音波形。众所周知,通常的乐音发生设备包括一个MIDI(乐器数字接口);一个性能输入部分,用于从一个键盘或定序器接收性能信息;一个乐音发生器部分,用于形成一种乐音波形;和一个微处理器或中央处理单元(CPU),用于根据输入性能信息控制乐音发生器部分。CPU根据输入性能信息,进行乐音发生器驱动器处理(性能处理),例如把每个乐音分配给一个选择的通道(通道分配),和参数转换;并且把经转换的参数和一个乐音发生指令(音通信号)供给乐音发生器部分分配的通道。乐音发生器部分是由一个电子电路,例如一个LSI(大规模集成电路),来实现的,并且根据所提供的参数形成乐音波形。然而,已知的乐音发生设备是专用于乐音发生用途的,在过去,必须无条件地采用这样一种专用乐音发生设备去发生乐音。为了解决这个问题,已提出一种经改进的乐音发生设备,其中CPU执行一个专门的应用程序,以便根据该应用程序发生乐音。这种乐音发生设备能够用一个通用计算单元来实现,该单元不但可以通过执行乐音发生应用程序来完成乐音发生和其他功能,而且可以通过执行其他应用程序来完成。一种通用计算机,例如个人计算机,能够用作上述乐音发生设备的硬件,它执行一个用于乐音发生操作的乐音发生器程序。这样,可用通用计算机提供一种所谓的“软件乐音发生器”。在在一个有计算单元(CPU)的通用设备上通过执行一个应用程序来发生乐音的这种情况下,通常在每个抽样周期(即,所用D/A转换器的转换时间),为各个乐音发生通道形成乐音波形样品。这样,当CPU对每个乐音发生通道执行所需的操作时,通过CPU把例如通道最后计算中所用的各种寄存器值读入CPU寄存器中,进行某些准备操作。此外,在终止通道的乐音发生处理以后,有必要把CPU寄存器值写入一个存储器中,以供下次执行处理之用。然而,因为在每个乐音发生通道中逐个样品地进行乐音波形样品形成或计算过程,故常规的软件乐音发生器会出现一个问题,即大量CPU的计算时间花在准备操作上,而不是花在乐音发生过程(导致增加系统开销),从而不合乎需要地降低乐音发生器的计算效率和响应与乐音器形成速度。即,在每个抽样周期为各个乐音发生通道而进行乐音波形样品形成过程时,有必要让CPU使通道最后计算中所用的各种数据,从存储器回复到上述寄存器中;并且在终止波形形成计算以后,使寄存器的存储内容保存于存储器中,以供下次执行过程之用。这样,大量处理时间花在操作上,而不是花在初始波形形成计算上。此外,在CPU既进行乐音发生器处理,又进行演奏处理的已知乐音发生方法中,“演奏处理”是创立控制信息的处理,控制信息用于控制根据输入演奏信息发生的乐音;“乐音发生器处理”是根据已创立的控制信息而形成波形数据的处理。例如,CPU通常在每个抽样周期根据一个中断信号执行乐音发生器处理的同时,执行演奏处理,例如检测压下键。在乐音发生器处理中为一个样品完成波形数据形成以后,CPU回复到演奏处理。演奏信息(MIDI事件信息)是通过演奏者的演奏操作或经一个定序器的事件复制而产生的,并且所产生的演奏信息是在演奏处理时处理的。即,每当产生上述演奏信息时,CPU除了执行正常的乐音发生器处理之外,还必须执行演奏处理;这样,非周期性地产生演奏信息会导致临时增加计算量。然而,根据未安排成适当地处理上述计算量临时增加的已知乐音发生方法,不论是否已输入演奏信息,都以一种周期性的方式优先执行乐音发生器处理,从而有时明显地推迟演奏处理。通过提高演奏处理的优先权,可以避免推迟演奏处理,然而,在这样一种情况下,乐音发生器处理的操作会变成不稳定的,使同时生成乐音的数目临时减少,或使乐音波形断开。因此,本专利技术的一个目的是提供一种乐音发生方法和设备,能够减少软件乐音生成器系统中CPU的系统开销。本专利技术的另一个目的是提供一种乐音发生方法,它能够防止临时增加处理量。本专利技术又一个另外的目的提供一种乐音发生方法,它能够以稳定的方式执行波形形成计算,能够在波形再生部分要求提供波形数据时迅速地输出波形数据,还能够在一系列软件乐音发生器的操作期间提供输入波形数据,供音色控制过程之用。本专利技术之一个另外的目的是甚至在处理量由于出现演奏信息而增加时,也容许稳定的乐音发生器处理。本专利技术又一个另外的目的是把波形形成所需的算术运算量减至最少。为了达到上述目的,一种根据本专利技术第一方面的乐音发生方法,包括第一步,发布发生指令,以发生多个指定的乐音;第二步,对从多个乐音发生通道中指定的各个乐音发生通道,分配指定的乐音,并且把用于指定乐音的控制数据写入各个指定的乐音发生通道的通道寄存器中,以便在其中存储;第三步,以预定的间隔发布计算开始指令;第四步,为了响应第三叔所发布的计算开始指令,就根据第三步所发布的计算开始指令,对指定的乐音发生通道,相继地进行乐音形成计算,以便根据存储于通道的通道寄存器中的控制数据,对每个指定的乐音发生通道,用算术方法形成多个样品的波形数据;第五步,对每个样品,把由第4步为指定乐音发生通道而形成的波形数据加以混合,以便形成混合的样品数据;和第六步,把多个样品中每个样品的混合样品数据,在每个抽样周期转换成模拟信号。在乐音形成计算中,第四步根据在波形数据形成以后从通道寄存器读出控制数据和把该控制数据写入通道寄存器,对每个指定的乐音发生通道,都进行多个样品的波形数据的形成。该乐音发生方法可以还包括一个第七步骤根据第一步骤为每个指定乐音发布的发生指令,发布一个中途计算开始指令,以便根据中途计算开始指令,第四步形成多个样品的波形数据,这相当于一个从最后形成波形的一个端点到发生指令由第一步发布时的时间点的部分。根据本专利技术第一方面的乐音发生方法的另一实施例,包括第一步,把指定的乐音分配给各个从多个乐音发生通道中指定的乐音发生通道,并且把指定乐音的控制数据写入指定乐音发生通道的通道寄存器中,以在其中存储;第二步,以预定的间隔发布计算开始指令;第三步,应第二步发布的计算开始指令的要求,根据储存于通道的通道寄存器中的控制数据,对每个指定的乐音发生通道,用算术方法形成多个样品的波形数据;第四步,对多个样品中的每个样品,把由第三步为指定乐音发生通道形成的波形数据进行混合,以便对多个样品中每一个样品都形成混合样品数据;第五步,在每个抽样周期,都把多个样品的混合样品数据转换成一个模拟信号;和第六步,发布一项指令,以便利用第五步处理期间的空闲时间发生多个乐音。第三步只对发出一个乐音的通道进行波形数据的算术形成。该乐音发生方法还可以包括一个第七步骤,设置一个预定的极限周期;和一个第八步骤,确定对全部指字乐音发生通道的计算,是否会在预定的极限周期内完成。如果确定对全部指定乐音发生通道的计算不会在预定的极限周期内完成,则第八步下达指令乐音应当在任何乐音发生通道中失效或消失。根据本专利技术第一方面的乐音发生方法的又一个另外的实施例,包括第一步,发布发生指令,以便发生多个指定的乐音;第二步,把这些指定的乐音分配到各个从多个乐音发生通道中指定的乐音发生通本文档来自技高网...

【技术保护点】
一种乐音发生方法包括: 第一步,发出发生指令以发生多个指定的乐音; 第二步,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音发生通道,并且把用于指定乐音的控制数据写入各个指定的乐音发生通道的通道寄存器中以便存储在其中; 第三步,以预定的间隔发出计算开始指令。 第四步,根据所述第三步发出的计算开始指令,为根据所述第三步发出的计算开始指令指定的乐音发生通道依次进行乐音形成计算,以便根据在所述通道的所述通道寄存器中存储的控制数据为指定乐音发生通道中的每一个用算术方法形成用于多个试样的波形数据; 第五步,对诸试样的每一个,混合通过第四步为指定乐音发生通道形成的波形数据,以便形成混合的试样数据;及 第六步,在每个取样周期把用于多个试样的每一个的混合试样数据转换成模拟信号, 其中在所述乐音形成计算中,所述第四步骤,根据从所述通道寄存器一次读出的控制数据为指定乐音发生通道的每一个实现用于多个试样的波形数据的形成,并在波形数据形成之后实现把控制数据写入所述的通道寄存器中。

【技术特征摘要】
JP 1995-5-19 144159/95;JP 1996-1-17 23323/96;JP 191.一种乐音发生方法包括第一步,发出发生指令以发生多个指定的乐音;第二步,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音发生通道,并且把用于指定乐音的控制数据写入各个指定的乐音发生通道的通道寄存器中以便存储在其中;第三步,以预定的间隔发出计算开始指令。第四步,根据所述第三步发出的计算开始指令,为根据所述第三步发出的计算开始指令指定的乐音发生通道依次进行乐音形成计算,以便根据在所述通道的所述通道寄存器中存储的控制数据为指定乐音发生通道中的每一个用算术方法形成用于多个试样的波形数据;第五步,对诸试样的每一个,混合通过第四步为指定乐音发生通道形成的波形数据,以便形成混合的试样数据;及第六步,在每个取样周期把用于多个试样的每一个的混合试样数据转换成模拟信号,其中在所述乐音形成计算中,所述第四步骤,根据从所述通道寄存器一次读出的控制数据为指定乐音发生通道的每一个实现用于多个试样的波形数据的形成,并在波形数据形成之后实现把控制数据写入所述的通道寄存器中。2.根据权利要求1所述的乐音发生方法,进一步包括根据所述第一步为指定乐音的每一个发出的发生指令发出中途计算开始指令的第七步,其中根据该中途计算开始指令,所述第四步形成用于多个试样的波形数据,这些试样对应于从最后形成波形的端点至所述第一步发出发生指令的时间点的部分。3.一种乐音发生方法包括第一步,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音发生通道,并把用于指定乐音的控制数据写入指定乐音发生通道的通道寄存器中以便存储在其中;第二步,以预定间隔发出计算开始指令;第三步,根据所述第二步发出的计算开始指令,依据在所述通道的所述通道寄存器中存储的控制数据为指定的乐音发生通道的每一个用算术方法形成用于多个试样的波形数据;第四步,对多个试样的每一个,混合由所述第三步为指定的乐音发生通道形成的波形数据,以便形成用于多个试样的每一个的混合波形数据;第五步,在每个取样周期把用于多个试样的混合试样数据转换为模拟信号;及第六步,在所述第五步的处理期间利用空闲时间发出发生多个乐音的指令,其中所述第三步进行仅用于发出乐音的通道的波形数据的算术形成。4.根据权利要求3所述的乐音产生方法,它进一步包括第七步,设定预定的期限;和第八步,确定用于所有指定乐音发生通道的计算是否能在预定期限的完成,并且,如果确定了用于所有指定乐音发生通道的计算不能在预定期限内完成,则发出在乐音发生通道的任一个中都应该消音的指令。5.一种乐音发生方法包括第一步,发出发生指令以发生多个指定的乐音;第二步,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音产生通道,并把用于指定通道的控制数据写入各个指定乐音发生通道的通道寄存器中以便存储在其中;第三步,根据在指定乐音发生通道中要发生的乐音的各自重要性,确定用于指定乐音发生通道的计算处理次序;第四步,以预定间隔发出计算开始指令;第五步,响应所述第四步发出的计算开始指令,依据在指定乐音发生通道的通道寄存器中存储的控制数据用算术方法形成用于多个试样的波形数据;第六步,对于多个试样的每一个,混合为诸通道形成的波形数据,以便形成用于多个试样的混合试样数据;及第七步,在每个取样周期把用于多个试样的混合试样数据转换成模拟信号,其中,所述第五步根据所述第三步确定的计算处理次序为形成用于指定乐音发生通道的波形数据进行计算,并且当很可能在预定期限内完不成所述第五步为形成波形数据进行的计算且打断所述第七步转换的模拟信号时,用来形成波形数据的计算在其以计算处理次序在诸通道的一个上正在进行的时刻中止,以便防止打断模拟信号。6.一种用来在计算单元上实现的乐音发生方法,包括一个提供步骤,提供性能信息;一个主步骤,用算术方法形成波形数据;一个中断步骤,当所述提供步骤提供性能信息时,暂时地中断所述主步骤以便进行用来接收提供的性能信息的预定输入操作,并且输入操作一完成,就在所述主步骤中断的点处恢复所述主步骤;及一个乐音发生步骤,根据所述主步骤形成的波形数据,在晚于通过所述中断步骤用算术方法形成波形数据的时刻发生对应的乐音,其中,所述主步骤包括一个性能信息处理步骤以便根据已经经历输入操作的性能信息产生乐音控制数据,和一个乐音发生器处理步骤以便根据乐音控制数据用算术方法形成波形数据。7.一种用来在计算单元上实现的乐音发生方法,包括一个系统步骤,执行一个预定的操作系统;一个波形形成步骤,根据来自在预定操作系统上执行的应用程序的指令,在每个预定周期用算术方法形成用于预定数量试样的波形数据;一个输出步骤,在每个取样循环,输出由所述波形形成步骤用算术方法形成的波形数据的一个试样;及一个控制步骤,根据所述输出步骤的请求,在所述预定周期内在所述系统步骤与波形形成步骤之间进行任务切换。8.一种用来在计算单元上实现的乐音发生方法,包括一个输入步骤,输入性能信息;一个波形形成步骤,根据在预定周期内输入的性能信息,用算术方法形成对应于预定周期的波形数据;一个输出步骤,在每个取样循环,输出对应于预定周期的波形数据的一个试样;一个波形数据发送步骤,为所述输出步骤提供由所述波形形成步骤形成的对应于预定周期的波形数据;及一个请求步骤,探测什么时候已经进行了所述输出步骤的波形数据输出,以便请求从所述波形数据发送步骤再提供波形数据,其中,根据所述请求步骤的请求执行所述波形数据发送步骤并且在所述发送步骤之后执行所述波形形成步骤。9.一种用来在计算单元上实现的乐音发生方法,包括一个输入步骤,输入性能信息;一个波形形成步骤,根据在预定周期内输入的性能信息,用算术方法形成对应于该预定周期的波形数据;一个波形合成步骤,输入对应于预定周期的外部波形数据,并且把外部波形数据与所述波形形成步骤用算术方法形成的波形数据相合成以便形成用于预定周期的合成波形数据;一个波形处理步骤,把信号处理施于用于预定周期的合成波形数据;及一个输出步骤,在每个取样循环,输出合成波形数据的一个试样。10.一种用来在计算单元上实现乐音发生的方法,包括一个输入步骤,输入性能信息;一个波形形成步骤,根据所述输入步骤输入的性能信息,在多个阶段进行计算以便用算术方法形成波形数据;一个输入外部波形数据的步骤;及一个把输入的外部波形数据插入计算阶段的一个中的步骤。11.一种乐音发生设备,包括一个存储器,用来存储乐音发生器处理程序和性能处理程序;供给装置,用来供给性能信息;一个寄存器,用来存储控制信息;计算装置,用来执行乐音发生器处理程序和性能处理程序,所述计算装置通常根据控制信息执行乐音发生器处理程序以形成波形数据,其中当所述-给装置供给性能信息时,所述计算装置暂时中断乐音发生器处理程序的执行,以便执行性能处理程序由此产生对应于供给的性能信息的控制信息并把产生的控制信息存储在所述寄存器中,并且,一完成性能处理程序,就在乐音发生器处理程序中断的点处恢复乐音发生器处理程序;及乐音输出装置,用来根据乐音发生器处理程序形成的波形数据,在计时晚于由所述计算装置形成波形数据时产生对应的乐音。12.一种用来在计算单元上实现的乐音发生方法,包括一个供给步骤,供给性能信息;一个形成步骤,用算术方法形成波形数据;一个中断步骤,当所述供给步骤供给性能信息时,暂时中断所述形成步骤以便执行性能信息的处理,然后,一完成性能信息的处理,就在中断所述形成步骤的点处恢复所述形成步骤;及一个乐音发生步骤,根据所述形成步骤形成的波形数据,在计时晚于由所述形成步骤形成波形数据时发生对应的乐音,其中,所述形成步骤根据所述中断步骤处理的性能信息用算术方法形成波形数据。13.一种用来在计算单元上实现的乐音发生方法,包括一个系统步骤,执行预定的操作系统;一个波形形成步骤,根据来自在预定操作系统上执行的应用程序的指令,在每个预定周期用算术方法形成用于预定数量的试样的波形数据;一个输出步骤,在每个取样循环,输出上述波形形成步骤用算术方法形成的波形数据的一个试样;及控制步骤,根据所述输出步骤的请求,在所述预定周期内在所述系统步骤与所述波形形成步骤之间进行任务切换,其中,所述波形形成步骤以间断的方式进行乐音参数计算操作。14.一种用来在计算单元上实现的乐音发生方法,包括一个输入步骤,输入性能信息;一个波形形成步骤,根据在预定周期内输入的性能信息,用算术方法形成对应于该预定周期的波形数据;一个输出步骤,在每个取样循环,输出对应于该预定周期的波形数据的一个试样;一个波形数据发送步骤,把所述波形形成步骤形成的对应于该预定周期的波形数据供给所述输出步骤;及一个请求步骤,探测什么时候已经进行了所述输出步骤的波形数据输出,以便请求另一次从所述波形数据发送步骤供给波形数据,其中,所述波形数据形成步骤以间断方式进行乐音参数计算操作,根据所述请求步骤的请求执行所述波形数据供给步骤并在所述发送步骤之后执行所述波形形成步骤。15.一种用来在计算单元上执行的音乐发生方法,包括一个输入步骤,输入性能信息;一个波形形成步骤,根据在预定周期内输入的性能信息,用算术方法形成对应于该预定周期的波形数据;一个波形合成步骤,输入对应于预定周期的外部波形数据,并把外部波形数据与所述波形形成步骤用算术方法形成的波形数据相结合,以便形成用于该预定周期的合成波形数据;一个波形处理步骤,把信号处理施于用于预定周期的合成波形数据;及一个输出步骤,在每个取样循环,输出合成波形数据的一个试样,其中,所述波形形成步骤以间断方式进行乐音参数计算操作。16.一种乐音发生设备包括第一装置,发出发生指令以发生多个指定的乐音;第二装置,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音发生通道,并且把用于指定乐音的控制数据写入各个指定的乐音发生通道的通道寄存器中以便存储在其中;第三装置,以预定的间隔发出计算开始指令。第四装置,根据所述第三装置发生的计算开始指令,为根据所述第三装置发出的计算开始指令指定的乐音发生通道依次进行乐音形成计算,以便根据在所述通道的所述通道寄存器中存储的控制数据为提定乐音发生通道中的每一个用算术方法形成用于多个试样的波形数据;第五装置,对诸试样的每一个,混合通过第四装置为指定乐音发生通道形成的波形数据,以便形成混合的试样数据;及第六装置在每个取样周期把用于多个试样的每一个的混合试样数据转换成模拟信号,其中,在所述乐音形成计算中,所述第四装置根据从所述通道寄存器一次读出的控制数据为指定乐音发生通道的每一个实现用于多个试样的波形数据的形成,并在波形数据形成之后实现把控制数据写入所述的通道寄存器中。17.根据权利要求1所述的乐音发生方法,进一步包括根据所述第一装置为指定乐音的每一个发出的发生指令发出中途计算开始指令的第七装置,其中根据该中途计算开始指令,所述第四装置形成用于多个试样的波形数据,这些试样对应于从最后形成波形的端点至所述第一装置发出发生指令的时间点的部分。18.一种乐音发生装置包括第一装置,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音发生通道,并把用于指定乐音的控制数据写入指定乐音发生通道的通道寄存器中以便存储在其中;第二装置,以预定间隔发出计算开始指令;第三装置,根据所述第二装置发出的计算开始指令,依据在所述通道的所述通道寄存器中存储的控制数据为指定的乐音发生通道的每一个用算术方法形成用于多个试样的波形数据;第四装置,对多个试样的每一个,混合由所述第三装置为指定的乐音发生通道形成的波形数据,以便形成用于多个试样的每一个的混合波形数据;第五装置,在每个取样周期把用于多个试样的混合试样数据转换为模拟信号;第六装置,在所述第五装置的处理期间利用空闲时间发出发生多个乐音的指令,其中所述第三装置进行仅用于发出乐音的通道的波形数据的算术形成。19.根据权利要求3所述的乐音产生装置,它进一步包括第七装置,设定预定的期限;和第八装置,确定用于所有指定乐音发生通道的计算是否能在预定期限的完成,并且,如果确定了用于所有指定乐音发生通道的计算不能在预定期限内完成,则发出在乐音发生通道的任一个中都应该消音的指令。20.一种乐音发生设备包括第一装置,发出发生指令以发生多个指定的乐音;第二装置,把指定的乐音分配给从多个乐音发生通道中指定的各个乐音产生通道,并把用于指定通道的控制数据写入各个指定乐音发生通道的通道寄存器中以便存储在其中;第三装置,根据在指定乐音发出通道中要发生的乐音的各自重要性,确定用于指定乐音发生通道的计算处理次序;第四装置,以预定间隔发出计算开始指令;第五装置,应所述第四装置发出的计算开始指令的要求,依据在指定乐音发生通道的通道寄存器中存储的控制数据用算术方法形成用于多个试样的波形数据;第六装置,对于多个试样的每一个,混合为诸通道形成的波形数据,以便形成用于多个试样的混合试样数据;及第七装置,在每个取样周期把用于多个试样的混合试样数据转换成模拟信号,其中,所述第五装置根据所述第三装置确定的计算处理次序为形成用于指定乐音发生通道的波形数据进行计算,并且当很可能在预定期限内完不成所述第五装置为形成波形数据进行的计算且打断所述第七装置转换的模拟信号时,用来形成波形数据的计算在其以计算处理次序在诸通道的一个上正在进行的时刻中止,以便防止打断模拟信号。21.一种用来在计算单元上实现的乐音发生设...

【专利技术属性】
技术研发人员:田邑元一
申请(专利权)人:雅马哈株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1