(57)【特許請求の範囲】
【請求項１】
演奏データについてはあるファイル名で特定し、該演奏データと対をなす歌詞データについては該演奏データのファイル名に対応するファイル名で特定し記憶する記憶手段と、
再生したい演奏データのファイル名を指示する指示手段と、
前記指示手段により指示されるファイル名の演奏データを前記記憶手段から読み出し再生する演奏データ再生手段と、
前記演奏データ中に歌詞データが含まれない場合には、前記指示手段により指示される演奏データのファイル名に対応する歌詞データのファイル名のサーチを行い、前記演奏データ中に歌詞データが含まれる場合にはサーチを行わないサーチ手段と、
前記演奏データ中に歌詞データが含まれない場合には前記サーチ手段によりサーチされるファイル名の歌詞データを前記記憶手段から読み出し再生し、前記演奏データ中に歌詞データが含まれる場合には前記演奏データに含まれる歌詞データを再生する歌詞データ再生手段と、
前記サーチ手段によりサーチされるファイル名の歌詞データが前記記憶手段に見つからなかった場合に、その旨を表示する表示手段と
を有する歌詞データ処理装置。
【請求項２】
演奏データについてはあるファイル名で特定し、該演奏データと対をなす補助データについては該演奏データのファイル名に対応するファイル名で特定し記憶する記憶手段と、
再生したい演奏データのファイル名を指示する指示手段と、
前記指示手段により指示されるファイル名の演奏データを前記記憶手段から読み出し再生する演奏データ再生手段と、
前記演奏データ中に補助データが含まれない場合には、前記指示手段により指示される演奏データのファイル名に対応する補助データのファイル名のサーチを行い、前記演奏データ中に補助データが含まれる場合にはサーチを行わないサーチ手段と、
前記演奏データ中に補助データが含まれない場合には前記サーチ手段によりサーチされるファイル名の補助データを前記記憶手段から読み出して処理し、前記演奏データ中に補助データが含まれる場合には前記演奏データに含まれる補助データを処理する補助データ再生手段と、
前記サーチ手段によりサーチされるファイル名の補助データが前記記憶手段に見つからなかった場合に、その旨を表示する表示手段と
を有する補助データ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏データと対で処理される歌詞データまたは補助データを処理するためのデータ処理装置に関する。
【０００２】
【従来の技術】
カラオケ装置等は、自動演奏データと歌詞データを記憶している。カラオケ演奏等は、自動演奏データを再生すると同時に、歌詞データを表示する。自動演奏データと歌詞データを記憶する際のデータフォーマットは複数種類存在する。データフォーマットの種類は、外見上見分けられないため、歌詞データ処理装置を、複数種類のデータフォーマットに対応させることは困難である。
【０００３】
【発明が解決しようとする課題】
また、自動演奏データを再生するタイミングと歌詞データを表示するタイミングを合わせるため、自動演奏データと歌詞データとを混在して記憶装置に記憶させるデータフォーマットがある。この方式は、記憶装置から演奏データを読み出して再生処理すると同時に、歌詞データを読み出して表示する必要があるので、歌詞データのデータ量が多い曲については演奏（発音）の遅れが生じることがある。
【０００４】
さらに、例えば、電子楽器の自動演奏データのように、世の中には、カラオケ用に作成されていない演奏データが多数存在する。これらの演奏データをカラオケ用に流用させたいとの要求がある。しかし、これらの演奏データをカラオケ用に用いることは容易ではない。
【０００５】
同様に、世の中に存在している演奏データに対して、補助データ（例えば作曲者や作詞者、歌手名等の演奏データの検索に用いるためのデータ）を付加したいとの要求がある。しかし、これらのデータに補助データを付加するために新たに演奏データを作りなおすのは容易ではない。
【０００６】
本発明の目的は、独立の演奏データに対して容易に歌詞データあるいは補助データを付加することができるデータ処理装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明の一観点によれば、歌詞データ処理装置は、演奏データについてはあるファイル名で特定し、該演奏データと対をなす歌詞データについては該演奏データのファイル名に対応するファイル名で特定し記憶する記憶手段と、再生したい演奏データのファイル名を指示する指示手段と、前記指示手段により指示されるファイル名の演奏データを前記記憶手段から読み出し再生する演奏データ再生手段と、前記演奏データ中に歌詞データが含まれない場合には、前記指示手段により指示される演奏データのファイル名に対応する歌詞データのファイル名のサーチを行い、前記演奏データ中に歌詞データが含まれる場合にはサーチを行わないサーチ手段と、前記演奏データ中に歌詞データが含まれない場合には前記サーチ手段によりサーチされるファイル名の歌詞データを前記記憶手段から読み出し再生し、前記演奏データ中に歌詞データが含まれる場合には前記演奏データに含まれる歌詞データを再生する歌詞データ再生手段と、前記サーチ手段によりサーチされるファイル名の歌詞データが前記記憶手段に見つからなかった場合に、その旨を表示する表示手段とを有する。
【０００８】
演奏データと歌詞データが異なるファイルに記憶されている際、操作者は演奏データのファイルを指定するだけで、対をなす演奏データと歌詞データの再生を行わせるができる。
【０００９】
本発明の他の観点によれば、補助データ処理装置は、演奏データについてはあるファイル名で特定し、該演奏データと対をなす補助データについては該演奏データのファイル名に対応するファイル名で特定し記憶する記憶手段と、再生したい演奏データのファイル名を指示する指示手段と、前記指示手段により指示されるファイル名の演奏データを前記記憶手段から読み出し再生する演奏データ再生手段と、前記演奏データ中に補助データが含まれない場合には、前記指示手段により指示される演奏データのファイル名に対応する補助データのファイル名のサーチを行い、前記演奏データ中に補助データが含まれる場合にはサーチを行わないサーチ手段と、前記演奏データ中に補助データが含まれない場合には前記サーチ手段によりサーチされるファイル名の補助データを前記記憶手段から読み出して処理し、前記演奏データ中に補助データが含まれる場合には前記演奏データに含まれる補助データを処理する補助データ再生手段と、前記サーチ手段によりサーチされるファイル名の補助データが前記記憶手段に見つからなかった場合に、その旨を表示する表示手段とを有する。
【００１０】
演奏データと補助データが異なるファイルに記憶されている際、操作者は演奏データのファイルを指定するだけで、演奏データと対をなす補助データを選択し、処理をすることができる。
【００１１】
【発明の実施の形態】
図１は、本発明の実施例による歌詞データ処理装置の機能を説明するための図である。
【００１２】
第１の曲データＤ１と第２の曲データＤ２と第３の曲データＤ３は、それぞれ演奏データと歌詞データを含む。しかし、そのデータフォーマットは異なる。例えば、演奏データと歌詞データとが混在したもの、または演奏データと歌詞データとが完全に独立したもの等がある。
【００１３】
データ変換装置１は、曲データＤ１，Ｄ２，Ｄ３のいずれが入力されてきても、統一フォーマットの曲データＤ０に変換し出力する。曲データＤ０は、演奏データと歌詞データとを分離したフォーマットを有する。統一フォーマットの曲データＤ０に変換することにより、入力データのフォーマットがＤ１であるかＤ２であるかＤ３であるかは関係なくなる。
【００１４】
再生装置２は、演奏データ処理部３と歌詞データ処理部４を有し、曲データＤ０を受け取り、曲データＤ０の再生を行う。演奏データ処理部３は、演奏データの再生を行い発音処理を行う。歌詞データ処理部４は、歌詞データを表示装置に表示する。
【００１５】
演奏データと歌詞データとを分離して、再生することにより、歌詞データのデータ量に依存して、演奏データの再生が遅れることはほとんどなくなる。なお、演奏データと歌詞データとは、時間的に対応付けられて再生される。詳細は、後に説明する。
【００１６】
本実施例による歌詞データ処理装置は、異なるフォーマットを持つ曲データＤ１，Ｄ２，Ｄ３のいずれが入力されても、再生することができる。したがって、電子楽器の自動演奏データのように、演奏データのみの曲データに歌詞データを付加しただけのもののフォーマットに対応させることもできる。詳細は、後に説明する。
【００１７】
図２は、本実施例による歌詞データ処理装置のハードウェア構成を示すブロック図である。ＣＰＵ２０は、バス２４を介して、ＲＯＭ１８、ＲＡＭ１９、タイマ２１の他、ＭＩＤＩインターフェース１１、検出回路１２、表示回路１４、音源回路１５、ハードディスク装置（ＨＤＤ）２２、フロッピディスク装置（ＦＤＤ）２３に接続される。
【００１８】
ＲＡＭ１９は、演奏イベントエリア３１と歌詞イベントエリア３２を有する。演奏イベントエリア３１は、曲データの変換処理により生成される統一フォーマットの演奏イベントを記憶するエリアである。歌詞イベントエリア３２は、統一フォーマットの歌詞データを記憶するエリアである。
【００１９】
ＲＡＭ１９は、その他、レジスタやバッファ等、ＣＰＵ２０のワーキングエリアを有する。ＲＯＭ１８は、コンピュータプログラムや種々のパラメータを記憶する。ＣＰＵ２０は、ＲＯＭ１８に記憶されるコンピュータプログラムに応じて、各種処理を行う。
【００２０】
ＣＰＵ２０は、ハードディスク装置２２、フロッピディスク装置２３またはＭＩＤＩインターフェース１１から曲データを受け、統一フォーマットの曲データに変換する。そして、曲データ中の演奏データを、演奏イベントエリア３１に書き込み、曲データ中の歌詞データを、歌詞イベントエリア３２に書き込む。
【００２１】
タイマ２１は、所定時間間隔でタイマ割り込み信号をＣＰＵ２０に供給する。ＣＰＵ２０は、タイマ割り込み信号を受けて、所定の割り込み処理を行う。フロッピディスク装置２３は、抜き差し可能なフロッピディスクに対してデータの読み出しおよび書き込みを行うことができる。例えば、曲データが記憶されたフロッピディスクを、フロッピディスク装置２３に差し込むことにより、ＣＰＵ２０は、フロッピディスクに記憶されている曲データを読み出すことができる。
【００２２】
ハードディスク装置２２は、大容量記憶装置であり、多数の曲データを記憶することができる。ＣＰＵ２０は、フロッピディスク装置２３からハードディスク装置２２に曲データをコピーすることができる。ＣＰＵ２０は、ハードディスク装置２２から曲データを読み出すこともできる。
【００２３】
ＭＩＤＩインターフェース１１は、外部に対してＭＩＤＩデータを入出力することができる。例えば、曲データを入出力することができる。検出回路１２には、キーボードやマウス装置等の入力装置１３が接続される。ＣＰＵ２０は、検出回路１２を介して、入力装置１３のスイッチ状態等を検出する。操作者は、入力装置１３を操作することにより、各種の指定を行うことができる。例えば、再生を行いたい曲データを指定することができる。また、入力装置１３は、再生を指示するための再生スイッチを有する。
【００２４】
表示回路１４は、ＲＡＭ１９中の歌詞イベントエリア３２に記憶されている歌詞データを表示する。その他、ハードディスク装置２２に記憶されている曲データの種類を表示することもできる。
【００２５】
音源回路１５は、ＲＡＭ１９中の演奏イベントエリア３１に記憶されている演奏データを受けて、楽音信号を生成する。音源回路１５は、波形メモリ方式の他、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯとＶＣＦとＶＣＡを含むアナログシンセサイザ方式等、どのような方式でもよい。
【００２６】
Ｄ／Ａ変換器１６は、音源回路１５から楽音信号を受け、デジタル信号からアナログ信号に変換する。サウンドシステム１７は、アンプとスピーカを有し、Ｄ／Ａ変換器１６からアナログの楽音信号を受ける。楽音信号は、アンプにより増幅され、スピーカから発音される。
【００２７】
以上の構成は、カラオケ装置の形態に限らず、電子楽器の形態でもよいし、パソコンとアプリケーションソフトの形態でもよい。また、音源回路１５は、専用のハードウェアを用いる他、ＤＳＰとマイクロプログラムにより構成するようにしてもよいし、ＣＰＵとソフトウェアという構成であってもよい。また、時分割で複数の発音チャンネルを構成するようにしてもよいし、１つの発音チャンネルを１つの回路で構成してもよい。
【００２８】
なお、ハードディスク装置２２、フロッピディスク装置２３またはＭＩＤＩインターフェース１１は、様々な種類のフォーマットの曲データをＣＰＵ２０に供給することができる。次に、スタンダードＭＩＤＩファイル形式のフォーマット例を３つ、図３〜図５に示す。
【００２９】
図３は、第１データフォーマットを示す図である。図３（Ａ）は、シーケンスファイルＦＬ１のフォーマットを示す。１つの曲データは、１つのシーケンスファイルＦＬ１で表される。シーケンスファイルＦＬ１は、ハードディスク装置２２等に記憶される。シーケンスファイルＦＬ１は、ヘッダチャンクＨＣとトラックチャンクＴＣを有する。ヘッダチャンクＨＣは、トラックチャンクのデータ形式（フォーマット０または１または２）やデータの時間分解能等のデータを有する。以下、トラックチャンクＴＣの構成を示す。
【００３０】
図３（Ｂ）は、トラックチャンクＴＣのデータ構成を示す。トラックチャンクＴＣは、複数のトラックチャンクデータＴＣＤ１，ＴＤＣ２を有する。各トラックチャンクデータＴＣＤ１，ＴＣＤ２は、同じデータ構成である。例えば、トラックチャンクデータＴＣＤ１は、演奏データＳＳ１と歌詞データＬＬ１を有する。
【００３１】
さらに、演奏データＳＳ１は、タイムデータＴＳ１と演奏イベントデータＳＤ１を有する。演奏イベントデータＳＤ１が実質的な演奏データである。タイムデータＴＳ１は、演奏開始から最初の演奏イベントデータＳＤ１までの時間間隔を表す。タイムデータＴＳ２は、演奏イベントデータＳＤ１とその次の演奏イベントデータＳＤ２との間の時間間隔を表す。
【００３２】
歌詞イベントデータＬＬ１は、タイムデータＴＬ１と歌詞イベントデータＬＤ１を有する。歌詞イベントデータＬＤ１が実質的な歌詞データである。タイムデータＴＬ１は、演奏開始から最初の歌詞イベントデータＬＤ１までの時間間隔を表す。タイムデータＴＬ２は、歌詞イベントデータＬＤ１とその次の歌詞イベントデータＬＤ２との間の時間間隔を表す。
【００３３】
なお、図示はしていないが、トラックチャンクＴＣ中に曲名や作曲者名等のデータを含ませてもよい。図４は、第２データフォーマットを示す図である。
【００３４】
図４（Ａ）は、シーケンスファイルＦＬ１のフォーマットを示す。１つの曲データは、１つのシーケンスファイルＦＬ１で表される。シーケンスファイルＦＬ１は、ヘッダチャンクＨＣとトラックチャンクＴＣと歌詞チャンクＬＣを有する。ヘッダチャンクＨＣは、第１データフォーマットのヘッダチャンク（図３（Ａ））と同じ構成である。以下、トラックチャンクＴＣと歌詞チャンクの構成を示す。
【００３５】
図４（Ｂ）は、トラックチャンクＴＣのデータ構成を示す。トラックチャンクＴＣは、複数の演奏データＳＳ１，ＳＳ２を有する。各演奏データＳＳ１，ＳＳ２は、同じデータ構成である。演奏データＳＳ１は、第１データフォーマットの演奏データ（図３（Ｂ））と同じ構成であり、タイムデータＴＳ１と演奏イベントデータＳＤ１を有する。
【００３６】
図４（Ｃ）は、歌詞チャンクＬＣのデータ構成を示す。歌詞チャンクＬＣは、複数の歌詞データＬＬ１，ＬＬ２を有する。各歌詞データＬＬ１，ＬＬ２は、同じデータ構成である。歌詞データＬＬ１は、第１データフォーマットの歌詞データ（図３（Ｂ））と同じ構成であり、タイムデータＴＬ１と歌詞イベントデータＬＤ１を有する。
【００３７】
図５は、第３データフォーマットを示す図である。図５（Ａ）は、シーケンスファイルＦＬ１と歌詞ファイルＦＬ２のフォーマットを示す。１つの曲データは、１つのシーケンスファイルＦＬ１と１つの歌詞ファイルＦＬ２で表され、ハードディスク等に記憶される。
【００３８】
シーケンスファイルＦＬ１は、例えば、従来より使用されている電子楽器用の自動演奏データである。歌詞ファイルＦＬ２は、シーケンスファイルＦＬ１を、例えばカラオケ用に流用するため新たに作成したファイルである。
【００３９】
シーケンスファイルＦＬ１は、ヘッダチャンクＨＣとトラックチャンクＴＣを有する。ヘッダチャンクＨＣは、第１および第２データフォーマットのヘッダチャンク（図３（Ａ）、図４（Ａ））と同じ構成である。
【００４０】
図５（Ｂ）は、トラックチャンクＴＣのデータ構成を示す。トラックチャンクＴＣは、第２データフォーマットのトラックチャンク（図４（Ｂ））と同じ構成であり、複数の演奏データＳＳ１，ＳＳ２を有する。演奏データＳＳ１は、タイムデータＴＳ１と演奏イベントデータＳＤ１を有する。
【００４１】
なお、第１データフォーマット、第２データフォーマット、第３データフォーマットのいずれも演奏データの音符のタイミングとそれに対応する歌詞のタイミングが一致するように演奏データ、歌詞データを作成することが好ましいことはいうまでもない。
【００４２】
図５（Ｃ）は、歌詞ファイルＦＬ２のデータ構成を示す。歌詞ファイルＦＬ２は、第２データフォーマットの歌詞チャンク（図４（Ｃ））と同じ構成であり、複数の歌詞データＬＬ１，ＬＬ２を有する。歌詞データＬＬ１は、タイムデータＴＬ１と歌詞イベントデータＬＤ１を有する。
【００４３】
ＣＰＵ２０は、以上の様々なファイル形式の曲データを統一フォーマットの曲データに変換し、その曲データをＲＡＭ１９中の演奏イベントエリア３１および歌詞イベントエリア３２に書き込む。次に、演奏イベントエリア３１および歌詞イベントエリア３２に書き込まれるデータフォーマットを示す。
【００４４】
図６は、統一データフォーマットを示す図である。曲データは、演奏データおよび歌詞データに分離され、それぞれ演奏イベントエリア３１と歌詞イベントエリア３２に書き込まれる。
【００４５】
図６（Ａ）は、ＲＡＭ中の演奏イベントエリア３１のデータフォーマットを示す。演奏イベントエリア３１には、複数の演奏データＳＳ１，ＳＳ２が記憶される。各演奏データＳＳ１，ＳＳ２は、同じデータ構成である。例えば、演奏データＳＳ１は、前述と同様、タイムデータＴＳ１と演奏イベントデータＳＤ１を有する。
【００４６】
図６（Ｂ）は、ＲＡＭ中の歌詞イベントエリア３２のデータフォーマットを示す。歌詞イベントエリア３２には、複数の歌詞データＬＬ１’，ＬＬ２’が記憶される。各歌詞データＬＬ１’，ＬＬ２’は、同じデータ構成である。例えば、歌詞データＬＬ１’は、前述とは異なり、タイムデータＴＬ１’と文字列イベントデータＬＤ１’を有する。
【００４７】
文字列イベントデータＬＤ１’は、歌詞データのうちの文字列を１かたまりとして保持するデータである。例えば、変換前の第１〜３データフォーマットは１文字毎の歌詞データとして表されているので、表示回路１４に、演奏の進行にしたがって文字列単独で歌詞を表示するには、文字列への変換が必要になる。文字列のタイムデータＴＬ１’は、各文字のタイムデータを加算したデータになる。次に、具体例を示す。
【００４８】
図７は、歌詞イベントデータから文字列イベントデータへの変換例を示す。図７（Ａ）は、第１〜３データフォーマットの歌詞イベントデータの例を示す。歌詞チャンクＬＣは、５つの歌詞データＬＬ１〜ＬＬ５を有する。各歌詞データのタイムデータＴＬ１〜ＴＬ５は、それぞれｔ１，ｔ２，ｔ３，ｔ４，ｔ５であり、歌詞イベントデータＬＤ１〜ＬＤ５は、それぞれ「青（あ」、「お）」、「い」、「空（そ」、「ら）／」である。ここで、／は改行である。
【００４９】
図７（Ｂ）は、歌詞イベントエリア３２に記憶される文字列イベントデータの例を示す。歌詞イベントエリア３２には、歌詞データＬＬ１’が記憶される。歌詞データＬＬ１’のタイムデータＴＬ１’は、１つ前の文字列ＬＤ０’の先頭の文字からＬＤ１’の先頭の文字までのタイムデータの和「ｔｄ＋…＋ｔ１」であり、文字列イベントデータＬＤ１’は、「青（あお）い空（そら）／」である。そして次の文字列イベントデータＬＤ２’とタイムデータＴＬ２’のうち、タイムデータＴＬ２’は「ｔ２＋ｔ３＋ｔ４＋ｔ５＋ｔ６」である。文字列イベントデータＬＤ１’は、図７（Ａ）の歌詞イベントデータを再編成したデータであり、改行までの文字が１つの文字列である。
【００５０】
図８は、ＣＰＵが行うファイル選択処理のフローチャートである。ステップＳＡ１では、選択ファイルの指定を受け付ける。表示回路１４には、ハードディスク装置２２に記憶されている曲データのシーケンスファイル名が表示される。操作者は、キーボードまたはマウス等の入力装置１３を用いて、演奏したいファイルの選択を行うことができる。操作者が選択するファイルは、第１〜３データフォーマットのうちのいずれのファイルでもよい。
【００５１】
ステップＳＡ２では、指定されたファイルからトラックチャンクのデータを読み出す。ファイル中には、トラックチャンクの先頭であることを示す識別コードが含まれている。この識別コードを手掛かりにトラックチャンクの位置を特定する。
【００５２】
読み出されるデータは、歌詞イベントまたは演奏イベントのいずれかである。つまり、タイムデータと歌詞イベントデータを１組として、またはタイムデータと演奏イベントデータを１組として読み出す。
【００５３】
ステップＳＡ３では、読み出したデータが歌詞イベントであるか演奏イベントであるかをチェックする。歌詞イベントであれば、ステップＳＡ４へ進み、読み出したデータをＲＡＭ中の歌詞イベントエリア３２へ転送し、ステップＳＡ６へ進む。
【００５４】
読み出したデータが演奏イベントであるときには、ステップＳＡ５へ進み、読み出したデータをＲＡＭ中の演奏イベントエリア３１へ転送し、ステップＳＡ６へ進む。なお、ステップＳＡ４およびＳＡ５において、タイムデータが読み出された場合は、両エリアに同じタイムデータを転送する。第１データフォーマットのように、演奏データと歌詞データが混在する場合、それらに対応するタイムデータも混在しているので、タイムデータについては全て両エリアに転送する。タイムデータは、演奏データと歌詞データについて共通の情報である。
【００５５】
ステップＳＡ６では、トラックチャンクから全てのデータの読み出しが終了したか否かをチェックする。読み出しが終了していないときには、ステップＳＡ２へ戻り、トラックチャンク中の次のデータについて、同様の処理を繰り返す。全てのデータについて処理が終了したときには、ステップＳＡ７へ進む。
【００５６】
ステップＳＡ７では、トラックチャンクから読み出したデータに歌詞イベントが含まれていたか否かをチェックする。歌詞イベントが含まれていたときには、第１データフォーマットの場合であり、ステップＳＡ８へ進む。その場合は、歌詞イベントと演奏イベントの両方についてのデータ転送が終了している。
【００５７】
ステップＳＡ８では、歌詞イベントエリアのデータを再編成し、処理を終了する。つまり、文字イベントから文字列イベントへの再編成を行う。ステップＳＡ７において、トラックチャンクから読み出したデータに歌詞イベントが含まれていないと判断されたときには、第２または第３データフォーマットの場合であるので、歌詞イベントの処理を行うため、ステップＳＡ９へ進む。
【００５８】
ステップＳＡ９では、選択されたシーケンスファイルの中から歌詞チャンクをサーチする。ファイル中には、歌詞チャンクの先頭を示す識別コードが含まれている。この識別コードを手掛かりに歌詞チャンクの位置を特定する。
【００５９】
ステップＳＡ１０では、歌詞チャンクが見つかったか否かを判断する。歌詞チャンクが見つかったときには、第２データフォーマットの場合であるので、ステップＳＡ１１へ進む。
【００６０】
ステップＳＡ１１では、見つけた歌詞チャンクのデータをＲＡＭ中の歌詞イベントエリア３２へ転送する。ステップＳＡ８では、前述と同様に、歌詞イベントエリア３２のデータを再編成し、処理を終了する。
【００６１】
ステップＳＡ１０において、歌詞チャンクが見つからなかったと判断されたときには、第３データフォーマットの場合であるので、ステップＳＡ１２へ進む。ステップＳＡ１２では、選択したシーケンスファイルと同一ファイル名の歌詞ファイルをサーチする。第３データフォーマットは、図５に示したように、シーケンスファイルＦＬ１と歌詞ファイルＦＬ２と２つからなる。
【００６２】
例えば、シーケンスファイルは“ＡＢＣＤ．ＭＩＤ”の名称であり、歌詞ファイルは“ＡＢＣＤ．ＬＹＲ”の名称である。この２つは、ファイル名が共に“ＡＢＣＤ”で共通し、ファイルの種類が異なる。末尾の“ＭＩＤ”は、シーケンスファイルであることを示し、“ＬＹＲ”は、歌詞ファイルであることを示す。
【００６３】
ここで、例えば、シーケンスファイル“ＡＢＣＤ．ＭＩＤ”が選択されているのであれば、同一ファイル名の歌詞ファイル“ＡＢＣＤ．ＬＹＲ”をサーチする。
【００６４】
ステップＳＡ１３では、歌詞ファイルが見つかったか否かを判断する。歌詞ファイルが見つかったのであれば、ステップＳＡ１４へ進む。ステップＳＡ１４では、見つけた歌詞ファイルのデータをＲＡＭ中の歌詞イベントエリア３２へ転送する。ステップＳＡ８では、前述と同様に、歌詞イベントエリア３２のデータを再編成し、処理を終了する。
【００６５】
ステップＳＡ１３において、歌詞ファイルが見つからなかったと判断されたときには、ステップＳＡ１５へ進む。ステップＳＡ１５では、「歌詞データ無し」のメッセージを表示回路１４に表示し、処理を終了する。
【００６６】
以上により、第１〜第３データフォーマットのデータは統一フォーマットのデータに変換され、演奏イベントエリア３１および歌詞イベントエリア３２に記憶される。
【００６７】
図９は、演奏イベント処理と歌詞イベント処理の優先度を示す図である。演奏イベント処理と歌詞イベント処理は、共に割り込み処理である。割り込み処理の優先度は、演奏イベント処理の方が歌詞イベント処理よりも高くする。
【００６８】
演奏イベント処理は、演奏データの再生を行うための処理である。歌詞イベント処理は、歌詞データの表示を行うための処理である。演奏イベント処理の優先度を高くすることにより、歌詞イベントのデータ量が多くても、演奏の遅れを防止することができる。これは、演奏データと歌詞データとを分離して、別エリアに記憶させておくことにより、可能となる。
【００６９】
歌詞データの表示については、多少遅れが生じても、聴取者はそれほど気にならない。一方、演奏の遅れについては、聴取者が敏感に反応する。したがって、演奏の遅れを優先的に防止する必要がある。
【００７０】
次に、演奏イベント処理と歌詞イベント処理のそれぞれについて説明する。図１０は、演奏イベント処理を示すフローチャートである。演奏イベント処理は、例えば割り込み周期が１０ｍｓの割り込み処理である。
【００７１】
ステップＳＢ１では、再生フラグＲＵＮが１であるか否かをチェックする。再生フラグは、初期時には０にセットされている。その後、操作者が再生スイッチを押すと１になる。停止スイッチを押すと再び０になる。
【００７２】
再生フラグＲＵＮが０であるときには、再生が指示されていないので、再生処理をせずに、割り込み前の処理へ戻る。再生フラグＲＵＮが１であるときには、再生処理を行うため、ステップＳＢ２へ進む。
【００７３】
ステップＳＢ２では、レジスタＴＩＭＥの値をＫだけ減じる。操作者が再生スイッチを押すと、レジスタＴＩＭＥには、初期時、最初の演奏イベントのタイムデータが格納される。このタイムデータは、再生スイッチが押されてから実際に発音が開始されるまでの時間を表す。
【００７４】
Ｋは、次式のように、演奏テンポと割り込み周期に応じて、決まる値である。
Ｋ＝（テンポ×分解能×割り込み周期）／（６０×１０００）
ここで、分解能とは、４分音符の分解能であり、例えば９６である。Ｋが大きいほど単位時間に多くのデータが読み出され発音処理される。
【００７５】
例えば、テンポが１２０であり、割り込み周期が１０ｍｓである場合、Ｋ＝（１２０×９６×１０）／（６０×１０００）
＝１．９２になる。なお、タイムデータも４分音符の分解能（例えば９６）を最小単位とする値で記述される。
【００７６】
ステップＳＢ３では、レジスタＴＩＭＥが０以下であるか否かをチェックする。レジスタＴＩＭＥが０以下になっていないときには、今回は演奏データの処理を行わないで、処理を終了し、割り込み前の処理に戻る。
【００７７】
１０ｍｓ毎に割り込み処理を繰り返すと、ステップＳＢ２でレジスタＴＩＭＥが次第に減じられていく。ステップＳＢ３において、レジスタＴＩＭＥが０以下になったと判断されたときには、ステップＳＢ４へ進む。
【００７８】
ステップＳＢ４では、ＲＡＭ中の演奏イベントエリアのアドレスを進めて、データを読み出す。データは、タイムデータと演奏イベントデータとが別に読み出される。つまり、タイムデータまたは演奏イベントデータのいずれかが読み出される。
【００７９】
ステップＳＢ５では、読み出したデータがタイムデータか否かをチェックする。タイムデータでないときには、演奏イベントデータであるので、ステップＳＢ７へ進む。
【００８０】
ステップＳＢ７では、演奏イベントデータを音源回路１５へ出力し、ステップＳＢ４へ戻る。ステップＳＢ４以降では、次のデータについての処理を繰り返す。音源回路１５に演奏イベントデータを出力すると、音源回路１５は楽音信号を生成し、Ｄ／Ａ変換器１６およびサウンドシステム１７を介して発音される。
【００８１】
ステップＳＢ５において、読み出したデータがタイムデータであると判断されたときには、ステップＳＢ６へ進む。ステップＳＢ６では、レジスタＴＩＭＥに読み出したタイムデータを加算する。
【００８２】
ステップＳＢ６では、レジスタＴＩＭＥが０より大きいか否かをチェックする。ステップＳＢ２において、レジスタＴＩＭＥからＫを減じた結果、レジスタＴＩＭＥが負値になってしまい、ステップＳＢ６においてレジスタＴＩＭＥにタイムデータを加算しても、なお負値のままであるときには、ステップＳＢ４へ戻り、さらに次のデータについても処理を行う。
【００８３】
ステップＳＢ８において、レジスタＴＩＭＥが０より大きいと判断されたら、処理を終了し、割り込み前の処理へ戻る。図１１は、歌詞イベント処理を示すフローチャートである。歌詞イベント処理は、例えば割り込み周期が２０ｍｓの割り込み処理である。歌詞イベント処理を、頻繁に行う必要がないときには、演奏イベント処理よりも割り込み周期を長くしてもよい。同じ割り込み周期でもよい。
【００８４】
ステップＳＣ１では、再生フラグＲＵＮが１であるか否かをチェックする。再生フラグＲＵＮが０であるときには、再生が指示されていないので、再生処理をせずに、割り込み前の処理へ戻る。再生フラグＲＵＮが１であるときには、再生処理を行うため、ステップＳＣ２へ進む。
【００８５】
ステップＳＣ２では、レジスタＴＩＭＥの値をＫだけ減じる。Ｋは、前述のように、演奏テンポと割り込み周期に応じて、決まる値である。ステップＳＣ３では、レジスタＴＩＭＥが０以下であるか否かをチェックする。レジスタＴＩＭＥが０以下になっていないときには、演奏データの処理を行わないで、処理を終了し、割り込み前の処理に戻る。レジスタＴＩＭＥが０以下になったと判断されたときには、ステップＳＣ４へ進む。
【００８６】
ステップＳＣ４では、ＲＡＭ中の歌詞イベントエリアのアドレスを進めて、データを読み出す。タイムデータまたは文字列イベントデータのいずれかを読み出す。
【００８７】
ステップＳＣ５では、読み出したデータがタイムデータか否かをチェックする。タイムデータでないときには、文字列イベントデータであるので、ステップＳＣ７へ進む。
【００８８】
ステップＳＣ７では、文字列イベントデータを表示回路１４へ表示し、ステップＳＣ４へ戻る。ステップＳＣ４以降では、次のデータについての処理を繰り返す。
【００８９】
ステップＳＣ５において、読み出したデータがタイムデータであると判断されたときには、ステップＳＣ６へ進む。ステップＳＣ６では、レジスタＴＩＭＥに読み出したタイムデータを加算する。
【００９０】
ステップＳＣ６では、レジスタＴＩＭＥが０より大きいか否かをチェックする。レジスタＴＩＭＥが０以下のときには、ステップＳＣ４へ戻り、さらに次のデータについても処理を行う。一方、レジスタＴＩＭＥが０より大きいと判断されたら、処理を終了し、割り込み前の処理へ戻る。
【００９１】
次に他の実施の形態について説明する。他の実施の形態においては、前述した演奏データ、歌詞データに加え、補助データが記憶される。補助データとしては、この曲データの発表年月日、制作された国を示す国情報、曲のジャンル、曲の拍子、ビート、メロディを担当する主たる楽器種類、曲を歌う歌手の性別、曲の作曲者、作詞者、編曲者、演奏者または歌手／グループ名、曲データの作成者等のデータが含まれている。
【００９２】
なお、曲のジャンルとは音楽の種類を示す名称であり、ロック、ポップス、ジャズ、ラテンなどがある。また、拍子は１小節内の拍数を示すものであり、３拍子、４拍子などが一般的である。また、ビートとは、１小節に何回リズムを叩くかの回数であり、４拍子系の曲の場合には４ビート、８ビート、１６ビートなどが一般的である。また、シャッフル、スイングなどもビートの一種である。メロディを担当する主たる楽器種類は、メロディパートを演奏する楽器音色を示すデータである。曲を歌う歌手の性別は、男性ソロ、女性ソロ、男女デュエット、男性複数、女性複数、歌無しなどのデータである。これらの補助データは、表示回路１４へと供給されて、曲データに関する各種情報を操作者に知らせたり、検索条件としてこれらの補助データを指定し、合致する曲データを操作者に知らせたりするのに用いられる。このような補助データの記憶フォーマットを３つ、図１２〜図１４に示す。
【００９３】
図１２は、第１データフォーマットを示す図である。図３（Ａ）は、シーケンスファイルＦＬ１のフォーマットを示す。１つの曲データは、１つのシーケンスファイルＦＬ１で表される。シーケンスファイルＦＬ１は、ハードディスク装置２２等に記憶される。シーケンスファイルＦＬ１は、ヘッダチャンクＨＣとトラックチャンクＴＣを有する。ヘッダチャンクＨＣは、トラックチャンクのデータ形式（フォーマット０または１または２）やデータの時間分解能等のデータを有する。以下、トラックチャンクＴＣの構成を示す。
【００９４】
図１２（Ｂ）は、トラックチャンクＴＣのデータ構成を示す。トラックチャンクＴＣは、複数のデータ（補助データＡＡ、演奏データＳＳ１、歌詞データＬＬ１、…）を有する。
【００９５】
補助データＡＡは、タイムデータＴＡ１と補助データＡＤ１からなる。タイムデータＴＡ１は、曲データの先頭から補助データＡＤ１が発生するまでの時間間隔を表すデータであるが、通常、時間「０」が記憶されている。すなわち、曲の開始と同時に補助データＡＤ１が発生することになる。補助データＡＤ１は、前述したような多数の補助データがメタイベント形式により記憶される。
【００９６】
演奏データＳＳ１、ＳＳ２や、歌詞データＬＬ１、ＬＬ２については、図３において前述したものと同じ構成であるので、ここでの説明は省略する。図１３は、第２データフォーマットを示す図である。
【００９７】
図１３（Ａ）は、シーケンスファイルＦＬ１のフォーマットを示す。１つの曲データは、１つのシーケンスファイルＦＬ１で表される。シーケンスファイルＦＬ１は、ヘッダチャンクＨＣとトラックチャンクＴＣと歌詞チャンクＬＣと補助データチャンクＡＣを有する。ヘッダチャンクＨＣは、第１データフォーマットのヘッダチャンク（図１２（Ａ））と同じ構成である。また、図１３（Ｂ）にトラックチャンクＴＣ、図１３（Ｃ）に歌詞チャンクＬＣのデータ構成を示すが、これらは図４において前述したものと同じ構成であるので、ここでの説明は省略する。
【００９８】
補助データチャンクＡＣは、図１２における補助データＡＤ１と同様の構成である。すなわち、補助データＡＤ１の内容が、１つのチャンクとして独立して記憶されている。
【００９９】
図１４は、第３データフォーマットを示す図である。図１４（Ａ）は、シーケンスファイルＦＬ１と歌詞ファイルＦＬ２と補助データファイルＦＬ３のフォーマットを示す。１つの曲データは、１つのシーケンスファイルＦＬ１と１つの歌詞ファイルＦＬ２と１つの補助データファイルＦＬ３で表され、ハードディスク装置２２等に記憶される。
【０１００】
シーケンスファイルＦＬ１、歌詞ファイルＦＬ２は、図５において前述したものと同様の構成である。補助データファイルＦＬ３は、シーケンスファイルＦＬ１、歌詞ファイルＦＬ２からなる曲データに対して、新たに補助データを付加するために作成したファイルである。この補助データファイルＦＬ３には、図１３において前述した補助データチャンクＡＣの内容と同様のものが記憶されている。
【０１０１】
図１５は、ＣＰＵが行うファイル選択処理のフローチャートである。ステップＳＤ１では、選択ファイルの指定を受け付ける。表示回路１４には、ハードディスク装置２２に記憶されている曲データのシーケンスファイル名が表示される。操作者は、キーボードまたはマウス等の入力装置１３を用いて演奏したいファイルの選択を行うことができる。操作者が選択するファイルは、第１〜第３データフォーマットの内のいずれのファイルでもよい。
【０１０２】
ステップＳＤ２では、指定されたファイルからトラックチャンクのデータを読み出す。ファイル中には、トラックチャンクの先頭であることを示す識別コードが含まれている。この識別コードを手がかりにトラックチャンクの位置を特定する。
【０１０３】
読み出されるデータは、歌詞イベント、演奏イベント、または補助データである。ステップＳＤ３では、読み出したデータが補助データであるか否かをチェックする。補助データであればステップＳＤ４へ進み、補助データにより各種処理を行う。例えば、補助データを表示回路１４へと供給し、曲データに関する各種情報を表示する。あるいは、補助データを所定のレジスタへと書き込み、後に実行される検索処理（補助データの少なくとも１つを検索条件として、該検索条件に合致する曲データを検索する；詳細説明は省略）に備えるなどの処理を行う。
【０１０４】
読み出したデータが演奏イベントあるいは歌詞イベントであったときは、直ちにステップＳＤ５へ進む。ステップＳＤ５では、トラックチャンクからすべてのデータの読み出しが終了したか否かをチェックする。読み出しが終了していないときには、ステップＳＤ２へ戻り、トラックチャンク中の次のデータについて同様の処理を繰り返す。全データについて処理が終了したときには、ステップＳＤ６へ進む。
【０１０５】
ステップＳＤ６では、トラックチャンクから読み出したデータに補助データが含まれていたか否かをチェックする。補助データが含まれていたときには、第１データフォーマットであり、このファイル選択処理を終了する。
【０１０６】
ステップＳＤ６において、トラックチャンクから読み出したデータに補助データが含まれていないと判断されたときには、第２または第３データフォーマットの場合であるので、補助データの処理を行うため、ステップＳＤ７へ進む。
【０１０７】
ステップＳＤ７では、選択されたシーケンスファイルの中から補助データチャンクをサーチする。第２データフォーマットならば、ファイル中には、補助データチャンクの先頭を示す識別コードが含まれている。この識別コードを手がかりに補助データチャンクの位置を特定する。
【０１０８】
ステップＳＤ８では、補助データチャンクが見つかったか否かを判断する。補助データチャンクが見つかったときには、第２データフォーマットの場合であるので、ステップＳＤ９へ進む。ステップＳＤ９では、ステップＳＤ４と同様に補助データに関する処理を実行する。
【０１０９】
ステップＳＤ８において、補助データチャンクが見つからなかったと判断されたときには、第３データフォーマットの場合であるので、ステップＳＤ１０へ進む。
【０１１０】
ステップＳＤ１０では、選択したシーケンスファイルと同一ファイル名の補助データファイルをサーチする。第３データフォーマットは、図１４に示したように、シーケンスファイルＦＬ１と補助データファイルＦＬ３とが独立して記憶されている。
【０１１１】
例えば、シーケンスファイルは“ＡＢＣＤ．ＭＩＤ”の名称であり、補助データファイルは“ＡＢＣＤ．ＡＳＳ”の名称である。末尾の“ＭＩＤ”はシーケンスファイルであることを示し、“ＡＳＳ”は補助データファイルであることを示す。
【０１１２】
ここで、例えば、シーケンスファイル“ＡＢＣＤ．ＭＩＤ”が選択されているのであれば、同一ファイル名の補助データファイル“ＡＢＣＤ．ＡＳＳ”をサーチする。
【０１１３】
ステップＳＤ１１では、補助データファイルが見つかったか否かを判断する。補助データファイルが見つかったのであれば、ステップＳＤ１２へ進む。ステップＳＤ１２では、見つけた補助データファイルの補助データにより、ステップＳＤ４と同様の処理を実行する。
【０１１４】
ステップＳＤ１１において、補助データファイルが見つからなかったと判断されたときには、ステップＳＤ１３へ進む。ステップＳＤ１３では、「補助データ無し」のメッセージを表示回路１４に表示する。
【０１１５】
以上により、第１〜第３データフォーマットのデータから補助データが読み出され、各種処理が実行される。なお、上述した例においては、第１データフォーマット、第２データフォーマット、第３データフォーマットの順に優先度が与えられ、先に見つかった歌詞データあるいは補助データが利用されるようにしたが、これとは異なる優先度を与えるようにしてもよい。例えば、第３データフォーマットを最優先すれば、新たなデータファイルを供給するだけで、歌詞データや補助データを新しいデータに更新することができる。
【０１１６】
また、補助データとしては、上述したようなデータに限らず、演奏データを補助するような種類のデータであれば何でもよい。例えば、演奏データに対して歌やバックコーラス等、音声を付加するためのデータや、演奏データに対してさらに伴奏音を付与するようなデータ（例えば伴奏パターンデータ等）であっても、本発明の補助データに含まれる。
【０１１７】
以上のように、本実施例によれば、異なる種類のフォーマットの曲データが供給されても、統一フォーマットのデータにデータ変換し、再生することができる。これにより、様々なアプリケーションにより生成された曲データを再生することができる。
【０１１８】
また、歌詞データに対応していない演奏データに対して、容易に歌詞データを付加することができる。例えば、第３データフォーマットのように、歌詞ファイルを付加するだけで、電子楽器の自動演奏データをカラオケ用に簡単に流用することができる。
【０１１９】
また、異なる種類のフォーマットの曲データが供給されても、補助データを確実に利用することができる。また、補助データを記憶していない演奏データに対して、容易に補助データを付加することができる。従来から存在していた演奏データに、補助データを付加することで、演奏データの検索が容易になる。また、演奏データに関する各種情報を操作者が知ることもできる。
【０１２０】
さらに、曲データをデータ変換し、演奏データと歌詞データとを分離して、別のエリアに記憶させることにより、演奏データの処理と歌詞データの処理を分離することができる。演奏データの処理を優先的に処理させれば、歌詞データ処理の負荷が大きくても、演奏の遅れを防止することができる。
【０１２１】
なお、歌詞イベントエリアには、改行までの文字を文字列とした文字列イベントデータを格納し、それらをまとめて表示するようにしたが、１文字ずつ表示するようにしてもよい。
【０１２２】
また、歌詞データを先読みしておき、演奏データの再生に先行して歌詞を表示するようにしてもよい。その際、表示文字の色を変えたり、下線を引く等の方法によって演奏位置を示すようにしてもよい。
【０１２３】
再生のテンポを変更するには、テンポクロックの周期を変更したり、テンポクロックの周期はそのままでタイムデータの値を修正したり、１回の処理においてカウントする値を変えたりすればよい。
【０１２４】
演奏データと歌詞データのみならず、同時に画像データを処理してもよい。その際、画像データを別に処理してもよいし、静止画像であれば、歌詞データと一緒に処理してもよい。
【０１２５】
本実施例は、通信カラオケやパソコン通信に適用することもできる。その際、送信側で用いても、受信側で用いてもよい。以上述べたデータフォーマットは例である。演奏データのフォーマットは、イベントと相対時間の組、イベントと絶対時間の組、音高と符長の組、その他ベタ方式等でもよい。
【０１２６】
また、それぞれのチャンネルがトラック毎に別れているデータ形式でもよいし、複数のチャンネルが混在したデータ形成でもよい。以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【０１２７】
【発明の効果】
以上説明したように、本発明によれば、演奏データと歌詞データが異なるファイルに記憶されている際、操作者は演奏データのファイルを指定するだけで、対をなす演奏データと歌詞データの再生を行わせるができる。
【０１２８】
また、演奏データと補助データが異なるファイルに記憶されている際、操作者は演奏データのファイルを指定するだけで、対をなす補助データも指定することができる。
【図面の簡単な説明】
【図１】  本発明の実施例による歌詞データ処理装置の機能を説明するための図である。
【図２】  図２は、本実施例による歌詞データ処理装置のハードウェア構成を示すブロック図である。
【図３】  第１データフォーマットを示す。図３（Ａ）はシーケンスファイルのフォーマットを示す図であり、図３（Ｂ）はトラックチャンクＴＣのデータ構成を示す図である。
【図４】  第２データフォーマットを示す。図４（Ａ）はシーケンスファイルのフォーマットを示す図であり、図４（Ｂ）はトラックチャンクのデータ構成を示す図であり、図４（Ｃ）は歌詞チャンクのデータ構成を示す図である。
【図５】  第３データフォーマットを示す。図５（Ａ）はシーケンスファイルと歌詞ファイルのフォーマットを示す図であり、図５（Ｂ）はトラックチャンクのデータ構成を示す図であり、図５（Ｃ）は歌詞ファイルのデータ構成を示す図である。
【図６】  統一データフォーマットを示す。図６（Ａ）はＲＡＭ中の演奏イベントエリアのデータフォーマットを示す図であり、図６（Ｂ）はＲＡＭ中の歌詞イベントエリアのデータフォーマットを示す図である。
【図７】  歌詞イベントデータから文字列イベントデータへの変換例を示す。図７（Ａ）は第１〜３データフォーマットの歌詞イベントデータの例を示す図であり、図７（Ｂ）は歌詞イベントエリアに記憶される文字列イベントデータの例を示す図である。
【図８】  ＣＰＵが行うファイル選択処理のフローチャートである。
【図９】  演奏イベント処理と歌詞イベント処理の優先度を示す図である。
【図１０】  演奏イベント処理を示すフローチャートである。
【図１１】  歌詞イベント処理を示すフローチャートである。
【図１２】  補助データを含む第１データフォーマットを示す。図１２（Ａ）はシーケンスファイルのフォーマットを示す図であり、図１２（Ｂ）はトラックチャンクのデータ構成を示す図である。
【図１３】  補助データを含む第２データフォーマットを示す。図１３（Ａ）はシーケンスファイルのフォーマットを示す図であり、図１３（Ｂ）はトラックチャンクのデータ構成を示す図であり、図１３（Ｃ）は歌詞チャンクのデータ構成を示す図である。
【図１４】  補助データを含む第３データフォーマットを示す。図１４（Ａ）はシーケンスファイルと歌詞ファイルと補助データファイルのフォーマットを示す図であり、図１４（Ｂ）はトラックチャンクのデータ構成を示す図であり、図１４（Ｃ）は歌詞ファイルのデータ構成を示す図である。
【図１５】  補助データを処理するためのファイル選択処理のフローチャートである。
【符号の説明】
１…データ変換装置、２…再生装置、３…演奏データ処理部、４…歌詞データ処理部、１１…ＭＩＤＩインターフェース、１２…検出回路、１３…入力装置、１４…表示回路、１５…音源回路、１６…Ｄ／Ａ変換器、  １７…サウンドシステム、１８…ＲＯＭ、１９…ＲＡＭ、２０…ＣＰＵ、  ２１…タイマ、２２…ハードディスク装置、２３…フロッピディスク装置、２４…バス、３１…演奏イベントエリア、３２…歌詞イベントエリア
【図１】
0003793041.tif 000002
【図２】
0003793041.tif 000003
【図３】
0003793041.tif 000004
【図４】
0003793041.tif 000005
【図５】
0003793041.tif 000006
【図６】
0003793041.tif 000007
【図７】
0003793041.tif 000008
【図８】
0003793041.tif 000009
【図９】
0003793041.tif 000010
【図１０】
0003793041.tif 000011
【図１１】
0003793041.tif 000012
【図１２】
0003793041.tif 000013
【図１３】
0003793041.tif 000014
【図１４】
0003793041.tif 000015
【図１５】
0003793041.tif 000016