(57)【特許請求の範囲】
【請求項１】
オーディオデータを読み込むオーディオデータ読み込み手段と、
前記オーディオデータ読み込み手段で読み込んだオーディオデータを再生するオーディオデータ再生手段と、
前記オーディオデータからアクセントポイントを抽出し、その抽出したアクセントポイントからビート位置の候補を割り出すビート位置候補検出手段と、
前記オーディオデータ再生手段によってオーディオデータを再生しているときに、ユーザの動作からオーディオデータに対する時間的なタイミング位置の入力を受け付けるタイミング入力手段と、
第１のモードと第２のモードのいずれが設定されているかを検出するモード検出手段と、
前記タイミング入力手段で受け付けたタイミング位置あるいは前記候補をもとにビート位置を特定するビート位置特定手段と、
を備え、
前記第１のモードが検出されたときには、前記ビート位置特定手段は、前記タイミング入力手段で受け付けたタイミング位置をビート位置として特定するとともに、
前記第２のモードが検出されたときには、前記ビート位置特定手段は、前記タイミング入力手段の入力状態をもとに決定した区間に、前記ビート位置の候補が見つかればその候補をビート位置として特定し、前記ビート位置の候補が見つからなければビート位置を特定しないことを特徴とするビート位置検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲等のオーディオデータのテンポ等を決定するために、オーディオデータのビート位置を決定するビート位置検出装置に関する。
【背景技術】
【０００２】
従来、入力した楽音信号から各構成音の発音時刻とその出力レベルとを検出して発音時系列信号を求め、その自己相関関数を算出し、自己相関出力のピーク部分の位置と出力レベルのパターンに基づいてビート構造を解析し、音楽信号のテンポを算出するものがある（特許文献１）。
【０００３】
また、ＣＤ等のオーディオデータを再生する音楽再生装置において、処理区間の音楽を再生する一方、表示部に処理区間のオーディオ信号波形を表示し、再生音楽を聴きながらタッピング等によりリアルタイムで拍位置（ビート位置）を入力し、入力に係る拍位置毎に拍時刻をオーディオデータに基づいて決定して再生制御情報として記憶するものがある（特許文献２）。
【特許文献１】特開２００２−１１６７５４号公報
【特許文献２】特開２００４−０５４１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記特許文献１のような従来の技術では、楽曲の瞬間レベルを解析し、アクセントとなるポイントを検出、そのアクセントポイントからビート位置を割り出し、曲のテンポを検出するので、テンポを倍で取ってしまったり、半分に取ってしまうことがある。例えば８ビート（beat）を１６ビートとして認識してしまう等の問題がある。また、シンコペーションを多用した曲の場合、０．７５倍、１．５倍、１．７５倍で取ってしまったり、３連系の曲では０．６倍、１．３倍などでテンポを検出してしまうことがある。さらに、一般的な曲は、テンポが約８０〜１４０くらいに収まるため、その範囲を超えるテンポを持つ曲は、特に検出精度が悪いという問題がある。
【０００５】
本発明は、上記の問題点に鑑みてなされたものであり、オーディオデータのビート位置を誤認識することなく、オーディオデータのビート位置を精度良く検出することを課題とする。
【課題を解決するための手段】
【０００６】
請求項１のビート位置検出装置は、オーディオデータを読み込むオーディオデータ読み込み手段と、前記オーディオデータ読み込み手段で読み込んだオーディオデータを再生するオーディオデータ再生手段と、前記オーディオデータからアクセントポイントを抽出し、その抽出したアクセントポイントからビート位置の候補を割り出すビート位置候補検出手段と、前記オーディオデータ再生手段によってオーディオデータを再生しているときに、ユーザの動作からオーディオデータに対する時間的なタイミング位置の入力を受け付けるタイミング入力手段と、第１のモードと第２のモードのいずれが設定されているかを検出するモード検出手段と、前記タイミング入力手段で受け付けたタイミング位置あるいは前記候補をもとにビート位置を特定するビート位置特定手段と、を備え、前記第１のモードが検出されたときには、前記ビート位置特定手段は、前記タイミング入力手段で受け付けたタイミング位置をビート位置として特定するとともに、前記第２のモードが検出されたときには、前記ビート位置特定手段は、前記タイミング入力手段の入力状態をもとに決定した区間に、前記ビート位置の候補が見つかればその候補をビート位置として特定し、前記ビート位置の候補が見つからなければビート位置を特定しないことを特徴とする。
【０００７】
なお、上記オーディオデータからアクセントポイントを抽出してビート位置の候補を割り出す方法、後述の実施形態におけるオーディオデータの解析処理でビート位置の候補を割り出す方法としては、例えば前記特許文献１のような公知の技術を適用することができる。
【０００８】
好適な例Ａとして、請求項１に記載のビート位置検出装置であって、前記ビート位置特定手段で特定したビート位置の情報を前記オーディオデータの対応するタイミング位置に関連付けて記憶することを特徴とするビート位置検出装置でもよい。この場合、オーディオデータのタイミング位置に対応するビート位置の情報を備えた曲データが得られる。
【０００９】
好適な例Ｂとして、請求項１に記載のビート位置検出装置であって、タイミング入力手段で入力したタイミング位置の時間間隔をもとに、タイミング入力手段でタイミング位置を入力したオーディオデータの区間外（後ろ区間  または前区間）についても、ビート位置の特定を行なうものであることを特徴とするビート位置検出装置でもよい。この場合、タップ入力を行うオーディオデータの位置（範囲）を限定できるため、短時間で解析処理が終わる。
【００１０】
好適な例Ｃとして、請求項１に記載のビート位置検出装置であって、更にタイミング入力手段でタイミング位置を入力する際に、オーディオデータから既に仮決めしたビート位置により入力タイミングをユーザに報知する機能を有することを特徴とするビート位置検出装置でもよい。この場合、ユーザがタイミング位置の目安を知ることができるので入力し易くなる。この報知する機能はクリック音を出力するものでもよいし、ＬＥＤ等の表示を点滅するものでもよい。
【００１１】
好適な例Ｄとして、請求項１に記載のビート位置検出装置であって、タイミング入力手段でタイミング位置を入力した際に、オーディオデータから予め仮決めしたビート位置のデータを増減させる（位置を後ろまたは前にする）ものであることを特徴とするビート位置検出装置でもよい。
【００１２】
この場合、第１に、タイミング入力手段で入力したタイミング位置の前後の一定範囲内に仮決めしたビート位置がなければ、ユーザが入力したタイミング位置をビート位置として特定してもよい。
【００１３】
または、第２に、タイミング入力手段で入力したタイミング位置の前後の一定範囲内において、前記ビート位置検出手段でオーディオデータの解析を行い、その解析結果の中で入力されたタイミング位置にもっとも相応しい（近い）位置をビート位置として特定してもよい。
【００１４】
好適な例Ｅとして、好適な例Ｂのビート位置検出装置であって、前記区間外のビート位置を決定する際に、前記タイミング入力手段で入力したタイミング位置の時間間隔のずれ量を他の決定状況に合わせて調整するものであることを特徴とするビート位置検出装置でもよい。この場合、ユーザが入力したビート位置の間隔が少ないと、タイミング入力手段でタイミング位置を入力した区間から離れるにしたがって、ビート位置のズレ量が拡大してしまうため、ズレ方向がわかれば、その方向にズレ量を補正することができる。
【００１５】
好適な例Ｆとして、好適な例Ｂのビート位置検出装置であって、前記区間外のビート位置を解析して特定する際に、想定される区間に前記アクセントポイントのビート位置の候補が見つからなかった場合は、その時点で前記ビート位置特定手段の処理を終了するものであることを特徴とするビート位置検出装置でもよい。この場合、このビート位置の候補が見つからなかった想定される区間から、曲（オーディオデータ）の曲のテンポ（ＢＰＭ）が変わっていることが考えられるため、見つけられないことをユーザに報知するものでもよい。また、ユーザにタイミング入力手段によるタイミング位置の入力（タップ入力等）を促すようにするものでもよい。これにより、曲のテンポが変わる部分だけタップ入力等でタイミング位置を入力して、その部分の精度を上げることができる。
【００１６】
好適な例Ｇとして、前記各ビート位置検出装置であって、タイミング入力手段が、ユーザがスイッチを押す装置、または、ユーザが振動を与える装置、または、ユーザが打撃を与える装置であり、このスイッチを押すこと、または振動が与えられること、または打撃が与えられることでタイミング位置を入力するものであることを特徴とするビート位置検出装置でもよい。
【００１７】
好適な例Ｈとして、前記各ビート位置検出装置であって、前記ビート位置決定手段で決定したビート位置に基づいて前記再生したオーディオデータのテンポ値を算出し、該オーディオデータの区間に関連付けて記憶することを特徴とするビート位置検出装置でもよい。
【発明の効果】
【００１８】
請求項１のビート位置検出装置によれば、再生される楽曲（オーディオデータ）をユーザが聴き、そのビート位置をタップ入力等のタイミング入力手段で入力し、この入力されるビート位置を加味してオーディオデータにおけるビート位置を特定するので、ビート位置を精度良く決定することができる。また、このビート位置からテンポを決定すれば、テンポ値を倍、半分、0.6倍、1.5倍等のように大きく誤認識することがなく、精度良くテンポを決定することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の一実施形態について説明する。図１は本発明の実施形態のビート位置検出装置を適用した電子音楽装置のハード構成ブロック図であり、この実施形態の電子音楽装置はパッドスイッチ等のタップ操作子６を備えた例えばシーケンサ等である。ＣＰＵ１はＲＯＭ２に格納されている制御プログラムに基づいてＲＡＭ３のワーキングエリアを使用して装置全体の制御を行う。タイマ４は、後述のオーディオデータと共に再生する演奏データ（ＭＩＤＩデータ）に基づいてクリック音の発音タイミングを規定するクロック信号を発生する回路である。
【００２０】
タップ操作子６は、タッピング操作（タップ入力）を検出するセンサを備えており、このタップ操作子６における検出信号は操作インターフェース５により検出される。そして、ＣＰＵ１はタップ操作子６におけるタップ入力を検出してクリック音の発音制御とビート位置を特定する処理を行う。
【００２１】
また、パネル操作子７は各種スイッチ等であり、このパネル操作子７の操作は操作インターフェース５により検出され、ＣＰＵ１は、パネル操作子（スイッチ等）７の操作イベントに応じた処理を行う。さらに、ＣＰＵ１は液晶パネル等の表示器８の表示の制御を行う。この表示器８には本体の各種の設定情報が表示され、パネル操作子７によりユーザが電子音楽装置の各種機能を選択設定する際の支援ガイドを行う。例えば、後述の各種モードを選択設定するための表示を行う。また、表示器８にオーディオデータの波形を表示するとともに検出されたビート位置を表示し、そのビート位置の変更等を行うこともできる。また、オーディオデータの検出したテンポ値（ＢＰＭ）を表示する。
【００２２】
なお、「ビート位置」、「タップ位置」、「現在の位置」のように、「位置」の用語は、オーディオデータあるいは演奏データの再生開始からの経過時刻に対応する時間的なタイミングを意味する。また、ビート間の間隔のように「間隔」の用語は時間間隔を意味する。
【００２３】
音源９は、タップ操作子６に対するタップ入力に対応するクリック音や、演奏データのビート信号トラックに記録されたビート信号に基づくクリック音等の楽音信号を生成し、サウンドシステム１０でそれらの音を発音する。
【００２４】
記憶装置１１には、オーディオデータとこのオーディオデータに対応する演奏データ（ＭＩＤＩデータ）からなる曲データが格納されており、ＣＰＵ１はこの記憶装置１１の選択された曲データのオーディオデータを音源９に出力してオーディオ音（楽音）を再生する。図２は実施形態における曲データの例を概念的に示す図であり、曲データはオーディオ信号トラック、ビート信号トラック及び図示しない複数の演奏トラックで構成されている。オーディオデータは、楽音信号の振幅値を量子化した時系列な波形データと各波形データの時間データとで構成されており、オーディオ信号トラックに記録されている。ビート信号トラックは、オーディオデータにおけるビート位置に対応する時間データと共にビート信号を記録するものである。
【００２５】
インターフェース１２は、当該電子音楽装置と外部の演奏機器１３との間でデータの授受を行うものであり、曲データを外部の演奏機器１３から読み込んだり、この電子音楽装置でビート位置を記録した曲データを外部の演奏機器１３に出力するようにしてもよい。また、実施形態ではタップ操作子６によりタップ入力を行うが、他の例として外部の演奏機器１３として例えばパッド装置や鍵盤楽器等を接続し、この外部のパッドの操作あるいは外部の鍵盤操作等によりタップ入力することもできる。
【００２６】
ＣＰＵ１は記憶装置１１の選択された曲データによりオーディオ音を出力する。また、ＣＰＵ１は、後述の各モードに応じて、オーディオ音の再生と共にタップ操作子６から入力されるタップ入力と、オーディオデータの解析により、ビート位置（ビート信号の時間データ）を検出し、そのビート位置のデータをＲＡＭ３の予め決められた記憶領域に記憶する。そして、ユーザの指定により、ＲＡＭ３のビート位置のデータにより、その選択された曲データのビート信号トラックに、オーディオデータに対応してビート信号を記録する。
【００２７】
図３は、再生されるオーディオ信号、タップ操作子６からのタップ入力及び検出されるビート信号の関係を示す図であり、横方向が時間軸である。ａ．の欄はオーディオ信号であり、ｂ．の欄はタップ入力と解析区間を示している。オーディオ信号は表示器８の表示例も示しており、波形データの形式で表示される。そして、その波形データ上に検出されたビート位置が縦のタイミング線Ｌ１，Ｌ２，Ｌ３，…で表示される。この例では、タイミング線Ｌ１，Ｌ２，Ｌ３，…Ｌ９は、オーディオデータの自動解析のみで検出した例であり、細かな間隔で検出されている。また、縦のバーＢ１，Ｂ２，Ｂ３，Ｂ４は、タップ入力に対応する表示、及びタップ入力によるビート位置を示している。
【００２８】
ｂ．の欄の縦の矢印はタップ入力位置であり、一点鎖線の間隔Ｄは、そのタップ入力位置に対応してオーディオデータ（波形データ）を解析する区間（ビート位置に近い区間）を示す。すなわち、タップ入力があると、その位置に近い区間Ｄ内でオーディオデータを解析し、ビート位置の候補を求める。なお、このオーディオデータの解析は、前述のように、オーディオデータの瞬間レベルを解析し、アクセントとなるポイント、すなわちアクセントポイントを抽出し、それをビート位置の候補とする。
【００２９】
タイミング線Ｌ７とＬ８の間は曲のテンポが変化した部分であり、この部分までのタップ入力によるビート位置Ｂ１，Ｂ２，Ｂ３からビート位置Ｐを予測して自動解析を行う。この場合には、この予測したビート位置Ｐに近い区間Ｄ内においては自動解析によってもビート位置の候補が検出されないことがある。そこで、この予測したビート位置Ｐでビート位置の候補が検出されないことで、ユーザに対してテンポ変化を報知する。
【００３０】
次に、フローチャートに基づいて実施形態の動作について説明する。図４はメイン処理の要部フローチャート、図５は操作受付処理のフローチャート、図６は再生処理のフローチャート、図７はビート位置決定処理のフローチャート、図８はモードＢ処理のフローチャート、図９はモードＤ処理のフローチャートである。
【００３１】
以下の説明及びフローチャートからわかるように、各フローチャートで示すプログラムとこのプログラムをＣＰＵ１に実行させて得られる機能が、請求項等における「オーディオデータ読み込み手段」、「オーディオデータ再生手段」、「ビート位置候補検出手段」、「タイミング入力手段」、「ビート位置特定手段」の一部に対応している。なお、以下の説明及びフローチャートにおいて、制御に用いられる各種フラグはＲＡＭ３に設定されている。
【００３２】
図４の「メイン処理」は、当該電子音楽装置の電源の投入により開始され、まず、ステップＳ１でフラグやレジスタのリセット等の初期化処理を行い、ステップＳ２の操作受付処理（図５）とステップＳ３の再生処理（図６）を、電源が投入されている間繰り返す。
【００３３】
図５の操作受付処理（図４のＳ２）では、ステップＳ１１で、タップ操作子６またはパネル操作子７における入力操作の有無を判定し、入力操作がなければ元のルーチンに復帰し、入力操作があればステップＳ１２，Ｓ２５，Ｓ３４で入力操作の種類を判定しててその入力操作に応じた処理を行う。
【００３４】
ステップＳ１２で曲データの設定に関する操作であれば、ステップＳ１３〜Ｓ２４で曲データの再生／停止や曲データの特定位置、曲データの変更、その他処理を行い、元のルーチンに復帰する。ステップＳ１３で再生開始指示であれば再生フラグを立て（Ｓ１４）、ステップＳ１５で停止指示であれば再生フラグを下ろす（Ｓ１６）。また、ステップＳ１７で位置変更指示であれば曲データの再生位置／終了位置の変更を示す位置変更フラグを立て（Ｓ１８）、ステップＳ１９で特定位置指定であれば、特定位置を示す特定位置フラグを立てる（Ｓ２０）。また、ステップＳ２１で曲変更指示であれば、曲目を表示して曲の選択を受付けるとともに、選択された曲の曲データを読み出して設定する（Ｓ２２，Ｓ２３）。そして、ステップＳ２４でその他の処理を行う。
【００３５】
ステップＳ２５で、ビート位置の抽出機能（各種モード）の設定に関する設定であれば、ステップＳ２６で抽出モードの選択と実行指示を受付ける。そして、ステップＳ２７でＡモードの実行指示であればモードにＡフラグを立て（Ｓ２８）、ステップＳ２９でＢモードの実行指示であればモードにＢフラグを立て（Ｓ３０）、ステップＳ３１でＣモードの実行指示であればモードにＣフラグを立てる（Ｓ３２）。そして、Ａ〜Ｃモードの実行指示でなければ、ステップＳ３３でＤモード処理（図９）を実行して元のルーチンに復帰する。
【００３６】
ステップＳ３４でタップ操作子６によるタップ入力であれば、ステップＳ３５でタップフラグを立てて元のルーチンに復帰し、タップ入力でもなければステップＳ３６でその他の指示を実行して元のルーチンに復帰する。
【００３７】
図６の再生処理（図４のＳ３）では、ステップＳ４１で再生フラグが立っているかを判定し、再生フラグが立っていなければ、ステップＳ５１進み、再生フラグが立っていればステップＳ４２〜Ｓ５０で再生処理を行う。ステップＳ４２で区間が終了していればステップＳ４３で再生フラグを下ろしてステップＳ５１に進む。区間が終了していなければ、ステップＳ４４で曲データを読み出し、ステップＳ４５で現タイミングにおける曲データの発音処理（オーディオデータの再生開始（または続行）とその他トラックの再生）を行う。次に、ステップＳ４６，Ｓ４７でクリックの報知モードでかつビート信号トラックの現タイミングにビート信号が有れば、ステップＳ４８でクリック音を発音してステップＳ４９に進む。報知モードでないか現タイミングにビート信号がなけれはそのままステップＳ４９に進む。そして、ステップＳ４９でビート位置抽出モードでなければステップＳ５１に進み、ビート位置抽出モードであれば、ステップＳ５０でビート位置決定処理（図７）を行ってステップＳ５１に進む。
【００３８】
ステップＳ５１〜Ｓ５５は、曲データの再生区間等の区間の指定に関する処理であり、位置変更指示フラグが立っていれば、曲データの位置を動かして位置変更指示フラグを下ろす（Ｓ５２，Ｓ５３）。また、区間設定指示があれば現在位置を区間位置として設定する（Ｓ５５）。
【００３９】
図７のビート位置決定処理（図６のＳ５０）では、ステップＳ６１，Ｓ６６でＡモードであるかＢモードであるかＣモードであるかを判定する。Ａモードの場合はＳ６２〜Ｓ６５でユーザのタップ入力のみによるビート位置の検出を行う。すなわち、ステップＳ６２でタップフラグがあるかを判定する。タップフラグがあれば、すなわち、直近にタップ入力があって図５のステップＳ３５でタップフラグが立てられていれば、ステップＳ６３で再生中の位置に合わせて入力されるタップ位置をビート位置としてＲＡＭ３に記録し、ユーザに入力を受付けたことを報知するためにクリック音を発音し（Ｓ６４）、タップフラグを下ろして（Ｓ６５）元のルーチンに復帰する。なお、このＡモードは付加的な機能である。
【００４０】
ステップＳ６６でＢモードの場合は、ステップＳ６７でＢモード処理（図８）を行って元のルーチンに復帰する。このＢモードは、後述のように、タップ入力の位置を利用しつつ自動解析によりビート位置を特定していくものである。
【００４１】
ＡモードでもＢモードでもなければＣモードでるので、ステップＳ６８〜Ｓ７２で全自動でビート位置の検出を行う。すなわち、ステップＳ６８でタップフラグがあれば、クリック音を発音するとともにタップフラグを下ろして（Ｓ６９，Ｓ７０）、ステップＳ７１で再生部分の解析処理を行ってビート位置を特定し、ステップＳ７２で、特定したビート位置をＲＡＭ３に記録し、元のルーチンに復帰する。なお、このＣモードも付加的な機能である。
【００４２】
図８のＢモード処理（図７のＳ６７）では、ステップＳ８１で、現在、再生している曲データにおいて、現在よりも前の過去区間で、タップ入力を基として特定した２つ以上のビート位置が有るかを判定する。なお、この特定したビート位置とは、ユーザのタップ入力のタイミングで特定したもの、およびユーザのタップ入力のタイミングを基に自動検出したものから特定したものなどである。そして、２つ以上あれば、そのビート位置をベースとして新たなビート位置を検出するのでステップＳ８２に進む。２つ以上なければ、現タイミングをベースとするためにそのままステップＳ８４に進む。
【００４３】
ステップＳ８２では、２つ以上あったビート位置に基づいて仮のビート位置（仮ビート位置）を予測する。この予測の仕方としては、は過去の特定したビート位置のタイミングの間隔を算出し、最後のビート位置からその間隔だけ離れた位置を仮ビート位置とするものとしてもよい。次に、ステップＳ８３で、現在のタイミングが予測した仮ビート位置に近い区間内（図３の区間Ｄ）であるかを判定し、区間内でなければステップＳ９５に進み解析処理は行わず、区間内であればステップＳ８４以降で解析処理を行う。
【００４４】
ステップＳ８４では、仮ビート位置に近い区間または現タイミングに近い区間内で解析処理を行う。次に、ステップＳ８５で、タップフラグがあるかを判定し、タップフラグがあれば、ステップＳ８６で、上記解析処理で抽出した候補の中で、タップ位置に相当するものを特定する（チェックする）処理を行う。そして、ステップＳ８７，Ｓ８８でクリック音を発音するとともにタップフラグを下ろし、ステップＳ８９で、ビート位置が特定できたか否かを判定する。特定できていれば、ステップＳ９０で、特定したビート位置をＲＡＭ３に記録し、元のルーチンに復帰する。なお、ステップＳ８６の処理でビート位置を特定できなければ、ステップＳ８９からステップＳ９１に進み、再生中の位置に合わせたユーザのタップ位置をビート位置としてＲＡＭ３に記録する。
【００４５】
ステップＳ８４の解析処理後、ステップＳ８５でタップフラグがなければテンポ変化部分であるかを判定する。すなわち、ステップＳ８３で、解析処理において、予測した仮ビート位置に近い区間または現タイミングに近い区間にビート位置の候補が見つからなかったかを判定する。この判定で、候補が見つかっていなければ、ステップＳ９２で再生フラグを下ろして再生を停止し、ステップＳ９３でテンポ変化部分であることを報知して元のルーチンに復帰する。一方、タップ入力がなくて候補が見つかっていれば、ステップＳ９４で、解析処理で抽出した候補のなかから最適なものをビート位置として特定し、ステップＳ９０でＲＡＭ３に記録する。
【００４６】
なお、ステップＳ８３で現在のタイミングが仮ビート位置に近い区間になければ、ステップＳ９５でタップフラグがあるかを判定し、タップフラグがなければそのまま元のルーチンに復帰し、タップフラグがあればステップＳ８７に進んで前記同様の処理を行う。このフローは、解析処理を行わずにタップ位置そのものをビート位置とする処理である。
【００４７】
図９のＤモード処理（図５のＳ３３）は、曲データの一部の区間に、すでにタップ入力によりビート位置を記録し、その後でその区間の前の区間、後の区間あるいは前後の区間に対して自動的にビート位置を記録する処理である。例えば、一部の区間に対して前記Ｂモード処理を実行し、その後、前区間、後区間、あるいは前後区間を指定してＤモードを選択すると実行される。
【００４８】
まず、ステップＳ１０１で一部の区間でビート位置の特定が済んでいるかを判定し、済んでいなければステップＳ１０２で報知して元のルーチンに復帰する。一部の区間でビート位置の特定が済んでいれば、ステップＳ１０３で特定済みの区間のビート位置の間隔（例えば平均値）を算出する。次に、ステップＳ１０４で前区間が指定されていればステップＳ１０５で前区間のオーディオデータの解析処理を行う。ステップＳ０１６で後区間が指定されていればステップＳ１０７で後区間のオーディオデータの解析処理を行う。前区間でも後区間でもなければ前後区間であるので、ステップＳ１０８で前後区間のオーディオデータの解析処理を行う。
【００４９】
次に、ステップＳ１０９で、算出したビート位置の間隔から、指定された区間（前、後、前後）について仮ビート位置を割り出し、ステップＳ１１０で、解析結果のビート位置の候補を基準にして仮ビート位置のズレ量を補正する。すなわち、ユーザによるタップ入力では、算出した間隔と実際の曲のビート位置の間隔とにズレ量（誤差）が生じることがあるが、算出した間隔を順次加算するだけでは、特定済みの区間から前後に離れるほどズレ量が累積して実際のビート位置から外れていく可能性がある。一方、オーディオデータの解析により実際のビート位置の近辺に候補が固まって検出されるので、この候補を基準にして仮ビート位置を補正する。
【００５０】
次に、ステップＳ１１１で、解析結果の候補の中から補正した仮ビート位置に相当するものを特定する処理を行う。そして、ステップＳ１１２で、指定された区間における補正した仮ビート位置の全てに対してビート位置が特定できたかを判定する。全てに対して特定できれば、ステップＳ１１３で、全ての特定したビート位置をＲＡＭ３に記録して元のルーチンに復帰する。仮ビート位置の一つでも特定できない場合は、その特定できない仮ビート位置でテンポが変化している可能性があるので、ステップＳ１１４でテンポ変化部分であることを報知し、ステップＳ１１５で、特定済みの区間からそのテンポ変化位置の一つ前までの特定したビート位置をＲＡＭ３に記録し、元のルーチンに復帰する。
【００５１】
このように、一部の区間に対してタップ入力してビート位置を記録し、Ｄモードを選択すると、残りの区間もタップ入力の結果に基づいて自動的にビート位置が記録されるので、ユーザの手間を省くことができる。また、テンポ変化があった場合には、そこまでビート位置が記録される。この場合は、そのテンポ変化部分から前の区間でタップ入力するか、そのテンポ変化部分から後区間に向かって適宜タップ入力すればよい。
【００５２】
以上のように、ユーザによるタップ入力の結果を加味して自動解析による解析結果からビート位置を記録するので、ビート位置を精度良く決定することができる。また、このビート位置からテンポを決定すれば、テンポ値を倍、半分、０．６倍、１．５倍等のように大きく誤認識することがなく、精度良くテンポを決定することができる。
【００５３】
以上の実施形態ではＡモード、Ｂモード、Ｃモード及びＤモードの処理を選択できるようにしているが、専らＢモードのみを実行するものでもよい。
【００５４】
なお、実施形態ではタップ操作子でタップ入力するようにしているが、スイッチ操作をするような装置、ユーザが振動を与えるような装置、ユーザが打撃を与えるパッド等の装置であってもよい。
【００５５】
また、特定したビート位置に基づいて、オーディオデータのテンポ値を算出し、そのオーディオデータの区間に関連付けてテンポ値を記憶するようにしてもよい。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態のビート位置検出装置を適用した電子音楽装置のハード構成ブロック図である。
【図２】実施形態における曲データの例を概念的に示す図である。
【図３】実施形態における再生されるオーディオ信号、タップ操作子からのタップ入力及び検出されるビート信号の関係を示す図である。
【図４】実施形態におけるメイン処理の要部フローチャートである。
【図５】実施形態における操作受付処理のフローチャートである。
【図６】実施形態における再生処理のフローチャートである。
【図７】実施形態におけるビート位置決定処理のフローチャートである。
【図８】実施形態におけるモードＢ処理のフローチャートである。
【図９】実施形態におけるモードＤ処理のフローチャートである。
【符号の説明】
【００５７】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、４…タイマ、５…操作インターフェース、６…タップ操作子、７…パネル操作子、８…表示器、９…音源、１０…サウンドシステム、１１…記憶装置
【図１】
0005481798.tif 000002
【図２】
0005481798.tif 000003
【図３】
0005481798.tif 000004
【図４】
0005481798.tif 000005
【図５】
0005481798.tif 000006
【図６】
0005481798.tif 000007
【図７】
0005481798.tif 000008
【図８】
0005481798.tif 000009
【図９】
0005481798.tif 000010