(57)【要約】 【課題】  サンプリングした波形データに含まれるビブラートなどの変調要素を高品質に制御する。  【解決手段】  演奏者による楽器の生演奏によって得られた波形データ中のビブラートなどの変調要素の時変動特性には、演奏者が意図した若しくは制御可能な変動成分（うねり）と、演奏者が意図しない若しくは制御できない変動成分（ゆらぎ）とが有ることに着目し、両成分を分離して、独立に調整・制御しうるようにすることで、有効かつ高品質な変調制御／楽音合成を行う。変調のかけられたオリジナル波形データにおける少なくとも１つの特定の変調要素（変調の深さ及び速さの少なくとも一方）に関して変動値列を取得し、これを時定数的な因子に従い、「うねり」値列と「ゆらぎ」値列とに区別する。これらを独立に可変制御し、楽音変調／合成を行う。【選択図】      図２
2007093795.tif 000002
【特許請求の範囲】
【請求項１】
変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素に関して変動値列を取得する第１のステップと、
前記変動値列から、時定数的な因子に従い、少なくとも１つの時系列的な成分値列を抽出する第２のステップと
を具備し、前記第２のステップで抽出される前記成分値列を少なくとも用いて前記特定の変調要素の前記変動値列を表現することを特徴とする楽音データ生成方法。
【請求項２】
前記第２のステップは、前記変動値列から、時定数的特性の異なる少なくとも第１及び第２の成分値列を分離抽出し、該第１及び第２の成分値列の組み合わせで、前記特定の変調要素の前記変動値列を表現することを特徴とする請求項１に記載の楽音データ生成方法。
【請求項３】
前記第２のステップは、前記変動値列を平滑化することに基づき前記第１の成分値列を生成し、前記変動値列と該第１の成分値列との演算に基づき前記第２の成分値列を生成する請求項２に記載の楽音データ生成方法。
【請求項４】
少なくとも１つの前記成分値列を、その値の大きさ及び時間軸の少なくとも一方について可変制御する第３のステップと、
第３のステップで可変制御された前記成分値列に基づく特徴を持つ前記特定の変調要素で変調された楽音データを生成する第４のステップと
を更に具えた請求項１乃至３のいずれかに記載の楽音データ生成方法。
【請求項５】
前記第１のステップは、
前記変調のかけられたオリジナル波形データにおける個々の変調サイクルの区切りを決定するステップと、
決定された区切りに従う各変調サイクル毎に、前記少なくとも１つの特定の変調要素の値をそれぞれ検出し、検出した各変調サイクル毎の該特定の変調要素の値からなるデータ列を、離散的な前記変動値列として、生成するステップと
を含む請求項１乃至４のいずれかに記載の楽音データ生成方法。
【請求項６】
変調のかけられたオリジナル波形データにおける特定の変調要素の変動値列から時定数的な因子に従い抽出された少なくとも１つの成分値列を記憶した記憶手段を使用して、楽音を合成する方法において、前記特定の変調要素は、変調の深さ及び速さの少なくとも一方であり、
前記記憶手段から読み出す少なくとも１つの前記成分値列の時間軸を、任意の発音時間長に従い、伸張又は圧縮制御する第１ステップであって、これにより、該任意の発音時間長に見合った時間長を持つ前記成分値列を得るようにしたものと、
前記記憶手段から読み出された又は前記第１ステップで時間軸が伸縮制御された少なくとも１つの前記成分値列の値を可変制御する第２ステップと、
前記記憶手段から読み出された又は前記第１又は第２ステップで制御された少なくとも１つの前記成分値列に基づき、前記特定の変調要素の前記変動値列を生成する第３ステップと、
生成された変動値列を少なくとも用いて、前記特定の変調要素で変調された前記発音時間長にわたる楽音データを生成する第４ステップと
を具備することを特徴とする楽音合成方法。
【請求項７】
前記記憶手段には、前記特定の変調要素の変動値列から分離抽出された時定数特性の異なる少なくとも第１及び第２の成分値列を記憶してなり、
前記第３ステップでは、前記記憶手段から読み出された又は前記第１又は第２ステップで制御された前記少なくとも第１及び第２の成分値列に基づき、前記特定の変調要素の前記変動値列を生成することを特徴とする請求項６に記載の楽音合成方法。
【請求項８】
前記第１の成分値列は、前記オリジナル波形データにおける特定の変調要素の変動値列を平滑化することに基づき得られたものであり、前記第２の成分値列は、該変動値列と該第１の成分値列との演算に基づき得られたものであり、
前記第３ステップは、可変制御された前記第１成分値列と第２の成分値列を演算することに基づき前記変動値列を生成することを特徴とする請求項７に記載の楽音合成方法。
【請求項９】
前記第１ステップでは、前記少なくとも第１及び第２の成分値列のそれぞれにつき独立にその時間軸を伸縮制御し、前記第２ステップでは、前記少なくとも第１及び第２の成分値列のそれぞれにつき独立にその値を可変制御することを特徴とする請求項７又は８に記載の楽音合成方法。
【請求項１０】
前記変調のかけられたオリジナル波形データは、ビブラート変調がかけられたものである請求項６乃至９のいずれかに記載の楽音合成方法。
【請求項１１】
請求項１乃至１０のいずれかに記載の方法における手順をコンピュータに実行させるプログラム。
【請求項１２】
変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素に関して変動値列を取得する第１の手段と、
前記変動値列から、時定数的な因子に従い、少なくとも１つの時系列的な成分値列を抽出する第２の手段と
を具備し、前記第２の手段で抽出される前記成分値列を少なくとも用いて前記特定の変調要素の前記変動値列を表現することを特徴とする楽音データ生成装置。
【請求項１３】
変調のかけられたオリジナル波形データにおける特定の変調要素の変動値列から時定数的な因子に従い抽出された少なくとも１つの成分値列を記憶した記憶手段を使用して、楽音を合成する装置において、前記特定の変調要素は、変調の深さ及び速さの少なくとも一方であり、
前記記憶手段から読み出す少なくとも１つの前記成分値列の時間軸を、任意の発音時間長に従い、伸張又は圧縮制御する第１手段であって、これにより、該任意の発音時間長に見合った時間長を持つ前記成分値列を得るようにしたものと、
前記記憶手段から読み出された又は前記第１手段で時間軸が伸縮制御された少なくとも１つの前記成分値列の値を可変制御する第２手段と、
前記記憶手段から読み出された又は前記第１又は第２手段で制御された少なくとも１つの前記成分値列に基づき、前記特定の変調要素の前記変動値列を生成する第３手段と、
生成された変動値列を少なくとも用いて、前記特定の変調要素で変調された前記発音時間長にわたる楽音データを生成する第４手段と
を具備することを特徴とする楽音合成装置。
【請求項１４】
変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素についての時系列的な変動値列を、少なくとも２つの時系列的な成分値列に分離したものである、少なくとも第１の成分値列及び第２の成分値列で構成されるデータ構造からなる楽音変調用データを記憶したコンピュータ読み取り可能な記憶媒体であって、
前記第１の成分値列は、前記変動値列における時定数の相対的に大きな変動成分であるうねり変動成分値列からなり、
前記第２の成分値列は、前記変動値列における時定数の相対的に小さな変動成分であるゆらぎ変動成分値列からなることを特徴とする。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子楽器や自動演奏装置等その他の楽音発生装置において利用しうるものであり、サンプリングした波形データに含まれるビブラートなどの変調要素を高品質に制御することを可能にする楽音データ生成方法及び装置並びに楽音合成方法及び装置に関する。
【背景技術】
【０００２】
サンプリングした楽音の波形データをメモリに記憶し、このメモリに記憶した波形データを電子楽器等の音源として使用する所謂サンプラーが従来より知られている。サンプリングした波形データを音源として使用して楽音生成する場合に、サンプリングした元の波形そのものを単純に再生するのではなく、楽音再生の際に、ピッチや振幅等の楽音要素を自由に制御・調整できるようにすることが望まれる。そのような工夫を行なった従来技術として、下記特許文献１には、楽音信号をサンプリングしてＰＣＭ波形データとしてメモリに記憶する場合に、同時に、該楽音信号に含まれるゆらぎ成分（変動成分）を周波数と振幅についてそれぞれ検出し、ゆらぎデータ記憶手段に記憶することが示されている。メモリに記憶した波形データを読み出して楽音信号を再生する場合に、ゆらぎデータ記憶手段から周波数及び振幅のゆらぎデータも読み出し、これらのゆらぎデータによって読み出された波形データの周波数変調及び振幅変調をそれぞれ行い、かつ、これらの変調の深さ制御を行う。しかし、この従来技術は、ＰＣＭ波形データにおける周波数や振幅についての変動成分そのものをゆらぎ成分として検出し、かつ、それらを変調制御するものでしかない。また、下記特許文献２には、サンプリングした楽音信号において時間的に変化するピッチを検出し、これに基づき楽音ピッチの時間的変化を示すピッチエンベロープ情報をメモリに記憶し、楽音再生時において、ピッチエンベロープ情報を補間することで適宜変更したピッチエンベロープを生成し、これに基づき再生楽音のピッチを設定するようにしたことが示されている。この従来技術も、楽音信号におけるピッチの時間的変動そのものを検出して記憶し、かつ、それらを変更制御して楽音再生に使用するものでしかない。
【特許文献１】特開平５−２９７８６６号公報
【特許文献２】特公平７−８２３３６号公報
【０００３】
また、アコースティック楽器で実際に演奏されたビブラート演奏音の波形データからビブラート成分を抽出し、抽出したビブラート成分データ（ビブラート変動を示すピッチエンベロープ）を制御し、制御したビブラート成分データを用いて楽音合成を行うことにより、ビブラート制御の品質を向上させるようにした技術も従来より種々知られている（例えば下記特許文献３）。
【特許文献３】特開平７−３２５５８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したような従来技術においては、例えば自然楽器で演奏された楽音をサンプリングすることで高品質な波形データを得ることができ、かつ、ビブラート等の変調演奏時のピッチや振幅の楽音要素の時間的変動をエンベロープとして検出し記憶し、再生時にこれらのエンベロープを制御することで、楽音要素の自然な変化を模倣した制御が或る程度は可能である。しかし、従来技術のようにピッチや振幅の楽音要素の時間的変動そのもののエンベロープを抽出し、制御するだけでは、演奏音における表情や人間らしさの度合いを調整することは困難であった。例えば、ピッチや振幅の変動において異なる特性又は癖を示す複数の波形データを使用してユニゾン音や和音をポリフォニック合成した場合に、合成される各音間のピッチが大きくずれて音痴に聞こえてしまったり、各音の振幅の表情がばらばらになってしまうことが起こる。このような場合、従来の技術では、それらの不都合を除去するように有効に調整することはできなかった。例えば、ピッチや振幅の変動において存在する特性又は癖を除去して一旦フラットな特性に変換して、これらのフラットな特性の波形データに元のピッチエンベロープ特性に従ってビブラート変調をかけることでビブラート変調された楽音を合成することが考えられるが、そうすると合成音が単調なものとなってしまい、アコースティック楽器音らしさが失われてしまう、という問題が生じる。
【０００５】
本発明は上述の点に鑑みてなされたもので、サンプリングした波形データに含まれるビブラートなどの変調要素を高品質に制御することを可能にする楽音データ生成方法及び装置並びに楽音合成方法及び装置を提供しようとするものである。更には、それらに関連するコンピュータプログラム及び該プログラムを記憶した記憶媒体、さらには、楽音変調用データの新規なデータ構造ならびに該新規なデータ構造の楽音変調用データを記憶した記憶媒体、を提供しようとするものである。
【課題を解決するための手段】
【０００６】
上記課題の解決のために、本発明者は、演奏者による楽器の生演奏によって得られた波形データ中のビブラートなどの変調要素の時変動特性には、演奏者が意図した若しくは制御可能な変動成分と、演奏者が意図しない若しくは制御できない変動成分とが有ることに着目し、両変動成分を区別して少なくともその一方を抽出し、これを独立に調整・制御可能とすることで、有効かつ高品質な制御が行なえる、という発想を想起した。
【０００７】
そこで、本発明に係る楽音データ生成方法は、変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素に関して変動値列を取得する第１のステップと、前記変動値列から、時定数的な因子に従い、少なくとも１つの時系列的な成分値列を抽出する第２のステップとを具備し、前記第２のステップで抽出される前記成分値列を少なくとも用いて前記特定の変調要素の前記変動値列を表現することを特徴とする。
【０００８】
本発明は、演奏者が意図した若しくは制御可能な変調要素における変動成分は、時定数的な因子を持つとの認識に立つことで、前記変動値列から、時定数的な因子に従い、少なくとも１つの時系列的な成分値列を抽出することを特徴とする。これにより、変調要素において、例えば、演奏者が意図した若しくは制御可能な変動成分と、演奏者が意図しない若しくは制御できない変動成分とを、算術的若しくは計量的に分析しうるようになる。前記変動値列から時定数的な因子に従い少なくとも１つの時系列的な成分値列を抽出することは、一実施例として、時定数的な因子に依存して、変動値列を２つの時系列的な成分値列に分離抽出することからなる。例えば、前記変動値列から時定数の相対的に大きな変動成分を抽出し、第１の成分値列として生成し、前記変動値列から時定数の相対的に小さな変動成分を抽出し、第２の成分値列として生成するようにしてよい。時定数の相対的に大きな変動成分の抽出は、典型的には、適宜の平滑化関数による処理又はローパスフィルタ処理等によって適宜行なえる。本明細書ではこれらの処理を総称して「平滑化」ということにする。時定数の相対的に大きな変動成分を抽出することにより、変調要素において、演奏者が意図した若しくは制御可能な変動成分の抽出を行なうことができる。以下説明する実施例では、このような時定数の相対的に大きな変動成分すなわち演奏者が意図した若しくは制御可能な変動成分を、「うねり」ということにする。一実施例において、変動値列を平滑化することに基づき生成される第１の成分値列とは、「うねり」値列である。一方、時定数の相対的に小さな変動成分とは、演奏者が意図しない若しくは制御できない変動成分に対応付けることができ、これは、一例として、変動値列に対する第１の成分値列すなわち「うねり」値列の残差（又は比）として算術的に生成することができる。以下説明する実施例では、変調における、このような時定数の相対的に小さな変動成分すなわち演奏者が意図しない若しくは制御できない変動成分を、「ゆらぎ」ということにする。すなわち、一実施例において、変動値列と第１の成分値列（「うねり」値列）との差分に基づき生成される第２の成分値列とは、「ゆらぎ」値列である。
【０００９】
このように、本発明の実施例によれば、特定の変調要素（変調の深さあるいは速さの少なくとも一方）の変動値列を、時定数的特性の異なる少なくとも第１及び第２の成分値列（「うねり」値列と「ゆらぎ」値列）に分離して表現することができる。これにより、これらを使用して楽音波形合成を行なうに際して、第１の成分値列（「うねり」値列）と第２の成分値列（「ゆらぎ」値列）とを独立に可変調整・制御することができるようになり、高品質な制御が行なえる。例えば、ビブラート変調において異なる特性又は癖を示す複数の波形データを使用してユニゾン音や和音をポリフォニック合成するような場合に、変調要素における、演奏者が意図した若しくは制御可能な変動成分に相当する第１の成分値列（「うねり」値列）の方を適宜可変調整し、変調要素における、演奏者が意図しない若しくは制御できない変動成分に相当する第２の成分値列（「ゆらぎ」値列）はあまり又はほとんど可変制御しないようにすることで、バランスのとれた調整を適切かつ容易に行なうことができるようになる。すなわち、本発明の実施例によれば、複音合成の際に、変調された特性を持つそれぞれの楽音における変調の表情やゆらぎのばらつき度合いを可変制御することができる。さらには、複音合成に限らず、楽音合成一般において、本発明の実施例に従い変調要素における「うねり」と「ゆらぎ」として分離抽出された変動成分を独立に制御することにより、今までになかった楽音制御パラメータ、例えば、合成音の表情の度合いや、アコースティック楽器特有の人間的なゆらぎなど、を可変制御することができるようになる。
【００１０】
実施例において、前記第１のステップは、前記変調のかけられたオリジナル波形データにおける個々の変調サイクルの区切りを決定するステップと、決定された区切りに従う各変調サイクル毎に、前記少なくとも１つの特定の変調要素の値をそれぞれ検出し、検出した各変調サイクル毎の該特定の変調要素の値からなるデータ列を、離散的な前記変動値列として、生成するステップとを含む。
【００１１】
実施例において、更に、前記決定するステップで区切られた各変調サイクル毎の前記オリジナル波形データに基づき、各変調サイクル毎の前記オリジナル波形データにおける少なくとも１つの特定の楽音要素に関する代表値を決定し、決定した代表値からなる離散的な楽音要素変動値列を生成する生成ステップと、前記楽音要素変動値列から、時定数的な因子に従い、少なくとも１つの時系列的な楽音要素成分値列を抽出する抽出ステップとを具備し、前記抽出ステップで抽出される前記成分値列を少なくとも用いて前記特定の楽音要素の前記楽音要素変動値列を表現することを特徴とする。実施例において、前記抽出ステップは、前記楽音要素変動値列から、時定数的特性の異なる少なくとも第１及び第２の楽音要素成分値列を分離抽出し、該第１及び第２の楽音要素成分値列の組み合わせで、前記特定の楽音要素の前記楽音要素変動値列を表現することを特徴とする。実施例において、前記抽出ステップは、前記楽音要素変動値列を平滑化することに基づき前記第１の楽音要素成分値列を生成し、前記楽音要素変動値列と該第１の成分値列との演算に基づき前記第２の成分値列を生成する。
【００１２】
楽音合成の観点によると、本発明に係る楽音データ生成方法は、少なくとも１つの前記成分値列を、その値の大きさ及び時間軸の少なくとも一方について可変制御する第３のステップと、第３のステップで可変制御された前記成分値列に基づく特徴を持つ前記特定の変調要素で変調された楽音データを生成する第４のステップとを更に具える。
【００１３】
更に本発明によれば、変調のかけられたオリジナル波形データにおける特定の変調要素（変調の深さあるいは速さの少なくとも一方）の変動値列から時定数的な因子に従い抽出された少なくとも１つの成分値列を記憶した記憶手段を使用して、楽音を合成する方法が提供される。この楽音合成方法は、前記記憶手段から読み出す少なくとも１つの前記成分値列の時間軸を、任意の発音時間長に従い、伸張又は圧縮制御する第１ステップであって、これにより、該任意の発音時間長に見合った時間長を持つ前記成分値列を得るようにしたものと、前記記憶手段から読み出された又は前記第１ステップで時間軸が伸縮制御された少なくとも１つの前記成分値列の値を可変制御する第２ステップと、前記記憶手段から読み出された又は前記第１又は第２ステップで制御された少なくとも１つの前記成分値列に基づき、前記特定の変調要素の前記変動値列を生成する第３ステップと、生成された変動値列を少なくとも用いて、前記特定の変調要素で変調された前記発音時間長にわたる楽音データを生成する第４ステップとを具備することを特徴とする。
【００１４】
本発明は、上述のような方法の発明として実施できるのみならず、上述と同様の特徴を持つ装置の発明としても実施できる。さらには、上述と同様の特徴を持つ手順からなるコンピュータプログラムとしても実施でき、また、該プログラムを記憶した記憶媒体としても実施でき、さらには上述のような第１及び第２の成分値列（「うねり」値列と「ゆらぎ」値列）という新規なデータ構造からなる楽音変調用データを記憶したコンピュータ読み取り可能な記憶媒体としても実施できる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明しよう。
［データ作成処理］
まず、変調のかけられたオリジナル波形データに基づき、特定の変調要素についての「うねり」値列と「ゆらぎ」値列とを生成する、本発明に係る楽音データ生成方法及び装置及びプログラムの実施例（総称して「データ作成処理」ということにする）につき説明する。なお、以下の実施例では、ビブラート変調のかけられたオリジナル波形データに基づき処理を行う例につき説明する。
【００１６】
図１は、本実施例に係るデータ作成処理のために使用するコンピュータの構成例を示す。図示の構成は単なる例示であり、通常知られた適宜の構成のコンピュータを使用してよい。図示例において、コンピュータは、周知のように、ＣＰＵ（中央処理部）１、ＲＯＭ（リードオンリーメモリ）２、ＲＡＭ（ランダムアクセスメモリ）３、キーボードやマウスなどの入力操作装置４、表示器５、ハードディスク６、ＣＤ（コンパクトディスク）及びＦＤ（フレキシブルディスク）などの着脱式記憶媒体のためのメモリインタフェース７、外部とデータの授受を行なうための通信インタフェース８、波形データを入力するための波形入力インタフェース９、Ａ／Ｄ変換器１０などを備えている。
【００１７】
図２は、本実施例に係るデータ作成処理の処理手順の一例を示すフロー図であり、この処理プログラムは、ＣＤ（コンパクトディスク）やその他の記憶媒体に記憶されていて、図１のコンピュータ内にインストールされ、ＣＰＵ１によって実行される。
図２は大別して２つのステップＳ１，Ｓ２からなる。第１のステップＳ１は、変調のかけられたオリジナル波形データにおける少なくとも１つの特定の変調要素に関して時系列的な変動値列を取得するものであり、このステップＳ１で行う処理の好適な一例を例示すると、次の通りである。
【００１８】
ステップＳ１１は、分析すべきオリジナル波形データを取得するステップである。その詳細は、例えば、図１において、ビブラート奏法で演奏した生演奏音をマイクロフォン１２でピックアップし、これをＡ／Ｄ変換器１０でデジタル波形データ（ＰＣＭ波形データ）に変換し、インタフェース９及びコンピュータバス１１を介してコンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存する。図３（ｃ）は、分析すべきオリジナル波形データの一例を示す。
【００１９】
次のステップＳ１２では、該取得したオリジナル波形データのピッチエンベロープ及び振幅（パワー）エンベロープを抽出し、これに基づき、例えば１音分の該オリジナル波形データにつき、該オリジナル波形データにおける個々のビブラート周期（すなわち変調サイクル）の区切りを決定する（変調特性の解析）。このステップＳ１２の処理（変調特性の解析処理）それ自体は公知技術を用いて行えばよい。例えば、抽出したピッチエンベロープに基づき、サイクリックなビブラートのピッチ変動（ビブラートの山と谷）を把握し、この把握に基づき個々のビブラート周期（変調サイクル）の区切り位置を決定するようにすればよい。その場合、ピッチエンベロープに基づき決定された区切り位置に従って振幅（パワー）エンベロープ及びオリジナル波形データも区切ればよい。図３（ｂ）は（ｃ）のオリジナル波形データに対応するピッチエンベロープの一例を示し、（ａ）は振幅（パワー）エンベロープの一例を示す。以下、便宜上、区切られた各ビブラート周期に対応する区間を「ユニット」ということにする。なお、ビブラート変調とはいえ、ピッチのみに限らず、振幅（パワー）も適宜に周期的な変動を示すので、高品質なビブラート分析及び合成のために、この実施例では振幅（パワー）エンベロープも抽出して後述するように利用するようにしているが、これは発明の実施にとって必須事項ではない。
【００２０】
なお、１「ユニット」の始点と終点を、ビブラート１周期中のどの位相に設定するかは、任意である。図３（ｂ）では、ピッチ変動のピークからピークまでを１「ユニット」つまり１ビブラートサイクルとして区切っている。しかし、これに限らず、例えば、或る基準ピッチに対する正方向のゼロクロス点の間を１「ユニット」つまり１ビブラート周期の区間として区切るようにしてもよいし、あるいは或る基準ピッチに対する負方向のゼロクロス点の間を１「ユニット」つまり１ビブラート周期の区間として区切るようにしてもよい。また、ピッチ変動の谷から谷までを１ビブラート周期の区間として区切ってもよい。
【００２１】
なお、オリジナル波形データのピッチエンベロープ（つまりビブラート波形）及び振幅（パワー）エンベロープの抽出の仕方としては、従来公知の任意の手法（ローパスフィルタや積分など）を用いてもよいし、次に述べるように、解析的手法によって離散的データとして求めるようにしてもよい。すなわち、公知の波形周期分析／判別技術を用いてオリジナル波形データの波形を１周期毎に判別し、判別した１周期波形を１区間として、該１周期波形（１区間）内の各サンプル振幅の実効値（パワー値）の平均値を算出してこの平均振幅値を当該区間の振幅の代表値とし、このような離散的な各１周期波形毎の振幅代表値の時系列的データ列を、振幅（パワー）エンベロープデータとする。また、該１周期波形（１区間）の時間長の逆数を周波数（楽音ピッチ）として算出し、これを当該区間のピッチの代表値とし、このような離散的な各１周期波形毎のピッチ代表値の時系列的データ列を、ピッチエンベロープデータとする。あるいは、別の例として、判別した所定複数周期波形を１区間として、該複数周期波形（１区間）における各サンプル振幅の実効値（パワー値）の平均値を算出してこの平均振幅値を当該区間の振幅の代表値とし、このような離散的な各複数周期波形毎の振幅代表値の時系列的データ列を、振幅（パワー）エンベロープデータとする。また、該複数周期波形（１区間）における各周期毎の時間長の逆数を周波数（楽音ピッチ）としてそれぞれ算出し、この平均値を算出し、この平均ピッチを当該区間のピッチの代表値とし、このような離散的な各複数周期波形毎のピッチ代表値の時系列的データ列を、ピッチエンベロープデータとする。
【００２２】
次のステップＳ１３では、決定された各ユニット（各ビブラート１周期＝変調サイクル）毎に、ビブラート変調の「深さ」及び／又は「速さ」という特定の変調要素の値をそれぞれ検出するための解析又は演算を行い、その結果、検出した各変調サイクル毎の該特定の変調要素の値からなるデータ列を、離散的な変動値列として、生成する。ここで行う「深さ」の解析（つまり定量化）の仕方の一例について図４を参照して説明する。図４は、１ユニット分のピッチエンベロープ（つまりビブラート波形）を幾分拡大して示している。Ｐ１，Ｐ２は、このユニットの２つのピーク（始点と終点）のピッチを示す。Ｂ１は、このユニットの１つのボトムのピッチ（最低ピッチ）を示す。Ｐａｖは、２つのピークＰ１，Ｐ２の平均値である（又はＰ１，Ｐ２間を結ぶ直線上のＢ１の時間位置に該当する値としてもよい）。このピーク平均ピッチＰａｖとボトムピッチＢ１との差を、このユニットにおける「深さ」ＤＰ１として定量的に表す。勿論、これ以外の適宜の手法で、「深さ」を定量化してよく、要はピッチ変動の振れ幅が表現できればよい。図３（ｂ）には、そのようにして求められた各ユニット毎の深さが、ＤＰ１，ＤＰ２，ＤＰ３，ＤＰ４，ＤＰ５の符号を伴って黒ドットで例示されている。この各ユニット毎の深さデータＤＰ１〜ＤＰ５・・・が、特定の変調要素たる「変調深さ」に関する時系列的な（且つ離散的な）変動値列である。次に、「速さ」の解析（定量化）について説明すると、これは、当該ユニット（ビブラート１周期）の時間長を計測し、その逆数を「速さ」データとして求めればよい。そのようにして求められた各ユニット毎の「変調の速さ」のデータをＳＰ１，ＳＰ２，ＳＰ３，ＳＰ４，ＳＰ５・・・という符号を引用して表すことにする。この各ユニット毎の速さデータＳＰ１〜ＳＰ５・・・が、別の特定の変調要素たる「速さ」に関する時系列的な（且つ離散的な）変動値列である。
【００２３】
次のステップＳ１４では、決定された各ユニット（各ビブラート１周期＝変調サイクル）毎に、オリジナル波形データにおける楽音の振幅及び／又はピッチという特定の楽音要素に関する代表値を決定するための解析又は演算を行い、その結果、決定した各変調サイクル毎の該特定の楽音要素の代表値からなるデータ列を、離散的な楽音要素変動値列として、生成する。これらの楽音要素変動値列は、ビブラート変調のかけられたオリジナル波形データにおけるこれらの楽音要素の各ビブラート周期（変調サイクル）毎の特性を代表的に示しており、ビブラート変調のかけられた楽音波形の合成に際して、これらの楽音要素に対しても「うねり」成分及び／又は「ゆらぎ」成分の制御を行い得るようにするために、本実施例において導入されている。
【００２４】
まず、ステップＳ１４における当該ユニットに関する代表ピッチの求め方の一例について説明する。例えば、当該ユニットにおける２つのピークＰ１，Ｐ２の平均値Ｐａｖから「当該ユニットの深さＤＰ１に或る比率を掛けた積」を引き、その差を、代表ピッチとする。或る比率とは、例えば１／４など、適宜に定めた値である。図４には、このようにして求めた代表ピッチＲＰの一例が示されている。また、図３（ｂ）には、各ユニット毎に求めた代表ピッチＲＰ１，ＲＰ２，ＲＰ３，ＲＰ４，ＲＰ５・・・が例示的に示されている。この時系列的なデータ列が、代表ピッチに関する離散的な楽音要素変動値列である。代表ピッチの求め方は、その他、どのような手法（例えば、ピッチエンベロープから平均ピッチを詳しく計算する、あるいは、逆に、ピークＰ１とボトムＢ１の単純な平均ピッチを計算する、ｅｔｃ．）を用いてもよい。
【００２５】
ステップＳ１４における当該ユニットに関する代表パワー（振幅）の求め方としては、例えば、当該ユニットの振幅エンベロープからその平均振幅（パワー）を詳しく計算することで、当該ユニットに関する代表パワー（振幅）を求める。図３（ａ）には、そのようにして求めた各ユニット毎の代表パワーＲＡ１，ＲＡ２，ＲＡ３，ＲＡ４，ＲＡ５・・・が黒ドットで例示的に示されている。この時系列的なデータ列が、代表パワーに関する離散的な楽音要素変動値列である。
生成された深さ及び速さ（変調要素）についての変動値列、並びに代表ピッチ及び代表パワーについての楽音要素変動値列は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に一時保存される。
【００２６】
次に、ステップＳ１５では、上述した各変動値列における基準値をそれぞれ求める。この基準値とは、現在分析している１音分のオリジナル波形データにおけるビブラート特性に係る各変調要素（「深さ」、「速さ」）及び楽音要素（「代表ピッチ」、「代表パワー」）についての、それぞれの代表的な値であり、後述する「ゆらぎ」分析の際に必要に応じて利用される。勿論、この基準値を変動値列等の各分析データと一緒に記憶しておき、当該ビブラート特性（変調特性）を代表するインデックス情報等として再生処理に際して利用するようにしてもよい。各要素の基準値の求め方の一例は次の通りであるが、これに限らず、その他適宜の手法を用いて、それぞれの要素の変動値列の基準となる適当な値を定めるようにしてよい。
【００２７】
「深さ」：  深さについての変動値列中の各データ（各ユニット毎の深さデータＤＰ１〜ＤＰ５・・・）を平均し、その平均値を深さ基準値（深さ代表値）とする。
「速さ」：  速さについての変動値列中の各データ（各ユニット毎の速さデータＳＰ１〜ＳＰ５・・・）を平均し、その平均値を速さ基準値（速さ代表値）とする。
「代表パワー」：  代表パワーについての楽音要素変動値列中の各データ（各ユニット毎の代表パワーＲＡ１〜ＲＡ５・・・）を平均し、その平均値を代表パワー基準値（代表パワー代表値）とする。
「代表ピッチ」：  現在分析している１音分のオリジナル波形データのノートピッチを代表ピッチ基準値（代表ピッチ代表値）とする。すなわち、例えばＣ４，Ｃ＃４等の音階ノートのピッチを代表ピッチ基準値とする。しかし、これに限らず、代表ピッチについての楽音要素変動値列中の各データ（各ユニット毎の代表ピッチＲＰ１〜ＲＰ５・・・）を平均し、その平均値を代表ピッチ基準値（代表ピッチ代表値）としてもよい。
図３（ａ），（ｂ）におけるラインＲａ，Ｒｐは、代表ピッチ基準値（代表ピッチ代表値）Ｒａ及び代表ピッチ基準値（代表ピッチ代表値）Ｒｐを示す。
【００２８】
上記第１のステップＳ１の変形例として、変調のかけられたオリジナル波形データをコンピュータに付属するマイクロフォン１２でピックアップする手法で取得するのではなく、通信インタフェース８を介して外部から取り込んだり、メモリインタフェース７を介して着脱式記憶媒体１３から取り込むようにしてもよい。更に、別の変形として、他の図示しない波形分析装置あるいはコンピュータ等を用いて既に作成された深さ及び速さ（変調要素）についての変動値列データ並びに代表ピッチ及び代表パワーについての楽音要素変動値列データを、通信インタフェース８を介して外部から取り込んだり、メモリインタフェース７を介して着脱式記憶媒体１３から取り込むことで、これらの変動値列を取得するようにしてもよい。
【００２９】
次に、第２のステップＳ２では、上記のように第１のステップＳ１で取得した各変調要素についての変動値列を、時定数的な因子に従い、それぞれ、少なくとも１つの時系列的な成分値列に分離する。本実施例では、「深さ」の変動値列に関しては、第１の成分値列として、時定数の相対的に大きな変動成分（すなわち演奏者が意図した若しくは制御可能な変動成分）に相当する「うねり」値列を生成し、第２の成分値列として、時定数の相対的に小さな変動成分（すなわち演奏者が意図しない若しくは制御できない変動成分）に相当する「ゆらぎ」値列を生成する。また、「速さ」の変動値列に関しては、「うねり」値列を求めることなく、時定数の相対的に小さな変動成分の成分値列つまり「ゆらぎ」値列を生成する。
【００３０】
詳しくは、ステップＳ２１では、深さ変動値列ＤＰ１〜ＤＰ５・・・を平滑化処理することで、時定数の相対的に大きな変動成分を抽出し、これを「深さ」の「うねり」値列（第１の成分値列）として生成する。時定数の相対的に大きな変動成分を抽出するとは、換言すれば、深さ変動値列における細かな変化に追従しないようにし、滑らかな変動成分を抽出することである。平滑化処理の具体的手法は、ローパスフィルタ演算を施す手法、あるいは、移動メディアン（中央値）法、各種（単純、加重、指数平滑等）の移動平均法、移動モード法、ガウシアンフィルタを用いる手法、ディスプレイ表示又はプリントアウトされた変動列のプロット画像を指でなぞって平滑化プロットを手動描画作成する手法など、如何なる手法を用いてもよく、また、１手法のみに依らずに複数の手法を組み合わせて使用してもよい。生成された「深さ」の変調要素についての「うねり」値列（第１の成分値列）は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存される。図３（ｂ）における白ドットは同図中で黒ドットで示された深さ変動値列を平滑化することで得られた「深さ」の「うねり」値列（第１の成分値列）の一例を示す。
【００３１】
次のステップＳ２２では、第１のステップＳ１で取得した深さ変動値列の各データＤＰ１〜ＤＰ５・・・と、これに対応して上記ステップＳ２１で生成された「うねり」値列（第１の成分値列）との差分をそれぞれ各ユニット毎に演算し、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「深さ」の「ゆらぎ」値列（第２の成分値列）として生成する。生成された「深さ」についての「ゆらぎ」値列（第２の成分値列）は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存される。図３（ｂ）における各ユニット毎の白ドットと黒ドットとの差分値が「深さ」についての「ゆらぎ」値を示す。
【００３２】
ステップＳ２３では、第１のステップＳ１で取得した速さ変動値列の各データＳＰ１〜ＳＰ５・・・の、ステップＳ１５で生成した「速さ基準値」（速さ代表値）に対する差を求め、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「速さ」の「ゆらぎ」値列として生成する。生成された「速さ」についての「ゆらぎ」値列は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存される。なお、「速さ」の変動値列ＳＰ１〜ＳＰ５・・・に関して「うねり」値列を敢えて抽出しない理由は、ビブラートの速さにおいて上記「うねり」に相当する変動はあまり生じないだろうとの前提に立っている。しかし、これに限らず、「速さ」の変動値列に関しても、「深さ」の変動値列の場合と同様に、「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）の両方を抽出するようにしてもよい。
【００３３】
次に、第３のステップＳ３では、上記のように第１のステップＳ１で取得した各楽音要素についての変動値列を、時定数的な因子に従い、それぞれ、少なくとも１つの時系列的な成分値列に分離する。本実施例では、「代表パワー」の変動値列に関しては、第１の成分値列として、時定数の相対的に大きな変動成分（すなわち演奏者が意図した若しくは制御可能な変動成分）に相当する「うねり」値列を生成し、第２の成分値列として、時定数の相対的に小さな変動成分（すなわち演奏者が意図しない若しくは制御できない変動成分）に相当する「ゆらぎ」値列を生成する。また、「代表ピッチ」の変動値列に関しては、「うねり」値列を求めることなく、時定数の相対的に小さな変動成分の成分値列つまり「ゆらぎ」値列を生成する。
【００３４】
詳しくは、ステップＳ３１では、「代表パワー」の変動値列ＲＡ１〜ＲＡ５・・・を平滑化処理し、求めた各ユニット毎の平滑化値とステップＳ１５で生成した「代表パワー基準値」（代表パワー代表値）との差を求めることで、時定数の相対的に大きな変動成分を抽出し、これを「代表パワー」の「うねり」値列（第１の楽音要素成分値列）として生成する。平滑化処理の具体的手法は、前述と同様、適宜の手法を用いてよい。生成された「代表パワー」についての「うねり」値列（第１の楽音要素成分値列）は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存される。図３（ａ）における白ドットは同図中で黒ドットで示された代表パワー変動値列に基づき演算された「代表パワー」の「うねり」値列（第１の楽音要素成分値列）の一例を示す。
【００３５】
次のステップＳ３２では、第１のステップＳ１で取得した「代表パワー」の変動値列の各データＲＡ１〜ＲＡ５・・・とステップＳ１５で生成した「代表パワー基準値」（代表パワー代表値）との差と、変動値列に対応して上記ステップＳ３１で生成された「うねり」値列（第１の楽音要素成分値列）との差分をそれぞれ各ユニット毎に演算し、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「代表パワー」の「ゆらぎ」値列（第２の楽音要素成分値列）として生成する。生成された「代表パワー」についての「ゆらぎ」値列は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存される。図３（ａ）における各ユニット毎の白ドットと黒ドットとの差分値が「代表パワー」についての「ゆらぎ」値を示す。
【００３６】
ステップＳ３３では、第１のステップＳ１で取得した「代表ピッチ」の変動値列の各データＲＰ１〜ＲＰ５・・・の、ステップＳ１５で生成した「代表ピッチ基準値」（代表ピッチ代表値）に対する差を求め、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「代表ピッチ」の「ゆらぎ」値列として生成する。生成された「代表ピッチ」についての「ゆらぎ」値列は、コンピュータ内の適宜のメモリ（ＲＡＭ３又はハードディスク６など）に保存される。なお、「代表ピッチ」の変動値列ＲＰ１〜ＲＰ５・・・に関して「うねり」値列を敢えて抽出しない理由は、ビブラートの最中にその基準ピッチが意図的に変更されることはないので、上記「うねり」に相当する変動はほとんど生じないだろうとの前提に立っている。しかし、これに限らず、「代表ピッチ」の変動値列に関しても、「代表パワー」の変動値列の場合と同様に、「うねり」値列（第１の楽音要素成分値列）と「ゆらぎ」値列（第２の楽音要素成分値列）の両方を抽出するようにしてもよい。
【００３７】
なお、各変動値列における時定数の相対的に小さな変動成分に相当する、「ゆらぎ」値列（第２の成分値列）の生成の仕方は、上記のような差分演算によるものに限らず、割り算あるいは掛け算などにより比を求める手法など、他の適宜の手法を用いてもよい。
また、ステップＳ２１，Ｓ２２，Ｓ３１，Ｓ３２においては、変動値列を上記のように「うねり」と「ゆらぎ」に対応する２つの成分値列に分離しているが、本発明の実施にあたって、必要に応じて、更に余分の適宜の成分値列を変動値列から分離生成するようにしてもよい。
【００３８】
［楽音合成処理＝「うねり」と「ゆらぎ」の制御］
次に、上記のように生成された各変調要素及び楽音要素に対応する「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とを用いて楽音合成を行う実施例につき説明する。この楽音合成処理は、鍵盤等の演奏操作手段による演奏に応じてあるいは自動演奏の実行に伴ってリアルタイムに行うようにしてもよいし、あるいは、予め用意された演奏データに基づき非リアルタイムに行うようにしてもよい。
【００３９】
この楽音合成処理のためには、一例として、図１に示したような構成のコンピュータをハードウェアとして使用し、図５（ａ）〜（ｅ）に示すようなうねり及びゆらぎ制御／楽音合成プログラムを該コンピュータ内にインストールして、ＣＰＵ１によって該プログラムを実行する。そのために、種々のタイプの楽音のビブラート奏法について上述のようにして作成された各変調要素及び楽音要素に対応する「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とを含むデータ構造からなる楽音変調用及び楽音合成用データのデータベースが適宜の記憶装置（例えばハードディスク６）内に構成されている。なお、図１のコンピュータにおいては、楽音波形合成又は発生を行うために楽音合成部１４及びスピーカ１５等の必要なハードウエア資源及びソフトウェア資源が設けられている。公知のように、楽音合成部１４は、ハードウェア音源装置によって構成してもよいし、ソフトウェア音源によって構成してもよい。
【００４０】
ビブラート変調された楽音信号を合成するための基本的な手法には、種々の手法があるが、本発明に従う「うねり」と「ゆらぎ」を考慮した高品質な変調制御技術は、どのような基本的な手法においても適用することができる。例えば、その第１の手法は、図３（ｃ）に示すようなビブラート変調のかけられたオリジナル波形データそのもの（又はそれと同じような波形データ）を上記データベース内に記憶しておき、楽音合成時に、このオリジナル波形データにおける変調度合いを可変制御するために上記「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）を用いる手法である。この第１の手法では、ビブラート変調特性から音色波形特性まで、すべてオリジナル波形データのものを使用し且つ制御することができるので、高品質なビブラート楽音合成が行える。
【００４１】
また、例えば、その第２の手法は、オリジナル波形データから抽出した図３（ａ），（ｂ）に示すような振幅エンベロープ及びピッチエンベロープのデータを変調波形合成用の基本データとして、上記データベース内に記憶しておき、楽音合成時に、この変調波形合成用の基本データを上記「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）を用いて可変制御して、制御された振幅エンベロープ及びピッチエンベロープを合成し、これらの振幅エンベロープ及びピッチエンベロープに従ってピッチ及び振幅がビブラート変調された楽音波形データを生成する手法である。この第２の手法では、音色波形データは必ずしもオリジナル波形データを使用することなく、どのようなものを使用してもよい。これによっても、本発明に従う「うねり」と「ゆらぎ」を考慮した高品質なビブラート変調制御が行える。なお、オリジナル波形データを使用する場合は、そのピッチ及び振幅を一定水準の値に正規化しておくとよく、そのための正規化技術は公知のものを用いればよい。
【００４２】
また、例えば、その第３の手法は、そのような変調波形合成用の基本データとして、オリジナル波形データから抽出したものを使用せずに、低周波発振装置等で発生した規格化されたデータを使用するようにしてもよい。この第３の手法でも、音色波形データは必ずしもオリジナル波形データを使用することなく、どのようなものを使用してもよく、また、本発明に従う「うねり」と「ゆらぎ」を考慮した高品質なビブラート変調制御が行える。
【００４３】
鍵盤等の演奏操作手段による演奏に応じてあるいは自動演奏の実行に伴って発音すべきタイミングでリアルタイムに、あるいは、発音すべきタイミングに先行して非リアルタイムに、発生すべき楽音の音色又は奏法及びピッチ等が指定されると、当該発生すべき楽音のための楽音合成処理が開始される。公知のように、典型的には、１つの楽音を発生する場合、まず、アタック部の楽音を合成し、次に持続部の楽音を合成し、そしてリリース部又は減衰部の楽音を合成することで、それらの部分が順次連続した楽音波形を合成することができる。本実施例に関連するうねり及びゆらぎ制御／ビブラート楽音合成は楽音の持続部に関して実施されるものとしているので、アタック部及びリリース部等については説明は省略する。持続部の楽音を合成するとき、指定された楽音音色又は奏法に対応する音色要素波形データと、上述した各変調要素及び楽音要素に対応する「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とが、上記データベースから時系列順に夫々読み出される。そのとき、図５に示すようなうねり及びゆらぎ制御／ビブラート楽音合成プログラムに従って、各変調要素及び楽音要素の変動値列が夫々生成され、生成された各変調要素及び楽音要素の変動値列に従う特性でビブラート変調された楽音波形が合成される。次に、図５の処理について詳しく説明する。なお、本発明は、持続部楽音の合成のみに限られるものではなく、適宜の部分（アタック部、リリース部、ジョイント部等）で変調を施すようにする楽音合成に際しても応用することができるのは勿論である。
【００４４】
図５（ａ）は、「深さ」の「うねり」値列及び「ゆらぎ」値列に基づき、ビブラート「深さ」の変動値列を生成する処理の一例を示す。ステップＳ４１では、上記データベースから読み出す「深さ」の「うねり」値列（第１の成分値列）及び「ゆらぎ」値列（第２の成分値列）の時間軸を、所望の持続発音時間長に従い、それぞれ独立に伸張又は圧縮する制御を行う。非リアルタイム合成や自動演奏の場合は、用意された演奏データから持続発音時間長が判るので、それを用いればよい。演奏者の演奏に応じたリアルタイム合成の場合は、持続発音時間長として適宜の予測値を用い、楽音合成の進行に伴って予測発音時間長を逐次修正していくような手法をとればよい。なお、上記データベースから読み出す他の時系列データに対しても、同様の時間軸伸縮制御が施される。図６は、そのような時間軸伸縮制御の一例を模式的に示したものである。図６（ａ）は、オリジナル波形データにおけるビブラート周期毎のユニットの時間フレームＵ１，Ｕ２，Ｕ３，．．．Ｕｎと、「深さ」ＤＰの「うねり」値列（第１の成分値列）あるいは「ゆらぎ」値列（第２の成分値列）とをイラスト的に示している。図６（ｂ）はこれらの時間軸を圧縮した例をイラスト的に示している。なお、データの補間合成や繰り返し（ループ）あるいは飛び越し（間引き）などの種々の公知の技術を駆使して時間軸の伸縮が行われるが、このような時間軸の伸縮技術の詳細は例えば特開平１０−３０７５８６号公報やその他で公知であるから、ここでは特に詳しく説明しない。なお、「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）に対して、それぞれ独立にその時間軸の伸縮制御を行うことができる。なお、本明細書で述べられた実施例全体について、或る限定された時間長からなる時系列的データの時間長の可変制御は、正確な時間軸伸縮制御に限らず、該時系列データの単純な繰り返し（時間を長くする場合）あるいは該時系列データの単純な途中カット（時間を短くする場合）などで実現するようにしてもよい。
【００４５】
ステップＳ４２では、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「深さ」の「うねり」値列（第１の成分値列）及び「ゆらぎ」値列（第２の成分値列）に対して、それぞれ独立に、その値の大きさを可変調整・制御する。これによって、楽音合成に際して、特定の変調要素（深さ）における「うねり」成分と「ゆらぎ」成分を独立に可変制御できる。例えば、「うねり」成分は自由に可変制御するが、「ゆらぎ」成分はあまり可変制御しない、といったような使い分けができる。ここで、各値の調整は、それぞれ適宜の倍率を掛ける（重み付けする）ことで行うようにしてよいし、加算又は減算によって行うようにしてもよい。図６（ｂ）におけるＤＰ'は、「深さ」ＤＰの「うねり」値列（第１の成分値列）あるいは「ゆらぎ」値列（第２の成分値列）を一定の倍率係数（重み付け係数）で重み付け制御することによって得られた変更後の「うねり」値列（第１の成分値列）あるいは「ゆらぎ」値列（第２の成分値列）を例示する。もちろん、倍率係数（重み付け係数）は、この持続発音時間中に一定値を維持するものに限らず、時間的に適宜変化されるようにしてもよい。この倍率係数（重み付け係数）のような制御データ又はパラメータ類は、操作者による調整用操作子の操作に応じて発生されるようになっていてもよいし、あるいは、適宜のメモリあるいはデータ発生器から操作者による選択に応じて又は奏法等に応じて自動的に発生されるようになっていてもよいし、あるいは、コンピュータで実行する何らかのアプリケーションプログラムの実行過程で自動的に発生されるようになっていてもよい。
【００４６】
なお、本来は演奏者が意図しない若しくは制御できない変動成分に相当する「ゆらぎ」値列（第２の成分値列）に対しては、このステップＳ４２において、あまり、読み出された値から大きく変化させないようにするか、若しくは全く変化させないようにした方が好ましいと思われるので、そのように制限を設定してもよい。その場合は、他の要素が可変制御されても、「ゆらぎ」成分は可変されないことにより、「ゆらぎ」成分を他の変調要素又は楽音要素の可変制御から独立させることができ、従来にない高品質な制御が達成し得る。しかし、そのような制御に限定されるわけではない。なお、ステップＳ４２では、すべてを可変制御する必要はなく、少なくとも１つの楽音要素（振幅又はピッチ）の「うねり」値列（第１の成分値列）又は「ゆらぎ」値列（第２の成分値列）のうちの少なくとも１つを可変制御する構成であってもよい。
【００４７】
ステップＳ４３では、上記ステップＳ４２で可変制御された「深さ」の「うねり」値列（第１の成分値列）に「ゆらぎ」値列（第２の成分値列）を加算することで、「深さ」の変動値列を生成する。勿論、この場合に行う演算のタイプは、加算に限らず、加減乗除のうち任意のものであってさしつかえない。要は、分離された状態で可変制御された特定の変調要素（例えば「深さ」）についての「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とを合成することで、該特定の変調要素（例えば「深さ」）についての変動値列を生成するようにすればよい。勿論、上記ステップＳ４２での可変調整によって、「うねり」成分を０にする、あるいは、「ゆらぎ」成分を０にする、といった制御も可能であり、ステップＳ４３で得られる「深さ」の変動値列として、「うねり」成分のみあるいは「ゆらぎ」成分のみを反映したものとすることもできる。
【００４８】
図５（ｂ）は、「速さ」の「ゆらぎ」値列に基づき、ビブラート「速さ」の変動値列を生成する処理の一例を示す。ステップＳ５１では、上記データベースから読み出す「速さ」の「ゆらぎ」値列の時間軸を、ステップＳ４１と同様に、所望の持続発音時間長に従い、伸張又は圧縮する制御を行う。ステップＳ５２では、ステップＳ４２と同様に、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「速さ」の「ゆらぎ」値列に対して、その値の大きさを、ユーザの操作入力等に応じて、可変調整・制御する。ステップＳ５３では、時間軸伸縮制御及び値調整された「速さ」の「ゆらぎ」値列に基づき、「速さ」の変動値列を生成する。このステップＳ５３では、例えば、時間軸伸縮制御及び値調整された「速さ」の「ゆらぎ」値列を、そのまま、「速さ」の変動値列としてもよい（例えば、変調のかけられたオリジナル波形データを用いて楽音合成する場合など）。また、このステップＳ５３では、例えば、時間軸伸縮制御及び値調整された「速さ」の「ゆらぎ」値列を前記「速さ基準値」（速さ代表値）に加算（又は減算あるいは乗算、除算等でもよい）して「速さ」の変動値列を求めるようにしてもよい（例えば、変調のかけられていない楽音波形データに対してビブラート変調をかける場合など）。
【００４９】
図５（ｃ）は、「代表ピッチ」の「ゆらぎ」値列に基づき、各ユニット毎の「代表ピッチ」の変動値列を生成する処理の一例を示す。ステップＳ６１では、上記データベースから読み出す「代表ピッチ」の「ゆらぎ」値列の時間軸を、前述と同様に、所望の持続発音時間長に従い、伸張又は圧縮する制御を行う。ステップＳ６２では、ステップＳ４２と同様に、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「代表ピッチ」の「ゆらぎ」値列に対して、その値の大きさを、ユーザの操作入力等に応じて、可変調整・制御する。ステップＳ６３では、時間軸伸縮制御及び値調整された「代表ピッチ」の「ゆらぎ」値列に基づき、「代表ピッチ」の変動値列を生成する。このステップＳ６３では、例えば、時間軸伸縮制御及び値調整された「代表ピッチ」の「ゆらぎ」値列を、そのまま、「代表ピッチ」の変動値列としてもよい。あるいは、このステップＳ６３では、例えば、時間軸伸縮制御及び値調整された「代表ピッチ」の「ゆらぎ」値列を前記「代表ピッチ基準値」（代表ピッチ代表値）に加算（又は減算あるいは乗算、除算等でもよい）して「代表ピッチ」の変動値列を求めるようにしてもよい。
【００５０】
図５（ｄ）は、「代表パワー」の「うねり」値列及び「ゆらぎ」値列に基づき、各ユニット毎の「代表パワー」の変動値列を生成する処理の一例を示す。ステップＳ７１では、ステップＳ４１と同様に、上記データベースから読み出す「代表パワー」の「うねり」値列（第１の楽音要素成分値列）及び「ゆらぎ」値列（第２の楽音要素成分値列）の時間軸を、所望の持続発音時間長に従い、それぞれ独立に伸張又は圧縮する制御を行う。ステップＳ７２では、ステップＳ４２と同様に、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「代表パワー」の「うねり」値列（第１の成分値列）及び「ゆらぎ」値列（第２の成分値列）に対して、それぞれ独立に、その値の大きさを、ユーザの操作入力等に応じて、可変調整・制御する。ステップＳ７３では、ステップＳ４３と同様に、上記ステップＳ７２で可変制御された「代表パワー」の「うねり」値列（第１の成分値列）に「ゆらぎ」値列（第２の成分値列）を加算する（又は減算あるいは乗算、除算等でもよい）ことで、「代表パワー」の変動値列を生成する。
【００５１】
図５（ｅ）は、図５（ａ）〜（ｄ）の各処理において上述のように制御され生成された各変調要素及び楽音要素の変動値列に基づき、ビブラート変調された楽音を合成する処理の一例を示す。ステップＳ８１では、図５（ａ）（ｂ）の各処理で得たビブラート「深さ」及び「速さ」の変動値列に基づき、ビブラート変調された楽音波形を合成する。具体的には、例えば、前記第１の手法に従うビブラート合成にあっては、ビブラートのかかった楽音波形データを読み出す際の読み出しレート（ピッチ）を、図５（ａ）（ｂ）の各処理で得たビブラート「深さ」及び「速さ」の変動値列に応じて時間的に変調する。あるいは、例えば、前記第２又は第３の手法に従うビブラート合成にあっては、図５（ａ）（ｂ）の各処理で得たビブラート「深さ」及び「速さ」の変動値列に基づき、ビブラート変調用のピッチエンベロープ波形を形成し（振幅エンベロープ波形も同時に形成するとよい）、このピッチエンベロープ波形（及び振幅エンベロープ波形）によってピッチ変調された（及び振幅変調された）楽音波形を合成する。
【００５２】
ステップＳ８２では、図５（ｃ）の処理で得た「代表ピッチ」についての楽音要素変動値列に基づき、上記ステップＳ８１で合成する楽音における定常的なピッチ（前記代表ピッチ基準値に相当するもの）をビブラートユニット毎に制御する。定常的なピッチは本来変動しないため、この定常的なピッチのビブラートユニット毎の制御は、概して、微妙な（演奏者が自覚しないような）「ゆらぎ」変調となる。また、ステップＳ８３では、図５（ｄ）の処理で得た「代表パワー」についての楽音要素変動値列に基づき、上記ステップＳ８１で合成する楽音における振幅をビブラートユニット毎に制御する。
【００５３】
本発明を実施する装置は、パソコン等の汎用コンピュータに限らず、電子楽器や自動演奏シーケンサなど、音楽演奏専用機器あるいは楽音合成専用機器等であってもよい。図７は、本実施例に従う楽音変調及び合成処理機能を具えた電子楽器の一構成例を示すブロック図である。この電子楽器においては、楽音データベースとして記憶装置２１が設けられており、この記憶装置２１には外部の（又はこの電子楽器に付属する）データ作成装置２０によって作成された楽音合成用及び変調用データが記憶される。すなわち、データ作成装置２０は、図１及び図２を参照して前述したような本発明に係る楽音データ生成処理を実行し、種々のタイプの楽音及び又は奏法について上述のようにして作成された各変調要素及び楽音要素に対応する「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とを含むデータ構造からなる楽音合成用及び変調用データがデータベースとして記憶装置２１に記憶される。
【００５４】
図７において、鍵盤回路５０は、演奏を行うための鍵を複数有する。検出回路５１は、鍵盤回路５０の鍵の押鍵を示すノートオン信号、離鍵を示すノートオフ信号、音高情報を示すキーコード信号および押鍵速度を示すベロシティを検出して、楽音制御データ供給回路５７に供給する。検出回路５２は、鍵盤回路５０の鍵の押鍵圧力を示すアフタタッチ信号を検出して、楽音制御データ供給回路５７に供給する。
【００５５】
パネルスイッチ５５は、マニュアル操作で音量調整、音色選択または種々の効果付与、変調等を行うための指示を与えるスイッチや、各種楽音要素を可変調整・制御するための操作子等を有する。スイッチ検出回路５６は、パネルスイッチ５５上のスイッチや操作子の操作状態を検出し、楽音制御データ供給回路５７に出力する。パネルスイッチ５５内の音色選択スイッチあるいは奏法選択スイッチにより所望の音色あるいは奏法を選択することができる。所望の音色あるいは奏法が選択されると、楽音制御データ供給回路５７は、該選択に応じた制御データを波形発生回路６２、ディジタルフィルタ６３、ピッチ用うねり／ゆらぎ生成回路５８、フィルタ係数ＥＧ５９、振幅用うねり／ゆらぎ生成回路６０、ビブラート深さ用うねり／ゆらぎ生成回路６９、ビブラート速さ用うねり／ゆらぎ生成回路７０に供給する。また、振幅やピッチを可変調整するための操作子が操作されると、それに応じた調整／制御データをピッチ用うねり／ゆらぎ生成回路５８あるいは振幅用うねり／ゆらぎ生成回路６０に供給する。また、ビブラート深さや速さを可変調整するための操作子が操作されると、それに応じた調整／制御データをビブラート深さ用うねり／ゆらぎ生成回路６９あるいはビブラート速さ用うねり／ゆらぎ生成回路７０に供給する。
【００５６】
楽音制御データ供給回路５７は、また検出回路５１，５２より検出されたキーイベントおよびスイッチ検出回路５６より検出されたスイッチ状態を受けて、所要の信号をドライバ５４に出力する。ドライバ５４は、入力された信号に応じて選択された音色あるいは奏法等を表示器５３に表示する。表示器５３は、例えば液晶表示器等である。
【００５７】
楽音制御データ供給回路５７は、鍵盤回路５０から検出されたキーイベントに応じて、割り当てられた所定の発音チャンネルに対応する音源部６８に楽音制御データを供給する。もし、時分割発音チャンネルが１６チャンネル備えられているとすれば、１６の音源部の内の所定のチャンネルの音源部６８に楽音制御データを供給する。すなわち、音源部６８の各構成要素は１６チャンネル時分割動作により、１６の独立した楽音を時分割で生成し、アキュムレータ６５に出力している。
【００５８】
楽音制御データ供給回路５７は、検出回路５１にて検出された演奏鍵のキーコード信号に対応するピッチデータ（時変動しない定常的なピッチを示すデータ）を加算器６１に供給する。加算器６１において、発生しようとする楽音の定常的ピッチを示すピッチデータに対してビブラート変調用のピッチ制御データを加算することで時系列的に変化するピッチ設定情報を生成し、これを波形発生回路６２に供給する。
【００５９】
ビブラート深さ用うねり／ゆらぎ生成回路６９は、楽音制御データ供給回路５７から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置２１から、当該選択された音色及びビブラート奏法についてのビブラート深さ用の「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とを取得し、図５（ａ）のステップＳ４１〜Ｓ４３で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についてのビブラート「深さ」の、制御された、変動値列を生成する。ビブラート速さ用うねり／ゆらぎ生成回路７０は、楽音制御データ供給回路５７から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置２１から、当該選択された音色及びビブラート奏法についてのビブラート速さ用の「ゆらぎ」値列を取得し（そして、もしあれば、ビブラート速さ用の「うねり」値列も取得し）、図５（ｂ）のステップＳ５１〜Ｓ５３で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についてのビブラート「速さ」の、制御された、変動値列を生成する。
【００６０】
ビブラート波形発生器７１は、うねり／ゆらぎ生成回路６９及び７０から発生されたビブラート「深さ」の変動値列データとビブラート「速さ」の変動値列データとに基づき、これらの変動値列データによって設定される「深さ」及び「速さ」を持つビブラート変調用のエンベロープ波形を発生する。このビブラート波形発生器７１の具体的構成としては、前述した第１乃至第３の手法に応じて適宜必要な構成を採用するものとする。例えば、記憶装置２１からオリジナルの必要なエンベロープ波形データを取得するようにしてもよいし、あるいは内部に低周波発振器等を具備していてもよい。なお、ビブラート波形発生器７１からは、ピッチ変調用のエンベロープ波形（例えば図３（ｂ）の様なビブラート用ピッチエンベロープ）のみならず、振幅変調用のエンベロープ波形（例えば図３（ａ）の様なビブラート用振幅エンベロープ）も発生するようにするとよい。ビブラート波形発生器７１から発生されたピッチ変調用のエンベロープ波形は、ピッチデータ変調用の加算器６１に供給される。
【００６１】
ピッチ用うねり／ゆらぎ生成回路５８は、楽音制御データ供給回路５７から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置２１から、当該選択された音色及びビブラート奏法についての上記「代表ピッチ」についての「ゆらぎ」値列を取得し（そして、もしあれば、「代表ピッチ」用の「うねり」値列も取得し）、図５（ｃ）のステップＳ６１〜Ｓ６３で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についてのビブラート「代表ピッチ」の、制御された、変動値列を生成する。この生成された「代表ピッチ」の変動値列は、加算器６１に与えられる。
【００６２】
こうして、加算器６１において、発生しようとする楽音の定常的ピッチを示すピッチデータに対して上記のように可変制御されて生成されたピッチ変調用のエンベロープ波形及び各ユニット毎の「代表ピッチ」の変動値列データを加算することで、ビブラート変調されたピッチ設定情報を生成し、これを波形発生回路６２に供給する。例えば、ピッチデータが周波数の対数を表すセントスケールで表されているとすると、ピッチ変動値列と加算されることにより楽音ピッチの対数信号を形成する。周波数の対数が聴感上はリニアとなるため、ピッチデータと係数の加算による変調は、自然なピッチ変調を与えるのに便宜である。しかし、これに限らず、ピッチデータはリニア表現であってもよい。なお、このほか、例えば楽音の立上がりにおけるアタックピッチの揺れや周波数の揺れを模擬するエンベロープを生成する回路を更に設け、これによって、楽音立上り時のアタックピッチ変調効果を付加した波形を生成するようにしてもよいが、詳細は省略する。
【００６３】
波形発生回路６２は、ノートオン信号またはノートオフ信号により、波形生成の開始と終了を制御され、楽音制御データ供給回路５７から供給される波形指定信号に応じた形状の波形を生成し、ディジタルフィルタ６３に供給する。すなわち、波形発生回路６２は、楽音制御データ供給回路５７から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置２１から、当該選択された音色及びビブラート奏法についての音色要素波形を取得し、これを加算器６１から与えられるピッチ設定情報に応じたピッチで読出し生成する。なお、波形発生回路６２における音源方式は、このような波形メモリ音源方式に限らず、ＦＭ音源、ＡＭ音源、高調波合成音源または物理モデル音源等、任意の音源方式により構成してもよい。すなわち、どのような音源方式を用いようとも、少なくとも１つの変調要素の変動値列を「うねり」値列と「ゆらぎ」値列とに分離して制御するようにした本発明の利点を享受することができる。
【００６４】
ディジタルフィルタ６３は、楽音制御データ供給回路５７およびフィルタ係数ＥＧ５９から供給されるフィルタ係数等の制御データに応じて例えばカットオフ周波数を変化させ、音色制御を行う。例えば、楽音の立上がりにおいては、カットオフ周波数を上げてきらびやか音色として、時間の経過とともにカットオフ周波数を下げて落ち着いた音色に変化させることもできる。また、ビブラート変調に連動して音色要素波形の特性をフィルタ制御するようにしてもよい。
【００６５】
ディジタルフィルタ６３から出力された信号は、エンベロープ乗算回路６４に供給され、振幅用うねり／ゆらぎ生成回路６０にて生成された各ユニット毎の「代表パワー」に応じた振幅制御エンベロープ波形との乗算が行われ、発生する楽音波形の音量振幅を制御する。また、ビブラート波形発生器７１から発生されたビブラートに応じた振幅変調用のエンベロープ波形もエンベロープ乗算回路６４に供給され、発生する楽音波形の音量振幅を制御する。なお、この振幅用うねり／ゆらぎ生成回路６０では、振幅用うねり／ゆらぎ生成に限らず、アタック部やリリース部用の音量振幅制御エンベロープ波形も生成するようにしてよいが、その詳細説明は省略する。振幅用うねり／ゆらぎ生成回路６０は、楽音制御データ供給回路５７から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置２１から、当該選択された音色及びビブラート奏法についての上記「代表パワー」の「うねり」値列（第１の成分値列）と「ゆらぎ」値列（第２の成分値列）とを取得し、図５（ｄ）のステップＳ７１〜Ｓ７３で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についての各ユニット毎の「代表パワー」の変動値列を生成する。
【００６６】
エンベロープ乗算回路６４から出力された楽音信号は、音源部６８の出力信号となり、発音チャンネルの数だけの楽音信号が時分割でアキュムレータ６５に供給される。アキュムレータ６５は、供給された各発音チャンネルの楽音信号を合成して、Ｄ／Ａ変換器６６に供給する。Ｄ／Ａ変換器６６に供給された楽音信号は、ディジタル信号からアナログ信号に変換され、サウンドシステム６７において発音される。
【００６７】
なお、演奏中にリアルタイムでパネルスイッチ５５において、各回路５８，５９，６０，６９，７０に対する制御データ又はパラメータをマニュアルで入力することができる。また、エディットモードにおいて、楽音発生に対して非リアルタイムに、パネルスイッチ５５内のパラメータスイッチや操作子を操作することにより、各回路５８，５９，６０，６９，７０に対する制御データ又はパラメータを可変設定・調整することもできる。また、選択・制御・調整用の操作手段としては、パネルスイッチ５５に限らず、マウスやテンキー、アルファニューメリックキーボード、演奏用又は各種操作用のタッチパッドなど、適宜の操作手段を用いてよい。
本発明は、ビブラートに限らず、トレモロその他の変調奏法において応用可能である。
【図面の簡単な説明】
【００６８】
【図１】本実施例に係るデータ作成処理のために使用するコンピュータの構成例を示すブロック図。
【図２】本実施例に係るデータ作成処理の処理手順の一例を示すフロー図。
【図３】本実施例におけるビブラート変調された波形データの分析例を示す波形図。
【図４】ビブラート1周期における各種変調要素の分析例を示す波形図。
【図５】本実施例におけるうねり及びゆらぎ制御／楽音変調及び合成プログラムの一例を示すフロー図。
【図６】図５のうねり及びゆらぎ制御／楽音変調及び合成プログラムに従ううねり値列及びゆらぎ値列の時間軸伸縮制御例とうねり値の倍率調整例をイラスト的に示す波形図。
【図７】本実施例に従う楽音変調及び合成処理機能を具えた電子楽器の一構成例を示すブロック図。
【符号の説明】
【００６９】
１  ＣＰＵ（中央処理部）
２  ＲＯＭ（リードオンリーメモリ）
３  ＲＡＭ（ランダムアクセスメモリ）
４  入力操作装置
５  表示器
６  ハードディスク
２０  データ作成装置
２１  記憶装置
５８  ピッチ用うねり／ゆらぎ生成回路
６０  振幅用うねり／ゆらぎ生成回路
６９  ビブラート深さ用うねり／ゆらぎ生成回路
７０  ビブラート速さ用うねり／ゆらぎ生成回路
【図１】
2007093795.tif 000003
【図２】
2007093795.tif 000004
【図３】
2007093795.tif 000005
【図４】
2007093795.tif 000006
【図５】
2007093795.tif 000007
【図６】
2007093795.tif 000008
【図７】
2007093795.tif 000009