(57)【特許請求の範囲】
【請求項１】
演奏データを記憶する演奏データ記憶手段と、
外部から演奏データを入力する入力手段と、
前記入力された演奏データを前記演奏データ記憶手段に記憶するとともに、前記演奏データ記憶手段に記憶された演奏データを読み出す記録再生手段と、
前記読み出された演奏データを外部に出力する出力手段とを備えた自動演奏装置において、
前記演奏データ記憶手段とは独立していて演奏データを一時的に記憶するための一時記憶手段と、
前記入力手段、記録再生手段又は出力手段による演奏データの処理中に、演奏データを前記一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として機能拡張モジュールをコールして、前記機能拡張モジュールによる前記一時記憶手段からの演奏データの読み出し及び前記一時記憶手段への演奏データの書き込みを許容し、かつ前記機能拡張モジュールによるコールを許容するキュー手段とを設けたことを特徴とする自動演奏装置。
【請求項２】
前記請求項１に記載した自動演奏装置において、
前記演奏データは３層構造で規定されており、前記３層構造に従った関数を用いて、前記キュー手段と前記機能拡張モジュールとの間で前記演奏データが授受されることを特徴とする自動演奏装置。
【請求項３】
演奏データを記憶する演奏データ記憶手段と、
外部から演奏データを入力する入力手段と、
前記入力された演奏データを前記演奏データ記憶手段に記憶するとともに、前記演奏データ記憶手段に記憶された演奏データを読み出す記録再生手段と、
前記読み出された演奏データを外部に出力する出力手段とを備えた自動演奏装置において、
前記演奏データ記憶手段とは独立していて演奏データを一時的に記憶するための第１乃至第３の一時記憶手段と、
前記入力手段によって入力された演奏データを前記第１の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第１の機能拡張モジュールをコールして、前記第１の機能拡張モジュールによる前記第１の一時記憶手段からの演奏データの読み出し及び前記第１の一時記憶手段への演奏データの書き込みを許容し、かつ前記第１の機能拡張モジュールによるコールを許容する第１のキュー手段と、
前記入力手段によって入力された演奏データ又は前記記録再生手段によって前記演奏データ記憶手段から読み出された演奏データを前記第２の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第２の機能拡張モジュールをコールして、前記第２の機能拡張モジュールによる前記第２の一時記憶手段からの演奏データの読み出し及び前記第２の一時記憶手段への演奏データの書き込みを許容し、かつ前記第２の機能拡張モジュールによるコールを許容する第２のキュー手段と、
前記出力手段によって外部に出力される演奏データを前記第３の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第３の機能拡張モジュールをコールして、前記第３の機能拡張モジュールによる前記第３の一時記憶手段からの演奏データの読み出し及び前記第３の一時記憶手段への演奏データの書き込みを許容し、かつ前記第３の機能拡張モジュールによるコールを許容する第３のキュー手段とを設けたことを特徴とする自動演奏装置。
【請求項４】
前記請求項３に記載した自動演奏装置において、
前記演奏データは３層構造で規定されており、前記３層構造に従った関数を用いて、前記第１乃至第３のキュー手段と前記第１乃至第３の機能拡張モジュールとの間で前記演奏データがそれぞれ授受されることを特徴とする自動演奏装置。
【請求項５】
前記請求項１乃至請求項４のうちのいずれか一つに記載した自動演奏装置において、さらに、
前記演奏データは複数系列音にそれぞれ対応した複数のトラックを有する構造により規定されており、
前記入力手段によって入力された演奏データ又は前記記録再生手段によって前記演奏データ記憶手段から読み出された演奏データをトラックごとに処理するトラック処理手段を設けたことを特徴とする自動演奏装置。
【請求項６】
演奏データを記憶する演奏データ記憶手段と、前記演奏データ記憶手段とは独立していて演奏データを一時的に記憶するための一時記憶手段とを有する自動演奏装置に適用され、
外部から演奏データを入力する入力処理と、
前記入力された演奏データを前記演奏データ記憶手段に記憶するとともに、前記演奏データ記憶手段に記憶された演奏データを読み出す記録再生処理と、
前記読み出された演奏データを外部に出力する出力処理と、
前記入力処理、記録再生処理又は出力処理による演奏データの処理中に、演奏データを前記一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として機能拡張モジュールをコールして、前記機能拡張モジュールによる前記一時記憶手段からの演奏データの読み出し及び前記一時記憶手段への演奏データの書き込みを許容し、かつ前記機能拡張モジュールによるコールを許容するキュー処理とを含むことを特徴とする自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項７】
前記請求項６に記載した記録媒体において、
前記演奏データは３層構造で規定されており、前記３層構造に従った関数を用いて、前記キュー手段と前記機能拡張モジュールとの間で前記演奏データが授受されるようにした自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項８】
演奏データを記憶する演奏データ記憶手段と、前記演奏データ記憶手段とは独立していて演奏データを一時的に記憶するための第１乃至第３の一時記憶手段とを有する自動演奏装置に適用され、
外部から演奏データを入力する入力処理と、
前記入力された演奏データを前記演奏データ記憶手段に記憶するとともに、前記演奏データ記憶手段に記憶された演奏データを読み出す記録再生処理と、
前記読み出された演奏データを外部に出力する出力処理と、
前記入力処理によって入力された演奏データを前記第１の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第１の機能拡張モジュールをコールして、前記第１の機能拡張モジュールによる前記第１の一時記憶手段からの演奏データの読み出し及び前記第１の一時記憶手段への演奏データの書き込みを許容し、かつ前記第１の機能拡張モジュールによるコールを許容する第１のキュー処理と、
前記入力処理によって入力された演奏データ又は前記記録再生処理によって前記演奏データ記憶手段から読み出された演奏データを前記第２の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第２の機能拡張モジュールをコールして、前記第２の機能拡張モジュールによる前記第２の一時記憶手段からの演奏データの読み出し及び前記第２の一時記憶手段への演奏データの書き込みを許容し、かつ前記第２の機能拡張モジュールによるコールを許容する第２のキュー処理と、
前記出力処理によって外部に出力される演奏データを前記第３の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第３の機能拡張モジュールをコールして、前記第３の機能拡張モジュールによる前記第３の一時記憶手段からの演奏データの読み出し及び前記第３の一時記憶手段への演奏データの書き込みを許容し、かつ前記第３の機能拡張モジュールによるコールを許容する第３のキュー処理とを含むことを特徴とする自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項９】
前記請求項８に記載した記録媒体において、
前記演奏データは３層構造で規定されており、前記３層構造に従った関数を用いて、前記第１乃至第３のキュー処理と前記第１乃至第３の機能拡張モジュールとの間で前記演奏データがそれぞれ授受されるようにした自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１０】
前記請求項６乃至請求項９のうちのいずれか一つに記載した記録媒体において、さらに、
前記演奏データは複数系列音にそれぞれ対応した複数のトラックを有する構造により規定されており、
前記入力処理によって入力された演奏データ又は前記記録再生処理によって前記演奏データ記憶手段から読み出された演奏データをトラックごとに処理するトラック処理を含むようにした自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、時間経過にしたがって一連の処理により一連の演奏データを記録又は再生する自動演奏装置に係り、特に汎用的かつ簡単に機能追加を可能とする自動演奏装置及び自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【０００２】
【従来の技術】
従来から、電子楽器、パーソナルコンピュータなどの機器に組み込んだり、単体として設けたシーケンサ等の自動演奏装置はよく知られている。この自動演奏装置は、外部から与えられた演奏データを演奏データ記憶手段に記憶したり、演奏データ記憶手段に記憶されている演奏データを再生したりする機能を備えている。また、自動演奏装置は編集機能も備えており、編集機能を用いて演奏データ記憶手段に記憶されている演奏データを編集することも可能である。
【０００３】
【発明が解決しようとする課題】
上記のような自動演奏装置において、外部から与えられた演奏データを演奏データ記憶手段に記憶したり再生したりする際、又は演奏データ記憶手段に記憶されている演奏データを再生したりする際、一連の流れの中にある演奏データをモニタしたり、同演奏データに他の演奏データを追加したり、同演奏データを加工したりする機能拡張が要望されている。しかし、既存の自動演奏装置のシステム構成、演奏データの構造などは、製造者毎に異なっていたり、製品毎に異なっており、機能拡張を実現できるのは、自動演奏装置のシステム構成、演奏データの構造などを熟知した者に限られていた。したがって、既存の自動演奏装置に追加機能を付加して機能を拡張しようとしても、機能の拡張を簡単に行うことはできず、自動演奏装置の機能も限られたものであった。また、既存の自動演奏装置の操作方法も種々異なり、ユーザは、製造者毎、製品毎などの操作方法を余儀なくされていた。このことは、演奏データ記憶手段に記憶されている演奏データを編集しようとする場合も同じであり、同演奏データを種々の方法で編集することができなかった。
【０００４】
【発明の概略】
本発明は、上記問題に対処するためになされたもので、その目的は、汎用的かつ簡単に機能追加を可能とする自動演奏装置及び自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体を提供することにある。
【０００５】
上記目的を達成するために、本発明の構成上の特徴は、演奏データを記憶する演奏データ記憶手段と、外部から演奏データを入力する入力手段と、前記入力された演奏データを前記演奏データ記憶手段に記憶するとともに、前記演奏データ記憶手段に記憶された演奏データを読み出す記録再生手段と、前記読み出された演奏データを外部に出力する出力手段とを備えた自動演奏装置において、前記演奏データ記憶手段とは独立していて演奏データを一時的に記憶するための一時記憶手段と、前記入力手段、記録再生手段又は出力手段による演奏データの処理中に、演奏データを前記一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として機能拡張モジュールをコールして、前記機能拡張モジュールによる前記一時記憶手段からの演奏データの読み出し及び前記一時記憶手段への演奏データの書き込みを許容し、かつ前記機能拡張モジュールによるコールを許容するキュー手段とを設けたことにある。
【０００６】
この場合、一時億手段は、たとえば前記演奏データ記憶手段とは独立していて演奏データを一時的に記憶するための第１乃至第３の一時記憶手段からなる。また、キュー手段は、前記入力手段によって入力された演奏データを前記第１の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第１の機能拡張モジュールをコールして、前記第１の機能拡張モジュールによる前記第１の一時記憶手段からの演奏データの読み出し及び前記第１の一時記憶手段への演奏データの書き込みを許容し、かつ前記第１の機能拡張モジュールによるコールを許容する第１のキュー手段と、前記入力手段によって入力された演奏データ又は前記記録再生手段によって前記演奏データ記憶手段から読み出された演奏データを前記第２の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第２の機能拡張モジュールをコールして、前記第２の機能拡張モジュールによる前記第２の一時記憶手段からの演奏データの読み出し及び前記第２の一時記憶手段への演奏データの書き込みを許容し、かつ前記第２の機能拡張モジュールによるコールを許容する第２のキュー手段と、前記出力手段によって外部に出力される演奏データを前記第３の一時記憶手段に一時的に記憶するとともに、同記憶した演奏データに関するポインタを引数として第３の機能拡張モジュールをコールして、前記第３の機能拡張モジュールによる前記第３の一時記憶手段からの演奏データの読み出し及び前記第３の一時記憶手段への演奏データの書き込みを許容し、かつ前記第３の機能拡張モジュールによるコールを許容する第３のキュー手段とからなる。
【０００７】
また、前記演奏データは３層構造で規定され、前記３層構造に従った関数を用いて、前記キュー手段（又は前記第１乃至第３キュー手段）と前記機能拡張モジュール（又は前記第１乃至第３機能拡張モジュール）との間で前記演奏データが授受されようにするとよい。
【０００８】
上記のように構成した本発明の構成上の特徴によれば、一時記憶手段に一時的に記憶した演奏データに関するポインタを引数として受け取るとともに、同一時記憶手段から演奏データを読み出し及び同一時記憶手段へ演奏データを書き込む機能を有する機能拡張モジュール（プログラム構成の手段でも、ハード構成の手段でもよい）を用意しさえすれば、この機能拡張モジュールを自動演奏装置に適用かつ付加することができる。そして、この機能拡張モジュールは、自動演奏装置による演奏データの記録又は再生中に、同演奏データを受け取ったり、同演奏データ中に新たな演奏データを付加したりすることができるようになるので、外部から与えられた演奏データを演奏データ記憶手段に記憶したり再生したりする際、又は演奏データ記憶手段に記憶されている演奏データを再生したりする際、一連の流れの中にある演奏データをモニタしたり、同演奏データに他の演奏データを追加したり、同演奏データを加工したりする機能拡張を汎用的かつ簡単に行うことができるようになる。
【００１３】
さらに、本発明の他の構成上の特徴は、前述した本発明の自動演奏装置の各種機能を実現するプログラムを記録したコンピュータ読取り可能な記録媒体にある。これによれば、電子楽器、パーソナルコンピュータ、シーケンサなどの各種機器に前記プログラムをインストールしたり、記録媒体自体を組み込んだりすれば、前記各種機能が達成されるので、前記各種機器に前述した各種拡張機能を汎用的かつ簡単に持たせることができる。
【００１４】
【発明の実施の形態】
以下、本発明の一実施形態を図面を用いて説明すると、図１は本発明をパーソナルコンピュータＰＣ１に適用した実施形態における各種機器の接続図を示し、図２はパーソナルコンピュータＰＣ１を詳細に表した前記と同様な接続図を示している。
【００１５】
パーソナルコンピュータＰＣ１は、後述するシーケンサプログラム及びプラグインプログラムがインストールされて本発明に係る自動演奏装置（後述においてはシーケンサモジュールとして説明）として機能するとともに、本発明に係る機能拡張装置（後述においては機能拡張モジュールとして説明）として機能する。パーソナルコンピュータＰＣ１には、電子楽器ＥＭＩ、シーケンサＳＱ及び他のパーソナルコンピュータＰＣ２が接続されている。これらの電子楽器ＥＭＩ、シーケンサＳＱ及び他のパーソナルコンピュータＰＣ２は、既存のものでよく、パーソナルコンピュータＰＣ１に対して一連の演奏データをミディー（ＭＩＤＩ）フォーマットにしたがって送受信可能である。なお、シーケンサプログラム及びプラグインプログラムをインストールさせて両プログラムを動作させることが可能な機器であれば、パーソナルコンピュータＰＣ１に代えて、電子楽器、シーケンサなどの各種機器を用いることもでき、また前記両プログラムがフラッシュＲＯＭにより提供され得る各種機器であってもよい。
【００１６】
パーソナルコンピュータ装置ＰＣ１は、本体部１１、キーボード１２及びマウス１３などの入力装置、表示器１４などからなる一般的なものである。本体部１１の正面にはドライブユニット１５が組み付けられているとともに、その裏面には、電子楽器ＥＭＩ、シーケンサＳＱ及び他のパーソナルコンピュータＰＣ２などが接続される接続端子が設けられている。ドライブユニット１５は、外部記憶装置としてのコンパクトディスク、フレキシブルディスクなどが装着されるようになっており、同外部記憶装置に対してプログラム及びデータの読み出し及び書き込みを行うものである。
【００１７】
パーソナルコンピュータＰＣの本体部１１に組み込まれた内部回路装置は、バス２０に共通に接続されたミディーインターフェース回路２１、操作子スイッチ回路２２、表示制御回路２３及び音源回路２４を備えている。なお、このバス２０には、前記ドライブユニット１５も接続されている。
【００１８】
ミディーインターフェース回路２１は、前記裏面に設けられた接続端子を介して電子楽器ＥＭＩ、シーケンサＳＱ及び他のパーソナルコンピュータＰＣ２に対してミディーフォーマットにしたがった演奏データの受け渡しを可能とするものである。操作子スイッチ回路２２は、キーボード１２及びマウス１３に対応したスイッチ群などからなり、同キーボード１２及びマウス１３の操作に応じた信号を出力する。表示制御回路２３は、表示器１４の表示状態を制御するものである。音源回路２４は、バス２０を介して供給される演奏データ（音色データ、音量データ、音高データ、キーオン、キーオフデータなど）に応じた楽音信号をそれぞれ形成して出力する複数の音源チャンネル、各音源チャンネルからの楽音信号を合成してして出力する出力回路などからなる。この音源回路２４には、前記合成出力された楽音信号を発音するためのアンプ２５及びスピーカ２６が接続されている。
【００１９】
また、バス２０には、このパーソナルコンピュータ装置ＰＣ１の動作を制御するためのコンピュータ本体部を構成するＣＰＵ３１，ＲＯＭ３２及びＲＡＭ３３が接続されているとともに、内部記憶装置３４も接続されている。ＣＰＵ３１は、各種プログラムの実行により、演奏データに対して各種処理を施したり、楽音信号の発生を制御したりする。ＲＯＭ３２及びＲＡＭ３３は、前記プログラム及び各種データを記憶するものである。内部記憶装置３４は、ハードディスク、同ディスクのためのドライブ装置などで構成されており、大容量のメモリ装置として機能する。
【００２０】
次に、上記のように構成した実施形態の動作を説明する。まず、ユーザは、シーケンサプログラム、及びミディーモニタ、プレイバック、非同期、編集などの各種プラグインプログラムを記録したコンパクトディスク、フレキシブルディスクなどの外部記録媒体を用意して、同外部記録媒体をドライブユニットに装着する。そして、前記各種プログラムをＲＡＭ３３又は内部記憶装置３４にインストールする。なお、これらのプログラムをＲＯＭ３２に予め記憶させておいたり、内部記憶装置３４に記憶させておいたり、パーソナルコンピュータＰＣ２がフラッシュＲＯＭなどを装着できるものであれば、前記各種プログラムを記録したフラッシュＲＯＭなどを装着するようにしてもよい。
【００２１】
前記インストール後、ユーザは、シーケンサプログラムを起動させるとともに、必要な各種プラグインプログラムの起動準備をしたり、起動させたりする。このシーケンサプログラムは、オンライン処理ルーチンとオフライン処理ルーチンとを備えている。オンライン処理ルーチンは、外部から演奏データをＲＡＭ３３又は内部記憶装置３４内に設けた演奏データ記憶領域５０に記録するとともに、楽音として再生したり、同演奏データ記憶領域５０に記憶されている一連の演奏データを楽音として再生している間、すなわち自動演奏の作動中に、プラグインプログラムの実行を許容するものである。オフライン処理ルーチンは、自動演奏の非作動中（停止中）にプラグインプログラムの実行を許容するものである。以下、これらのオンライン処理とオフライン処理とに分けて説明する。
【００２２】
ａ．オンライン処理
まず、オンライン処理について図３の作動フロー図を用いて説明すると、同処理ルーチンは、ステップ１００の外部入力処理、ステップ１１０の記録／再生処理、ステップ１２０，１３０のトラック処理、及びステップ１４０の外部／音源出力処理からなる従来からよく知られている処理に、ステップ２００のインプットキュー処理、ステップ３００のプレイバックキュー処理、及びステップ３００のアウトプットキュー処理を加えたものである。
【００２３】
ステップ１００の外部入力処理は、電子楽器ＥＭＩ、シーケンサＳＱ、パーソナルコンピュータＰＣ２などの外部接続機器から楽曲の進行にしたがった時系列演奏データがミディーインターフェース回路２１に供給されると、これらの演奏データをシーケンサモジュール（シーケンサプログラムにより実現される自動演奏装置又はシーケンサの意味）内で処理するために、同モジュール内に取り込むものである。ステップ１１０の記録／再生処理は、前記外部から取り込んだ演奏データを演奏データ記憶領域５０に記録すると同時に、同演奏データの再生のために次のステップ１２０のトラック処理にプログラムを進めたり、演奏データ記憶領域５０に記憶されている一連の演奏データを楽曲の進行にしたがって順次読み出して、同読み出した演奏データの再生のために次のステップ１２０のトラック処理にプログラムを進めたりする。
【００２４】
ステップ１２０，１３０のトラック処理は、各トラックの演奏データを再生するか否か、外部へ出力するか否かを各トラック毎に制御したり、各トラックの演奏データを別のトラックの演奏データに変更したりする。ここで、演奏データのフォーマットについて若干説明を加えておくと、演奏データは、図４に示すように、トラック、ブロック、イベントデータの３層構造により規定されている。トラックは、メロディー、コード伴奏音、ベース伴奏音、リズム音（打楽器音）などの各系列を示すもので、前述した音源回路２４内の一つ若しくは複数の音源チャンネルに対応するものである。したがって、前記トラック処理は、各系列音の発音又は出力の有無を意味したり、音源チャンネルの変更を意味する。
【００２５】
ブロックは、各トラック内におけるフレーズ、小節などの所定期間に渡る複数のイベントデータからなる。イベントデータは、発生楽音の音色及び音高、楽音の発生開始及び終了をそれぞれ表すキーオンデータ及びキーオフデータなど個々の楽音の発生を制御するデータである。そして、演奏データ列は、図５に示すように、前回の演奏イベントからの相対時間を表すタイミングデータに続いて、一つ若しくは同時に生じた複数の演奏イベントに対応した複数のイベントデータが時系列的に配置されたものである。なお、図５に示すイベントデータには、トラック番号及びブロック番号が付加されていて、各イベントデータが属するトラック及びブロックが識別できるようになっている。なお、各イベントデータにトラック番号及びブロック番号が付加されていなくても、同各イベントデータのトラック及びブロックが識別できるようなフォーマットであれば、すなわち演奏データ列に対して外部から見て前記３層構造の演奏データが認識できるようになっていれば、いかなるフォーマットでもかまわない。
【００２６】
ステップ１４０の外部／音源出力処理は、ミディーインターフェース回路２１を介して電子楽器ＥＭＩ、シーケンサＳＱ、パーソナルコンピュータＰＣ２などのパーソナルコンピュータＰＣ１に接続した各種機器に演奏データを出力したり、演奏データを音源回路２４に出力して同演奏データに対応した楽音信号を発生させたりするものである。
【００２７】
ステップ２００のインプットキュー処理は、本発明の一つのキュー手段に対応するもので、ステップ１００の外部入力処理とステップ１１０の記録/再生処理との間に介装されていて、同外部入力処理により外部から入力される一連の演奏データを順次一部の演奏データずつＲＡＭ３３内に設けた一時記憶領域２００ａに一時的に記憶するとともに、同記憶した一部の演奏データに関するポインタを引数として機能拡張モジュールとしてのプラグインプログラムに渡すとともに同プログラムをコールし、同プログラムによる一時記憶領域２００ａからの演奏データの読み出し及び一時記憶領域２００ａへの演奏データの書き込みを許容する。また、逆に、機能拡張モジュールとしてのプラグインプログラムが、共通の引数を渡してインプットキュー処理をコールすることもできるようになっている。なお、前述したステップ１１０の記録/再生処理においては、ステップ２００のインプットキュー処理により一時記憶領域２００ａに一時的に記憶されている演奏データを読み出して記録及び再生の処理を実行することになる。
【００２８】
このインプットキュー処理の具体例の一つを説明すると、図３及び図６は、シーケンサプログラムに対してミディーモニタプラグインプログラムを付加した動作フローを示している。ステップ２００のインプットキュー処理においては、ステップ２０２にて、前記ステップ１００の外部入力処理により新たな演奏データが入力されたか否か、すなわち入力イベントデータがあるか否かを判定する。入力イベントデータがあれば、ステップ２０２にて「ＹＥＳ」と判定して、ステップ２０４にて、入力イベントデータ（入力された演奏データ）を一時記憶領域２００ａに書き込んで同領域２００ａに入力イベントデータを順次積み上げていく。なお、一時記憶領域２００ａが入力イベントデータで満たされれば、最も古い入力イベントデータが廃棄されていく。入力イベントデータがなければ、ステップ２０２にて「ＮＯ」と判定して、プログラムをステップ１２０に進める。
【００２９】
また、インプットキュー処理においては、このステップ２０２，２０４の処理と並行して、ステップ２１０〜２２０からなる処理を所定の短時間毎に繰り返し実行している。ステップ２１２の時間カウント値ＴＭ１の減算処理、ステップ２１４の時間カウント値ＴＭ１と「０」との比較によるタイムアップ検出処理、及びステップ２１６の時間カウント値ＴＭ１に対する所定値ＴＭ０の設定処理により、所定値ＴＭ０に対応した所定時間の経過の計測を行う。そして、前記所定時間の経過毎に、ステップ２１８にて、前記一時記憶領域２００ａに記憶した入力イベントデータに関するポインタを引数としてミディーモニタプラグインプログラムをコール、すなわち前記ポインタをミディーモニタプラグインプログラムに渡して同プログラムの起動を要求する。
【００３０】
このミディーモニタプラグインプログラムの実行は前記コールによりステップ２５０にて起動され、ステップ２５２にて前記一時記憶領域２００ａに記憶した入力イベントデータ（入力された演奏データ）に関するポインタを取得する。そして、ステップ２５４にて前記取得したポインタに基づいて一時記憶領域２００ａに記憶されている入力イベントデータを読み出し、ステップ２５６にて前記読み出したイベントデータに基づいて表示制御回路２３に同データに対応した表示制御信号を出力して、ステップ２５８にてこのミディーモニタプラグインプログラムの実行を終了する。表示制御回路２３は、表示器１４を制御して、同表示器１４にて前記入力イベントデータに対応した音符、音符を表す文字などを表示する。これにより、ユーザは、シーケンサプログラムのステップ１００の外部入力処理によって外部から入力した演奏データを表示器１４にてモニタすることができる。
【００３１】
ステップ３００のプレイバックキュー処理も、本発明の一つのキュー手段に対応するもので、ステップ１２０，１３０の両トラック処理間に介装されていて、ステップ１２０にて前述のトラック処理された一連の演奏データを一部の演奏データずつ順次ＲＡＭ３３内に設けた一時記憶領域３００ａに一時的に記憶するとともに、同記憶した一部の演奏データに関するポインタを引数として機能拡張モジュールとしてのプラグインプログラムに渡すとともに同プログラムをコールし、同プログラムによる一時記憶領域３００ａからの演奏データの読み出し及び一時記憶領域３００ａへの演奏データの書き込みを許容する。また、逆に、機能拡張モジュールとしてのプラグインプログラムが、共通の引数を渡してプレイバックキュー処理をコールすることもできるようになっている。なお、前述したステップ１３０のトラック処理においては、ステップ３００のプレイバックキュー処理により一時記憶領域３００ａに一時的に記憶されている演奏データを読み出してトラック処理することになる。
【００３２】
このプレイバックキュー処理の具体例の一つを説明すると、図３及び図７は、シーケンサプログラムに対してプレイバックプラグインプログラムを付加した動作フローを示している。ステップ３００のプレイバックキュー処理においては、ステップ３０２にて、前記ステップ１２０の記録／再生処理により外部から入力され又は演奏データ記憶領域５０から読み出されて再生される演奏データがあるか否か、すなわち再生イベントデータがあるか否かを判定する。再生イベントデータがあれば、ステップ３０２にて「ＹＥＳ」と判定して、ステップ３０４にて、前記再生イベントデータ（再生される演奏データ）を一時記憶領域３００ａに書き込んで同領域３００ａに再生イベントデータを順次積み上げていく。なお、この場合も、一時記憶領域３００ａが再生イベントデータで満たされれば、最も古い再生イベントデータが廃棄されていく。再生イベントデータがなければ、ステップ３０２にて「ＮＯ」と判定して、プログラムをステップ１３０に進める。
【００３３】
また、プレイバックキュー処理においては、このステップ３０２，３０４の処理と並行して、ステップ３１０〜３２０からなる処理を所定の短時間毎に繰り返し実行している。これらのステップ３１０〜３２０の処理においては、前記ステップ２１２〜２１６の処理と同様なステップ３１２〜３１６の処理により、時間カウント値ＴＭ２を用いて所定時間の経過を計測し、所定時間の経過毎に、ステップ３１８にて、前記一時記憶領域３００ａに記憶した再生イベントデータ（再生される演奏データ）に関するポインタを引数としてプレイバックプラグインプログラムをコール、すなわち前記ポインタをプレイバックプラグインプログラムに渡して同プログラムの起動を要求する。
【００３４】
このプレイバックプラグインプログラムの実行は前記コールによりステップ３５０にて開始され、ステップ３５２にて前記一時記憶領域３００ａに記憶した再生イベントデータ（再生される演奏データ）に関するポインタを取得する。そして、ステップ３５４にて前記取得したポインタに基づいて一時記憶領域３００ａに記憶されている再生イベントデータを読み出し、ステップ３５６にて前記読み出した再生イベントデータに加工処理を施す。この加工処理においては、再生イベントデータにより再生される楽音のピッチ、音量、音色などの楽音要素を修正するために再生イベントデータを変更したり、同再生イベントデータに新たな演奏データを付加したりする。また、発生される楽音に効果を付与するために再生イベントデータに効果を表す新たな演奏データを付加したり、再生イベントデータにより表されたメロディ音に対して付加音（例えば、副メロディ音）を付加するために、再生イベントデータにより表されたメロディ音及び伴奏音列を自動分析（プログラムによる分析）して付加音を表す演奏データを生成して、同生成した演奏データを再生イベントデータに付加する。
【００３５】
前記ステップ３５６の処理後、ステップ３５８にて前記加工処理した再生イベントデータを一時記憶領域３００ａに書き込み、同領域３００ａのポインタを調整し、ステップ３６０にてこのプレイバックプラグインプログラムの実行を終了する。前記一時記憶領域３００ａへの再生イベントデータの書き込みにおいては、既に書き込まれている再生イベントデータに新たな演奏データを追加するようにしてもよいし、再生イベントデータの一部又は全てを新たな演奏データを含む再生イベントで書き換えてしまってもよい。これにより、前記プレイバックキュー処理のステップ３０４にて一時記憶領域３００ａに書き込まれた再生イベントデータは、プレイバックプラグインプログラムのステップ３５６の処理により加工した再生イベントデータに書き換えられる。
【００３６】
したがって、前記ステップ１３０のトラック処理においては、この書き換えられた再生イベントデータを一時記憶領域３００ａから読み出してトラック処理を施し、このトラック処理の施された演奏データがステップ４００のアウトプットキュー処理及びステップ１４０の外部／音源出力処理に利用されることになるので、前記加工処理の施された再生イベントデータ（演奏データ）が外部へ出力されたり、音源回路２４にて再生されることになる。これにより、ユーザは、外部から入力され又は演奏データ記憶領域５０から読み出された再生のための演奏データを種々に加工できるようになる。
【００３７】
ステップ４００のアウトプットキュー処理も、本発明の一つのキュー手段に対応するもので、ステップ１３０のトラック処理とステップ１４０の外部／音源出力処理との間に介装されていて、ステップ１３０にてトラック処理された一連の演奏データを一部の演奏データずつ順次ＲＡＭ３３内に設けた一時記憶領域４００ａに一時的に記憶するとともに、同記憶した一部の演奏データに関するポインタを引数として機能拡張モジュールとしてのプラグインプログラムに渡すとともに同プログラムをコールし、同プログラムによる一時記憶領域４００ａからの演奏データの読み出し及び一時記憶領域４００ａへの演奏データの書き込みを許容する。また、逆に、機能拡張モジュールとしてのプラグインプログラムが、共通の引数を渡してアウトプットキュー処理をコールすることもできるようになっている。なお、前述したステップ１４０の外部／音源出力処理においては、ステップ４００のキュー処理により一時記憶領域４００ａに一時的に記憶されている演奏データを読み出して外部又は音源回路２４に出力することになる。
【００３８】
このアウトプットキュー処理の具体例の一つを説明すると、図３及び図８は、シーケンサプログラムに対して非同期プラグインプログラムを付加した動作フローを示している。ステップ４００のアウトプットキュー処理においては、ステップ４０２にて、前記ステップ１３０にてトラック処理が施されて外部又は音源回路２４に出力される新たな演奏データがあるか否か、すなわち出力イベントデータがあるか否かを判定する。出力イベントデータがあれば、ステップ４０２にて「ＹＥＳ」と判定して、ステップ４０４にて、前記出力イベントデータ（出力される演奏データ）を一時記憶領域４００ａに書き込んで同領域４００ａに出力イベントデータを順次積み上げていく。なお、この場合も、一時記憶領域４００ａが出力イベントデータで満たされれば、最も古い出力イベントデータが廃棄されていく。出力イベントデータがなければ、ステップ４０２にて「ＮＯ」と判定して、プログラムをステップ１４０に進める。
【００３９】
また、このアウトプットキュー処理に対しては、同キュー処理に並行して、機能拡張モジュールである非同期プラグインプログラムが図示しない指示により所定の短時間毎に繰り返し実行されている。この非同期プラグインプログラムは、ステップ４５０にて開始され、表示器１４にてプラグインウインドウに表示されている発生楽音の楽音制御要素をキーボード１２又はマウス１３の操作に応じて変更して、発生楽音の楽音要素をリアルタイムで変更するものである。前記楽音要素としては、例えば、トラック毎（パート別）の音量、音色などが挙げられる。
【００４０】
非同期プラグインプログラムは、ステップ４５０にてその実行が開始されて、ステップ４５２にて前記キーボード１２又はマウス１３の操作により楽音制御要素が変更された否か、すなわち操作子イベントデータ（楽音制御要素の変更操作を示す演奏データ）があるか否かを判定する。操作子イベントデータがなければ、ステップ４５２にて「ＮＯ」と判定して、ステップ４６２にてこの非同期プラグインプログラムの実行を一旦終了する。
【００４１】
一方、操作子イベントデータがあれば、ステップ４５２にて「ＹＥＳ」と判定し、ステップ４５４にて、表示器１４のプラグインウインドウに表示されている楽音制御要素用の表示（例えば、音量操作子位置の表示）をキーボード１２又はマウス１３の操作に応じて変更する。そして、ステップ４５６にて、前記操作子イベントデータ（前記変更された楽音制御要素を表す演奏データ）を引数として、アウトプットキュー処理をコールして待機する。
【００４２】
アウトプットキュー処理においては、同処理の一部を構成するプログラムがステップ４１０にて起動され、ステップ４１２にて、前記一時記憶領域４００ａに記憶した出力イベントデータ（出力される演奏データ）に関するポインタを引数として非同期プラグインプログラムをコール、すなわち前記ポインタを非同期プラグインプログラムに渡して同プログラムによる処理を要求する。
【００４３】
この場合、非同期プラグインプログラム側においては、ステップ４５８にて前記一時記憶領域４００ａに記憶した出力イベントデータ（出力される演奏データ）に関するポインタを取得する。そして、ステップ４６０にて前記操作子イベントデータ（演奏データ）を一時記憶領域４００ａに書き込み、又は一時記憶領域４００ａに既に記憶されている演奏データを新たな操作子イベントデータに変更し、同領域４００ａのポインタを調整し、ステップ４６２にてこの非同期プラグインプログラムの実行を一旦終了する。
【００４４】
これにより、前記アウトプットキュー処理のステップ４０４によって一時記憶領域４００ａに書き込まれた出力イベントデータには操作子イベントデータが追加され、又は同出力イベントデータの一部が操作子イベントデータに書き換えられる。
【００４５】
したがって、前記ステップ１４０の外部／音源出力処理においては、この追加又は書き換えられた出力イベントデータを一時記憶領域４００ａから読み出して外部又は音源回路２４に出力するので、外部又は音源回路２４に出力される演奏データが前記操作子イベントデータを含むものに変更される。その結果、ユーザは、キーボード１２又はマウス１３などを操作することにより、外部装置に出力される演奏データをリアルタイムで変更したり、音源回路２４から出力される楽音の楽音要素をリアルタイムで変更したりできるようになる。
【００４６】
また、シーケンサプログラム側においては、前記ステップ４１２の処理後、ステップ１１０の記録／再生処理を実行して、前記非同期プラグインプログラムから渡された操作子イベントデータ（楽音制御要素の変更操作を示す演奏データ）を演奏データ記憶領域５０に書き込むこともできる。これによれば、ステップ２００のインプットキュー処理及びステップ３００のプレイバックキュー処理の影響を受けないで、外部から供給された演奏データに前記操作子イベントデータを加えて演奏データ記憶領域５０に記録したり、演奏データ記憶領域５０に既に記録されている演奏データに外部の操作子の操作に応じた操作子イベントデータを加えたりすることもできるようになる。
【００４７】
上記作動説明からも理解できるように、上記実施形態のインプットキュー処理、プレイバックキュー処理及びアウトプットキュー処理は、時間経過にしたがった一連の処理中に一連の演奏データのうちの一部の演奏データを一時記憶領域２００ａ，３００ａ，４００ａにそれぞれ一時的に記憶するとともに、この記憶した一部の演奏データに関するポインタを引数として機能拡張モジュールとしての各種プラグインプログラムに渡し、同各種プラグインプログラムによる一時記憶領域２００ａ，３００ａ，４００ａからの演奏データの読み出し又は同記憶領域２００ａ，３００ａ，４００ａへの演奏データの書き込みを許容するようにした。したがって、上記各種プラグインプログラムのように、一時記憶領域２００ａ，３００ａ，４００ａに記憶した一部の演奏データに関するポインタを引数として受け取るとともに、同記憶領域２００ａ，３００ａ，４００ａから演奏データを読み出す又は同記憶領域２００ａ，３００ａ，４００ａへ演奏データを書き込む機能を有する機能拡張モジュールとしてのプラグインプログラムを用意しさえすれば、基本的なシーケンサ処理（自動演奏の記録再生処理）に対して各種拡張機能を汎用的かつ簡単に付加できるようになる。
【００４８】
なお、上記説明したオンライン処理においては、各種キュー処理を演奏データ全体に対して設けるとともに、各種キュー処理に対して各一つずつのプラグインプログラムを付加するようにした。しかし、これを更に拡張して、各キュー処理をトラック毎に設け、各トラック毎に独立してプラグインプログラムを付加できるようにしてもよい。また、一つのキュー処理に対して複数のプラグインプログラムを付加できるようし、各キュー処理（シーケンサプログラム）側からコールする順序を管理することにより、プラグインプログラム間の論理結線を制御するようにしてもよい。
【００４９】
前記変形例の論理結線の一例を図９に示す。図９によれば、シーケンサプログラムは、予め決められたキュー処理（インプットキュー処理、プレイバックキュー処理など）において、複数のトラックのうちのｘ番目のトラックｘ用のプラグインプログラムｘ１〜ｘｍを順にコールし、これと並行して、複数のトラックのうちのｙ番目のトラックｙ用のプラグインプログラムｙ１〜ｙｎを順にコールしていく。そして、各プラグインプログラムｘ１〜ｘｍ，ｙ１〜ｙｎは、トラックｘ，ｙの前記キュー処理に対して種々の機能拡張処理を施す。その後、シーケンサプログラムは、全てのトラック用のプラグインプログラムＡ〜Ｍを順にコールしていく。これにより、より基本的なシーケンサプログラムに対して複雑な機能拡張を行うことができる。
【００５０】
また、このキュー処理とプラグインプログラムとの関係を表示器１４を用いて定めるようにすることもできる。この場合、シーケンサプログラム及び各種プラグインプログラムをパーソナルコンピュータＰＣ１にインストールした状態で、キュー処理と各種プラグインプログラムとの関係を表示器１４に表示しながら、前記関係を設定していくようにするとよい。これにより、キュー処理とプラグインプログラムとの対応つけを簡単に決めることができるとともに、前記対応付けを簡単に種々に変更することもできる。
【００５１】
さらに、上記実施形態の機能拡張モジュールとしてのプラグインプログラムに上記シーケンサプログラムに設けた各種キュー処理と同様なキュー処理を設けて、プラグインプログラムが同プログラムに付加された別のプラグインプログラムをコールするようにすることもできる。これによっても、シーケンサプログラムに対して機能拡張を付加したことになり、複雑かつ多数の機能拡張を簡単に行うことができるようになる。
【００５２】
ａ．オフライン処理
次に、オフライン処理について図面を用いて説明すると、図１０は同オフライン処理におけるシーケンサモジュール（シーケンサプログラム）と機能拡張モジュール（編集プラグインプログラム）との関係を概念図により示している。
【００５３】
シーケンサモジュールは、上述したような外部から時系列で供給される演奏データを演奏データ記憶領域５０に記録したり、演奏データ記憶領域５０に記憶されている演奏データを再生したりする処理機能を有しているとともに、機能拡張モジュール６００−１，６００−２などの追加を可能とするインターフェース処理５００を行うようになっている。機能拡張モジュール６００−１，６００−２は、演奏データ記憶領域５０内の演奏データをシーケンサモジュールを介して編集可能とするものである。この場合、演奏データ記憶領域５０には、上述したトラック、ブロック及びイベントデータからなる３層構造にしたがった演奏データが記憶されている。なお、この場合の３層構造も、演奏データ記憶領域５０内の演奏データの配列がいかなるものであっても、同記憶領域５０に対して前記３層構造で各演奏データを指定できるようになっていればよい。また、シーケンサモジュールと機能拡張モジュール６００−１，６００−２とは、共通の引数及び関数により、互いにコールし合うことができるようになっている。
【００５４】
このようなシーケンサモジュールと機能拡張モジュール６００−１，６００−２との関係を、図１１の動作フローを用いてさらに詳細に説明する。前述のように、編集プラグインプログラムとシーケンサプログラムのインターフェース処理５００とは、共通の引数及び関数を用いて互いにコールし合えるようになっており、編集プラグインプログラムは所定時間毎に繰り返し実行されるようになっている。この編集プラグインプログラムの実行はステップ６００にて開始され、ステップ６０２にて編集しようとする演奏データの記憶領域（編集領域）がキーボード１２、マウス１３の入力装置により指定されたか否かを判定する。この場合、表示器１４においては、演奏データ編集用の表示がなされており、ユーザは、この表示にしたがってキーボード１２、マウス１３などの入力装置により編集領域を指定する。
【００５５】
編集領域が指定されなければ、ステップ６０２にて「ＮＯ」と判定して、ステップ６１２にてこの編集プラグインプログラムの実行を一旦終了する。一方、編集領域の指定があれば、ステップ６０２にて「ＹＥＳ」と判定して、ステップ６０４にて編集領域を表すトラック番号、ブロック番号及びイベント番号を引数としてインターフェース処理をコールする。もちろん、全ての演奏データのうちの一つ若しくは複数のトラックの全ての演奏データを編集する場合には、前記引数は一つ若しくは複数のトラック番号となる。また、一つ若しくは複数のトラックの演奏データのうちで特定の一つ若しくは複数のブロックの演奏データを編集する場合には、前記引数は一つ若しくは複数のトラック番号及びブロック番号となる。
【００５６】
インターフェース処理５００においては、前記コールに応答して、ステップ５０２にて前記引数により指定された編集領域に属する演奏データを演奏データ記憶領域５０から読み出し、編集プラグインプログラムをコールして同読み出した演奏データを渡した後、待機する。編集プラグインプログラムにおいては、前記コールに応答して、ステップ６０６にて前記演奏データ記憶領域５０から読み出された演奏データを取得して、ＲＡＭ３３内に適宜設けた編集用記憶領域に書き込むとともに表示器１４にて前記取得した演奏データに対応した表示を行う。
【００５７】
この状態で、ユーザは、表示器１４の表示画面を見ながら、キーボード１２又はマウス１３を操作して演奏データを編集する。前記ステップ６０６の処理後、ステップ６０８にて、前記キーボード１２又はマウス１３の操作に応じて編集用記憶領域内の演奏データを編集するとともに、表示器１４の表示状態も前記編集に合わせて変更する。
【００５８】
この後、ユーザによる編集終了の指示に応答して、ステップ６１０にて編集した演奏データに対する演奏データ記憶領域５０内の記憶領域を指定し、インターフェース処理５００をコールし、同インターフェース処理５００に対して同指定記憶領域を表すデータとともに編集された演奏データを３層構造にしたがったフォーマットで渡し、ステップ６１２にてこの編集プラグインプログラムの実行を終了する。なお、前記記憶領域を表すデータに関しては、前記指定された編集領域に今回編集された演奏データを戻すだけの場合、同指定された編集領域を表すデータを再度使用することになる。また、演奏データ記憶領域５０に記憶されていた一部の演奏データを他の位置にコピーしたり、同一部の演奏データを加工して他の位置に書き込む場合には、ユーザにより新たに指定された記憶領域を表すデータが生成されることになる。
【００５９】
インターフェース処理５００においては、前記コールに応答して、ステップ５０４にて、前記編集された演奏データを取得して、同演奏データを演奏データ記憶領域５０内の指定記憶領域に書き込む。これにより、演奏データ記憶領域５０内の演奏データが、シーケンサプログラムのインターフェース処理５００を介して編集プラグインプログラムにより編集されることになる。図１２は、前記のような編集作業における演奏データの流れを示しており、演奏データ記憶領域５０に記憶されていた一部の演奏データＳ１，Ｓ２，Ｓ３が、編集プラグインプログラムの処理により新たな一部の演奏データＳ１＊，Ｓ２＊，Ｓ３＊にそれぞれ編集されて演奏データ記憶領域５０にふたたび記憶される流れを示している。
【００６０】
上記作動説明からも理解できるように、機能拡張モジュールとしての編集プラグインプログラムにより、３層構造に従った関数を用いて演奏データ記憶領域５０内の一部の演奏データが指定されると、シーケンサモジュールとしてのシーケンサプログラムのインターフェース処理５００は、演奏データ記憶領域５０から前記指定された一部の演奏データを編集プラグインプログラムに渡す。そして、編集プラグインプログラムによって前記一部の演奏データが編集されるとともに、インターフェース処理５００に再び戻されると、同インターフェース処理５００は前記編集された一部の演奏データを演奏データ記憶領域５０に書き込む。したがって、機能拡張モジュールとしてのプラグインプログラムをシーケンサモジュール（シーケンサプログラム）に対して付加するだけで、汎用的かつ簡単に演奏データの編集を行うための機能拡張を実現できる。しかも、このプラグインプログラムの付加は、シーケンサプログラムとの間で共通の引数及び関数を定めておくだけでシーケンサプログラムに適用されるので、種々の機能拡張モジュールであるプラグインプログラムを汎用的かつ簡単に利用できるようになる。
【００６１】
なお、前記表示器１４における演奏データの表示の説明でも明らかなように、このオフライン処理においても、演奏データ記憶領域５０内の演奏データをプラグインプログラム側に取り込んで単にモニタすることも可能であり、汎用的かつ簡単に演奏データのモニタを行うための機能拡張も簡単に行える。
【図面の簡単な説明】
【図１】本発明をパーソナルコンピュータに適用した場合における各種機器の接続図である。
【図２】前記パーソナルコンピュータを詳細に表した接続図である。
【図３】オンライン処理における作動を示す作動フロー図である。
【図４】演奏データの３層構造を説明するためのデータフォーマット図である。
【図５】演奏データ列のデータフォーマット図である。
【図６】インプットキュー処理とミディーモニタプラグインプログラムの作動を説明するためのフローチャートである。
【図７】プレイバックキュー処理とプレイバックプラグインプログラムの作動を説明するためのフローチャートである。
【図８】アウトプットキュー処理と非同期プラグインプログラムの作動を説明するためのフローチャートである。
【図９】上記実施形態の変形例に係るプラグインプログラムの論理結線図である。
【図１０】オフライン処理におけるシーケンサモジュールと機能拡張モジュールの結線概念図である。
【図１１】インターフェース処理と編集プラグインプログラムの作動を説明するためのフローチャートである。
【図１２】編集される演奏データの流れを表す概念図である。
【符号の説明】
ＰＣ１，ＰＣ２…パーソナルコンピュータ装置、ＳＱ…シーケンサ、ＥＭＩ…電子楽器、１１…本体部、１２…キーボード、１３…マウス、１４…表示器、１５…ドライブユニット、２１…ミディーインターフェース回路、２２…操作子スイッチ回路、２３…表示制御回路、２４…音源回路２４、３１…ＣＰＵ、３２…ＲＯＭ、３３…ＲＡＭ３３、５０…演奏データ記憶領域、１００ａ，２００ａ，３００ａ…一時記憶領域。
【図１】
0003614061.tif 000002
【図２】
0003614061.tif 000003
【図３】
0003614061.tif 000004
【図４】
0003614061.tif 000005
【図５】
0003614061.tif 000006
【図６】
0003614061.tif 000007
【図７】
0003614061.tif 000008
【図８】
0003614061.tif 000009
【図９】
0003614061.tif 000010
【図１０】
0003614061.tif 000011
【図１１】
0003614061.tif 000012
【図１２】
0003614061.tif 000013