(57)【特許請求の範囲】
【請求項１】
音色の時間的変化を所定の順序で実現する複数の波形データからなる波形データユニットを記憶する記憶手段と、
ビブラートの深さを制御する深さ制御情報を取得する取得手段と、
１つの前記波形データユニットにおける前記複数の波形データを前記所定の順序で順次切り換えて読み出す第１の波形切換制御と、前記所定の順序とは逆の順序で順次切り換えて読み出す第２の波形切換制御とを交互に繰り返して前記複数の波形データを読み出す波形読み出し手段であって、前記波形読み出し手段は前記取得された深さ制御情報に基づき前記波形データユニットの中から使用する波形データを選択するものと、
前記波形読み出し手段により読み出された波形データに基づき、音色が時間的に変化する持続的楽音の波形データを生成する波形生成手段であって、前記波形生成手段は前記選択された波形データ数に応じて波形の切り換えタイミングを変えて波形合成することによりビブラートの深さを制御するものと
を具備する楽音合成装置。
【請求項２】
前記第１の波形切換制御においては、前記１つの波形データユニットの中から選択された所定数の波形データを前記所定の順序で順次切り換えて読み出し、前記第２の波形切換制御においては、前記１つの波形データユニットの中から選択された所定数の波形データを前記所定の順序とは逆の順序で順次切り換えて読み出す、請求項１に記載の楽音合成装置。
【請求項３】
前記記憶手段は、音色が時間的に周期変化するビブラート１周期分の波形データから、任意の音色変化の区間内において音色が変化する箇所毎に１乃至複数周期分の波形データを取り出し、該取り出した波形データをユニット化して１つの波形データユニットに記憶することを特徴とする請求項１又は２に記載の楽音合成装置。
【請求項４】
前記記憶手段は、前記波形データユニットをダイナミクス値に対応づけて記憶してなり、
ダイナミクス値を取得する取得手段と、
前記取得したダイナミクス値に対応する波形データユニットを特定する特定手段とをさらに具える請求項１乃至３のいずれかに記載の楽音合成装置。
【請求項５】
少なくとも時間的に音色が変動する特性を実現する複数の波形データを含むユニットを記憶するメモリを使用して、コンピュータに、
音色の時間的変化を所定の順序で実現する複数の波形データからなる波形データユニットを記憶する手順と、
ビブラートの深さを制御する深さ制御情報を取得する手順と、
１つの前記波形データユニットにおける前記複数の波形データを前記所定の順序で順次切り換えて読み出す第１の波形切換制御と、前記所定の順序とは逆の順序で順次切り換えて読み出す第２の波形切換制御とを交互に繰り返して前記複数の波形データを読み出す手順であって、当該手順は前記取得された深さ制御情報に基づき前記波形データユニットの中から使用する波形データを選択するものと、
前記波形データを読み出す手順により読み出された波形データに基づき、音色が時間的に変化する持続的楽音の波形データを生成する手順であって、当該手順は前記選択された波形データ数に応じて波形の切り換えタイミングを変えて波形合成することによりビブラートの深さを制御するものと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、波形メモリ等に記憶した波形サンプルデータに基づいて楽音あるいは音声若しくはその他任意の音を合成する楽音合成装置及びプログラムに関する。特に、音の持続する持続音部において周期的な音色変化を含む奏法に従う楽音波形を、音色不連続感を与えることのないように高品質に合成する楽音合成装置及びプログラムに関する。
【背景技術】
【０００２】
波形メモリにおいて、ＰＣＭ（パルス符号変調）又はＤＰＣＭ（差分ＰＣＭ）又はＡＤＰＣＭ（適応差分ＰＣＭ）等の任意の符号化方式で符号化した波形サンプルデータを記憶しておき、これを所望のピッチに対応して読み出すことにより楽音を合成する、所謂「波形メモリ読み出し」による楽音合成装置は既に公知である。この場合、或る１つのノートに対応する１つの楽音の発音中にそのピッチ及び音色が周期的に微妙に又は複雑に変化する例えばビブラート奏法などで楽音を再生する際には、従来の典型例としては、ピッチ変調のかかっていない波形を使用し、リアルタイムに入力されるピッチ変調情報に従って前記波形の読み出しピッチを変調すると共に、該読み出した波形をフィルタ処理することにより適当な音色制御を行いながら楽音合成するようにしている。これに対して、実際の自然楽器の演奏に基づいてサンプリングした連続的波形のビブラート１周期の範囲の中から、分散的に複数の波形を取り出して、該取り出した複数波形それぞれをテンプレート波形として記憶しておき、楽音再生時にこれらのテンプレート波形を読み出し、該読み出したテンプレート波形をクロスフェード合成することによってビブラート１周期分の波形合成を行うと共に、前記テンプレート波形を所定の順に従って順々に切り替えながら読み出すことを繰り返し行うことによって（この明細書では、ループ読み出しと呼ぶ）、複数ビブラート周期にわたる波形をより高品質に合成するようにしている。例えば、下記に示す特許文献１に記載されている発明がその一例である。
【特許文献１】特開2000−122664号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１に示されたような従来の装置においては、例えば周期的に多様な音色変化を伴うビブラート音などを合成する場合に、実際の自然楽器での演奏に比較すると、ユーザに対して音色に不連続感を感じさせてしまう楽音が合成されることがある。すなわち、楽音再生時に使用するテンプレート波形を順々にループ読み出しする場合には、最後に読み出すべきテンプレート波形が読み出されると最初に読み出すべきテンプレート波形に戻るようにして波形の切り替えが行われており、そうした箇所では本来隣接していた波形を順次に読み出すそれまでの波形切り替えに伴う微妙な音色変化に比べると、本来ならば隣接していない最後と最初に読み出すべき各波形を連続的に読み出して波形の切り替えが行われることになるので、そうした箇所では急激な音色変化が生じ易くなっている。特に、ビブラート１周期において音色が周期的に多様に変化するビブラート奏法やダイナミクスが減衰又は増加するビブラート奏法などでは、音色の移り替わりにおいて急激な音色の変化が顕著に現れやすい。そうすると、楽音の持続音部でありながら音色の微妙な又は複雑な時間変化を表現した高品質な楽音を合成することができず、従ってユーザに対して音色変化の周期的な連続性が途切れているような印象（言いかえると音色の不連続感）を与える楽音が合成されてしまうこととなり非常に都合が悪い、という問題点があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、楽音の持続音部において音色の不連続感を発生させることのない、音色の周期的な時間変化特性をもつ高品質な楽音を合成することのできるようにした楽音合成装置及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
本発明に係る楽音合成装置は、音色の時間的変化を所定の順序で実現する複数の波形データからなる波形データユニットを記憶する記憶手段と、ビブラートの深さを制御する深さ制御情報を取得する取得手段と、１つの前記波形データユニットにおける前記複数の波形データを前記所定の順序で順次切り換えて読み出す第１の波形切換制御と、前記所定の順序とは逆の順序で順次切り換えて読み出す第２の波形切換制御とを交互に繰り返して前記複数の波形データを読み出す波形読み出し手段であって、前記波形読み出し手段は前記取得された深さ制御情報に基づき前記波形データユニットの中から使用する波形データを選択するものと、前記波形読み出し手段により読み出された波形データに基づき、音色が時間的に変化する持続的楽音の波形データを生成する波形生成手段であって、前記波形生成手段は前記選択された波形データ数に応じて波形の切り換えタイミングを変えて波形合成することによりビブラートの深さを制御するものと具備する。
【０００６】
本発明によると、音色の時間的変化を所定の順序で実現する複数の波形データからなる波形データユニットを記憶しておき、１音の持続音部にあたる範囲の楽音を生成する際に、１つの前記波形データユニットにおける前記複数の波形データを前記所定の順序で順次に切り換えながら読み出す。前記所定の順序での複数の波形データの読み出しが終了すると、次に前記所定の順序とは逆の順序で波形データを順次に切り換えながら読み出す。前記逆の順序での複数の波形データの読み出しが終了すると、再度前記所定の順序に従って、さらにそれが終了するとまた逆の順序に従って、すなわち、前記所定の順序と前記所定の順序とは逆の順序とを交互に繰り返して、前記波形データユニット内の複数の波形データを順次に切り換えながら読み出す。前記読み出す波形データは、取得したビブラートの深さを制御する深さ制御情報に基づき前記波形データユニットの中から使用する波形データとして選択される。そして、前記読み出された複数の波形データに基づき波形合成を行って、音色が時間的に変化する持続的楽音の波形データを生成する。この際には、前記選択された波形データ数に応じて波形の切り換えタイミングを変えて波形合成することによってビブラートの深さを制御する。このように、予め記憶しておいた波形データユニットから複数の波形データを繰り返し読み出す際に、読み出し順を互いに逆順になるようにして切り換えながら波形データを読み出すと、従来みられたような音色変化の大きな波形データに飛び越して波形データを読み出すことがない。特に、徐々に音量が増加あるいは減少する複数周期分のビブラート波形（元波形）をユニット単位に分割し、音量変化を伴うビブラート音の合成時において前記１ユニット全域を従来のように先頭から繰り返し使用する場合には、前記元波形と反対向きに音量変化（増加又は減少）させながら楽音合成すると大きな音色差を発生しうるが、上記したように読み出し順を互いに逆順になるように切り換えながら使用すれば比較的に小さな音色差しか発生しえない。そして、深さ制御情報に基づき選択される波形データの数に応じてビブラートの深さが制御されることによって、ビブラート奏法などの音色の時間的変化を忠実に表現した楽音を高品質に合成することができるようになる。
【０００７】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【０００８】
本発明によれば、音色の時間的変化を実現する波形データからなる波形データユニットから楽音合成に使用すべき波形データを読み出す際に、所定の順序で繰り返し読み出しするループ読み出し制御を行わずに、前記所定の順序と前記所定の順序とは逆の順序とを交互に繰り返して読み出しする往復読み出し制御を行い、該読み出した波形データに基づいて音色が時間的に変化する持続的楽音の波形データを生成するようにしたことから、楽音合成時における急激な音色変化を防ぐことができ、従って周期的な音色変化を忠実に表現した楽音を高品質に合成することができるようになる、という効果が得られる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１０】
図１は、この発明に係る楽音合成装置を適用した電子楽器のハードウエア構成例を示すブロック図である。ここに示す電子楽器は、演奏者による演奏操作子５の操作に伴い演奏進行に応じて供給される演奏情報（ノートオンイベントやノートオフイベントなどの演奏イベントデータ、ダイナミクス情報やピッチベンド情報あるいはビブラートスピード情報・ビブラートデプス情報などの各種コントロールデータを含む）に基づいて電子的に楽音を発生させたり、あるいは演奏進行順に順次に供給される予め作成済みの演奏情報に基づいて自動的に楽音を発生する楽音合成機能を有する。また、前記楽音合成機能の実行時においては、１音のうち音が連続する部分である持続音部（ボディ部とも呼ぶ）について、演奏情報に含まれるダイナミクスに基づき新たに使用すべき波形サンプルデータ（以下、単に波形データとも呼ぶ）の選択を行い、該選択された波形データに従って楽音を合成することにより、前記持続音部の楽音として特にビブラート奏法などの楽音を高品質に再現することのできるようにしている。こうした持続音部に対する楽音合成処理の詳細な説明については、後述する。
【００１１】
なお、この実施例に示す電子楽器はここに示す以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。また、音源としては、例えば様々な楽器毎の特有な奏法に対応する波形データとして、アタック部、リリース部、持続音部あるいはジョイント部などの１音についての一部区間において所定の奏法に対応した波形全体を記憶しておき（これを奏法モジュールと呼ぶ）、これらを時系列的に複数組み合わせることで１音又は連続する複数音の楽音を形成することにより、自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した奏法などのリアルな再現とその制御を目的としたAEM（Articulation Element Modeling）と称する楽音波形制御技術を用いた音源（所謂AEM音源）を用いた場合を例にして説明する。
【００１２】
図１に示した電子楽器はコンピュータを用いて構成されており、そこにおいて、上記したような楽音合成機能を実現する各種の楽音合成処理（後述の図４に示す「ビブラートボディ合成処理」など）は、コンピュータが各々の処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。勿論、これらの各処理はコンピュータソフトウエアの形態に限らず、DSP（ディジタル・シグナル・プロセッサ）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。
【００１３】
本実施例に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、通信バス１Ｄ（例えば、データ及びアドレスバスなど）を介してＲＯＭ２、ＲＡＭ３、外部記憶装置４、演奏操作子５、パネル操作子６、表示器７、音源８、インタフェース９がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。すなわち、タイマ１Ａは時間間隔を計数したり、所定の演奏情報に従って楽曲を演奏する際の演奏テンポを設定したりするためのテンポクロックパルスを発生する。このテンポクロックパルスの周波数は、パネル操作子６の中の例えばテンポ設定スイッチ等によって調整される。このようなタイマ１ＡからのテンポクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられる。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００１４】
ＲＯＭ２は、ＣＰＵ１により実行される各種プログラム、あるいは波形メモリとして様々な楽器毎の特有な奏法（本実施例では、特に周期的なピッチ及び音色の時間変化を伴うビブラート奏法など）に対応する波形データ等の各種データを格納するものである。ＲＡＭ３は、ＣＰＵ１が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。外部記憶装置４は、自動演奏の元となる演奏情報や奏法に対応する波形データなどの各種データや、ＣＰＵ１により実行あるいは参照される「ビブラートボディ合成処理」（図４参照）などの各種制御プログラム等を記憶する。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置４（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置４はハードディスク（HD）に限られず、フレキシブルディスク（FD）、コンパクトディスク（CD）、光磁気ディスク（MO）、あるいはDVD（Digital Versatile Disk）等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
【００１５】
演奏操作子５は楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子５は演奏者自身の手弾きによる楽音のマニュアル演奏のために使用できるのは勿論のこと、自動演奏対象とする予め用意されている演奏情報を選択するなどの入力手段として使用することもできる。勿論、演奏操作子５は鍵盤等の形態に限らず、楽音の音高を選択するための弦を備えたネック等のような形態のものなど、どのようなものであってもよいことは言うまでもない。パネル操作子（スイッチ等）６は、例えば自動演奏対象とする演奏情報を選択するための演奏情報選択スイッチ、演奏の際に使用する音色・効果などの各種演奏パラメータを設定する設定スイッチ等、各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示器７に表示された各種画面の位置を指定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。表示器７は例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイであって、上記スイッチ操作に応じた各種画面を表示するのは勿論のこと、演奏情報や波形データなどの各種情報あるいはＣＰＵ１の制御状態などを表示することもできる。演奏者は該表示器７に表示されるこれらの各種情報を参照することで、演奏の際に使用する各種演奏パラメータの設定や自動演奏曲の選択などを容易に行うことができる。
【００１６】
音源８は例として複数のチャンネルで楽音信号の同時発生が可能であり、通信バス１Ｄを経由して与えられた演奏情報を入力し、この演奏情報に基づいて楽音を合成して楽音信号を発生する。ここに示す電子楽器においては、演奏情報内のダイナミクス情報に対応する波形データがＲＯＭ２や外部記憶装置４などから読み出されると、該読み出された波形データはバスラインを介して音源８に与えられて適宜バッファ記憶される。そして、音源８ではバッファ記憶された波形データを所定の出力サンプリング周波数に従い出力する。この音源８から発生された楽音信号は、図示しない効果回路（例えばDSP（Digital Signal Processor））などにより所定のディジタル信号処理が施され、該信号処理された楽音信号はサウンドシステム８Ａに与えられて発音される。
【００１７】
インタフェース９は該電子楽器と外部の演奏情報生成機器（図示せず）などとの間で各種情報を送受するための、例えばMIDIインタフェースや通信インタフェースなどである。MIDIインタフェースは、外部の演奏情報生成機器（この場合には、他のMIDI機器等）からMIDI規格の演奏情報を当該電子楽器へ供給したり、あるいは当該電子楽器からMIDI規格の演奏情報を他のMIDI機器等へ出力するためのインタフェースである。他のMIDI機器はユーザによる操作に応じてMIDI形式のデータを発生する機器であればよく、鍵盤型、ギター型、管楽器型、打楽器型、身振り型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってもよい。通信インタフェースは、例えばLANやインターネット、電話回線等の有線あるいは無線の通信ネットワーク（図示せず）に接続されており、概通信ネットワークを介して、外部の演奏情報生成機器（この場合には、サーバコンピュータ等）と接続され、当該サーバコンピュータから制御プログラムや演奏情報などの各種情報を該電子楽器に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置４等に制御プログラムや演奏情報などの各種情報が記憶されていない場合に、サーバコンピュータから各種情報をダウンロードするために用いられる。クライアントとなる電子楽器は、通信インターフェース及び通信ネットワークを介してサーバコンピュータへと制御プログラムや演奏情報などの各種情報のダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された各種情報を通信ネットワークを介して本電子楽器へと配信し、本電子楽器が通信インタフェースを介して各種情報を受信して外部記憶装置４等に蓄積することにより、ダウンロードが完了する。
【００１８】
なお、上記インタフェース９をMIDIインタフェースで構成した場合、該MIDIインタフェースは専用のMIDIインタフェースを用いるものに限らず、RS232-C、USB（ユニバーサル・シリアル・バス）、IEEE1394（アイトリプルイー1394）等の汎用のインタフェースを用いてMIDIインタフェースを構成するようにしてもよい。この場合、MIDIイベントデータ以外のデータをも同時に送受信するようにしてもよい。MIDIインタフェースとして上記したような汎用のインタフェースを用いる場合には、他のMIDI機器はMIDIイベントデータ以外のデータも送受信できるようにしてよい。勿論、演奏情報に関するデータフォーマットはMIDI形式のデータに限らず、他の形式であってもよく、その場合はMIDIインタフェースと他のMIDI機器はそれにあった構成とする。
【００１９】
図１に示した電子楽器においては、演奏者による演奏操作子の操作に伴い発生される演奏情報、あるいは予め用意されたSMF（Standard MIDI File）形式等の演奏情報に基づいて楽音を連続的に発生させることのできる楽音合成機能を有すると共に、該楽音合成機能の実行時において、演奏者による演奏操作子５の操作に伴う演奏進行に応じて供給される演奏情報（あるいは、シーケンサーなどから演奏進行順に順次に供給される演奏情報）に含まれるダイナミクス情報に基づいて、持続音部について新たに使用すべき波形データの選択を行い、該選択された波形データに従って楽音を合成するようにしている。そこで、こうした楽音合成機能の概要について、図２を用いて説明する。図２は、当該電子楽器が有する楽音合成機能を説明するための機能ブロック図である。図２において、図中の矢印はデータの流れを表すものである。
【００２０】
楽音合成機能の開始に伴い、まず奏法合成部Ｊ３に対して入力部Ｊ２から演奏情報が演奏進行順に順次に供給される。入力部Ｊ２としては、演奏者による演奏操作に応じて適宜に演奏情報を発生する演奏操作子５や、予めＲＯＭ２等に記憶した演奏情報を演奏進行順に供給するシーケンサー（図示せず）などの入力装置がある。こうした入力部Ｊ２から供給される演奏情報は、ノートオンイベントやノートオフイベント（これらを総称してノート情報と呼ぶ）などの演奏イベントデータと、ダイナミクスやピッチベンドあるいはビブラートスピード・ビブラートデプスなどのコントロールデータとを少なくとも含む。すなわち、入力部Ｊ２を介して入力されるダイナミクス情報には、演奏操作子５の演奏操作に基づきリアルタイムに発生されるもの（例えば、鍵押圧時のアフタータッチセンサ出力データなど）もあれば、予め記憶又はプログラムされた自動演奏情報に基づくものもある。
【００２１】
奏法合成部Ｊ３では演奏イベントデータやコントロールデータなどを受け取ると、例えばノート情報に対応する１音をアタック部、持続音部（ボディ部）、リリース部などの一部区間毎に区分したり、持続音部はどの時間から始まるかを特定したり、あるいはコントロールデータとして受け取った情報を用いてゲインやピッチの情報を生成したりするなどして、楽音を合成するために必要とされる各種情報を含む「奏法情報」を生成する。また、その際に、奏法合成部Ｊ３はデータベースＪ１（波形メモリ）にあるデータテーブルなどを参照して、例えば入力されたダイナミクス情報やピッチ情報に対応して持続音部に適用するのに最適なデータとしてビブラートユニット（後述する図３参照）を選択し、該選択したビブラートユニットを入力されたビブラートスピード・ビブラートデプスの各情報に基づいてさらに波形の加工を行うよう、こうした波形の加工に関する情報を該当する「奏法情報」に付加する。このようなビブラートボディに係る楽音合成処理については、後述する。楽音合成部Ｊ４では奏法合成部Ｊ３が生成した前記「奏法情報」に基づき、データベースＪ１から使用する波形データなどを適宜に読み出して、楽音合成を行うことで楽音が出力される。すなわち、楽音合成部Ｊ４では、「奏法情報」に従って波形データの切り替えを行いながら楽音合成を行う。
【００２２】
ここで、上述したデータベースＪ１（波形メモリ）に記憶されるデータのうち、持続音部に適用する波形データのデータ構造について、図３を用いて説明する。図３（ａ）はデータベースにおける持続音部に適用する波形データのデータ構造を示す概念図であり、図３（ｂ）はユニット単位に記憶される波形データの一実施例を示す概念図である。なお、図中において各波形データ下部には便宜的に波形番号（ユニットＡについてＡ１〜Ａ８、ユニットＢについてＢ１〜Ｂ８、ユニットＣについてＣ１〜Ｃ８）を付してある。
【００２３】
データベースＪ１においては、持続音部に適用する波形データとそれに関連するデータ群とを「ユニット」として記憶している。１つの「ユニット」は、楽音合成時において１つのかたまりとして処理できる波形単位である。図３（ａ）に示すように、各「ユニット」はダイナミクス値にそれぞれ対応付けられており、こうしたダイナミクス値に対応付けられた複数のユニットを１組として、各音高（図では便宜上Ｃ３、Ｄ３、Ｅ３のみ示している）毎に少なくとも１組ずつ記憶している。例えば、１つの名目的な音色（ピアノ等の楽器音色、つまり音色情報で選択可能な１つの音色）について、３５種の音高（音階音）のそれぞれに対応して、２０種のダイナミクス値に対応付けられたユニットを記憶するものとすると、データベース全体では当該音色について７００個（３５×２０）のユニットを記憶することになる。この「ユニット」として記憶される波形データは、同じ音高であっても各ダイナミクス値に対応する各ユニットのそれぞれが異なる音色上の特徴を持つ楽音波形（つまり波形形状が異なる楽音波形）からなるものとすることができる。なお、個別の音高（音階音）毎にこのようなユニットをそれぞれ記憶することなく、２又はそれ以上の音高（例えばＣ３とＣ＃３など）のグループに対応してこのようなユニットを記憶するようにしてもよい。
【００２４】
図３（ｂ）に示すように、データベースＪ１ではビブラート１周期（図示において一点鎖線で区切られた区間Ａ〜Ｃのそれぞれ）にわたる複数周期からなる波形データ（ビブラート付与された波形データ）のうち、多様に音色変化する複数の一部波形を１「ユニット」（これをビブラートユニットと呼ぶ）として使用する（記憶する）。ここでは、ビブラート奏法の楽音を合成する場合において、ダイナミクス違いの各ユニットは１音の演奏として互いに接続して合成される可能性もあることを考慮して、ダイナミクスが異なること以上の音質の違いがないことが望ましい。よって、データベースの元とする波形データの録音時には、音量が増加あるいは減少するような演奏をもとにして波形データを生成するようにするとよい。ここではその一例として、音量を減少させながらビブラート奏法されている演奏を元に波形データを生成したものを示している。
【００２５】
この実施例に示すビブラートユニットの波形データは、（オリジナルのビブラート波形同様に）ビブラート１周期の間で音色が微妙に又は複雑に周期的に時間変化している代表的な波形データのうち（勿論その各周期毎の波形ピッチも図示のように変化（ビブラート）している）、例えばビブラート１周期の中でピッチが最大となってからピッチが最小となるまでの区間を音色が変化している代表的な領域として採用し、前記区間内にある代表的な音色の波形データ（区間ＡについてＡ３〜Ａ７、区間ＢについてＢ３〜Ｂ７、区間ＣについてＣ３〜Ｃ７）を１つのビブラートユニットの波形データとして記憶する。すなわち、名目的な音色に対応付けられた所定の基準ピッチからのピッチずれが０セント（つまりピッチずれなし）から始まるビブラート１周期の波形データのうち、中央付近（ビブラート半周期辺り）のピッチずれの最も小さい波形データ（基準波形）を基準として、該基準波形の音色と音色差の小さいものから順に波形データを取り出し、該取り出した複数の波形データと基準波形とを１つのビブラートユニットに記憶する。このようにすると、ピッチが同じであってかつ音色が同じものについては、代表的な波形が１つのみビブラートユニットに記憶されることになる。
【００２６】
図３（ｂ）に示す例では、ビブラートユニットＡとして波形番号Ａ１とＡ５、波形番号Ａ２とＡ４、波形番号Ａ６とＡ８の波形についてはピッチ及び音色が似ていることから、波形番号Ａ１，Ａ２，Ａ８の波形については記憶しないでよい。したがって、この例ではビブラートユニットＡにおいて波形番号Ａ５の波形データを中心に５つの多様に変化する音色の波形データが存在するのみであり、従来と比べてデータ量が少なくて済むという利点がある。このようなビブラートユニットが、上述のように、同一の名目的な音色（例えばバイオリンのビブラート奏法のような奏法音色）につき、各種音高毎に複数のダイナミクス値に対応してそれぞれ記憶されている。なお、この明細書では１ビブラートユニットの波形データとして記憶された複数の波形のうち、ピッチずれが０セント（ピッチずれなし）又は０セントに最も近い波形データを「基準波形」と呼んで他の波形データと区別する。この実施例では、波形番号「Ａ５」が付された波形データが基準波形に該当する。
【００２７】
上記データベースＪ１において、各「ユニット」毎に波形データと共に付加的に記憶されるデータ群としては、例えばその記憶しているオリジナルの波形データのダイナミクス値やピッチ情報（正規の音高ピッチ及びそれに対するピッチずれを示す情報）などの情報がある。さらに、「ビブラートユニット」においては、ビブラート１周期の情報としてユニットの長さや平均パワー値などの情報が記録される。こうしたデータ群は、「データテーブル」として一括管理できるようにしている。
【００２８】
なお、ビブラートユニット内の各波形データは１周期波形に限らず、複数周期にわたる波形を記憶するようにしてもよい。また、音量が減少する又は増加するなど変化する一連のビブラート波形からではなく、音量一定の一連のビブラート波形から適宜の波形データを取得して記憶するようにしてもよい。あるいは、複数の波形を集めた波形セットから適宜の波形データを取得して記憶するようにしてあってもよい。このような場合、波形セットの波形はビブラート波形に限らない。また、基準波形は０セントでなくてもよい。
【００２９】
次に、「ビブラートボディ合成処理」について、図４を用いて説明する。図４は、「ビブラートボディ合成処理」の一実施例を示したフローチャートであり、当該処理は、演奏開始と共に該電子楽器におけるＣＰＵ１により割り込み処理として例えば１ｍｓ（ミリ秒）毎に実行される。この「ビブラートボディ合成処理」は、演奏者の操作に応じてあるいは演奏情報などに応じて、楽音の持続音部を「ビブラートボディ」つまり１つの楽音の発音中にそのピッチ及び音色が周期的に微妙に又は複雑に変化する特性で楽音を合成するよう指示されたモードにおいて実行される処理である。なお、楽音のアタック部の波形は、図示しないアタック部波形合成処理によって別途行われるようになっており、このアタック部の波形合成処理に引き続いて、ここに示す「ビブラートボディ合成処理」が行われる。「ビブラートボディ合成処理」においては、ノート情報によって発生すべき楽音の音高（ノート）が指定され、該音高と入力ダイナミクス値に応じて選択された「ビブラートユニット」の波形データを自動的に再生することでビブラートの付与された楽音波形の生成を行う。従って、自動演奏データに基づきビブラート音を発生するような場合に有利である。
【００３０】
なお、この「ビブラートボディ合成処理」においては、追って詳しく説明するように、「ビブラートユニット」に基づき再生されるビブラート音のビブラートスピード及びビブラートデプスはそれぞれの制御情報によって可変制御することができる。勿論、ピッチベンド情報に応じて当該ビブラート音全体をピッチシフトすることができることは言うまでもない。また、この「ビブラートボディ合成処理」では、入力ダイナミクス値によるユニット選択は、所定時間間隔を計測することによって行われるのではなく、「ビブラートユニット」の１サイクル分（例えばビブラート１周期分）の再生が終わるごとに行われる。すなわち、「ビブラートユニット」の１サイクル分の再生中は、入力ダイナミクス値の変化はユニット選択に効力を及ぼさない。
【００３１】
図４において、ステップＳ１では、現在合成中の波形（アタック部波形）がアタック部の終端が到来したか否か、又はアタック部の終端が到来した後の持続音部の波形合成が既に開始されており、現在合成中の持続音部波形として使用されているビブラートユニットの終端に到達したか否かを判定する。アタック部の終端に到達していない又は現在使用中のビブラートユニットの終端に到達していないと判定した場合には（ステップＳ１のＮＯ）、当該処理を終了し、次の割り込みまでこの図４に示した処理が行われない。つまり、アタック部の終端のタイミングまでの間においてはアタック部の波形データに基づきアタック部の楽音合成が行われ、この「ビブラートボディ合成処理」は実質的には行われない。また、アタック部以降においては、ビブラートユニットの１サイクル分の波形データの再生途中においては、該再生中のビブラートユニットを変更する処理を行うことなく、次の割り込み時刻（１ｍｓ後）まで待つ。したがって、その間については入力ダイナミクス値に応じたビブラートユニットの切り替えが行われない。
【００３２】
他方、アタック部の終端が到来した又は現在使用中のビブラートユニットの終端が到来した場合には（ステップＳ１のＹＥＳ）、現在の最新の入力ダイナミクス値を取得する（ステップＳ２）。ステップＳ３は、予め取得済みのノート情報と前記取得した入力ダイナミクス値に応じてデータベースを参照し、データベースから該当するビブラートユニットを特定する（詳しくは後述する図６参照）。ステップＳ４は、特定されたビブラートユニットの波形データの時間的な配置位置やデータ読み出し順などを決定すると共に（詳しくは後述する図５及び図７参照）、ビブラートユニットを入力されたピッチベンド情報、ビブラートスピード及びビブラート深さなどの情報に基づき加工して、奏法情報を生成する。ここで、加工とは、例えば入力されたピッチベンド情報に応じて当該選択されたビブラートユニットの波形ピッチをまるごとピッチシフトしたり、入力されたビブラートスピード情報に応じてビブラート周期を増／減する設定を行ったり、あるいは入力されたビブラートデプス情報に応じてビブラート深さを設定したりするなどである。こうしたビブラート周期の増／減及びビブラート深さの設定については、後述する（図９及び図１０参照）。ステップＳ５は、生成された奏法情報に従って楽音を合成する。
【００３３】
なお、図４に示した例では、ステップＳ４及びＳ５の処理は、ステップＳ１がＹＥＳに分岐したときに１回だけ実行されるようになっており、入力ピッチベンド情報、ビブラートスピード及びビブラートデプスなどの情報の取り込みは入力ダイナミクス値の取り込みと同じタイミングで行われる。しかし、これに限らず、１ｍｓ又はその他適宜の割込み周期で、入力されたピッチベンド情報、ビブラートスピード及びビブラートデプスなどの情報の変化を随時チェックし、該情報の変化に応じてビブラートの設定変更を随時行うようにしてもよい。その場合は、例えば、図４において、アタック部の終端に達した後でかつビブラートユニットの再生中に、入力ピッチベンド情報、ビブラートスピード及びビブラートデプスなどの情報が変化したか否かをチェックするようにステップＳ１の処理を変更し、入力ピッチベンド情報、ビブラートスピード及びビブラートデプスなどの情報が変化したならばステップＳ４を実行するように、処理の流れを一部変更すればよい。
【００３４】
次に、上述した「ビブラートボディ合成処理」（図４参照）において実行する「ユニット内波形選択処理」について説明する。図５は、「ユニット内波形選択処理」の一実施例を示すフローチャートである。
【００３５】
ステップＳ１１は、入力されたビブラート速度指定（ビブラートスピード値：vibSpeed）に従って、ビブラートユニットの全長つまり当該ビブラートユニットを適用してのビブラート音の合成時間長（ユニット合成長：UnitL）を決定する。このユニット合成長の決定は、予め用意されたビブラートスピード毎にユニット合成長が対応付けられた所定のテーブル（unitL〔vibSpeed〕）等による。ステップＳ１２は、ビブラート深さ指定（ビブラートデプス値：vibDepth）に従って、楽音合成に使用する波形の範囲数（nUseHT）を決定すると共に、またユニット合成長を実現するために必要とされる配置する波形数（nPosHT）を決定する。ここで、「nNumHT」は当該ビブラートユニットが持つ波形数である。すなわち、ビブラートデプス情報に従って、ユニット内の波形データのうち楽音合成に使用すべき波形データの数は変化する。ステップＳ１３は、初期設定を行う。初期設定としては、使用する波形範囲のうち最初の波形とするスタート波形（startHT）、使用する波形範囲のうち最後の波形とするエンド波形（endHT）をそれぞれ設定すると共に、使用する波形データの波形番号（HTuse）を基準波形の波形番号に、変数ｎを「0」に、変数addを「-1」にそれぞれ初期セットする。
【００３６】
ステップＳ１４は、変数ｎが前記決定した配置する波形数（nPosHT）よりも小さいか否かを判定する。変数ｎが大きい場合には（ステップＳ１４のＮＯ）、当該処理を終了する。他方、変数ｎが小さい場合には（ステップＳ１４のＹＥＳ）、ｎ個目に配置する波形のビブラートユニット先頭からの位置（pos〔n〕）をユニット合成長（UnitL）及び配置する波形数（nPosHT）に基づき決定する（ステップＳ１５）。ここでは、時間的に等間隔に各波形を配置するように、ビブラートユニット先頭からの位置が順次に決定されるようにしている。ステップＳ１６は、ｎ個目に配置する波形として、ビブラートユニット内の波形のうち使用する波形として選択された中から１つの波形番号（tim〔n〕）を決定する。そして、ステップＳ１７は、変数HTuseがスタート波形（startHT）であるならば変数addに「+1」をセットし、変数HTuseがエンド波形（endHT）であるならば変数addに「-1」をセットする。ステップＳ１８は、変数ｎに「1」を加算し、また使用する波形データの波形番号（HTuse）に変数addを加算する。上記ステップＳ１５〜ステップＳ１８の処理を終了すると、上記ステップＳ１４の処理に戻る。
【００３７】
ここで、上記「ビブラートボディ合成処理」（図４参照）による持続音部（ボディ部）におけるビブラート奏法の楽音合成手順について、図６〜図８を用いて順に説明する。図６は、「ビブラートボディ合成処理」による楽音合成手順のうち、ユニット選択処理（図４のステップＳ３参照）について模式的に説明するための概要図である。ここで、図６（ａ）は入力ダイナミクス値の時間変化を、図６（ｂ）は入力ダイナミクス値に対応してデータベース内に記憶されているビブラートユニットの存在を、図６（ｃ）は入力ダイナミクス値に応じて選択される各ビブラートユニットの時系列的組み合わせを、それぞれ例示したものである。なお、この例では、音高「Ｃ３」に対応する楽音を生成するものとし、波形生成前に当該発生すべき音高「Ｃ３」に対応する楽音に関してのノート情報を取得済みであることは言うまでもない。
【００３８】
図６に示すように、例えば時刻ａがアタック部の終端である場合、そのときの入力ダイナミクス値を取得し、既に取得済みの音高「Ｃ３」に関するノート情報と前記新たに取得した入力ダイナミクス値とに基づき、データベースに記憶された該当音高「Ｃ３」に対応付けられた複数のビブラートユニット（ここではユニットＡ〜ユニットＦの６個のユニット）の中から、前記取得した入力ダイナミクス値に対応するビブラートユニットＢを選択して奏法情報を生成する。該選択した奏法情報に基づいてビブラートユニットＢ内の複数の波形データを適宜に繰り返し読み出して（詳しくは後述する）、ビブラート奏法での持続音部の楽音波形を生成する。なお、この際にビブラートユニットＢ内の複数の波形をクロスフェード合成するだけでなく、先行するアタック部の終端の波形と後続する該ビブラートユニットＢの最初の波形とを適宜クロスフェード合成するとよい。波形をクロスフェード合成すると、滑らかに波形を切り替えることができる。
【００３９】
その後、時刻ｂで新たな入力ダイナミクス値を取得すると、該当する音高「Ｃ３」についての該新たに取得した入力ダイナミクス値に対応するビブラートユニットＥをデータベースから選択して奏法情報を生成する。該選択した奏法情報に基づいてビブラートユニットＥ内の波形データを適宜に繰り返し読み出して、ビブラートユニットＢにより実現される持続音部に後続する楽音波形を生成する。さらに時間が経過して時刻ｃにおいて新たな入力ダイナミクス値を取得すると、該当する音高「Ｃ３」のデータベースから該入力ダイナミクス値に対応するビブラートユニットＤを選択して奏法情報を生成する。該選択した奏法情報に基づいてビブラートユニットＤ内の波形データを適宜に繰り返し読み出し、ビブラートユニットＥにより実現される持続音部に後続する楽音波形を生成する。このようにして、「ビブラートボディ合成処理」では、入力されたダイナミクス情報に応じて使用するビブラートユニットを切り替え、ビブラートユニット内の波形データに従ってビブラート奏法された持続音部の楽音を合成するようにしている。なお、各ビブラートユニット内の複数の波形をクロスフェード合成するだけでなく、先行するビブラートユニットの最後の波形と後続する該ビブラートユニットの最初の波形についても適宜クロスフェード合成することは言うまでもない。また、クロスフェード合成を行う期間（所謂クロスフェード長）は例えば２５ｍｓ（ミリ秒）など適宜の時間であってよく、またこれに限らずもっと短くてもよいし、長くてもよい。
【００４０】
図７は、「ビブラートボディ合成処理」による楽音合成手順のうち、ユニット内波形選択処理（図５参照）について模式的に説明するための概要図である。ただし、この図７では、入力されるビブラートスピード及びビブラートデプスの各情報がとり得る値を「０〜１２７」までの整数とし、またユニット内の波形数が「５」であり、基準波形が波形番号「Ａ５」の波形である図３（ｂ）に示したような区間Ａに対応するビブラートユニットを用いた場合を例に説明する。図８は、「ビブラートボディ合成処理」により合成されるビブラート奏法の楽音波形の一実施例を示す概念図である。なお、比較のため、図７及び図８では便宜的に従来例も図示している。
【００４１】
上述した図５に示すユニット内波形選択処理に従うと、ビブラートデプス情報が最大値「１２７（最も深い場合に相当）」で入力されている場合には、ユニット内の波形データのうち使用する波形数（nUseHT）が「５」に、配置する波形数（nPosHT）が「８」にそれぞれ決定される（ステップＳ１２参照）。また、スタート波形（startHT）は「３」、エンド波形（endHT）は「７」となる（ステップＳ１３参照）。そして、まず最初に使用すべき波形データ（ｎ=０個目に配置する波形）として基準波形である波形番号「Ａ５」の波形が選択されて、これを適宜の時間位置に配置する（ステップＳ１５及びＳ１６参照）。その後、降順に波形番号「Ａ４」、「Ａ３」の波形データを使用すべき波形データに選択し、これを適宜の時間位置に配置する。スタート波形である波形データ「Ａ３」まで選択済みである場合には、今度は逆に昇順に波形番号「Ａ４」、「Ａ５」、「Ａ６」、「Ａ７」の各波形データを使用すべき波形データとして順次に選択し、それぞれを適宜の時間位置に配置する。エンド波形である波形データ「Ａ７」まで選択済みである場合には、再度降順に波形番号の波形データを順次に選択し、適宜の時間位置に配置する。ここでは、配置する波形数は８個に決定されていることから、波形番号「Ａ６」の波形データを使用する波形データの最後として適宜の時間位置に配置する。このようにして、波形番号「Ａ５」、「Ａ４」、「Ａ３」、「Ａ４」、「Ａ５」、「Ａ６」、「Ａ７」、「Ａ６」の計８個の波形データが順に読み出されるようにして配置されることになる（図８（ａ）参照）。すなわち、楽音合成時においては波形が実際に存在しない「Ａ１」「Ａ２」「Ａ８」の位置に対して、それぞれ「Ａ５」「Ａ４」「Ａ６」を代わりに使用する。
【００４２】
図７において矢印で図示するように、こうして配置された波形データは、ユニット内において基準波形を読み出し開始データとして、該基準波形に近い順から隣接する波形データを所定の順に降順又は昇順に交互に繰り返しながらあたかも往復（オルタネート）するようにして繰り返し読み出し制御されるようになっている。こうしたデータの読み出し制御は、ユニット内の各波形データを所定の読み出し順に従って最初から最後まで読み出し終えると、再度前記読み出し順に従って最初の波形データに戻って読み出しを開始する所謂「ループ読み出し」制御とは異なるデータの読み出し制御方法であり、この明細書では上記した読み出し制御方法を「オルタネート（往復）読み出し」制御と呼ぶ。なお、前記ユニットから読み出された波形データ同士をクロスフェード合成する場合など、同じ波形データを繰り返し使用するような場合には、従来知られているように、該波形データの先頭（例えば先頭アドレス）に常に戻るようにして、波形を繰り返し読み出しながら波形合成を行うことは言うまでもない（所謂１波ループクロスフェード方式）。
【００４３】
本発明に係る楽音合成装置によると、音量を変化させながら楽音を合成する場合における別のユニット内の波形データへと遷移したときの音色の不連続性を、音量を増加する場合と音量を減少する場合とで均一に分散することができる。すなわち、図８（ａ）に示すように、データベースとして記憶した際に利用した元波形（オリジナルのビブラート波形）と同じような減衰するダイナミクスの楽音を合成する場合には、ユニットの境目である波形番号Ａ６からＢ５、Ｂ６からＣ５への波形遷移といったように、元波形上での約ビブラート１周期分離れた位置の波形が合成時に隣接する。一方、図８（ｂ）に示すように、データベースとして記憶した際に利用した元波形（オリジナルのビブラート波形）と逆に増加するダイナミクスの楽音を合成する場合には、ユニットの境目である波形番号Ｃ６からＢ５、Ｂ６からＡ５への波形遷移といったように、元波形上での約ビブラート１周期分離れた位置の波形が合成時に隣接する。これに対して、従来の場合においては、データベースと同じ減衰するダイナミクスの楽音を合成した場合には、ユニットの境目で波形番号Ａ８からＢ１への波形遷移といったように元波形上で隣接していた音色の波形が合成時に隣接するので音色変化に変わりないが（図８（ａ）参照）、反対にデータベースとは逆の増加するダイナミクスの楽音を合成した場合には、ユニットの境目で波形番号Ｂ８からＡ１といったように元波形上において約ビブラート２周期分も離れた位置にある波形が合成時に隣接することになって大きな音色差が生ずる（図８（ｂ）参照）。
【００４４】
このように、本発明における楽音合成装置によっては、データベースと同じようなダイナミクスの動き（ダイナミクス減少又は増加）の楽音を合成する場合と、データベースとは逆のダイナミクスの動きの楽音を合成する場合とで、同じ程度に（元波形上での）離れた位置にある音色を隣接させて楽音合成することになるので、ユニットが変わるときに生ずる音色の不連続性を、同じユニットを用いても音量を増加する場合と音量を減少する場合とで均一に分散することができるようになる。そのため、徐々に音量が増加あるいは減少する複数周期分のビブラート波形を実際に楽器を使用して１回演奏して録音するだけで、稠密で互いに相性のよいダイナミクス違いのユニットを生成することができ、従来のようにダイナミクス違いの数に相当するだけダイナミクス一定での演奏を何回も繰り返し行ってダイナミクス違いのユニットを複数生成しなければならないといった手間を省くことができる。さらには、ユニットの段階が粗くなる又は不均一になりやすい、ユニット相互の音色連続性が損なわれ易いなどといった従来見られた不都合がなく有利である。
【００４５】
一方、一定のダイナミクスの楽音を合成する場合には、１つのユニットを繰り返し用いることから、ユニットの境目では例えばＢ６からＢ５への波形遷移といったように元波形上で隣接する位置にある波形が楽音合成時においても隣接することになる。この場合、従来では例えばユニットＢを用いる場合に波形番号Ｂ８からＢ１への波形遷移といったように元波形上で約ビブラート１周期離れた位置の波形が楽音合成時に隣接することになる。したがって、ダイナミクス一定の場合であっても、楽音の持続音部において音色の不連続感を発生させることのない、音色の周期的な時間変化特性をもつ高品質な楽音を合成することができるようになる。
【００４６】
次に、「ビブラートボディ合成処理」（図４参照）による楽音合成手順のうち波形加工処理について、波形加工処理例としてビブラートスピードを加工する場合について図９を用いて、ビブラートの深さを加工する場合について図１０を用いてそれぞれ具体的に説明する。
【００４７】
図９は、ビブラートスピードを加工する場合のビブラートユニットに対する加工手法を模式的に説明するための図である。図９（ａ）は予め取得済みのノート情報と取得した入力ダイナミクス値に応じて選択された元のビブラートユニットを示し、この元のビブラートユニットをそのまま再生した場合が基本のビブラートスピードであるとする。図９（ｂ）はビブラートスピードをそれよりも遅くする場合の波形合成例を示し、図９（ｃ）はビブラートスピードをそれよりも速くする場合の波形合成例を示す。図９（ａ）においては、理解しやすくするために、元のビブラートユニットにおける波形データが持つオリジナルの振幅エンベロープ及びピッチ変動状態も図示している。そして、図９（ｂ）、（ｃ）には、参考のために、ビブラートスピードの増／減調整に伴って時間軸方向に伸縮される振幅エンベロープ及びピッチ変動状態も示されている。
【００４８】
図９（ａ）に示す例では、元のビブラートユニットが波形番号Ａ３〜Ａ７の５個の波形データ（基準波形をＡ５とする）からなる例を示しており、各区間の波形データ（Ａ３〜Ａ７）が所定の時間間隔で順次に切り替えられ、かつ、複数周期づつ繰り返して読み出され、かつ、隣り合う区間の波形データ同士がクロスフェード合成される。なお、この場合、前述のように、１区間の波形データは、典型的には1周期波形からなるが、それに限らず、複数周期波形又は1周期未満の波形でもよい。ビブラートスピードを遅くする（ビブラート周期を長くする）場合は、図９（ｂ）に示すように、ビブラートユニットを構成する各区間の波形データ（Ａ３〜Ａ７）の順次切り替えの時間間隔を広くしてクロスフェード合成する。反対に、ビブラートスピードを速くする（ビブラート周期を短くする）場合は、図９（ｃ）に示すように、ビブラートユニットを構成する各区間の波形データ（Ａ３〜Ａ７）の順次切り替えの時間間隔を狭くしてクロスフェード合成する。なお、ビブラートユニット中のすべての区間の波形データ（Ａ３〜Ａ７）を使用したのでは、望みの短いビブラート周期が得られない場合は、適当な区間の波形データを間引きすればよい。
【００４９】
なお、合成される波形のピッチと振幅エンベロープは、元のビブラートユニットが持つものをそのまま使用してもよい。あるいは、図９（ｂ）、（ｃ）に示したような時間軸伸縮制御された振幅エンベロープ及びピッチ変動エンベロープを別途生成し、この生成した振幅エンベロープ及びピッチ変動エンベロープに従って、上記クロスフェード合成する波形データのピッチと振幅を更に制御するようにしてもよい。このようなピッチ及び振幅の時間軸伸縮制御は、本出願人が提案済の公知技術を使用することで実現できるので、詳細説明は省略する。
【００５０】
図１０は、ビブラートデプスを加工する場合のビブラートユニットに対する加工手法を模式的に説明するための図である。図１０（ａ）に予め取得済みのノート情報と取得した入力ダイナミクス値に応じて選択された元のビブラートユニットを示し、この元のビブラートユニットをそのまま再生した場合が基本のビブラート深さであるとする。図１０（ｂ）はビブラートデプスをそれよりも浅くした場合を示し、図１０（ｃ）はビブラートデプスをそれよりも深くした場合を示す。なお、この図１０においても、元のビブラートユニットが波形番号Ａ３〜Ａ７の５個の波形データからなる例を示しており、また振幅エンベロープ及びピッチ変動状態をあわせて図示している。
【００５１】
ビブラートユニットの持つビブラートの深さよりビブラートの深さを浅くする場合には、浅いピッチずれに相当する区間の波形データのみをビブラートユニットから選択するようにしてオルタネート読み出し制御し、該選択した波形データに基づき浅い深さのビブラート楽音波形を合成する。例えば、−５０セント〜０セント〜＋５０セントの範囲で変化するビブラートユニットを使用してその深さを２分の１の深さにする場合に、−２５セント〜０セント〜＋２５セントの範囲のピッチずれの波形データのみを使用するようにオルタネート読み出し制御を行い、それよりもピッチずれの大きい波形データは使用しない。図１０（ｂ）では、ビブラートユニット内の各区間の波形データのうち、ピッチが−２５セント〜０セント〜＋２５セントの範囲にある波形番号Ａ４〜Ａ６の波形データを使用し、それよりもピッチずれの大きい波形番号Ａ３、Ａ７の波形データは使用していないことが示されている。つまりは、５０セントのピッチ変動がある元波形の１/２の深さでピッチ変動するように指定された場合には、ユニット内の約半分の数の波形データを使用して楽音を合成する。さらにビブラートの深さをより浅くしたような場合には、図中において波形番号Ａ５の波形データ（０セント付近の波形）のみが選択される。
【００５２】
このように、ビブラートの深さを浅くする場合には、オリジナルのビブラート波形のピッチずれが０セントに近いピッチずれがあまりない波形データ（基準波形）から順に、使用すべき波形データが選択されるようにオルタネート読み出し制御し、該選択された波形データに基づき楽音合成する。これによると、元波形において音色変化の小さな隣接する波形が用いられるので、音色変化に唐突感を生むことなく楽音を生成することができるようになる。
【００５３】
反対に、ビブラートユニットの持つビブラートの深さより深くする場合には、図１０（ｃ）に示すように、ビブラートユニット内の全ての波形データ（Ａ３〜Ａ７）を使用するようにオルタネート読み出し制御し、かつ、ピッチずれが深くなるように加工したピッチ変動エンベロープに従って各区間の波形データのピッチをより高く又はより低くするようにしながら楽音合成すればよい。以上のようにして、ビブラートの深さを制御する場合には、ビブラートユニット内における複数の波形データをオルタネート読み出し制御する際に、繰り返し読み出しする対象の波形データを増減させて音色変化幅を変えるようにするとよい。
【００５４】
なお、これに限らず、当該ビブラートユニット内において浅いビブラートと深いビブラートの波形データなど各種の深さの波形データをそれぞれ予め記憶しておき、ビブラートデプス情報に応じていずれかの波形データを選択して（又は組み合わせてつまり補間して）用いるようにしてもよい。なお、図示のように、ビブラート深さを浅くした場合には振幅エンベロープの大小レベル変動幅が小さくなるように振幅エンベロープ制御し、他方、ビブラート深さを深くした場合には振幅エンベロープの大小レベル変動幅が大きくなるように振幅エンベロープ制御するとよい。
なお、入力ダイナミクスが変化しない場合には毎回同じビブラートユニットが選択され、さらに入力ピッチやビブラート・スピード／ビブラート・デプスが変化しない場合には同じスピード・深さでビブラートが合成されることになるが、別途うねりやゆらぎを追加すればより自然な楽音を合成することができる。このような制御は、本出願人が提案済の公知技術を使用することで実現できるので、詳細説明は省略する。また、使用する音色の選択範囲や使用する波形の数をビブラート周期に応じて変えるようにすると、より生成される楽音の単調さが軽減することができるのでよい。
【００５５】
なお、本発明において使用する波形データは、上述したような各種奏法に対応して「奏法モジュール」化されたものに限らず、その他のタイプのものであってもよい。また、各ユニットの波形データは、メモリに記憶したＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭのような適宜の符号化形式からなる波形サンプルデータを単純に読み出すことで生成されるようなものであってもよいし、あるいは、高調波合成演算やＦＭ演算、ＡＭ演算、フィルタ演算、フォルマント合成演算、物理モデル音源など、各種の公知の楽音波形合成方式を適宜採用したものであってもよいことは言うまでもない。すなわち、音源８における楽音信号発生方式は、いかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出す波形メモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してよい。このように、音源回路８の方式は波形メモリ方式、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ＋ＶＣＦ＋ＶＣＡのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。また、専用のハードウェアを用いて音源８を構成するものに限らず、ＤＳＰとマイクロプログラム、あるいはＣＰＵとソフトウェアを用いて音源回路８を構成するようにしてもよい。さらに、共通の回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、各発音チャンネルがそれぞれ専用回路で構成されるようなものであってもよい。
【００５６】
なお、上述した各楽音合成処理における楽音合成の方式としては、既存の演奏情報を本来の演奏時間到来前に先行取得しておき、これを解析して楽音を合成する所謂プレイバック方式であってもよいし、リアルタイムに供給された演奏情報に基づき楽音を合成するリアルタイム方式のどちらであってもよい。
なお、時系列的に順次選択され生成された複数のビブラートユニットの波形同士を接続する手法は、クロスフェード合成に限らず、例えば生成されたビブラートユニットの各波形同士をフェーダーによりミックスする手法などであってもよい。
【００５７】
なお、この楽音合成装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、演奏操作子、表示器、音源等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各機器を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケ装置や自動演奏ピアノのような自動演奏装置、ゲーム装置、携帯電話等の携帯型通信端末などに適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバコンピュータ側に持たせ、端末とサーバコンピュータとからなるシステム全体として所定の機能を実現するようにしてもよい。すなわち、本発明に従う所定のソフトウエア又はハードウエアを用いることによって、入力ダイナミクス値、ピッチ等に基づいて、データベースに記憶されたビブラートユニットの中から適宜に用いるユニットを切り替えながら楽音を合成することのできるようにしたものであればどのようなものであってもよい。
【００５８】
なお、ビブラートユニットから波形データを読み出す際に、必ずしも互いに隣り合う波形データを順に読み出すことに限らず、いくつかの波形データを飛ばしながらオルタネート読み出しするようにしてもよい。また、こうした場合には、昇順と降順とで読み出す対象の波形データを異ならせるようにしてあってもよい。ただし、昇順と降順とでは近接する音色変化に大きな違いのない波形データを読み出す。例えば、ビブラートユニットを便宜的に１〜１１の番号をピッチの大きさ順に割り振った１１個の波形データで構成し（６を基準波形とする）、そのうちの2と3、4と5、7と8、9と10とが互いに音色変化に大きな違いのない波形データであるとする。この場合には、「6,4,2,1（ピッチ最大）,3,5,6,7,9,11（ピッチ最小）,10,8,6,4,・・・」といったようにして波形データを切り換えて読み出すようにしてもよい。
【図面の簡単な説明】
【００５９】
【図１】この発明に係る楽音合成装置を適用した電子楽器のハードウエア構成例を示すブロック図である。
【図２】楽音合成機能を説明するための機能ブロック図である。
【図３】データベースに記憶される持続音部に適用する波形データを示す概念図であり、（ａ）はデータベースのデータ構造図、（ｂ）はビブラートユニットの一例を示す図である。
【図４】ビブラートボディ合成処理の一実施例を示したフローチャートである。
【図５】ユニット内波形選択処理の一実施例を示したフローチャートである。
【図６】ビブラートボディ合成処理による楽音合成手順のうちユニット選択について模式的に説明するための概要図である。
【図７】ビブラートボディ合成処理による楽音合成手順のうちユニット内波形選択について模式的に説明するための概要図である。
【図８】ビブラートボディ合成処理により合成されるビブラート奏法の楽音波形の一実施例を示す概念図である。
【図９】ビブラートスピードを加工する場合のビブラートユニットに対する加工手法を模式的に説明するための図である。
【図１０】ビブラート深さを加工する場合のビブラートユニットに対する加工手法を模式的に説明するための図である。
【符号の説明】
【００６０】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…外部記憶装置、５…演奏操作子（鍵盤等）、６…パネル操作子、７…表示器、８…音源、８Ａ…サウンドシステム、９…インタフェース、１Ｄ…通信バス、Ｊ１…データベース、Ｊ２…入力部、Ｊ３…奏法合成部、Ｊ４…楽音合成部
【図１】
0004826276.tif 000002
【図２】
0004826276.tif 000003
【図３】
0004826276.tif 000004
【図４】
0004826276.tif 000005
【図５】
0004826276.tif 000006
【図６】
0004826276.tif 000007
【図７】
0004826276.tif 000008
【図８】
0004826276.tif 000009
【図９】
0004826276.tif 000010
【図１０】
0004826276.tif 000011