(57)【特許請求の範囲】
【請求項１】
１以上の楽曲が、第１のフォーマットに従ったオーディオデータであって、演奏の経過を絶対時間系により表現した制御情報を含むオーディオデータとして記録された記録媒体から、利用者の指示に応じた楽曲のオーディオデータを読み出して出力する出力装置によるオーディオデータの出力に同期して、第２のフォーマットに従った楽曲の演奏データであって、複数のイベントデータと、あるイベントデータを実行すべき時間を、当該あるイベントデータの前のイベントデータを実行すべき時間との間隔であるステップタイムを用いて相対時間系の第１の時間で表現し、当該楽曲の前記オーディオデータによる演奏の経過の実時間を、前記ステップタイムの累積により絶対時間系の第２の時間で表現するタイミングデータとを含む演奏データを出力する楽曲データ出力装置であって、
前記第２のフォーマットに従った楽曲の演奏データを記憶する記憶手段と、
利用者の指示に応じて前記出力装置が出力するオーディオデータに対応する楽曲を前記制御情報に基づいて特定する楽曲特定手段と、
前記記憶手段に記憶され、前記楽曲特定手段により特定された楽曲に対応する演奏データに含まれる前記複数のイベントデータの一部である特定のイベントデータを実行すべき時間と、当該楽曲の前記オーディオデータによる演奏の経過を示す絶対時間系とを対応付けたテーブルを生成する生成手段と、
前記記憶手段から、前記楽曲特定手段によって特定された楽曲に対応する演奏データを読み出し、読み出した演奏データを前記出力装置によるオーディオデータの出力に同期して出力する出力手段とを具備し、
前記出力手段は、
前記生成手段により生成されたテーブルによる対応付けに基づいて、前記特定のイベントデータを実行すべき時間のうちの前記制御情報が示す時間の直前の時間を起点とし、当該起点の後続のイベントデータを実行すべき実時間である第３の時間を、当該イベントデータに対応する前記ステップタイムを絶対時間系に変換して加算することを繰り返すことにより繰り返し算出し、当該第３の時間が前記制御情報が示す時間に達しているか否かを判別することにより実行すべき前記イベントデータを特定して出力する
ことを特徴とする楽曲データ出力装置。
【請求項２】
請求項１に記載の楽曲データ出力装置において、
前記第１のフォーマットはＣＤ−ＤＡ(CD-Digital Audio)形式であり、
前記制御情報は、ＴＯＣ(Table of Contents)及びサブコーディングのＱチャンネル（Ｑサブコード）を含むことを特徴とする楽曲データ出力装置。
【請求項３】
１以上の楽曲が、第１のフォーマットに従ったオーディオデータであって、演奏の経過を絶対時間系により表現した制御情報を含むオーディオデータとして記録された記録媒体から、利用者の指示に応じた楽曲に対応するオーディオデータを読み出して出力する出力装置によるオーディオデータの出力に同期して、第２のフォーマットに従った楽曲の演奏データであって、複数のイベントデータと、あるイベントデータを実行すべき時間を、当該あるイベントデータの前のイベントデータを実行すべき時間との間隔であるステップタイムを用いて相対時間系の第１の時間で表現し、当該楽曲の前記オーディオデータによる演奏の経過の実時間を、前記ステップタイムの累積により絶対時間系の第２の時間で表現するタイミングデータとを含む演奏データを出力する楽曲データ出力方法であって、
利用者の指示に応じて前記出力装置が出力するオーディオデータに対応する楽曲を前記制御情報に基づいて特定する楽曲特定ステップと、
記憶手段に記憶された演奏データであって、前記楽曲特定ステップで特定された楽曲に対応する演奏データに含まれる前記複数のイベントデータの一部である特定のイベントデータを実行すべき時間と、当該楽曲の前記オーディオデータによる演奏の経過を示す絶対時間系とを対応付けたテーブルを生成する生成ステップと、
前記記憶手段から、前記楽曲特定ステップで特定された楽曲に対応する演奏データを読み出し、読み出した演奏データを前記出力装置によるオーディオデータの出力に同期して出力する出力ステップとを具備し、
前記出力ステップにおいて、
前記生成ステップで生成されたテーブルによる対応付けに基づいて、前記特定のイベントデータを実行すべき時間のうちの前記制御情報が示す時間の直前の時間を起点とし、当該起点の後続のイベントデータを実行すべき実時間である第３の時間を、当該イベントデータに対応する前記ステップタイムを絶対時間系に変換して加算することを繰り返すことにより繰り返し算出し、当該第３の時間が前記制御情報が示す時間に達しているか否かを判別することにより実行すべき前記イベントデータを特定して出力する
ことを特徴とする楽曲データ出力方法。
【請求項４】
コンピュータを、１以上の楽曲が、第１のフォーマットに従ったオーディオデータであって、演奏の経過を絶対時間系により表現した制御情報を含むオーディオデータとして記録された記録媒体から、利用者の指示に応じた楽曲のオーディオデータを読み出して出力する出力装置によるオーディオデータの出力に同期して、第２のフォーマットに従った楽曲の演奏データであって、複数のイベントデータと、あるイベントデータを実行すべき時間を、当該あるイベントデータの前のイベントデータを実行すべき時間との間隔であるステップタイムを用いて相対時間系の第１の時間で表現し、当該楽曲の前記オーディオデータによる演奏の経過の実時間を、前記ステップタイムの累積により絶対時間系の第２の時間で表現するタイミングデータとを含む演奏データを出力する楽曲データ出力する手段として機能させる為のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
利用者の指示に応じて前記出力装置が出力するオーディオデータに対応する楽曲を前記制御情報に基づいて特定する楽曲特定手段と、
記憶手段に記憶された演奏データであって、前記楽曲特定手段により特定された楽曲に対応する演奏データに含まれる前記複数のイベントデータの一部である特定のイベントデータを実行すべき時間と、当該楽曲の前記オーディオデータによる演奏の経過を示す絶対時間系とを対応付けたテーブルを生成する生成手段と、
前記記憶手段から、前記楽曲特定手段によって特定された楽曲に対応する演奏データを読み出し、読み出した演奏データを前記出力装置によるオーディオデータの出力に同期して出力する出力手段であって、前記生成手段により生成されたテーブルによる対応付けに基づいて、前記特定のイベントデータを実行すべき時間のうちの前記制御情報が示す時間の直前の時間を起点とし、当該起点の後続のイベントデータを実行すべき実時間である第３の時間を、当該イベントデータに対応する前記ステップタイムを絶対時間系に変換して加算することを繰り返すことにより繰り返し算出し、当該第３の時間が前記制御情報が示す時間に達しているか否かを判別することにより実行すべき前記イベントデータを特定して出力する出力手段として機能させる為のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
コンピュータを、１以上の楽曲が、第１のフォーマットに従ったオーディオデータであって、演奏の経過を絶対時間系により表現した制御情報を含むオーディオデータとして記録された記録媒体から、利用者の指示に応じた楽曲のオーディオデータを読み出して出力する出力装置によるオーディオデータの出力に同期して、第２のフォーマットに従った楽曲の演奏データであって、複数のイベントデータと、あるイベントデータを実行すべき時間を、当該あるイベントデータの前のイベントデータを実行すべき時間との間隔であるステップタイムを用いて相対時間系の第１の時間で表現し、当該楽曲の前記オーディオデータによる演奏の経過の実時間を、前記ステップタイムの累積により絶対時間系の第２の時間で表現するタイミングデータとを含む演奏データを出力する手段として機能させる為のプログラムであって、
利用者の指示に応じて前記出力装置が出力するオーディオデータに対応する楽曲を前記制御情報に基づいて特定する楽曲特定手段と、
前記記憶手段に記憶され、前記楽曲特定手段により特定された楽曲に対応する演奏データに含まれる前記複数のイベントデータの一部である特定のイベントデータを実行すべき時間と、当該楽曲の前記オーディオデータによる演奏の経過を示す絶対時間系とを対応付けたテーブルを生成する生成手段と、
前記第２のフォーマットに従った楽曲の演奏データを記憶する記憶手段から、前記楽曲特定手段によって特定された楽曲に対応する演奏データを読み出し、読み出した演奏データを前記出力装置によるオーディオデータの出力に同期して出力する出力手段であって、前記生成手段により生成されたテーブルによる対応付けに基づいて、前記特定のイベントデータを実行すべき時間のうちの前記制御情報が示す時間の直前の時間を起点とし、当該起点の後続のイベントデータを実行すべき実時間である第３の時間を、当該イベントデータに対応する前記ステップタイムを絶対時間系に変換して加算することを繰り返すことにより繰り返し算出し、当該第３の時間が前記制御情報が示す時間に達しているか否かを判別することにより実行すべき前記イベントデータを特定して出力する出力手段として機能させる為のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばコンパクトディスク（ＣＤ）に収録されたオーディオデータと、MIDI（Musical Instrument Digital Interface）データのような異なるフォーマットで記述された楽曲データとを同期して出力するデータ出力装置及び楽曲データ出力方法に関する。
【０００２】
【従来の技術】
従来より、音楽ＣＤが広く販売されており、音楽ＣＤをＣＤプレーヤで再生することにより、ユーザはさまざまな楽曲を鑑賞することができる。また、楽曲を再生するためのデータとしては、上記音楽ＣＤに記録されるオーディオデータ以外にも、MIDIデータが用いられている。MIDIデータは、電子音源による楽曲演奏を行うだけではなく、例えば自動ピアノによる楽曲の自動演奏を制御するデータとしても使用される。自動ピアノとは、一般的なアコースティックピアノと同様のハンマアクション機構を備えたピアノに、各鍵を動作させるためのソレノイド等を搭載したピアノである。このような自動ピアノでは、ソレノイドを適宜選択駆動することにより、鍵を動作させてハンマアクション機構による打弦を実行して楽音を発生させることができる。このような自動ピアノにおいて、MIDIデータは、どの鍵に対応するソレノイドをどのタイミングで駆動するかといった制御を行うために使用されている。またMIDIデータは、各鍵に対応する発光体を搭載した演奏支援機能付きピアノにおける演奏支援制御にも用いられる。演奏支援機能とは、各鍵に対応して設けられた発光体を適宜選択発光させることにより、演奏者に次のどの鍵を押下すべきかを指示する機能である。このような演奏支援機能付きのピアノにおいてもMIDIデータは、どの鍵に対応する発光体をどのタイミングで発光させるかといった制御を行うために使用される。
このようにMIDIデータを用いることにより、単なる楽曲の再生だけではなく、様々な楽曲演奏に関する制御を行うことができ、音楽ＣＤの再生に同期してMIDIデータを用いた自動演奏や演奏支援機能などを利用することもできる。このように同期制御を行えば、音楽ＣＤを用いたＣＤプレーヤによる楽曲再生音に加え、自動演奏といったアコースティックピアノの楽音が加わるといった上質の楽曲演奏を実現することができる。また演奏支援機能を同期制御すれば、演奏者はＣＤプレーヤの楽曲再生に合せた演奏支援を受けることができる。
【０００３】
【発明が解決しようとする課題】
ところで、上記のような音楽ＣＤの再生と、MIDIデータを用いた制御処理とを同期させる場合、ユーザは音楽ＣＤの再生する曲を選択すると共に、その曲のMIDIデータを用意し、両者の処理開始を同時に指示するといった煩雑な作業を行わなくてはならない。
そこで、音楽ＣＤのフォーマットで記録された楽曲のオーディオデータに加え、このオーディオデータとの同期読み出しが可能なMIDIデータを記録した専用のメディアを用いる方法が提案されている。この方法では、上記専用のメディアに記録されたオーディオデータ及びMIDIデータを専用の同期読み出し装置などで同期して読み出し、音楽ＣＤフォーマットのオーディオデータの再生とMIDIデータによる演奏に関連する制御を同期して実行することができるようになっている。
しかしながら、上記の手法では、音楽ＣＤフォーマットのオーディオデータと、このオーディオデータとの同期読み出し可能なMIDIデータを記録した専用のメディアを用意する必要があり、一般に広く市販されている音楽ＣＤを利用してMIDIデータとの同期を自動的に行うことはできなかった。
本発明は以上のような事情を鑑みて為されたものであり、あるフォーマットのデータとして記録媒体に記録されているオーディオデータの出力に同期して、他のフォーマットのオーディオデータとして記録されている演奏データを自動的に読み出して出力することが可能な楽曲データ出力装置及び楽曲データ出力方法を提供することを目的としている。
【０００４】
【課題を解決するための手段】
上述した課題を解決する為に、本発明の楽曲データ出力装置は、１以上の楽曲が、第１のフォーマットに従ったオーディオデータであって、演奏の経過を絶対時間系により表現した制御情報を含むオーディオデータとして記録された記録媒体から、利用者の指示に応じた楽曲のオーディオデータを読み出して出力する出力装置によるオーディオデータの出力に同期して、第２のフォーマットに従った楽曲の演奏データであって、複数のイベントデータと、あるイベントデータを実行すべき時間を、当該あるイベントデータの前のイベントデータを実行すべき時間との間隔であるステップタイムを用いて相対時間系の第１の時間で表現し、当該楽曲の前記オーディオデータによる演奏の経過の実時間を、前記ステップタイムの累積により絶対時間系の第２の時間で表現するタイミングデータとを含む演奏データを出力する楽曲データ出力装置であって、前記第２のフォーマットに従った楽曲の演奏データを記憶する記憶手段と、利用者の指示に応じて前記出力装置が出力するオーディオデータに対応する楽曲を前記制御情報に基づいて特定する楽曲特定手段と、前記記憶手段に記憶され、前記楽曲特定手段により特定された楽曲に対応する演奏データに含まれる前記複数のイベントデータの一部である特定のイベントデータを実行すべき時間と、当該楽曲の前記オーディオデータによる演奏の経過を示す絶対時間系とを対応付けたテーブルを生成する生成手段と、前記記憶手段から、前記楽曲特定手段によって特定された楽曲に対応する演奏データを読み出し、読み出した演奏データを前記出力装置によるオーディオデータの出力に同期して出力する出力手段とを具備し、前記出力手段は、前記生成手段により生成されたテーブルによる対応付けに基づいて、前記特定のイベントデータを実行すべき時間のうちの前記制御情報が示す時間の直前の時間を起点とし、当該起点の後続のイベントデータを実行すべき実時間である第３の時間を、当該イベントデータに対応する前記ステップタイムを絶対時間系に変換して加算することを繰り返すことにより繰り返し算出し、当該第３の時間が前記制御情報が示す時間に達しているか否かを判別することにより実行すべき前記イベントデータを特定して出力することを特徴としている。
【０００５】
【発明の実施の形態】
Ａ．第１実施形態
Ａ−１．第１実施形態の構成
図１に、本発明の第１の実施形態に係る楽曲データ出力方法を実現する自動ピアノ演奏システム100を示す。
図示するように自動ピアノ演奏システム100は、ＣＤプレーヤ３と、アンプ６と、スピーカ７と、自動ピアノ４と、表示部８と、コントローラ装置１（楽曲データ出力装置）とを備え、コントローラ装置１は、フロッピーディスクドライブ(FDD）装置５と、ハードディスクドライブ（HDD）装置２とを内蔵している。
【０００６】
ＣＤプレーヤ３は、一般に市販されている音楽ＣＤ９、即ちCD-DA(CD-Digital Audio)形式でオーディオデータを記録した音楽ＣＤ９がセットされると、このオーディオデータを読み取り、読み取ったオーディオデータに基づいてアナログ楽音信号を生成する。ＣＤプレーヤ３に生成された楽音信号はアンプ６へ出力され、音量を調整された後にスピーカ７から楽曲として出力され、この結果、楽曲が再生される。またＣＤプレーヤ３は、コントローラ装置１からの要求に応じて音楽ＣＤ９のTOC(Table of Contents)やサブコーディングのＱチャンネル（以下、Ｑサブコード）を読み取り、コントローラ装置１に出力する。なお、TOC及びＱサブコードについては、後述する。
【０００７】
FDD装置５は、フロッピーディスク１０に記録された情報を読み取り、コントローラ装置１へ送信したり、逆にコントローラ装置１から送信された情報をフロッピーディスク１０に記録したりする為の装置である。本システムにおいてFDD装置５は主に、FDD装置５にセットされたフロッピーディスク１０に記録されたMIDIデータ等を、コントローラ装置１の内蔵するHDD装置２に格納されている音楽ＣＤ特定用データテーブルへ追加または更新する場合に用いられる。なお、音楽ＣＤ特定用データテーブルについての詳細は、後述する。なお、本実施形態においてFDD装置５はコントローラ装置１に内蔵されているが、コントローラ装置１と別体であっても良い。
【０００８】
次に図２を参照して自動ピアノ４の構成について説明する。
自動ピアノ４は、鍵１４と、ハンマ１５と、アクションメカニズム１６と、弦１７とを備えている。演奏者が鍵１４を操作すると、鍵１４の運動に連動してアクションメカニズム１６によってハンマシャンク及びハンマ１５に運動が伝達され、ハンマ１５によって打弦されることで弦１７が振動し、楽音を発生するような構成となっている。これ以外にも自動ピアノ４は一般的なアコースティックピアノと同様の構成を有しており、アコースティックピアノと同様の構成についての詳細な説明は省略する。
【０００９】
自動ピアノ４は上記の構成に加えて更に、ソレノイド１８と、再生前処理部１９と、モーションコントローラ２０と、サーボコントローラ２１とを備えている。再生前処理部１９はコントローラ装置１から供給されたMIDIデータに基づいて、鍵１４の軌道データを生成すると共に、軌道データを用いて鍵１４の原速度指示値を生成し、モーションコントローラ２０に出力する。モーションコントローラ２０は再生前処理部１９から供給された原速度指示値に基づいて、特定時刻における鍵１４の位置に対応した速度指示値を生成してサーボコントローラ２１へと出力する。サーボコントローラ２１は、モーションコントローラ２０から供給された速度指示値に応じた励磁電流をソレノイド１８に供給する。ソレノイド１８に励磁電流が供給されると、ソレノイド１８のプランジャが上昇し、鍵１４の後端を押し上げる。これにより鍵１４が動作し、鍵１４の運動に連動してハンマ１５が弦１７を打弦することにより楽音が発生する。このような楽音発生をMIDIデータに基づいて制御することにより、自動演奏を行うことができるようになっている。なおサーボコントローラ２１は、上記のようにソレノイド１８へ励磁電流を供給する際に、ソレノイド１８から供給されるフィードバック信号たる出力速度とモーションコントローラ２０から供給された速度指示値とを比較し、両者が一致するようにサーボ制御を行う。
【００１０】
図１に戻り、コントローラ装置１はＣＰＵ(Central Processing Unit)、ＲＯＭ(Read Only Memory)及びＲＡＭ(Random Access Memory)等を有しており、ＲＯＭに格納されている制御プログラム群をＣＰＵが実行することにより、音楽ＣＤ９に記録されたオーディオデータを読み出すＣＤプレーヤ３の楽曲再生と同期して、当該楽曲に対応したMIDIデータを自動ピアノ４に出力するように構成されている。
【００１１】
このようにＣＤプレーヤ３の楽曲再生に同期してMIDIデータを出力するといった制御を行うためには、まずＣＤプレーヤ３にセットされた音楽ＣＤ９がどのような楽曲が収録された音楽ＣＤであるかを特定し、更にどの楽曲の再生が指示されたかを特定する必要がある。また、ＣＤプレーヤ３による楽曲再生に同期してMIDIデータを自動ピアノ４に出力する場合には、特定した楽曲に対応したMIDIデータを構成する各イベントデータ（ノートオン等）をどのタイミングで出力するかといった情報が必要となる。
【００１２】
このためコントローラ装置１は、ＣＤプレーヤ３にセットされた音楽ＣＤ９を特定する処理を行うと共に、特定した音楽ＣＤ９の各楽曲に対応したMIDIデータの各イベントデータと、各イベントデータの出力タイミングとを関連付けて記憶するタイミングマップテーブルを作成する。
以下、このような音楽ＣＤ９の特定方法と、タイミングマップテーブルの作成手法とについて説明する。
【００１３】
Ａ−２．音楽ＣＤの特定方法
コントローラ装置１は、まずＣＤプレーヤ３にセットされた一般の音楽ＣＤ９を自動的に特定し、音楽ＣＤ９に記録されたオーディオデータに対応したMIDIデータを検索してHDD装置２に読み込む。続いて音楽ＣＤ９に記録されたオーディオデータとMIDIデータとを同期演奏させる為のタイミングマップテーブルを生成し、生成したタイミングマップテーブルを参照することにより、利用者の操作による音楽ＣＤ９の再生演奏に同期した自動演奏を自動ピアノ４に行わせるのである。
【００１４】
まず、ＣＤプレーヤ３にセットされた一般の音楽ＣＤ９を特定する方法について説明する。
一般に市販されている音楽ＣＤ９には、ＣＤプレーヤ３を制御する為の制御情報であるサブコーディング（サブコード）が記録されている。サブコードは、P,Q,R,S,T,U,V,Wチャンネルから成り、その内Ｐ及びＱチャンネル（以下、サブコードのＱチャンネルを特にＱサブコードと呼ぶ）はＣＤプレーヤ３の制御や表示の目的で使用されている。一方、残りのＲ〜Ｗチャンネルは、ユーザーズビットと呼ばれる空きチャンネルとなっており、静止画やカラオケの歌詞を記録するなど様々な応用例があるが、本発明の趣旨とは異なる為、詳細な説明は省略する。
【００１５】
さてサブコードのＰチャンネル及びＱサブコードは音楽ＣＤ内に記録された楽曲の頭出しやプログラム演奏に使用される。Ｐチャンネルは各楽章間でのラフな頭出しに使用されるのに対し、Ｑサブコードはより細かな制御を可能にする為にデータの位置情報などが記録されている（図３のＴ１参照）。通常、ＣＤプレーヤの制御には主としてＱサブコードの情報が使用される。
【００１６】
また音楽ＣＤ９のディスク最内周にあるリードイン部分のＱサブコードにはTOC(Table Of Contents)と呼ばれる索引情報が記録されており、ここには各楽章の開始される演奏実時間等の情報が含まれている（図３のＴ２参照）。ＣＤプレーヤ３はTOCの内容を予め読み込んでおき、特定楽章の再生が指示された場合にTOCの内容を参照することで素早く目的位置を探し出し、ピックアップを移動することが可能となっているのである。ここで言うピックアップは、ＣＤプレーヤ３に備わり、音楽ＣＤ９に記録されたオーディオデータを読み取る為の装置である。上記説明のようにTOCは、音楽ＣＤ９に記録されているオーディオデータの楽曲構成を表す情報であるから、音楽ＣＤ９に対してほぼユニークな情報と考えられる。
【００１７】
本実施形態では、図４に示すデータ構造を持つ音楽ＣＤ特定用データテーブルＴ３がHDD装置２に予め格納されており、コントローラ装置１がこれを参照することでＣＤプレーヤ３にセットされた音楽ＣＤ９を特定することができるようになっている。
図４に示すように、音楽ＣＤ特定用データテーブルＴ３には、多数の市販されている音楽ＣＤ９毎に、TOCのビット列情報TOC、音楽ＣＤ名（例えば、アルバムタイトル名等）、及び音楽ＣＤ９に収録されている全楽曲に各々対応する全MIDIデータが記憶されている。
【００１８】
このような音楽ＣＤ特定用データテーブルＴ３を用いて音楽ＣＤを特定する方法について説明する。
まずＣＤプレーヤ３に音楽ＣＤ９がセットされた場合、コントローラ装置１はＣＤプレーヤ３に対しセットされた音楽ＣＤ９のTOCを供給するように要求する。
コントローラ装置１はＣＤプレーヤ３から供給されたTOCのビット列に一致するビット列情報を、上記音楽ＣＤ特定用データテーブルＴ３から検索する。ＣＤプレーヤ３から供給されたTOCビット列と一致するビット列情報が音楽ＣＤ特定用データテーブルＴ３の中から検索された場合には、一致したビット列情報に対応付けて記憶されている楽曲のMIDIデータを全て読み出す。
以上がＣＤプレーヤ３にセットされた音楽ＣＤ９から読み取ったTOCに基づいて、セットされた音楽ＣＤ９を特定し、特定された音楽ＣＤ９に収録されている全楽曲のMIDIデータを入手するための方法の説明である。
【００１９】
また上記説明では、音楽ＣＤ９の特定をTOCビット列に基づいて行なったが、対応する音楽ＣＤ９との一意性が保証されるならば、TOCビット列に予め定められた前処理を施して得られたデータに基づいて特定を行なっても良い。一例としては、TOCのビット列パターンに対してFFT(Fast Fourier Transform)等の演算を用いた正規化処理等が考えられる。
【００２０】
Ａ−３．同期演奏の為のタイミングマップテーブルの作成方法
上述の音楽ＣＤの特定方法により、ＣＤプレーヤ３にセットされた一般の音楽ＣＤ９の特定及び、音楽ＣＤ９に収録されている楽曲に対応したMIDIデータの読み込みが完了すると、コントローラ装置１は続いて音楽ＣＤ９に記録されたオーディオデータとMIDIデータとを同期演奏させる為のタイミングマップテーブルを生成する。
【００２１】
ここで、オーディオデータとMIDIデータとを同期演奏させる為のタイミングマップテーブルの一例を図５に示す。同図に示すようにタイミングマップテーブルＴ４は、楽曲のMIDIデータを構成するイベントデータを特定する為の識別符号毎(i)に、演奏実時間（時分）と、当該時間において再生される音楽ＣＤ９のフレーム番号とが対応付けられて記憶されている。ここで演奏実時間とは、楽曲の開始時間からMIDIイベントデータを実行する時間までの経過時間を示している。
【００２２】
一般に、MIDIシーケンサによるタイミングコントロール方法はステップタイムが用いられ、そのコントロール方法は２通りある。１つは前のMIDIイベントとの間隔（デルタタイム）をタイミングとする方法で、もう１つは小節線に対するインターバルの大きさによって表現する方法である。このようにMIDIデータでは、イベントデータを実行するタイミングがステップタイムを用いた相対時間系で表現されている。ここでは、ステップタイムとしてデルタタイムを採用した場合に上記タイミングマップテーブルＴ４を作成する方法について、図６を参照しながら説明する。
【００２３】
最初に注目している楽曲に対応するMIDIイベントデータを先頭部分から順次読み込み、同時に識別符号ｉを付与する。この識別符号は、注目している楽曲の中でのMIDIイベントを特定可能であるような一意な符号であれば良い。従って例えば、注目している楽曲のMIDIイベントに対して、先頭から順次、１、２、…、のように付与していくようにすれば良い。
【００２４】
次に読み込んだMIDIデータに示されるテンポデータ及びクロック数の値に基づいて、次のMIDIイベントに対応する前記演奏実時間を算出する。
例えば、図６に示すようなMIDIデータからタイミングマップテーブルＴ４を作成する場合には、イベントデータ(i=1)の演奏実時間は０分０秒となり、イベントデータ(i=2)の演奏実時間は、相対時間系で表されたΔt1を絶対時間系に変換した時間である。従って、Δt1を当該MIDIデータに示されるこの時点でのテンポ及びクロックに基づいて絶対時間に変換し、当該変換後の時間がイベントデータ(i=2)の演奏実時間となる。また、イベントデータ(i=3)の演奏実時間は、イベントデータ(i=2)を実行した後、相対時間系で表されたΔt2が経過した時点となる。従って、イベントデータ(i=3)の演奏実時間は、イベントデータ(i=2)の演奏実時間に、Δt2を絶対時間系に変換した時間を加算した時間となる。更に、イベントデータ(i=4)の演奏実時間も同様に、イベントデータ(i=3)の演奏実時間に、Δt3を絶対時間系に変換した時間を加算した時間となる。
このようにして算出された演奏実時間を、図５に示すタイミングマップテーブルＴ４の経過時間（分）MIN(i)、及び経過時間（秒）SEC(i)にそれぞれセットする。
この手順を注目楽曲の全MIDIイベントデータに対して繰り返すことで、図５に図示したタイミングマップテーブルＴ４の内、フレーム番号を除く部分の生成が完了するのである。
【００２５】
続いて図３に示す音楽ＣＤ９のＱサブコードの時間情報から、楽章内経過時間MINの値およびSECの値を読み取る（Ｔ１）。そしてタイミングマップテーブルＴ４における演奏実時間が上記読み取った楽章内経過時間と一致するようなMIDIイベントデータｉの識別符号を検索し、音楽ＣＤ９から読み取ったフレーム番号FRAMEの値を、当該MIDIイベントデータの識別符号ｉの演奏実時間に対応するオーディオデータの記録位置を表すフレーム番号FRAME(i)の値として順にセットしていく。この時に、同一演奏実時間を持つ複数のフレーム番号が存在する場合は、より小さなフレーム番号の値をフレーム番号FRAME(i)の値としてセットするようにする。
以上説明した手順を対象音楽ＣＤ９の全楽曲に対して繰り返すことで、音楽ＣＤ９のオーディオデータ時間情報と各MIDIイベントとの対応付けをする為の、タイミングマップテーブルＴ４が完成するのである。
【００２６】
Ａ−４．第１実施形態の動作
次に図７及び図８に示すフローチャートを参照して、本第１実施形態の動作について説明する。
なお以下に説明する各処理は、コントローラ装置１内に具備されたＣＰＵがＲＯＭ内に格納された各種プログラムに従って実行するようになっている。
【００２７】
まずＣＤプレーヤ３に音楽ＣＤ９がセットされるとすぐに、音楽ＣＤ９最内周にあるリードインにピックアップが移動し、サーボ、信号処理等を確立する。続いてＣＤプレーヤ３がセットされた音楽ＣＤ９のTOCのデータを読み取り、これがコントローラ装置１に出力されるようになっている。これにより、ＣＤプレーヤ３に音楽ＣＤ９がセットされると、コントローラ装置１は、セットされた音楽ＣＤ９のTOCを取得することができる（ステップS101）。
【００２８】
この後、音楽ＣＤ特定処理及びタイミングマップ生成処理を行うこととなるが、これらの処理中に利用者がＣＤプレーヤ３の操作を行うことを防止する為、ＣＤプレーヤ３の外部からの操作をロックするように、コントローラ装置１からＣＤプレーヤ３に対して制御指示を出す（ステップS102）。
【００２９】
続いて制御を音楽ＣＤ特定処理（ステップS200）へと移行し、TOCに基づいた音楽ＣＤ９の特定処理及び音楽ＣＤ９に収録されている各楽曲に対応したMIDIデータの読み込み処理を行う。この処理は、上述した音楽ＣＤの特定方法で説明した通りである。
【００３０】
音楽ＣＤ特定処理が終了した後、音楽ＣＤ特定処理での音楽ＣＤ９の特定が成功したか否かの判定を行う（ステップS103）。この判定は例えば音楽ＣＤ特定処理において、音楽ＣＤ特定の成功または失敗に応じた値をそれぞれ戻り値として返すようにしておくことにより判定が可能である。
【００３１】
ステップS103において、音楽ＣＤ特定処理が失敗したと判定された場合、例えば「目的のデータが見つかりませんでした。FDD装置にデータフロッピーディスクをセットして再度やり直して下さい」のようなメッセージを表示部８に表示するエラー処理を実行する（ステップS104）。こうして利用者に対し、追加用音楽ＣＤ特定用データテーブルが記録されたフロッピーディスク１０をFDD装置５にセットし、HDD装置２に記録された音楽ＣＤ特定用データテーブルＴ３へデータ追加の為の操作を促すのである。エラー処理が完了すると、制御は再び音楽ＣＤ特定処理（ステップS200）へと移行する。
【００３２】
一方、ステップS103において音楽ＣＤ特定処理が成功したと判定された場合には、MIDIイベントデータのタイミングマップ生成処理を行う（ステップS300）。ここでの処理手順の詳細は上述した同期演奏の為のタイミングマップテーブル作成方法の通りである。
以上で音楽ＣＤオーディオデータとMIDIイベントデータとの同期演奏の為の準備が整ったので、コントローラ装置１からＣＤプレーヤ３の操作ロックを解除するよう制御指示を送信して（ステップS105）、音楽ＣＤ９とMIDIイベントデータとの同期演奏処理（ステップS400）へと制御を移行する。
【００３３】
図８のフローチャートに示すように、ステップS400の同期演奏処理ではまず、コントローラ装置１は、利用者によってＣＤプレーヤ３に何らかの操作が為されたか否かを判別する。何も操作が検知されない場合には操作が検知されるまで待機する（ステップS401及びS407）。
【００３４】
このシステムでは、ＣＤプレーヤ３は何らかの操作が行なわれた場合に、その操作内容を示す信号をコントローラ装置１に出力するように構成されており、コントローラ装置１はこのような信号を受け取った場合に、ＣＤプレーヤ３が操作されたことを検知することができる。
【００３５】
そしてＣＤプレーヤ３が操作されたと検知するとコントローラ装置１は、検知されたＣＤプレーヤ３への操作が「再生停止」であるか否かを判別する（ステップS402）。ここで前記操作が「再生停止」であった場合は、コントローラ装置１から自動ピアノ４へのMIDIリアルタイムメッセージの「ストップ」を送信して自動演奏を停止させ（ステップS408）、処理を終了する。この時ＣＤプレーヤ３は、利用者からの直接操作により、再生を停止している。
【００３６】
更に、検知されたＣＤプレーヤ３への操作が「再生一時停止」であるか否かを判別する（ステップS403）。ここで前記操作が「再生一時停止」であった場合も同様に、コントローラ装置１から自動ピアノ４の自動演奏を停止させ（ステップS408）、処理を終了する。この時ＣＤプレーヤ３は、利用者からの直接操作により、再生を一時停止している。
なお、上記のようなMIDI演奏停止指示には、MIDIリアルタイムメッセージの「スタート」、「ストップ」等が用いられるが、各々音楽ＣＤの「再生開始」、「再生停止」に相当する。
【００３７】
ＣＤプレーヤ３で検知された操作が以上説明した２つのケースに該当しない場合は、利用者によって指定楽曲の再生指示が為された訳であるから、ＣＤプレーヤ３はTOC及びＱサブコードに基づいて、指定された楽曲の先頭或いは指定の再生開始位置へＣＤプレーヤ３のピックアップを移動させ、曲の頭出しを完了する。
本実施形態では、ＣＤプレーヤ３は、コントローラ装置１からの指示があるまで再生を開始しないように構成されており、ＣＤプレーヤ３は、上記のように曲の頭出しを完了した状態でコントローラ装置１からの指示があるまで待機する。
【００３８】
一方、コントローラ装置１は、音楽ＣＤ９の曲の頭出し完了時点でのＱサブコード情報をＣＤプレーヤ３から取得し、このＱサブコードによって特定される楽曲及び演奏実時間に対応するMIDIイベントデータの識別符号ｉをタイミングマップテーブルＴ４から検索する（ステップS404）。
【００３９】
このようにＣＤプレーヤ３による再生位置に対応したイベントデータを特定すると、コントローラ装置１は自動ピアノ４に対して、特定したイベントデータからMIDIデータの送信を開始し（ステップS405）、同時にＣＤプレーヤ３に対して再生開始を指示する（ステップS406）。
例えば、楽曲の先頭からの演奏であった場合には、音楽ＣＤ９について楽曲の曲頭の頭出しが完了した時点でのＱサブコード情報により特定される楽曲の先頭のイベントデータをＣＤプレーヤ３による音楽ＣＤ９の再生開始と同時に出力し、その後は、先頭のイベントデータに続くイベントデータを、順次出力する。
【００４０】
また、ある楽曲の途中からの演奏が指定された場合には、音楽ＣＤ９について当該再生指定開始位置への頭出しが完了した時点でのＱサブコード情報に基づいて楽曲の特定を行い、前記Ｑサブコード情報に含まれる演奏実時間に基づいてタイミングマップテーブルＴ４を参照し、演奏実時間に対応するイベントデータを特定する。そして、特定したイベントデータの出力を、ＣＤプレーヤ３による音楽ＣＤ９の再生開始と同時に行い、その後は、特定したイベントデータに続くイベントデータを順次出力する。
これにより、ＣＤプレーヤ３による音楽ＣＤ９の再生と、自動ピアノ４による自動演奏が同時に開始される。
【００４１】
上述したように、コントローラ装置１から自動ピアノ４に出力されるMIDIデータは、ＣＤプレーヤ３が再生する楽曲に対応したものであり、最初に出力されるイベントデータは、ＣＤプレーヤ３による楽曲再生位置に対応したものであるため、ＣＤプレーヤ３による楽曲再生に同期した自動ピアノ４による自動演奏を実現することができるのである。このようなＣＤプレーヤ３と自動ピアノ４による同期演奏が行なわれている間、コントローラ装置１は、利用者による制御操作の有無を検知し（ステップS401）、操作が検知された場合はステップS402以降と同様の処理を継続する。
【００４２】
一方、ステップS401において操作が検知されなかった場合は、ＣＤプレーヤ３の再生が終了したか否かを判定し（ステップS407）、演奏終了と判定された場合は同期演奏処理を終了し（ステップS408）、そうでなかった場合はステップS401へと制御を移行し、以降は上記と同様の処理を継続するのである。
【００４３】
本実施形態では、ＣＤプレーヤ３で音楽ＣＤ９に収録された、ある楽曲の再生を行う場合、当該楽曲に対応するMIDIデータがHDD装置２に用意されていれば、利用者はＣＤプレーヤ３を操作して上記ある楽曲の再生を開始するように指示するだけで、当該楽曲に対応するMIDIデータがHDD装置２から自動的に読み出され、ＣＤプレーヤ３の楽曲再生に同期してこのMIDIデータを自動ピアノ４に出力して自動演奏を行うことができる。従って、MIDIデータとCD-DA形式のオーディオ信号の両者を記録する特殊なＣＤを用意したり、利用者が予めＣＤプレーヤ３を用いて再生する楽曲に対応するMIDIデータをMIDIシーケンサ等に用意しておき、ＣＤプレーヤ３とMIDIシーケンサとを同時に動作させると言った煩雑な操作を行うことなく、ＣＤに記録された楽曲の再生と、MIDIデータを利用した自動ピアノ４による自動演奏とを同期させることができるのである。
【００４４】
また、利用者がＣＤプレーヤ３に対し、楽曲の頭からではなく途中からの再生を指示した場合にも、コントローラ装置１がタイミングマップテープルＴ４を参照することにより、ＣＤプレーヤ３による途中再生に同期した自動演奏を実現することもできる。
【００４５】
Ｂ．第２実施形態
次に図９は、本発明の第２実施形態に係る楽曲データ出力方法を実現する自動ピアノ演奏システム100´の構成を示す。同図に示すように、本実施形態に係る楽曲データ出力方法を実現する自動ピアノ演奏システム100´は、コントローラ装置１がネットワークインタフェース１１を内蔵しており、インターネットなどのネットワーク１２を介してコンテンツサーバ１３に接続が可能な点で、第１実施形態と相違している。また、本実施形態では、音楽ＣＤを特定する等の為に参照される音楽ＣＤ特定用データテーブルＴ３は、コントローラ装置１が内蔵しているHDD装置２にではなく、コンテンツサーバ１３の記憶装置に格納されており、上述した音楽ＣＤ特定処理はコンテンツサーバ１３によって行なわれるようになっている。
以下、上述した第１実施形態と同様にＣＤプレーヤ３と自動ピアノ４による同期演奏を行う場合の、上記構成のコントローラ装置１の動作について図１０に示すシーケンスフローチャートを参照しながら説明する。
【００４６】
音楽ＣＤ９がＣＤプレーヤ３にセットされ、TOCが読み込まれると、上記第１実施形態と同様にコントローラ装置１はTOCを取得し（ステップS101´）、以下説明する処理が終了するまでの間、利用者によるＣＤプレーヤ３への操作を防止する為に、ＣＤ操作ロックの制御指示をＣＤプレーヤ３へと送出する（ステップS102´）。
【００４７】
TOC受信後にコンテンツサーバ１３は、TOCに基づいて音楽ＣＤ特定処理を実行して音楽ＣＤ９の特定を行う（ステップS200´）。なお、ステップS200´での処理は第1実施形態におけるステップS200（図７参照）の処理と同様である。
続いてコントローラ装置１は、ネットワークインタフェース１１からネットワーク１２を介してコンテンツサーバ１３へと接続し、回線を確立する（ステップS501）。
【００４８】
回線確立後、ＣＤプレーヤ３にセットされた音楽ＣＤ９から取得したTOCがコントローラ装置１からコンテンツサーバ１３へ送信され、以降コントローラ装置１は、コンテンツサーバ１３上での処理が完了するまでの間待機状態となる（ステップS502）。
【００４９】
ステップS503においてステップ音楽ＣＤの特定に失敗したと判定された場合は、エラー処理（S504）を実行した後、回線を切断し（S506）、コンテンツサーバ１３での処理を終了する。エラー処理としては例えば、エラーメッセージをコントローラ装置１に送信し、コントローラ装置１の表示部８に表示させる等の処理がある。
【００５０】
一方ステップS503において、音楽ＣＤ９の特定に成功したと判定された場合は、特定された音楽ＣＤ９に対応する楽曲のMIDIデータがコンテンツサーバ１３からコントローラ装置１へと送信される（ステップS505）。
コントローラ装置１への上記音楽ＣＤ特定用データテーブルＴ３の転送が完了すると、コンテンツサーバ１３は回線を切断し（ステップS506）、処理を終了する。
【００５１】
さて、以上でコンテンツサーバ１３上での処理は全て完了したので、コントローラ装置１での処理が再開する。まずコンテンツサーバ１３から、音楽ＣＤ特定用データテーブルＴ３の転送が為されたか否かの判定が行なわれる（ステップS507）
ここで音楽ＣＤ特定用データテーブルＴ３の転送が為されなかったと判定された場合は、コンテンツサーバ１３において音楽ＣＤ９の特定に失敗した、または音楽ＣＤ特定用データテーブルＴ３の転送に失敗したと考えられるから、エラー処理へと移行する（S508）。エラー処理としては例えば、エラーメッセージをコントローラ装置１の表示部８に表示する等の処理がある。エラー処理終了後は、一旦コントローラ装置１での処理を終了し、上記で説明した処理が、再びステップS101´から再開される。
【００５２】
一方ステップS507において、音楽ＣＤ特定用データテーブルＴ３の転送が成功したと判定された場合には、引き続き第１実施形態における、図７に示すフローチャートのステップS300ないしS400に該当する処理手順を実行することにより、音楽ＣＤ９の再生に同期した自動演奏を自動ピアノ４に行なわせるのである（ステップS300´ないしS400´）。
【００５３】
本実施形態では、ＣＤプレーヤ３にセットした音楽ＣＤ９に記録された楽曲に対応するMIDIデータがコンテンツサーバ１３から供給されるので、コントローラ装置１はHDD装置２等に多数のMIDIデータを保持する必要が無い。従って、必要なMIDIデータのみをコンテンツサーバ１３からダウンロードしてＣＤプレーヤ３との同期演奏に用いることができる。
【００５４】
また本実施形態では、ネットワーク経由でMIDIデータ等のやり取りを行うことが可能であるから、データ記録媒体（メディア）は不要となり、データ提供者及び利用者に取って、データの授受に伴う提供コストが軽減される。
またコンテンツサーバ１３による音楽ＣＤ特定処理でのエラー処理において、検索できなかったMIDIデータについての音楽ＣＤ情報を、利用者からコンテンツサーバ１３に通知するようにすれば、コンテンツサーバ１３を保有するデータ提供者は利用者の需要を知ることもできるようになり、新たなMIDIデータを提供する際の参考とすることが可能となる。コントローラ装置１からコンテンツサーバ１３への音楽ＣＤ情報の通知方法としては例えば、音楽ＣＤ９の商品コードを入力させる方法が簡便である。また上記処理を追加することにより逆に、利用者にとっても自分の要望をデータ提供者に伝達可能となるから、必要なデータが将来入手可能になる可能性が拓ける。
【００５５】
なお上記説明において、コンテンツサーバ１３は、特定された音楽ＣＤ９内の楽曲に対応するMIDIデータを含む音楽ＣＤ特定用データテーブルＴ３を記憶していたが、これに代えて図１１に示すような、各MIDIデータに対応するタイミングマップテーブルを新たに含んだ音楽ＣＤ特定用データテーブルＴ６を併せて記憶しておくようにしても良い。そして、コンテンツサーバ１３が音楽ＣＤ特定処理（ステップS200´）によって特定したMIDIデータに加えて、MIDIデータに対応するタイミングマップテーブルをコントローラ装置１に対して送信するようにしても良い（ステップS505）。このようにすることで、コントローラ装置１におけるタイミングマップテーブル作成処理（S300）が省略でき、コントローラ装置１の処理負担および処理時間を軽減させることが可能となる。
【００５６】
Ｃ．第３実施形態
次に、本発明の第３実施形態について説明する。上記各実施形態では、HDD装置２に格納された音楽ＣＤ特定用データテーブルＴ３を参照し、ＣＤプレーヤ３にセットした音楽ＣＤ９の再生に同期してMIDIデータを自動ピアノ４に出力することにより、音楽ＣＤ９の再生と自動ピアノ４による自動演奏とを同期させていた。これに対し、本実施形態では、演奏者がＣＤプレーヤ３による楽曲の再生に合わせて行なった演奏内容に基づいてMIDIデータを作成し、このMIDIデータを、上記のような同期演奏に利用できるように記憶させることができるようになっている。
【００５７】
なお本実施形態に係る自動ピアノ演奏システムの構成は、第１実施形態における自動ピアノ４（図２参照）に代えて、図１２に示す自動ピアノ４´を用いており、以下、第１実施形態と相違する自動ピアノ４´の構成や、コントローラ装置１等の動作について説明することとする。
【００５８】
Ｃ−１．第３実施形態の構成
図１２に示すように、自動ピアノ４´は、第１実施形態における自動ピアノ４の構成要素に加え、センサ２２と、算出部２３と、処理部２４とを備えている。センサ２２はハンマ１５の運動を検出して出力信号を算出部２３へ送出し、出力信号に基づいて算出部２３が、ハンマ１５の運動に関する物理量（位置、速度、加速度等）を連続的に算出（変換）する。続いて算出（変換）結果を処理部２４が処理することにより、ハンマ１５における打弦速度や、打弦タイミング、押鍵タイミング等のような演奏に関する情報を取得し、取得した情報に基づいて演奏データを生成する。
【００５９】
利用者が自動ピアノ４´を演奏する場合、利用者が鍵１４に対して為した演奏操作により、ハンマ１５が運動する。このハンマ１５の運動をセンサ２２が検出し、算出部２３へ出力する。算出部２３は、センサ２２から供給された出力信号からハンマ１５の運動に関する物理量（位置や速度、加速度など）を算出（変換）する。処理部２４は、算出部２３から供給された算出結果を処理し、ハンマ１５による打弦速度や、打弦タイミング、押鍵タイミング等のような演奏に関する情報を取得し、これらの取得した情報から演奏データ（MIDIデータ）を生成してコントローラ装置１へと出力するような構成となっている。なお、上記説明において、ハンマ１５の運動を検出するセンサ２２に代えて、鍵１４の押鍵運動を検出するセンサを用いるように構成しても良い。
【００６０】
Ｃ−２．第３実施形態の動作
次に本実施形態の構成における自動ピアノ演奏装置の動作について説明する。まず利用者は、演奏する楽曲を記録している音楽ＣＤ９をＣＤプレーヤ３にセットし、演奏する楽曲の再生を指示すると共に、ＣＤプレーヤ３による楽曲の再生に合わせて自動ピアノ４´を用いて当該楽曲の演奏を行う。演奏が行なわれると、その演奏内容に応じて、センサ２２、算出部２３及び処理部２４で演算処理されることによってリアルタイムでMIDIデータが生成され、コントローラ装置１に出力される。コントローラ装置１はMIDIシーケンサのリアルタイム入力機能を利用し、処理部２４からリアルタイムで供給されるMIDIデータをHDD装置２に記録する。
【００６１】
またコントローラ装置１は、上述したようにMIDIデータの記録処理を行うと共に、ＣＤプレーヤ３から、現在再生中の楽曲が当該音楽ＣＤの何番目に収録された楽曲であるかを示す情報を、音楽ＣＤ９のＱサブコードを参照することにより取得する。
【００６２】
ＣＤプレーヤ３による楽曲再生及び演奏者による自動ピアノ４´の演奏が終了すると、コントローラ装置１はＣＤプレーヤ３にセットされている音楽ＣＤ９のTOCを取得し、図４に示すように、当該TOCのビット列に対応付けて、ＣＤタイトル名、及び上記のように演奏者の演奏によって生成されたMIDIデータを記憶した音楽ＣＤ特定用データテーブルＴ３を作成する。ここで、ＣＤタイトル名については利用者が適宜入力できるようにしておけば良い。
【００６３】
そして、ＣＤプレーヤ３による楽曲再生処理終了、或いは利用者の指示による再生終了指示がＣＤプレーヤ３で検知されると、コントローラ装置１におけるMIDIデータ記録処理も終了する。
また、音楽ＣＤ９にはオーディオデータが記録されているが、再生時に利用者には演奏されなかった曲（楽章）については、対応して生成されたMIDIイベントデータは存在しないので、図４の対応するMIDIデータフィールドは空白としておく等すれば良い。
このように作成した音楽ＣＤ特定用データテーブルＴ３を用いれば、上述した第１実施形態と同様にＣＤプレーヤ３による楽曲再生と、利用者自身が演奏することにより作成したMIDIデータによる自動演奏とを同期させることができる。
【００６４】
Ｄ．変形例
以上、本発明の実施形態について説明したが、この実施形態はあくまでも例示であり、本発明の趣旨から逸脱しない範囲で様々な変形が可能である。変形例としては、例えば以下のようなものが考えられる。
【００６５】
＜変形例１＞
なお上記第１実施形態においては、同期演奏に必要なMIDIデータ及び、TOCから音楽ＣＤ９を特定するのに必要な音楽ＣＤ特定用データテーブルＴ３は、HDD装置２に記録されていたが、これらはFDD装置５にセットされたフロッピーディスク１０に記録されていても良い。また、音楽ＣＤ特定用データテーブルＴ３を記録したCD-ROM（Compact Disc-ROM）やMO（Magneto-Optical disk）といった外部記録媒体を読み取るドライブ装置をコントローラ装置１に接続可能とし、各ドライブ装置からコントローラ装置１に前記データを供給するようにしても良い。
【００６６】
＜変形例２＞
上記第１及び第２実施形態においては、タイミングマップテーブルＴ４を作成する場合に、対象とする楽曲の全イベントデータに対して、対応するオーディオデータの記録されたフレーム位置をマッピングしていた。
しかしマッピングは、必ずしも全イベントデータについて行なわなくとも良く、代表的なイベントデータについてだけ予めマッピングを行なっておいても良い。代表的なイベントとしては例えば、楽曲中の各小節線に相当するイベントデータ等がある。
【００６７】
本変形例では上記第１実施形態における、再生される音楽ＣＤ９から読み取ったＱサブコードに基づいて、Ｑサブコードの示す演奏実時間の直前のイベントデータをタイミングマップテーブルから特定する。更に第１実施形態における同期演奏の為のタイミングマップテーブルの作成方法と同様に、前記特定されたイベントデータを起点として、前記Ｑサブコードの示す演奏実時間と一致するまでの間、MIDIメッセージの演奏実時間を累積しながら次々とイベントデータを読み込んでいくのである（ステップS405に相当）。例えば、図１３に示したように、ＣＤプレーヤ３が音楽ＣＤ９から読み取ってコントローラ装置１に送信してきたＱサブコードの示す演奏実時間が「２分８秒」であったとする。一方、図示のように、タイミングマップテーブルに登録されているイベントデータの中で、「２分８秒」の直前の演奏実時間を持つものは、演奏実時間が「２分５秒」（Ｔnとする）で特定されるMIDIイベントデータ（ｎ）である。この場合、特定されたMIDIイベントデータ（ｎ）を起点として、当該起点となるイベントデータを実行すべき時間とステップタイムとに基づいて、後続のイベントデータを実行すべき実時間を求める。即ち、相対時間系で表されたΔｔnを絶対時間に変換し、起点となるイベントデータの演奏実時間（２分５秒）に当該絶対時間を加算した時間が「２分８秒」に達しているか否かを判別する。ここで、「２分８秒」に達していない場合には、更にΔｔn+1を絶対時間に変換した時間を加算し、当該加算時間が「２分８秒」に達しているか否かを判別する。このように起点となるイベントデータの演奏実時間と、MIDIデータ中のステップタイムデータとから起点となるイベントデータの後続のイベントデータを実行する演奏実時間を算出し、当該算出した演奏実時間が「２分８秒」に達するまでこの処理を続けるのである。そして図示の例では、２分５秒にΔｔn…Δｔn+3（絶対時間）を加算した時間が「２分８秒」に一致することになり、この結果、「２分８秒」において実行すべきイベントデータがイベントデータ（ｎ＋３）であると特定できるのである。
【００６８】
こうしてＱサブコードの示す演奏実時間とが一致するイベントデータを特定すると、当該イベントデータから順次MIDIデータの送信を開始すると共に、ＣＤプレーヤ３に対してコントローラ装置１が一時停止解除の制御指示を送信することにより（ステップS406〜S407）、音楽ＣＤ９の再生と、対応するMIDIメッセージによる自動ピアノ４の自動演奏とを同期させて行なわせることが可能である。
【００６９】
以上の説明のように本変形例においては、最小限のタイミングマップテーブルを作成しておくだけで、上記第１ないし第２実施形態と同様の効果が得られるので、タイミングマップテーブル作成時におけるコントローラ装置１の負担及び作成にかかる待ち時間を軽減できるので好ましい。
また本変形例においては更に、タイミングマップテーブルを事前に作成せず、上記と同様に、Ｑフレームから読み取った演奏実時間に実行すべきイベントデータを、MIDIデータを先頭から逐次読み込んで各イベントデータを実行すべき実時間を算出することにより特定しても良い。
【００７０】
＜変形例３＞
上記第２実施形態においては、ＣＤプレーヤ３に読み取られ、ネットワーク１２を介してコンテンツサーバ１３に送信された音楽ＣＤ９のTOCに基づいて、コンテンツサーバ１３が音楽ＣＤ９の特定を行い、各楽曲に対応するMIDIデータをネットワーク１２を介してコントローラ装置１へと送信している。
そして、これを受信することにより、コントローラ装置１が、ＣＤプレーヤ３にセットされた音楽ＣＤ９のTOCにより特定されるMIDIデータを取得していた。
【００７１】
このような方法以外にも、次のようにして音楽ＣＤ９の特定及びMIDIデータの取得を行なっても良い。
即ち、まずHDD装置２内に予め記録されているデータを用いて、コントローラ装置１が音楽ＣＤ特定処理を行う。音楽ＣＤの特定に失敗した場合、コントローラ装置１は次に、セットされたフロッピーディスク１０に対して情報の検索を試みる。音楽ＣＤの特定が失敗、或いはフロッピーディスク１０がセットされていない、というような場合、コントローラ装置１は更に、ネットワーク１２を介してコンテンツサーバ１３へ接続し、音楽ＣＤ９のTOCをコンテンツサーバ１３へと送信して、コンテンツサーバ１３がコントローラ装置１から受信したTOCに基づいて音楽ＣＤ特定処理を行い、各楽曲に対応するMIDIデータを再びネットワーク１２を介してコントローラ装置１へと送信させるのである。
【００７２】
以上の説明のようにすれば利用者は、本発明におけるコントローラ装置１が予め保持するデータ及びコンテンツサーバ１３の保持するデータに基づいた音楽ＣＤ特定処理及び対応するMIDIデータ取得処理をシームレス（見かけ上連続的に）に実行させることができる。
また、ネットワーク接続を行う構成の場合は、コンテンツサーバ１３上で音楽ＣＤ特定処理を実行させる為、コントローラ装置１の負荷を軽減できる。
【００７３】
＜変形例４＞
上記第２実施形態における構成では、ネットワーク１２上において音楽ＣＤ特定処理及びMIDIデータを供給するコンテンツサーバ１３は予め定められた特定の１つのサーバである構成となっていたが、検索対象となるコンテンツサーバ１３を、利用者が任意のコンテンツサーバ群から選択可能な構成としても良いのである。
【００７４】
具体的には例えば、コントローラ装置１がネットワーク１２に接続する時にまず、予め設定された複数の接続先をメニュー形式で表示部８に表示し、利用者に接続先を選択させることで直接接続先の指定が可能な構成とするのである。
以上の説明のようにすることで利用者にとって、より多くの利用可能なMIDIデータの検索及び入手が可能となり、本発明の有用性が向上する。
【００７５】
＜変形例５＞
上記第１ないし第２実施形態及び各変形例においては、自動ピアノ４により音楽ＣＤ９との同期演奏を行う構成となっていたが、自動ピアノ４以外にもMIDIデータに応じて演奏が可能な機器を用いた構成としても良い。また、この機器の動作に遅延がある場合は、オーディオデータの出力に対して演奏データの出力を先行させて、これを補償するようにしても良い。
【００７６】
＜変形例６＞
上記第１ないし第２実施形態および各変形例においては、オーディオデータに対応する楽曲の特定をＣＤのＴＯＣ等によって行うようにしたが、これに限らず、例えば、オーディオデータを各曲ごとに所定時間再生し、この再生されたオーディオデータのピッチを検出することによって音符列を作成し、この音符列に基づき、対応する楽曲を特定するようにしても良い。
【００７７】
＜変形例７＞
上記各実施形態および各変形例において、コントローラ装置１が実行していた処理をコンピュータに実行させるプログラムを、コンピュータが読み取り可能な記録媒体により提供するようにしても良い。
このようにすれば利用者は、コンピュータに前記プログラムをインストールすることにより、コントローラ装置１が実行していた処理をコンピュータに実行させ、利用することが可能となる。
【００７８】
【発明の効果】
以上説明したように本発明によれば、あるフォーマットのデータとして記録媒体に記録されているオーディオデータの出力に同期して、他のフォーマットのオーディオデータとして記録されている演奏データを自動的に読み出して出力することが可能な楽曲データ出力装置及び楽曲データ出力方法を提供することができる。
【図面の簡単な説明】
【図１】      本発明の第１の実施形態に係る自動ピアノ演奏装置の構成を示す構成図である。
【図２】      前記第１の実施形態における自動ピアノの構成を示す構成図である。
【図３】      ＣＤ−ＤＡ(CD-Digital Audio)の制御情報などを記録したTOC(Table of Contents)のデータ部分およびＱサブコードのデータ部分の構造を示す図である。
【図４】      前記第１の実施形態における音楽ＣＤ特定用データテーブルのデータ構成を示す図である。
【図５】      前記第１の実施形態におけるタイミングマップテーブルのデータ構造を示す図である。
【図６】      前記第１の実施形態におけるMIDIイベントデータと、演奏実時間との関係を示す模式図である。
【図７】      前記第１の実施形態における動作手順を示すフローチャートである。
【図８】      前記第１実施形態における同期演奏処理の処理手順を示すフローチャートである。
【図９】      本発明の第２の実施形態に係る自動ピアノ演奏装置の構成を示す構成図である。
【図１０】      前記第２の実施形態におけるコントローラ装置及びコンテンツサーバ間のやりとりを説明するシーケンス図である。
【図１１】      前記第２の実施形態において、タイミングマップテーブルを含んだ音楽ＣＤ特定用データテーブルのデータ構造を示す図である。
【図１２】      本発明の第３の実施形態における自動ピアノの構成を示す構成図である。
【図１３】      本発明の変形例２において、Ｑサブコードの示す演奏実時間及びタイミングマップテーブルの代表イベントの演奏実時間に基づいて、イベントの特定を行う方法を説明する為の図である。
【符号の説明】
１…コントローラ装置、２…HDD装置（外部記録手段）、３…ＣＤプレーヤ、４、４´…自動ピアノ、５…FDD装置、６…アンプ、７…スピーカ、８…表示部、９…音楽ＣＤ（記録媒体）、１０…フロッピーディスク（磁気記録媒体）、１１…ネットワークインタフェース、１２…ネットワーク、１３…コンテンツサーバ、１４…鍵、１５…ハンマ、１６…アクションメカニズム、１７…弦、１８…ソレノイド（駆動手段）、１９…再生前処理部、２０…モーションコントローラ、２１…サーボコントローラ、２２…センサ（検出手段）、２３…算出部、２４…処理部、100、100´…自動ピアノ演奏装置。
【図１】
0004403658.tif 000002
【図２】
0004403658.tif 000003
【図３】
0004403658.tif 000004
【図４】
0004403658.tif 000005
【図５】
0004403658.tif 000006
【図６】
0004403658.tif 000007
【図７】
0004403658.tif 000008
【図８】
0004403658.tif 000009
【図９】
0004403658.tif 000010
【図１０】
0004403658.tif 000011
【図１１】
0004403658.tif 000012
【図１２】
0004403658.tif 000013
【図１３】
0004403658.tif 000014