(57)【特許請求の範囲】
【請求項１】
再生テンポを取得する再生テンポ取得手段と、
それぞれが１つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段と、
第１の基準音を取得する第１の基準音取得手段と、
前記第１の基準音に対応したフレーズ波形データを、前記再生テンポで再生した場合の前記第１の基準音との音高差を元に、音程もしくは半音ずれ数を取得する音程取得手段と、
前記第１の基準音と、前記取得した音程もしくは半音ずれ数分、音高が異なる第２の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手段と、
前記第２の基準音と前記第１の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手段と
を有する伴奏データ生成装置。
【請求項２】
さらに、前記選択したフレーズ波形データを読み出す際に、タイムストレッチ処理を組み合わせて行うことにより、前記第２の基準音と前記第１の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように調整する調整手段を有する請求項１に記載の伴奏データ生成装置。
【請求項３】
前記読み出し手段は、前記選択したフレーズ波形データを、前記所定の録音テンポにより再生した場合の再生時間と、前記再生テンポで再生した場合の再生時間との比に基づき、前記第２の基準音が前記第１の基準音と同一音高となるように、前記選択したフレーズ波形データを読み出す請求項１又は２に記載の伴奏データ生成装置。
【請求項４】
前記読み出し手段は、前記所定の録音テンポによる再生速度と、前記再生テンポによる再生速度との比に基づき、前記第２の基準音が前記第１の基準音と同一音高となるように、前記選択したフレーズ波形データを読み出す請求項１又は２に記載の伴奏データ生成装置。
【請求項５】
それぞれが１つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段から所望のフレーズ波形データを取得可能なコンピュータに実行させるためのプログラムであって、
再生テンポを取得する再生テンポ取得手順と、
第１の基準音を取得する第１の基準音取得手順と、
前記第１の基準音に対応したフレーズ波形データを、前記再生テンポで再生した場合の前記第１の基準音との音高差を元に、音程もしくは半音ずれ数を取得する音程取得手順と、
前記第１の基準音と、前記取得した音程もしくは半音ずれ数分、音高が異なる第２の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手順と、
前記第２の基準音と前記第１の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手順と
を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伴奏データ生成装置に関する。
【背景技術】
【０００２】
従来、音楽の各種スタイル（ジャンル）に対応したＭＩＤＩ形式等の自動演奏データによる複数の伴奏スタイルデータを記憶し、ユーザ（演奏者）の選択した伴奏スタイルデータに基づいて、ユーザの演奏に伴奏を付与する自動伴奏装置が知られている（例えば、特許文献１参照）。
【０００３】
従来の自動演奏データを利用した自動伴奏装置では、例えば、ＣＭａｊなどの所定のコード（和音）に基づく伴奏スタイルデータを、ユーザの演奏から検出したコード（和音）情報に適合するように、音高変換することが行われている。
【０００４】
また、アルペジオパターンデータをフレーズ波形データとして記憶し、ユーザの演奏入力に適合するように音高やテンポの調整を行い、自動伴奏データを生成するアルペジオ演奏装置が知られている（例えば、特許文献２参照）。
【０００５】
また、波形メモリに記憶した波形データのピッチの制御と、時間軸上の長さを、任意の範囲で、伸張又は圧縮した状態で読み出す制御とを独立に行う楽音発生装置が知られている（例えば、特許文献３参照）。このような装置では、波形データのピッチを調整するとともに、いわゆるタイムストレッチ技術により、波形データの時間軸上の長さを調整することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２９００７５３号公報
【特許文献２】特許第４２７４２７２号公報
【特許文献３】特許第３３９７０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の自動演奏データを利用した自動伴奏装置では、ＭＩＤＩ音源等を利用して楽音を生成するため、民族楽器や特殊な音階を用いる楽器などの楽音を用いた自動伴奏は困難であった。また、自動演奏データによる演奏のため、人間の生演奏による臨場感等を出すことが困難であった。
【０００８】
また、上述のアルペジオ演奏装置等の従来のフレーズ波形データを利用した自動伴奏装置では、単音の伴奏フレーズのみが自動演奏可能であった。
【０００９】
また、波形データで用意された自動演奏データや自動伴奏データをユーザの演奏に合わせて使用する際には、当該波形データを時間軸方向で調整する必要があるが、タイムストレッチ処理のみで、当該波形データの時間軸方向の長さを調整すると、波形接続劣化が生じる。
【００１０】
本発明の目的はフレーズ波形データの演奏テンポを変更する際に音質劣化を抑制することである。
【課題を解決するための手段】
【００１１】
本発明の一観点によれば、伴奏データ生成装置は、再生テンポを取得する再生テンポ取得手段と、 それぞれが１つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段と、 第１の基準音を取得する第１の基準音取得手段と、前記第１の基準音に対応したフレーズ波形データを、前記再生テンポで再生した場合の前記第１の基準音との音高差を元に、音程もしくは半音ずれ数を取得する音程取得手段と、前記第１の基準音と、前記取得した音程もしくは半音ずれ数分、音高が異なる第２の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手段と、 前記第２の基準音と前記第１の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手段とを有する。
【発明の効果】
【００１２】
本発明によれば、フレーズ波形データの演奏テンポを変更する際に音質劣化を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施例による伴奏データ生成装置１００のハードウェア構成の一例を表すブロック図である。
【図２】本発明の実施例による自動伴奏データの構成の一例を表す概念図である。
【図３】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールＡを示すテーブルの一例を表す概念図である。
【図４】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールＢを示すテーブルの一例を表す概念図である。
【図５】本発明の実施例によるメイン処理を表すフローチャートである。
【図６】図５のステップＳＡ２１で実行される自動伴奏データ生成処理を表すフローチャートである。
【図７】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールＡを示すテーブルの他の例を表す概念図である。
【図８】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールＢを示すテーブルの他の例を表す概念図である。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施例による伴奏データ生成装置１００のハードウェア構成の一例を表すブロック図である。
【００１５】
伴奏データ生成装置１００のバス６には、ＲＡＭ７、ＲＯＭ８、ＣＰＵ９、検出回路１１、表示回路１３、記憶装置１５、波形メモリ音源１８、通信インターフェイス（Ｉ／Ｆ）２１が接続される。
【００１６】
ＲＡＭ７は、再生バッファ等のバッファ領域、フラグ、レジスタ、各種パラメータ等を記憶するＣＰＵ９のワーキングエリアを有する。例えば、後述する自動伴奏データは、このＲＡＭ７内の所定領域にロードされる。
【００１７】
ＲＯＭ８には、各種データファイル（例えば、後述する自動伴奏データＡＡ）、各種パラメータ及び制御プログラム、又は本実施例を実現するためのプログラム等を記憶することができる。この場合、プログラム等を重ねて、記憶装置１５に記憶する必要は無い。
【００１８】
ＣＰＵ９は、ＲＯＭ８又は、記憶装置１５に記憶されている制御プログラム又は本実施例を実現するためのプログラム等に従い、演算又は装置の制御を行う。タイマ１０が、ＣＰＵ９に接続されており、基本クロック信号、割り込み処理タイミング等がＣＰＵ９に供給される。
【００１９】
ユーザは、検出回路１１に接続される設定操作子１２を用いて、各種入力及び設定、選択をすることができる。設定操作子１２は、例えば、スイッチ、パッド、フェーダ、スライダ、ロータリーエンコーダ、ジョイスティック、ジョグシャトル、文字入力用キーボード、マウス等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、設定操作子１２は、カーソルスイッチ等の他の操作子を用いて操作する表示装置１４上に表示されるソフトスイッチ等でもよい。
【００２０】
本実施例では、ユーザは、設定操作子１２を操作することにより、記憶装置１５又はＲＯＭ８等に記録された又は通信Ｉ／Ｆ２１を介して外部機器から取得（ダウンロード）する自動伴奏データＡＡの選択、自動伴奏の開始および停止指示及びその他の設定操作を行う。
【００２１】
表示回路１３は、ディスプレイ１４に接続され、各種情報をディスプレイ１４に表示することができる。ディスプレイ１４は、伴奏データ生成装置１００の設定のための各種情報等を表示することができる。
【００２２】
記憶装置１５は、ハードディスク、ＦＤ（フレキシブルディスク又はフロッピーディスク（登録商標））、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多目的ディスク）、フラッシュメモリ等の半導体メモリ等の記憶媒体とその駆動装置の組み合わせの少なくとも１つで構成される。記憶媒体は、着脱可能であってもよいし、内蔵されていてもよい。記憶装置１５及び（または）ＲＯＭ８には、好ましくは複数の自動伴奏データＡＡ及び、本発明の各実施例を実現するためのプログラムや、その他の制御プログラムを記憶することができる。なお、本発明の各実施例を実現するためのプログラムや、その他の制御プログラムを記憶装置１５に記憶する場合は、これらをＲＯＭ８に合わせて記憶する必要はない。また、一部のプログラムのみを記憶装置１５に記憶し、その他のプログラムをＲＯＭ８に記憶するようにしてもよい。
【００２３】
音源１８は、例えば、波形メモリ音源であり、少なくとも波形データ（フレーズ波形データ）から楽音信号を生成可能なハードウェアもしくはソフトウェア音源であり、記憶装置１５、ＲＯＭ８又はＲＡＭ７等に記録された自動伴奏データ、自動演奏データ又は演奏操作子（鍵盤）２２あるいは通信インターフェイス２１に接続された外部機器等から供給される演奏信号、ＭＩＤＩ信号、フレーズ波形データ等に応じて楽音信号を生成し、各種音楽的効果を付与して、ＤＡＣ２０を介して、サウンドシステム１９に供給する。ＤＡＣ２０は、供給されるデジタル形式の楽音信号をアナログ形式に変換し、サウンドシステム１９は、アンプ、スピーカを含み、ＤＡ変換された楽音信号を発音する。
【００２４】
通信インターフェイス２１は、ＵＳＢやＩＥＥＥ１３９４等の汎用近距離有線Ｉ／Ｆ、Ｅｔｈｅｒｎｅｔ（登録商標）等の汎用ネットワークＩ／Ｆ等の通信インターフェイス、ＭＩＤＩ  Ｉ／Ｆなどの汎用Ｉ／Ｆ、無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）等の汎用近距離無線Ｉ／Ｆ等の通信インターフェイス及び音楽専用無線通信インターフェイスのうち少なくとも１つで構成され、外部機器、サーバ等との通信が可能である。
【００２５】
演奏操作子(鍵盤等)２２は、検出回路１１に接続され、ユーザの演奏動作に従い、演奏情報（演奏データ）を供給する。演奏操作子２２は、ユーザの演奏を入力するための操作子であり、ユーザが操作した操作子に対応する音高で、該ユーザの操作子に対する操作開始タイミング及び終了タイミングをそれぞれキーオン及びキーオフ信号として入力する。また、ユーザの演奏操作に応じてベロシティ値等の各種パラメータを入力することが可能である。
【００２６】
なお、演奏操作子(鍵盤等)２２により入力される演奏情報には、後述するコード情報もしくはコード情報を生成するための情報が含まれる。なお、コード情報の入力には、演奏操作子(鍵盤等)２２以外にも、設定操作子１２や通信インターフェイス２１に接続される外部機器を用いることもできる。
【００２７】
図２は、本発明の実施例による自動伴奏データＡＡの構成の一例を表す概念図である。
【００２８】
本発明の実施例では、例えば、図２に示す自動伴奏データＡＡに含まれるフレーズ波形データＰＷ又はＭＩＤＩデータＭＤを用いてユーザの演奏や自動演奏に合わせた自動伴奏を行う。その際に、演奏テンポ（再生テンポ）に合わせてフレーズ波形データＰＷやＭＩＤＩデータＭＤを再生する必要がある。単に、タイムストレッチ処理などを行って、フレーズ波形データＰＷの時間軸上の長さ（再生テンポ）を変更すると、波形接続劣化が起こる。この波形接続劣化を抑制するために、本実施例では、後に詳述する自動伴奏データ生成処理（図６）により、タイムストレッチと読み出し速度の変更を組み合わせて、所望の再生テンポでフレーズ波形データＰＷを再生する。なお、ＭＩＤＩデータＭＤの場合は、再生テンポを変更しても音質劣化が起こりにくいので、周知の方法によりテンポを変更する。
【００２９】
自動伴奏データＡＡは、１又は複数のパート（トラック）を含んで構成され、各伴奏パートは、少なくとも一つの伴奏パターンデータＡＰを含んで構成される。自動伴奏データＡＡは、伴奏パターンデータＡＰのような実体データに加えて、当該自動伴奏データの伴奏スタイル名、拍子情報、テンポ情報（フレーズ波形データＰＷの録音（再生）テンポ）、各伴奏パートの情報等を含む当該自動伴奏データ全体の設定情報を含んでいる。
【００３０】
本発明の実施例による自動伴奏データＡＡは、例えば、ユーザが図１の演奏操作子２２を用いてメロディラインを演奏する場合に、それに合わせて、少なくとも一つのパート（トラック）の自動伴奏を行うためのデータである。
【００３１】
自動伴奏データＡＡは、ジャズ、ロック、クラッシック等の音楽ジャンルに対応するとともに各ジャンルごとに複数種類のものが用意されており、識別番号（ＩＤ番号）や、伴奏スタイル名等で識別される。本実施例では、複数の自動伴奏データＡＡが、例えば、図１の記憶装置１５又はＲＯＭ８等に記憶されており、各自動伴奏データＡＡには、ＩＤ番号が付されている（「０００１」、「０００２」等）。
【００３２】
各自動伴奏データＡＡは、通常、複数のリズム種類、音楽ジャンル、テンポ等の伴奏スタイル毎に用意される。また、それぞれの自動伴奏データＡＡには、イントロ、メイン、フィルイン、エンディング等の楽曲の場面に合わせた複数のセクションが用意される。さらに、それぞれのセクションは、コードトラック、ベーストラック、ドラム（リズム）トラックなどの複数のトラックで構成される。本実施例では、説明の便宜上、自動伴奏データＡＡは、任意の１つのセクションで構成され、当該セクションが少なくとも和音を用いた伴奏を行うコードトラックを含む複数のパート（パート１（トラック１）〜パートｎ（トラックｎ））を含んでいるものとする。
【００３３】
自動伴奏データＡＡの各パート１〜ｎ（トラック１〜ｎ）には、複数の伴奏パターンデータＡＰ１〜３のいずれかが対応付けられている。伴奏パターンデータＡＰ１は、全てのコードルート（１２音）について、複数種類のコードタイプに対応している。また、伴奏パターンデータＡＰ１は、それぞれ一つのコードタイプに対応しており、少なくとも一つのフレーズ波形データＰＷが対応付けられている。本実施例では、例えば、メジャーコード（Ｍａｊ）、マイナーコード（ｍ）、セブンスコード（７）等の複数種類のコードタイプに対応している。すなわち、各コードタイプについて、Ｃ〜Ｂまでの１２音のコードルートに対応した伴奏パターンデータＡＰ１が記憶されている。自動伴奏データＡＡの各パート１〜ｎ（トラック１〜ｎ）は、全コードルートについて複数種類のコードタイプに対応した伴奏パターンデータＡＰ１を記憶している。なお、対応可能なコードタイプは、適宜増減可能である。また、対応可能なコードタイプをユーザが設定できるようにしても良い。ドラム（リズム）トラック等には、コードタイプのない伴奏パターンデータＡＰ２を記憶する。コードタイプのない伴奏パターンデータＡＰ２は、全ての半音単位の音高（１２音）について準備されるが、そもそも和音を使用するパートではないので、対応するコードタイプはない。
【００３４】
なお、自動伴奏データＡＡが複数のパート（トラック）を含む場合は、少なくとも一つのパートについては、フレーズ波形データＰＷが対応付けられた伴奏パターンデータＡＰ１又はＡＰ２が対応づけられている必要があるが、その他のパートについては、ＭＩＤＩ形式等の自動演奏データによる伴奏フレーズデータが対応付けられている伴奏パターンデータＡＰ３が対応付けられていても良い。例えば、図２に示す例におけるＩＤ番号「０００１」が付与された自動伴奏データＡＡのように、パート１及びパート２は、伴奏パターンデータＡＰ１とし、パート３を伴奏パターンＡＰ２として、パート４を伴奏パターンデータＡＰ３として、ＭＩＤＩデータＭＤによる伴奏フレーズデータを記憶しても良い。
【００３５】
フレーズ波形データＰＷは、対応付けられた伴奏パターンデータＡＰが対応しているコードタイプ及びコードルート（基準音）を基準とした伴奏フレーズの所定のテンポ（録音テンポ）による演奏に対応する楽音を記録したフレーズ波形データであり、１〜複数小節の長さである。例えば、ＣＭａｊ基準のフレーズ波形データＰＷには、Ｃｍａｊのコード構成音である音高Ｃ、Ｅ、Ｇを主に用いた演奏（和音伴奏以外の伴奏も含む）による楽音をデジタルサンプリングして記憶した波形データである。なお、フレーズ波形データＰＷには、基準となるコード（コードタイプ及びコードルートの組み合わせで特定されるコード）の構成音以外の音高（非和声音）も含まれる場合がある。また、基準音が含まれずに、コード情報で特定されるコードルート及びコードタイプの演奏の伴奏として音楽的に調和する音高のみが含まれる場合もあるが、その場合にも当該フレーズ波形データは基準音に対応しているものとする。すなわち、本明細書において、フレーズ波形データＰＷ（伴奏パターンデータＡＰ）の「基準音」とは、当該フレーズ波形データＰＷ（伴奏パターンデータＡＰ）が用いられるべきコード進行上のコードのコードルートを表すものである。
【００３６】
また、各フレーズ波形データＰＷには、当該フレーズ波形データＰＷを特定することが可能な識別子が付与されている。
【００３７】
なお、フレーズ波形データＰＷは、１種類の録音テンポにより作成されても良いし、同一伴奏フレーズに付き複数種類のテンポ（例えば、自動伴奏データＡＡの推奨テンポによる演奏と、当該演奏によるフレーズ波形データＰＷを同一テンポで再生した場合に、５半音上がる又は下がるテンポによる演奏等）により作成しても良い。また、各録音テンポの値は、録音テンポの段階あるいは基準がわかる程度の誤差（ばらつき）を含んでいても良い。本実施例では、全てのフレーズ波形データＰＷが録音テンポ１００（本実施例では、一分間に四分音符が刻まれる個数でテンポを表す）で記録されているものとして説明する。
【００３８】
なお、本実施例では、「自動伴奏データＡＡのＩＤ（スタイル番号）−パート（トラック）番号−コードルート（根音）を表す番号−コードタイプ番号」の形式で、各フレーズ波形データＰＷに識別子が付与されている。本実施例では、この識別子をフレーズ波形データＰＷのコードタイプを特定するコードタイプ情報及び根音（コードルート）を特定するコードルート情報として利用する。これにより、各フレーズ波形データＰＷの識別子を参照して、当該フレーズ波形データＰＷが基準とするコードタイプやコードルート（根音）を取得することができる。なお、上記のような識別子を用いる以外の方法で、コードタイプやコードルートについての情報を各フレーズ波形データＰＷに付与するようにしても良い。また、録音テンポが各フレーズ波形データＰＷによって異なる場合には、各フレーズ波形データＰＷに録音テンポを識別するための情報を付与する。
【００３９】
ＭＩＤＩデータＭＤは、個々の伴奏音の音高に応じた音高データと発音タイミングを示すタイミングデータをセットにしたものである。音高データとしては、例えば、ＣＭａｊなど所定和音に基づくキーコードが用いられ、入力和音の種類と根音に応じた音高変換を考慮したソースパターンとして作成されている。自動伴奏時には、入力されるコード情報に応じて音高変換される。なお、所定和音で作成したソースパターンを入力和音（コード情報）の種類にあったように音高変換するために、ソースパターンのキーコードについてのシフトデータを和音の種類に対応付けてノート変換テーブルとして記憶しておき、入力される和音の種類に応じたシフトデータをノート変換テーブルから読み出し、該読み出したシフトデータをソースパターンのキーコードと演算することにより和音の種類に応じた伴奏パターンを得ることができる。
【００４０】
なお、本実施例では、各パートが複数のコードタイプのそれぞれに対応した伴奏パターンデータＡＰ１〜３を含むようにしたが、各コードタイプが複数のパートに対応した伴奏パターンデータＡＰ１〜３を含むようにしても良い。
【００４１】
また、フレーズ波形データＰＷは、自動伴奏データＡＡ内に記憶されていても良いし、自動伴奏データＡＡとは別に記憶して、自動伴奏データＡＡ内には、フレーズ波形データＰＷへのリンク情報のみを記憶するようにしても良い。
【００４２】
なお、フレーズ波形データＰＷの録音テンポは、自動伴奏データＡＡの推奨テンポと同一の場合、あるいは全フレーズ波形データＰＷの録音テンポが同一の場合は、上述のように自動伴奏データＡＡの属性情報として記憶することができるが、伴奏パターンデータＡＰ１又はＡＰ２ごとに録音テンポが設定されている場合は、録音テンポは各伴奏パターンデータＡＰ１又はＡＰ２又は各フレーズ波形データＰＷの属性情報として記憶してもよい。また、同一コードタイプで同一コードルート（根音）について複数の録音テンポでフレーズ波形データＰＷを用意する場合にも、録音テンポは各伴奏パターンデータＡＰ１又はＡＰ２又は各フレーズ波形データＰＷの属性情報として記憶する。
【００４３】
図３は、本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールＡを示すテーブルの一例を表す概念図である。このテーブルは、図２のフレーズ波形データＰＷの録音テンポが「１００」である場合を想定している。
【００４４】
本発明の実施例は、所定の録音テンポ（本実施例では「１００」）で録音（作成）されたフレーズ波形データＰＷを含む自動伴奏データＡＡを、所定の演奏テンポで再生するものであり、その際に図３又は図４のテーブルを参照してフレーズ波形データＰＷを選択する。本実施例では、選択された自動伴奏データＡＡに含まれるフレーズ波形データＰＷのテンポを変更（時間軸上の長さを変更）するための処理においてフレーズ波形データを選択するために適用されるルールとして、第１のルール（ルールＡ）と第２のルール（ルールＢ）とを用意しており、図３に示すテーブルは、ルールＡを適用する場合のテーブルである。なお、ルールＢを適用する場合に使用するテーブルは、図４に示す。
【００４５】
演奏所要時間（％）は、再生対象のフレーズ波形データＰＷを演奏テンポ（再生テンポ）で再生した場合の（例えば、１サイクルあたりの）所要時間の、基準所要時間に対する比（％）である。なお、基準所要時間は、再生対象のフレーズ波形データＰＷを録音テンポ（基準テンポ）で再生した場合の（例えば、１サイクルあたりの）所要時間である。
【００４６】
読み出し所要時間（％）は、半音の比から算出して取得されるものであり、例えば、基準所要時間に対して１０６％の所要時間でフレーズ波形データＰＷを読み出すと、フレーズ波形データＰＷの音高は１半音低く聴こえ、９４％の所要時間でフレーズ波形データＰＷを読み出すと、１半音高く聴こえる。読み出し所要時間（％）は、使用伴奏パターンデータとして選択されたフレーズ波形データＰＷを読み出す速度を規定した基準所要時間に対する比率であり、ピッチチェンジ量を規定する。使用伴奏パターンデータの基準音高をコード情報で指定される基準音高にピッチチェンジするための読み出し速度変更比率である。
【００４７】
半音ずれ数は、読み出し所要時間（％）でフレーズ波形データＰＷを読み出す場合における当該フレーズ波形データＰＷの音高が、基準所要時間で読み出す場合における当該フレーズ波形データＰＷの音高との音高差（ピッチチェンジ量）を半音数で表したものである。
【００４８】
ルールＡでは、まず再生対象のフレーズ波形データＰＷの基準所要時間を算出し、該算出した基準所要時間に対する「演奏所要時間（％）」を算出して取得する。その後、図３に示すテーブルを参照し、取得した「演奏所要時間（％）」に対応する「半音ずれ数」及び「読み出し所要時間（％）」を取得する。そして、再生対象のフレーズ波形データＰＷと基準音高が「半音ずれ数」分異なるフレーズ波形データＰＷを使用フレーズ波形データＰＷとして、「読み出し所要時間（％）」の速度で読み出し、「演奏所要時間（％）」に適合するように、読み出した使用フレーズ波形データＰＷにタイムストレッチ処理を施して伴奏データを生成して出力する。
【００４９】
以下に具体的例を挙げて説明する。なお、この例では、説明の便宜上、フレーズ波形データＰＷを録音テンポ「１００」で再生した場合に、１０秒かかるものとする。また、演奏テンポは、「９１」に設定されたものとする。
【００５０】
まず、例えば、コード情報として「Ｅｍ」が入力されると、コードルート「Ｅ」でコードタイプが「ｍ（マイナー）」のフレーズ波形データＰＷが、現在の伴奏パターンデータとして設定される。ここで、演奏テンポ「９１」でフレーズ波形データＰＷ（録音テンポ「１００」、基準所要時間１０秒）を再生すると所要時間は１１秒であり、約１１０％となるので、「演奏所要時間（％）」として、１１０％が算出される。これに基づき、図３のテーブルを参照すると、「半音ずれ数（＋２）」で、「読み出し所要時間（１１２％）」であることがわかる。次に、「半音ずれ数」が「＋２」であることから、コードルート「Ｅ」よりも２半音高いコードルートに対応する、コードルート「Ｆ♯」でコードタイプが「ｍ（マイナー）」のフレーズ波形データＰＷが使用伴奏パターンデータとして選択され、「読み出し所要時間（１１２％）」の速度で読み出される（１１．２秒かけて読み出される）。これにより、本来コードルート「Ｆ♯」でコードタイプが「ｍ（マイナー）」のフレーズ波形データＰＷのコードルートは音高変換（ピッチチェンジ）されて「Ｅ」となる。このとき、フレーズ波形データＰＷの時間軸上の長さは、元の長さ（１０秒）の１１２％（１１．２秒）となっているが、設定された演奏テンポは録音テンポの１１０％（１１秒）であるので、さらにタイムストレッチ処理を行い、フレーズ波形データＰＷの時間軸上の長さを１１０％に短縮（約１．７９％、０．２秒分短縮）して伴奏データとして出力する。
【００５１】
なお、タイムストレッチ処理だけをして、録音テンポ「１００」で記録されたフレーズ波形データＰＷを演奏テンポ「９１」で再生すると、当該フレーズ波形データＰＷの時間軸上の長さを１２％（上記の例では、１．２秒）伸張しなければならい。これに対して、上記ルールＡに基づいて、テンポの変更を行う場合は、フレーズ波形データＰＷの時間軸上の長さを約１．７９％（上記の例では、０．２秒）短縮するだけでよく、波形接続劣化による影響を抑制することが可能となる。
【００５２】
図４は、本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールＢを示すテーブルの一例を表す概念図である。このテーブルは、図２のフレーズ波形データＰＷの録音テンポが「１００」である場合を想定している。
【００５３】
「演奏所要時間（％）」、「基準所要時間」及び「半音ずれ数」は、ルールＡの場合と同様である。なお、「演奏所要時間（％）」と「読み出し所要時間（％）」及び「半音ずれ数」との対応関係はルールＡの場合とは異なる。
【００５４】
参照演奏所要時間（％）は、演奏所要時間（％）の一定範囲ごとに、半音単位の音高に対応する、すなわち、当該演奏所要時間（％）で再生した場合に、録音テンポで再生した場合の規準音の音高と基準所要時間に演奏所要時間（％）を乗算した時間で再生した場合の規準音の音高との音高差が半音差で表すことのできる演奏所要時間（％）を表したものである。例えば、演奏所要時間が６８〜７３％の場合は、この中で７１％となる場合に基準音から６半音高く聴こえ、その他のパーセンテージの場合は、半音差で表すことができない。なお、ルールＢにおいては、半音ずれ数と参照演奏所要時間（％）は対応しておらず、例えば、参照演奏所要時間（７１％）でフレーズ波形データＰＷを読み出すと元の基準音よりも６半音高くなるので、この速度で読み出す場合には、ルールＡでは、６半音低い基準音のフレーズ波形データＰＷを選択して読み出す必要があるが、ルールＢでのこの場合の半音ずれ数は「−３」に規定されており、３半音だけ低いデータが、読み出し所要時間（８４％）で読み出される。したがってこのままでは再生テンポに対してテンポが速すぎるので、再生テンポにあわせるために調整時間（％）分タイムストレッチを行って、さらにテンポを遅くする。
【００５５】
ルールＢにおける「読み出し所要時間（％）」は、使用伴奏パターンデータとして選択されたフレーズ波形データＰＷを読み出す速度を規定した基準所要時間に対する比率であり、ピッチチェンジ量を規定する。使用伴奏パターンデータとして選択されたフレーズ波形データＰＷを「読み出し所要時間（％）」で規定される読み出し速度で読み出すことにより、当該フレーズ波形データの基準音がコード情報のコードルートと同一の音高となる。なお、本明細書において「同一の音高」とは、完全に周波数が一致する場合のみならず、人間の聴感上同一の音高に聴こえる程度の誤差を含むものとする。
【００５６】
調整時間（％）は、使用伴奏パターンデータとして選択されたフレーズ波形データＰＷを読み出し所要時間（％）の速度で読み出した後に、当該読み出したフレーズ波形データＰＷの時間軸上の長さを演奏所要時間に適合するように、調整するための値である。図４のテーブルに記載されている値は初期値であり、適宜演奏所要時間に合わせて増減される。なお、調整時間（％）は、基準所要時間に対する比率ではなく、「読み出し所要時間（％）」に対する比率で表現されており、「読み出し所要時間（％）」×「調整時間（％）」＝「演奏所要時間（％）」となるように設定される。
【００５７】
ルールＢにおいては、「半音ずれ数」及び「読み出し所要時間（％）」でピッチチェンジ量が決定され、「調整時間（％）」でタイムストレッチ量が決定されるので、「半音ずれ数」及び「読み出し所要時間（％）」と「調整時間（％）」とのバランスを調整することにより、ピッチチェンジ量とタイムストレッチ量のバランスを調整することができる。このバランスはユーザにより設定可能としても良い。
【００５８】
ルールＢでは、図３に示すルールＡの場合に比べて、音高変換（ピッチチェンジ）量を減らすことにより、ピッチチェンジによるフォルマント劣化などの抑制も考慮している。そのために、タイムストレッチ量は増えている。ルールＡでは、演奏所要時間の範囲の中間点を読み出し所要時間として、演奏所要時間の範囲ごとに１半音下がる又は上がる読み出し所要時間を設定していたが、ルールＢでは、２つの演奏所要時間の範囲ごとに１半音下がる又は上がる読み出し所要時間を設定しているため、ルールＡに比べて多めにタイムストレッチをする必要がある。
【００５９】
ルールＢでは、まず再生対象のフレーズ波形データＰＷの基準所要時間を算出し、該算出した基準所要時間に対する「演奏所要時間（％）」を算出して取得する。その後、図４に示すテーブルを参照し、取得した「演奏所要時間（％）」に対応する「参照演奏所要時間（％）」、「半音ずれ数」、「読み出し所要時間（％）」及び「調整時間（％）」を取得する。次に、「演奏所要時間（％）」と「参照演奏所要時間（％）」の差分に基づき「調整時間（％）」を増減する。そして、再生対象のフレーズ波形データＰＷと「半音ずれ数」分異なるフレーズ波形データＰＷを使用フレーズ波形データＰＷとして、「読み出し所要時間（％）」の速度で読み出し、増減した「調整時間（％）」に適合するように、読み出した使用フレーズ波形データＰＷにタイムストレッチ処理を施して伴奏データを生成して出力する。
【００６０】
以下に具体的例を挙げて説明する。なお、この例では、説明の便宜上、フレーズ波形データＰＷを録音テンポ「１００」で再生した場合に、１０秒かかるものとする。また、演奏テンポは、「９１」に設定されたものとする。
【００６１】
まず、例えば、コード情報として「Ｅｍ」が入力されると、コードルート「Ｅ」でコードタイプが「ｍ（マイナー）」のフレーズ波形データＰＷが、現在の伴奏パターンデータとして設定される。ここで、演奏テンポ「９１」でフレーズ波形データＰＷ（録音テンポ「１００」、基準所要時間１０秒）を再生すると所要時間は１１秒であり、約１１０％となるので、「演奏所要時間（％）」として、１１０％が算出される。これに基づき、図４のテーブルを参照すると、「参照演奏所要時間（１１２％）」「半音ずれ数（＋１）」、「読み出し所要時間（１０６％）」、「調整時間（１０６％）」であることがわかる。次に、「半音ずれ数」が「＋１」であることから、コードルート「Ｅ」よりも１半音高いコードルートに対応する、コードルート「Ｆ」でコードタイプが「ｍ（マイナー）」のフレーズ波形データＰＷが使用伴奏パターンデータとして選択される。次に、「演奏所要時間（１１０％）」と「参照演奏所要時間（１１２％）」の差分（−２％）に基づき「調整時間（１０６％）」が増減され「調整時間（１０４％）」とされる。その後、使用伴奏パターンデータとして選択されたフレーズ波形データＰＷが「読み出し所要時間（１０６％）」の速度で読み出される（１０．６秒かけて読み出される）。これにより、本来コードルート「Ｆ」でコードタイプが「ｍ（マイナー）」のフレーズ波形データＰＷのコードルートは音高変換（ピッチチェンジ）されて「Ｅ」となる。このとき、フレーズ波形データＰＷの時間軸上の長さは、元の長さ（１０秒）の１０６％（１０．６秒）となっているが、設定された演奏テンポは録音テンポの１１０％（１１秒）であるので、さらに「調整時間（１０４％）」に適合するように、タイムストレッチ処理を行い、１０６％の長さのフレーズ波形データＰＷの時間軸上の長さをさらに１０４％に伸張（４％、０．４秒分伸張）して伴奏データとして出力する。
【００６２】
なお、タイムストレッチ処理だけをして、録音テンポ「１００」で記録されたフレーズ波形データＰＷを演奏テンポ「９１」で再生すると、当該フレーズ波形データＰＷの時間軸上の長さを１２％（上記の例では、１．２秒）伸張しなければならい。これに対して、上記ルールＢに基づいて、テンポの変更を行う場合は、フレーズ波形データＰＷの時間軸上の長さを約４％（上記の例では、０．４秒）短縮するだけでよく、波形接続劣化による影響を抑制することが可能となる。また、ルールＡに比べるとタイムストレッチ量は多くなるが、ピッチチェンジ量がルールＡでは２半音なのに対して、ルールＢでは１半音となる。このため、ルールＢでは、ルールＡに比べて、波形接続劣化が見られるものの、フォルマント劣化を抑えることができる。
【００６３】
図５は、本発明の実施例によるメイン処理を表すフローチャートである。このメイン処理は、本発明の実施例による伴奏データ生成装置１００の電源投入と同時に起動する。
【００６４】
ステップＳＡ１で、メイン処理を開始し、ステップＳＡ２で初期設定を行う。ここでの初期設定は、自動伴奏データＡＡの選択、コード取得方法（ユーザ演奏による入力、ユーザの直接指定による入力、コード進行情報による自動入力等）の設定、演奏テンポの所得・設定、調設定、使用伴奏パターンデータ決定ルール（ルールＡ又はルールＢ）の設定等であり、例えば、図１の設定操作子１２を用いて行う。また、自動伴奏処理開始フラグＲＵＮを初期化（ＲＵＮ＝０）するとともに、タイマ、その他のフラグ、レジスタ等を初期化する。
【００６５】
なお、演奏（再生）テンポの設定は、このステップＳＡ２において演奏会指示にユーザが設定する場合に限らず、演奏中に変更可能としても良い。その場合、例えば、ユーザがテンポ調整のスイッチを押し続けているような変化中には伴奏パターンデータの差し替えなどは起こらず、テンポの変更後の値が確定した時点で、新しく設定されたテンポに対応する処理を行うようにする。
【００６６】
ステップＳＡ３では、ユーザによる設定変更操作を検出したか否かを判断する。ここでの設定変更操作は、自動伴奏データＡＡの再選択等、現在の設定を初期化する必要のある設定であり、例えば、演奏テンポの設定変更等は含まれない。設定変更操作を検出した場合は、ＹＥＳの矢印で示すステップＳＡ４に進む。設定変更操作を検出しない場合は、ＮＯの矢印で示すステップＳＡ５に進む。
【００６７】
ステップＳＡ４では、自動伴奏停止処理を行う。自動伴奏停止処理は、例えば、タイマを停止し、フラグＲＵＮを０に設定（ＲＵＮ＝０）し、発音中の自動伴奏による楽音の消音処理を行う。その後、ＳＡ２に戻り、検出した変更操作に従い再度初期設定を行う。なお、自動伴奏中でない場合には、そのままステップＳＡ２に戻る。
【００６８】
ステップＳＡ５では、メイン処理の終了操作（伴奏データ生成装置１００の電源切断等）を検出したか否かを判断する。終了操作を検出した場合は、ＹＥＳの矢印で示すステップＳＡ２２に進みメイン処理を終了する。検出しない場合はＮＯの矢印で示すステップＳＡ６に進む。
【００６９】
ステップＳＡ６では、ユーザによる演奏操作を検出したか否かを判断する。ユーザによる演奏動作の検出は、例えば、図１の演奏操作子２２の操作による演奏信号の入力または、通信Ｉ／Ｆ２１を介した演奏信号の入力の有無を検出することにより行う。演奏操作を検出した場合は、ＹＥＳの矢印で示すステップＳＡ７に進み、検出した演奏動作に基づく発音又は消音処理を行い、ステップＳＡ８に進む。演奏操作を検出しない場合はＮＯの矢印で示すステップＳＡ８に進む。
【００７０】
ステップＳＡ８では、自動伴奏の開始指示を検出したか否かを判断する。自動伴奏の開始指示は、例えば、ユーザが図１の設定操作子１２を操作することにより行う。自動伴奏開始指示を検出した場合は、ＹＥＳの矢印で示すステップＳＡ９に進む。開始指示を検出しない場合は、ＮＯの矢印で示すステップＳＡ１６に進む。なお、自動伴奏の開始は、ユーザの演奏の開始を検出して自動的に行っても良い。
【００７１】
ステップＳＡ９では、フラグＲＵＮを１に設定（ＲＵＮ＝１）に設定し、ステップＳＡ１０では、ステップＳＡ２又はステップＳＡ３で選択された自動伴奏データＡＡを、例えば、図１の記憶装置１５等からＲＡＭ７の所定領域内等にロードする。その後、ステップＳＡ１１で、直前コードと現在コードをクリアし、ステップＳＡ１２に進む。
【００７２】
ステップＳＡ１２では、ステップＳＡ１０でロードした自動伴奏データＡＡ内の全伴奏パターンデータＡＰ（フレーズ波形データＰＷ）について、ステップＳＡ２で設定された演奏テンポが許容範囲内か否かを判断し、許容範囲内である場合には次のステップＳＡ１３に進む。設定されている演奏テンポが許容範囲内でない場合は、例えば、当該演奏テンポが許容範囲内でないことをユーザに通知して、演奏テンポの再設定や自動伴奏データＡＡの再選択を促す。演奏テンポの再設定や自動伴奏データＡＡの再選択がある場合は、ステップＳＡ３に戻る。
【００７３】
演奏テンポが許容範囲内か否かの判断は、例えば、図３及び図４を参照して説明した「演奏所要時間（％）」を算出して取得し、取得した「演奏所要時間（％）」が、７１％から１４１％の範囲に入っている場合、すなわち、聴感上６半音のずれまでを許容範囲内とし、それ以外の場合を許容範囲外とする。なお、「演奏所要時間（％）」の範囲は、例えば、聴感上３半音のずれに相当する８４％から１１９％までとしても良く、ユーザが任意に設定できるようにしても良い。
【００７４】
ステップＳＡ１３では、ステップＳＡ１０でロードした自動伴奏データＡＡ内の各伴奏パターンデータＡＰ（フレーズ波形データＰＷ）の録音テンポを参照し、ステップＳＡ２で設定された演奏テンポに基づき、使用する録音テンポを決定し、当該録音テンポを「基準テンポ」とする。ここでの処理は、例えば、ステップＳＡ１３で算出して取得した「演奏所要時間（％）」が１００％に最も近くなる伴奏パターンデータＡＰ（フレーズ波形データＰＷ）の録音テンポを「基準テンポ」として採用する。
【００７５】
ステップＳＡ１４では、ステップＳＡ１０でロードした自動伴奏データＡＡ内で、ステップＳＡ１３で決定した「基準テンポ」を録音テンポとする全ての伴奏パターンデータＡＰ（フレーズ波形データＰＷ）を後述するステップＳＡ２１の自動伴奏データ生成処理で用いる伴奏パターンデータＡＰ（フレーズ波形データＰＷ）として選択する。なお、ステップＳＡ１０で自動伴奏データＡＡをロードした領域と自動伴奏データ生成処理のための作業領域が異なる場合は、このステップで選択した全伴奏パターンデータＡＰ（フレーズ波形データＰＷ）を当該作業領域にロードする。その後、ステップＳＡ１５で、タイマを起動して、ステップＳＡ１６に進む。
【００７６】
ステップＳＡ１６では、自動伴奏の停止指示を検出したか否かを判断する。自動伴奏の停止指示は、例えば、ユーザが図１の設定操作子１２を操作することにより行う。自動伴奏停止指示を検出した場合は、ＹＥＳの矢印で示すステップＳＡ１７に進む。停止指示を検出しない場合は、ＮＯの矢印で示すステップＳＡ２０に進む。なお、自動伴奏の停止はユーザによる演奏の終了を検出して自動的に行っても良い。
【００７７】
ステップＳＡ１７では、タイマを停止し、ステップＳＡ１８では、フラグＲＵＮを０に設定（ＲＵＮ＝０）に設定する。その後、ステップＳＡ１９で、自動伴奏データの生成処理を停止し、ステップＳＡ２０に進む。なお、自動伴奏の生成処理の停止は、停止指示を検出した後直ちに行っても良いが、再生中の伴奏パターンデータＡＰ（フレーズ波形データＰＷ）の最後もしくは区切れ目（音が途切れるところ、小節の境目等）まで自動伴奏を生成してから停止しても良い。
【００７８】
ステップＳＡ２０では、フラグＲＵＮが１に設定されているか否かを判断する。ＲＵＮが１の場合（ＲＵＮ＝１）の場合は、ＹＥＳの矢印で示すステップＳＡ２１に進む。ＲＵＮが０の場合（ＲＵＮ＝０）の場合は、ＮＯの矢印で示すステップＳＡ３に戻る。
【００７９】
ステップＳＡ２１では、自動伴奏データ生成処理を行う。自動伴奏データ生成処理は、設定された演奏テンポ及び入力されるコード情報等に従い、ステップＳＡ１０でロードした自動伴奏データＡＡに含まれるフレーズ波形データＰＷを選択、調整（ピッチチェンジ、タイムストレッチ）して、自動伴奏データを生成する処理である。なお、自動伴奏データ生成処理の詳細は図６のフローチャートを参照して後述する。自動伴奏データ生成処理終了後は、ステップＳＡ３に戻る。
【００８０】
図６は、図５のステップＳＡ２１で実行される自動伴奏データ生成処理を表すフローチャートである。なお、この例では、ルールＡ（ステップＳＢ９〜ＳＢ１２の処理）が選択されている場合は、演算により使用伴奏パターンデータを決定し、ルールＢ（ステップＳＢ１３〜ＳＢ１６の処理）が選択されている場合は、図４に示すテーブルを参照して使用伴奏パターンデータを決定している。使用伴奏パターンデータの決定は、これに限らず、この例とは逆にルールＡにおいて図３に示すテーブルを参照して決定し、ルールＢにおいて演算で決定するようにしてもよい。また、ルールＡ及びルールＢの双方において演算で決定しても良く、又は双方において図３又は図４のテーブルを参照して決定しても良い。
【００８１】
ステップＳＢ１で自動伴奏データ生成処理を開始し、ステップＳＢ２では、コード情報の入力を検出（コード情報を取得）したか否かを判断する。コード情報の入力を検出した場合には、ＹＥＳの矢印で示すステップＳＢ３に進み、検出しない場合には、ＮＯの矢印で示すステップＳＢ１７に進む。
【００８２】
コード情報の入力を検出しない場合には、すでに何らかのコード情報に基づき自動伴奏生成中の場合と、有効なコード情報がない場合が含まれる。有効なコード情報がない場合には、コード情報を必要としない、例えば、リズムパートのみ伴奏データを生成するようにしても良い。あるいは、有効なコード情報が入力されるまで、ステップＳＢ１７に進まずに、ステップＳＢ２の処理を繰り返すようにして、有効なコード情報が入力されるまで伴奏データの生成を待つようにしてもよい。
【００８３】
なお、コード情報の入力は、ユーザの図１の演奏操作子２２等を用いた演奏操作により入力される。ユーザの演奏からのコード情報の取得は、例えば、鍵盤等の演奏操作子２２の一部の領域であるコード鍵域の押鍵組み合わせから検出してもよく（この場合は押鍵に対応する発音は行わない）、鍵盤の全鍵域における所定タイミング幅での押鍵状態から検出するようにしてもよい。その他、周知のコード検出技術を利用可能である。なお、コード情報の入力は、演奏操作子２２を利用したものに限らず、設定操作子１２を利用して行ってもよい。その場合、例えば、コード情報をコードルート（根音）を表す情報（文字や数字）とコードタイプを表す情報（文字や数字）の組み合わせで入力するようにしてもよく、使用可能なコード情報を記号や番号で入力するようにしてもよい。さらに、コード情報をユーザの入力によらずに、あらかじめ記憶しておいたコードシーケンス（コード進行情報）を所定のテンポで読みだして取得するようにしてもよく、再生中の曲データ等からコード検出を行い取得してもよい。
【００８４】
ステップＳＢ３では、「現在コード」に設定されているコード情報を「直前コード」にセットし、ステップＳＢ２で検出（取得）したコード情報を「現在コード」にセットする。
【００８５】
ステップＳＢ４では、「現在コード」に設定されているコード情報と「直前コード」に設定されているコード情報とが同一であるか否かを判断する。同一である場合はＹＥＳの矢印で示すステップＳＢ１７に進み、同一でない場合は、ＮＯの矢印で示すステップＳＢ５に進む。なお、初回コード情報検出時もステップＳＢ５に進む。
【００８６】
ステップＳＢ５では、ステップＳＡ１４で選択（又はロード）された伴奏パターンデータＡＰの内、「現在コード」に設定されているコード情報のコードルートと同じ音名を基準音高とする伴奏パターンデータＡＰ（内のフレーズ波形データＰＷ）を「現在の伴奏パターンデータ」にセットする。適合する伴奏パターンデータＡＰ（内のフレーズ波形データＰＷ）が複数ある場合（例えば、複数のコードタイプが用意されている場合）には、「現在コード」に設定されているコード情報のコードタイプに適合するものを「現在の伴奏パターンデータ」にセットする。なお、コード情報のコードタイプに適合するフレーズ波形データＰＷが用意されていない場合には、入力コード情報をフレーズ波形データＰＷが用意されているコードタイプに変換するようにしても良い。その場合には、なるべく同一の構成音を含むコードタイプに変換するための変換ルールを予め用意しておくことが好ましい。
【００８７】
ステップＳＢ６では、ステップＳＢ５で「現在の伴奏パターンデータ」にセットされたフレーズ波形データＰＷを録音テンポ（基準テンポ）で再生した場合の（例えば、１サイクルあたりの）所要時間を算出して取得し、「基準所要時間」にセットする。
【００８８】
ステップＳＢ７では、テップＳＢ５で「現在の伴奏パターンデータ」にセットされたフレーズ波形データＰＷを、図５のステップＳＡ２で設定された演奏テンポ（再生テンポ）で再生した場合における（例えば、１サイクルあたりの）所要時間の、ステップＳＢ６でセットした「基準所要時間」に対する比（％）を算出して取得し、「演奏所要時間（％）」にセットする。
【００８９】
ステップＳＢ８では、図５のステップＳＡ２又はステップＳＡ３等で設定された使用伴奏パターンデータ決定ルールが「ルールＡ」に設定されているか「ルールＢ」に設定されているかを判断する。使用伴奏パターンデータ決定ルールが「ルールＡ」である場合は、「Ａ」の矢印で示すステップＳＢ９に進み、使用伴奏パターンデータ決定ルールが「ルールＢ」である場合は、「Ｂ」の矢印で示すステップＳＢ１３に進む。
【００９０】
ステップＳＢ９では、テップＳＢ５で「現在の伴奏パターンデータ」にセットされたフレーズ波形データＰＷを、図５のステップＳＡ２で設定された演奏テンポ（再生テンポ）で再生した場合における「半音ずれ数」を検出する。例えば、「録音テンポ（１００）」で録音されている基準音高が「Ｃ」のフレーズ波形データＰＷを「演奏テンポ（９１）」で再生した場合には、演奏所要時間が約１１０％となり、「半音ずれ数」は「＋２」となる。
【００９１】
ステップＳＢ１０では、ステップＳＢ５で「現在の伴奏パターンデータ」にセットされたフレーズ波形データＰＷの基準音高からステップＳＢ９で取得した「半音ずれ数」分ずれた基準音高の伴奏パターンデータＡＰ（フレーズ波形データＰＷ）を、図５のステップＳＡ１４で選択（又はロード）された全伴奏パターンデータＡＰの中から探し出して、「使用伴奏パターンデータ」にセットする。なお、本実施例では、伴奏パターンデータＡＰ（フレーズ波形データＰＷ）として半音単位で１２種類（１オクターブ分）用意されていることを前提としているが、１オクターブ内の一部の音名についてのみデータが用意されている場合は、「半音ずれ数」分ずれた基準音高に最も近い基準音高の伴奏パターンデータＡＰ（フレーズ波形データＰＷ）を「使用伴奏パターンデータ」にセットする。
【００９２】
ステップＳＢ１１では、ステップＳＢ１０で「使用伴奏パターンデータ」にセットされた伴奏パターンデータＡＰ（フレーズ波形データＰＷ）の基準音高が、ステップＳＢ５で「現在の伴奏パターンデータ」にセットされたフレーズ波形データＰＷの基準音高と同じ音高に聴こえる再生所要時間（読み出し速度）をステップＳＢ６で取得した「基準所要時間」に対する比（％）で算出して取得し、「読み出し所要時間（％）」にセットする。
【００９３】
ステップＳＢ１２では、ステップＳＢ１０で「使用伴奏パターンデータ」にセットされた伴奏パターンデータＡＰ（フレーズ波形データＰＷ）のタイマに合う位置のデータを、ステップＳＢ１１でセットした「読み出し所要時間（％）」になるように読み出し、ステップＳＢ７でセットした「演奏所要時間（％）」に合うようにタイムストレッチ処理を行い、伴奏データを生成して出力する。その後、ステップＳＢ１８に進み自動伴奏データ生成処理を終了し、図５のステップＳＡ３に戻る。
【００９４】
なお、ステップＳＢ９からステップＳＢ１２の処理の代わりに、図３のテーブルを参照して「使用伴奏パターンデータ」を決定して伴奏データを生成する場合は、ステップＳＢ９及びステップＳＢ１１の処理の代わりに、ステップＳＢ７で取得した「演奏所要時間（％）」に基づき、図３のテーブルから「半音ずれ数」及び「読み出し所要時間（％）」を取得し、該取得した「半音ずれ数」に基づきステップＳＢ１０の処理を行い「使用伴奏パターンデータ」を決定し、その後、ステップＳＢ１２の処理を行う。
【００９５】
ステップＳＢ１３では、図４のテーブルを参照して、ステップＳＢ７で取得した「演奏所要時間（％）」に該当する「参照演奏所要時間（％）」、「半音ずれ数」、「読み出し所要時間（％）」及び「調整時間（％）」を取得する。
【００９６】
ステップＳＢ１４では、ステップＳＢ５で「現在の伴奏パターンデータ」にセットされたフレーズ波形データＰＷの基準音高からステップＳＢ１３で検出した「半音ずれ数」分ずれた基準音高の伴奏パターンデータＡＰ（フレーズ波形データＰＷ）を、図５のステップＳＡ１４で選択（又はロード）された全伴奏パターンデータＡＰの中から探し出して、「使用伴奏パターンデータ」にセットする。なお、伴奏パターンデータＡＰ（フレーズ波形データＰＷ）として、１オクターブ内の一部の音名についてのみデータが用意されている場合は、上述のステップＳＢ１０と同様の処理を行う。
【００９７】
ステップＳＢ１５では、ステップＳＢ７で取得した「演奏所要時間（％）」とステップＳＢ１３で検出した「参照演奏所要時間（％）」の差分を「調整時間（％）」に反映させる。例えば、「演奏所要時間（１０９％）」で「参照演奏所要時間（１１２％）」である場合は、その差分である「３％」を「調整時間（１０６％）」に加算して「調整時間（１０９％）」とする（「演奏所要時間（％）」−「参照演奏所要時間（％）」＋「調整時間（％）」の初期値）。
【００９８】
ステップＳＢ１６では、ステップＳＢ１４で「使用伴奏パターンデータ」にセットされた伴奏パターンデータＡＰ（フレーズ波形データＰＷ）のタイマに合う位置のデータを、ステップＳＢ１３で検出した「読み出し所要時間（％）」になるように読み出し、ステップＳＢ１５で差分を反映した「調整時間（％）」に合うようにタイムストレッチ処理を行い、伴奏データを生成して出力する。その後、ステップＳＢ１８に進み自動伴奏データ生成処理を終了し、図５のステップＳＡ３に戻る。
【００９９】
ステップＳＢ１７では、ステップＳＢ１０又はステップＳＢ１４で決定された使用伴奏パターンデータのタイマに合う位置のデータを、使用伴奏パターンデータの演奏時間（時間軸上の長さ）が当該ステップＳＢ１１で取得した「読み出し所要時間（％）」又はステップＳＢ１３でテーブルを参照して検出した「読み出し所要時間（％）」になるように（「基準所要時間」×「読み出し所要時間（％）」）、読み出し速度を調整して読み出す。
【０１００】
その後、図５のステップＳＡ２又はＳＡ３で使用伴奏パターンデータ決定ルールとしてルールＡが選択されている場合は、当該読み出したデータをさらにステップＳＢ７で取得した「演奏所要時間（％）」に合うように（処理後の時間軸上の長さが「基準所要時間」×「演奏所要時間（％）」となるように）タイムストレッチ処理を行い、伴奏データを生成して出力する。
【０１０１】
また、図５のステップＳＡ２又はＳＡ３で使用伴奏パターンデータ決定ルールとしてルールＢが選択されている場合は、当該読み出したデータをさらにステップＳＢ１５で更新した「調整時間（％）」に合うように（処理後の時間軸上の長さが（「基準所要時間」×「読み出し所要時間（％）」）×「調整時間（％）」となるように）タイムストレッチ処理を行い、伴奏データを生成して出力する。
【０１０２】
なお、有効なコード情報が設定又は入力されていない場合には、例えば、リズムパート（例えば、図２に示すコード情報のないフレーズ波形データＰＷを記録した伴奏パターンデータＡＰ２）のみをルールＡもしくはルールＢに基づき処理して出力する。
【０１０３】
なお、リズムパート等の伴奏パターンデータＡＰ２は、コード情報で特定されるコードルートとは関係なく、ピッチチェンジ後（読み出し時間（％）で読み出した場合）の音高が、特定の音高（本来のリズム楽器の音高）となるデータが、読み出し時間（％）で読み出され、必要に応じてタイムストレッチ処理される。このようにするのは、一般的にリズムパートの音高はコードルートにかかわらず一定であるためである。
【０１０４】
その後、ステップＳＢ１８に進み自動伴奏データ生成処理を終了し、図５のステップＳＡ３に戻る。
【０１０５】
以上、本発明の実施例によれば、入力されるコード情報に合致した自動伴奏データを生成する伴奏データ生成装置において、所定の基準（録音）テンポで演奏された伴奏に対応するフレーズ波形データを当該基準（録音）テンポとは異なる演奏（再生）テンポで再生する際に、入力されたコード情報のコードルートを基準音とするフレーズ波形データの代わりに、演奏（再生）テンポ又はそれに近い読み出し速度で再生した場合に基準音が入力されたコード情報のコードルートとなるフレーズ波形データを、当該演奏（再生）テンポ又はそれに近い読み出し速度で読み出す。
【０１０６】
演奏テンポで読み出すことにより、コード情報のコードルートと基準音が同一となる場合には、ピッチチェンジ処理のみによりテンポの変更を行い、タイムストレッチ処理が不要となり、タイムストレッチ処理における波形接続劣化をなくすことが可能となる。
【０１０７】
演奏テンポと同一ではなく、それに近い読み出し速度で読み出すことにより、コード情報のコードルートと基準音が同一となる場合には、ピッチチェンジ処理とタイムストレッチ処理を組み合わせてテンポの変更を行う。この場合には、タイムストレッチ処理が必要となるが、タイムストレッチ処理のみによりテンポの変更を行った場合に比べて、波形接続劣化を抑えることが可能となる。また、ピッチチェンジ処理とタイムストレッチ処理のバランスを調整することにより、タイムストレッチ処理による波形接続劣化とピッチチェンジ処理によるフォルマント劣化のバランスを調整することが可能となる。
【０１０８】
また、本発明の実施例によれば、伴奏パターンをフレーズ波形データで用意するため、高音質での自動伴奏が可能となる。また、ＭＩＤＩ音源では発音が困難な特殊な楽器や特殊な音階を利用した伴奏も自動で行うことが可能となる。
【０１０９】
なお、上述の実施例では、図３及び図４のテーブルに示すように、再生時間の比により、フレーズ波形データの録音テンポと再生テンポの違いを表したが、演奏速度（再生速度）の比により録音テンポと再生テンポの違いを表すようにしても良い。
【０１１０】
例えば、図３における演奏所要時間（％）及び読み出し所要時間（％）を、図７に示すように、それぞれ演奏速度（％）及び読み出し速度（％）で表すようにしても良い。この場合、演奏速度（％）は再生テンポ（による再生速度）の録音テンポ（による再生速度）に対する比（再生テンポ／録音テンポ）であり、読み出し速度（％）は、半音の比から算出して取得されるものであり、例えば、録音テンポに対して１０６％の再生テンポでフレーズ波形データＰＷを読み出すと、フレーズ波形データＰＷの音高は１半音高く聴こえ、９４％の再生テンポでフレーズ波形データＰＷを読み出すと、１半音低く聴こえる。
【０１１１】
読み出し速度（％）は、使用伴奏パターンデータとして選択されたフレーズ波形データＰＷを読み出す速度を規定した基準所要時間に対する比率であり、ピッチチェンジ量を規定する。また、このように速度の比で表す場合には、半音ずれ数は、図３に示すテーブルとは読み出し速度「１００％」を基準に逆になる。すなわち、読み出し速度（％）が「１００」より上に行くに従い、基準音高がより低音のフレーズ波形データＰＷが選択され、読み出し速度（％）が「１００」より下に行くに従い、基準音高がより高音のフレーズ波形データＰＷが選択される。
【０１１２】
また、図６に示す処理では、演奏所要時間（％）及び読み出し所要時間（％）をそれぞれ演奏速度（％）及び読み出し速度（％）に読み替えて、図７を参照することにより同一の効果を得ることが可能となる。なお、基準所要時間は録音テンポに読み替えることができる。
【０１１３】
また、図４のテーブルも同様に、図８に示すように演奏速度の比により録音テンポと再生テンポの違いを表すことができる。例えば、図４における演奏所要時間（％）、参照所要時間（％）、読み出し所要時間（％）、調整時間（％）を、図８に示すように、それぞれ演奏速度（％）、参照速度（％）、読み出し速度（％）及び調整速度（％）で表すことができる。
【０１１４】
演奏速度（％）は、図７と同様に再生テンポの録音テンポに対する比（再生テンポ／録音テンポ）である。参照演奏速度（％）は、演奏速度（％）の一定範囲ごとに、半音単位の音高に対応するものである。
【０１１５】
読み出し速度（％）は、半音ずれ数に基づいて選択されたフレーズ波形データＰＷの基準音高をコード情報のコードルートと同一音高にピッチチェンジすることのできる読み出し速度を規定した録音テンポに対する比率である。
【０１１６】
調整速度（％）は、選択されたフレーズ波形データＰＷを読み出し速度（％）で読み出した後に、当該読み出したフレーズ波形データＰＷの時間軸上の長さをもともとの録音テンポで演奏した場合の演奏所要時間に適合するように、調整するための値である。
【０１１７】
なお、この図８に示す例でも、半音ずれ数は、図４に示すテーブルとは読み出し速度「１００％」を基準に逆になる。すなわち、読み出し速度（％）が「１００」より上に行くに従い、基準音高がより低音のフレーズ波形データＰＷが選択され、読み出し速度（％）が「１００」より下に行くに従い、基準音高がより高音のフレーズ波形データＰＷが選択される。
【０１１８】
また、図６に示す処理では、演奏所要時間（％）、参照所要時間（％）、読み出し所要時間（％）、調整時間（％）をそれぞれ演奏速度（％）、参照速度（％）、読み出し速度（％）及び調整速度（％）に読み替えて、図８を参照することにより同一の効果を得ることが可能となる。なお、基準所要時間は録音テンポに読み替えることができる。
【０１１９】
なお、上述の実施例では、「半音ずれ数」を用いて、音高差を表現したが、代わりに度数（音程）により音高差等を表現しても良い。また、周波数の比率等により表すようにしても良い。
【０１２０】
なお、上述の実施例では、自動伴奏データ生成処理における波形データ選択に用いるテーブルとして、ルールＡとルールＢのそれぞれに１種類ずつ例示したが、各ルールにつき複数種類のテーブルを用意して、ユーザが選択できるようにしても良い。
【０１２１】
また、上述の実施例では、フレーズ波形データＰＷを用意する各パートについて１２音全ての基準音に対応したフレーズ波形データＰＷを用意したが、例えば、「Ｃ」、「Ｅ」、「Ｇ♯」の３種類などのいくつかの基準音についてのみ用意するようにしても良い。その場合は、「半音ずれ数」が最も近い基準音に対応したデータを使用伴奏パターンデータとして選択し、タイムストレッチ量を調整することにより、演奏テンポにあわせたものとする。
【０１２２】
なお、本発明の実施例は、電子楽器の形態に限らず実施例に対応するコンピュータプログラム等をインストールした市販のコンピュータ等によって、実施させるようにしてもよい。
【０１２３】
その場合には、各実施例に対応するコンピュータプログラム等を、ＣＤ−ＲＯＭ等のコンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザに提供してもよい。また、そのコンピュータ等が、ＬＡＮ、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をユーザに提供してもよい。
【０１２４】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。以下に、本発明の実施例に変形例を示す。
【符号の説明】
【０１２５】
６…バス、７…ＲＡＭ、８…ＲＯＭ、９…ＣＰＵ、１０…タイマ、１１…検出回路、１２…設定操作子、１３…表示回路、１４…ディスプレイ、１５…外部記憶装置、１８…波形メモリ音源、１９…サウンドシステム、２０…ＤＡＣ、２１…通信Ｉ／Ｆ、２２…演奏操作子、１００…伴奏データ生成装置
【図１】
0005891656.tif 000002
【図２】
0005891656.tif 000003
【図３】
0005891656.tif 000004
【図４】
0005891656.tif 000005
【図５】
0005891656.tif 000006
【図６】
0005891656.tif 000007
【図７】
0005891656.tif 000008
【図８】
0005891656.tif 000009