(57)【要約】      （修正有）【課題】運動やダンスなどを行っているときに、テンポを判断し辛い曲が再生されたとしても、ユーザはその曲に合わせて運動やダンスなどを行うことが可能となる演奏装置およびその制御方法を実現するプログラムを提供する。【解決手段】所定の時間毎に、加速度検出回路から出力された加速度値が読み取られ、その読み取られた加速度値が加速度履歴バッファに蓄積される。曲データが選択されて、ユーザが再生された曲に合わせて運動やダンスなどを行うと、検出された加速度値は、曲のテンポ（音楽テンポ）に応じた周期を持つようになる。加速度履歴バッファに蓄積された加速度値が、変動の中心値に対してゼロクロスする地点間の時間間隔を求めることで、加速度値の周期（運動テンポ）が求められる。この運動テンポと音楽テンポとの差分が所定値を超えると、ガイド音が発音され、その差分が所定値以内であれば、ガイド音の発音が停止する。【選択図】図５
2008242285.tif 000002
【特許請求の範囲】
【請求項１】
演奏データの音楽テンポを取得する音楽テンポ取得手段と、
前記演奏データを再生する再生手段と、
ユーザが行う反復運動の運動テンポを検出する運動テンポ検出手段と、
前記音楽テンポ取得手段によって取得された音楽テンポと前記運動テンポ検出手段によって検出された運動テンポとの差が所定の値より大きい場合には、前記取得された音楽テンポで、前記再生手段によって再生された演奏データの拍に合わせて、ガイド音を発音させる一方、前記取得された音楽テンポと前記検出された運動テンポとの差が前記所定の値以下である場合には、前記ガイド音を発音させないように制御する制御手段と
を有することを特徴とする演奏装置。
【請求項２】
前記反復運動の停止を検出する運動停止検出手段をさらに有し、
前記制御手段は、前記運動停止検出手段によって前記反復運動の停止が検出されたときには、前記ガイド音を発音させないように制御することを特徴とする請求項１に記載の演奏装置。
【請求項３】
演奏データの音楽テンポを取得する音楽テンポ取得手順と、
前記演奏データを再生する再生手順と、
ユーザが行う反復運動の運動テンポを検出する運動テンポ検出手順と、
前記音楽テンポ取得手順によって取得された音楽テンポと前記運動テンポ検出手順によって検出された運動テンポとの差が所定の値より大きい場合には、前記取得された音楽テンポで、前記再生手順によって再生された演奏データの拍に合わせて、ガイド音を発音させる一方、前記取得された音楽テンポと前記検出された運動テンポとの差が前記所定の値以下である場合には、前記ガイド音を発音させないように制御する制御手順と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏データを再生し、再生された演奏データのテンポに合わせて運動やダンスなどを行うときに使用される演奏装置およびその制御方法を実現するプログラムに関する。
【背景技術】
【０００２】
演奏データを再生し、再生された演奏データのテンポに合わせて運動やダンスなどを行うときに使用される演奏装置は、従来から知られている。
【０００３】
このような演奏装置として、入力された条件に基づいて、ユーザの運動開始時点から終了時点に至るまでの目標脈拍数の時間的パターンを作成し、選択された音楽データの再生に合わせて運動を行ったときのユーザの脈拍数を検出し、前記目標脈拍数と前記検出された脈拍数との差およびユーザの運動テンポに基づいて、補正すべき音楽データのテンポを算出し、この算出されたテンポで、選択された音楽データのテンポを補正するようにしたものがある（たとえば、特許文献１参照）。
【０００４】
ところで、この従来の演奏装置では、ビート感のない曲や、倍のテンポなのか半分のテンポなのか判断し辛い曲であっても、選択された音楽データのテンポは、算出されたテンポで補正されるので、目標テンポに正確に近づいたテンポの音楽データが再生される。しかし、音楽データのテンポが目標テンポにいくら近づいたとしても、それを聴取するユーザにとっては、元の音楽データがテンポを判断し辛い曲である限り、再生された音楽データは相変わらず、テンポを判断し辛い。
【０００５】
テンポを判断し辛い曲のテンポを、その聴取者に分からせるようにする装置として、再生中の楽音に合わせてメトロノーム音を再生するようにした電子楽器がある（たとえば、特許文献２参照）。
【特許文献１】特開２００１−２９９９８０号公報
【特許文献２】特開平５−１０８０６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来の電子楽器では、メトロノーム音は、ユーザの操作に応じて発音状態と消音状態とが切り替わるだけであり、テンポを判断し辛い曲についてのみ、自動的に鳴らすことはできなかった。また、メトロノーム音は、演奏の歩調を合わせるために鳴らすものであり、運動やダンスを行う際のテンポを知らせるために鳴らすものではなかった。したがって、この従来の電子楽器を、運動やダンスなどを行うときに使用される演奏装置に適用した場合には、メトロノーム音を鳴らすかどうかを、運動やダンスを行う前に、あるいは、運動やダンス中に、一々選択指定する必要があり、運動やダンス時には、煩わしくて利用できなかった。
【０００７】
本発明は、この点に着目してなされたものであり、運動やダンスなどを行っているときに、テンポを判断し辛い曲が再生されたとしても、ユーザはその曲に合わせて運動やダンスなどを行うことが可能となる演奏装置およびその制御方法を実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載の演奏装置は、演奏データの音楽テンポを取得する音楽テンポ取得手段と、前記演奏データを再生する再生手段と、ユーザが行う反復運動の運動テンポを検出する運動テンポ検出手段と、前記音楽テンポ取得手段によって取得された音楽テンポと前記運動テンポ検出手段によって検出された運動テンポとの差が所定の値より大きい場合には、前記取得された音楽テンポで、前記再生手段によって再生された演奏データの拍に合わせて、ガイド音を発音させる一方、前記取得された音楽テンポと前記検出された運動テンポとの差が前記所定の値以下である場合には、前記ガイド音を発音させないように制御する制御手段とを有することを特徴とする。
【０００９】
また、請求項２に記載の演奏装置は、請求項１の演奏装置において、前記反復運動の停止を検出する運動停止検出手段をさらに有し、前記制御手段は、前記運動停止検出手段によって前記反復運動の停止が検出されたときには、前記ガイド音を発音させないように制御することを特徴とする。
【００１０】
上記目的を達成するため、請求項３に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【発明の効果】
【００１１】
請求項１または３に記載の発明によれば、取得された音楽テンポと検出された運動テンポとの差が所定の値より大きい場合には、前記取得された音楽テンポで、再生された演奏データの拍に合わせて、ガイド音が発音されるので、運動やダンスなどを行っているときに、テンポを判断し辛い曲が再生されたとしても、ユーザはその曲に合わせて運動やダンスなどを行うことが可能となる。また、一旦ガイド音が発音されたとしても、前記取得された音楽テンポと前記検出された運動テンポとの差が前記所定の値以下になれば、そのガイド音は発音されなくなる。つまり、音楽テンポから運動テンポがすれたときにのみ、自動的にガイド音が発音されるので、ユーザは、運動やダンスなどを行っているときに、ボタンなどの操作をすることなく、音楽テンポに合った運動を継続して行うことができる。
【００１２】
請求項２に記載の発明によれば、ユーザの反復運動の停止が検出されたときには、前記ガイド音は発音されなくなるので、ユーザにとっては、運動を故意に止めたときでもガイド音が発音されるという煩わしさが解消される。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１４】
図１は、本発明の一実施の形態に係る演奏装置を適用した携帯型音楽プレーヤＭＰの概略構成を示すブロック図である。
【００１５】
同図に示すように、音楽プレーヤＭＰは、ユーザの脈拍を検出するための脈拍センサ１と、ユーザの運動状態を検出するための加速度センサ２と、複数のスイッチからなる設定操作子３と、ヘッドフォン４と、脈拍センサ１からのセンサ出力に基づいて脈拍を検出する脈拍検出回路５と、加速度センサ２からのセンサ出力に基づいてｘ軸、ｙ軸およびｚ軸方向の加速度をそれぞれ検出する加速度検出回路６と、設定操作子３の各スイッチの操作状態を検出する操作状態検出回路７と、装置全体の制御を司るＣＰＵ８と、該ＣＰＵ８が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ９と、曲データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ１０と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ１１と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等からなる表示器１２と、前記制御プログラムを含む各種アプリケーションプログラムや各種曲データ、各種データ等を記憶するフラッシュメモリ１３と、ＰＣ（パーソナルコンピュータ）１００を接続し、ＰＣ１００とデータの送受信を行うＵＳＢ（universal serial bus）インターフェース（Ｉ／Ｆ）１４と、前記記憶された曲データのうち、ＭＩＤＩデータによって形成される曲データを楽音信号に変換するＭＩＤＩ音源回路１５と、前記記憶された曲データのうち、圧縮音声データによって形成される曲データを伸長して楽音信号に変換する圧縮音声デコーダ１６と、ＭＩＤＩ音源回路１５および圧縮音声デコーダ１６からそれぞれ出力される各楽音信号に各種効果を付与するための効果回路１７と、該効果回路１７からの楽音信号を増幅するアンプ１８とにより構成されている。
【００１６】
上記構成要素５〜１８は、バス１９を介して相互に接続され、ＭＩＤＩ音源回路１５および圧縮音声デコーダ１６には効果回路１７が接続され、効果回路１７にはアンプ１８が接続され、アンプ１８にはヘッドフォン４が接続されている。
【００１７】
脈拍センサ１は、ユーザの耳たぶや腕、指などに装着して脈拍に同期した信号を出力するものである。本実施の形態では、脈拍センサ１は、ヘッドフォン４の耳当て部分に設けられて、ユーザの脈拍数を検出するが、もちろん、ユーザの運動の邪魔にならないようにして脈拍を検出できるものであれば、これに限らないことは言うまでもない。
【００１８】
加速度センサ２は、音楽プレーヤＭＰの筐体内に設けられている。音楽プレーヤＭＰは、後述するように、ユーザの腰に装着されるので、ユーザが運動すると、音楽プレーヤＭＰには、その運動に応じた垂直方向および水平方向の加速度が生じる。加速度センサ２は、この垂直方向および水平方向の加速度を検出する。なお、加速度センサ２は、音楽プレーヤＭＰに内蔵されるものに限らず、音楽プレーヤＭＰと別体で構成するようにしてもよい。
【００１９】
フラッシュメモリ１３には、前述のように、ＣＰＵ８が実行する制御プログラムも記憶でき、ＲＯＭ９に制御プログラムが記憶されていない場合には、このフラッシュメモリ１３に制御プログラムを記憶させておき、それをＲＡＭ１０に読み込むことにより、ＲＯＭ９に制御プログラムを記憶している場合と同様の動作をＣＰＵ８にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２０】
図２は、音楽プレーヤＭＰの外観（（ａ））とその装着例（（ｂ））を示す図である。
【００２１】
図２（ａ）に示すように、音楽プレーヤＭＰのパネル面には、複数のスイッチ３ａ〜３ｄとＬＣＤ１２ａが設けられている。スイッチ３ａは、電源のオン／オフを指示するための電源ボタンであり、スイッチ３ｂは、曲のテンポをアップさせて運動のペースをアップさせるためのペースアップボタンであり、スイッチ３ｃは、曲のテンポをダウンさせて運動のペースをダウンさせるためのペースダウンボタンであり、スイッチ３ｄは、ＬＣＤ１２ａ上にメニューを表示させるためのメニューボタンである。なお、スイッチ３ｂおよび３ｃは、メニュー項目やパラメータを選択したり、両スイッチ３ｂおよび３ｃの同時押しで、確定、再生および停止などを指示したりすることもできる。また、ヘッドフォン４は、ケーブル４ａを介してヘッドフォンジャック（図示せず）に接続され、ヘッドフォンジャックは、前記アンプ１８に接続されている。
【００２２】
ユーザは、音楽プレーヤＭＰを、たとえばベルトを介して腰に装着する。図２（ｂ）は、この装着状態の一例を示している。もちろん、音楽プレーヤＭＰを装着する体の部位は、腰に限らず、他のどの部位でもよいが、本実施の形態では、音楽プレーヤＭＰをユーザの運動支援に用いているので、少なくとも運動の邪魔にならない部位に装着すべきである。
【００２３】
図３は、前記フラッシュメモリ１３に記憶されたデータの一部を示す図である。同図には、一部データとして、プレイリスト（PlayList）ファイル１３ａ、個人情報（PersonalInfo）ファイル１３ｂ、音楽情報（MusicInfo）ファイル１３ｃおよび圧縮オーディオ演奏ファイル１３ｄｎ（ｎ＝１，２，…）が記載されている。
【００２４】
プレイリスト・ファイル１３ａは、歩行（WALK）用プレイリスト１３ａ１とジョギング（JOG）用プレイリスト１３ａ２を備えている。ここで、プレイリストとは、再生（演奏）可能な曲の一覧表（リスト）である。他の携帯音楽プレーヤでは、プレイリストは、再生可能な曲とその再生順序を示しているが、本実施の形態では、プレイリストは、再生可能な曲だけ示し、その再生順序を示していない。歩行用プレイリスト１３ａ１は、歩行（WALK）モード用に選曲された曲の一覧表であり、ジョギング用プレイリスト１３ａ２は、ジョギング（JOG）モード用に選曲された曲の一覧表である。プレイリストには、本実施の形態では、各曲（圧縮オーディオ演奏ファイル１３ｄｎ）にそれぞれ付与されたＩＤが登録されるが、これに限らず、各曲を特定できるものであれば、名称など、どのようなものであってもよい。なお、本実施の形態では、動作モードとして、歩行モードとジョギングモードの２種類モードしか備わっていないが、これは、専ら説明を簡単化するためであり、実際には、運動の種類（通常、１０種類程度）に応じた数の動作モードが備わっている。
【００２５】
個人情報ファイル１３ｂも、プレイリスト・ファイル１３ａと同様に、動作モードに応じた種類の個人情報を備えており、本実施の形態では、歩行モード用の個人情報１３ｂ１とジョギングモード用の個人情報１３ｂ２を備えている。個人情報とは、具体的には、テンポ範囲であり、このテンポ範囲を規定する最小テンポ値と最大テンポ値が記載される。このテンポ範囲、つまり最小テンポ値と最大テンポ値は、プレイリストに登録する演奏ファイル１３ｄｎを決定するために使用される。具体的には、歩行用プレイリスト１３ａ１には、８０ｂｐｍ（＝歩行モード最小テンポ値）から１４０ｂｐｍ（＝歩行モード最大テンポ値）までのテンポ値（＝メインテンポのテンポ値）の演奏ファイル１３ｄｎが選曲されて登録され、ジョギング用プレイリスト１３ａ２には、１４０ｂｐｍ（＝ジョギングモード最小テンポ値）から１９０ｂｐｍ（＝ジョギングモード最大テンポ値）までのテンポ値（＝メインテンポのテンポ値）の演奏ファイル１３ｄｎが選曲されて登録される。
【００２６】
音楽情報ファイル１３ｃは、各演奏ファイル１３ｄｎにそれぞれ対応するメタデータ１３ｃｎ（ｎ＝１，２，…）を備えている。メタデータ１３ｃｎとしては、曲中で持続しているメインテンポ（MAIN TEMPO）、曲中で刻々と変わるテンポ（TEMPO）、拍位置（BEAT）、フェード位置（FADE）、音量（VOLUME）、曲の雰囲気（ATMOSPHERE）などが登録されている。メインテンポは、曲全体を通じて最も持続するテンポを表す値で、曲全体を代表するテンポ値であり、前記プレイリストに曲データを登録するために選曲したり、プレイリストに登録された曲データを再生のために選曲したりするときに用いられる。テンポは、検出された運動テンポと比較され、その比較結果に応じて、ガイド音を発音させるかどうかを判別するときに用いられる。拍位置は、曲の始めから終わりまでの各拍の位置を曲の先頭を基準に時間で表したものであり、ガイド音を発音するときの発音位置とするために用いられる。典型的には、１拍ずつであるが、複数拍（たとえば、４拍）間隔で、時間的位置を保持するようにしてもよい。なお、フェード位置以降のデータは、本発明とは直接関係しない。
【００２７】
演奏ファイル１３ｄｎは、圧縮されたオーディオ演奏データによって形成される演奏ファイルである。圧縮方法は、どのようなものを用いてもよいが、たとえば、ＭＰ３（MPEG audio layer 3），ＷＭＡ（Windows(登録商標) media audio），ＡＡＣ（advanced audio coding）などを挙げることができる。演奏ファイル１３ｄｎの基となる圧縮オーディオ演奏データは、図８を用いて後述するように、ＰＣ１００によって取得される。ＰＣ１００は、圧縮オーディオ演奏データを取得すると同時に、その圧縮オーディオ演奏データの内容を解析し、その圧縮オーディオ演奏データに対応するメタデータを生成する。
【００２８】
図４は、ＭＩＤＩ演奏データのデータフォーマットの一例を示す図である。
【００２９】
同図に示すように、各ＭＩＤＩ演奏データ（各トラックチャンクに含まれるＭＩＤＩ演奏データ）は、イベントデータ（キーオンイベントデータまたはキーオフイベントデータ）と、その読み出しタイミングを示すタイミングデータとを１組のデータとして、複数組のデータによって構成されている。なお、図示例では、ＳＭＦ（standard MIDI file）のフォーマットが採用されているが、フォーマットは、これに限られない。
【００３０】
なお、本実施の形態では、音楽プレーヤＭＰが再生可能な曲データとして、圧縮オーディオ演奏データとＭＩＤＩ演奏データの２種類を採用しているが、いずれか一方のみでもよいし、これより多くてもよい。
【００３１】
以上のように構成された音楽プレーヤＭＰが実行する制御処理を、まず図５を参照してその概要を説明し、次に図６〜図１２を参照して詳細に説明する。
【００３２】
図５は、加速度センサ２および加速度検出回路６によって検出された加速度の履歴を示す図である。同図において、縦軸が加速度を示し、横軸が時間を示している。そして、各四角形が、図９を用いて後述するように、４０ｍｓｅｃ毎に検出された加速度値を示している。
【００３３】
ユーザが前記電源ボタン３ａを操作することで、音楽プレーヤＭＰの電源をオンすると、前記ＣＰＵ８は、所定の時間（たとえば、４０ｍｓｅｃ）毎に、加速度検出回路６から出力された加速度値を読み取り、その読み取った加速度値を前記ＲＡＭ１０の所定位置に確保された加速度履歴バッファ（図示せず）に蓄積して行く。加速度センサ２は、前述のように、３軸方向のそれぞれの加速度を検出可能に構成されているが、本実施の形態では、ＣＰＵ８は、そのうちの重力方向（重力加速度が定常的にかかる方向）の加速度のみを加速度検出回路６から読み取るようにしている。これは、専ら制御処理を簡単化するためであるので、３軸方向のすべての加速度を読み取り、制御処理に用いるようにしてもよい。
【００３４】
次に、曲データが選択されて、その再生が指示されると、ＣＰＵ８は、その曲データの再生を開始する。ユーザが再生された曲に合わせて運動やダンスなど（以下、これらを一纏めにして「運動」という）を行うと、ユーザは通常、曲のテンポ（音楽テンポ）に合わせて運動を行うので、検出された加速度値は、曲のテンポに応じた周期を持つようになる。ＣＰＵ８は、加速度値の周期を、図５に示すように、加速度値が変動の中心値を下から上に突き抜けた時点（ゼロクロス点）から、次に加速度値が変動の中心値を下から上に突き抜けた時点（ゼロクロス点）までの時間として検出する。このようにして検出された加速度値の周期を、運動テンポと言うことにする。
【００３５】
音楽テンポと運動テンポとの間には相関関係があり、音楽テンポが速くなれば、運動テンポも速くなる。したがって、ユーザが音楽テンポを理解して運動を行っているときには、音楽テンポと運動テンポとの差分は、常に所定値内に収まることになる。しかし、再生された曲が音楽テンポの分かり辛い曲であるときには、ユーザの中には、その音楽テンポが分からずに運動を続ける人もあり得る。このようなユーザの行った運動から検出される運動テンポは、再生曲の音楽テンポと相関のないものになるので、音楽テンポと運動テンポとの差分は、前記所定値を超えてしまう。このとき、ＣＰＵ８は、ガイド音をＭＩＤＩデータで生成し、再生曲の拍位置で、そのガイド音を発音させるように、ＭＩＤＩ音源回路１５に指示する。これにより、ユーザは、ガイド音から再生曲のテンポが分かるので、再生曲の音楽テンポに合った運動を行うことができる。
【００３６】
ユーザが、ガイド音に従って、再生曲の音楽テンポに合った運動を行うようになると、音楽テンポと運動テンポとの差分は再度、前記所定値内に収まることになる。このときＣＰＵ８は、ガイド音の発音を停止する。ユーザが再生曲の音楽テンポに合った運動をしているにも拘わらず、ガイド音が発音されるのは、ユーザにとって煩わしいからである。
【００３７】
一方、ユーザが運動を止めたときには、加速度値の周期は検出されなくなり、その結果、運動テンポは“０”に近づくので、音楽テンポと運動テンポとの差分は、前記所定値を超えてしまう。しかし、この場合は、ユーザが故意に運動を停止した場合であるので、ＣＰＵ８は、ガイド音を発音させない。
【００３８】
このように、本実施の形態では、運動を行っているときに、音楽テンポを判断し辛い曲が再生され、運動がその曲に合わなくなったときには、その曲の音楽テンポに従ったガイド音が発音されるので、ユーザはその曲に合わせて運動を行うことができる。また、一旦ガイド音が発音されるようになっても、ユーザがその曲の音楽テンポが分かり、その音楽テンポに合った運動を行うようになると、ガイド音は発音されなくなるので、ユーザは煩わしいガイド音を聴かなくて済むようになる。さらに、ユーザが運動を停止したときには、その運動停止を検出し、ガイド音を発音しないようにしたので、ユーザの思い通りにガイド音の発音を制御することができる。
【００３９】
次に、この制御処理を詳細に説明する。
【００４０】
図６は、音楽プレーヤＭＰ、特にＣＰＵ８が実行するメインルーチンの手順を示すフローチャートである。
【００４１】
本メインルーチンでは、ＣＰＵ８は、主として、
（１）初期設定処理（ステップＳ１）
（２）ＰＣ１００との通信処理（ステップＳ３）
（３）ＭＩＤＩ演奏／オーディオ演奏の割り込み許可処理（ステップＳ５）
の各処理を行う。本メインルーチンは、前記電源ボタン３ａによって電源がオンされたときに起動される。起動後、前記（１）の初期設定処理が１回実行され、これに続いて、前記（２）および（３）の各処理が順次実行される。そして（３）の処理が終了すると、（２）の処理に戻って、（２）および（３）の処理が、電源ボタン３ａによって電源がオフされるまで、繰り返し実行される。
【００４２】
前記（１）の初期設定処理では、ＣＰＵ８は、ＲＡＭ６をクリアしたり、各種パラメータの値をデフォルト値に設定したりする等の初期設定を行う。この（１）初期設定処理ではさらに、ガイド音を発音するときにセット（“１”）され、発音しないときにリセット（“０”）されるガイドフラグをリセットし、ＭＩＤＩ演奏およびオーディオ演奏の各割り込みを禁止し、運動テンポ割り込み処理の割り込みを許可する設定も行われる。
【００４３】
ユーザが、前記ＵＳＢＩ／Ｆ１４とＰＣ１００とを、たとえばＵＳＢケーブル（図示せず）を介して接続すると、ＣＰＵ８は、ＵＳＢＩ／Ｆ１４にＰＣ１００が接続されたことを検知し、処理を前記（２）の通信処理に進める。
【００４４】
図７は、この通信処理の詳細な手順を示すフローチャートであり、同図には、音楽プレーヤＭＰ側の通信処理、つまり前記（２）通信処理とＰＣ１００側の通信処理が示されている。なお、ＵＳＢケーブルで接続された音楽プレーヤＭＰは、ＰＣ１００側から外部記憶装置（ストレージ）と認識されるので、ＰＣ１００は、音楽プレーヤＭＰの前記フラッシュメモリ１３の記憶内容を自由に読み書きすることができる。
【００４５】
音楽プレーヤＭＰの記憶容量は、ＰＣ１００の記憶容量に比べて、極めて少ないので、あらゆる動作モード（本実施の形態では、２種類の動作モードが例示されているが、実際には、前述のように１０種類程度）で必要なすべての曲データ（前記圧縮オーディオ演奏ファイル１３ｄｎを含む）を音楽プレーヤＭＰ（のフラッシュメモリ１３）に記憶させることはできない。そこで、ＰＣ１００に曲データを蓄えておき、その中から、当面必要な一部の曲データを選択して、フラッシュメモリ１３に記憶させるようにしている。そして、当面必要な曲データであるかどうかの判断、必要な曲データのフラッシュメモリ１３への記憶、不必要な曲データのフラッシュメモリ１３からの削除および前記プレイリスト・ファイル１３ａなどの更新などは、すべてＰＣ１００側で行うようにしている。このためＰＣ１００と音楽プレーヤＭＰとの間の通信処理が必要となる。
【００４６】
ＰＣ１００側の通信処理では、ＰＣ１００のＣＰＵ（図示せず）は、次の処理を行う。すなわち
（１０１）音楽プレーヤＭＰに個人情報（PersonalInfo）ファイル１３ｂを要求して受信する処理（ステップＳ１０１）
（１０２）個人情報ファイル１３ｂから、各動作モードにおけるテンポ範囲を取得する処理（ステップＳ１０２）
（１０３）上記（１０２）の処理で取得した各動作モードにおけるテンポ範囲に応じて、曲データを選曲する処理（ステップＳ１０３）
（１０４）上記（１０３）の選曲結果に応じて、音楽情報（MusicInfo）ファイル１３ｃおよびプレイリスト（PlayList）ファイル１３ａを生成する処理（ステップＳ１０４）
（１０５）音楽プレーヤＭＰ（のフラッシュメモリ１３）内の圧縮オーディオ演奏ファイル１３ｄｎ、音楽情報（MusicInfo）ファイル１３ｃおよびプレイリスト（PlayList）ファイル１３ａを更新する処理
である。
【００４７】
前記（１０３）の選曲処理では、各動作モードの個人情報に記載された最小テンポ値と最大テンポ値によって規定されるテンポ範囲に応じて、曲データを選択するが、「テンポ範囲に応じて」とは、このテンポ範囲を少しでも超えたテンポの曲データは選曲しないという意味ではなく、多少の余裕、たとえば１０％程度の余裕を持って選曲するという意味である。したがって、個人情報に、最小テンポ値として９０ｂｐｍ、最大テンポ値として１４０ｂｐｍが記載されていたときには、８１ｂｐｍから１５４ｂｐｍまでの範囲のテンポの曲データが選曲されることになる。
【００４８】
上記（１０３）選曲処理によって、プレイリストに登録すべき曲データが動作モード毎に選曲されるので、前記（１０４）の処理では、まず、動作モード毎のプレイリストを生成した後、すべてのプレイリストをまとめて、１つのプレイリスト・ファイルを生成する。次に、選曲された曲データには必ず、対応するメタデータが存在する（図７を用いて後述するように、曲データを取得するときには、同時にメタデータが生成されるし、そもそも、前記（１０３）の選曲処理は、各曲データに対応付けられたメタデータの内容に基づいてなされるから）ので、選曲されたすべての曲データに対応するすべてのメタデータをまとめて、１つの音楽情報ファイルを生成する。ただし、選曲された曲データとその曲データに対応するメタデータとが、保存先がＰＣ１００側から音楽プレーヤＭＰに変わったとしても、１対１の対応関係が変わらないように、曲データに付与されたＩＤを当該メタデータにも付与しておく。
【００４９】
前記（１０１）の処理に応じて、ＣＰＵ８は、フラッシュメモリ１３に記憶されている個人情報ファイル１３ｂを、前記ＵＳＢＩ／Ｆ１４を介してＰＣ１００に送信する（ステップＳ１１）。また、上記（１０５）の処理に応じて、ＣＰＵ８は、フラッシュメモリ１３内に記憶されている、圧縮オーディオ演奏ファイル１３ｄｎ、音楽情報（MusicInfo）ファイル１３ｃおよびプレイリスト（PlayList）ファイル１３ａを更新する（ステップＳ１２）。
【００５０】
図８は、圧縮オーディオ演奏ファイル１３ｄｎの基になる圧縮オーディオ演奏データを取得するＰＣ１００側の処理の手順を示すフローチャートである。
【００５１】
ＰＣ１００の前記ＣＰＵはまず、たとえばユーザの指示に応じて、圧縮オーディオ演奏データを取得し、ＨＤＤ（ハードディスク装置）などの外部記憶装置（図示せず）に保存する（ステップＳ１１１）。圧縮オーディオ演奏データの取得先としては、いくつか考えられるが、たとえばインターネット上の圧縮オーディオ演奏データ提供サイトを挙げることができる。もちろん、これに限らず、非圧縮オーディオ演奏データを圧縮して、圧縮オーディオ演奏データを生成するソフトウェアを用いて、オーディオ演奏データのソース（音楽ＣＤなど）から得たオーディオ演奏データを圧縮して取得するようにしてもよい。
【００５２】
次にＣＰＵは、取得した圧縮オーディオ演奏データを解析し、メタデータを生成する（ステップＳ１１２）。具体的には、圧縮オーディオ演奏データを解析して、メインテンポ、テンポ、拍位置、フェード位置などを検出し、これらを記載したメタデータを生成する。圧縮オーディオ演奏データを解析する方法としては、たとえば、信号処理を施すことにより、音量の時間的変化を検出したり、音量の時間的変化の周期性を検出したり、それらの検出を特定の周波数帯域の信号について行うようにしたりする方法が考えられる。特に、低い周波数帯域の音量変化の周期性を検出することにより、バスドラムで刻まれた拍やテンポを検出することができる。また、人間が、圧縮オーディオ演奏データを伸長したものを実際に聴いて、メタデータを作成したり修正したりしてもよい。
【００５３】
さらにＣＰＵは、生成したメタデータを当該圧縮オーディオ演奏データに関連付けて前記外部記憶装置に保存する（ステップＳ１１３）。
【００５４】
前記図６に戻り、演奏データの選曲操作がなされたときには、ＣＰＵ８は、処理を前記（３）のＭＩＤＩ演奏／オーディオ演奏の割り込み許可処理に進める（ステップＳ４→Ｓ５）。ここで、演奏データの選曲操作には、ユーザが、たとえば前記メニューボタン３ｄを操作することで、前記ＬＣＤ１２ａ上にメニューを表示させ、そのメニューの中から、演奏データを選曲する項目を選択し、それに応じて一覧表示された、選曲可能な演奏データの名称の一覧からいずれかを選択するという、ユーザの積極的な選曲操作や、前記プレイリスト・ファイル１３ａ中のいずれかのプレイリスト（実際には、選択されている動作モードに対応するもの）に登録された圧縮オーディオ演奏データの中から、所定の条件に基づいてＣＰＵ８が選択するという、ユーザの消極的な選曲操作などが含まれる。そして、選曲される演奏データも、上記圧縮オーディオ演奏データの他に、ＭＩＤＩ演奏データが含まれる。また、本実施の形態では、圧縮オーディオ演奏データは、前述のように、ＰＣ１００から音楽プレーヤＭＰのフラッシュメモリ１３に転送されたものであるが、これは、ＣＰＵ８として、圧縮オーディオ演奏データを解析できる程、演算能力の高いものを採用したくないからである。したがって、ＣＰＵ８として、演算能力の高いものを採用してもよいのであれば、圧縮オーディオ演奏データのみ、外部から取り込み、音楽プレーヤＭＰ内で、つまり、ＣＰＵ８が、その圧縮オーディオ演奏データを解析して、対応するメタデータを作成するようにしてもよい。また、ＭＩＤＩ演奏データは、圧縮オーディオ演奏データと同様に、ＰＣ１００から転送されたものであってもよいし、ＣＰＵ８が自動的に生成したものであってもよい。ＭＩＤＩ演奏データは、演算能力の低いＣＰＵ８であっても、生成することができるからである。
【００５５】
前記（３）ＭＩＤＩ演奏／オーディオ演奏の割り込み許可処理では、ＣＰＵ８は、選曲された演奏データの種類に応じて、ＭＩＤＩ演奏あるいはオーディオ演奏のいずれかの割り込みを許可する。つまり、選曲された演奏データがＭＩＤＩ演奏データであるときには、ＣＰＵ８は、ＭＩＤＩ演奏割り込み処理の割り込みを許可する一方、選曲された演奏データが圧縮オーディオ演奏データであるときには、ＣＰＵ８は、オーディオ演奏割り込み処理の割り込みを許可する。
【００５６】
図１１は、上記オーディオ演奏割り込み処理の手順を示すフローチャートであり、本オーディオ演奏割り込み処理は、上述のように、ＣＰＵ８によって割り込みが許可されると、割り込みが禁止されるまで、前記タイマ１１が、たとえば１２ｍｓｅｃ毎に発生する割り込み信号に応じて、起動される。
【００５７】
本オーディオ演奏割り込み処理では、ＣＰＵ８は、選曲された圧縮オーディオ演奏データを所定サンプル数分読み出して、前記圧縮音声デコーダ１６に出力する（ステップＳ５１）。これにより、圧縮音声デコーダ１６は、供給された所定サンプル数分の圧縮オーディオ演奏データを伸長して楽音信号に変換し、所定のタイミングで、前記効果回路１７に出力する。たとえば、サンプリング周波数を４８ｋＨｚとした場合には、１回の割り込みで、５７６サンプル分の圧縮オーディオ演奏データがデコードされることになる。
【００５８】
図１２は、前記ＭＩＤＩ演奏割り込み処理の手順を示すフローチャートであり、本ＭＩＤＩ演奏割り込み処理も、オーディオ演奏割り込み処理と同様に、ＣＰＵ８によって割り込みが許可されると、割り込みが禁止されるまで、タイマ１１が、たとえば１ｍｓｅｃ毎に発生する割り込み信号に応じて、起動される。
【００５９】
ＭＩＤＩ演奏データは、前記図４中の１つのトラックチャンクに記憶されたデータに相当する。つまり、ＭＩＤＩ演奏データは、タイミングデータとイベントデータを１組のデータとするデータシーケンスによって形成される。そして、タイミングデータは、イベントの発生時刻を１つ前のイベントからの時間、つまり「イベント＋相対時間」で表すものであり、その直後のイベントデータの発生タイミングを規定するので、本ＭＩＤＩ演奏割り込み処理では、ＣＰＵ８は、まず現在時刻を取得し（ステップＳ６１）、次に取得した現在時刻とタイミングデータで指定されたイベントの発生時刻とを比較する（ステップＳ６２）。この比較の結果、両者が一致した場合には、ＣＰＵ８は、続くイベントデータの内容を解析し、そのイベントデータがキーオンイベント（つまり、発音すべきイベント）であるときには、前記ＭＩＤＩ音源回路１５に、キーオンイベントで指定される楽音の発音を指示する（ステップＳ６２→Ｓ６３）。
【００６０】
図９は、運動テンポ割り込み処理の手順を示すフローチャートであり、本運動テンポ割り込み処理も、オーディオ演奏割り込み処理と同様に、ＣＰＵ８によって割り込みが許可されると、割り込みが禁止されるまで、タイマ１１が、たとえば４０ｍｓｅｃ毎に発生する割り込み信号に応じて、起動される。なお、運動テンポ割り込み処理の割り込みは、前述のように、前記（１）初期設定処理で許可される。
【００６１】
本運動テンポ割り込み処理は、主として
（１１）運動テンポの周期を検出する運動テンポ周期検出処理（ステップＳ２１，Ｓ２２）
（１２）運動テンポの平均値を算出する運動テンポ平均値算出処理（ステップＳ２４，Ｓ２５）
（１３）上記（１２）の運動テンポ平均値算出処理で算出された運動テンポ平均値と音楽テンポとの差分を算出する差分算出処理（ステップＳ２７）
（１４）上記（１２）の差分算出処理で算出された差分に基づいて、ガイド音の発音を制御するガイド音制御処理（ステップＳ２７〜Ｓ３１，Ｓ３４〜Ｓ３６）
（１５）ユーザの運動停止を検出する運動停止検出処理（ステップＳ３２，Ｓ３３）
を行う。
【００６２】
運動テンポ割り込み処理に対する割り込みが発生し、運動テンポ割り込み処理が起動されると、ＣＰＵ８は、処理を前記（１１）の運動テンポ周期検出処理に進める。この（１１）運動テンポ周期検出処理では、まずＣＰＵ８は、前述のように、加速度検出回路６から出力された加速度値を読み取り、前記加速度履歴バッファに蓄積する（ステップＳ２１）。次にＣＰＵ８は、運動テンポの周期を検出する処理を行う（ステップＳ２２）。運動テンポの周期は、図５を用いて前述したように、変動の中心値に対するゼロクロス点を観測することによって検出している。本実施の形態では、ＣＰＵ８に過剰な負荷がかからないように、運動テンポ割り込み処理に対する割り込み時間を４０ｍｓｅｃにしている。つまり、この割り込み時間を短くすればする程、加速度値はより細かく検出できるので、運動テンポの周期の検出精度が向上する。しかし、検出精度に比例して演算処理が増大するので、ＣＰＵ８への負荷は増大する。そして、ＣＰＵ８としては、製造コストの関係上、演算能力の低いものを採用しているので、むやみに検出精度を向上させることができない。そこで、ＣＰＵ８の能力と検出精度との調和を取って、割り込み時間を４０ｍｓｅｃに制限している。この状況で、運動テンポの周期の検出精度を向上させる処理として、スプライン処理が知られているので、加速度履歴バッファに蓄積された加速度値にスプライン処理を施すことで、割り込み時間を４０ｍｓｅｃに制限しながら、より短い時間単位の加速度値の履歴を求めるようにしてもよい。
【００６３】
この（１１）運動テンポ周期検出処理が終了すると、運動テンポの新たな周期が検出されたかどうか分かるので、新たな周期が検出されたときには、ＣＰＵ８は、処理を前記（１２）の運動テンポ平均値算出処理に進める一方、新たな周期が検出されないときには、ＣＰＵ８は、処理を前記（１５）の運動停止検出処理に進める。
【００６４】
この（１２）運動テンポ平均値算出処理では、まずＣＰＵ８は、新たに検出された周期を、前記ＲＡＭ１０の所定位置に確保された運動テンポ履歴バッファ（図示せず）に蓄積する（ステップＳ２４）。次にＣＰＵ８は、過去の所定周期分（たとえば、６周期分）の運動テンポの周期を平均し、運動テンポ平均値を算出する（ステップＳ２５）。
【００６５】
そしてＣＰＵ８は、処理を前記（１３）の差分算出処理に進める。この（１３）差分算出処理では、まずＣＰＵ８は、現在時刻における音楽テンポを取得する（ステップＳ２６）。この音楽テンポを取得する取得先は、選曲された演奏データの種類に応じて異なっている。具体的には、選曲された曲データが圧縮オーディオ演奏データである場合には、その圧縮オーディオ演奏データに対応付けられたメタデータが必ずフラッシュメモリ１３内に記憶されているので、そのメタデータ内に記載された音楽テンポ（前記図３参照）が取得される。一方、選曲された曲データがＭＩＤＩ演奏データである場合には、そのヘッダチャンク（前記図４参照）内に記載されている音楽テンポが取得される。次にＣＰＵ８は、このように取得された音楽テンポと前記算出された運動テンポ平均値との差分を算出する（ステップＳ２７）。
【００６６】
次にＣＰＵ８は、処理を前記（１４）のガイド音制御処理に進める。この（１４）ガイド音制御処理では、まずＣＰＵ８は、前記算出された差分が所定値以上かどうか判別し（ステップＳ２７）、差分が所定値以上のとき、つまり、音楽テンポの分からない状態でユーザが運動を行っているときには、ＣＰＵ８は、前記ガイドフラグの値をチェックする（ステップＳ２８）。ガイドフラグは、前述のように、ガイド音を発音するときにセットされ、ガイド音を発音しないときにリセットされるフラグである。メインルーチンが開始してから最初に、処理が上記ステップＳ２８に進んだ場合には、ガイドフラグはリセット状態であるので、ＣＰＵ８は、ガイドフラグをセットした（ステップＳ２８→Ｓ２９）後、現在時刻より遅い拍位置であって、最初に現れる拍位置を取得する（ステップＳ３０）。この拍位置を取得する取得先も、前記音楽テンポと同様に、選曲された曲データに応じて異なっている。ただし、拍位置と音楽テンポとでデータの種類は異なるものの、拍位置の取得先は、音楽テンポの取得先と同じであるので、その説明は省略する。ＣＰＵ８は、目的の拍位置を取得すると、図１０を用いて後述するガイド割り込み処理の割り込みを発生させる時刻を格納するために前記タイマ１１に設けられた割り込み時刻バッファ（図示せず）に、上記取得した拍位置の時刻を設定する（ステップＳ３０）。そしてＣＰＵ８は、ガイド割り込み処理に対する割り込み（ガイド割り込み）を許可する（ステップＳ３１）。
【００６７】
割り込み時刻バッファに設定された前記拍位置と現在時刻とが一致すると、タイマ１１は、ガイド割り込み信号を発生する。これに応じて、ガイド割り込み処理が起動する。
【００６８】
図１０は、ガイド割り込み処理の手順を示すフローチャートである。
【００６９】
本ガイド割り込み処理では、まずＣＰＵ８は、ＭＩＤＩ音源回路１５にガイド音の発音を指示する（ステップＳ４１）。ここで、ガイド音として、どのような音色の音を発音するかであるが、ガイド音は主として、運動を行っているユーザに、曲のテンポと運動がずれているという警告を与える目的で発音するものであるので、曲と同時にガイド音を再生した場合に、曲の音とガイド音とをはっきり区別することができる音色であることが好ましい。しかし、ユーザの運動を妨げるような、ひどく耳障りな音色は避けた方がよい。具体的には、メトロノーム音のようなピッピッピッや、バスドラム音、シンパル音などを挙げることができる。もちろん、これに限られる訳ではない。
【００７０】
次にＣＰＵ８は、次に現れる拍位置を取得し、前記割り込み時刻バッファに設定する（ステップＳ４２）。この拍位置の取得は、前記ステップＳ３０で説明した拍位置の取得とほぼ同じであるので、これ以上の説明は省略する。
【００７１】
このように、ガイド割り込みが一旦許可されると、ガイド割り込みが禁止されるまで、曲の再生に従ってその曲の拍位置でガイド音が発音されることになる。したがって、ユーザは、自身の運動が曲のテンポと合っていないことを知るとともに、ガイド音に運動テンポを合わせることで、運動を曲のテンポに合わせることができる。
【００７２】
なお、一旦ガイドフラグがセットされると、その後、音楽テンポと運動テンポ平均値との差分が相変わらず前記所定以上であれば、前記（１４）ガイド音制御処理では、何の制御もなされない（ステップＳ２７→Ｓ２８→終了）。つまり、前記ガイド割り込み処理が所定のタイミングで起動されるだけである。
【００７３】
ユーザがガイド音に従って、運動テンポを音楽テンポに合わせて行くと、音楽テンポと運動テンポ平均値との差分はいずれ、前記所定値以内に収まることになる。このとき、ガイドフラグはセット状態であるので、ＣＰＵ８は、ガイドフラグをリセットし（ステップＳ３４→Ｓ３５）、さらにガイド割り込みを禁止する（ステップＳ３６）。これにより、ガイド音の発音は停止する。
【００７４】
前記（１５）の運動停止検出処理では、まずＣＰＵ８は、運動テンポの周期が検出されない期間が所定時間（たとえば、５秒間）以上となっているかどうか判別し（ステップＳ３２）、その期間が所定時間以上となっているときには、ユーザの運動は停止状態と判断する。次にＣＰＵ８は、前記加速度履歴バッファおよび運動テンポ履歴バッファをクリアした（ステップＳ３３）後、前記ステップＳ３４に処理を進める。ステップＳ３４以降の処理では、ＣＰＵ８は、ガイド音が発音されているときには、その発音を停止する。
【００７５】
このようにして、ユーザが運動を停止したときには、その運動停止を検出し、ガイド音が発音されているときでも、その発音を停止するようにしたので、ユーザにとって煩わしさが解消される。
【００７６】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７７】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７８】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００７９】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００８０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施の形態に係る演奏装置を適用した携帯型音楽プレーヤの概略構成を示すブロック図である。
【図２】図１の音楽プレーヤの外観とその装着例を示す図である。
【図３】図１中のフラッシュメモリに記憶されたファイルの一部を示す図である。
【図４】ＭＩＤＩ演奏データのデータフォーマットの一例を示す図である。
【図５】図１中の加速度センサおよび加速度検出回路によって検出された加速度の履歴を示す図である。
【図６】図１の音楽プレーヤ、特にＣＰＵが実行するメインルーチンの手順を示すフローチャートである。
【図７】図６中の通信処理の詳細な手順を示すフローチャートである。
【図８】圧縮オーディオ演奏ファイルの基になる圧縮オーディオ演奏データを取得するＰＣ側の処理の手順を示すフローチャートである。
【図９】運動テンポ割り込み処理の手順を示すフローチャートである。
【図１０】ガイド割り込み処理の手順を示すフローチャートである。
【図１１】オーディオ演奏割り込み処理の手順を示すフローチャートである。
【図１２】ＭＩＤＩ演奏割り込み処理の手順を示すフローチャートである。
【符号の説明】
【００８２】
２…加速度センサ（運動テンポ検出手段），６…加速度検出回路（運動テンポ検出手段），８…ＣＰＵ（音楽テンポ取得手段、再生手段、運動テンポ検出手段、制御手段、運動停止検出手段），１５…ＭＩＤＩ音源回路（再生手段），１６…圧縮音声デコーダ（再生手段）
【図１】
2008242285.tif 000003
【図２】
2008242285.tif 000004
【図３】
2008242285.tif 000005
【図４】
2008242285.tif 000006
【図５】
2008242285.tif 000007
【図６】
2008242285.tif 000008
【図７】
2008242285.tif 000009
【図８】
2008242285.tif 000010
【図９】
2008242285.tif 000011
【図１０】
2008242285.tif 000012
【図１１】
2008242285.tif 000013
【図１２】
2008242285.tif 000014