(57)【特許請求の範囲】
【請求項１】
テンポを持った楽音波形をあらわす波形データを記憶する記憶手段と、
前記記憶手段に記憶された読出対象の波形データを読み出すための順次に変化する２つの読出アドレスであって、読出対象の波形データのテンポに同期した周期で、圧縮量ないし伸長量に応じたアドレス幅だけ交互に不連続に変化する２つの読出アドレスを生成するアドレス生成手段と、
前記記憶手段の、順次に変化する前記２つの読出アドレスそれぞれから波形データを読み出す波形読出手段と、
前記波形読出手段により読み出された２つの波形データを１つに合成することにより出力波形データを生成する波形生成手段とを備えたことを特徴とする波形圧縮伸長装置。
【請求項２】
前記記憶手段が、波形データとともに該波形データのテンポを記憶するものであって、前記アドレス生成手段が、前記記憶手段に記憶された読出対象の波形データのテンポに基づいて、読出アドレスの不連続変化点を求めるものであることを特徴とする請求項１記載の波形圧縮伸長装置。
【請求項３】
テンポを入力するテンポ入力手段を備え、
前記アドレス生成手段が、前記テンポ入力手段から入力されたテンポに基づいて、読出アドレスの不連続変化点を求めるものであることを特徴とする請求項１記載の波形圧縮伸長装置。
【請求項４】
楽音波形の圧縮量ないし伸長量を入力する伸縮情報入力手段を備え、
前記アドレス生成手段が、前記伸縮情報入力手段から入力された圧縮量ないし伸長量に基づいて、読出アドレスの不連続変化幅を求めるものであることを特徴とする請求項１〜３記載の波形圧縮伸長装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テンポを持った楽音波形を圧縮ないし伸長する波形圧縮伸長装置に関する。
【０００２】
【従来の技術】
従来より、テンポを持った楽音波形をあらわす波形データをメモリに記憶しておき、あらかじめ設定された圧縮量ないし伸長量に対応するアドレス幅だけ読み飛ばしないし二度読みし、これにより圧縮ないし伸長された楽音波形を生成する波形圧縮伸長装置が知られている。
【０００３】
図５は、従来の波形圧縮伸長装置における、楽音波形の伸長方法の説明図である。
図示しないメモリに楽音波形が格納されており、ここでは、そのメモリから楽音波形を読み出すための読出アドレスとして、図５（ａ）に示すような、順次に変化するとともに、所定時間間隔で、伸長量に応じたアドレス幅だけ不連続に変化した読出アドレスが設定される。このように設定された読出アドレスから楽音波形を読み出すと、その読み出した楽音波形は、読出アドレスが周期的に不連続に変化した各時点ａ（不連続変化点ａと称する）で不連続となり、従ってその楽音波形をそのまま再生すると、その再生された楽音は、不連続でノイズが発生したり不自然な音が発生することになる。そこで、この不自然な音の発生を防止するために、ここでは、以下に示す（１），（２）のステップにより楽音波形の伸長が行なわれる。
【０００４】
（１）先ず、図５（ｂ）に示すように、  順次に変化する２つの読出アドレスであって、周期的な不連続変化点ａを持つ一方の読出アドレスと、その周期的な不連続変化点ａとは位相がずれた周期的な不連続変化点ｂを持つもう一方の読出アドレスとの２つの読出アドレスを設定し、それら２つの読出アドレスそれぞれから楽音波形を読み出す。これにより、不連続変化点ａで不連続となる楽音波形と、その不連続変化点ａとは異なる時間軸位置における不連続変化点ｂで不連続となる楽音波形とが得られる。
【０００５】
（２）このようにして読み出した２つの楽音波形について、図５（ｃ）に示すように、それぞれの不連続変化点ａ，ｂの時間軸位置でそれぞれの楽音波形のレベルが交互に０になるようにレベル制御を行ない、レベル制御された楽音波形どうしを加算して出力する。このようにして、いわゆるクロスフェード処理することにより、再生された楽音の不連続性に起因する不自然な音が防止される。
【０００６】
楽音波形の圧縮を行なう場合も同様であり、所定の時間間隔毎に、あらかじめ設定された圧縮量に応じたアドレス幅だけ読出アドレスを先のアドレスにジャンプすればよい。
【０００７】
【発明が解決しようとする課題】
しかし、図５（ｂ）に示す、繰り返し生じる区間ｃでは、読出アドレスがずれた異なる楽音が同時に再生されるため、エコーがかかったような状態（以下、ディレイ効果と称する）になったり、あるいはクロスフェード処理による振幅変調感が感じられたり聴感上異音となって聴こえる場合がある。この異音から聴感上感じるリズムは楽音波形のもつリズムとは異なるリズムであり、あるいはこの異音は、楽音波形の持つリズムを乱す音であり、再生された楽音に対して目立ち、聴感上不自然であるという問題がある。
【０００８】
本発明は、上記事情に鑑み、聴感上自然な楽音を再生することができる波形圧縮伸長装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成する本発明の波形圧縮伸長装置は、
（１）テンポを持った楽音波形をあらわす波形データを記憶する記憶手段
（２）上記記憶手段に記憶された読出対象の波形データを読み出すための順次に変化する２つの読出アドレスであって、読出対象の波形データのテンポに同期した周期で、圧縮量ないし伸長量に応じたアドレス幅だけ交互に不連続に変化する２つの読出アドレスを生成するアドレス生成手段
（３）上記記憶手段の、順次に変化する上記２つの読出アドレスそれぞれから波形データを読み出す波形読出手段
（４）上記波形読出手段により読み出された２つの波形データを１つに合成することにより出力波形データを生成する波形生成手段
を備えたことを特徴とする。
【００１０】
従来の波形圧縮伸長装置では、楽音波形を圧縮したりあるいは伸長したりするために必要な読出アドレスの不連続変化点の周期は、楽音波形の持つテンポとは無関係に設定されている。このため、発生する異音から聴感上印象づけられるテンポは、楽音波形の持つテンポに無関係なものとなり、従ってその異音は再生された楽音に対して違和感のある音として目立つこととなり、聴感上不自然である。
【００１１】
異音が聴感上異音として目立つのはリズムを乱す音であることが大きな要因の１つであり、リズムに合った音であれば、その音が楽音波形に本来含まれていた音でなかったとしても違和感はほとんど感じない。また、リズムパターンのような楽音波形の場合、楽音の空白部分（音の小さな部分）がテンポに応じた周期で存在し、異音の発生するタイミングがこの空白部分に一致すると異音が発生したとしてもほとんど聞こえないことにもなる。本発明は、この観点に着目してなされたものである。すなわち、テンポに応じた周期で不連続変化点を設定したため、もともとの楽音波形とは異なる音が聴こえたとしても、テンポに合った音であり、聴感上自然な楽音が再生される。
【００１２】
ここで、上記記憶手段が、波形データとともにその波形データのテンポを記憶するものであって、上記アドレス生成手段が、上記記憶手段に記憶されたその読出対象の波形データのテンポに基づいて、読出アドレスの不連続変化点を求めるものであることが好ましい。
このようにすると、記憶手段をアクセスするだけで波形データとその波形データのテンポが得られる。
【００１３】
また、テンポを入力するテンポ入力手段を備え、上記アドレス生成手段が、上記テンポ入力手段から入力されたテンポに基づいて、読出アドレスの不連続変化点を求めるものであってもよい。
このようにすると、例えば鍵盤を備え、その鍵盤を自分で演奏して楽音波形を得、その楽音波形を記憶手段に格納した場合等に、テンポ入力手段でテンポを入力することができる。
【００１４】
さらに、楽音波形の圧縮量ないし伸長量を入力する伸縮情報入力手段を備え、上記アドレス生成手段が、上記伸縮情報入力手段から入力された圧縮量ないし伸長量に基づいて、アドレス発生手段における読出アドレスの不連続変化幅を求めるものであることも好ましい形態である。
このような伸縮情報入力手段を備えると、圧縮あるいは伸長の処理中であってもリアルタイムに圧縮量ないし伸長量を自由に設定することができる。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図１は、本発明の第１実施形態の波形圧縮伸長装置のブロック構成図である。
図１に示す波形圧縮伸長装置１０には、伸縮情報入力手段１１と、記憶手段１２と、アドレス生成手段１３と、波形読出手段１４と、波形生成手段１５とが備えられている。
【００１６】
伸縮情報入力手段１１には、操作子としてロータリボリューム（図示せず）が備えられており、このロータリボリュームを操作して楽音波形の圧縮量ないし伸長量を設定する。また、伸縮情報入力手段１１には、図示しないＡ／Ｄ変換器も備えられており、このＡ／Ｄ変換器により、設定された圧縮量ないし伸長量がＡ／Ｄ変換され圧伸量情報としてアドレス生成手段１３に入力される。
【００１７】
記憶手段１２には、楽音波形をあらわす波形データおよびその波形データのテンポが記憶される。
アドレス生成手段１３は、記憶手段１２に記憶された読出対象の波形データのテンポと、伸縮情報入力手段１１からの圧伸量情報との双方を入力し、入力されたテンポに応じた周期でかつ圧伸量情報に応じたアドレス幅だけ交互に不連続に変化する２つの読出アドレスを生成する。
【００１８】
波形読出手段１４は、アドレス生成手段１３から出力された２つの読出アドレスそれぞれから、記憶手段１２に記憶された波形データを読み出す。
波形生成手段１５は、波形読出手段１４により読み出された２つの波形データを１つに合成して出力する。
図２は、図１に示す波形圧縮伸長装置における、楽音波形の伸長方法の説明図、図３は、図１に示す波形圧縮伸長装置における、楽音波形の伸長処理ルーチンを示すフローチャートである。
【００１９】
図２には、図５（ｂ）と同様に、実線で示した読出アドレスと破線で示した読出アドレスとの２つの読出アドレスが示されているが、ここでは、読出対象の楽音波形のテンポに応じた周期で不連続変化点を発生させている。具体的には、ここでは、一拍を８等分し、１／８拍分の時間が経過するごとに、それら２つの読出アドレスのうちの一方の読出アドレスが交互に不連続変化点を持つように、楽音波形のテンポに応じて、その不連続変化点の発生時刻を定めている。
【００２０】
ここでは、スネアドラムやバスドラムの演奏によるリズムパターンの楽音波形を取り挙げており、図２には、８分音符が示されており、この８分音符は、単に、その８分音符が示されているタイミングで、スネアドラムあるいはバスドラムが演奏されることを意味している。
この図２に示す例は、２つの読出アドレスが１／８拍分の時間が経過するごとに交互に不連続変化点が生じるものであり、すなわちテンポに応じた周期で不連続変化点が生じるものである点を除き、図５（ｂ）に示す従来例と同様であり、前述したディレイ効果（エコーがかかったような状態）が生じ得る区間ｃは、２つの読出アドレスが互いに異なる区間と一致し、繰り返し生じている。ただし、この図２に示す例では、区間ｃでは、スネアドラムもバスドラムも演奏されていない、’小さな’音量の区間であり、ディレイ効果が生じたとしても聴感上ほとんど聞こえない区間である。
【００２１】
ここでは、図３のフローチャートを説明するにあたり、現在図２に示す時刻ｔの時点にいるものとし、ある１つの時刻（ここでは時刻ｔ）における、実線で示す読出アドレスを‘Ａ’、破線で示す読出アドレスを‘Ｂ’とする。
以下、図３とともに図１、図２を参照しながら、図３のフローチャートについて説明する。
【００２２】
先ず、ステップＳ１において、波形読出手段１４は、アドレス生成手段１３で生成された２つの読出アドレスのうちの一方の読出アドレス‘Ａ’で、記憶手段１２に記憶された波形データを読み出す。
次に、ステップＳ２において、波形読出手段１４は、アドレス生成手段１３で生成された他方の読出アドレス‘Ｂ’で、記憶手段１２に記憶された波形データを読み出す。さらに、ステップＳ３において、読出アドレス‘Ａ’，‘Ｂ’をインクリメントして（すなわち図２に示す再生時間軸上の時刻ｔを１ステップだけ進めて）ステップＳ４に進む。
【００２３】
ステップＳ４では、読出アドレス‘Ａ’が、読出アドレス‘Ｂ’が前回ジャンプしたときの読出アドレス‘Ａ’のアドレス（すなわちここでは、図２に示す時刻ｔにいることを想定しており、したがって読出アドレス‘Ｂ’が前回ジャンプした時点における読出アドレス‘Ａ’のアドレスは図２に示すアドレスａ１である）から１／８拍分進んだ位置になったか否かが判定される。１／８拍分のアドレス幅は、以下に説明する計算式（１）により算出される。
【００２４】
テンポは、１分間あたりの拍数（ＢＰＭ：Ｂｅａｔ  Ｐｅｒ  Ｍｉｎｕｔｅ）なので、１拍分のサンプル数は、サンプリング周波数をｆｓ（Ｈｚ）とすると、次のように表わすことができる。
１拍分のサンプル数＝（６０（ｓｅｃ）／ＢＰＭ）×ｆｓ（Ｈｚ）
よって、１／８拍分のサンプル数＝
（６０（ｓｅｃ）／ＢＰＭ）×ｆｓ（Ｈｚ）×１／８
となる。１サンプルあたりのビット数を１６ビット（２バイト）とすると、１／８拍分のアドレス幅は次の計算式（１）で求めることができる。
【００２５】
１／８拍分のアドレス幅＝
（６０（ｓｅｃ）／ＢＰＭ）×ｆｓ（Ｈｚ）×１／８×２  …（１）
再び図３に示すフローチャートについて説明を続ける。ステップＳ４において、読出アドレス‘Ａ’が、計算式（１）により算出された１／８拍分のアドレス位置に至っていないと判定された場合は、ステップＳ６に進む。一方、読出アドレス‘Ａ’が１／８拍分のアドレス位置に達した（現在時刻ｔが時刻ｔ１まで進んだ）と判定された場合は、ステップＳ５に進む。ステップＳ５では、読出アドレス‘Ａ’に読出アドレス‘Ｂ’をセット（設定）して読出アドレス‘Ａ’を読出アドレス‘Ｂ’にまで戻す。これにより、伸長量に応じたアドレス幅が確保される。
【００２６】
ステップＳ６では、今度は読出アドレス‘Ｂ’が、読出アドレス‘Ａ’が前回ジャンプした時点（時刻ｔ１）における読出アドレス‘Ｂ’のアドレス位置ｂ１から１／８拍分進んだアドレス位置ｂ２に達したか否かが、前述した計算式（１）に基づいて判定される。読出アドレス‘Ｂ’が１／８拍分進んだアドレス位置ｂ２に達していないと判定された場合はステップＳ９に進む。一方、読出アドレス‘Ｂ’が１／８拍分進んだアドレス位置ｂ２に達した（すなわち現在時刻ｔが時刻ｔ２に達した）と判定された場合はステップＳ７に進む。ステップＳ７では、以下に説明する計算式（２）により、読出アドレス‘Ｂ’を所定の伸長量に応じたアドレス幅（前述したステップＳ５のアドレス幅と同じアドレス幅）だけ戻すためのアドレスを算出する。
【００２７】
ここで、計算式（２）について説明する。本実施形態の波形圧縮伸長装置１０では、前述したように、伸縮情報入力手段１１により伸長量（ストレッチ量）や圧縮量（コンプレッション量）、即ちテンポ変化量が設定され、さらにＡ／Ｄ変換（Ａ／Ｄ値は００ｈ〜ＦＦｈの範囲内）される。また記憶手段１２には、表１に示すような、Ａ／Ｄ値に対応するデータを有するデータテーブルが備えられている。
【００２８】
【表１】
0003862839.tif 000002
【００２９】
表１に示すデータテーブルから得たデータと１／８拍分のアドレス幅により、ジャンプする（戻る）アドレスを、次の計算式（２）で求める。
ジャンプするアドレス＝１／８拍分のアドレス×データ    …（２）
例えばテンポ変化量を−２５％に設定した場合、ジャンプするアドレスは−１／３２拍分のアドレス（１／８×（−１／４））となる。即ち、１／８拍再生する毎に１／３２拍分戻る（余分に再生する）ことになるので、一拍あたりでは１／４拍分だけ余分に再生される。
【００３０】
ステップＳ８では、読出アドレス‘Ｂ’に、ステップＳ７で算出したジャンプ分（マイナス分）を加算し、読出アドレス‘Ｂ’を前のアドレスに戻すことによりストレッチ量を定めてステップＳ９に進む。
ステップＳ９では、各読出波形について、それぞれの不連続変化点でそれぞれの読出波形のレベルが交互に０になるようにレベル制御を行なう。次に、ステップＳ１０に進み、レベル制御された２つの波形を加算する。さらに、ステップＳ１１において、加算された波形を出力してこのルーチンを終了する。
【００３１】
このように、本実施形態では、１／８拍分のテンポに応じた周期で不連続変化点を設定するものであるため、聴感上自然な楽音が再生される。
尚、本実施形態では、楽音波形の伸長処理について説明したが、楽音波形の圧縮処理を行なう場合は、図３に示すフローチャートのうちの、ステップＳ７におけるストレッチ量をコンプレッション量に代えればよい。
【００３２】
また、本実施形態では、１拍を１／８ずつに分割したが、これに限られるものではなく、１拍を整数分の１に分割するものであればよい。
図４は、本発明の第２実施形態の波形圧縮伸長装置のブロック構成図である。
図４に示す波形圧縮伸長装置２０の構成は、図１に示す波形圧縮伸長装置１０の構成と比較すると、鍵盤２１とテンポ入力手段２２とが追加されている点が異なっている。
【００３３】
本実施形態では、鍵盤２１を自分で演奏して楽音波形を得、その楽音波形を記憶手段１２に格納し、またテンポ入力手段２２でその楽音波形が持つテンポをアドレス生成手段１３に入力する。以下、前述した波形圧縮伸長装置１０と同様にして、そのテンポに応じた周期で不連続変化点を設定して、聴感上自然な楽音を再生してもよい。
【００３４】
【発明の効果】
以上説明したように、本発明によれば、聴感上自然な楽音を再生することができ、入力された圧縮量ないし伸長量にリアルタイムで追従して圧縮伸長処理を行うことができる波形圧縮伸長装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態の波形圧縮伸長装置のブロック構成図である。
【図２】図１に示す波形圧縮伸長装置における、楽音波形の伸長方法の説明図である。
【図３】図１に示す波形圧縮伸長装置における、楽音波形の伸長処理ルーチンを示すフローチャートである。
【図４】本発明の第２実施形態の波形圧縮伸長装置のブロック構成図である。
【図５】従来の波形圧縮伸長装置における、楽音波形の伸長方法の説明図である。
【符号の説明】
１０，２０    波形圧縮伸長装置
１１    伸縮情報入力手段
１２    記憶手段
１３    アドレス生成手段
１４    波形読出手段
１５    波形生成手段
２１    鍵盤
２２    テンポ入力手段
【図１】
0003862839.tif 000003
【図２】
0003862839.tif 000004
【図３】
0003862839.tif 000005
【図４】
0003862839.tif 000006
【図５】
0003862839.tif 000007