説明

伴奏データ生成装置及びプログラム

【課題】 フレーズ波形データの演奏テンポを変更する際に音質劣化を抑制する。
【解決手段】 伴奏データ生成装置は、再生テンポを取得する再生テンポ取得手段と、それぞれが1つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段と、第1の基準音を取得する第1の基準音取得手段と、前記第1の基準音と音高が異なる第2の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手段と、前記第2の基準音と前記第1の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、伴奏データ生成装置に関する。
【背景技術】
【0002】
従来、音楽の各種スタイル(ジャンル)に対応したMIDI形式等の自動演奏データによる複数の伴奏スタイルデータを記憶し、ユーザ(演奏者)の選択した伴奏スタイルデータに基づいて、ユーザの演奏に伴奏を付与する自動伴奏装置が知られている(例えば、特許文献1参照)。
【0003】
従来の自動演奏データを利用した自動伴奏装置では、例えば、CMajなどの所定のコード(和音)に基づく伴奏スタイルデータを、ユーザの演奏から検出したコード(和音)情報に適合するように、音高変換することが行われている。
【0004】
また、アルペジオパターンデータをフレーズ波形データとして記憶し、ユーザの演奏入力に適合するように音高やテンポの調整を行い、自動伴奏データを生成するアルペジオ演奏装置が知られている(例えば、特許文献2参照)。
【0005】
また、波形メモリに記憶した波形データのピッチの制御と、時間軸上の長さを、任意の範囲で、伸張又は圧縮した状態で読み出す制御とを独立に行う楽音発生装置が知られている(例えば、特許文献3参照)。このような装置では、波形データのピッチを調整するとともに、いわゆるタイムストレッチ技術により、波形データの時間軸上の長さを調整することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第2900753号公報
【特許文献2】特許第4274272号公報
【特許文献3】特許第3397082号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述の自動演奏データを利用した自動伴奏装置では、MIDI音源等を利用して楽音を生成するため、民族楽器や特殊な音階を用いる楽器などの楽音を用いた自動伴奏は困難であった。また、自動演奏データによる演奏のため、人間の生演奏による臨場感等を出すことが困難であった。
【0008】
また、上述のアルペジオ演奏装置等の従来のフレーズ波形データを利用した自動伴奏装置では、単音の伴奏フレーズのみが自動演奏可能であった。
【0009】
また、波形データで用意された自動演奏データや自動伴奏データをユーザの演奏に合わせて使用する際には、当該波形データを時間軸方向で調整する必要があるが、タイムストレッチ処理のみで、当該波形データの時間軸方向の長さを調整すると、波形接続劣化が生じる。
【0010】
本発明の目的はフレーズ波形データの演奏テンポを変更する際に音質劣化を抑制することである。
【課題を解決するための手段】
【0011】
本発明の一観点によれば、伴奏データ生成装置は、再生テンポを取得する再生テンポ取得手段と、それぞれが1つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段と、第1の基準音を取得する第1の基準音取得手段と、前記第1の基準音と音高が異なる第2の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手段と、前記第2の基準音と前記第1の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手段とを有する。
【発明の効果】
【0012】
本発明によれば、フレーズ波形データの演奏テンポを変更する際に音質劣化を抑制することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施例による伴奏データ生成装置100のハードウェア構成の一例を表すブロック図である。
【図2】本発明の実施例による自動伴奏データの構成の一例を表す概念図である。
【図3】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールAを示すテーブルの一例を表す概念図である。
【図4】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールBを示すテーブルの一例を表す概念図である。
【図5】本発明の実施例によるメイン処理を表すフローチャートである。
【図6】図5のステップSA21で実行される自動伴奏データ生成処理を表すフローチャートである。
【図7】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールAを示すテーブルの他の例を表す概念図である。
【図8】本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールBを示すテーブルの他の例を表す概念図である。
【発明を実施するための形態】
【0014】
図1は、本発明の実施例による伴奏データ生成装置100のハードウェア構成の一例を表すブロック図である。
【0015】
伴奏データ生成装置100のバス6には、RAM7、ROM8、CPU9、検出回路11、表示回路13、記憶装置15、波形メモリ音源18、通信インターフェイス(I/F)21が接続される。
【0016】
RAM7は、再生バッファ等のバッファ領域、フラグ、レジスタ、各種パラメータ等を記憶するCPU9のワーキングエリアを有する。例えば、後述する自動伴奏データは、このRAM7内の所定領域にロードされる。
【0017】
ROM8には、各種データファイル(例えば、後述する自動伴奏データAA)、各種パラメータ及び制御プログラム、又は本実施例を実現するためのプログラム等を記憶することができる。この場合、プログラム等を重ねて、記憶装置15に記憶する必要は無い。
【0018】
CPU9は、ROM8又は、記憶装置15に記憶されている制御プログラム又は本実施例を実現するためのプログラム等に従い、演算又は装置の制御を行う。タイマ10が、CPU9に接続されており、基本クロック信号、割り込み処理タイミング等がCPU9に供給される。
【0019】
ユーザは、検出回路11に接続される設定操作子12を用いて、各種入力及び設定、選択をすることができる。設定操作子12は、例えば、スイッチ、パッド、フェーダ、スライダ、ロータリーエンコーダ、ジョイスティック、ジョグシャトル、文字入力用キーボード、マウス等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、設定操作子12は、カーソルスイッチ等の他の操作子を用いて操作する表示装置14上に表示されるソフトスイッチ等でもよい。
【0020】
本実施例では、ユーザは、設定操作子12を操作することにより、記憶装置15又はROM8等に記録された又は通信I/F21を介して外部機器から取得(ダウンロード)する自動伴奏データAAの選択、自動伴奏の開始および停止指示及びその他の設定操作を行う。
【0021】
表示回路13は、ディスプレイ14に接続され、各種情報をディスプレイ14に表示することができる。ディスプレイ14は、伴奏データ生成装置100の設定のための各種情報等を表示することができる。
【0022】
記憶装置15は、ハードディスク、FD(フレキシブルディスク又はフロッピーディスク(登録商標))、CD(コンパクトディスク)、DVD(デジタル多目的ディスク)、フラッシュメモリ等の半導体メモリ等の記憶媒体とその駆動装置の組み合わせの少なくとも1つで構成される。記憶媒体は、着脱可能であってもよいし、内蔵されていてもよい。記憶装置15及び(または)ROM8には、好ましくは複数の自動伴奏データAA及び、本発明の各実施例を実現するためのプログラムや、その他の制御プログラムを記憶することができる。なお、本発明の各実施例を実現するためのプログラムや、その他の制御プログラムを記憶装置15に記憶する場合は、これらをROM8に合わせて記憶する必要はない。また、一部のプログラムのみを記憶装置15に記憶し、その他のプログラムをROM8に記憶するようにしてもよい。
【0023】
音源18は、例えば、波形メモリ音源であり、少なくとも波形データ(フレーズ波形データ)から楽音信号を生成可能なハードウェアもしくはソフトウェア音源であり、記憶装置15、ROM8又はRAM7等に記録された自動伴奏データ、自動演奏データ又は演奏操作子(鍵盤)22あるいは通信インターフェイス21に接続された外部機器等から供給される演奏信号、MIDI信号、フレーズ波形データ等に応じて楽音信号を生成し、各種音楽的効果を付与して、DAC20を介して、サウンドシステム19に供給する。DAC20は、供給されるデジタル形式の楽音信号をアナログ形式に変換し、サウンドシステム19は、アンプ、スピーカを含み、DA変換された楽音信号を発音する。
【0024】
通信インターフェイス21は、USBやIEEE1394等の汎用近距離有線I/F、Ethernet(登録商標)等の汎用ネットワークI/F等の通信インターフェイス、MIDI I/Fなどの汎用I/F、無線LANやBluetooth(登録商標)等の汎用近距離無線I/F等の通信インターフェイス及び音楽専用無線通信インターフェイスのうち少なくとも1つで構成され、外部機器、サーバ等との通信が可能である。
【0025】
演奏操作子(鍵盤等)22は、検出回路11に接続され、ユーザの演奏動作に従い、演奏情報(演奏データ)を供給する。演奏操作子22は、ユーザの演奏を入力するための操作子であり、ユーザが操作した操作子に対応する音高で、該ユーザの操作子に対する操作開始タイミング及び終了タイミングをそれぞれキーオン及びキーオフ信号として入力する。また、ユーザの演奏操作に応じてベロシティ値等の各種パラメータを入力することが可能である。
【0026】
なお、演奏操作子(鍵盤等)22により入力される演奏情報には、後述するコード情報もしくはコード情報を生成するための情報が含まれる。なお、コード情報の入力には、演奏操作子(鍵盤等)22以外にも、設定操作子12や通信インターフェイス21に接続される外部機器を用いることもできる。
【0027】
図2は、本発明の実施例による自動伴奏データAAの構成の一例を表す概念図である。
【0028】
本発明の実施例では、例えば、図2に示す自動伴奏データAAに含まれるフレーズ波形データPW又はMIDIデータMDを用いてユーザの演奏や自動演奏に合わせた自動伴奏を行う。その際に、演奏テンポ(再生テンポ)に合わせてフレーズ波形データPWやMIDIデータMDを再生する必要がある。単に、タイムストレッチ処理などを行って、フレーズ波形データPWの時間軸上の長さ(再生テンポ)を変更すると、波形接続劣化が起こる。この波形接続劣化を抑制するために、本実施例では、後に詳述する自動伴奏データ生成処理(図6)により、タイムストレッチと読み出し速度の変更を組み合わせて、所望の再生テンポでフレーズ波形データPWを再生する。なお、MIDIデータMDの場合は、再生テンポを変更しても音質劣化が起こりにくいので、周知の方法によりテンポを変更する。
【0029】
自動伴奏データAAは、1又は複数のパート(トラック)を含んで構成され、各伴奏パートは、少なくとも一つの伴奏パターンデータAPを含んで構成される。自動伴奏データAAは、伴奏パターンデータAPのような実体データに加えて、当該自動伴奏データの伴奏スタイル名、拍子情報、テンポ情報(フレーズ波形データPWの録音(再生)テンポ)、各伴奏パートの情報等を含む当該自動伴奏データ全体の設定情報を含んでいる。
【0030】
本発明の実施例による自動伴奏データAAは、例えば、ユーザが図1の演奏操作子22を用いてメロディラインを演奏する場合に、それに合わせて、少なくとも一つのパート(トラック)の自動伴奏を行うためのデータである。
【0031】
自動伴奏データAAは、ジャズ、ロック、クラッシック等の音楽ジャンルに対応するとともに各ジャンルごとに複数種類のものが用意されており、識別番号(ID番号)や、伴奏スタイル名等で識別される。本実施例では、複数の自動伴奏データAAが、例えば、図1の記憶装置15又はROM8等に記憶されており、各自動伴奏データAAには、ID番号が付されている(「0001」、「0002」等)。
【0032】
各自動伴奏データAAは、通常、複数のリズム種類、音楽ジャンル、テンポ等の伴奏スタイル毎に用意される。また、それぞれの自動伴奏データAAには、イントロ、メイン、フィルイン、エンディング等の楽曲の場面に合わせた複数のセクションが用意される。さらに、それぞれのセクションは、コードトラック、ベーストラック、ドラム(リズム)トラックなどの複数のトラックで構成される。本実施例では、説明の便宜上、自動伴奏データAAは、任意の1つのセクションで構成され、当該セクションが少なくとも和音を用いた伴奏を行うコードトラックを含む複数のパート(パート1(トラック1)〜パートn(トラックn))を含んでいるものとする。
【0033】
自動伴奏データAAの各パート1〜n(トラック1〜n)には、複数の伴奏パターンデータAP1〜3のいずれかが対応付けられている。伴奏パターンデータAP1は、全てのコードルート(12音)について、複数種類のコードタイプに対応している。また、伴奏パターンデータAP1は、それぞれ一つのコードタイプに対応しており、少なくとも一つのフレーズ波形データPWが対応付けられている。本実施例では、例えば、メジャーコード(Maj)、マイナーコード(m)、セブンスコード(7)等の複数種類のコードタイプに対応している。すなわち、各コードタイプについて、C〜Bまでの12音のコードルートに対応した伴奏パターンデータAP1が記憶されている。自動伴奏データAAの各パート1〜n(トラック1〜n)は、全コードルートについて複数種類のコードタイプに対応した伴奏パターンデータAP1を記憶している。なお、対応可能なコードタイプは、適宜増減可能である。また、対応可能なコードタイプをユーザが設定できるようにしても良い。ドラム(リズム)トラック等には、コードタイプのない伴奏パターンデータAP2を記憶する。コードタイプのない伴奏パターンデータAP2は、全ての半音単位の音高(12音)について準備されるが、そもそも和音を使用するパートではないので、対応するコードタイプはない。
【0034】
なお、自動伴奏データAAが複数のパート(トラック)を含む場合は、少なくとも一つのパートについては、フレーズ波形データPWが対応付けられた伴奏パターンデータAP1又はAP2が対応づけられている必要があるが、その他のパートについては、MIDI形式等の自動演奏データによる伴奏フレーズデータが対応付けられている伴奏パターンデータAP3が対応付けられていても良い。例えば、図2に示す例におけるID番号「0001」が付与された自動伴奏データAAのように、パート1及びパート2は、伴奏パターンデータAP1とし、パート3を伴奏パターンAP2として、パート4を伴奏パターンデータAP3として、MIDIデータMDによる伴奏フレーズデータを記憶しても良い。
【0035】
フレーズ波形データPWは、対応付けられた伴奏パターンデータAPが対応しているコードタイプ及びコードルート(基準音)を基準とした伴奏フレーズの所定のテンポ(録音テンポ)による演奏に対応する楽音を記録したフレーズ波形データであり、1〜複数小節の長さである。例えば、CMaj基準のフレーズ波形データPWには、Cmajのコード構成音である音高C、E、Gを主に用いた演奏(和音伴奏以外の伴奏も含む)による楽音をデジタルサンプリングして記憶した波形データである。なお、フレーズ波形データPWには、基準となるコード(コードタイプ及びコードルートの組み合わせで特定されるコード)の構成音以外の音高(非和声音)も含まれる場合がある。また、基準音が含まれずに、コード情報で特定されるコードルート及びコードタイプの演奏の伴奏として音楽的に調和する音高のみが含まれる場合もあるが、その場合にも当該フレーズ波形データは基準音に対応しているものとする。すなわち、本明細書において、フレーズ波形データPW(伴奏パターンデータAP)の「基準音」とは、当該フレーズ波形データPW(伴奏パターンデータAP)が用いられるべきコード進行上のコードのコードルートを表すものである。
【0036】
また、各フレーズ波形データPWには、当該フレーズ波形データPWを特定することが可能な識別子が付与されている。
【0037】
なお、フレーズ波形データPWは、1種類の録音テンポにより作成されても良いし、同一伴奏フレーズに付き複数種類のテンポ(例えば、自動伴奏データAAの推奨テンポによる演奏と、当該演奏によるフレーズ波形データPWを同一テンポで再生した場合に、5半音上がる又は下がるテンポによる演奏等)により作成しても良い。また、各録音テンポの値は、録音テンポの段階あるいは基準がわかる程度の誤差(ばらつき)を含んでいても良い。本実施例では、全てのフレーズ波形データPWが録音テンポ100(本実施例では、一分間に四分音符が刻まれる個数でテンポを表す)で記録されているものとして説明する。
【0038】
なお、本実施例では、「自動伴奏データAAのID(スタイル番号)−パート(トラック)番号−コードルート(根音)を表す番号−コードタイプ番号」の形式で、各フレーズ波形データPWに識別子が付与されている。本実施例では、この識別子をフレーズ波形データPWのコードタイプを特定するコードタイプ情報及び根音(コードルート)を特定するコードルート情報として利用する。これにより、各フレーズ波形データPWの識別子を参照して、当該フレーズ波形データPWが基準とするコードタイプやコードルート(根音)を取得することができる。なお、上記のような識別子を用いる以外の方法で、コードタイプやコードルートについての情報を各フレーズ波形データPWに付与するようにしても良い。また、録音テンポが各フレーズ波形データPWによって異なる場合には、各フレーズ波形データPWに録音テンポを識別するための情報を付与する。
【0039】
MIDIデータMDは、個々の伴奏音の音高に応じた音高データと発音タイミングを示すタイミングデータをセットにしたものである。音高データとしては、例えば、CMajなど所定和音に基づくキーコードが用いられ、入力和音の種類と根音に応じた音高変換を考慮したソースパターンとして作成されている。自動伴奏時には、入力されるコード情報に応じて音高変換される。なお、所定和音で作成したソースパターンを入力和音(コード情報)の種類にあったように音高変換するために、ソースパターンのキーコードについてのシフトデータを和音の種類に対応付けてノート変換テーブルとして記憶しておき、入力される和音の種類に応じたシフトデータをノート変換テーブルから読み出し、該読み出したシフトデータをソースパターンのキーコードと演算することにより和音の種類に応じた伴奏パターンを得ることができる。
【0040】
なお、本実施例では、各パートが複数のコードタイプのそれぞれに対応した伴奏パターンデータAP1〜3を含むようにしたが、各コードタイプが複数のパートに対応した伴奏パターンデータAP1〜3を含むようにしても良い。
【0041】
また、フレーズ波形データPWは、自動伴奏データAA内に記憶されていても良いし、自動伴奏データAAとは別に記憶して、自動伴奏データAA内には、フレーズ波形データPWへのリンク情報のみを記憶するようにしても良い。
【0042】
なお、フレーズ波形データPWの録音テンポは、自動伴奏データAAの推奨テンポと同一の場合、あるいは全フレーズ波形データPWの録音テンポが同一の場合は、上述のように自動伴奏データAAの属性情報として記憶することができるが、伴奏パターンデータAP1又はAP2ごとに録音テンポが設定されている場合は、録音テンポは各伴奏パターンデータAP1又はAP2又は各フレーズ波形データPWの属性情報として記憶してもよい。また、同一コードタイプで同一コードルート(根音)について複数の録音テンポでフレーズ波形データPWを用意する場合にも、録音テンポは各伴奏パターンデータAP1又はAP2又は各フレーズ波形データPWの属性情報として記憶する。
【0043】
図3は、本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールAを示すテーブルの一例を表す概念図である。このテーブルは、図2のフレーズ波形データPWの録音テンポが「100」である場合を想定している。
【0044】
本発明の実施例は、所定の録音テンポ(本実施例では「100」)で録音(作成)されたフレーズ波形データPWを含む自動伴奏データAAを、所定の演奏テンポで再生するものであり、その際に図3又は図4のテーブルを参照してフレーズ波形データPWを選択する。本実施例では、選択された自動伴奏データAAに含まれるフレーズ波形データPWのテンポを変更(時間軸上の長さを変更)するための処理においてフレーズ波形データを選択するために適用されるルールとして、第1のルール(ルールA)と第2のルール(ルールB)とを用意しており、図3に示すテーブルは、ルールAを適用する場合のテーブルである。なお、ルールBを適用する場合に使用するテーブルは、図4に示す。
【0045】
演奏所要時間(%)は、再生対象のフレーズ波形データPWを演奏テンポ(再生テンポ)で再生した場合の(例えば、1サイクルあたりの)所要時間の、基準所要時間に対する比(%)である。なお、基準所要時間は、再生対象のフレーズ波形データPWを録音テンポ(基準テンポ)で再生した場合の(例えば、1サイクルあたりの)所要時間である。
【0046】
読み出し所要時間(%)は、半音の比から算出して取得されるものであり、例えば、基準所要時間に対して106%の所要時間でフレーズ波形データPWを読み出すと、フレーズ波形データPWの音高は1半音低く聴こえ、94%の所要時間でフレーズ波形データPWを読み出すと、1半音高く聴こえる。読み出し所要時間(%)は、使用伴奏パターンデータとして選択されたフレーズ波形データPWを読み出す速度を規定した基準所要時間に対する比率であり、ピッチチェンジ量を規定する。使用伴奏パターンデータの基準音高をコード情報で指定される基準音高にピッチチェンジするための読み出し速度変更比率である。
【0047】
半音ずれ数は、読み出し所要時間(%)でフレーズ波形データPWを読み出す場合における当該フレーズ波形データPWの音高が、基準所要時間で読み出す場合における当該フレーズ波形データPWの音高との音高差(ピッチチェンジ量)を半音数で表したものである。
【0048】
ルールAでは、まず再生対象のフレーズ波形データPWの基準所要時間を算出し、該算出した基準所要時間に対する「演奏所要時間(%)」を算出して取得する。その後、図3に示すテーブルを参照し、取得した「演奏所要時間(%)」に対応する「半音ずれ数」及び「読み出し所要時間(%)」を取得する。そして、再生対象のフレーズ波形データPWと基準音高が「半音ずれ数」分異なるフレーズ波形データPWを使用フレーズ波形データPWとして、「読み出し所要時間(%)」の速度で読み出し、「演奏所要時間(%)」に適合するように、読み出した使用フレーズ波形データPWにタイムストレッチ処理を施して伴奏データを生成して出力する。
【0049】
以下に具体的例を挙げて説明する。なお、この例では、説明の便宜上、フレーズ波形データPWを録音テンポ「100」で再生した場合に、10秒かかるものとする。また、演奏テンポは、「91」に設定されたものとする。
【0050】
まず、例えば、コード情報として「Em」が入力されると、コードルート「E」でコードタイプが「m(マイナー)」のフレーズ波形データPWが、現在の伴奏パターンデータとして設定される。ここで、演奏テンポ「91」でフレーズ波形データPW(録音テンポ「100」、基準所要時間10秒)を再生すると所要時間は11秒であり、約110%となるので、「演奏所要時間(%)」として、110%が算出される。これに基づき、図3のテーブルを参照すると、「半音ずれ数(+2)」で、「読み出し所要時間(112%)」であることがわかる。次に、「半音ずれ数」が「+2」であることから、コードルート「E」よりも2半音高いコードルートに対応する、コードルート「F♯」でコードタイプが「m(マイナー)」のフレーズ波形データPWが使用伴奏パターンデータとして選択され、「読み出し所要時間(112%)」の速度で読み出される(11.2秒かけて読み出される)。これにより、本来コードルート「F♯」でコードタイプが「m(マイナー)」のフレーズ波形データPWのコードルートは音高変換(ピッチチェンジ)されて「E」となる。このとき、フレーズ波形データPWの時間軸上の長さは、元の長さ(10秒)の112%(11.2秒)となっているが、設定された演奏テンポは録音テンポの110%(11秒)であるので、さらにタイムストレッチ処理を行い、フレーズ波形データPWの時間軸上の長さを110%に短縮(約1.79%、0.2秒分短縮)して伴奏データとして出力する。
【0051】
なお、タイムストレッチ処理だけをして、録音テンポ「100」で記録されたフレーズ波形データPWを演奏テンポ「91」で再生すると、当該フレーズ波形データPWの時間軸上の長さを12%(上記の例では、1.2秒)伸張しなければならい。これに対して、上記ルールAに基づいて、テンポの変更を行う場合は、フレーズ波形データPWの時間軸上の長さを約1.79%(上記の例では、0.2秒)短縮するだけでよく、波形接続劣化による影響を抑制することが可能となる。
【0052】
図4は、本発明の実施例による自動伴奏データ生成処理における波形データ選択のルールBを示すテーブルの一例を表す概念図である。このテーブルは、図2のフレーズ波形データPWの録音テンポが「100」である場合を想定している。
【0053】
「演奏所要時間(%)」、「基準所要時間」及び「半音ずれ数」は、ルールAの場合と同様である。なお、「演奏所要時間(%)」と「読み出し所要時間(%)」及び「半音ずれ数」との対応関係はルールAの場合とは異なる。
【0054】
参照演奏所要時間(%)は、演奏所要時間(%)の一定範囲ごとに、半音単位の音高に対応する、すなわち、当該演奏所要時間(%)で再生した場合に、録音テンポで再生した場合の規準音の音高と基準所要時間に演奏所要時間(%)を乗算した時間で再生した場合の規準音の音高との音高差が半音差で表すことのできる演奏所要時間(%)を表したものである。例えば、演奏所要時間が68〜73%の場合は、この中で71%となる場合に基準音から6半音高く聴こえ、その他のパーセンテージの場合は、半音差で表すことができない。なお、ルールBにおいては、半音ずれ数と参照演奏所要時間(%)は対応しておらず、例えば、参照演奏所要時間(71%)でフレーズ波形データPWを読み出すと元の基準音よりも6半音高くなるので、この速度で読み出す場合には、ルールAでは、6半音低い基準音のフレーズ波形データPWを選択して読み出す必要があるが、ルールBでのこの場合の半音ずれ数は「−3」に規定されており、3半音だけ低いデータが、読み出し所要時間(84%)で読み出される。したがってこのままでは再生テンポに対してテンポが速すぎるので、再生テンポにあわせるために調整時間(%)分タイムストレッチを行って、さらにテンポを遅くする。
【0055】
ルールBにおける「読み出し所要時間(%)」は、使用伴奏パターンデータとして選択されたフレーズ波形データPWを読み出す速度を規定した基準所要時間に対する比率であり、ピッチチェンジ量を規定する。使用伴奏パターンデータとして選択されたフレーズ波形データPWを「読み出し所要時間(%)」で規定される読み出し速度で読み出すことにより、当該フレーズ波形データの基準音がコード情報のコードルートと同一の音高となる。なお、本明細書において「同一の音高」とは、完全に周波数が一致する場合のみならず、人間の聴感上同一の音高に聴こえる程度の誤差を含むものとする。
【0056】
調整時間(%)は、使用伴奏パターンデータとして選択されたフレーズ波形データPWを読み出し所要時間(%)の速度で読み出した後に、当該読み出したフレーズ波形データPWの時間軸上の長さを演奏所要時間に適合するように、調整するための値である。図4のテーブルに記載されている値は初期値であり、適宜演奏所要時間に合わせて増減される。なお、調整時間(%)は、基準所要時間に対する比率ではなく、「読み出し所要時間(%)」に対する比率で表現されており、「読み出し所要時間(%)」×「調整時間(%)」=「演奏所要時間(%)」となるように設定される。
【0057】
ルールBにおいては、「半音ずれ数」及び「読み出し所要時間(%)」でピッチチェンジ量が決定され、「調整時間(%)」でタイムストレッチ量が決定されるので、「半音ずれ数」及び「読み出し所要時間(%)」と「調整時間(%)」とのバランスを調整することにより、ピッチチェンジ量とタイムストレッチ量のバランスを調整することができる。このバランスはユーザにより設定可能としても良い。
【0058】
ルールBでは、図3に示すルールAの場合に比べて、音高変換(ピッチチェンジ)量を減らすことにより、ピッチチェンジによるフォルマント劣化などの抑制も考慮している。そのために、タイムストレッチ量は増えている。ルールAでは、演奏所要時間の範囲の中間点を読み出し所要時間として、演奏所要時間の範囲ごとに1半音下がる又は上がる読み出し所要時間を設定していたが、ルールBでは、2つの演奏所要時間の範囲ごとに1半音下がる又は上がる読み出し所要時間を設定しているため、ルールAに比べて多めにタイムストレッチをする必要がある。
【0059】
ルールBでは、まず再生対象のフレーズ波形データPWの基準所要時間を算出し、該算出した基準所要時間に対する「演奏所要時間(%)」を算出して取得する。その後、図4に示すテーブルを参照し、取得した「演奏所要時間(%)」に対応する「参照演奏所要時間(%)」、「半音ずれ数」、「読み出し所要時間(%)」及び「調整時間(%)」を取得する。次に、「演奏所要時間(%)」と「参照演奏所要時間(%)」の差分に基づき「調整時間(%)」を増減する。そして、再生対象のフレーズ波形データPWと「半音ずれ数」分異なるフレーズ波形データPWを使用フレーズ波形データPWとして、「読み出し所要時間(%)」の速度で読み出し、増減した「調整時間(%)」に適合するように、読み出した使用フレーズ波形データPWにタイムストレッチ処理を施して伴奏データを生成して出力する。
【0060】
以下に具体的例を挙げて説明する。なお、この例では、説明の便宜上、フレーズ波形データPWを録音テンポ「100」で再生した場合に、10秒かかるものとする。また、演奏テンポは、「91」に設定されたものとする。
【0061】
まず、例えば、コード情報として「Em」が入力されると、コードルート「E」でコードタイプが「m(マイナー)」のフレーズ波形データPWが、現在の伴奏パターンデータとして設定される。ここで、演奏テンポ「91」でフレーズ波形データPW(録音テンポ「100」、基準所要時間10秒)を再生すると所要時間は11秒であり、約110%となるので、「演奏所要時間(%)」として、110%が算出される。これに基づき、図4のテーブルを参照すると、「参照演奏所要時間(112%)」「半音ずれ数(+1)」、「読み出し所要時間(106%)」、「調整時間(106%)」であることがわかる。次に、「半音ずれ数」が「+1」であることから、コードルート「E」よりも1半音高いコードルートに対応する、コードルート「F」でコードタイプが「m(マイナー)」のフレーズ波形データPWが使用伴奏パターンデータとして選択される。次に、「演奏所要時間(110%)」と「参照演奏所要時間(112%)」の差分(−2%)に基づき「調整時間(106%)」が増減され「調整時間(104%)」とされる。その後、使用伴奏パターンデータとして選択されたフレーズ波形データPWが「読み出し所要時間(106%)」の速度で読み出される(10.6秒かけて読み出される)。これにより、本来コードルート「F」でコードタイプが「m(マイナー)」のフレーズ波形データPWのコードルートは音高変換(ピッチチェンジ)されて「E」となる。このとき、フレーズ波形データPWの時間軸上の長さは、元の長さ(10秒)の106%(10.6秒)となっているが、設定された演奏テンポは録音テンポの110%(11秒)であるので、さらに「調整時間(104%)」に適合するように、タイムストレッチ処理を行い、106%の長さのフレーズ波形データPWの時間軸上の長さをさらに104%に伸張(4%、0.4秒分伸張)して伴奏データとして出力する。
【0062】
なお、タイムストレッチ処理だけをして、録音テンポ「100」で記録されたフレーズ波形データPWを演奏テンポ「91」で再生すると、当該フレーズ波形データPWの時間軸上の長さを12%(上記の例では、1.2秒)伸張しなければならい。これに対して、上記ルールBに基づいて、テンポの変更を行う場合は、フレーズ波形データPWの時間軸上の長さを約4%(上記の例では、0.4秒)短縮するだけでよく、波形接続劣化による影響を抑制することが可能となる。また、ルールAに比べるとタイムストレッチ量は多くなるが、ピッチチェンジ量がルールAでは2半音なのに対して、ルールBでは1半音となる。このため、ルールBでは、ルールAに比べて、波形接続劣化が見られるものの、フォルマント劣化を抑えることができる。
【0063】
図5は、本発明の実施例によるメイン処理を表すフローチャートである。このメイン処理は、本発明の実施例による伴奏データ生成装置100の電源投入と同時に起動する。
【0064】
ステップSA1で、メイン処理を開始し、ステップSA2で初期設定を行う。ここでの初期設定は、自動伴奏データAAの選択、コード取得方法(ユーザ演奏による入力、ユーザの直接指定による入力、コード進行情報による自動入力等)の設定、演奏テンポの所得・設定、調設定、使用伴奏パターンデータ決定ルール(ルールA又はルールB)の設定等であり、例えば、図1の設定操作子12を用いて行う。また、自動伴奏処理開始フラグRUNを初期化(RUN=0)するとともに、タイマ、その他のフラグ、レジスタ等を初期化する。
【0065】
なお、演奏(再生)テンポの設定は、このステップSA2において演奏会指示にユーザが設定する場合に限らず、演奏中に変更可能としても良い。その場合、例えば、ユーザがテンポ調整のスイッチを押し続けているような変化中には伴奏パターンデータの差し替えなどは起こらず、テンポの変更後の値が確定した時点で、新しく設定されたテンポに対応する処理を行うようにする。
【0066】
ステップSA3では、ユーザによる設定変更操作を検出したか否かを判断する。ここでの設定変更操作は、自動伴奏データAAの再選択等、現在の設定を初期化する必要のある設定であり、例えば、演奏テンポの設定変更等は含まれない。設定変更操作を検出した場合は、YESの矢印で示すステップSA4に進む。設定変更操作を検出しない場合は、NOの矢印で示すステップSA5に進む。
【0067】
ステップSA4では、自動伴奏停止処理を行う。自動伴奏停止処理は、例えば、タイマを停止し、フラグRUNを0に設定(RUN=0)し、発音中の自動伴奏による楽音の消音処理を行う。その後、SA2に戻り、検出した変更操作に従い再度初期設定を行う。なお、自動伴奏中でない場合には、そのままステップSA2に戻る。
【0068】
ステップSA5では、メイン処理の終了操作(伴奏データ生成装置100の電源切断等)を検出したか否かを判断する。終了操作を検出した場合は、YESの矢印で示すステップSA22に進みメイン処理を終了する。検出しない場合はNOの矢印で示すステップSA6に進む。
【0069】
ステップSA6では、ユーザによる演奏操作を検出したか否かを判断する。ユーザによる演奏動作の検出は、例えば、図1の演奏操作子22の操作による演奏信号の入力または、通信I/F21を介した演奏信号の入力の有無を検出することにより行う。演奏操作を検出した場合は、YESの矢印で示すステップSA7に進み、検出した演奏動作に基づく発音又は消音処理を行い、ステップSA8に進む。演奏操作を検出しない場合はNOの矢印で示すステップSA8に進む。
【0070】
ステップSA8では、自動伴奏の開始指示を検出したか否かを判断する。自動伴奏の開始指示は、例えば、ユーザが図1の設定操作子12を操作することにより行う。自動伴奏開始指示を検出した場合は、YESの矢印で示すステップSA9に進む。開始指示を検出しない場合は、NOの矢印で示すステップSA16に進む。なお、自動伴奏の開始は、ユーザの演奏の開始を検出して自動的に行っても良い。
【0071】
ステップSA9では、フラグRUNを1に設定(RUN=1)に設定し、ステップSA10では、ステップSA2又はステップSA3で選択された自動伴奏データAAを、例えば、図1の記憶装置15等からRAM7の所定領域内等にロードする。その後、ステップSA11で、直前コードと現在コードをクリアし、ステップSA12に進む。
【0072】
ステップSA12では、ステップSA10でロードした自動伴奏データAA内の全伴奏パターンデータAP(フレーズ波形データPW)について、ステップSA2で設定された演奏テンポが許容範囲内か否かを判断し、許容範囲内である場合には次のステップSA13に進む。設定されている演奏テンポが許容範囲内でない場合は、例えば、当該演奏テンポが許容範囲内でないことをユーザに通知して、演奏テンポの再設定や自動伴奏データAAの再選択を促す。演奏テンポの再設定や自動伴奏データAAの再選択がある場合は、ステップSA3に戻る。
【0073】
演奏テンポが許容範囲内か否かの判断は、例えば、図3及び図4を参照して説明した「演奏所要時間(%)」を算出して取得し、取得した「演奏所要時間(%)」が、71%から141%の範囲に入っている場合、すなわち、聴感上6半音のずれまでを許容範囲内とし、それ以外の場合を許容範囲外とする。なお、「演奏所要時間(%)」の範囲は、例えば、聴感上3半音のずれに相当する84%から119%までとしても良く、ユーザが任意に設定できるようにしても良い。
【0074】
ステップSA13では、ステップSA10でロードした自動伴奏データAA内の各伴奏パターンデータAP(フレーズ波形データPW)の録音テンポを参照し、ステップSA2で設定された演奏テンポに基づき、使用する録音テンポを決定し、当該録音テンポを「基準テンポ」とする。ここでの処理は、例えば、ステップSA13で算出して取得した「演奏所要時間(%)」が100%に最も近くなる伴奏パターンデータAP(フレーズ波形データPW)の録音テンポを「基準テンポ」として採用する。
【0075】
ステップSA14では、ステップSA10でロードした自動伴奏データAA内で、ステップSA13で決定した「基準テンポ」を録音テンポとする全ての伴奏パターンデータAP(フレーズ波形データPW)を後述するステップSA21の自動伴奏データ生成処理で用いる伴奏パターンデータAP(フレーズ波形データPW)として選択する。なお、ステップSA10で自動伴奏データAAをロードした領域と自動伴奏データ生成処理のための作業領域が異なる場合は、このステップで選択した全伴奏パターンデータAP(フレーズ波形データPW)を当該作業領域にロードする。その後、ステップSA15で、タイマを起動して、ステップSA16に進む。
【0076】
ステップSA16では、自動伴奏の停止指示を検出したか否かを判断する。自動伴奏の停止指示は、例えば、ユーザが図1の設定操作子12を操作することにより行う。自動伴奏停止指示を検出した場合は、YESの矢印で示すステップSA17に進む。停止指示を検出しない場合は、NOの矢印で示すステップSA20に進む。なお、自動伴奏の停止はユーザによる演奏の終了を検出して自動的に行っても良い。
【0077】
ステップSA17では、タイマを停止し、ステップSA18では、フラグRUNを0に設定(RUN=0)に設定する。その後、ステップSA19で、自動伴奏データの生成処理を停止し、ステップSA20に進む。なお、自動伴奏の生成処理の停止は、停止指示を検出した後直ちに行っても良いが、再生中の伴奏パターンデータAP(フレーズ波形データPW)の最後もしくは区切れ目(音が途切れるところ、小節の境目等)まで自動伴奏を生成してから停止しても良い。
【0078】
ステップSA20では、フラグRUNが1に設定されているか否かを判断する。RUNが1の場合(RUN=1)の場合は、YESの矢印で示すステップSA21に進む。RUNが0の場合(RUN=0)の場合は、NOの矢印で示すステップSA3に戻る。
【0079】
ステップSA21では、自動伴奏データ生成処理を行う。自動伴奏データ生成処理は、設定された演奏テンポ及び入力されるコード情報等に従い、ステップSA10でロードした自動伴奏データAAに含まれるフレーズ波形データPWを選択、調整(ピッチチェンジ、タイムストレッチ)して、自動伴奏データを生成する処理である。なお、自動伴奏データ生成処理の詳細は図6のフローチャートを参照して後述する。自動伴奏データ生成処理終了後は、ステップSA3に戻る。
【0080】
図6は、図5のステップSA21で実行される自動伴奏データ生成処理を表すフローチャートである。なお、この例では、ルールA(ステップSB9〜SB12の処理)が選択されている場合は、演算により使用伴奏パターンデータを決定し、ルールB(ステップSB13〜SB16の処理)が選択されている場合は、図4に示すテーブルを参照して使用伴奏パターンデータを決定している。使用伴奏パターンデータの決定は、これに限らず、この例とは逆にルールAにおいて図3に示すテーブルを参照して決定し、ルールBにおいて演算で決定するようにしてもよい。また、ルールA及びルールBの双方において演算で決定しても良く、又は双方において図3又は図4のテーブルを参照して決定しても良い。
【0081】
ステップSB1で自動伴奏データ生成処理を開始し、ステップSB2では、コード情報の入力を検出(コード情報を取得)したか否かを判断する。コード情報の入力を検出した場合には、YESの矢印で示すステップSB3に進み、検出しない場合には、NOの矢印で示すステップSB17に進む。
【0082】
コード情報の入力を検出しない場合には、すでに何らかのコード情報に基づき自動伴奏生成中の場合と、有効なコード情報がない場合が含まれる。有効なコード情報がない場合には、コード情報を必要としない、例えば、リズムパートのみ伴奏データを生成するようにしても良い。あるいは、有効なコード情報が入力されるまで、ステップSB17に進まずに、ステップSB2の処理を繰り返すようにして、有効なコード情報が入力されるまで伴奏データの生成を待つようにしてもよい。
【0083】
なお、コード情報の入力は、ユーザの図1の演奏操作子22等を用いた演奏操作により入力される。ユーザの演奏からのコード情報の取得は、例えば、鍵盤等の演奏操作子22の一部の領域であるコード鍵域の押鍵組み合わせから検出してもよく(この場合は押鍵に対応する発音は行わない)、鍵盤の全鍵域における所定タイミング幅での押鍵状態から検出するようにしてもよい。その他、周知のコード検出技術を利用可能である。なお、コード情報の入力は、演奏操作子22を利用したものに限らず、設定操作子12を利用して行ってもよい。その場合、例えば、コード情報をコードルート(根音)を表す情報(文字や数字)とコードタイプを表す情報(文字や数字)の組み合わせで入力するようにしてもよく、使用可能なコード情報を記号や番号で入力するようにしてもよい。さらに、コード情報をユーザの入力によらずに、あらかじめ記憶しておいたコードシーケンス(コード進行情報)を所定のテンポで読みだして取得するようにしてもよく、再生中の曲データ等からコード検出を行い取得してもよい。
【0084】
ステップSB3では、「現在コード」に設定されているコード情報を「直前コード」にセットし、ステップSB2で検出(取得)したコード情報を「現在コード」にセットする。
【0085】
ステップSB4では、「現在コード」に設定されているコード情報と「直前コード」に設定されているコード情報とが同一であるか否かを判断する。同一である場合はYESの矢印で示すステップSB17に進み、同一でない場合は、NOの矢印で示すステップSB5に進む。なお、初回コード情報検出時もステップSB5に進む。
【0086】
ステップSB5では、ステップSA14で選択(又はロード)された伴奏パターンデータAPの内、「現在コード」に設定されているコード情報のコードルートと同じ音名を基準音高とする伴奏パターンデータAP(内のフレーズ波形データPW)を「現在の伴奏パターンデータ」にセットする。適合する伴奏パターンデータAP(内のフレーズ波形データPW)が複数ある場合(例えば、複数のコードタイプが用意されている場合)には、「現在コード」に設定されているコード情報のコードタイプに適合するものを「現在の伴奏パターンデータ」にセットする。なお、コード情報のコードタイプに適合するフレーズ波形データPWが用意されていない場合には、入力コード情報をフレーズ波形データPWが用意されているコードタイプに変換するようにしても良い。その場合には、なるべく同一の構成音を含むコードタイプに変換するための変換ルールを予め用意しておくことが好ましい。
【0087】
ステップSB6では、ステップSB5で「現在の伴奏パターンデータ」にセットされたフレーズ波形データPWを録音テンポ(基準テンポ)で再生した場合の(例えば、1サイクルあたりの)所要時間を算出して取得し、「基準所要時間」にセットする。
【0088】
ステップSB7では、テップSB5で「現在の伴奏パターンデータ」にセットされたフレーズ波形データPWを、図5のステップSA2で設定された演奏テンポ(再生テンポ)で再生した場合における(例えば、1サイクルあたりの)所要時間の、ステップSB6でセットした「基準所要時間」に対する比(%)を算出して取得し、「演奏所要時間(%)」にセットする。
【0089】
ステップSB8では、図5のステップSA2又はステップSA3等で設定された使用伴奏パターンデータ決定ルールが「ルールA」に設定されているか「ルールB」に設定されているかを判断する。使用伴奏パターンデータ決定ルールが「ルールA」である場合は、「A」の矢印で示すステップSB9に進み、使用伴奏パターンデータ決定ルールが「ルールB」である場合は、「B」の矢印で示すステップSB13に進む。
【0090】
ステップSB9では、テップSB5で「現在の伴奏パターンデータ」にセットされたフレーズ波形データPWを、図5のステップSA2で設定された演奏テンポ(再生テンポ)で再生した場合における「半音ずれ数」を検出する。例えば、「録音テンポ(100)」で録音されている基準音高が「C」のフレーズ波形データPWを「演奏テンポ(91)」で再生した場合には、演奏所要時間が約110%となり、「半音ずれ数」は「+2」となる。
【0091】
ステップSB10では、ステップSB5で「現在の伴奏パターンデータ」にセットされたフレーズ波形データPWの基準音高からステップSB9で取得した「半音ずれ数」分ずれた基準音高の伴奏パターンデータAP(フレーズ波形データPW)を、図5のステップSA14で選択(又はロード)された全伴奏パターンデータAPの中から探し出して、「使用伴奏パターンデータ」にセットする。なお、本実施例では、伴奏パターンデータAP(フレーズ波形データPW)として半音単位で12種類(1オクターブ分)用意されていることを前提としているが、1オクターブ内の一部の音名についてのみデータが用意されている場合は、「半音ずれ数」分ずれた基準音高に最も近い基準音高の伴奏パターンデータAP(フレーズ波形データPW)を「使用伴奏パターンデータ」にセットする。
【0092】
ステップSB11では、ステップSB10で「使用伴奏パターンデータ」にセットされた伴奏パターンデータAP(フレーズ波形データPW)の基準音高が、ステップSB5で「現在の伴奏パターンデータ」にセットされたフレーズ波形データPWの基準音高と同じ音高に聴こえる再生所要時間(読み出し速度)をステップSB6で取得した「基準所要時間」に対する比(%)で算出して取得し、「読み出し所要時間(%)」にセットする。
【0093】
ステップSB12では、ステップSB10で「使用伴奏パターンデータ」にセットされた伴奏パターンデータAP(フレーズ波形データPW)のタイマに合う位置のデータを、ステップSB11でセットした「読み出し所要時間(%)」になるように読み出し、ステップSB7でセットした「演奏所要時間(%)」に合うようにタイムストレッチ処理を行い、伴奏データを生成して出力する。その後、ステップSB18に進み自動伴奏データ生成処理を終了し、図5のステップSA3に戻る。
【0094】
なお、ステップSB9からステップSB12の処理の代わりに、図3のテーブルを参照して「使用伴奏パターンデータ」を決定して伴奏データを生成する場合は、ステップSB9及びステップSB11の処理の代わりに、ステップSB7で取得した「演奏所要時間(%)」に基づき、図3のテーブルから「半音ずれ数」及び「読み出し所要時間(%)」を取得し、該取得した「半音ずれ数」に基づきステップSB10の処理を行い「使用伴奏パターンデータ」を決定し、その後、ステップSB12の処理を行う。
【0095】
ステップSB13では、図4のテーブルを参照して、ステップSB7で取得した「演奏所要時間(%)」に該当する「参照演奏所要時間(%)」、「半音ずれ数」、「読み出し所要時間(%)」及び「調整時間(%)」を取得する。
【0096】
ステップSB14では、ステップSB5で「現在の伴奏パターンデータ」にセットされたフレーズ波形データPWの基準音高からステップSB13で検出した「半音ずれ数」分ずれた基準音高の伴奏パターンデータAP(フレーズ波形データPW)を、図5のステップSA14で選択(又はロード)された全伴奏パターンデータAPの中から探し出して、「使用伴奏パターンデータ」にセットする。なお、伴奏パターンデータAP(フレーズ波形データPW)として、1オクターブ内の一部の音名についてのみデータが用意されている場合は、上述のステップSB10と同様の処理を行う。
【0097】
ステップSB15では、ステップSB7で取得した「演奏所要時間(%)」とステップSB13で検出した「参照演奏所要時間(%)」の差分を「調整時間(%)」に反映させる。例えば、「演奏所要時間(109%)」で「参照演奏所要時間(112%)」である場合は、その差分である「3%」を「調整時間(106%)」に加算して「調整時間(109%)」とする(「演奏所要時間(%)」−「参照演奏所要時間(%)」+「調整時間(%)」の初期値)。
【0098】
ステップSB16では、ステップSB14で「使用伴奏パターンデータ」にセットされた伴奏パターンデータAP(フレーズ波形データPW)のタイマに合う位置のデータを、ステップSB13で検出した「読み出し所要時間(%)」になるように読み出し、ステップSB15で差分を反映した「調整時間(%)」に合うようにタイムストレッチ処理を行い、伴奏データを生成して出力する。その後、ステップSB18に進み自動伴奏データ生成処理を終了し、図5のステップSA3に戻る。
【0099】
ステップSB17では、ステップSB10又はステップSB14で決定された使用伴奏パターンデータのタイマに合う位置のデータを、使用伴奏パターンデータの演奏時間(時間軸上の長さ)が当該ステップSB11で取得した「読み出し所要時間(%)」又はステップSB13でテーブルを参照して検出した「読み出し所要時間(%)」になるように(「基準所要時間」×「読み出し所要時間(%)」)、読み出し速度を調整して読み出す。
【0100】
その後、図5のステップSA2又はSA3で使用伴奏パターンデータ決定ルールとしてルールAが選択されている場合は、当該読み出したデータをさらにステップSB7で取得した「演奏所要時間(%)」に合うように(処理後の時間軸上の長さが「基準所要時間」×「演奏所要時間(%)」となるように)タイムストレッチ処理を行い、伴奏データを生成して出力する。
【0101】
また、図5のステップSA2又はSA3で使用伴奏パターンデータ決定ルールとしてルールBが選択されている場合は、当該読み出したデータをさらにステップSB15で更新した「調整時間(%)」に合うように(処理後の時間軸上の長さが(「基準所要時間」×「読み出し所要時間(%)」)×「調整時間(%)」となるように)タイムストレッチ処理を行い、伴奏データを生成して出力する。
【0102】
なお、有効なコード情報が設定又は入力されていない場合には、例えば、リズムパート(例えば、図2に示すコード情報のないフレーズ波形データPWを記録した伴奏パターンデータAP2)のみをルールAもしくはルールBに基づき処理して出力する。
【0103】
なお、リズムパート等の伴奏パターンデータAP2は、コード情報で特定されるコードルートとは関係なく、ピッチチェンジ後(読み出し時間(%)で読み出した場合)の音高が、特定の音高(本来のリズム楽器の音高)となるデータが、読み出し時間(%)で読み出され、必要に応じてタイムストレッチ処理される。このようにするのは、一般的にリズムパートの音高はコードルートにかかわらず一定であるためである。
【0104】
その後、ステップSB18に進み自動伴奏データ生成処理を終了し、図5のステップSA3に戻る。
【0105】
以上、本発明の実施例によれば、入力されるコード情報に合致した自動伴奏データを生成する伴奏データ生成装置において、所定の基準(録音)テンポで演奏された伴奏に対応するフレーズ波形データを当該基準(録音)テンポとは異なる演奏(再生)テンポで再生する際に、入力されたコード情報のコードルートを基準音とするフレーズ波形データの代わりに、演奏(再生)テンポ又はそれに近い読み出し速度で再生した場合に基準音が入力されたコード情報のコードルートとなるフレーズ波形データを、当該演奏(再生)テンポ又はそれに近い読み出し速度で読み出す。
【0106】
演奏テンポで読み出すことにより、コード情報のコードルートと基準音が同一となる場合には、ピッチチェンジ処理のみによりテンポの変更を行い、タイムストレッチ処理が不要となり、タイムストレッチ処理における波形接続劣化をなくすことが可能となる。
【0107】
演奏テンポと同一ではなく、それに近い読み出し速度で読み出すことにより、コード情報のコードルートと基準音が同一となる場合には、ピッチチェンジ処理とタイムストレッチ処理を組み合わせてテンポの変更を行う。この場合には、タイムストレッチ処理が必要となるが、タイムストレッチ処理のみによりテンポの変更を行った場合に比べて、波形接続劣化を抑えることが可能となる。また、ピッチチェンジ処理とタイムストレッチ処理のバランスを調整することにより、タイムストレッチ処理による波形接続劣化とピッチチェンジ処理によるフォルマント劣化のバランスを調整することが可能となる。
【0108】
また、本発明の実施例によれば、伴奏パターンをフレーズ波形データで用意するため、高音質での自動伴奏が可能となる。また、MIDI音源では発音が困難な特殊な楽器や特殊な音階を利用した伴奏も自動で行うことが可能となる。
【0109】
なお、上述の実施例では、図3及び図4のテーブルに示すように、再生時間の比により、フレーズ波形データの録音テンポと再生テンポの違いを表したが、演奏速度(再生速度)の比により録音テンポと再生テンポの違いを表すようにしても良い。
【0110】
例えば、図3における演奏所要時間(%)及び読み出し所要時間(%)を、図7に示すように、それぞれ演奏速度(%)及び読み出し速度(%)で表すようにしても良い。この場合、演奏速度(%)は再生テンポ(による再生速度)の録音テンポ(による再生速度)に対する比(再生テンポ/録音テンポ)であり、読み出し速度(%)は、半音の比から算出して取得されるものであり、例えば、録音テンポに対して106%の再生テンポでフレーズ波形データPWを読み出すと、フレーズ波形データPWの音高は1半音高く聴こえ、94%の再生テンポでフレーズ波形データPWを読み出すと、1半音低く聴こえる。
【0111】
読み出し速度(%)は、使用伴奏パターンデータとして選択されたフレーズ波形データPWを読み出す速度を規定した基準所要時間に対する比率であり、ピッチチェンジ量を規定する。また、このように速度の比で表す場合には、半音ずれ数は、図3に示すテーブルとは読み出し速度「100%」を基準に逆になる。すなわち、読み出し速度(%)が「100」より上に行くに従い、基準音高がより低音のフレーズ波形データPWが選択され、読み出し速度(%)が「100」より下に行くに従い、基準音高がより高音のフレーズ波形データPWが選択される。
【0112】
また、図6に示す処理では、演奏所要時間(%)及び読み出し所要時間(%)をそれぞれ演奏速度(%)及び読み出し速度(%)に読み替えて、図7を参照することにより同一の効果を得ることが可能となる。なお、基準所要時間は録音テンポに読み替えることができる。
【0113】
また、図4のテーブルも同様に、図8に示すように演奏速度の比により録音テンポと再生テンポの違いを表すことができる。例えば、図4における演奏所要時間(%)、参照所要時間(%)、読み出し所要時間(%)、調整時間(%)を、図8に示すように、それぞれ演奏速度(%)、参照速度(%)、読み出し速度(%)及び調整速度(%)で表すことができる。
【0114】
演奏速度(%)は、図7と同様に再生テンポの録音テンポに対する比(再生テンポ/録音テンポ)である。参照演奏速度(%)は、演奏速度(%)の一定範囲ごとに、半音単位の音高に対応するものである。
【0115】
読み出し速度(%)は、半音ずれ数に基づいて選択されたフレーズ波形データPWの基準音高をコード情報のコードルートと同一音高にピッチチェンジすることのできる読み出し速度を規定した録音テンポに対する比率である。
【0116】
調整速度(%)は、選択されたフレーズ波形データPWを読み出し速度(%)で読み出した後に、当該読み出したフレーズ波形データPWの時間軸上の長さをもともとの録音テンポで演奏した場合の演奏所要時間に適合するように、調整するための値である。
【0117】
なお、この図8に示す例でも、半音ずれ数は、図4に示すテーブルとは読み出し速度「100%」を基準に逆になる。すなわち、読み出し速度(%)が「100」より上に行くに従い、基準音高がより低音のフレーズ波形データPWが選択され、読み出し速度(%)が「100」より下に行くに従い、基準音高がより高音のフレーズ波形データPWが選択される。
【0118】
また、図6に示す処理では、演奏所要時間(%)、参照所要時間(%)、読み出し所要時間(%)、調整時間(%)をそれぞれ演奏速度(%)、参照速度(%)、読み出し速度(%)及び調整速度(%)に読み替えて、図8を参照することにより同一の効果を得ることが可能となる。なお、基準所要時間は録音テンポに読み替えることができる。
【0119】
なお、上述の実施例では、「半音ずれ数」を用いて、音高差を表現したが、代わりに度数(音程)により音高差等を表現しても良い。また、周波数の比率等により表すようにしても良い。
【0120】
なお、上述の実施例では、自動伴奏データ生成処理における波形データ選択に用いるテーブルとして、ルールAとルールBのそれぞれに1種類ずつ例示したが、各ルールにつき複数種類のテーブルを用意して、ユーザが選択できるようにしても良い。
【0121】
また、上述の実施例では、フレーズ波形データPWを用意する各パートについて12音全ての基準音に対応したフレーズ波形データPWを用意したが、例えば、「C」、「E」、「G♯」の3種類などのいくつかの基準音についてのみ用意するようにしても良い。その場合は、「半音ずれ数」が最も近い基準音に対応したデータを使用伴奏パターンデータとして選択し、タイムストレッチ量を調整することにより、演奏テンポにあわせたものとする。
【0122】
なお、本発明の実施例は、電子楽器の形態に限らず実施例に対応するコンピュータプログラム等をインストールした市販のコンピュータ等によって、実施させるようにしてもよい。
【0123】
その場合には、各実施例に対応するコンピュータプログラム等を、CD−ROM等のコンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザに提供してもよい。また、そのコンピュータ等が、LAN、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をユーザに提供してもよい。
【0124】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。以下に、本発明の実施例に変形例を示す。
【符号の説明】
【0125】
6…バス、7…RAM、8…ROM、9…CPU、10…タイマ、11…検出回路、12…設定操作子、13…表示回路、14…ディスプレイ、15…外部記憶装置、18…波形メモリ音源、19…サウンドシステム、20…DAC、21…通信I/F、22…演奏操作子、100…伴奏データ生成装置

【特許請求の範囲】
【請求項1】
再生テンポを取得する再生テンポ取得手段と、
それぞれが1つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段と、
第1の基準音を取得する第1の基準音取得手段と、
前記第1の基準音と音高が異なる第2の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手段と、
前記第2の基準音と前記第1の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手段と
を有する伴奏データ生成装置。
【請求項2】
さらに、前記第1の基準音に対応したフレーズ波形データを、前記再生テンポで再生した場合の前記第1の基準音との音高差を元に、音程もしくは半音ずれ数を取得する音程取得手段を有し、
前記第2の基準音は、前記第1の基準音と前記取得した音程もしくは半音ずれ数分音高が異なる請求項1記載の伴奏データ生成装置。
【請求項3】
さらに、前記選択したフレーズ波形データを読み出す際に、タイムストレッチ処理を組み合わせて行うことにより、前記第2の基準音と前記第1の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように調整する調整手段を有する請求項1又は2記載の伴奏データ生成装置。
【請求項4】
前記読み出し手段は、前記選択したフレーズ波形データを、前記所定の録音テンポにより再生した場合の再生時間と、前記再生テンポで再生した場合の再生時間との比に基づき、前記第2の基準音が前記第1の基準音と同一音高となるように、前記選択したフレーズ波形データを読み出す請求項1〜3のいずれか1項に記載の伴奏データ生成装置。
【請求項5】
前記読み出し手段は、前記所定の録音テンポによる再生速度と、前記再生テンポによる再生速度との比に基づき、前記第2の基準音が前記第1の基準音と同一音高となるように、前記選択したフレーズ波形データを読み出す請求項1〜3のいずれか1項に記載の伴奏データ生成装置。
【請求項6】
それぞれが1つの基準音に対応した伴奏フレーズの所定の録音テンポによる演奏を波形データとして記録するフレーズ波形データを、複数の異なる基準音に対応させて複数記憶する記憶手段から所望のフレーズ波形データを取得可能なコンピュータに実行させるためのプログラムであって、
再生テンポを取得する再生テンポ取得手順と、
第1の基準音を取得する第1の基準音取得手順と、
前記第1の基準音と音高が異なる第2の基準音に対応したフレーズ波形データを選択するフレーズ波形データ選択手順と、
前記第2の基準音と前記第1の基準音とが同一音高となり、且つ、前記再生テンポでの演奏となるように、前記選択したフレーズ波形データを読み出す読み出し手順と
を前記コンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate