(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0024】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
〔第1実施形態:
図1乃至
図11〕
図1は、本発明の第1実施形態である電子楽器のハードウェア構成を示すブロック図である。
図1に示すように、電子楽器10は、CPU11、ROM12、RAM13、記憶装置14、通信インタフェース(I/F)15、検出回路16、表示回路17、音源回路18を備え、これらをシステムバス19により接続している。また、電子楽器10は、CPU11に接続するタイマ21、検出回路16に接続する演奏操作子22及び設定操作子23、表示回路17に接続するディスプレイ24、音源回路18に接続するDAC(デジタルアナログ変換回路)25及びサウンドシステム26も備える。
【0025】
そして、CPU11が、RAM13をワークエリアとしてROM12又は記憶装置14に記憶された所要のプログラムを実行することにより、電子楽器10全体を制御し、演奏操作の検出、演奏操作子の操作状態に応じた発音音高の選択、その選択に従った発音の制御等の各種機能を実現する。CPU11に接続されるタイマ21は、基本クロック信号、割り込み処理タイミング等をCPU11に供給する。
なお、ROM12には、上記のプログラムの他、音色に対応する波形データなどの各種データファイル、各種パラメータ及び各種テーブル等も記憶する。
【0026】
RAM13は、CPU11のワークエリアの他、再生バッファ等のバッファ領域としても用いる。
記憶装置14は、ハードディスク、半導体メモリ等の記録媒体とその駆動装置の組み合わせの少なくとも1つで構成される。
【0027】
通信I/F15は、サーバ、音響機器、外部コントローラ等の外部装置と通信を行うためのインタフェースであり、有線、無線を問わず、任意の規格の通信手段を用いて構成することができる。例えば、USB(Universal Serial Bus)やMIDI(Musical Instrument Digital Interface)_I/Fを用いることが考えられる。
【0028】
検出回路16は、演奏操作子22及び設定操作子23をシステムバス19に接続するためのインタフェースである。
演奏操作子22は、検出回路16に接続され、ユーザの演奏動作に従い、演奏情報(演奏データ)を供給する。演奏操作子22は、ユーザの演奏操作を受け付けるための、それぞれ音高と対応する複数の操作部を備える。そして、該ユーザの操作部に対する操作開始タイミング及び終了タイミングを、それぞれユーザが操作した操作部に対応する音高の情報を含むキーオンデータ及びキーオフデータとして、検出回路16を通じてCPU11に供給する。また、演奏操作子22は、ユーザの演奏操作に応じてベロシティ値等の各種パラメータを供給することも可能である。なお、本実施例では、鍵盤型の演奏操作子22を備え、上記各操作部が鍵であるとして説明するが、これに限るものではない。
【0029】
また、演奏操作子22には、後述するキーオフリトリガーを一時的に無効にすることを指示するための、特定の操作子であるリトリガー解除操作子を含む。このリトリガー解除操作子は、鍵盤の演奏中に操作できるよう、ペダル等の手を使わずに操作できるものが望ましく、ここではペダルであるとする。
【0030】
また、設定操作子23は、例えば、ボタン、スライダ、ロータリーエンコーダ、文字入力用キーボード、マウス等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、設定操作子23は、ディスプレイ24上に表示されるGUI(Graphical User Interface)に対する操作を行うためのポインティングデバイスや、ディスプレイ24に積層したタッチパネルでもよい。
いずれにせよ、ユーザは、設定操作子23を用いて、各種入力及び設定、選択をすることができる。
【0031】
表示回路17は、ディスプレイ24をシステムバス19に接続するためのインタフェースである。
ディスプレイ24は、電子楽器10の設定のための各種情報や、電子楽器10の動作状態等を表示するための表示手段であり、例えば液晶表示装置や発光ダイオード(LED)等により構成することができる。
【0032】
音源回路18は、CPU11からの発音指示に応じて、複数の発音ch(チャンネル)でそれぞれ楽音信号(デジタル波形データ)を生成する機能を備える。CPU11からの発音指示には、音色、音高、音量等の指定が含まれる。CPU11は、演奏操作子22の演奏操作を検出した場合に、アサイナの機能により、押鍵中の鍵の音高から、各アサイナと対応する発音を行わせる音高を選択し、その選択に従った発音を音源回路18に指示する。その詳細については後述する。
【0033】
そして、音源回路18は、生成した楽音信号をDAC25に出力する。DAC25はこの楽音信号をアナログ音響信号に変換し、DAC25に接続されているサウンドシステム26に供給する。サウンドシステム26は、アンプ、スピーカを含む発音手段であり、DAC25から供給されるアナログ音響信号を、発音出力する。DAC25及びサウンドシステム26は、電子楽器10の外部にあってもよい。
以上の電子楽器10において、特徴的な点は、アサイナの動作に関する点である。そこで、次にアサイナの動作についてより具体的に説明する。
【0034】
図2に、電子楽器10における、アサイナを用いた発音制御に関連する機能の機能ブロック図を示す。
図2に示すように、電子楽器10は、発音指示受付部31、操作状態検出部32、割当制御部33、楽音生成部34、キーオフリトリガー制御部35、キーオフリトリガー設定部36、リトリガー解除操作受付部37、および出力部38を備える。これらのうち、発音指示受付部31及びリトリガー解除操作受付部37の機能は演奏操作子22及び検出回路16により実現され、楽音生成部34の機能は音源回路18により実現され、出力部38の機能はサウンドシステム26により実現される。他の各部の機能はCPU11により実現される。
【0035】
そして、発音指示受付部31は、ユーザによる発音指示操作を受け付ける機能を備える。例えば、演奏操作子22である鍵盤がいずれかの鍵の押鍵操作(発音開始操作)を受け付けると、発音指示受付部31はこれを検出し、操作状態検出部32に対し、押鍵操作があったこと及び押鍵された鍵の音高であるノートナンバを示す操作信号であるキーオンデータを送信する。離鍵操作(発音停止操作)を受け付けた場合には、同様に離鍵操作があったこと及びその鍵のノートナンバを示すキーオフデータを送信する。
【0036】
なお、以下の説明において、押鍵のように発音開始を指示するための操作を「キーオン操作」、離鍵の用に発音停止を指示するための操作を「キーオフ操作」と呼ぶことにする。また、キーオン操作からキーオフ操作までの状態を、「操作中」と呼ぶことにする。鍵盤の鍵で言えば、「押鍵中」がこれに該当する。ただし、発音開始の指示があった場合でも、必ずしも実際に発音が開始されるとは限らない。一定の音高について発音を行わない設定を可能としたり、同時発音数に制限を設けたりすることがあり得るためである。
【0037】
操作状態検出部32は、発音指示受付部31から送信される操作信号に基づき、現在の演奏操作子22の操作状態(ここでは鍵盤なので押鍵状態)を検出する。より具体的には、操作中の(鍵の)音高を求める。この押鍵状態は、例えば、キーオンデータに含まれるノートナンバを操作中の音高のリストに追加し、キーオフデータに含まれるノートナンバを操作中の音高のリストから削除することにより求めることができる。
【0038】
そして、操作状態検出部32は、キーオンデータを受信した場合には、検出した操作状態の情報を割当制御部33に供給し、発音する音高の選択を行わせる。具体的な供給先は、割当制御部33が備える第1アサイナAS−1から第nアサイナAS−nまでのn個のアサイナのうち、機能が有効になっているアサイナである。
【0039】
なお、人が演奏を行う場合には、同時に複数の鍵の操作を行ったつもりでも、寸分違わず同じタイミングでその操作を行うことは困難である。そこで、複数の操作のタイミング差が同時操作とみなせる程度の所定閾値(例えば15〜30ミリ秒程度)以内であれば、それらの操作は同時に行われたものとみなして取り扱うことが望ましい。ここではこの取り扱いをするとして説明する。ある鍵のキーオン操作と別の鍵のキーオフ操作が同時に行われることもあり得る。
【0040】
さらに、操作状態検出部32は、キーオフデータを受信した場合に、楽音生成部34に対し、キーオフ操作が行われた音高の発音を停止させる機能も備える。
さらに、操作状態検出部32は、キーオフデータを受信した場合に、その旨及びその音高をキーオフリトリガー制御部35に通知し、キーオフ操作に応じてアサイナASに発音する音高の選択を行わせる必要があるか否かを判定させる。この点については後述する。
【0041】
次に、割当制御部33は、1又は複数(ここではn個とする)のアサイナAS−1〜AS−nを備える(アサイナの個体を特定する必要がない場合は符号「AS」を用いる)。これらの各アサイナASはそれぞれ、操作状態検出部32からキーオン操作に応じて供給される演奏操作子22の操作状態の情報に応じて、操作中(押鍵中)の音高の中から、楽音生成部34に発音させる音高(ノート)を選択する選択手段である。この選択は、アサイナ毎に設定される規則に従って行う。
【0042】
図3に、アサイナに設定する規則の例を示す。
図3には、4つのアサイナを用いる場合の例であり、各アサイナに設定する規則は、「対象押鍵」及び「優先方式」の項目からなる。「説明」の項目は、これらの項目の情報により定められる規則の内容の理解を助けるための説明であり、選択処理には用いない。
【0043】
対象押鍵の項目は、押鍵中の音高のうちどの範囲を選択の対象として考慮するかを定める項目である。「全押鍵」は、押鍵中の音高全てを考慮することを示す。「低音側X音」は、押鍵中の音高のうち低音側からX個の音高のみ考慮することを示す。ただし、押鍵数がX未満の場合には、押鍵中の音高全てを考慮する。また、
図3には示していないが、同様に「高音側X音」の設定も可能である。
【0044】
優先方式の項目は、選択の対象として考慮する音高の中で、発音する音高をどのように選択するかを定める項目である。「高音優先」は、考慮する音高の中で最も高い音高を選択することを示す。「低音優先」は、考慮する音高の中で最も低い音高を選択することを示す。
【0045】
以上から、第1アサイナについては、押鍵中の音高全てのうち最も高い音高を選択する規則が設定されていることがわかる。
第2アサイナについては、押鍵数が3以下であれば、その押鍵の中で最も高い音高を選択することになる。押鍵数が4以上であれば、低音側3音の中で最も高い音高、すなわち下から3番目の音高を選択することになる。
第3アサイナについては、同様に、押鍵数が2以下であれば、その押鍵の中で最も高い音高を、押鍵数が3以上であれば、下から2番目の音高を選択することになる。
第4アサイナについては、押鍵中の音高全てのうち最も低い音高を選択する規則が設定されていることがわかる。
表にないアサイナについては機能が無効化されていると考えればよい。
【0046】
各アサイナASは、以上の規則に従い発音する音高を選択すると、楽音生成部34に対し、その選択した音高の楽音を発音開始するよう要求する。また、各アサイナASには対応する音色T1〜Tnが設定されており、楽音をその対応する音色で発音するよう要求する。なお、アサイナASには対応するパートを設定し、音色はパートに対応付けて設定することも可能である。この場合、アサイナASと音色とは、パートを介して対応付けられることになり、アサイナAS−nに対応付けられたパートを第nパートと表す。
【0047】
なお、各アサイナASは、自身が最後に選択した音高がどの音高であるかの情報を、次に別の音高を選択するまで保持しておく。そして、音高の選択を行った場合でも、選択した音高が前回と変わらず、かつその音高が今回キーオン操作された音高でない(以前から操作中であった)音高である場合、楽音生成部34に対する発音の要求を行わないようにするとよい。この場合、該当のアサイナASが今回選択した音高については、今回検出されたキーオン操作とは関係なく、以前のキーオン操作に応じて開始した発音を継続することが望ましいと考えられるためである。
【0048】
また、この例では説明を簡単にするため各アサイナが音高を1つ選択するものとして説明するが、複数の音高を選択可能な規則を設定することも可能である。高音優先で2音を選択する、等である。
また、複数のアサイナが同じ音高を選択しても問題ない。この場合、選択された音高について、複数の音色で発音することになる。
【0049】
楽音生成部34は、m個の発音chTC1〜TCmを備える(発音chの個体を特定する必要がない場合は符号「TC」を用いる)。そして、アサイナASから発音開始の要求を受けると、発音中でない発音chを検索し、発見した発音chTCにて、発音開始要求で指定された音高及び音色の楽音の音響信号を生成(発音)させる。なお、
図2では、アサイナASと発音chTCの間を線で結んでいるがこれらの間に固定的な対応関係があるわけではない。
【0050】
また、楽音生成部34は、操作状態検出部32から特定の音高の発音を停止するよう指示された場合に、発音chTCの中からその音高の発音を行っているものを検索し、その発音chに発音を停止させる機能も備える。この停止には、リリース状態への移行も含まれる。
そして、楽音生成部34は、各発音chTCが生成した音響信号をミキシングして出力部38に供給し、楽音の出力を行わせる。
【0051】
次に、キーオフリトリガー制御部35は、操作状態検出部32からキーオフ操作があった旨を通知された場合に、割当制御部33のアサイナAS毎に、キーオフ操作に応じてアサイナASに発音音高の選択を行わせる必要があるか否かを決定する決定手段の機能を備える。そして、行わせる必要があると決定した場合、そのアサイナASに、発音音高の選択を行うよう指示する。
【0052】
このように、キーオフ操作に応じてアサイナASに発音音高を選択させることを、「キーオフリトリガー」と呼ぶことにする。また、キーオフリトリガーの指示を受けたアサイナASは、発音する音高の選択及び楽音生成部34への発音開始要求の処理を、操作状態検出部32からの指示に応じた選択の場合と同様に行う。指示自体も、キーオンに応じた発音音高の選択を行わせる場合と、キーオフリトリガーの場合とで、特に区別する必要はない。
【0053】
キーオフリトリガー設定部36は、アサイナAS毎に、キーオフリトリガーを行うか否かを設定する機能を備える。この設定は、ここではユーザによる設定操作子23の操作に従って行い、その設定内容は、例えば
図4に示すキーオフリトリガー設定テーブルに保存する。
【0054】
リトリガー解除操作受付部37は、ユーザによるリトリガー解除操作子であるペダルの操作を受け付ける機能を備える。演奏操作子22中のペダルが踏み込みあるいは踏み込み解除操作されると、リトリガー解除操作受付部37はこれを検出し、キーオフリトリガー制御部35に対し、ペダルの操作状態(踏み込みされているか否か)の情報を、随時供給する。
【0055】
上記キーオフリトリガー制御部35は、キーオフリトリガー設定部36においてなされている設定及び、リトリガー解除操作受付部37から供給されるリトリガー解除操作子の操作状態の情報に基づき、アサイナAS毎に、キーオフリトリガーを行うか否かを決定する。この決定の詳細については後述する。
【0056】
次に、
図2に示した機能のうち、CPU11が担う機能を実現するためにCPU11が実行する処理について説明する。
図5乃至
図7は、その処理のフローチャートである。
CPU11は、検出回路16からキーオンデータ及び/又はキーオフデータを受信した場合に、所要のプログラムを実行することにより
図5のフローチャートに示す処理を開始する。なお、所定閾値以内のタイミング差で行われた操作を同時操作とみなすことは上述の通りである。
【0057】
図5の処理において、CPU11はまず、受信したキーオンデータ及び/又はキーオフデータが示す演奏操作子22の操作内容に基づき、各鍵の押鍵状態の情報を更新する(S11)。
次に、CPU11は、検出した操作にキーオン操作が含まれているか否か判断する(S12)。複数の操作を同時に検出した場合、その中に1つでもキーオン操作があればYesとなる。
【0058】
そして、Yesの場合、CPU11は、検出した操作の中にキーオフ操作があれば、そのキーオフ操作に係る音高の発音停止を、楽音生成部34に指示する(S13)。その後、アサイナASによる、キーオン操作に応じた発音音高の選択を行うべく、全アサイナASについて発音割り当てフラグを立てて(S14)、
図6に示す発音割り当て処理に進む(S15)。
【0059】
図6の処理において、CPU11はまず、変数nに1を代入する(S21)。そして、第nアサイナAS−nに発音割り当てフラグがセットされているか否か判断する(S22)。
ここでセットされていれば、CPU11は、第nアサイナAS−nについて設定されている規則に従い、操作中の鍵の音高の中から発音する音高を選択する(S23)。そして、ステップS23で選択した音高で、第nアサイナAS−nと対応する第nパートの発音を開始するよう、楽音生成部34に指示する(S24)。この場合、発音に用いる音色は、第nパートについて設定されている音色である。
【0060】
以上のステップS23とS24が、アサイナAS1つ分の処理である。その後、CPU11は、現在処理したアサイナが最後のアサイナであるか否か判断し(S25)、最後でなければnを1加算して(S26)、ステップS22に戻って処理を繰り返す。
ステップS22でNoの場合、第nアサイナについては音高の選択は行わないので、そのままステップS25に進む。
【0061】
ステップS25でNoの場合、全てのアサイナに関する処理が終了したことがわかるため、
図6の処理を終了して元の処理に戻る。ここでは、
図5のステップS15に戻るので、CPU11はそのまま処理を終了する。なお、ステップS14からS15に進んだ場合は、発音割り当て処理において、全アサイナと対応する音高選択及び発音指示を行うことになる。
なお、
図6の処理を始める前に、初めに全アサイナの発音割り当てフラグを確認し、フラグのあるアサイナについてのみステップS23及びS24を実行するようにしてもよい。この場合、フラグのあるアサイナがなければ、発音割り当て処理自体をスキップできる。
【0062】
一方、
図5のステップS12でNoの場合、すなわち検出した操作がキーオフ操作のみであった場合、CPU11は、そのキーオフ操作に係る音高の発音停止を、楽音生成部34に指示する(S16)。その後、
図7に示すリトリガー設定処理に進む(S17)。なお、キーオフ操作が複数あった場合には、その各キーオフ操作について、発音停止を行う。
【0063】
図7の処理において、CPU11はまず、変数nに1を代入する(S31)。そして、第nアサイナAS−nについて、
図4に示したキーオフリトリガーの設定がONになっているか否か判断する(S32)。これがYesであれば、さらに、リトリガー解除操作子が操作中であるか否か判断する(S33)。ここで操作中でなければ、CPU11は、第nアサイナについてキーオフリトリガーを行うことを決定し(S34)、第nアサイナに発音割り当てフラグを立てる(S35)。
【0064】
一方、ステップS32でNoの場合、すなわちキーオフリトリガーの設定がOFFであ場合、CPU11は、第nアサイナについてキーオフリトリガーを行わないことを決定する(S36)。この場合、第nアサイナに発音割り当てフラグは立てない。ステップS33でリトリガー解除操作子が操作中であった場合も同様である。
いずれの場合も、その後、CPU11は、現在処理したアサイナが最後のアサイナであるか否か判断し(S37)、最後でなければnを1加算して(S38)、ステップS32に戻って処理を繰り返す。
【0065】
ステップS37でYesの場合、全てのアサイナに関する処理が終了したことがわかるため、
図7の処理を終了して元の処理に戻る。このとき、処理は
図5のステップS17に戻るので、
図5の処理では次に
図6の発音割り当て処理に進む(S15)。そして、この発音割り当て処理においては、ステップS35で発音割り当てフラグを立てたアサイナASについてのみ、ステップS22の判断がYesとなり、発音する音高の選択と発音開始指示を行う。
【0066】
以上の
図5乃至
図7の処理が、この発明の発音音高選択方法の第1実施形態に係る処理である。また、
図6の発音割り当て処理が選択手順と、
図5のステップS12以降が制御手順と、
図7のリトリガー設定処理が決定手順と、それぞれ対応する。また、
図5のステップS12以降の処理において、CPU11は制御手段として機能する。
図7のリトリガー設定処理においてCPU11は決定手段として機能する。
【0067】
そして、以上の処理を実行することにより、CPU11は、キーオフ操作に応じてアサイナASに発音する音高の選択と発音開始指示を行わせるべき場合を、ユーザが行った設定に従って適切に判別し、これを行わせることができる。さらに、リトリガー解除操作子が操作中である場合には、アサイナAS毎の設定によらず、一時的かつ強制的にキーオフリトリガーをOFF中にすることができる。そして、このことにより、ユーザの演奏操作の意図に合った発音を行うことができる。また、この発音を行うために、特許文献2におけるミスレガート判定時間のようなパラメータの値の設定に試行錯誤する必要もない。
【0068】
なお、
図5のステップS12でYesの場合、キーオン操作に応じて必ず全アサイナについて発音音高の選択を行うため、キーオフリトリガーについて考慮する必要がない。リトリガー判定処理を行ってもよいが、その結果如何に関わらず、全アサイナについて発音音高の選択を行うことに変わりはない。
【0069】
次に、リトリガー設定処理の効果について、
図8乃至
図11を用いて説明する。
これらのうち
図8乃至
図10は、
図3に示した4つのアサイナに対するキーオフリトリガーのON/OFF中の設定に応じて、演奏操作に従った各アサイナによる発音音高の選択がどのように異なるかを説明するための図である。いずれの場合も、リトリガー解除操作子の操作はないものとする。
【0070】
図8乃至
図10において、縦軸が時間、横軸が音高であり、各音高における帯が、その音高の鍵を押鍵している期間を示す。
図8乃至
図10の例において、各鍵のキーオン操作及びキーオフ操作のタイミングは全て共通である。そして、音高n3の鍵が押鍵され、これが離鍵される前に、音高n4の鍵が押鍵されている。また、音高n4の鍵が離鍵される前に、音高n5の鍵が押鍵されている。そして、いずれも次の音高のキーオン操作の直後に前の音高についてキーオフ操作がされていることから、この演奏は音高n3〜n5の音を続けて発音させることを意図した演奏であると推測できる。
【0071】
そして、
図8の例は、全てのアサイナについてキーオフリトリガーOFFが設定されている場合の例である。
この場合、初めのKON1,2,3のタイミングでは、n1,n2,n3の3つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1及び第2アサイナAS−2は最高音のn3を、第3アサイナAS−3は下から2番目のn2を、第4アサイナAS−4は最低音のn1を選択する。
【0072】
次のKON4のタイミングでは、n1,n2,n3,n4の4つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1は最高音のn4の選択に変わり、新たに発音を開始する。他の3つのアサイナの選択は、KON1,2,4のタイミングにおける選択と変わらない。
【0073】
そして、次のKOFF3のタイミングでは、キーオフ操作された音高n3の発音が停止される。このとき、全てのアサイナについてキーオフリトリガーがOFFに設定されているため、新たに発音させる音高の選択は行われない。このため、音高n3を選択していた第2アサイナAS−2の音色による発音は、ここで停止されることになる。
【0074】
次のKON5のタイミングでは、n1,n2,n4,n5の4つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1は最高音のn5の選択に変わり、新たに発音を開始する。第2アサイナAS−2は下から3番目のn4を選択し、新たに発音を開始する。他の2つのアサイナの選択は、前回のKON4のタイミングにおける選択と変わらない。
【0075】
次のKOFF4のタイミングでは、キーオフ操作された音高n4の発音が停止される。このとき、全てのアサイナについてキーオフリトリガーがOFFに設定されているため、新たに発音させる音高の選択は行われない。このため、音高n4を選択していた第2アサイナAS−2の音色による発音は、発音開始されたばかりだがここで停止されることになる。
次のKOFF1,2のタイミングでは、キーオフ操作された音高n1,n2の発音が停止される。その次のKOFF5のタイミングでは、キーオフ操作された音高n5の発音が停止される。これらのタイミングでも、キーオフリトリガーは行われない。
【0076】
以上からわかるように、全てのアサイナについてキーオフリトリガーがOFFであると、すなわちキーオフリトリガーを全く行わないとすると、演奏者が続けて発音させることを意図していると推測される音高n3〜n5の音について、異なる音色で発音されてしまうことがわかる。初めのn3は第1アサイナと対応する音色TG1と第2アサイナと対応する音色TG2であり、続くn4及びn5は第1アサイナと対応する音色TG1のみである。n4の末尾にはTG2による発音も起こるが、時間が短いため、これは雑音に近い発音となる。
【0077】
次に、
図9の例は、全てのアサイナについてキーオフリトリガーONが設定されている場合の例である。キーオフ操作時にアサイナが必ず発音音高の選択を行う例であるということもできる。この場合の各アサイナによる音高の選択について、
図8と異なる点を説明する。
【0078】
図9の例において、KOFF3のタイミングでは、
図8と異なり、全てのアサイナが発音させる音高の選択を行う。その結果、第2アサイナAS−2が最高音のn4を選択し、新たに発音を開始する。他のアサイナの選択は変化ないため、それまでの発音を継続する。
また、KOFF4のタイミングでも、全てのアサイナが発音させる音高の選択を行う。その結果、第2アサイナAS−2が最高音のn5を選択し、新たに発音を開始する。他のアサイナの選択は変化ないため、それまでの発音を継続する。
【0079】
以上により、音高n3〜n5の音について、第2アサイナと対応する音色TG2が途中で消えてしまうことなく、全てを、音色TG1と音色TG2で発音することができる。
しかし、KOFF1,2のタイミングでも、全てのアサイナが発音させる音高の選択は行う。その結果、第1アサイナAS−1及び第2アサイナAS−2の選択は、前回のKOFF4における選択と変わらないものの、第3アサイナAS−3及び第4アサイナAS−4が、この時点で押鍵されている唯一の音高であるn5を選択し、新たに発音を開始する。
【0080】
このため、それまで低音側で発音していた音色の音が急に高音側で発音されることになる。n1及びn2の押鍵が伴奏であり、n3〜n5の押鍵がメロディーであると考えると、伴奏の音色で急にメロディーが発音されることとなり、不自然な発音となってしまうと考えられる。
【0081】
次に、
図10の例は、第1アサイナAS−1及び第2アサイナAS−2にキーオフリトリガーONが、第3アサイナAS−3及び第4アサイナAS−4にキーオフリトリガーOFFが設定されている場合の例である。この場合の各アサイナによる音高の選択について、
図8及び
図9と異なる点を説明する。
【0082】
図10の例において、KOFF3及びKOFF4のタイミングでは、第1アサイナAS−1及び第2アサイナAS−2のみが発音させる音高の選択を行う。第3アサイナAS−3及び第4アサイナAS−4は音高の選択は行わない。しかし、
図9のように選択を行ったとしても、これらのアサイナは前回の選択と同じ音高を選択するため、選択を行っても行わなくても、発音される音に変わりはない。
【0083】
一方、KOFF1,2のタイミングでは、第3アサイナAS−3及び第4アサイナAS−4が発音される音高の選択を行わないため、
図9の例のように音高n5が新たに発音されることがない。第1アサイナAS−1及び第2アサイナAS−2は音高の選択を行うが、前回のKOFF4における選択と変わらないため、新たに発音を行うことはない。
【0084】
このように、アサイナの音高選択規則と、実際に行う演奏操作により、キーオフリトリガーを行う方が演奏者の意図に合った発音が可能になる場合と、行わない方が演奏者の意図に合った発音が可能になる場合とがある。従って、
図4に示したように、キーオフリトリガーを行うか否かをアサイナ毎に設定できるようにすることにより、演奏者の意図に合った発音を行いやすくなると考えられる。
また、これに加えてリトリガー解除操作子を設けることにより、さらに演奏者の意図に合った発音を行いやすくなる。
【0085】
図11に、
図10の場合と比べ、音高n1,n2のキーオフ操作(KOFF1,2)がn5のキーオフ操作(KOFF5)よりも後である場合の例を示す。
この場合、KOFF5のタイミングで第1アサイナAS−1及び第2アサイナAS−2は音高の選択を行い、押鍵中の音高n1,n2のうち最高音のn2を選択して、新たに発音を開始することになる。
【0086】
このため、それまで高音側で発音していた音色の音が急に低音側で発音されることになる。そして、メロディーの音色で急に伴奏が発音されるような、不自然な発音となってしまうと考えられる。
しかし、演奏者がリトリガー解除操作子を操作した状態でKOFF5のタイミングを迎えれば、第1アサイナAS−1及び第2アサイナAS−2は音高の選択を行わない。従って、
図10を用いて説明したような、演奏者の意図に合った演奏を行うことが可能となる。
このように、アサイナ毎のキーオフリトリガーの設定を最適なものとしたとしても、常に好適な結果を得られるとは限らないため、リトリガー解除操作子による更なる調整を可能とすることが好ましい。
【0087】
なお、リトリガー解除操作子が操作されていた場合に、全アサイナについてリトリガーを行わないようにするのではなく、予め定めたアサイナについてのみリトリガーを行わないようにしてもよい。また、複数のリトリガー解除操作子を用意して、それらを各々1又は複数のアサイナのグループと対応付け、該当のアサイナのリトリガーを一時的に停止させるための操作子として用いることができるようにしてもよい。
【0088】
また、
図4に示したアサイナ毎のキーオフリトリガーの設定につき、ユーザが直接このパラメータを設定するのではなく、他のパラメータの設定に連動してこの設定を行うようにしてもよい。ユーザがメロディパートに用いることを設定したアサイナについてCPU11が自動的にキーオフリトリガーをONに設定し、同じく伴奏パートに用いることを設定したアサイナについて自動的にキーオフリトリガーをOFFに設定する等である。
【0089】
〔第2実施形態:
図12及び
図13〕
次に、この発明の第2実施形態の電子楽器について説明する。
この第2実施形態は、ユーザの設定に従ってキーオフリトリガーの有無を決定することに代えて、キーオフ操作の際にアサイナが選択していた音高と、キーオフ操作後の演奏操作子の操作状態に応じてそのアサイナが選択すると予測される音高との音高差が所定値以上である場合にキーオフリトリガーを行わないようにした点が第1の実施形態と異なるのみである。そこで、この相違点についてのみ説明し、第1実施形態と同じ又は対応する構成には、第1実施形態と同じ符号を用いる。
【0090】
第2実施形態の電子楽器10は、ハードウェアは
図1に示した第1実施形態のものと共通である。機能構成は、キーオフリトリガー設定部36が不要である点と、キーオフリトリガー制御部35におけるキーオフリトリガー有無の判断基準が
図2に示したものと異なるのみである。これは、CPU11の処理について言えば、第1実施形態で説明した
図5乃至
図7の処理のうち、
図7のリトリガー設定処理が異なることに該当する。
【0091】
ここで、
図12に、第2実施形態におけるリトリガー設定処理のフローチャートを示す。なお、キーオフ操作が複数あった場合には、その各キーオフ操作について、リトリガー設定処理を行う。
図12の処理において、CPU11はまず、今回キーオフ操作された音高Nの発音をしていたパートと対応するアサイナASが何番目のアサイナであるかの情報を取得する(S41)。これは、キーオフ操作の時点で、発音する音高として音高Nを選択していたアサイナASを探索することに該当する。複数のアサイナが該当すれば、それら全てのアサイナの情報を取得する。この探索は、各アサイナASが保持している、自身が最後に選択した音高の情報に基づき行うことができる。
【0092】
CPU11は次に、変数nに1を代入する(S42)。そして、ステップS41で情報を取得したアサイナのうちn番目のアサイナを処理対象とする(S43)。
次に、CPU11は、処理対象のアサイナASについて、
図3に示したように設定されている選択規則に従い、(キーオフ操作後の状態で)操作中の鍵の音高の中から、発音すべき音高を選択し、これを音高Mとする(S44)。この音高Mは、キーオフ操作後の演奏操作子の操作状態に応じてアサイナが選択する音高の予測値である。
【0093】
そして、CPU11は、キーオフ操作時にそのアサイナが選択していた音高Nと、ステップS44で選択した音高Mとの音高差が所定範囲内であるか否か判断する(S45)。ここで所定範囲内であれば、処理対象のアサイナASについてキーオフリトリガーを行うことを一応決定し、リトリガー解除操作子が操作中でない(S46)場合にその旨を最終決定する(S47)。そして、処理対象のアサイナに発音割り当てフラグを立てる(S48)。
【0094】
一方、ステップS45で所定範囲内でなければ、CPU11は、処理対象のアサイナについてキーオフリトリガーを行わないことを決定する(S49)。この場合、第nアサイナに発音割り当てフラグは立てない。ステップS46でリトリガー解除操作子が操作中であった場合も同様である。
いずれの場合も、その後、CPU11は、現在処理したアサイナがステップS41で取得した最後のアサイナであるか否か判断し(S50)、最後でなければnを1加算して(S51)、ステップS43に戻って処理を繰り返す。
【0095】
ステップS50でYesの場合、全てのアサイナに関する処理が終了したことがわかるため、
図12の処理を終了して元の処理に戻る。このとき、処理は
図5のステップS17に戻るので、
図5の処理では次に
図6の発音割り当て処理に進む(S15)。そして、この発音割り当て処理においては、ステップS48で発音割り当てフラグを立てたアサイナASについてのみ、ステップS22の判断がYesとなり、発音する音高の選択と発音開始指示を行う。
【0096】
そして、以上の処理を実行することにより、CPU11は、キーオフ操作に応じてアサイナASに発音する音高の選択と発音開始指示を行わせるべき場合を、演奏操作子22の操作内容及びアサイナに設定されている選択規則に従って適切に判別し、これを行わせることができる。そして、このことにより、ユーザの演奏操作の意図に合った発音を行うことができる。
【0097】
第2実施形態におけるリトリガー設定処理は、キーオフ操作により発音が停止される音高を選択していたアサイナについてキーオフリトリガーを原則有効としつつ、キーオフリトリガーにより、アサイナが選択する音が伴奏音からメロディ音のように全く異なる音高の音に変化してしまうことを防止するためのものである。
【0098】
この点について、
図13を用いて説明する。
図13は、演奏操作に応じたアサイナによる発音音高の選択の様子を示す、
図8乃至
図10と対応する図である。
図13の例において、キーオン操作及びキーオフ操作の順は、
図8乃至
図10と同じである。ただし、音高n2とn3の間は、
図12のステップS45における所定範囲よりも音高差が大きいとする。また、各アサイナと対応するキーオフリトリガーの設定はない。
【0099】
図13の例において、キーオン時の各アサイナによる音高の選択は、
図10と同じである。キーオフ時の各アサイナによる音高の選択も、結果の発音内容だけ見れば、
図10と同じであるが、その過程の処理が異なる。
まず、KOFF3のタイミングでのキーオフリトリガーは、ここでキーオフ操作された音高n3を選択している第2アサイナAS−2が検討対象となる。そして、キーオフ後の操作状態に従い第2アサイナAS−2が選択する音高の予測値は、この時点の最高音のn4である。n3とn4との音高差が所定範囲内であるとすると、CPU11は、第2アサイナAS−2はキーオフリトリガーを行うと決定し、第2アサイナAS−2は音高n4を選択して新たに発音を開始する。
KOFF4のタイミングについても同様であり、n4とn5との音高差が所定範囲内であるとすると、CPU11は、第2アサイナAS−2はキーオフリトリガーを行うと決定し、第2アサイナAS−2は音高n5を選択して新たに発音を開始する。
【0100】
一方、KOFF1,2のタイミングでは、ここでキーオフ操作された音高n1又はn2を選択している第3アサイナAS−3及び第4アサイナAS−4が検討対象となる。そして、キーオフ後の操作状態に従い第3アサイナAS−3及び第4アサイナAS−4が選択する音高の予測値は、いずれもこの時点で唯一押鍵されているn5である。しかし、n1とn5の間、n2とn5の間は、いずれも音高差が所定範囲内でない。このため、CPU11は、第3アサイナAS−3及び第4アサイナAS−4はキーオフリトリガーを行わないと決定し、結果として、KOFF1,2のタイミングでキーオフリトリガーを行うアサイナはない。
【0101】
このように、キーオフリトリガーを行った場合の音高差を用いてキーオフリトリガーを行うか否かを決定することにより、アサイナ毎にキーオフリトリガーの有無を設定しなくても、
図10と同様な発音が可能となる。さらに、キーオフリトリガーを行うか否かの設定が固定的でないため、例えば伴奏パートとメロディパートの音数(アサイナ数)が動的に変化するような演奏を行う場合でも、それに追随して、自動的に、伴奏パートとメロディパートの間での意図しない音移動(
図9のKOFF1,2あるいは
図11のKOFF5のような音高選択の変化)が生じないようにすることができる。
【0102】
なお、
図12の処理では、キーオフ操作の時点で、発音する音高として音高Nを選択していたアサイナASのみを、キーオフリトリガーを行うか否かの検討対象とし、他のアサイナはキーオフリトリガーを行わないようにした。これは、押鍵中の鍵と対応する音高の発音をそのまま続けられるようにするためである。
しかし、全てのアサイナASについてステップS44及びS45の処理を行い、キーオフリトリガーを行うか否かの検討対象とすることも妨げられない。
【0103】
〔第3実施形態:
図14乃至
図21〕
次に、この発明の第3実施形態の電子楽器について説明する。
この第3実施形態は、キーオフ操作があった場合に、その操作がどの奏法の操作であるか推定し、その推定結果の奏法に基づきキーオフリトリガーを行うか否かを決定するようにした点が第1の実施形態と異なるのみである。そこで、この相違点についてのみ説明し、第1実施形態と同じ又は対応する構成には、第1実施形態と同じ符号を用いる。
なお、ここで説明する例では、検出したキーオフ操作を含む押鍵がレガート奏法の操作か、スタッカート奏法の操作か、それ以外かを推定するようにしている。しかし、これらの一方の奏法のみ考慮したり、その他の奏法について考慮したりしてもよい。
第3実施形態の電子楽器10も、ハードウェアは
図1に示した第1実施形態のものと共通である。
【0104】
図14に、第3実施形態の電子楽器10における、
図2と対応する機能ブロック図を示す。
図14に示す通り、第3実施形態の電子楽器10は、第1実施形態におけるキーオフリトリガー設定部36に代えて、操作履歴保存部39を備える。
そして、操作状態検出部32は、演奏操作子22の操作を検出する度に、その操作の内容及びその操作を反映させた操作状態の情報を操作履歴保存部39に供給し、操作内容及び操作状態の履歴を保存させる。
【0105】
操作履歴保存部39は、操作状態検出部32から供給される、演奏操作子22の操作内容及び操作状態の情報を、時系列的に履歴として保存する機能を備える保存手段である。ここで保存する履歴は、上述した奏法の推定に用いる。
【0106】
図15に、演奏操作子22の操作内容の例を、
図16にこれと対応する履歴を登録した操作履歴テーブルの例を示す。
図15の内容については発明が解決しようとする課題の項で説明したのでここでは再度の説明は省略する。
【0107】
図16に示すように、操作履歴保存部39が保存する履歴は、各時点における演奏操作子22の操作状態(ここでは押鍵状態)と操作内容の情報を含む。
ここで、操作履歴保存部39は、操作状態検出部32から操作内容及び操作状態の情報を受け取る度に、新たな情報を操作履歴テーブルに追加する。このとき、レガート奏法に関する推定を行うだけであれば、各時刻は正確に計時する必要はなく、順序が特定されていればよい。しかし、スタッカート奏法に関する推定を行う場合には、各操作の時刻を正確に計時して記録する。
図16の例では、時刻の欄に、t(1)から始まってt(2)、t(3)、・・・のように、順序を示す変数nを用いてt(n)で各時点の時刻を示しているが、実際の内容を、単なる順序を示す情報とするか、正確な時刻とするかは、どの奏法についてどのような推定を行うかに基づき定めればよい。
【0108】
押鍵状態の項目には、操作状態検出部32から通知された操作状態の情報が示す、その時点での押鍵中の(鍵の)音高を登録する。このとき、降順でも昇順でも構わないので、音高順に登録するとよい。後で音高の順序の情報を用いるためである。
操作内容の項目には、操作状態検出部32から通知された操作内容の情報を、操作された鍵の音高を用いて登録する。この操作内容の履歴を時系列的に参照することにより、鍵の操作順を把握することができる。
【0109】
操作履歴保存部39は、
図15に示す鍵操作があった場合、まず、KON1,2,4のタイミングで音高n1、n2及びn4の鍵が同時にキーオン操作されたことに対応して、時刻t(1)において押鍵中の音高がn1、n2及びn4であり、この時点の操作内容がn1、n2及びn4のキーオンであることを登録する。
次に、KON3のタイミングで音高n3の鍵がキーオン操作されたことに対応して、次の時刻t(2)において押鍵中の音高がn1、n2、n3及びn4であり、この時点の操作内容がn3のキーオンであることを登録する。以降も同様にKOFF4、KOFF1,2、KOFF3の時点の情報を、時刻t(3)、t(4)及びt(5)の時点情報として登録する。
【0110】
この操作履歴テーブルは、例えばRAM13に保存すればよい。しかし、電子楽器10の外部のものも含め、任意の記憶手段に保存することができる。
なお、
図16に示した押鍵状態と操作内容の情報は、一方が時系列的に参照可能であれば、他方の情報は、上記一方の情報に基づき作成可能である。従って、必ずしも両方の履歴を保存しておく必要はない。また、後述のように、この履歴は、直近の時点から大きく遡って参照するものではないので、記憶容量を圧迫しないよう、適当な数のデータを残して古いものは随時削除してしまって差し支えない。
【0111】
その他の点については、キーオフリトリガー制御部35におけるキーオフリトリガー有無の判断基準が
図2に示したものと異なるのみである。なお、この違いは、CPU11の処理について言えば、第1実施形態で説明した
図5乃至
図7の処理のうち、
図7のリトリガー設定処理が異なることに該当する。
ここで、
図17に、第3実施形態におけるリトリガー設定処理のフローチャートを示す。なお、キーオフ操作が複数あった場合には、その各キーオフ操作について、リトリガー設定処理を行う。
【0112】
図17の処理において、CPU11はまず、
図5のステップS11での更新後の操作履歴テーブルにおける最新の時刻を示す値を、変数aに代入する(S61)。
図16の操作履歴テーブルが作成される場合において、n4キーオフの時点で
図17の処理を行ったとすると、a=3となる(この時点ではt(4)及びt(5)のデータはまだテーブルに登録されていない)。
次に、CPU11は、操作履歴テーブルを参照して、今回検出したキーオフ操作が、所定の条件を満たすか否か判断する(S62〜S65)。これらの判断は、今回検出したキーオフ操作がレガート奏法の操作であるか否かを推定するためのものである。
【0113】
この判断は、例えば、判断のトリガとなったキーオフ操作が行われた鍵の音高をN(
図15の例ではn4)として、音高Nの鍵のキーオン操作、Nと異なる音高M(
図15の例ではn3)の鍵のキーオン操作、音高Nの鍵のキーオフ操作の順で操作が行われ、かつ、音高Mの鍵のキーオン操作の時点で、音高Mと音高Nの間の音高の鍵が操作中でない、という条件を満たす音高Mがあること、とすることが考えられる。
【0114】
上記のうち操作順の条件は、
図15の音高n4と音高n3のように、発音指示期間に一部重なりのある操作が行われた、ということを判定するためのものである。
また、音高Mと音高Nの間の音高の鍵が操作中でないという条件(音高順の条件)は、レガート演奏の特性を考慮したものである。すなわち、
図15のような操作が行われるのは典型的にはレガート演奏の場合であるが、この場合、続けて押鍵される2つの鍵の間の音高で、押鍵が移行するタイミングに他の鍵が押鍵されることは希である。そこで、間で他の鍵が押鍵されていれば、それはレガート演奏ではなく、音数を変えることを意図した演奏であると解釈し、発音音高の再選択を行わないようにすることが好ましい。
【0115】
なお、左右の手でメロディーと伴奏を演奏する場合にも、たまたま一部の鍵の押鍵期間がレガート演奏に近い形で重なることもあり得る。このような演奏を効率的に見分けるため、音高Mと音高Nの音高差が所定値以内であること、という条件を追加することも考えられる。
レガート演奏の場合、続けて押鍵される2つの鍵の音高が大きく離れることは希であるが、メロディーと伴奏であれば、通常は押鍵される鍵の音高はある程度離れていると考えられるためである。
ステップS62〜S65で用いる条件は、上記の操作順の条件と音高順の条件を、操作履歴テーブルの登録内容と直接対応するようにより具体的なものとした一例である。
【0116】
ステップS62〜S65では、CPU11は、
i)時刻t(a-1)において検出した操作にキーオンがある、
ii)時刻t(a-1)にキーオン操作された音高Mと、今回キーオフ操作を検出した
音高Nとの間に時刻t(a-1)時点で押鍵中の鍵がない、
iii)時刻t(a-2)において音高Nの鍵が押鍵中、
iv)時刻t(a)において音高Mの鍵が押鍵中、
の全てが成り立つか否か判断する。
【0117】
そして、全て成り立つ場合、CPU11は、今回検出したキーオフ操作はレガート奏法の操作であると推定する。この場合、CPU11は、音高Nの発音を
図5のステップS16で停止する前に上記音高Nの発音を行っていたパートと対応するアサイナASについて、キーオフリトリガーを行うことを一応決定し、リトリガー解除操作子が操作中でない(S68)場合にその旨を最終決定する(S69)。そして、該当のアサイナに発音割り当てフラグを立てる(S70)。ステップS70の処理は、キーオフ操作がされた音高を選択しているアサイナASについて発音割り当てフラグをセットするということもできる。
【0118】
一方、ステップS62乃至S65のいずれかでNoの場合には、CPU11は、今回検出したキーオフ操作はレガート奏法の操作でないと推定する。そこで、次に、音高Nのキーオンから今回キーオフまでの時間が所定値以内であるか否か判断する(S66)。すなわち、今回キーオフ操作された鍵の押鍵期間が所定値以内であるか否か判断する。
【0119】
ここでYesであれば、CPU11は、今回検出したキーオフ操作はスタッカート奏法の操作であると推定する。この場合、CPU11は、上記ステップS69及びS70の場合と同じアサイナASについて、キーオフリトリガーを行わないことを決定する(S71)。この場合、該当のアサイナに発音割り当てフラグは立てない。ステップS68でリトリガー解除操作子が操作中であった場合も同様である。
【0120】
また、ステップS66でNoである場合、CPU11は、今回検出したキーオフ操作はレガート奏法及びスタッカート奏法以外の操作であると推定する。この場合、キーオフリトリガーの有無は、予め登録してあるデフォルトの設定に従って行う(S67)。ただし、この場合でも、リトリガー解除操作子が操作中であった場合には、キーオフリトリガーは行わない(S68)。また、デフォルトの設定は、全アサイナについて共通であっても、アサイナ毎に設定できるようにしてもよい。
いずれの場合も、ステップS70又はS71の後、元の処理に戻る。
【0121】
このとき、処理は
図5のステップS17に戻るので、
図5の処理では次に
図6の発音割り当て処理に進む(S15)。そして、この発音割り当て処理においては、ステップS70で発音割り当てフラグをセットしたアサイナASについてのみ、ステップS22の判断がYesとなり、発音する音高の選択と発音開始指示を行う。いずれのアサイナASについても発音割り当てフラグがなければ、発音する音高の選択と発音開始指示を行うことはない。
【0122】
そして、以上の処理を実行することにより、CPU11は、キーオフ操作の奏法に応じてアサイナASに発音する音高の選択と発音開始指示を行わせるべき場合を適切に判別し、これを行わせることができる。そして、このことにより、ユーザの演奏操作の意図に合った発音を行うことができる。
この点について、
図18乃至
図21を用いて説明する。
図18は、
図15に示した操作に応じて
図5、
図6及び
図17に示した処理を実行し、
図3に示した4つのアサイナにより発音する音高を選択させた場合の発音の様子を示す、
図8等と対応する図である。
【0123】
この場合、初めのKON1,2,4のタイミングでは、n1,n2,n4の3つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1及び第2アサイナAS−2は最高音のn4を、第3アサイナAS−3は下から2番目のn2を、第4アサイナAS−4は最低音のn1を選択する。
次のKON3のタイミングでは、n1,n2,n3,n4の4つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第2アサイナAS−2は下から3番目のn3の選択に変わる。他の3つのアサイナの選択は、KON1,2,4のタイミングにおける選択と変わらない。
【0124】
そして、次のKOFF4のタイミングでは、キーオフ操作された音高n4の発音が停止される。しかし、このときのキーオフ操作は、
図8のステップS32〜S35の条件を全て満たす。このため、発音が停止された音高n4を選択していた第1アサイナAS−1に、この時点で押鍵中のn1,n2,n3の3つの音高から、発音する音高を選択させる。その結果、第1アサイナAS−1は最高音のn3を選択する。他のアサイナにはこの時点での選択は行わせないので、KON3のタイミングにおける選択の状態が維持される。
その結果、
図18に示すように、アサイナ毎にキーオフリトリガーの有無を設定しなくても、レガート奏法による音高n3の押鍵に応じて、その前の音高n4の押鍵の時と同じ第1及び第2アサイナAS−1,2と対応する音色T1,T2での発音が可能となる。
【0125】
次に、
図19に、リトリガー判定処理を行わない比較例における、
図18と対応する発音の様子を示す。
この場合、KOFF4のタイミングで第1アサイナAS−1が音高n3を選択することがないので、第1アサイナAS−1と対応する音色での発音は、KOFF4のタイミングで停止されたままとなる。このため、音高n3の押鍵と対応する発音は、第2アサイナAS−2と対応する音色T2のみとなる。
従って、音高n3の押鍵と対応する発音は、音高n4の押鍵と対応する発音と異なる音色でなされることになり、演奏者の意図に合わないものとなってしまう。逆に言えば、
図17のリトリガー判定処理を行うことにより、このような不具合を防止することができる。
【0126】
図20及び
図21は、スタッカート奏法の演奏操作があった場合の発音の様子を示す、
図18及び
図19と対応する図である。音高n3における3回の押鍵時間は、いずれも
図17のステップS66における所定値以内であるとする。すなわち、スタッカート奏法の押鍵とする。このため、前の押鍵から次の押鍵までに若干の間隔が開く。
この場合、初めのKON1,2,3-1のタイミングでは、n1,n2,n3の3つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1及び第2アサイナAS−2は最高音のn3を、第3アサイナAS−3は下から2番目のn2を、第4アサイナAS−4は最低音のn1を選択する。
【0127】
図20は、スタッカート奏法にも関わらず、音高n3におけるキーオフ操作のタイミング(KOFF3-1, KOFF3-2, KOFF3-3)にて、音高n3を選択していた第1アサイナAS−1及び第2アサイナAS−2についてキーオフリトリガーを行うようにした場合の例である。
この場合、第1アサイナAS−1及び第2アサイナAS−2は、リトリガー時点で最高音のn2を選択し、新規に発音を開始してしまう。そして、その後の音高n3におけるキーオン操作のタイミングで、再度音高n3を選択してまた新規に発音を開始する。従って、演奏者はスタッカート奏法で同じ音を続けて演奏しているにも関わらず、発音される音は、音高n2と音高n3をめまぐるしく繰り返す音となってしまう。
【0128】
図21は、
図17に示したリトリガー判定処理により、スタッカート奏法と推定されるキーオフ操作の際にはキーオフリトリガーを行わないようにした場合の例である。
この場合、音高n3におけるキーオフ操作のタイミング(KOFF3-1,
KOFF3-2, KOFF3-3)ではキーオフリトリガーは起こらない。従って、第1アサイナAS−1及び第2アサイナAS−2と対応する音色TG1及びTG2の楽音は、演奏者の意図した演奏内容に合うように、音高n3で若干の間隔を開けて3度発音される。
なお、
図17の処理では、キーオフ操作の時点で、発音する音高として音高Nを選択していたアサイナASのみを、キーオフリトリガーを行うか否かの検討対象とし、他のアサイナはキーオフリトリガーを行わないようにした。これは、押鍵中の鍵と対応する音高の発音をそのまま続けられるようにするためである。
【0129】
〔変形例:
図22〕
以上で実施形態の説明を終了するが、装置の構成、演奏操作子を始めとする操作子の構成、処理に用いるデータの構成、具体的な処理の手順等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、
図17に示したリトリガー判定処理において、レガート奏法と推定する条件を、時刻t(a-1)にキーオンがない場合でも、
図17の説明で述べた操作順の条件と音高順の条件が満たされていれば、発音割り当てフラグのセットを行うようにすることも考えられる。その他、
図17の説明で述べたi)〜iv)の条件を一部のみ考慮するようにするなど、どのような発音をさせたいかという意図に合わせて、任意に異なる条件を採用可能である。
【0130】
また、上述した各実施形態ではキーオフリトリガー制御部35を割当制御部33と別に設ける例について説明したが、割当制御部33の各アサイナASがキーオフリトリガー制御部35の機能を備えていてもよい。この場合、操作状態検出部32がキーオフデータを受信した場合に、キーオンデータの場合と同様に割当制御部33の各アサイナASにその操作の情報を通知するとよい。そして、各アサイナASが、自身が選択している音高についてのキーオフ操作を通知された場合に、
図7、
図12及び
図17等を用いて説明したように、所定の条件に基づきキーオフリトリガーの要否を判定し、必要と判断した場合に、
図6のステップS23及びS24のようにリトリガーの処理を行うようにすればよい。
なお、第1実施形態においては、キーオフ操作が行われたときに、全アサイナASについてステップS32以降の処理を行うようにしていたが、キーオフ操作が行われた音高を選択していたアサイナASについてのみステップS32以降の処理を行うようにしてもよい。
【0131】
また、
図5のステップS12でNoの場合に、キーオフ操作に係る音高を発音しているパートと対応するアサイナについて発音割り当てフラグを立て、リトリガー設定処理において、キーオフリトリガーを行わないこととしたアサイナについてフラグをクリアするようにしてもよい。
なお、第1実施形態でこのように処理した場合、キーオフ操作された音高で発音していたパートについてのみ
図4のリトリガー設定に沿って発音割り当てフラグが立てられ、その他のパートではそもそも発音割り当てフラグが立たなくなる。
【0132】
また、上述した実施形態におけるリトリガー解除操作子の機能を、単独で設けてもよい。すなわち、キーオフリトリガーの有無を、リトリガー解除操作子の操作有無のみに基づき、あるいはこれに加えてアサイナASがキーオフ操作が行われた音高を選択していたか否かに基づき、決定することも考えられる。
また、各アサイナについて設定する音高選択の規則につき、
図22に示すように、押鍵数毎に異なる挙動を示すものとしてもよい。
図22では第2アサイナと第3アサイナについて押鍵数4までしか規則を規定していないが、5以上の場合について規定してもよい。
【0133】
また、上述した実施形態では、リトリガー解除操作子を、鍵盤とは別の操作子として設ける例について説明した。しかし、鍵盤上の一番端の鍵など、鍵盤上の鍵のいずれかを、リトリガー解除操作子として用いることができるようにしてもよい。
また、キーオフリトリガーを一時的に無効にすることを指示するための操作子に代えて、又はこれに加えて、キーオフリトリガーを一時的に有効にすることを指示するための操作子を設けてもよい。この操作子が操作されている間にキーオフ操作があった場合には、全てのアサイナAS、あるいはキーオフ操作が行われた音高を選択していた全てのアサイナASに、強制的に、キーオフリトリガーを行わせることが考えられる。
また、これらの操作子の操作に応じてキーオフリトリガーを一時的に無効にするあるいは有効にするアサイナの範囲を、ユーザが設定できるようにすることも考えられる。
【0134】
また、上述した実施形態では、演奏操作子が鍵盤であり、発音開始指示を押鍵操作により、発音停止指示を離鍵操作により行う例について説明した。しかし、演奏操作子の形態はこれに限られない。他の楽器の形状はもちろん、マトリクス状に操作部を配置したパッドなど、伝統的な楽器と全く異なる形状のユーザインタフェースを備える装置にもこの発明は適用可能である。この場合、発音開始指示及び発音停止指示は、そのユーザインタフェースの特性に応じた操作方法で受け付けることになる。
【0135】
また、電子楽器10が演奏操作子を内蔵している必要もない。通信I/F15に接続された外部のコントローラから、演奏操作子の操作内容を示す演奏データを取得し、その演奏データに基づいて電子楽器10が各操作部の操作状態を把握することも考えられる。
また、汎用コンピュータのキーボードや、タッチパネルに表示したGUI(グラフィカルユーザインタフェース)を、演奏操作子として用いることも考えられる。この場合において、汎用コンピュータに
図2等に示した各部の機能を実現させることにより、電子楽器として機能させることができる。また、いずれの場合でも、
図2等に示した各部の機能を、複数の装置に分散して設け、それらを協働させて電子楽器10の機能を実現させることもできる。
【0136】
この発明の実施形態であるプログラムは、1のコンピュータに、または複数のコンピュータを協働させて、
図2等に示した各部(特にキーオフリトリガー制御部35)の機能を実現させるためのプログラムである。
そして、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
【0137】
このようなプログラムは、はじめからコンピュータに備えるROMや他の不揮発性記憶媒体(フラッシュメモリ,EEPROM等)などに格納しておいてもよい。しかし、メモリカード、CD、DVD、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
【0138】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。