(57)【特許請求の範囲】
【請求項１】
曲の演奏を行うための操作子と、
ノートイベントデータ、当該ノートイベントデータ以外のイベントデータ、及び各イベントデータの開始タイミングを示す時間データを含む曲データを記憶する記憶手段と、
前記記憶手段に記憶されている曲データのイベントデータ及び当該イベントデータに対応する時間データを読み出すデータ読出手段と、
このデータ読出手段によって読み出されたイベントデータがノートイベントデータである場合、当該ノートイベントデータに対応する前記操作子をガイドする演奏ガイド手段と、
前記データ読出手段により読み出された時間データに基づき、読み出されたノートイベントデータの開始タイミングが到来したか否かを判定する判定手段と、
前記操作子の操作の有無を検出する操作検出手段と、
前記判定手段により前記データ読出手段により読み出されたノートイベントデータの開始タイミングが到来したと判定された時点で前記操作検出手段により操作子の操作が検出されない場合には、前記操作検出手段により操作が検出されるまで前記データ読出手段に対して次のイベントデータ及び当該イベントデータに対応する時間データの読み出しを停止させる読出し停止制御手段と、
前記判定手段により前記データ読出手段により読み出されたノートイベントデータの開始タイミングが到来する前に前記操作検出手段により操作子の操作が検出された場合には、前記データ読出手段に対して当該開始タイミングまでに読み出すべきイベントデータ及び当該イベントデータに対応する時間データを早送りで読み出させる早送り読出制御手段と、
この早送り読出制御手段により、前記データ読出手段が早送りで読み出しを行っている期間に読み出されるイベントデータが発音の音量を制御するボリュームイベントである場合に、当該ボリュームイベントのボリューム値を、知覚できない音量の値に変更する音量制御手段と、
を備えたことを特徴とする演奏教習装置。
【請求項２】
前記演奏教習装置は更に、通信回線を介して外部装置と接続し、当該外部装置から発音に係るイベントデータ、当該イベントデータの発音開始タイミングを示す時間データを含む曲データを受信して前記記憶手段に記憶させる通信制御手段を有することを特徴とする請求項１記載の演奏教習装置。
【請求項３】
前記操作子の各々には発光手段が設けられ、前記演奏ガイド手段は、前記読み出されたイベントデータに応じて操作すべき操作子に対応する発光手段を発光させることを特徴とする請求項１記載の演奏教習装置。
【請求項４】
コンピュータに
ノートイベントデータ、当該ノートイベントデータ以外のイベントデータ、及び各イベントデータの開始タイミングを示す時間データを含む曲データを記憶する記憶手段に記憶されている曲データのイベントデータ及び当該イベントデータに対応する時間データを読み出すデータ読出手順と、
このデータ読出手順によって読み出されたイベントデータがノートイベントデータである場合、当該ノートイベントデータに対応する操作子をガイドする演奏ガイド手順と、
前記データ読出手順により読み出された時間データに基づき、読み出されたノートイベントデータの開始タイミングが到来したか否かを判定する判定手順と、
前記操作子の操作の有無を検出する操作検出手順と、
前記判定手順により前記データ読出手順により読み出されたノートイベントデータの開始タイミングが到来したと判定された時点で前記操作検出手順により操作子の操作が検出されない場合には、前記操作検出手順により操作が検出されるまで前記データ読出手順に対して次のイベントデータ及び当該イベントデータに対応する時間データの読み出しを停止させる読出し停止制御手順と、
前記判定手順により前記データ読出手順により読み出されたノートイベントデータの開始タイミングが到来する前に前記操作検出手順により操作子の操作が検出された場合には、前記データ読出手順に対して当該開始タイミングまでに読み出すべきイベントデータ及び当該イベントデータに対応する時間データを早送りで読み出させる早送り読出制御手順と、
この早送り読出制御手順により、前記データ読出手順が早送りで読み出しを行っている期間に読み出されるイベントデータが発音の音量を制御するボリュームイベントである場合に、当該ボリュームイベントのボリューム値を、知覚できない音量の値に変更する音量制御手順と、
を実行させるための演奏教習処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
前記演奏教習プログラムがコンピュータに実行させる手順として更に、通信回線を介して外部装置と接続し、当該外部装置から発音に係るイベントデータ、当該イベントデータの発音開始タイミングを示す時間データを含む曲データを受信して前記記憶手段に記憶させる通信制御手順を有することを特徴とする請求項４記載の演奏教習処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
前記演奏ガイド手順は、前記操作子の各々に対応して設けられた発光手段のうち、前記読み出されたイベントデータを演奏すべき操作子に対応する発光手段を発光させることを特徴とする請求項４記載の演奏教習処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏教習装置及び演奏教習処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来より演奏をガイドする光ナビゲーション機能をもった演奏教習装置がある。例えば、光ナビゲーション機能をもつ鍵盤電子楽器においては、鍵盤の各鍵に対応して発光ダイオード等の発光手段を設けて、演奏する曲データの進行に伴って、押鍵すべき鍵を発光させて、演奏をガイドする構成になっている。この場合において、押鍵が発音開始タイミングより遅れた場合には、押鍵がなされるまで発音を待つ、いわゆる待つモードを設定することができる。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の演奏教習装置においては、発音開始タイミングに到る前に押鍵がされた場合には、対応することができなかった。例えば、すぐにメロディ音を発音した場合には、曲のテンポがずれてしまうとともに、伴奏音等の他のパートとの同期が取れないという問題があった。一方、発音開始タイミングまで発音させない場合には、押鍵しても発音されないので、演奏者に著しい違和感を与えてしまうという問題があった。
【０００４】
本発明の課題は、演奏操作をガイドするナビゲーション機能において、発音開始タイミングに到る前に演奏操作がなされた場合でも、演奏者に違和感を与えることなく、正しいテンポで曲の演奏ができるとともに、他のパートとの同期が取れるようにすることである。
【０００５】
【課題を解決するための手段】
請求項１に記載の演奏教習装置は、曲の演奏を行うための操作子と、ノートイベントデータ、当該ノートイベントデータ以外のイベントデータ、及び各イベントデータの開始タイミングを示す時間データを含む曲データを記憶する記憶手段と、前記記憶手段に記憶されている曲データのイベントデータ及び当該イベントデータに対応する時間データを読み出すデータ読出手段と、このデータ読出手段によって読み出されたイベントデータがノートイベントデータである場合、当該ノートイベントデータに対応する前記操作子をガイドする演奏ガイド手段と、前記データ読出手段により読み出された時間データに基づき、読み出されたノートイベントデータの開始タイミングが到来したか否かを判定する判定手段と、前記操作子の操作の有無を検出する操作検出手段と、前記判定手段により前記データ読出手段により読み出されたノートイベントデータの開始タイミングが到来したと判定された時点で前記操作検出手段により操作子の操作が検出されない場合には、前記操作検出手段により操作が検出されるまで前記データ読出手段に対して次のイベントデータ及び当該イベントデータに対応する時間データの読み出しを停止させる読出し停止制御手段と、前記判定手段により前記データ読出手段により読み出されたノートイベントデータの開始タイミングが到来する前に前記操作検出手段により操作子の操作が検出された場合には、前記データ読出手段に対して当該開始タイミングまでに読み出すべきイベントデータ及び当該イベントデータに対応する時間データを早送りで読み出させる早送り読出制御手段と、この早送り読出制御手段により、前記データ読出手段が早送りで読み出しを行っている期間に読み出されるイベントデータが発音の音量を制御するボリュームイベントである場合に、当該ボリュームイベントのボリューム値を、知覚できない音量の値に変更する音量制御手段と、を備えた構成になっている。
【０００７】
請求項２に記載の記録媒体は、コンピュータにノートイベントデータ、当該ノートイベントデータ以外のイベントデータ、及び各イベントデータの開始タイミングを示す時間データを含む曲データを記憶する記憶手段に記憶されている曲データのイベントデータ及び当該イベントデータに対応する時間データを読み出すデータ読出手順と、このデータ読出手順によって読み出されたイベントデータがノートイベントデータである場合、当該ノートイベントデータに対応する操作子をガイドする演奏ガイド手順と、前記データ読出手順により読み出された時間データに基づき、読み出されたノートイベントデータの開始タイミングが到来したか否かを判定する判定手順と、前記操作子の操作の有無を検出する操作検出手順と、前記判定手順により前記データ読出手順により読み出されたノートイベントデータの開始タイミングが到来したと判定された時点で前記操作検出手順により操作子の操作が検出されない場合には、前記操作検出手順により操作が検出されるまで前記データ読出手順に対して次のイベントデータ及び当該イベントデータに対応する時間データの読み出しを停止させる読出し停止制御手順と、前記判定手順により前記データ読出手順により読み出されたノートイベントデータの開始タイミングが到来する前に前記操作検出手順により操作子の操作が検出された場合には、前記データ読出手順に対して当該開始タイミングまでに読み出すべきイベントデータ及び当該イベントデータに対応する時間データを早送りで読み出させる早送り読出制御手順と、この早送り読出制御手順により、前記データ読出手順が早送りで読み出しを行っている期間に読み出されるイベントデータが発音の音量を制御するボリュームイベントである場合に、当該ボリュームイベントのボリューム値を、知覚できない音量の値に変更する音量制御手順と、を実行させるための演奏教習処理プログラムを記録している。
【０００９】
本発明によれば、イベントデータの発音開始タイミングを経過した後も演奏すべき操作子が操作されない場合には、操作がされるまで曲データの読み出しを停止させ、発音開始タイミングに到る前に演奏すべき操作子が操作された場合には、その発音開始タイミングまで曲データを早送りで読み出させる。
【００１０】
【発明の実施の形態】
以下、本発明における演奏教習装置の実施形態について、鍵盤装置を例に採って図を参照して説明する。図１は、実施形態における鍵盤装置を適用したシステム構成を示している。鍵盤装置１は、曲データを記憶する記憶手段であるＦＤ（フロッピーディスク）２を駆動して、ＭＩＤＩデータをＭＩＤＩ音源３に出力する。この曲データは、インターネット等のネットワーク（通信回線）４を介して接続する曲データサーバー５から受信する。
【００１１】
図２に、鍵盤装置の内部ブロック図を示す。ＣＰＵ１１は、システムバスを介して、ＲＯＭ１２、ＲＡＭ１３、キースキャンインターフェース１４、ＬＥＤＣ（ＬＥＤコントローラ）１５、ＦＤＤＣ（フロッピーディスクコントローラ）１６、モデム１７、ＭＩＤＩインターフェース１８と接続されている。
【００１２】
ＲＯＭ１２は、ＣＰＵ１１によって実行される演奏教習処理プログラムを記憶している。ＲＡＭ１３は、ＣＰＵ１１によって処理される各種データを一時的に記憶する。キースキャンインターフェース１４は、光鍵盤・スイッチ群１９に接続され、その操作状態をスキャンしてＣＰＵ１１に入力する。ＬＥＤＣ１５は、各鍵に対応して設けられた発光手段であるＬＥＤ２０の発光及び消灯を制御する。ＦＤＤＣ１６は、ＦＤＤ（フロッピーディスク駆動装置）２１を制御する。
【００１３】
通信制御手段であるＭＯＤＥＭ１７は、通信回線すなわちネットワーク４に接続するための回線接続装置（ＮＣＵ）等を備え、ＣＰＵ１１の受信指令に応じて、曲データサーバー５から曲データを受信して復調する。受信された曲データは、ＦＤＤＣ１６及びＦＤＤ２１によってフロッピーディスク２に記録される。ＭＩＤＩインターフェース１８は、ＣＰＵ１１によって作成されたＭＩＤＩデータをＭＩＤＩ音源３に出力する。
【００１４】
図３に、ＭＩＤＩデータのデータフォーマットを示す。ＭＩＤＩデータは、図３（１）に示すように、１バイト構成のステータスバイト（先頭ビット＝１）、及び１バイト又は２バイト構成のデータバイト（先頭ビット＝０）で構成されている。このＭＩＤＩデータは、使用目的に応じてチャンネルメッセージ及びシステムメッセージに区別される。チャンネルメッセージは、３ビットからなるメッセージの種類、４ビットからなるチャンネル番号ｎで構成されている。例えば、「０００」はノートオフ、「００１」はノートオン、「１００」は音色等を変更するプログラムチェンジを表わしている。
【００１５】
また、各チャンネルごとに曲データの複数のパートが指定されている。例えば、図３（２）に示すように、メロディパート、ドラムパート、ベースパート、及び３系統のコードパートに指定されている。ナビゲーション機能においては、通常はメロディパートが演奏ガイドのパートとして指定されている。
【００１６】
メロディパートは、図４に示すように、アドレスＡＤごとに時間データ及びイベントデータで構成されている。イベントデータは、ステータスバイトであるノートオン又はノートオフ及びチャンネル番号、データバイトであるノートデータ（鍵番号）及びベロシティデータで構成されている。また、メロディパートの終了アドレスには、ＥＮＤデータが格納されている。
【００１７】
次に、実施形態における演奏教習装置の動作について、ＣＰＵ１１が実行するプログラムのフローチャートに基づいて説明する。
【００１８】
図５は、メインフローである。所定のイニシャライズ処理（ステップＡ１）の後は、スイッチ処理（ステップＡ２）、鍵ガイド処理（ステップＡ３）、押鍵処理（ステップＡ４）、時刻計時処理（ステップＡ５）、出力処理（ステップＡ６）、受信処理（ステップＡ７）、その他の処理（ステップＡ８）のループを繰り返し実行する。
【００１９】
図６は、メインフローにおけるステップＡ２のスイッチ処理のフローである。この処理では、図２に示したスイッチ群をスキャンして、モード選択スイッチ処理（ステップＢ１）、スタートスイッチ処理（ステップＢ２）、受信処理（ステップＢ３）、その他のスイッチ処理（ステップＢ４）を実行してメインフローに戻る。
【００２０】
図７は、図６のステップＢ１におけるモード選択スイッチ処理のフローである。この処理では、モード選択スイッチがオンされたか否かを判別し（ステップＣ１）、オンされない場合にはこのフローを終了するが、オンされたときは、そのモードスイッチに応じた処理を行う。モードスイッチには、ノーマルスイッチ、レッスン１スイッチ、レッスン２スイッチ、レッスン３スイッチがある。
【００２１】
ノーマルスイッチがオンされたか否かを判別し（ステップＣ２）、このスイッチがオンされた場合には、モードレジスタＭＯＤＥを「０」にセットする（ステップＣ３）。レッスン１スイッチがオンされたか否かを判別し（ステップＣ４）、このスイッチがオンされた場合には、ＭＯＤＥに「１」をセットする（ステップＣ５）。レッスン２スイッチがオンされたか否かを判別し（ステップＣ６）、このスイッチがオンされた場合には、ＭＯＤＥに「２」をセットする（ステップＣ７）。レッスン３スイッチがオンされたか否かを判別し（ステップＣ８）、このスイッチがオンされた場合には、ＭＯＤＥに「３」をセットする（ステップＣ９）。
【００２２】
ＭＯＤＥが「０」の場合には、鍵盤の演奏によってのみ発音する通常のノーマル演奏モードとなる。ＭＯＤＥが「１」〜「３」の場合は、フロッピーディスクの曲データをガイドするナビゲーション機能の演奏モードである。ＭＯＤＥが「１」の場合には、曲データの音高にかかわらず、どの鍵を押鍵しても発音を行う演奏モードとなる。ＭＯＤＥが「２」の場合には、曲データの音高に対応する鍵（発光している鍵）が正しく押鍵されたときに発音を行う演奏モードとなる。ＭＯＤＥが「３」の場合には、演奏にかかわらず曲データを自動的に読み出すモードとなるが、ガイドする鍵が押鍵されたときに発音する。モードスイッチに応じた値をＭＯＤＥに設定した後は、このフローを終了して図６のスイッチ処理に戻る。
【００２３】
図８は、図６のスイッチ処理におけるステップＢ２のスタートスイッチ処理のフローである。この処理では、スタートスイッチがオンされたか否かを判別し（ステップＤ１）、オンされない場合にはこのフローを終了するが、オンされたときは、スタートフラグＳＴＦを反転する（ステップＤ２）。そして、ＳＴＦが「１」であるか否かを判別する（ステップＤ３）。
【００２４】
ＳＴＦが「１」である場合には、アドレスレジスタＡＤを「０」すなわち曲データの先頭アドレスにセットし、レジスタＳＴＡＴＵＳに「１」をセットする（ステップＤ４）。ＳＴＡＴＵＳは、後述する押鍵処理において設定される値である。ＳＴＡＴＵＳが「１」の場合は、曲データの発音開始タイミングに押鍵のタイミングが合っている状態である。ＳＴＡＴＵＳが「２」の場合は、曲データの発音開始タイミングを経過した後も鍵が操作されない状態、すなわち押鍵のタイミングが遅れている状態である。ＳＴＡＴＵＳが「３」の場合は、曲データの発音開始タイミングに到る前に鍵が操作された状態、すなわち押鍵のタイミングが早すぎる状態である。
【００２５】
ステップＤ４の処理の後、レジスタＳＴに現在時刻をストアし（ステップＤ５）、タイムレジスタＴを「０」にセットする（ステップＤ６）。次に、曲データの記憶エリアのアドレスＡＤ（＝０）のデータＭＥＭ［ＡＤ］がイベントデータであるか否かを判別する（ステップＤ７）。すなわち、曲データの最初がイベントデータであるか又は時間データであるか否かを判別する。イベントデータである場合には、レジスタΔＴに最小時間をセットし（ステップＤ８）、ＡＤを「１」だけデクリメントして（ステップＤ９）、アドレスを１つ戻す。このデクリメント処理は、後述する鍵ガイド処理のために必要な処理である。ステップＤ７において、曲データの最初がイベントデータでなく時間データである場合には、その時間データをΔＴにセットする（ステップＤ１０）。
【００２６】
ステップＤ９においてＡＤをデクリメントした後、又はステップＤ１０においてΔＴに時間データをセットした後は、Ｔの値にΔＴの値を加算して更新する（ステップＤ１１）。次に、タイマインタラプトの禁止解除を行う（ステップＤ１２）。
【００２７】
ステップＤ３において、ＳＴＦが「０」である場合には、メロディチャンネルを除く全部のチャンネルに対して消音指示を行い（ステップＤ１３）、タイマインタラプトを禁止する（ステップＤ１４）。
【００２８】
ステップＤ１２においてタイマインタラプトの禁止解除をした後、又はステップＤ１４においてタイマインタラプトを禁止した後は、このフローを終了して図６のスイッチ処理に戻る。
【００２９】
図９は、スイッチ処理におけるステップＢ３の受信スイッチ処理のフローである。この処理では、受信スイッチがオンされたか否かを判別し（ステップＥ１）、オンされない場合にはこのフローを終了するが、オンされたときは受信フラグＺＦを「１」にセットする（ステップＥ２）。そして、このフローを終了して図６のスイッチ処理に戻る。
【００３０】
図１０は、図５のメインフローにおけるステップＡ３の鍵ガイド処理のフローである。この処理では、モードレジスタＭＯＤＥの値に応じた鍵ガイド処理を行う。すなわち、ＭＯＤＥの値が「１」であるか否かを判別し（ステップＦ１）、「１」であるにはガイドＡ処理を実行する（ステップＦ２）。ＭＯＤＥの値が「１」及び「２」のいずれでもない場合には、ＭＯＤＥの値が「３」であるか否かを判別し（ステップＦ３）、「３」である場合にはガイドＢ処理を実行する（ステップＦ４）。
【００３１】
図１１〜図１３は、図１０におけるステップＦ２のガイドＡ処理のフローである。この処理では、スタートフラグＳＴＦが「１」であるか否かを判別し（ステップＧ１）、ＳＴＦが「０」である場合には、演奏停止状態であるので、このフローを終了する。ＳＴＦが「１」である場合にはＳＴＡＴＵＳの値が「２」でないか否かを判別する（ステップＧ２）。ＳＴＡＴＵＳの値が「２」である場合には、発音開始タイミングになっているにもかかわらず、押鍵操作がされていない場合である。この場合には、押鍵操作を待つための待ちモードになり、このフローを終了する。
【００３２】
ステップＧ２において、ＳＴＡＴＵＳの値が「２」でない場合には、レジスタＳＴの時間の値とレジスタＴの時間の値を加算した値、すなわち発音開始タイミングの時間と現在時間とを比較する（ステップＧ３）。現在時刻が発音開始タイミングの時間に達していない場合には、このフローを終了する。
【００３３】
現在時間が発音開始タイミングの時間に達している場合には、レジスタＡＤのアドレスをインクリメントする（ステップＧ４）。そして、アドレスＡＤがＥＮＤでないか否かを判別する（ステップＧ５）。ＥＮＤでない場合には、ＭＥＭ［ＡＤ］のデータが時間データであるか否かを判別する（ステップＧ６）。時間データである場合には、ＭＯＤＥの値が「１」のＡＮＹキーモードであるか否かを判別する（ステップＧ７）。ＭＯＤＥの値が「１」でない場合には、このフローを終了する。
【００３４】
ＭＯＤＥの値が「１」である場合には、ＳＴＡＴＵＳの値が「３」であるか又は「１」であるかを判別する（ステップＧ８）。ＳＴＡＴＵＳの値が「３」である場合には、ΔＴに最小時間をセットする（ステップＧ９）。ＳＴＡＴＵＳの値が「１」である場合には、ΔＴにＭＥＭ［ＡＤ］の値をセットする（ステップＧ１０）。ステップＧ９又はステップＧ１０において、ΔＴに値をセットした後は、Ｔの値にΔＴの値を加算して、このフローを終了して図１０の鍵ガイド処理に戻る。
【００３５】
ステップＧ５において、ＭＥＭ［ＡＤ］がＥＮＤである場合には、消音指示及び消灯指示を行う（ステップＧ１２）。次に、タイマインタラプトを禁止し（ステップＧ１３）、フラグＳＴＦを「０」にリセットする（ステップＧ１４）。そして、このフローを終了する。
【００３６】
ステップＧ６において、ＭＥＭ［ＡＤ］が時間データでなくイベントデータである場合には、図１２のフローにおいて、読み出したデータがＭＩＤＩデータの中のノートイベントであるか否かを判別する（ステップＧ１５）。ノートイベントである場合には、ノートオンであるか否かを判別する（ステップＧ１６）。ノートオンである場合には、ＭＩＤＩデータの音高データをレジスタＮＯＴＥにセットする（ステップＧ１７）。そして、ＮＯＴＥに対応する鍵のＬＥＤを発光する（ステップＧ１８）。
【００３７】
次に、ＳＴＡＴＵＳの値が「３」でないか否かを判別する（ステップＧ１９）。ＳＴＡＴＵＳの値が「３」でなく「１」である場合には、ＳＴＡＴＵＳの値を「２」に変更する（ステップＧ２０）。そして、このフローを終了する。すなわち、ＬＥＤを発光して押鍵をガイドした後は、それまでＳＴＡＴＵＳの値が「１」であった場合には、ＳＴＡＴＵＳの値を「２」に変更して、押鍵されるまで曲データの読み出しを停止する状態に移行する。
【００３８】
ステップＧ１９においてＳＴＡＴＵＳが「３」である場合には、ＳＴＡＴＵＳの値を「１」に変更して（ステップＧ２１）、ＶＯＬＵＭＥのボリューム値に基づいてＭＩＤＩデータを作成する（ステップＧ２２）。すなわち、ＬＥＤを発光して押鍵をガイドした後は、それまでＳＴＡＴＵＳが「３」であった場合には、ＭＩＤＩデータのボリューム値が最小値になっているので、本来のボリューム値に戻してＭＩＤＩデータを作成する。
【００３９】
ステップＧ１６において、ＭＩＤＩデータがノートオンでない場合には、ノートオフであるか否かを判別する（ステップＧ２３）。ノートオフである場合には、ＭＩＤＩデータの音高データをレジスタＮＯＴＥにセットし（ステップＧ２４）、ＮＯＴＥに対応する鍵のＬＥＤを消灯する（ステップＧ２５）。そして、図１１のステップＧ４に移行して、ＡＤの値をインクリメントし、上記各処理を繰り返す。
【００４０】
図１２のステップＧ１５において、読み出したデータがイベントデータでない場合、又はステップＧ２２において本来のボリューム値に戻してＭＩＤＩデータを作成した後は、図１３において、読み出したデータがＭＩＤＩデータの中のボリュームイベント（ベロシティデータ）であるか否かを判別する（ステップＧ２６）。ボリュームイベントである場合には、そのＭＩＤＩデータのボリューム値をレジスタＶＯＬＵＭＥにセットする（ステップＧ２７）。
【００４１】
次に、ＳＴＡＴＵＳの値が「１」又は「３」のいずれであるかを判別する（ステップＧ２８）。ＳＴＡＴＵＳの値が「１」である場合には、ＭＩＤＩデータのボリューム値をＶＯＬＵＭＥの値に変更する（ステップＧ２９）。すなわち、ＭＩＤＩデータのボリューム値を元に戻す（実際はステップＧ２９はＮＯＰとなる）。一方、ＳＴＡＴＵＳの値が「３」である場合には、ＭＩＤＩデータのボリューム値を最小値にする（ステップＧ３０）。ここでいう最小値は「０」ではなく、耳には聞こえない程の音量値でよいが、最小値を「０」にしてもよい。
【００４２】
ステップＧ３０においてボリューム値を最小値にした後、ステップＧ２９においてボリューム値を元に戻した後、ステップＧ２６において読み出したデータがＭＩＤＩデータの中のボリュームイベントでない場合、すなわち、キーオン・オフイベントである場合には、いずれの場合もＭＩＤＩデータを音源に出力するための準備に移行する。この場合には、ＭＩＤＩＯＵＴバッファのチャンネルを指定するポインタｎを「０」にセットして（ステップＧ３１）、ｎをインクリメントしながらＭＩＤＩＯＵＴバッファ（ｎ）にＭＩＤＩデータを書き込んでいく。すなわち、ｎで指定するＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別し（ステップＧ３２）、空きでない場合にはｎをインクリメントする（ステップＧ３３）。そして、ｎが所定数を超えたか否かを判別する（ステップＧ３４）。所定数以下である場合には、ステップＧ３２においてＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別する。
【００４３】
ＭＩＤＩＯＵＴバッファ（ｎ）が空きである場合には、ＭＩＤＩＯＵＴバッファ（ｎ）のイベントエリアにＭＩＤＩデータをストアする（ステップＧ３５）。また、レジスタＷＴＩＭＥに現在時刻をストアし（ステップＧ３６）、ＭＩＤＩＯＵＴバッファ（ｎ）の時間エリアにＷＴＩＭＥの時間データすなわち現在時刻をストアする（ステップＧ３７）。時間データをストアした後、又は、ステップＧ３４においてｎが所定数を超えた場合は、図１１のステップＧ４に移行して、ＡＤをインクリメントする。
【００４４】
図１４及び図１５は、図１０の鍵ガイド処理におけるステップＦ４のガイドＢ処理のフローである。この処理では、スタートフラグＳＴＦが「１」であるか否かを判別し（ステップＨ１）、ＳＴＦが「０」である場合には、演奏停止状態であるので、このフローを終了する。ＳＴＦが「１」である場合には、レジスタＳＴの時間の値とレジスタＴの時間の値を加算した値、すなわち発音開始タイミングの時間と現在時刻とが一致しているか否かを判別する（ステップＨ２）。現在時刻が発音開始タイミングに一致していない場合には、このフローを終了する。
【００４５】
現在時刻が発音開始タイミングの時間に一致したときは、レジスタＡＤのアドレスをインクリメントする（ステップＨ３）。そして、アドレスＡＤがＥＮＤでないか否かを判別する（ステップＨ４）。ＥＮＤでない場合には、ＭＥＭ［ＡＤ］のデータが時間データであるか否かを判別する（ステップＨ５）。時間データである場合には、ΔＴにＭＥＭ［ＡＤ］の値をセットする（ステップＨ６）。次に、Ｔの値にΔＴの値を加算し（ステップＧ７）、このフローを終了して図１０の鍵ガイド処理に戻る。
【００４６】
ステップＨ４において、ＡＤがＥＮＤである場合には、消音指示及び消灯指示を行う（ステップＨ８）。次に、タイマインタラプトを禁止し（ステップＨ９）、フラグＳＴＦを「０」にリセットする（ステップＨ１０）。そして、このフローを終了して図１０の鍵ガイド処理に戻る。
【００４７】
ステップＨ５において、ＭＥＭ［ＡＤ］が時間データでなくイベントデータである場合には、読み出したデータがＭＩＤＩデータの中のノートイベントであるか否かを判別する（ステップＨ１１）。ノートイベントである場合には、ノートオンであるか否かを判別する（ステップＨ１２）。ノートオンである場合には、ＭＩＤＩデータの音高データをレジスタＮＯＴＥにセットする（ステップＨ１３）。そして、ＮＯＴＥに対応する鍵のＬＥＤを発光する（ステップＨ１４）。
【００４８】
ステップＨ１２において、ＭＩＤＩデータがノートオンでなくノートオフである場合には、ＭＩＤＩデータの音高データをレジスタＮＯＴＥにセットする（ステップＨ１５）。そして、ＮＯＴＥに対応する鍵のＬＥＤを消灯する（ステップＨ１６）。
【００４９】
ステップＨ１４において対応するＬＥＤを発光した後、又はステップＨ１６において対応するＬＥＤを消灯した後は、ステップＨ３に移行して、ＡＤの値をインクリメントし、上記各処理を繰り返す。
【００５０】
ステップＨ１１において、読み出したデータがノートイベントでない場合、すなわちキーオンイベントである場合には、図１５において、ＭＩＤＩＯＵＴバッファのチャンネルを指定するポインタｎを「０」にセットして、ｎをインクリメントしながらＭＩＤＩＯＵＴバッファ（ｎ）にＭＩＤＩデータを書き込んでいく。すなわち、ｎで指定するＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別し（ステップＨ１８）、空きでない場合にはｎをインクリメントする（ステップＨ１９）。そして、ｎが所定数を超えたか否かを判別する（ステップＨ２０）。所定数以下である場合には、ステップＨ１８においてＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別する。
【００５１】
ＭＩＤＩＯＵＴバッファ（ｎ）が空きである場合には、ＭＩＤＩＯＵＴバッファ（ｎ）のイベントエリアにＭＩＤＩデータをストアする（ステップＨ２１）。また、ＷＴＩＭＥに現在時刻をストアし（ステップＨ２２）、ＭＩＤＩＯＵＴバッファ（ｎ）の時間エリアにＷＴＩＭＥの時間データ（現在時刻）をストアする（ステップＨ２３）。時間データをストアした後、又は、ステップＨ２０においてｎが所定数を超えた場合には、図１１のステップＨ３に移行して、ＡＤをインクリメントする。
【００５２】
図１６及び図１７は、図５のメインフローにおけるステップＡ４の押鍵処理のフローである。まず、鍵変化があるか否かを判別し（ステップＪ１）、鍵変化がない場合にはメインフローに戻る。オフからオンに鍵変化があったとき、すなわち押鍵操作がされたときは、レジスタＫＥＹにその鍵の音高データをストアし（ステップＪ２）、レジスタＶＥＬＯＣＩＴＹに押鍵のベロシティデータをストアする（ステップＪ３）。
【００５３】
次に、ＭＯＤＥの値が「１」又は「２」のいずれかであるかを判別する（ステップＪ４）。すなわち、押鍵を待つモードであるか否かを判別する。ＭＯＤＥの値が「１」又は「２」である場合には、ＭＯＤＥの値が「２」であるか否かを判別する（ステップＪ５）。すなわち、ガイドした正しい鍵の押鍵を待つモードであるか否かを判別する。ＭＯＤＥの値が「２」である場合には、ＫＥＹの値である押鍵のキー番号とＮＯＴＥの値であるＭＩＤＩデータのノートデータとが一致するか否かを判別する（ステップＪ６）。
【００５４】
ＫＥＹの値とＮＯＴＥの値が一致した場合、又はステップＪ５においてＭＯＤＥの値が「１」で、どの鍵を押鍵しても発音するＡＮＹキーモードである場合には、現在時刻がＳＴの時間データとＴの時間データを加算した値に達していないかどうかを判別する（ステップＪ７）。すなわち、現在時刻が発音開始タイミングの時間に達していいないかどうか判別する。
【００５５】
現在時刻がＳＴの時間データとＴの時間データを加算した値に達している場合には、ＳＴＡＴＵＳの値に「１」をセットして、現在時刻からＳＴの時間データとＴの時間データを加算した値を減算して、その減算値を差分レジスタＳにストアする（ステップＪ９）。そして、ＳＴの時間データにＳの値を加算する（ステップＪ１０）。すなわち、時間の経過に応じてＳＴの値を更新する。次に、チャンネルＭすなわちメロディのＭＩＤＩデータを作成する（ステップＪ１１）。
【００５６】
ステップＪ７において、現在時刻がＳＴの時間データとＴの時間データを加算した値に達していない場合には、ＭＯＤＥが「１」であるか否かを判別する（ステップＪ１２）。すなわちどの鍵を押鍵しても発音するＡＮＹキーモードであるか否かを判別する。ＭＯＤＥが「１」である場合には、ＳＴＡＴＵＳの値を「３」にセットする（ステップＪ１３）。すなわち、発音開始タイミングに到る前に鍵が操作された場合には、発音開始タイミングまで曲データを早送りする状態に設定する。そして、メロディのＭＩＤＩデータを作成する（ステップＪ１１）。
【００５７】
ステップＪ１において、鍵変化がオンからオフである場合、すなわち離鍵操作がされたときは、ＫＥＹに離鍵の音高データをストアし（ステップＪ１４）、ＶＥＬＯＣＩＴＹの値を「０」にセットする（ステップＪ１５）。そして、メロディのＭＩＤＩデータを作成する（ステップＪ１１）。
【００５８】
ステップＪ４において、ＭＯＤＥの値が「１」及び「２」でなく「３」である場合、ステップＪ６において、ＫＥＹの値とＮＯＴＥの値が一致しない場合、すなわちガイドした鍵とは異なる鍵が押鍵操作された場合、又はステップＪ１２においてＭＯＤＥの値が「１」でない場合には、いずれもメロディのＭＩＤＩデータを作成する（ステップＪ１１）。
【００５９】
ＭＩＤＩデータを作成した後は、図１７において、ＭＩＤＩＯＵＴバッファを指定するｎを「０」にセットして（ステップＪ１６）、ｎをインクリメントしながらＭＩＤＩＯＵＴバッファ（ｎ）にＭＩＤＩデータをセットする。すなわち、ＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別し（ステップＪ１７）、空きでない場合にはｎをインクリメントする（ステップＪ１８）。そして、ｎが所定数を超えたか否かを判別する（ステップＪ１９）。ｎが所定数以下である場合には、ステップＪ１７に移行してＭＩＤＩＯＵＴバッファ（ｎ）の空きを判別する。
【００６０】
ＭＩＤＩＯＵＴバッファ（ｎ）が空きである場合には、ＭＩＤＩＯＵＴバッファ（ｎ）のイベントエリアにＭＩＤＩデータをストアする（ステップＪ２０）。また、レジスタＷＴＩＭＥに現在時刻をストアし（ステップＪ２１）、ＭＩＤＩＯＵＴバッファ（ｎ）の時間エリアにＷＴＩＭＥの時間データ（現在時刻）をストアする（ステップＪ２２）。時間データをストアした後、又は、ステップＪ１９においてｎが所定数を超えた場合には、ＳＴＡＴＵＳの値が「３」であるか否かを判別する（ステップＪ２３）。この値が「３」でない場合には、このフローを終了するが、この値が「３」である場合には、ＭＩＤＩデータの発音開始タイミングに到る前に押鍵操作がされた場合である。したがって、ＭＩＤＩデータを早送りするための処理を行う。
【００６１】
早送り処理の場合には、ボリューム値が最小値のＭＩＤＩデータを作成し（ステップＪ２４）、ＭＩＤＥＯＵＴバッファを指定するポインタｎを「０」にセットして（ステップＪ２５）、ｎをインクリメントしながら、作成したＭＩＤＩデータをＭＩＤＩＯＵＴバッファ（ｎ）にストアする。すなわち、ｎで指定するＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別し（ステップＪ２６）、空きでない場合にはｎをインクリメントする（ステップＪ２７）。そして、ｎが所定数を超えたか否かを判別する（ステップＪ２８）。所定数以下である場合には、ステップＪ２６においてＭＩＤＩＯＵＴバッファ（ｎ）が空きであるか否かを判別する。
【００６２】
ＭＩＤＩＯＵＴバッファ（ｎ）が空きである場合には、ＭＩＤＩＯＵＴバッファ（ｎ）のイベントエリアにＭＩＤＩデータをストアする（ステップＪ２９）。また、ＷＴＩＭＥに現在時刻をストアし（ステップＪ３０）、ＭＩＤＩＯＵＴバッファ（ｎ）の時間エリアにＷＴＩＭＥの時間データ（現在時刻）をストアする（ステップＪ３１）。時間データをストアした後、又は、ステップＪ２８においてｎが所定数を超えた場合には、このフローを終了して図５のメインフローに戻る。
【００６３】
図１８は、メインフローにおけるステップＡ６の出力処理のフローである。この処理では、ＭＩＤＩＯＵＴバッファを指定するポインタｎを「０（バッファの先頭アドレス）」にセットして（ステップＫ１）、ｎをインクリメントしながら、以下の出力処理を実行する。すなわち、ｎで指定したＭＩＤＩＯＵＴバッファ（ｎ）からＭＩＤＩデータを読み出し（ステップＫ２）、読み出したデータがＭＩＤＩデータの中のノートイベントであるか否かを判別する（ステップＫ３）。
【００６４】
読み出したデータがノートイベントである場合には、ＭＩＤＩＯＵＴバッファ（ｎ）からそのノートイベントに対するＷＴＩＭＥの時間データを読み出す（ステップＫ４）。そして、現在時刻からＷＴＩＭＥの時間を減算し、その減算値をレジスタＤにセットする（ステップＫ５）。次に、Ｄの値が所定値以上であるか否かを判別する（ステップＫ６）。
【００６５】
Ｄの値が所定値以上である場合、又はステップＫ３において読み出したＭＩＤＩデータがノートイベントでなくボリュームデータである場合には、ＭＩＤＩデータをＭＩＤＩＯＵＴデバイス（図１のＭＩＤＩ音源３）に出力する（ステップＫ７）。そして、ＭＩＤＩＯＵＴバッファ（ｎ）を空きにする（ステップＫ８）。バッファを空きにした後、又はステップＫ６においてＤが所定値より小さい場合には、ｎをインクリメントする（ステップＫ９）。そして、ｎが所定数を超えたか否かを判別し（ステップＫ１０）、所定数を超えていない場合には、ステップＫ２に移行して、ステップＫ１０までのループ処理を繰り返す。ｎが所定数を超えたときは、このフローを終了して図５のメインフローに戻る。
【００６６】
図１９は、メインフローにおけるステップＡ７の受信処理のフローである。この処理では、受信フラグＺＦが「１」であるか否かを判別し（ステップＬ１）、ＺＦが「０」である場合にはこのフローを終了するが、ＺＦが「１」で曲データサーバーへのアクセス要求である場合には、フロッピーディスクのアドレスＡＤを「０」にセットして（ステップＬ２）、ＡＤをインクリメントしながら以下のループ処理を実行する。
【００６７】
すなわち、ＭＯＤＥＭを介してＭＩＤＩデータの受信があるか否かを判別し（ステップＬ３）、受信があったときはそのＭＩＤＩデータをフロッピーディスクのＡＤで指定する記憶エリアＭＥＭ［ＡＤ］にストアする（ステップＬ４）。そして、ＡＤをインクリメントして次のエリアを指定する（ステップＬ５）。この後、受信が終了したか否かを判別し（ステップＬ６）、終了していない場合には、ステップＬ３に移行してＭＩＤＩデータの受信を判別する。
【００６８】
このようにして、受信したＭＩＤＩデータをＡＤで示す記憶エリアにストアし、受信が終了した場合には、レジスタＥＮＤにＡＤのアドレスをセットする（ステップＬ７）。そして、ＺＦを「０」にリセットして（ステップＬ８）、図５のメインフローに戻る。
【００６９】
このように上記実施形態によれば、イベントデータの発音開始タイミングを経過した後も演奏すべき操作子である鍵が操作されない場合には、操作がされるまで曲データの読み出しを停止させ、発音開始タイミングに到る前に演奏すべき鍵が操作された場合には、その発音開始タイミングまで曲データを早送りで読み出させる。したがって、演奏操作をガイドするナビゲーション機能において、発音開始タイミングに到る前に演奏操作がなされた場合でも、演奏者に違和感を与えることなく、正しいテンポで曲の演奏ができるとともに、他のパートとの同期が取れる。
【００７０】
なお、この場合において、ＣＰＵ１１は、曲データに含まれている制御データに基づいて発音条件を制御する際に、早送り読み出し期間に読み出された制御データを、通常の読み出し期間に読み出され制御データと同様に実行する。したがって、早送り読み出し期間に音色を変更するプログラムチェンジの制御データが含まれていた場合には、早送り読み出し期間の終了後の発音の音色がＭＩＤＩデータにしたがって変更される。
【００７１】
また、上記実施形態に記載したように、ＣＰＵ１１は、早送り読み出し期間は、発音の音量を最小値に変更する。したがって、早送り読み出し期間におけるノイズ的な発音を抑えることができる。
【００７２】
なお、上記実施形態においては、図１及び図２に示すように、ＭＯＤＥＭ１７、ＦＤＤＣ１６、ＦＤＤ２１を具備した鍵盤装置を例に採って本発明を説明したが、本発明の構成は上記実施形態に限定されるものではない。図２０及び図２１に、他の実施形態のシステム構成を示す。
【００７３】
図２０において、鍵盤装置１０１は、ＦＤ（フロッピーディスク）２を駆動するＦＤプレーヤ１０２に、ＲＳ−２３２Ｃからなるシリアルインターフェース１０３を介して接続されている。さらに、ＦＤプレーヤ１０２には、ＭＯＤＥＭ１０４が接続され、ネットワーク４と接続できる構成になっており、曲データサーバー５からＭＩＤＩデータを受信して、ＦＤ２に記憶させる。そして、鍵盤装置１０１は、ＦＤプレーヤ１０２との間において、コマンド及びＭＩＤＩデータの授受を行い、上記実施形態と同様に、イベントデータの発音開始タイミングを経過した後も演奏すべき鍵が操作されない場合には、操作がされるまで曲データの読み出しを停止させ、発音開始タイミングに到る前に演奏すべき鍵が操作された場合には、その発音開始タイミングまで曲データを早送りで読み出させる。
【００７４】
図２１における構成では、ＦＤプレーヤ１０５はＭＯＤＥＭを内蔵している。この場合にも、上記実施形態と同様に、鍵盤装置１０１は、ＦＤプレーヤ１０５との間において、コマンド及びＭＩＤＩデータの授受を行い、イベントデータの発音開始タイミングを経過した後も演奏すべき鍵が操作されない場合には、操作がされるまで曲データの読み出しを停止させ、発音開始タイミングに到る前に演奏すべき鍵が操作された場合には、その発音開始タイミングまで曲データを早送りで読み出させる。
【００７５】
また、常時実施形態においては、鍵盤装置１内のＲＯＭ１２に演奏教習処理プログラムを記憶させて、演奏教習処理を実行する構成にしたが、フロッピーディスクやＣＤ又はその他の記録媒体に演奏教習処理プログラムを記録させて、この記録媒体を汎用のパソコン等の情報処理装置に実行させてもよい。
【００７６】
例えば、図２２の構成において、ＦＤ１０７には、演奏教習処理プログラムが記録されている。パソコン１０６は、ＦＤ１０７を駆動して演奏教習処理プログラムを実行する。また、パソコン１０６には、ネットワーク４との間で通信を行うためのＭＯＤＥＭを備え、曲データサーバー５からＭＩＤＩデータを受信する。また、シリアルインターフェース１０３によって接続された鍵盤装置１０１との間でコマンドやＭＩＤＩデータを授受する。
【００７７】
すなわちこの場合には、記録媒体であるＦＤ１０７は、通信回線を介して外部装置と接続し、当該外部装置から発音に係るイベントデータ、当該イベントデータの発音開始タイミングを示す時間データを含む曲データを受信する通信制御手順と、受信した曲データを所定の記憶手段に記憶する記憶手順と、前記記憶手段に記憶されている曲データを読み出すデータ読出手順と、このデータ読出手順によって読み出されたイベントデータに基づいて当該イベントデータを演奏すべき操作子をガイドする演奏ガイド手順と、任意のイベントデータについて、当該イベントデータの発音開始タイミングを経過した後も前記操作子が操作されない場合には当該操作がされるまで前記データ読出手順に対して曲データの読み出しを停止させ、前記発音開始タイミングに到る前に前記操作子が操作された場合には前記データ読出手順に対して当該発音開始タイミングまで曲データを早送りで読み出させる読出制御手順と、を実行する演奏教習処理プログラムを記録している。
【００７８】
また、記録媒体であるＦＤ１０７にあらかじめ曲データが記録されている場合には、パソコン１０６は直接に曲データを読み出すことになる。この場合には、ＦＤ１０７は、発音に係るイベントデータ、当該イベントデータの発音開始タイミングを示す時間データを含む曲データを所定の記憶手段から読み出すデータ読出手順と、このデータ読出手順によって読み出されたイベントデータに基づいて当該イベントデータを演奏すべき操作子をガイドする演奏ガイド手順と、任意のイベントデータについて、当該イベントデータの発音開始タイミングを経過した後も前記操作子が操作されない場合には当該操作がされるまで前記データ読出手順に対して曲データの読み出しを停止させ、前記発音開始タイミングに到る前に前記操作子が操作された場合には前記データ読出手順に対して当該発音開始タイミングまで曲データを早送りで読み出させる読出制御手順と、を実行する演奏教習処理プログラムを記録している。
【００７９】
【発明の効果】
本発明によれば、イベントデータの発音開始タイミングを経過した後も演奏すべき操作子が操作されない場合には、操作がされるまで曲データの読み出しを停止させ、発音開始タイミングに到る前に演奏すべき操作子が操作された場合には、その発音開始タイミングまで曲データを早送りで読み出させる。したがって、演奏操作をガイドするナビゲーション機能において、発音開始タイミングに到る前に演奏操作がなされた場合でも、演奏者に違和感を与えることなく、正しいテンポで曲の演奏ができるとともに、他のパートとの同期が取れる。
【図面の簡単な説明】
【図１】本発明の実施形態におけるシステム構成を示す図。
【図２】実施形態における鍵盤装置の構成を示すブロック図。
【図３】ＭＩＤＩデータのフォーマットを示す図。
【図４】ＭＩＤＩデータにおけるメロディデータのフォーマットを示す図。
【図５】図２のＣＰＵが実行するプログラムのメインフローチャート。
【図６】図５におけるスイッチ処理のフローチャート。
【図７】図６におけるモード選択スイッチ処理のフローチャート。
【図８】図６におけるスタートスイッチ処理のフローチャート。
【図９】図６における受信スイッチ処理のフローチャート。
【図１０】図５における鍵ガイド処理のフローチャート。
【図１１】図１０におけるガイドＡ処理のフローチャート。
【図１２】図１１に続くガイドＡ処理のフローチャート。
【図１３】図１２に続くガイドＡ処理のフローチャート。
【図１４】図１０におけるガイドＢ処理のフローチャート。
【図１５】図１４に続くガイドＢ処理のフローチャート。
【図１６】図５における押鍵処理のフローチャート。
【図１７】図１６に続く押鍵処理のフローチャート。
【図１８】図５における出力処理のフローチャート。
【図１９】図５における受信処理のフローチャート。
【図２０】他の実施形態におけるシステム構成を示す図。
【図２１】他の実施形態におけるシステム構成を示す図。
【図２２】他の実施形態におけるシステム構成を示す図。
【符号の説明】
１１  ＣＰＵ
１２  ＲＯＭ
１７  ＭＯＤＥＭ
１９  光鍵盤
２０  ＬＥＤ
２１  ＦＤＤ
【図１】
0003788085.tif 000002
【図２】
0003788085.tif 000003
【図３】
0003788085.tif 000004
【図４】
0003788085.tif 000005
【図５】
0003788085.tif 000006
【図６】
0003788085.tif 000007
【図７】
0003788085.tif 000008
【図８】
0003788085.tif 000009
【図９】
0003788085.tif 000010
【図１０】
0003788085.tif 000011
【図１１】
0003788085.tif 000012
【図１２】
0003788085.tif 000013
【図１３】
0003788085.tif 000014
【図１４】
0003788085.tif 000015
【図１５】
0003788085.tif 000016
【図１６】
0003788085.tif 000017
【図１７】
0003788085.tif 000018
【図１８】
0003788085.tif 000019
【図１９】
0003788085.tif 000020
【図２０】
0003788085.tif 000021
【図２１】
0003788085.tif 000022
【図２２】
0003788085.tif 000023