(57)【要約】【課題】  連続した演奏操作が一部分重なってなされた場合でも、聴感への悪影響を抑えつつ、演奏者の演奏操作の意図に合った発音を容易に行えるようにする。【解決手段】  それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数のアサイナを設け、各アサイナによる音高の選択履歴を保存し、その保存した選択履歴が所定の条件を満たしたアサイナについての上記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する（Ｓ２２，Ｓ２３）ようにした。【選択図】        図７
2015099328.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数の選択手段と、
前記各選択手段による音高の選択履歴を保存する保存手段と、
前記保存手段が保存する選択履歴が所定の条件を満たした選択手段についての前記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手段とを備えることを特徴とする電子楽器。
【請求項２】
請求項１に記載の電子楽器であって、
前記所定の条件は、所定期間内に所定基準以上の頻度で選択する音高の変動があった、であることを特徴とする電子楽器。
【請求項３】
それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数の選択手段と、
前記各操作部の操作履歴を保存する保存手段と、
前記保存手段が保存する操作履歴中の複数操作が所定の条件を満たす場合に、該複数操作いずれかの際に選択する音高が変動した選択手段についての前記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手段とを備えることを特徴とする電子楽器。
【請求項４】
請求項３に記載の電子楽器であって、
前記所定の条件は、ある音高の操作部に発音開始操作を行ってから所定時間内に別の音高の操作部に発音停止操作を行う操作を、所定基準以上の頻度で行った、であることを特徴とする電子楽器。
【請求項５】
コンピュータを、
それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数の選択手段と、
前記各選択手段による音高の選択履歴を保存する保存手段と、
前記保存手段が保存する選択履歴が所定の条件を満たした選択手段についての前記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手段として機能させるためのプログラム。
【請求項６】
コンピュータを、
それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数の選択手段と、
前記各操作部の操作履歴を保存する保存手段と、
前記保存手段が保存する操作履歴中の複数操作が所定の条件を満たす場合に、該複数操作いずれかの際に選択する音高が変動した選択手段についての前記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手段として機能させるためのプログラム。
【請求項７】
発音を指示する複数の操作部の操作状態に応じて１又は複数の選択手段がそれぞれ所定の規則に基づき発音する音高を選択する選択手順と、
前記各選択手順による音高の選択履歴を保存する保存手順と、
前記保存手順で保存した選択履歴が所定の条件を満たした選択手段についての前記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手順とを備えることを特徴とする発音音高選択方法。
【請求項８】
発音を指示する複数の操作部の操作状態に応じて１又は複数の選択手段がそれぞれ所定の規則に基づき発音する音高を選択する選択手順と、
前記各操作部の操作履歴を保存する保存手順と、
前記保存手順で保存した操作履歴中の複数操作が所定の条件を満たす場合に、該複数操作いずれかの際に選択する音高が変動した選択手段についての前記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手順とを備えることを特徴とする発音音高選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の操作部の操作状態に応じて発音する音高を選択する電子楽器、コンピュータにこのような音高選択機能を実現させるためのプログラム、および、複数の操作部の操作状態に応じて発音する音高を選択する発音音高選択方法に関する。
【背景技術】
【０００２】
従来から、電子楽器において、押鍵されている音高の中から予め定めたルールに従って発音すべき音高を選択するアサイナを複数設け、各アサイナが選択した音高を、そのアサイナと対応する音色で発音させることが知られている。
【０００３】
そして、この複数のアサイナを用いることにより、例えば１のアサイナに低音側の音高を選択させ、他のアサイナに高音側の音高を選択させるようにルールを定めておけば、自動的に低音側と高音側の音（例えば伴奏とメロディ）を異なる音色で弾き分けることができる。また、ルールの設定によっては、複数のアサイナに同じ音高を選択させ複数パートのユニゾン演奏のような発音を行ったり、複数のアサイナにそれぞれ異なる音高を選択させ複数パートのアンサンブル演奏のような発音を行ったりすることもできる。
このような電子楽器については、例えば特許文献１に記載がある。
【０００４】
また、特許文献２には、電子楽器において、押鍵されたノートに、押鍵数に応じた規則で所定数のパートを割り当て、各ノートを、そのノートに割り当てたパートの音色で発音させる電子楽器が開示されている。この電子楽器によれば、押鍵数によらず、常に所定数のパートを発音させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２５６５０６９号公報
【特許文献２】特開２０１０−７９１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述の複数のアサイナを用いてそれぞれ発音すべき音高を選択する場合において、特許文献１に記載の方式では、必ずしも望ましい発音ができるとは限らなかった。
例えば、レガート演奏を行う場合のように、前の音と次の音を続けて演奏する場合、前の音の鍵を離鍵する前に次の音の鍵を押鍵する場合の発音に不都合があった。
【０００７】
図１９にこの例を示す。図１９において、縦軸が時間、横軸が音高であり、各音高における帯が、その音高の鍵を押鍵している期間を示す。図１９の例において、音高ｎ４の鍵が押鍵され、これが離鍵される前に、音高ｎ３の鍵が押鍵されている。そして、その後音高ｎ４の鍵はすぐに離鍵されていることから、この演奏は音高ｎ４の音と音高ｎ３の音を続けて発音させることを意図した演奏であると推測できる。
【０００８】
しかしながら、特許文献１に記載の方式では、押鍵操作に応じて各アサイナに発音すべき音高を選択させる一方、離鍵操作の際には、離鍵された鍵と対応する音を発音中の発音チャンネルにキーオフ信号を送るのみである。すなわち、離鍵操作の際には、アサイナによる音高の選択は行わない。
【０００９】
従って、例えば初めに音高ｎ４の鍵が（ｎ１及びｎ２の鍵と同時に）押鍵されるKON1,2,4のタイミングでは、各アサイナは音高ｎ１，ｎ２，ｎ４の３つの鍵が押鍵された状態で発音すべき音高を選択することになる。しかし、音高ｎ３の鍵が押鍵されるKON3のタイミングでは、各アサイナは、音高ｎ１〜ｎ４の４つの鍵が押鍵されている状態で音高の選択を行うこととなってしまう。また、その後すぐに音高ｎ４の鍵が離鍵されるKOFF4のタイミングでは、単に音高ｎ４について発音している音を消音することになる。
【００１０】
このため、KON1,2,4からKON3の期間と、KOFF4以降の期間とでは、押鍵されている鍵の音高順と、各アサイナが選択する音高との関係がずれてしまう可能性がある。すなわち、演奏操作からは、音高ｎ４の音と音高ｎ３の音とは続けて発音させる意図が推測できるのに、これらの音高の音を異なる音色で発音してしまい、不自然な発音となってしまう可能性がある。
【００１１】
特許文献２には、複数のアサイナを用いる方式とは異なるものの、このようなレガート演奏時に発音が不自然とならないようにするためのミスレガート処理について記載されている。このミスレガート処理は、発音中の最新ノートのノートオンからミスレガート判定時間以内にノートオフがあった場合に、その時点でノートへのパートの割り当てと発音をやり直すというものである。
【００１２】
このようにすれば、図１９のような演奏操作がなされた場合に、KON3からKOFF4までの期間がミスレガート判定時間以内であれば、KOFF4のタイミングで割り当てをやり直すことができ、KOFF4以降は音高ｎ１〜ｎ３の３つの押鍵と対応した発音を行うことができる。
【００１３】
しかしながら、KOFF4のタイミングで割り当てをやり直すとすると、音高ｎ３に複数のパートを割り当てる場合に、音高ｎ３の１回の押鍵について、KON3で発音開始するパートと、KOFF4で発音開始するパートとがあることになってしまう。このため、若干ずれたタイミングで２つの音が発音されることになり、聴感上好ましくない。この点は、音高が素早く入れ替わる（１回の押鍵の時間が短い、又は短時間に連続して発音がある）演奏を行う場合に特に顕著である。
【００１４】
この発明は、このような事情に鑑みてなされたものであり、連続した演奏操作が一部分重なってなされた場合でも、聴感への悪影響を抑えつつ、演奏者の演奏操作の意図に合った発音を容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、この発明の電子楽器は、それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数の選択手段と、上記各選択手段による音高の選択履歴を保存する保存手段と、上記保存手段が保存する選択履歴が所定の条件を満たした選択手段についての上記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手段とを設けたものである。
このような電子楽器において、上記所定の条件が、所定期間内に所定基準以上の頻度で選択する音高の変動があった、であるとよい。
【００１６】
また、この発明の別の電子楽器は、それぞれ音高と対応する複数の操作部の操作状態に応じて所定の規則に基づき発音する音高を選択する１又は複数の選択手段と、上記各操作部の操作履歴を保存する保存手段と、上記保存手段が保存する操作履歴中の複数操作が所定の条件を満たす場合に、その複数操作いずれかの際に選択する音高が変動した選択手段についての上記所定の規則を、最後に発音開始操作された操作部の音高を選択する後着優先に変更する制御手段とを設けたものである。
このような電子楽器において、上記所定の条件が、ある音高の操作部に発音開始操作を行ってから所定時間内に別の音高の操作部に発音停止操作を行う操作を、所定基準以上の頻度で行った、であるとよい。
この発明は、装置として実現する他、プログラム、方法、システム、その他任意の形態で実現することができる。
【発明の効果】
【００１７】
以上のようなこの発明の電子楽器、プログラム及び発音音高選択方法によれば、連続した演奏操作が一部分重なってなされた場合でも、聴感への悪影響を抑えつつ、演奏者の演奏操作の意図に合った発音を容易に行えるようにすることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態である電子楽器のハードウェア構成を示すブロック図である。
【図２】図１に示した電子楽器における、アサイナを用いた発音制御に関連する機能の機能ブロック図である。
【図３】アサイナに設定する、発音音高選択規則の例を示す図である。
【図４】選択履歴テーブルの例を示す図である。
【図５】図１に示した電子楽器におけるアサイナによる音高選択の例を示す図である。
【図６】図１に示した電子楽器においてＣＰＵが実行する処理を示すフローチャートである。
【図７】図６に示した速弾き判定処理のフローチャートである。
【図８】図６に示した発音割り当て処理のフローチャートである。
【図９】図１に示した電子楽器においてＣＰＵが実行する別の処理を示すフローチャートである。
【図１０】第１実施形態の比較例における音高選択の例を示す図である。
【図１１】第２実施形態の電子楽器における、アサイナを用いた発音制御に関連する機能を示す、図２と対応する機能ブロック図である。
【図１２】操作履歴テーブルの例を示す図である。
【図１３】レガート履歴テーブルの例を示す図である。
【図１４】第２実施形態の電子楽器におけるアサイナによる音高選択の例を示す図である。
【図１５】第２実施形態の電子楽器においてＣＰＵが実行する処理を示すフローチャートである。
【図１６】第２実施形態の比較例における音高選択の例を示す図である。
【図１７】第２実施形態の別の比較例における音高選択の例を示す図である。
【図１８】アサイナに設定する発音音高選択規則の変形例を示す図である。
【図１９】電子楽器における演奏操作の例を示す図である。
【発明を実施するための形態】
【００１９】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
〔第１実施形態：図１乃至図９〕
図１は、本発明の一実施形態である電子楽器のハードウェア構成を示すブロック図である。
図１に示すように、電子楽器１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、記憶装置１４、通信インタフェース（Ｉ／Ｆ）１５、検出回路１６、表示回路１７、音源回路１８を備え、これらをシステムバス１９により接続している。また、電子楽器１０は、ＣＰＵ１１に接続するタイマ２１、検出回路１６に接続する演奏操作子２２及び設定操作子２３、表示回路１７に接続するディスプレイ２４、音源回路１８に接続するＤＡＣ（デジタルアナログ変換回路）２５及びサウンドシステム２６も備える。
【００２０】
そして、ＣＰＵ１１が、ＲＡＭ１３をワークエリアとしてＲＯＭ１２又は記憶装置１４に記憶された所要のプログラムを実行することにより、電子楽器１０全体を制御し、演奏操作の検出、演奏操作子の操作状態に応じた発音音高の選択、その選択に従った発音の制御等の各種機能を実現する。ＣＰＵ１１に接続されるタイマ２１は、基本クロック信号、割り込み処理タイミング等をＣＰＵ１１に供給する。
なお、ＲＯＭ１２には、上記のプログラムの他、音色に対応する波形データや自動演奏データ、自動伴奏データ（伴奏スタイルデータ）などの各種データファイル、各種パラメータ及び各種テーブル等も記憶する。
【００２１】
ＲＡＭ１３は、フラグ、レジスタ、各種パラメータ等を記憶するＣＰＵ１１のワークエリアの他、再生バッファ等のバッファ領域としても用いる。
記憶装置１４は、ハードディスク、半導体メモリ等の記録媒体とその駆動装置の組み合わせの少なくとも１つで構成される。
通信Ｉ／Ｆ１５は、サーバ、音響機器、外部コントローラ等の外部装置と通信を行うためのインタフェースであり、有線、無線を問わず、任意の規格の通信手段を用いて構成することができる。例えば、ＵＳＢ（Universal  Serial  Bus）やＭＩＤＩ（Musical  Instrument  Digital  Interface）＿Ｉ／Ｆを用いることが考えられる。
【００２２】
検出回路１６は、演奏操作子２２及び設定操作子２３をシステムバス１９に接続するためのインタフェースである。
演奏操作子２２は、検出回路１６に接続され、ユーザの演奏動作に従い、演奏情報（演奏データ）を供給する。演奏操作子２２は、ユーザの演奏操作を受け付けるための、それぞれ音高と対応する複数の操作部を備える。そして、該ユーザの操作部に対する操作開始タイミング及び終了タイミングを、それぞれユーザが操作した操作部に対応する音高の情報を含むキーオンデータ及びキーオフデータとして、検出回路１６を通じてＣＰＵ１１に供給する。また、演奏操作子２２は、ユーザの演奏操作に応じてベロシティ値等の各種パラメータを供給することも可能である。なお、本実施例では、鍵盤型の演奏操作子２２を備え、上記各操作部が鍵であるとして説明するが、これに限るものではない。
【００２３】
また、設定操作子２３は、例えば、ボタン、スライダ、ロータリーエンコーダ、文字入力用キーボード、マウス等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、設定操作子２３は、ディスプレイ２４上に表示されるＧＵＩ（Graphical  User  Interface）に対する操作を行うためのポインティングデバイスや、ディスプレイ２４に積層したタッチパネルでもよい。
いずれにせよ、ユーザは、設定操作子２３を用いて、各種入力及び設定、選択をすることができる。
【００２４】
表示回路１７は、ディスプレイ２４をシステムバス１９に接続するためのインタフェースである。
ディスプレイ２４は、電子楽器１０の設定のための各種情報や、電子楽器１０の動作状態等を表示するための表示手段であり、例えば液晶表示装置や発光ダイオード（ＬＥＤ）等により構成することができる。
【００２５】
音源回路１８は、ＣＰＵ１１からの発音指示に応じて、複数の発音ｃｈ（チャンネル）でそれぞれ楽音信号（デジタル波形データ）を生成する機能を備える。ＣＰＵ１１からの発音指示には、音色、音高、音量等の指定が含まれる。ＣＰＵ１１は、演奏操作子２２の演奏操作を検出した場合に、アサイナの機能により、押鍵中の鍵の音高から、各アサイナと対応する発音を行わせる音高を選択し、その選択に従った発音を音源回路１８に指示する。その詳細については後述する。
【００２６】
なお、音源回路１８は、記憶装置１４、ＲＯＭ１２又はＲＡＭ１３等に記録された波形データ、オーディオデータ、自動伴奏データ、自動演奏データ又は、通信Ｉ／Ｆ１５に接続された外部機器等から供給される演奏信号、ＭＩＤＩ信号、フレーズ波形データ等に応じて楽音信号を生成することも可能である。また、音源回路１８は、生成した楽音信号に各種音楽的効果を付加する機能も備える。
【００２７】
そして、音源回路１８は、生成した楽音信号をＤＡＣ２５に出力する。ＤＡＣ２５はこの楽音信号をアナログ音響信号に変換し、ＤＡＣ２５に接続されているサウンドシステム２６に供給する。サウンドシステム２６は、アンプ、スピーカを含む発音手段であり、ＤＡＣ２５から供給されるアナログ音響信号を、発音出力する。ＤＡＣ２５及びサウンドシステム２６は、電子楽器１０の外部にあってもよい。
以上の電子楽器１０において、特徴的な点は、アサイナの動作に関する点である。そこで、次にアサイナの動作についてより具体的に説明する。
【００２８】
図２に、電子楽器１０における、アサイナを用いた発音制御に関連する機能の機能ブロック図を示す。
図２に示すように、電子楽器１０は、発音指示受付部３１、操作状態検出部３２、割当制御部３３、楽音生成部３４、選択履歴保存部３５、後着優先設定部３６、出力部３７を備える。これらのうち、発音指示受付部３１の機能は演奏操作子２２及び検出回路１６により実現され、楽音生成部３４の機能は音源回路１８により実現され、出力部３７の機能はサウンドシステム２６により実現される。他の各部の機能はＣＰＵ１１により実現される。
【００２９】
そして、発音指示受付部３１は、ユーザによる発音指示操作を受け付ける機能を備える。例えば、演奏操作子２２である鍵盤がいずれかの鍵の押鍵操作（発音開始操作）を受け付けると、発音指示受付部３１はこれを検出し、操作状態検出部３２に対し、押鍵操作があったこと及び押鍵された鍵の音高であるノートナンバを示す操作信号であるキーオンデータを送信する。離鍵操作（発音停止操作）を受け付けた場合には、同様に離鍵操作があったことを及びその鍵のノートナンバを示すキーオフデータを送信する。
【００３０】
なお、以下の説明において、押鍵のように発音開始を指示するための操作を「キーオン操作」、離鍵のように発音停止を指示するための操作を「キーオフ操作」と呼ぶことにする。また、キーオン操作からキーオフ操作までの状態を、「操作中」と呼ぶことにする。鍵盤の鍵で言えば、「押鍵中」がこれに該当する。ただし、発音開始の指示があった場合でも、必ずしも実際に発音が開始されるとは限らない。一定の音高について発音を行わない設定を可能としたり、同時発音数に制限を設けたりすることがあり得るためである。
【００３１】
操作状態検出部３２は、発音指示受付部３１から送信される操作信号に基づき、現在の演奏操作子２２の操作状態（ここでは鍵盤なので押鍵状態）を検出する。より具体的には、操作中の（鍵の）音高を求める。この押鍵状態は、例えば、キーオンデータに含まれるノートナンバを操作中の音高のリストに追加し、キーオフデータに含まれるノートナンバを操作中の音高のリストから削除することにより求めることができる。
【００３２】
そして、操作状態検出部３２は、キーオンデータを受信した場合には、検出した操作状態の情報を割当制御部３３に供給し、発音する音高の選択を行わせる。具体的な供給先は、割当制御部３３が備える第１アサイナＡＳ−１から第ｎアサイナＡＳ−ｎまでのｎ個のアサイナのうち、機能が有効になっているアサイナである。
【００３３】
なお、人が演奏を行う場合には、同時に複数の鍵の操作を行ったつもりでも、寸分違わず同じタイミングでその操作を行うことは困難である。そこで、複数の操作のタイミング差が同時操作とみなせる程度の所定閾値（例えば１５〜３０ミリ秒程度）以内であれば、それらの操作は同時に行われたものとみなして取り扱うことが望ましい。ここではこの取り扱いをするとして説明する。ある鍵のキーオン操作と別の鍵のキーオフ操作が同時に行われることもあり得る。
さらに、操作状態検出部３２は、キーオフデータを受信した場合に、楽音生成部３４に対し、キーオフ操作が行われた音高の発音を停止させる機能も備える。
また、操作状態検出部３２は、キーオンデータを受信した場合に、後着優先設定部３６に対し、その旨を伝達する機能も備える。
【００３４】
次に、割当制御部３３は、１又は複数（ここではｎ個とする）のアサイナＡＳ−１〜ＡＳ−ｎを備える（アサイナの個体を特定する必要がない場合は符号「ＡＳ」を用いる）。これらの各アサイナＡＳはそれぞれ、操作状態検出部３２からキーオン操作に応じて供給される演奏操作子２２の操作状態の情報に応じて、操作中（押鍵中）の音高の中から、楽音生成部３４に発音させる音高（ノート）を選択する選択手段である。この選択は、アサイナ毎に設定される規則に従って行う。
【００３５】
図３に、アサイナに設定する規則の例を示す。
図３は、４つのアサイナを用いる場合の例であり、各アサイナに設定する規則は、「対象押鍵」及び「優先方式」の項目からなる。「説明」の項目は、これらの項目の情報により定められる規則の内容の理解を助けるための説明であり、選択処理には用いない。
【００３６】
対象押鍵の項目は、押鍵中の音高のうちどの範囲を選択の対象として考慮するかを定める項目である。「全押鍵」は、押鍵中の音高全てを考慮することを示す。「低音側Ｘ音」は、押鍵中の音高のうち低音側からＸ個の音高のみ考慮することを示す。ただし、押鍵数がＸ未満の場合には、押鍵中の音高全てを考慮する。また、図３には示していないが、同様に「高音側Ｘ音」の設定も可能である。
【００３７】
優先方式の項目は、選択の対象として考慮する音高の中で、発音する音高をどのように選択するかを定める項目である。「高音優先」は、考慮する音高の中で最も高い音高を選択することを示す。「低音優先」は、考慮する音高の中で最も低い音高を選択することを示す。
【００３８】
以上から、第１アサイナについては、押鍵中の音高全てのうち最も高い音高を選択する規則が設定されていることがわかる。
第２アサイナについては、押鍵数が３以下であれば、その押鍵の中で最も高い音高を選択することになる。押鍵数が４以上であれば、低音側３音の中で最も高い音高、すなわち下から３番目の音高を選択することになる。
第３アサイナについては、同様に、押鍵数が２以下であれば、その押鍵の中で最も高い音高を、押鍵数が３以上であれば、下から２番目の音高を選択することになる。
第４アサイナについては、押鍵中の音高全てのうち最も低い音高を選択する規則が設定されていることがわかる。
図にないアサイナについては機能が無効化されていると考えればよい。
【００３９】
各アサイナＡＳは、以上の規則に従い発音する音高を選択すると、楽音生成部３４に対し、その選択した音高の楽音を発音開始するよう要求する。また、各アサイナＡＳには対応する音色Ｔ１〜Ｔｎが設定されており、楽音をその対応する音色で発音するよう要求する。なお、アサイナＡＳには対応するパートを設定し、音色はパートに対応付けて設定することも可能である。この場合、アサイナＡＳと音色とは、パートを介して対応付けられることになり、アサイナＡＳ−ｎに対応付けられたパートを第ｎパートと表す。
また、各アサイナＡＳは、ある音高を選択している状態で別の音高を選択した場合に、楽音生成部３４に対し、その時選択していた音高の楽音を発音停止するよう要求する。
【００４０】
なお、各アサイナＡＳは、自身が最後に選択した音高がどの音高であるかの情報を、次に別の音高を選択するまで、保持しておく。そして、音高の選択を行った場合でも、選択した音高が前回選択した音高と変わらず、かつその音高が今回キーオン操作された音高でない（以前から操作中であった）音高である場合、楽音生成部３４に対する発音の要求を行わないようにするとよい。この場合、該当のアサイナＡＳが今回選択した音高については、今回検出されたキーオン操作とは関係なく、以前のキーオン操作に応じて開始した発音を継続することが望ましいと考えられるためである。
【００４１】
また、割当制御部３３は、各アサイナＡＳが選択する音高が変動する度に、その情報を、その変動が起こった時刻の情報と共に選択履歴保存部３５に供給して保存させる。ここで、「選択する音高が変動する」とは、楽音生成部３４に対する発音の要求を行う必要があるような音高の選択がなされたことを指す。すなわち、前回と異なる音高を選択したり、前回と同じ音高であっても今回キーオンされた音高を選択したりした場合が該当する。後者の場合、該当の音高は一旦キーオフされてから再度キーオンされているはずであり、この場合は、音高の選択が一旦解除されてから再度選択した、と捉えることができる。
【００４２】
なお、この例では説明を簡単にするため各アサイナが音高を１つ選択するものとして説明するが、複数の音高を選択可能な規則を設定することも可能である。高音優先で２音を選択する、等である。
また、複数のアサイナが同じ音高を選択しても問題ない。この場合、選択された音高について、複数の音色で発音することになる。
【００４３】
楽音生成部３４は、ｍ個の発音ｃｈＴＣ１〜ＴＣｍを備える（発音ｃｈの個体を特定する必要がない場合は符号「ＴＣ」を用いる）。そして、アサイナＡＳから発音開始の要求を受けると、発音中でない発音ｃｈを検索し、発見した発音ｃｈＴＣにて、発音開始要求で指定された音高及び音色の楽音の音響信号を生成（発音）させる。なお、図２では、アサイナＡＳと発音ｃｈＴＣの間を線で結んでいるがこれらの間に固定的な対応関係があるわけではない。
【００４４】
また、楽音生成部３４は、操作状態検出部３２から特定の音高の発音を停止するよう指示された場合に、発音ｃｈＴＣの中からその音高の発音を行っているものを検索し、その発音ｃｈに発音を停止させる機能も備える。また、いずれかのアサイナＡＳから特定の音高の発音を停止するよう指示された場合には、発音ｃｈＴＣの中から、要求元のアサイナＡＳに対応付けられたパートでその音高の発音を行っているものを検索し、その発音ｃｈに発音を停止させる機能も備える。これらの停止には、リリース状態への移行も含まれる。
そして、楽音生成部３４は、各発音ｃｈＴＣが生成した音響信号をミキシングして出力部３７に供給し、楽音の出力を行わせる。
【００４５】
次に、選択履歴保存部３５は、割当制御部３３から供給される、各アサイナＡＳによる音高選択の変動及びその発生時刻の情報を、音高の選択履歴として保存する機能を備える保存手段である。
図４に、選択履歴保存部３５が選択履歴の保存に用いる選択履歴テーブルの例を示す。
図４に示すように、選択履歴テーブルは、割当制御部３３において有効になっているアサイナについて、そのアサイナがどのタイミングでどの音高を選択したかを時系列的に記録するためのテーブルである。
【００４６】
図４の例では、第１アサイナは時刻KON1に音高nm1を選択し、時刻KON2に音高nm2を選択し、時刻KON3に音高nm3を選択したことが登録されている。なお、選択解除の時刻を登録することは必須ではないが、登録しても構わない。また、キーオン操作に応じてアサイナＡＳが音高の選択を行っても、音高の選択に変動がない場合にはその音高の選択を選択履歴に登録しないことは、上述の通りである。
この点については、具体的な演奏操作及びその操作に応じた音高選択の例を用いて後に詳述する。また、操作履歴テーブルは、例えばＲＡＭ１３に保存すればよい。しかし、電子楽器１０の外部のものも含め、任意の記憶手段に保存することができる。
【００４７】
図２の説明に戻る。
後着優先設定部３６は、適当なタイミング（例えばキーオン操作を検出したタイミング）で選択履歴保存部３５が保存している選択履歴を参照し、その選択履歴が所定の条件を満たしたアサイナＡＳについて、そのアサイナＡＳが用いる音高選択の規則を後着優先とすることを設定する機能を備える制御手段である。この後着優先は、図３に示した対象押鍵と優先方式の双方を置き換えるものである。そして、後着優先を用いることとしたアサイナＡＳは、図３に設定されている規則によらず、押鍵中の全ての鍵の中で最後にキーオン操作された鍵の音高を選択するようになる。
【００４８】
また、ここでは、「所定の条件」として、「所定期間内に所定基準以上の頻度で選択する音高の変動があった」を用いている。この条件を満たすアサイナＡＳは、音高が素早く入れ替わる（１回の押鍵の時間が短い）演奏に係るキーオン操作があった音高を継続的に選択していると考えられる。このような演奏を行う場合、意図しなくても、前の鍵の離鍵が次の鍵の押鍵より遅くなり、図１９を用いて説明した音高ｎ３と音高ｎ４のように、押鍵タイミングが一部重複してしまうことが起こりやすい。
【００４９】
そこで、このような演奏に係る発音を担うアサイナＡＳに後着優先の規則を使用させることにより、押鍵タイミングの重複有無に関わらず、キーオン操作のタイミングで確実に発音を開始させることができる。また、複数のアサイナＡＳが異なる規則に基づき同じキーオン操作に係る音高を選択する場合でも、アサイナＡＳ毎に発音開始タイミングがずれることがない。
【００５０】
なお、上記の所定期間としては例えば８００ミリ秒、頻度の所定基準は例えばこの所定時間内に４回とすることが考えられる。テンポ１５０の八分音符長が２００ミリ秒であり、この程度以上の頻度で音高の入れ替わりがあると、アサイナＡＳ毎の発音開始タイミングのズレが目立つためである。
【００５１】
また、一旦後着優先を用いる設定をしたアサイナＡＳの音高選択規則を図３に示したものに戻す条件も、別途設定しておく。例えば、後着優先を用いる設定をしてから所定時間経過した場合に元に戻す、後着優先を用いる設定をしたアサイナＡＳが（キーオフ操作等により）いずれの音高も選択しない状態となった場合に元に戻す、等が考えられる。
または、該当のアサイナＡＳの操作履歴が、後着優先を用いる設定をする際に用いた所定の条件を満たさなくなった場合に元に戻すことも考えられる。選択する音高の頻度が所定基準を下回った、等である。これは、適当なタイミングで各アサイナＡＳについて所定の条件を満たすか否か判断し、満たす場合に後着優先を用いる設定を行い、満たさない場合に後着優先を用いず本来の規則を用いる設定を行うことに該当する。
【００５２】
なお、選択履歴保存部３５は、後着優先設定部３６が後着優先を用いる設定をしたか否かに関わらず選択履歴の保存を続ける（ただし、上記所定期間よりも前の履歴については削除してもよい）。従って、音高選択規則を元に戻した場合でも、その時点の選択履歴が上記所定の条件に該当する場合には、すぐに再度後着優先を用いる設定がなされることになる。
【００５３】
次に、図５を用いて、選択履歴保存部３５及び後着優先設定部３６の機能を考慮した、電子楽器１０におけるアサイナＡＳによる音高選択の例について説明する。
図５において、図１９と同様、縦軸が時間、横軸が音高であり、各音高における帯が、その音高の鍵を押鍵している期間を示す。また、帯の中に示した矢印は、各アサイナがその音高を選択し、対応する発音を行っているかを示す。矢印の根元が発音開始、先端が発音停止のタイミングを示す。
また、矢印Ｔ１は、KON3を基準とした、後着優先設定部３６が用いる「所定時間」を示す。なお、図５の例においては、図示の都合上、後着優先設定部３６が用いる頻度の所定基準は、この所定時間内に２回の音高変動とする。
【００５４】
図５の例では、初めのKON1のタイミングでは、ｎ１，ｎ２，ｎｍ１の３つの音高の鍵が同時に押鍵される。その後、音高ｎ１及びｎ２の鍵はずっと押鍵状態であり、その間に、音高ｎｍ１〜ｎｍ５の鍵が順次押鍵される。また、音高ｎｍ１の離鍵から音高ｎｍ２の押鍵には少し間隔が空き、他の押鍵は押鍵タイミングが一部重複する。
【００５５】
この場合において、KON1のタイミングでは、ｎ１，ｎ２，ｎｍ１の３つの音高の鍵が押鍵中の状態で各アサイナＡＳは図３に示した規則に従い発音する音高を選択する。その結果、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は最高音のｎｍ１を、第３アサイナＡＳ−３は下から２番目のｎ２を、第４アサイナＡＳ−４は最低音のｎ１を選択し、楽音生成部３４に発音を開始させる。
そして、選択履歴保存部３５は、図４の選択履歴テーブルの１行目のように、時刻KON1及びその時に第１〜第４アサイナが選択した音高の情報を保存する。
【００５６】
次のKOFF1のタイミングでは、音高ｎｍ１の鍵の離鍵に応じて音高ｎｍ１を選択していた第１アサイナＡＳ−１及び第２アサイナＡＳ−２が音高ｎｍ１の選択を解除し、楽音生成部３４に発音を停止させる。
【００５７】
次のKON2のタイミングでは、音高ｎｍ２の鍵が押鍵される。この時点ではどのアサイナも過去に音高選択を１回しか行っていないので、後着優先を設定すべき「所定の条件」には該当しない。従って、ｎ１，ｎ２，ｎｍ２の３つの音高の鍵が押鍵中の状態で、各アサイナＡＳは図３に示した規則に従い発音する音高を選択する。その結果、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は最高音のｎｍ２を、第３アサイナＡＳ−３及び第４アサイナＡＳ−４はそれまでと同じくｎ２及びｎ１をそれぞれ選択する。
【００５８】
そして、選択履歴保存部３５は、図４の選択履歴テーブルの２行目のように、このときに音高の選択の変動があった第１アサイナＡＳ−１及び第２アサイナＡＳ−２について、時刻KON2及びその時に選択した音高の情報を保存する。また、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は楽音生成部３４に該当音高の発音を開始させる。第３アサイナＡＳ−３及び第４アサイナＡＳ−４については、音高の選択に変動がない（新たな発音も開始しない）ため、履歴の追加は行わない。
【００５９】
次のKON3のタイミングでは、音高ｎｍ３の鍵が押鍵される。この時点では、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は、矢印Ｔ１で示す所定期間内に選択音高が２回変動しているため、後着優先を設定すべき「所定の条件」に該当する。一方、第３アサイナＡＳ−３及び第４アサイナＡＳ−４は、所定期間内の選択音高の変動が新規選択時の１回のみであるため、「所定の条件」に該当しない。そこで、後着優先設定部３６は、第１アサイナＡＳ−１及び第２アサイナＡＳ−２についてのみ、後着優先の規則を用いる設定を行う。
【００６０】
そして、KON3のタイミングでは、ｎ１，ｎ２，ｎｍ２，ｎｍ３の４つの音高の鍵が押鍵中の状態で各アサイナＡＳが発音する音高を選択することになる。ここで、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は、後着優先で選択を行うため、最後に押鍵された音高ｎｍ３を選択し、楽音生成部３４に、前に選択していた音高ｎｍ２の発音を停止させると共に、新たに選択した音高ｎｍ３の発音を開始させる。第３アサイナＡＳ−３及び第４アサイナＡＳ−４は、図３に示した規則に従い音高の選択を行い、それまでと同じくｎ２及びｎ１をそれぞれ選択する。
【００６１】
そして、選択履歴保存部３５は、図４の選択履歴テーブルの３行目のように、このときに音高の選択の変動があった第１アサイナＡＳ−１及び第２アサイナＡＳ−２について、時刻KON3及びその時に選択した音高の情報を保存する。なお、図４には、このKON3のタイミングにおける選択履歴テーブルの状態を示している。第３アサイナＡＳ−３及び第４アサイナＡＳ−４については、音高の選択に変動がないため、履歴の追加及び発音の開始は行わない。
【００６２】
次のKOFF2のタイミングでは、音高ｎｍ２の鍵が離鍵されるが、この時点で音高ｎｍ２を選択しているアサイナはないため、この離鍵は各アサイナの音高選択に影響を及ぼさない。
【００６３】
以後、KOFF5のタイミングまで、第１アサイナＡＳ−１及び第２アサイナＡＳ−２について、それぞれのキーオン(KON4、KON5)において、直前の所定期間Ｔ１の間に選択音高が基準回数以上変動する条件が満たされているため、音高選択規則を元に戻す条件が成立せず、後着優先が維持される。
この場合、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は、KON4のタイミングにおける音高ｎｍ４の鍵の押鍵、KON5のタイミングにおける音高ｎｍ４の鍵の押鍵に応じて、それぞれ音高ｎｍ４及び音高ｎｍ５を選択し、楽音生成部３４に、それまで選択していた音高の発音を停止させると共に新たに選択した音高の発音を開始させる。
第３アサイナＡＳ−３及び第４アサイナＡＳ−４については、選択する音高がずっと変わらないため、図５の例では後着優先を設定すべき「所定の条件」を満たすことはない。
【００６４】
このように、電子楽器１０においては、選択履歴保存部３５及び後着優先設定部３６の機能により、図５における音高ｎｍ２〜ｎｍ５のように一部期間の重なった押鍵操作がなされ、かつ複数のアサイナＡＳがその押鍵に係る音高を選択すべき場合において、当該複数のアサイナＡＳに押鍵のタイミングで同時にその押鍵に係る音高を選択させることができる。従って、図１９を用いて説明したように、押鍵毎に音色が変わったり、パート毎に発音開始タイミングがずれたりすることなく、聴感への悪影響を抑え、かつ演奏者の演奏操作の意図に合った発音を、容易に行うことができる。
【００６５】
なお、常に後着優先を用いるとすると、図３に示したアサイナの設定を全く無視することになってしまい、これでは演奏者の意図に合った演奏にはならない。そこで、上記のように「所定の条件」を基準に、後着優先を設定することが効果的なアサイナ及びそのタイミングを判別して、後着優先の設定を行うことが有効である。
また、「所定の条件」の設定によっては（例えば頻度の所定基準を所定時間内に４回の音高変動とした場合）、何回かの押鍵については音色の変化や発音タイミングのずれが生じてしまう可能性もあるが、それでも、後着優先の設定を行わない場合に比べれば、聴感への悪影響を抑え、かつ演奏者の演奏操作の意図に合った発音が可能である。
【００６６】
次に、図２に示した機能のうち、ＣＰＵ１１が担う機能を実現するためにＣＰＵ１１が実行する処理について説明する。
図６乃至図８は、そのうちキーオンデータ及び／又はキーオフデータ受信時の処理のフローチャートである。
ＣＰＵ１１は、検出回路１６からキーオンデータ及び／又はキーオフデータを受信した場合に、所要のプログラムを実行することにより図６のフローチャートに示す処理を開始する。なお、所定閾値以内のタイミング差で行われた操作を同時操作とみなすことは上述の通りである。
【００６７】
図６の処理において、ＣＰＵ１１はまず、検出した操作にキーオン操作が含まれているか否か判断する（Ｓ１１）。複数の操作を同時に検出した場合、その中に１つでもキーオン操作があればＹｅｓとなる。
そして、Ｙｅｓの場合、ＣＰＵ１１は、検出した操作の中にキーオフ操作があれば（Ｓ１２のＹｅｓ）、そのキーオフ操作に係る音高の発音停止を、楽音生成部３４に指示する（Ｓ１３）。その後、後着優先設定部３６の機能と対応する、図７に示す速弾き判定処理を行う（Ｓ１４）。
【００６８】
図７の処理において、ＣＰＵ１１はまず、変数ｎに１を代入する（Ｓ２１）。そして、選択履歴保存部３５が保存した選択履歴を参照し、直近の所定期間内に第ｎアサイナが選択する音高が所定基準以上の頻度で変動しているか否か判断する（Ｓ２２）。すなわち、第ｎアサイナＡＳ−ｎによる音高の選択履歴が、音高の選択規則を後着優先とすべき「所定の条件」を満たしているか否か判断する。
【００６９】
そして、ステップＳ２２でＹｅｓであれば、第ｎアサイナＡＳ−ｎについて後着優先フラグをセットする（Ｓ２３）。このフラグは、該当のアサイナについて音高の選択規則を後着優先とすることを示すフラグである。ステップＳ２２でＮｏであれば、フラグを変更せずに次の処理に進む。
いずれの場合も、ＣＰＵ１１は次に、現在処理したアサイナが最後のアサイナであるか否か判断し（Ｓ２４）、最後でなければｎを１加算して（Ｓ２５）、ステップＳ２２に戻って処理を繰り返す。
【００７０】
ステップＳ２４でＹｅｓの場合、全てのアサイナに関する処理が終了したことがわかるため、図７の処理を終了して元の処理に戻る。
ここでは、図６のステップＳ１５に戻る。そして、ＣＰＵ１１は、アサイナＡＳによる、キーオン操作に応じた発音音高の選択を行うべく、全アサイナＡＳについて発音割り当てフラグを立てて（Ｓ１５）、図８に示す発音割り当て処理に進む（Ｓ１６）。
【００７１】
図８の処理において、ＣＰＵ１１はまず、変数ｎに１を代入する（Ｓ３１）。そして、第ｎアサイナＡＳ−ｎに発音割り当てフラグがセットされているか否か判断する（Ｓ３２）。
ここでセットされていれば、ＣＰＵ１１は次に、第ｎアサイナに後着優先フラグがセットされているか否か判断する（Ｓ３３）。ここでＮｏであれば、ＣＰＵ１１は、第ｎアサイナＡＳ−ｎについて設定されている規則に従い、操作中の鍵の音高の中から発音する音高を選択する（Ｓ３４）。一方、ステップＳ３３でＹｅｓであれば、ＣＰＵ１１は、後着優先の規則に従い、操作中の鍵の音高の中から発音する音高を選択する（Ｓ３５）。
【００７２】
そして、いずれの場合も、第ｎアサイナＡＳ−ｎと対応する第ｎパートが、ステップＳ３４又はＳ３５で選択した音高で発音中であるか否か判断する（Ｓ３６）。ここでＮｏであれば、その選択した音高は、音高の選択状態を変動させるものであり、音高の選択履歴を記録すると共に新たな発音を開始すべきことがわかる。
従って、ＣＰＵ１１は、選択した音高及びそのタイミングを図４に示した選択履歴テーブルに保存する（Ｓ３７）。また、選択した音高で第ｎアサイナＡＳ−ｎと対応する第ｎパートの発音を開始するよう、楽音生成部３４に指示する（Ｓ３８）。この場合、発音に用いる音色は、第ｎパートについて設定されている音色である。
【００７３】
ステップＳ３６でＹｅｓであれば、今回の選択は音高の選択状態を変動させるものでなく、音高の選択履歴の記録及び新たな発音開始は必要ないことがわかる。そこで、ステップＳ３７及びＳ３８を飛ばして次の処理へ進む。
また、ステップＳ３２でＮｏの場合、第ｎアサイナについては音高の選択は行わないので、そのままステップＳ３９に進む。
【００７４】
以上のステップＳ３２乃至Ｓ３８が、アサイナＡＳ１つ分の処理である。その後、ＣＰＵ１１は、現在処理したアサイナが最後のアサイナであるか否か判断し（Ｓ３９）、最後でなければｎを１加算して（Ｓ４０）、ステップＳ３２に戻って処理を繰り返す。
ステップＳ３９でＹｅｓの場合、全てのアサイナに関する処理が終了したことがわかるため、図８の処理を終了して元の処理に戻る。ここでは、図６のステップＳ１６に戻るので、ＣＰＵ１１はそのまま処理を終了する。なお、ステップＳ１５からＳ１６に進んだ場合は、発音割り当て処理において、全アサイナと対応する音高選択及び発音指示を行うことになる。
【００７５】
なお、図８の処理を始める前に、初めに全アサイナの発音割り当てフラグを確認し、フラグのあるアサイナについてのみステップＳ３３乃至Ｓ３８を実行するようにしてもよい。この場合、フラグのあるアサイナがなければ、発音割り当て処理自体をスキップできる。
【００７６】
一方、図６のステップＳ１２でＮｏの場合、すなわち検出した操作がキーオフ操作のみであった場合、ＣＰＵ１１は、そのキーオフ操作に係る音高の発音停止を、楽音生成部３４に指示する（Ｓ１７）。
その後、処理は図８の発音割り当て処理に進む（Ｓ１６）。しかし、いずれのアサイナについても発音割り当てフラグは立っていないため、選択履歴の記録や発音開始を行うことなく、処理を終了する。従ってこの場合、上記のように発音割り当て処理自体をスキップしてもよい。
以上の処理により、図５を用いて説明したような発音が可能となる。
【００７７】
次に、図９に、後着優先フラグの解除に係る処理のフローチャートを示す。
ＣＰＵ１１は、適当なタイミングで図９のフローチャートに示す処理を開始する。このタイミングは、一定時間毎、図７の処理を実行するタイミング等、任意でよい。
なお、第１実施形態においては、後着優先フラグの解除条件として「後着優先を用いる設定をする際に用いた所定の条件を満たさなくなった」を用いることが好ましい。そして、この解除条件を用いる場合には、図７の処理を実行するタイミングで図９の処理も実行することが好ましい。
【００７８】
図９の処理において、ＣＰＵ１１はまず、変数ｎに１を代入する（Ｓ５１）。そして、第ｎアサイナＡＳ−ｎに後着優先フラグが立っているか否か判断する（Ｓ５２）。ここでＹｅｓの場合、第ｎアサイナＡＳ−ｎについて後着優先フラグの解除条件（後着優先をやめて元の規則に戻す条件）が成立しているか否か判断する（Ｓ５３）。ここで用いる条件の具体例については上述した通りである。
【００７９】
そして、ステップＳ５３でもＹｅｓであれば、ＣＰＵ１１は第ｎアサイナＡＳ−ｎについて後着優先フラグを解除し、以後は当該アサイナに設定された規則により音高を選択するようにする（Ｓ５４）。
ステップＳ５２でＮｏの場合には、第ｎアサイナＡＳ−ｎについてここで検討すべき事項はないので、ステップＳ５３及びＳ５４をスキップしてステップＳ５５に進む。
ステップＳ５３でＮｏの場合には、後着優先フラグを解除する必要はないので、ステップＳ５４をスキップしてステップＳ５５に進む。
【００８０】
いずれの場合も、ＣＰＵ１１は次に、現在処理したアサイナが最後のアサイナであるか否か判断し（Ｓ５５）、最後でなければｎを１加算して（Ｓ５６）、ステップＳ５２に戻って処理を繰り返す。
ステップＳ５５でＹｅｓの場合、全てのアサイナに関する処理が終了したことがわかるため、図９の処理を終了する。
以上の処理により、ＣＰＵ１１は、後着優先を用いる設定をしたアサイナＡＳについて、適当なタイミングで音高選択の規則を元に戻すことができる。
【００８１】
〔第１実施形態の比較例：図１０〕
次に、後着優先を用いることの効果について、図１０の比較例を用いて説明する。
図１０に示すのは、第１実施形態と同じアサイナを用い、後着優先設定部３６がないとして、図５の場合と同じ鍵操作があった場合における各アサイナＡＳによる音高選択の例を示す図である。
この場合、KON2のタイミングまでは、各アサイナＡＳによる音高選択は、図５の場合と同じである。
【００８２】
しかし、KON3のタイミングにおいては、ｎ１，ｎ２，ｎｍ２，ｎｍ３の４つの音高の鍵が押鍵中の状態で、全てのアサイナＡＳが図３に示した規則に従い音高の選択を行う。従って、第１アサイナＡＳ−１は最高音のｎｍ３を、第２アサイナＡＳ−２は下から３番目のｎｍ２を、第３アサイナＡＳ−３は下から２番目のｎ２を、第４アサイナＡＳ−４は最低音のｎ１をそれぞれ選択する。
この場合、第１アサイナＡＳ−１は選択する音高がｎｍ２からｎｍ３へ変動するため、楽音生成部３４に新たな発音を開始させるが、他のアサイナは選択する音高が変動しないため、新たな発音の開始は行わない。
【００８３】
次のKOFF2のタイミングでは、音高ｎｍ２の鍵が離鍵され、楽音生成部３４は音高ｎｍ２を選択している第２アサイナＡＳ−２の発音を停止する。この時点で、第２アサイナＡＳ−２と対応する発音は行われなくなってしまう。
【００８４】
次のKON4のタイミングにおいては、音高ｎｍ４の鍵が押鍵され、ｎ１，ｎ２，ｎｍ３，ｎｍ４の４つの音高の鍵が押鍵中の状態で、全てのアサイナＡＳが図３に示した規則に従い音高の選択を行う。従って、第１アサイナＡＳ−１は最高音のｎｍ４を、第２アサイナＡＳ−２は下から３番目のｎｍ３を、第３アサイナＡＳ−３は下から２番目のｎ２を、第４アサイナＡＳ−４は最低音のｎ１をそれぞれ選択する。
【００８５】
この場合、第１アサイナＡＳ−１は選択する音高がｎｍ３からｎｍ４へ変動するため、楽音生成部３４に新たな発音を開始させる。第２アサイナＡＳ−２も、新たに音高ｎｍ３を選択するため、楽音生成部３４に新たな発音を開始させる。
しかし、第２アサイナＡＳ−２の発音は、直後のKOFF3のタイミングで音高ｎｍ３の鍵が離鍵された時に停止されてしまう。次の音高ｎｍ５の押鍵及び音高ｎｍ４の離鍵の際にも同様なことが起こる。
【００８６】
このように、後着優先設定部３６の機能を備えない場合、図１０に示したような一部重なった押鍵操作があると、押鍵されている鍵の音高順と、各アサイナが選択する音高との関係がずれてしまう。すなわち、演奏操作からは、音高ｎｍ１から音高ｎｍ５までの音を続けて発音させる意図が推測できるのに、これらの音高の音を異なる音色で発音してしまい、不自然な発音となってしまう。この例では、音高ｎｍ１と音高ｎｍ２については第１アサイナＡＳ−１及び第２アサイナＡＳ−２の音色で発音する一方、音高ｎｍ３から音高ｎｍ５については、実質的にアサイナＡＳ−１の音色のみで発音することになる。
【００８７】
これに対し、後着優先設定部３６の機能を用いることにより、このような問題が発生せず、音高ｎｍ１から音高ｎｍ５までの押鍵が一部重なったり間が空いたりしても、押鍵毎に音色が変わったり、パート毎に発音開始タイミングがずれたりすることのない発音が可能となることは、上述の通りである。
【００８８】
〔第２実施形態：図１１乃至図１５〕
次に、この発明の第２実施形態の電子楽器について説明する。
この第２実施形態は、音高の選択履歴が所定の条件を満たしたアサイナについて音高の選択規則を後着優先に変更することに代えて、演奏操作子の操作履歴中に所定の条件を満たす操作を検出した場合に、その操作の際に選択する音高が変動したアサイナについて音高の選択規則を後着優先に変更するようにした点が第１の実施形態と異なるのみである。そこで、この相違点についてのみ説明し、第１実施形態と同じ又は対応する構成には、第１実施形態と同じ符号を用いる。
【００８９】
第２実施形態の電子楽器１０は、ハードウェアは図１に示した第１実施形態のものと共通である。
図１１に、第２実施形態の電子楽器１０における、図２と対応する機能ブロック図を示す。
図１１に示す通り、第２実施形態の電子楽器１０は、第１実施形態における選択履歴保存部３５に代えて操作履歴保存部３８を備え、さらにキーオフリトリガー制御部３９を備える。また、後着優先設定部３６がアサイナの音高選択規則を後着優先とする条件も異なる。
【００９０】
電子楽器１０において、操作状態検出部３２は、演奏操作子２２の操作を検出する度に、その操作内容及び操作タイミングの情報を操作履歴保存部３８に供給し、操作内容の履歴を保存させる。操作履歴保存部３８は、操作状態検出部３２から供給される操作内容及び操作タイミングの情報を、時系列的に演奏操作子２２の操作履歴として保存する機能を備える保存手段である。
【００９１】
図１２に、操作履歴保存部３８が操作履歴の保存に用いる操作履歴テーブルの例を示す。
図１２に示すように、操作履歴テーブルは、演奏操作子２２に対してなされた操作の内容と、その時刻とを対応付けて登録するテーブルである。
なお、同時に複数の操作がなされた場合には、同じ時刻に複数の操作を登録してよい。また、時刻は、図１２では符号で示しているが、順序だけでなく具体的な時刻（所定の基準時刻からの経過時間でもよい）を登録する。
この操作履歴テーブルは、例えばＲＡＭ１３に保存すればよい。しかし、電子楽器１０の外部のものも含め、任意の記憶手段に保存することができる。
【００９２】
図１１の説明に戻ると、操作状態検出部３２は、演奏操作子２２のキーオフ操作を検出すると、これをキーオフリトリガー制御部３９に通知する。
そして、キーオフリトリガー制御部３９は、この通知があった場合に、操作履歴保存部３８が作成した操作履歴テーブルの情報に基づき、今回のキーオフ操作に応じて割当制御部３３に発音音高の選択を行わせる必要があるか否か判断する機能を備える。そして、行わせる必要があると判断した場合、割当制御部３３に発音音高の選択を行うよう指示する。
このように、キーオフ操作に応じてアサイナＡＳに発音音高を選択させることを、「キーオフリトリガー」と呼ぶことにする。
【００９３】
なお、キーオフリトリガーは、あるノートがキーオフ操作により消音することによって発音数が減少してしまうのを防ぐために行う。典型的には、図１９におけるｎ４とｎ３のように、２つの音を続けて演奏する意図と考えられるのに、前の鍵と後の鍵の操作期間が若干重複してしまっている場合に対応できる。
この場合、KON3のタイミングで各アサイナＡＳが発音する音高を選択した後、KOFF4のタイミングで音高ｎ４の発音を停止させると、KON3のタイミングで音高ｎ４を選択したアサイナＡＳと対応する発音は、ただちに消えてしまうことになる。しかし、KON3のタイミングでは確定できないものの、図１９に示した操作では、KON3のタイミングで音高ｎ４の鍵がキーオフ操作されていないのは、その部分で音を増やし、その後減らしたいためではないと考えられる。従って、そもそもKON3のタイミングでアサイナＡＳが音高の選択を行う場合に、音高ｎ４を考慮すべきではなかったと言える。
【００９４】
そこで、キーオフリトリガー制御部３９には、音高ｎ４の鍵がキーオフ操作されるKOFF4のタイミングで、ｎ４とｎ３の操作期間の重複が、音の重複を意図したものであるのか否かを、所定の条件に従って判断する機能を設けている。また、重複を意図したものでないと判断した場合、アサイナＡＳに、ｎ４の離鍵後の操作状態に従って、再度発音する音高を選択させる（キーオフリトリガーを行う）機能を設けている。
【００９５】
ただし、このとき音高の選択を行わせるのは、離鍵に応じて発音を停止した音高（図４の例ではｎ４）を選択していたアサイナＡＳのみである。他のアサイナＡＳが選択した音高は、KON3のタイミングで既に発音を開始しており、KOFF4のタイミングで音高の選択が変更されると、短時間で音高が変わる不自然な演奏になってしまうためである。
【００９６】
キーオフリトリガーを行う場合、キーオフリトリガー制御部３９は、音高を指定して、割当制御部３３に発音する音高の再選択を指示すればよい。割当制御部３３は、この指示に応じて、指定された音高を選択しているアサイナＡＳを検索し、音高の選択を行わせるアサイナＡＳを決定する。検索には、アサイナＡＳが保持している、選択した音高の情報を用いる。決定したアサイナＡＳにおける音高の選択及び楽音生成部３４への発音開始要求の処理は、操作状態検出部３２からの指示に応じた選択の場合と同様である。
【００９７】
ところで、この実施形態では、キーオフリトリガー制御部３９は、あるキーオフ操作がレガート奏法に係る操作であると判断した場合に、そのキーオフ操作に応じて割当制御部３３に発音音高の選択を行わせる必要があると判断するようにしている。
そして、レガート奏法は、ある鍵を押鍵した直後に前に押鍵していた鍵を離鍵する奏法であることから、例えば、ある音高のキーオン操作があってから所定時間内に別の音高のキーオフ操作があった場合に、そのキーオフ操作がレガート奏法に係る操作であるとすることができる。これは、キーオフ操作のタイミングを基準に考えれば、直近のキーオン操作から今回のキーオフ操作までが所定時間以内である、という条件である。
【００９８】
また、レガート奏法の場合、前に押鍵していた鍵を離鍵する時点で次に押鍵した鍵が離鍵されていることは通常ないため、この点を条件に加えてもよい。すなわち、今回のキーオフ操作の時点で、上記直近のキーオン操作に係る鍵が操作中である、という条件である。
キーオフリトリガー制御部３９は、図１２の操作履歴テーブルを参照し、以上の条件によりあるキーオフ操作がレガート奏法に係る操作であると判断した場合に、上述のキーオフリトリガーを行う。
【００９９】
また、キーオフリトリガー制御部３９は、後着優先設定部３６が後述の条件に従って後着優先を設定すべきアサイナＡＳを把握できるようにするため、図１３に示すようなレガート履歴テーブルを作成する。
【０１００】
図１３に示すように、レガート履歴テーブルには、時刻、キーオフ操作、直前キーオン操作、レガート判定結果、およびアサイナ毎の選択音高変動有無の項目が含まれる。
これらのうち、時刻及びキーオフ操作の項目には、操作履歴テーブルに含まれる各キーオフ操作の時刻及び操作内容を登録する。
直近キーオンの項目には、登録したキーオフ操作の前に行われた直近のキーオン操作を登録する。
レガート判定結果の項目には、登録したキーオフ操作及びキーオン操作がレガート演奏に係る操作であったか否かを登録する。「○」がレガート、「×」がレガートでない、である。なお、ここまでの４つの項目は、演奏操作子２２の操作内容の履歴であると考えることができる。
【０１０１】
選択音高変動の項目には、登録したキーオフ操作又はキーオン操作に応じて、該当のアサイナが選択する音高が変動したか否かを登録する。「○」が変動あり、「×」が変動なしである。キーオフリトリガー制御部３９によるレガート奏法か否かの判定は、キーオフ操作の際に行うが、実際にはキーオフ操作と直前のキーオン操作の組み合わせがレガート奏法の演奏操作である。従って、これらのいずれかに応じてあるアサイナ選択する音高が変動していれば、そのアサイナは、レガート奏法の演奏に係る発音を担うアサイナであると考えることができる。
【０１０２】
一方、後着優先設定部３６は、適当なタイミング（例えばキーオフ操作を検出したタイミング）で図１３のレガート履歴テーブルを参照し、その操作履歴中に所定の条件を満たす操作を検出した場合に、その操作の際に選択する音高が変動したアサイナＡＳについて、そのアサイナＡＳが用いる音高選択の規則を、第１実施形態の場合と同様な後着優先とすることを設定する機能を備える制御手段である。
【０１０３】
また、ここでは、「所定の条件」として、「ある音高のキーオン操作を行ってから所定時間内に別の音高のキーオフ操作を行う操作（すなわちレガート奏法に係る演奏操作）を、所定基準以上の頻度で行った」を用いている。
このようにレガート奏法の操作が頻繁に（又は続けて）行われる場合、以後も一定程度レガート奏法が続く可能性が高いと考えられる。そこで、レガート奏法の演奏に係る発音を担うアサイナＡＳに後着優先の規則を使用させることにより、押鍵タイミングの重複有無に関わらず、キーオン操作のタイミングで確実に発音を開始させることができる。また、複数のアサイナＡＳが異なる規則に基づき同じキーオン操作に係る音高を選択する場合でも、アサイナＡＳ毎に発音開始タイミングがずれることがない。
【０１０４】
なお、レガート奏法の演奏に係る発音を担うアサイナＡＳは、レガート奏法の演奏操作がなされた際にそれに応じて選択する音高が変化したアサイナＡＳであると考えることができる。演奏操作があっても選択する音高が変化しないアサイナＡＳは、その間ずっと押鍵がなされている等、レガート奏法の演奏操作と無関係に発音しているアサイナＡＳであると考えられるためである。
【０１０５】
また、上記の頻度の所定基準は、ここでは、「レガート奏法に係るキーオフ操作が所定回数（２回）連続してあった」とする。しかし、所定回数を２回以外としたり、直前のキーオフ操作ｎ回のうちｍ回がレガート奏法であるとしてｍ／ｎが所定値（例えば０．７）以上、レガート奏法に係るキーオフ操作が所定時間内に所定回数以上あった等、他の条件を採用したりすることもできる。
また、一旦後着優先を用いる設定をしたアサイナＡＳの音高選択規則を図３に示したものに戻す解除条件については、第１実施形態の場合と同様である。ただし、好ましい解除条件は第１の実施形態の場合と異なり、この点については後述する。
【０１０６】
次に、図１４を用いて、後着優先設定部３６、操作履歴保存部３８及びキーオフリトリガー制御部３９の機能を考慮した、電子楽器１０におけるアサイナＡＳによる音高選択の例について説明する。
図１４は、図５と対応する図であり、表記法は図５と同じである。また、矢印Ｔ２は、KOFF1及びKOFF2を基準とした、キーオフリトリガー制御部３９が用いる「所定時間」を示す。
【０１０７】
図５の例では、初めのKON1のタイミングでは、ｎ１，ｎ２，ｎｍ１の３つの音高の鍵が同時に押鍵される。その後、音高ｎ１及びｎ２の鍵はずっと押鍵状態であり、その間に、音高ｎｍ１〜ｎｍ５の鍵が、押鍵タイミングが一部重複するように順次押鍵される。
この場合において、KON1のタイミングでは、ｎ１，ｎ２，ｎｍ１の３つの音高の鍵が押鍵中の状態で各アサイナＡＳは図３に示した規則に従い発音する音高を選択する。その結果、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は最高音のｎｍ１を、第３アサイナＡＳ−３は下から２番目のｎ２を、第４アサイナＡＳ−４は最低音のｎ１を選択し、楽音生成部３４に発音を開始させる。
そして、操作履歴保存部３８は、図１２の操作履歴テーブルの１行目のように、時刻KON1及びその時になされた操作の情報を保存する。
【０１０８】
次のKON2のタイミングでは、音高ｎｍ２の鍵が押鍵される。そして、ｎ１，ｎ２，ｎｍ１，ｎｍ２の４つの音高の鍵が押鍵中の状態で、各アサイナＡＳは図３に示した規則に従い発音する音高を選択する。その結果、第１アサイナＡＳ−１は最高音のｎｍ２を、第２アサイナＡＳ−２、第３アサイナＡＳ−３及び第４アサイナＡＳ−４はそれまでと同じくｎｍ１、ｎ２及びｎ１をそれぞれ選択する。従って、音高選択が変動した第１アサイナＡＳ−１のみが、選択した音高の発音を楽音生成部３４に開始させる。
また、操作履歴保存部３８は、図１２の操作履歴テーブルの２行目のように、時刻KON2及びその時になされた操作の情報を保存する。
【０１０９】
次のKOFF1のタイミングでは、音高ｎｍ１の鍵の離鍵に応じて第２アサイナＡＳ−２が音高ｎｍ１の選択を解除し、楽音生成部３４に発音を停止させる。また、操作履歴保存部３８は、図１２の操作履歴テーブルの３行目のように、時刻KOFF1及びその時になされた操作の情報を保存する。
【０１１０】
一方、キーオフリトリガー制御部３９は、直近の音高ｎｍ２の鍵の押鍵操作から今回の音高ｎｍ１の鍵の離鍵操作まで所定時間Ｔ２以内であり、かつその離鍵操作の時点で音高ｎｍ２の鍵が押鍵中であることから、音高ｎｍ１の鍵の離鍵操作はレガート奏法に係る操作であると判断する。そして、直前まで音高ｎｍ２を選択していた第２アサイナＡＳ−２についてキーオフリトリガーを行うことを決定する。
そして、キーオフリトリガーの動作において、第２アサイナＡＳ−２は、ｎ１，ｎ２，ｎｍ２の３つの音高の鍵が押鍵中の状態で、図３に示した規則に従い発音する音高を選択する。その結果、第２アサイナＡＳ−２は最高音のｎｍ２選択し、その発音を楽音生成部３４に開始させる。
【０１１１】
また、キーオフリトリガー制御部３９は、図１３に示したレガート履歴テーブルの１行目のように、時刻KOFF1の離鍵操作に応じたレガート奏法の判定結果、直前の押鍵操作時も含めて各アサイナによる音高選択に変動があったか否か等を保存する。
また、この時点ではレガート奏法に係る操作を１回検出したのみであるので、「所定の条件」に該当せず、後着優先設定部３６は後着優先を用いる設定を行わない。
【０１１２】
次のKON3のタイミングでは、音高ｎｍ３の鍵が押鍵される。そして、ｎ１，ｎ２，ｎｍ２，ｎｍ３の４つの音高の鍵が押鍵中の状態で、各アサイナＡＳは図３に示した規則に従い発音する音高を選択する。その結果、第１アサイナＡＳ−１は最高音のｎｍ３を、第２アサイナＡＳ−２、第３アサイナＡＳ−３及び第４アサイナＡＳ−４はそれまでと同じくｎｍ２、ｎ２及びｎ１をそれぞれ選択する。従って、音高選択が変動した第１アサイナＡＳ−１のみが、選択した音高の発音を楽音生成部３４に開始させる。
また、操作履歴保存部３８は、図１２の操作履歴テーブルの４行目のように、時刻KON3及びその時になされた操作の情報を保存する。
【０１１３】
次のKOFF2のタイミングでは、音高ｎｍ２の鍵の離鍵に応じて第２アサイナＡＳ−２が音高ｎｍ２の選択を解除し、楽音生成部３４に発音を停止させる。また、操作履歴保存部３８は、図１２の操作履歴テーブルの５行目のように、時刻KOFF2及びその時になされた操作の情報を保存する。
一方、キーオフリトリガー制御部３９は、直近の音高ｎｍ３の鍵の押鍵操作から今回の音高ｎｍ２の鍵の離鍵操作まで所定時間Ｔ２以内であり、かつその離鍵操作の時点で音高ｎｍ３の鍵が押鍵中であることから、音高ｎｍ２の鍵の離鍵操作はレガート奏法に係る操作であると判断する。そして、直前まで音高ｎｍ２を選択していた第２アサイナＡＳ−２についてキーオフリトリガーを行うことを決定する。
【０１１４】
そして、キーオフリトリガーの動作において、第２アサイナＡＳ−２は、ｎ１，ｎ２，ｎｍ３の３つの音高の鍵が押鍵中の状態で、図３に示した規則に従い発音する音高を選択する。その結果、第２アサイナＡＳ−２は最高音のｎｍ３選択し、その発音を楽音生成部３４に開始させる。
また、キーオフリトリガー制御部３９は、図１３に示したレガート履歴テーブルに、その２行目のように各種データを保存する。
【０１１５】
また、これでレガート奏法に係る操作が２回続いたため、後着優先を設定すべき「所定の条件」に該当する。そこで、後着優先設定部３６は、レガート履歴テーブルを参照し、これまでの２回のレガート奏法に係る操作で選択音高が変動している第１アサイナＡＳ−１及び第２アサイナＡＳ−２について、後着優先の規則を用いる設定を行う。
【０１１６】
次のKON4のタイミングでは、音高ｎｍ４の鍵が押鍵される。そして、ｎ１，ｎ２，ｎｍ３，ｎｍ４の４つの音高の鍵が押鍵中の状態で、第３アサイナＡＳ−３及び第４アサイナＡＳ−４は図３に示した規則に従い発音する音高を選択する。その結果、第３アサイナＡＳ−３及び第４アサイナＡＳ−４はそれまでと同じくｎ２及びｎ１をそれぞれ選択する。また、第１アサイナＡＳ−１及び第２アサイナＡＳ−２は後着優先で最後に押鍵操作された音高ｎｍ４を選択する。
【０１１７】
このため、第１アサイナＡＳ−１と第２アサイナＡＳ−２において音高選択が変動し、選択した音高の発音を楽音生成部３４に開始させる。
また、操作履歴保存部３８は、図１２の操作履歴テーブルの末行のように、時刻KON4及びその時になされた操作の情報を保存する。図１２には、この時点における操作履歴テーブルの状態を示している。
次の押鍵操作であるKON5の音高ｎｍ５の鍵の押鍵操作についても、同様に第１アサイナＡＳ−１と第２アサイナＡＳ−２において音高選択が変動し、選択した音高の発音を楽音生成部３４に開始させる。
【０１１８】
また、KOFF3における音高ｎｍ３の鍵の離鍵操作とKOFF4における音高ｎｍ４の鍵の離鍵操作もレガート奏法に係る離鍵操作であるとすると、これらのタイミングでも、レガート奏法に係る操作が２回以上続いており、後着優先を設定すべき「所定の条件」に該当する。しかしながら、レガート奏法に係る操作で選択音高が変動している第１アサイナＡＳ−１及び第２アサイナＡＳ−２については、既に後着優先の規則を用いる設定が行われているため、後着優先設定部３６は、いずれのアサイナＡＳにも新たに後着優先の規則を用いる設定は行わない。第１アサイナＡＳ−１及び第２アサイナＡＳ−２については、後着優先を解除する条件が満たされておらず、後着優先のままであるとする。
【０１１９】
このように、電子楽器１０においては、後着優先設定部３６、操作履歴保存部３８及びキーオフリトリガー制御部３９の機能により、図５における音高ｎｍ１〜ｎｍ５のように一部期間の重なった押鍵操作がなされ、かつ複数のアサイナＡＳがその押鍵に係る音高を選択すべき場合において、当該複数のアサイナＡＳに押鍵のタイミングで同時にその押鍵に係る音高を選択させることができる。
従って、図１９を用いて説明したように、押鍵毎に音色が変わったり、パート毎に発音開始タイミングがずれたりすることなく、聴感への悪影響を抑え、かつ演奏者の演奏操作の意図に合った発音を、容易に行うことができる。
【０１２０】
なお、KON2及びKON3のタイミングでは、まだ後着優先の規則を用いる設定がなされていないため、第１アサイナＡＳ−１の音色と第２アサイナＡＳ−２の音色とで発音開始タイミングが若干ずれている。KON4及びKON5のタイミングでは、後着優先の規則を用いる設定がなされたことにより、このずれが是正されている。
【０１２１】
なお、第２実施形態では、演奏操作がレガート奏法に係るものであるか否かを直接判別するため、後着優先設定部３６が用いる「所定の条件」に時間を考慮することが必須でない。従って、時間を考慮しない条件を用いれば、レガート奏法での演奏がゆっくりなされた場合でも、これを適切に識別し、後着優先の規則を用いる設定を行うことができる。
【０１２２】
次に、図１１に示した機能のうち、ＣＰＵ１１が担う機能を実現するためにＣＰＵ１１が実行する処理について説明する。
図１５は、そのうちキーオンデータ及び／又はキーオフデータ受信時の処理のフローチャートである。
ＣＰＵ１１は、検出回路１６からキーオンデータ及び／又はキーオフデータを受信した場合に、所要のプログラムを実行することにより図１５のフローチャートに示す処理を開始する。なお、所定閾値以内のタイミング差で行われた操作を同時操作とみなすことは上述の通りである。
【０１２３】
図１５の処理において、ＣＰＵ１１はまず検出した操作及びその時刻を、図１２に示した操作履歴テーブルに保存する（Ｓ６１）。次に、検出した操作にキーオン操作が含まれていれば（Ｓ６２のＹｅｓ）、アサイナＡＳによる、キーオン操作に応じた発音音高の選択を行うべく、全アサイナＡＳについて発音割り当てフラグを立てる（Ｓ６３）。ステップＳ６２でＮｏの場合は、ステップＳ６３はスキップする。
【０１２４】
次に、ＣＰＵ１１は、検出した操作にキーオフ操作が含まれているか否か判断する（Ｓ６４）。そして、ここでＹｅｓであれば、検出したキーオフ操作に係る音高の発音停止を、楽音生成部３４に指示する（Ｓ６５）。キーオフ操作が複数あった場合には、その全ての発音停止を指示する。
【０１２５】
次に、ＣＰＵ１１は、直近のキーオン操作から今回のキーオフ操作まで所定時間以内で、かつ、該当のキーオン操作をされた鍵がまだ操作中であるか否か判断する（Ｓ６６）。これは、今回のキーオフ操作がレガート奏法に係る操作であるか否かの判断であり、図１２の操作履歴テーブルを参照することによって判断される。ここでＹｅｓであれば、ＣＰＵ１１は、キーオフ操作がされた音高を選択しているアサイナＡＳについて発音割り当てフラグをセットする（Ｓ６７）。これは、ステップＳ６５で停止する前に上記音高Ｎの発音を行っていたパートと対応するアサイナＡＳについて、発音割り当てフラグをセットするということもできる。
【０１２６】
これらのステップＳ６６及びＳ６７の処理は、キーオフリトリガー機能に係る処理である。キーオフ操作を複数検出した場合には、各キーオフ操作についてこれらの処理を実行する。ステップＳ６６でＮｏの場合には、ステップＳ６７をスキップしてステップＳ６８に進む。
【０１２７】
また、ＣＰＵ１１は次に、図１３に示したレガート履歴テーブルに、今回のキーオフ操作、直近のキーオン操作及びレガート演奏操作の検出結果（ステップＳ６６の判断結果）を保存する（Ｓ６８）。
その後、ＣＰＵ１１は、第１の実施形態の場合と同様、図８に示した発音割り当て処理を実行する。ただし、第２実施形態においてはステップＳ３７の処理は実行不要である。この発音割り当て処理においては、ステップＳ６３又はＳ６７で発音割り当てフラグをセットした各アサイナについて、発音音高の選択及び、必要に応じて発音開始の処理を行う。
ステップＳ６４でＮｏの場合には、ステップＳ６５乃至Ｓ６８をスキップしてステップＳ６９に進む。
【０１２８】
次に、ＣＰＵ１１は再度、検出した操作にキーオフ操作が含まれているか否か判断する（Ｓ７０）。そして、ここでＹｅｓであれば、図１３に示したレガート履歴テーブルに、各アサイナの選択音高変動有無を登録する（Ｓ７１）。これは、ステップＳ６８で登録した今回のキーオフ操作又は直近のキーオン操作の際に各アサイナの選択音高に変動があったか否かを登録するものである。従って、キーオン操作に応じた変動の有無は、キーオン操作に応じて図１５の処理を行った際に後で参照できるように保存しておき、ステップＳ７１においては、ステップＳ６９における選択結果と、その保存しておいた変動有無とを参照して、変動有無の保存を行えばよい。
【０１２９】
その後、ＣＰＵ１１は、直近に所定基準以上の頻度でレガート演奏操作があったか否かをアサイナ毎に判断する（Ｓ７２）。すなわち、レガート履歴テーブル（及び操作履歴テーブル）に保存されている操作履歴が、音高の選択規則を後着優先とすべき「所定の条件」を満たしているか否か判断する。ここでＹｅｓである場合、レガート演奏操作に際に音高選択が変動したアサイナに後着優先フラグをセットし（Ｓ７３）、処理を終了する。
【０１３０】
なお、ステップＳ７３におけるアサイナの特定の際には、ステップＳ７２の判断を行う際に参照した範囲のレガート演奏操作において、全て、あるいは所定割合以上の操作で変動していることを基準とすればよい。例えば、ステップＳ７２で「レガート演奏操作が２回続けてなされた」を基準とするのであれば、直前２回のキーオフ操作がレガート演奏に係る操作であるか否かを参照するので、これらの操作の際に音高選択が変動したアサイナを特定すればよい。
ステップＳ７２でＮｏの場合、ステップＳ７３をスキップして処理を終了する。
ステップＳ７０でＮｏの場合、ステップＳ７１乃至Ｓ７３をスキップして処理を終了する。
以上の処理により、図１４を用いて説明したような発音が可能となる。
【０１３１】
なお、第２実施形態では、後着優先フラグを解除する解除条件として、「キーオフ操作があった時にステップＳ７２の条件が満たされなかった」を用いるとよい。この解除条件を用いたフラグ解除の処理は、図１５の処理でステップＳ７２でＮｏの場合に行ってもよいし、キーオフ操作をトリガに図９の処理を実行し、ステップＳ５３の判断結果に従って行ってもよい。
また、上記のＳ７２の条件に加え、最後に後着優先が設定されてから一定時間が経過したとき、等の時間的な条件を用いることも好ましい。この時間的な条件については、図９の処理を定期的に起動して判定するとよい。
【０１３２】
〔第２実施形態の比較例：図１６，図１７〕
次に、後着優先を用いることの効果について、図１６及び図１７の比較例を用いて説明する。
図１６に示すのは、第２実施形態と同じアサイナを用い、後着優先設定部３６及びキーオフリトリガー制御部３９がないとして、図１４の場合と同じ鍵操作があった場合における各アサイナＡＳによる音高選択の例を示す図である。
【０１３３】
この場合、KON2のタイミングまでは、各アサイナＡＳによる音高選択は、図１４の場合と同じである。
しかし、KOFF1のタイミングにおいては、キーオフリトリガーを行わないため、単に、第２アサイナＡＳ−２が音高ｎｍ１の選択を解除し、楽音生成部３４に発音を停止させるのみである。従って、第２アサイナＡＳ−２と対応する発音はここで一旦停止してしまうことになる。
【０１３４】
KON3のタイミングでは、第２アサイナＡＳ−２は、ｎ１，ｎ２，ｎｍ２，ｎｍ３の４つの音高の鍵が押鍵中の状態で、図３に示した規則に従い音高の選択を行い、下から３番目のｎｍ２を選択して楽音生成部３４に発音を開始させる。しかし、この発音はすぐにKOFF2のタイミングで停止される。
【０１３５】
選択規則が後着優先になることもないため、以後も、第２アサイナＡＳ−２と対応する発音は、離鍵操作の直前で開始し、離鍵時にすぐに停止する、ということを繰り返すことになる。すなわち、演奏操作からは、音高ｎｍ１から音高ｎｍ５までの音を続けて発音させる意図が推測できるのに、ｎｍ２以降の押鍵については、実質的に第２アサイナＡＳ−２と対応する音が発音されないこととなり、音高ｎｍ１とは異なる音になってしまい、演奏者の意図に沿った発音ができないと考えられる。
【０１３６】
図１７に示すのは、第２実施形態と同じアサイナを用い、後着優先設定部３６がないとして、図１４の場合と同じ鍵操作があった場合における各アサイナＡＳによる音高選択の例を示す図である。
この場合、KOFF2のタイミングまで、各アサイナＡＳによる音高選択は図１４の場合と同じである。図１６の例と比べれば、キーオフリトリガーを行っているため、各音高の押鍵について、第１アサイナＡＳ−１及び第２アサイナＡＳ−２と対応する音の発音を行うことができ、演奏者の意図に沿った発音となっている。
【０１３７】
しかし、KON4のタイミング以降も、第２アサイナＡＳ−２の音高選択規則が後着優先となることがないため、第２アサイナＡＳ−２は、前の鍵の離鍵操作のタイミングでキーオフリトリガーを行って、次に押鍵された鍵の音高を選択する。このため、第１アサイナＡＳ−１と対応する音と第２アサイナＡＳ−２と対応する音とでは、発音開始及び終了のタイミングに若干ずれが生じ、これが聴感に悪影響を与える。
【０１３８】
これに対し、後着優先設定部３６の機能を用いることにより、このような問題が発生せず、音高ｎｍ１から音高ｎｍ５までの押鍵がレガート奏法により一部重なったとしても、押鍵毎に音色が変わったり、パート毎に発音開始タイミングがずれたりすることのない発音が可能となることは、上述の通りである。
【０１３９】
〔変形例：図１８〕
以上で実施形態の説明を終了するが、装置の構成、演奏操作子を始めとする操作子の構成、処理に用いるデータの構成、具体的な処理の手順等が上述の実施形態で説明したものに限られないことはもちろんである。
【０１４０】
例えば、後着優先設定部３６が所定の条件に基づき後着優先の使用を設定するか否かを判断するタイミングは、上述した実施形態のものに限られない。上述した実施形態においては、キーオン又はキーオフの操作が行われたタイミングでこの判断を行うようにしたが、これらの操作と無関係なタイミングで判断を行うことも妨げられない。もちろん、キーオン操作かキーオフ操作かを問わず、何らかの操作が行われたタイミングで常に判断を行うようにしてもよい。
【０１４１】
また、第２実施形態においてある操作がレガート奏法の操作か否かを判定する基準は上述した実施形態のものに限られない。例えば、ある音高Ｍのキーオン、音高Ｍのキーオン以前から操作されていた別の音高Ｎのキーオフの順で操作があり、音高Ｍのキーオン時点で音高Ｍと音高Ｎとの間に押鍵中の鍵がない、というような、時間を考慮しない基準を用いることも考えられる。
【０１４２】
また、図１５の処理において、発音割り当て処理（Ｓ６９）よりも後で後着優先フラグのセットを行っていたため、後着優先フラグのトリガとなったキーオフ操作のタイミングでの発音の際には、（既に後着優先フラグがセットされていない限り）後着優先での音高選択ができなかった。
この構成でも特に問題はない。しかし、トリガとなったキーオフ操作のタイミングでの発音の際にも後着優先での音高選択を行いたい場合には、以下の対応が考えられる。
【０１４３】
すなわち、ステップＳ６９の時点ではステップＳ７２の判定を行うための、各アサイナによる選択音高を仮に決定しておき、ステップＳ７２の判定に応じた後着優先フラグの設定を反映させた状態で、改めて各アサイナが実際に発音する音高を選択することが考えられる。
このようにすれば、キーオン操作とキーオフ操作が同時に行われた場合でも、キーオフ操作に応じて後着優先フラグがセットされればそれを同時のキーオン操作に応じた発音に直ちに反映させることができ、より迅速に音高選択規則の切り替えを行うことができる。
【０１４４】
また、上述した各実施形態では後着優先設定部３６やキーオフリトリガー制御部３９を割当制御部３３と別に設ける例について説明したが、割当制御部３３の各アサイナＡＳが後着優先設定部３６やキーオフリトリガー制御部３９の機能を備えていてもよい。この場合、各アサイナＡＳが、図７、図１５等を用いて説明したように、所定の条件に基づき後着優先の使用やキーオフリトリガーの要否を判定し、必要と判断した場合に、音高選択規則を後着優先に変更したり、キーオフリトリガーの処理を行ったりするようにすればよい。
【０１４５】
また、各アサイナについて設定する音高選択の規則につき、図１８に示すように、押鍵数毎に異なる挙動を示すものとしてもよい。図１８では第２アサイナと第３アサイナについて押鍵数４までしか規則を規定していないが、５以上の場合について規定してもよい。
【０１４６】
また、上述した実施形態では、演奏操作子が鍵盤であり、発音開始指示を押鍵操作により、発音停止指示を離鍵操作により行う例について説明した。しかし、演奏操作子の形態はこれに限られない。他の楽器の形状はもちろん、マトリクス状に操作部を配置したパッドなど、伝統的な楽器と全く異なる形状のユーザインタフェースを備える装置にもこの発明は適用可能である。この場合、発音開始指示及び発音停止指示は、そのユーザインタフェースの特性に応じた操作方法で受け付けることになる。
【０１４７】
また、電子楽器１０が演奏操作子を内蔵している必要もない。通信Ｉ／Ｆ１５に接続された外部のコントローラから、演奏操作子の操作内容を示す演奏データを取得し、その演奏データに基づいて電子楽器１０が各操作部の操作状態を把握することも考えられる。
また、汎用コンピュータのキーボードや、タッチパネルに表示したＧＵＩ（グラフィカルユーザインタフェース）を、演奏操作子として用いることも考えられる。この場合において、汎用コンピュータに図２等に示した各部の機能を実現させることにより、電子楽器として機能させることができる。また、いずれの場合でも、図２等に示した各部の機能を、複数の装置に分散して設け、それらを協働させて電子楽器１０の機能を実現させることもできる。
【０１４８】
この発明の実施形態であるプログラムは、１のコンピュータに、または複数のコンピュータを協働させて、図２等に示した各部（特に後着優先設定部３６）の機能を実現させるためのプログラムである。
そして、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
【０１４９】
このようなプログラムは、はじめからコンピュータに備えるＲＯＭや他の不揮発性記憶媒体（フラッシュメモリ，ＥＥＰＲＯＭ等）などに格納しておいてもよい。しかし、メモリカード、ＣＤ、ＤＶＤ、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
【０１５０】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【産業上の利用可能性】
【０１５１】
以上の説明から明らかなように、この発明によれば、連続した演奏操作が一部分重なってなされた場合でも、聴感への悪影響を抑えつつ、演奏者の演奏操作の意図に合った発音を容易に行えるようにすることができる。
従って、この発明を適用することにより、電子楽器の利便性を向上させることができる。
【符号の説明】
【０１５２】
１０：電子楽器、１１：ＣＰＵ、１２：ＲＯＭ、１３：ＲＡＭ、１４：記憶装置、１５：通信Ｉ／Ｆ、１６：検出回路、１７：表示回路、１８：音源回路、１９：システムバス、２１：タイマ、２２：演奏操作子、２３：設定操作子、２４：ディスプレイ、２５：ＤＡＣ、２６：サウンドシステム、３１：発音指示受付部、３２：操作状態検出部、３３：割当制御部、３４：楽音生成部、３５：選択履歴保存部、３６：後着優先設定部、３７：出力部、３８：操作履歴保存部、３９：キーオフリトリガー制御部、ＡＳ：アサイナ、ＴＣ：発音ｃｈ
【図１】
2015099328.tif 000003
【図２】
2015099328.tif 000004
【図３】
2015099328.tif 000005
【図４】
2015099328.tif 000006
【図５】
2015099328.tif 000007
【図６】
2015099328.tif 000008
【図７】
2015099328.tif 000009
【図８】
2015099328.tif 000010
【図９】
2015099328.tif 000011
【図１０】
2015099328.tif 000012
【図１１】
2015099328.tif 000013
【図１２】
2015099328.tif 000014
【図１３】
2015099328.tif 000015
【図１４】
2015099328.tif 000016
【図１５】
2015099328.tif 000017
【図１６】
2015099328.tif 000018
【図１７】
2015099328.tif 000019
【図１８】
2015099328.tif 000020
【図１９】
2015099328.tif 000021