(57)【特許請求の範囲】
【請求項１】
ＭＩＤＩデータに基いて別データに変換し、変換した別データに基いて音声信号を再生するオーディオデータ変換再生システムにおいて、
ＭＩＤＩデータを取得する取得手段と、
取得したＭＩＤＩデータから打楽器音以外のトラックデータを通常音のトラックデータとして抽出する通常音抽出手段と、
抽出した通常音のトラックデータに基いて、通常音波形データを生成する通常音生成手段と、
前記取得したＭＩＤＩデータから打楽器音のトラックデータを抽出する打楽器音抽出手段と、
再生速度を設定する再生速度設定手段と、
抽出した打楽器音のトラックデータに基いて、前記設定した再生速度に応じた再生クロック数で再生した場合の打楽器音波形データを生成する打楽器音生成手段と、
前記打楽器音波形データに対しデータ圧縮を行う打楽器音波形データ圧縮手段と、を備え、
前記再生速度設定手段は、複数の再生速度を設定し、
前記打楽器音生成手段は、前記複数の再生速度に応じた複数の打楽器音波形データを、前記再生速度毎に生成し、
前記打楽器音波形データ圧縮手段は、
前記複数の打楽器音波形データそれぞれに対し、打楽器音波形データ圧縮処理を行い、
前記打楽器音波形データ圧縮処理は、
所定単位で分割された前記打楽器音のトラックデータに対し、互いに類似するものをグループ化し、
前記グループごとに代表波形データを生成し、
前記代表波形データごとに識別符号を付与し、
前記打楽器音のトラックデータを、前記識別符号を用いて識別符号列として表現し、
前記代表波形データ、前記識別符号列、前記設定された再生速度を、前記打楽器音のトラックデータの打楽器音圧縮データとして生成し、
さらに、
前記通常音波形データ及び前記打楽器音圧縮データを取得するデータ取得手段と、
再生速度を設定する再生速度設定手段と、
前記通常音のデータを、前記設定した再生速度に応じた再生クロック数で出力する通常音再生手段と、
前記通常音再生手段からの出力信号を、前記設定した再生速度に応じたシフト量でピッチシフトを行うピッチシフト手段と、
前記設定した再生速度に応じて、複数の打楽器音データのうち１つの打楽器音データを選択する手段と、
前記選択した打楽器音のデータを前記再生クロック数で出力する打楽器音再生手段と、
前記ピッチシフト手段からの出力信号及び前記打楽器音再生手段からの出力信号をミックスして音声信号を再生する音声信号出力手段と、
を有する、
オーディオデータ変換再生システム。
【請求項２】
ＭＩＤＩデータに基いて別データに変換するオーディオデータ変換装置において、
ＭＩＤＩデータを取得する取得手段と、
取得したＭＩＤＩデータから打楽器音以外のトラックデータを通常音のトラックデータとして抽出する通常音抽出手段と、
抽出した通常音のトラックデータに基いて、通常音波形データを生成し記憶する通常音記憶手段と、
前記取得したＭＩＤＩデータから打楽器音のトラックデータを抽出する打楽器音抽出手段と、 
再生速度を設定する再生速度設定手段と、
抽出した打楽器音のトラックデータに基いて、前記設定した再生速度に応じた再生クロック数で再生した場合の打楽器音波形データを生成する打楽器音生成手段と、
前記打楽器音波形データに対しデータ圧縮を行う打楽器音波形データ圧縮手段と、を備え、
前記再生速度設定手段は、複数の再生速度を設定し、
前記打楽器音生成手段は、前記複数の再生速度に応じた複数の打楽器音波形データを、前記再生速度毎に生成し、
前記打楽器音波形データ圧縮手段は、
前記複数の打楽器音波形データそれぞれに対し、打楽器音波形データ圧縮処理を行い、
前記打楽器音波形データ圧縮処理は、
所定単位で分割された前記打楽器音のトラックデータに対し、互いに類似するものをグループ化し、
前記グループごとに代表波形データを生成し、
前記代表波形データごとに識別符号を付与し、
前記打楽器音のトラックデータを、前記識別符号を用いて識別符号列として表現し、
前記代表波形データ、前記識別符号列、前記設定された再生速度を、前記打楽器音のトラックデータの打楽器音圧縮データとして記憶する、
ことを特徴とするオーディオデータ変換装置。
【請求項３】
前記所定単位は、小節単位である、
ことを特徴とする請求項２のオーディオデータ変換装置。
【請求項４】
通常音のデータ及び複数の打楽器音のデータに基いて音声信号を再生するオーディオデータ再生装置において、
前記通常音のデータ及び前記複数の打楽器音のデータを取得するデータ取得手段と、
再生速度を設定する再生速度設定手段と、
前記通常音のデータを、前記設定した再生速度に応じた再生クロック数で出力する通常音再生手段と、
前記通常音再生手段からの出力信号を、前記設定した再生速度に応じたシフト量でピッチシフトを行うピッチシフト手段と、
前記設定した再生速度に応じて、複数の打楽器音データのうち１つの打楽器音データを選択する手段と、
前記選択した打楽器音のデータを前記再生クロック数で出力する打楽器音再生手段と、
前記ピッチシフト手段からの出力信号及び前記打楽器音再生手段からの出力信号をミックスして音声信号を再生する音声信号出力手段と、
を有する、
ことを特徴とするオーディオデータ再生装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＩＤＩデータを別データに変換する技術に関するものである。
【背景技術】
【０００２】
従来、カラオケ再生用のデータとしてＭＩＤＩデータが広く用いられている。ＭＩＤＩデータは、データ量が小さいため、通信容量、記憶容量に制約があるカラオケシステムに適している。また、ＭＩＤＩデータは、それぞれの楽器音の発音タイミングを規定したものであるため、音質を低下させることなくスピードコントロールを行うことが可能である。
【０００３】
しかしながら、ＭＩＤＩデータが上記のような利点を有する反面、ＭＩＤＩデータを再生するためのＭＩＤＩ音源装置が高価であるという欠点がある。また、通信容量、記憶容量の増大に伴い、上記ＭＩＤＩデータにおける少データ量という利点が薄まっている状況にある。そこで、カラオケ装置のコストダウンを目的として、他のフォーマットデータを楽曲データとして用いることにより、ＭＩＤＩ音源装置を不要としたカラオケ装置が提案されている。
【０００４】
例えば、特許文献１には、ＭＩＤＩデータに基づいて再生されたオーディオデータをＭＰ３データに変換し、変換されたＭＰ３データに基づいて楽音再生を行う点が開示されている。
【０００５】
【特許文献１】特開２００２−１３２２７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１によれば、ＭＩＤＩ音源装置を用いることなく、楽音再生を行うことができる。また、ＭＰ３データに対し公知の速度変換処理を行うことにより、スピードコントロールを行うことも可能である。しかしながら、公知の速度変換処理によってスピードコントロールを行う場合、サンプリング周波数を変えることで再生速度を変え、次に再生速度に応じて変化した再生周波数を、ピッチシフトなどによって再生周波数を速度変化前の状態の周波数に再変化させることで、速度だけを変えるたように聞こえる変換処理を行う。ところが、前記変換処理で行われる周波数変換／再変換に伴う帯域制限や演算誤差などの原理的理由により、楽器音のアタック感に影響を与え、アタック感が重要な聴覚的要素となる打楽器（ドラム等）の発音への影響が特に目立つようになる。
また、この影響を解消するために、複数の速度で再生したＭＩＤＩデータを記憶することも物理的には可能ではあるが、記憶容量が急激に増加するという新たな問題が生じる。
【０００７】
本発明は、上述したような状況に鑑みてなされたものであり、ＭＩＤＩデータを別データに変換する技術に関し、データ量及び音質劣化を抑制できる別データに変換し、また、該別データを再生することができるオーディオデータ変換再生システム、オーディオデータ変換装置、オーディオデータ再生装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面である請求項１に係る発明は、ＭＩＤＩデータに基いて別データに変換し、変換した別データに基いて音声信号を再生するオーディオデータ変換再生システムにおいて、ＭＩＤＩデータを取得する取得手段と、取得したＭＩＤＩデータから打楽器音以外のトラックデータを通常音のトラックデータとして抽出する通常音抽出手段と、抽出した通常音のトラックデータに基いて、通常音波形データを生成する通常音生成手段と、前記取得したＭＩＤＩデータから打楽器音のトラックデータを抽出する打楽器音抽出手段と、再生速度を設定する再生速度設定手段と、抽出した打楽器音のトラックデータに基いて、前記設定した再生速度に応じた再生クロック数で再生した場合の打楽器音波形データを生成する打楽器音生成手段と、前記打楽器音波形データに対しデータ圧縮を行う打楽器音波形データ圧縮手段と、を備え、前記再生速度設定手段は、複数の再生速度を設定し、前記打楽器音生成手段は、前記複数の再生速度に応じた複数の打楽器音波形データを、前記再生速度毎に生成し、前記打楽器音波形データ圧縮手段は、前記複数の打楽器音波形データそれぞれに対し、打楽器音波形データ圧縮処理を行い、前記打楽器音波形データ圧縮処理は、所定単位で分割された前記打楽器音のトラックデータに対し、互いに類似するものをグループ化し、前記グループごとに代表波形データを生成し、前記代表波形データごとに識別符号を付与し、前記打楽器音のトラックデータを、前記識別符号を用いて識別符号列として表現し、前記代表波形データ、前記識別符号列、前記設定された再生速度を、前記打楽器音のトラックデータの打楽器音圧縮データとして生成し、さらに、前記通常音波形データ及び前記打楽器音圧縮データを取得するデータ取得手段と、再生速度を設定する再生速度設定手段と、前記通常音のデータを、前記設定した再生速度に応じた再生クロック数で出力する通常音再生手段と、前記通常音再生手段からの出力信号を、前記設定した再生速度に応じたシフト量でピッチシフトを行うピッチシフト手段と、前記設定した再生速度に応じて、複数の打楽器音データのうち１つの打楽器音データを選択する手段と、前記選択した打楽器音のデータを前記再生クロック数で出力する打楽器音再生手段と、前記ピッチシフト手段からの出力信号及び前記打楽器音再生手段からの出力信号をミックスして音声信号を再生する音声信号出力手段と、を有することを特徴とする。
【０００９】
上記オーディオデータ変換再生システムは、取得したＭＩＤＩデータから打楽器音（例えば、ドラム音）のトラックデータを抽出する。そして、抽出したトラックデータに基いて、設定した再生速度で再生した場合の打楽器音波形データを生成する。このとき、複数の再生速度を設定することにより、前記複数の再生速度に応じた複数の打楽器音波形データが、前記再生速度毎に得られる。そして、所定単位で分割されたトラックデータそれぞれに対し、互いに類似する前記分割されたデータをグループ化し、前記グループごとに代表波形データを生成し、前記代表波形データごとに識別符号を付与し、前記波形データを、前記識別符号を用いて識別符号列として表現し、前記代表波形データ、前記識別符号列、前記設定された再生速度を前記打楽器音のトラックデータの打楽器音圧縮データとして生成する。また、打楽器音以外のトラックに基いて通常波形データを生成する。これにより、ＭＩＤＩ音源装置を用いることなく、楽曲再生が可能となる。また、複数の再生速度で再生した打楽器音のデータを生成するので、楽曲の再生時に、打楽器音に対してスピードコントロールを施す必要がないため、音質劣化を防止することができる。さらに、複数の再生速度で再生した打楽器音のデータを圧縮して記憶しておくので、記憶容量の削減が可能となる。また、楽音再生時には、通常音のデータ及び複数の打楽器音データにも基いて音声信号を再生する。また、再生速度に応じて１つの打楽器音データが選択される。通常音データは、該再生速度に応じてピッチシフトが施される。また、通常音及び打楽器音は、同じ再生クロック数で出力される。これにより、ＭＩＤＩ音源装置を用いることなく、楽曲再生が可能となる。また、複数の再生速度で再生した打楽器音のデータを記憶するので、楽曲の再生時に、打楽器音に対してスピードコントロールを施す必要がないため、音質劣化を防止することができる。さらに、通常音と打楽器音の再生クロック数が同じであるので、同期性を確保することができる。
【００１０】
本発明の一側面である請求項２に係る発明は、ＭＩＤＩデータに基いて別データに変換するオーディオデータ変換装置において、ＭＩＤＩデータを取得する取得手段と、取得したＭＩＤＩデータから打楽器音以外のトラックデータを通常音のトラックデータとして抽出する通常音抽出手段と、抽出した通常音のトラックデータに基いて、通常音波形データを生成し記憶する通常音記憶手段と、前記取得したＭＩＤＩデータから打楽器音のトラックデータを抽出する打楽器音抽出手段と、再生速度を設定する再生速度設定手段と、抽出した打楽器音のトラックデータに基いて、前記設定した再生速度に応じた再生クロック数で再生した場合の打楽器音波形データを生成する打楽器音生成手段と、前記打楽器音波形データに対しデータ圧縮を行う打楽器音波形データ圧縮手段と、を備え、前記再生速度設定手段は、複数の再生速度を設定し、前記打楽器音生成手段は、前記複数の再生速度に応じた複数の打楽器音波形データを、前記再生速度毎に生成し、前記打楽器音波形データ圧縮手段は、前記複数の打楽器音波形データそれぞれに対し、打楽器音波形データ圧縮処理を行い、前記打楽器音波形データ圧縮処理は、所定単位で分割された前記打楽器音のトラックデータに対し、互いに類似するものをグループ化し、前記グループごとに代表波形データを生成し、前記代表波形データごとに識別符号を付与し、前記打楽器音のトラックデータを、前記識別符号を用いて識別符号列として表現し、前記代表波形データ、前記識別符号列、前記設定された再生速度を、前記打楽器音のトラックデータの打楽器音圧縮データとして記憶することを特徴とする。
【００１１】
上記オーディオデータ変換装置は、取得したＭＩＤＩデータから打楽器音（例えば、ドラム音）のトラックデータを抽出する。そして、抽出したトラックデータに基いて、設定した再生速度で再生した場合の打楽器音波形データを生成する。このとき、複数の再生速度を設定することにより、前記複数の再生速度に応じた複数の打楽器音波形データが、前記再生速度毎に得られる。そして、所定単位で分割されたトラックデータそれぞれに対し、互いに類似する前記分割されたデータをグループ化し、前記グループごとに代表波形データを生成し、前記代表波形データごとに識別符号を付与し、前記波形データを、前記識別符号を用いて識別符号列として表現し、前記代表波形データ、前記識別符号列、前記設定された再生速度を、トラックデータの打楽器音圧縮データとして生成する。また、打楽器音以外のトラックに基いて通常波形データを生成する。これにより、ＭＩＤＩ音源装置を用いることなく、楽曲再生が可能となる。また、複数の再生速度で再生した打楽器音のデータを記憶するので、楽曲の再生時に、打楽器音に対してスピードコントロールを施す必要がないため、音質劣化を防止することができる。さらに、複数の再生速度で再生した打楽器音のデータを圧縮して記憶しておくので、記憶容量の削減が可能となる。
【００１２】
本発明の一側面である請求項３に係る発明は、請求項２のオーディオデータ変換装置であって、前記所定単位は、小節単位であることを特徴とする。
【００１３】
上記オーディオデータ変換装置は、小節単位で前記打楽器音データを分割して、圧縮データを生成する。打楽器音のトラックが有する、小節単位でのループ再生が多いという性質を理由することにより、高効率のデータ圧縮が可能となる。
【００１４】
本発明の一側面である請求項４に係る発明は、通常音のデータ及び複数の打楽器音のデータに基いて音声信号を再生するオーディオデータ再生装置において、前記通常音のデータ及び前記複数の打楽器音のデータを取得するデータ取得手段と、再生速度を設定する再生速度設定手段と、前記通常音のデータを、前記設定した再生速度に応じた再生クロック数で出力する通常音再生手段と、前記通常音再生手段からの出力信号を、前記設定した再生速度に応じたシフト量でピッチシフトを行うピッチシフト手段と、前記設定した再生速度に応じて、複数の打楽器音データのうち１つの打楽器音データを選択する手段と、前記選択した打楽器音のデータを前記再生クロック数で出力する打楽器音再生手段と、前記ピッチシフト手段からの出力信号及び前記打楽器音再生手段からの出力信号をミックスして音声信号を再生する音声信号出力手段とを有することを特徴とする。
【００１５】
上記オーディオデータ再生装置は、通常音のデータ及び複数の打楽器音データにも基いて音声信号を再生する。また、再生速度に応じて１つの打楽器音データが選択される。通常音データは、該再生速度に応じてピッチシフトが施される。また、通常音及び打楽器音は、同じ再生クロック数で出力される。これにより、ＭＩＤＩ音源装置を用いることなく、楽曲再生が可能となる。また、複数の再生速度で再生した打楽器音のデータを記憶するので、楽曲の再生時に、打楽器音に対してスピードコントロールを施す必要がないため、音質劣化を防止することができる。さらに、通常音と打楽器音の再生クロック数が同じであるので、同期性を確保することができる。
【発明の効果】
【００１６】
本発明によれば、ＭＩＤＩデータに基いて、データ量及び音質劣化を抑制できる別データに生成することができる。また、該別データをＭＩＤＩ音源を用いることなく再生することができる。
【発明を実施するための最良の形態】
【００１７】
［システム構成］
以下、本発明の一実施形態を具体化したカラオケシステムについて説明する。本実施形態においては、本発明のオーディオデータ変換装置及びオーディオデータ再生装置が、カラオケシステム内の構成要素として実現されている。
【００１８】
図１は、本発明の一実施形態におけるカラオケシステムのネットワーク構成を示した図である。
本実施形態のカラオケシステムは、各地のカラオケ店舗等に設置されたカラオケ装置１００と、通信網と、サーバ２００と、から基本的に構成される。
カラオケ装置１００は、カラオケ店舗の客室ごとに設置されている。
カラオケ装置１００とサーバ２００とは、例えば、カラオケ店舗内に設置されるルータを介して、通信網によって接続される。ここで、通信網としては、有線、無線、併用どのような形態でもよく、また、インターネットを利用したＶＰＮ（Virtual Private Network）であってもよい。
【００１９】
本実施形態においては、本発明に係るオーディオデータ変換装置の処理（以下、「オーディオデータ変換処理」ということがある。）が、サーバ２００で行われる。また、本発明に係るオーディオデータ再生装置の処理（以下、「オーディオデータ再生処理」ということがある。）が、カラオケ装置１００で行われる。ただし、以下説明する本実施形態は、本発明の単なる一実施形態にすぎず、オーディオデータ変換処理及びオーディオデータ再生処理は、他の構成を有するシステムにおいても実現可能であることはいうまでもない。
【００２０】
サーバ２００は、サーバコントローラ２０１、ＲＡＭ２０２、ＭＩＤＩ音源２０３、データベース２０４等から基本的に構成される。
サーバコントローラ２０１は、サーバ２００全体を制御するものであり、プロセッサ（例えば、ＣＰＵ）によって実現される。また、本発明を実現するために必要なプロセス（プログラム）を実行する。
【００２１】
プロセスの実行中において、種々のデータの書き込み／読み出しがＲＡＭ２０２に対して行われる。また、ＲＡＭ２０２上の一部の領域は、リングバッファとして用いられる。ＭＩＤＩ音源２０３は、ＭＩＤＩデータに基いて演奏音を再生する。
【００２２】
データベース２０４（記憶媒体）には、カラオケ楽曲の演奏に用いられる種々のデータが記憶されている。例えば、楽曲ＩＤをキーとして、楽音データ、背景データ、歌手名、歌詞、等が記憶されている。
楽音データは、後述するオーディオデータ変換処理によって変換されたデータである。楽音データの再生においては、ＭＩＤＩ音源を必要としない。
また、オーディオデータ変換処理の変換対象となったＭＩＤＩデータを必要に応じ記憶してもよい。
【００２３】
また、歌唱者情報データをデータベース２０４に記憶してもよい。歌唱者情報データベースは、例えば、歌唱者ＩＤをキーとして、ニックネーム、住所、性別、生年月日、等を含む。また、歌唱者情報は、リモコンを用いて登録することができる。また、パソコンや携帯電話を用いて登録することができる。また、カラオケＳＮＳサービスと関連付けてもよい。
【００２４】
次に、カラオケ装置１００について説明する。カラオケ装置１００は、カラオケ店舗の各客室に設置される。
図２は、カラオケ装置１００のシステム構成の一例である。図２に示すように、カラオケ装置１００は、リモコン１０１とコマンダ１０２とから構成される。なお、複数のリモコン１０１が、コマンダ１０２と通信可能となるように構成してもよい。
【００２５】
リモコン１０１は、赤外線通信Ｉ／Ｆ１１１、電波通信Ｉ／Ｆ１１２、ＣＰＵ１１３、ＲＯＭ１１４、ＲＡＭ１１５、表示部１１６、操作部１１７等から基本的に構成される。
【００２６】
コマンダ１０２は、赤外線通信Ｉ／Ｆ１２１、電波通信Ｉ／Ｆ１２２、ＣＰＵ１２３、ＲＯＭ１２４、ＲＡＭ１２５、補助記憶手段１２６、映像音声再生手段１３０、から基本的に構成される。
【００２７】
赤外線通信Ｉ／Ｆ１１１及び赤外線Ｉ／Ｆ１２１は、リモコン１０１とコマンダ１０２とが赤外線を媒体とする無線通信（以下、「赤外線通信」という。）を行うためのインタフェースである。
電波通信Ｉ／Ｆ１１２及び電波Ｉ／Ｆ１２２は、リモコン１０１とコマンダ１０２とが電波を媒体とする無線通信（以下、「電波通信」という。）を行うためのインタフェースである。
【００２８】
また、電波通信Ｉ／Ｆ１１２及び電波通信Ｉ／Ｆ１２２を用いることにより、ホストとの間で種々の情報を送受信することも可能である。
また、コマンダ１０２とリモコン１０１とは、アクセスポイントを介して無線通信を行ってもよい。
リモコン１０１で受け付けた各種操作信号は、コマンダ１０２に送信される。また、種々の情報がコマンダ１０２からリモコン１０１に送信される。ここで、赤外線通信と無線通信とは、送受信される情報の種類等に応じて適宜切り替えて用いることができる。
【００２９】
また、それぞれのリモコン１０１及びコマンダ１０２がイーサネット（登録商標）等で接続されている場合は、それぞれの機器に対して固有のＩＰアドレスが付されている。また、ＩＰアドレスは、後述する識別番号及び所定の生成式に基いて算出することができる。
【００３０】
ＣＰＵ１１３及びＣＰＵ１２３は、本発明を実現するために必要なプログラムを含む種々のプログラムを実行する。ＲＯＭ１１４及びＲＯＭ１２４は、本発明を実現するために必要な情報を含む種々のデータを記憶する。ＲＡＭ１１５及びＲＡＭ１２５は、本発明を実現するために必要な情報を含む種々のデータを一時的に記憶する。
また、ＲＡＭ１２５上の所定の領域は、リングバッファとして機能する。
【００３１】
リモコン１０１には、表示部１１６が設けられている。表示部１１６には、種々の情報を表示する。リモコン１０１には、操作部１１７が設けられている。操作部１１７は、表示部１１６の表面にタッチパネルとして実現してもよい。
【００３２】
コマンダ１０２には、補助記憶手段１２６が設けられている。補助記憶手段１２６には、例えば、楽曲の再生に必要な音声データ及び映像データ等が記憶される。また、ゲーム等のアプリケーションデータが記憶される。
【００３３】
コマンダ１０２には、映像音声再生手段１３０が設けられている。映像音声再生手段１３０は、楽曲の再生及び映像の再生を行う。また、図示しないホストから送信されたデータに基いてストリーミング再生を行うことも可能である。映像音声再生手段１３０のうち、音声を再生するための具体的構成については後述する。
【００３４】
また、図示しない音声入力手段（マイク等）、映像表示手段（ディスプレイ等）が、コマンダ１０２に接続されている。また、コマンダ１０２は、採点機能を有する。
【００３５】
また、リクエストがあった楽曲は、リクエスト毎にサーバからダウンロードしてもよく、また、ホストまたはコマンダに一時的に記憶しておくように構成してもよい。また、一度ダウンロードした楽曲を所定時間のみ記憶するようにしてもよい。
【００３６】
［サーバにおけるオーディオデータ変換処理］
サーバ２００において実行されるオーディオデータ変換処理について説明する。
【００３７】
（内部構成）
図３は、サーバ２００の内部構成の一部を示している。
ＣＰＵ２０１は、ＭＩＤＩ音源２０３に対し、楽曲のＭＩＤＩデータを送信（転送）する。
ＭＩＤＩ音源２０３は、受信したＭＩＤＩデータに基いて再生処理を行い、ＡＤコンバータ２０５に演奏音を出力する。
ＡＤコンバータ２０５は、可変クロックジェネレータ２０６から出力されるクロック信号に基いて、演奏音デジタルデータを生成する。
【００３８】
ＣＰＵ２０１は、可変クロックジェネレータ２０６に制御信号を送信する。可変クロックジェネレータ２０６は、受信した制御信号に基いて、クロック周波数を決定し、該クロック周波数でクロック信号をＡＤコンバータ２０５に送信する。すなわち、ＣＰＵ２０１は、ＭＩＤＩ音源２０３で再生された波形データのサンプリング周波数を制御することができる。
【００３９】
エンコーダ２０７は、上記演奏音デジタルデータを所定のフォーマット（例えば、ＭＰＥＧ）で圧縮し、圧縮演奏音データを生成する。なお、圧縮処理は公知であるので説明は省略する。
記録媒体２０４は、上記圧縮演奏音データを記憶する。また、圧縮演奏音データは、ＭＩＤＩ音源を用いることなく再生することができる。
【００４０】
（オーディオデータ変換処理）
オーディオデータ変換処理の詳細について説明する。オーディオデータ変換処理では、ＭＩＤＩデータが他のフォーマットデータに変換する。オーディオデータ変換処理では、ＭＩＤＩデータが、打楽器音トラックとそれ以外のトラック（以下、「通常音トラック」という。）に分けられ、それぞれのトラックに対し別々の処理が行われる。なお、ＭＩＤＩデータは、データベース２０４または別の記憶媒体に記憶されているものとする。
【００４１】
（通常音トラックに対するオーディオデータ変換処理）
まず、通常音トラックに対するオーディオデータ変換処理について説明する。打楽器音トラックをミュートとした状態で、ＭＩＤＩデータを再生し、再生された演奏音を圧縮して記録媒体２０４に記憶する。なお、「打楽器音トラックをミュートした状態」とは、打楽器音トラックのベロシティを０として再生することをいう。
【００４２】
また、このときの可変クロックジェネレータ２０６のクロック信号は、通常速度（１００％）で再生する場合のクロック周波数（例えば、４４．１ｋＨｚ）である。
記録媒体２０４に記憶された圧縮演奏音データを再生する場合は、圧縮演奏音データを解凍する。そして、解凍した演奏音データを指定された再生速度に応じたサンプリング周波数で読み出し、ピッチシフタを介して出力する（公知の速度変換処理）。すなわち、１つの圧縮演奏音データが、複数の再生速度に対応することになる。
【００４３】
（打楽器音トラックに対するオーディオデータ変換処理）
次に、打楽器音トラックに対するオーディオデータ変換処理について説明する。打楽器音は、アタック感が重要な聴覚的要素である。ここで、上記公知の速度変換処理は、その原理的理由により出力音のアタック感に影響を及ぼす。したがって、打楽器音トラックを、通常音トラックと同様に処理した場合は、速度を変更して再生した場合に、悪影響を及ぼすことになる。
【００４４】
そこで、本実施形態においては、複数の速度ごとに再生した打楽器の演奏音を、それぞれ、所定のサンプリング周波数（詳細は後述）で記憶する。このとき、ＭＩＤＩデータの発音タイミングを制御することで、複数の再生速度での再生を行う。発音タイミングを制御（すなわち、再生速度を上げるときは、発音タイミングを早める、また、再生速度を下げるときは、発音タイミングを遅くする）ため、再生速度の変更に伴う音質の低下を防ぐことができる。
複数の再生速度ごとに打楽器音の演奏音を記憶することによりデータ容量が急激に増加することになるため、本実施形態においては、以下のような圧縮処理を行う。
【００４５】
打楽器音は、小節単位でのループ再生が多いという特性を有する。すなわち、複数の小節において同じＭＩＤＩデータの並びが用いられている。そこで、本実施形態においては、同じＭＩＤＩデータを共通化して演奏音データを記憶することでデータ量の圧縮を図る。また、それぞれの小節のＭＩＤＩデータに識別符号を付与する。このとき、同じＭＩＤＩデータの小節には、同じ識別符号を付与する。これにより、ＭＩＤＩデータの進行情報は、識別記号列として表現され、また、演奏音データは重複することなく記憶される。
【００４６】
図４は、オーディオデータ変換処理によって生成される楽曲データのデータ構造の一例である。生成される楽曲データは、通常音トラック部分と打楽器音トラック部分から構成される。
【００４７】
通常音トラック部分には、ヘッダと１００％の再生速度で再生した場合の圧縮演奏音データが記憶されている。
打楽器音トラック部分には、ヘッダとそれぞれの再生速度で再生した場合のループ元データ列が記憶されている。
【００４８】
ループ元データは、それぞれ、小節単位の打楽器音の演奏音データである。また、１つの再生速度におけるループ元データのそれぞれは、重複していない。ループ元データ列の生成方法については後述する。
【００４９】
また、打楽器音トラックの部分には、ループ展開データが記憶されている。ループ展開データは、上述した識別記号列である。ループ展開データの生成方法については後述する。
【００５０】
図４に示した楽曲データにおいては、再生速度（スピコン値）が、「＋５」〜「−５」の１１段階の再生速度におけるループ元データ列が生成されている。また、それぞれの再生速度は、３％刻みである。なお、図４に示す再生速度の段階、及び、刻み値は単なる一例であり、適宜設定可能である。
また、ループ展開データは複数の再生速度において共通に用いられる。
【００５１】
図５は、ループ元データのデータ構造の一例である。図５に示すように、ループ元データは、ループ元ヘッダとループ元実データとから構成される。ループ元ヘッダには、ループ元実データのうち実際に使用するフレーム数が格納されている。これは、ループ元実データが圧縮データである場合、展開後（解凍後）のデータサイズと圧縮前のデータサイズとが同じとは限らないためである。すなわち、通常の音声圧縮コーデック（エンコーダ＋デコーダ）は、一定のブロックサイズ毎にデータを分割して圧縮しており、元データが上記サイズの倍数以外のサイズであった場合、無音データの付与、または、元データの削除が行われるためである。なお、ループ元データは、楽曲の１小節分またはその倍数分の演奏データである。
【００５２】
（ループ展開データ及びループ元データ列の生成処理）
次に、打楽器音トラックに対するオーディオデータ変換処理を構成するループ展開データ生成処理及びループ元データ列生成処理について説明する。
【００５３】
（ループ展開データ生成処理）
図６は、ループ展開データ生成処理のフローチャートである。
Ｓ１において、ループ展開データを作成する。ここでは、オーディオデータ変換処理の対象となる楽曲の小節分だけループ展開データが作成される。
Ｓ２において、ループ展開データを初期化する。ここでは、すべてのループ展開データに対し、初期値として「０」をセットする。
【００５４】
Ｓ３において、ループ展開記述値に「１」をセットする。なお、ループ展開記述値は、ＲＡＭ２０２上の所定領域に確保されているものとする。
Ｓ４において、比較元小節を特定する。ここでは、楽曲の先頭から順に、「０」がセットされているループ展開データを探索していき、「０」がセットされているループ展開データが見つかると、そのループ展開データに対応する小節を、「比較元小節」として特定する。したがって、ループ展開データ生成処理実行開始後、最初にＳ４の処理を実行する場合は、楽曲の最初の小節が、「比較元小節」となる。
【００５５】
Ｓ５において、比較元小節のループ展開データに、ループ展開記述値をセットする。
Ｓ６において、チェック対象小節をセットする。ここでは、楽曲の先頭の小節が「チェック対象小節」としてセットされる。
【００５６】
Ｓ７において、チェック対象小節のループ展開データが０（初期値）であるか否かを判断する。チェック対象小節のループ展開データが０ではないと判断した場合は（Ｓ７：ＮＯ）、Ｓ１０に移行する。すなわち、既に所定のループ展開記述値がセットされているものと判断し、ループ展開データに新たなループ展開記述値をセットしない。
【００５７】
一方、チェック対象小節のループ展開データが０であると判断した場合は（Ｓ７：ＹＥＳ）、Ｓ８に移行する。
Ｓ８において、比較元小節のＭＩＤＩデータとチェック対象小節のＭＩＤＩデータは同一か否かを判断する。
同一ではないと判断した場合は（Ｓ８：ＮＯ）、Ｓ１０に移行する。一方、同一であると判断した場合は（Ｓ８：ＹＥＳ）、Ｓ９に移行する。なお、同一か否かの判断においては、互いのＭＩＤＩデータが完全に一致していなくても、所定範囲内の差であれば同一であると判断してもよい。例えば、互いのＭＩＤＩデータのベロシティ値、発音タイミングの差分値が一定範囲内であれば、同一であると判断してもよい。
【００５８】
Ｓ９において、チェック対象小節のループ展開データに、ループ展開記述値をセットする。これにより、比較元小節のループ展開データとチェック対象小節のループ展開データには、同じループ展開記述値がセットされることになる。
【００５９】
Ｓ１０において、チェック対象小節が、楽曲の最後の小節であるか否かを判断する。楽曲の最後の小節ではないと判断した場合は（Ｓ１０：ＮＯ）、Ｓ１１に移行する。
Ｓ１１において、チェック対象小節として、現位置の次の小節をセットする。そして、Ｓ７に戻る。これにより、チェック対象小節が、楽曲の最後の小節となるまで、Ｓ７〜Ｓ１１の処理が繰り返し行われることになる。
【００６０】
一方、Ｓ１０において、チェック対象小節が、楽曲の最後の小節であると判断した場合は（Ｓ１０：ＹＥＳ）、Ｓ１２に移行する。
Ｓ１２において、「０」がセットされているループ展開データが存在するか否かを判断する。「０」がセットされているループ展開データが存在すると判断した場合は（Ｓ１２：ＹＥＳ）、Ｓ１３に移行する。
Ｓ１３において、ループ展開データ記述値を「１」加算する。その後、Ｓ４に戻る。
【００６１】
次に、上述したループ展開データ生成処理の具体例について説明する。図７乃至図９は、ループ展開データ生成処理におけるループ展開データの内容及びＭＩＤＩデータの比較を概略的に示す説明図である。なお、以下の説明においては、必要に応じ、図６のループ展開データ生成処理のステップ番号を用いる。
【００６２】
ここでは、第１小節〜第６小節で構成されるＭＩＤＩデータを例として、ループ展開データにセットされる値を説明する。
図７（１）に示すように、第１小節は「ＭＩＤＩデータＡ」、第２小節は「ＭＩＤＩデータＡ」、第３小節は「ＭＩＤＩデータＢ」、第４小節は「ＭＩＤＩデータＣ」、第５小節は「ＭＩＤＩデータＡ」、第６小節は「ＭＩＤＩデータＢ」であるとする。
【００６３】
図７（２）に示すように、ループ展開データは、小節ごとに作成されている。また、図７（２）は、図６のＳ２の処理が終了した時点でのループ展開データの内容を示しており、すべてのループ展開データは「０」である。
【００６４】
そして、図６のＳ４において、第１小節を「比較元小節」として特定する。また、第１小節のループ展開データ（以下、「第ｎ小節のループ展開データ」を「第ｎ展開データ」といい、「第ｎ小節のＭＩＤＩデータ」を「第ｎＭＩＤＩデータ」ということがある。）に「１」がセットされる。
そして、図７（３）に示すように、第１ＭＩＤＩデータと、第２ＭＩＤＩデータ〜第６ＭＩＤＩデータとがそれぞれ比較される。図７（３）では、第２ＭＩＤＩデータ、第５ＭＩＤＩデータについて、第１ＭＩＤＩデータと同一であると判断される。
【００６５】
これにより、図７（４）に示すように、第１展開データ、第２展開データ、第５展開データに「１」がセットされる。
【００６６】
その後、図８（５）に示すように、「０」がセットされているループ展開データのうち、最も先頭に近いループ展開データである「第３データ」に対応する「第３小節」が、次の「比較元小節」として特定される。このとき、ループ展開記述値は「２」となる（図６のＳ１３参照）。
【００６７】
そして、図８（６）に示すように、第３ＭＩＤＩデータと、第４ＭＩＤＩデータ及び第６ＭＩＤＩデータとがそれぞれ比較される。図８（６）では、第６ＭＩＤＩデータについて、第３ＭＩＤＩデータと同一であると判断される。
【００６８】
これにより、図８（７）に示すように、第３展開データ、第６展開データに「１」がセットされる。
【００６９】
その後、図９（８）に示すように、「０」がセットされているループ展開データは、「第４展開データ」のみであるため、「第４展開データ」に対応する「第４小節」が、次の「比較元小節」として特定される。このとき、ループ展開記述値は「３」となる（図６のＳ１３参照）。
【００７０】
そして、図９（９）に示すように、第４ＭＩＤＩデータと比較されるＭＩＤＩデータは存在しない。これにより、図９（１０）に示すように、第４展開データに「３」がセットされる。
【００７１】
以上の処理によって、「１１２３１２」から構成されるループ展開データ（識別記号列）を生成することができる。
【００７２】
（ループ元データ列生成処理）
次に、ループ元データ列生成処理について説明する。図１０は、ループ元データ列生成処理のフローチャートである。ループ元データ列生成処理は、設定される複数の再生速度ごとに実行される。
Ｓ２１において、再生速度を設定する。例えば、１１５％、１１２％、１０９％、１０６％、１０３％、１００％、９７％、９４％、９１％、８８％、８５％のいずれかが設定される。なお、設定する再生速度は、上記以外のものであってもよい。
【００７３】
Ｓ２２において、打楽器音トラック以外をミュートした状態で、Ｓ２１で設定された速度で再生して録音する。再生速度は、ＭＩＤＩデータの発音タイミングを制御することにより制御する。録音は、例えば、ＲＡＭ１２５上に対して行う。このときの、再生サンプリング周波数は、再生速度に比例して設定する。例えば、再生速度が１００％であるときの再生サンプリング周波数を４４１００Ｈｚとした場合、再生速度が１１５％の場合は、再生サンプリング周波数を５０７１５Ｈｚ（＝４４１００×１．１５）とする。また、再生速度が８５％の場合は、再生サンプリング周波数を３７４８５Ｈｚ（＝４４１００×０．８５）とする。
【００７４】
再生速度と再生サンプリング周波数との関係を上記のように設定することによって、各速度の演奏音データのサンプル数（フレーム数）は同一にすることができる。すなわち、各再生速度における小節ごとのフレーム数を同一にすることができる。これにより、ループ展開データを各速度で共通化でき、楽曲の再生中に速度変更（スピードコントロール、スピコン）指示があった場合において、変更後のデータにおける読み出し位置を容易に決定することができる。
【００７５】
Ｓ２３において、ループ展開データ比較値に「１」をセットする。なお、ループ展開データ比較値は、ＲＡＭ２０２上の所定領域に記憶されているものとする。
Ｓ２４において、ループ展開データ比較値と一致するループ展開データが存在するか否かを判断する。
【００７６】
一致するループ展開データが存在すると判断した場合は（Ｓ２４：ＹＥＳ）、Ｓ２５に移行する。一致するループ展開データが存在しないと判断した場合は（Ｓ２４：ＮＯ）、ループ元データ列処理を終了する。
【００７７】
Ｓ２５において、一致するループ展開データの小節に対応する録音データを切り出し、ループ元データを作成する。
Ｓ２６において、ループ展開データ比較値を「１」増加する。その後、Ｓ２４に戻る。
【００７８】
以上説明したループ展開データ生成処理及びループ元データ列生成処理によって、図４に示される楽曲データの打楽器音トラック部分を生成することができる。
【００７９】
以上説明したサーバにおけるオーディオデータ変換処理によれば、サーバ２００は、ＭＩＤＩ音源を必要としないオーディオフォーマットの楽音データをデータベース２０４に記憶することができる。これにより、コマンダからの楽曲リクエストに対し、上記楽音データを送信することができるので、コマンダにおいてＭＩＤＩ音源を有する必要がない。また、オーディオデータ変換処理によって、打楽器音の特性に応じた圧縮処理を行うので、記憶容量の急激な増加を防止することができる。
【００８０】
［コマンダにおける処理］
次に、コマンダ１０２において実行されるオーディオデータ再生処理について説明する。本実施形態においては、コマンダ１０２は、サーバ２００から受信したオーディオデータ変換処理がなされた楽音データに基いて、オーディオデータ再生処理を行う。コマンダ１０２は、楽曲再生指示があった場合に、上記楽音データに基いて再生を行う。また、スピコン値の変更指示があった場合に、上記楽音データに基いて速度制御を行う。
【００８１】
（入力受付処理）
図１１は、コマンダで実行される入力受付処理のフローチャートである。
Ｓ３１において、パネル、リモコン１０１から入力操作があったか否かを判断する。また、入力操作がない間、処理はＳ３１で待機することになる。
【００８２】
入力操作があったと判断した場合は（Ｓ３１：ＹＥＳ）、Ｓ３２に移行する。
Ｓ３２において、入力操作が楽曲リクエストであるか否かを判断する。楽曲リクエストであると判断した場合は（Ｓ３２：ＹＥＳ）、Ｓ３３に移行する。
Ｓ３３において、リクエストされた楽曲の再生を行う。楽曲の再生処理は公知であるので、説明を省略する。
【００８３】
一方、Ｓ３２において、入力操作が楽曲リクエストでないと判断した場合は（Ｓ３２：ＮＯ）、Ｓ３４に移行する。
Ｓ３４において、入力操作がスピコン値変更であるか否かを判断する。スピコン値変更ではないと判断した場合は（Ｓ３４：ＮＯ）、Ｓ３５に移行する。
Ｓ３５において、入力操作指示に基いた処理を行う。例えば、楽曲の検索、リクエスト、ゲームの実行、所定の情報の提示、飲食の注文等、種々の処理が実行される。
【００８４】
一方、Ｓ３４において、入力操作がスピコン値変更であると判断した場合は（Ｓ３４：ＹＥＳ）、Ｓ３６に移行する。
Ｓ３６において、操作内容に応じて、スピコン値エリアを書き換える。ここで、スピコン値エリアは、ＲＡＭ１２５上の所定の領域に確保されているものとする。また、スピコン値エリアは、後述するデコーダＢ制御処理においてアクセスされる。
【００８５】
Ｓ３７において、操作内容に応じて、演奏音の出力クロック値を変更する。具体的には、可変クロックジェネレータ（後述）が出力するクロック信号のクロック周波数を変更するための指示を行う。
【００８６】
Ｓ３８において、操作内容に応じて、ピッチシフタ（後述）にシフト値を指示する。ピッチシフタは、速度変更に伴うピッチ周波数の変更を補正するためのものである。
【００８７】
図１２は、コマンダ１０２の内部構成の一部を示している。
ＲＡＭ１２５は、リングバッファのための領域を有する。また、後述する複数のプロセスでアクセスされる領域（共用メモリ領域）を有する。
また、再生対象の通常演奏データ、ループ元データ列、ループ展開データは、ＲＡＭ１２５に記憶されているものとする。
【００８８】
デコーダ１３１は、通常音の圧縮データを解凍する。圧縮データは、公知の解凍方法によって解凍（展開）される。解凍データは、リングバッファ（通常演奏用リングバッファ）に順次書き出される。
デコーダ１３２は、打楽器音の圧縮データを解凍する。解凍処理の詳細については後述する。解凍データは、リングバッファ（ループ展開データ用リングバッファ）に順次書き出される。
【００８９】
なお、図１２においては、説明の便宜上、ＣＰＵ１２３、デコーダ１３１、デコーダ１３２を分けて記載しているが、ＣＰＵ１２３が、デコーダ１３１及びデコーダ１３２での処理の全部または一部を処理するように構成してもよい。
【００９０】
ＣＰＵ１２３は、可変クロックジェネレータ１３３に対し、制御信号を送信する。スピコンの変更指示があった場合に、その指示に応じたクロック信号を生成することを指示するための制御信号を送信する（図１１のＳ３７参照）。
ＣＰＵ１２３は、ピッチシフタ１３６に対し、制御信号を送信する。スピコン指示があった場合に、その指示に応じたシフト量を指示するための制御信号を送信する（図１１のＳ３８参照）。
【００９１】
可変クロックジェネレータ１３３は、ＤＡコンバータ１３４及びＤＡコンバータ１３５に対し、受信した制御信号に基いたクロック周波数のクロック信号を送信する。
【００９２】
ＣＰＵ１２３は、通常演奏用リングバッファに記憶される通常音の解凍データを、ＤＡコンバータ１３４に転送する。
ＣＰＵ１２３は、ループ展開データデータ用リングバッファに記憶される解凍データを、ＤＡコンバータ１３５に転送する。
【００９３】
ＤＡコンバータ１３４は、通常音の解凍データをクロック信号に基いて出力する。ＤＡコンバータ１３５は、打楽器音の解凍データをクロック信号に基いて出力する。
なお、図１２においては、説明の便宜上、ＤＡコンバータ１３４及びＤＡコンバータ１３５を分けて記載しているが、１つのＤＡコンバータで実現してもよい。
【００９４】
ピッチシフタ１３６は、入力された演奏音に対し、制御信号に基いてピッチシフトを行う。ピッチシフタ１３６によって、演奏音の音程を制御する。
通常音と打楽器音はミックスされ、スピーカ１３７により音声出力される。
なお、通常音のみピッチシフタ１３６が介され、前記ピッチシフタ１３６による前記通常音の信号伝達遅延時間が生じるときは、前記遅延時間に応じてＣＰＵ１２３による打楽器音の解凍タイミングの変更や、ＤＡコンバータ１３５の出力に前記遅延時間と同じ遅延時間の遅延線挿入などを行えばよい。
【００９５】
（オーディオデータ再生処理）
次に、オーディオデータ再生処理について説明する。オーディオデータ再生処理は、楽音再生処理、デコーダＡ制御処理、デコーダＢ制御処理に分けることができる。これらの処理は、マルチプロセスとして実行される。
【００９６】
（楽音再生処理）
まず、楽音再生処理について説明する。図１３は、楽曲再生処理のフローチャートである。
Ｓ４１において、デコーダＡ状態エリアをクリアする。また、デコーダＢ状態エリアをクリアする。それぞれのエリアは、ＲＡＭ１２５上の所定の領域に確保されているものとする。また、それぞれのエリアは、後述するデコーダＡ制御処理、デコーダＢ制御処理においてアクセスされる。
【００９７】
Ｓ４２において、デコーダＡ制御処理の開始を指示する。また、デコーダＢ制御処理の開始を指示する。デコーダＡ制御処理は、デコーダ１３１（図１２）で実行される処理である。デコーダＢ制御処理は、デコーダ１３２（図１２）で実行される処理である。それぞれの処理については後述する。
【００９８】
Ｓ４３において、各種ポインタを初期化する。ここでは、通常演奏データ用リングバッファの読み出し位置を示すポインタ、及び、ループ展開データ用リングバッファの読み出し位置を示すポインタを初期化する。
【００９９】
Ｓ４４において、デコーダＡ及びデコーダＢでのデコードが終了したか否かを判断する。この判断は、デコーダＡ状態エリアの値（後述）及びデコーダＢ状態エリアの値（後述）を参照することにより行われる。
【０１００】
デコーダＡ及びデコーダＢでのデコードが終了したと判断した場合は（Ｓ４４：ＹＥＳ）、楽曲再生処理を終了する。
デコーダＡまたはデコーダＢでのデコードが終了していないと判断した場合は（Ｓ４４：ＮＯ）、Ｓ４５に移行する。
【０１０１】
その後、通常演奏データ用リングバッファ及びループ展開データ用リングバッファに一定サイズのデータが書き込まれるまでＳ４５で待機する。
通常演奏データ用リングバッファ及びループ展開データ用リングバッファに一定サイズのデータが書き込まれたと判断した場合は（Ｓ４５：ＹＥＳ）、Ｓ４６に移行する。
【０１０２】
Ｓ４６において、通常演奏データ用リングバッファの内容及びループ展開データ用リングバッファの内容をそれぞれフレーム単位で出力する。これにより、スピーカ１３７から演奏音が出力されることになる。また、このときの再生クロック数は、通常音（通常演奏用リングバッファの内容）及び打楽器音（ループ展開データ用リングバッファ内容）に対して同一である。
【０１０３】
Ｓ４７において、通常演奏データ用リングバッファの読み出し位置及びループ展開データ用リングバッファの読み出し位置を進める。すなわち、通常演奏データ用リングバッファの読み出し位置を示すポインタ、及び、ループ展開データ用リングバッファの読み出し位置を示すポインタを更新する。
【０１０４】
（デコーダＡ制御処理）
次に、デコーダＡ制御処理について説明する。図１４は、デコーダＡ制御処理のフローチャートである。
【０１０５】
Ｓ５１において、各種ポインタを初期化する。ここでは、通常演奏データの読み出し位置を示すポインタ、及び、通常演奏用リングバッファの書き出し位置を示すポインタを初期化する。
Ｓ５２において、通常演奏データを読み出し位置から一定サイズ分デコードする。
【０１０６】
その後、通常演奏用リングバッファに書き込みが可能となるまでＳ５３で待機する。
通常演奏用リングバッファへの書き込みが可能となったと判断した場合は（Ｓ５３：ＹＥＳ）、Ｓ５４に移行する。
【０１０７】
Ｓ５４において、通常演奏データ用リングバッファにデコード結果を書き込む。
Ｓ５５において、通常演奏データ読み出し位置及びリングバッファの書き込み位置を進める。すなわち、通常演奏データの読み出し位置を示すポインタ、及び、通常演奏用リングバッファの書き出し位置を示すポインタを更新する。
【０１０８】
Ｓ５６において、データエンドか否かを判断する。すなわち、楽曲のすべての演奏データをリングバッファに書き込んだか否かを判断する。
【０１０９】
データエンドではないと判断した場合は（Ｓ５６：ＮＯ）、Ｓ５２に戻る。一方、データエンドであると判断した場合は（Ｓ５６：ＹＥＳ）、Ｓ５７に移行する。
Ｓ５７において、デコード終了を示す情報を、デコーダＡ状態エリアに書き込む。コード終了を示す情報は、楽曲再生処理（図１３）のＳ４４において参照される。
【０１１０】
（デコーダＢ制御処理）
次に、デコーダＢ制御処理について説明する。図１５は、デコーダＢ制御処理のフローチャートである。
Ｓ６１において、各種ポインタを初期化する。ここでは、ループ展開データの読み出し位置を示すポインタ、及び、ループ展開データ用リングバッファの書き出し位置を示すポインタを初期化する。
【０１１１】
Ｓ６２において、１小節書き出し値に０をセットする。１小節書き出し値は、ループ展開用リングバッファに書き出したデータ量を示すものである。また、１小節書き出し値は、ＲＡＭ１２５上の所定領域に記憶される。
Ｓ６３において、１小節分のループ展開データを読み込む。ここで、読み出される小節は、小節指定データによって決定される。
【０１１２】
Ｓ６４において、ループ展開データ及びスピコン値に基いてループ元データを決定する。ループ展開データに基いて、再生すべき小節で用いられるループ元データ（例えば、ループデータ１及びループデータ３）が決定される。本実施形態においては、再生速度ごとにループ元データ（例えば、複数のループデータ１及び複数のループデータ３）が存在するため、スピコン値に基いて、再生速度ごとに有する複数のループ元データのうち、どのループ元データを用いるかが決定される。
【０１１３】
Ｓ６５において、ループ元データを読み出し位置から一定サイズ分デコードする。
Ｓ６６において、スピコン値が変更されたか否かを判断する。スピコン値が変更されたと判断した場合は（Ｓ６６：ＹＥＳ）、Ｓ６４に戻る。
【０１１４】
一方、スピコン値は変更されていないと判断した場合は（Ｓ６６：ＮＯ）、Ｓ６７に移行する。
ループ展開データ用リングバッファに書き出し可能となるまで、Ｓ６７で待機する。ループ展開データ用リングバッファに書き出し可能と判断した場合は（Ｓ６７：ＹＥＳ）、Ｓ６８に移行する。
【０１１５】
Ｓ６８において、Ｓ６５でデコードした内容をループ展開データ用リングバッファに書き出す。
Ｓ６９において、ループ元データの読み出し位置及びループ展開データ用リングバッファ書き出し位置を進める。すなわち、ループ元データの読み出し位置を示すポインタ、及び、ループ展開データ用リングバッファの書き出し位置を示すポインタを制御する。
【０１１６】
Ｓ７０において、小節書き出し値を、ループ展開用リングバッファに書き出したデータ量に基いて加算する。
Ｓ７１において、１小節分のループ展開データの書き出しを終了したか否かを判断する。この判断は、小節書き出し値を参照して行われる。
【０１１７】
書き出しを終了したと判断した場合は（Ｓ７１：ＹＥＳ）、Ｓ７２に移行する。書き出しを終了していないと判断した場合は（Ｓ７１：ＮＯ）、Ｓ６５に戻る。
【０１１８】
Ｓ７２において、小節指定データが最後の小節を指示しているか否かを判断する。最後の小節を指示していると判断した場合は（Ｓ７２：ＹＥＳ）、Ｓ７３に移行する。
最後の小節を指示していないと判断した場合は（Ｓ７２：ＮＯ）、小節指定データを「１」加算し、Ｓ６２に戻る。
【０１１９】
Ｓ７３において、デコーダ終了を示す情報を、デコーダＢ状態エリアに書き込む。コード終了を示す情報は、楽曲再生処理（図１３）のＳ４４において参照される。
【０１２０】
以上説明したコマンダにおけるオーディオデータ再生装置によれば、コマンダ１０２は、サーバ２００から受信した楽曲データ（通常演奏データ、ループ元データ、ループ展開データ）に基いて楽曲再生を行うので、ＭＩＤＩ音源を必要としない。これにより、ＭＩＤＩ音源に係るコストを削減することができる。また、通常演奏データ及びループ展開データに対し、同じ再生クロック数で再生することができるので、データの読み出し制御を簡素化することができ、また、同期性を確保することができる。
【０１２１】
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることはいうまでもない。
【０１２２】
例えば、上述した実施形態においては、サーバ２００においてオーディオデータ変換処理を行っていたが、カラオケ店舗内のホストによってオーディオデータ変換処理を行ってもよい。この場合、ホストはＭＩＤＩ音源を必要とするが、ホストによってフォーマット変換された楽曲データをコマンダ１０２に送信することにより、コマンダ１０２はＭＩＤＩ音源を必要としない。
【０１２３】
また、上述した各フローチャートは単なる一例であり、該各フローチャートの処理と同等の結果を得ることできるものであれば、他のフローチャートによって処理を実現してもよい。
【０１２４】
また、上述したオーディオデータ変換処理、オーディオデータ再生処理としても本発明は実現可能である。さらに、上記処理を実現するためのプログラム、該プログラムが記録された記録媒体としても本発明は実現可能である。
【図面の簡単な説明】
【０１２５】
【図１】カラオケシステムの構成の一例を示した図である。
【図２】リモコン及びコマンダの構成の一例を示した図である。
【図３】サーバの内部構成の一部を示した図である。
【図４】楽曲データのデータ構造の一例を示した図である。
【図５】ループ元データのデータ構造の一例を示した図である。
【図６】ループ展開データ生成処理のフローチャートである。
【図７】ループ展開データの内容及びＭＩＤＩデータの比較を示した図である。
【図８】ループ展開データの内容及びＭＩＤＩデータの比較を示した図である。
【図９】ループ展開データの内容及びＭＩＤＩデータの比較を示した図である。
【図１０】ループ元データ列生成処理のフローチャートである。
【図１１】入力受付処理のフローチャートである。
【図１２】コマンダの内部構成の一部を示した図である。
【図１３】入力受付処理のフローチャートである。
【図１４】デコーダＡ制御処理のフローチャートである。
【図１５】デコーダＢ制御処理のフローチャートである。
【符号の説明】
【０１２６】
１００    カラオケ装置
１０２    コマンダ
１２３    ＣＰＵ
１２５    ＲＡＭ
１３０    映像音声再生手段
１３１    デコーダ
１３２    デコーダ
１３３    可変クロックジェネレータ
１３４    ＤＡコンバータ
１３５    ＤＡコンバータ
１３６    ピッチシフタ
１３７    スピーカ
２００    サーバ
２０１    サーバコントローラ（ＣＰＵ）
２０２    ＲＡＭ
２０３    ＭＩＤＩ音源
２０４    データベース
２０５    ＡＤコンバータ
２０７    エンコーダ
【図１】
0004968109.tif 000002
【図２】
0004968109.tif 000003
【図３】
0004968109.tif 000004
【図４】
0004968109.tif 000005
【図５】
0004968109.tif 000006
【図６】
0004968109.tif 000007
【図７】
0004968109.tif 000008
【図８】
0004968109.tif 000009
【図９】
0004968109.tif 000010
【図１０】
0004968109.tif 000011
【図１１】
0004968109.tif 000012
【図１２】
0004968109.tif 000013
【図１３】
0004968109.tif 000014
【図１４】
0004968109.tif 000015
【図１５】
0004968109.tif 000016