JP2007093795A - 楽音データ生成方法及び装置 - Google Patents

楽音データ生成方法及び装置 Download PDF

Info

Publication number
JP2007093795A
JP2007093795A JP2005280639A JP2005280639A JP2007093795A JP 2007093795 A JP2007093795 A JP 2007093795A JP 2005280639 A JP2005280639 A JP 2005280639A JP 2005280639 A JP2005280639 A JP 2005280639A JP 2007093795 A JP2007093795 A JP 2007093795A
Authority
JP
Japan
Prior art keywords
value sequence
fluctuation
component value
variation
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005280639A
Other languages
English (en)
Inventor
Junji Kuroda
淳二 黒田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2005280639A priority Critical patent/JP2007093795A/ja
Publication of JP2007093795A publication Critical patent/JP2007093795A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract


【課題】 サンプリングした波形データに含まれるビブラートなどの変調要素を高品質に制御する。
【解決手段】 演奏者による楽器の生演奏によって得られた波形データ中のビブラートなどの変調要素の時変動特性には、演奏者が意図した若しくは制御可能な変動成分(うねり)と、演奏者が意図しない若しくは制御できない変動成分(ゆらぎ)とが有ることに着目し、両成分を分離して、独立に調整・制御しうるようにすることで、有効かつ高品質な変調制御/楽音合成を行う。変調のかけられたオリジナル波形データにおける少なくとも1つの特定の変調要素(変調の深さ及び速さの少なくとも一方)に関して変動値列を取得し、これを時定数的な因子に従い、「うねり」値列と「ゆらぎ」値列とに区別する。これらを独立に可変制御し、楽音変調/合成を行う。
【選択図】 図2

Description

この発明は、電子楽器や自動演奏装置等その他の楽音発生装置において利用しうるものであり、サンプリングした波形データに含まれるビブラートなどの変調要素を高品質に制御することを可能にする楽音データ生成方法及び装置並びに楽音合成方法及び装置に関する。
サンプリングした楽音の波形データをメモリに記憶し、このメモリに記憶した波形データを電子楽器等の音源として使用する所謂サンプラーが従来より知られている。サンプリングした波形データを音源として使用して楽音生成する場合に、サンプリングした元の波形そのものを単純に再生するのではなく、楽音再生の際に、ピッチや振幅等の楽音要素を自由に制御・調整できるようにすることが望まれる。そのような工夫を行なった従来技術として、下記特許文献1には、楽音信号をサンプリングしてPCM波形データとしてメモリに記憶する場合に、同時に、該楽音信号に含まれるゆらぎ成分(変動成分)を周波数と振幅についてそれぞれ検出し、ゆらぎデータ記憶手段に記憶することが示されている。メモリに記憶した波形データを読み出して楽音信号を再生する場合に、ゆらぎデータ記憶手段から周波数及び振幅のゆらぎデータも読み出し、これらのゆらぎデータによって読み出された波形データの周波数変調及び振幅変調をそれぞれ行い、かつ、これらの変調の深さ制御を行う。しかし、この従来技術は、PCM波形データにおける周波数や振幅についての変動成分そのものをゆらぎ成分として検出し、かつ、それらを変調制御するものでしかない。また、下記特許文献2には、サンプリングした楽音信号において時間的に変化するピッチを検出し、これに基づき楽音ピッチの時間的変化を示すピッチエンベロープ情報をメモリに記憶し、楽音再生時において、ピッチエンベロープ情報を補間することで適宜変更したピッチエンベロープを生成し、これに基づき再生楽音のピッチを設定するようにしたことが示されている。この従来技術も、楽音信号におけるピッチの時間的変動そのものを検出して記憶し、かつ、それらを変更制御して楽音再生に使用するものでしかない。
特開平5−297866号公報 特公平7−82336号公報
また、アコースティック楽器で実際に演奏されたビブラート演奏音の波形データからビブラート成分を抽出し、抽出したビブラート成分データ(ビブラート変動を示すピッチエンベロープ)を制御し、制御したビブラート成分データを用いて楽音合成を行うことにより、ビブラート制御の品質を向上させるようにした技術も従来より種々知られている(例えば下記特許文献3)。
特開平7−325583号公報
上述したような従来技術においては、例えば自然楽器で演奏された楽音をサンプリングすることで高品質な波形データを得ることができ、かつ、ビブラート等の変調演奏時のピッチや振幅の楽音要素の時間的変動をエンベロープとして検出し記憶し、再生時にこれらのエンベロープを制御することで、楽音要素の自然な変化を模倣した制御が或る程度は可能である。しかし、従来技術のようにピッチや振幅の楽音要素の時間的変動そのもののエンベロープを抽出し、制御するだけでは、演奏音における表情や人間らしさの度合いを調整することは困難であった。例えば、ピッチや振幅の変動において異なる特性又は癖を示す複数の波形データを使用してユニゾン音や和音をポリフォニック合成した場合に、合成される各音間のピッチが大きくずれて音痴に聞こえてしまったり、各音の振幅の表情がばらばらになってしまうことが起こる。このような場合、従来の技術では、それらの不都合を除去するように有効に調整することはできなかった。例えば、ピッチや振幅の変動において存在する特性又は癖を除去して一旦フラットな特性に変換して、これらのフラットな特性の波形データに元のピッチエンベロープ特性に従ってビブラート変調をかけることでビブラート変調された楽音を合成することが考えられるが、そうすると合成音が単調なものとなってしまい、アコースティック楽器音らしさが失われてしまう、という問題が生じる。
本発明は上述の点に鑑みてなされたもので、サンプリングした波形データに含まれるビブラートなどの変調要素を高品質に制御することを可能にする楽音データ生成方法及び装置並びに楽音合成方法及び装置を提供しようとするものである。更には、それらに関連するコンピュータプログラム及び該プログラムを記憶した記憶媒体、さらには、楽音変調用データの新規なデータ構造ならびに該新規なデータ構造の楽音変調用データを記憶した記憶媒体、を提供しようとするものである。
上記課題の解決のために、本発明者は、演奏者による楽器の生演奏によって得られた波形データ中のビブラートなどの変調要素の時変動特性には、演奏者が意図した若しくは制御可能な変動成分と、演奏者が意図しない若しくは制御できない変動成分とが有ることに着目し、両変動成分を区別して少なくともその一方を抽出し、これを独立に調整・制御可能とすることで、有効かつ高品質な制御が行なえる、という発想を想起した。
そこで、本発明に係る楽音データ生成方法は、変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素に関して変動値列を取得する第1のステップと、前記変動値列から、時定数的な因子に従い、少なくとも1つの時系列的な成分値列を抽出する第2のステップとを具備し、前記第2のステップで抽出される前記成分値列を少なくとも用いて前記特定の変調要素の前記変動値列を表現することを特徴とする。
本発明は、演奏者が意図した若しくは制御可能な変調要素における変動成分は、時定数的な因子を持つとの認識に立つことで、前記変動値列から、時定数的な因子に従い、少なくとも1つの時系列的な成分値列を抽出することを特徴とする。これにより、変調要素において、例えば、演奏者が意図した若しくは制御可能な変動成分と、演奏者が意図しない若しくは制御できない変動成分とを、算術的若しくは計量的に分析しうるようになる。前記変動値列から時定数的な因子に従い少なくとも1つの時系列的な成分値列を抽出することは、一実施例として、時定数的な因子に依存して、変動値列を2つの時系列的な成分値列に分離抽出することからなる。例えば、前記変動値列から時定数の相対的に大きな変動成分を抽出し、第1の成分値列として生成し、前記変動値列から時定数の相対的に小さな変動成分を抽出し、第2の成分値列として生成するようにしてよい。時定数の相対的に大きな変動成分の抽出は、典型的には、適宜の平滑化関数による処理又はローパスフィルタ処理等によって適宜行なえる。本明細書ではこれらの処理を総称して「平滑化」ということにする。時定数の相対的に大きな変動成分を抽出することにより、変調要素において、演奏者が意図した若しくは制御可能な変動成分の抽出を行なうことができる。以下説明する実施例では、このような時定数の相対的に大きな変動成分すなわち演奏者が意図した若しくは制御可能な変動成分を、「うねり」ということにする。一実施例において、変動値列を平滑化することに基づき生成される第1の成分値列とは、「うねり」値列である。一方、時定数の相対的に小さな変動成分とは、演奏者が意図しない若しくは制御できない変動成分に対応付けることができ、これは、一例として、変動値列に対する第1の成分値列すなわち「うねり」値列の残差(又は比)として算術的に生成することができる。以下説明する実施例では、変調における、このような時定数の相対的に小さな変動成分すなわち演奏者が意図しない若しくは制御できない変動成分を、「ゆらぎ」ということにする。すなわち、一実施例において、変動値列と第1の成分値列(「うねり」値列)との差分に基づき生成される第2の成分値列とは、「ゆらぎ」値列である。
このように、本発明の実施例によれば、特定の変調要素(変調の深さあるいは速さの少なくとも一方)の変動値列を、時定数的特性の異なる少なくとも第1及び第2の成分値列(「うねり」値列と「ゆらぎ」値列)に分離して表現することができる。これにより、これらを使用して楽音波形合成を行なうに際して、第1の成分値列(「うねり」値列)と第2の成分値列(「ゆらぎ」値列)とを独立に可変調整・制御することができるようになり、高品質な制御が行なえる。例えば、ビブラート変調において異なる特性又は癖を示す複数の波形データを使用してユニゾン音や和音をポリフォニック合成するような場合に、変調要素における、演奏者が意図した若しくは制御可能な変動成分に相当する第1の成分値列(「うねり」値列)の方を適宜可変調整し、変調要素における、演奏者が意図しない若しくは制御できない変動成分に相当する第2の成分値列(「ゆらぎ」値列)はあまり又はほとんど可変制御しないようにすることで、バランスのとれた調整を適切かつ容易に行なうことができるようになる。すなわち、本発明の実施例によれば、複音合成の際に、変調された特性を持つそれぞれの楽音における変調の表情やゆらぎのばらつき度合いを可変制御することができる。さらには、複音合成に限らず、楽音合成一般において、本発明の実施例に従い変調要素における「うねり」と「ゆらぎ」として分離抽出された変動成分を独立に制御することにより、今までになかった楽音制御パラメータ、例えば、合成音の表情の度合いや、アコースティック楽器特有の人間的なゆらぎなど、を可変制御することができるようになる。
実施例において、前記第1のステップは、前記変調のかけられたオリジナル波形データにおける個々の変調サイクルの区切りを決定するステップと、決定された区切りに従う各変調サイクル毎に、前記少なくとも1つの特定の変調要素の値をそれぞれ検出し、検出した各変調サイクル毎の該特定の変調要素の値からなるデータ列を、離散的な前記変動値列として、生成するステップとを含む。
実施例において、更に、前記決定するステップで区切られた各変調サイクル毎の前記オリジナル波形データに基づき、各変調サイクル毎の前記オリジナル波形データにおける少なくとも1つの特定の楽音要素に関する代表値を決定し、決定した代表値からなる離散的な楽音要素変動値列を生成する生成ステップと、前記楽音要素変動値列から、時定数的な因子に従い、少なくとも1つの時系列的な楽音要素成分値列を抽出する抽出ステップとを具備し、前記抽出ステップで抽出される前記成分値列を少なくとも用いて前記特定の楽音要素の前記楽音要素変動値列を表現することを特徴とする。実施例において、前記抽出ステップは、前記楽音要素変動値列から、時定数的特性の異なる少なくとも第1及び第2の楽音要素成分値列を分離抽出し、該第1及び第2の楽音要素成分値列の組み合わせで、前記特定の楽音要素の前記楽音要素変動値列を表現することを特徴とする。実施例において、前記抽出ステップは、前記楽音要素変動値列を平滑化することに基づき前記第1の楽音要素成分値列を生成し、前記楽音要素変動値列と該第1の成分値列との演算に基づき前記第2の成分値列を生成する。
楽音合成の観点によると、本発明に係る楽音データ生成方法は、少なくとも1つの前記成分値列を、その値の大きさ及び時間軸の少なくとも一方について可変制御する第3のステップと、第3のステップで可変制御された前記成分値列に基づく特徴を持つ前記特定の変調要素で変調された楽音データを生成する第4のステップとを更に具える。
更に本発明によれば、変調のかけられたオリジナル波形データにおける特定の変調要素(変調の深さあるいは速さの少なくとも一方)の変動値列から時定数的な因子に従い抽出された少なくとも1つの成分値列を記憶した記憶手段を使用して、楽音を合成する方法が提供される。この楽音合成方法は、前記記憶手段から読み出す少なくとも1つの前記成分値列の時間軸を、任意の発音時間長に従い、伸張又は圧縮制御する第1ステップであって、これにより、該任意の発音時間長に見合った時間長を持つ前記成分値列を得るようにしたものと、前記記憶手段から読み出された又は前記第1ステップで時間軸が伸縮制御された少なくとも1つの前記成分値列の値を可変制御する第2ステップと、前記記憶手段から読み出された又は前記第1又は第2ステップで制御された少なくとも1つの前記成分値列に基づき、前記特定の変調要素の前記変動値列を生成する第3ステップと、生成された変動値列を少なくとも用いて、前記特定の変調要素で変調された前記発音時間長にわたる楽音データを生成する第4ステップとを具備することを特徴とする。
本発明は、上述のような方法の発明として実施できるのみならず、上述と同様の特徴を持つ装置の発明としても実施できる。さらには、上述と同様の特徴を持つ手順からなるコンピュータプログラムとしても実施でき、また、該プログラムを記憶した記憶媒体としても実施でき、さらには上述のような第1及び第2の成分値列(「うねり」値列と「ゆらぎ」値列)という新規なデータ構造からなる楽音変調用データを記憶したコンピュータ読み取り可能な記憶媒体としても実施できる。
以下、添付図面を参照してこの発明の実施の形態を詳細に説明しよう。
[データ作成処理]
まず、変調のかけられたオリジナル波形データに基づき、特定の変調要素についての「うねり」値列と「ゆらぎ」値列とを生成する、本発明に係る楽音データ生成方法及び装置及びプログラムの実施例(総称して「データ作成処理」ということにする)につき説明する。なお、以下の実施例では、ビブラート変調のかけられたオリジナル波形データに基づき処理を行う例につき説明する。
図1は、本実施例に係るデータ作成処理のために使用するコンピュータの構成例を示す。図示の構成は単なる例示であり、通常知られた適宜の構成のコンピュータを使用してよい。図示例において、コンピュータは、周知のように、CPU(中央処理部)1、ROM(リードオンリーメモリ)2、RAM(ランダムアクセスメモリ)3、キーボードやマウスなどの入力操作装置4、表示器5、ハードディスク6、CD(コンパクトディスク)及びFD(フレキシブルディスク)などの着脱式記憶媒体のためのメモリインタフェース7、外部とデータの授受を行なうための通信インタフェース8、波形データを入力するための波形入力インタフェース9、A/D変換器10などを備えている。
図2は、本実施例に係るデータ作成処理の処理手順の一例を示すフロー図であり、この処理プログラムは、CD(コンパクトディスク)やその他の記憶媒体に記憶されていて、図1のコンピュータ内にインストールされ、CPU1によって実行される。
図2は大別して2つのステップS1,S2からなる。第1のステップS1は、変調のかけられたオリジナル波形データにおける少なくとも1つの特定の変調要素に関して時系列的な変動値列を取得するものであり、このステップS1で行う処理の好適な一例を例示すると、次の通りである。
ステップS11は、分析すべきオリジナル波形データを取得するステップである。その詳細は、例えば、図1において、ビブラート奏法で演奏した生演奏音をマイクロフォン12でピックアップし、これをA/D変換器10でデジタル波形データ(PCM波形データ)に変換し、インタフェース9及びコンピュータバス11を介してコンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存する。図3(c)は、分析すべきオリジナル波形データの一例を示す。
次のステップS12では、該取得したオリジナル波形データのピッチエンベロープ及び振幅(パワー)エンベロープを抽出し、これに基づき、例えば1音分の該オリジナル波形データにつき、該オリジナル波形データにおける個々のビブラート周期(すなわち変調サイクル)の区切りを決定する(変調特性の解析)。このステップS12の処理(変調特性の解析処理)それ自体は公知技術を用いて行えばよい。例えば、抽出したピッチエンベロープに基づき、サイクリックなビブラートのピッチ変動(ビブラートの山と谷)を把握し、この把握に基づき個々のビブラート周期(変調サイクル)の区切り位置を決定するようにすればよい。その場合、ピッチエンベロープに基づき決定された区切り位置に従って振幅(パワー)エンベロープ及びオリジナル波形データも区切ればよい。図3(b)は(c)のオリジナル波形データに対応するピッチエンベロープの一例を示し、(a)は振幅(パワー)エンベロープの一例を示す。以下、便宜上、区切られた各ビブラート周期に対応する区間を「ユニット」ということにする。なお、ビブラート変調とはいえ、ピッチのみに限らず、振幅(パワー)も適宜に周期的な変動を示すので、高品質なビブラート分析及び合成のために、この実施例では振幅(パワー)エンベロープも抽出して後述するように利用するようにしているが、これは発明の実施にとって必須事項ではない。
なお、1「ユニット」の始点と終点を、ビブラート1周期中のどの位相に設定するかは、任意である。図3(b)では、ピッチ変動のピークからピークまでを1「ユニット」つまり1ビブラートサイクルとして区切っている。しかし、これに限らず、例えば、或る基準ピッチに対する正方向のゼロクロス点の間を1「ユニット」つまり1ビブラート周期の区間として区切るようにしてもよいし、あるいは或る基準ピッチに対する負方向のゼロクロス点の間を1「ユニット」つまり1ビブラート周期の区間として区切るようにしてもよい。また、ピッチ変動の谷から谷までを1ビブラート周期の区間として区切ってもよい。
なお、オリジナル波形データのピッチエンベロープ(つまりビブラート波形)及び振幅(パワー)エンベロープの抽出の仕方としては、従来公知の任意の手法(ローパスフィルタや積分など)を用いてもよいし、次に述べるように、解析的手法によって離散的データとして求めるようにしてもよい。すなわち、公知の波形周期分析/判別技術を用いてオリジナル波形データの波形を1周期毎に判別し、判別した1周期波形を1区間として、該1周期波形(1区間)内の各サンプル振幅の実効値(パワー値)の平均値を算出してこの平均振幅値を当該区間の振幅の代表値とし、このような離散的な各1周期波形毎の振幅代表値の時系列的データ列を、振幅(パワー)エンベロープデータとする。また、該1周期波形(1区間)の時間長の逆数を周波数(楽音ピッチ)として算出し、これを当該区間のピッチの代表値とし、このような離散的な各1周期波形毎のピッチ代表値の時系列的データ列を、ピッチエンベロープデータとする。あるいは、別の例として、判別した所定複数周期波形を1区間として、該複数周期波形(1区間)における各サンプル振幅の実効値(パワー値)の平均値を算出してこの平均振幅値を当該区間の振幅の代表値とし、このような離散的な各複数周期波形毎の振幅代表値の時系列的データ列を、振幅(パワー)エンベロープデータとする。また、該複数周期波形(1区間)における各周期毎の時間長の逆数を周波数(楽音ピッチ)としてそれぞれ算出し、この平均値を算出し、この平均ピッチを当該区間のピッチの代表値とし、このような離散的な各複数周期波形毎のピッチ代表値の時系列的データ列を、ピッチエンベロープデータとする。
次のステップS13では、決定された各ユニット(各ビブラート1周期=変調サイクル)毎に、ビブラート変調の「深さ」及び/又は「速さ」という特定の変調要素の値をそれぞれ検出するための解析又は演算を行い、その結果、検出した各変調サイクル毎の該特定の変調要素の値からなるデータ列を、離散的な変動値列として、生成する。ここで行う「深さ」の解析(つまり定量化)の仕方の一例について図4を参照して説明する。図4は、1ユニット分のピッチエンベロープ(つまりビブラート波形)を幾分拡大して示している。P1,P2は、このユニットの2つのピーク(始点と終点)のピッチを示す。B1は、このユニットの1つのボトムのピッチ(最低ピッチ)を示す。Pavは、2つのピークP1,P2の平均値である(又はP1,P2間を結ぶ直線上のB1の時間位置に該当する値としてもよい)。このピーク平均ピッチPavとボトムピッチB1との差を、このユニットにおける「深さ」DP1として定量的に表す。勿論、これ以外の適宜の手法で、「深さ」を定量化してよく、要はピッチ変動の振れ幅が表現できればよい。図3(b)には、そのようにして求められた各ユニット毎の深さが、DP1,DP2,DP3,DP4,DP5の符号を伴って黒ドットで例示されている。この各ユニット毎の深さデータDP1〜DP5・・・が、特定の変調要素たる「変調深さ」に関する時系列的な(且つ離散的な)変動値列である。次に、「速さ」の解析(定量化)について説明すると、これは、当該ユニット(ビブラート1周期)の時間長を計測し、その逆数を「速さ」データとして求めればよい。そのようにして求められた各ユニット毎の「変調の速さ」のデータをSP1,SP2,SP3,SP4,SP5・・・という符号を引用して表すことにする。この各ユニット毎の速さデータSP1〜SP5・・・が、別の特定の変調要素たる「速さ」に関する時系列的な(且つ離散的な)変動値列である。
次のステップS14では、決定された各ユニット(各ビブラート1周期=変調サイクル)毎に、オリジナル波形データにおける楽音の振幅及び/又はピッチという特定の楽音要素に関する代表値を決定するための解析又は演算を行い、その結果、決定した各変調サイクル毎の該特定の楽音要素の代表値からなるデータ列を、離散的な楽音要素変動値列として、生成する。これらの楽音要素変動値列は、ビブラート変調のかけられたオリジナル波形データにおけるこれらの楽音要素の各ビブラート周期(変調サイクル)毎の特性を代表的に示しており、ビブラート変調のかけられた楽音波形の合成に際して、これらの楽音要素に対しても「うねり」成分及び/又は「ゆらぎ」成分の制御を行い得るようにするために、本実施例において導入されている。
まず、ステップS14における当該ユニットに関する代表ピッチの求め方の一例について説明する。例えば、当該ユニットにおける2つのピークP1,P2の平均値Pavから「当該ユニットの深さDP1に或る比率を掛けた積」を引き、その差を、代表ピッチとする。或る比率とは、例えば1/4など、適宜に定めた値である。図4には、このようにして求めた代表ピッチRPの一例が示されている。また、図3(b)には、各ユニット毎に求めた代表ピッチRP1,RP2,RP3,RP4,RP5・・・が例示的に示されている。この時系列的なデータ列が、代表ピッチに関する離散的な楽音要素変動値列である。代表ピッチの求め方は、その他、どのような手法(例えば、ピッチエンベロープから平均ピッチを詳しく計算する、あるいは、逆に、ピークP1とボトムB1の単純な平均ピッチを計算する、etc.)を用いてもよい。
ステップS14における当該ユニットに関する代表パワー(振幅)の求め方としては、例えば、当該ユニットの振幅エンベロープからその平均振幅(パワー)を詳しく計算することで、当該ユニットに関する代表パワー(振幅)を求める。図3(a)には、そのようにして求めた各ユニット毎の代表パワーRA1,RA2,RA3,RA4,RA5・・・が黒ドットで例示的に示されている。この時系列的なデータ列が、代表パワーに関する離散的な楽音要素変動値列である。
生成された深さ及び速さ(変調要素)についての変動値列、並びに代表ピッチ及び代表パワーについての楽音要素変動値列は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に一時保存される。
次に、ステップS15では、上述した各変動値列における基準値をそれぞれ求める。この基準値とは、現在分析している1音分のオリジナル波形データにおけるビブラート特性に係る各変調要素(「深さ」、「速さ」)及び楽音要素(「代表ピッチ」、「代表パワー」)についての、それぞれの代表的な値であり、後述する「ゆらぎ」分析の際に必要に応じて利用される。勿論、この基準値を変動値列等の各分析データと一緒に記憶しておき、当該ビブラート特性(変調特性)を代表するインデックス情報等として再生処理に際して利用するようにしてもよい。各要素の基準値の求め方の一例は次の通りであるが、これに限らず、その他適宜の手法を用いて、それぞれの要素の変動値列の基準となる適当な値を定めるようにしてよい。
「深さ」: 深さについての変動値列中の各データ(各ユニット毎の深さデータDP1〜DP5・・・)を平均し、その平均値を深さ基準値(深さ代表値)とする。
「速さ」: 速さについての変動値列中の各データ(各ユニット毎の速さデータSP1〜SP5・・・)を平均し、その平均値を速さ基準値(速さ代表値)とする。
「代表パワー」: 代表パワーについての楽音要素変動値列中の各データ(各ユニット毎の代表パワーRA1〜RA5・・・)を平均し、その平均値を代表パワー基準値(代表パワー代表値)とする。
「代表ピッチ」: 現在分析している1音分のオリジナル波形データのノートピッチを代表ピッチ基準値(代表ピッチ代表値)とする。すなわち、例えばC4,C#4等の音階ノートのピッチを代表ピッチ基準値とする。しかし、これに限らず、代表ピッチについての楽音要素変動値列中の各データ(各ユニット毎の代表ピッチRP1〜RP5・・・)を平均し、その平均値を代表ピッチ基準値(代表ピッチ代表値)としてもよい。
図3(a),(b)におけるラインRa,Rpは、代表ピッチ基準値(代表ピッチ代表値)Ra及び代表ピッチ基準値(代表ピッチ代表値)Rpを示す。
上記第1のステップS1の変形例として、変調のかけられたオリジナル波形データをコンピュータに付属するマイクロフォン12でピックアップする手法で取得するのではなく、通信インタフェース8を介して外部から取り込んだり、メモリインタフェース7を介して着脱式記憶媒体13から取り込むようにしてもよい。更に、別の変形として、他の図示しない波形分析装置あるいはコンピュータ等を用いて既に作成された深さ及び速さ(変調要素)についての変動値列データ並びに代表ピッチ及び代表パワーについての楽音要素変動値列データを、通信インタフェース8を介して外部から取り込んだり、メモリインタフェース7を介して着脱式記憶媒体13から取り込むことで、これらの変動値列を取得するようにしてもよい。
次に、第2のステップS2では、上記のように第1のステップS1で取得した各変調要素についての変動値列を、時定数的な因子に従い、それぞれ、少なくとも1つの時系列的な成分値列に分離する。本実施例では、「深さ」の変動値列に関しては、第1の成分値列として、時定数の相対的に大きな変動成分(すなわち演奏者が意図した若しくは制御可能な変動成分)に相当する「うねり」値列を生成し、第2の成分値列として、時定数の相対的に小さな変動成分(すなわち演奏者が意図しない若しくは制御できない変動成分)に相当する「ゆらぎ」値列を生成する。また、「速さ」の変動値列に関しては、「うねり」値列を求めることなく、時定数の相対的に小さな変動成分の成分値列つまり「ゆらぎ」値列を生成する。
詳しくは、ステップS21では、深さ変動値列DP1〜DP5・・・を平滑化処理することで、時定数の相対的に大きな変動成分を抽出し、これを「深さ」の「うねり」値列(第1の成分値列)として生成する。時定数の相対的に大きな変動成分を抽出するとは、換言すれば、深さ変動値列における細かな変化に追従しないようにし、滑らかな変動成分を抽出することである。平滑化処理の具体的手法は、ローパスフィルタ演算を施す手法、あるいは、移動メディアン(中央値)法、各種(単純、加重、指数平滑等)の移動平均法、移動モード法、ガウシアンフィルタを用いる手法、ディスプレイ表示又はプリントアウトされた変動列のプロット画像を指でなぞって平滑化プロットを手動描画作成する手法など、如何なる手法を用いてもよく、また、1手法のみに依らずに複数の手法を組み合わせて使用してもよい。生成された「深さ」の変調要素についての「うねり」値列(第1の成分値列)は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存される。図3(b)における白ドットは同図中で黒ドットで示された深さ変動値列を平滑化することで得られた「深さ」の「うねり」値列(第1の成分値列)の一例を示す。
次のステップS22では、第1のステップS1で取得した深さ変動値列の各データDP1〜DP5・・・と、これに対応して上記ステップS21で生成された「うねり」値列(第1の成分値列)との差分をそれぞれ各ユニット毎に演算し、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「深さ」の「ゆらぎ」値列(第2の成分値列)として生成する。生成された「深さ」についての「ゆらぎ」値列(第2の成分値列)は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存される。図3(b)における各ユニット毎の白ドットと黒ドットとの差分値が「深さ」についての「ゆらぎ」値を示す。
ステップS23では、第1のステップS1で取得した速さ変動値列の各データSP1〜SP5・・・の、ステップS15で生成した「速さ基準値」(速さ代表値)に対する差を求め、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「速さ」の「ゆらぎ」値列として生成する。生成された「速さ」についての「ゆらぎ」値列は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存される。なお、「速さ」の変動値列SP1〜SP5・・・に関して「うねり」値列を敢えて抽出しない理由は、ビブラートの速さにおいて上記「うねり」に相当する変動はあまり生じないだろうとの前提に立っている。しかし、これに限らず、「速さ」の変動値列に関しても、「深さ」の変動値列の場合と同様に、「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)の両方を抽出するようにしてもよい。
次に、第3のステップS3では、上記のように第1のステップS1で取得した各楽音要素についての変動値列を、時定数的な因子に従い、それぞれ、少なくとも1つの時系列的な成分値列に分離する。本実施例では、「代表パワー」の変動値列に関しては、第1の成分値列として、時定数の相対的に大きな変動成分(すなわち演奏者が意図した若しくは制御可能な変動成分)に相当する「うねり」値列を生成し、第2の成分値列として、時定数の相対的に小さな変動成分(すなわち演奏者が意図しない若しくは制御できない変動成分)に相当する「ゆらぎ」値列を生成する。また、「代表ピッチ」の変動値列に関しては、「うねり」値列を求めることなく、時定数の相対的に小さな変動成分の成分値列つまり「ゆらぎ」値列を生成する。
詳しくは、ステップS31では、「代表パワー」の変動値列RA1〜RA5・・・を平滑化処理し、求めた各ユニット毎の平滑化値とステップS15で生成した「代表パワー基準値」(代表パワー代表値)との差を求めることで、時定数の相対的に大きな変動成分を抽出し、これを「代表パワー」の「うねり」値列(第1の楽音要素成分値列)として生成する。平滑化処理の具体的手法は、前述と同様、適宜の手法を用いてよい。生成された「代表パワー」についての「うねり」値列(第1の楽音要素成分値列)は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存される。図3(a)における白ドットは同図中で黒ドットで示された代表パワー変動値列に基づき演算された「代表パワー」の「うねり」値列(第1の楽音要素成分値列)の一例を示す。
次のステップS32では、第1のステップS1で取得した「代表パワー」の変動値列の各データRA1〜RA5・・・とステップS15で生成した「代表パワー基準値」(代表パワー代表値)との差と、変動値列に対応して上記ステップS31で生成された「うねり」値列(第1の楽音要素成分値列)との差分をそれぞれ各ユニット毎に演算し、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「代表パワー」の「ゆらぎ」値列(第2の楽音要素成分値列)として生成する。生成された「代表パワー」についての「ゆらぎ」値列は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存される。図3(a)における各ユニット毎の白ドットと黒ドットとの差分値が「代表パワー」についての「ゆらぎ」値を示す。
ステップS33では、第1のステップS1で取得した「代表ピッチ」の変動値列の各データRP1〜RP5・・・の、ステップS15で生成した「代表ピッチ基準値」(代表ピッチ代表値)に対する差を求め、その結果得られる各差分値列を、時定数の相対的に小さな変動成分に相当する、「代表ピッチ」の「ゆらぎ」値列として生成する。生成された「代表ピッチ」についての「ゆらぎ」値列は、コンピュータ内の適宜のメモリ(RAM3又はハードディスク6など)に保存される。なお、「代表ピッチ」の変動値列RP1〜RP5・・・に関して「うねり」値列を敢えて抽出しない理由は、ビブラートの最中にその基準ピッチが意図的に変更されることはないので、上記「うねり」に相当する変動はほとんど生じないだろうとの前提に立っている。しかし、これに限らず、「代表ピッチ」の変動値列に関しても、「代表パワー」の変動値列の場合と同様に、「うねり」値列(第1の楽音要素成分値列)と「ゆらぎ」値列(第2の楽音要素成分値列)の両方を抽出するようにしてもよい。
なお、各変動値列における時定数の相対的に小さな変動成分に相当する、「ゆらぎ」値列(第2の成分値列)の生成の仕方は、上記のような差分演算によるものに限らず、割り算あるいは掛け算などにより比を求める手法など、他の適宜の手法を用いてもよい。
また、ステップS21,S22,S31,S32においては、変動値列を上記のように「うねり」と「ゆらぎ」に対応する2つの成分値列に分離しているが、本発明の実施にあたって、必要に応じて、更に余分の適宜の成分値列を変動値列から分離生成するようにしてもよい。
[楽音合成処理=「うねり」と「ゆらぎ」の制御]
次に、上記のように生成された各変調要素及び楽音要素に対応する「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とを用いて楽音合成を行う実施例につき説明する。この楽音合成処理は、鍵盤等の演奏操作手段による演奏に応じてあるいは自動演奏の実行に伴ってリアルタイムに行うようにしてもよいし、あるいは、予め用意された演奏データに基づき非リアルタイムに行うようにしてもよい。
この楽音合成処理のためには、一例として、図1に示したような構成のコンピュータをハードウェアとして使用し、図5(a)〜(e)に示すようなうねり及びゆらぎ制御/楽音合成プログラムを該コンピュータ内にインストールして、CPU1によって該プログラムを実行する。そのために、種々のタイプの楽音のビブラート奏法について上述のようにして作成された各変調要素及び楽音要素に対応する「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とを含むデータ構造からなる楽音変調用及び楽音合成用データのデータベースが適宜の記憶装置(例えばハードディスク6)内に構成されている。なお、図1のコンピュータにおいては、楽音波形合成又は発生を行うために楽音合成部14及びスピーカ15等の必要なハードウエア資源及びソフトウェア資源が設けられている。公知のように、楽音合成部14は、ハードウェア音源装置によって構成してもよいし、ソフトウェア音源によって構成してもよい。
ビブラート変調された楽音信号を合成するための基本的な手法には、種々の手法があるが、本発明に従う「うねり」と「ゆらぎ」を考慮した高品質な変調制御技術は、どのような基本的な手法においても適用することができる。例えば、その第1の手法は、図3(c)に示すようなビブラート変調のかけられたオリジナル波形データそのもの(又はそれと同じような波形データ)を上記データベース内に記憶しておき、楽音合成時に、このオリジナル波形データにおける変調度合いを可変制御するために上記「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)を用いる手法である。この第1の手法では、ビブラート変調特性から音色波形特性まで、すべてオリジナル波形データのものを使用し且つ制御することができるので、高品質なビブラート楽音合成が行える。
また、例えば、その第2の手法は、オリジナル波形データから抽出した図3(a),(b)に示すような振幅エンベロープ及びピッチエンベロープのデータを変調波形合成用の基本データとして、上記データベース内に記憶しておき、楽音合成時に、この変調波形合成用の基本データを上記「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)を用いて可変制御して、制御された振幅エンベロープ及びピッチエンベロープを合成し、これらの振幅エンベロープ及びピッチエンベロープに従ってピッチ及び振幅がビブラート変調された楽音波形データを生成する手法である。この第2の手法では、音色波形データは必ずしもオリジナル波形データを使用することなく、どのようなものを使用してもよい。これによっても、本発明に従う「うねり」と「ゆらぎ」を考慮した高品質なビブラート変調制御が行える。なお、オリジナル波形データを使用する場合は、そのピッチ及び振幅を一定水準の値に正規化しておくとよく、そのための正規化技術は公知のものを用いればよい。
また、例えば、その第3の手法は、そのような変調波形合成用の基本データとして、オリジナル波形データから抽出したものを使用せずに、低周波発振装置等で発生した規格化されたデータを使用するようにしてもよい。この第3の手法でも、音色波形データは必ずしもオリジナル波形データを使用することなく、どのようなものを使用してもよく、また、本発明に従う「うねり」と「ゆらぎ」を考慮した高品質なビブラート変調制御が行える。
鍵盤等の演奏操作手段による演奏に応じてあるいは自動演奏の実行に伴って発音すべきタイミングでリアルタイムに、あるいは、発音すべきタイミングに先行して非リアルタイムに、発生すべき楽音の音色又は奏法及びピッチ等が指定されると、当該発生すべき楽音のための楽音合成処理が開始される。公知のように、典型的には、1つの楽音を発生する場合、まず、アタック部の楽音を合成し、次に持続部の楽音を合成し、そしてリリース部又は減衰部の楽音を合成することで、それらの部分が順次連続した楽音波形を合成することができる。本実施例に関連するうねり及びゆらぎ制御/ビブラート楽音合成は楽音の持続部に関して実施されるものとしているので、アタック部及びリリース部等については説明は省略する。持続部の楽音を合成するとき、指定された楽音音色又は奏法に対応する音色要素波形データと、上述した各変調要素及び楽音要素に対応する「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とが、上記データベースから時系列順に夫々読み出される。そのとき、図5に示すようなうねり及びゆらぎ制御/ビブラート楽音合成プログラムに従って、各変調要素及び楽音要素の変動値列が夫々生成され、生成された各変調要素及び楽音要素の変動値列に従う特性でビブラート変調された楽音波形が合成される。次に、図5の処理について詳しく説明する。なお、本発明は、持続部楽音の合成のみに限られるものではなく、適宜の部分(アタック部、リリース部、ジョイント部等)で変調を施すようにする楽音合成に際しても応用することができるのは勿論である。
図5(a)は、「深さ」の「うねり」値列及び「ゆらぎ」値列に基づき、ビブラート「深さ」の変動値列を生成する処理の一例を示す。ステップS41では、上記データベースから読み出す「深さ」の「うねり」値列(第1の成分値列)及び「ゆらぎ」値列(第2の成分値列)の時間軸を、所望の持続発音時間長に従い、それぞれ独立に伸張又は圧縮する制御を行う。非リアルタイム合成や自動演奏の場合は、用意された演奏データから持続発音時間長が判るので、それを用いればよい。演奏者の演奏に応じたリアルタイム合成の場合は、持続発音時間長として適宜の予測値を用い、楽音合成の進行に伴って予測発音時間長を逐次修正していくような手法をとればよい。なお、上記データベースから読み出す他の時系列データに対しても、同様の時間軸伸縮制御が施される。図6は、そのような時間軸伸縮制御の一例を模式的に示したものである。図6(a)は、オリジナル波形データにおけるビブラート周期毎のユニットの時間フレームU1,U2,U3,...Unと、「深さ」DPの「うねり」値列(第1の成分値列)あるいは「ゆらぎ」値列(第2の成分値列)とをイラスト的に示している。図6(b)はこれらの時間軸を圧縮した例をイラスト的に示している。なお、データの補間合成や繰り返し(ループ)あるいは飛び越し(間引き)などの種々の公知の技術を駆使して時間軸の伸縮が行われるが、このような時間軸の伸縮技術の詳細は例えば特開平10−307586号公報やその他で公知であるから、ここでは特に詳しく説明しない。なお、「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)に対して、それぞれ独立にその時間軸の伸縮制御を行うことができる。なお、本明細書で述べられた実施例全体について、或る限定された時間長からなる時系列的データの時間長の可変制御は、正確な時間軸伸縮制御に限らず、該時系列データの単純な繰り返し(時間を長くする場合)あるいは該時系列データの単純な途中カット(時間を短くする場合)などで実現するようにしてもよい。
ステップS42では、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「深さ」の「うねり」値列(第1の成分値列)及び「ゆらぎ」値列(第2の成分値列)に対して、それぞれ独立に、その値の大きさを可変調整・制御する。これによって、楽音合成に際して、特定の変調要素(深さ)における「うねり」成分と「ゆらぎ」成分を独立に可変制御できる。例えば、「うねり」成分は自由に可変制御するが、「ゆらぎ」成分はあまり可変制御しない、といったような使い分けができる。ここで、各値の調整は、それぞれ適宜の倍率を掛ける(重み付けする)ことで行うようにしてよいし、加算又は減算によって行うようにしてもよい。図6(b)におけるDP'は、「深さ」DPの「うねり」値列(第1の成分値列)あるいは「ゆらぎ」値列(第2の成分値列)を一定の倍率係数(重み付け係数)で重み付け制御することによって得られた変更後の「うねり」値列(第1の成分値列)あるいは「ゆらぎ」値列(第2の成分値列)を例示する。もちろん、倍率係数(重み付け係数)は、この持続発音時間中に一定値を維持するものに限らず、時間的に適宜変化されるようにしてもよい。この倍率係数(重み付け係数)のような制御データ又はパラメータ類は、操作者による調整用操作子の操作に応じて発生されるようになっていてもよいし、あるいは、適宜のメモリあるいはデータ発生器から操作者による選択に応じて又は奏法等に応じて自動的に発生されるようになっていてもよいし、あるいは、コンピュータで実行する何らかのアプリケーションプログラムの実行過程で自動的に発生されるようになっていてもよい。
なお、本来は演奏者が意図しない若しくは制御できない変動成分に相当する「ゆらぎ」値列(第2の成分値列)に対しては、このステップS42において、あまり、読み出された値から大きく変化させないようにするか、若しくは全く変化させないようにした方が好ましいと思われるので、そのように制限を設定してもよい。その場合は、他の要素が可変制御されても、「ゆらぎ」成分は可変されないことにより、「ゆらぎ」成分を他の変調要素又は楽音要素の可変制御から独立させることができ、従来にない高品質な制御が達成し得る。しかし、そのような制御に限定されるわけではない。なお、ステップS42では、すべてを可変制御する必要はなく、少なくとも1つの楽音要素(振幅又はピッチ)の「うねり」値列(第1の成分値列)又は「ゆらぎ」値列(第2の成分値列)のうちの少なくとも1つを可変制御する構成であってもよい。
ステップS43では、上記ステップS42で可変制御された「深さ」の「うねり」値列(第1の成分値列)に「ゆらぎ」値列(第2の成分値列)を加算することで、「深さ」の変動値列を生成する。勿論、この場合に行う演算のタイプは、加算に限らず、加減乗除のうち任意のものであってさしつかえない。要は、分離された状態で可変制御された特定の変調要素(例えば「深さ」)についての「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とを合成することで、該特定の変調要素(例えば「深さ」)についての変動値列を生成するようにすればよい。勿論、上記ステップS42での可変調整によって、「うねり」成分を0にする、あるいは、「ゆらぎ」成分を0にする、といった制御も可能であり、ステップS43で得られる「深さ」の変動値列として、「うねり」成分のみあるいは「ゆらぎ」成分のみを反映したものとすることもできる。
図5(b)は、「速さ」の「ゆらぎ」値列に基づき、ビブラート「速さ」の変動値列を生成する処理の一例を示す。ステップS51では、上記データベースから読み出す「速さ」の「ゆらぎ」値列の時間軸を、ステップS41と同様に、所望の持続発音時間長に従い、伸張又は圧縮する制御を行う。ステップS52では、ステップS42と同様に、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「速さ」の「ゆらぎ」値列に対して、その値の大きさを、ユーザの操作入力等に応じて、可変調整・制御する。ステップS53では、時間軸伸縮制御及び値調整された「速さ」の「ゆらぎ」値列に基づき、「速さ」の変動値列を生成する。このステップS53では、例えば、時間軸伸縮制御及び値調整された「速さ」の「ゆらぎ」値列を、そのまま、「速さ」の変動値列としてもよい(例えば、変調のかけられたオリジナル波形データを用いて楽音合成する場合など)。また、このステップS53では、例えば、時間軸伸縮制御及び値調整された「速さ」の「ゆらぎ」値列を前記「速さ基準値」(速さ代表値)に加算(又は減算あるいは乗算、除算等でもよい)して「速さ」の変動値列を求めるようにしてもよい(例えば、変調のかけられていない楽音波形データに対してビブラート変調をかける場合など)。
図5(c)は、「代表ピッチ」の「ゆらぎ」値列に基づき、各ユニット毎の「代表ピッチ」の変動値列を生成する処理の一例を示す。ステップS61では、上記データベースから読み出す「代表ピッチ」の「ゆらぎ」値列の時間軸を、前述と同様に、所望の持続発音時間長に従い、伸張又は圧縮する制御を行う。ステップS62では、ステップS42と同様に、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「代表ピッチ」の「ゆらぎ」値列に対して、その値の大きさを、ユーザの操作入力等に応じて、可変調整・制御する。ステップS63では、時間軸伸縮制御及び値調整された「代表ピッチ」の「ゆらぎ」値列に基づき、「代表ピッチ」の変動値列を生成する。このステップS63では、例えば、時間軸伸縮制御及び値調整された「代表ピッチ」の「ゆらぎ」値列を、そのまま、「代表ピッチ」の変動値列としてもよい。あるいは、このステップS63では、例えば、時間軸伸縮制御及び値調整された「代表ピッチ」の「ゆらぎ」値列を前記「代表ピッチ基準値」(代表ピッチ代表値)に加算(又は減算あるいは乗算、除算等でもよい)して「代表ピッチ」の変動値列を求めるようにしてもよい。
図5(d)は、「代表パワー」の「うねり」値列及び「ゆらぎ」値列に基づき、各ユニット毎の「代表パワー」の変動値列を生成する処理の一例を示す。ステップS71では、ステップS41と同様に、上記データベースから読み出す「代表パワー」の「うねり」値列(第1の楽音要素成分値列)及び「ゆらぎ」値列(第2の楽音要素成分値列)の時間軸を、所望の持続発音時間長に従い、それぞれ独立に伸張又は圧縮する制御を行う。ステップS72では、ステップS42と同様に、上記のように所望の持続発音時間長に従って時間軸が伸縮制御された「代表パワー」の「うねり」値列(第1の成分値列)及び「ゆらぎ」値列(第2の成分値列)に対して、それぞれ独立に、その値の大きさを、ユーザの操作入力等に応じて、可変調整・制御する。ステップS73では、ステップS43と同様に、上記ステップS72で可変制御された「代表パワー」の「うねり」値列(第1の成分値列)に「ゆらぎ」値列(第2の成分値列)を加算する(又は減算あるいは乗算、除算等でもよい)ことで、「代表パワー」の変動値列を生成する。
図5(e)は、図5(a)〜(d)の各処理において上述のように制御され生成された各変調要素及び楽音要素の変動値列に基づき、ビブラート変調された楽音を合成する処理の一例を示す。ステップS81では、図5(a)(b)の各処理で得たビブラート「深さ」及び「速さ」の変動値列に基づき、ビブラート変調された楽音波形を合成する。具体的には、例えば、前記第1の手法に従うビブラート合成にあっては、ビブラートのかかった楽音波形データを読み出す際の読み出しレート(ピッチ)を、図5(a)(b)の各処理で得たビブラート「深さ」及び「速さ」の変動値列に応じて時間的に変調する。あるいは、例えば、前記第2又は第3の手法に従うビブラート合成にあっては、図5(a)(b)の各処理で得たビブラート「深さ」及び「速さ」の変動値列に基づき、ビブラート変調用のピッチエンベロープ波形を形成し(振幅エンベロープ波形も同時に形成するとよい)、このピッチエンベロープ波形(及び振幅エンベロープ波形)によってピッチ変調された(及び振幅変調された)楽音波形を合成する。
ステップS82では、図5(c)の処理で得た「代表ピッチ」についての楽音要素変動値列に基づき、上記ステップS81で合成する楽音における定常的なピッチ(前記代表ピッチ基準値に相当するもの)をビブラートユニット毎に制御する。定常的なピッチは本来変動しないため、この定常的なピッチのビブラートユニット毎の制御は、概して、微妙な(演奏者が自覚しないような)「ゆらぎ」変調となる。また、ステップS83では、図5(d)の処理で得た「代表パワー」についての楽音要素変動値列に基づき、上記ステップS81で合成する楽音における振幅をビブラートユニット毎に制御する。
本発明を実施する装置は、パソコン等の汎用コンピュータに限らず、電子楽器や自動演奏シーケンサなど、音楽演奏専用機器あるいは楽音合成専用機器等であってもよい。図7は、本実施例に従う楽音変調及び合成処理機能を具えた電子楽器の一構成例を示すブロック図である。この電子楽器においては、楽音データベースとして記憶装置21が設けられており、この記憶装置21には外部の(又はこの電子楽器に付属する)データ作成装置20によって作成された楽音合成用及び変調用データが記憶される。すなわち、データ作成装置20は、図1及び図2を参照して前述したような本発明に係る楽音データ生成処理を実行し、種々のタイプの楽音及び又は奏法について上述のようにして作成された各変調要素及び楽音要素に対応する「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とを含むデータ構造からなる楽音合成用及び変調用データがデータベースとして記憶装置21に記憶される。
図7において、鍵盤回路50は、演奏を行うための鍵を複数有する。検出回路51は、鍵盤回路50の鍵の押鍵を示すノートオン信号、離鍵を示すノートオフ信号、音高情報を示すキーコード信号および押鍵速度を示すベロシティを検出して、楽音制御データ供給回路57に供給する。検出回路52は、鍵盤回路50の鍵の押鍵圧力を示すアフタタッチ信号を検出して、楽音制御データ供給回路57に供給する。
パネルスイッチ55は、マニュアル操作で音量調整、音色選択または種々の効果付与、変調等を行うための指示を与えるスイッチや、各種楽音要素を可変調整・制御するための操作子等を有する。スイッチ検出回路56は、パネルスイッチ55上のスイッチや操作子の操作状態を検出し、楽音制御データ供給回路57に出力する。パネルスイッチ55内の音色選択スイッチあるいは奏法選択スイッチにより所望の音色あるいは奏法を選択することができる。所望の音色あるいは奏法が選択されると、楽音制御データ供給回路57は、該選択に応じた制御データを波形発生回路62、ディジタルフィルタ63、ピッチ用うねり/ゆらぎ生成回路58、フィルタ係数EG59、振幅用うねり/ゆらぎ生成回路60、ビブラート深さ用うねり/ゆらぎ生成回路69、ビブラート速さ用うねり/ゆらぎ生成回路70に供給する。また、振幅やピッチを可変調整するための操作子が操作されると、それに応じた調整/制御データをピッチ用うねり/ゆらぎ生成回路58あるいは振幅用うねり/ゆらぎ生成回路60に供給する。また、ビブラート深さや速さを可変調整するための操作子が操作されると、それに応じた調整/制御データをビブラート深さ用うねり/ゆらぎ生成回路69あるいはビブラート速さ用うねり/ゆらぎ生成回路70に供給する。
楽音制御データ供給回路57は、また検出回路51,52より検出されたキーイベントおよびスイッチ検出回路56より検出されたスイッチ状態を受けて、所要の信号をドライバ54に出力する。ドライバ54は、入力された信号に応じて選択された音色あるいは奏法等を表示器53に表示する。表示器53は、例えば液晶表示器等である。
楽音制御データ供給回路57は、鍵盤回路50から検出されたキーイベントに応じて、割り当てられた所定の発音チャンネルに対応する音源部68に楽音制御データを供給する。もし、時分割発音チャンネルが16チャンネル備えられているとすれば、16の音源部の内の所定のチャンネルの音源部68に楽音制御データを供給する。すなわち、音源部68の各構成要素は16チャンネル時分割動作により、16の独立した楽音を時分割で生成し、アキュムレータ65に出力している。
楽音制御データ供給回路57は、検出回路51にて検出された演奏鍵のキーコード信号に対応するピッチデータ(時変動しない定常的なピッチを示すデータ)を加算器61に供給する。加算器61において、発生しようとする楽音の定常的ピッチを示すピッチデータに対してビブラート変調用のピッチ制御データを加算することで時系列的に変化するピッチ設定情報を生成し、これを波形発生回路62に供給する。
ビブラート深さ用うねり/ゆらぎ生成回路69は、楽音制御データ供給回路57から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置21から、当該選択された音色及びビブラート奏法についてのビブラート深さ用の「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とを取得し、図5(a)のステップS41〜S43で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についてのビブラート「深さ」の、制御された、変動値列を生成する。ビブラート速さ用うねり/ゆらぎ生成回路70は、楽音制御データ供給回路57から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置21から、当該選択された音色及びビブラート奏法についてのビブラート速さ用の「ゆらぎ」値列を取得し(そして、もしあれば、ビブラート速さ用の「うねり」値列も取得し)、図5(b)のステップS51〜S53で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についてのビブラート「速さ」の、制御された、変動値列を生成する。
ビブラート波形発生器71は、うねり/ゆらぎ生成回路69及び70から発生されたビブラート「深さ」の変動値列データとビブラート「速さ」の変動値列データとに基づき、これらの変動値列データによって設定される「深さ」及び「速さ」を持つビブラート変調用のエンベロープ波形を発生する。このビブラート波形発生器71の具体的構成としては、前述した第1乃至第3の手法に応じて適宜必要な構成を採用するものとする。例えば、記憶装置21からオリジナルの必要なエンベロープ波形データを取得するようにしてもよいし、あるいは内部に低周波発振器等を具備していてもよい。なお、ビブラート波形発生器71からは、ピッチ変調用のエンベロープ波形(例えば図3(b)の様なビブラート用ピッチエンベロープ)のみならず、振幅変調用のエンベロープ波形(例えば図3(a)の様なビブラート用振幅エンベロープ)も発生するようにするとよい。ビブラート波形発生器71から発生されたピッチ変調用のエンベロープ波形は、ピッチデータ変調用の加算器61に供給される。
ピッチ用うねり/ゆらぎ生成回路58は、楽音制御データ供給回路57から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置21から、当該選択された音色及びビブラート奏法についての上記「代表ピッチ」についての「ゆらぎ」値列を取得し(そして、もしあれば、「代表ピッチ」用の「うねり」値列も取得し)、図5(c)のステップS61〜S63で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についてのビブラート「代表ピッチ」の、制御された、変動値列を生成する。この生成された「代表ピッチ」の変動値列は、加算器61に与えられる。
こうして、加算器61において、発生しようとする楽音の定常的ピッチを示すピッチデータに対して上記のように可変制御されて生成されたピッチ変調用のエンベロープ波形及び各ユニット毎の「代表ピッチ」の変動値列データを加算することで、ビブラート変調されたピッチ設定情報を生成し、これを波形発生回路62に供給する。例えば、ピッチデータが周波数の対数を表すセントスケールで表されているとすると、ピッチ変動値列と加算されることにより楽音ピッチの対数信号を形成する。周波数の対数が聴感上はリニアとなるため、ピッチデータと係数の加算による変調は、自然なピッチ変調を与えるのに便宜である。しかし、これに限らず、ピッチデータはリニア表現であってもよい。なお、このほか、例えば楽音の立上がりにおけるアタックピッチの揺れや周波数の揺れを模擬するエンベロープを生成する回路を更に設け、これによって、楽音立上り時のアタックピッチ変調効果を付加した波形を生成するようにしてもよいが、詳細は省略する。
波形発生回路62は、ノートオン信号またはノートオフ信号により、波形生成の開始と終了を制御され、楽音制御データ供給回路57から供給される波形指定信号に応じた形状の波形を生成し、ディジタルフィルタ63に供給する。すなわち、波形発生回路62は、楽音制御データ供給回路57から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置21から、当該選択された音色及びビブラート奏法についての音色要素波形を取得し、これを加算器61から与えられるピッチ設定情報に応じたピッチで読出し生成する。なお、波形発生回路62における音源方式は、このような波形メモリ音源方式に限らず、FM音源、AM音源、高調波合成音源または物理モデル音源等、任意の音源方式により構成してもよい。すなわち、どのような音源方式を用いようとも、少なくとも1つの変調要素の変動値列を「うねり」値列と「ゆらぎ」値列とに分離して制御するようにした本発明の利点を享受することができる。
ディジタルフィルタ63は、楽音制御データ供給回路57およびフィルタ係数EG59から供給されるフィルタ係数等の制御データに応じて例えばカットオフ周波数を変化させ、音色制御を行う。例えば、楽音の立上がりにおいては、カットオフ周波数を上げてきらびやか音色として、時間の経過とともにカットオフ周波数を下げて落ち着いた音色に変化させることもできる。また、ビブラート変調に連動して音色要素波形の特性をフィルタ制御するようにしてもよい。
ディジタルフィルタ63から出力された信号は、エンベロープ乗算回路64に供給され、振幅用うねり/ゆらぎ生成回路60にて生成された各ユニット毎の「代表パワー」に応じた振幅制御エンベロープ波形との乗算が行われ、発生する楽音波形の音量振幅を制御する。また、ビブラート波形発生器71から発生されたビブラートに応じた振幅変調用のエンベロープ波形もエンベロープ乗算回路64に供給され、発生する楽音波形の音量振幅を制御する。なお、この振幅用うねり/ゆらぎ生成回路60では、振幅用うねり/ゆらぎ生成に限らず、アタック部やリリース部用の音量振幅制御エンベロープ波形も生成するようにしてよいが、その詳細説明は省略する。振幅用うねり/ゆらぎ生成回路60は、楽音制御データ供給回路57から与えられた音色及びビブラート奏法の選択データに応じて、記憶装置21から、当該選択された音色及びビブラート奏法についての上記「代表パワー」の「うねり」値列(第1の成分値列)と「ゆらぎ」値列(第2の成分値列)とを取得し、図5(d)のステップS71〜S73で説明したのと同様の処理を行い、当該選択された音色及びビブラート奏法についての各ユニット毎の「代表パワー」の変動値列を生成する。
エンベロープ乗算回路64から出力された楽音信号は、音源部68の出力信号となり、発音チャンネルの数だけの楽音信号が時分割でアキュムレータ65に供給される。アキュムレータ65は、供給された各発音チャンネルの楽音信号を合成して、D/A変換器66に供給する。D/A変換器66に供給された楽音信号は、ディジタル信号からアナログ信号に変換され、サウンドシステム67において発音される。
なお、演奏中にリアルタイムでパネルスイッチ55において、各回路58,59,60,69,70に対する制御データ又はパラメータをマニュアルで入力することができる。また、エディットモードにおいて、楽音発生に対して非リアルタイムに、パネルスイッチ55内のパラメータスイッチや操作子を操作することにより、各回路58,59,60,69,70に対する制御データ又はパラメータを可変設定・調整することもできる。また、選択・制御・調整用の操作手段としては、パネルスイッチ55に限らず、マウスやテンキー、アルファニューメリックキーボード、演奏用又は各種操作用のタッチパッドなど、適宜の操作手段を用いてよい。
本発明は、ビブラートに限らず、トレモロその他の変調奏法において応用可能である。
本実施例に係るデータ作成処理のために使用するコンピュータの構成例を示すブロック図。 本実施例に係るデータ作成処理の処理手順の一例を示すフロー図。 本実施例におけるビブラート変調された波形データの分析例を示す波形図。 ビブラート1周期における各種変調要素の分析例を示す波形図。 本実施例におけるうねり及びゆらぎ制御/楽音変調及び合成プログラムの一例を示すフロー図。 図5のうねり及びゆらぎ制御/楽音変調及び合成プログラムに従ううねり値列及びゆらぎ値列の時間軸伸縮制御例とうねり値の倍率調整例をイラスト的に示す波形図。 本実施例に従う楽音変調及び合成処理機能を具えた電子楽器の一構成例を示すブロック図。
符号の説明
1 CPU(中央処理部)
2 ROM(リードオンリーメモリ)
3 RAM(ランダムアクセスメモリ)
4 入力操作装置
5 表示器
6 ハードディスク
20 データ作成装置
21 記憶装置
58 ピッチ用うねり/ゆらぎ生成回路
60 振幅用うねり/ゆらぎ生成回路
69 ビブラート深さ用うねり/ゆらぎ生成回路
70 ビブラート速さ用うねり/ゆらぎ生成回路

Claims (14)

  1. 変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素に関して変動値列を取得する第1のステップと、
    前記変動値列から、時定数的な因子に従い、少なくとも1つの時系列的な成分値列を抽出する第2のステップと
    を具備し、前記第2のステップで抽出される前記成分値列を少なくとも用いて前記特定の変調要素の前記変動値列を表現することを特徴とする楽音データ生成方法。
  2. 前記第2のステップは、前記変動値列から、時定数的特性の異なる少なくとも第1及び第2の成分値列を分離抽出し、該第1及び第2の成分値列の組み合わせで、前記特定の変調要素の前記変動値列を表現することを特徴とする請求項1に記載の楽音データ生成方法。
  3. 前記第2のステップは、前記変動値列を平滑化することに基づき前記第1の成分値列を生成し、前記変動値列と該第1の成分値列との演算に基づき前記第2の成分値列を生成する請求項2に記載の楽音データ生成方法。
  4. 少なくとも1つの前記成分値列を、その値の大きさ及び時間軸の少なくとも一方について可変制御する第3のステップと、
    第3のステップで可変制御された前記成分値列に基づく特徴を持つ前記特定の変調要素で変調された楽音データを生成する第4のステップと
    を更に具えた請求項1乃至3のいずれかに記載の楽音データ生成方法。
  5. 前記第1のステップは、
    前記変調のかけられたオリジナル波形データにおける個々の変調サイクルの区切りを決定するステップと、
    決定された区切りに従う各変調サイクル毎に、前記少なくとも1つの特定の変調要素の値をそれぞれ検出し、検出した各変調サイクル毎の該特定の変調要素の値からなるデータ列を、離散的な前記変動値列として、生成するステップと
    を含む請求項1乃至4のいずれかに記載の楽音データ生成方法。
  6. 変調のかけられたオリジナル波形データにおける特定の変調要素の変動値列から時定数的な因子に従い抽出された少なくとも1つの成分値列を記憶した記憶手段を使用して、楽音を合成する方法において、前記特定の変調要素は、変調の深さ及び速さの少なくとも一方であり、
    前記記憶手段から読み出す少なくとも1つの前記成分値列の時間軸を、任意の発音時間長に従い、伸張又は圧縮制御する第1ステップであって、これにより、該任意の発音時間長に見合った時間長を持つ前記成分値列を得るようにしたものと、
    前記記憶手段から読み出された又は前記第1ステップで時間軸が伸縮制御された少なくとも1つの前記成分値列の値を可変制御する第2ステップと、
    前記記憶手段から読み出された又は前記第1又は第2ステップで制御された少なくとも1つの前記成分値列に基づき、前記特定の変調要素の前記変動値列を生成する第3ステップと、
    生成された変動値列を少なくとも用いて、前記特定の変調要素で変調された前記発音時間長にわたる楽音データを生成する第4ステップと
    を具備することを特徴とする楽音合成方法。
  7. 前記記憶手段には、前記特定の変調要素の変動値列から分離抽出された時定数特性の異なる少なくとも第1及び第2の成分値列を記憶してなり、
    前記第3ステップでは、前記記憶手段から読み出された又は前記第1又は第2ステップで制御された前記少なくとも第1及び第2の成分値列に基づき、前記特定の変調要素の前記変動値列を生成することを特徴とする請求項6に記載の楽音合成方法。
  8. 前記第1の成分値列は、前記オリジナル波形データにおける特定の変調要素の変動値列を平滑化することに基づき得られたものであり、前記第2の成分値列は、該変動値列と該第1の成分値列との演算に基づき得られたものであり、
    前記第3ステップは、可変制御された前記第1成分値列と第2の成分値列を演算することに基づき前記変動値列を生成することを特徴とする請求項7に記載の楽音合成方法。
  9. 前記第1ステップでは、前記少なくとも第1及び第2の成分値列のそれぞれにつき独立にその時間軸を伸縮制御し、前記第2ステップでは、前記少なくとも第1及び第2の成分値列のそれぞれにつき独立にその値を可変制御することを特徴とする請求項7又は8に記載の楽音合成方法。
  10. 前記変調のかけられたオリジナル波形データは、ビブラート変調がかけられたものである請求項6乃至9のいずれかに記載の楽音合成方法。
  11. 請求項1乃至10のいずれかに記載の方法における手順をコンピュータに実行させるプログラム。
  12. 変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素に関して変動値列を取得する第1の手段と、
    前記変動値列から、時定数的な因子に従い、少なくとも1つの時系列的な成分値列を抽出する第2の手段と
    を具備し、前記第2の手段で抽出される前記成分値列を少なくとも用いて前記特定の変調要素の前記変動値列を表現することを特徴とする楽音データ生成装置。
  13. 変調のかけられたオリジナル波形データにおける特定の変調要素の変動値列から時定数的な因子に従い抽出された少なくとも1つの成分値列を記憶した記憶手段を使用して、楽音を合成する装置において、前記特定の変調要素は、変調の深さ及び速さの少なくとも一方であり、
    前記記憶手段から読み出す少なくとも1つの前記成分値列の時間軸を、任意の発音時間長に従い、伸張又は圧縮制御する第1手段であって、これにより、該任意の発音時間長に見合った時間長を持つ前記成分値列を得るようにしたものと、
    前記記憶手段から読み出された又は前記第1手段で時間軸が伸縮制御された少なくとも1つの前記成分値列の値を可変制御する第2手段と、
    前記記憶手段から読み出された又は前記第1又は第2手段で制御された少なくとも1つの前記成分値列に基づき、前記特定の変調要素の前記変動値列を生成する第3手段と、
    生成された変動値列を少なくとも用いて、前記特定の変調要素で変調された前記発音時間長にわたる楽音データを生成する第4手段と
    を具備することを特徴とする楽音合成装置。
  14. 変調のかけられたオリジナル波形データにおける変調の深さ及び速さの少なくとも一方である特定の変調要素についての時系列的な変動値列を、少なくとも2つの時系列的な成分値列に分離したものである、少なくとも第1の成分値列及び第2の成分値列で構成されるデータ構造からなる楽音変調用データを記憶したコンピュータ読み取り可能な記憶媒体であって、
    前記第1の成分値列は、前記変動値列における時定数の相対的に大きな変動成分であるうねり変動成分値列からなり、
    前記第2の成分値列は、前記変動値列における時定数の相対的に小さな変動成分であるゆらぎ変動成分値列からなることを特徴とする。
JP2005280639A 2005-09-27 2005-09-27 楽音データ生成方法及び装置 Withdrawn JP2007093795A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005280639A JP2007093795A (ja) 2005-09-27 2005-09-27 楽音データ生成方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005280639A JP2007093795A (ja) 2005-09-27 2005-09-27 楽音データ生成方法及び装置

Publications (1)

Publication Number Publication Date
JP2007093795A true JP2007093795A (ja) 2007-04-12

Family

ID=37979640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005280639A Withdrawn JP2007093795A (ja) 2005-09-27 2005-09-27 楽音データ生成方法及び装置

Country Status (1)

Country Link
JP (1) JP2007093795A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008268369A (ja) * 2007-04-17 2008-11-06 Yamaha Corp ビブラート検出装置、ビブラート評価装置、ビブラート検出方法、ビブラート評価方法およびプログラム
WO2009044525A1 (ja) * 2007-10-01 2009-04-09 Panasonic Corporation 音声強調装置および音声強調方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008268369A (ja) * 2007-04-17 2008-11-06 Yamaha Corp ビブラート検出装置、ビブラート評価装置、ビブラート検出方法、ビブラート評価方法およびプログラム
WO2009044525A1 (ja) * 2007-10-01 2009-04-09 Panasonic Corporation 音声強調装置および音声強調方法
US8311831B2 (en) 2007-10-01 2012-11-13 Panasonic Corporation Voice emphasizing device and voice emphasizing method

Similar Documents

Publication Publication Date Title
US7003120B1 (en) Method of modifying harmonic content of a complex waveform
EP1125272B1 (en) Method of modifying harmonic content of a complex waveform
EP1646035B1 (en) Mapped meta-data sound-playback device and audio-sampling/sample processing system useable therewith
US7563975B2 (en) Music production system
JP3598598B2 (ja) カラオケ装置
JP2921428B2 (ja) カラオケ装置
US5939654A (en) Harmony generating apparatus and method of use for karaoke
US5986199A (en) Device for acoustic entry of musical data
JP3975772B2 (ja) 波形生成装置及び方法
JP2002529773A5 (ja)
US6362409B1 (en) Customizable software-based digital wavetable synthesizer
JP2003308067A (ja) ディジタル楽譜の音符とその楽譜のリアリゼーションとの間のリンクを生成する方法
EP1653442B1 (en) Tone data generation method and tone synthesis method, and apparatus therefor
JP2007093795A (ja) 楽音データ生成方法及び装置
JP2004078095A (ja) 奏法決定装置及びプログラム
JP3430814B2 (ja) カラオケ装置
JP2904045B2 (ja) カラオケ装置
JP3656726B2 (ja) 楽音信号発生装置及び楽音信号発生方法
JP4012410B2 (ja) 楽音生成装置および楽音生成方法
JP3173310B2 (ja) ハーモニー生成装置
JP4821558B2 (ja) 楽音合成装置及びプログラム
JP3788096B2 (ja) 波形圧縮方法及び波形生成方法
JP3885803B2 (ja) 演奏データ変換処理装置及び演奏データ変換処理プログラム
JP5659501B2 (ja) 電子音楽装置及びプログラム
JP3933161B2 (ja) 波形生成方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080722

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090616