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