(58)【調査した分野】(Int.Cl.,DB名)
楽曲を再生した場合における、ビート種類ごとのビートが再生される時刻に関する情報を含む種類別ビート位置情報と、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む全ビート位置情報と、ビート種類ごとのビートが再生されない拍の時刻に関する情報を含む種類別ビート休符位置情報と、いずれの種類のビートも再生されない拍の時刻に関する情報を含む全ビート休符位置情報と、前記楽曲における単位時間当たりの拍数を示すテンポ値とを取得し、テンポ値が基準値と異なる場合、その楽曲のテンポ値が前記基準値と同一の値になるように、その楽曲の前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報を補正するビート情報補正部と、
テンポ値が前記基準値と同一の値に補正された前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報に基づいて、複数の楽曲の各楽曲間における、一方の楽曲の各種の前記種類別ビート位置情報、前記全ビート位置情報、各種の前記種類別ビート休符位置情報、および前記全ビート休符位置情報から選択される1つの情報である第1の情報と、他方の楽曲の各種の前記種類別ビート位置情報、前記全ビート位置情報、各種の前記種類別ビート休符位置情報、および前記全ビート休符位置情報から選択される1つの情報である第2の情報との組み合わせにおける相互の相関度合いを示す相関値を、少なくとも1つの組み合わせについて算出する相関値算出部と、
各楽曲間の前記相関値に基づいて、楽曲の再生順序である曲順を決定する曲順決定部とを備え、
前記第1の情報と前記第2の情報とは、異なる種類の情報であることを特徴とする曲順決定装置。
前記相関値算出部は、楽曲間における、一方の楽曲の末尾部分の前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報のいずれかと、他方の楽曲の冒頭部分の前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報のいずれかとから前記相関値を算出することを特徴とする請求項1〜7のいずれか1項に記載の曲順決定装置。
楽曲を再生した場合における、ビート種類ごとのビートが再生される時刻に関する情報を含む種類別ビート位置情報と、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む全ビート位置情報と、前記楽曲における単位時間当たりの拍数を示すテンポ値とを取得し、テンポ値が基準値と異なる場合、その楽曲のテンポ値が前記基準値と同一の値になるように、その楽曲の前記種類別ビート位置情報および前記全ビート位置情報を補正するビート情報補正部と、
テンポ値が前記基準値と同一の値に補正された前記種類別ビート位置情報および前記全ビート位置情報に基づいて、複数の楽曲の各楽曲間における、一方の楽曲の各種の前記種類別ビート位置情報および前記全ビート位置情報から選択される1つの情報である第1の情報と、他方の楽曲の各種の前記種類別ビート位置情報および前記全ビート位置情報から選択される1つの情報である第2の情報との組み合わせにおける相互の相関度合いを示す相関値を、少なくとも1つの組み合わせについて算出する相関値算出部と、
各楽曲間の前記相関値に基づいて、楽曲の再生順序である曲順を決定する曲順決定部とを備え、
前記第1の情報と前記第2の情報とは、異なる種類の情報であることを特徴とする曲順決定装置。
前記相関値算出部は、各楽曲間における、一方の楽曲の末尾部分の前記種類別ビート位置情報または前記全ビート位置情報と、他方の楽曲の冒頭部分の前記種類別ビート位置情報または前記全ビート位置情報とから前記相関値を算出することを特徴とする請求項9〜15のいずれか1項に記載の曲順決定装置。
前記相関値算出部は、各楽曲間における、一方の楽曲の末尾部分の前記種類別ビート位置情報または前記全ビート位置情報と、他方の楽曲の冒頭部分の、前記一方の楽曲と対応する前記種類別ビート位置情報または前記全ビート位置情報とから前記相関値を算出することを特徴とする請求項17〜19のいずれか1項に記載の曲順決定装置。
前記曲順決定部は、連続して再生される楽曲間の前記相関値の積または総和が最大、または前記最大となる値の近似解となるように、楽曲の前記曲順を決定することを特徴とする請求項1〜20のいずれか1項に記載の曲順決定装置。
楽曲を再生した場合における、ビート種類ごとのビートが再生される時刻に関する情報を含む種類別ビート位置情報と、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む全ビート位置情報と、ビート種類ごとのビートが再生されない拍の時刻に関する情報を含む種類別ビート休符位置情報と、いずれの種類のビートも再生されない拍の時刻に関する情報を含む全ビート休符位置情報と、前記楽曲における単位時間当たりの拍数を示すテンポ値とを取得し、テンポ値が基準値と異なる場合、その楽曲のテンポ値が前記基準値と同一の値になるように、その楽曲の前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報を補正するステップと、
テンポ値が前記基準値と同一の値に補正された前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報に基づいて、複数の楽曲の各楽曲間における、一方の楽曲の各種の前記種類別ビート位置情報、前記全ビート位置情報、各種の前記種類別ビート休符位置情報、および前記全ビート休符位置情報から選択される1つの情報である第1の情報と、他方の楽曲の各種の前記種類別ビート位置情報、前記全ビート位置情報、各種の前記種類別ビート休符位置情報、および前記全ビート休符位置情報から選択される1つの情報である第2の情報との組み合わせにおける相互の相関度合いを示す相関値を、少なくとも1つの組み合わせについて算出するステップと、
各楽曲間の前記相関値に基づいて、楽曲の再生順序である曲順を決定するステップとを含み、
前記第1の情報と前記第2の情報とは、異なる種類の情報であることを特徴とする曲順決定方法。
楽曲を再生した場合における、ビート種類ごとのビートが再生される時刻に関する情報を含む種類別ビート位置情報と、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む全ビート位置情報と、前記楽曲における単位時間当たりの拍数を示すテンポ値とを取得し、テンポ値が基準値と異なる場合、その楽曲のテンポ値が前記基準値と同一の値になるように、その楽曲の前記種類別ビート位置情報および前記全ビート位置情報を補正するステップと、
テンポ値が前記基準値と同一の値に補正された前記種類別ビート位置情報および前記全ビート位置情報に基づいて、複数の楽曲の各楽曲間における、一方の楽曲の各種の前記種類別ビート位置情報および前記全ビート位置情報から選択される1つの情報である第1の情報と、他方の楽曲の各種の前記種類別ビート位置情報および前記全ビート位置情報から選択される1つの情報である第2の情報との組み合わせにおける相互の相関度合いを示す相関値を、少なくとも1つの組み合わせについて算出するステップと、
各楽曲間の前記相関値に基づいて、楽曲の再生順序である曲順を決定するステップとを含み、
前記第1の情報と前記第2の情報とは、異なる種類の情報であることを特徴とする曲順決定方法。
楽曲を再生した場合における、ビート種類ごとのビートが再生される時刻に関する情報を含む種類別ビート位置情報と、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む全ビート位置情報と、ビート種類ごとのビートが再生されない拍の時刻に関する情報を含む種類別ビート休符位置情報と、いずれの種類のビートも再生されない拍の時刻に関する情報を含む全ビート休符位置情報と、前記楽曲における単位時間当たりの拍数を示すテンポ値とを取得し、テンポ値が基準値と異なる場合、その楽曲のテンポ値が前記基準値と同一の値になるように、その楽曲の前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報を補正するステップと、
テンポ値が前記基準値と同一の値に補正された前記種類別ビート位置情報、前記全ビート位置情報、前記種類別ビート休符位置情報、および前記全ビート休符位置情報に基づいて、複数の楽曲の各楽曲間における、一方の楽曲の各種の前記種類別ビート位置情報、前記全ビート位置情報、各種の前記種類別ビート休符位置情報、および前記全ビート休符位置情報から選択される1つの情報である第1の情報と、他方の楽曲の各種の前記種類別ビート位置情報、前記全ビート位置情報、各種の前記種類別ビート休符位置情報、および前記全ビート休符位置情報から選択される1つの情報である第2の情報との組み合わせにおける相互の相関度合いを示す相関値を、少なくとも1つの組み合わせについて算出するステップと、
各楽曲間の前記相関値に基づいて、楽曲の再生順序である曲順を決定するステップとをコンピュータに実行させ、
前記第1の情報と前記第2の情報とは、異なる種類の情報であることを特徴とする曲順決定プログラム。
楽曲を再生した場合における、ビート種類ごとのビートが再生される時刻に関する情報を含む種類別ビート位置情報と、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む全ビート位置情報と、前記楽曲における単位時間当たりの拍数を示すテンポ値とを取得し、テンポ値が基準値と異なる場合、その楽曲のテンポ値が前記基準値と同一の値になるように、その楽曲の前記種類別ビート位置情報および前記全ビート位置情報を補正するステップと、
テンポ値が前記基準値と同一の値に補正された前記種類別ビート位置情報および前記全ビート位置情報に基づいて、複数の楽曲の各楽曲間における、一方の楽曲の各種の前記種類別ビート位置情報および前記全ビート位置情報から選択される1つの情報である第1の情報と、他方の楽曲の各種の前記種類別ビート位置情報および前記全ビート位置情報から選択される1つの情報である第2の情報との組み合わせにおける相互の相関度合いを示す相関値を、少なくとも1つの組み合わせについて算出するステップと、
各楽曲間の前記相関値に基づいて、楽曲の再生順序である曲順を決定するステップとをコンピュータに実行させ、
前記第1の情報と前記第2の情報とは、異なる種類の情報であることを特徴とする曲順決定プログラム。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態について、図面を参照して説明する。各図面を通じて同一もしくは同等の部位や構成要素には、同一もしくは同等の符号を付し、その説明を省略もしくは簡略化する。
【0022】
(第1の実施形態)
図1は、第1の実施形態に係る曲順決定装置の構成を示すブロック図である。
図1に示すように、第1の実施形態に係る曲順決定装置10は、楽曲DB(データベース)11と、ビート情報補正部12と、相関値算出部13と、曲順決定部14とを備える。曲順決定装置10は、表示部15に接続されている。
【0023】
楽曲DB11は、複数の楽曲の楽曲データ、各楽曲のメタデータであるビート情報メタデータ、楽曲間の相関値をテーブル形式で記憶した相関値テーブル(後述の
図5参照)等を記憶する。楽曲DB11は、HDDやメモリ等の記憶装置からなる。なお、楽曲DB11は、固定式の記憶装置でも、着脱式の記憶装置でもよく、また、ケーブルやネットワークで接続された外部の記憶装置でもよい。
【0024】
ビート情報メタデータは、楽曲の時間軸上におけるビートの位置に関する情報とビートの振幅に関する情報とを含むビート位置情報、および楽曲のテンポを示すテンポ値を含む。テンポ値は、例えば、BPM(Beat Per Minute)で表される。BPMとは、楽曲の1分間(単位時間)当たりの拍数(一般的には4分音符の数)を示す値である。なお、ビート位置情報には、ビートの振幅に関する情報は必ずしも含まれなくてもよく、例えば、すべての振幅を同一の値(例えば1)としてもよい。ただし、ビート位置情報に、ビートの振幅に関する情報を含むことで、後に詳述する相関値を算出する際に、より正確に算出することができる。
【0025】
また、時間軸上におけるビートの位置とは、楽曲を再生したときの、ビートが再生される時刻を示す情報であり、例えば、楽曲データを最初から再生した際の再生開始時刻を基準とし、その再生開始時刻からの経過時間で示されている。なお、ビート位置情報は、必ずしも再生開始時刻を基準とする必要はなく、楽曲データを再生したときの任意の時刻を基準としてもよい。
【0026】
図2は、ビート位置情報を説明するための図であり、
図2(a),(b)は、それぞれ、楽曲A,Bのビート位置情報の例を示す。
図2(a),(b)において、横軸は時間tを示し、縦軸はビートの振幅ampを示す。時間軸上におけるビートの位置は、各楽曲を構成する打楽器音(曲のリズムを決定付ける音)の発音位置である。打楽器の種類は問わない。また、打楽器音が含まれない楽曲の場合は、ビートの位置は、ビートを形成する楽器の発音位置を示す。なお、
図2(a),(b)に示すように、楽曲AのBPM=100、楽曲BのBPM=125である。
【0027】
曲順決定装置10では、各楽曲の時間軸上におけるビート位置情報およびBPMがビート情報メタデータとして楽曲DB11に記憶されているが、ビート情報メタデータの取得方法はこれに限らない。例えば、事前にユーザがビート位置情報およびBPMを入力するようにしてもよい。また、特開2008−233812号公報に記載のビート検出方法などを用いて楽曲の波形から自動的にビート情報メタデータを検出して、ビート情報メタデータとしてもよい。
【0028】
ビート情報補正部12は、楽曲DB11から各楽曲のビート位置情報およびBPMを取得し、BPMが所定の基準値である基準BPMと異なる楽曲のビート位置情報におけるビートの位置を補正し、各楽曲のBPMを基準BPMと一致させる(BPMを統一する)。ビート情報補正部12は、補正後のビート位置情報およびBPMを楽曲DB11に記憶させる。なお、ビート情報補正部12の動作については、後に詳述する。なお、基準BPMは、予め決めておいてもよいし、所定の楽曲のBPMを基準BPMとしてもよい。
【0029】
相関値算出部13は、BPMが統一された各楽曲のビート位置情報に基づいて、楽曲DB11に記憶された複数の楽曲の各楽曲間におけるビート位置情報の相関度合いを示す相関値を算出する。なお、一例として、本実施形態においては、相関値が大きいほど強い相関関係にあるものとする。相関値算出部13は、算出した相関値を各楽曲のビート情報メタデータとして楽曲DB11に記憶させる。さらに、相関値算出部13は、楽曲DB11に記憶された各楽曲の相関値を正規化し、相関値テーブルとして楽曲DB11に記憶させる。なお、相関値を正規化する処理は必須ではない。
【0030】
曲順決定部14は、楽曲DB11に記憶された相関値テーブルから正規化された相関値を取得し、取得した相関値に基づいて、楽曲DB11から再生される所定数の楽曲の再生順序である曲順を決定する。
【0031】
表示部15は、ディスプレイやモニタからなり、曲順決定部14が決定した曲順を表示する。
【0032】
次に、曲順決定装置10の動作について説明する。
【0033】
曲順決定装置10は、楽曲DB11へ楽曲が追加される度に、相関値の算出等を行う。
図3は、曲順決定装置10における楽曲DB11への楽曲追加時の動作を説明するためのフローチャートである。
【0034】
図3に示すように、まず、ビート情報補正部12は、楽曲DB11へ新たに楽曲が追加されたか否かを判断し(ステップS310)、新たに楽曲が追加されなければ(ステップS310“No”)、処理を終了する。
【0035】
楽曲DB11へ新たな楽曲が追加された場合(ステップS310“Yes”)、ビート情報補正部12は、楽曲DB11から追加された楽曲のビート情報メタデータを取得する(ステップS320)。
【0036】
次に、ビート情報補正部12は、取得したビート情報メタデータに含まれる追加された楽曲のBPMが基準BPMと一致しているか否かを判断する(ステップS330)。追加された楽曲のBPMが基準BPMと一致している場合は(ステップS330“Yes”)、ステップS350に進む。
【0037】
追加された楽曲のBPMが基準BPMと一致していない場合(ステップS330“No”)、ビート情報補正部12は、追加された楽曲のビート位置情報におけるビートの位置を補正し、当該楽曲のBPMを基準BPMに一致させる(ステップS340)。ビート情報補正部12は、補正したビート位置情報およびBPMを楽曲DB11に記憶させる。この後、ステップS350に進む。
【0038】
ここで、
図3のステップS340におけるビート位置情報の補正方法の具体例について説明する。
【0039】
2つの楽曲をミックス再生する場合、ビートがうまく重なって聴こえるように、2つの楽曲のBPM情報の値を合わせて再生することが多い。そのため、曲順決定装置10では、相関値を求める前に、各楽曲のBPMを基準BPMに統一する。
【0040】
つまり、ビート情報補正部12は、楽曲DB11に楽曲が追加された場合、追加された楽曲のビート位置情報と、楽曲DB11に記憶された他のすべての楽曲のビート位置情報との相関値を算出する前に、すべての楽曲のBPMが基準BPMに統一されるように、ビートの位置を補正する。
【0041】
ここで、基準BPMは相関値を算出する目的で用いるBPMであり、必ずしも再生時には基準BPMで再生しなくてもよい。このことは他の実施形態でも同様である。
【0042】
具体的には、ビート情報補正部12は、基準BPMを“Tb”、補正する楽曲のBPMを“T”とした場合、補正する楽曲の時系列のビート間隔を、T/Tb倍に拡げることで、当該楽曲のBPMが基準BPMになるようにする。
【0043】
図4は、ビート情報補正部12によるビート位置情報の補正方法を説明するための図である。例えば、
図4(a)に示すビート位置情報410が、追加された楽曲のビート位置情報であるとする。この楽曲のBPM=100である。これに対し、基準BPM=80である場合、ビート情報補正部12は、
図4(a)のビート位置情報410におけるビート間隔を5/4(=100/80)倍に拡げるように、ビート位置を補正する。
図4(b)は、補正後のビート位置情報420を示す。例えば、ビート情報補正部12は、
図4(a)におけるビート間隔411に“0”を挿入することで5/4倍に拡張する。これにより、
図4(a)のビート間隔411に対応する
図4(b)のビート間隔421は、ビート間隔411の5/4倍となる。この結果、補正後のビート位置情報420におけるBPMは、基準BPM=80となる。
【0044】
図3に戻り、ステップS350では、ビート情報補正部12は、他に追加された楽曲があるか否かを判断する。ビート情報補正部12は、他に追加された楽曲があると判断した場合(ステップS350“Yes”)、ステップS320の処理に戻る。ビート情報補正部12が他に追加された楽曲がないと判断した場合(ステップS350“No”)、次のステップS360の処理へ移行する。
【0045】
ステップS360では、相関値算出部13が、追加された楽曲とそれ以外の楽曲との間の相関値を算出する。具体的には、相関値算出部13は、追加された楽曲の末尾部分のビート位置情報と、それ以外の楽曲の冒頭部分のビート位置情報との相関値を算出する。相関値算出部13は、算出した相関値を、追加された楽曲のビート情報メタデータとして楽曲DB11へ記憶する。また、相関値算出部13は、追加された楽曲の冒頭部分のビート位置情報と、それ以外の楽曲の末尾部分のビート位置情報との相関値も算出して、追加された楽曲以外の楽曲のビート情報メタデータとしてそれぞれ楽曲DB11へ記憶する。なお、このステップS360での処理は、
図5のところで再度説明する。
【0046】
次のステップS370では、相関値算出部13は、楽曲DB11から各楽曲の相関値を読み出し、追加された楽曲とそれ以外の楽曲との相関値の合計が1になるように正規化する。相関値算出部13は、正規化した相関値を、
図5に示すような相関値テーブルとして、楽曲DB11に記憶する。
【0047】
図5は、相関値テーブルの一例を示す図である。
図5に示す相関値テーブル500では、例えば、楽曲A〜Eそれぞれが前曲および次曲となった場合の相関値が、各列の相関値の合計が1になるように正規化されている。つまり、相関値テーブル500では、楽曲A〜Eの各列の合計は1となっており、それぞれ自曲以外の楽曲への遷移確率として用いることができる。
【0048】
ここで、例えば、
図5に示す相関値テーブル500において、楽曲Eが追加された楽曲である場合には、それ以外の楽曲は楽曲A〜Dとなる。この場合、相関値算出部13は、ステップS360において、まずは、楽曲Eが前曲で、楽曲A〜Dが次曲である場合の相関値である、楽曲Eの末尾部分のビート位置情報と、それ以外の楽曲A〜Dの冒頭部分のビート位置情報との相関値を求める。つまり、相関値算出部13は、楽曲Eを前曲とし、それ以外の楽曲A〜Dを次曲とした場合の相関値として、
図5に示す相関値テーブル500に示すように、それぞれ、0.40、0.12、0.33、0.15の正規化前の値を算出して、楽曲Eのビート情報メタデータとして楽曲DB11へ記憶させる。
【0049】
その一方、相関値算出部13は、ステップS360において、さらに、楽曲A〜Dが前曲で、楽曲Eが次曲である場合の相関値である、楽曲Eの冒頭部分のビート位置情報と、それ以外の楽曲A〜Dの末尾部分のビート位置情報との相関値を求める。つまり、相関値算出部13は、楽曲Eの冒頭部分のビート位置情報と、それ以外の楽曲A〜Dの末尾部分のビート位置情報との相関値として、
図5に示す相関値テーブル500に示すように、それぞれ、0.37、0.08、0.12、0.39の正規化前の値を算出して、楽曲A〜Dのビート情報メタデータとして楽曲DB11へ記憶させる。
【0050】
以上のように、相関値算出部13は、ステップS360では、新たに楽曲が追加される毎に相関値を算出して、楽曲DB11に記憶させるので、ステップS370では、新たに楽曲が追加される毎に、ステップS360にて新たに算出した相関値と、既存の相関値とを合わせて再度正規化して、相関値テーブル500として記憶して、終了とする。例えば、新たに楽曲Fが追加された場合、相関値算出部13は、相関値テーブル500において、楽曲A〜Eの各列に新たな楽曲Fを追加した楽曲A〜Fの各列の合計が1となるように再度正規化して、相関値テーブル500として記憶する。なお、ここでは、相関値算出部13は、正規化後の相関値のみを相関値テーブル500として記憶しているが、正規化前の相関値も別の相関値テーブルとして記憶するようにしてもよい。
【0051】
次に、
図3のステップS360における相関値の算出方法について説明する。
【0052】
図6(a)に示す楽曲A’のビート位置情報610および楽曲B’のビート位置情報620は、BPMを基準BPMに統一した後のビート位置情報である。楽曲A’の冒頭部分のビート位置情報611と、楽曲B’の末尾部分のビート位置情報621との相関度合いを算出する場合を例として述べる。
【0053】
まず、相関値算出部13は、
図6(a)に示すように、楽曲A’のビート位置情報610から抜き出した冒頭部分のビート位置情報611を関数f(t)とする。同様に、相関値算出部13は、楽曲B’のビート位置情報620から抜き出した楽曲B’の末尾部分のビート位置情報621を関数g(t)とする。
【0054】
なお、ビート位置情報の抜き出す範囲は、楽曲の冒頭または末尾、もしくはビートが存在する位置から固定時間長で決めてもよいし、楽曲の時間長から割合として求めてもよい。例えば、後者の場合、楽曲全体の5%を抜き出すとすると、5分間の楽曲では、15秒間を抜き出すということである。
【0055】
次に、相関値算出部13は、
図6(b)に示すように、楽曲B’の末尾部分のビート位置情報621を示す関数g(t)を、時間軸tの方向に平行移動させながら、平行移動した各位置(時間)においてf(t)とg(t)との積の総和、すなわち、Σ
n(f(n)・g(n−m))を求める。
【0056】
すなわち、相関値算出部13は、f(t)とg(t)が重なる範囲でmを変化させ、それぞれのmの値における、Σ
n(f(n)・g(n−m))を求める。そして、相関値算出部13は、このようにして求めたf(t)とg(t)との積の総和Σ
n(f(n)・g(n−m))の最大値を、相関値とする。
【0057】
そのため、相関値算出部13は、例えば、楽曲A’の冒頭部分のビート位置情報611を示す関数f(t)と、楽曲B’の末尾部分のビート位置情報621を示す関数g(t)とを、任意の時間間隔毎の配列として記憶する。すなわち、ビートが存在する時刻に対応する配列要素にはビートの値(振幅)が配置され、ビートが存在しない時刻に対応する配列要素には0が配置される。
【0058】
そして、f(t)とg(t)が重なる範囲でmを変化させたf(t)とg(t)との積の総和であるΣ
n(f(n)・g(n−m))は、f(t)とg(t)に該当する配列の対応する各要素の積の総和となる。ここで、f(t)とg(t)が重なる範囲でmを変化させて積の総和を求めることは、上記配列が重なる範囲でm個分の配列要素をずらし、ずらした配列要素と、もう一方の配列の対応する配列要素との積の総和を求めることになる。このように、相関値算出部13は、f(t)とg(t)が重なる範囲で、mをずらして求めた各総和Σ
n(f(n)・g(n−m))の最大値を、相関値として算出する。
【0059】
次に、曲順決定装置10における曲順決定処理について説明する。
【0060】
曲順決定部14は、連続して再生される楽曲間の相関値の積または総和が最大となるように、楽曲DB11から再生される所定数の楽曲の曲順を決定する。例えば、曲順決定部14は、ユーザの指定により、またはランダムに、楽曲DB11から所定数の楽曲を選択する。そして、曲順決定部14は、選択した楽曲のなかで、連続して再生される楽曲間の相関値の積または総和が最大となるような曲順を決定する。
【0061】
上記のように相関値の積または総和が最大となるように曲順を決定することで、正確に最適な曲順を決定できる。ただし、この方法では、演算量が多くなり、現在の計算機では、演算処理に長時間を要する。曲順を決定しようとする楽曲数をnとすると、楽曲遷移パターンは
nP
n通りあるため、最も相関値の積または和が大きくなるような楽曲遷移パターンを求めるには、n!オーダーの演算量が必要となるためである。
【0062】
そこで、少ない演算量で曲順を決定する処理を以下に説明する。
図7は、この曲順決定処理のフローチャートである。
【0063】
ここでは、
図5の相関値テーブル500に示す楽曲A〜Eの5曲の曲順を決める場合を例に説明する。
【0064】
まず、曲順決定部14は、1曲目の楽曲を選択する(ステップS710)。曲順決定部14は、1曲目を、ユーザの指示に応じて選択してもよいし、ランダムに選択してもよい。ここで、1曲目として楽曲Dが選択されたとする。
【0065】
次に、曲順決定部14は、前に選択した楽曲に対して、相関値が最大となる楽曲を選択する(ステップS720)。1曲目が楽曲Dの場合、曲順決定部14は、次曲として、楽曲Dに対して相関値が最大の0.39となる楽曲Eを選択する。
【0066】
次に、曲順決定部14は、これまでに選択した楽曲数が、最大楽曲数に達しているか否かを判断する(ステップS730)。これまでに選択した楽曲数が最大楽曲数に達していれば(ステップS730“Yes”)、曲順決定部14は、曲順決定処理を終了する。ここで、最大楽曲数は、曲順を決定しようとする楽曲の数であり、5曲の曲順を決める際には、最大楽曲数は5となる。
【0067】
これまでに選択した楽曲の数が最大楽曲数に達していなければ(ステップS730“No”)、曲順決定部14は、ステップS720へ戻り、再び楽曲の選択を行う。
【0068】
なお、この例では、2曲目として楽曲Eが選択されているため、3曲目として、楽曲Eに対して相関値が最大の0.40となる楽曲Aが選択される。4曲目は楽曲Aに対して相関値が最大の0.37となる楽曲Eおよび同じく2番目に大きい0.28となる楽曲Dは既に選択されているため、その次の3番目に大きい0.23となる楽曲Bが選択される。そして、最後の5曲目は、残りの楽曲Cとなる。
【0069】
以上のような、
図7のフローチャートの一連の処理により、曲順決定部14は、1曲目を選択し、2曲目以降は、同じ曲を繰り返し選択しないようにして、選択した楽曲数が所定数(最大楽曲数)に達するまで、前曲に対する次曲の相関値が最大である楽曲を順次選択することにより曲順を決定する。これにより、必ずしも相関値の積または和が厳密な最大値となるとは限らないが、その近似解として必要十分な楽曲遷移パターンを簡単かつ高速に決定できるとともに、同じ曲が複数回選択されることを防止できる。
【0070】
こうした相関値の積または和が最大となる楽曲遷移パターンを求める問題は、いわゆる組み合わせ最適化問題であると言えるため、上記の局所探索的な方法の他にも、遺伝的アルゴリズム等のヒューリスティックなアルゴリズムを用いることで、有限時間内で近似解を得ることができる。このように、相関値の積または和が最大またはその近似解となる楽曲遷移パターンを求める方法は、上述の方法に限定されず、周知の種々の方法を用いることができる。
【0071】
なお、本実施形態では、一方の楽曲の末尾部分のビート位置情報と他方の楽曲の冒頭部分のビート位置情報との相関度合いを示す値を、楽曲間の相関値とする場合について説明したが、相関値はこれに限定されない。各楽曲間において、各楽曲の少なくとも一部のビート位置情報の相関度合いを示す値を相関値とすればよい。例えば、各楽曲間における楽曲全体のビート位置情報の相関度合いを示す値を相関値としてもよい。この場合は、2曲間において、どちらの楽曲が前曲であっても相関値は同じ値になる。
【0072】
以上説明したように、曲順決定装置10は、BPMを統一した各楽曲のビート位置情報の相関値から曲順を決定することで、ミックス再生に適した曲順を決定できる。
【0073】
また、各楽曲間における楽曲の末尾部分と冒頭部分とのビート位置情報の相関度合いを示す値を相関値として用いることで、楽曲のつながり部分の違和感をより効果的に軽減できる。これにより、例えば、曲の冒頭部分は静かだが、楽曲全体としてはノリがよい等、前曲の末尾部分と次曲の冒頭部分との相性が曲自体の類似度と一致しない場合でも、ミックス再生に適した曲順を決定できる。
【0074】
なお、本実施形態では、基準BPMが1つとして説明したが、基準BPMを複数設けてもよい。2つの楽曲をミックス再生する際には、後の楽曲のBPMが、前の楽曲のBPMの1/n(n=1,2,…)、またはn倍になるようにすることがある。例えば、BPM=120の楽曲の後に、BPM=70の楽曲をミックス再生するとき、後の楽曲のBPMを、前の楽曲のBPMの1/2の60として再生する、といった場合である。こうした場合も考慮し、ビート情報補正部12は、基本となる基準BPM以外に、その1/nの値、およびn倍の値の少なくともいずれかも、基準BPMとするようにしてもよい。
【0075】
このように複数の基準BPMを設定する場合、ビート情報補正部12は、各楽曲について、複数の基準BPMそれぞれに応じてビート位置を補正したビート位置情報を生成する。ビート情報補正部12が基準BPMを複数とした場合、相関値算出部13は、各楽曲間において、BPMが同じ基準BPMに補正されたビート位置情報同士の相関値、および、BPMが互いに異なる基準BPMに補正されたビート位置情報の間の相関値を算出する。曲順決定部14は、これらの相関値を用いて曲順を決定する。
【0076】
(第2の実施形態)
楽曲には、複数種類のビートを含むものがある。例えば、低域のビートであるバスドラムのビート(バスドラムビート)と、中高域のビートであるスネアドラムのビート(スネアドラムビート)とを含む楽曲がある。
【0077】
ここで、楽曲A,Bがそれぞれ上記2種類のビートを含む場合において、この2曲間で、バスドラムビート同士は合わないが、スネアドラムビート同士は合うことがある。このような場合に、楽曲A,Bのいずれか一方の低域成分をフィルタ等でカットしてミックス再生する手法がある。また、楽曲A,Bの2曲間で、バスドラムビート同士およびスネアドラムビート同士は合わないが、楽曲Aのバスドラムビートと楽曲Bのスネアドラムビートとは合うことがある。このような場合に、楽曲Aの中高域成分(または低域成分)と楽曲Bの低域成分(または中高域成分)とを、それぞれフィルタ等でカットしてミックス再生する手法がある。第2の実施形態では、このような多様なミックス再生を実現できる曲順決定装置を提供する。
【0078】
図8は、第2の実施形態に係る曲順決定装置の構成を示すブロック図である。
図8に示すように、第2の実施形態に係る曲順決定装置80は、
図1に示した第1の実施形態に係る曲順決定装置10に対し、ビート休符位置情報生成部81を追加した構成である。
【0079】
ビート休符位置情報生成部81は、楽曲DB11に追加された楽曲がビート休符位置情報を保持していない場合に、その楽曲のビート休符位置情報を生成する。
【0080】
図9(a)は、ビート休符位置情報を示す図、
図9(b)は、ビート位置情報を示す図、
図9(c)は、すべての拍の位置を示す図である。
図9(a)に示すように、ビート休符位置情報910は、
図9(b)に示すビート位置情報920と同様の形式である。
図9(a)のビート休符位置情報910は、
図9(c)において破線で示す全拍位置から、
図9(b)のビート位置情報920におけるビート位置を除外して生成される。なお、
図9では、拍の位置は4分音符を用いているが、元のビートの粒度に合わせて8分音符や16分音符等を用いてもよい。
【0081】
なお、ビート休符位置情報の生成方法は上述の方法に限らず、事前にユーザが休符の位置(ビートが再生されない拍の時刻)を入力したり、全拍のうちビートが検出されない拍の位置を休符の位置として自動生成したりしてもよい。
【0082】
ここで、曲順決定装置80で扱うビート休符位置情報として、種類別ビート休符位置情報と、全ビート休符位置情報とがある。
【0083】
種類別ビート休符位置情報は、バスドラムビート、スネアドラムビート等のビート種類ごとのビート休符位置情報である。種類別ビート休符位置情報は、対応するビート種類のビートが再生されない拍の時刻に関する情報を含む。例えば、バスドラムビートに対応する種類別ビート休符位置情報は、バスドラムビートが再生されない拍の時刻に関する情報を含む。なお、ビートを形成する楽器は、打楽器に限らず、リズムを刻む演奏形態であれば、ピアノ等の音階を持つ楽器でもよい。また、ビート種類は、必ずしも楽器別でなくてもよい。例えば、周波数帯域別でもよく、ハイハットとライドとは、高周波数帯域と一括りで扱ってもよい。
【0084】
全ビート休符位置情報は、いずれの種類のビートも再生されない拍の時刻に関する情報を含む。
【0085】
また、曲順決定装置80では、ビート位置情報として、種類別ビート位置情報と、全ビート位置情報とを保持する。
【0086】
種類別ビート位置情報は、ビート種類ごとのビート位置情報である。種類別ビート位置情報は、ビート種類ごとのビートが再生される時刻に関する情報を含む。
【0087】
全ビート位置情報は、少なくともいずれかの種類のビートが再生される時刻に関する情報を含む。
【0088】
上述の種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報は、楽曲DB11が記憶するビート情報メタデータに含まれる。すなわち、曲順決定装置80では、楽曲DB11が記憶するビート情報メタデータは、種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、全ビート休符位置情報、およびテンポ値(BPM)を含む。
【0089】
図9(a),(b)に示したように、ビート休符位置情報(種類別ビート休符位置情報、全ビート休符位置情報)は、ビート位置情報(種類別ビート位置情報、全ビート位置情報)と同様のデータ形式である。このため、例えば、種類別ビート休符位置情報と種類別ビート位置情報との間の相関値が算出可能である。
【0090】
ビート情報補正部12は、BPMが基準BPMと異なる楽曲の種類別ビート位置情報および全ビート位置情報におけるビートの位置を補正するとともに、種類別ビート休符位置情報および全ビート休符位置情報における休符の位置を補正する。これにより、ビート情報補正部12は、各楽曲のBPMを基準BPMと一致させる(BPMを統一する)。
【0091】
相関値算出部13は、BPMが統一された種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報に基づいて、複数の楽曲の各楽曲間における相関値を算出する。また、相関値算出部13は、相関値テーブルを生成して楽曲DB11に記憶させる。
【0092】
次に、曲順決定装置80の動作について説明する。
【0093】
曲順決定装置80は、楽曲DB11へ楽曲が追加される度に、相関値の算出等を行う。
図10は、曲順決定装置80における楽曲DB11への楽曲追加時の動作を説明するためのフローチャートである。
【0094】
図10に示すように、まず、ビート情報補正部12は、楽曲DB11へ新たに楽曲が追加されたか否かを判断し(ステップS1010)、新たに楽曲が追加されなければ(ステップS1010“No”)、処理を終了する。
【0095】
楽曲DB11へ新たな楽曲が追加された場合(ステップS1010“Yes”)、ビート情報補正部12は、追加された楽曲の種類別ビート位置情報、全ビート位置情報、およびBPMを楽曲DB11から取得する(ステップS1020)。
【0096】
次に、ビート情報補正部12は、追加された楽曲が種類別ビート休符位置情報および全ビート休符位置情報を保持しているか否かを判断する(ステップS1030)。追加された楽曲が種類別ビート休符位置情報および全ビート休符位置情報を保持している場合は(ステップS1030“Yes”)、ステップS1050に進む。
【0097】
追加された楽曲が種類別ビート休符位置情報および全ビート休符位置情報を保持していない場合(ステップS1030“No”)、ビート情報補正部12は、追加された楽曲の種類別ビート休符位置情報および全ビート休符位置情報をビート休符位置情報生成部81に生成させる(ステップS1040)。ビート休符位置情報生成部81は、種類別ビート位置情報および全ビート位置情報から、前述の
図9を用いた説明のようにして、種類別ビート休符位置情報および全ビート休符位置情報を生成する。ビート休符位置情報生成部81は、生成した種類別ビート休符位置情報および全ビート休符位置情報を、追加された楽曲のビート情報メタデータとして楽曲DB11に記憶させる。この後、ステップS1050に進む。
【0098】
ステップS1050では、ビート情報補正部12は、追加された楽曲の種類別ビート休符位置情報および全ビート休符位置情報を楽曲DB11から取得する。
【0099】
次に、ビート情報補正部12は、追加された楽曲のBPMが基準BPMと一致しているか否かを判断する(ステップS1060)。追加された楽曲のBPMが基準BPMと一致している場合は(ステップS1060“Yes”)、ステップS1080に進む。
【0100】
追加された楽曲のBPMが基準BPMと一致していない場合(ステップS1060“No”)、ビート情報補正部12は、追加された楽曲の種類別ビート位置情報および全ビート位置情報におけるビートの位置を補正するとともに、種類別ビート休符位置情報および全ビート休符位置情報における休符の位置を補正し、当該楽曲のBPMを基準BPMに一致させる(ステップS1070)。この後、ステップS1080に進む。
【0101】
ここで、種類別ビート位置情報および全ビート位置情報におけるビートの位置の補正は、第1の実施形態において
図4を用いて説明した方法により行われる。種類別ビート休符位置情報および全ビート休符位置情報における休符の位置の補正も同様である。
【0102】
ステップS1080では、ビート情報補正部12は、他に追加された楽曲があるか否かを判断する。ビート情報補正部12は、他に追加された楽曲があると判断した場合(ステップS1080“Yes”)、ステップS1020の処理に戻る。ビート情報補正部12が他に追加された楽曲がないと判断した場合(ステップS1080“No”)、次のステップS1090の処理へ移行する。
【0103】
ステップS1090では、相関値算出部13が、追加された楽曲とそれ以外の楽曲との間の相関値を算出する。具体的には、相関値算出部13は、追加された楽曲の末尾部分における各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート位置情報から選択される1つの情報と、それ以外の楽曲の冒頭部分における各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報との組み合わせにおける相互の相関度合いを示す相関値を、すべての組み合わせについて算出する。
【0104】
これにより、相関値算出部13は、追加された楽曲が前曲で、それ以外の楽曲が次曲である場合の相関値を算出する。相関値算出部13は、算出した相関値を、追加された楽曲のビート情報メタデータとして楽曲DB11へ記憶する。
【0105】
また、相関値算出部13は、追加された楽曲の冒頭部分における各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報と、それ以外の楽曲の末尾部分における各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報との組み合わせにおける相互の相関度合いを示す相関値を、すべての組み合わせについて算出する。
【0106】
これにより、相関値算出部13は、追加された楽曲以外の楽曲が前曲で、追加された楽曲が次曲である場合の相関値を算出する。相関値算出部13は、算出した相関値を、追加された楽曲以外の楽曲のビート情報メタデータとして楽曲DB11へ記憶する。
【0107】
ここで、ビート種類がバスドラムビートおよびスネアドラムビートの2種類である場合、追加された楽曲の各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報と、それ以外の楽曲の各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報との組み合わせは、
図11に示す組み合わせK1〜K36の36通りある。
【0108】
この場合、相関値算出部13は、追加された楽曲の末尾部分におけるバスドラムビートの種類別ビート位置情報等から選択される1つの情報と、それ以外の楽曲の冒頭部分におけるバスドラムビートの種類別ビート位置情報等から選択される1つの情報との組み合わせにおける相互の相関度合いを示す相関値を、組み合わせK1〜K36のそれぞれについて算出する。
【0109】
また、相関値算出部13は、追加された楽曲の冒頭部分におけるバスドラムビートの種類別ビート位置情報等から選択される1つの情報と、それ以外の楽曲の末尾部分におけるバスドラムビートの種類別ビート位置情報等から選択される1つの情報との組み合わせにおける相互の相関度合いを示す相関値を、組み合わせK1〜K36のそれぞれについて算出する。
【0110】
図11において、「バスドラムビート」はバスドラムビートの種類別ビート位置情報、「スネアドラムビート」はスネアドラムビートの種類別ビート位置情報、「全ビート」は全ビート位置情報を示す。また、「バスドラム休符」はバスドラムビートの種類別ビート休符位置情報、「スネアドラム休符」はスネアドラムビートの種類別ビート休符位置情報、「全休符」は全ビート休符位置情報を示す。また、「記憶済みの楽曲」は追加された楽曲以外の楽曲を示す。
【0111】
なお、必ずしもすべての組み合わせについて相関値を算出しなくてもよく、一部を省略してもよい。
【0112】
ステップS1090における相関値の算出方法は、第1の実施形態において
図6を用いて説明した方法と同様である。
【0113】
そして、ステップS1100において、相関値算出部13は、相関値の正規化を行い、正規化した相関値を、相関値テーブルとして楽曲DB11に記憶させる。ここで、例えば、ビート種類がバスドラムビートおよびスネアドラムビートの2種類である場合、相関値算出部13は、
図11の組み合わせK1〜K36のそれぞれに対応する相関値テーブルを生成する。正規化については第1の実施形態と同様であるため説明を省略する。
【0114】
例えば、
図12に示す相関値テーブル1200は、
図11の組み合わせK1に対応する。また、
図13に示す相関値テーブル1300は、
図11の組み合わせK8に対応する。ここで、楽曲によっては、バスドラムビートまたはスネアドラムビートを有していないことがある。
図12、
図13の例では、楽曲Bがバスドラムビートを有していないため、
図12の相関値テーブル1200には楽曲Bが含まれていない。また、楽曲Dがスネアドラムビートを有していないため、
図13の相関値テーブル1300には楽曲Dが含まれていない。
【0115】
なお、第2の実施形態では、ビートおよび休符に関する情報(種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、全ビート休符位置情報)の組み合わせごとに相関値テーブルが存在するため、相関値算出部13は、楽曲ごとに相関値をまとめた相関値テーブルを生成してもよい。例えば、相関値算出部13は、
図14に示すような相関値テーブルを楽曲ごとに生成して、楽曲DB11に記憶させてもよい。
図14に示す相関値テーブル1400は、楽曲Aが前曲である場合の次曲(楽曲B〜E)との間の、ビートおよび休符に関する情報の組み合わせごとの相関値を記憶する相関値テーブルである。
【0116】
次に、曲順決定装置80における曲順決定処理について説明する。
【0117】
曲順決定部14は、第1の実施形態と同様に、連続して再生される楽曲間の相関値の積または総和が最大となるように、楽曲DB11から再生される所定数の楽曲の曲順を決定する。例えば、曲順決定部14は、ユーザの指定により、またはランダムに、楽曲DB11から所定数の楽曲を選択する。そして、曲順決定部14は、選択した楽曲のなかで、連続して再生される楽曲間の相関値の積または総和が最大となるような曲順を決定する。この際、曲順決定部14は、楽曲間の相関値としては、ビートおよび休符に関する情報の各組み合わせに対応する各相関値のなかで最大の相関値を選択することになる。
【0118】
また、曲順決定部14は、第1の実施形態で説明した
図7のフローチャートと同様の曲順決定処理により曲順を決定してもよい。
【0119】
この場合、まず、曲順決定部14は、1曲目の楽曲を選択する。その後、曲順決定部14は、2曲目以降は、同じ曲を繰り返し選択しないようにして、前曲に対する最大の相関値を有する楽曲を次曲として順次選択する。この際、曲順決定部14は、
図14の相関値テーブル1400のような、楽曲ごとの相関値テーブルを用いるとよい。例えば、1曲目として楽曲Aを選択した場合、曲順決定部14は、
図14の相関値テーブル1400に示される全相関値のなかで最大の相関値を有する楽曲を2曲目として選択する。
【0120】
なお、曲順を決定した際、曲順決定部14は、連続する楽曲間の曲順決定の際に採用した相関値に対応するビートおよび休符に関する情報の組み合わせに基づき、必要なビート種類の帯域を残し、不要なビート種類の帯域をカットするための適切なエフェクト処理等も決定し、曲順情報に加えてもよい。
【0121】
以上説明したように、曲順決定装置80は、種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報を保持し、これらを用いて算出した相関値から曲順を決定する。これにより、曲順決定装置80は、ミックス再生に適し、さらに、多様なミックス再生を実現可能な曲順を決定できる。
【0122】
なお、第2の実施形態では、一方の楽曲の末尾部分の種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報のいずれかと、他方の楽曲の冒頭部分の種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報のいずれかとから相関値を算出する場合について説明したが、相関値はこれに限定されない。一方の楽曲の少なくとも一部の種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報のいずれかと、他方の楽曲の少なくとも一部の種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報のいずれかとから相関値を算出すればよい。
【0123】
また、第2の実施形態においても、第1の実施形態と同様に、基本となる基準BPM以外に、その1/nの値、およびn倍の値の少なくともいずれかも、基準BPMとするようにしてもよい。このように複数の基準BPMを設定する場合、ビート情報補正部12は、各楽曲について、複数の基準BPMそれぞれに応じてビート位置および休符位置を補正した種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報を生成する。
【0124】
例えば、基準BPMが、基本となる第1の基準BPMと、第1の基準BPMのn倍の値である第2の基準BPMと、第1の基準BPMの1/n倍の値である第3の基準BPMとを含むとする。この場合、ビート情報補正部12は、各楽曲について、BPMが第1乃至第3の基準BPMのそれぞれと同一の値になるようにビート位置および休符位置を補正した種類別ビート位置情報、全ビート位置情報、種類別ビート休符位置情報、および全ビート休符位置情報を生成する。
【0125】
そして、相関値算出部13は、各楽曲間における、一方の楽曲の、BPMが第1乃至第3の基準BPMのそれぞれと同一の値に補正された各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報と、他方の楽曲の、BPMが第1乃至第3の基準BPMのそれぞれと同一の値に補正された各種の種類別ビート位置情報、全ビート位置情報、各種の種類別ビート休符位置情報、および全ビート休符位置情報から選択される1つの情報との組み合わせにおける相互の相関度合いを示す相関値を、すべての組み合わせについて算出する。曲順決定部14は、これらの相関値を用いて曲順を決定する。なお、必ずしもすべての組み合わせについて相関値を算出しなくてもよい。
【0126】
なお、基準BPMの数は3つに限らない。例えば、第1の基準BPMの(n+1)倍の基準BPMや、第1の基準BPMの1/(n+1)倍の基準BPMも用いてもよい。
【0127】
また、複数の基準BPMを設定する場合、必ずしも、複数の基準BPMすべてを用いなくともよい。例えば、複数の基準BPMのうち、楽曲のBPMと最も差が小さい基準BPMのみに合わせるといった方法や、楽曲のBPMとの差が所定の差である基準BPMのみに合わせるといった方法などを用いることもできる。
【0128】
また、曲順決定装置80において、種類別ビート休符位置情報および全ビート休符位置情報の保持を省略してもよい。この場合、曲順決定装置80は、種類別ビート位置情報および全ビート位置情報を保持し、これらを用いて算出した相関値から曲順を決定する。
【0129】
また、曲順決定装置80において、種類別ビート休符位置情報および全ビート休符位置情報の保持を省略するとともに、異なるビート種類の種類別ビート位置情報の間の相関値、および種類別ビート位置情報と全ビート位置情報との相関値の算出を省略してもよい。
【0130】
この場合、相関値算出部13は、複数の楽曲の各楽曲間における、ビート種類ごとの種類別ビート位置情報の相関度合いを示す相関値、および全ビート位置情報の相関度合いを示す相関値を算出する。曲順決定部14は、これらの相関値を用いて曲順を決定する。
【0131】
また、この場合において、基準BPMが、上述の第1乃至第3の基準BPMを含むとする。この場合、相関値算出部13は、各楽曲間における、BPMが同じ基準BPMに補正された種類別ビート位置情報同士の相関度合いを示す相関値、BPMが互いに異なる基準BPMに補正された種類別ビート位置情報の間の相関度合いを示す相関値、BPMが同じ基準BPMに補正された全ビート位置情報同士の相関度合いを示す相関値、BPMが互いに異なる基準BPMに補正された全ビート位置情報の間の相関度合いを示す相関値を算出する。曲順決定部14は、これらの相関値を用いて曲順を決定する。
【0132】
第1および第2の実施形態の曲順決定装置10,80は、CPUが曲順決定プログラムを実行することによりその機能を実現するように構成できる。曲順決定プログラムは、記録媒体から読みとられて装置に取り込まれてもよいし、通信ネットワーク等を介して伝送されて装置に取り込まれてもよい。