(57)【特許請求の範囲】
【請求項１】
原音波形データからピッチの時間的軌跡を取得するピッチ取得手段と、
前記取得したピッチの時間的軌跡からピークの山と谷のそれぞれの時刻とピッチを抽出する抽出手段と、
前記抽出したピークの山と谷のそれぞれの時刻の差からビブラートの周期情報を算出するビブラート周期算出手段と、
前記抽出したピークの山と谷のそれぞれのピッチの差からビブラートの深さ情報を算出するビブラート深さ算出手段と、
前記算出したビブラートの周期情報とビブラートの深さ情報とを一組として、前記原音波形データの発音開始時間からの時刻とともに時系列データとして記録する記録手段と
を有する電子音楽装置。
【請求項２】
ビブラートの周期情報とビブラートの深さ情報とを一組として、原音波形データの発音開始時間からの時刻とともに時系列データとして記録する記録手段と、
発音指示を検出する発音指示検出手段と、
前記発音指示に応じて、時間の経過とともに前記記録手段から前記時系列データを読み出す読み出し手段と、
前記読み出した時系列データに含まれるビブラートの周期情報とビブラートの深さ情報とに応じて、ビブラート制御信号を生成するビブラート制御信号生成手段と、
前記発音指示に応じて楽音生成を開始するとともに、前記ビブラート制御信号に応じて楽音を変調する楽音生成手段と
を有する電子音楽装置。
【請求項３】
さらに、ビブラートの周期及び／又はビブラートの深さを制御するための制御信号を取得する制御信号取得手段と、
前記ビブラートの周期及び／又はビブラートの深さを制御するための制御信号に基づき、前記ビブラート制御信号のビブラートの周期及び／又はビブラートの深さを増減する増減手段とを有する請求項２記載の電子音楽装置。
【請求項４】
コンピュータに、
原音波形データからピッチの時間的軌跡を取得するピッチ取得手順と、
前記取得したピッチの時間的軌跡からピークの山と谷のそれぞれの時刻とピッチを抽出する抽出手順と、
前記抽出したピークの山と谷のそれぞれの時刻の差からビブラートの周期情報を算出するビブラート周期算出手順と、
前記抽出したピークの山と谷のそれぞれのピッチの差からビブラートの深さ情報を算出するビブラート深さ算出手順と、
前記算出したビブラートの周期情報とビブラートの深さ情報とを一組として、前記原音波形データの発音開始時間からの時刻とともに時系列データとして記憶手段に記録する記録手順と
を実行させるプログラム。
【請求項５】
コンピュータに、
発音指示を検出する発音指示検出手順と、
前記発音指示に応じて、時間の経過とともに、ビブラートの周期情報とビブラートの深さ情報とを一組として、前記原音波形データの発音開始時間からの時刻とともに時系列データとして記録する記録手段から前記時系列データを読み出す読み出し手順と、
前記読み出した時系列データに含まれるビブラートの周期情報とビブラートの深さ情報とに応じて、ビブラート制御信号を生成するビブラート制御信号生成手順と、
前記発音指示に応じて楽音生成を開始するとともに、前記ビブラート制御信号に応じて楽音を変調する楽音生成手順と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子音楽装置に関し、より詳しくは、楽音データにビブラートを付与するための楽音制御データを生成する電子音楽装置及び生成される楽音制御データに基づき楽音データにビブラートを付与する電子音楽装置に関する。
【背景技術】
【０００２】
従来、楽音にビブラートを付与する技術として、低周波発振器（ＬＦＯ）が生成する数Ｈz程度の変調波形によって楽音データのピッチを変調するものが知られている。しかし、単に、ＬＦＯにより楽音データのピッチを変調する方式では、ビブラートが不自然なものとなってしまう。
【０００３】
そこで、ビブラート楽音生成用の２系列の波形データをビブラート演奏された波形データを周波数分析にかけ、基本ピッチのビブラートの山の点と谷の点に基づき作成し、該作成した２系列の波形データの合成比率を変調波形によって制御することで、より自然なビブラート楽音を生成する技術が提案されている（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００７−２４８５５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のビブラート付与技術では、ユーザが巧みにリアルタイムコントローラ（モジュレーションホイール等）を操作しないと、ＬＦＯによる機械的なビブラートになることがある。或いは、コントローラの物理的な特性を反映したビブラートとなってしまい、実際の生楽器に似ていないものとなってしまう。
【０００６】
本発明の目的は、実際の楽器の演奏に近い自然なビブラートを実現することができる。電子音楽装置を提供することである。
【０００７】
本発明の他の目的は、ビブラートの深さやスピードを制御することができる電子音楽装置を提供することである。
【０００８】
本発明のさらに他の目的は、任意の長さのビブラートを付与することのできる電子音楽装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、電子音楽装置は、原音波形データからピッチの時間的軌跡を取得するピッチ取得手段と、前記取得したピッチの時間的軌跡からピークの山と谷のそれぞれの時刻とピッチを抽出する抽出手段と、前記抽出したピークの山と谷のそれぞれの時刻の差からビブラートの周期情報を算出するビブラート周期算出手段と、前記抽出したピークの山と谷のそれぞれのピッチの差からビブラートの深さ情報を算出するビブラート深さ算出手段と、前記算出したビブラートの周期情報とビブラートの深さ情報とを一組として、前記原音波形データの発音開始時間からの時刻とともに時系列データとして記録する記録手段とを有する。
【００１０】
また、本発明の他の観点によれば、電子音楽装置は、ビブラートの周期情報とビブラートの深さ情報とを一組として、前記原音波形データの発音開始時間からの時刻とともに時系列データとして記録する記録手段と、発音指示を検出する発音指示検出手段と、前記発音指示に応じて、時間の経過とともに前記読み出し手段から前記時系列データを読み出す読み出し手段と、前記読み出した時系列データに含まれるビブラートの周期情報とビブラートの深さ情報とに応じて、ビブラート制御信号を生成するビブラート制御信号生成手段と、前記発音指示に応じて楽音生成を開始するとともに、前記ビブラート制御信号に応じて楽音を変調する楽音生成手段とを有する。
【発明の効果】
【００１１】
本発明によれば、実際の楽器の演奏に近い自然なビブラートを実現することができる。
【００１２】
また、本発明によれば、ビブラートの深さやスピードを制御することができる。
【００１３】
さらに、本発明によれば、任意の長さのビブラートを付与することができる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の実施例による電子音楽装置５０のハードウェア構成を表すブロック図である。
【００１５】
電子音楽装置５０のバス１７には、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、タイマ４、操作部５、パネル表示器６、ＭＩＤＩインターフェース７、駆動装置８、書込回路１３、バッファ１４、音源部１５、サウンドシステム１６が接続されている。
【００１６】
ＲＡＭ３は、再生バッファ等のバッファ領域、フラグ、レジスタ、各種パラメータ等を記憶するＣＰＵ１のワーキングエリアを有する。
【００１７】
ＲＯＭ２には、各種データファイル、各種パラメータ及び制御プログラム、又は本実施例を実現するためのプログラム等を記憶することができる。この場合、プログラム等を重ねて、記録媒体９に記憶する必要は無い。
【００１８】
ＣＰＵ１は、ＲＯＭ２又は、記録媒体９に記憶されている制御プログラム又は本実施例を実現するためのプログラム等に従い、演算又は電子音楽装置５０の制御を行う。タイマ４は、ＣＰＵ１に接続されており、基本クロック信号、割り込み処理タイミング等をＣＰＵ１に供給する。
【００１９】
ユーザは、操作部５を用いて、各種入力及び設定、選択をすることができる。操作部５は、例えば、スイッチ、パッド、フェーダ、スライダ、ロータリーエンコーダ、ジョイスティック、ジョグシャトル、文字入力用キーボード、マウス等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、操作部５は、カーソルスイッチ等の他の操作子を用いて操作する表示器６上に表示されるソフトスイッチ等でもよい。本実施例では、ユーザは操作部５を用いて表示器６上に表示される各種データを操作する。
【００２０】
表示器６は各種情報を表示することができる。ユーザは、この表示器６に表示される情報を参照して、各種入力及び設定を行う。
【００２１】
駆動装置８は、ハードディスク、ＦＤ（フレキシブルディスク又はフロッピーディスク（登録商標））、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多目的ディスク）、フラッシュメモリ等の半導体メモリ等の記憶媒体９にアクセスするための装置である。記憶媒体９は、着脱可能であってもよいし、電子音楽装置５０に内蔵されていてもよい。記録媒体９及び（または）ＲＯＭ２には、本発明の各実施例を実現するためのプログラムや、その他の電子音楽装置５０を制御するためのプログラムを記憶することができる。なお、本発明の各実施例を実現するためのプログラムや、その他の電子音楽装置５０を制御するためのプログラムを記録媒体９に記憶する場合は、これらをＲＯＭ２に合わせて記憶する必要はない。また、一部のプログラムのみを記録場体９に記憶し、その他のプログラムをＲＯＭ２に記憶するようにしてもよい。
【００２２】
記録媒体９には、例えば、本発明の実施例で作成されるビブラートデータＶＤが記憶される。また、予め作成したビブラートデータＶＤを記録してもよい。さらに、予め作成されるビブラートデータＶＤについては、ＲＯＭ２内に記録してもよい。また、ビブラートデータＶＤを波形メモリ１０内に波形データとあわせて記録するようにしてもよい。
【００２３】
ＭＩＤＩインターフェース（ＭＩＤＩ  Ｉ／Ｆ）７は、電子楽器、その他の楽器、音響機器、コンピュータ等に接続できるものであり、少なくともＭＩＤＩ信号を送受信できるものである。ＭＩＤＩインターフェース７は、専用のＭＩＤＩインターフェースに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースを用いて構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信するようにしてもよい。
【００２４】
波形メモリ１０は、原波形の波形データや原波形の波形データに基づき予め作成された互いに波形が異なる一組の波形データ（波形データ１０ａ、波形データ１０ｂ）を複数種類記憶し、複数の波形データの書き込みおよび読み出しが可能である。
【００２５】
なお、互いに波形が異なる一組の波形データ（波形データ１０ａ、波形データ１０ｂ）の作成方法は、例えば、特開２００７−２４８５５１号公報の段落［００１３］〜［００１９］の記載を参照する。すなわち、ビブラートが施された原波形データをＦＦＴ解析処理にて周波数分析し、周波数成分毎の分析データを得る。その後、分析データのうち時間軸上で連続する成分（ピッチおよび倍音）を抽出し、ピッチ成分の周波数が平坦になるように分析データの周波数成分を変更する。平坦化された分析データに対して、原波形データのピッチの極大値付近および極小値付近における、各倍音成分の振幅を適用し、その結果に基づいて波形データ１０ａおよび波形データ１０ｂを生成する。
【００２６】
アクセス管理部１１は、波形メモリ１０に対する書込回路１３、音源部１５、あるいは、バッファ１４からのアクセスが互いに衝突しないように、波形メモリ１０のアクセスタイムスロットを管理する。
【００２７】
書込回路１３は、外部波形入力端子１２から入力される原波形信号をサンプリングして、波形メモリ１０に書き込む。バッファ１４は、記録媒体９やＲＡＭ３から波形メモリ１０に書き込まれる波形データ又は波形メモリ１０から読み出された波形データをＣＰＵ１やＲＡＭ３等に転送する。
【００２８】
音源部１５は、波形メモリ１０から読み出された波形データ及びＭＩＤＩインターフェース等を介して入力されるＭＩＤＩ信号に基づき楽音信号を生成するし、各種音楽的効果を付与して、サウンドシステム１６に供給する。サウンドシステム１６は、Ｄ／Ａ変換器及びスピーカを含み、供給されるデジタル形式の楽音信号をアナログ形式に変換し、発音する。
【００２９】
なお、音源部１５は、専用のハードウェア若しくはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）とマイクロプログラムとの組み合わせによって構成してもよいし、１つの専用のハードウェア若しくはＤＳＰとマイクロプログラムとの組み合わせで構成してもよい。また、専用のＤＳＰ用いずに、ＣＰＵ１とソフトウェアプログラムとの組み合わせによるソフトウェア音源によって構成してもよい。
【００３０】
また、音源部１５は、波形メモリ方式、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）＋ＶＣＦ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｆｉｌｔｅｒ）＋ＶＣＡ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ａｍｐｌｉｆｉｅｒ）のアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。
【００３１】
さらに、１つの音源回路を時分割で使用することにより複数の発音チャンネルを形成するようにしてもよいし、複数の音源回路を用い、１つの発音チャンネルにつき１つの音源回路で複数の発音チャンネルを構成するようにしてもよい。  
【００３２】
ＣＰＵ１は、演奏処理実行時において、ＭＩＤＩインターフェース７や記録媒体９あるいはＲＡＭ３などから供給される演奏情報に応じて、音源部１５の発音チャンネルの楽音生成状態を制御する。例えば、ＭＩＤＩインターフェース７から発音開始を示すノートオン信号が入力された場合、音源部１５の発音チャンネルの１つにその楽音の発生を割り当て、割り当てられた発音チャンネルにその楽音を生成するために必要な楽音パラメータ（ピッチ情報、ビブラート制御情報、波形選択情報、音量エンベロープ制御情報、エフェクト情報等）を供給するとともに、発音開始の指示を与える。これに応じて、音源部１５では、割り当てられた発音チャンネルを用いて、波形選択情報に応じて波形メモリ１０から読み出された波形データを使用して上述した楽音パラメータに対応した楽音を生成する。
【００３３】
図２は、本発明の実施例によるビブラートデータＶＤの作成処理を表すフローチャートである。図３は、ビブラートデータＶＤの作成処理を説明するための概念図である。以下、図２及び図３を参照してビブラートデータ作成処理を説明する。なお、この処理は、ユーザの開始指示により起動する。
【００３４】
ステップＳＡ１でビブラートデータ作成処理を開始し、ステップＳＡ２では、図３（Ａ）に示すような原音の楽音データ（原音波形データ）を取得する。原音波形データは、例えば、書込回路１３が、外部波形入力端子１２から入力される原波形信号をサンプリングして、波形メモリ１０に書き込むことにより行う。
【００３５】
ステップＳＡ３では、ステップＳＡ２で取得した原音波形データのピッチを抽出し、その時間的軌跡を図３（Ｂ）に示すように記録する。ピッチの抽出は、例えば、ゼロクロスや周波数分析などの周知技術による。
【００３６】
ステップＳＡ４では、図３（Ｃ）に示すように、ステップＳＡ３で記録したピッチの時間的軌跡から、ピークの山（半周期の中での最大値であり、図中四角で示すポイント）の時刻と当該時刻におけるピッチの値とを抽出するとともに、ピークの谷（半周期の中での最小値であり、図中丸で示すポイント）の時刻と当該時刻におけるピッチの値とを抽出する。なお、この時、原音波形データの先頭位置から所定時間分をアタック部分とし、該アタック部分については、ピーク（山と谷）部分の抽出を行わない。この所定時間は固定値でもよいし、ユーザが表示器６に表示されるピッチ軌跡を参照して手動で設定してもよい。また、ピッチ抽出の精度が悪いなどの事情で本来ピークでないところで山及び谷を形成する場合もあるので、山及び谷を判定するマージンを指定できるようにしてもよい。
【００３７】
ステップＳＡ５では、ステップＳＡ４で抽出したピークの山と谷のピッチ差（図３（Ｄ）に縦方向の両矢印で示す値、すなわち振幅の２倍）の１／２に相当する値をビブラートの深さ（ＶｉｂｒａｔｏＤｅｐｔｈ）［ｃｅｎｔ］として算出する。この時算出する値は、実装上は０〜１２７までの１２８段階に正規化される。
【００３８】
ステップＳＡ６では、πをステップＳＡ４で抽出したピークの山と谷の時間差（（図３（Ｄ）に横方向の両矢印で示す値、すなわち半周期）で割ることにより、ビブラートの周期（ビブラート周波数：ＶｉｂｒａｔｏＳｐｅｅｄ）［ｒａｄ／ｓｅｃ］を算出する。この時算出する値は、実装上は０〜１２７までの１２８段階に正規化される。
【００３９】
ステップＳＡ７では、ステップＳＡ５で算出したビブラートの深さ（ＶｉｂｒａｔｏＤｅｐｔｈ）［ｃｅｎｔ］を、例えば、図３（Ｅ）に示すように、１０ｍｓｅｃ単位の時系列データ（振幅データ）とするとともに、ステップＳＡ６で算出したビブラートの周期（ビブラート周波数：ＶｉｂｒａｔｏＳｐｅｅｄ）［ｒａｄ／ｓｅｃ］を、例えば、図３（Ｆ）に示すように、１０ｍｓｅｃ単位の時系列データ（周期データ）とする。また、原音波形データの先頭からステップＳＡ４で最初に抽出されるピークまでの時間をディレイ値とする。そして、振幅データ、周期データ及びディレイ値をあわせて一組のビブラートデータＶＤとして、例えば、記録媒体９等に保存する。なお、ディレイ値は、発音開始からビブラートがかかり始めるまでの時間であり、上述したように原音波形データの先頭から最初のピークまでの時間を自動的にディレイ値として設定するほか、ユーザが手動で設定してもよい。
【００４０】
ステップＳＡ８では、ステップＳＡ７で記録したビブラートデータＶＤに対して必要に応じてループ処理を施す。なお、ループ処理の詳細は図４〜図６を参照して後述する。その後、ステップＳＡ９に進み、ビブラートデータ作成処理を終了する。
【００４１】
なお、ビブラートデータＶＤは、音色ごとに各音色に対応して作成・保存することが好ましい。また、各音色について音域に対応して作成・保存してもよいし、ベロシティに対応して作成・保存してもよい。さらに、これらのビブラートデータＶＤを複数作成・保存して必要に応じて切り替えたり、クロスフェードして用いたりしてもよい。
【００４２】
図４は、本発明の実施例によるビブラートデータＶＤのループ処理の第１の例を表す模式図である。
【００４３】
図４（Ａ）は、図２のステップＳＡ７で保存されるビブラートデータＶＤに含まれる振幅データ（ＶｉｂｒａｔｏＤｅｐｔｈ）又は周期データ（ＶｉｂｒａｔｏＳｐｅｅｄ）のいずれか一方を表す模式図である。図中タイミングｔ０は、振幅データ又は周期データの先頭位置を表す。ユーザは、振幅データ又は周期データのいずれか一方を表示器６に表示させ、該表示させた振幅データ又は周期データのいずれか一方に対して、ループ開始タイミングｔ１及びループ終了タイミングｔ２を指定する。いずれか一方に対して、指定を行うことにより、他の一方に対しては自動的に同じ時間的位置にループ開始タイミングｔ１及びループ終了タイミングｔ２が指定される。
【００４４】
ユーザが、ループ開始タイミングｔ１及びループ終了タイミングｔ２を指定することにより、図４（Ｂ）に示すように、タイミングｔ０からタイミングｔ１までの区間が先頭部として指定され、タイミングｔ１からタイミングｔ２までの区間がループ部として指定される。このような指定がなされたビブラートデータＶＤは、ディレイ値で指定された所定時間経過後、先頭部が読み出され、その後、ループ部が読み出され、以降、ループ部が繰り返し読み出される。すなわち、ビブラートデータＶＤがタイミングｔ２まで読み出されると、読み出し位置がタイミングｔ１に戻されることにより、ループ部が繰り返し読み出される。このように、読み出すことにより、ループ部が指定されたビブラートデータＶＤは、図４（Ｃ）に示すように再生される。
【００４５】
図５は、本発明の実施例によるビブラートデータＶＤのループ処理の第２の例を表す模式図である。
【００４６】
図５（Ａ）は、図２のステップＳＡ７で保存されるビブラートデータＶＤに含まれる振幅データ（ＶｉｂｒａｔｏＤｅｐｔｈ）又は周期データ（ＶｉｂｒａｔｏＳｐｅｅｄ）のいずれか一方を表す模式図である。図中タイミングｔ０は、振幅データ又は周期データの先頭位置を表す。この例では、タイミングｔ０から所定時間経過後のタイミングが、ループ開始タイミングｔ１として自動設定され、さらに所定時間経過後のタイミングがループ終了タイミングｔ２として自動設定される。なお、ループ開始タイミングｔ１及びループ終了タイミングｔ２の設定はユーザが手動で行ってもよい。この時、いずれのデータが表示されているかに係らず、他の一方に対しては自動的に同じ時間的位置にループ開始タイミングｔ１及びループ終了タイミングｔ２が設定される。
【００４７】
この例では、例えば、図５（Ｂ）に示すように、単純にループ再生を行うと、不連続で不自然な点が生じてしまうことが考えられる。そこで、ループ部終端付近の所定区間（タイミングｔ１２〜タイミングｔ２１）の傾きを、図中実線の矢印で示すものから、ループ部終端が始端に自然につながるように、図中一点鎖線の矢印で示すものに補正する。
【００４８】
ここでの補正は、オリジナルの（例えば、図２のステップＳＡ７で保存されるビブラートデータＶＤに含まれる）振幅データ列（あるいは周期データ列）のうち、Ａ０（タイミングｔ１１のデータ）からＡＬ−１（タイミングｔ２１直前のデータ）までのＬ個の区間でループさせる際に、所定の長さＭの区間（タイミングｔ１２〜タイミングｔ２１）の傾きを修正する場合、修正されたデータ列Ａ´は、以下の式（１）によって求められる。
0004957591.tif 000002
【００４９】
…（１）
上記式（１）を用いて所定の長さＭの区間（タイミングｔ１２〜タイミングｔ２１）の傾きを修正することにより、図５（Ｃ）に示すような、ループ部終端が始端に自然につながるデータ列を得ることができる。このように修正されたデータ列を含むビブラートデータＶＤは、ディレイ値で指定された所定時間経過後、先頭部が読み出され、その後、ループ部が読み出され、以降、ループ部が繰り返し読み出される。すなわち、ビブラートデータＶＤがタイミングｔ２まで読み出されると、読み出し位置がタイミングｔ１に戻されることにより、ループ部が繰り返し読み出される。このように、読み出すことにより、ループ部が指定されたビブラートデータＶＤは、図５（Ｄ）に示すように再生される。
【００５０】
図６は、本発明の実施例によるビブラートデータＶＤのループ処理の第３の例を表す模式図である。
【００５１】
図６（Ａ）は、図２のステップＳＡ７で保存されるビブラートデータＶＤに含まれる振幅データ（ＶｉｂｒａｔｏＤｅｐｔｈ）又は周期データ（ＶｉｂｒａｔｏＳｐｅｅｄ）のいずれか一方を表す模式図である。図中タイミングｔ０は、振幅データ又は周期データの先頭位置を表す。この例では、タイミングｔ０から所定時間経過後のタイミングが、ループ開始タイミングｔ１として自動設定され、さらに所定時間経過後のタイミングがループ終了タイミングｔ２として自動設定される。なお、ループ開始タイミングｔ１及びループ終了タイミングｔ２の設定はユーザが手動で行ってもよい。この時、いずれのデータが表示されているかに係らず、他の一方に対しては自動的に同じ時間的位置にループ開始タイミングｔ１及びループ終了タイミングｔ２が設定される。
【００５２】
この例でも、例えば、図６（Ｂ）に示すように、単純にループ再生を行うと、不連続で不自然な点が生じてしまうことが考えられる。そこで、ループ部終端付近の所定区間（タイミングｔ１２〜タイミングｔ２１）の傾きを、図中実線の矢印で示すものから、ループ部終端が始端に自然につながるように、図中一点鎖線の矢印で示すものに補正する。
【００５３】
ここでの補正は、オリジナルの（例えば、図２のステップＳＡ７で保存されるビブラートデータＶＤに含まれる）振幅データ列（あるいは周期データ列）のうち、所定の長さＭの区間（タイミングｔ１２〜タイミングｔ２１）のデータ列をフェードアウトし、ループ開始タイミングｔ１に所定の長さＭの区間と同一時間分先行するタイミングｔ１０からループ開始タイミングｔ１１までの区間のデータ列をフェードインすることによりクロスフェードしてタイミングｔ２１とタイミングｔ１１が自然に連続するようにする。
【００５４】
このようにクロスフェードすることにより、所定の長さＭの区間（タイミングｔ１２〜タイミングｔ２１）の傾きが修正され、図６（Ｃ）に示すような、ループ部終端が始端に自然につながるデータ列を得ることができる。このように修正されたデータ列を含むビブラートデータＶＤは、ディレイ値で指定された所定時間経過後、先頭部が読み出され、その後、ループ部が読み出され、以降、ループ部が繰り返し読み出される。すなわち、ビブラートデータＶＤがタイミングｔ２まで読み出されると、読み出し位置がタイミングｔ１に戻されることにより、ループ部が繰り返し読み出される。このように、読み出すことにより、ループ部が指定されたビブラートデータＶＤは、図６（Ｄ）に示すように再生される。
【００５５】
以上、図４〜６に示すビブラートデータＶＤのループ処理を行うことにより、ビブラートデータＶＤの長さを調整することができ、任意の長さの楽音（波形データ）に対してビブラートを付与することができる。
【００５６】
なお、上述の図４〜６に示すビブラートデータＶＤのループ処理は、図２に示すビブラートデータ作成処理のステップＳＡ８で行う以外にも、必要に応じて後述するビブラート生成部１００においてビブラートデータＶＤに基づくビブラート付与処理の際に行ってもよい。
【００５７】
図７は、本発明の実施例によるビブラート生成部１００によるビブラート付与処理に適用されるアルゴリズムを表すブロック図である。ここでビブラート生成部１００は、音源部１５などで構成されているものとするが、ＣＰＵ１とソフトウェアプログラムとの組み合わせによって構成してもよい。
【００５８】
例えば、記録媒体９には、それぞれ振幅データ（ＶｉｂｒａｔｏＤｅｐｔｈ）、周期データ（ＶｉｂｒａｔｏＳｐｅｅｄ）及びディレイ値を含むビブラートデータＶＤが複数記憶されている。
【００５９】
ＣＰＵ１から、ノートオンイベントのタイミングで読み出し指示があると、ビブラート深さ（ＶｉｂｒａｔｏＤｅｐｔｈ）読出部１０１は、記録媒体９等に記録されている振幅データ（ＶｉｂｒａｔｏＤｅｐｔｈ）の読み出しを開始し、以降、タイマ４からのタイマ割り込み（この例では１０ｍｓｅｃ）ごとに、各データ列を読み出す。
【００６０】
ＬＦＯ  ＥＧ生成部１０２は、ＣＰＵ１からのノートオンイベントのタイミングでＬＦＯエンベロープの生成を開始し、その出力は、乗算器１０３によりビブラート深さ読出部１０１から出力される振幅データ（ＶｉｂｒａｔｏＤｅｐｔｈ）の各データ列に掛け算される。ＬＦＯ  ＥＧ生成部１０２の出力は、例えば、図８に示すように変動する。すなわち、ビブラートデータＶＤに含まれるディレイ値に相当する時間は、０％であり、元のビブラートは楽音に全く反映されない。その後、ノートオンからディレイ値の時間が経過すると適宜定められる遷移部分において徐々に１００％に引き上げられる。出力が、１００％となった時に元のビブラートが楽音に対して最も反映される。
【００６１】
図７に戻り、乗算器１０３の出力は乗算器１０４によって、モジュレーションホイール５１から入力される係数ｋｍ１（例えば、０〜０．１）により乗算され、乗算器１０５に入力される。モジュレーションホイール５１は、ビブラートの深さを制御（増減）するための操作子（例えば、図１の操作部５）であり、ユーザによって操作される。ユーザは、このモジュレーションホイール５１を操作することにより、楽音に付与されるビブラート効果の深さを制御することができる。
【００６２】
また、ビブラート周期（ＶｉｂｒａｔｏＳｐｅｅｄ）読出部１０６も、ビブラート深さ読出部１０１と同様に、ＣＰＵ１から、ノートオンイベントのタイミングで読み出し指示があると、記録媒体９等に記録されている周期データ（ＶｉｂｒａｔｏＳｐｅｅｄ）の読み出しを開始し、以降、タイマ４からのタイマ割り込み（この例では１０ｍｓｅｃ）ごとに、各データ列を読み出す。なお、周期データのディレイ部においては、位相は進まない。読み出された各データ列は、乗算器１０７に送られ、乗算器１０７において、モジュレーションホイール５２から入力される係数ｋｍ２（例えば、０〜０．１）により乗算され、低周波発振器（ＬＦＯ）１０８に入力される。モジュレーションホイール５２は、ビブラートの周期（スピード）を制御（増減）するための操作子（例えば、図１の操作部５）であり、ユーザによって操作される。ユーザは、このモジュレーションホイール５２を操作することにより、楽音に付与されるビブラート効果の周期を制御することができる。
【００６３】
ＬＦＯ１０８は、入力されるデータ列に対して以下の式（２）を用いて演算を行い、演算結果を乗算器１０５に対して出力する。
0004957591.tif 000003
【００６４】
…（２）
ただし、ｔは実時間、Δはタイマ割り込み間隔（例えば、１０ｍｓｅｃ）、Φは初期位相である。また、ＶｉｂｒａｔｏＳｐｅｅｄは、タイマ割り込み間隔Δで更新される。初期位相Φを１／２πにするとコサイン（ｃｏｓ）になるので、元のビブラートに近いものが再現される。処理を簡略化するためにΦを省いて初期位相を０としたり、あるいは特殊な効果を狙ってそれ以外の値にしたりしてもよい。なお、ＬＦＯ１０８は、計算を簡単にするために三角波を生成するようにしてもよい。
【００６５】
乗算器１０５は、ＬＦＯ１０８の出力に乗算器１０４の出力を掛け算して、ビブラート制御信号Ｓｖを出力する。ビブラート制御信号Ｓｖは、楽音生成部１５０に入力される。なお、ビブラート制御信号Ｓｖは、以下の式（３）で表される。
0004957591.tif 000004
【００６６】
…（３）
ただし、ｔは実時間、Δはタイマ割り込み間隔（例えば、１０ｍｓｅｃ）、Φは初期位相である。また、ＶｉｂｒａｔｏＳｐｅｅｄ及びＶｉｂｒａｔｏＤｅｐｔｈは、タイマ割り込み間隔Δで更新される。また、ＶｉｂｒａｔｏＳｐｅｅｄ及びＶｉｂｒａｔｏＤｅｐｔｈは、それぞれ必要に応じて係数Ｋｍ１及びＫｍ２で乗算されているものとする。
【００６７】
ＶｉｂｒａｔｏＳｐｅｅｄ及びＶｉｂｒａｔｏＤｅｐｔｈは、タイマ割り込み間隔Δで更新される（読み出される）ので、各読み出されたデータ列間では、直前に読み出された値が保持される。よって、タイマ割り込み間隔内ではビブラートの深さと周期は一定となる。なお、各データ列間を補完するように構成して、ビブラートの深さと周期が連続的に変化するようにしてもよい。
【００６８】
楽音生成部１５０は、ビブラート制御信号Ｓｖに応じて、波形メモリ１０から読み出される波形データに対して変調を書けることにより、波形データにビブラートを付与し、ビブラート効果の付与された楽音信号を出力する。ここで楽音生成部１５０は、音源部１５などで構成されるものとする。
【００６９】
図９は、本発明の実施例によるビブラート付与処理を表すフローチャートである。この処理は、ＭＩＤＩインターフェース７に接続されるＭＩＤＩ機器等から発音指示であるノートンイベントが入力されるたびに起動する。
【００７０】
ステップＳＢ１でビブラート付与処理を開始し、ステップＳＢ２でノートオンイベントを取得する。ノートオンイベントは、例えば、図１のＭＩＤＩインターフェース７に接続されるＭＩＤＩ機器等から入力され、少なくとも音高を指定するノート番号を含む。
【００７１】
ステップＳＢ３では、ステップＳＢ２で取得したノートイベントに含まれるノート番号で表される音程（ピッチ）での発音を音源回路１５に指示する。なお、この時の音色等は予め設定されているものとする。発音開始の指示により、対応する波形データが波形メモリ１０から読み出され音源回路１５に送られる。
【００７２】
ステップＳＢ４では、ビブラートデータＶＤの読み出し位置をビブラートデータＶＤの先頭位置に初期化する。なお、ビブラートデータＶＤは、ステップＳＢ２で取得したノートイベント（のＭＩＤＩチャンネル）に対して設定されている音色等に対応したものが自動的に選択されるようにしてもよいし、予めユーザが選択しておいてもよい。
【００７３】
ステップＳＢ５では、ステップＳＢ２で取得したノートオンイベントに対応するノートオフイベントを検出したか否かが判断される。ノートオフイベントを検出した場合は、ＹＥＳの矢印で示すステップＳＢ６に進み、ステップＳＢ６にて音源回路１５に発音中止（リリース）の指示を出す。音源回路１５は、発音中止の指示があってから所定のリリース時間発音を続けた後、発音を止める。ノートオフイベントを検出しない場合は、ＮＯの矢印で示すステップＳＢ７に進む。
【００７４】
ステップＳＢ７では、所定のリリース時間を経過しても、音源回路１５が現在楽音を発音中か否かを判断する。発音中である場合は、ＹＥＳの矢印で示すステップＳＢ８に進み、発音中でない場合は、ＮＯの矢印で示すステップＳＢ１５に進みビブラート付与処理を終了する。なお、ステップＳＢ５から直接ステップＳＢ７に移行した場合は、所定のリリース時間について考慮する必要はない。
【００７５】
ステップＳＢ８では、ビブラートデータＶＤを一組読み出す。すなわち、現在割り込み周期に応じてビブラートデータＶＤに含まれる振幅データ及び周期データのデータを読み出す。
【００７６】
ステップＳＢ９では、ビブラート制御用操作子（例えば、図７のモジュレーションホイール５１及び５２）によるビブラートの深さ及びスピード（周期）の変更量を求める。ここで求めた変更量は、例えば、係数ｋｍ１及びｋｍ２として、図７の乗算器１０４及び１０７に入力される。
【００７７】
ステップＳＢ１０では、ステップＳＢ８で読み出したビブラートのスピード情報（周期データ）にステップＳＢ９で求めたビブラートスピードの変更量（係数ｋｍ２）を乗算しＬＦＯ１０８から出力される正弦波のスピード（周期）を指定（係数ｋｍ２で乗算されたビブラート周期データをＬＦＯ１０８に供給）する。ＬＦＯ１８では、図７を参照して説明した式（２）に基づく演算を行い、演算結果を出力する。
【００７８】
ステップＳＢ１１では、ステップＳＢ８で読み出したビブラートの深さ情報（振幅データ）にＬＦＯエンベロープを乗算して、さらにステップＳＢ９で求めたビブラート深さの変更量（係数ｋｍ１）を乗算することにより、ＬＦＯ１０８から出力される正弦波の振幅を指定（ＬＦＯ１０８の出力に乗算器１０５で乗算される値を決定）する。その後、ビブラート深さの変更量（係数ｋｍ１）で乗算されたＬＦＯ１０８の出力を、ビブラート制御信号Ｓｖとして音源回路１５に出力する。なお、音源回路１５は、ビブラート制御信号Ｓｖを用いて、ステップＳＢ３で発音を指示された楽音に対して変調を行い、ビブラート効果の付与された楽音を出力する。
【００７９】
ステップＳＢ１２では、タイマ４の割り込みに応じて、ビブラートデータＶＤの読み出し位置を進める。
【００８０】
ステップＳＢ１３では、ビブラートデータＶＤの読み出しが、ループ終端（例えば、図４のタイミングｔ２又は図５及び図６のタイミングｔ２１）に達したか否かを判断する。ループ終端に達した場合は、ステップＳＢ１４に進み、ビブラートデータＶＤの読み出し位置をループ始端（例えば、図４のタイミングｔ１又は図５及び図６のタイミングｔ１１）に更新して、その後ステップＳＢ５に戻る。ループ終端に達していない場合は、ＮＯの矢印で示すステップＳＢ５に戻る。
【００８１】
図１０は、楽音信号の生成時に楽音生成部１５０に適用されるアルゴリズムの一例を表すブロック図である。なお、楽音生成部１５０に適用されるアルゴリズムは、この例に限らず、波形メモリ１０に記憶される波形データをビブラート生成部１００において生成されるビブラート制御信号Ｓｖに応じて変調をかけるものであればよい。あるいは、ＦＭ方式などのように波形データを持たずに演算で楽音生成するものであって、ビブラート制御信号Ｓｖをその演算に反映させるようなものであってもよい。
【００８２】
まず、ＭＩＤＩインターフェース７から電子音楽装置５０に対して、波形データに係る発音を指示するＭＩＤＩのノートオン信号が供給されると、ＣＰＵ１から音源部１５に対して当該波形データに対する発音が指示される。これに応じて、音源部１５において、ビブラートを有する楽音信号が合成される。
【００８３】
ＣＰＵ１からの発音の指示には、発音に使用する波形データのアタック部およびループ部を示す波形アドレス情報ＷＡと、当該波形データのピッチシフト情報ＰＳ０（セント）と、当該波形データに付与する音量エンベロープの形状を示す波形エンベロープ情報ＷＥとが含まれる。ここで、ピッチシフト情報ＰＳ０について説明しておく。まず、波形メモリ１０に記憶された各波形データは、ある音高の楽音信号を所定のサンプリング周期でサンプリングしたものである。記録時と再生時のサンプリング周期が等しかったとすると、このサンプリング周期毎に当該波形データを「１」サンプルずつ読み出せば、読み出された楽音信号は記録時と同一の音高を有することになる。しかし、実際に波形データを読み出す場合には、発音させようとする音高はサンプリング時の音高とは異なる。ピッチシフト情報ＰＳ０は、サンプリング周期毎に当該波形データを「１」サンプルずつ読み出した場合の音高と、実際に発音させようとする音高との差をセント単位で表したものである。例えば、前者の音高が「Ｃ３」であって、後者の音高が「Ｃ４」であったとすると、ピッチシフト情報ＰＳ０は「１２００」（セント）になる。
【００８４】
ビブラート生成部１００からは、ビブラート制御信号Ｓｖが入力される。ビブラート制御信号Ｓｖの最大値は「１」であり、最小値は「−１」である。乗算器２０６は、ピッチシフト情報ＰＳ０（セント）に付与する変動量の最大値である最大ピッチシフト変動量Δｆｐｓｍａｘが指定されると、ビブラート制御信号Ｓｖに該最大ピッチシフト変動量Δｆｐｓｍａｘを乗算する。その乗算結果であるピッチシフト変動量Δｆｐｓ（セント）は加算器２００においてピッチシフト情報ＰＳ０と加算され、加算器２００からはビブラートを付与したピッチシフト情報ＰＳ１が出力される。
【００８５】
リニア変換部２０１は、セントスケールの周波数比情報であるピッチシフト情報ＰＳ１を、リニアスケールの周波数比情報であるｆナンバに変換する。位相ジェネレータ２０２は、リニア変換部２０１からのｆナンバを、サンプリング周期毎に累算することにより位相情報ＰＨを生成して出力する。アドレスジェネレータ２０４は、該位相信号ＰＨと前記波形アドレス情報ＷＡとに基づいて、波形データ１０ａ，１０ｂを読み出すための共通のアドレス信号ＡＤを出力する。アドレスジェネレータ２０４は、位相信号ＰＨに係る位相と波形アドレス情報ＷＡとに応じて、アタック部が最初に１回のみ読み出され、その後はループ部が繰り返し読み出されるようにアドレス信号ＡＤを生成する。
【００８６】
これにより、各サンプリング周期毎に、波形メモリ１０のからは、同位相でピッチシフト変動量Δｆｐｓによる周波数変調の施された波形データ１０ａ，１０ｂが読み出されることになる。読み出された波形データ１０ａ，１０ｂは、乗算器２１４，２１８において重み付けが施され、加算器２２２において合成される。合成された楽音信号は、乗算器２２４において振幅変調が施され、その結果がビブラートを有する楽音信号Ｓｏｕｔとしてサウンドシステム１６に出力されることになる。
【００８７】
遅延回路２１０は、指定された位相差Φ１に応じた時間だけビブラート制御信号Ｓｖを遅延させる。乗算器２１２は、遅延されたビブラート制御信号Ｓｖに最大重み付け係数ΔＧ１ｍａｘを乗算し、その結果を重み付け係数ΔＧ１として出力する。なお、最大重み付け係数ΔＧ１ｍａｘは、「０〜０．５」の範囲で設定される係数である。
【００８８】
加算器２１６は、重み付け係数ΔＧ１と基本重み付け値である「０．５」とを加算し、この加算結果を上側重み付け値ＧＵとして乗算器２１４に供給する。また、加算器２２０は、基本重み付け値である「０．５」から重み付け係数ΔＧ１を減算し、この減算結果を下側重み付け値ＧＤとして乗算器２１８に供給する。これにより、波形データ１０ａ，１０ｂに付与される重み付けの合計（ＧＵ＋ＧＤ）は常に「１」になることが解る。なお、位相差Φ１を「０」にすると、遅延回路２１０における遅延時間も「０」になり、アドレス信号ＡＤの進行速度が最大になるタイミング（楽音信号のピッチのピークが現れるタイミング）と、乗算器２１４において上側の楽音信号の重み付けが最大になるタイミングとが完全に一致することになる。また、位相差Φ１として「０」以外の値を指定することにより、両者のタイミングをずらすことも可能である。
【００８９】
遅延回路２２６は、指定された位相差Φ２に応じた時間だけビブラート制御信号Ｓｖを遅延させる。ここで、位相差Φ２は、楽音信号に付与するピッチのビブラートと、振幅のビブラートとの位相差である。乗算器２２８は、遅延されたビブラート制御信号Ｓｖに最大振幅変動係数ΔＧ２ｍａｘを乗算し、その結果を振幅変動係数ΔＧ２として出力する。なお、最大振幅変動係数ΔＧ２ｍａｘは、「０〜１．０」の範囲で設定される係数である。加算器２３０は、振幅変動係数ΔＧ２と基本振幅係数である「１」とを加算し、この加算結果であるゲインＧｏｕｔをエンベロープ発生部２３２に供給する。エンベロープ発生部２３２は、前記波形エンベロープ情報ＷＥに基づいて、楽音信号の立上りから立下りまでの音量の時間変化を制御する音量エンベロープ波形を発生するとともに、その音量エンベロープ波形をゲインＧｏｕｔと合成して振幅変調の施された音量エンベロープ波形ＥＤとして乗算器２２４に供給する。乗算器２２４においては、加算器２２２から出力された楽音信号に対して音量エンベロープＥＤによる振幅制御が施され、その結果が楽音信号Ｓｏｕｔとしてサンプリング周期毎にサウンドシステム１６に供給されることになる。
【００９０】
以上、本発明の実施例によれば、ビブラートの付与された原音波形データのピッチを検出して時間的軌跡を記録し、記録した時間的軌跡からピークの山と谷のそれぞれの時刻とピッチの値を抽出し、それらの時間差からビブラートの周期を、またレベル差からビブラートの深さを算出し、該算出したビブラートの周期と深さを発音タイミングからの時系列データとして記録することができる。また、このようにして記録したビブラートの周期と深さを発音タイミングからの時系列データをもちいて、楽音波形データにビブラート効果を付与することにより、実際の楽器の演奏に近い自然なビブラートを実現することができる。
【００９１】
また、本発明の実施例によれば、ビブラートデータをループ再生する際の継ぎ目が不連続とならないように補正することができる。したがって、自然なビブラートを任意の長さの楽音に付与することができる。
【００９２】
また、本発明の実施例によれば、ビブラートの深さやスピードを強調したり弱めたりする制御を行うことができる。
【００９３】
なお、上述の実施例では、音色ごとにビブラートデータＶＤを用意したが、ビブラートデータＶＤは、対応する音色のみならず他の音色に対して適用してもよい。例えば、フルートの原音波形から得られたビブラートデータＶＤをバイオリンの波形データに適用してもよい。
【００９４】
なお、上述の実施例では、ビブラートデータＶＤを半周期毎に記録したが、さらに短い周期ごとに記録してもよいし、長い周期で記録してもよい。ただし、短い周期で記録するとデータ量が膨大なものとなり、長い周期で記録するとビブラートが荒くなってしまい原音から遠くなってしまう。したがって、ビブラートデータＶＤを半周期毎に記録することが好適である。
【００９５】
また、上述の実施例では、ビブラートのスピードが速くなっても、ビブラートの時系列データ（振幅データ及び周期データ）の読み出し速度は一定であるとしたが、ビブラートスピードに応じて読み出し速度を変化させるようにしてもよい。
【００９６】
また、上述の実施例では、ビブラート制御信号Ｓｖは、正弦波であるとして説明したが、これに限らず三角波としてもよい。また、特殊効果を狙って矩形波等を用いてもよい。
【００９７】
なお、本発明の実施例は、電子楽器、パソコン＋アプリケーションソフトウェアく、カラオケ装置、ゲーム装置、携帯電話等の携帯型通信端末、自動演奏ピアノ等に適用してもよい。
【００９８】
携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【００９９】
また、電子楽器の形態を取った場合、操作部５として鍵盤などの演奏操作子をも備えるが、その形態は鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態でもよい。
【０１００】
また、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、ＭＩＤＩや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。
【０１０１】
また、本実施例は、本実施例に対応するコンピュータプログラム等をインストールした市販のコンピュータ等によって、実施させるようにしてもよい。
【０１０２】
その場合には、本実施例に対応するコンピュータプログラム等を、ＣＤ−ＲＯＭやフロッピーディスク等の、コンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザに提供してもよい。
【０１０３】
そのコンピュータ等が、ＬＡＮ、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をコンピュータ等に提供してもよい。
【０１０４】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施例による電子音楽装置５０のハードウェア構成を表すブロック図である。
【図２】本発明の実施例によるビブラートデータＶＤの作成処理を表すフローチャートである。
【図３】ビブラートデータＶＤの作成処理を説明するための概念図である。
【図４】本発明の実施例によるビブラートデータＶＤのループ処理の第１の例を表す模式図である。
【図５】本発明の実施例によるビブラートデータＶＤのループ処理の第２の例を表す模式図である。
【図６】本発明の実施例によるビブラートデータＶＤのループ処理の第３の例を表す模式図である。
【図７】本発明の実施例によるビブラート生成部１００によるビブラート付与処理に適用されるアルゴリズムを表すブロック図である。
【図８】ＬＦＯ  ＥＧ生成部１０２の出力の変動を表すグラフである。
【図９】本発明の実施例によるビブラート付与処理を表すフローチャートである。
【図１０】楽音信号の生成時に楽音生成部１５０に適用されるアルゴリズムの一例を表すブロック図である。
【符号の説明】
【０１０６】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、４…タイマ、５…操作部、６…表示器、７…ＭＩＤＩインターフェース、８…駆動装置、９…記録媒体、１０…波形メモリ、１１…アクセス管理部、１２…外部波形入力端子、１３…書込回路、１４…バッファ、１５…音源部、１６…サウンドシステム、１７…バス、５０…電子音楽装置、５１，５２…モジュレーションホイール、１００…ビブラート生成部、１０１…ビブラート深さ読出部、１０２…ＬＦＯ  ＥＧ生成部、１０３，１０４，１０５，１０７…乗算器、１０６…ビブラート周期読出部、１０８…ＬＦＯ、１５０…楽音生成部、２００…加算器、２０１…リニア変換部、２０２…位相ジェネレータ、２０４…アドレスジェネレータ、２０６…乗算器、２１０…遅延回路、２１２，２１４，２１８…乗算器、２２０，２２２…加算器、２２４，２２８…乗算器、２２６…遅延回路、２３２…エンベロープ発生部
【図１】
0004957591.tif 000005
【図２】
0004957591.tif 000006
【図３】
0004957591.tif 000007
【図４】
0004957591.tif 000008
【図５】
0004957591.tif 000009
【図６】
0004957591.tif 000010
【図７】
0004957591.tif 000011
【図８】
0004957591.tif 000012
【図９】
0004957591.tif 000013
【図１０】
0004957591.tif 000014