电子乐器、电子乐器的控制方法、以及记录介质与流程

文档序号:15618823发布日期:2018-10-09 21:52阅读:188来源:国知局

本申请主张以2017年3月24日申请的日本国专利申请特愿2017-058581为基础的优先权,将该基础申请的内容全部引入到本申请中。

本发明涉及电子乐器、电子乐器的控制方法、以及记录介质。



背景技术:

公知有装备了光键盘的电子乐器,与自动演奏同步地使键盘上应演奏的键发光,由此演奏者能够在乐曲演奏上取得进步。

为了使即使是初学者也能容易地进行这样的乐器演奏课,以往已知有如下的光键盘乐器的技术:只要按键盘上的键的定时和所记录的旋律的输出定时吻合,不管按哪个键旋律都会被再现。

另外,为了使真正的乐器演奏课成为可能,以往已知有这样的光键盘乐器的技术:与应按键的旋律对应的键全部发光,按那些发光的键时再现旋律。

但是,在只要定时吻合不管按哪个键旋律都会再现的光键盘乐器的以往技术中,对于有些用户而言可能过于简单。

另外,在正确地按了与应按键的旋律对应的全部发光的键时旋律会再现的光键盘乐器的以往技术中,对于有些用户而言可能太难。



技术实现要素:

在本发明中,在演奏者演奏曲子时,减少使演奏者指定操作件的次数,因此能够快乐且简单地进行演奏。

本发明的一实施例的电子乐器包括用于指定音高的多个操作件以及处理器,其特征在于,上述处理器执行以下处理:第1区间优先音显示处理,曲包含至少具有第1区间以及与上述第1区间接续的第2区间的多个区间,为了使演奏者指定上述第1区间所包含的多个音高中的一个音高所表示的第1区间优先音,至少使该第1区间优先音被显示;以及自动演奏处理,通过上述第1区间优先音被指定,使发音部发出与上述第1区间优先音对应的音高,并且进行到上述第2区间所包含的多个音高中的一个音高所表示的第2区间优先音之前的音为止使发音部发音的自动演奏。

在该电子乐器中,上述区间至少包括一个拍子的区间长度,上述第1区间的区间长度和上述第2区间的区间长度可以是相同的长度,也可以是不同的长度。例如,上述第1区间的区间长度可以是一个拍子的区间长度也可以是多个拍子的区间长度,可以是一个小节的区间长度也可以是多个小节的区间长度,也可以是任何长度。上述第2区间可以是与上述第1区间的区间长度相同的长度,也可以是不同的长度。上述处理器也可以执行按上述区间分别决定用于使演奏者指定的优先音的优先音决定处理。而且上述处理器也可以执行按上述区间将在强拍的定时使演奏者指定的音高决定为优先音的优先音决定处理。假设使上述第1区间的区间长度和上述第2区间的区间长度为相同的长度,若在相同的定时(一定的节奏)使演奏者指定操作件,则能更简单且快乐地演奏。

也可以在上述强拍的定时在某区间为切分音的情况下,将上述某区间之前的区间的最末尾音决定为上述某区间的优先音。另外,上述处理器可以执行在通过从上述曲的曲数据确定出和弦构成音的和弦构成音确定处理能够确定出和弦构成音的情况下将上述确定出的和弦构成音中音长不同的一个音决定为上述优先音的优先音决定处理。上述优先音决定处理也可以在通过上述和弦构成音确定处理不能够确定出和弦构成音的情况下,将上述区间中的最高音决定为上述优先音。也可以进行这样的处理,分别决定各区间的优先音。

在本发明的电子乐器是键盘乐器的情况下,也可以上述多个操作件是键盘所包含的多个白键以及多个黑键,在上述第1区间优先音显示处理中,使上述多个白键以及多个黑键中的任一个键发光。也可以在上述自动演奏中,输出基于与上述曲对应的歌词的歌声。若通过演奏者指定操作件来输出歌声,能够更快乐地演奏。

另外,本发明的一实施方式的电子乐器包括用于指定音高的多个操作件以及处理器,其特征在于,上述处理器执行以下处理:第1区间优先音显示处理,曲包含至少具有第1区间以及与上述第1区间接续的第2区间的多个区间,为了使演奏者指定上述第1区间所包含的多个音高中的一个音高所表示的第1区间优先音,至少使该第1区间优先音被显示;以及自动演奏处理,每当上述多个操作件中的任一个操作件被指定,使发音部发出与上述第1区间优先音对应的音高,并且进行到上述第2区间所包含的多个音高中的一个音高所表示的第2区间优先音之前的音为止使发音部发音的自动演奏。

即使演奏者未必指定与上述第1区间优先音对应的操作件,每次上述多个操作件中的任一操作件被指定使自动演奏进行,也能快乐且简单地演奏。

附图说明

结合以下附图考虑以下详细的记述,能够得到本申请的更深一层的理解。

图1是表示电子键盘乐器的一实施方式的外观例的图。

图2是表示电子键盘乐器的控制系统的一实施方式的硬件构成例的框图。

图3是表示自动演奏曲数据的数据构成例的图。

图4是表示键点亮控制数据的数据构成例的图。

图5是表示本实施方式中的电子乐器的控制处理例的主流程图。

图6是表示初始化处理的详细例的流程图。

图7是表示开关处理的详细例的流程图。

图8是表示节拍变更处理的详细例的流程图。

图9是表示自动演奏曲读入处理的详细例的流程图。

图10是本实施方式的动作说明图。

图11是表示自动演奏开始处理的详细例的流程图。

图12是表示按键/离键处理的详细例的流程图。

图13是表示自动演奏插入(日语:割込み)处理的详细例的流程图。

具体实施方式

以下,对于用于实施本发明的形态,边参照附图边详细地进行说明。在本实施方式中,首先,对于将自动演奏的曲数据(以下称为“自动演奏曲数据”)按规定的区间长度划分得到的每个区间、例如按由自动演奏曲数据的拍子(4拍子、3拍子等)决定的多拍(例如4拍、3拍等)而决定的每小节,根据自动演奏曲数据决定优先音。优先音是表示各小节或者各拍等各规定区间分别包含的多个音符中至少一个音符所表示的音。该优先音是例如在小节内的强拍(包括中强拍)的定时通过自动演奏曲数据被音符开的乐音。优先音也可以包括在小节内的弱拍的定时被音符开的乐音。另外,优先音的候补为和弦构成音的情况下,其中例如能够构成旋律的一个乐音被决定为优先音。而且,在本实施方式中,从自动演奏曲数据的开头依次将所决定的优先音例如作为键盘上发光的键对演奏者显示的同时,每当演奏者对该显示的优先音的键进行按键等而进行演奏,就自动演奏到下一个优先音为止的自动演奏曲数据。优先音并不一定是小节、拍的开头音。在演奏者演奏曲子时,通过使演奏者指定各小节或者各拍等各规定区间所分别包含的多个音符中至少一个音符,减少使演奏者指定操作件的次数即可。

演奏者对作为优先音而发光的键进行按键等时,下一个优先音的键发光,并且自动演奏进行到该下一个优先音之前为止,于是演奏者暂时停止直到对该下一个发光的优先音的键进行按键等。若演奏者配合发光的定时对下一个发光发优先音的键进行按键等,则自动演奏进行到再下一个优先音的键发光为止。因此,演奏者能够在音乐上具有重要意义的例如各小节的强拍以及中强拍(4拍子的情况下第1拍和第2拍,3拍子的情况下第1拍)的定时,一边追赶发光的键,一边进行不勉强的课程。

另外,在本实施方式中,与自动演奏曲数据的自动演奏相配合地输出歌声。歌声例如基于与自动演奏曲数据对应地给予的歌词数据,以与该演奏对应的音高以及音长一边合成声音一边输出。该情况下,在演奏者对作为优先音而发光的键进行按键等时,下一个优先音的键发光,并且电子乐器的自动演奏进行到该下一个优先音之前为止,同时歌声的歌唱也进行。

由此,演奏者还能够期待歌声的歌唱,同时快乐地简单地进行演奏。

图1是表示电子键盘乐器的一实施方式100的外观例的图。电子键盘乐器100具备键盘101、第1开关面板102、第2开关面板103、lcd104(liquidcrystaldisplay:液晶显示器)等,键盘101由作为演奏操作件的多个键构成,各个键具有发光的功能,第1开关面板102指示音量的指定、自动演奏的节拍设定、自动演奏开始等各种设定,第2开关面板103进行自动演奏曲的选曲、音色的选择等,lcd104显示自动演奏时的歌词、各种设定信息。另外,电子键盘乐器100虽未特别地图示,但在里面部、侧面部、或者背面部等具备对由演奏生成的乐音进行放音的扬声器。

图2是表示图1的电子键盘乐器100的控制系统200的一实施方式的硬件构成例的图。在图2中,控制系统200具备如下的构成:cpu(中央运算处理装置)201,rom(只读存储器)202,ram(随机访问存储器)203,音源lsi(大规模集成电路)204,声音合成lsi205,连接图1的键盘101、第1开关面板102、以及第2开关面板103的按键扫描器206,对用于使图1的键盘101的各键发光的各led(lightemittingdiode:发光二极管)进行发光控制的led控制器207,以及连接图1的lcd104的lcd控制器208,分别与系统总线209连接。另外,在cpu201上连接有用于控制自动演奏的序列(sequence)的计时器210。进一步,从音源lsi204以及声音合成lsi205分别输出的数字乐音波形数据以及数字歌声声音数据通过d/a转换器211、212分别被转换为模拟乐音波形信号以及模拟歌声声音信号。模拟乐音波形信号以及模拟歌声声音信号由混频器213混合,其混合信号由放大器214放大后,从未特别图示的扬声器或者输出端子输出。

cpu201一边将ram203作为工作存储器使用一边执行rom202所存储的控制程序,由此执行图1的电子键盘乐器100的控制动作。另外,rom202存储上述控制程序以及各种固定数据之外,还存储自动演奏曲数据。

在cpu601中安装有本实施方式使用的计时器604,例如对电子键盘乐器100中的自动演奏的进行计时。

音源lsi204从未特别图示的波形rom中读出乐音波形数据,输出到d/a转换器211。音源lsi204具有同时使最大256个声音(vioce)振荡的能力。

声音合成lsi205被从cpu201给予歌词的文本数据和音高以及音长时,合成与之对应的歌声的声音数据,输出至d/a转换器212。

按键扫描器206经常扫描图1的键盘101的按键/离键状态、第1开关面板102以及第2开关面板103的开关操作状态,对cpu201施加插入并传达状态变化。

led控制器207是通过来自cpu201的指示使键盘101的键发光并对演奏者的演奏进行导航的ic(集成电路)。

lcd控制器609是控制lcd505的显示状态的ic。

对于具有图1以及图2的构成例的本实施方式的动作,以下详细地进行说明。图3是表示从图2的rom202读入到ram203的自动演奏曲数据的数据构成例的图。该数据构成例依照midi(musicalinstrumentdigitalinterface)用文件格式之一的标准midi文件的格式。该自动演奏曲数据由被称为块(chunk)的数据块构成。具体而言,自动演奏曲数据由位于文件的开头的标题块、与其接续的储存右手声部(part)用的演奏数据以及歌词数据的音轨块(trackchunk)1、储存左手声部用的演奏数据以及歌词数据的音轨块2构成。

标题块由chunkid、chunksize、formattype、numberoftrack、以及timedivision四个值构成。chunkid是与表示是标题块的"mthd"这一半角4字符对应的4字节的ascii码“4d546864”(数字为16进数)。chunksize是表示在标题块中除了chunkid和chunksize之外的、formattype、numberoftrack、以及timedivision的部分的数据长度的4字节数据,数据长度被固定为6字节:“00000006”(数字为16进数)。formattype在本实施方式的情况下是意味着使用多个音轨的格式1的2字节数据“0001”(数字为16进数)。numberoftrack在本实施方式的情况下是表示使用与右手声部和左手声部对应的2音轨的2字节的数据“0002”(数字为16进数)。timedivision是对时基(timebase)值进行表示的数据,该时基(timebase)值表示每4分音符的分辨率。在本实施方式的情况下,在10进法中为表示480的2字节的数据“01e0”(数字为16进数)。

音轨块1、2分别由chunkid、chunksize和由deltatime[i]以及event[i]构成的演奏数据组(0≤i≤l:音轨块1/右手声部的情况,0≤i≤m:音轨块2/左手声部的情况)构成。chunkid是与表示是音轨块的"mtrk"这一半角4字符对应的4字节的ascii码“4d54726b”(数字为16进数)。chunksize是表示在各音轨块中除去chunkid和chunksize的部分数据长度的4字节数据。deltatime[i]是表示从其之前的event[i-1]的执行时刻的等待时间(相对时间)的1~4字节的可变长度数据。event[i]是对电子键盘乐器100指示演奏的指令,有指示音符开、音符关、音色变更等的midi事件和指示歌词数据或者拍子的衍生事件(metaevent)。在各演奏数据组deltatime[i]以及event[i]中,从其之前的event[i-1]的执行时刻等待deltatime[i]后执行event[i],由此实现自动演奏。

图4是表示图2的ram203上所生成的键点亮控制数据的数据构成例的图。键点亮控制数据是用于使图1的键盘101上的任一键发光的控制数据,对于1曲自动演奏曲,由n个(n为1以上的自然数)数据组lightnote[0]~lightnote[n-1]构成。一个键点亮控制数据组lightnote[i](0≤i≤n-1)由lightontime以及lightonkey两个值构成。lightontime是表示以键发光的自动演奏开始时为基准的经过时刻的数据。lightonkey是表示发光的键的按键号码的数据。

图5是表示本实施方式中的电子乐器的控制处理例的主流程图。该控制处理例如是图2的cpu201执行从rom202下载到ram203的控制处理程序的动作。

cpu201在首先执行了初始化处理后(步骤s501),反复执行从步骤s502到s507的一系列处理。

在该重复的处理中,cpu201首先执行开关处理(步骤s502)。这里,cpu201基于图2的来自按键扫描器206的插入,执行与图1的第1开关面板102或者第2开关面板103的开关操作对应的处理。

接下来,cpu201基于图2的来自按键·扫描器207的插入来判断图1的键盘101的任一键是否被操作了(步骤s503),该判定为“是”时,执行按键/离键处理(步骤s506)。这里,cpu201按照由演奏者进行的任一键的按键或者离键的操作,对图2的音源lsi204输出发音开始或者发音停止的指示。另外,cpu201执行由演奏者按键的键是否与当前正在发光的键一致的判定处理以及伴随于此的控制处理。步骤s503的判定为“否”时,cpu201跳过步骤s506的处理。

而且,cpu201执行在音源lsi204中发音中的乐音的包络(envelope)控制等其他固定服务器处理(步骤s507)。

图6是表示图5的步骤s501的初始化处理的详细例的流程图。作为与本实施方式特别相关的处理,cpu201执行ticktime的初始化处理。在本实施方式中,自动演奏以ticktime这一时间为单位而进行。图3的作为自动演奏曲数据的标题块内的timedivision值指定的时基值表示4分音符的分辨率,该值例如为480时,4分音符具有480ticktime的时间长度。另外,图3的自动演奏曲数据的音轨块内的等待时间deltatime[i]值由ticktime的时间单位计数。这里,1ticktime实际为几秒因对自动演奏曲数据指定的节拍而不同。现在,将节拍值设为tempo[拍子/分],将上述时基值设为timedivision时,ticktime的秒数通过下式计算。

ticktime[秒]=60/tempo/timedivision(1)

于是,在图6的流程图所例示的初始化处理中,cpu201首先通过与上述(1)式对应的运算处理计算ticktime[秒](步骤s601)。此外,节拍值tempo,在初始状态下在图2的rom202中存储规定的值、例如60[拍子/秒]。或者,也可以在非易失性存储器中存储前一次结束时的节拍值。

接下来,cpu201对图2的计时器210设定由步骤s601中计算的ticktime[秒]进行的计时器插入(步骤s602)。其结果,在计时器210中每经过上述ticktime[秒],就对cpu201产生用于自动演奏的插入(以下记载为“自动演奏插入”)。因此,在基于该自动演奏插入由cpu201执行的自动演奏插入处理(后述的图13)中,每1ticktime就执行使自动演奏进行的控制处理。

接着,cpu201执行图2的ram203的初始化等其他初始化处理(步骤s603)。其后,cpu201结束图6的流程图所例示的图5的步骤s501的初始化处理。

图7是表示图5的步骤s502的开关处理的详细例的流程图。

cpu201首先由图1的第1开关面板102内的节拍变更开关来判断自动演奏的节拍是否变更了(步骤s701)。该判定为“是”时,cpu201执行节拍变更处理(步骤s702)。该处理的详细使用图8后述。步骤s701的判定为“否”时,cpu201跳过步骤s702的处理。

接下来,cpu201判断在图1的第2开关面板103中某个自动演奏曲是否被选曲了(步骤s703)。该判定为“是”时,cpu201执行自动演奏曲读入处理(步骤s704)。该处理的详细使用图9以及图10后述。步骤s703的判定为“否”时,cpu201跳过步骤s704的处理。

接着,cpu201判断在图1的第1开关面板102中自动演奏开始开关是否被操作了(步骤s705)。该判定为“是”时,cpu201执行自动演奏开始处理(步骤s706)。该处理的详细使用图11后述。步骤s705的判定为“否”时,cpu201跳过步骤s706的处理。

最后,cpu201判断在图1的第1开关面板102或者第2开关面板103中其他开关是否被操作了,执行与各开关操作对应的处理(步骤s707)。其后,cpu201结束图7的流程图所例示的图5的步骤s502的开关处理。

图8是表示图7的步骤s702的节拍变更处理的详细例的流程图。如前述那样,节拍值被变更时ticktime[秒]也变更。在图8的流程图中,cpu201执行与该ticktime[秒]的变更有关的控制处理。

首先,与图5的步骤s501的初始化处理所执行的图6的步骤s601的情况相同,通过与前述的(1)式对应的运算处理,cpu201计算ticktime[秒](步骤s801)。此外,节拍值tempo为,由图1的第1开关面板102内的节拍变更开关变更后的值被存储于ram203等中。

接下来,与图5的步骤s501的初始化处理所执行的图6的步骤s602的情况相同,cpu201对图2的计时器210设定由步骤s801中计算的ticktime[秒]进行的计时器插入(步骤s802)。其后,cpu201结束图8的流程图所例示的图7的步骤s702的节拍变更处理。

图9是表示图7的步骤s704的自动演奏曲读入处理的详细例的流程图。这里,执行从rom202将由图1的第2开关面板103选曲的自动演奏曲读入到ram203的处理、和生成图3的键点亮控制数据的处理。

首先cpu201以图2的数据格式从rom202将由图1的第2开关面板103选曲的自动演奏曲读入到ram203(步骤s901)。

接下来,cpu201对步骤s901中读入到ram203的自动演奏曲数据的音轨块1的event[i](1≤i≤l-1)中的全音符开事件,执行以下的处理。现在,将一个音符开事件设为event[j](j为1到l-1的范围的任一个)时,cpu201通过累计到对从曲开头到该音符开事件event[j]为止的整个事件的等待时间deltatime[0]~deltatime[j],从而计算以ticktime为单位的该音符开event[j]的事件发生时刻。cpu201对全部的音符开事件执行该处理,将各事件发生时刻存储到ram203(以上,步骤s902)。此外,在本实施方式中,为了使右手声部的键发光地进行导航,仅对音轨块1执行自动演奏曲读入处理。当然也可以选择音轨块2。

接下来,cpu201基于当前所指定的节拍值tempo和拍子,从自动演奏曲的开头设定各小节区间和小节内的拍(强拍/弱拍),将该信息存储到ram203中(步骤s903)。这里,节拍值tempo是由初始设定值或者图1的第1开关面板102内的节拍开关设定的值。另外,拍子由作为图3的自动演奏曲数据的音轨块1中的某一个event[i]而设定的衍生事件指定。也有在曲的中途变更拍子的情况。如前述那样,决定时基值所示的ticktime时间以4分音符的ticktime为单位的时间长,设定4拍子时,四个4分音符为1小节,进而1ticktime[秒]通过前述的(1)式计算。另外,4拍子的情况下,1小节内的第1拍和第3拍为强拍(第3拍严格来说为中强拍,但为了方便起见也作为强拍),第2拍和第4拍为弱拍。3拍子的情况下,1小节内的第1拍为强拍,第2拍和第3拍为弱拍。2拍子的情况下,1小节内的第1拍为强拍,第2拍为弱拍。从图10的b0到b19例示出2/4拍子的童谣“どんぐりころころ(橡子咕噜咕噜)”(作词:蓝木存义,作曲:梁田贞或)的自动演奏曲的一部分中的各小节的拍(强拍或者弱拍)期间。在步骤s903中,cpu201根据上述各信息计算以一个自动演奏曲的各小节的各拍的ticktime为单位的期间(时间范围)。例如,第1小节的第1拍的强拍期间b0为以ticktime为单位、从0到479的时间范围。另外,第1小节的第2拍的弱拍期间b1为从480到959的时间范围。以下相同地计算最终小节的到第4拍为止的各拍的期间。

接下来,cpu201参照步骤s903中计算出的各拍期间,同时在步骤s904中对第1小节的第1个强拍期间进行了指定后,一边在步骤s915中依次对强拍位置自加1,一边按各强拍反复执行从以下步骤s905到s913的一系列处理,直到在步骤s914中判断为成为了最终小节的最后强拍为止。

在上述重复处理中,cpu201首先将在步骤s902中计算并存储于ram203的音符开事件中、在当前指定事件发生时刻的强拍期间的开头(或者从开头起规定ticktime内)进行音符开的音符开事件,作为优先音候补提取(步骤s905)。

接下来,cpu201判断在步骤s905中是否能提取优先音候补(步骤s906)。

在步骤s905中判断为无法提取优先音候补的(步骤s906的判定为“否”的)情况下,cpu201判断为产生切分音(syncopation),将位于之前的弱拍期间的最末尾音作为优先音候补提取(步骤s907)。

在步骤s905中判断为能抽取优先音候补的(步骤s906的判定为“是”的)的情况下,cpu201跳过步骤s907的处理。

接下来,cpu201判断所提取的优先音候补是否是单音(步骤s908)。

判断为所提取的优先音候补是单音的(步骤s908的判定为“是”的)情况下,cpu201采用所提取的单音的优先音候补作为优先音(步骤s909)。在图10的例子中,与强拍期间b0的开头的g4音、强拍期间b2的开头的g4音、强拍期间b4的开头的g4音等的由“○”标记围起的音对应的音符开事件在步骤s909中作为优先音被采用。

在判断为所提取的优先音候补不是单音的(步骤s908的判定为“否”的)情况下,cpu201进一步判断优先音候补是否是和弦构成音(步骤s910)。

在判断为优先音候补是和弦构成音的(步骤s910的判定为“是”的)情况下,cpu201采用和弦构成音的主音作为优先音(步骤s911)。

在判断为优先音候补不是和弦构成音的(步骤s910的判定为“否”的)情况下,cpu201采用多个优先音候补中的音高最高的音(以下记载为“最高音”)作为优先音(步骤s912)。在图10的例子中,与强拍期间b6的g3音、强拍期间b8的e3音、强拍期间b10的c4音、强拍期间b12的g3音、强拍期间b14的g3音、强拍期间b16的g3音、强拍期间b18的a3音等的由“○”标记围起的音对应的音符开事件在步骤s912中作为优先音被采用。

在步骤s909、s911或者s912的处理后,cpu201对ram203所存储的具有图4的数据构成例的键点亮控制数据的末尾追加键点亮控制数据组lightnote[i]的条目(entry)。而且,作为上述条目的lightontime值,cpu201对步骤s909、s911或者s912中所采用的优先音的音符开事件设定步骤s902中计算、存储于ram203中的事件发生时刻。另外,作为上述条目的lightonkey值,cpu201设定步骤s909、s911或者s912中所采用的优先音的音符开事件所设定的按键号码(以上,步骤s913)。

其后,cpu201判断在最终小节的最后强拍之前处理是否已完成(步骤s914)。

步骤s914的判定为“否”时,cpu201在指定了下一个强拍期间后(步骤s915),返回到步骤s905的处理。

步骤s914的判定成为“是”时,cpu201结束图9的流程图所例示的图7的步骤s704的自动演奏曲读入处理。

通过以上的图9的流程图所例示的自动演奏曲读入处理,在ram203中,展开具有图3的数据格式例的自动演奏曲数据,并且生成具有图4的数据格式例的键点亮控制数据。在图10的自动演奏曲的例子中,在各拍位置生成对应于与以“○”标记围起的音对应的音符开事件的键点亮控制数据。

图11是表示图7的步骤s706的自动演奏开始处理的详细例的流程图。

cpu201首先将图4所例示的键点亮控制数据组lightnote[i](1≤i≤n-1)的各自用于指定i的ram203上的变量lightonindex的值初始设定为0(步骤s1101)。由此,在图4的例子中,作为初始状态,首先参照键点亮控制数据组lightnote[lightonindex]=lightnote[0]。

接下来,从图2的led控制器207控制键盘101,cpu201使与lightonindex=0所示的图4的开头的键点亮控制数据组lightnote[0]中的lightonkey值(=lightnote[0].lightonkey)对应的按键号码的键下所配置的led点亮(步骤s1102)。

接下来,在自动演奏的进行中,以ticktime为单位,cpu201将用于计数从之前的事件的发生时刻起的相对时间的ram203上的变量deltatime的值初始设定为0(步骤s1103)。

接着,在自动演奏的进行中,以ticktime为单位,cpu201将用于计数从距曲的开头起的经过时刻的ram203上的变量autotime初始设定为0(步骤s1104)。

进一步,cpu201将图3所例示的自动演奏曲数据的音轨块1内的演奏数据组deltatime[i]以及event[i](1≤i≤l-1)的各自的用于指定i的ram203上的变量autoindex的值初始设定为0(步骤s1105)。由此,在图3的例子中,作为初始状态,首先参照音轨块1内的开头的演奏数据组deltatime[0]以及event[0]。

最后,cpu201将指示使自动演奏停止的ram203上的变量autostop的初始值设定为1(停止)(步骤s1106)。其后,cpu201结束图11的流程图所例示的图7的步骤s706的自动演奏开始处理。

图12是表示图5的步骤s506的按键/离键处理的详细例的流程图。

首先cpu201判断由从按键扫描器206的插入产生的键操作是否是按键(步骤s1201)。

在判断为键操作是按键的(步骤s1201的判定为“是”的)情况下,cpu201对图2的音源lsi204执行按键处理(步骤s1202)。由于该处理是通常的自动演奏的处理,因此其详细说明被省略,将指定了由按键扫描器206通知的按键的按键号码以及力度的音符开指令发行给音源lsi204。

接下来,cpu201判断由按键扫描器206通知的按键的按键号码是否与ram203所存储的lightonindex值表示的键点亮控制数据组lightnote[lightonindex]内的lightonkey值(=lightnote[lightonindex].lightonkey)相等(步骤s1203)。

步骤s1203的判定为“否”时,cpu201结束图12的流程图所例示的图5的步骤s506的按键/离键处理。

步骤s1203的判定为“是”时,从led控制器207控制键盘101,cpu201使与lightnote[lightonindex].lightonkey对应的按键号码的键下配置的led熄灭(步骤s1204)。

接下来,cpu201对参照键点亮控制数据的lightonindex值自加1(步骤s1205)。

进一步,cpu201将autostop值复位为0,演奏者通过对发光的键进行按键来解除自动演奏的停止状态(步骤s1206)。

其后,cpu201使自动演奏插入产生,使自动演奏插入处理(图13)开始。在自动演奏插入处理结束后,cpu201结束图12的流程图所例示的图5的步骤s506的按键/离键处理。

另一方面,在判断为键操作是离键的(步骤s1201的判定为“否”的)情况下,cpu201对图2的音源lsi204执行离键处理(步骤s1208)。由于该处理是通常的自动演奏的处理,因此省略其详细说明,将指定了由按键扫描器206通知的离键的按键号码以及力度的音符关指令发行给音源lsi204。

图13是表示基于上述的从图12的步骤s1207的插入、或者在图2的计时器210中以ticktime[秒]为单位产生的插入(参照图6的步骤s602或者图8的步骤s802)执行的自动演奏插入处理的详细例的流程图。以下的处理针对图3所例示的自动演奏曲数据的音轨块1的演奏数据组执行。在图10的例子中,是对上声部(右手声部)的乐音群的处理。

首先cpu201判断autostop值是否是0,即是否未指示自动演奏的停止(指示进行)(步骤s1301)。

在判断为正指示自动演奏的停止的(步骤s1301的判定为“否”的)情况下,自动演奏的进行不进行,cpu201直接结束图13的流程图所例示的自动演奏插入处理。

在判断为未指示自动演奏的停止(指示进行)的(步骤s1301的判定为”是”)的情况下,cpu201首先判断表示距前次事件的发生时刻的相对时刻的deltatime值是否与autoindex值表示的自此要执行的演奏数据组的等待时间deltatime[autoindex]一致(步骤s1302)。

步骤s1302的判定为“否”时,cpu201使表示距前次的事件的发生时刻的相对时刻的deltatime值自加1,使时刻前进与这次插入对应的1ticktime单位的量(步骤s1303)。其后,cpu201移至后述的步骤s1310。

步骤s1302的判定为“是”时,cpu201执行autoindex值表示的演奏数据组的事件event[autoindex](步骤s1304)。

在步骤s1304中执行的事件event[autoindex]例如若是音符开事件,则通过由该音符开事件指定的按键号码以及力度,对图2的音源lsi204发行乐音的发音指令。另一方面,事件event[autoindex]例如若是音符关事件,则通过由该音符关事件指定的按键号码以及力度,对图2的音源lsi204发行乐音的消音指令。

进一步,事件event[autoindex]例如若是指定歌词的衍生事件,则通过该歌词的文本数据和与之前指定的音符开事件的按键号码对应的间距,对图2的声音合成lsi205发行声音的产生指令。另外,在执行与该音符开事件对应的音符关事件的时刻,对图2的声音合成lsi205发行针对指示了发音的声音的消音指令。由此,在图10的例子中,发出与乐谱上所显示的歌词的文本数据对应的声音。

接着,cpu201对用于参照演奏数据组的autoindex值自加1(步骤s1305)。

另外,cpu201将表示距这次执行的事件的发生时刻的相对时刻的deltatime值复位为0(步骤s1306)。

而且,cpu201判断autoindex值表示的接下来执行的演奏数据组的等待时间deltatime[autoindex]是否为0,即,是否是与这次的事件同时执行的事件(步骤s1307)。

步骤s1307的判定为“否”时,cpu201移至后述的步骤s1310。

步骤s1307的判定为“是”时,cpu201判断autoindex值表示的接下来执行的演奏数据组的事件event[autoindex]是否为音符开事件,并且表示从自动演奏开始时的当前的经过时刻的autotime值是否到达lightonindex值表示的键点亮控制数据组lightnote[lightonindex]的lightontime值(=lightnote[lightonindex].lightontime)(步骤s1308)。

步骤s1308的判定为“否”时,返回到步骤s1304,cpu201与这次执行的事件同时执行autoindex值表示的接下来执行的演奏数据组的事件event[autoindex]。cpu201将步骤s1304到s1308的处理反复执行这次同时执行的次数的量。以上的处理序列,例如在如和音等那样地多个音符开事件在同时定时发音那样的情况下执行。

步骤s1308的判定为“是”的情况下,演奏者在对接下来发光的键进行按键之前停止自动演奏,cpu201将autostop值设置为1(步骤s1309)。其后,cpu201结束图13的流程图所示的自动演奏插入处理。使图10的例子的b2、b4、b6、b10、b14、以及b18的各优先音的音符开事件被执行之前发出的音消音的音符关事件被执行了以后执行该处理序列。

前述的步骤s1303或者s1307的处理后,作为下次的自动演奏处理用的准备,cpu201对表示从自动演奏开始时的经过时刻的autotime值自加1,使时刻前进与这次的插入对应的1ticktime单位的量(步骤s1310)。

接着,cpu201判断对上述autotime值加上了规定的偏置值lightonoffset的值是否到达了lightonindex值表示的下次的键点亮控制数据组lightnote[lightonindex]的lightontime值(=lightnote[lightonindex].lightontime)(步骤s1311)。即,判断是否与下次应点亮的键的点亮时刻接近一定时间内。

步骤s1311的判定为“是”时,从图2的led控制器207控制键盘101,cpu201使与lightonindex值表示的图4的键点亮控制数据组lightnote[lightonindex]中的lightonkey值对应的按键号码的键下配置的led点亮(步骤s1312)。

步骤s1311的判定为“否”时,cpu201跳过步骤s1312的处理。

最后,与步骤s1308的情况相同地,cpu201判断autoindex值表示的接下来执行的演奏数据组的事件event[autoindex]是否为音符开事件,并且表示从自动演奏开始时的下一个经过时刻的autotime值是否到达了lightonindex值表示的键点亮控制数据组lightnote[lightonindex]的lightontime值(步骤s1313)。

步骤s1313的判定为“是”的情况下,为了在演奏者对下一个发光的键进行按键之前使自动演奏停止,cpu201将autostop值设为1(步骤s1314)。该处理序列在从音符关事件的执行到其之后的优先音的音符开事件的执行为止的期间时间空着的情况下,例如在成为休止符的情况下执行。在图10的例子中,在执行b8、b12、以及b16的各优先音的音符开事件的定时之前(1ticktime前)执行了图13的自动演奏插入处理时执行该处理序列。

步骤s1313的判定为“否”时,cpu201跳过步骤s1314的处理。

其后,cpu201结束图13的流程图所示的自动演奏插入处理。

通过前述的图12的流程图所例示的按键/离键处理和上述的图13的流程图所例示的自动演奏插入处理,能够实现从自动演奏曲数据的开头依次将所决定的优先音例如作为键盘101上发光的键显示给演奏者,同时,演奏者每次对该显示的优先音的键进行按键等地进行演奏,便对到下一个优先音为止的自动演奏曲数据进行自动演奏这样的交互式的动作。

另外,在步骤s1304的说明中如前述那样,配合自动演奏曲数据的自动演奏,能够与对音源lsi204发行的音符开、音符关的事件数据对应地,例如以与上述音符开/音符关事件对应的音高以及音长,从声音合成lsi205输出基于作为音轨块1的衍生事件而被提供的歌词数据的歌声。该情况下,在演奏者作为优先音对发光的键进行按键等时,下一个优先音的键发光,并且,能够使由音源lsi204进行的自动演奏进行到该下一个优先音之前为止,同时使由声音合成lsi205进行的歌声的歌唱也进行。

在以上的说明中,自动演奏插入处理仅对图3所例示的自动演奏曲数据中、与使键发光的控制相关的音轨块1进行了说明,对于音轨块2,执行通常的自动演奏插入处理。即,音轨块2中,省略了图13的步骤s1309、步骤s1301到s1308的自动演奏插入处理基于来计时器210等的插入而被执行。在这种情况下,通过判断与音轨块1有关的图13的流程图等中设定的autostop值,而与音轨块1的情况同步地执行与音轨块2有关的与图13的步骤s1301相当的自动演奏的停止/进行的控制。

以上说明过的实施方式是对电子键盘乐器实施了本发明的形态,本发明也能够适用于电子管乐器等其他电子乐器。例如本发明适用于电子管乐器的情况下,不需要决定优先音时与和弦构成音相关的例如图9的步骤s908、s910~s912的控制处理,仅根据步骤s909的单音来决定优先音即可。

此外,本发明并不限于上述实施方式,在实施阶段能够在不脱离其要旨的范围内进行各种变形。另外,在上述实施方式中执行的功能也可以尽可能适当地组合来实施。在上述实施方式中包含各种阶段,通过由所公开的多个构成要件进行的适当组合能够提取各种发明。例如,即使从实施方式所示的全部构成要件删除几个构成要件,只要能得到效果,删除了该构成要件的构成也能够作为发明提取。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1