CN102237126B - 乐音产生设备 - Google Patents
乐音产生设备 Download PDFInfo
- Publication number
- CN102237126B CN102237126B CN201110076001.0A CN201110076001A CN102237126B CN 102237126 B CN102237126 B CN 102237126B CN 201110076001 A CN201110076001 A CN 201110076001A CN 102237126 B CN102237126 B CN 102237126B
- Authority
- CN
- China
- Prior art keywords
- page
- passage
- waveform
- address
- musical sound
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
- G10H7/04—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories in which amplitudes are read at varying rates, e.g. according to pitch
- G10H7/045—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories in which amplitudes are read at varying rates, e.g. according to pitch using an auxiliary register or set of registers, e.g. a shift-register, in which the amplitudes are transferred before being read
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/031—Use of cache memory for electrophonic musical instrument processes, e.g. for improving processing capabilities or solving interfacing problems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
本发明提供了一种乐音产生设备。存储在NAND型闪速存储器之类的外部存储器中的波形数据经由缓冲器从该外部存储器传输到内部波形存储器,并从该波形存储器中被读出以再现乐音。每当从波形存储器读出(再现)的数据前进一页,就产生传输指令,并将该传输指令登记到传输队列中。因此,响应于该队列中的传输指令,存储在外部存储器中的波形数据被逐页读出并被存储到存储器中。外部存储器按页将存储波形数据存储在其中,每页附有纠错码。当一页的波形数据从外部存储器传输到波形存储器时,使用纠错码来检测错误,并且如果错误是可校正的,则校正该错误。如果错误是不可校正的,则迅速衰减正产生的乐音的音量,或者发出警告。
Description
技术领域
本发明一般地涉及一种基于波形存储器方案的乐音产生设备(即,基于波形存储器的乐音产生设备),更具体地涉及一种在外部存储介质(比如NAND型闪速存储器)中预存储波形数据并在将波形数据从外部存储介质经由缓冲器读出到波形存储器的同时对波形数据进行再现的乐音产生设备。
背景技术
迄今为止已知的是例如在日本专利第2671747号和第4089687号(专利文献1和2)中公开的乐音产生设备,其将波形数据预存储在硬盘(HD)中,并且在将波形数据从硬盘读出到缓冲器并随后从缓冲器读出到波形存储器中的同时对波形数据进行再现。在这样的乐音产生设备中,由于预存储在硬盘中的波形数据是通过响应于乐音产生指令经由缓冲器读出到波形存储器而被再现的,所以乐音产生的实际开始会被不希望地延迟;因此采取了这样的布置,在对乐音产生设备上电时将波形数据的前导部分预读取到波形存储器中。随后,响应于乐音产生指令,乐音产生设备立即开始从波形存储器对波形数据的前导部分进行再现,并在前导部分的再现期间将波形数据的后续部分从硬盘经由缓冲器读出到波形存储器中。在完成前导部分的再现时,乐音产生设备对已经读出到波形存储器的波形数据的后续部分进行再现,而在该再现期间,该设备读出波形数据的下一后续部分。通过重复上述操作,乐音产生设备连续进行再现。通过上述方式,乐音产生设备可以在接收到乐音产生指令时没有延迟地开始产生乐音。
利用上述基于波形存储器的方案,每当读入缓冲器的一簇波形数据(样本数据)被从缓冲器读出到波形存储器中时(即,缓冲器空了),就向CPU发出一个传输请求中断。响应于该传输请求中断,CPU指定接下来将要读出的存储在硬盘中的另一簇波形数据,并命令传输部件将这个簇从硬盘传输到缓冲器。因此,中断CPU的操作是个重要的操作。
另外,在这些传统已知的基于波形存储器的乐音产生器之中采用突发传输是在日本专利第3163984号(专利文献3)中公开的技术。专利文献3中公开的技术布置成将从波形存储器中读出的波形样本暂时存储在缓冲存储器中,并随后通过有选择地从缓冲存储器读出必要的波形样本来产生乐音。从波形存储器到缓冲存储器的这种波形样本的读出是通过一次发送多个样本的突发传输来执行的。这样的突发传输可以实现访问时间的减少。
近年来,已经开发出容量大、成本低的NAND型闪速存储器,并且已经做出各种尝试来将NAND型闪速存储器与硬盘一起用作各种设备中的大容量存储装置。尽管NAND型闪速存储器需要较长时间以对页(对应于硬盘的一个簇)进行即时访问(instant access),但它在即时访问开始之后可以实现快速的数据传输速度。另外,基于纠错码的纠错是至关重要的。
然而,虽然期望使乐音产生设备中能够同时产生或再现乐音的通道数量最大化,但使用硬盘的乐音产生设备会出现对硬盘的访问速度成为瓶颈的不便之处,从而限制了能够同时再现的通道数量。一种可以想到的使得能够同时再现乐音的通道数量最大化的方式是采用NAND型闪速存储器替代硬盘。由于NAND型闪速存储器可以实现比硬盘明显更快的数据传输速度,因此可以例如以因子10或更小的因子来大大减小作为最小读出单位的每个簇(页)的尺寸。但是,在这种情况下,将传输请求中断发出到CPU的频率也将会以因子10或更大的因子而显著增大。即,在使用NAND型闪速存储器作为用于存储要在乐音产生器中使用的波形数据的存储器的情况中,需要CPU对乐音产生器进行控制的频率将会增大,从而出现了CPU的负担增大到相当大的程度的问题。因此,期望的是,应当由在使用NAND型闪速存储器的乐音产生器中所提供的乐音产生器专用硬件电路装置来执行迄今为止由CPU在使用硬盘的乐音产生设备中按照处理程序所执行的控制。
此外,从NAND型闪速存储器读出的数据比从其它类型的存储器读出的数据更容易含有错误,因此,当在NAND型闪速存储器中存储数据时,将数据连同按每页附到该数据的纠错码一并存储是至关重要的。硬盘也会出现类似的数据错误问题,但在传统已知的使用硬盘的乐音产生设备中,将数据校正作为硬件装置内的处理器的固件处理而自动执行已经成为惯例。结果,从将地址提供给介入的处理器的时刻到能够得到数据的时刻会发生所不期望的时间延迟。因此,在使用NAND型闪速存储器的乐音产生设备中,为了实现访问速度的增大,所期望的是在NAND型闪速存储器的LSI与乐音产生设备的LSI之间没有处理器介入。但是,在这样的情况下,NAND型闪速存储器其本身不能执行数据校正。
目前可以在市场上得到在NAND型闪速存储器中存储波形数据的乐音产生器(乐音产生设备),并且这些乐音产生器每个都以如下方式来构造:在由乐音产生器产生乐音之前,CPU从NAND型闪速存储器读出所有必需的波形数据,校正所读出的波形数据中的错误,并随后将纠错后的波形数据存储到由RAM实现的波形存储器中。然而,在此情况下,由于RAM所实现的波形存储器的尺寸的缘故,波形数据在尺寸上受到限制。
发明内容
考虑到上述问题,本发明一个目的是提供一种改进的乐音产生设备,其将波形数据预存储在比如NAND型闪速存储器之类的外部存储介质中,并在经由缓冲器将波形数据读出到波形存储器的同时对波形数据进行再现,该乐音产生设备可以减小CPU的负担,并且可以通过使用乐音产生部件内的硬件而不使用比如NAND型闪速存储器之类的外部存储介质内的CPU或处理器来对从该外部存储介质所读出的数据执行检错和纠错。
本发明的另一个目的是提供一种改进的乐音产生设备,其将波形数据预存储在比如NAND型闪速存储器之类的外部存储介质中,并在经由缓冲器将波形数据读出到波形存储器的同时对波形数据进行再现,该乐音产生设备可以显著减小CPU的负担。
本发明的又一个目的是提供一种技术,其可以通过使用乐音产生部件内的硬件而不使用比如NAND型闪速存储器之类的外部存储介质等内的CPU或处理器等来对从该外部存储介质所读出的数据执行检错和纠错,并且可以用新的页来替代发生错误的出错页。
为了实现上述目的,本发明提供了一种改进的乐音产生设备,其包括:外部存储器,其具有多个页,每个页由页地址指定并且在其中存储数据和针对该数据的纠错码,所述外部存储器将多个波形存储为数据,每个波形由一系列波形样本构成并且在所述外部存储器中将每个波形分成多个波形样本;乐音产生部件,其能够同时产生多个通道的音乐乐音;以及控制部件,其根据演奏信息控制所述乐音产生部件中的乐音产生。所述乐音产生部件包括:波形存储器,其具有针对多个波形提供的多个前导波形存储区以及针对多个通道提供的多个缓冲区,一个针对波形的前导波形存储区存储该波形的前导页的波形样本,而一个针对通道的缓冲区临时存储用于该通道的音乐乐音的乐音产生的波形样本;控制寄存器部件,其具有针对多个通道提供的多个通道区,每个针对通道的通道区存储由所述控制部件设置的、用于控制该通道的音乐乐音的乐音产生的参数,通道的参数包括:用于控制音乐乐音的音高的速率参数、对在所述波形存储器中的前导波形区域进行指定的前导波形地址、对在所述外部存储器中的波形的位置进行指示的波形位置信息、以及用于控制音乐乐音的幅度包络的幅度控制信息;读出部件,其响应于针对每个通道的激活指令,以对应于该通道的速率参数的速率来首先从所述波形存储器中的由该通道的前导波形地址所指定的前导波形存储区读出前导页的波形样本,并且随后在所述波形存储器中从对应于该通道的缓冲区以相同的速率重复地读出波形样本,所述读出部件能够在所述波形存储器中同时针对多个通道以分时多路复用的方式读出波形样本;下一地址产生部件,其针对每个通道基于该通道的波形位置信息来产生对下一个要从所述外部存储器读出的一页波形样本进行指定的下一页地址信息,并且将所产生的该通道的下一页地址信息设置到下一页地址存储部件中;传输指令产生部件,其针对每个通道在每当由所述读出部件针对该通道所执行的波形样本读出前进了一页时产生传输指令;传输队列,其响应于任何通道的激活指令和传输指令,将该通道的通道号入队(enqueue)到其中;传输部件,其基于先进先出方式从所述传输队列取出通道的通道号,随后以突发方式从所述外部存储器读出由设置在下一页地址存储部件中的该通道的下一页地址信息所指定的页的波形样本,并且随后将读出的波形样本写入与该通道相对应的缓冲区中;纠错部件,其使用通过所述传输部件从所述外部存储器针对通道读出的页的纠错码对该页的波形样本执行检错,并且如果检测到错误并且该错误是可校正的,则所述纠错部件执行该波形样本的错误的校正;衰减部件,当由所述纠错部件在针对通道的波形样本上检测到错误并且该错误是不可校正的时,该衰减部件迅速衰减正在由所述乐音产生部件产生的该通道的音乐乐音;以及幅度控制部件,其针对每个通道按照该通道的幅度控制信息来控制由所述读出部件所读出的波形样本的幅度包络,从而产生该通道的音乐乐音。当所述控制部件接收到用于新开始一个音高的音乐乐音的演奏信息时,所述控制部件将多个通道中的一个通道分配给要新产生的音乐乐音,将对应于所述音高的速率参数、前导波形地址、波形位置信息和幅度控制信息设置到所述控制寄存器部件的针对该一个通道的通道区中,并且进一步发出针对该通道的激活指令。
根据本发明的乐音产生设备,响应于从传输队列给出的指令来自动执行传输部件的逐页传输,而无需向控制部件(CPU)发出中断。因此,可以减小控制部件的负担或负载。另外,因为在本发明的乐音产生设备中自动执行根据纠错码对波形数据进行的读出检错,并且在检出的错误可校正的情况下自动执行纠错,所以本发明的乐音产生设备即使在发生了这样的错误时也能够继续产生乐音。一旦发生不可校正的错误,在所考虑的通道中正在产生的乐音信号被自动地消音或静音。通过这种方式,控制部件无需执行关于外部存储器的各种处理,从而可以显著减小控制部件的负担,使得控制部件能够以更好的响应来执行控制。
在本发明的一个实施例中,当通过纠错部件已经检测出任何错误时,衰减部件向控制部件发送错误通知,该错误通知包括对外部存储器中的发生了该错误的页进行识别的信息和指示该错误是否能够被适时地校正的信息。如果错误通知指示检测到的错误是可校正的错误,则控制部件将对发生了该错误的页进行识别的信息记录为替代等待页。如果错误通知指示检测的错误是不可校正的错误,则控制部件发出指示不可能正常产生乐音的警告。因此,当发生了可校正错误时,控制部件对发生了该错误的页(即出错页)进行记录,随后在适当的后续定时处替换该出错页。在这种情况下,在错误发生时没有立即向用户发送错误通知,以便不打扰用户执行演奏。另外,因为替换了出错页,所以可以降低发生不可校正错误的可能性或概率。另一方面,如果数据错误是不可校正的,则立即向用户发出警告以告知不可能正常产生乐音(即不能演奏)。另外,当发生了传输错误时,控制部件可以立即警告不可能正常产生乐音。此外,控制部件可以将“总带宽”降低预定的量(或数量)以减小发生错误的可能性。
根据本发明的另一方面,提供了一种乐音产生设备,其包括:外部存储器,其具有在虚拟地址空间中连续布置的多个页并且存储多个波形,每个波形由一系列波形样本构成并且将每个波形分成多个页的波形样本,所述外部存储器的多个页中的每一个由虚拟页地址所指定并且存储一页波形样本;乐音产生部件,其能够同时产生多个通道的音乐乐音;以及控制部件,其根据演奏信息控制所述乐音产生部件中的乐音产生。所述乐音产生部件包括:波形存储器,其具有针对多个波形提供的多个前导波形存储区以及针对多个通道提供的多个缓冲区,一个针对波形的前导波形存储区存储该波形的前导页的波形样本,而一个针对通道的缓冲区临时存储用于该通道的音乐乐音的乐音产生的波形样本;地址转换表,其被提供用于将识别虚拟地址空间中的页的虚拟页地址转换成真实页地址;控制寄存器部件,其具有针对多个通道提供的多个通道区,每个针对通道的通道区存储由所述控制部件设置的、用于控制该通道的音乐乐音的乐音产生的参数,通道的参数包括:用于控制音乐乐音的音高的速率参数、对在所述波形存储器中的前导波形区域进行指定的前导波形地址、对在所述外部存储器中的波形的位置进行指示的波形位置信息、以及用于控制音乐乐音的幅度包络的幅度控制信息;读出部件,其响应于针对每个通道的激活指令,以对应于该通道的速率参数的速率来首先从所述波形存储器中的由该通道的前导波形地址所指定的前导波形存储区读出前导页的波形样本,并且随后在所述波形存储器中从对应于该通道的缓冲区以相同的速率重复地读出波形样本,所述读出部件能够在所述波形存储器中同时针对多个通道以分时多路复用的方式读出波形样本;下一地址产生部件,其针对每个通道基于该通道的波形位置信息来产生对下一个要在所述外部存储器的虚拟地址空间中读出的一页波形样本进行指定的虚拟页地址,参考地址转换表来将虚拟页地址转换成真实页地址,并且随后将转换后的真实页地址设置到下一页地址存储部件中;传输指令产生部件,其针对每个通道在每当由所述读出部件针对该通道所执行的波形样本读出前进了一页时产生传输指令;传输队列,其响应于任何通道的激活指令和传输指令,将该通道的通道号入队到其中;传输部件,其基于先进先出方式从所述传输队列取出通道的通道号,随后以突发方式从所述外部存储器读出由设置在下一页地址存储部件中的该通道的下一页地址信息所指定的页的波形样本,并且随后将读出的波形样本写入与该通道相对应的缓冲区中;以及幅度控制部件,其针对每个通道按照该通道的幅度控制信息来控制由所述读出部件所读出的波形样本的幅度包络,从而产生该通道的音乐乐音。当所述控制部件接收到用于新开始一个音高的音乐乐音的演奏信息时,所述控制部件将多个通道中的一个通道分配给要新产生的音乐乐音,将对应于所述音高的速率参数、前导波形地址、波形位置信息和幅度控制信息设置到所述控制寄存器部件的针对该一个通道的通道区中,并且进一步发出针对该通道的激活指令。根据本发明,下一地址设置部件参考地址转换表来将下一个要被读出的页的虚拟页地址转换成真实页地址,从而获取下一页地址,并且,响应于传输队列的指令,传输部件使用下一页地址从外部存储器读出一页,随后将所读出的页传输到波形存储器。因此,由硬件自动执行传输部件的逐页传输,而无需对控制部件(CPU)发出中断。因此,可以减小控制部件的负担。作为本发明的一个实施例,地址转换表可以原始地存储在外部存储器中,并且,在乐音产生设备启动(上电)之时,可以从外部存储器读出地址转换表并且将其存储到内部的地址转换表存储部件中。
作为本发明的一个实施例,该乐音产生设备还可以包括:纠错部件,其使用通过所述传输部件从所述外部存储器读出的页的纠错码对该页的波形样本执行检错,并且如果检测到错误并且该错误是可校正的,则所述纠错部件执行该波形样本的错误的校正;衰减部件,当由所述纠错部件在针对通道的波形样本上检测到错误并且该错误是可校正的时,该衰减部件向所述控制部件发送错误通知,该错误通知包括对已经检测到可校正错误进行指示并且对在所述外部存储器中发生了该错误的页进行识别的信息。在这种情况下,控制部件将对发生了可校正错误的页进行识别的信息记录为替代等待页。如果存在当前被记录为替代等待页的任何页,所述控制部件通过自动开始的后台处理或者通过响应于用户指令而开始的处理来保证在所述外部存储器中的替代页,读出被记录为替代页的页的波形样本,如果在被记录为替代页的页的波形样本读出中发生了错误,则执行纠错以得到适当的波形样本,并且随后将适当的波形样本存储到替代页中,从而以替代页代替发生了错误的页。当替代等待页的虚拟页地址要被转换成真实页地址时,所述控制部件以能够获取替代页的真实页地址的方式来修改所述地址转换表。通过提供衰减部件和纠错部件,在本发明的乐音产生设备中自动执行对波形数据的读出错误检测,并且在检测出的错误可校正的情况下自动执行纠错,因此,本发明的乐音产生设备即使在发生了这样的错误时也能够继续产生乐音。控制部件记录发生了错误的页(即出错页),并随后在适当的后续定时处替换该出错页。在这种情况下,可以容易地完成以替代页来代替出错页,这是因为地址转换表定义了虚拟页和真实页之间的对应关系。
根据本发明的又一方面,提供了一种乐音产生设备,其包括:外部存储器,其具有在虚拟地址空间中连续布置的多个页并且存储多个波形,每个波形由一系列波形样本构成并且将每个波形分成多个页的波形样本,所述外部存储器的多个页中的每一个由虚拟页地址所指定并且存储一页波形样本和下一个要读出的下一页的真实页地址;乐音产生部件,其能够同时产生多个通道的音乐乐音;以及控制部件,其根据演奏信息控制所述乐音产生部件中的乐音产生。所述乐音产生部件包括:波形存储器,其具有针对多个波形提供的多个前导波形存储区以及针对多个通道提供的多个缓冲区,一个针对波形的前导波形存储区存储该波形的前导页的波形样本,而一个针对通道的缓冲区临时存储用于该通道的音乐乐音的乐音产生的波形样本;控制寄存器部件,其具有针对多个通道提供的多个通道区,每个针对通道的通道区存储由所述控制部件设置的、用于控制该通道的音乐乐音的乐音产生的参数,通道的参数包括:用于控制音乐乐音的音高的速率参数、对在所述波形存储器中的前导波形区域进行指定的前导波形地址、以及用于控制音乐乐音的幅度包络的幅度控制信息;读出部件,其响应于针对每个通道的激活指令,以对应于该通道的速率参数的速率来首先从所述波形存储器的由前导波形地址所指定的前导波形存储区读出前导页的波形样本,并且随后从所述波形存储器的对应于该通道的缓冲区以相同的速率重复地读出波形样本;传输指令产生部件,其针对每个通道在每当由所述读出部件针对该通道所执行的波形样本读出前进了一页时产生传输指令;传输队列,其响应于任何通道的激活指令和传输指令,将该通道的通道号入队到其中;下一页地址存储部件,其针对每个通道在其中存储下一个要从所述外部存储器读出的页的真实页地址;第一下一页地址设置部件,其在每个通道中开始产生乐音之时,将要被首先读出的页的真实页地址写入所述下一页地址存储部件中;传输部件,其基于先进先出方式从所述传输队列取出通道的通道号,随后从所述外部存储器读出设置在所述下一页地址存储部件中的在该通道中下一个要被读出的真实页地址的页的波形样本,并且随后将读出的波形样本写入所述波形存储器的与该通道号指示的通道相对应的缓冲器中;第二下一页地址设置部件,其针对每个通道并且在下一页的波形样本已经被所述传输部件从所述外部存储器读出时,将所读出的页中包括的下一页的真实页地址覆写到所述下一页地址存储部件中;以及幅度控制部件,其针对每个通道按照幅度控制信息来控制由所述读出部件所读出的波形样本的幅度包络,从而产生该通道的音乐乐音。当所述控制部件接收到用于新开始一个音高的音乐乐音的演奏信息时,所述控制部件将多个通道中的一个通道分配给要新产生的音乐乐音,将对应于所述乐音音高的速率参数、前导波形地址和幅度控制信息设置到所述控制寄存器部件的针对该一个通道的通道区中,并且进一步发出针对该通道的激活指令。根据本发明,外部存储器具有在虚拟地址空间中连续布置的多个页,并且每个页存储多个波形和真实页地址的数据,真实页地址即指向下一个要读出的页(即下一页)的指针。因此,通过跟随该指针就可以获取下一个要读出的页的真实页地址。因此,响应于传输队列的指令,传输部件使用下一页地址从外部存储器中读出一页,随后将所读出的页传输到波形存储器。因此,由硬件自动执行传输部件的逐页传输,而无需向控制部件(CPU)发出中断,从而可以显著减小控制部件的负担。
根据本发明的一个实施例,该乐音产生设备还包括:纠错部件,其使用通过所述传输部件从所述外部存储器针对通道读出的页的纠错码对该页的波形样本执行检错,并且如果检测到错误并且该错误是可校正的,则所述纠错部件执行该波形样本的错误的校正;衰减部件,当由所述纠错部件在针对通道的波形样本上检测到错误并且该错误是可校正的时,该衰减部件向所述控制部件发送错误通知,该错误通知包括对已经检测到可校正错误进行指示并且对在所述外部存储器中发生了该错误的页进行识别的信息。在这种情况下,控制部件将对发生了可校正错误的页进行识别的信息记录为替代等待页。如果存在当前被记录为替代等待页的任何页,所述控制部件通过自动开始的后台处理或者通过响应于用户指令而开始的处理来保证在所述外部存储器中的替代页,读出被记录为替代页的页的波形样本,如果在被记录为替代页的页的波形样本读出中发生了错误,则执行纠错以得到适当的波形样本,并且随后将适当的波形样本存储到替代页中,从而以替代页代替发生了错误的页。控制部件将替代等待页之前的一页中所包括的下一页的真实页地址修改成替代等待页的真实页地址。通过提供衰减部件和纠错部件,在本发明的乐音产生设备中自动执行对波形样本的读出错误检测,并且在检测出的错误可校正的情况下自动执行纠错,因此,本发明的乐音产生设备即使在发生了这样的错误时也能够继续产生乐音。控制部件记录发生了错误的页,并随后在适当的后续定时处替换该出错页。因为相邻的页被指向下一页的指针链接起来,所以可以容易地通过对该出错页之前的页中所包括的指针进行覆写完成以替代页来代替出错页。
下面将描述本发明的实施例,但应当理解,本发明不限于所描述的实施例,可以在不脱离基本原理的情况下做出本发明的各种改型。因此,本发明的范围仅由所附权利要求确定。
附图说明
为了更好地理解本发明的目的和其它特征,下面将参照附图更加详细地描述优选实施例,其中:
图1是示出本发明的乐音信号产生设备(系统)的一个实施例的示例一般布置的框图;
图2A至图2E是示出该实施例中采用的NAND型闪速存储器的存储分配图的示图;
图3A和图3B是示意性示出在该实施例中采用的波形存储器的存储分配图的示图;
图4是说明在该实施例中执行的波形数据传输的定时的时序图;
图5是示出在该实施例中采用的乐音产生器和传输控制部件的细节的框图;
图6是示出跟在乐音产生开始之后的(针对一个通道的)各个地址随时间的变化的示图;
图7A和图7B是在该实施例中执行的主处理和音符打开(Note-On)事件处理的流程图;
图8A和图8B是在VP地址产生部件和在B→M传输部件中执行的处理的流程图;以及
图9A和图9B是在登记了“替代等待页”的情况下执行的处理的流程图。
具体实施方式
图1是示出本发明的乐音信号产生设备(系统)的一个实施例的示例一般布置的框图。通过将预定的外围设备(比如存储器)连接到乐器或者乐音产生器LSI(大规模集成电路)100来构造乐音产生设备。
CPU 101是用于控制乐音产生设备整体操作的处理装置。存储器I/F(接口)102是用于将NOR型闪速存储器121连接到乐器LSI 100的接口。NOR型闪速存储器121是已经在其中存储了各种数据(比如由CPU 101执行的程序和音色数据)的可重写非易失性存储器。随机存取存储器(RAM)103是用作由CPU 101使用的各种工作区的易失性存储器。显示器I/F 104、并行I/F 105和串行I/F 106是用于连接显示装置122、控制单元123和MIDI I/O 124的接口。显示装置122显示各种信息,控制单元123包括在外部面板等上提供的诸如各种开关之类的控制器。MIDI I/O 124是用于从/向各种MIDI设备输入/输出MIDI信号的接口。
存储器接口(I/F)107是用于对提供为外部存储器的NAND型闪速存储器125进行访问的接口。NAND型闪速存储器125是其中预存储了多种类型的波形数据等的可重写非易失性存储器,并且基于逐页的方式来执行从/向NAND型闪速存储器125读取/写入的数据。即,NAND型闪速存储器(外部存储器)125具有多个页并且在其中存储针对每页的数据。存储在存储器125中的针对每页的数据包括多个波形,每个波形由一系列波形样本构成并且在存储器125中将每个波形分成多个波形样本。存储器125中的每个页由页地址指定以便用于逐页的读取和写入。每个页包括2112个字节。可以通过突发传输以极高的速度来执行这种逐页的数据读出。后面将参照图2详细描述NAND型闪速存储器125的示例存储分配图。传输缓冲器109是用于将波形数据从NAND型闪速存储器125传输到波形存储器126的缓冲存储器,并且通过能够同时在其上读取和写入数据的双端口半导体存储器来实现传输缓冲器109。更具体地,传输缓冲器109具有静态RAM(SRAM)的形式,其具有一页的容量(即2112字节)。波形存储器126具有同步动态RAM(SDRAM)的形式,将参照图3详细描述它的示例存储分配图。存储器I/F 112是用于访问波形存储器126的接口。注意,传输缓冲器109和波形存储器126与闪速存储器125相比能够以极高的速度进行随机访问(即,响应于对各个地址的指定来读取和写入)。另外,本实施例可以使用突发方式以增大的速度来执行对连续地址的访问。
F至B传输部件108执行用于基于逐页的方式将页数据从NAND型闪速存储器125传输到传输缓冲器109的操作。B至M传输缓冲器110执行用于将一页的波形数据以分成三部分的方式从传输缓冲器109传输到波形存储器126的操作。纠错部件111对从闪速存储器125读出的数据执行诸如检错、校正之类的操作。F至B传输部件108、B至M传输缓冲器110和纠错部件111在传输控制部件113的控制下操作。后面将参照图4等详细描述传输操作的定时。传输控制部件113控制从闪速存储器125至传输缓冲器109的传输以及从传输缓冲器109至波形存储器126的传输。当已经发生了多个传输请求时,传输控制部件113控制所请求的传输,使得基于先来先得的方式进行逐页传输,这是因为一次仅能传输一页。注意,目前商业可用的NAND型闪速存储器每个的数据宽度都限制为八位。因此,F至B传输部件108连接在一起从而将从NAND型闪速存储器125的两个连续地址读出的两组8位数据转换成16位数据,并随后将该16位数据写入具有16位数据宽度的传输缓冲器109中。另外,波形存储器126也具有16位的数据宽度,从而16位的数据存储在波形存储器126的每个地址中。因此,B至M传输缓冲器110不必执行如F至B传输部件108所执行的数据转换。
乐音产生器114具有在多个(本情况中为128个)乐音产生通道(下文也简称为“通道”)的每一个中产生波形的功能。对于每个乐音产生通道,乐音产生器114产生读取地址,从波形存储器126读出波形数据(波形样本数据),对读出的波形数据赋予包络,并从而产生针对该通道的乐音信号。此外,乐音产生器114将这样产生的多个乐音产生通道的乐音信号混合在一起,并对得到的混合乐音信号赋予音效(比如混响)。从乐音产生器114输出的乐音信号经由数模转换器(DAC周期)127被转换成模拟音频信号,并经由声音系统128而可听地产生或发声。参考数字115代表将各种部件相互连接的控制总线、数据总线和地址总线的组合;即,下文将把这些控制总线、数据总线和地址总线统称为“总线115”。
下面参照图2描述NAND型闪速存储器125的存储分配图。如所公知,NAND型闪速存储器特征在于,尽管它对期望页进行即时访问是费时的(术语“即时访问”在本文中用来指从对闪速存储器给出一个读取指令和读取地址的时刻到开始数据读出的时刻的时间段,或者在这样一个时间段中执行的操作),但它比掩膜ROM成本低并且能够在数据读出开始之后以高速实现数据传输(突发传输)。对NAND型闪速存储器125的数据读出和写入是基于逐页方式执行的。
对于构成一页数据的2112字节(即页数据),将2048字节用作一个数据区,将64字节用作附加信息区。附加信息包括纠错码。在将2048字节的数据写入数据区中时,基于写入的数据通过预定算术运算来产生纠错码,并将纠错码写入附加信息区。在读出页数据时,可以通过写入附加信息区中的纠错码来检查或确定从数据区读出的2048字节的数据是否存在任何错误。如果读出的2048字节的数据存在任何错误(并且如果出错的位的数目小于预定的值),则可以执行纠错处理。注意,可以使用基于任一个传统已知的方案(比如汉明码方案和BCH码方案)的生成算术表达式来产生纠错码。一般而言,对于每个生成算术表达式,预先确定用于计算错误发生的状态(即,该错误包括多少位,以及该错误是否可校正)的检错算术表达式,和在该错误可校正时用于计算要校正的位的位置的纠错算术表达式。对于每个算术表达式,预先确定在写入数据区的α字节数据中能够由β位的纠错码校正直到多少位的错误。
图2A示意性示出在本实施例中用作外部存储介质的NAND型闪速存储器125的总体存储分配图。闪速存储器125包括可以通过真实页地址访问的多个真实页,并在这些页中存储数据。在闪速存储器125中预存储了地址转换表(A CON.TBL)201和多串波形数据202。这里假设地址转换表201和波形数据202分开地预存储在页中。
以将真实页地址和虚拟页地址按照一对一关系彼此对应的方式,在闪速存储器125中设置波形数据202的虚拟地址空间和真实地址空间,如图2B和2E所示。假设真实地址空间和虚拟地址空间的每一个都是可以通过每个具有20(二十)位的页地址来进行访问的范围。
图2B示出在波形数据的虚拟地址空间中的数据格式。在用于波形数据202的存储区中存储了多个波形数据组Wave1、Wave2、...。在每个波形数据组中,如在关于波形数据组Wave2的示图中代表性地示出的那样,与连续的虚拟页地址(即在虚拟地址空间中连续布置的地址)相关联地存储了多个页W2(0)+Inf、W2(1)+Inf、...。在波形数据组x(x=1,2,...)的连续虚拟页地址处存储的各个页的数据区或者在数据区中存储的波形样本数据(每个包括1024个字)由Wx(0)、Wx(1)、...表示。因为每页的数据(即每一页数据)包括了数据区的波形样本数据与附于其上的附加信息(64字节)的组合,所以每页的数据由该数据区的参考标记“Wx”和“+Inf”的组合来表示。如上所述,附加信息包括纠错码。每个波形数据组Wavex被分开地存储在虚拟地址空间中连续布置的多个页中。因此,例如当要读出波形数据组Wave2时,仅需要给出前导页“W2(0)+inf”的虚拟页地址P,这是因为在跟随前导页W2(0)+inf之后的各个其它页W2(1)+inf、W2(2)+inf、...可以通过它们各自的虚拟页地址P+1、P+2、...来被读出。尽管图2B示出的好象波形数据组Wave1、Wave2、...之间没有空白页,但在波形数据组Wave1、Wave2、...之间也可以存在空白页。所必要的仅仅是对应于一种类型的波形的一串波形数据(或波形数据集)应连续地存储在虚拟地址空间中。在图2B中,“WA”表示控制寄存器之一,被提供用于在其中设置波形数据集的第二虚拟页“Wx(1)+Inf”的虚拟页地址,如下文详细所述。
前面已经描述了可以采用虚拟页地址来读出每个页。然而,实际上,必须将每个给出的虚拟页地址转换成真实页地址,使得可以采用转换后的真实页地址从闪速存储器125读出对应页。在本实施例的乐器LSI 100中,可以将两种不同的模式(即模式1和模式2)中的任一模式指定为用于在虚拟页地址与真实页地址之间转换的方案。
首先在下文中说明模式1。模式1采用“块”的方案或概念,其中将16(十六)个连续的页设置成一个块,如图2C所示。在模式1中,图2A所示的用于波形数据集202的存储区被分成多个块,并基于逐块的方式来使用,在每个块中,以升序的真实页地址来连续地存储波形数据。例如,当要将一个波形数据组Wave2存储到闪速存储器125中时,在闪速存储器125中确保具有用于存储该波形数据组Wave2所必需的特定数量的块,以使得前导页W2(0)+inf一直到页W2(15)+inf被顺次地存储到第一块中,并且页W2(16)+inf一直到页W2(31)+inf被顺次地存储到下一块中,等等。假设不同的波形数据组(例如Wave1和Wave2)被存储到不同的块中。注意,通过每16(十六)页进行“边界对齐”来将这些块彼此对准。
图2D示出在模式1中采用的用于将虚拟页地址转换成真实页地址的具体方案。现在假设给出了20位的虚拟页地址(或页号)221。虚拟页地址221的高16位指示用于识别特定块的虚拟块号,而虚拟页地址221的低4位是对块中的16个页之一进行识别的数据。由虚拟页地址221的高16位所指示的虚拟块号被转换成真实页地址223的高16位。虚拟页地址221的低4位被直接设置为真实页地址223的低4位。采用以前述方式获得的真实页地址223来访问闪速存储器125,从而从闪速存储器125读出虚拟页地址221的页数据。
在系统启动之时,从闪速存储器125的区201读出地址转换表222并将其设置到波形存储器126中以备后续使用。区201在图2A中仅显示为“A CON.TBL(地址转换表)”;然而,实际上,通过对区201的多个页的数据区中所存储的数据进行组合,可以得到含义更丰富的地址转换表。当将波形数据存储到闪速存储器125中时,所有虚拟块号与真实块号之间的对应关系被预先登记在构成区201的多个页的数据区中。预先确定区201的多个页的真实页地址。注意,在图2B中所示的附加信息Inf中所包含的“指向下一页的指针NP”是用在模式2中而非模式1中所需的数据。
在模式2中,当要将波形数据组存储到闪速存储器125中时,将三个字节的“指向下一页的指针NP”设置到每个页的附加信息Inf中,如图2B所示。在指向下一页的指针NP中预先设置了以波形数据的前进次序(progression order)看时的下一页(即,其中存储了跟在所考虑的页之后的波形样本的页)的真实页地址。图2E示出在模式2中在数据组Wave2的真实页地址处存储的页的示例数据格式。如果仅给出了前导虚拟页W2(0)+Inf的真实页地址,则可以通过参考该页数据中包含的“指向下一页的指针NP”来访问下一个虚拟页W2(1)+Inf。然后,可以按照上述方式来跟踪其它页,从而可以顺次地读出波形数据。
对于模式1和模式2的每一个,如下面将描述的那样,在系统启动之时将所有波形数据组Wave1、Wave2、...的前导页Wx(0)预设置到波形存储器126中。因此,在模式2中,可以以第二虚拟页Wx(1)+Inf的虚拟页地址WA为开始,使用每个指向下一页的指针NP来跟踪页。使用已经被读出到波形存储器126的地址转换表来执行从首次给出的虚拟页地址WA到真实页地址的转换。反过来说,在地址转换表中,必须彼此相互关联地预存储的仅仅是各个波形数据组Wave1、Wave2、...的第二虚拟页地址和从第二虚拟页地址转换得到的真实页地址。上文涉及图2D描述的在模式1中的地址转换表是这样的表:一旦给出一个16位虚拟块号作为地址,则输出存储在那个地址中的16位的真实块号。另一方面,在模式2中,地址转换表是这样的表:一旦给出了波形数据组Wave1、Wave2、...的20位的第二虚拟页地址,则从存储在地址转换表中的多个第二虚拟页地址之中查找与给出的第二虚拟页地址相匹配的第二虚拟页地址,并且,如果成功地找到了这样匹配的第二虚拟页地址,则输出与该第二虚拟页地址关联的20位的第二真实页地址。在图2A的区201中,在将波形数据预存储到闪速存储器125中时,预先登记所有第二虚拟页地址与真实页地址之间的对应关系。
对于模式1和模式2的每一个,任一个波形都被存储在连续布置于虚拟页地址空间的多个页(即,存储在连续的虚拟页地址)中,因此,不必对应读出的每个页都进行指定;即,仅需在波形数据读出开始时指定波形数据集的第一虚拟页地址。假设将NAND型闪速存储器125构造成以8位宽度作为读取或写入单元来读取或写入数据。
图3A和3B示意性地示出波形存储器126的存储分配图。波形存储器126包括地址转换表区301、预加载区(前导波形存储区)302、缓冲器区303和下一页地址(NPA)区304。地址转换表区301是用于在其中设置从图2A的闪速存储器125的预定区201所读出的地址转换表的区。预加载区302是用于将存储于NAND型闪速存储器125中的波形数据组Wave1、Wave2、Wave3的各个前导页的波形数据W1(0)、W2(0)、W3(0)存储到其中的区。各个前导页的波形数据是在系统启动之时被存储到预加载区302中的。缓冲器区303对于每个乐音产生通道都包括两个缓冲区域;即,缓冲区域的总数目等于乐音产生通道的数目×2。在缓冲器区303中的每个缓冲区域具有一页等于1024个字的容量或尺寸。以Bia和Bib来表示对应于乐音产生通道i(i=1,2,...,128)的缓冲区域。将缓冲区域Bia和Bib连续地布置在波形存储器126的地址空间之内。
这里,术语“页”和“页数据”在与闪速存储器125和传输缓冲器109相关地使用时,以指称包括附加信息Inf在内的2112字节的一个页和在该页中包含的数据,但是在与波形存储器126相关地使用时,则指称不包括附加信息Inf在内的1024个字的数据区和在该数据区中包含的波形数据。简而言之,与闪速存储器125和传输缓冲器109相关地使用的术语“页”着重于考虑要被读出或写入的一个数据单元,而当数据从闪速存储器125中被读出,经过纠错并随后设置到波形存储器126中时,术语“页”则被认为是1024个字的波形样本数据。
在系统启动之时,由传输控制部件113主要通过初始设置处理来执行将地址转换表设置到波形存储器126的地址转换表区301中的设置以及将波形数据组的各个前导页Wx(0)设置到预加载区302中的设置。为了促进对预加载区302的初始设置处理,可以将波形数据组的各个前导页Wx(0)一起存储在闪速存储器125的预定的连续真实页地址区域中。
在图3A中,参考字符“PA”表示用于对预加载区302中所包含的前导页的读取地址进行设置的寄存器,该地址是在乐音产生器114从波形存储器126读出波形样本时首先要读出的。图3A示出了这样一种情况:其中已经命令了对第二通道中的波形数据组Wave3进行再现,并且其中已经由寄存器PA指定了波形存储器126中的前导页的波形数据W3(0)。箭头311指示乐音产生器114读出前导页的波形样本所采用的读取地址前进方向(音高计数器,pitch counter)。此外,“BA”表示这样的寄存器:其用于设置对当完成从预加载区302读出前导页之后应从缓冲器区303的哪一个缓冲器读出波形样本进行指示的读取地址。因为在所述示例中已经命令了在第二通道中的波形数据再现,所以将由第二通道使用的缓冲器B2a或B2b的前导地址设置到寄存器BA中。箭头312指示读取地址的前进方向(音高计数器)。在已经如箭头312所示读取了缓冲器B2a和B2b的波形样本之后,读出操作返回到缓冲器B2a和B2b的前端,以便如箭头313和314所示持续读出波形样本。为了执行这样的波形存储器的读取,通过交替使用缓冲器B2a和B2b来持续再现波形样本,以使得当正在从预加载区302读出波形数据组Wave3的同时将接下来要读出的波形样本数据存入缓冲器B2a,在当正从缓冲器B2a读出波形样本数据的同时将波形样本数据存入缓冲器B2b,随后当正在从缓冲器B2b读出波形样本数据的同时将波形样本数据存入缓冲器B2a,等等。注意,作为替代,可以每通道提供三个缓冲器而不是两个缓冲器。同样,假设将波形存储器126构造成以16位宽度作为读取或写入单元来读取和写入。
下一页地址(NPA)区304是用于在其中存储每个乐音产生通道的下一页地址的区。图3B示出了NPA区304的示例存储分配图。NPAi指示第i个通道的下一页地址。更具体地,下一页地址NPAi是要从闪速存储器125读出到波形存储器126的闪速存储器125的页的真实页地址。下面将详细描述下一页地址NPAi的设置定时和设置数据。
图4是说明由传输部件108和110在传输控制部件113的控制下执行的波形数据传输的定时的时序图,其中箭头t为时间流逝方向。多个垂直线401每一个指示采样时钟产生定时,并且每对相邻垂直线401之间的时间部分表示一个采样周期(以下称为“一个DAC周期”)。在本实施例中,一个DAC周期是22.67纳秒。图4中的“NAND型闪速存储器至传输缓冲器”表示由F至B传输部件108执行的用于将一页波形样本(即一页数据)和附加信息传输到传输缓冲器109的处理的时序图。图4中的“传输缓冲器至波形存储器”表示由B至M传输部件110执行的用于将一页波形样本(即一页数据)从传输缓冲器109传输到波形存储器126的缓冲区303(即对应于所考虑的通道的缓冲器)的处理、以及由乐音产生器114执行的用于从波形存储器126读出波形样本的处理的时序图。
图4中的参考数字411表示对页进行即时访问的时间部分(或周期),其从开始将真实页地址供给NAND型闪速存储器125的时刻直到在闪速存储器125中完成了对由该真实页地址所表示或指定的页的输出数据所进行的准备的时刻。在完成了对由411所表示的页的即时访问之后,读出(突发传输)该页的数据(2048字节的数据区和附加信息Inf)。在本实施例中,在四个DAC周期中可以将一页的数据和附加信息Inf从NAND型闪速存储器125读出并写入到传输缓冲器109,如411至413所示。四个DAC周期的传输时间是基于NAND型闪速存储器125关于页读出(突发传输)的规格而确定的。
图4中的参考数字421表示当乐音产生器114从波形存储器126读出128个通道的波形样本以用于乐音产生时的波形样本读出时间部分(或周期)。422表示当将传输缓冲器109的数据区的一页波形样本(即一页数据)传输到波形存储器126的相应通道缓冲器时的突发传输时间部分。该传输是从乐器LSI 100的内部寄存器到DRAM的数据传输,并且以高速在突发模式下执行。423表示当更新波形存储器126时的更新时间部分。更新时间部分423具有由波形存储器126的规格所确定的时间长度。将更新的时间部分423排除在外之后的一个DAC周期的时间部分由波形样本读出时间部分421和突发传输时间部分422分享。
在一个DAC周期中的波形样本读出时间部分421的时间长度由设计人员基于要求的规格来确定,所述要求的规格关于在乐音产生设备的实施例中要执行多少通道的乐音产生并且关于在每个通道中要执行多少个点之间的插值,并且所述时间长度还由设计人员基于这样的规格来确定:关于在一个DAC周期中在分时基础上,乐音产生器114可以从波形存储器126以何种时间分辨率以及每个通道多少个波形样本进行读出。一个DAC周期中的突发传输时间部分422的时间长度由设计人员基于如下规格来确定:关于在该时间部分中应当传输多少个波形样本的所要求的规格,以及关于从传输缓冲器109至波形存储器126的突发传输的速度的规格。传输缓冲器109是能够在其上同时执行读取和写入的存储器,并且具有一页波形样本数据加上附加信息的容量或尺寸。因此,基本上,从闪速存储器125读出到传输缓冲器109的一页(2048个字节)波形样本必须以和从闪速存储器125读出到传输缓冲器109的页数量相同的DAC周期来从传输缓冲器109传输到波形存储器126。因此,在一个突发传输时间部分422中,必须传输给定数量的样本,通过将一页的样本数量除以DAC周期的数量来计算该给定数量(将小数点后的数截去而得到的数)。在本实施例中,其中需要四个DAC周期来从闪速存储器125的一页数据区将一页的数据(2048个字节=1024个样本)读出到传输缓冲器109,将读出到传输缓冲器109的一页波形样本传输到波形存储器126也要在四个DAC周期中执行。因此,在一个突发传输时间部分422中传输了256个样本,其为一页数据的四分之一。
这里假设在每个通道中执行两点插值,并且在总共128个通道中执行乐音产生,以及波形样本读出时间部分421具有允许这种在128个通道中产生乐音所必需的时间长度。而且,假设采用的硬件能够在时间部分422(即,一个DAC周期将波形样本读出时间部分421和更新时间部分423从中排除之后的剩余部分)中突发传输256个样本(字)。
下面描述由纠错部件111执行的纠错处理。如上所述,由F至B传输部件108在时间部分412和413中执行从闪速存储器125至传输缓冲器109的数据传输。在这样的数据传输中,纠错部件111分析所传输的数据并执行纠错处理。431表示执行纠错算术处理时的时间部分。纠错处理通过对所传输的数据执行预定算术运算来计算纠错码,将计算出的纠错码与附加信息Inf中记录的纠错码比较,从而检测错误,确定检出的错误是否可校正,以及,如果该错误是可校正的,则所述纠错处理对已经检出错误的位的位置进行识别。因为检错操作可以在紧随时间部分412中的从闪速存储器125至传输缓冲器129的数据传输开始之后立即顺序执行,所以在紧随时间部分412中的数据传输开始之后立即开始纠错算术处理431。随着数据传输412的进行,纠错部件111在纠错算术处理时间部分431中通过执行检错操作来计算纠错码。在完成传输413时,纠错部件111基于计算出的纠错码和记录在附加信息Inf中的纠错码来执行预定的错误确定算术运算,以确定是否存在错误,如果存在任何错误,则确定该错误是否可校正,并且如果该错误是可校正的,则最终确定要校正的错误的位置。同时,不管是否存在错误,B至M传输部件110都在四个传输时间部分422中将传输缓冲器109的1024个样本写入到波形存储器126中。如果已经检出错误,并且基于纠错算术处理431的结果已经获取到要校正的错误的位置,则纠错部件111在时间部分425中对波形存储器126的相应波形数据执行纠错。这里,纠错的对象在模式1的情况下是数据区的2048个字节的数据,在模式2的情况下是数据区的2048个字节的数据和下一页的指针NP。即,在模式2的情况下,假设每页都存储了针对该数据区和下一页的指针NP的纠错码。
在比开始从NAND型闪速存储器125到传输缓冲器109的传输晚两个DAC周期的DAC周期中,开始从传输缓冲器109至波形存储器126的突发传输。两个DAC周期的延迟的原因是,使得能够通过422所表示的突发传输按照每个时间部分256个样本分成四个不同时间部分来传输由412所表示的2048个字节的一页数据(等于1024个样本);即,以这样的方式来使用两个DAC周期的延迟:对于四个突发传输422的每一个而言,在开始256个样本数据的突发传输之前,能够完整地将要进行突发传输的256个样本数据从NAND型闪速存储器125传输到传输缓冲器109。因此,传输缓冲器109不必一定是上述的双端口型,而可以是使用两个RAM的在读操作和写操作之间交替切换的类型。不过,在本实施例中,传输缓冲器109是由双端口RAM实现的,以便以安全可靠的方式来执行读操作和写操作。
图5是示出乐音产生器114和传输控制部件113的细节的框图,其中由普通箭头表示地址的输入和输出,而由实心黑色三角形头的箭头表示除地址以外的其它数据的输入和输出。
乐音产生器114包括模式寄存器501,用于在其中设置指定模式1或模式2的模式信息M,模式1或模式2定义了用于将虚拟页地址转换成真实页地址的方案。由设计人员预先确定当前乐器LSI 100应当操作在模式1和模式2的哪一个之下。另外,以对应于该模式的数据格式在闪速存储器125中预存储地址转换表和波形数据。在系统启动之时将模式信息设置到模式寄存器501中。
乐音产生器114包括控制寄存器(乐音产生器寄存器)部件502,用于在其中存储各个通道的参数和音符打开事件数据NON。例如,在经由MIDI I/O 124接收到乐音产生指令时,CPU 101分配乐音产生通道中的一个来产生乐音,根据演奏信息将参数设置到控制寄存器部件502中,并将音符打开事件数据写入控制寄存器部件502中。因此,乐音产生器114在所分配的乐音产生通道中开始产生乐音。乐音产生指令对应于针对所分配的通道的激活指令。下面将描述控制寄存器部件502中包括的各种寄存器。
(1)WA:这是用于在其中设置如前文参照图2B所述的在NAND型闪速存储器125中的、针对所分配的通道要从NAND型闪速存储器125读出的波形数据组Wavex的第二页Wx(1)+Inf的虚拟页地址的寄存器。
(2)PA:这是用于在其中设置如前文参照图3A所述的波形存储器126的预加载区302中的、针对所分配的通道要从预加载区302读出的波形数据组Wavex的前导页Wx(0)的地址的寄存器。在系统启动之时,所有波形数据组Wavex的前导页W1(0)、W2(0)...都从闪速存储器125中被存储到波形存储器126的预加载区302中。
(3)BA:这是用于在其中设置如前文参照图3A所述的波形存储器126的缓冲区303中的、与所分配的通道对应的那对缓冲器Bna和Bnb的地址的寄存器。
(4)F:这是用于在其中设置F数字的寄存器。F数字是具有整数部分和小数部分的参数,其用于对要读出的波形数据的音高进行改变(或控制),并且按照要产生的音乐乐音的音高来确定F数字的值。更具体地说,如果不需要改变波形数据的音高,则将F数字设置成值“1”,如果要升高波形数据的音高(升调),则将其设置为大于“1”的值,以及如果要降低波形数据的音高(降调),则将其设置为小于“1”的值。F数字是与要产生的乐音的音高相对应的频率数或速率信息。
(5)IL、HT、1DR、1DL、2DR、2DL和RR:这些是用于在其中设置意在控制音乐乐音幅度包络的参数的寄存器。IL表示初始水平,HT表示保持时间。这些参数表示在从乐音产生开始起的保持时间HT期间,初始水平IL应当以作为幅度包络波形的固定方式持续地输出。在NAND型闪速存储器125中准备的每个波形数据集是这样的数据集:如果按照原始采样波形中存在的音量变化本身的样子来使用它,那么对于其起音(attack)部分,该数据集可以实现更真实的乐音。因此,对于与起音部分对应的保持时间HT的时间部分,初始水平IL被设置为包络波形。1DR表示第一衰减率,1DL表示第一衰减水平。这些参数意在输出一个在保持时间HT过去之后以第一衰减率1DR所表示的变化率达到第一衰减水平1DL的目标值的包络波形。类似地,2DR表示第二衰减率,2DL表示第二衰减水平。这些参数意在输出一个在第一衰减之后以第二衰减率2DR所表示的变化率达到第二衰减水平2DL的目标值的包络波形。在第二衰减之后发生音符关闭(Note-Off)事件时,音量水平以释放率RR所表示的变化率逐渐地降低。一旦乐音音量水平低于预定水平,该乐音就静下来或消失。
(6)NON:这是用于在其中设置命令开始产生音乐乐音的音符打开事件数据的寄存器。
一旦CPU 101将上述参数(包括音符打开事件)设置到对应于给定通道的控制寄存器部件502中,乐音产生器114就在该通道中开始乐音产生处理。注意,在图5的乐音产生器114的块内示出的各种参数是在特定时间点处被处理的通道的参数。即,这些参数的值随着要处理的通道的改变而改变。
下面描述在各个块或部件(比如乐音产生器114)中对一个通道执行的处理。每个DAC周期(采样周期)在分时基础上对所有128个通道都执行类似的处理,因此并行地产生多个乐音。即,以分时多路复用的方式同时执行对波形存储器126中的针对多个通道的波形样本读出。
将音符打开事件NON和F数字输入到音高计数器504。响应于音符打开事件,音高计数器504被预设为零,并随后在每个DAC周期(采样周期)累计F数字。将所得到的累计值从音高计数器504输出为整数部分和小数部分的组合。对累计值的排除了其低十位的整数部分(下文称为“整数部分的高位”)进行表示的数据被输入VP(即虚拟页)地址产生部件505和PB地址产生部件506。累计值的整数部分的低十位(下文称为“整数部分的低十位”)被输入到读出部件507。累计值的小数部分被输入到插值部件508。在预定的定时处,音高计数器504向VP地址部件505和传输队列521输出传输指令信号。下面将参照图6详细描述上述整数部分和小数部分、传输指令定时等随时间的变化。音高计数器504在音符关闭事件之后继续F数字的累计,但是一旦所考虑的通道的乐音产生处理终止,就不再继续F数字的累计。
PB地址产生部件506输入了上面在与控制寄存器部件502有关的(2)和(3)中说明的地址PA(也称为“PA地址”)和地址BA(也称为“BA地址”),地址PA是在波形存储器126的预加载区302中的在紧随乐音产生开始之后要立即读出的前导页的地址(见图3A),地址BA是在上文涉及图3A而说明的在波形存储器126中存储的与所考虑的通道对应的缓冲器地址。随后,PB地址产生部件506将PB地址输出到读出部件507。PB地址是用于对波形存储器126的要被读出的区的头部进行指定的高位地址;然而,实际上,因为PB地址仅仅是高位地址部分,所以将通过对PB地址的较低端设置十个位的0(零)而得到的地址作为用于对波形存储器126的要被读出的区的头部进行指定的绝对地址。更具体地,PB地址产生部件506输出PA地址作为紧随乐音产生开始之后的PB地址;输出BA地址作为在完成了对由PA地址所指定的波形存储器126的预加载区302的前导页的波形样本数据所进行的读取之时的PB地址;以及输出BA+1作为在完成了对波形存储器126的缓冲区303的、对应于所考虑的通道并且由BA地址所指定的那个缓冲器Bia(“i”是通道号)的波形样本数据所进行的读取之时的PB地址(BA+1表示缓冲器Bib,这是因为BA地址是如上所述排除了其低十位的高位地址部分)。另外,在完成了对波形存储器126的缓冲区303的、对应于所考虑的通道并且由BA+1地址所指定的的缓冲器Bib的波形样本数据所进行的读取之时,PB地址产生部件506再次输出BA地址作为PB地址,并且此后交替地输出BA地址和BA+1地址作为PB地址,以使得交替地读取缓冲器Bia和缓冲器Bib。通过将从音高计数器504输出的整数部分的低十位加到这样的PB地址的较低端,产生了读取地址(即绝对地址)。读出部件507使用如此产生的读取地址经由存储器I/F 112来从波形存储器126读出所考虑的通道的波形样本数据。这里假设一次读出两个波形样本,即由读取地址指定的波形样本和接下来的波形样本。注意,波形存储器126具有长度为一个字的单位数据,并且在波形存储器126的每个地址处存储波形数据的一个样本。
在每个DAC周期,插值部件508按照从音高计数器504输出的小数部分地址在读出的两个样本之间执行两点插值,从而计算一个插值样本。对于已经终止了乐音产生处理的每个通道,输出插值样本“0”。
幅度包络产生器(EG)503基于所考虑的通道的包络波形产生参数来产生幅度包络(AE)波形,并将如此产生的幅度包络(AE)波形输出到音量控制部件509。在每个DAC周期,音量控制部件509基于AE波形的值来控制插值样本的幅度,并输出幅度受控的样本作为所考虑的通道的乐音样本。在每个DAC周期,累计部件510累计各个通道的乐音样本以输出所有通道的混合的乐音样本。注意,可以将乐音样本赋予音效(比如混响)之后再输出。
从音高计数器504输出的整数部分的高位被输入VP(虚拟页)地址产生部件505和PB地址产生部件506。对VP地址产生部件505输入的是在NAND型闪速存储器125中的、正从NAND型闪速存储器125读出的针对所考虑的通道的波形数据的第二虚拟页地址WA(见图2B)。VP地址产生部件505基于输入数据产生VP地址。VP地址是对下一个将要从NAND型闪速存储器125读出的针对所考虑的通道的波形数据的页进行指定的虚拟页地址。因为在乐音产生器114紧随音符打开事件之后正从波形存储器126的预加载区302的、由PA地址所指定的页中读出波形样本的同时而从闪速存储器125被读出的页是闪速存储器125的由虚拟页地址WA所指定的页,所以在该时间点的VP地址是虚拟页地址WA。另外,如上文关于图2所说明的,因为波形数据被存储在虚拟地址空间中连续布置的页中,所以下面将参照图6详细描述此后VP地址如WA+1、WA+2、WA+3...的变化。
此外,在模式1的情况下,每当输入传输指令,VP地址产生部件505就经由存储器I/F 112访问波形存储器126的地址转换表区301,以得到对应于当前VP地址的真实页地址,并随后将如此得到的真实页地址写入在波形存储器126中针对所考虑的通道而提供的下一页地址区域NPAi中。因此,在模式1中,VP地址产生部件505起到“下一页地址产生部件”的作用。在模式2的情况下,VP地址产生部件505响应于第一次给出的VP地址(其值等于所存储的与第一次给出的传输指令相对应的控制寄存器WA的值),如在模式1中一样访问地址转换表区301,以得到对应于该VP地址的真实页地址,随后将如此得到的真实页地址写入在波形存储器126中针对所考虑的通道而提供的下一页地址区域NPAi中。在模式2中,在VP地址此后如WA+1、WA+2、WA+3...而改变的情况中,对该通道设置下一页地址区域NPAi是由B至M传输缓冲器110执行的,而不是由VP地址产生部件505执行的。因此,在模式2中(除了第一次激活的模式2以外),B至M传输缓冲器110起到“下一页地址产生部件”的作用。下面将参照图6等详细描述波形存储器126的NPA区域中所设置的地址变化。在该情况下,音高计数器504起到传输指令产生部件的作用。
传输队列521是先进先出队列。一旦从音高计数器504输出传输指令,传输队列521就获取从VP地址产生部件505输出的通道号,并将所获取的通道号登记在队列中。即,响应于任何通道的激活指令和传输指令,传输对列521将该通道的通道号入队到其中。下面将参照图6详细描述排队的定时。简单地说,如此地登记在传输队列521中的通道号表明,对于所登记的通道号的该通道,在从波形存储器126读出并再现的页数据的读出完成之前的时刻,在波形存储器126中针对该通道而提供的区域NPAi中所设置的真实页地址的页数据必定已经从NAND型闪速存储器125经由传输缓冲器109被传输到了波形存储器126中。如上文关于图4所说明的通过F至B传输部件108的传输和通过B至M传输部件110的传输是响应于从传输队列521顺序输出的通道号来执行的;即,每个通道号都起到用于这些传输的触发器的作用。即,传输部件(108,110)基于先进先出方式从传输队列521取出通道的通道号。在传输队列521中登记了多个通道号的情况下,所登记的通道号基于先进先出(即按照它们被登记在传输队列521中相同的次序)方式顺序地从传输队列521输出。响应于来自传输队列521的输出,通过F至B传输部件108的传输和通过B至M传输部件110的传输每个都相应于输出的通道号来执行传输。
当没有执行从NAND型闪速存储器125到传输缓冲器109的页数据传输时,F至B传输指令部件522从传输队列521获取通道号i,并将所获得的通道号i发送到F至B传输部件108,并且命令F至B传输部件108将NAND型闪速存储器125的下一个要读出的页数据传输到传输缓冲器109。响应于来自F至B传输指令部件522的这样的传输指令,F至B传输部件108经由存储器I/F 112读出波形存储器126中的该通道号的下一页地址NPAi,并将指定了下一页地址NPAi的读出指令输出到闪速存储器125。响应于读出指令。从闪速存储器125突发传输一页数据(2112字节),从而F至B传输部件108将所传输的数据写入传输缓冲器109中。在该情况中,如上文对图4的时序图“NAND型闪速存储器至传输缓冲器”(参考数字411至413)的说明那样来执行一页数据传输。
在F至B传输指令部件522将传输指令输出到F至B传输部件108时,该部件还将传输指令和通道号输出到B至M传输指令部件523。响应于这样的传输指令,B至M传输指令部件523向B至M传输部件110输出通道号和传输指令,并且控制B至M传输部件110将传输缓冲109的页数据(数据区的2048字节)突发传输到波形存储器126的与所考虑的通道相对应的缓冲器。在接收到来自B至M传输指令部件523的通道号和传输指令时,在跟随在由乐音产生器114对波形存储器126执行的访问周期(图4中的421)之后的、比该传输指令的定时晚两个DAC周期的一个DAC周期中,B至M传输部件110向传输部件109输出一个对页数据的地址进行指定的读出指令。因此,从传输部件109突发传输该页数据的第一个256字,从而B至M传输部件110将突发传输的数据写入波形存储器126中的与所考虑的通道对应的缓冲区(如图4的422所示)中。此外,在B至M传输部件110的控制下并且利用随后三个DAC周期,随后的256字×3块的数据也被突发传输并写入在波形存储器126中提供的对应于所考虑的通道的缓冲区中。通过上述方式,如对图4的时序图“传输缓冲器至波形存储器”(参考数字422所示)的说明那样来执行从传输部件109至波形存储器126的突发传输。在模式2中,B至M传输部件110将正突发传输的数据中所包括的“指向下一页的指针NP”写入波形存储器126中针对所考虑的通道chi而提供的区域NPAi中。对区域NPAi的写入在图4的时间部分425的定时处(但是在执行纠错写入之前)执行。
在通过从传输缓冲器109到波形存储器126的突发传输将256个字传输到波形存储器126的与所考虑的通道对应的缓冲区中之前,必须确定应当将256个字传输到两个缓冲器Bia和Bib中的哪一个。在乐音产生设备(系统)的本实施例中,波形样本必须已经由乐音产生器114从预加载区302或所考虑的通道的缓冲器Bia和Bib中的任一个中读出,因此,如果已经从预加载区302或缓冲器Bia读出样本,则确定缓冲器Bib为突发传输目的地;如果已经从预加载区302或缓冲器Bib读出样本,则确定缓冲器Bia为突发传输目的地。
当正在执行从NAND型闪速存储器到传输缓冲器的前述传输时,纠错部件111分析所传输的数据,并执行图4的431所表示的纠错算术处理。当完成了附加信息Inf的传输413时,纠错部件111检测所传输的数据是否发生错误,如果检测到这样的错误,则检测该错误的可校正性,如果该错误是可校正的,则检测要校正的位置。如果检测到错误,如果检测到的错误是可校正的并且已经计算出了该错误的要校正的位置时,纠错部件111在时间部分425处经由存储器I/F 112发出用于校正波形存储器中要校正的位置的指令,以执行纠错。在模式2中,NPAi也成为纠错的对象,因此,NPAi有时可以由纠错部件111通过纠错操作来校正。
纠错部件111向检错部件524输出指示已经发生并已检测到可校正错误的纠错信息,如虚线箭头541所示。并且,如果已经发生并已被检测到错误而所检测到的错误是不可校正的,则纠错部件111向检错部件524输出指示已经发生不可校正的错误的纠错信息,如虚线箭头541所示。对于每个可校正的和不可校正的错误,这里假设纠错信息包括在闪速存储器125中发生该错误的真实页地址。检错部件524起到衰减部件的作用,当由纠错部件111在针对通道的波形样本上检测到错误并且该错误是不可校正的时,该衰减部件迅速衰减对应通道的音乐乐音。
从纠错部件111对检错部件524输入了纠错信息。一旦输入的是指示不可校正的错误的纠错信息,则检错部件524命令幅度包络产生器(EG)503实现所考虑的通道的“强制切断(forced dump)”,从而迅速衰减该通道的乐音(虚线箭头545),但也将该错误通知CPU101(虚线箭头542)。
检错部件524从读出部件507接收对乐音产生器114当前正在执行数据读取的波形存储器126的缓冲区进行识别的PB地址(下文将把这样的PB地址称为“读取PB地址”)(虚线箭头544)。检错部件524从B至M传输缓冲器110接收对当前为来自传输缓冲器109的数据的传输目的地的波形存储器126的缓冲区进行识别的地址(下文将把这样的地址称为“传输PB地址”),并且在该传输完成时,检错部件524接收一个指示传输已经结束的传输结束信号(虚线箭头543)。当针对给定通道正在正常地执行利用波形存储器126中提供的缓冲器Bia和Bib的传输和读出时,如果读取PB地址是“Bia”(即指定缓冲器Bia),则应当如下进行操作。即,传输PB地址改变为“Bib”,使得开始从缓冲器Bib传输;随后在完成传输时输入传输结束信号,然后读取地址改变为“Bib”,使得开始从缓冲器Bib读出;随后传输PB地址改变为“Bia”,使得开始从缓冲器Bia传输;随后读取地址改变为“Bia”,使得开始从缓冲器Bia读出,等等。如果由于某种原因不能及时执行传输来进行读出,则在传输PB地址设置为“Bib”的情况下在产生传输结束信号之前,读取地址改变为“Bib”,并且在传输PB地址设置为“Bia”的情况下在产生传输结束信号之前,读取地址改变为“Bia”。检错部件524检查这样的传输错误是否已经发生并已被检测到,如果已经发生传输错误,则检错部件524命令幅度EG 503实现该通道的强制切断,从而迅速衰减该通道的乐音(虚线箭头545),但也将传输错误的发生与通道号一起通知CPU 101(虚线箭头542)。
图6示出跟随在乐音产生开始之后的(针对一个通道的)各个地址随时间的变化。在该附图中,“整数部分的低十位和小数部分”表示图5的音高计数器504对所考虑的通道的F数字进行累计而得到的累计结果的整数部分的低十位和小数部分随时间的变化。整数部分的低十位和小数部分的值响应于F数字的累加而增大,随后一旦低十位超过1023则产生一个进位,从而返回到“0”(准确地说,是一个低于“1”的值,这是因为小数部分的值仍然保留),然后再次增加。因此,整数部分的低十位和小数部分的值呈现出锯齿形的变化。“整数部分的高位”表示音高计数器504的整数部分的高位(即,累计结果从其中排除了整数部分的低十位和小数部分以后的高位部分)随时间的变化。整数部分的高位的值紧随在乐音产生开始之后为“0”,随后每当整数部分的低十位和小数部分中产生一个进位时增加1。
此外,在图6中,“传输指令”指示从图5的音高计数器504输出到传输队列521的传输指令信号。在乐音产生开始处输出传输指令信号(如601所示),随后每当整数部分的低十位和小数部分产生进位时输出传输指令信号(如602或603所示)。“PB地址”表示从图5的PB地址产生部件506输出的所考虑通道的PB地址随时间的变化。作为PB地址,紧随在乐音产生开始之后输出PA(其为表示波形存储器126的预加载区302中的前导页的地址(图3A)),然后在每当“整数部分的高位”的值向上累计时交替地输出BA和BA+1(BA是对应于该通道的缓冲器Bia的地址,而BA+1是对应于该通道的缓冲器Bib的地址)。
另外,“VP地址”表示由图5的VP地址产生部件505内部地产生的所考虑的通道的VP地址随时间的变化。因为下一次要读出到波形存储器126的页是由所考虑的波形数据的第二页地址WA指定的页(见图2B),所以WA被输出为紧随乐音产生开始之后的VP地址,并随后每当“整数部分的高位”的值向上累计时,WA增加1。每当接收到所考虑的通道的传输指令,VP地址产生部件505就通过将“整数部分的高位”的值加到第二页地址WA上来产生该通道的VP地址。因为波形数据在虚拟地址空间中连续布置的页中被顺序地存储,所以VP地址产生部件505可以通过每当接收到所考虑的通道的传输指令就将第二页地址WA加一来产生VP地址。在图2B的说明性示例中,WA表示第二页W2(1)+Inf,WA+1表示第三页W2(2)+Inf,等等。
“P1地址(模式1)”表示与所考虑的通道的VP地址(其为在模式1中由VP地址产生部件505在每个时间部分中产生的虚拟页地址)对应的真实页地址。在模式1中,对应于虚拟页地址的真实页地址基本参考地址转换表301来获得。因为,在乐音产生器114正在读出具有PB地址(等于PA)的前导页Wx(0)的波形样本的同时,作为下一个要从闪速存储器125读出的页的虚拟页地址的VP地址是“WA”地址,所以VP地址产生部件505参考地址转换表301来获得对应于该WA地址的真实页地址T(WA),并将如此获得的真实页地址T(WA)写入所考虑的通道的NPAi。注意,“T(*)”代表与通过地址转换表301而得到的虚拟页地址*相对应的真实页地址。每当接收到传输指令时,VP地址产生部件505获得对应于VP地址WA+1、WA+2等等的真实页地址,并将如此获得的真实页地址设置到波形存储器126的NPAi。
“P2地址(模式2)”表示与在模式2中VP地址产生部件505在每个时间部分中产生的所考虑的通道的VP地址相对应的真实页地址。在模式2中,基本通过跟随从闪速存储器125读出的页的附加信息Inf中所包括的“指向下一页的指针NP”来获得下一个要读出的真实页地址。因为,在乐音产生器114正在读出当PB地址设置为PA时的前导页Wx(0)的波形样本的同时,VP地址产生部件505通过参考地址转换表301获得对应于WA地址的真实页地址T(WA),并将如此获得的真实页地址T(WA)写入所考虑的通道的NPAi中。真实页地址NPAi的页数据被从闪速存储器125读出并存储到波形存储器126的对应的一个缓冲器中,此时,B至M传输缓冲器110将读出到传输缓冲器109的页数据的附加信息Inf中所包括的“指向下一页的指针NP”设置到波形存储器126中的所考虑的通道的NPAi中。如此设置在NPAi中的“指向下一页的指针NP”成为对应于下一VP地址(等于WA+1)的真实页地址。当响应于下一传输指令602而将VP地址更新为“WA+1”时,已经完成了对所考虑通道的NPAi的设置。类似地,在每个传输执行定时612、613、...“指向下一页的指针NP”被设置到NPAi区域中,从而实际上将对应于各个VP地址的真实页地址设置到NPAi区域中。
此外,在图6中,“传输执行定时”表示这样的定时:在该处,F至B传输部件108和B至M传输缓冲器110响应于来自图5的F至B传输指令部件522和B至M传输指令部件523指令,针对所考虑的通道来实际执行上文关于图4所说明的传输。如上所述,以与将通道号登记到传输队列521中相同的次序来顺序地执行F至B传输部件108和B至M传输部件110执行的传输。因此,即使当将所考虑通道的通道号登记到传输队列521中时已经在传输队列521中登记了其它通道的通道号,也将在比已经完成了对应于其它通道号的所有传输的执行略晚的时候,才从传输队列521输出所考虑通道的通道号,并在定时611处执行对应于所考虑通道的通道号的传输。类似地,响应于传输指令602的登记到传输队列521中的通道号的传输在比该传输指令略晚的定时612处被执行,响应于传输指令603的登记到传输队列521中的通道号的传输在比该传输指令略晚的定时613处被执行,等等;即,每个通道号的传输都在比其传输指令略晚的定时处被执行。由于在其它通道中正执行传输而造成的拥堵,所以这种延迟不是恒定的。不用说,登记到传输队列521的每个传输必须在下一个传输指令到达之前被执行;即,响应于传输指令601的登记到传输队列521的传输必须在传输指令602达到之前被执行,响应于传输指令602的登记到传输队列521的传输必须在传输指令603达到之前被执行,等等。
接下来将给出关于对访问波形存储器126的定时设计的说明。
在本实施例中,响应于一个单元访问(从闪速存储器125读出一页数据)而传输到传输缓冲器109的1024个样本被分开地在四个DAC周期中以每个DAC周期256个样本(512个字节)的方式从传输缓冲器109突发传输到波形存储器126(图4)。将波形样本分开地在四个DAC周期中以每个DAC周期256个样本(512个字节)进行突发传输的原因在于,每单元访问占用四个DAC周期。与将用于突发传输的时间段和用于波形存储器126更新的时间段排除之后的一个DAC周期相等的时间段,成为乐音产生器114读出每个乐音产生通道用于产生乐音的波形样本的时间段。因此,在必须保证长的时间段以便突发传输的情况下,有必要减小用于各个乐音产生通道的读出时间段,因此导致需要对能够产生乐音的通道数量进行减少的设计。反过来说,如果可以减小突发传输时间段,则相应地可以增加能产生乐音的通道的数量。
下面说明下文使用的术语“带宽”和“总带宽”。术语“总带宽”指的是在基本再现周期(它是以每采样周期一个样本的速率再现一页样本数据时所需的再现时间段)之内能够从闪速存储器125读出的页的最大数量。换句话说,“总带宽”指的是在基本再现周期之内可以发出的传输指令的最大(上限)次数。在本实施例中,将基本再现周期设置为等于1024个DAC周期,并且占用四个DAC周期来从闪速存储器125读出一页。因此,在本实施例中,“总带宽”是256。术语“带宽”是指在一个通道中在基本再现周期之内能够从闪速存储器125读出的页的最大数量,即所考虑的通道能够发出传输指令的最大次数。例如,在以F数字“1”在给定通道中执行乐音产生的情况下,在1024个DAC周期的基本再现周期中仅仅发出一个传输指令就足够,这是因为通过一个传输被写入波形存储器中的1024个样本可以覆盖具有F数字“1”的再现,因此,给定的通道的带宽是“1”。如果F数字是“2”,那么带宽是“2”。此外,如果F数字是“1.1”,则在十个基本再现周期中需要十一个传输指令(即传输11页),从而在这十个周期中的某处必须发出两个传输指令;因此,在这种情况下,所考虑的通道的带宽是“2”。从而,通过截去F数字的小数部分而得到的值成为该通道的带宽。另外,需要防止所有通道的带宽之和超过总带宽,这是因为如果所有通道的带宽之和超过了总带宽,那么不能进行在任一个通道中产生的传输请求。
在乐音产生设备(系统)的本实施例中,CPU 101管理分配到各个通道的带宽。基于各种设计条件预先确定总带宽Tbw。还预先提供了表示已分配的总带宽的局部变量Abw和表示被分配到第i个通道的带宽的局部变量Cbw(i),并且CPU 101在初始化处理时将这些局部变量Abw和Cbw初始化为零。在为乐音产生分配通道时,CPU 101将该通道的带宽bw与通过从总带宽Tbw减去已分配的总带宽Abw而计算的值(这个值表示空的带宽)相比较,并确认前者等于或小于后者;如果前者大于后者,则不能分配该通道的带宽来产生乐音。如果前者等于或小于后者,则表明仍存在可用的或者可分配的带宽,从而将该通道的带宽bw加到已分配的总带宽Abw上,并将该通道的带宽bw存储作为局部变量Cbw(i)。一旦所考虑的通道受到消音操作(即该通道静音),并从而解除了乐音产生,则从Abw减去Cbw(i),并将Cbw(i)重置为零。以这种方式,CPU 101恒定地管理已分配的总带宽Abw和可分配的带宽Tbw-Abw。因此,在本实施例中采用的上述方案可以在不限制F数字的上限值的情况下在基本再现周期中将对所有通道的单位访问总数量限制在总带宽(其为单位访问的上限数量)之内。即,在基本再现周期中,本实施例中采用的方案可以减小发生了向下音高改变(降调)的每个通道的单位访问数量,尽管对于发生了向上音高改变(升调)的每个通道需要增大单位访问数量。因此,作为一个整体,本实施例中采用的方案可以降低基本再现周期中的单位访问上限数量(即总带宽)。
图7A是本发明的系统的实施例中CPU 101响应于上电或重置而执行的主处理的流程图。在步骤701处执行初始化。在下一步骤702处,CPU 101命令传输控制部件113将地址转换表和每个波形数据组的前导页传输到波形存储器126,并且初始地将表示模式1或模式2的模式信息M设置到模式寄存器501中。如上文关于图2的说明,在步骤702要传输的地址转换表取决于所设置的模式信息M而具有不同类型。即,在模式1中传输16位输入及16位输出的表作为地址转换表,而在模式2中则传输20位输入及20位输出的表作为地址转换表。在初始化之后,CPU 101在步骤703执行事件检测操作,并且,如果在步骤704确定已经检测到任何事件,则CPU 101在步骤705执行对应于所检测的事件的事件处理。此后,CPU 101重复执行步骤703至705的操作。
图7B是CPU 101在步骤705执行的音符打开事件处理的流程图,例如,经由MIDI I/O 124输入了MIDI音符打开事件的处理流程图。在步骤711,CPU 101基于输入的MIDI音符打开事件的演奏信息来将音符编号和速度设置到各个寄存器nn和vel中。在下一个步骤712,CPU 101从存储在闪速存储器125中的并且对应于当前所选音色的多个波形数据集之中确定(选择)一个与音符编号nn和速度vel对应的波形数据集。在图1的NOR型闪速存储器121中,提供了对应于各种音色的音色数据集,并且每个音色数据集包括用于选择与音符编号nn和速度vel相对应的波形数据集的波形选择信息。在步骤713,CPU101分配乐音产生通道中的一个,并且将所分配的通道的通道号设置到寄存器a中。
在步骤713,CPU 101保证上述的带宽。即,CPU 101确认当前满足条件“bw≤Tbw-Abw”,并且设置bw作为Cbw(a),设置Abw+bw作为Abw。如果bw>Tbw-Abw,即,如果可分配的带宽Tbw没有更多可分配的带宽,则CPU 101从当前正在产生乐音的通道(即当前发出声音的通道)之中确定要静音的通道。然后,其迅速衰减所确定的要静音的通道的乐音,以将要静音的通道从乐音产生状态释放,从所分配的总带宽Abw减去该通道的带宽,将局部变量Cbw设置为“0”,随后再次保证带宽。如果没有空闲通道可供分配,则将任一个当前正在发声的通道静音,并使得它可被分配来产生乐音(即要新产生的乐音)。
在下一步骤714,CPU 101将各种参数设置到控制寄存器部件502的“a”通道区域中。可以基于在当所确定的波形数据没有被改变音高的那个音高(音分)与由音符编号nn所表示的音高(音分)之间的音高差(以音分为单位),来确定意在控制音高改变的F数字。上述地址WA和PA以及关于包络的参数都包括在音色数据中。可以基于所分配的通道号来确定上述BA地址。最后,在步骤715,CPU 101将“a”通道的乐音产生指令写入音符打开寄存器中,此后,音符打开处理结束。
现在已经通过上述方式将各种数据设置在乐音产生寄存器中,包括用于“a”通道的音符打开寄存器,通过上文关于图1至图6所说明的操作在“a”通道中执行乐音产生处理。通过上述从NAND型闪速存储器125到乐音产生器114的硬件部件来实现乐音产生处理,因此没有对CPU 101发出中断。
图8A是在接收到给定通道的传输指令时由VP地址产生部件505执行的处理的流程图,并且这个处理由硬件实现。在步骤801,将“整数部分的高位”的值加到第二页地址WA上以产生VP地址,如上面关于图6所说明的。如果在步骤802确定当前模式是模式1,或者如果在步骤802确定当前模式是模式2并且在步骤803确定当前处理是该处理的第一次执行,则处理进到步骤804。如果在步骤803确定当前处理不是第一次执行,则处理进到步骤806。在步骤804参考地址转换表(图3A的301)来获得对应于VP地址的真实页地址(P地址)。该P地址对应于模式1中的P1地址或者模式2中的第一个P2地址。在步骤805,将P地址写入在NPA区304中提供的所考虑通道的区域NPAi中。在下一步骤806,将所考虑通道的通道号输出到传输队列521。
图8B是在从B至M传输指令部件523接收到传输指令时由B至M传输缓冲器110执行的处理的流程图。然而,图8B的处理不包括用于将传输PB地址等输出到检错部件524之类的操作。该处理也由硬件实现。在步骤811,获取从B至M传输指令部件523传来的通道号。在步骤812,在四个DAC周期中以每DAC周期256个字的方式分开地将存储在传输缓冲器109中的一页波形数据的1024个字传输到波形存储器126的所考虑通道的缓冲区。如上文关于图4的突发传输时间部分422所说明那样来控制一页波形数据的传输定时。如果在步骤813确定当前模式是模式2,则处理前进到步骤814,在该处将传输缓冲器109中存储的“指向下一页的指针NP”写入波形存储器126中提供的所考虑通道的区域NPAi中。
下面描述CPU 101响应于错误的发生(检测)而执行的处理。如上文关于图5的纠错部件111和检错部件524所说明的,对本系统的本实施例中的CPU 101供给错误通知,其包括下面的任一个:(1)指示在从闪速存储器125读出的数据中发生了可校正错误并且已经校正该错误的纠错信息;(2)指示在从闪速存储器125读出的数据中发生了不可校正的错误的纠错信息;和(3)指示发生了传输错误的纠错信息。这样的纠错信息的每一个都包括指示出在闪速存储器125中发生错误的通道和真实页地址的数据。
首先描述在上述(1)中提到的可校正的错误。在该情况中,使用校正后的波形数据来继续所考虑通道中的乐音产生。在接收到错误通知时,CPU 101通过中断操作将发生了错误的页的真实页地址登记到NOR型闪速存储器121中作为“替代等待页”。因为如上所述使用校正后的波形数据来继续所考虑通道中的乐音产生,所以不立即将可校正错误通知通过消息显示、预定声音输出之类给予用户。然而,在完成乐音产生处理之后将这样的错误通知给予用户。在接收到可校正错误通知时,用户开始图9A和图9B的处理,在登记了“替代等待页”而同时不存在对闪速存储器125的访问的情况下通过响应于操作人员指令的预定处理(或者由后台处理自动地)来执行图9A和图9B的处理。
图9A是在登记了“替代等待页”并且当前模式是模式1的情况下执行的处理的流程图。在步骤901,CPU 101经由存储器I/F 107从闪速存储器125读出包含被登记为“替代等待页”的错误页的一个块,并且在RAM 103中对该块中包含的错误页执行纠错。CPU 101对校正后的数据附上纠错码,以获得适当的一页数据(2112字节)。除了该错误页,CPU 101还可以使用纠错码对该块的其它页执行错误的检查和校正。一旦得到了整个块的适当的数据,CPU 101进到步骤902以选择闪速存储器125中存储的未使用的真实块。随后,在步骤903,CPU 101经由存储器I/F 107将校正后的一个块的数据写入所选的未使用的块(也称为“替代块”)。在下一步骤904,CPU 101将与闪速存储器125的地址转换表中的包含该错误页的这一个块的虚拟块地址相关联的真实块地址(即,迄今为止指定的是地址转换表中的该错误页)改为该替代块的真实块地址(即,用以指定该替代块)。通过上述方式,能够以该替代块来代替包含错误页的这一个块。
在当前模式是模式1的情况中,在NOR型闪速存储器121中或在RAM 103中预存储了与闪速存储器125的地址转换表相同的数据以及用于管理未使用的真实块的位置的管理数据。利用这些数据,CPU101总是管理NAND型闪速存储器125中存储的波形数据的各个页的使用的状态。
图9B是在登记了“替代等待页”并且当前模式是模式2的情况下执行的处理的流程图。在步骤911,CPU 101经由存储器I/F 107从闪速存储器125读出被登记为“替代等待页”的错误页,并且在RAM 103中对错误页执行纠错。CPU 101对校正后的数据附上纠错码,以获得适当的一页数据(2112字节)。在步骤912,CPU 101选择闪速存储器125中存储的未使用的页。然后,在步骤913,将校正后的页的数据写入所选的未使用的页(也称为“替代页”),并对处在所考虑的页之前的页的“指向下一页的指针NP”进行更新以指向该替代页。如果错误页是波形数据的前导页,则CPU 101不对前一页的“指向下一页的指针NP”进行更新,而是将与闪速存储器125的地址转换表中的错误页的虚拟页地址相关联的真实页地址改为该替代页的真实页地址。通过上述方式,能够以替代页来代替错误页。
在当前模式是模式2的情况中,在NOR型闪速存储器121中或在RAM 103中预存储了与闪速存储器125的地址转换表相同的数据以及用于管理未使用的真实块的位置的管理数据。CPU 101可以参考NOR型闪速存储器121中存储的地址转换表来获取包含错误页的波形数据的前导页的真实页地址,并且CPU 101可以通过跟随来自前导页的“指向下一页的指针NP”来识别在错误页之前的页。注意,管理数据用于管理各个波形数据中的真实页的顺序(页之间的链接状态),从而可以基于管理数据识别错误页之前的页。另外,附加信息Inf可以不仅包括“指向下一页的指针NP”,还包括“指向前一页的指针”,从而可以容易地识别在错误页之前的页的真实页地址,并因此可以容易地访问前一页。
注意,NAND型闪速存储器125不能通过一个动作被覆写,而必须在对包括了要覆写的页的多个连续页(例如32或64个页)的块进行擦除之后才能被覆写;下面将把这样的块称为“存储块”,以与前文关于图2C所说明的块相区别。因此,用于对NAND型闪速存储器125进行写入的步骤903、904和913的操作以这样的顺序来执行:其中将包括了要被写入的页的存储块的数据暂时读出到RAM 103中,然后擦除读出之后的存储块,然后在RAM 103中改变所读出的数据的必要部分,然后将如此改变之后的数据写回到擦除后的存储块。
接下来描述上面的(2)中提到的不可校正的错误。在这种情况下,如上所述,在没有来自CPU 101的指令的情况下自动强制切断所考虑通道中正在产生的乐音。已经接收到不可校正错误通知的CPU101执行中断操作,该操作用于释放所考虑通道以使得该通道可分配来产生乐音,使分配给所考虑通道的带宽重回到可分配的带宽,并且通过消息显示、预定声音输出等将该结果告知用户。这一信息或通知可以立即也可以在完成乐音产生处理之后给予用户。接收到该通知的用户请求该设备的制造商等进行必要的维修,这是因为看起来这不可校正的错误是由于闪速存储器125的故障而导致的。
谈到闪速存储器125的给定页,在正在正常无误地读出一页的状态下,在该页中突发性地发生一个不可校正的错误的可能性极低;通常是首先发生几次可校正的错误,然后才发生不可校正的错误。因此,如上所述当发生可校正错误时,通过以替代页或替代块来代替引起了可校正错误的页,可以防止不可校正错误的发生。
接下来,描述上面(3)中提到的传输错误。在该情况中,如上所述,正在所考虑的通道中产生的乐音被强制切断。已经接收到错误通知的CPU 101执行中断操作,该操作用于释放所考虑通道以使得该通道可分配来产生乐音,使分配给所考虑通道的带宽重回到可分配的带宽。另外,CPU 101将总带宽Tbw的值降低一个预定值或量以收紧带宽限制,使得更不容易发生传输错误。
可以适当地修改在本实施例的描述中上面提到的各种值。例如,闪速存储器125不限于2112字节的页尺寸,并且可以是任何其它期望的尺寸。例如,数据区可以具有1024字节或4096字节的尺寸,以及附加信息Inf也可以具有取决于闪速存储器125的规格的任意期望尺寸。另外,闪速存储器125的单位数据宽度不限于8位,可以是4位、16位等。此外,上文关于图2C所说明的在模式1情况下的一个块的尺寸不限于16页,可以是32页或64页(即2的乘方的页)等等。另外,一个块可以由一页组成(因此,在该情况下,没有“块”的概念)。在基本再现周期中的单位访问数量不限于256个,还可以是取决于闪速存储器125的规格的其它期望数量,比如300、450或512。另外,从波形存储器126读出的样本的数量不限于256个(即2个样本×128个通道),可以是取决于与能够从波形存储器126读出一个样本的时隙的时间分辨率有关的规格的任意其它期望数量,比如310、460或512。此外,能够产生乐音的通道的数量也不限于128个通道,可以是在如上所述有可能成为瓶颈的各种条件之下的任何其它期望数量,比如64、80或160。每个样本的位的数量也不限于16个,可以是12、14等。
尽管图2B的示例已经描述了这样的格式,其中在2048字节的波形数据之后提供纠错码,然而纠错码可以放置在任何其它期望的位置,或者分开布置在多个位置处。例如,在执行纠错算术处理的数据单位是256字节的情况下,可以将256字节的纠错码放置在256字节的波形数据之后。
另外,尽管已经将实施例中插值部件508所执行的插值描述为两点插值,然而可以在任何其它期望数量的点之间执行插值,比如三点或四点。不过,在插值部件508执行四点插值的情况下,可能需要减小能够产生乐音的通道的数量,这是因为通过一个读出操作来读出四个连续的样本。在从波形存储器126读出多个样本的情况下,可以通过突发传输以高速读出它们。另外,插值部件508可以配备样本缓冲器。
另外,尽管已经将实施例中的读出部件507描述为构造来在每个DAC周期对每个通道访问两次波形存储器126,以便读出用于该通道的插值所必需的两个样本,然而,可以提供插值缓冲器(对应于传统已知的设备中的样本RAM)用于存储所读出的样本的最近n个样本(n表示插值必需的数量),从而可以减小每个通道访问波形存储器126的必需的次数。在这样的情况下,访问波形存储器126必需的次数等于针对每个通道从音高计数器504输出的整数部分的地址的增量。例如,如果每个通道的F数字被限制为等于或小于“1“,则通过如上述实施例中那样每DAC周期256个访问操作的方式来读出256个通道的样本,因此,可以将乐音产生器LSI 100设计成实现高达256个能够产生乐音的通道。如果不限制F数字,则能够产生乐音的通道的最大数量根据通过截去设置在各个通道中的F数字的小数部分而得到的值之和的最大值而动态地改变。在上述设计的每一个中,最佳的是以这样的方式来设计乐音产生器LS I 100:闪速存储器125的“带宽”(在上述实施例中是256)与访问波形存储器126的次数(在上述实施例中是256次访问)彼此一致。
另外,尽管已经将本发明的实施例描述为以这样的方式来构造:在模式2中,要从闪速存储器125第一次传输的页的虚拟页地址到真实页地址的转换(图6的P2地址的T(WA)的获取)是由VP地址产生部件505自动执行的,而不是由CPU 101执行的(见图8A的步骤803和804),然而,这个初始地址转换可以由CPU 101执行。为此,CPU101可以保留与各个波形数据的虚拟页地址对应的读取地址(即对应于T(WA)的数据),以使得对于任何期望的波形数据,可以例如响应于乐音产生开始指令经由控制寄存器部件502将真实页地址设置到波形存储器126的NPAi区域中。类似的布置可以应用于模式1中。重要的是,当要传输第二和后续页时,没有对CPU 101发出中断,并且对于第一页,操作的一些增加不会影响太大。对CPU 101的中断是不期望的,原因在于中断导致CPU 101的负担增大,这是因为需要清空CPU 101的寄存器等。
另外,尽管已经将本发明的实施例描述为将波形数据存储在作为外部存储介质的NAND型闪速存储器中,然而这样的外部存储介质不限于NAND型闪速存储器。本发明的基本思想可以广泛地应用于这样的情况:其中将波形数据存储在能够基于逐页方式高速地被访问并且可能导致数据错误从而需要数据校正的、用作外部存储介质的任何各种半导体器件中。
另外,尽管上面已经将本发明的实施例描述为涉及其中每个样本包括一个字的线性波形数据,然而波形数据可以是被压缩为期望格式的数据。在这样的情况下,尽管由于每页(1024字)中的样本数量将会不同从而变得难于准确计算上述带宽,但优选的是,预先获得在每个波形数据的一页中样本的平均数量,并使用样本的平均数量来计算带宽。
另外,尽管已经将本发明的实施例描述为在波形存储器中提供地址转换表,然而用于存储地址转换表的存储部件可以提供在LSI100中而不在波形存储器中。此外,已经将本发明的实施例描述为将CPU 101结合在LSI 100中。作为替代,可以通过经由外部CPU 101’控制LSI 100的方式来在LSI 100中结合用于在LSI 100与CPU 101之间进行接口连接的CPU I/F部件。此外,还可以在LSI 100的外部提供所期望的一个或多个存储器I/F 102、RAM 103、显示器I/F 104、并行I/F 105和串行I/F 106,而不是将它们结合在LSI 100中。反过来,波形存储器126可以修改为静态存储器类型并且可以结合到乐音产生器LSI 100中。
Claims (19)
1.一种乐音产生设备包括:
外部存储器,其具有多个页,每个页由页地址指定并且在其中存储数据和针对该数据的纠错码,所述外部存储器将多个波形存储为数据,每个波形由一系列波形样本构成并且在所述外部存储器中将每个波形分成多页波形样本;
乐音产生部件,其能够同时产生多个通道的音乐乐音;以及
控制部件,其根据演奏信息控制所述乐音产生部件中的乐音产生,
其中,所述乐音产生部件包括:
波形存储器,其具有针对多个波形提供的多个前导波形存储区以及针对多个通道提供的多个缓冲区,一个针对波形的前导波形存储区存储该波形的前导页的波形样本,而一个针对通道的缓冲区临时存储用于该通道的音乐乐音的乐音产生的波形样本;
控制寄存器部件,其具有针对多个通道提供的多个通道区,每个针对通道的通道区存储由所述控制部件设置的、用于控制该通道的音乐乐音的乐音产生的参数,通道的参数包括:速率参数,其用于控制音乐乐音的音高;前导波形地址,其指定了在所述波形存储器中的前导波形区域;波形位置信息,其指示在所述外部存储器中的波形的位置;以及幅度控制信息,其用于控制音乐乐音的幅度包络;
读出部件,其响应于针对每个通道的激活指令,以与该通道的速率参数对应的速率来首先从所述波形存储器中的由该通道的前导波形地址所指定的前导波形存储区读出前导页的波形样本,并且随后在所述波形存储器中从对应于该通道的缓冲区以相同的速率重复地读出波形样本,所述读出部件能够在所述波形存储器中同时针对多个通道以分时多路复用的方式读出波形样本;
下一地址产生部件,其针对每个通道基于该通道的波形位置信息来产生对下一个要从所述外部存储器读出的一页波形样本进行指定的下一页地址信息,并且将所产生的该通道的下一页地址信息设置到下一页地址存储部件中;
传输指令产生部件,其针对每个通道在每当由所述读出部件针对该通道所执行的波形样本读出前进了一页时产生传输指令;
传输队列,其响应于任何通道的激活指令和传输指令,将该通道的通道号加入到该传输队列中;
传输部件,其基于先进先出方式从所述传输队列取出通道的通道号,随后以突发方式从所述外部存储器读出由设置在下一页地址存储部件中的该通道的下一页地址信息所指定的页的波形样本,并且随后将读出的波形样本写入与该通道相对应的缓冲区中;
纠错部件,其使用通过所述传输部件从所述外部存储器针对通道读出的页的纠错码对该页的波形样本执行检错,并且如果检测到错误并且该错误是可校正的,则所述纠错部件执行该波形样本的错误的校正;
衰减部件,当由所述纠错部件在针对通道的波形样本上检测到错误并且该错误是不可校正的时,该衰减部件迅速衰减正在由所述乐音产生部件产生的该通道的音乐乐音;以及
幅度控制部件,其针对每个通道按照该通道的幅度控制信息来控制由所述读出部件所读出的波形样本的幅度包络,从而产生该通道的音乐乐音,
其中,当所述控制部件接收到用于新开始一个音高的音乐乐音的演奏信息时,所述控制部件将多个通道中的一个通道分配给要新产生的音乐乐音,将对应于所述音高的速率参数、前导波形地址、波形位置信息和幅度控制信息设置到所述控制寄存器部件的针对该一个通道的通道区中,并且进一步发出针对该通道的激活指令。
2.如权利要求1所述的乐音产生设备,其中,当通过所述纠错部件已经检测出任何错误时,所述衰减部件向所述控制部件发送错误通知,该错误通知包括对在所述外部存储器中的发生了该错误的页进行识别的信息和指示该错误是否能够被适时地校正的信息,并且
其中
(1)如果该错误通知指示检测到的错误是可校正的错误,则所述控制部件将对发生了该错误的页进行识别的信息记录为替代等待页,并且
(2)如果该错误通知指示检测到的错误是不可校正的错误,则所述控制部件发出指示不可能正常产生乐音的警告。
3.如权利要求2所述的乐音产生设备,其中,当存在被记录为替代等待页的任何页时,所述控制部件通过自动开始的后台处理或者通过响应于用户指令而开始的处理来保证在所述外部存储器中的替代页,读出被记录为替代页的页的波形样本,如果在被记录为替代页的页的波形样本读出中发生了任何错误,则对所读出的波形样本执行纠错以得到适当的波形样本,并且随后将适当的波形样本存储到替代页中,从而以替代页代替发生了错误的页。
4.如权利要求1所述的乐音产生设备,其中所述衰减部件对以下进行检测,即,所述传输部件没有及时地执行将波形样本写入缓冲器以便由所述读出部件从缓冲器读出该波形样本,并且,如果没有及时地执行写入操作以便读出,则所述衰减部件迅速衰减正在通道中产生的乐音的音量,并向所述控制部件发送指示发生了传输错误的错误通知,并且
其中,在接收到该错误通知时,所述控制部件输出指示不可能正常产生乐音的警告。
5.如权利要求4所述的乐音产生设备,其中所述控制部件在设置要分配来产生乐音的通道时设置总带宽和带宽,总带宽是指在基本再现周期之内能够从所述外部存储器读出的页的最大数量,带宽是指按照要从给定的一个通道中产生的乐音的速率参数在基本再现周期之内所要读出的波形样本的页的数量,在所述基本再现周期中以每采样周期一个样本的速率来读出一页波形样本,并且
其中所述控制部件以被分配来产生乐音的所有通道的带宽之和不超过总带宽的方式来控制对用于乐音产生的通道的分配,并且当已经接收到传输错误的通知时,所述控制部件将总带宽减小预定的量。
6.如权利要求1至5中任一项所述的乐音产生设备,其中所述外部存储器是由独立集成电路构成的NAND型闪速存储器。
7.如权利要求1至5中任一项所述的乐音产生设备,其中所述读出部件包括音高计数器,该音高计数器产生以速率参数所指示的速率前进的计数值,并且
所述传输指令产生部件在每当计数值前进一页时产生传输指令。
8.一种乐音产生设备包括:
外部存储器,其具有在虚拟地址空间中连续布置的多个页并且存储多个波形,每个波形由一系列波形样本构成并且将每个波形分成多个页的波形样本,所述外部存储器的多个页中的每一个由虚拟页地址所指定并且存储一页波形样本;
乐音产生部件,其能够同时产生多个通道的音乐乐音;以及
控制部件,其根据演奏信息控制所述乐音产生部件中的乐音产生,
其中,所述乐音产生部件包括:
波形存储器,其具有针对多个波形提供的多个前导波形存储区以及针对多个通道提供的多个缓冲区,一个针对波形的前导波形存储区存储该波形的前导页的波形样本,而一个针对通道的缓冲区临时存储用于该通道的音乐乐音的乐音产生的波形样本;
地址转换表,其被提供用于将识别虚拟地址空间中的页的虚拟页地址转换成真实页地址;
控制寄存器部件,其具有针对多个通道提供的多个通道区,每个针对通道的通道区存储由所述控制部件设置的、用于控制该通道的音乐乐音的乐音产生的参数,通道的参数包括:速率参数,其用于控制音乐乐音的音高;前导波形地址,其指定了在所述波形存储器中的前导波形区域;波形位置信息,其指示在所述外部存储器中的波形的位置;以及幅度控制信息,其用于控制音乐乐音的幅度包络;
读出部件,其响应于针对每个通道的激活指令,以与该通道的速率参数对应的速率来首先从所述波形存储器中的由该通道的前导波形地址所指定的前导波形存储区读出前导页的波形样本,并且随后在所述波形存储器中从对应于该通道的缓冲区以相同的速率重复地读出波形样本,所述读出部件能够在所述波形存储器中同时针对多个通道以分时多路复用的方式读出波形样本;
下一地址产生部件,其针对每个通道基于该通道的波形位置信息来产生对下一个要在所述外部存储器的虚拟地址空间中读出的一页波形样本进行指定的虚拟页地址,参考地址转换表来将虚拟页地址转换成真实页地址,并且随后将转换后的真实页地址设置到下一页地址存储部件中;
传输指令产生部件,其针对每个通道在每当由所述读出部件针对该通道所执行的波形样本读出前进了一页时产生传输指令;
传输队列,其响应于任何通道的激活指令和传输指令,将该通道的通道号加入到该传输队列中;
传输部件,其基于先进先出方式从所述传输队列取出通道的通道号,随后以突发方式从所述外部存储器读出由设置在下一页地址存储部件中的该通道的下一页地址信息所指定的页的波形样本,并且随后将读出的波形样本写入与该通道相对应的缓冲区中;以及
幅度控制部件,其针对每个通道按照该通道的幅度控制信息来控制由所述读出部件所读出的波形样本的幅度包络,从而产生该通道的音乐乐音,
其中,当所述控制部件接收到用于新开始一个音高的音乐乐音的演奏信息时,所述控制部件将多个通道中的一个通道分配给要新产生的音乐乐音,将对应于所述音高的速率参数、前导波形地址、波形位置信息和幅度控制信息设置到所述控制寄存器部件的针对该一个通道的通道区中,并且进一步发出针对该通道的激活指令。
9.如权利要求8所述的乐音产生设备,其中所述地址转换表原始地存储在所述外部存储器中,并且,在所述乐音产生设备启动之时,从所述外部存储器读出所述地址转换表并且将其存储到内部的地址转换表存储部件中。
10.如权利要求8所述的乐音产生设备,其中所述地址转换表存储部件被提供在所述波形存储器中。
11.如权利要求8所述的乐音产生设备,其还包括:
纠错部件,其使用通过所述传输部件从所述外部存储器读出的页的纠错码对该页的波形样本执行检错,并且如果检测到错误并且该错误是可校正的,则所述纠错部件执行该波形样本的错误的校正;
衰减部件,当由所述纠错部件在针对通道的波形样本上检测到错误并且该错误是可校正的时,该衰减部件向所述控制部件发送错误通知,该错误通知包括对已经检测到可校正错误进行指示并且对在所述外部存储器中发生了该错误的页进行识别的信息,并且
其中
(1)所述控制部件将对发生了可校正错误的页进行识别的信息记录为替代等待页,
(2)如果存在当前被记录为替代等待页的任何页,所述控制部件通过自动开始的后台处理或者通过响应于用户指令而开始的处理来保证在所述外部存储器中的替代页,读出被记录为替代页的页的波形样本,如果在被记录为替代页的页的波形样本读出中发生了错误,则执行纠错以得到适当的波形样本,并且随后将适当的波形样本存储到替代页中,从而以替代页代替发生了错误的页,并且
(3)当替代等待页的虚拟页地址要被转换成真实页地址时,所述控制部件以能够获取替代页的真实页地址的方式来修改所述地址转换表。
12.如权利要求8至11中任一项所述的乐音产生设备,其中所述外部存储器是由独立集成电路构成的NAND型闪速存储器。
13.如权利要求8至11中任一项所述的乐音产生设备,其中所述读出部件包括音高计数器,该音高计数器产生以速率参数所指示的速率前进的计数值,并且
所述传输指令产生部件在每当计数值前进一页时产生传输指令。
14.一种乐音产生设备包括:
外部存储器,其具有在虚拟地址空间中连续布置的多个页并且存储多个波形,每个波形由一系列波形样本构成并且将每个波形分成多个页的波形样本,所述外部存储器的多个页中的每一个由虚拟页地址所指定并且存储一页波形样本和下一个要读出的下一页的真实页地址;
乐音产生部件,其能够同时产生多个通道的音乐乐音;以及
控制部件,其根据演奏信息控制所述乐音产生部件中的乐音产生,
其中,所述乐音产生部件包括:
波形存储器,其具有针对多个波形提供的多个前导波形存储区以及针对多个通道提供的多个缓冲区,一个针对波形的前导波形存储区存储该波形的前导页的波形样本,而一个针对通道的缓冲区临时存储用于该通道的音乐乐音的乐音产生的波形样本;
控制寄存器部件,其具有针对多个通道提供的多个通道区,每个针对通道的通道区存储由所述控制部件设置的、用于控制该通道的音乐乐音的乐音产生的参数,通道的参数包括:速率参数,其用于控制音乐乐音的音高;前导波形地址,其指定了在所述波形存储器中的前导波形区域;以及幅度控制信息,其用于控制音乐乐音的幅度包络;
读出部件,其响应于针对每个通道的激活指令,以与该通道的速率参数对应的速率来首先从所述波形存储器的由前导波形地址所指定的前导波形存储区读出前导页的波形样本,并且随后从所述波形存储器的对应于该通道的缓冲区以相同的速率重复地读出波形样本;
传输指令产生部件,其针对每个通道在每当由所述读出部件针对该通道所执行的波形样本读出前进了一页时产生传输指令;
传输队列,其响应于任何通道的激活指令和传输指令,将该通道的通道号加入到该传输队列中;
下一页地址存储部件,其针对每个通道在其中存储下一个要从所述外部存储器读出的页的真实页地址;
第一下一页地址设置部件,其在每个通道中开始产生乐音之时,将要被首先读出的页的真实页地址写入所述下一页地址存储部件中;
传输部件,其基于先进先出方式从所述传输队列取出通道的通道号,随后从所述外部存储器读出设置在所述下一页地址存储部件中的在该通道中下一个要被读出的真实页地址的页的波形样本,并且随后将读出的波形样本写入所述波形存储器的与该通道号指示的通道相对应的缓冲器中;
第二下一页地址设置部件,其针对每个通道并且在下一页的波形样本已经被所述传输部件从所述外部存储器读出时,将所读出的页中包括的下一页的真实页地址覆写到所述下一页地址存储部件中;以及
幅度控制部件,其针对每个通道按照幅度控制信息来控制由所述读出部件所读出的波形样本的幅度包络,从而产生该通道的音乐乐音,
其中,当所述控制部件接收到用于新开始一个音高的音乐乐音的演奏信息时,所述控制部件将多个通道中的一个通道分配给要新产生的音乐乐音,将对应于所述乐音音高的速率参数、前导波形地址和幅度控制信息设置到所述控制寄存器部件的针对该一个通道的通道区中,并且进一步发出针对该通道的激活指令。
15.如权利要求14所述的乐音产生设备,其中所述外部存储器针对多种类型的波形中的每一种具有在虚拟地址空间中连续布置的所述多个页,并且所述乐音产生设备还包括地址转换表,该地址转换表被提供来用于针对多种类型的波形中的每一个在正在再现虚拟地址空间中的前导页的同时将下一个要被读出的第二页的虚拟页地址转换成真实页地址,
其中所述控制部件按照演奏信息来将所述外部存储器中的波形位置信息设置到所述控制寄存器部件中与所分配的通道对应的区域中,所述波形位置信息指示了要用来在该通道中产生乐音的波形类型的位置,并且
其中,在乐音产生开始之时,所述第一下一页地址设置部件参考所述地址转换表按照波形位置信息来获取首先要被传输的第二页的真实页地址,并且随后将所获取的第二页的真实页地址写入所述下一页地址存储部件中。
16.如权利要求14所述的乐音产生设备,其中针对多种类型的波形中的每一个,所述控制部件保留首先要从所述外部存储器读出并随后被传输到缓冲器的第二页的真实页地址,并且在乐音产生开始之时,所述控制部件将第二页的真实页地址供给所述第一下一页地址设置部件,并且所述第一下一页地址设置部件将所供给的真实页地址写入所述下一页地址存储部件。
17.如权利要求14所述的乐音产生设备,其还包括:
纠错部件,其使用通过所述传输部件从所述外部存储器针对通道读出的页的纠错码对该页的波形样本执行检错,并且如果检测到错误并且该错误是可校正的,则所述纠错部件执行该波形样本的错误的校正;
衰减部件,当由所述纠错部件在针对通道的波形样本上检测到错误并且该错误是可校正的时,该衰减部件向所述控制部件发送错误通知,该错误通知包括对已经检测到可校正错误进行指示并且对在所述外部存储器中发生了该错误的页进行识别的信息,并且
其中
(1)所述控制部件将对发生了可校正错误的页进行识别的信息记录为替代等待页,
(2)如果存在当前被记录为替代等待页的任何页,所述控制部件通过自动开始的后台处理或者通过响应于用户指令而开始的处理来保证在所述外部存储器中的替代页,读出被记录为替代页的页的波形样本,如果在被记录为替代页的页的波形样本读出中发生了错误,则执行纠错以得到适当的波形样本,并且随后将适当的波形样本存储到替代页中,从而以替代页代替发生了错误的页,并且
(3)所述控制部件将替代等待页之前的一页中所包括的下一页的真实页地址修改成替代等待页的真实页地址。
18.如权利要求14至17中任一项所述的乐音产生设备,其中所述外部存储器是由独立集成电路构成的NAND型闪速存储器。
19.如权利要求14至17中任一项所述的乐音产生设备,其中所述读出部件包括音高计数器,该音高计数器产生以速率参数所指示的速率前进的计数值,并且
所述传输指令产生部件在每当计数值前进一页时产生传输指令。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010-066571 | 2010-03-23 | ||
JP2010066570A JP5510814B2 (ja) | 2010-03-23 | 2010-03-23 | 楽音生成装置 |
JP2010066569A JP5510813B2 (ja) | 2010-03-23 | 2010-03-23 | 楽音生成装置 |
JP2010-066569 | 2010-03-23 | ||
JP2010-066570 | 2010-03-23 | ||
JP2010066571A JP5510815B2 (ja) | 2010-03-23 | 2010-03-23 | 楽音生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102237126A CN102237126A (zh) | 2011-11-09 |
CN102237126B true CN102237126B (zh) | 2015-06-24 |
Family
ID=44202893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110076001.0A Expired - Fee Related CN102237126B (zh) | 2010-03-23 | 2011-03-23 | 乐音产生设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8183452B2 (zh) |
EP (1) | EP2369581B1 (zh) |
CN (1) | CN102237126B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2009125541A1 (ja) * | 2008-04-10 | 2011-07-28 | パナソニック株式会社 | 不揮発性記憶モジュール、アクセスモジュール、楽音データファイル生成モジュール及び楽音生成システム |
US8183452B2 (en) * | 2010-03-23 | 2012-05-22 | Yamaha Corporation | Tone generation apparatus |
KR102074329B1 (ko) * | 2013-09-06 | 2020-02-06 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
JP6090204B2 (ja) * | 2014-02-21 | 2017-03-08 | ヤマハ株式会社 | 音響信号発生装置 |
US9747048B2 (en) * | 2014-06-02 | 2017-08-29 | Micron Technology, Inc. | Systems and methods for packing data in a scalable memory system protocol |
JP6447024B2 (ja) * | 2014-11-07 | 2019-01-09 | カシオ計算機株式会社 | 楽音発生装置、処理方法、プログラムおよび電子楽器 |
JP6517549B2 (ja) * | 2015-03-13 | 2019-05-22 | 東芝メモリ株式会社 | メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム |
JP6146686B2 (ja) * | 2015-09-15 | 2017-06-14 | カシオ計算機株式会社 | データ構造、データ格納装置、データ取り出し装置および電子楽器 |
US10083682B2 (en) * | 2015-10-06 | 2018-09-25 | Yamaha Corporation | Content data generating device, content data generating method, sound signal generating device and sound signal generating method |
JP6388048B1 (ja) * | 2017-03-23 | 2018-09-12 | カシオ計算機株式会社 | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
CN107863093B (zh) * | 2017-11-03 | 2022-01-07 | 得理电子(上海)有限公司 | 发音管理方法、装置、电子乐器及存储介质 |
US10599835B2 (en) | 2018-02-06 | 2020-03-24 | Vmware, Inc. | 32-bit address space containment to secure processes from speculative rogue cache loads |
CN111341290A (zh) * | 2020-02-28 | 2020-06-26 | 腾讯音乐娱乐科技(深圳)有限公司 | 确定音频的波形的方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463183A (en) * | 1993-04-27 | 1995-10-31 | Yamaha Corporation | Musical tone forming apparatus |
US5892170A (en) * | 1996-06-28 | 1999-04-06 | Yamaha Corporation | Musical tone generation apparatus using high-speed bus for data transfer in waveform memory |
EP0747878B1 (en) * | 1995-06-07 | 2001-09-26 | Yamaha Corporation | Music system, tone generator and musical tone-synthesizing method |
CN1674090A (zh) * | 2004-03-26 | 2005-09-28 | 雅马哈株式会社 | 声音波形合成器 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5342990A (en) * | 1990-01-05 | 1994-08-30 | E-Mu Systems, Inc. | Digital sampling instrument employing cache-memory |
US5446237A (en) * | 1992-01-08 | 1995-08-29 | Yamaha Corporation | Electronic musical instrument having a control section memory for generating musical tone parameters |
US5742695A (en) * | 1994-11-02 | 1998-04-21 | Advanced Micro Devices, Inc. | Wavetable audio synthesizer with waveform volume control for eliminating zipper noise |
US5809342A (en) * | 1996-03-25 | 1998-09-15 | Advanced Micro Devices, Inc. | Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory |
EP1026662B1 (en) * | 1996-08-05 | 2004-09-22 | Yamaha Corporation | Software sound source |
SG67993A1 (en) * | 1996-08-30 | 1999-10-19 | Yamaha Corp | Sound source system based on computer software and method of generating acoustic waveform data |
US5977469A (en) * | 1997-01-17 | 1999-11-02 | Seer Systems, Inc. | Real-time waveform substituting sound engine |
US5918302A (en) * | 1998-09-04 | 1999-06-29 | Atmel Corporation | Digital sound-producing integrated circuit with virtual cache |
JP3867529B2 (ja) * | 2001-08-09 | 2007-01-10 | ヤマハ株式会社 | 電子音楽装置及びプログラム |
EP1304680A3 (en) * | 2001-09-13 | 2004-03-03 | Yamaha Corporation | Apparatus and method for synthesizing a plurality of waveforms in synchronized manner |
JP3838353B2 (ja) * | 2002-03-12 | 2006-10-25 | ヤマハ株式会社 | 楽音生成装置および楽音生成用コンピュータプログラム |
JP2003330464A (ja) * | 2002-05-14 | 2003-11-19 | Casio Comput Co Ltd | 自動演奏装置および自動演奏方法 |
US7220908B2 (en) * | 2002-09-12 | 2007-05-22 | Yamaha Corporation | Waveform processing apparatus with versatile data bus |
US7378586B2 (en) * | 2002-10-01 | 2008-05-27 | Yamaha Corporation | Compressed data structure and apparatus and method related thereto |
US7728213B2 (en) * | 2003-10-10 | 2010-06-01 | The Stone Family Trust Of 1992 | System and method for dynamic note assignment for musical synthesizers |
EP1640989B1 (en) * | 2004-09-22 | 2016-04-27 | Yamaha Corporation | Electronic music apparatus and music-related data display method |
JP4089687B2 (ja) | 2004-12-28 | 2008-05-28 | ヤマハ株式会社 | 楽音信号処理装置 |
US7420115B2 (en) | 2004-12-28 | 2008-09-02 | Yamaha Corporation | Memory access controller for musical sound generating system |
US20060218321A1 (en) * | 2005-03-24 | 2006-09-28 | Yamaha Corporation | Control system and communication system for digital mixer |
JP4274152B2 (ja) * | 2005-05-30 | 2009-06-03 | ヤマハ株式会社 | 楽音合成装置 |
JP2007011217A (ja) * | 2005-07-04 | 2007-01-18 | Yamaha Corp | 楽音合成装置及びプログラム |
US7807914B2 (en) * | 2007-03-22 | 2010-10-05 | Qualcomm Incorporated | Waveform fetch unit for processing audio files |
US7678986B2 (en) * | 2007-03-22 | 2010-03-16 | Qualcomm Incorporated | Musical instrument digital interface hardware instructions |
JP4930147B2 (ja) * | 2007-03-29 | 2012-05-16 | ヤマハ株式会社 | 音響信号処理装置 |
JP5169658B2 (ja) | 2008-09-11 | 2013-03-27 | 東ソー株式会社 | レジスト現像液 |
JP2010066571A (ja) | 2008-09-11 | 2010-03-25 | Sony Corp | 偏光素子及びその製造方法、並びに液晶プロジェクタ |
JP2010066570A (ja) | 2008-09-11 | 2010-03-25 | Seiko Epson Corp | 位置調整装置、及び、光学装置の製造装置 |
US8263849B2 (en) | 2008-12-12 | 2012-09-11 | Young Chang Research And Development Institute | Flash memory based stored sample electronic music synthesizer |
JP5534388B2 (ja) * | 2009-03-23 | 2014-06-25 | ヤマハ株式会社 | 楽音生成装置 |
US8183452B2 (en) * | 2010-03-23 | 2012-05-22 | Yamaha Corporation | Tone generation apparatus |
-
2011
- 2011-03-21 US US13/052,919 patent/US8183452B2/en active Active
- 2011-03-23 CN CN201110076001.0A patent/CN102237126B/zh not_active Expired - Fee Related
- 2011-03-23 EP EP11159392A patent/EP2369581B1/en not_active Not-in-force
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463183A (en) * | 1993-04-27 | 1995-10-31 | Yamaha Corporation | Musical tone forming apparatus |
EP0747878B1 (en) * | 1995-06-07 | 2001-09-26 | Yamaha Corporation | Music system, tone generator and musical tone-synthesizing method |
US5892170A (en) * | 1996-06-28 | 1999-04-06 | Yamaha Corporation | Musical tone generation apparatus using high-speed bus for data transfer in waveform memory |
CN1674090A (zh) * | 2004-03-26 | 2005-09-28 | 雅马哈株式会社 | 声音波形合成器 |
Also Published As
Publication number | Publication date |
---|---|
US20110232460A1 (en) | 2011-09-29 |
US8183452B2 (en) | 2012-05-22 |
CN102237126A (zh) | 2011-11-09 |
EP2369581B1 (en) | 2012-11-21 |
EP2369581A1 (en) | 2011-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102237126B (zh) | 乐音产生设备 | |
US8035021B2 (en) | Tone generation apparatus | |
US7420115B2 (en) | Memory access controller for musical sound generating system | |
JP2671747B2 (ja) | 楽音形成装置 | |
EP1580729B1 (en) | Sound waveform synthesizer | |
US20010017076A1 (en) | Apparatus and method for reproducing or recording, via buffer memory, sample data supplied from storage device | |
US20010015121A1 (en) | Automatic play apparatus and function expansion device | |
JP4998046B2 (ja) | 楽音発生装置 | |
TW300298B (zh) | ||
JPH1020860A (ja) | 楽音発生装置 | |
CN101192197B (zh) | 解交织器、解交织方法及采用其的超声多普勒诊断仪 | |
JP5510813B2 (ja) | 楽音生成装置 | |
JP2962217B2 (ja) | 楽音生成装置及び方法 | |
JP5510815B2 (ja) | 楽音生成装置 | |
JP5510814B2 (ja) | 楽音生成装置 | |
US20100217922A1 (en) | Access module, storage module, musical sound generating system and data writing module | |
JP5360474B2 (ja) | 楽音生成装置 | |
US6247095B1 (en) | Digital reverberation processor and method for generating digital reverberation | |
JP3873160B2 (ja) | 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体 | |
JPH0128398B2 (zh) | ||
CN117196929A (zh) | 基于定长数据包的软硬件交互系统 | |
JPH11133957A (ja) | 音楽情報送信方法、音楽情報送信装置、音楽情報受信処理方法、音楽情報受信処理装置、及び音楽情報送受信装置 | |
EP1050818A1 (en) | Computer memory access | |
JP3858905B2 (ja) | メモリ使用音源装置 | |
JP5007560B2 (ja) | 信号処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150624 |