(57)【特許請求の範囲】
【請求項１】
複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源に対して、制御信号を出力する音源制御装置であって、
前記音源は、第１のノートのノートオンイベントが生じた後に該第１のノートのノートオフイベントが生じる前に他の第２のノートのノートオンイベントが生じると、前記第１のノートから前記第２のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第２のノートに係るピッチを有するボディ部の波形とを出力するものであり、
前記第１および第２のノートのノートオンイベントの時間差に応じて、前記ジョイントヘッド部の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源に制御信号を出力する制御信号出力手段
を有することを特徴とする音源制御装置。
【請求項２】
前記音源は、さらに、前記第１のノートのノートオフイベントが生じる前に前記第２のノートのノートオフイベントが生じると、前記第２のノートから前記第１のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第１のノートに係るピッチを有するボディ部の波形とを出力するとともに、前記第２のノートのノートオフイベントが生じた後、前記第１のノートのノートオフイベントが生じる前に他の第３のノートのノートオンイベントが生じると、前記第１のノートから前記第３のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第３のノートに係るピッチを有するボディ部の波形とを出力するものであり、
前記制御信号出力手段は、
前記第２のノートのノートオフイベントと前記第３のノートのノートオンイベントとの時間差が長くなるほど、前記第１のノートから前記第３のノートに向かって遷移する音を表すジョイントヘッド部の長さを長くするように、前記音源に制御信号を出力するものである
ことを特徴とする請求項１記載の音源制御装置。
【請求項３】
前記音源は、複数種類の長さのジョイントヘッド部用の波形データをそれぞれ記憶する波形メモリを有するものであり、
前記音源制御装置は、これら波形データのうち何れかを指定する制御信号を前記音源に供給するものである
ことを特徴とする請求項１記載の楽音合成装置。
【請求項４】
複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成するとともに、第１のノートのノートオンイベントが生じた後に該第１のノートのノートオフイベントが生じる前に他の第２のノートのノートオンイベントが生じると、前記第１のノートから前記第２のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第２のノートに係るピッチを有するボディ部の波形とを出力する音源と、
前記第１および第２のノートのノートオンイベントの時間差に応じて、前記ジョイントヘッド部の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源に制御信号を出力する制御信号出力手段と
を有することを特徴とする楽音合成装置。
【請求項５】
コンピュータを、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源を制御する装置として機能させるためのプログラムであって、
前記音源は、第１のノートのノートオンイベントが生じた後に該第１のノートのノートオフイベントが生じる前に他の第２のノートのノートオンイベントが生じると、前記第１のノートから前記第２のノートに向かって遷移する音を表すジョイントヘッド部の波形と、該ジョイントヘッド部に接続され該第２のノートに係るピッチを有するボディ部の波形とを出力するものであり、
前記コンピュータを、
前記第１および第２のノートのノートオンイベントの時間差に応じて、前記ジョイントヘッド部の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源に制御信号を出力する制御信号出力手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏データの特徴に基づいて、付加すべき対象の音楽的表現を決定する音源制御装置、楽音合成装置およびプログラムに関する。
【背景技術】
【０００２】
演奏者による演奏操作子の操作に伴い発生される演奏データ、あるいは予め用意された演奏データに基づいて楽音を発生する電子楽器において、演奏データの特徴に基づいて、様々な音楽的表現を自動的に付加するものが知られている。例えば、あるノート（ノートＮＴ１という）がノートオンされ、該ノートＮＴ１がノートオフされる前に他のノート（ノートＮＴ２という）がノートオンされると、ノートＮＴ１，ＮＴ２の音高差が所定範囲内である等の条件を満たした場合に自動的にレガート奏法等の音響効果を付加する技術が知られている（特許文献１）。また、ノートＮＴ１がノートオンされた後にノートオフされるまでの期間内に、ノートＮＴ２がノートオンされノートオフされたとする。かかる場合、所定の条件の下で、ノートＮＴ２のノートオンとともにノートＮＴ１を消音し、ノートＮＴ２のノートオフとともにノートＮＴ１の発音を再開する技術も知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２６７１０号公報
【特許文献２】特開平５−２４９９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、楽曲の中には、アップテンポなものもスローテンポなものもあり、一曲の楽曲の中にアップテンポな部分とスローテンポな部分とが混在する場合もある。従って、例えばレガート奏法を適用するにしても、現在演奏中の曲調に相応しいレガート感を持った奏法を適用することが望ましい。しかし、特許文献１の技術においては、ノートＮＴ１，ＮＴ２の音高差によってレガート奏法の内容が一意に決定されてしまうため、しばしば曲調に相応しくないレガート奏法が適用されるという問題があった。
この発明は上述した事情に鑑みてなされたものであり、曲調に応じた自然なレガート感を実現できる音源制御装置、楽音合成装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の音源制御装置にあっては、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源（６）に対して、制御信号を出力する音源制御装置であって、前記音源（６）は、第１のノート（図７，ＮＴ１）のノートオンイベント（時刻ｔ1）が生じた後に該第１のノート（ＮＴ１）のノートオフイベント（時刻ｔ53）が生じる前に他の第２のノート（ＮＴ２）のノートオンイベント（時刻ｔ30）が生じると、前記第１のノート（ＮＴ１）から前記第２のノート（ＮＴ２）に向かって遷移する音を表すジョイントヘッド部（６４）の波形と、該ジョイントヘッド部に接続され該第２のノート（ＮＴ２）に係るピッチを有するボディ部（６６）の波形とを出力するものであり、前記第１および第２のノート（ＮＴ１，ＮＴ２）のノートオンイベントの時間差（Ｔ3）に応じて、前記ジョイントヘッド部（６４）の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源（６）に制御信号を出力する制御信号出力手段（図１０，ＳＰ２２〜ＳＰ３０）を有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の音源制御装置において、前記音源（６）は、さらに、前記第１のノート（ＮＴ１）のノートオフイベント（時刻ｔ53）が生じる前に前記第２のノート（ＮＴ２）のノートオフイベント（時刻ｔ40）が生じると、前記第２のノート（ＮＴ２）から前記第１のノート（ＮＴ１）に向かって遷移する音を表すジョイントヘッド部（６８）の波形と、該ジョイントヘッド部に接続され該第１のノート（ＮＴ１）に係るピッチを有するボディ部（７０）の波形とを出力するとともに、前記第２のノート（ＮＴ２）のノートオフイベント（時刻ｔ40）が生じた後、前記第１のノート（ＮＴ１）のノートオフイベント（時刻ｔ53）が生じる前に他の第３のノート（ＮＴ３）のノートオンイベント（時刻ｔ50）が生じると、前記第１のノート（ＮＴ１）から前記第３のノート（ＮＴ３）に向かって遷移する音を表すジョイントヘッド部（７２，７８）の波形と、該ジョイントヘッド部に接続され該第３のノート（ＮＴ３）に係るピッチを有するボディ部（７４）の波形とを出力するものであり、前記制御信号出力手段は、前記第２のノート（ＮＴ２）のノートオフイベント（時刻ｔ40）と前記第３のノート（ＮＴ３）のノートオンイベント（時刻ｔ50）との時間差（Ｔ6）が長くなるほど、前記第１のノート（ＮＴ１）から前記第３のノート（ＮＴ３）に向かって遷移する音を表すジョイントヘッド部（７２，７８）の長さを長くするように、前記音源（６）に制御信号を出力する（図１２，ＳＰ８６）ものであることを特徴とする。
さらに、請求項３記載の構成にあっては、請求項１記載の楽音合成装置において、前記音源（６）は、複数種類の長さのジョイントヘッド部（７２，７８）用の波形データをそれぞれ記憶する波形メモリ（３０）を有するものであり、前記音源制御装置は、これら波形データのうち何れかを指定する制御信号（スタートアドレスおよびエンドアドレス）を前記音源（６）に供給するものであることを特徴とする。
また、請求項４記載の楽音合成装置にあっては、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成するとともに、第１のノート（図７，ＮＴ１）のノートオンイベント（時刻ｔ1）が生じた後に該第１のノート（ＮＴ１）のノートオフイベント（時刻ｔ53）が生じる前に他の第２のノート（ＮＴ２）のノートオンイベント（時刻ｔ30）が生じると、前記第１のノート（ＮＴ１）から前記第２のノート（ＮＴ２）に向かって遷移する音を表すジョイントヘッド部（６４）の波形と、該ジョイントヘッド部に接続され該第２のノート（ＮＴ２）に係るピッチを有するボディ部（６６）の波形とを出力する音源と、前記第１および第２のノート（ＮＴ１，ＮＴ２）のノートオンイベントの時間差（Ｔ3）に応じて、前記ジョイントヘッド部（６４）の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源（６）に制御信号を出力する制御信号出力手段（図１０，ＳＰ２２〜ＳＰ３０）とを有することを特徴とする。
また、請求項５記載のプログラムにあっては、コンピュータを、複数のノートオンイベントおよびノートオフイベントを含む演奏データに基づいて楽音信号を合成する音源（６）を制御する装置として機能させるためのプログラムであって、前記音源（６）は、第１のノート（図７，ＮＴ１）のノートオンイベント（時刻ｔ1）が生じた後に該第１のノート（ＮＴ１）のノートオフイベント（時刻ｔ53）が生じる前に他の第２のノート（ＮＴ２）のノートオンイベント（時刻ｔ30）が生じると、前記第１のノート（ＮＴ１）から前記第２のノート（ＮＴ２）に向かって遷移する音を表すジョイントヘッド部（６４）の波形と、該ジョイントヘッド部に接続され該第２のノート（ＮＴ２）に係るピッチを有するボディ部（６６）の波形とを出力するものであり、前記コンピュータを、前記第１および第２のノート（ＮＴ１，ＮＴ２）のノートオンイベントの時間差（Ｔ3）に応じて、前記ジョイントヘッド部（６４）の長さを制御する制御信号出力手段であって、前記時間差がより長い場合の前記ジョイントヘッド部の長さが、前記時間差がより短い場合の前記ジョイントヘッド部の長さ以上になるように、前記音源（６）に制御信号を出力する制御信号出力手段（図１０，ＳＰ２２〜ＳＰ３０）として機能させるためのものであることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、第１および第２のノートのノートオンイベントの時間差が長くなるほどジョイントヘッド部の長さを長くするように、音源に対して制御信号を出力するから、楽曲の曲調がスローテンポになるほど、レガートの時間が長くなる傾向を強めることができる。これにより、曲調に応じた自然なレガート感を実現することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施例の電子楽器のブロック図である。
【図２】波形メモリ音源６の機能ブロック図である。
【図３】本実施例における動作の概要（通常奏法）を示す図である。
【図４】本実施例における動作の他の概要（レガート奏法（１））を示す図である。
【図５】本実施例における動作の他の概要（レガート奏法（２））を示す図である。
【図６】本実施例における動作の他の概要（レガート奏法（３））を示す図である。
【図７】本実施例における動作の他の概要（レガート奏法（４））を示す図である。
【図８】ＲＡＭ２４内に記憶される発音管理データ１００のデータ構成図である。
【図９】ＲＯＭ２２内に記憶される各種データのデータ構成図である。
【図１０】ノートオンイベント処理ルーチンのフローチャートである。
【図１１】ノートオフイベント処理ルーチンのフローチャート（１／２）である。
【図１２】ノートオフイベント処理ルーチンのフローチャート（２／２）である。
【図１３】周期処理ルーチンのフローチャートである。
【発明を実施するための形態】
【０００８】
1．実施例のハードウエア構成
次に、本発明の一実施例の電子楽器の構成を図１を参照し説明する。
図１において２は表示器であり、ユーザに対して各種情報を表示する。４は設定操作子であり、各種の動作モード等を設定するボタン等から構成されている。５は外部記憶装置であり、ＣＤ−Ｒ、フラッシュメモリ等から構成され、演奏データ（ＭＩＤＩデータ）等の記録／再生等を行う。６は波形メモリ音源であり、その内部に設けられた波形メモリを読み出し、各種の処理を行うことにより楽音信号を出力する。出力された楽音信号は、ＤＡコンバータ８を介してアナログ信号に変換された後、サウンドシステム１０を介して発音される。１４はＭＩＤＩインタフェースであり、外部機器との間でＭＩＤＩ信号を入出力する。
【０００９】
１６は演奏操作子であり、鍵盤、ペダル、モジュレーションホイール、ノブ、奏法スイッチ等から構成されている。鍵盤は複数の鍵から成り、各鍵はユーザによって押下されると、音高とベロシティとを有するノートオンイベントを発生させる。また、奏法スイッチは、奏法の自動設定を行うか否かを切り替えるスイッチであり、オン状態に設定されていると、レガート奏法等の自動設定が行われ、検出した奏法に応じた効果処理が楽音信号に付与される。１８はタイマであり、現在時刻を計時する。タイマ１８には、フリーランタイマが含まれており、このフリーランタイマは、後述する各処理において時間の計測等のために用いられる。２０はＣＰＵであり、後述するプログラムに基づいて、バス１２を介して他の構成要素を制御する。２２はＲＯＭであり、後述するプログラム等が記憶されている。２４はＲＡＭであり、ＣＰＵ２０のワークメモリとして用いられる。
【００１０】
次に、波形メモリ音源６の機能ブロックを図２を参照し説明する。
図２において３０は波形メモリであり、楽音信号を合成するための各種波形データを記憶する。３２−１〜３２−ｎは第１〜第ｎ発音チャンネルであり、ＤＳＰ（デジタル・シグナル・プロセッサ）等によって実現され、各発音チャンネル毎に波形メモリ３０を読み出し、楽音信号を合成する。３４は混合エフェクト処理部であり、各発音チャンネルから出力された楽音信号をミキシングし、エフェクト処理等を施す。３６は音源レジスタであり、各発音チャンネルおよび混合エフェクト処理部３４の動作パラメータ値などを記憶する。この音源レジスタ３６の内容は、ＣＰＵ２０によって随時更新することが可能である。
【００１１】
次に、第１発音チャンネル３２−１の内部において４０は波形読出部であり、波形メモリ３０中の指定された範囲の波形データを読み出す。４２は音色フィルタ部であり、読み出された波形データに対して各種フィルタリング処理を行う。４４は音量制御部であり、フィルタリング処理された波形データの音量を制御し、これを第１発音チャンネル３２−１の楽音信号として混合エフェクト処理部３４に出力する。４８は各種ＥＧ部であり、波形読出部４０の読出速度の基準を定めるピッチエンベロープ信号、音色フィルタ部４２におけるフィルタリング処理を制御するエンベロープ信号、および音量制御部４４のゲインを定める振幅エンベロープ信号を出力し、これらの信号を各構成要件４０，４２，４４に供給する。４６は各種ＬＦＯ部であり、ピッチエンベロープ信号を変調するピッチ変調信号、振幅エンベロープ信号を変調する振幅変調信号等、「４〜８Ｈｚ」程度の低周波信号出力する。
【００１２】
上述した音量制御部４４において設定される音量は、次式（１）にて表現される。
音量＝振幅エンベロープ信号 × 振幅変調信号 × 音量係数    …式（１）
式（１）における振幅エンベロープ信号は、上述のように各種ＥＧ部４８から出力され、基本的な振幅エンベロープを定める。振幅変調信号は、楽音信号にビブラートを施さない場合は「１」に設定され、ビブラートを施す場合には、例えば「１±０．１」の範囲で正弦波状に変動する信号になる。音量係数は、楽音信号を通常の状態で出力すべき場合は「１」に設定されるが、楽音信号を出力すべきでない場合には「０」に設定され、また、楽音信号のフェードイン、フェードアウトを行う場合には「０〜１」の範囲で直線的に増減する係数である。
以上、第１発音チャンネル３２−１の構成を詳述したが、他の第２〜第ｎ発音チャンネル３２−２〜３２−ｎの構成もこれと同様である。
【００１３】
2．動作の概要
2．1．通常奏法
次に、本実施例における動作の概要を図３〜図７を参照し説明する。
図３は、時刻ｔ1においてノートＮＴ１のノートオンイベントが発生し、時刻ｔ4にノートＮＴ１のノートオフイベントが発生した場合に生成される楽音信号の概要を示すものである。通常奏法（後述するレガートが発生しない奏法）においては、ヘッド部、ボディ部およびテイル部の３段階の波形データが波形メモリ３０から順次読み出されることにより、３段階の楽音信号が生成される。これら３段階の楽音信号は、各々別の発音チャンネルにおいて生成されクロスフェードによって次段階の楽音信号に遷移するようになっている。まず、ノートオンイベントが生じた時刻ｔ1においては、ヘッド部５０およびボディ部５２を各々生成するための「２」の発音チャンネルが確保され、ヘッド部５０およびボディ部５２の楽音信号の生成が開始される。
【００１４】
但し、この時点においては、ボディ部５２に係る発音チャンネルの音量制御部４４においては、音量係数が「０」に設定されており、実際に混合エフェクト処理部３４に対して出力される楽音信号は、ヘッド部５０の楽音信号のみである。次に、時刻ｔ1から所定時間経過した時刻ｔ2においては、ボディ部５２のフェードインが開始されるとともに、ヘッド部５０のフェードアウトが開始される。すなわち、両者のクロスフェードが開始される。そして、時刻ｔ3においてクロスフェードが完了し、ヘッド部５０の楽音信号が完全に消音状態になると、ヘッド部５０に係る発音チャンネルは解放され、その後はボディ部５２の楽音信号のみが出力される。なお、上述したように時刻ｔ1においてヘッド部５０のみならずボディ部５２の楽音信号の生成も開始する理由は、このクロスフェード期間（ｔ2〜ｔ3）において両者の位相を合せておくためである。
【００１５】
その後、時刻ｔ4においてノートＮＴ１のノートオフイベントが発生すると、テイル部５４のための「１」の発音チャンネルが確保され、テイル部５４に係る楽音信号の生成が開始される。これと同時に、テイル部５４のフェードインが開始されるとともに、ボディ部５２のフェードアウトが開始される。すなわち、両者のクロスフェードが開始される。そして、時刻ｔ5においてクロスフェードが完了し、ボディ部５２の楽音信号が完全に消音状態になると、ボディ部５２に係る発音チャンネルは解放され、その後はテイル部５４の楽音信号のみ出力される。テイル部５４は時間とともに減衰するように振幅エンベロープが設定されており、完全に減衰しきって消音状態になると（時刻ｔ6）、テイル部５４に係る発音チャンネルも解放される。
【００１６】
2．2．レガート奏法（１）
次に、レガート奏法として楽音信号が生成される例を図４を参照し説明する。
図４においては、時刻ｔ1にノートＮＴ１のノートオンイベントが発生し、時刻ｔ14にノートＮＴ１のノートオフイベントが発生している。このため、図３の場合と同様に、時刻ｔ1においてノートＮＴ１のヘッド部５０およびボディ部５２の楽音信号の生成が開始され、ボディ部５２の音量係数が「０」にされた状態でヘッド部５０の楽音信号のみの出力が開始される。次に、時刻ｔ2〜ｔ3の期間においては、出力される楽音信号がヘッド部５０からボディ部５２にクロスフェードにより遷移し、その後はボディ部５２の楽音信号の出力が継続される。一方、図４の例においては、ノートＮＴ１のノートオフイベントがまだ生じていない時刻ｔ10において他のノートＮＴ２のノートオンイベントが発生している。このような場合、「レガート条件」が満たされ、レガート奏法が適用される。
【００１７】
レガート奏法が適用される場合においては、図示のように、ノートＮＴ２のノートオン時刻ｔ10においてノートＮＴ１のボディ部５２のフェードアウトが開始される。一方、ノートＮＴ２に対しては、通常のヘッド部に代えて、レガート奏法用のジョイントヘッド部５６の楽音信号の出力が開始される。すなわち、時刻ｔ10においては、ジョイントヘッド部５６用およびボディ部５８用の「２」の発音チャンネルが確保され、双方の楽音信号の合成が開始される。但し、この時点においては、ボディ部５８に係る発音チャンネル音量係数は「０」に設定される。ジョイントヘッド部５６に係る音量係数も、時刻ｔ10の時点では「０」であるが、その後の時刻ｔ10〜ｔ11の期間内において徐々にフェードインされ、やがて音量係数が「１」になる。また、同期間内にノートＮＴ１のボディ部５２の音量係数は「１」から「０」にフェードアウトされる。すなわち、ボディ部５２とジョイントヘッド部５６とがクロスフェードされる。クロスフェードが完了すると、ノートＮＴ１のボディ部５２に係る発音チャンネルは解放される。
【００１８】
次に、ノートＮＴ２のノートオン時刻ｔ10から所定時間経過した時刻ｔ12においては、ボディ部５８のフェードインが開始されるとともに、ジョイントヘッド部５６のフェードアウトが開始される。そして、時刻ｔ13においてクロスフェードが完了し、ジョイントヘッド部５６の楽音信号が完全に消音されると、ジョイントヘッド部５６に係る発音チャンネルは解放され、その後はボディ部５８の楽音信号のみ出力される。その後、時刻ｔ15においてノートＮＴ２のノートオフイベントが発生すると、テイル部６０の発音チャンネルが確保され、テイル部６０に係る楽音信号の生成が開始される。これと同時に、テイル部６０のフェードインが開始されるとともに、ボディ部５８のフェードアウトが開始される。すなわち、両者のクロスフェードが開始される。そして、時刻ｔ16においてクロスフェードが完了すると、ボディ部５８に係る発音チャンネルは解放され、その後はテイル部６０の楽音信号のみ出力される。そして、テイル部６０の振幅エンベロープが「０」になると（時刻ｔ17）テイル部６０に係る発音チャンネルも解放される。
【００１９】
ここで、ジョイントヘッド部５６におけるピッチ制御について説明しておく。ジョイントヘッド部５６とノートＮＴ１のボディ部５２とがクロスフェードされる期間ｔ10〜ｔ11において、ジョイントヘッド部５６のピッチエンベロープ５６Ａは、ノートＮＴ１に保たれる。その後の期間ｔ11〜ｔ12において、ピッチエンベロープ５６ＡはノートＮＴ１のピッチからから徐々にノートＮＴ２のピッチに向かって、単調増加するように直線的にピッチが変化し、ノートＮＴ２のボディ部５８とがクロスフェードされる期間ｔ12〜ｔ13において当該ピッチはノートＮＴ２のピッチに保たれる。なお、このピッチエンベロープ５６Ａは、ジョイントヘッド部５６に割り当てられた発音チャンネルにおいて各種ＥＧ部４８から波形読出部４０に供給され、これによって該波形読出部４０における波形読出速度が制御される。このように、ジョイントヘッド部５６は、ノートＮＴ１のボディ部５２およびノートＮＴ２のボディ部５８の双方に対してクロスフェードされる。
【００２０】
ここで、ジョイントヘッド部には、出力時間の長いものと短いものとがあり、これらは、ノートＮＴ１のノートオン時刻ｔ1からノートＮＴ２のノートオン時刻ｔ10までの時間Ｔ1に応じて選択される。すなわち、時間Ｔ1が所定の閾値Ｔth以下であるときは短いジョイントヘッド部が選択され、時間Ｔ1が閾値Ｔthを超える場合には、長いジョイントヘッド部が選択される。図４の例は、時間Ｔ1が閾値Ｔth以下である場合の例であり、上記ジョイントヘッド部５６としては、短いジョイントヘッド部が採用されている。より一般的な形で表現すると、第１のノート（図４の例にあってはＮＴ１）のノートオンイベントが生じた後に該第１のノートのノートオフイベントが生じる前に、レガート条件を満たすように第２のノート（同、ＮＴ２）のノートオンイベントが生じると、第１および第２のノートのノートオンイベントの時間差（同、Ｔ1）が所定の閾値Ｔth以下であるときは短いジョイントヘッド部が選択され、該時間差が該閾値Ｔthを超える場合には、長いジョイントヘッド部が選択される。
【００２１】
2．3．レガート奏法（２）
次に、レガート奏法として楽音信号が生成される他の例を図５を参照し説明する。なお、以降の説明において、出力される楽音信号が切り替わる際にクロスフェードが行われる点は図３および図４の場合と同様である。
図５においては、時刻ｔ1にノートＮＴ１のノートオンイベントが発生し、図３，図４の場合と同様に、時刻ｔ1からノートＮＴ１のヘッド部５０およびボディ部５２の楽音信号が順次出力される。そして、ノートＮＴ１のノートオフイベント（時刻ｔ22）の前に、他のノートＮＴ２のノートオンイベントが発生している。但し、図５の例は、ノートＮＴ１のノートオン時刻ｔ1からノートＮＴ２のノートオン時刻ｔ20までの時間Ｔ2が閾値Ｔthを超えている点において図４の例とは異なっている。
【００２２】
これにより、図４における短いジョイントヘッド部５６に代えて、図５の例においては、長いジョイントヘッド部６２が出力される。ジョイントヘッド部６２のピッチエンベロープ６２Ａは、図４におけるジョイントヘッド部５６の場合と同様に、ノートＮＴ１のボディ部５２との間でクロスフェードされる期間内においてノートＮＴ１のピッチに保たれ、その後、ボディ部５８の出力が開始されるまでの期間においてノートＮＴ１のピッチからから徐々にノートＮＴ２のピッチに向かって単調増加するように直線的に変化し、ノートＮＴ２のボディ部５８との間でクロスフェードされる期間内においてノートＮＴ２のピッチに保たれる。但し、ジョイントヘッド部６２は出力時間が長いため、ピッチエンベロープ６２Ａの傾きは、図４のピッチエンベロープ５６Ａと比較して緩やかになっている。
【００２３】
2．4．レガート奏法（３）
次に、レガート奏法として楽音信号が生成される他の例を図６を参照し説明する。
図６においては、時刻ｔ1にノートＮＴ１のノートオンイベントが発生し、時刻ｔ53にノートＮＴ１のノートオフイベントが発生している。このため、図３〜図５の場合と同様に、時刻ｔ1からノートＮＴ１のヘッド部５０およびボディ部５２の楽音信号が順次出力される。次に、時刻ｔ30において、レガート条件を満たすノートＮＴ２のノートオンイベントが発生すると、ノートＮＴ２のジョイントヘッド部６４およびボディ部６６がクロスフェードされつつ順次出力される。ジョイントヘッド部６４の長短の区別は、上述のように、時刻ｔ1〜ｔ30の時間Ｔ3が閾値Ｔth以下であるか否かに応じて決定される。
【００２４】
次に、時刻ｔ40においてノートＮＴ２のノートオフイベントが発生すると、ノートＮＴ１の発音が再開される。ここで、先にヘッド部５０およびボディ部５２の出力のために割り当てられてた発音チャンネルは、ヘッド部５０およびボディ部５２が消音状態になった時に既に解放されているため、時刻ｔ40においては、ジョイントヘッド部６８およびそれに続くボディ部７０を出力するために「２」の発音チャンネルが改めて確保される。このように、消音状態にされていたノートＮＴ１の発音が再開される場合においても「レガート条件」が満たされることになり、ジョイントヘッド部６８はボディ部６６に対してクロスフェードされつつ出力される。さらに、その後においては、ジョイントヘッド部６８に対してクロスフェードされつつボディ部７０が出力される。ここで、ジョイントヘッド部６８の長短の区別は、時刻ｔ30〜ｔ40の時間Ｔ4が閾値Ｔth以下であるか否かに応じて決定される。
【００２５】
次に、時刻ｔ50において、レガート条件を満たす他のノートＮＴ３のノートオンイベントが発生すると、ノートＮＴ３のジョイントヘッド部７２およびボディ部７４がクロスフェードされつつ順次出力される。しかる後、時刻ｔ54にノートＮＴ３のノートオフイベントが発生すると、ボディ部７４に対してクロスフェードされつつテイル部７６が出力される。ここで、図６の例においては、ジョイントヘッド部７２の長短の区別は、ノートＮＴ３のノートオンイベント前に発生した最後のノートオンイベントに基づいて決定される。図６の例において、かかるノートオンイベントは時刻ｔ30に発生したノートＮＴ２のノートオンイベントであり、ジョイントヘッド部７２の長短の区別は、時刻ｔ30〜ｔ50の時間Ｔ5が閾値Ｔth以下であるか否かに応じて決定される。そして、図示の例では、時間Ｔ5が閾値Ｔthを超えているため、ジョイントヘッド部７２として、長いジョイントヘッド部が適用される。
【００２６】
図中の６４Ａ，６８Ａ，７２Ａは、各々ジョイントヘッド部６４，６８，７２のピッチエンベロープである。各ピッチエンベロープ６４Ａ，６８Ａ，７２Ａは、先行する他のノートのボディ部５２，６６，７０とクロスフェードされる期間内は当該ボディ部５２，６６，７０と同一ノートのピッチに保たれ、新たなノートオンイベントに係るボディ部６６，７０，７４とクロスフェードされる期間内は該新たなノートオンイベントに係るノートのピッチに保たれ、両者に挟まれた区間においては、単調増加または単調減少するように直線的にピッチが変化する。
【００２７】
2．5．レガート奏法（４）
次に、レガート奏法として楽音信号が生成される他の例を図７を参照し説明する。
図７においては、ノートＮＴ１〜ＮＴ３の各ノートオン／ノートオフタイミングは、図６の例と全く同一である。但し、時刻ｔ50にノートＮＴ３のノートオンイベントが発生した際にこのノートオンイベントに応じて出力されるジョイントヘッド部の長短の区別は、「ノートＮＴ３のノートオンイベント前に発生し、ノートを変化させた最後のノートオンまたはノートオフイベント」に基づいて決定される。図７において、かかるイベントは、時刻ｔ40に発生したノートＮＴ２のノートオフイベントである。そして、図示の例では、時刻ｔ40〜ｔ50の時間Ｔ6が閾値Ｔth以下であるため、図６における長いジョイントヘッド部７２に代えて、短いジョイントヘッド部７８が適用される。
【００２８】
3．データ構成
3．1．発音管理データ
次に、本実施例における各種データ構成を説明する。
まず、ＲＡＭ２４内には、図８に示す発音管理データ１００が記憶される。この発音管理データ１００は、ボイスパラメータ参照情報１０２と、最終ノートオン時刻１０４と、管理中ノートリスト１０６とから構成される。ここで、ボイスパラメータ参照情報１０２とは、後述するボイスパラメータ１３０−１〜１３０−ｍ（図９参照）のうち何れかを指定するものであり、ボイスパラメータ１３０−１〜１３０−ｍは、例えば、ピアノ、サックス、トランペット等のボイス（音色）に対応するものである。設定操作子４などによって、ユーザが何れかのボイスを選択すると、対応するボイスパラメータを指定するようにボイスパラメータ参照情報１０２が設定される。次に、最終ノートオン時刻１０４とは、当該ボイスにおいて最後に発生したノートオンイベントの時刻である。
【００２９】
次に、管理中ノートリスト１０６は、管理中であるノートに係る一または複数のノート情報１０８−１〜１０８−ｒから構成され、各ノート情報１０８−１〜１０８−ｒは、各々対応するノート番号１１０−１〜１１０−ｒと、使用中の発音チャンネル情報１１２−１〜１１２−ｒとから構成される。「使用中の発音チャンネル情報」は、当該ノートについてボディ部、またはテイル部が単独で出力されている際には、対応する「１」の発音チャンネルのみから構成され、これらのクロスフェードが実行されている場合にはボディ部およびテイル部に対応する「２」の発音チャンネルから構成される。また、ヘッド部またはジョイントヘッド部が出力されている場合には、位相合せのためにボディ部の楽音信号も消音状態で合成する必要があるため、使用中の発音チャンネル情報は、ヘッド部またはジョイントヘッド部と、ボディ部とに各々対応する「２」の発音チャンネルから構成される。
【００３０】
管理中ノートリスト１０６においては、「選択中のボイスのノートオンイベントが発生した」ことを条件として、当該ノートオンイベントに対応する新たなノート情報が追加される。また、「あるノート情報に係るノートオフイベントが発生し、かつ、そのノート情報に係る楽音信号が完全にフェードアウトしたこと」を条件として、当該ノート情報が管理中ノートリスト１０６から削除される。従って、全く発音されていないノートについてもノート情報が管理中ノートリスト１０６に含まれる場合がある。例えば、図６においてノートＮＴ１の楽音信号は時刻ｔ30においてフェードアウトが開始され、フェードアウトが完了した後に時刻ｔ40までの期間は全く発音されていないが、この期間内にはノートＮＴ１のノートオフイベントが発生していないため、当該ノートＮＴ１に係るノート情報は管理中ノートリスト１０６に残存し続ける。
【００３１】
このように、全く発音されていないノートに係るノート情報においては、発音チャンネルが割り当てられないため、その発音チャンネル情報１１２−１〜１１２−ｒは空欄になる。また、各ノート情報は、管理中ノートリスト１０６においてノートオンイベントが発生したタイミング順に配列される。すなわち、図８の例においては、ノート情報１０８−１が最古のノート情報であり、ノート情報１０８−ｒが最新のノート情報である。また、特に図示しないが、各ノート情報には各種パラメータや状態変数なども記憶される。例えば、ペダル、ノブ、モジュレーションホイール、等がユーザに操作された場合は、その操作量に応じて、ノート情報１０８−１〜１０８−ｒ内のこれらパラメータや状態変数等が更新される。
【００３２】
3．2．ボイスパラメータ
次に、ＲＯＭ２２内には、図９に示すボイスパラメータ１３０−１〜１３０−ｍと、エレメント群１４０とが記憶される。ここで、ボイスパラメータ１３０−１〜１３０−ｍは、ピアノ、サックス、トランペット等のボイス（音色）に各々対応しており、これらのうち何れか一のボイスパラメータが上述したボイスパラメータ参照情報１０２によって選択される。図示の例にあっては、ボイスパラメータ１３０−１が選択されていることとする。一のボイスパラメータは、ジョイントヘッド長短閾値１３２と、ジョイントヘッドＩＤテーブル１３４と、その他ボイスパラメータ１３６とから構成される。ここで、ジョイントヘッド長短閾値１３２は、当該ボイスに対応して、ジョイントヘッド部の長短の別を定める閾値Ｔth（図４〜図７参照）を定めるものである。
【００３３】
次に、ジョイントヘッドＩＤテーブル１３４は、複数の「ジョイントヘッドエレメントＩＤ」という情報から構成されている。各ジョイントヘッドエレメントＩＤは各々「ジョイントヘッドエレメント」という情報を指定するものである。なお、詳細は後述するが、各ジョイントヘッドエレメントは、音高とベロシティとに基づいて波形データを特定するための情報である。ジョイントヘッドエレメントＩＤは、ジョイントヘッド部の長短の別と、音高差に応じて分類されている。
まず、「音高差」は、「±１１９９ cent」の範囲を「１００ cent」毎に区切った「２４」種類と、「＋１２００ cent以上」と、「−１２００ cent以下」とに分類され、この結果、ジョイントヘッドエレメントＩＤは音高差に応じて「２６」種類に分類される。さらに、ジョイントヘッドエレメントＩＤは出力時間の長短に応じて「２」種類に分類されるから、ジョイントヘッドＩＤテーブル１３４には、合計「５２（＝２６×２）」種類のジョイントヘッドエレメントＩＤが記憶されることになる。次に、その他ボイスパラメータ１３６は、後述するヘッドエレメント１４２、ボディエレメント１４４およびテイルエレメント１４６を指定するエレメントＩＤなどから構成されている。
【００３４】
3．3．エレメント群
次に、エレメント群１４０は、一のヘッドエレメント１４２と、一のボディエレメント１４４と、一のテイルエレメント１４６と、複数のジョイントヘッドエレメントから成るジョイントヘッドエレメント群１４８とから構成されている。ジョイントヘッドエレメント群１４８に属するエレメントの数は、ジョイントヘッドエレメントＩＤの数（上記例では「５２」種類）以下である。すなわち、「５２」種類のジョイントヘッドエレメントＩＤは、必ずしも相互に異ならせる必要はなく、同一のＩＤであっても差し支えないため、かかる場合にはエレメントの数は「５２」よりも少なくなる。そして、これらエレメント１４２，１４４，１４６，１４８のうち任意の一のエレメントは、複数の波形メモリ参照情報と、これら波形メモリ参照情報に各々対応し当該波形メモリ参照情報が適用される条件を定めるキーバンク情報とから構成される。波形メモリ参照情報は、波形メモリ音源６内の波形メモリ３０の何れかの波形データ１５０−１〜１５０−ｐの読出方法を記述したものであり、具体的には、当該波形データの読み出し範囲（スタートアドレスおよびエンドアドレス）と、当該読み出し範囲がループ読出されるか否かとを指定するものである。一般的に、ボディエレメント１４４によって参照される場合は波形データがループ読出され、それ以外のエレメント１４２，１４６，１４８によって参照される波形データはループ読出されない傾向が強い。
【００３５】
ジョイントヘッドエレメントに対応する波形データは、例えば、自然楽器をある音程から別のある音程に遷移させる演奏をした時の音をサンプリングし、音の遷移する部分を切り出し、加工して作成される。遷移する途中の音は、安定していてピッチが徐々に変化するものもあるし、不安定でピッチ感の乏しいノイズ的な部分や非線形に変化する部分を含むものもある。また、例えば、長いジョイントヘッド部に対応するジョイントヘッドエレメントの波形データは「１００msec」程度であり、短いジョイントヘッド部に対応するジョイントヘッドエレメントの波形データは「５０msec」程度である。
【００３６】
また、キーバンク情報は、ノートオンイベントにおいて指定される音高とベロシティとに応じて、対応する波形メモリ参照情報の適用条件を定めるものである。一例として、全音高を「低音域」、「中音域」および「高音域」の「３」音域に分類し、ベロシティの範囲を所定の閾値を境として「強」および「弱」の「２」範囲に分類したとすると、キーバンク情報および波形メモリ参照情報の数は、各々「６」になる。なお、図９の例においては、選択されたボイスパラメータ１３０−１に対応するエレメント群１４０のみを示したが、ＲＯＭ２２には、他のボイスパラメータ１３０−２〜１３０−ｍに対応するエレメント群も記憶されている。但し、ボイスパラメータ１３０−１〜１３０−ｍと、エレメント群とは、必ずしも一対一に対応するわけではなく、きわめて近似するボイス間においては、一部のエレメントが共通して適用される場合がある。
【００３７】
4．イベント処理
4．1．ノートオンイベント処理（図１０）
次に、本実施例における各種イベント処理の内容を説明する。
まず、演奏操作子１６において奏法スイッチがオン状態であるときに、選択中のボイス（ボイスパラメータ参照情報１０２にて選択されているボイス）のノートオンイベントが発生すると、図１０に示すノートオンイベント処理ルーチンが起動される。なお、ノートオンイベントは、演奏操作子１６における鍵盤等の操作、ＭＩＤＩインタフェース１４を介してのＭＩＤＩ信号の受信、または外部記憶装置５から読み出されたＭＩＤＩデータの再生によって発生する。この点は、後述するノートオフイベントについても同様である。
図１０において処理がステップＳＰ２に進むと、管理中ノートリスト１０６に対して、新たに空のノート情報が一つ追加される。次に、処理がステップＳＰ４に進むと、追加されたノート情報におけるノート番号に対して、発生したノートオンイベントに係るノート番号が書き込まれる。
【００３８】
次に、処理がステップＳＰ６に進むと、波形メモリ音源６内の空いている発音チャンネルの中から、「２」の発音チャンネルが確保される。このうち、一方の発音チャンネル（以下、発音チャンネルＡという）はヘッド部（またはジョイントヘッド部）用であり、他方の発音チャンネル（以下、発音チャンネルＢという）はボディ部用である。そして、確保された発音チャンネルＡ，Ｂの各チャンネル番号が、当該ノート情報内に、使用中の発音チャンネル情報として書き込まれる。このステップＳＰ６までの処理が終了した段階において、当該ノート情報は、例えば図８における「ノート情報１０８−ｒ」に示すようになる。
【００３９】
次に、処理がステップＳＰ８に進むと、今回のノートオンイベントに対して、レガート条件を満たすノート情報が存在するか否かが判定される。ここで、ノートオンイベントに対するレガート条件とは、「該ノートオンイベントの発生時に消音状態ではない他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」ということである。ステップＳＰ８において「ＹＥＳ」と判定される具体例は、例えば、図４の時刻ｔ10におけるノートＮＴ２のノートオンイベントである。この例においては、今回のノートオンイベント（時刻ｔ10のノートＮＴ２のノートオンイベント）に対して、未だノートオフイベントが発生していない他のノート情報（ノートＮＴ１のノート情報）が存在する。
【００４０】
但し、ここでは、ステップＳＰ８の条件が満たされない場合の動作を先に説明しておく。レガート条件が満たす他のノート情報が存在しない場合、ステップＳＰ８においては「ＮＯ」と判定され、処理はステップＳＰ１０に進む。ここでは、ノートオンイベントに含まれるノート番号とベロシティとに基づいて、ヘッドエレメント１４２内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がヘッドエレメント１４２から読み出される。
【００４１】
次に、処理がステップＳＰ１２に進むと、ヘッドエレメント１４２から読み出された波形メモリ参照情報と、ヘッド部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ３６内のヘッド部用の発音チャンネルＡに対応する領域に書き込まれる。これにより、ヘッド部の楽音信号を合成する準備が完了する。なお、「各種パラメータ」とは、振幅エンベロープ信号の初期値、振幅変調信号の初期値、音量係数の初期値、ピッチエンベロープ信号の初期値、およびピッチ変調信号の初期値等である。次に、処理がステップＳＰ１４に進むと、上記ノート番号とベロシティとに基づいて、ボディエレメント１４４内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がボディエレメント１４４から読み出される。
【００４２】
次に、処理がステップＳＰ１６に進むと、ボディエレメント１４４から読み出された波形メモリ参照情報と、ボディ部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ３６内のボディ部用の発音チャンネルＢに対応する領域に書き込まれる。これにより、ボディ部の楽音信号を合成する準備が完了する。但し、ボディ部の楽音信号は最初は消音状態で出力する必要があるため、その音量係数は「０」に設定される。次に、処理がステップＳＰ１８に進むと、発音チャンネルＡ，Ｂの発音開始を指示するコマンドが音源レジスタ３６に書き込まれる。これにより、ヘッド部およびボディ部の楽音信号の出力が同時に開始される。但し、上述のようにボディ部の楽音信号は消音状態で出力される。次に、処理がステップＳＰ２０に進むと、最終ノートオン時刻１０４が、現在時刻によって更新される。以上により、レガート条件が満たされない場合におけるノートオンイベント処理が終了する。
【００４３】
一方、レガート条件が満たされた場合は、上記ステップＳＰ８において「ＹＥＳ」と判定され、処理はステップＳＰ２２に進む。ここでは、最終ノートオン時刻１０４と、現在時刻との時間差が求められ、該時間差がジョイントヘッド長短閾値１３２（閾値Ｔth）以下であるか否かに応じて、適用されるジョイントヘッド部の長短の区別が決定される。次に、処理がステップＳＰ２４に進むと、選択中のボイスについて現在発音中の音高と、今回発生したノートオンイベントに係るノート番号との音高差が計算される。次に、処理がステップＳＰ２６に進むと、決定された長短の区別と計算された音高差とに基づいてジョイントヘッドＩＤテーブル１３４の中の一のジョイントヘッドエレメントＩＤが特定され、これによってジョイントヘッドエレメント群１４８の中から一のジョイントヘッドエレメントが決定される。
【００４４】
次に、処理がステップＳＰ２８に進むと、決定された上記一のジョイントヘッドエレメント内において、今回のノートオンイベントに係るノート番号とベロシティとに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報が該ジョイントヘッドエレメントから読み出される。次に、処理がステップＳＰ３０に進むと、ジョイントヘッドエレメントから読み出された波形メモリ参照情報と、ジョイントヘッド部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ３６内のジョイントヘッド部用の発音チャンネルＡに対応する領域に書き込まれる。その際、ピッチエンベロープの初期値は、選択中のボイスについて現在発音中の楽音信号のピッチに一致するように設定され、音量係数は「０」に設定される。これは、その後にクロスフェード（例えば図４の期間ｔ10〜ｔ11のクロスフェード）を実行するため、ジョイントヘッド部の楽音信号は最初は消音状態にしておく必要があるためである。
【００４５】
次に、上述したステップＳＰ１４，ＳＰ１６が実行されることにより、発音チャンネルＢを介してボディ部の楽音信号を合成する準備が完了する。次に、処理がステップＳＰ１８に進むと、発音チャンネルＡ，Ｂの発音が開始される。但し、上述のように、ジョイントヘッド部およびボディ部の楽音信号は、最初の段階では何れも音量係数が「０」であるから消音状態で出力される。次に、処理がステップＳＰ２０に進むと、最終ノートオン時刻１０４が、現在時刻によって更新される。以上により、レガート条件が満たされた場合におけるノートオンイベント処理が終了する。
【００４６】
4．2．ノートオフイベント処理（図１１，図１２）
次に、演奏操作子１６において奏法スイッチがオン状態であるときに、鍵盤等の操作によって、選択中のボイス（ボイスパラメータ参照情報１０２にて選択されているボイス）のノートオフイベントが発生し、あるいは、ＭＩＤＩインタフェース１４を介して選択中のボイスのノートオフイベントのＭＩＤＩ信号が供給されると、図１１，図１２に示すノートオフイベント処理ルーチン（図１１，図１２）が起動される。
図１１において処理がステップＳＰ５０に進むと、今回発生したノートオフイベントに係るノート番号を有するノート情報が、管理中ノートリスト１０６の中から検索される。次に、処理がステップＳＰ５２に進むと、当該ノートは、「ノートオフイベントが生じる前に他のノートオンイベントの発生によりフェードアウトが完了したノート」に該当するか否かが判定される。
【００４７】
これに該当するノートとは、例えば、図４における時刻ｔ11以降のノートＮＴ１であり、このノートに対応するノートオフイベントが時刻ｔ14に発生した場合に、ステップＳＰ２５において「ＹＥＳ」と判定される。上述したように、図４においては、ノートＮＴ２（他のノート）のノートオンイベントが時刻ｔ10に発生したことにより、当該ノートＮＴ１については時刻ｔ10からフェードアウトが開始され、時刻ｔ11以降はフェードアウトが完了し、後述する周期処理によって当該ノート情報１０８−ｘ（１≦ｘ≦ｒ）中の、発音チャンネル情報１１２−ｘは空になっている。ステップＳＰ５２において「ＹＥＳ」と判定されると処理はステップＳＰ６４に進み、当該ノート情報１０８−ｘは管理中ノートリスト１０６の中から削除され、本ルーチンの処理が終了する。なお、図４の例にあっては、ノートＮＴ１の楽音信号が完全にフェードアウトした後の時刻ｔ14においてノートＮＴ１のノートオフイベントが生じているが、フェードアウトの途中（期間ｔ10〜ｔ11）にノートオフイベントが生じる場合も考えられる。かかる場合は、音量が「０」ではない発音チャンネルが未だ残存しているため、ステップＳＰ６４においては処理は実行されない。このようなノート情報については、後述する周期処理ルーチン（図１３）において処理される。
【００４８】
一方、当該ノートが「ノートオフイベントが生じる前に他のノートオンイベントの発生によりフェードアウトが完了したノート」に該当しない場合はステップＳＰ５２において「ＮＯ」と判定され、処理はステップＳＰ５４に進む。ここでは、「今回のノートオフイベントに対して、レガート条件を満たす他のノート情報」が存在するか否かが判定される。ここで、ノートオフイベントに対するレガート条件は、「該ノートオフイベントの発生時に消音状態である他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」という事である。これに該当するノートとは、例えば、図６における時刻ｔ40のノートＮＴ２である。上述したように、図６においては、今回のノートオフイベントに係るノート情報（ＮＴ２）以外の他のノート情報（ＮＴ１）が存在し、かつ当該他のノート情報に係るノート（ＮＴ１）ついて未だノートオフイベントは生じていない。
【００４９】
ステップＳＰ５４において「ＮＯ」と判定されると処理はステップＳＰ５６に進み、テイル部の発音のために、波形メモリ音源６内の空いている発音チャンネルの中から、一の発音チャンネルが確保される。そして、確保された発音チャンネルのチャンネル番号が、今回のノートオフイベントに係るノート情報内の使用中の発音チャンネル情報に追加して書き込まれる。次に、処理がステップＳＰ５８に進むと、上記ノート番号とベロシティとに基づいて、テイルエレメント１４６内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がテイルエレメント１４６から読み出される。ここで、キーバンク情報を特定するために参照される「ベロシティ」とは、「発音対象ノートについて最後に発生したノートオンベロシティ」の意味である。図６の例においては、時刻ｔ54にノートＮＴ３のノートオフイベントが発生しているが、その際にキーバンク情報を特定するために参照されるベロシティは、時刻ｔ50におけるノートＮＴ３のノートオンベロシティである。
【００５０】
次に、処理がステップＳＰ６０に進むと、テイルエレメント１４６から読み出された波形メモリ参照情報と、テイル部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ３６内のテイル部用の発音チャンネルに対応する領域に書き込まれる。その際、音量係数は「０」に設定される。これは、テイル部とボディ部との間でクロスフェードを実行するため、テイル部の楽音信号は最初は消音状態にしておく必要があるためである。次に、処理がステップＳＰ６２に進むと、テイル部の発音チャンネルの発音開始を指示するコマンドが音源レジスタ３６に書き込まれる。これにより、テイル部の楽音信号の出力が開始される。
以上により、テイル部が発音される場合におけるノートオフイベント処理が終了する。
【００５１】
また、「今回のノートオフイベントに対して、レガート条件を満たす他のノート情報」（例えば、図６における時刻ｔ40のノートＮＴ１）が存在する場合においては、上記ステップＳＰ５４において「ＹＥＳ」と判定され、処理はステップＳＰ６８（図１２参照）に進む。ステップＳＰ６８においては、ノートオン時のステップＳＰ６（図１０参照）と同様に、ジョイントヘッド部用およびボディ部用の「２」の発音チャンネルＡ，Ｂが確保され、これらの各チャンネル番号が、上記「他のノート情報」（図６の時刻ｔ40の例においては、ノートＮＴ１のノート情報）に書き込まれる。この「他のノート情報」は、楽音信号を出力しようとするノート情報であるため、以下、「発音対象ノート情報」という。
【００５２】
次に、処理がステップＳＰ７０に進むと、発音対象ノート情報のジョイントヘッドエレメントの長短の区別が決定される。図６の時刻ｔ40の例においては、時刻ｔ30〜ｔ40の時間Ｔ4が閾値Ｔth以下であるか否かに応じて、ジョイントヘッド部６８の長短の区別が決定される。次に、処理がステップＳＰ７２に進むと、選択中のボイスについて現在発音中の音高と、発音対象ノート情報に係るノート番号との音高差が計算される。次に、処理がステップＳＰ７４に進むと、決定された長短の区別と計算された音高差とに基づいてジョイントヘッドＩＤテーブル１３４の中の一のジョイントヘッドエレメントＩＤが特定され、これによってジョイントヘッドエレメント群１４８の中から一のジョイントヘッドエレメントが決定される。
【００５３】
次に、処理がステップＳＰ７６に進むと、決定された上記一のジョイントヘッドエレメント内において、発音対象ノート情報に係るノート番号とベロシティとに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報が該ジョイントヘッドエレメントから読み出される。上述のように、キーバンク情報を特定するために参照される「ベロシティ」とは、「発音対象ノートについて最後に発生したノートオンベロシティ」である。従って、図６の例においては、時刻ｔ40においてキーバンク情報を特定するために参照されるベロシティは、時刻ｔ1におけるノートＮＴ１のノートオンベロシティである。次に、処理がステップＳＰ７８に進むと、ジョイントヘッドエレメントから読み出された波形メモリ参照情報と、ジョイントヘッド部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ３６内のジョイントヘッド部用の発音チャンネルＡに対応する領域に書き込まれる。その際、ピッチエンベロープの初期値は、選択中のボイスについて現在発音中の楽音信号のピッチに一致するように設定され、音量係数は「０」に設定される。これは、その後にクロスフェード（例えば図６の時刻ｔ40以降のクロスフェード）を実行するため、ジョイントヘッド部の楽音信号は最初は消音状態にしておく必要があるためである。
【００５４】
次に、処理がステップＳＰ８０に進むと、発音対象ノート情報に係るノート番号とベロシティ（発音対象ノートについて最後に発生したノートオンベロシティ）とに基づいて、ボディエレメント１４４内においてこれらに対応する一のキーバンク情報が特定される。そして、特定されたキーバンク情報に対応する波形メモリ参照情報がボディエレメント１４４から読み出される。次に、処理がステップＳＰ８２に進むと、ボディエレメント１４４から読み出された波形メモリ参照情報と、ボディ部の楽音信号を合成するための各種パラメータの初期値とが、音源レジスタ３６内のボディ部用の発音チャンネルＢに対応する領域に書き込まれる。これにより、ボディ部の楽音信号を合成する準備が完了する。但し、ボディ部の楽音信号は最初は消音状態で出力する必要があるため、その音量係数は「０」に設定される。
【００５５】
次に、処理がステップＳＰ８４に進むと、発音チャンネルＡ，Ｂの発音開始を指示するコマンドが音源レジスタ３６に書き込まれる。これにより、ジョイントヘッド部およびボディ部の楽音信号の出力が同時に開始される。但し、上述のように、この時点においては、ジョイントヘッド部およびボディ部とも音量係数は「０」であり、消音状態で出力される。なお、図中に破線で表記したステップＳＰ８６の処理は、本実施例においては実行されない。以上により、「今回のノートオフイベントに対して、レガート条件を満たす他のノート情報（発音対象ノート情報）」が存在する場合におけるノートオフイベント処理が終了する。
【００５６】
4．3．周期処理（図１３）
本実施例の電子楽器においては、「１０msec」毎に、図１３に示す周期処理ルーチンが起動される。
図１３において処理がステップＳＰ１００に進むと、クロスフェードを実行する条件に達した全ての発音チャンネルについて、クロスフェードが開始される。より具体的には、フェードアウトを開始すべき発音チャンネルと、フェードインを開始すべき発音チャンネルとが今後音量係数を逐次更新してゆく発音チャンネルとして指定される。次に、処理がステップＳＰ１０２に進むと、クロスフェードが実行中である全ての発音チャンネルについて、音量係数が変更される。すなわち、フェードイン中である発音チャンネルにおいては、音量係数が所定値だけ増加され、フェードアウト中の発音チャンネルについては、該音量係数が所定値だけ減少される。
【００５７】
次に、処理がステップＳＰ１０４に進むと、管理中ノートリスト１０６内の何れかのノート情報１０８−１〜１０８−ｒに含まれる発音チャンネルのうち、フェードアウトしきったもの、すなわち音量係数が「０」に達したものが存在するか否かが判定される。ここで「ＹＥＳ」と判定されると処理はステップＳＰ１０６に進み、対応するノート情報の中から当該発音チャンネルが削除されるとともに、波形メモリ音源６においては当該発音チャンネル自体が解放される。一方、ステップＳＰ１０４において「ＮＯ」と判定されると、ステップＳＰ１０６はスキップされる。次に、処理がステップＳＰ１０８に進むと、管理中ノートリスト１０６の中で「既にノートオフイベントが発生し、かつ、そこに属する全ての発音チャンネルの音量が「０」であるノート情報」は存在するか否かが判定される。この条件が満たされる場合とは、具体的には以下の２つの場合である。
（１）テイル部の振幅エンベロープがリリースしきって「０」になり、その結果として音量が「０」になった場合
（２）フェードアウト中にノートオフイベントが発生し、その後もフェードアウトが続行され音量係数が「０」になった結果として音量が「０」になった場合
【００５８】
ステップＳＰ１０８において「ＹＥＳ」と判定されると、処理はステップＳＰ１１０に進み、当該ノート情報から、これら発音チャンネルが削除され、さらに、これら発音チャンネル自体が解放される。次に、処理がステップＳＰ１１２に進むと、当該ノート情報が管理中ノートリスト１０６の中から削除される。なお、ステップＳＰ１０８において「ＮＯ」と判定された場合には、ステップＳＰ１１０，ＳＰ１１２はスキップされる。次に、処理がステップＳＰ１１４に進むと、必要に応じて、その他ボイスパラメータが更新される。例えば、ペダル、ノブ、モジュレーションホイール、等がユーザに操作された場合は、その操作量に応じて、音源レジスタ３６の各種パラメータの値が更新され、発音中の楽音信号に変化が付与される。以上のステップにより、一回あたりの周期処理が終了する。
【００５９】
5．実施例の効果
以上説明したように本実施例によれば、第１および第２のノート（例えば図４，図５のＮＴ１，ＮＴ２）のノートオンイベントの時間差（Ｔ3）が閾値Ｔth以下であるかに応じてジョイントヘッド部（５６または６２）の長短を選択するから、楽曲の曲調がスローテンポになるほど、レガートの時間が長くなる傾向を強めることができる。これにより、曲調に応じた自然なレガート感を実現することができる。
また、各ジョイントヘッド部の楽音信号を出力するための波形データは予め波形メモリ３０に記憶されている波形データであり、かつ、出力すべきジョイントヘッド部を決定するための情報は全て過去に取得されている情報であるから、本実施例はリアルタイムの演奏に対しても適用することが可能である。
【００６０】
6．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例におけるノートオフイベント処理ルーチンにおいて、ステップＳＰ８４（図１２）を実行した後に、破線で表記したステップＳＰ８６を実行させてもよい。このステップＳＰ８６においては、最終ノートオン時刻１０４が、現在時刻（すなわちノートオフタイミング）によって更新される。これにより、ノートを変更する契機となるノートオフイベント（例えば図７における、ノートＮＴ２の時刻ｔ40におけるノートオフイベント）も、ノートオンイベントと同様に、ジョイントヘッド部の長短の決定に影響させることができるようになる。
なお、ステップＳＰ８６を実行させたほうが望ましいのか否かは、曲調あるいはユーザの好みによっても異なるため、ステップＳＰ８６を実行させるのか否かを、設定操作子４を介してユーザが指定できるようにしてもよい。
【００６１】
(2)また、上記実施例においては、あるノートのノートオンイベント時に検出されたノート番号およびベロシティによって、当該ノートについてその後読み出される全ての波形データが決定された。例えば、図７において、時刻ｔ1に検出されたノートＮＴ１のベロシティによって、ノートＮＴ１のヘッド部５０、ボディ部５２、ジョイントヘッド部６８およびボディ部７０を出力するための波形データが一意に決定された。しかし、その後のペダル、ノブ、モジュレーションホイール等の操作量によって振幅エンベロープ等のパラメータが変化したのであれば、変化後のパラメータに基づいて、各エレメント１４２，１４４，１４６，１４８内のキーバンク情報を参照する際のベロシティを変化させてもよい。
【００６２】
(3)また、上記実施例においては、第１および第２のノート（例えばＮＴ１，ＮＴ２）のノートオンイベントの時間差（Ｔ3）が閾値Ｔth以下であるか否かに応じて、ジョイントヘッド部の長短の区別を決定したが、「該時間差（Ｔ3）がより長い場合のジョイントヘッド部の長さが、該時間差（Ｔ3）がより短い場合のジョイントヘッド部の長さ以上になるようにする」方法はこれに限られるものではない。例えば、該時間差（Ｔ3）を「２」以上の閾値と比較することによって該時間差（Ｔ3）が「３」以上の「時間差の範囲」の何れに属するのかを判定し、その結果に応じて「３」種類以上の異なる長さのジョイントヘッド部の中から適用するジョイントヘッド部を選択するようにしてもよい。
【００６３】
(4)また、上記実施例においては、閾値Ｔthは選択中のボイスに応じて固定的に定められていたが、閾値Ｔthをユーザが指定できるようにしてもよい。
(5)また、上記実施例において、外部記憶装置５に記憶された演奏データに基づいて楽音信号を合成する場合はノンリアルタイムで合成処理を実行してもよい。
【００６４】
(6)また、上記実施例において、ノートオンイベントに対するレガート条件は、「該ノートオンイベントの発生時に消音状態ではない他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」ということであり、また、ノートオフイベントに対するレガート条件は、「該ノートオフイベントの発生時に消音状態である他のノート情報が存在し、かつ当該他のノート情報に係るノートついてノートオフイベントが生じていない」ということであった。
しかし、レガート条件は上述したものに限定されるわけではない。例えば、上記「他のノート情報」に係るノートと、今回のノートオンまたはノートオフイベントに係るノートとの音高差が所定値以下（例えば１オクターブ以下）であることを上記実施例のレガート条件に追加してもよい。
また、ノートオンイベントに対するレガート条件については、「最終ノートオン時刻１０４と現在時刻との差が所定値（きわめて短い時間）以上である」ことを上記実施例のレガート条件に追加してもよい。これは、きわめて短い時間内にノートオンイベントが生じた場合は、和音が演奏されたものと見做し、それぞれのノートについて発音処理を行えるようにしたものである。
【００６５】
(7)また、上記実施例においては、ジョイントヘッド部を必ずピッチエンベロープで制御し、先行するノートのピッチと後続するノートのピッチとが滑らかに変化するように制御した。しかし、ピッチエンベロープによる制御は行わなくてもよい。あるいは、ボイスパラメータ１３０−１〜１３０−ｍ中にピッチエンベロープによる制御を行うか否かを表すパラメータを用意し、そのパラメータに従って、ピッチエンベロープによる制御を行うか否かを切り替えるようにしてもよい。特に、ピッチエンベロープによる制御を行わない方が効果的である場合とは、次のような場合である。すなわち、ジョイントヘッド部が自然楽器の音をサンプリングして作られたものであって、その自然楽器で音程を遷移させたときの振る舞いが「徐々にピッチが変化する」ものではない場合、例えばピッチ感の乏しいノイズ的な音を発する場合である。
【００６６】
(8)また、上記実施例は、電子楽器に対して本発明を適用した例であったが、本発明は電子楽器の形態に限らず、パーソナルコンピュータとアプリケーションソフトウェアとによって実現してもよく、カラオケ装置や、ゲーム装置、携帯電話等の携帯型通信端末に適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。また、電子楽器の形態を取った場合、その形態は鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態でもよい。また、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、MIDIや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。また、処理プログラムや処理に利用する各種データを外部記憶媒体から、或いは通信インターフェースを介して外部装置から電子楽器やパソコンに供給してもよい。通信インターフェース及び通信ネットワークは、有線のものに限らず無線でもよい。また双方を備えていてもよい。
【００６７】
(9)また、上記実施例は、音源として波形メモリ音源６を適用した例であったが、音源回路の方式はこれに限られるものではなく、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO＋VCF＋VCAのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。
このような音源回路は、専用のハードウェアを用いて構成してもよいし、DSPとマイクロプログラムとを用いて音源回路を構成してもよい。また、パーソナルコンピュータとソフトウェアのプログラムで音源機能を構成してもよく、これらの組み合わせでもよい。また、音源回路においては、１つの回路を時分割で使用して複数の発音チャンネルを形成してもよいし、１つの発音チャンネルを１つの回路で形成してもよい。
【００６８】
(10)また、上記実施例におけるＭＩＤＩインタフェース１４は、専用のMIDIインターフェースに限らず、RS-232C、USB（ユニバーサル・シリアル・バス）、IEEE1394（アイトリプルイー1394）等の汎用のインターフェースを用いてMIDIインターフェースを構成してもよい。この場合、MIDIメッセージ以外のデータをも同時に送受信するようにしてもよい。
【符号の説明】
【００６９】
２：表示器、４：設定操作子、５：外部記憶装置、６：波形メモリ音源（音源）、８：ＤＡコンバータ、１０：サウンドシステム、１２：バス、１４：ＭＩＤＩインタフェース、１６：演奏操作子、１８：タイマ、２０：ＣＰＵ、２２：ＲＯＭ、２４：ＲＡＭ、３０：波形メモリ、３２−１〜３２−ｎ：第１〜第ｎ発音チャンネル、３４：混合エフェクト処理部、３６：音源レジスタ、４０：波形読出部、４２：音色フィルタ部、４４：音量制御部、４６：各種ＬＦＯ部、４８：各種ＥＧ部、５０：ヘッド部、５２，５８，６６，７０，７４：ボディ部、５４，６０，７６：テイル部、５６，６２，６４，６８，７２，７８：ジョイントヘッド部、５６Ａ，６２Ａ，６４Ａ，６８Ａ，７２Ａ：ピッチエンベロープ、１００：発音管理データ、１０２：ボイスパラメータ参照情報、１０４：最終ノートオン時刻、１０６：管理中ノートリスト、１０８−１〜１０８−ｒ：ノート情報、１１０−１〜１１０−ｒ：ノート番号、１１２−１〜１１２−ｒ：発音チャンネル情報、１３０−１〜１３０−ｍ：ボイスパラメータ、１３２：ジョイントヘッド長短閾値、１３４：ジョイントヘッドＩＤテーブル、１３６：その他ボイスパラメータ、１４０：エレメント群、１４２：ヘッドエレメント、１４４：ボディエレメント、１４６：テイルエレメント、１４８：ジョイントヘッドエレメント群、１５０−１〜１５０−ｐ：波形データ。
【図１】
0005505013.tif 000002
【図２】
0005505013.tif 000003
【図３】
0005505013.tif 000004
【図４】
0005505013.tif 000005
【図５】
0005505013.tif 000006
【図６】
0005505013.tif 000007
【図７】
0005505013.tif 000008
【図８】
0005505013.tif 000009
【図９】
0005505013.tif 000010
【図１０】
0005505013.tif 000011
【図１１】
0005505013.tif 000012
【図１２】
0005505013.tif 000013
【図１３】
0005505013.tif 000014