(57)【特許請求の範囲】
【請求項１】
一連の楽音波形を記憶する波形記憶手段と、
圧縮伸張のレベルを指示する、時間的な変化が許容された制御信号の変化に追随しながら前記楽音波形の時間軸を圧縮あるいは伸長することにより再生波形を生成する圧縮伸長手段と、
圧縮伸張のレベルを指示する周期信号を発生する周期信号発生手段と、
該周期信号発生手段を制御し、発生される周期信号に変化を付加する信号変更手段と、
前記周期信号発生手段により発生された、変化が付加された周期信号において、その周期信号の整数周期毎のタイミングでの積分値をそれぞれそれに続く整数周期で０に収束するように前記周期信号を修正する誤差補正手段とを備えたことを特徴とする演奏制御装置。
【請求項２】
前記信号変更手段は、前記周期信号の周期を変化させるものであることを特徴とする請求項１記載の演奏制御装置。
【請求項３】
前記圧縮伸長手段による再生波形のテンポを、波形再生途中での変更を許して設定する再生テンポ設定手段を備え、前記信号変更手段は、該再生テンポ設定手段で設定されたテンポに応じて前記周期信号の周期を変化させるものであることを特徴とする請求項２記載の演奏制御装置。
【請求項４】
前記信号変更手段は、前記周期信号発生手段より発生される周期信号の振幅を変化させるものであることを特徴とする請求項１記載の演奏制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏を制御する演奏制御装置に関する。
【０００２】
【従来の技術】
従来より、一連の楽音波形を記憶しておき、記憶された楽音波形の時間軸を圧縮あるいは伸長して再生波形を生成することにより演奏を制御する演奏制御装置が知られている。このような演奏制御装置の１つとして、特開平１０−５５１８０号公報に、スイング演奏を制御する技術が提案されている。この技術によれば、楽音波形を記憶しておき、記憶された楽音波形を所定の音符長に対応する周期で区切ったときの各周期内の波形の前半部分，後半部分を、それぞれ、相対的に遅い速度，相対的に速い速度で読み出すことにより、時間軸の伸長および圧縮を行ない、再生される楽音にスイングが付与される。
【０００３】
【発明が解決しようとする課題】
ところで、上記公報では、波形読出の読出速度を制御する変化パターンを、ユーザの操作により切り替えるとき、本来ずれては困るタイミングがずれないように、所定のタイミングのみで変化パターンを切り替える制御を行なっている。
【０００４】
従って、上記公報では、変化パターンを変更しようとしても即座に変更するというような制御は困難であるという問題がある。
【０００５】
また、演奏テンポを変更するためのテンポ操作子やスイングの効果の大きさを変更するためのデプス操作子を備え、その操作子への操作が直ちに演奏に反映する演奏制御装置も望まれるが、満足するものは提案されていない。
【０００６】
本発明は、上記事情に鑑み、所望の演奏に即座に変更することのできる演奏制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成する本発明の演奏制御装置は、
（１）一連の楽音波形を記憶する波形記憶手段
（２）圧縮伸張のレベルを指示する、時間的な変化が許容された制御信号の変化に追随しながら上記楽音波形の時間軸を圧縮あるいは伸長することにより再生波形を生成する圧縮伸長手段
（３）圧縮伸張のレベルを指示する周期信号を発生する周期信号発生手段
（４）その周期信号発生手段を制御し、発生される周期信号に変化を付加する信号変更手段
（５）上記周期信号発生手段により発生された、変化が付加された周期信号において、その周期信号の整数周期毎のタイミングでの積分値をそれぞれそれに続く整数周期で０に収束するように上記周期信号を修正する誤差補正手段
を備えたことを特徴とする。
【０００８】
本発明の演奏制御装置は、波形記憶手段に記憶された楽音波形の時間軸を圧縮あるいは伸長することにより再生波形を生成している途中で、圧縮伸長のレベルが変更されても、その変更されたレベルに起因して発生する圧縮伸長量の誤差が０に収束するように制御信号が生成される。このため、例えばテンポやデプスが変更された場合であっても、その変更されたテンポやデプスに応じた演奏を即座に行なうことができる。従って、従来のように、所定の区間の区切りを待つ必要はなく、所望の演奏に即座に変更することができる。
【０００９】
ここで、上記信号変更手段は、上記周期信号の周期を変化させるものであることが好ましい。
【００１０】
このような信号変更手段を備えると、テンポが変更された場合であっても、その変更されたテンポに応じた演奏を即座に行なうことができる。
【００１１】
また、上記圧縮伸長手段による再生波形のテンポを、波形再生途中での変更を許して設定する再生テンポ設定手段を備え、上記信号変更手段は、その再生テンポ設定手段で設定されたテンポに応じて上記周期信号の周期を変化させるものであることも好ましい形態である。
【００１２】
このような再生テンポ設定手段および信号変更手段を備えると、ユーザは、演奏中にその再生テンポ設定手段を操作して、その演奏のテンポを所望のテンポに即座に変更することができる。
【００１３】
さらに、上記信号変更手段は、上記周期信号発生手段より発生される周期信号の振幅を変化させるものであってもよい。
【００１４】
このような信号変更手段を備えると、例えばスイング演奏中にデプスが変更された場合であっても、その変更されたデプスに対応する大きさのスイング効果で即座に演奏を行なうことができる。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００１６】
図１は、本発明の演奏制御装置の一実施形態のハードウェア構成を示すブロック図である。
【００１７】
図１に示す演奏制御装置１００は、あるスイング演奏が行なわれている途中でユーザが操作子を操作してテンポやデプスを変更した場合であっても、変更されたテンポやデプスに応じた新たなスイング演奏に即座に変更することのできる装置である。
【００１８】
この演奏制御装置１００には、波形メモリ１０と、波形生成手段２０と、制御信号発生手段３０と、スタート／ストップ操作子４０と、テンポ操作子５０と、デプス操作子６０とが備えられている。先ず、各操作子４０，５０，６０について説明する。
【００１９】
スタート／ストップ操作子４０は、一連の楽音の演奏の開始あるいは停止を指示する操作子であり、一度操作すると演奏の開始を指示するための’Ｈ’レベルのスタート／ストップ信号を出力し、再度操作すると演奏の停止を指示するための’Ｌ’レベルのスタート／ストップ信号を出力する。
【００２０】
テンポ操作子５０は、本発明にいう再生テンポ設定手段に相当し、後述する波形生成手段２０で生成される再生波形のテンポを、波形再生途中での変更を許して設定するものであり、設定されたテンポをあらわす再生テンポ情報を出力する。
【００２１】
デプス操作子６０は、付与されるスイングの大きさ（変調の深さ）を設定するためのものであり、設定された変調の深さを表わすデプス情報を出力する。
【００２２】
次に波形メモリ１０について説明する。この波形メモリ１０については、図２を参照して説明する。
【００２３】
図２は、図１に示す波形メモリのデータ構造を示す図である。
【００２４】
この波形メモリ１０は、本発明にいう波形記憶手段に相当し、この波形メモリ１０には、波形データ本体であるＰＣＭ波形データ１１と、そのＰＣＭ波形データ１１の本来のテンポであるオリジナルテンポ１２と、そのＰＣＭ波形データ１１の先頭のアドレス，最終のアドレスを示すスタート・アドレス１３，エンド・アドレス１４とが記憶される。
【００２５】
波形生成手段２０については、図３を参照して説明する。
【００２６】
図３は、図１に示す波形生成手段の内部構成をブロック化して示した図である。
【００２７】
図３に示す波形生成手段２０は、読出手段２１ａが備えられた時間軸圧縮伸長処理手段２１と、割算手段２２と、加算手段２３とから構成されている。
【００２８】
時間軸圧縮伸長処理手段２１は、本発明にいう圧縮伸長手段に相当し、圧縮伸長のレベルを指示する、詳細は後述する時間的な変化が許容された制御信号の変化に追随しながらＰＣＭ波形データ１１があらわす楽音波形を、所定の音符長に対応する周期で区切ったときの各周期内の波形の前半部分，後半部分を、それぞれ、時間軸の伸長，圧縮することにより再生波形を生成する。時間軸圧縮伸長処理手段２１に備えられた読出手段２１ａは、前述した波形メモリ１０に向けて、ＰＣＭ波形データ１１やそのＰＣＭ波形データ１１の再生に必要なオリジナルテンポ１２等を読み出すためのアドレス（ａｄｄｒｅｓｓ）を出力し、これにより波形メモリ１０からＰＣＭ波形データ１１やオリジナルテンポ１２等をデータ（ｄａｔａ）として読み出す。
【００２９】
割算手段２２は、テンポ操作子５０からの再生テンポ情報と、読出手段２１ａからのオリジナルテンポ情報を入力し、「再生テンポ情報／オリジナルテンポ情報」の割算を行なって、再生テンポ情報に対応した再生テンポで再生を行なうための「基準圧伸係数」を算出する。例えば、
再生テンポ情報＝１８０ＢＰＭ
オリジナルテンポ情報＝１００ＢＰＭ
とすると、
基準圧伸係数＝１８０／１００＝１．８となる。
【００３０】
加算手段２３は、割算手段２２で求めた基準圧伸係数に制御信号のレベルを加算して圧伸係数を生成して時間軸圧縮伸長処理手段２１に入力する。
【００３１】
ここで、時間軸圧縮伸長処理手段２１に、「１」より大きい圧伸係数が入力された場合は、時間軸圧縮伸長処理手段２１は、ＰＣＭ波形データ１１を時間軸方向に圧縮して再生波形を生成する。従って、再生テンポは速くなる。一方、「１」より小さい圧伸係数が入力された場合は、ＰＣＭ波形データ１１を時間軸方向に伸長して再生波形を生成する。従って、再生テンポは遅くなる。また、圧伸係数として「１」が入力された場合は、圧縮や伸長は行なわず、従ってオリジナルテンポで再生波形が生成されることとなる。
【００３２】
次に、制御信号発生手段３０について、図４を参照して説明する。
【００３３】
図４は、図１に示す制御信号発生手段の内部構成をブロック化して示した図である。
【００３４】
図４に示す制御信号発生手段３０には、波形テーブル３１と、テーブル選択手段３２と、シーケンスデータ記憶手段３３と、制御手段３４と、補間手段３５と、乗算手段３６と、加算手段３７と、誤差補正手段３８とが備えられている。
【００３５】
波形テーブル３１，テーブル選択手段３２，シーケンスデータ記憶手段３３，制御手段３４，補間手段３５，乗算手段３６が本発明にいう圧縮伸長レベルを指示する周期信号を発生する周期信号発生手段に相当する。波形テーブル３１およびシーケンスデータ記憶手段３３については、図５および図６を参照して説明する。
【００３６】
図５は、波形テーブルに記憶された、複数種類の周期波形を示す図、図６は、シーケンスデータ記憶手段に記憶されたシーケンスデータを示す図である。
【００３７】
波形テーブル３１には、図５に示すように、１拍分の周期信号を１つの単位として、波形形状や周期が異なる複数種類の周期波形ｗａｖｅ１，ｗａｖｅ２，ｗａｖｅ３，ｗａｖｅ４，…が記憶されている。また、シーケンスデータ記憶手段３３には、図６に示すように、複数の周期波形ｗａｖｅ１，ｗａｖｅ２，ｗａｖｅ３，ｗａｖｅ４，…を読み出す順序が規定されたシーケンスデータが記憶されている。この図６では、周期波形ｗａｖｅ１，ｗａｖｅ２，ｗａｖｅ５，…，ｗａｖｅ３の順に読み出される。
【００３８】
図４に示す制御手段３４には、スタート／ストップ信号および再生テンポ情報が入力される。ここで、制御手段３４に、スタート／ストップ信号として’Ｈ’レベルが入力されると、この制御手段３４は、シーケンスデータ記憶手段３３に記憶されたシーケンスデータを参照し、参照したシーケンスデータに対応するテーブル選択情報をテーブル選択手段３２に向けて出力する。テーブル選択手段３２は、このテーブル選択情報に基づいて、波形テーブル３１に記憶された、そのシーケンスデータに対応する周期波形を選択する。これにより、選択された周期波形をあらわす波形データが、補間手段３５に入力される。また、制御手段３４は、入力された再生テンポ情報に応じて拍タイミングを生成して、後述する誤差補正手段３８に入力する。
【００３９】
補間手段３５には、前述した波形データに加え、再生テンポ情報も入力される。補間手段３５は、本発明にいう信号変更手段の一例であり、ここでは再生テンポ情報に対応した歩進アドレスで前述の選択された周期波形をあらわす波形データに補間演算を施して、前記周期波形の時間軸を、再生テンポ情報に対応して圧縮または伸長した補間周期信号を生成する。
【００４０】
つまり、再生テンポ情報に対応した歩進アドレスで前記波形テーブル３１を読み出すとき、読出アドレスは小数点表現のアドレスとなり、波形データは存在しないことがある。そのため、そのアドレスの前後の整数アドレスの波形データを読み出し、それらから補間演算によって小数点アドレスの波形データを生成し前記補間周期信号を生成することになる。
【００４１】
このような手法は、波形読出方式の電子楽器の音源で使用されており公知の手法である。
尚、波形テーブル３１には、１２０ＢＰＭの周期波形が記憶されている。ここで、歩進アドレスは、
歩進アドレス＝再生テンポ情報／１２０
の演算で求められる。例えば、再生テンポ情報が１２０ＢＰＭの場合は歩進アドレスは「１」となり、従って補間周期信号の周期は、第１の周期信号の周期と同じになる。また、例えば再生テンポ情報が６０ＢＰＭの場合は歩進アドレスは０．５となり、従って補間周期信号の周期は第１の周期信号の周期の２倍に引き伸ばされる。
【００４２】
乗算手段３６には、補間手段３５で生成された補間周期信号が入力される。また、デプス操作子６０からのデプス情報も入力される。この乗算手段３６は、本発明にいう、周期信号の振幅を変化させる信号変更手段の一例であり、ここでは補間周期信号にデプス情報に基づくデプス係数を乗算して、補間周期信号の振幅、即ち変調の深さを設定する。これにより、スイングのタイミング変化の大きさを設定することができる。このようにして、補間手段３５で周期が変化し、かつ乗算手段３６で振幅が変化した周期信号が生成される。この周期信号は、加算手段３７を経由して誤差補正手段３８に入力される。
【００４３】
誤差補正手段３８の処理の様子を図７，図８を参照して説明する。
【００４４】
図７は、図４に示す誤差補正手段の内部構成をブロック化して示した図、図８は、図１に示す演奏制御装置の動作波形を示す図である。
【００４５】
図７に示す誤差補正手段３８は、積分手段３８ａと、フリップフロップ３８ｂ（ＦＦ１）と、１／Ｔ演算手段３８ｃと、フリップフロップ３８ｄ（ＦＦ２）と、変換テーブル３８ｅとから構成されている。ここで、図８に示すように、演奏制御装置１００に備えられたデプス操作子６０，テンポ操作子５０から所定のレベルのデプス情報、再生テンポ情報が出力されている。このような状態において、スタート／ストップ操作子４０が操作され、スタート／ストップ信号として’Ｈ’レベルが出力される。すると、制御手段３４（図４参照）が動作し、これによりデプス情報，再生テンポ情報に応じた周期信号が、乗算手段３６から出力される。この周期信号は、加算手段３７を経由して信号ＩＮとして、積分手段３８ａに入力される。積分手段３８ａは周期信号の波形を積分する。ここで、図８に示す、拍タイミング信号により定まる、最初の区間ａ１では、周期信号があらわす波形の、前半部分である伸長用の面積（一側の面積）と、後半部分である圧縮用の面積（＋側の面積）とは等しいため、積分値は０になる。次に区間ａ２の途中でデプス操作子６０が操作され、変調が浅い方向に設定される。すると、一側の面積よりも＋側の面積の方が小さくなる。このため、積分手段３８ａからそれら面積の差分の積分値が出力される。この積分値は拍タイミング信号でフリップフロップ３８ｂにサンプリングされ、区間ａ３において、レベルｄ１×周期Ｔ１の面積をもつ誤差信号が出力される。この誤差信号は１／Ｔ演算手段３８ｃに入力される。一方、変換テーブル３８ｅから、再生テンポ情報に基づく周期を得るためのデータが、フリップフロップ３８ｄに向けて出力される。フリップフロップ３８ｄは、このデータを拍タイミング信号でサンプリングして周期Ｔ１を得、１／Ｔ演算手段３８ｃに入力する。１／Ｔ演算手段３８ｃは、フリップフロップ３８ｂからの誤差信号を周期Ｔ１で割算し、割算した値（ｄ１／Ｔ１）を信号ＯＵＴとして加算手段３７にフィードバックする。このフィードバックにより加算手段３７に入力された誤差信号（図８の最下段に示す信号の反転（−）信号つまり＋信号）と図８の中央付近に示されている乗算手段出力の欄の周期信号（図４の乗算器３６の出力信号）とを加算手段３７で加算することで、区間ａ２の誤差分を含む積分値がそれに続く区間ａ３で０に収束するように処理を行なう。
【００４６】
次に、区間ａ４の途中で、今度はテンポ操作子５０が操作されてテンポが速い方向に設定される。すると、再生テンポ情報のレベルが上がり、このレベルに応じて周期信号の周期が途中から短くなる。このため、区間ａ４における周期信号の波形の一側の面積よりも＋側の面積の方が小さくなるが、次の区間ａ５において、前述した区間ａ３と同様にして得られた値（ｄ２／Ｔ２）が信号ＯＵＴとして加算手段３７にフィードバックされるため、誤差信号が打ち消される。
【００４７】
尚、前記実施形態では、前の周期の終わりでの積分値を次の１周期区間で０に収束するような処理をしていたが、収束処理を行なう周期は整数周期であっても良い。
【００４８】
図９は、図４に示す制御手段で実行されるスタート処理ルーチンのフローチャートである。
【００４９】
このスタート処理ルーチンは、演奏を開始するためにスタート／ストップ操作子４０が操作されてスタート／ストップ信号が’Ｌ’レベルから’Ｈ’レベルに変化した時点で発生する割込信号により起動される。このスタート処理ルーチンでは、ステップＳ１１において、制御手段３４に備えられたタイマ（図示せず）のタイマ割込を許可してこのルーチンを終了する。タイマ割込が許可されると、タイマから所定時間毎にタイマ割込信号が発生する。以下、図１０を参照して説明する。
【００５０】
図１０は、図４に示す制御手段で実行されるタイマ割込処理ルーチンのフローチャートである。
【００５１】
前述した図９に示すステップＳ１１において、タイマ割込が許可されると、制御手段３４に備えられたタイマからのタイマ割込信号により、このルーチンが所定時間毎に繰り返し実行される。
【００５２】
先ずステップＳ２１において、スタート／ストップ信号が’Ｈ’レベルにあるか’Ｌ’レベルにあるかが判定される’Ｈ’レベルにあると判定された場合は演奏の開始が指示されたためステップＳ２２に進む。ステップＳ２２では、再生テンポ情報を入力してステップＳ２３に進む。ステップＳ２３では、再生テンポ情報を歩進データに変換し、カウンタにカウント値として歩進データを設定する。
【００５３】
次にステップＳ２４において、カウンタのカウント値が１拍値Ｂ以上か否かが判定される。ここで、１拍値Ｂは１拍の間にカウンタがカウントすべき値であるＢを示すものである。カウント値が１拍値Ｂよりも小さいと判定された場合は、まだ１拍分の時間が経過していないため、後述するステップＳ３０に進む。一方、カウント値が１拍値Ｂ以上であると判定された場合は、一拍分の時間が経過しているため、ステップＳ２５に進む。ステップＳ２５では、再生テンポ情報に応じた周期の拍タイミング信号を出力する。
【００５４】
次にステップＳ２６において、シーケンスデータ記憶手段３３からシーケンスデータを読み込み、テーブル選択情報を設定する。次にステップＳ２７に進む。ステップＳ２７では、シーケンスデータが終了したか否かが判定される。シーケンスデータが終了したと判定された場合は、演奏を終了するため、後述するステップＳ３１に進む。シーケンスデータがまた終了していないと判定された場合は、演奏を引き続き行なうため、ステップＳ２８に進む。ステップＳ２８では、シーケンスデータ読込アドレスをインクリメントして、ステップＳ２９に進む。ステップＳ２９では、カウント値から１拍値Ｂを引算した値を新たなカウント値として設定する。カウント値が１拍値Ｂを越えている場合、その差分を補正するためである。ステップＳ３０ではカウント値を歩進データで歩進してこのルーチンを終了する。
【００５５】
一方、ステップＳ２１において、スタート／ストップ信号が’Ｌ’レベルであると判定された場合は、現在行なわれている演奏を停止するためにステップＳ３１に進む。
【００５６】
ステップ３１ではカウント値を１拍値Ｂに設定する。これにより、次の演奏スタートにおける拍タイミング信号を正確に出力することができる。次にステップＳ３２において、シーケンスデータ読込アドレスをリセットしてステップＳ３３に進む。ステップＳ３３では、タイマ割込を禁止してこのルーチンを終了する。
【００５７】
本実施形態の演奏制御装置１００では、このようにして制御手段３４が動作し、波形生成手段２０で波形メモリ１０から楽音波形を読み出してスイング演奏を行なっている途中でテンポ操作子５０，デプス操作子６０で再生テンポ情報、デプス情報を変更した場合であっても、変更されたそれら情報に基づく圧縮伸長量の誤差を０に収束するように、制御信号発生手段３０で制御信号を生成して、スイング演奏を即座に変更する。
【００５８】
尚、本実施形態では、テンポ操作子３０を備え、このテンポ操作子３０を操作して所望のテンポをあらわす再生テンポ情報を得たが、本発明はこれに限られるものではなく、ＭＩＤＩインターフェースを介して再生テンポ情報を得てもよい。あるいは、ＭＩＤＩクロックの周期を測定して再生テンポ情報としてもよい。
【００５９】
また、本実施形態では、スイング演奏の例で説明したが、これに限られるものではない。
【００６０】
【発明の効果】
以上説明したように、本発明によれば、所望の演奏に即座に対応することができるという効果とともに、本発明の演奏制御装置を使用した波形信号演奏と並行して、同じテンポで他の自動演奏装置による自動演奏を行なう場合でも、テンポの変更や変調の深さを変更してもタイミングのずれが生じることがないという効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の演奏制御装置の一実施形態のハードウェア構成を示すブロック図である。
【図２】図１に示す波形メモリのデータ構造を示す図である。
【図３】図１に示す波形生成手段の内部構成をブロック化して示した図である。
【図４】図１に示す制御信号発生手段の内部構成をブロック化して示した図である。
【図５】波形テーブルに記憶された、複数種類の周期波形を示す図である。
【図６】シーケンスデータ記憶手段に記憶されたシーケンスデータを示す図である。
【図７】図４に示す誤差補正手段の内部構成をブロック化して示した図である。
【図８】図１に示す演奏制御装置の動作波形を示す図である。
【図９】図４に示す制御手段で実行されるスタート処理ルーチンのフローチャートである。
【図１０】図４に示す制御手段で実行されるタイマ割込処理ルーチンのフローチャートである。
【符号の説明】
１０  波形メモリ
１１  ＰＣＭ波形データ
１２  オリジナルテンポ
１３  スタート・アドレス
１４  エンド・アドレス
２０  波形生成手段
２１  時間軸圧縮伸長処理手段
２１ａ  読出手段
２２    割算手段
２３，３７  加算手段
３０  制御信号発生手段
３１  波形テーブル
３２  テーブル選択手段
３３  シーケンスデータ記憶手段
３４  制御手段
３５  補間手段
３６  乗算手段
３８  誤差補正手段
３８ａ  積分手段
３８ｂ，３８ｄ  フリップフロップ
３８ｃ  １／Ｔ演算手段
３８ｅ  変換テーブル
４０  スタート／ストップ操作子
５０  テンポ操作子
６０  デプス操作子
１００  演算制御装置
【図１】
0004099284.tif 000002
【図２】
0004099284.tif 000003
【図３】
0004099284.tif 000004
【図４】
0004099284.tif 000005
【図５】
0004099284.tif 000006
【図６】
0004099284.tif 000007
【図７】
0004099284.tif 000008
【図８】
0004099284.tif 000009
【図９】
0004099284.tif 000010
【図１０】
0004099284.tif 000011