乐音产生装置以及乐音产生方法

文档序号:2826069阅读:209来源:国知局
乐音产生装置以及乐音产生方法
【专利摘要】本发明涉及乐音产生装置以及乐音产生方法。电子乐器对应于总线的空闲状态,从存储器读出预定通道量的波形的取样数据,在经过各通道的讹误判定定时前读出没有完成的情况下,针对该读出没有完成的通道检测总线的溢出即总线讹误。而且,在检测出该总线讹误的情况下,针对该读出没有完成的通道的发音,执行不进行入口数据的生成,而使发音停止等的预定的控制。
【专利说明】乐音产生装置以及乐音产生方法
[0001]本申请基于2012年7月5日在日本国申请的N0.2012-151597主张优先权,将其内容全部援引到本说明书中。
【技术领域】
[0002]本发明涉及乐音产生装置以及乐音产生方法。
【背景技术】
[0003]以往,公知有一种预先存储取样得到的波形的数据,通过读出该数据来产生各种频率的乐音的乐音产生装置。
[0004]例如,专利文献I中记载有一种按I个取样周期中的各通道(channel)的每个时隙以分时方式读出被PCM (Pulse Coded Modulation)编码了的波形的数据作为音源的数据,并将多个通道的乐音合成而产生乐音的技术。
[0005]S卩,专利文献I中记载了一种在各通道的时隙中从存储器读出波形的数据,反复进行将乐音合成并输出的处理的技术。
[0006]然而,包括日本特开2003 - 157082号公报所记载的技术在内,在以往的乐音产生装置中,基于对削减成本的要求,有时将存储波形的数据的存储器构成为与其他用途共享的共享存储器。
[0007]在将存储波形的数据的存储器构成为共享存储器的情况下,多个进程对存储器的访问发生冲突的可能性提高,作为等待对存储器进行访问的结果,存在招致处理延迟的情况。
[0008]尤其在可能同时产生的乐音的通道数增加的情况下,这样的状况显著出现。
[0009]这样,在以往的乐音产生装置中,用于产生乐音的处理效率不是十分高。
[0010]鉴于此,日本特愿2012 - 052616号公报中为了提高用于在乐音产生装置中产生乐音的处理效率而记载有如下的技术。即,记载了一种针对正在进行发音的各通道,生成表示存储器的读出地址的入口数据,并暂时存储到存储器接口,基于入口数据以及总线的空闲状态来从存储器中读出预定通道量的波形的取样数据的技术。
[0011]然而,在日本特愿2012 — 052616号公报所记载的技术中,存在因入口数据超过了可处理数据数的上限等而导致总线的负荷增大,发生存储器频带以上的访问的情况。这样的情况下,在音源部的波形生成处理的开始定时之前无法接受必要的波形数据,结果,产生与发音要求的音不同的音。

【发明内容】

[0012]本发明鉴于这样的状况而提出,其目的在于,在乐音产生装置中降低总线的负荷,并且不产生与发音要求的音不同的音。
[0013]为了实现上述目的,本发明的一个方式的乐音产生装置具备:多个发音通道,基于被分别分配的波形数据,按预定的顺序进行乐音生成处理;读出单元,在接收到该多个发音通道内的指定的发音通道应该被分配的波形数据的读出请求时,读出通过总线连接的存储器中所存储的波形数据;读出判定单元,判定由上述读出单元执行的上述波形数据的读出在上述指定的发音通道的乐音生成处理开始前是否已完成;和控制单元,在上述读出判定单元判定为上述波形数据的读出没有完成的情况下,针对上述指定的发音通道的发音,执行与上述乐音生成处理不同的控制。
[0014]另外,本发明的一个方式的乐音产生方法是具有基于被分别分配的波形数据按预定的顺序进行乐音生成处理的多个发音通道的乐音产生装置所执行的乐音产生方法,其特征在于,在接收到该多个发音通道内的指定的发音通道应该被分配的波形数据的读出请求时,读出通过总线连接的存储器中所存储的波形数据;判定上述波形数据的读出在上述指定的发音通道的乐音生成处理开始前是否已完成;在判定为上述波形数据的读出没有完成的情况下,针对上述指定的发音通道的发音,执行与上述乐音生成处理不同的控制。
【专利附图】

【附图说明】
[0015] 图1是表示具备本发明的一个实施方式涉及的乐音产生装置的电子乐器的硬件构成的框图。
2
3
4
5
6
7
89
[0016]图
[0017]图
[0018]图
[0019]图
[0020]图
[0021]图
[0022]图
[0023]图
[0024]图10
[0025]图11
[0026]图12
[0027]图13
[0028]图14
[0029]图15
[0030]图16示意图。
[0031]图17是表示针对发音继续过程中的通道无法取得波形的取样数据时的标志动作的示意图。
[0032]图18
[0033]图19
[0034]图20
[0035]图21
是表示乐音产生装置的构成的框图。
是表示波形生成部的具体构成的框图。
是表示音源控制参数的格式的示意图。
是表示波形存储器接口部的具体构成的框图。
是表示总线流通量(bus traffic)监视部的构成例的框图。
是表示入口数据的格式的示意图。
是表示请求状态(request status)信息的格式的示意图。
是表示取样数据缓存用RAM中的存储区域的格式的示意图。
是表示总线谁误(bus corruption)检测部的具体构成的框图。
是表示主计数器与各通道的时隙之间的关系的示意图。
是表示电子乐器中的乐音的生成步骤的示意图。
是表示RAM中存储入口数据的状态的示意图。
是表示电子乐器中的整体动作的时间图的示意图。
是表示发音停止中的通道的标志动作的示意图。
是表示针对发音继续过程中的通道取得了波形的取样数据时的标志动作的
是表示入口数据生成处理的流程图。
是表示波形生成处理的流程图。
是表示总线讹误检测处理的流程图。
是表示入口数据生成处理、波形生成处理、以及总线讹误检测处理的相互处
理关系的流程图。【具体实施方式】
[0036]以下,利用附图对本发明的实施方式进行说明。
[0037][整体构成]
[0038]图1是表示具备本发明的一个实施方式涉及的乐音产生装置的电子乐器的硬件构成的框图。
[0039]乐音产生装置20例如构成为电子乐器I的音源。其中,在本实施方式中,以电子乐器I作为电子钢琴等键盘乐器而被实现的情况为例来进行说明,但也可以构成为其他乐器。
[0040]在图1 中,电子乐器 I 具备 CPU (Central Processing Unit) 11、由 ROM (ReadOnly Memory)以及RAM (Random Access Memory)等构成的存储器12、存储器控制器13、总线14、输入部15、乐音产生装置20、和混音器(mixer) 21。
[0041]CPUll按照位于存储器12内的ROM所记录的程序来执行各种处理。例如,CPUll执行使乐音产生装置20产生与经由由键盘构成的输入部15而输入的按键操作对应的声音的处理、或执行与由用户输入的电子乐器I的设定相关的处理。
[0042]另外,位于存储器12内的RAM适当存储有在CPU11、乐音产生装置20执行各种处理的方面所必要的数据等。即,该RAM成为被电子乐器I整体的各功能部共享的共享存储器。具体而言,RAM中存储有CPUll执行画面显示等各种处理时所使用的参数等。
[0043]存储器控制器13控制CPU11、乐音产生装置20向存储器的访问。具体而言,存储器控制器13相对于作为总线主设备而动作的CPU11、乐音产生装置20,作为总线从设备进行动作,根据来自总线主设备的要求,从指定的地址读出数据。
[0044]CPU11、存储器12经由总线14相互连接。该总线14上还连接着输入部15、乐音产生装置20。
[0045]输入部15具备键盘以及用于输入各种信息的开关。而且,输入部15在键被按下的情况下,将用于识别该键的键编号、表示键的按下强度的信息(以下称为“速率:velocity”)向CPUll输出,或将由用户输入的各种信息向CPUll输出。
[0046]除了上述部件以外,该电子乐器I还可以具有用于输出图像、声音的显示器、扬声器以及DAC等。另外,也可以被附加对用于控制电子乐器I的各种程序、数据进行存储的硬盘或者 DRAM (Dynamic Random Access Memory)等。
[0047]乐音产生装置20根据CPUll的指示,读出存储器12中存储的波形数据,产生乐音(具体为表不乐音的数字信号)。在本实施方式中,对乐音产生装置20具有能够同时发出128个通道的音的复调(polyphonic)功能,并进行按将I个取样周期128分割而得到的每I个期间(时隙)产生各通道ChO?chl27的音的处理来进行说明。其中,乐音产生装置20的具体构成将后述。
[0048]混音器21将由乐音产生装置20产生的乐音合成,向未图不的DAC等输出。该DAC将表不由混音器21输入的乐音的数字信号变换成模拟信号,向扬声器等输出。
[0049][乐音产生装置20的构成]
[0050]接下来,对乐音产生装置20的构成进行说明。
[0051]图2是表示乐音产生装置20的构成的框图。
[0052]在图2中,乐音产生装置20具备波形生成部100、波形存储器接口部200、总线讹误检测部300,在本实施方式中,它们全部形成在同一电路芯片内。
[0053]该波形生成部100、波形存储器接口部200以及总线讹误检测部300分别与总线14连接。
[0054]波形生成部100对波形存储器接口部200提供入口请求(entry request)、入口数据(entry data)以及地址,反过来从波形存储器接口部200接收数据。另外,波形生成部100对总线讹误检测部300提供入口请求以及入口数据,反过来从总线讹误检测部300接收讹误信息。其中,入口请求、入口数据以及地址的详细说明将在后面叙述。
[0055]波形存储器接口部200对总线讹误检测部300提供取样接收完成信号以及取样接收完成通道编号。其中,取样接收完成信号以及取样接收完成通道编号将后述。
[0056][波形生成部100的构成]
[0057]图3是表示波形生成部100的具体构成的框图。
[0058]波形生成部100按照基于乐音产生装置20的系统时钟而生成的主计数器me来动作。具体而言,由构成为11比特的计数器的主计数器me的上位7比特来规定各通道ChO?chl27的128个时隙。而且,主计数器me的下位4比特将各个时隙进一步分割成16字段(field)。
[0059]波形生成部100按照被依次输入的主计数器mc,以各通道chO?chl27的时隙开始为触发,计算出与各个通道对应的存储器12的地址,作为该通道的输入信息向波形存储器接口部200输出。
[0060]而且,在下一取样周期中的该通道的时隙结束定时之前,使用由波形存储器接口部200输入的波形数据来生成表不乐音的数字信号,并向混音器21输出。
[0061]在图3中,波形生成部100具备音源控制参数用RAM101、模式寄存器102、地址寄存器103?105、音调寄存器(pitch register) 106、选择器107?109、减法器110、步长值寄存器111、加法器112、入口数据生成部113、读取地址计算电路114、上次步长值寄存器115、波形计算部116、RAM仲裁部117。其中,根据波形生成部100中的处理内容,从CPU(未图示)向选择器107?109输入对选择哪个输入信号进行表示的选择信号,在各处理的阶段中使用的数据被传递到下一阶段的处理。
[0062]RAM仲裁部117控制从CPUll经由总线14对上述各寄存器的访问、以及上述选择器的动作的选择。
[0063]音源控制参数用RAMlOl中形成有与各通道chO?chl27对应的存储区域,各个存储区域中存储有控制音源的各种参数(以下称为“音源控制参数”)。
[0064]图4是表示音源控制参数用RAMlOl中存储的音源控制参数的格式的示意图。
[0065]在图4中,音源控制参数用RAMlOl中形成有与通道chO?通道chl27对应的存储区域,各通道的存储区域中存储有波形地址整数部A、波形地址小数部a、地址步长值η、再生模式值m、再生音调数据整数部P、再生音调数据小数部ρ、峰值W。其中,图4所示的地址用于示意性地表示各存储区域。
[0066]波形地址整数部A表示存储器12的读出地址中的整数部,波形地址小数部a表示存储器12的读出地址中的小数部。
[0067]地址步长值η表示存储器12中的从当前的读出地址起的步长值。
[0068]再生模式值m表示了对基于PCM再生乐音,还是基于差分PCM再生乐音进行表示的再生模式。
[0069]再生音调数据整数部P表示与读出波形的取样数据时的音高相伴的音调宽度中的整数部,再生音调数据小数部P表示音调宽度中的整数部。
[0070]峰值W表示在上次的取样周期从存储器12读出的取样数据的峰值。
[0071]返回到图3,模式寄存器102对经由RAM仲裁部117从音源控制参数用RAMlOl读出的再生模式值m暂时存储,并将所存储的再生模式值m向入口数据生成部113输出。
[0072]地址寄存器103对由加法器112计算出的地址(存储器12中的下一个读出地址)的波形地址整数部A暂时存储,并将所存储的波形地址整数部A向选择器109、减法器110以及入口数据生成部113输出。
[0073]地址寄存器104对经由RAM仲裁部117从音源控制参数用RAMlOl读出的波形地址整数部A暂时存储,并将所存储的波形地址整数部A向选择器108、减法器110、入口数据生成部113以及读取地址计算电路114输出。
[0074]地址寄存器105对由选择器107输入的波形地址小数部a暂时存储,并将所存储的波形地址小数部a向选择器108、109以及波形插值处理部116a输出。
[0075]音调寄存器106对经由RAM仲裁部117从音源控制参数用RAMlOl读出的再生音调数据整数部P以及再生音调数据小数部P暂时存储,并将所存储的再生音调数据整数部P以及再生音调数据小数部P向加法器112输出。
[0076]选择器107选择由加法器112计算出的地址(存储器12中的下一个读出地址)的波形地址小数部a或者从音源控制参数用RAMlOl读出的波形地址小数部a中的任意一个,向地址寄存器105输出。
[0077]选择器108选择由地址寄存器104输入的波形地址整数部A或者由地址寄存器105输入的波形地址小数部a中的任意一个,向加法器112输出。
[0078]选择器109选择由地址寄存器103输入的波形地址整数部A、由步长值寄存器111输入的地址步长值η、由地址寄存器105输入的波形地址小数部a、和由波形计算部116输入的峰值W中的任意一个,经由RAM仲裁部117向音源控制参数用RAMlOl输出。
[0079]减法器110从由地址寄存器103输入的下一个读出地址中的波形地址整数部A减去由地址寄存器104输入的当前的读出地址中的波形地址整数部A来计算出地址步长值η。而且,减法器110将计算出的地址步长值η向步长值寄存器111输出。
[0080]步长值寄存器111对由减法器110输入的地址步长值η暂时存储,并将所存储的地址步长值η向入口数据生成部113输出。
[0081]加法器112将由选择器108输入的波形地址整数部A或者波形地址小数部a、与由音调寄存器106输入的再生音调数据整数部P或者再生音调数据小数部P分别相加。而且,加法器112将加法运算结果向地址寄存器103或者选择器107输出。其中,在因波形地址小数部a与再生音调数据小数部P的相加而产生向整数进位的情况下,加法器112产生进位信号(carry signal),将进位反映到波形地址整数部A与再生音调数据整数部P的加法结果上。
[0082]入口数据生成部113以主计数器me的计数增加(count up)为动机而动作,根据从模式寄存器102输入的再生模式值m,来生成用于从存储器12读出接下来产生的乐音的数据的信息(以下称为“入口数据”)。该入口数据是用于从存储器12读出在下一个取样周期产生的乐音的数据的参数的集合。
[0083]具体而言,入口数据生成部113被输入主计数器me、来自模式寄存器102的再生模式值m、来自步长值寄存器111的地址步长值η、来自地址寄存器103的波形地址整数部Α、来自地址寄存器104的波形地址整数部Α。而且,在被输入的再生模式值m表示基于PCM进行再生的情况下,入口数据生成部113将从地址寄存器103输入的波形地址整数部A设定为存储器12的读出地址(以下适当称为“请求地址”)。另一方面,在被输入的再生模式值m表示基于差分PCM来进行再生的情况下,入口数据生成部113将从地址寄存器104输入的波形地址整数部A与地址步长值η相加的结果设定为存储器12的读出地址(请求地址)。
[0084]而且,入口数据生成部113将所设定的请求地址、表示读出的数据尺寸的字数(以下适当地称为“请求字数”)、通道编号(chO~chl27中的任意一个)、表示是否是发音开始的开始标志f、再生模式值m作为入口数据,向波形存储器接口部200以及总线讹误检测部300输出。此时,入口数据生成部113在使表示为对波形存储器接口部200以及总线讹误检测部300输出入口数据的入口请求信号为开启(on)状态(例如高电平)的基础上,输出入口数据。
[0085]其中,在被输入的再生模式值m表示基于PCM来进行再生的情况下,以读出地址为基准,来指定表示波形的 取样数据中的I个取样量的请求字数。另一方面,在被输入的再生模式值m表示基于差分PCM来进行再生的情况下,以读出地址为基准,来指定表示与步进数对应的取样量的请求字数。即,在差分PCM中,由于作为波形的取样数据,只表示了与先前的取样的差分,所以在步进数为2以上的情况下,为了累积从当前的地址到读出地址之间的取样数据而指定用于读出它们的请求字数。
[0086]在此,入口数据生成部113与主计数器me同步,在各通道的时隙开始的同时,将该通道的入口数据向波形存储器接口部200以及总线讹误检测部300输出。由于该入口数据的输出不伴随着对存储器12的访问,所以与进行到读出波形的取样数据来产生乐音的处理的情况相比,较早结束。
[0087]而且,不被各通道的时隙制约,以后使用在下一个取样周期中的该通道的时隙结束之前波形存储器接口部200从存储器12读出的波形的取样数据,由波形计算部116产生乐音。
[0088]并且,入口数据生成部113接收从总线讹误检测部300输出的讹误信息(将在图10中后述)。入口数据生成部113根据接收到讹误信息来禁止对应的通道的入口数据的生成。
[0089]其中,也可以取代入口数据生成部113而由后述的波形计算部116接收讹误信息。波形计算部116根据接收到讹误信息来停止乐音的产生。
[0090]读取地址计算电路114按照被依次输入的主计数器mc,来计算波形存储器接口部200中的取样数据缓存用RAM250的读出地址,并向取样数据缓存用RAM250输出。具体而言,读取地址计算电路114被输入主计数器me、再生模式值m、地址寄存器103存储的波形地址整数部A、以及地址寄存器104存储的波形地址整数部A。而且,读取地址计算电路114基于地址寄存器103存储的波形地址整数部A或者地址寄存器104存储的波形地址整数部A,按通道chO~chl27的每一个,生成与再生模式值m对应的取样数据缓存用RAM250的地址。读取地址计算电路114与主计数器me同步,按通道chO~chl27的每一个,将生成的取样数据缓存用RAM250的地址向取样数据缓存用RAM250输出。[0091]上次步长值寄存器115对经由RAM仲裁部117从音源控制参数用RAMlOl读出的地址步长值η暂时存储,并将所存储的地址步长值η向波形计算部116输出。上次步长值寄存器115存储的地址步长值η是在各通道中在上次的取样周期计算出的地址步长值。
[0092]波形计算部116根据从波形存储器接口部200的取样数据缓存用RAM250读出的波形的取样数据,生成对要再生的乐音进行表示的数字信号,并将生成的数字信号向混音器21输出。具体而言,波形计算部116被输入波形地址小数部a、和从取样数据缓存用RAM250读出的波形的取样数据。而且,波形计算部116参照从取样数据缓存用RAM250读出的波形的取样数据来计算峰值W。
[0093]另外,波形计算部116具备使用波形地址小数部a,在波形的取样数据间进行插值处理(例如线性插值等)的波形插值处理部116a。而且,在被指定了取样数据间的地址的情况下,波形计算部116通过利用波形插值处理部116a进行波形的插值处理,来计算峰值W。即,由波形计算部116生成表示乐音的数字信号。而且,波形计算部116将计算出的峰值W向选择器109输出。另外,波形计算部116将生成的数字信号向混音器21输出。
[0094][波形存储器接口部200的构成]
[0095]波形存储器接口部200若被波形生成部100输入了入口数据,则对被输入的入口数据暂时存储,在总线14为空闲状态的定时,从存储器12读出与所存储的入口数据对应的波形的取样数据。
[0096]而且,波形存储器接口部200对读出的波形的取样数据暂时存储,对应于来自波形生成部100的读出请求(基于读取地址计算电路114的地址的输入),将存储的波形的取样数据向波形生成部100输出。
[0097]图5是表示波形存储器接口部200的具体构成的框图。
[0098]在图5中,波形存储器接口部200具备入口处理部210、入口用RAM220、请求状态用RAM230、存储器总线接口部240、以及取样数据缓存用RAM250。
[0099]入口处理部210若被波形生成部100输入了入口数据,则将入口数据存储到按入口用RAM220中的每一个发音通道形成的区域。另外,入口处理部210若根据入口数据从存储器12读出波形的取样数据,则基于读出的结果,生成对上次的读出请求的内容进行表示的请求状态信息(后述)。而且,入口处理部210将请求状态信息存储到请求状态用RAM230中的按每个通道形成的区域。
[0100]另外,入口处理部210基于请求状态信息和入口数据,来生成用于从存储器12读出波形的取样数据的具体信息(以下适当地称为“存储器请求信息”)。入口处理部210根据存储器请求信息,经由总线14从存储器12读出波形的取样数据。
[0101]并且,入口处理部210参照来自在作为总线主设备发挥功能的各部中具备的总线流通量监视部217的监视信号,来决定一次从存储器12读出的数据量。即,在单位时间的总线的空闲时间较长的情况下,入口处理部210将一次从存储器12读出的数据量设定得较大,在单位时间的总线的空闲时间较短的情况下,入口处理部210将一次从存储器12读出的数据量设定得较小。
[0102]如图5所示,入口处理部210具备入口数据控制部211、写入指针用寄存器212、增量器(incrementer) 212a、读出指针用寄存器213、增量器213a、总线仲裁部214、入口数据用寄存器215、状态数据用寄存器216、总线流通量监视部217、存储器请求控制部218。[0103]入口数据控制部211若从波形生成部100接收到入口请求信号,则对写入指针用寄存器212输入锁存信号,使写入指针表示的地址加I。
[0104]另外,入口数据控制部211被输入来自入口数据用寄存器215的入口数据、和来自状态数据用寄存器216的请求状态信息。而且,入口数据控制部211基于入口数据和请求状态信息来生成存储器请求信息。例如,入口数据控制部211参照由入口数据表示的地址以及字数、由请求状态信息表示的地址以及读出完毕的字数,生成存储器请求信息,以便读出继已经读出的数据之后的数据。而且,入口数据控制部211将生成的存储器请求信息向存储器请求控制部218输出。
[0105]在此,入口数据控制部211参照来自总线流通量监视部217以及在其他总线主设备中具备的总线流通量监视部的流通量信息,来动态决定一次从存储器12读出的数据量,并且使决定出的读出数据量包含在存储器请求信息中。因此,从存储器12向波形存储器接口部200读出波形的取样数据的动作能够根据总线14的空闲状态高效地进行。
[0106]另外,如果从存储器12对存储器请求信息所表示的波形的取样数据的读出完成,则从存储器请求控制部218向入口数据控制部211输出表示接收完成的信号。而且,在完成了来自存储器12的下一个读出的准备的情况下,入口数据控制部211将新的存储器请求信息向存储器请求控制部218输出,进行接下来的数据的读出。
[0107]并且,如果经由存储器请求控制部218进行了各通道的波形的取样数据的读出,则入口数据控制部211将与该读出结果对应的请求状态用RAM230的地址(确定各通道的存储区域的地址)以及写入数据(即请求状态信息)与允许写入信号一同向请求状态用RAM230输出。另外,在从入口用RAM220读出入口数据的情况下,入口数据控制部211将表示同一通道的存储区域的地址向请求状态用RAM230输出,从对应的地址读出请求状态信息并存储到状态数据用寄存器216中。
[0108]写入指针用寄存器212存储有对入口用RAM220中的入口数据的写入地址进行表示的写入指针。该写入指针的值对应于每当入口请求信号被输入时便从入口数据控制部211输出的锁存信号,由增量器212a逐次增加1,若达到最大值则返回为O。由此,入口用RAM220的各区域被循环指定。
[0109]读出指针用寄存器213存储有对入口用RAM220中的入口数据的读出地址进行表示的读出指针。该读出指针的值每当入口数据控制部211从入口用RAM220进行入口数据的读出时,便将该读出请求信号作为锁存信号,由增量器213a逐次增加1,若达到最大值则返回为O。由此,入口用RAM220的各区域被循环指定。
[0110]总线仲裁部214对来自写入指针用寄存器212的写入地址的指定、和来自读出指针用寄存器213的读出地址的指定进行仲裁。在仲裁的结果是接受了来自写入指针用寄存器212的写入地址的指定的情况下,总线仲裁部214将写入指针表示的地址与表示能够写入的允许写入信号一同向入口用RAM220输出。另一方面,在仲裁的结果是接受了来自读出指针用寄存器213的读出地址的指定的情况下,总线仲裁部214将读出指针表示的地址向入口用RAM220输出。
[0111]入口数据用寄存器215对从入口用RAM220读出的入口数据暂时存储,并将所存储的入口数据向入口数据控制部211输出。
[0112]状态数据用寄存器216对从请求状态用RAM230读出的请求状态信息暂时存储,并将所存储的请求状态信息向入口数据控制部211输出。
[0113]总线流通量监视部217计数对作为总线主设备的波形存储器接口部200取得了总线14的访问权进行表示的占线(busy)信号被输出的次数,按每I个取样周期将计数值向入口数据控制部211输出。其中,总线流通量监视部217的计数值按每I个取样周期被复位。
[0114]图6是表示总线流通量监视部217的构成例的框图。
[0115]在图6中,总线流通量监视部217具备增量器217a、选择器217b、寄存器217c。
[0116]增量器217a被输入来自存储器总线接口部240的占线信号以及寄存器217c的输出信号(计数值)。而且,增量器217a对应于被输入占线信号而将寄存器217c的输出信号加I,并向选择器217b输出。
[0117]选择器217b被输入增量器217a的输出信号、零信号、和主计数器me。零信号是总是表示零的值的信号。而且,在主计数器me的值变为零的情况下,选择器217b选择零信号,在主计数器me的值为零以外的情况下,选择器217b选择增量器217a的输出信号。由选择器217b选择出的信号被向寄存器217c输出。
[0118]寄存器217c被输入系统时钟,与各时钟的上升同步,保持选择器217b的输出信号所表示的值。寄存器217c将对所保持的值进行表示的输出信号(流通量信息)向增量器217a以及入口数据控制部211输出。
[0119]返回到图5,存储器请求控制部218若被入口数据控制部211输入了存储器请求信息,则参照由存储器请求信息表示的存储器12的地址以及读出的字数,从存储器12读出波形的取样数据。此时,存储器请求控制部218在经由存储器总线接口部240取得了总线14的访问权后,从存储器12读出波形的取样数据。
[0120]另外,存储器请求控制部218若被存储器总线接口部240输入了取样接收完成信号(表示来自存储器12的数据的读出完成的信号),则向入口数据控制部211通知数据的读出完成,成为进一步受理数据的读出的状态。
[0121]入口用RAM220作为乐音产生装置20的局部存储器,对从波形生成部100输入的入口数据进行存储。
[0122]图7是表示入口用RAM220中存储的入口数据的格式的示意图。
[0123]在图7中,入口用RAM220中形成有能够应对通道chO?chl27同时发音的情况的数量、即128个存储区域,各存储区域中存储有再生模式值m、表示是否是发音开始的开始标志f、请求字数RW、通道编号ch、请求地址RA。其中,图7所示的地址用于示意性地表示各存储区域。
[0124]另外,各存储区域通过写入指针以及读出指针来循环指定地址。即,入口用RAM220构成了依次存储多个入口数据的环形缓冲区。
[0125]返回到图5,请求状态用RAM230作为乐音产生装置20的局部存储器,存储对从入口数据控制部211输入的表示上次的读出请求的内容的请求状态信息。
[0126]图8是表示请求状态用RAM230中存储的请求状态信息的格式的示意图。
[0127]在图8中,请求状态用RAM230中形成有与从存储器12已经读出了波形的取样数据的上次的入口数据分别对应的请求状态信息的存储区域。各存储区域中存储有在上次的取样周期中被处理的请求地址RA、以该请求地址为基准已被读出的字数XW、再生模式值m。[0128]另外,各存储区域通过写入指针以及读出指针来指定地址。即,请求状态用RAM230按每个通道确保固定地址的存储区域,在各存储区域中存储有多个请求状态信息。
[0129]其中,图8所示的地址用于示意性地表示各存储区域。
[0130]返回到图5,在从存储器请求控制部218要求了读出存储器12中的波形的取样数据的情况下,存储器总线接口部240针对总线14请求访问权的取得,在取得了访问权后,从存储器12读出波形的取样数据。此时,存储器总线接口部240将表示保有总线14的访问权的占线信号向总线流通量监视部217输出。
[0131]并且,若从存储器12对波形的取样数据的读出完成,则存储器总线接口部240将取样接收完成信号以及取样接收完成通道编号向总线讹误检测部300输出。取样接收完成信号是表示从存储器12对波形的取样数据的读出完成的信号。另外,取样接收完成通道编号是入口数据中含有的通道编号,是与读出完成了的取样数据对应的通道编号。
[0132]取样数据缓存用RAM250中形成有与各通道chO?chl27对应的存储区域,在各个存储区域中存储从存储器12读出的波形的取样数据。
[0133]图9是表示取样数据缓存用RAM250中的存储区域的格式的示意图。
[0134]在图9中,取样数据缓存用RAM250中形成有与通道chO?chl27对应的128个存储区域。各通道的存储区域中存储有表示峰值W的数据,取样数据缓存用RAM250的一个存储区域中存储的取样数据的数(字数)根据再生模式值m (表示PCM与差分PCM中的哪一个)而不同。这里,一个存储区域中最大存储与16个地址对应的16个取样数据。其中,图9所示的地址用于示意性地表示各存储区域。
[0135]在取样数据缓存用RAM250中,若由波形生成部100指定了取样数据缓存用RAM250的地址,则该地址中存储的波形的取样数据被向波形生成部100输出。
[0136]其中,取样数据缓存用RAM250由双端口存储器构成,能够同时进行来自波形生成部100的数据的读出、和来自存储器总线接口部240的数据的写入。不过,通过进行总线的仲裁,也能够由单端口存储器构成取样数据缓存用RAM250。
[0137][总线讹误检测部300的构成]
[0138]图10是表示总线讹误检测部300的具体构成的框图。
[0139]在图10中,总线讹误检测部300具备讹误判定标志控制部301、讹误判定标志寄存器302、讹误标志寄存器303、OR电路304、选择器305。
[0140]讹误判定标志控制部301控制从CPUll经由总线14对上述各寄存器的访问、以及上述的选择器的动作的选择。
[0141]另外,讹误判定标志控制部301若从波形生成部100接收到入口请求以及入口数据,则与主计数器me同步,将入口数据内的通道编号向讹误判定标志寄存器302输出。讹误判定标志寄存器302与主计数器me同步地接收该通道编号,将与该通道编号对应的区域的标志设为“HIGH”。
[0142]另外,讹误判定标志控制部301若从波形存储器接口部200接收到取样接收完成信号以及取样接收完成通道编号,则与主计数器me同步地将取样接收完成通道编号向讹误判定标志寄存器302输出。
[0143]讹误判定标志寄存器302与主计数器me同步地接收该取样接收完成通道编号,将与该取样接收完成通道编号对应的区域的标志设为“LOW”。因此,在讹误判定标志控制部301从波形生成部100接收该通道的入口请求以及入口数据起到接收该通道的取样接收完成信号以及取样接收完成通道编号为止的期间,讹误判定标志寄存器302的该通道的标志区域保持“HIGH”不变。其中,讹误判定标志寄存器302中形成有与通道chO?chl27对应的128个标志区域。
[0144]并且,讹误判定标志寄存器302在下一取样周期中的该通道的波形生成处理之前,与主计数器me同步地将标志区域的各值向讹误标志寄存器303输出。
[0145]讹误标志寄存器303在下一取样周期中的该通道的波形生成处理之前,与主计数器me同步地接收讹误判定标志寄存器302的标志区域的各值,存储为讹误标志寄存器303的标志区域的各值。
[0146]其中,讹误标志寄存器303中形成有与通道chO?chl27对应的128个标志区域。因此,在讹误判定标志控制部301从波形生成部100接收该通道的入口请求以及入口数据起到下一个取样周期中的该通道的波形生成处理之前的期间,当没有接收到该通道的取样接收完成信号以及取样接收完成通道编号时,讹误标志寄存器303的该通道的标志区域变为 “HIGH”。
[0147]变为“HIGH”的情况意味着总线讹误检测部300在下一个取样周期中的该通道的波形生成处理之前的期间无法从存储器12接收波形的取样数据的情况。在这样的情况下,检测出该通道中的总线讹误。
[0148]讹误标志寄存器303与主计数器me同步地将各讹误标志的区域的值向OR电路304以及选择器305输出。
[0149]在从讹误标志寄存器303输入的各讹误标志的区域的值的OR值为“HIGH”的情况下,OR电路304经由总线14向CPUll输出中断(interrupt)信号。因此,如果该各讹误标志的区域的值中任意一个为“HIGH”,则输出中断信号。
[0150]接收到中断信号的CPUll识别讹误标志寄存器303的各讹误标志区域中的为“HIGH”的区域,判定在哪个通道中检测出总线讹误。并且,CPUll访问上述的波形计算部116,针对检测出总线讹误的通道停止乐音的产生。
[0151]选择器305与主计数器me同步地选择该各讹误标志的区域的值中的“HIGH”,作为讹误信息向波形生成部100输出。
[0152]详细而言,该各讹误标志的区域的值与主计数器me的上位7比特中的I个计数对应的128个时隙分别与对应。鉴于此,选择器305选择存储与各时隙分别对应的各讹误标志的区域的值中为“HIGH”的值的讹误标志的区域。而且,选择器305将表示对与选择出的讹误标志的区域对应的通道检测出总线讹误的信息作为讹误信息向波形生成部100输出。
[0153]例如,在与通道O的时隙对应的讹误标志的区域的值为“HIGH”的情况下,对通道O输出谁误信息。
[0154][动作]
[0155]接下来,对电子乐器I的动作进行说明。
[0156]以下,使用图11?图13对电子乐器I的动作进行说明,适当地参照图2?图9。
[0157]图11是表示主计数器me与各通道的时隙之间的关系的示意图。
[0158]如图11所示,在电子乐器I中,由主计数器me的上位7比特巡回一圈的期间定义I个取样周期。而且,在I个取样周期内,形成有与主计数器me的上位7比特中的I个计数对应的128个时隙。其中,主计数器mc的下位4比特将各个时隙分割成16个字段。
[0159]而且,在电子乐器I的乐音的产生步骤中,将与各通道中的发音相关的处理分割成用于读取波形的取样数据的存储器12的地址(入口数据)的输出、和根据波形的取样数据表示波形的数字信号的生成。
[0160]S卩,电子乐器I执行入口数据的输出来作为与各通道的时隙对应的处理,关于波形的取样数据的读出以及表示波形的数字信号的生成,对应于总线14的空闲状态,选择定时来进行。
[0161]图12是教师电子乐器I中的乐音的生成步骤的示意图。
[0162]如图12所示,在各取样周期中,如果移至与各通道对应的时隙,则波形生成部100的入口数据生成部113根据由模式寄存器102输入的再生模式值m,生成用于从存储器12读出接下来产生的乐音的数据的入口数据。
[0163]例如,若移至通道chO的时隙,则入口数据生成部113生成通道chO的入口数据。
[0164]其中,仅在正进行该通道的发音的情况下,由入口数据生成部113生成入口数据。
[0165]而且,由入口数据生成部113生成的入口数据对应于该时隙,在该时隙内或者该时隙结束后与入口数据生成完成一同被存储到波形存储器接口部200的入口用RAM220。
[0166]例如,对应于通道ChO的时隙而生成的入口数据,与通道ChO的时隙内或者入口数据生成完成一同被存储到写入指针所表示的入口用RAM220的存储区域。此时,对应于入口数据的写入完成,写入指针所表示的地址被加I。另外,读出指针表示了比写入指针小I个以上存储区域的地址。
[0167]在各通道的时隙中,这样的入口数据的生成和向入口用RAM220的存储被作为必须的处理。
[0168]而且,在该通道的时隙以后,波形存储器接口部200的入口数据控制部211基于从各总线流通量监视部输入的总线14的流通量信息,来判定总线14的空闲状态。例如,如果从各总线流通量监视部输入的流通量信息所表示的总线14的占线信号的计数值的合计为设定的基准值以下,则波形存储器接口部200判定为总线14的占有率低,开始从存储器12读出设定的数据量的波形的取样数据的处理(突发传输处理)。另外,在从该状态起计数值增加了的情况下,波形存储器接口部200从设定的数据量减少来进行来自存储器12的读出,在从该状态起计数值减少的情况下,波形存储器接口部200从设定的数据量增加来进行来自存储器12的读出。
[0169]关于该波形的取样数据的读出处理,能够集中多个通道量的读出来进行,例如,根据总线14的空闲状态,能够对应于发音中的通道chO?ch3的入口数据,从存储器12集中读出波形的取样数据。
[0170]如此读出的波形的取样数据被存储到波形存储器接口部200的取样数据缓存用RAM250,处于被缓冲存储的状态。
[0171]其中,对于在被输出了入口数据的时隙以后从存储器12开始了读出的波形的取样数据,根据随后的读出的状态,来决定总线讹误的检测有无。
[0172]S卩,当最迟在下一个取样周期中的该通道的时隙之前波形的取样数据的读出完成时(详细内容参照后述图16的说明),成为被缓冲存储到取样数据缓存用RAM250的状态,不通过总线讹误检测部300检测总线讹误。[0173]与此相对,当在下一个取样周期中的该通道的时隙之前波形的取样数据的读出没有完成时(详细内容参照后述图17的说明),利用总线讹误检测部300检测总线讹误。
[0174]关于更进一步的总线讹误的检测的详细内容,将参照图14?图17后述。
[0175]在波形的取样数据的读出完成的情况下,如果生成通道chO?chl27的入口数据的上述的取样周期结束,则在下一个取样周期中,波形生成部100的波形计算部116从取样数据缓存用RAM250依次读出通道chO?chl27的波形的取样数据,将乐音(即表示乐音的波形的数字信号)向混音器21输出。
[0176]通过这样的动作,在生成了入口数据的时隙的几乎I个取样周期后,产生乐音。其中,由于取样频率约为44kHz,所以I个取样周期约为0.02ms,能够几乎不延迟地再生乐音。
[0177][具体的动作例]
[0178]接下来,对在电子乐器I中实际生成乐音的具体例进行说明。
[0179]图13是表示在入口用RAM220中存储入口数据的状态的示意图。
[0180]以下,参照图13,对首先通道ch3和通道10开始发音,接着停止通道3的发音,并且通道16开始发音的例子进行说明。
[0181]在图13中,在取样周期Tl中,入口用RAM220的地址001以及地址002被存储开始了发音的通道3的入口数据E031以及通道10的入口数据E101。
[0182]根据图13,入口数据E031是在取样周期Tl被写入的入口数据,表示了再生模式为16bitPCM,开始标志为I (是发音开始),读出字数为2,通道为3,读出地址为“OOOOOOOOh”(h表示16进制显示)。另外,入口数据ElOl是在取样周期Tl被写入的入口数据,表示了再生模式为16bitPCM,开始标志为I (是发音开始),读出字数为2,通道为10,读出地址为“00000IOOh”。
[0183]其中,在取样周期Tl结束时,写入指针(图13中的WP)表示地址003,读出指针(图13中的RP)表示地址001。
[0184]接下来,在取样周期T2中,入口用RAM220的地址003以及地址004被存储发音中的通道3的入口数据E032以及通道10的入口数据E102。
[0185]在入口数据E032中,相对于入口数据E031,开始标志变化为O (不是发音开始),读出地址变化为“00000002h”。另外,在入口数据E102中,相对于入口数据E101,开始标志变化为O (不是发音开始),读出地址变化为“00000102h”。
[0186]其中,在取样周期T2结束时,写入指针表示地址005,读出指针表示地址003。
[0187]接着,在取样周期T3中,入口用RAM220的地址005以及地址006被存储发音中的通道10的入口数据E103以及开始了发音的通道16的入口数据E161。
[0188]在入口数据E103中,相对于入口数据E102,读出地址变化为“00000104h”。另外,入口数据E161是在取样周期T3被写入的入口数据,表示了再生模式为16bitPCM,开始标志为I (是发音开始),读出字数为2,通道为16,读出地址为“00040000h”。
[0189]在此,由于通道3的入口数据未被存储于入口用RAM220,所以可知通道3将取样周期T2的入口数据作为最后,结束了发音。
[0190]其中,在取样周期T3结束时,写入指针表示地址007,读出指针表示地址005。
[0191]图14是示意性地表示电子乐器I中的整体动作的时间图。
[0192]在图14中,按通道chO?chl27每一个,表不了入口输出定时、总线谁误判定定时、讹误判定标志、以及讹误标志的关系。另外,根据图14,由主计数器me的上位7比特巡回一圈的期间定义I个取样周期。而且,在I个取样周期内,形成有与主计数器me的上位7比特中的I个计数对应的128个时隙。chO?chl27各通道的处理与该128个时隙对应。入口数据的输出仅对发音中的通道进行,入口数据的输出定时成为各通道处理的结束定时附近。
[0193]接下来,对入口输出定时、总线讹误判定定时、讹误判定标志、以及讹误标志的关系进行说明。以下,仅对通道chO的关系进行说明,对于其他通道chi?chl27而言,也满足同样的关系。
[0194]首先,在第η (η为自然数)个取样周期中,在通道chO的处理的结束定时附近从入口数据生成部113输出入口数据(图14中的(I))。
[0195]如果入口数据被输出,则设定讹误判定标志寄存器302中存在的通道O的讹误判定标志(图14中的⑵)。
[0196]若根据存储器总线接口部240从存储器12接收到波形的取样数据,讹误判定标志控制部301从存储器总线接口部240接收到取样接收完成信号,则讹误判定标志寄存器302中存在的通道chO的讹误判定标志被复位(图14中的(3))。
[0197]但是,在讹误判定标志控制部301未从存储器总线接口部240接收取样接收完成信号的情况下,讹误判定标志寄存器302中存在的通道chO的讹误判定标志不被复位。
[0198]在第(η + I)个取样周期的通道Cho处理即将开始之前,进行通道chO的讹误判定(图14中的(4))。此时,在通道chO的讹误判定标志被设定的情况下,讹误标志寄存器303中存在的通道chO的讹误标志被设定,在通道chO的讹误判定标志未被设定的情况下,该讹误标志未被设定。
[0199]以上,在图14中,按每个通道chO?chl27表不了入口输出定时、总线谁误判定定时、讹误判定标志、以及讹误标志的关系。接下来,参照图15至图17,关注个别的通道,对发音停止中的通道的标志动作、针对发音继续中的通道无法取得波形的取样数据时的标志动作、以及针对发音继续中的通道无法取得波形的取样数据时的标志动作进行说明。
[0200]图15是表示发音停止中的通道chx (X = O?127)的标志动作的示意图。
[0201]由于通道chx为发音停止中,所以通道chx的入口数据不从入口数据生成部113输出(图15中的(I))。由于通道X的入口数据未被输出,所以通道X的讹误判定标志未被设定(图15中的(2))。因此,在下一个取样周期的通道X处理即将开始之前,即使进行通道X的讹误判定,通道X的讹误标志也不被设定(图15中的(3))。在下一个取样周期中入口数据也不被输出(图15中的(4))。
[0202]图16是表示针对发音继续中的通道X (X = O?127)无法取得波形的取样数据时的标志动作的示意图。
[0203]由于通道X为发音继续中,所以通道X的入口数据被从入口数据生成部113输出(图16中的(I ))。由于通道X的入口数据被输出,所以通道X的讹误判定标志被设定(图16中的(2 ))。由于在移至下一个取样周期之前通道X的波形的取样数据的接收完成(图16中的(3)),所以通道X的讹误判定标志被复位(图16中的(4))。因此,在下一个取样周期的通道X处理即将开始之前,即使进行通道X的讹误判定,通道X的讹误标志也不被设定(图16中的(5))。由于是发音继续中,所以在下一个取样周期中通道X的入口数据被输出(图16中的(6))。
[0204]图17是表示针对发音继续中的通道X (X = O?127)无法取得波形的取样数据时的标志动作的示意图。
[0205]由于通道X为发音继续中,所以通道X的入口数据被从入口数据生成部113输出(图17中的(I))。由于通道X的入口数据被输出,所以通道X的讹误判定标志被设定(图17中的(2))。并且,请求通道X的波形的取样数据(图17中的(3))。由于即使在下一个取样周期的通道X处理即将开始之前波形的取样数据的接收也未完成,所以维持通道X的讹误判定标志被设定的状态,设定通道X的讹误标志(图17中的(4))。因此,控制成在下一个取样周期中通道X的入口数据未被输出(图16中的(5))。
[0206][电子乐器I的处理算法]
[0207]接下来,对实现上述动作的电子乐器I的处理算法进行说明。
[0208]电子乐器I的处理算法主要由入口数据生成处理、波形生成处理、总线讹误检测处理这3个构成,这3个处理相互协作来实现上述的动作。其中,这3个相互的处理关系通过参照图21的对应的步骤能够容易地理解。
[0209][入口数据生成处理]
[0210]图18是表示入口数据生成处理的流程图。
[0211]入口数据生成处理由乐音产生装置20的波形生成部100执行,在伴随着电子乐器I的电源接通而开始后,被反复执行,直到电源断开为止。
[0212]在图18中,如果开始入口数据生成处理,则波形生成部100在步骤SI中基于主计数器me来判定当前的时隙。具体而言,波形生成部100判定当前的时隙与哪个通道对应。
[0213]在步骤S2中,波形生成部100判定是否有与该时隙对应的通道的发音。S卩,波形生成部100判定是否正在进行与该通道对应的按键操作。
[0214]当没有与该时隙对应的通道的发音时,在步骤S2中判定为否,处理移至步骤S7。
[0215]与此相对,当存在于该时隙对应的通道的发音时,在步骤S2中判定为是,处理移至步骤S3。
[0216]在步骤S3中,波形生成部100判定是否接收到与该时隙对应的通道的讹误信息。
[0217]当接收到与该时隙对应的通道的讹误信息时,在步骤S3中判定为是,处理移至步骤S7。由此,由于在接收到与该时隙对应的通道的讹误信息的情况下,不执行步骤S4?S6的处理,所以可控制成不输出与该时隙对应的通道的入口数据。
[0218]另一方面,当没有接收到与该时隙对应的通道的讹误信息时,在步骤S3中判定为否,处理移至步骤S4。
[0219]在步骤S4中,波形生成部100生成正在发音的通道的入口数据。
[0220]在步骤S5中,波形生成部100将正在发音的通道的入口请求向讹误判定标志控制部301输出。同时,波形生成部100将在步骤S4中生成的入口数据向讹误判定标志控制部301输出。
[0221]在步骤S6中,波形生成部100将入口数据存储到入口用RAM220。此时,写入指针表示的入口用RAM220的地址被写入入口数据。
[0222]在步骤S7中,波形生成部100判定在I个取样周期中最终通道的时隙是否结束。
[0223]当在I个取样周期中最终通道的时隙没有结束时,在步骤S7中判定为否,处理移至步骤SI。
[0224]与此相对,当在I个取样周期中最终通道的时隙结束时,在步骤S7中判定为是,处理移至步骤S8。
[0225]在步骤S8中,波形生成部100在针对发音中的通道没有接收到该通道的讹误信息的情况下,对波形计算部116指示I个取样周期量的波形的产生。
[0226]如果这样的步骤S8的处理结束,则入口数据生成处理结束。
[0227]在图18中,在所有通道量的入口数据生成结束后执行波形生成指示的处理(步骤S8),但该处理也可以在比此靠前的时隙区间内的预定的决定定时进行。
[0228][波形生成处理]
[0229]图19是表示波形生成处理的流程图。
[0230]波形生成处理由乐音产生装置20的波形存储器接口部200执行,在伴随着电子乐器I的电源接通而开始后,被反复执行,直到电源断开。
[0231]在图19中,如果开始波形生成处理,则波形存储器接口部200在步骤Sll中判定总线14的空闲状态。
[0232]在步骤S12中,波形存储器接口部200从入口用RAM220读出与空闲状态对应的通道数的入口数据。此时,从读出指针所表示的入口用RAM220的地址按顺序读出入口数据。
[0233]在步骤S13中,波形存储器接口部200参照读出的各入口数据,从存储器12读出波形的取样数据。
[0234]在步骤S14中,波形存储器接口部200对每个入口数据,判定从存储器12读出波形的取样数据的完成。
[0235]在步骤S15中,波形存储器接口部200仅在读出完成的情况(在步骤S14中进行了该内容判定的情况)下,才将从存储器12读出的波形的取样数据存储到取样数据缓存用RAM250。
[0236]在步骤S16中,波形存储器接口部200仅在读出完成的情况(在步骤S14中进行了该内容判定的情况)下,才将取样接收完成信号向讹误判定标志控制部301输出。另外,该情况下,波形存储器接口部200还将取样接收完成通道编号向讹误判定标志控制部301输出。因此,讹误判定标志寄存器302的该通道的标志区域变为“LOW”。
[0237]另一方面,与从该通道输出了入口数据无关,在从存储器12读出波形的取样数据没有完成的情况下,由于取样接收完成信号以及取样接收完成通道编号的任意一个都不向讹误判定标志控制部301输出,所以讹误判定标志寄存器302的该通道的标志区域保持“HIGH” 不变。
[0238]在步骤S17中,波形存储器接口部200判定针对I个取样周期中的所有通道量的波形的取样数据是否执行了从存储器12的读出处理。
[0239]在针对I个取样周期中的所有通道量的波形的取样数据没有执行从存储器12的读出处理的情况下,在步骤S17中判定为否,处理返回到步骤S11,反复执行其以后的处理。
[0240]与此相对,在针对I个取样周期中的所有通道量的波形的取样数据执行了从存储器12的读出处理的情况下,在步骤S17中判定为是,处理移至步骤18。
[0241]在步骤S18中,波形存储器接口部200根据取样数据缓存用RAM250中存储的各通道的波形的取样数据生成表示乐音的波形的数字信号。然后,波形存储器接口部200将表示各通道的乐音的波形的数字信号向混音器21输出。
[0242]由此,利用混音器21将各通道的乐音合成,经由未图示的DACXDigital To AnalogConverter)从扬声器等输出乐音。
[0243]在图19中,在针对所有通道量的波形取样数据的读出处理执行结束后执行乐音产生处理(步骤S18),但该处理也可以在比此靠前的时隙区间内的预定的决定定时进行。
[0244][总线讹误检测处理]
[0245]图20是表示总线讹误检测处理的流程图。
[0246]总线讹误检测处理由乐音产生装置20的总线讹误检测部300执行,在伴随着电子乐器I的电源接通而开始后,被反复执行,直到电源断开为止。另外,在I个取样周期中针对通道ChO?127的各通道执行总线讹误检测处理。
[0247]在图20中,如果开始总线讹误检测处理,则在步骤S21中,总线讹误检测部300判定是否从入口数据生成部113接收到该通道的入口请求。
[0248]在接收到的情况下,在步骤S21中判定为是,处理移至步骤S22。
[0249]在步骤S22中,总线讹误检测部300设定该通道的讹误判定标志。即,总线讹误检测部300将讹误判定标志寄存器302的与该通道对应的标志区域设为“HIGH”。
[0250]在执行了这样的步骤S22的处理的情况下,或者没有接收到上述的该通道的入口请求而在步骤S21中判定为否的情况下,处理移至步骤S23。
[0251]在步骤S23中,总线讹误检测部300判定是否从存储器总线接口部240接收到取样接收完成信号。
[0252]在接收到的情况下,在步骤S23中判定为是,处理移至步骤S24。
[0253]在步骤S24中,总线讹误检测部300将该通道的讹误判定标志复位。即,总线讹误检测部300将讹误判定标志寄存器302的与该通道对应的标志区域设为“LOW”。
[0254]在执行了这样的步骤S24的处理的情况下,或者没有接收到上述的取样接收信号而在步骤S23中判定为否的情况下,处理返回到步骤S21,反复执行上述的处理。
[0255]在反复进行该步骤S21?S24的处理的过程中,并行进行以下叙述的步骤S25?S28的处理。
[0256]首先,在步骤S25中,总线讹误检测部300判定是否是该通道的讹误判定定时、SP是否是下一个取样周期的该通道的通道处理即将开始之前。
[0257]在不是该通道的讹误判定定时的情况下,在步骤S25中判定为否,处理返回到步骤S23,反复进行其以后的处理。即,当通过步骤S23?S25的处理总线讹误检测部300在该通道的讹误判定定时之前没有接收到取样接收完成信号时,不进行讹误判定标志的复位。
[0258]与此相对,在是该通道的讹误判定定时的情况下,在步骤S25中判定为是,处理移至步骤S26。
[0259]在步骤S26中,总线讹误检测部300判定该通道的讹误判定标志是否是设定中。即,总线讹误检测部300判定讹误判定标志寄存器302的与该通道对应的标志区域是否为“HIGH”。
[0260]在该通道的讹误判定标志不是设定中的情况下,在步骤S26中判定为否,再次返回到步骤S25的处理。
[0261]与此相对,在该通道的讹误判定标志为设定中的情况下,在步骤S26中判定为是,处理移至步骤S27。
[0262]在步骤S27中,总线讹误检测部300设定该通道的讹误标志。即,总线讹误检测部300将讹误标志寄存器303的与该通道对应的标志区域设为“HIGH”。
[0263]在步骤S28中,总线讹误检测部300向CPUll输出中断信号,并且向波形生成部100输出讹误信息,再次返回到步骤S25的处理。
[0264]如以上说明那样,本实施方式涉及的电子乐器I将波形的取样数据存储到作为共享存储器的存储器12中,利用乐音产生装置20以分时方式对与复调数对应的多个通道的发音进行处理。
[0265]而且,电子乐器I针对正在进行发音的各通道,在该通道的时隙中进行表示存储器12的读出地址的入口数据的生成,并存储到入口用RAM220中。
[0266]而且,电子乐器I对应于总线14的空闲状态,从存储器12读出预定通道量的波形的取样数据,在经过各通道的讹误判定定时前读出未完成的情况下,针对该读出未完成的通道检测总线14的溢出(overflow)即总线讹误。
[0267]而且,在检测出该总线讹误的情况下,针对该读出未完成的通道的发音,执行不进行入口数据的生成,而使发音停止等的预定控制。
[0268]因此,能够针对检测出总线讹误的通道执行预定的控制。另外,由于在检测出总线讹误的情况下,入口数据不被输出,所以在向存储器12访问时能减少对总线14造成的负担。另外,由于在使发音停止的情况下,入口数据也不被输出,所以不仅能减少对总线14造成的负担,而且能够不产生与发音要求不同的音。
[0269]另外,在本实施方式涉及的电子乐器I中,根据接收到与各通道对应的波形的取样数据的入口请求,将与各通道对应的讹误判定标志设为“HIGH”,当判定为在经过讹误判定定时前执行了波形的取样数据的读出时,将与各通道对应的讹误判定标志设为“LOW”。
[0270]并且,在经过讹误判定定时的时刻,当与各通道对应的讹误判定标志为“HIGH”时,检测为发生了总线14的溢出即总线讹误而将与各通道对应的讹误标志设为“HIGH”。
[0271]而且,在讹误标志为“HIGH”的情况下,关于与各通道对应的波形的取样数据的入口请求所对应的各通道的发音,执行不进行入口数据的生成,而使发音停止等的预定控制。
[0272]因此,在电子乐器I中,由于通过设置判定总线讹误的专用标志即讹误标志,可将讹误标志维持为“HIGH”,所以能够可靠地执行预定的控制。另外,通过设置讹误判定标志,能够识别入口请求的产生的有无。
[0273]此外,本发明并不限定于上述的实施方式,能够实现本发明的目的的范围中的变形、改进等也包括在本发明中。
[0274]在上述的实施方式中,以应用本发明的乐音产生装置20是电子乐器的音源的情况为例进行了说明,但并没有特别限定于此。
[0275]例如,本发明也能够应用于具有发音功能的通常电子设备。具体而言,例如,本发明能够应用于笔记本型个人计算机、移动终端、便携式游戏机等。
[0276]上述的一系列处理可以由硬件执行,也可以由软件执行。
[0277]换言之,图2、3、5、10的构成只不过是例示,没有特别限定。即,只要乐音产生装置20具备能够将上述的一系列处理作为整体执行的功能即可,为了实现该功能而使用什么样的功能模块并不特别限定于图2、3、5、10的例子。[0278]另外,一个功能模块可以由硬件单体构成,也可以由软件单体构成,还可由它们的组合构成。
[0279]在利用软件执行一系列处理的情况下,构成该软件的程序被从网络、记录介质安装到计算机等中。
[0280]计算机可以是组装于专用硬件的计算机。另外,计算机也可以是通过安装各种程序而能够执行各种功能的计算机,例如通用的个人计算机。
[0281] 含有这样的程序的记录介质不仅可由为了向用户提供程序而与装置主体独立设置的可移动存储介质构成,也可以由以预先组装于装置主体的状态向用户提供的记录介质等构成。可移动存储介质例如由磁盘(包括软盘)、光盘或者光磁盘等构成。光盘例如由CD —ROM (Compact Disk — Read Only Memory)> DVD (Digital Versatile Disk)等构成。光磁盘由MD (Mini — Disk)等构成。另外,以预先设置于装置主体的状态向用户提供的记录介质例如由记录有程序的图1的存储器12内的ROM、或未图示的硬盘等构成。
[0282]此外,在本说明书中,关于对记录介质中记录的程序进行描述的步骤而言,沿着其顺序以时间序列进行的处理当然不一定以时间序列被处理,也包括并列或者分别独立被执行的处理。
[0283]另外,在本说明书中,系统的用语意味着由多个装置、多个单元等构成的整体上的
>J-U ρ?α装直。
[0284]以上,对本发明的几个实施方式进行了说明,但这些实施方式只是例示,并不限定本发明的技术范围。本发明能够采取其他的各种实施方式,并且,在不脱离本发明主旨的范围能够进行省略、置换等各种变更。这些实施方式及其变形包含在本说明书等所记载的发明范围和主旨中,并且属于权利要求所记载的发明和其等同的范围。
【权利要求】
1.一种乐音产生装置,其特征在于,具备:多个发音通道,基于被分别分配的波形数据,按预定的顺序进行乐音生成处理;读出单元,在接收到该多个发音通道内的指定的发音通道应该被分配的波形数据的读出请求时,读出通过总线连接的存储器中所存储的波形数据;读出判定单元,判定由上述读出单元执行的上述波形数据的读出在上述指定的发音通道的乐音生成处理开始前是否已完成;和控制单元,在上述读出判定单元判定为上述波形数据的读出没有完成的情况下,针对上述指定的发音通道的发音,执行与上述乐音生成处理不同的控制。
2.根据权利要求1所述的乐音产生装置,其特征在于, 上述读出判定单元具有:第一标志开启单元,根据接收到与上述发音通道对应的上述波形数据的读出请求,使与上述发音通道对应的第一标志开启;第一标志关闭单元,当判定为上述读出单元对上述波形数据的读出在经过预定定时之前已完成的情况下,使与上述发音通道对应的上述第一标志关闭;和第二标志开启单元,当在经过上述预定定时的时刻与上述发音通道对应的上述第一标志为开启时,检测出上述总线已溢出,使与上述发音通道对应的第二标志开启;上述控制单元在上述第二标志为开启的情况下,针对与上述波形数据的读出请求对应的上述发音通道的发音,执行上述控制。
3.根据权利要求1所述的乐音产生装置,其特征在于,作为上述控制,上述控制单元使应该由上述指定的发音通道发音的乐音停止。
4.根据权利要求1所述的乐音产生装置,其特征在于,上述多个发音通道、读出单元、读出判定单元以及控制单元形成在同一电路芯片内,该电路芯片经由上述总线与上述存储器连接。
5.一种乐音产生方法,是具有基于被分别分配的波形数据按预定的顺序进行乐音生成处理的多个发音通道的乐音产生装置所执行的乐音产生方法,其特征在于,在接收到该多个发音通道内的指定的发音通道应该被分配的波形数据的读出请求时,读出通过总线连接的存储器中所存储的波形数据;判定上述波形数据的读出在上述指定的发音通道的乐音生成处理开始前是否已完成;在判定为上述波形数据的读出没有完成的情况下,针对上述指定的发音通道的发音,执行与上述乐音生成处理不同的控制。
6.根据权利要求5所述的乐音产生方法,其特征在于,根据接收到与上述发音通道对应的上述波形数据的读出请求,使与上述发音通道对应的第一标志开启;当判定为上述波形数据的读出在经过预定定时之前已完成的情况下,使与上述发音通道对应的上述第一标志关闭;当在经过上述预定定时的时刻与上述发音通道对应的上述第一标志为开启时,检测出上述总线已溢出,使与上述发音通道对应的第二标志开启,由此来判定上述波形数据的读出是否在上述指定的发音通道的乐音生成处理开始前已完成;在上述第二标志为开启的情况下,针对与上述波形数据的读出请求对应的上述发音通道的发音,执行上述控制,由此在判定为上述波形数据的读出没有完成的情况下,针对上述指定的发音通道的发音,执行与上述乐音生成处理不同的控制。
7.根据权利要求5所述的乐音产生方法,其特征在于,作为上述控制,使 应该由上述指定的发音通道发音的乐音停止。
【文档编号】G10H7/00GK103531193SQ201310280888
【公开日】2014年1月22日 申请日期:2013年7月5日 优先权日:2012年7月5日
【发明者】长坂浩明 申请人:卡西欧计算机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1