(57)【要約】【課題】  音色を損ねず、聴く者に不自然感を与えない自然な音が再現でき、且つリアルタイムでも楽音の時間伸張圧縮再生ができる波形データ時間伸張圧縮装置を提供する。【解決手段】  ＰＣＭ波形データを記憶する波形メモリ１０１と、ＰＣＭ波形のトレンドとなるピッチの波長を１ブロックとしてブロック毎のアドレスを記憶するブロックアドレスメモリ１０３と、伸張圧縮パラメータＲを設定するパラメータ設定部３と、伸張圧縮パラメータＲに応じて、所定ブロックの波形データを読み出す回数を決定し、それに応じて前記ブロックアドレスを順次読み出すと共に、読み出された該ブロックアドレスに基づいてＰＣＭ波形データの読み出しを行い、波形再生を行う波形再生部４とを有している。【選択図】        図３
2008276268.tif 000002
【特許請求の範囲】
【請求項１】
押鍵された鍵に応じて発音する周波数に関する情報を発生する周波数情報発生手段と、
ＰＣＭ波形データを記憶する第一の記憶部と、
前記ＰＣＭ波形データを読み出すための第一のメモリアクセス手段と、
該ＰＣＭ波形のトレンドとなるピッチの波長乃至その整数倍の波長を１ブロックとしてブロック毎のアドレスを記憶する第二の記憶部と、
前記ブロックアドレスを読み出すための第二のメモリアクセス手段と、
伸張圧縮パラメータを設定するパラメータ設定部と、
伸張圧縮パラメータに応じて、所定ブロックの波形データを読み出す回数を決定し、それに応じて前記第二のメモリアクセス手段を介して前記第二の記憶手段からブロックアドレスを順次読み出すブロックアドレス指定手段と、
前記周波数情報、及び前記ブロックアドレス指定手段によって読み出されたブロックアドレスに応じて、前記第一のメモリアクセス手段を介してＰＣＭ波形データの読み出しを行い、波形再生を行う波形再生部と
を有することを特徴とする波形データ時間伸張圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、波形データ時間伸張圧縮装置に関する。
【背景技術】
【０００２】
電子楽器など音源を備える装置（音源部単体の装置構成を含む）では、生楽器の波形データを記憶するのに、記憶部の記憶容量が膨大になる弊害を避けるため、いくつかの異なる音程のＰＣＭ波形データを記憶しておき、これらと異なる音程のものを再生する時には、該ＰＣＭ波形データを元のピッチと異なるピッチで読み出して、再生することで対応している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ＰＣＭ波形データを、元のピッチと異なるピッチで読み出す時には、ピッチが変化すると同時に発音時間も変化する。例えば、Ｃ４で、立ち上がり時間が０.１秒、全体の発音時間が１秒の楽音がある場合、１オクターブ下げてＣ３のピッチで読み出すと、立ち上がり時間が０.２秒、全体の発音時間が２秒になる。逆に１オクターブ上げてＣ５のピッチで読み出すと、立ち上がり時間が０.０５秒、全体の発音時間が０.５秒になる。
【０００４】
通常の楽音波形は、最初の立ち上がり部（ヘッド部分；アタック部分）とその後の定状部（サステイン部分）で構成されることになる。そして多くの楽音は、この立ち上がり部の過渡現象に特徴を持ち、その時間が元と大きく変化すると、聴く者に不自然感を与えることになる。すなわち、上記のように、元のピッチと異なるピッチで波形データを読み出した時に、立ち上がり時間が大きく変化すると、不自然な音として聞こえることになる。
【０００５】
これを解決するために、波形データを複数の適当なフレーム（どの波形データに対しても固定長）に分割し、時間を伸張する時は、フレームを繰り返し、且つつなぎ目をクロスフェードさせ、反対に時間を圧縮する時は、一部のフレームを省略して、つなぎ目をクロスフェードさせることが行われている。
【０００６】
しかし、上記処理を行う場合は、フレームの長さが適当であるため、フレームの繰り返しが聞こえたり（耳についたり）、クロスフェードで位相干渉を起こし、音色を損ねるということが多くあった。また処理負荷が大きく、処理に時間が掛かるため、リアルタイムで発音するには不向きであるという問題もある。
【０００７】
本発明は、以上のような問題に鑑み創案されたもので、音色を損ねず、聴く者に不自然感を与えない自然な音が再現でき、且つリアルタイムでも同時発音数を多く確保しながら楽音の時間伸張圧縮再生ができる波形データ時間伸張圧縮装置を提供せんとするものである。
【課題を解決するための手段】
【０００８】
本発明に係る波形データ時間伸張圧縮装置の構成は、
押鍵された鍵に応じて発音する周波数に関する情報を発生する周波数情報発生手段と、
ＰＣＭ波形データを記憶する第一の記憶部と、
前記ＰＣＭ波形データを読み出すための第一のメモリアクセス手段と、
該ＰＣＭ波形のトレンドとなるピッチの波長乃至その整数倍の波長を１ブロックとしてブロック毎のアドレスを記憶する第二の記憶部と、
前記ブロックアドレスを読み出すための第二のメモリアクセス手段と、
伸張圧縮パラメータを設定するパラメータ設定部と、
伸張圧縮パラメータに応じて、所定ブロックの波形データを読み出す回数を決定し、それに応じて前記第二のメモリアクセス手段を介して前記第二の記憶手段からブロックアドレスを順次読み出すブロックアドレス指定手段と、
前記周波数情報、及び前記ブロックアドレス指定手段によって読み出されたブロックアドレスに応じて、前記第一のメモリアクセス手段を介してＰＣＭ波形データの読み出しを行い、波形再生を行う波形再生部と
を有することを基本的特徴としている。
【０００９】
上記構成によれば、所定長の波形データを１単位（１ブロック）として、これらを順に読み出すだけでなく、必要に応じて繰り返し読み出したり、間引きして読み出すことで、全体の発音時間を伸張・圧縮させて、波形再生を行う。すなわち、ピッチを上げて波形データの読み出しを行う際には、全体の発音時間が短くなるのに対し、立ち上がり部を中心に、前記波形データの或る単位を繰り返し読み出すことで時間を伸張させ、元の波形データの発音時間に近づけるようにする。反対にピッチを下げて波形データの読み出しを行う際には、全体の発音時間が長くなるのに対し、立ち上がり部を中心に、前記波形データの或る単位を間引いて読み出すことで時間を圧縮させ、元の波形データの発音時間に近づけるようにする。特に立ち上がり部の発音時間が元の波形データのものに近づくことで、異なるピッチで波形データを読み出す場合でも、聴く者に自然な感じで聞こえることになる。
【００１０】
上記構成で、読み出す波形データのブロックを、ＰＣＭ波形のトレンドとなるピッチの波長乃至その整数倍の波長としたのは、読み出す１つの単位（ブロック）を決定する際、最終的にそれらはつなぎ合わされて波形として生成されるのであるから、上記つなぎ目においても、波形の連続としてつながっている必要があるというのがその理由である。またＰＣＭ波形のトレンドとなるピッチの波長を基にして読み出す波形データのブロックを決定しているのは、音色を決定する基音又はその倍音の波長をトレンドとなるピッチの波長とすることで、音色が損なわれないようにするためである。なお、ＰＣＭ波形の基音よりも、倍音の方が振幅が大きくその音を決定する要素となる場合もあるので、その場合は倍音のピッチをトレンドとなるピッチとすることもある。
【００１１】
従って、トレンドとなるピッチの波長乃至その整数倍の波長を１ブロックとして、ブロック毎のアドレスを記憶しておき、該ブロックアドレスを単位に波形データの読み出しを行う（時に所定のブロックを繰り返し読み出し、或いは特定のブロックを間引いて読み出すものとする）。
【００１２】
このように、ＰＣＭ波形データを記憶する第一の記憶部と、前記ＰＣＭ波形データを読み出すための第一のメモリアクセス手段と、該ＰＣＭ波形のトレンドとなるピッチの波長乃至その整数倍の波長を１ブロックとしてブロック毎のアドレスを記憶する第二の記憶部と、前記ブロックアドレスを読み出すための第二のメモリアクセス手段とを備えており、ブロックアドレスは波形データを記憶した第一の記憶部とは異なるアクセス手段（第二のメモリアクセス手段）によって読み出されるため、周期長データ読み出しとは関係なく、同時発音数を多く確保することが可能となる。
【００１３】
ＰＣＭ波形のトレンドとなるピッチの波長の求め方は、一例として自己相関関数により求めることができる。すなわち、自己の波形をずらして相関関係をとった時に、トレンドとなるピッチ波長だけずらしたところが、干渉し合って相関値が一番高くなり、トレンドとなるピッチを抽出し易いので、自己相関関数により求めることが望ましい。また自己関数による場合は、サンプリング周波数を考慮する必要がないという理由からも同様である。特にＰＣＭ波形のように、基音のレベルが小さく、ビブラートがかかっているような場合には、それが有効である。
【００１４】
また読み出す上記ブロックという単位は、０クロスポイント間のものにすると良い。その理由は、これらの単位を繰り返し読み出したり、間引きして読み出す際に、その０クロスする所に近ければ近いほど、そのつなぎ目が滑らかになり、不自然なつながりとならなくなるからである。
【００１５】
ここで０クロスポイントとは、後述する図２に示すように、サンプリングポイントの現在点（たとえばポイント１１）の振幅値が０以下であり、次の点（ポイント１２）の振幅値が正である時の現在点（ポイント１１）をいうものとする。これは、負から正への０クロスのみを０クロスポイントとすることで、位相を合わせ易くできるからである。
【００１６】
さらに伸張圧縮パラメータを設定して、それに応じて、波形データを読み出す回数を決定するとしている。これは、前述のように、ピッチを上げて波形データの読み出しを行う際には、全体の発音時間が短くなり、反対にピッチを下げて波形データの読み出しを行う際には、全体の発音時間が長くなるので、それを元に戻し、元の波形データの発音時間に近づけるようにするために、ピッチを上げて波形データの読み出しを行った場合は、立ち上がり部を中心に、前記波形データの或る単位を繰り返し読み出すことで時間を伸張させるようにし、反対にピッチを下げて波形データの読み出しを行った場合は、立ち上がり部を中心に、前記波形データの或る単位を間引いて読み出すことで時間を圧縮させるようにしようとしているからである。そのため、上記のような伸張圧縮パラメータを設定し、それに応じて、波形データを読み出す回数を決定することで、繰り返しの読み出しや間引いての読み出しができるようにした。もちろんその読み出す波形データのブロックは、前述のように、ＰＣＭ波形のトレンドとなるピッチ波長（又はその整数倍の波長）を基にしている。特に立ち上がり部の発音時間が元の波形データのものに近づくので、異なるピッチで波形データを読み出す場合でも、聴く者に自然な感じで聞こえるようになる。
【００１７】
他方、伸張圧縮パラメータの設定による波形データの読み出し回数の決定は、後述する実施例では、伸張圧縮パラメータを、前記アドレスの読み出し毎に加算し、その整数部を上記読み出し回数とすると共に、その回数決定が行われた後、該整数部を０にして、上記加算処理を繰り返すことで実行している。またそのような方法による場合、設定される伸張圧縮パラメータは、元となるＰＣＭ波形を再生する場合を１として、それより周波数が高くなる場合は１より大きくなり、それより周波数が低くなる場合は１未満になるように設定することになる。
【００１８】
他方、本発明の構成は、特に電子鍵盤楽器などで鍵盤に割り振られた音程の楽音を再生しようとする場合に、夫々のキーが指し示す音程に合わせて伸張圧縮パラメータの修正を行った上で、上記構成に適用しようとするものである。すなわち、前記パラメータ設定部で設定される伸張圧縮パラメータを、キースケールパラメータで修正するようにしている。
【００１９】
上記のような構成が適用された場合でも、波形のトレンドとなるピッチの波長が整数ワードでない場合（サンプリング周波数が４４１００Ｈｚ、ピッチが４３８.８Ｈｚの時は、波長は１００.５ワードとなり、整数ワードではない）、波形の繰り返し部やつなぎ目でノイズを発生することがある。これは、波形の繰り返し部やつなぎ目で、振幅値の飛びがあるからである。
【００２０】
さらに本発明のの構成は、このような場合に、波形の繰り返し部やつなぎ目でクロスフェードさせ、波形のつなぎを滑らかにしている。より具体的な構成は、前記波形再生部における波形データの読み出しに際し、１つのブロックの波形データの読み出しを終了した時、０クロスポイントの次の数ポイント分のサンプルデータをバッファに入れ、次のブロックの波形データを読み出す時、その最初の数ポイント分のサンプルデータと上記バッファのサンプルデータとをクロスフェードさせるというものである。
【発明の効果】
【００２１】
本発明の波形データ時間伸張圧縮装置によれば、ＰＣＭ波形データを記憶する第一の記憶部と、前記ＰＣＭ波形データを読み出すための第一のメモリアクセス手段と、該ＰＣＭ波形のトレンドとなるピッチの波長乃至その整数倍の波長を１ブロックとしてブロック毎のアドレスを記憶する第二の記憶部と、前記ブロックアドレスを読み出すための第二のメモリアクセス手段とを備えており、ブロックアドレスは波形データを記憶した第一の記憶部とは異なるアクセス手段（第二のメモリアクセス手段）によって読み出されるため、周期長データ読み出しとは関係なく、同時発音数を多くとることが可能となる。
【００２２】
なお、伸張圧縮パラメータの設定による波形データの読み出し回数の決定が、伸張圧縮パラメータを、前記アドレスの読み出し毎に加算し、その整数部を上記読み出し回数とすると共に、その回数決定が行われた後、該整数部を０にして、上記加算処理を繰り返すことで実行しているため、所定のブロックを繰り返し読み出し、或いは特定のブロックを間引いて読み出すための上記パラメータの設定を簡単に行うことができ、それによって、リアルタイムでも楽音の時間伸張圧縮再生が可能となるという優れた効果を奏し得る。また、ＰＣＭ波形データを元のピッチと異なるピッチで読み出す際に、音色を損ねず、聴く者に不自然感を与えない自然な音が再現できるようにもなる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を、次の図示する例と共に説明する。
【００２４】
図１乃至図１０を参照し、まず波形の準備段階につき説明する。図１乃至図１０は、本発明の波形データ時間伸張圧縮装置によるＰＣＭ波形読み出し時における波形データ時間伸張圧縮方法の原理を説明する説明図である。
【００２５】
図１は、生楽器や人声をサンプリングして、後述する波形編集装置１０の波形メモリ１０１に記憶されている処理対象となる元ＰＣＭ波形である。この波形の丸１〜丸１０までが、ＰＣＭ波形のアタック部分（ヘッド部分）Ｈ及びディケイ部分Ｄである。その後サステイン部分Ｓに連なる。
【００２６】
そして自己相関関数によってこのＰＣＭ波形のトレンドとなるピッチ（基準ピッチ）を抽出し、基準ピッチメモリ１０２に記憶する。
【００２７】
該ＰＣＭ波形の一番最初の０クロスポイントを見つけ、そのアドレスを後述するブロックアドレスメモリ１０３に記憶する。
【００２８】
その０クロスポイントより後で、基準ピッチ波長に一番近い距離分離間した０クロスポイントを見つけ、そのアドレスを前記ブロックアドレスメモリ１０３に記憶する。
【００２９】
たとえば図２に示すＰＣＭ波形のサンプリング周波数Ｆｓが３００００Ｈｚ、基準ピッチとなる周波数Ｆが１０１０Ｈｚと抽出された場合、その波長Ｌは、下記数１式で求めることができる。
【００３０】
（数１）
Ｌ＝３００００／１０１０＝２９.７０２９７...
【００３１】
上記０クロスポイントとは、現在のサンプリングポイントの振幅値が０以下であり、次のサンプリングポイントの振幅値が正である時の、現在の振幅値とする。上記図２の例では、１（ポイント１）、１１、２０、３０、４１、５０、６０、７１、８０、９０が０クロスポイントとなる。
【００３２】
それに対し、本願で抽出すべき０クロスポイントは、次のようにして求めることができる。まず最初の０クロスポイントは、ポイント１になる。次に、その０クロスポイントより、前記基準ピッチの波長（３０サンプル）分離れたポイント３１の前後１５サンプルの範囲の０クロスポイントを抽出すると、ポイント２０、３０、４１が抽出される。ポイント１との距離は、夫々１９、２９、４０となり、波長３０に一番近いのは２９であるので、求める０クロスポイントは、ポイント３０となる。以下同様にして、ポイント６０、９０、...と抽出される。
【００３３】
上記元ＰＣＭ波形の最後まで、以上の処理を繰り返す。各ブロックのアドレスは、ＰＣＭ波形の先頭より順に前記ブロックアドレスメモリ１０３に記憶される。
【００３４】
図３は、以上の編集処理を行う波形編集装置１０の機能ブロック図である。同図に示すように、生楽器の音或いは人の声を取り込み、元ＰＣＭ波形として、波形メモリ１０１に記憶している。尚該波形編集装置１０は、電子回路乃至パソコン上で特定のプログラムの読み出し実行により形成されるものであって、主にＣＰＵなどの演算制御回路と、ＲＡＭやＲＯＭ或いはハードディスクドライブなどの記憶回路と、上記ＣＰＵに読み出されて実行されることで、これらの構成を上記波形編集装置１０として機能させるためのプログラムなどにより構成される。
【００３５】
その波形データは、エンベロープ調整部１０１ａによって、パワーエンベロープを略一定にし、編集波形メモリ１０１ｂに記憶させておくこともできる。
【００３６】
また基準ピッチ抽出部１１１で、自己相関関数により、上記波形データの基準ピッチを求め、該基準ピッチを基準ピッチメモリ１０２に記憶する。
【００３７】
さらにブロックアドレス抽出部１１２により、上記基準ピッチに基づく、ブロックアドレスを抽出し、ブロックアドレスメモリ１０３に記憶する。
【００３８】
図４は、本発明の一実施例に係る波形データ時間伸張圧縮装置が適用された電子鍵盤楽器２０の機能ブロック図を示している。そのうち波形メモリ１０１、基準ピッチメモリ１０２及びブロックアドレスメモリ１０３は、前記波形編集装置１０で抽出された波形データ、基準ピッチ、ブロックアドレスが複製され、これらに記憶せしめられている。
【００３９】
本願発明の構成は、上記波形メモリ１０１で構成される波形記憶部１と、ブロックアドレスメモリ１０３で構成されるブロックアドレス記憶部２と、後述の伸張圧縮パラメータ算出器３１で構成されるパラメータ設定部３と、後述のＦナンバ算出器４１、Ｆナンバ累算器４２、波形読出アドレス生成部４３、Ｒナンバ累算器４４、ブロックアドレス指定部４５、ブロックＡサンプルバッファ４６、ブロックＢサンプルバッファ４７、ブロック間クロスフェードミキシング部４８で構成される波形再生部４とを有している。以上の構成は、電子回路上で特定のプログラムの読み出し実行により形成されるものであって、主にＣＰＵなどの演算制御回路と、ＲＡＭやＲＯＭなどの記憶回路と、上記ＣＰＵにＲＯＭから読み出されて実行されることで、これらの構成を上記波形データ時間伸張圧縮装置として機能させるためのプログラムなどにより構成される。
【００４０】
本電子鍵盤楽器２０は、さらに鍵盤部２１、エンベロープ発生器２２、積算器２３、複数チャンネル同時発音のための累算器２４、Ｄ／Ａ変換部２５、増幅器２６及びスピーカ２７を備えている。
【００４１】
また本電子鍵盤楽器２０は、サンプリング機能を有しており、そのため上記波形メモリ１０１に人の声などがサンプリングされて、波形再生が行われる場合に、人の声のフォルマントが変わらないようにするための構成が備えられている。すなわち、上記人の声などのサンプリングが行われた場合に、そのフォルマント成分をケプストラム解析などによりフォルマント係数として抽出し、フォルマントフィルタ係数メモリ２８に記憶している。もしこのフォルマント係数の抽出が行われた場合は、元ＰＣＭ波形データに、抽出したフォルマントの逆特性のフィルタを掛けてフォルマント成分を除去したものを、上記波形メモリ１０１に記憶することになる。また本装置の出力側にフォルマントデジタルフィルタ２９が備えられており、再生された波形データに該フォルマント係数を掛けて、フォルマントの移動していない元のＰＣＭ波形データに戻すことになる。これらの構成による機能については後述する。
【００４２】
上記図４の電子鍵盤楽器２０では、鍵盤部２１でキーオンが検出されると、キーナンバ（発音ピッチ）が、エンベロープ発生器２２、Ｆナンバ算出器４１、及び伸張圧縮パラメータ算出器３１に入力される。
【００４３】
キーナンバがＦナンバ算出器４１に入力されると、該キーナンバに対応したＦナンバが算出され、そのＦナンバは、次のＦナンバ累算器４２に入力され、波形読出アドレス生成部４３に入力される。Ｆナンバ累算器４２でＦナンバは累算され、その累算の度に該Ｆナンバ累算値は上記波形読出アドレス生成部４３に入力され、通常はそのＦナンバ累算値に基づいて波形読出アドレスが生成される。それによって波形メモリ１０１からＰＣＭ波形データが読み出される。
【００４４】
また上記伸張圧縮パラメータ算出器３１は、キーナンバ（発音ピッチ）と前記基準ピッチメモリ１０２に記憶されたキーナンバ（基準ピッチ）とから、伸張圧縮パラメータＲ（実数、Ｒ＜１：圧縮、Ｒ＞１：伸張）を算出・設定する。すなわち、該伸張圧縮パラメータ算出器３１には、キースケールパラメータとして、元ＰＣＭ波形の基準ピッチ（ＫｅｙＯｒｇ）と、上記キーナンバの発音ピッチ（Ｋｅｙ）、及びキースケールデプス（Ｄｅｐｔｈ、Ｄｅｐｔｈ＝１の時はそのまま、Ｄｅｐｔｈ＜１の時は緩くなる）が入力され、下式数２によって伸張圧縮パラメータＲが求められる。
【００４５】
（数２）
Ｒ＝Ｒ'・２＾［（Ｋｅｙ−ＫｅｙＯｒｇ）*Ｄｅｐｔｈ/１２］
（但し、Ｒ'は操作者の設定による値、Ｋｅｙは押鍵された鍵のキーナンバ、ＫｅｙＯｒｇは元ＰＣＭ波形の基準ピッチにあたるキーナンバ、Ｄｅｐｔｈはキースケールデプス)
【００４６】
これにより求められた伸張圧縮パラメータＲは、Ｒナンバ累算器４４に読み出され、一旦図示しないバッファに書き込まれる。ただし最初の１周期は、そのまま読み出されるようにするため、Ｒ＜１の時は、伸張圧縮パラメータＲはそのまま、Ｒ＞１の時は０がバッファＢに書き込まれる。
【００４７】
そしてブロックアドレス指定部４５により、ブロックアドレスメモリ１０３から最初のブロックアドレスが読み出されて、波形読出アドレス生成部４３に与えられる。この波形読出アドレス生成部４３によりそのアドレスまでＰＣＭ波形が読み出されて、ブロックＡサンプルバッファ４６に書き込まれる。また該ブロックアドレスは、ブロックアドレス指定部４５のアドレスバッファ（図示なし）に書き込まれる。
【００４８】
読み出されたＰＣＭ波形は、エンベロープ発生器２２によって与えられたエンベロープが積算器２３で付加されて、累算器２４によって同時発音分累算され、Ｄ／Ａ変換部２５、増幅器２６及びスピーカ２７を通して出力される。
【００４９】
Ｒナンバ累算器４４のバッファＢ中にある最初のパラメータの整数部がクリアされる（０にされる。仮にバッファＢが１.５なら、該バッファＢは０.５にされる）。そして次の伸張圧縮パラメータＲがＲナンバ累算器４４のバッファＢに読み出され、Ｒナンバ累算器４４で上記次の伸張圧縮パラメータＲに加算されて、その値がＲナンバ累算器４４のバッファＢに書き込まれる。
【００５０】
Ｒナンバ累算器４４は、バッファＢに書き込まれたパラメータＲの整数部の値を読み出し回数として出力する。ブロックアドレス指定部４５は、その回数だけアドレスバッファ中に記憶されたブロックアドレスを波形読出アドレス生成部４３に出力する。或いは順次ブロックアドレスメモリ１０３から次のブロックアドレスを読み出し、さらには所定分だけ先にブロックアドレスを移行させて読み出し（整数部が０なら、読み出されない）、波形読出アドレス生成部４３に出力する。
【００５１】
上記波形読出アドレス生成部４３は、与えられたアドレスまでＰＣＭ波形の読み出しを行い、ブロックＡサンプルバッファ４６に書き込む。
【００５２】
そして読み出されたＰＣＭ波形は、エンベロープ発生器２２によって与えられたエンベロープが積算器２３で付加されて、累算器２４によって同時発音分累算され、Ｄ／Ａ変換部２５、増幅器２６及びスピーカ２７を通して出力される。
【００５３】
以上の処理は、最後まで繰り返される。図５は、図１のキーナンバより半オクターブだけ上げた場合の波形処理状態を示している。この場合は、伸張圧縮パラメータＲが１.５となり、ヘッダ部Ｈにつき、２回に１回同じブロックの波形（丸２、丸４、丸６、丸８、丸１０）が読み出され、時間長にして約１.５倍になっている。また図６は、図１のキーナンバより３／４オクターブだけ下げた場合の波形処理状態を示している。この場合は、伸張圧縮パラメータＲが０.７５となり、ヘッダ部Ｈにつき、４回に１回、所定のブロックの波形（丸４、丸８）が間引いて読み出され、時間長にして約０.７５倍になっている。
【００５４】
一方図２の例で、第１周期の２９サンプルを繰り返すと、図７のように、ポイント２９とポイント３０の間で振幅値の数値が飛び、ノイズの原因となる。また図２の例で求めた０クロスポイントを全て、周期毎の０クロスポイント（１周期の波長を約１０ポイント）とし、最初の０クロスポイント１１とし、伸張圧縮パラメータＲを０.５とすると、ポイント１９まで読み出した後はポイント３０へ飛ぶことになる。その場合ポイント３０の振幅値はポイント１９のそれより小さいため、図８のように、不連続点ができ、ノイズの原因となる。
【００５５】
そこで本構成では、ブロック毎のつなぎ目でクロスフェード処理を行う構成としている。すなわち、波形再生時に１つのブロックの波形読み出しを行って、ブロックＡサンプルバッファ４６に書き込んだ時に、０クロスポイントの次の３つのポイント分のサンプルデータ（ＤａｔａＢ０、ＤａｔａＢ１、ＤａｔａＢ２）をブロックＢサンプルバッファ４７に入れ、次のブロックの波形データを読み出す時、その最初の３つのポイント分のサンプルデータ（Ｄａｔａ０、Ｄａｔａ１、Ｄａｔａ２）と上記バッファ４７のサンプルデータ（ＤａｔａＢ０、ＤａｔａＢ１、ＤａｔａＢ２）とを、ブロック間クロスフェードミキシング部４８により、下式数３、数４及び数５に示すように、クロスフェードさせる
【００５６】
（数３）
Ｄａｔａ０’＝Ｄａｔａ０＊０.３＋ＤａｔａＢ０＊０.７
ＤａｔａＯ’：ブロック間クロスフェードミキシング部４８からの出力
【００５７】
（数４）
Ｄａｔａ１’＝Ｄａｔａ１＊０.５＋ＤａｔａＢ１＊０.５
Ｄａｔａ１’：ブロック間クロスフェードミキシング部４８からの出力
【００５８】
（数５）
Ｄａｔａ２’＝Ｄａｔａ２＊０.７＋ＤａｔａＢ２＊０.３
Ｄａｔａ２’：ブロック間クロスフェードミキシング部４８からの出力
【００５９】
図９は、そのようにしてクロスフェードを行った場合に、前記図７のようなノイズが発生しなくなった場合の波形例（図２のポイント３０、３１、３２をフェードアウトして、ポイント１、ポイント２、ポイント３をフェードイン）を示している。図７ではポイント２９からポイント３０へ振幅値が大きく飛んでいたのが、クロスフェードによりポイント２９からポイント３３の間が均一になり、ノイズが出にくくなっている。
【００６０】
図１０は、上記のようにしてクロスフェードを行った場合に、前記図８のようなノイズが発生しなくなった場合の波形例（図２のポイント２０、２１、２２をフェードアウトして、ポイント３０、ポイント３１、ポイント３２をフェードイン）を示している。図８ではポイント１９からポイント２１の間に不連続点が存在していたのが、クロスフェードによりポイント１９からポイント２３の間が滑らかになり、ノイズが出にくくなっている。
【００６１】
本構成では、前述のように、サンプリング機能により人の声などがサンプリングされて、上記波形メモリ１０１に記憶せしめられる時に、そのフォルマント成分がケプストラム解析などによりフォルマント係数として抽出され、フォルマントフィルタ係数メモリ２８に記憶される。またその波形データが再生される時には、フォルマントデジタルフィルタ２９により、再生された波形データに該フォルマント係数が掛けられて、フォルマントの移動していない元のＰＣＭ波形データに戻されるようにしている。
【００６２】
このフォルマント係数の抽出が行われた場合は、上記波形メモリ１０１には、元ＰＣＭ波形データに、抽出したフォルマントの逆特性のフィルタを掛けてフォルマント成分を除去したものが記憶されることになる。
【００６３】
尚、本発明の波形データ時間伸張圧縮装置は、上述の実施例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。たとえば、上記伸張圧縮パラメータＲの制御を、図１１に示す電子鍵盤楽器２０のホイール２００にアサインすることで、演奏中に該ホイール２００を適宜回動・制御することで、ＰＣＭ波形の再生時間の伸張圧縮をリニアに変化させることができ、これまでにない楽音のコントロールとして、演奏方法の幅を広げることができるようになる。
【図面の簡単な説明】
【００６４】
【図１】生楽器や人声をサンプリングして波形メモリ１０１に記憶されている元ＰＣＭ波形の波形図である。
【図２】同じくサンプリングされて波形メモリ１０１に記憶された元ＰＣＭ波形の波形図である。
【図３】波形編集装置１０の機能ブロック図である。
【図４】本発明の一実施例に係る波形データ時間伸張圧縮装置が適用された電子鍵盤楽器２０の機能ブロック図である。
【図５】図１のキーナンバより半オクターブだけ上げた場合の波形処理状態を示すＰＣＭ波形の波形図である。
【図６】図１のキーナンバより３／４オクターブだけ下げた場合の波形処理状態を示すＰＣＭ波形の波形図である。
【図７】所定のブロックの波形データが繰り返し再生された場合の振幅値の飛びの状態を示す波形図である。
【図８】所定のブロックの波形データが間引かれて再生された場合の不連続点の状態を示す波形図である。
【図９】クロスフェードを行った場合に図７のような飛びが発生しなくなってノイズが発生しなくなった場合の波形図である。
【図１０】クロスフェードを行った場合に図８のような不連続点の発生がなくなってノイズが発生しなくなった場合の波形図である。
【図１１】ホイール２００を備えた電子鍵盤楽器２０の説明図である。
【符号の説明】
【００６５】
１      波形記憶部
２      ブロックアドレス記憶部
３      パラメータ設定部
４      波形再生部
１０      波形編集装置
２０      電子鍵盤楽器
２１      鍵盤部
２２      エンベロープ発生器
２３      積算器
２４      累算器
２５      Ｄ／Ａ変換部
２６      増幅器
２７      スピーカ
２８      フォルマントフィルタ係数メモリ
２９      フォルマントデジタルフィルタ
３１      伸張圧縮パラメータ算出器
４１      Ｆナンバ算出器
４２      Ｆナンバ累算器
４３      波形読出アドレス生成部
４４      Ｒナンバ累算器
４５      ブロックアドレス指定部
４６      ブロックＡサンプルバッファ
４７      ブロックＢサンプルバッファ
４８      ブロック間クロスフェードミキシング部
１０１      波形メモリ
１０１ａ    エンベロープ調整部
１０１ｂ    編集波形メモリ
１０２      基準ピッチメモリ
１０３      ブロックアドレスメモリ
１１１      基準ピッチ抽出部
１１２      ブロックアドレス抽出部
２００      ホイール
【図１】
2008276268.tif 000003
【図２】
2008276268.tif 000004
【図３】
2008276268.tif 000005
【図４】
2008276268.tif 000006
【図５】
2008276268.tif 000007
【図６】
2008276268.tif 000008
【図７】
2008276268.tif 000009
【図８】
2008276268.tif 000010
【図９】
2008276268.tif 000011
【図１０】
2008276268.tif 000012
【図１１】
2008276268.tif 000013