(57)【特許請求の範囲】
【請求項１】
複数種の伴奏エレメントからなる伴奏データを記憶する記憶手段を有するサーバーにて、当該伴奏データに基づいた伴奏音データを生成して端末に送信する伴奏試聴システムであって、
前記端末は、
外部よりコードデータを取得するコード取得手段と、
外部よりエレメント種を指定するエレメント種データを取得するエレメント種データ取得手段と、
前記サーバーに対して前記コード取得手段によりコードデータが取得される毎に当該コードデータを送信するとともに、前記エレメント種データ取得手段によりエレメント種データが取得される毎に当該エレメント種データを送信するコード／エレメントデータ送信手段と、
前記サーバーから送信される伴奏データを受信する伴奏データ受信手段と、
この伴奏データ受信手段より受信された伴奏データを接続された楽器に転送する転送手段と、からなり、
前記サーバーは、
前記端末からコードデータ及びエレメント種データを受信するコード／エレメントデータ受信手段と、
このコード／エレメント受信手段により受信されたエレメント種データにて指定された伴奏エレメントを前記記憶手段から読み出すとともに、当該読み出された伴奏エレメントを受信されたコードデータにより変換して伴奏音データを生成する伴奏音データ生成手段と、
この伴奏音データ生成手段により生成された伴奏音データを前記端末に送信する伴奏音データ送信手段と、を更に有する、
ことを特徴とする伴奏試聴システム。
【請求項２】
複数種の伴奏エレメント、当該エレメントの指定順序を表わすエレメント種進行データ及びコードの指定順序を表わすコード進行データからなる伴奏データを記憶する記憶手段を有するサーバーにて、当該伴奏データに基づいた伴奏音データを生成して端末に送信する伴奏試聴システムであって、
前記端末は、
前記サーバーに対して第１、第２及び第３の試聴形態のいずれかを指定する試聴形態選択信号を送信する試聴形態選択信号送信手段と、
外部より単一のコード及びエレメント種を取得するコード／エレメント取得手段と、
外部よりコードデータを取得するコード取得手段と、
外部よりエレメント種を指定するエレメント種データを取得するエレメント種データ取得手段と、
前記第１の試聴形態が選択されている場合に、前記サーバーに対して試聴開始信号を送信する第１の試聴開始信号送信手段と、
前記第２の試聴形態が選択されている場合に、前記サーバーに対して取得された単一のコード及びエレメント種を送信し、その後試聴開始信号を送信する第２の試聴開始信号送信手段と、
前記第３の試聴形態が選択されている場合に、前記サーバーに対して試聴開始信号を送信し、その後、前記サーバーに対して前記コード取得手段によりコードデータが取得される毎に当該コードデータを送信するとともに、前記エレメント種データ取得手段によりエレメント種データが取得される毎に当該エレメント種データを送信する第３の試聴開始信号送信手段と、
前記サーバーから送信される伴奏音データを受信する伴奏音データ受信手段と、
この伴奏音データ受信手段より受信された伴奏音データを接続された楽器に転送する転送手段と、からなり、
前記サーバーは、
前記端末から送信された試聴形態選択信号を受信する試聴形態選択信号受信手段と、
前記端末から送信された第１、第２及び第３の試聴開始信号のいずれかを受信する試聴開始信号受信手段と、
この試聴形態選択信号受信手段により第１の試聴形態選択信号が受信されかつ試聴開始信号受信手段により第１の試聴開始信号が受信された場合は、前記記憶手段に記憶されたエレメント種進行データに対応する順序で伴奏エレメントを読み出すとともに、当該読み出された伴奏エレメントを前記記憶手段に記憶されたコード進行データにより変換して伴奏音データを生成する第１の伴奏データ音生成手段と、
前記試聴形態選択信号受信手段により第２の試聴形態選択信号が受信されかつ試聴開始信号受信手段により第２の試聴開始信号が受信された場合は、受信されたエレメント種に対応する伴奏エレメントを前記記憶手段から読み出すとともに、当該読み出された伴奏エレメントを受信されたコードにより変換して伴奏音データを生成する第２の伴奏音データ生成手段と
前記試聴形態選択信号受信手段により第３の試聴形態選択信号が受信されかつ試聴開始信号受信手段により第３の試聴開始信号が受信された場合は、受信されたエレメント種データにて指定された伴奏エレメントを前記記憶手段から読み出すとともに、当該読み出された伴奏エレメントを受信されたコードデータにより変換して伴奏音データを生成する第３の伴奏音データ生成手段と、
この第１、第２及び第３の伴奏データ生成手段いずれかにより生成された伴奏データを前記端末に送信する伴奏データ送信手段と、を更に有する、
ことを特徴とする伴奏試聴システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して、伴奏の試聴を希望している試聴希望者に、それを再生するための試聴用の伴奏データを提供するための技術に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
例えば電子楽器では、その多くに、旋律以外の演奏要素からなる伴奏を自動再生できる機能（以降、伴奏再生機能と呼ぶ）が搭載されている。それにより、電子楽器のユーザーは、その機能を利用することで１人でもアンサンブル演奏のような楽しみ方ができるようになっている。
【０００３】
電子楽器には、通常、その伴奏を自動再生するための伴奏データが複数、用意されている。最近では、その伴奏データの販売が行われるようになってきている。それに合わせ、電子楽器には、購入した伴奏データを読み込んで再生する機能が搭載されるようになってきている。
【０００４】
その伴奏データは、「８Ｂｅａｔ」や「Ｒｏｃｋ」或いは「Ｂｏｓｓａ  Ｎｏｖａ」などといった音楽ジャンルに合わせて作成されるのが普通である。このため、その伴奏名として音楽ジャンル名を流用することが多い。
各音楽ジャンルの音楽的な範囲には比較的に大きな幅があり、同じジャンルに属する曲の内容は様々である。このことから、音楽ジャンルに対して複数の伴奏データを用意することも多い。複数の伴奏データを用意した場合には、例えば「８Ｂｅａｔ１」「８Ｂｅａｔ２」「８Ｂｅａｔ３」といったようにして、それらの伴奏名は形式的に異ならせているのが普通である。
【０００５】
音楽ジャンルの音楽的な範囲に大きな幅があるということは、伴奏データによる伴奏内容はその伴奏名（音楽ジャンル）からある程度、予想することができたとしても、正確には知ることができないということを意味する。このため、販売の対象となる伴奏データは、購入希望者がその内容を確認したうえで購入できるようにすることが望ましいと考えられる。即ち伴奏データの試聴を希望する試聴希望者が試聴できるようにすることが望ましいと考えられる。
【０００６】
これまで、販売の対象となる伴奏データは、フレキシブルディスク、或いはＲＯＭカードなどの記録媒体に記録して販売（提供）するようになっていた。しかし、近年では、情報通信インフラストラクチャが充実してきていることから、今後は伴奏データの販売にネットワークが幅広く利用されると考えられる。そのネットワークを利用して伴奏データを販売（提供）するようにしたとしても、上述したような理由から、試聴希望者が試聴できるようにすることが重要であると考えられる。
【０００７】
本発明の課題は、ネットワークを介して、試聴を希望している試聴希望者に伴奏試聴用の伴奏データを提供できる伴奏データ提供システムを提供することにある。
【０００８】
【課題を解決するための手段】
本発明の伴奏試聴システムは、複数種の伴奏エレメントからなる伴奏データを記憶する記憶手段を有するサーバーにて、当該伴奏データに基づいた伴奏音データを生成して端末に送信する伴奏試聴システムであって、端末は、外部よりコードデータを取得するコード取得手段と、外部よりエレメント種を指定するエレメント種データを取得するエレメント種データ取得手段と、サーバーに対してコード取得手段によりコードデータが取得される毎に当該コードデータを送信するとともに、エレメント種データ取得手段によりエレメント種データが取得される毎に当該エレメント種データを送信するコード／エレメントデータ送信手段と、サーバーから送信される伴奏データを受信する伴奏データ受信手段と、伴奏データ受信手段より受信された伴奏データを接続された楽器に転送する転送手段と、からなり、サーバーは、端末からコードデータ及びエレメント種データを受信するコード／エレメントデータ受信手段と、コード／エレメント受信手段により受信されたエレメント種データにて指定された伴奏エレメントを記憶手段から読み出すとともに、当該読み出された伴奏エレメントを受信されたコードデータにより変換して伴奏音データを生成する伴奏音データ生成手段と、伴奏音データ生成手段により生成された伴奏音データを端末に送信する伴奏音データ送信手段と、を更に有する。
【０００９】
さらに本発明の伴奏試聴システムは、複数種の伴奏エレメント、当該エレメントの指定順序を表わすエレメント種進行データ及びコードの指定順序を表わすコード進行データからなる伴奏データを記憶する記憶手段を有するサーバーにて、当該伴奏データに基づいた伴奏音データを生成して端末に送信する伴奏試聴システムであって、端末は、サーバーに対して第１、第２及び第３の試聴形態のいずれかを指定する試聴形態選択信号を送信する試聴形態選択信号送信手段と、外部より単一のコード及びエレメント種を取得するコード／エレメント取得手段と、外部よりコードデータを取得するコード取得手段と、外部よりエレメント種を指定するエレメント種データを取得するエレメント種データ取得手段と、第１の試聴形態が選択されている場合に、サーバーに対して試聴開始信号を送信する第１の試聴開始信号送信手段と、第２の試聴形態が選択されている場合に、サーバーに対して取得された単一のコード及びエレメント種を送信し、その後試聴開始信号を送信する第２の試聴開始信号送信手段と、第３の試聴形態が選択されている場合に、サーバーに対して試聴開始信号を送信し、その後、前記サーバーに対して前記コード取得手段によりコードデータが取得される毎に当該コードデータを送信するとともに、エレメント種データ取得手段によりエレメント種データが取得される毎に当該エレメント種データを送信する第３の試聴開始信号送信手段と、サーバーから送信される伴奏音データを受信する伴奏音データ受信手段と、伴奏音データ受信手段より受信された伴奏音データを接続された楽器に転送する転送手段と、からなり、サーバーは、端末から送信された試聴形態選択信号を受信する試聴形態選択信号受信手段と、端末から送信された第１、第２及び第３の試聴開始信号のいずれかを受信する試聴開始信号受信手段と、試聴形態選択信号受信手段により第１の試聴形態選択信号が受信されかつ試聴開始信号受信手段により第１の試聴開始信号が受信された場合は、記憶手段に記憶されたエレメント種進行データに対応する順序で伴奏エレメントを読み出すとともに、当該読み出された伴奏エレメントを記憶手段に記憶されたコード進行データにより変換して伴奏音データを生成する第１の伴奏データ音生成手段と、試聴形態選択信号受信手段により第２の試聴形態選択信号が受信されかつ試聴開始信号受信手段により第２の試聴開始信号が受信された場合は、受信されたエレメント種に対応する伴奏エレメントを前記記憶手段から読み出すとともに、当該読み出された伴奏エレメントを受信されたコードにより変換して伴奏音データを生成する第２の伴奏音データ生成手段と、試聴形態選択信号受信手段により第３の試聴形態選択信号が受信されかつ試聴開始信号受信手段により第３の試聴開始信号が受信された場合は、受信されたエレメント種データにて指定された伴奏エレメントを記憶手段から読み出すとともに、当該読み出された伴奏エレメントを受信されたコードデータにより変換して伴奏音データを生成する第３の伴奏音データ生成手段と、第１、第２及び第３の伴奏データ生成手段いずれかにより生成された伴奏データを端末に送信する伴奏データ送信手段と、を更に有する。
【００１２】
本発明では、試聴希望者からネットワークを介して、伴奏に対する試聴を要求するための試聴要求を受け付け、その試聴要求で試聴を要求された伴奏を再生するための試聴用の伴奏データを、ネットワークを介して送信することで試聴希望者に提供し、その提供した伴奏データを再生させることで試聴希望者に伴奏を試聴させる。その試聴によって、試聴希望者は伴奏の内容を確認することが可能となる。それにより、試聴希望者は自身が所望する伴奏データをより容易、且つ確実に取得（例えば購入）できることとなる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施の形態による伴奏データ提供システムを用いて構築されたネットワークシステムの構成を示す図である。
【００１４】
そのネットワークシステムは、図１に示すように、本実施の形態による伴奏データ提供システム（以降、提供システムと略記）１０１をネットワーク１０２と接続することにより、ネットワーク１０２を介してその提供システム１０１を複数の端末システム１０３と接続できるように構築されている。それにより、提供システム１０１は、ネットワーク１０２を介して接続された端末システム１０３のユーザーに対し、伴奏を再生するための伴奏データを提供するものとして実現されている。その伴奏とは、ここでは例えば鍵盤では右手による演奏の対象となる旋律（メロディ）以外の１つ以上の演奏要素（リズムや左手によるコード演奏、など）で構成される演奏と定義している。
【００１５】
上記ネットワーク１０２は、例えばインターネットや公衆回線などをまとめて表したものである。端末システム１０３は、例えば公衆回線、及びインターネットとの接続サービスを行っているＩＳＰ（Internet Service Provider ）を介してそのインターネットと接続される。なお、ネットワーク１０２は、それら以外のもの、或いは別の組み合わせのものであっても良い。
【００１６】
その端末システム１０３は、図１に示すように、例えばパーソナル・コンピュータ、ＰＤＡ（Personal Digital Assistants ）、或いは携帯電話機である端末装置１２１と、それに接続された電子楽器１２２と、を用いて構築されている。端末装置１２１は、ネットワーク１０２を介して提供システム１０１との間でデータのやりとりを行い、電子楽器１２２は、端末装置１２１から送信された伴奏データを受信してその再生を行う。
【００１７】
なお、端末システム１０３は、端末装置１２１に、楽音を放音するための音源と、伴奏データなどを再生して音源に楽音を放音させる機能と、を搭載して実現させても良い。或いはネットワーク１０２と交信する機能を電子楽器１２２などの楽音発生装置に搭載して実現させても良い。当然のことながら、３つ以上の装置を用いて実現させても良い。これらのことから明らかなように、端末システム１０３は様々な形で実現させることができる。提供システム１０１によるサービスを受けるために端末システム１０３（端末装置１２１など）に実行させるソフトウェア（プログラム）については、本実施の形態では専用のソフトウェアとしているが、既存の一般的なソフトウェア（ブラウザ）を使用できるようにしても良い。
【００１８】
上記提供システム１０１には、例えば専用線などのネットワーク１０４を介して金融機関１０５が接続されている。その金融機関１０５とは、例えばキャッシュカードを用いて行われたショッピングの情報を対応する金融機関に中継したり、或いは金融機関が提供するサービスを代行するといったサービスを提供するセンタである。提供システム１０１は、そのような金融期間１０５を介して、有償の伴奏データを購入（ダウンロード）した端末システム１０３のユーザーとの間の決済を行う。
【００１９】
その提供システム１０１は、ネットワーク１０２を介して接続される端末システム１０３のユーザーに対して各種サービスを提供するサーバー１１１と、そのユーザーに提供可能な伴奏データを管理するデータベース（ＤＢ）サーバー１１２と、を用いて構築されている。端末システム１０３への伴奏データの送信や金融機関１０５との間のデータのやりとりなどはサーバー１１１が行う。なお、提供システム１０１は、１台のサーバーで構築しても良く、３台以上のサーバーで構築するようにしても良い。
【００２０】
図２は、上記ＤＢサーバー１１２が管理するデータの種類、及びその内容を説明する図である。サーバー１１２が内蔵のハードディスク、或いはそれと接続された外部記憶装置にＤＢ化して保存・管理しているデータのなかから、サービスとして提供する伴奏データ、及びそれに特に係わるデータを抜粋して表したものである。
【００２１】
そのＤＢサーバー１１２は、図２に示すように、販売の対象となる多数の伴奏データ、楽音の音高の組み合わせからコード（和音）を判定するためのコード判定テーブル、及び鳴らすコードの構成音の音高の組み合わせを指定のコードに応じて変換するためのコード変換テーブルを管理・保存している。ＤＢには、例えばそれらのデータ毎にレコードを用意し、各レコードには対応するデータ（伴奏データ、或いはテーブル）の保存場所（ファイル名、など）を保存することで、アクセスできるようにしている。各レコードには、各伴奏データに識別用に割り当てられた番号（図中、「（１）」〜「（Ｎ）」と表記）なども合わせて保存している。
【００２２】
伴奏は、通常、複数の構成要素（エレメント）から構成される。このことに合わせ、各伴奏データは、エレメント別に、その再生用の伴奏データ（以降、便宜的にエレメント伴奏データと呼ぶ）を複数、備えた構成としている。そのエレメントとしては、図２に示すように、序奏として再生されるイントロダクション（以降、イントロと略記）、繰り返し再生されるノーマル、ノーマルの演奏内容と比較して装飾性が高く、それに代わって一時的に再生されるフィルイン、及び伴奏（曲）を終わらせる際に再生されるエンディングを想定している。各エレメント伴奏データは、基本的にリズムを再生するためのものとして、各エレメント（の伴奏データ）を再生していく流れ（エレメント進行）や、その流れに沿って鳴らしていくべきコードの流れ（コード進行）を表すコード進行／エレメント進行データを別に用意している。
【００２３】
各エレメント伴奏データは、図中、「ＴＩＭＥ」で表す時間データ、及びその時間データで指定されるタイミングで処理すべきイベントの内容を示すＭＩＤＩ（イベント）データ（図中、「ＭＩＤＩ」と表記）からなるデータ対が、処理順序に従って並べた形で構成されている。コード進行／エレメント進行データは、処理順序に従って並べられた再生すべきエレメントの種類（エレメント種）を示すデータ（エレメント種データ）、或いはそのエレメントで鳴らすべきコードを示すイベントデータ（以降、コードデータと呼ぶ）に、そのデータを処理すべきタイミングを指定する時間データを付加する形で構成されている。その時間データは、後述する最小単位時間を単位として表した数値である。コードデータは、例えばコードの種類（コード種）を示すデータ、及び根音（ルート）を示すデータから構成される。
【００２４】
上記コード判定テーブルは、例えば楽音の音高の組み合わせ別に、その組み合わせで表されるコードの種類を定義したテーブルである。コード変換テーブルは、例えばコード種、及びその構成音の音高の組み合わせを示す指定内容別に、変換対象とするコードの構成音の音高の組み合わせを指定内容に応じて変換した後のその組み合わせを変換対象別に定義したテーブルである。
【００２５】
上述のように構成された伴奏データは、購入を希望したユーザーの使用する端末システム１０３には、それを保存できるように、ファイルとして送信する。それの試聴を希望したユーザーの使用する端末システム１０３には、それの保存が行えないように、それを構成するイベントデータ（ＭＩＤＩデータ、或いはコードデータ）を時間データに従って送信する。そのように送信形態を変更することにより、１つの伴奏データを販売、試聴の両方に用いている。以降は、図３〜図２２に示す各種フローチャート、及び図２３〜図３０に示す各種説明図を参照して、提供システム１０１が提供するサービスの内容、及びそのサービスの提供を実現させる提供システム１０１や端末システム１０３の動作について詳細に説明する。
【００２６】
図３〜図１３は、端末システム１０３を提供システム１０１と接続させた場合に、それらが実行する処理の流れを示すフローチャートである。端末システム１０３と提供システム１０１間の通信に係わる処理に着目して、端末システム１０３を構成する端末装置１２１、及び提供システム１０１を構成するサーバー１１１が実行する処理を抜粋してその流れの例を示したものである。始めに、図３〜図１３を参照して、端末システム１０３を提供システム１０１と接続させた場合に、端末装置１２１、サーバー１１１がそれぞれ実行する処理の内容、及びその流れについて詳細に説明する。
【００２７】
なお、図３〜図１３に示すフローチャートは、例えばそれぞれ、端末装置１２１に搭載されたＣＰＵ、及びサーバー１１１に搭載されたＣＰＵが、それに搭載のハードディスク装置のハードディスクに格納されたプログラムを実行することで実現される。端末装置１２１とサーバー１１１の接続（リンクの確立）、即ち通信の開設は、例えばダイヤルアップ接続により端末装置１２１をＩＳＰと接続させた後、サーバー１１１のＵＲＬを指定してそれとの接続を指示することで行われる。
【００２８】
本実施の形態では、提供システム１０１は会員登録をした人を対象にサービスを提供するようになっている。このことから、端末装置１２１との通信が開設すると、サーバー１１１は、特には図示していないが、その端末装置１２１に、会員にそのＩＤ、そのパスワードの入力を求めるための図２３に示すような認証用画面を送信する。その認証用画面を受信した端末装置１２１は、それを搭載、或いは接続された表示装置上に表示させ、ユーザーの操作に応じてＩＤ、パスワードを入力する。それらの入力後、その画面上に配置された「送信」アイコンをユーザーがクリックすると、ユーザーが入力のＩＤ、パスワードをサーバー１１１に送信する（以上、ステップＳＴ１）。
【００２９】
上記認証用画面には、特に図示していないが、会員でない人に会員登録を行うか否か問い合わせるためのアイコン（例えば「新規登録」アイコン）が配置されている。その「新規登録」アイコンをユーザーがクリックすると、その旨がサーバー１１１に通知されて、そのサーバー１１１から登録のために個人データの入力を求める図２４に示すような登録画面が送信される。
【００３０】
その画面上には、図２４に示すように、氏名、住所、決済用であるクレジットカード番号、ＩＤ、パスワードを入力するための複数のボックスや、各ボックスに入力された個人データの送信を指示するための「送信」アイコンが配置されている。それにより、本実施の形態では、ＩＤはユーザーに決めさせるようにしている。その画面上で入力された個人データは、「送信」アイコンをユーザーがクリックすることで、端末装置１２１からサーバー１１１に送信される。
【００３１】
サーバー１１１は、端末装置１２１から個人データを受信すると、例えばそのなかからＩＤを取り出してＤＢサーバー１１２に送信し、そのサーバー１１２に、そのＩＤをキーにして、特には図示しない会員ＤＢの検索を行わせる。それにより、そのＩＤを格納したレコードが会員ＤＢに既に存在するか否か確認し、そのＩＤを格納したレコードが既に存在していることを確認すると、その旨を通知するための画面を端末装置１２１に送信し、そのユーザーに登録をやり直しさせる。反対に、そのＩＤを格納したレコードが存在していないことを確認すると、端末装置１２１から受信した個人データをＤＢサーバー１１２に送信して、そのサーバー１１２に、会員ＤＢにその個人データを格納したレコードを追加させる。端末装置１２１には、会員登録が完了した旨を通知するための画面を送信して、そのことをユーザーに通知する。
【００３２】
図３の説明に戻る。
端末装置１２１から送信されたＩＤ、パスワードを受信したサーバー１１１は、それらの組み合わせが登録した会員のものか否か確認することで認証を行う（ステップＳＳ１）。その認証を行った結果、それらが登録した会員のものであることを確認すると、図２５に示すようなメニュー（ＭＥＮＵ）画面を端末装置１２１に送信する（ステップＳＳ２）。その後は、端末装置１２１のユーザーがメニュー画面上でクリックしたアイコンの種類に応じた処理を実行する。他方の端末装置１２１は、サーバー１１１から送信されたメニュー画面を受信すると、それを表示装置上に表示させる。なお、上記認証は、例えば端末装置１２１から受信したＩＤ、パスワードをＤＢサーバー１１２に送り、それらの組み合わせが会員ＤＢを構成するレコードに格納されているか否か確認させ、その結果を受け取ることで行われる。
【００３３】
上記メニュー画面には、図２５に示すように、伴奏データを購入するサービスを要求するための「伴奏データ購入」アイコン、それ以外のサービスを要求するための「その他」アイコン、及びサービスの終了を要求するための「終了」アイコンが配置されている。ユーザーは、所望するサービスの内容に応じて決まるアイコンをクリックすることで、そのサービスの提供を要求する。
【００３４】
そのメニュー画面を受信した後には、ユーザーが「伴奏データ購入」アイコンをクリックしたか否か判定する（ステップＳＴ３）。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなって図４のステップＳＴ７に移行する。そうでない場合には、判定はＮＯとなってステップＳＴ４に移行する。
【００３５】
ステップＳＴ４では、ユーザーが「その他」アイコンをクリックしたか否か判定する。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、そのアイコンに応じた処理をステップＳＴ７で実行し、その後はユーザーの操作に対応するためのその他の処理を行う。そうでない場合には、判定はＮＯとなってステップＳＴ５に移行する。
【００３６】
ステップＳＴ５では、ユーザーが「終了」アイコンをクリックしたか否か判定する。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、その後はユーザーの操作に対応するためのその他の処理を行う。サーバー１１１との間に開設された通信は切断させる。一方、そうでない場合には、判定はＮＯとなって上記ステップＳＴ３に戻る。それにより、メニュー画面を表示させた後は、ユーザーが「伴奏データ購入」「その他」及び「終了」の各アイコンのなかの何れかをクリックするまでの間、ステップＳＴ３〜５で形成される処理ループを繰り返し実行する。
【００３７】
上記ステップＳＴ３の判定がＹＥＳとなって移行する図４のステップＳＴ７では、伴奏データを購入できるサービスの提供を要求するための信号である伴奏データ購入要求信号をサーバー１１１に送信する。
そのステップＳＴ７の処理を実行、言い換えれば、ユーザーが「伴奏データ購入」アイコンをクリックした場合、サーバー１１１は、そのユーザーに伴奏データの購入に係わるサービスを提供するために図３のステップＳＳ２から図４のステップＳＳ３に移行する。そのアイコンをユーザーがクリックしなかった場合には、サーバー１１１はそれ以外のサービスをユーザーに提供するための他の処理をステップＳＳ２の次に実行する。
【００３８】
上記伴奏データ購入要求信号を受信したサーバー１１１は、その信号を送信してきた端末装置１２１に対し、図２６に示すような伴奏データ選択画面を送信する（ステップＳＳ３）。
上記伴奏データ選択画面には、図２６に示すように、販売の対象となる伴奏データを示す伴奏の種類（以降、伴奏データ種、或いは伴奏名と呼ぶ）のリストが配置され、アイコンとして、伴奏データの試聴を要求するための「試聴」アイコン、その購入を要求するための「購入」アイコン、及び１つ前の画面（ここでは図２５に示すメニュー画面）に戻るのを指示するための「戻る」アイコンが配置されている。伴奏データの試聴、或いは購入は、リストのなかで所望の伴奏データ種を選択した後、「試聴」アイコン、或いは「購入」アイコンをクリックすることで行うようにようになっている。
【００３９】
サーバー１１１から送信された伴奏データ選択画面を受信した端末装置１２１は、それを表示装置上に表示させる（ステップＳＴ８）。次に、ユーザーが行った操作に応じて、リスト中の伴奏データ種を選択し、背景の表示色を他と変えるなどしてそれを強調表示させる（ステップＳＴ９）。その後は、「試聴」アイコンをユーザーがクリックしたか否か判定する（ステップＳＴ１０）。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、図５のステップＳＴ１５に移行する。そうでない場合には、判定はＮＯとなってステップＳＴ１１に移行する。
【００４０】
ステップＳＴ１１では、「購入」アイコンをユーザーがクリックしたか否か判定する。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、図５のステップＳＴ１５に移行する。そうでない場合には、判定はＮＯとなってステップＳＴ１２に移行する。
【００４１】
ステップＳＴ１２では、「戻る」アイコンをユーザーがクリックしたか否か判定する。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、次にステップＳＴ１３で１つ前の画面であるメニュー画面の送信を要求するための戻り要求信号をサーバー１１１に送信した後、ステップＳＴ１４に移行する。そうでない場合には、判定はＮＯとなって上記ステップＳＴ９に戻る。それにより、ユーザーが何らかのアイコンをクリックするまでの間、ステップＳＴ９〜ＳＴ１２で形成される処理ループを繰り返し実行する。
【００４２】
サーバー１１１は、上記戻り要求信号を受信すると、それを送信した端末装置１２１にメニュー画面を再度、送信する（ステップＳＳ４）。その後は、図３のステップＳＳ２の処理を実行した後の状態に移行する。それにより、端末装置１２１のユーザーがそのメニュー画面上でアイコンをクリックするのに備える。
【００４３】
その端末装置１２１は、サーバー１１１から再度、送信されたメニュー画面を受信すると、それを表示装置上に表示させる（ステップＳＴ１４）。その後は、図３のステップＳＴ３に戻り、それ以降のステップの処理を同様に実行する。
上記ステップＳＴ１０の判定がＹＥＳ、即ち伴奏データ選択画面上の「伴奏データ購入」アイコンをユーザーがクリックすることで移行する図５のステップＳＴ１５では、現在、選択されている伴奏データ種（伴奏名）の伴奏データの試聴を要求するための伴奏データ種試聴要求信号をサーバー１１１に送信する。
【００４４】
その信号を受信したサーバー１１１は、その信号中で示された伴奏データ種で指定される伴奏データをＤＢサーバー１１２から取得し（ステップＳＳ５）、図２７に示すような試聴選択画面を、その信号を送信してきた端末装置１２１に送信する（ステップＳＳ６）。
【００４５】
その試聴選択画面には、図２７に示すように、「同一コード／エレメント」「プリセットコード／エレメント」「ユーザー指定コード／エレメント」及び「戻る」の各アイコンが配置されている。「同一コード／エレメント」は、指定するコードで指定するエレメントのコード進行のみの再生を指示するためのものであり、「プリセットコード／エレメント」アイコンは、プリセットされたコード、即ちコード進行／エレメント進行データ（図２参照）に従った各エレメント伴奏データの再生を指示するためのものである。「ユーザー指定コード／エレメント」アイコンは、コード、或いはエレメントを随時、指定しつつ、指定したエレメントのコード進行の再生を指示するためのものである。ユーザーは、試聴選択画面上に配置されたアイコンのうちの一つをクリックすることにより、所望の再生形態の選択を行う。
【００４６】
その試聴選択画面を受信した端末装置１２１は、それを表示装置上に表示させる（ステップＳＴ１６）。その後は、「同一コード／エレメント」「プリセットコード／エレメント」「ユーザー指定コード／エレメント」及び「戻る」の順序でそのアイコンがクリックされたか否か判定し、その判定結果に応じて処理を移行させる（ステップＳＴ１７〜ＳＴ２０）。それらのアイコンの何れかをユーザーがクリックするまでの間、ステップＳＴ１７〜ＳＴ２０で形成される処理ループを繰り返し実行する。
【００４７】
ユーザーが「戻る」アイコンをクリックした場合、上記ステップＳＴ２０の判定がＹＥＳとなってステップＳＴ２１に移行する。そのステップＳＴ２１では、試聴選択画面の１つ前の画面である伴奏データ選択画面（図２６参照）の送信を要求するための戻り要求信号をサーバー１１１に送信する。
【００４８】
サーバー１１１は、その戻り要求信号を受信すると、それを送信してきた端末装置１２１に伴奏データ選択画面を送信する（ステップＳＳ７）。その後は、図４のステップＳＳ３の処理を実行した後の状態に移行する。それにより、端末装置１２１のユーザーが伴奏データ選択画面上のアイコンをクリックすることに備える。
【００４９】
端末装置１２１は、サーバー１１１から伴奏データ選択画面を受信するのを待って、それを表示装置上に表示させる（ステップＳＴ２２）。その後は、図４のステップＳＴ９に戻り、端末装置１２１のユーザーが伴奏データ選択画面上で行う操作に備える。
【００５０】
図２７に示す試聴選択画面上で「同一コード／エレメント」アイコンをユーザーがクリックした場合、上記ステップＳＴ１７での判定がＹＥＳとなる。その場合、端末装置１２１は、図２８に示すようなコード／エレメント入力画面を要求する信号をサーバー１１１に送信する（図６のステップＳＴ２３）。それにより、サーバー１１１は、端末装置１２１にその入力画面を送信する（図６のステップＳＳ８）。
【００５１】
上記コード／エレメント入力画面には、図２８に示すように、ボックスとして、コード入力用のボックス、「イントロ」「ノーマル」「フィルイン」或いは「エンディング」が表示された４つのボックスが配置され、アイコンとして、「送信」及び「戻る」の各アイコンが配置されている。コード、エレメントの指定は、コード入力用のボックスにコードを入力し、「イントロ」「ノーマル」「フィルイン」或いは「エンディング」が表示された４つのボックスのうちの何れか一つを選択状態にした後、「送信」アイコンをクリックすることで行うようになっている。
【００５２】
コードは、そのボックス内にカーソルを表示させた状態で、コード種、その根音（ルート）の音高を示すシンボルをキーボードから入力する。コード／エレメント入力画面を表示させている間、端末装置１２１は、電子楽器１２２から受信するＭＩＤＩデータを監視し、所定の時間内に受信した複数のＭＩＤＩデータがそれぞれ発音を指示する楽音の音高の組み合わせが何らかのコードの構成音のそれと一致するか否か確認するコード判定を行う。そのコード判定の結果、それらＭＩＤＩデータがそれぞれ発音を指示する楽音の音高の組み合わせが何らかのコードの構成音のそれと一致するのを確認すると、そのコード種、その根音の音高を示すシンボルをボックス内に表示させる。それにより、コード入力用ボックスへのデータ入力は電子楽器１２２の鍵盤を操作しても行えるようにしている。なお、コード判定は、例えば図２に示すようなコード判定テーブルを専用のプログラムと共に端末装置１２１にインストールさせておくことで行わせるようにしているが、そのテーブルをコード／エレメント入力画面とともに送信し、随時、端末装置１２１にそれを参照させて行わせるようにしても良い。
【００５３】
端末装置１２１は、サーバー１１１からコード／エレメント入力画面を受信するのを待ってそれを表示装置上に表示させる（ステップＳＴ２４）。その画面を表示させた後は、マウスなどのポインティングデバイス、キーボードなどの端末装置１２１が備えた、或いはそれと接続された入力装置、或いは電子楽器１２２へのユーザーの操作に応じて、上述したようなコード種、ルートを指定するシンボルの入力、或いはエレメントの選択を行う（ステップＳＴ２５）。その後は、「送信」アイコンがクリック（オン）されたか否か判定する（ステップＳＴ２６）。そのアイコンをユーザーがクリックしていない場合、判定はＮＯとなり、次に「戻る」アイコンがクリックされたか否か判定する（ステップＳＴ２７）。そのアイコンをユーザーがクリックしていない場合、判定はＮＯとなり、上記ステップＳＴ２５に戻る。それにより、「送信」アイコン、或いは「戻る」アイコンをユーザーがクリックするまでの間、ステップＳＴ２５〜ＳＴ２７で形成される処理ループを繰り返し実行する。そのようにして、「送信」アイコン、或いは「戻る」アイコンをユーザーがクリックするまでの間、コード種やルートを示すシンボルの入力やエレメントの選択を可能とさせる。
【００５４】
ユーザーが「戻る」アイコンをクリックした場合、上記ステップＳＴ２７の判定がＹＥＳとなり、次にコード／エレメント入力画面の一つ前の画面である試聴選択画面（図２７参照）の送信を要求するための戻り要求信号をサーバー１１１に送信する（ステップＳＴ２８）。
【００５５】
その戻り要求信号を受信したサーバー１１１は、図２７に示す試聴選択画面を端末装置１２１に送信する（ステップＳＳ９）。それを送信すると、図５のステップＳＳ６の処理を実行した後の状態に移行する。
上記戻り要求信号を送信した端末装置１２１は、サーバー１１１から図２７に示す試聴選択画面を受信するのを待って、それを表示装置上に表示させる（ステップＳＴ２９）。その後は図５のステップＳＴ１７に戻り、それ以降の処理を同様に実行する。
【００５６】
図２８に示すコード／エレメント入力画面上の「送信」アイコンをユーザーがクリックした場合、上記ステップＳＴ２６の判定がＹＥＳとなる。その場合、端末装置１２１は、次にその画面上で入力されたシンボルや選択されたエレメントを示すデータをサーバー１１１に送信する（図７のステップＳＴ３０）。
【００５７】
一方のサーバー１１１は、そのデータを受信すると、それをストアする（ステップＳＳ１０）。ストアした後は、図２９に示すような試聴画面を端末装置１２１に送信する（ステップＳＳ１１）。
上記試聴画面には、図２９に示すように、「スタート」「ストップ」及び「戻る」の各アイコンが配置されている。「スタート」アイコンは、伴奏データの再生開始を指示するためのものであり、「ストップ」アイコンは、その再生の中止を指示するためのものである。「戻る」アイコンは、一つ前の画面に戻るのを指示するためのものである。
【００５８】
上記データを送信した端末装置１２１は、サーバー１１１から試聴画面を受信するのを待ってそれを表示装置上に表示させる（ステップＳＴ３１）。その後は、「戻る」アイコンがクリック（オン）されたか否か判定する（ステップＳＴ３２）。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、次に１つ前の画面に戻るのを要求するための戻り要求信号をサーバー１１１に送信する（ステップＳＴ３３）。このとき、伴奏データを再生（演奏）中であれば、変数ＳＴＦにそれが再生中でないことを示す値の０を代入するとともに、発音中の全楽音の消音を指示するためのオールノートオフ信号（ＭＩＤＩデータ）を電子楽器１２２に送信することも合わせて行う。
【００５９】
サーバー１１１は、その戻り要求信号を受信すると、コード／エレメント入力画面（図２８参照）を端末装置１２１に送信する（ステップＳＳ１２）。このとき、伴奏データを再生（演奏）中であれば、変数ＳＴＦにそれが再生中でないことを示す値の０を代入することも合わせて行う。その画面を送信すると、図６のステップＳＳ８を実行した後の状態に移行する。
【００６０】
サーバー１１１からコード／エレメント入力画面を受信した端末装置１２１は、それを表示装置上に表示させる（ステップＳＴ３４）。その後は、図６のステップＳＴ２５に戻り、それ以降の処理を同様に実行する。
図２９に示す試聴画面上の「戻る」アイコンをユーザーがクリックしなかった場合、上記ステップＳＴ３２の判定はＮＯとなり、次に「スタート」アイコンをユーザーがクリックしたか否か判定する（図８のステップＳＴ３５）。その「スタート」アイコンをユーザーがクリックしなかった場合、判定はＮＯとなってステップＳＴ３８に移行する。そうでない場合には、判定はＹＥＳとなり、伴奏データの再生開始を要求するためのスタート信号をサーバー１１１に送信し（ステップＳＴ３６）、更に変数ＳＴＦに伴奏データが再生中であることを示す値の１を代入した（ステップＳＴ３７）後に、そのステップＳＴ３８に移行する。
【００６１】
ステップＳＴ３８では、「ストップ」アイコンがクリックされたか否か判定する。そのアイコンをユーザーがクリックしなかった場合、判定はＮＯとなってステップＳＴ４２に移行する。そうでない場合には、判定はＹＥＳとなり、伴奏データの再生中止を要求するためのストップ信号をサーバー１１１に送信し（ステップＳＴ３９）、上記変数ＳＴＦに０を代入し（ステップＳＴ４０）、更に電子楽器１２２にオールノートオフコマンド（ＭＩＤＩデータ）を信号として送信した（ステップＳＴ４１）後、そのステップＳＴ４２に移行する。
【００６２】
ステップＳＴ４２では、変数ＳＴＦの値が１か否か判定する。伴奏データを再生中でなかった場合、その変数ＳＴＦには０が代入されていることから、判定はＮＯとなって図７のステップＳＴ３２に戻る。そうでない場合には、即ち伴奏データを再生中の場合には、変数ＳＴＦには１が代入されていることから、判定はＹＥＳとなってステップＳＴ４３に移行する。
【００６３】
端末装置１２１における試聴のための伴奏データの再生は、上述したように、サーバー１１１から随時、処理すべきタイミングで送信されるイベントデータ（ＭＩＤＩデータ、或いはコードデータ）を受信し、それを電子楽器１２２に送信することで行うようになっている。このことから、ステップＳＴ４３では、サーバー１１１からイベントデータ（ここではコードデータ）を新たに受信したか否か判定する。そのデータをサーバー１１１から新たに受信していない場合、判定はＮＯとなって図７のステップＳＴ３２に戻る。そうでない場合には、判定はＹＥＳとなり、次にサーバー１１１から新たに受信したコードデータに対応するＭＩＤＩデータ（コードの構成音毎に生成されるＭＩＤＩデータ）を複数、生成して電子楽器１２２に送信した（ステップＳＴ４４）後、ステップＳＴ４５に移行する。
【００６４】
上記サーバー１１１は、伴奏データ再生のために送信すべきＭＩＤＩデータが無くなると、その旨を示すコマンド（終了コマンド）を端末装置１２１に送信する。ステップＳＴ４５では、その終了コマンドをサーバー１１１から新たに受信したか否か判定する。そのコマンドをサーバー１１１から新たに受信した場合、判定はＹＥＳとなり、変数ＳＴＦに０を代入した（ステップＳＴ４６）後、図７のステップＳＴ３２に戻る。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップＳＴ３２に戻る。それにより、図２９に示す試聴画面を表示装置上に表示させている間は、図７のステップＳＴ３２、図８のステップＳＴ３５〜ＳＴ４６で形成される処理ループを繰り返し実行して、その画面上に配置された各種アイコンへのクリックや伴奏データの再生に対応するようになっている。
【００６５】
その試聴画面を端末装置１２１が表示させている間、サーバー１１１は、図８のステップＳＳ１３〜ＳＳ２０で形成される処理ループを繰り返し実行する。それにより、以下のようにして、その試聴画面上に配置された各種アイコンを端末装置１２１のユーザーがクリックすることに対応する。
【００６６】
先ず、ステップＳＳ１３では、端末装置１２１からスタート信号を受信したか否か判定する。端末装置１２１のユーザーが試聴画面上の「スタート」アイコンをクリックした場合、その端末装置１２１はスタート信号を送信することから、判定はＹＥＳとなってステップＳＳ１４に移行する。そうでない場合には、判定はＮＯとなってステップＳＳ１５に移行する。
【００６７】
ステップＳＳ１４では、スタート信号の受信により、試聴用の伴奏データの再生開始を準備するための演奏開始準備処理を実行する。このとき、そのスタート信号を送信させた端末装置１２１のユーザーは、図２８に示すコード／エレメント入力画面上でエレメント、及びコード（ここではコード種、及び根音を示すシンボル）を入力している。このため、ここでは、ユーザーが入力（選択）した伴奏のエレメントを入力（選択）したコードで再生するために、図１４に示す第１の演奏開始準備処理を実行する。その後に上記ステップＳＳ１５に移行する。
【００６８】
ここで、その第１の演奏開始準備処理について、図１４に示すそのフローチャートを参照して詳細に説明する。
図２８に示すコード／エレメント入力画面は、上述したように、端末装置１２１のユーザーが、図２６に示す伴奏データ選択画面上で試聴を希望する伴奏データ種（伴奏名）を選択し、更に図２７に示す試聴選択画面上の「同一コード／エレメント」アイコンをクリックした場合に表示される。このことから、図１４に示す準備処理では、ユーザーが指定したエレメントのコード進行を指定のコードで再生するための準備が行われる。
【００６９】
先ず、ステップ１４０１では、変数ＳＴＦに、伴奏データを再生（演奏）中であることを示す値の１を代入する。続くステップ１４０２では、図７のステップＳＳ１０でストアしたデータが指定するコード種を示す値を変数ＴＹＰＥに、そのデータが指定する根音（ルート）を示す値（例えばノートナンバー）を変数ＲＯＯＴにそれぞれ代入する。その後はステップ１４０３に移行する。
【００７０】
ステップ１４０３では、図２６に示す伴奏データ選択画面上でユーザーが選択した伴奏名（伴奏データ種）の伴奏データを構成するコード進行／エレメント進行データのなかで、図２８に示すコード／エレメント入力画面上でユーザーが選択したエレメントを示すエレメント種データの直後に存在する時間データの位置をスタートアドレスとして、そのアドレス値を変数ＡＤに代入する。次に移行するステップ１４０４では、その変数ＡＤの値で指定されるデータ（時間データ）を変数ＴＩＭＥに代入する。一連の処理はその後に終了する。
【００７１】
コード進行／エレメント進行データ（図２参照）を構成するエレメント種データは、エレメントの区切りを表している。このため、先頭でコードを鳴らすエレメントには、エレメント種データの直後に時間データではなく、コードデータが存在しているものもある。このことから、エレメント種データの直後に時間データが存在していない場合、上記ステップ１４０３では、エレメント種データを指定するアドレス値を変数ＡＤに代入し、それに続くステップ１４０４では、変数ＴＩＭＥに直ちに演奏を開始することを指示することになる値の０を代入するようにしている。そのようにして、ステップ１４０３、１４０４では、ユーザーが選択したエレメント種に応じた処理を行うようになっている。これは、後述する図２０に示すエレメント選択処理でも同様である。
【００７２】
図８の説明に戻る。
上述の準備処理を実行した後に移行するステップＳＳ１５では、端末装置１２１からストップ信号を受信したか否か判定する。端末装置１２１のユーザーが試聴画面上の「ストップ」アイコンをクリックした場合、その端末装置１２１はストップ信号を送信することから、判定はＹＥＳとなり、次にステップＳＳ１６で変数ＳＴＦに０を代入した後、ステップＳＳ１７に移行する。そうでない場合には、判定はＮＯとなって、他のステップの処理を実行することなくそのステップＳＳ１７に移行する。
【００７３】
ステップＳＳ１７では、上記ステップＳＳ１４の演奏開始準備処理を実行することで準備した伴奏データの演奏を実現させる演奏処理を実行する。ここでは、ユーザーが図２７に示す試聴選択画面上で「同一コード／エレメント」アイコンをクリックしていることから、その演奏処理として、図１５に示す第１の演奏処理を実行する。その実行後にステップＳＳ１８に移行する。
【００７４】
図１５に示す第１の演奏処理では、その実行時に、伴奏データを試聴させるために端末装置１２１に送信すべきイベントデータ（ＭＩＤＩデータ、或いはコードデータ）が存在していれば、それを主記憶装置、或いは補助記憶装置に確保した領域である出力バッファに一時的に格納するようにしている。これは、後述する図１７、及び図１８に示す第２の演奏処理や、図２１、及び図２２に示す第３の演奏処理でも同様である。
【００７５】
ステップＳＳ１８では、その出力バッファにイベントデータ（ＭＩＤＩデータ、或いはコードデータ）が存在するか否か判定する。直前にステップＳＳ１７として演奏処理を実行した際にイベントデータを出力バッファに格納していた場合、判定はＹＥＳとなり、次にステップＳＳ１９でそのイベントデータを端末装置１２１に送信し、更にステップＳＳ２０で出力バッファのクリアを行った後、上記ステップＳＳ１３、或いは図７のステップＳＳ１１の処理を実行した後の状態に戻る。そうでない場合には、判定はＮＯとなって、他のステップの処理を実行することなく、そのステップＳＳ１３に、或いは図７のステップＳＳ１１の処理を実行した後の状態に戻る。端末装置１２１から戻り要求信号を受信した場合には、上述したように、ステップＳＳ１１に続いてステップＳＳ１２の処理を実行する。
【００７６】
ここで、上記ステップＳＳ１７の演奏処理としてサーバー１１１が実行する第１の演奏処理について、図１５に示すそのフローチャートを参照して詳細に説明する。その第１の演奏処理は、上述したように、図２７に示す試聴選択画面上で「同一コード／エレメント」アイコンをユーザーがクリックしていた場合に実行される。その演奏処理を実行することで演奏するのは、図２８に示すコード／エレメント入力画面上でユーザーが入力したエレメントのコード進行である。
【００７７】
先ず、ステップ１５０１では、変数ＳＴＦの値が１か否か判定する。伴奏データを演奏中であった場合、それには１が代入されていることから、判定はＹＥＳとなってステップ１５０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７８】
ステップ１５０２では、伴奏データを構成するイベントデータ（ＭＩＤＩデータ、或いはコードデータ）の処理タイミングを管理するうえで単位とする最小単位時間が経過したか否か判定する。前回、経過したと判定してからその最小単位時間が経過した場合、判定はＹＥＳとなり、次にステップ１５０３で変数ＴＩＭＥの値をデクリメントした後、ステップ１５０４に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７９】
ステップ１５０４では、変数ＴＩＭＥの値が０か否か判定する。その変数ＴＩＭＥに代入の時間データが付加されたイベントデータ（ここではコードデータ）を処理すべきタイミングとなった場合、その変数ＴＩＭＥの値は０になることから、判定はＹＥＳとなってステップ１５０５に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００８０】
ステップ１５０５では、変数ＡＤの値をインクリメントする。続くステップ１５０６では、変数ＡＤの値が示すアドレスが、コード進行／エレメント進行データ中のユーザーが選択したエレメント部分の最終アドレス以内のアドレスか否か判定する。そのエレメント部分の演奏（再生）が完了していない場合、変数ＡＤの値はそのエレメント部分の最終アドレス以内のアドレスを示すことから、判定はＹＥＳとなってステップ１５０８に移行する。そうでない場合には、判定はＮＯとなり、次にステップ１５０７で終了コマンドを出力バッファにストアした後、一連の処理を終了する。
【００８１】
エレメントは、エレメント種データを処理することで切り換わる。エンディングに続くエレメントは存在しない。このことから、エレメント部分の最終アドレスは、再生しているのがエンディング以外のエレメントでは次のエレメント種データの位置が対応する。そのエレメントがエンディングであれば、コード進行／エレメント進行データで最後のデータの位置が対応する。それにより、上記ステップ１５０６の判定は、変数ＡＤの値で指定されるデータが無いか、或いはそのデータが次のエレメント種データであった場合にＮＯとなる。
【００８２】
ステップ１５０８では、変数ＡＤの値で指定されるデータの種類を判定する。そのデータがイベントデータ（ここではコードデータ）であった場合、その旨が判定され、ステップ１５０９に移行する。そのデータが時間データであった場合には、その旨が判定されてステップ１５１１に移行し、変数ＴＩＭＥにその時間データを代入した後、一連の処理を終了する。
【００８３】
ステップ１５０９では、変数ＴＹＰＥ、ＲＯＯＴに代入された値に従ってコード変換テーブルを参照することにより、そのコードデータが表すコード（コード種、及び根音）の変換を行う。続くステップ１５１０では、変換後のコードの発音を指示するコードデータを出力バッファにストアする。その後は上記ステップ１５０５に戻る。それにより、ステップ１５０５〜１５１０で形成される処理ループは、ステップ１５０８の判定がＹＥＳとなって次に処理すべきコードデータに付加された時間データを変数ＴＩＭＥに代入するまでの間、繰り返し実行される。
【００８４】
上述したようにして出力バッファにストアされたコードデータが上記ステップＳＳ２０で端末装置１２１に送信される。それにより、端末装置１２１は、ユーザーが選択した伴奏の選択したエレメントのコード進行を、選択（指定）したコードで再生することになる。このため、ユーザーは、エレメント毎に、そのコード進行（指定したコードで変換したものを含む）を試聴により確認することができる。
【００８５】
図２７に示す試聴選択画面上の「プリセット／エレメント」アイコンをユーザーがクリックした場合、図５のステップＳＴ１８の判定がＹＥＳとなる。その場合、端末装置１２１は、次に、図２９に示すような試聴画面の送信を要求するための信号をサーバー１１１に送信する（図９のステップＳＴ４７）。一方のサーバー１１１は、その信号を受信すると、その信号で要求された図２９に示すような試聴画面を端末装置１２１に送信する（ステップＳＳ２１）。それにより、端末装置１２１は、その信号を送信した後、サーバー１１１から試聴画面を受信するのを待って、それを表示装置上に表示させる（ステップＳＴ４８）。
【００８６】
上記試聴画面を表示させた後は、「戻る」アイコンがクリック（オン）されたか否か判定する（ステップＳＴ４９）。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、次に１つ前の画面に戻るのを要求するための戻り要求信号をサーバー１１１に送信する（ステップＳＴ５０）。このとき、伴奏データを再生（演奏）中であれば、変数ＳＴＦにそれが再生中でないことを示す値の０を代入するとともに、発音中の全楽音の消音を指示するためのオールノートオフ信号（ＭＩＤＩデータ）を電子楽器１２２に送信することも合わせて行う。
【００８７】
サーバー１１１は、その戻り要求信号を受信すると、試聴選択画面（図２７参照）を端末装置１２１に再度、送信する（ステップＳＳ２２）。このとき、伴奏データを再生（演奏）中であれば、変数ＳＴＦに０を代入することも合わせて行う。その画面を送信すると、図５のステップＳＳ６を実行した後の状態に移行する。
【００８８】
サーバー１１１から試聴選択画面を受信した端末装置１２１は、それを表示装置上に表示させる（ステップＳＴ５１）。その後は、図５のステップＳＴ１７に戻り、それ以降の処理を同様に実行する。
図２７に示す試聴選択画面上の「戻る」アイコンをユーザーがクリックしなかった場合、上記ステップＳＴ４９の判定はＮＯとなり、図８のステップＳＴ３５に移行して、そのステップＳＴ３５〜ＳＴ４６を上述したようにしてユーザーが行う操作に応じて実行する。その後に、そのステップＳＴ４９に戻る。
【００８９】
他方のサーバー１１１は、端末装置１２１が図９のステップ４９、図８のステップＳＴ３５〜ＳＴ４６で形成される処理ループを実行している間、図８のステップＳＳ１３〜ＳＳ２０で形成される処理ループを実行する。このとき、ステップＳＳ１４の演奏開始準備処理として、図１６に示す第２の演奏開始準備処理を実行し、ステップＳＳ１７の演奏処理として、図１７、及び図１８に示す第２の演奏処理を実行する。それにより、ユーザーが図２６の伴奏データ選択画面上で選択した伴奏名に対応する伴奏データを、コード進行／エレメント進行データに従い、エレメント伴奏データを含めて再生するのを実現させる。ここで、それらの処理について、図１６〜図１８を参照して詳細に説明する。
【００９０】
始めに、図１６を参照して、図２７に示す試聴選択画面上の「プリセットコード／エレメント」アイコンをユーザーがクリックした場合に、図８のステップＳＳ１４として実行される第２の演奏処理について詳細に説明する。
先ず、ステップ１６０１では、変数ＳＴＦに１を代入する。次にステップ１６０２に移行して、ユーザーが図２６の伴奏データ選択画面上で選択した伴奏名（伴奏データ種）に対応する伴奏データを構成するコード進行／エレメント進行データの先頭のデータの位置をスタートアドレスとして、そのアドレス値を変数ＡＤ１に代入する。ステップ１６０３にはその後に移行する。
【００９１】
ステップ１６０３では、変数ＡＤ１の値で示されるデータの種類を判定する。そのデータがコードデータであった場合、その旨が判定されてステップ１６０４に移行し、そのコードデータが指定するコード種を示す値を変数ＴＹＰＥに、それが指定する根音を示す値を変数ＲＯＯＴにそれぞれ代入し、更にステップ１６０６で変数ＡＤ１の値をインクリメントした後、そのステップ１６０３に戻る。変数ＡＤ１の値で示されるデータがエレメント種を示すエレメント種データであった場合には、その旨が判定されてステップ１６０５に移行し、変数ＥＬＥＭＥＮＴに、そのエレメント種データを代入し、更にステップ１６０６で変数ＡＤ１の値をインクリメントした後、そのステップ１６０３に戻る。その変数ＡＤ１の値で示されるデータが時間（タイム）データであった場合には、その旨が判定されてステップ１６０７に移行する。
【００９２】
ステップ１６０７では、変数ＴＩＭＥ１に、その時間データを代入する。続くステップ１６０７では、変数ＡＤ２に、変数ＥＬＥＭＥＮＴの値（エレメント種データ）で示されるエレメント伴奏データの先頭のデータの位置をスタートアドレスとして、そのアドレス値を代入する。次に移行するステップ１６０９では、変数ＴＩＭＥ２に、変数ＡＤ２の値で示されるデータ（ここではエレメント伴奏データの先頭に位置する時間データ）を代入する。その後、一連の処理を終了する。
【００９３】
このようにして、第２の演奏開始準備処理では、図２６の伴奏データ選択画面上でユーザーが選択した伴奏データを構成するコード進行／エレメント進行データに従い、最初に再生すべきエレメント（通常はイントロ）の再生を開始できるようにするまでの準備を行うようになっている。ステップ１６０３で時間データと判定した場合に一連の処理を終了するのは、図２に示すように、コード進行／エレメント進行データはその先頭に時間データが位置しないように作成するのを前提としているためである。
【００９４】
次に、図１７、及び図１８を参照して、図２７に示す試聴選択画面上の「プリセットコード／エレメント」アイコンをユーザーがクリックした場合に、図８のステップＳＳ１７として実行される第２の演奏処理について詳細に説明する。
上記第２の演奏開始準備処理を実行することで、変数ＡＤ１、ＡＤ２には、それぞれ、コード進行／エレメント進行データ中、エレメント伴奏データ中で処理の対象とすべきデータのアドレス値が代入される。第２の演奏処理は、それら変数ＡＤ１、ＡＤ２の値を随時インクリメント（更新）しながら、それら各値で指定されるデータを処理していくために実行される。
【００９５】
先ず、ステップ１７０１では、変数ＳＴＦの値が１か否か判定する。伴奏データを演奏中であった場合、それには１が代入されていることから、判定はＹＥＳとなってステップ１７０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００９６】
ステップ１７０２では、上記最小単位時間が経過したか否か判定する。前回、経過したと判定してからその最小単位時間が経過した場合、判定はＹＥＳとなり、変数ＴＩＭＥ１、及びＴＩＭＥ２の各値をそれぞれデクリメントした（ステップ１７０３、１７０４）後、ステップ１７０５に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００９７】
ステップ１７０５〜１７１４では、変数ＡＤ１の値を必要に応じて更新しながら、コード進行／エレメント進行データの処理を進行させるための処理が行われる。
先ず、ステップ１７０５では、変数ＴＩＭＥ１の値が０か否か判定する。その変数ＴＩＭＥ１に代入の時間データが付加されたイベントデータ、或いはエレメント種データを処理すべきタイミングとなった場合、その変数ＴＩＭＥの値は０になることから、判定はＹＥＳとなり、次にステップ１７０６で変数ＡＤ１の値をインクリメントした後、ステップ１７０７に移行する。そうでない場合には、判定はＮＯとなり、図１８のステップ１７１５に移行する。
【００９８】
ステップ１７０７では、変数ＡＤ１の値が示すアドレスが、コード進行／エレメント進行データの最終アドレス以内のアドレスか否か判定する。変数ＡＤ１の値が、その値をインクリメントしていくことでコード進行／エレメント進行データを構成するデータを示していない状態となった場合、判定はＮＯとなって図１８のステップ１７１５に移行する。そうでない場合には、判定はＹＥＳとなってステップ１７０８に移行する。
【００９９】
ステップ１７０８では、変数ＡＤ１の値で指定されるデータの種類を判定する。そのデータが時間（タイム）データであった場合、その旨が判定されてステップ１７１１に移行し、変数ＴＩＭＥ１にその時間データを代入した後、図８のステップ１７１５に移行する。そのデータがイベントデータ（ここではコードデータ）であった場合には、その旨が判定され、次にステップ１７１０でそのコードデータが指定するコード種、及びその根音を示す値を変数ＴＹＰＥ、及びＲＯＯＴにそれぞれ代入した後、上記ステップ１７０６に戻る。そのデータがエレメント種データであった場合には、その旨が判定されてステップ１７１１に移行する。
【０１００】
ステップ１７１１では、変数ＥＬＥＭＥＮＴに、そのエレメント種データを代入する。次のステップ１７１２では、エレメントの区切りをより明確にするために、オールノートオフコマンド（ＭＩＤＩデータ）を出力バッファにストアする。その次に移行するステップ１７１３では、変数ＡＤ２に、変数ＥＬＥＭＥＮＴに代入されたエレメント種データで示されるエレメント伴奏データのスタートアドレス（先頭に位置するデータ）を示す値を代入し、その後に移行するステップ１７１４では、変数ＡＤ２の値で示されるデータ（スタートアドレスに格納されるのは時間データである。図２参照）を変数ＴＩＭＥ２に代入する。その代入を行った後、上記ステップ１７０６に戻る。
【０１０１】
ステップ１７０５〜１７１４で上述したような処理が実行されることにより、コード進行／エレメント進行データ中で処理すべきタイミングとなったデータは処理される。それにより、処理すべきタイミングとなったコードデータにより変数ＴＹＰＥ、ＲＯＯＴの内容は随時、更新され、エレメント種データを処理すべきタイミングで再生の対象とするエレメント伴奏データが切り換えられる。
【０１０２】
上記ステップ１７０５の判定がＮＯ、或いはステップ１７０７の判定がＹＥＳとなるか、またはステップ１７０９の処理を実行することで移行する図１８のステップ１７１５では、変数ＴＩＭＥ２の値が０か否か判定する。その変数ＴＩＭＥ２に代入の時間データが付加されたイベントデータ（ＭＩＤＩデータ）を処理すべきタイミングとなった場合、その値は０になることから、判定はＹＥＳとり、ステップ１７１６で変数ＡＤ２の値をインクリメントした後、ステップ１７１７に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１０３】
ステップ１７１７では、変数ＡＤ２の値が示すアドレスが、エレメント伴奏データの最終アドレス（それの最後に位置するデータのアドレス）以内のアドレスか否か判定する。変数ＥＬＥＭＥＮＴに代入されたエレメント種データで指定されるエレメント伴奏データの再生が完了した場合、変数ＡＤ２の値はそのエレメント伴奏データを構成するデータのアドレスを示さなくなることから、判定はＮＯとなってステップ１７２２に移行する。そうでない場合には、判定はＹＥＳとなってステップ１７１８に移行する。
【０１０４】
ステップ１７１８では、変数ＡＤ２で示されるデータの種類を判定する。そのデータがイベントデータ（ＭＩＤＩデータ、或いはコードデータ）であった場合、その旨が判定されてステップ１７１９ａに移行し、それがＭＩＤＩデータであればそのままそれを、それがコードデータであれば変数ＴＹＰＥ，ＲＯＯＴで音高変換した後、そのＭＩＤＩデータを出力バッファにストアし（ステップ１７１９ｂ）、上記ステップ１７１６に戻る。そのデータが時間（タイム）データであった場合には、その旨が判定されてステップ１７２０に移行し、その時間データを変数ＴＩＭＥ２に代入した後、一連の処理を終了する。
【０１０５】
上記ステップ１７１７の判定がＮＯとなって移行するステップ１７２１では、変数ＥＬＥＭＥＮＴに代入のエレメント種データがエンディングを示しているか否か判定する。そのデータがエンディングを示していた場合、判定はＹＥＳとなり、ステップ１７２２で出力バッファにオールノートオフコマンドと終了コマンドをストアし、次にステップ１７２３で変数ＳＴＦに０を代入した後、一連の処理を終了する。一方、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１０６】
上述したようにして、変数ＴＹＰＥ、ＲＯＯＴで必要に応じて変換する、エレメント伴奏データを再生するためのＭＩＤＩデータが出力バッファにストアされて端末装置１２１に送信される。このため、端末装置１２１のユーザーは、各エレメントのコード進行やリズムを、エレメントの流れに沿って確認することができる。
【０１０７】
図２７に示す試聴選択画面上の「プリセットコード／エレメント」アイコンをユーザーがクリックした場合には、上述したような第２の演奏開始準備処理、及び第２の演奏処理をサーバー１１１は状況に応じて実行する。それにより、図２６に示す伴奏データ選択画面上で選択した伴奏名の伴奏データのプリセットに従った形での試聴をユーザーが行えるようにさせている。
【０１０８】
図５の説明に戻る。
その図２７に示す試聴選択画面上の「ユーザー指定コード／エレメント」アイコンをユーザーがクリックした場合、図５のステップＳＴ１９の判定はＹＥＳとなる。その場合、端末装置１２１は、次に図３０に示すような演奏画面の送信を要求するための信号をサーバー１１１に送信する（図１０のステップＳＴ５２）。その信号を受信したサーバー１１１は、その演奏画面を端末装置１２１に送信する（図１０のステップＳＳ２３）。このことから、端末装置１２１は、その信号を送信すると、サーバー１１１から演奏画面を受信するのを待って、それを表示装置上に表示させる（ステップＳＴ５３）。
【０１０９】
上記演奏画面には、図３０に示すように、「スタート」「ストップ」「イントロ」「フィルイン」「エンディング」及び「戻る」の各アイコンが配置されている。「スタート」「ストップ」の各アイコンは、伴奏データの再生開始、或いはその中止を要求するためのものであり、「戻る」アイコンは、一つ前の画面（ここでは図２７に示す試聴選択画面）に戻るのを要求するためのものである。「イントロ」「フィルイン」及び「エンディング」の各アイコンは、再生させるエレメントを選択するためのものである。それらのアイコンを配置することにより、ユーザーが随時、再生させるエレメントを切り換えられるようにさせている。「イントロ」「フィルイン」及び「エンディング」の各アイコンを総称してエレメントアイコンと呼ぶことにする。
【０１１０】
上記演奏画面を表示させた端末装置１２１は、次に、「戻る」アイコンがクリック（オン）されたか否か判定する（ステップＳＴ５４）。そのアイコンをユーザーがクリックした場合、判定はＹＥＳとなり、次に１つ前の画面に戻るのを要求するための戻り要求信号をサーバー１１１に送信する（ステップＳＴ５５）。このとき、伴奏データを再生（演奏）中であれば、変数ＳＴＦにそれが再生中でないことを示す値の０を代入するとともに、発音中の全楽音の消音を指示するためのオールノートオフ信号（ＭＩＤＩデータ）を電子楽器１２２に送信することも合わせて行う。
【０１１１】
サーバー１１１は、その戻り要求信号を受信すると、試聴選択画面（図２７参照）を端末装置１２１に送信する（ステップＳＳ２４）。このとき、伴奏データを再生（演奏）中であれば、変数ＳＴＦに０を代入することも合わせて行う。その画面を送信すると、図５のステップＳＳ６を実行した後の状態に移行する。
【０１１２】
サーバー１１１から試聴選択画面を受信した端末装置１２１は、それを表示装置上に表示させる（ステップＳＴ５６）。その後は、図５のステップＳＴ１７に戻り、それ以降の処理を同様に実行する。
図３０に示す演奏画面上の「戻る」アイコンをユーザーがクリックしなかった場合、上記ステップＳＴ５４の判定はＮＯとなり、次に「スタート」アイコンをユーザーがクリックしたか否か判定する（図１１のステップＳＴ５７）。その「スタート」アイコンをユーザーがクリックしなかった場合、判定はＮＯとなってステップＳＴ６０に移行する。そうでない場合には、判定はＹＥＳとなり、伴奏データの再生開始を要求するためのスタート信号をサーバー１１１に送信し（ステップＳＴ５８）、更に変数ＳＴＦに１を代入した（ステップＳＴ５９）後に、そのステップＳＴ６０に移行する。
【０１１３】
ステップＳＴ６０では、「ストップ」アイコンがクリックされたか否か判定する。そのアイコンをユーザーがクリックしなかった場合、判定はＮＯとなってステップＳＴ６４に移行する。そうでない場合には、判定はＹＥＳとなり、伴奏データの再生中止を要求するためのストップ信号をサーバー１１１に送信し（ステップＳＴ６１）、上記変数ＳＴＦに０を代入し（ステップＳＴ６２）、更に電子楽器１２２にオールノートオフコマンド（ＭＩＤＩデータ）を信号として送信した（ステップＳＴ６３）後、そのステップＳＴ６４に移行する。
【０１１４】
ステップＳＴ６４では、エレメントアイコンがクリックされたか否か判定する。「イントロ」「フィルイン」及び「エンディング」の各アイコンの何れもユーザーがクリックしなかった場合、判定はＮＯとなってステップＳＴ６６に移行する。そうでない場合には、即ちそれらのうちの何れかをユーザーがクリックした場合には、判定はＹＥＳとなり、ユーザーがクリックしたアイコンに対応するエレメント種データをサーバー１１１に送信する（ステップＳＴ６５）。ステップＳＴ６６にはその後に移行する。
【０１１５】
ステップＳＴ６６では、電子楽器１２２から楽音の音高を示すＭＩＤＩデータを受信したか否か判定する。その電子楽器１２２は、特には図示しない鍵盤上の鍵をユーザーが押鍵すると、その鍵の音高（ノートナンバー）を含むＭＩＤＩデータを端末装置１２１に送信する。このことから、ユーザーが鍵盤上の鍵を押鍵した場合、判定はＹＥＳとなり、電子楽器１２２から受信したＭＩＤＩデータをサーバー１１１に送信した（ステップＳＴ６７）後、図１２のステップＳＴ６８に移行する。そうでない場合には、判定はＮＯとなって、他のステップの処理を実行することなく、そのステップＳＴ６８に移行する。
【０１１６】
図１２のステップＳＴ６８では、変数ＳＴＦの値が１か否か判定する。伴奏データを再生中でなかった場合、その変数ＳＴＦには０が代入されていることから、判定はＮＯとなって図１０のステップＳＴ５４に戻る。そうでない場合には、即ち伴奏データを再生中の場合には、変数ＳＴＦには１が代入されていることから、判定はＹＥＳとなってステップＳＴ６９に移行する。
【０１１７】
ステップＳＴ６９では、サーバー１１１からイベントデータ（ここではコードデータ）を新たに受信したか否か判定する。そのデータをサーバー１１１から新たに受信していない場合、判定はＮＯとなって図１０のステップＳＴ５４に戻る。そうでない場合には、判定はＹＥＳとなり、次にサーバー１１１から新たに受信したコードデータに対応するＭＩＤＩデータを生成して電子楽器１２２に送信した（ステップＳＴ７０）後、ステップＳＴ７１に移行する。
【０１１８】
ステップＳＴ７１では、終了コマンドをサーバー１１１から新たに受信したか否か判定する。そのコマンドをサーバー１１１から新たに受信した場合、判定はＹＥＳとなり、変数ＳＴＦに０を代入した（ステップＳＴ７２）後、図１０のステップＳＴ５４に戻る。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップＳＴ５４に戻る。
【０１１９】
このようにして、端末装置１２１は、図３０に示す演奏画面を表示装置上に表示させている間、図１０のステップＳＴ５４、図１１のステップＳＴ５７〜ＳＴ６７、及び図１２のステップＳＴ６８〜ＳＴ７２で形成される処理ループを繰り返し実行して、その画面上に配置された各種アイコンへのクリックや伴奏データの再生、或いは電子楽器１２２から受信したＭＩＤＩデータに対応するようになっている。
【０１２０】
その演奏画面を端末装置１２１が表示させている間、サーバー１１１は、図１１のステップＳＳ２５〜ＳＳ３５、図１２のＳＳ３６〜ＳＳ３８で形成される処理ループを繰り返し実行する。それにより、以下のようにして、その演奏画面を表示させた端末装置１２１のユーザーの要求に対応する。
【０１２１】
先ず、ステップＳＳ２５では、端末装置１２１から何らかの信号を受信したか否か判定する。ユーザーが演奏画面上の何らかのアイコンをクリックするか、或いは電子楽器１２２の鍵盤上の鍵を押鍵した場合、端末装置１２１はユーザーが行った操作に応じた信号をサーバー１１１に送信する。このことから、そのような場合、判定はＹＥＳとなってステップＳＳ２６に移行する。そうでない場合には、判定はＮＯとなってステップＳＳ３５に移行する。
【０１２２】
ステップＳＳ２６では、端末装置１２１から受信した信号がスタート信号か否か判定する。端末装置１２１のユーザーが演奏画面上の「スタート」アイコンをクリックした場合、その端末装置１２１はスタート信号を送信することから、判定はＹＥＳとなってステップＳＳ２７に移行し、図２６に示す伴奏データ選択画面上でユーザーが選択した伴奏名（伴奏データ種）の伴奏データの再生を開始するためのスタート処理を実行した後、ステップＳＳ３５に移行する。そうでない場合には、判定はＮＯとなってステップＳＳ２８に移行する。
【０１２３】
ここで、そのスタート処理について、図１９に示すそのフローチャートを参照して詳細に説明する。処理の対象は、図２６に示す伴奏データ選択画面上でユーザーが選択した伴奏名（伴奏データ種）伴奏データを構成するコード進行／エレメント進行データである。
【０１２４】
先ず、ステップ１９０１では、変数ＳＴＦに１を代入する。続くステップ１９０２では、変数ＥＬＥＭＥＮＴに、「ノーマル」を示すエレメント種データを代入する。その後はステップ１９０３に移行する。
ステップ１９０３では、図２６に示す伴奏データ選択画面上でユーザーが選択した伴奏名の伴奏データを構成するコード進行／エレメント進行データのなかで、変数ＥＬＥＭＥＮＴに代入のエレメント種データに付加された時間データ（その直前に配置）の位置をスタートアドレスとして、そのアドレス値を変数ＡＤに代入する。次に移行するステップ１９０４では、その変数ＡＤの値で指定されるデータ（時間データ）を変数ＴＩＭＥに代入する。一連の処理はその後に終了する。
【０１２５】
上述したようなスタート処理を実行することにより、本実施の形態では、「スタート」アイコンをユーザーがクリックした場合、ノーマルからコード進行の再生を開始させるようにしている。ノーマルからコード進行の再生を開始させるようにしたのは、試聴を希望する人にとって最も内容を確認したいエレメントがノーマルであるのが普通であるためである。
【０１２６】
図１１に戻り、ステップＳＳ２８以降の処理を説明する。
ステップＳＳ２８では、端末装置１２１から受信した信号がストップ信号か判定する。端末装置１２１のユーザーが演奏画面（図３０）上の「ストップ」アイコンをクリックした場合、その端末装置１２１はストップ信号を送信することから、判定はＹＥＳとなり、次にステップＳＳ２９で変数ＳＴＦに０を代入した後、ステップＳＳ３５に移行する。そうでない場合には、判定はＮＯとなってステップＳＳ３０に移行する。
【０１２７】
ステップＳＳ３０では、端末装置１２１から受信した信号がエレメント種データを含むものか判定する。端末装置１２１のユーザーが演奏画面上の何れかのエレメントアイコンをクリックした場合、その端末装置１２１はクリックされたアイコンに割り当てられたエレメント種データを送信することから、判定はＹＥＳとなり、ステップＳＳ２９でそれに対応するためのエレメント選択処理を実行した後、ステップＳＳ３５に移行する。そうでない場合には、判定はＮＯとなってステップＳＳ３２に移行する。
【０１２８】
図２０は、ステップＳＳ２９として実行されるエレメント選択処理のフローチャートである。ここで、その選択処理について、図２０を参照して詳細に説明する。
先ず、ステップ２００１では、変数ＥＬＥＭＥＮＴに、端末装置１２１から受信した信号中のエレメント種データを代入する。続くステップ２００２では、出力バッファにオールノートオフコマンドをストアする。その後はステップ２００３に移行する。
【０１２９】
ステップ２００３では、図２６に示す伴奏データ選択画面上でユーザーが選択した伴奏名の伴奏データを構成するコード進行／エレメント進行データのなかで、変数ＥＬＥＭＥＮＴに代入したエレメント種データに付加された時間データ（その直前に配置）の位置をスタートアドレスとして、そのアドレス値を変数ＡＤに代入する。次に移行するステップ２００４では、その変数ＡＤの値で指定されるデータ（時間データ）を変数ＴＩＭＥに代入する。
【０１３０】
ステップ２００４に続くステップ２００５では、変数ＥＬＥＭＥＮＴに代入されたエレメント種データが示すエレメントがイントロか否か判定する。図３０に示す演奏画面上の「イントロ」アイコンをユーザーがクリックしたことで端末装置１２１が信号をサーバー１１１に送信した場合、その信号中にはイントロを示すエレメント種データが含まれていることから、判定はＹＥＳとなり、ステップ２００６で変数ＳＴＦに１を代入した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１３１】
伴奏データの再生中は、上記ステップ２００１〜２００４の処理を実行することで、ユーザーがクリックしたエレメントアイコンに応じたエレメントの選択・切り換えが実現される。伴奏データの再生中でない場合には、ユーザーが「イントロ」アイコンをクリックすると、ステップ２００６で変数ＳＴＦに１を代入することから、ステップ２００１〜２００４として実行した処理が他のエレメントとは異なって有効になり、イントロから伴奏データの再生が開始することになる。コード進行／エレメント進行データでは、そのイントロを示すエレメント種データに時間データは付加していない（図２参照）。このことから、図１４と同様に、ステップ２００３ではそのエレメント種データの位置をスタートアドレスとして変数ＡＤにアドレス値を代入し、ステップ２００４では変数ＴＩＭＥに０を代入する。そのようにして、特には図示していないが、イントロとそれ以外のエレメントとで処理内容を切り換えている。
【０１３２】
図１１の説明に戻る。
図１１のステップＳＳ３２では、端末装置１２１から受信した信号がＭＩＤＩデータを含むものか判定する。端末装置１２１のユーザーが電子楽器１２２の鍵盤上の鍵を押鍵した場合、その端末装置１２１は電子楽器１２２から受信したＭＩＤＩデータをサーバー１１１に送信することから、判定はＹＥＳとなってステップＳＳ３３に移行する。そうでない場合には、判定はＮＯとなってステップＳＳ３５に移行する。
【０１３３】
ステップＳＳ３３では、現時点の所定の時間前から端末装置１２１より受信したＭＩＤＩデータを対象にしたコード判定を行う。そのコード判定は、上述したように、対象とするＭＩＤＩデータが示す楽音の音高の組み合わせ（電子楽器１２２の鍵盤上で所定の時間内にユーザが押鍵した鍵の音高の組み合わせ）がコード判定テーブル（図２参照）に存在するか否か確認することで行う。その次に移行するステップＳＳ３４では、そのコード判定を行った結果、何らかのコードを判定した場合に、言い換えれば所定の時間内に端末装置１２１から受信したＭＩＤＩデータの組み合わせがコードを放音させるものであることを確認した場合に、そのコードの種類を示す値は変数ＴＹＰＥ、その根音を示す値（例えばその音高であるノートナンバー）は変数ＲＯＯＴにそれぞれ代入した後、ステップＳＳ３５に移行する。
【０１３４】
ユーザーが電子楽器１２２の鍵盤上でコードを鳴らすための複数の鍵を押鍵すると、伴奏データを再生中か否かに係わらず、上述したようにして変数ＴＹＰＥ、ＲＯＯＴの各値が更新される。それらは、コード進行／エレメント進行データを構成するコードデータの変換に用いる変数である。このことから明らかなように、コードデータの変換用のコード指定をユーザーが随時、行えるようにさせている。
【０１３５】
ステップＳＳ３５では、ユーザーが選択したエレメントのコード進行をユーザーが指定のコードで再生するための第３の演奏処理を実行する。その実行後に移行する図１２のステップＳＳ３６では、出力バッファにイベントデータ（ここではコードデータ）があるか否か判定する。第３の演奏処理の実行時にコードデータを出力バッファにストアしていた場合、判定はＹＥＳとなり、ステップＳＳ３７で出力バッファにストアされているコードデータを端末装置１２１に送信し、更にステップＳＳ３８で出力バッファのクリアを行った後、図１０のステップＳＳ２３の処理を実行した後の状態に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、その状態に移行する。
【０１３６】
図２１、及び図２２は、上記ステップＳＳ３５として実行される第３の演奏処理のフローチャートである。ここで図２１、及び図２２を参照して、その演奏処理について詳細に説明する。その演奏処理で再生の対象とするのは、上述したように、図２６の伴奏データ選択画面上でユーザーが選択した伴奏名（伴奏データ種）の伴奏データを構成するコード進行／エレメント進行データである。
【０１３７】
先ず、ステップ２１０１では、変数ＳＴＦの値が１か否か判定する。伴奏データを演奏中であった場合、それには１が代入されていることから、判定はＹＥＳとなってステップ２１０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１３８】
ステップ２１０２では、上記最小単位時間が経過したか否か判定する。前回、経過したと判定してからその最小単位時間が経過した場合、判定はＹＥＳとなり、次にステップ２１０３で変数ＴＩＭＥの値をデクリメントした後、ステップ２１０４に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１３９】
ステップ２１０４では、変数ＴＩＭＥの値が０か否か判定する。その変数ＴＩＭＥに代入の時間データが付加されたイベントデータ（コードデータ）を処理すべきタイミングとなった場合、その変数ＴＩＭＥの値は０になることから、判定はＹＥＳとなり、ステップ２１０５で変数ＡＤの値をインクリメントした後、ステップ２１０６に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１４０】
ステップ２１０６では、変数ＡＤの値が示すアドレスが、コード進行／エレメント進行データ中で現在、再生の対象としているエレメント部分の最終アドレス以内のアドレスか否か判定する。そのエレメント部分の演奏（再生）が完了していない場合、変数ＡＤの値はそのエレメント部分の最終アドレス以内のアドレスを示すことから、判定はＹＥＳとなってステップ２１０７に移行する。そうでない場合には、即ち変数ＡＤの値で指定されるデータが無いか、或いはそのデータが次のエレメント種データであった場合、判定はＮＯとなり、図２２のステップ２１１１に移行する。
【０１４１】
ステップ２１０７は、変数ＡＤの値で指定されるデータの種類を判定する。そのデータがイベントデータ（ここではコードデータ）であった場合、その旨が判定され、ステップ２１０９に移行する。そのデータが時間データであった場合には、その旨が判定されてステップ２１０８に移行し、変数ＴＩＭＥにその時間データを代入した後、一連の処理を終了する。
【０１４２】
ステップ２１０９では、変数ＴＹＰＥ、ＲＯＯＴに代入された値に従ってコード変換テーブルを参照することにより、そのコードデータが表すコード（コード種、及び根音）の変換を行う。続くステップ２１１０では、変換後のコードの発音を指示するコードデータを出力バッファにストアする。その後は上記ステップ２１０５に戻る。
【０１４３】
上記ステップ２１０６の判定がＮＯとなって移行する図２２のステップ２１１１では、変数ＥＬＥＭＥＮＴに代入されたエレメント種データが示すエレメントがエンディングか否か判定する。現在、エンディングのコード進行を演奏していない場合、変数ＥＬＥＭＥＮＴにはエンディングを示すエレメント種データが代入されていないことから、判定はＮＯとなってステップ２１１５に移行する。そうでない場合には、判定はＹＥＳとなってステップ２１１２に移行する。
【０１４４】
ステップ２１１２では、出力バッファにオールノートオフコマンドをストアする。続くステップ２１１３では、その出力バッファに、更に終了コマンドをストアする。その後は、ステップ２１１４で変数ＳＴＦに０を代入してから一連の処理を終了する。
【０１４５】
一方、ステップ２１１５では、出力バッファにオールノートオフコマンドをストアする。次のステップ２１１６では、変数ＥＬＥＭＥＮＴに、「ノーマル」を示すエレメント種データを代入する。その次に移行するステップ２１１７では、コード進行／エレメント進行データ中で変数ＥＬＥＭＥＮＴにエレメント種データを代入したノーマルに対応する部分のスタートアドレスを示す値を変数ＡＤに代入する。その後は、ステップ２１１８で変数ＡＤの値で示されるデータ（スタートアドレスに格納されるのは時間データである。図２参照）を変数ＴＩＭＥに代入してから一連の処理を終了する。
【０１４６】
このようにして、本実施の形態では、エンディング以外のエレメントのコード進行の再生が終了すると、ノーマルのコード進行を再度、再生するようにしている。これは、ユーザーが、ノーマルの演奏を重点的に確認できるようにするとともに、イントロ→ノーマル、フィルイン→ノーマルといったようにエレメントが切り換わる際の伴奏の流れを確認できるようにするためである。エンディングのコード進行の再生が終了すると、その終了によって伴奏データの再生自体を終了させるのは、エンディングの後に他のエレメントが続かないためである。
【０１４７】
伴奏データの購入は、上述したように、図２６に示す伴奏データ選択画面上で伴奏名（伴奏データ種）を選択した後、「購入」アイコンをクリックすることで行うようになっている。そのようにしてユーザーが「購入」アイコンをクリックした場合、図４のステップＳＴ１１の判定がＮＯとなる。その場合、端末装置１２１は、次にユーザーが伴奏名で選択した伴奏データの購入を要求するための購入要求信号をサーバー１１１に送信する（図１３のステップＳＴ７３）。
【０１４８】
その購入要求信号は、ユーザーが伴奏名で選択した伴奏データを特定するためのデータを含む信号である。サーバー１１１は、それを受信すると、ユーザーが購入を希望した伴奏データに関するデータや、その購入に係る決済（課金）を行うためのデータをユーザーに入力させる各種ボックス、及び「送信」「戻る」といった各種アイコンなどを配置した購入画面を作成して端末装置１２１に送信する（図１３のステップＳＳ３９）。
【０１４９】
本実施の形態では、会員登録を行った人を対象にサービスを提供するようにしている。その会員登録時に、決済に用いるカードに関する情報もユーザーに入力させている（図２４参照）。会員登録時にユーザーが入力したデータは会員ＤＢに保存している。このことから、上記購入画面では、決済を行うためのデータとして、ユーザー（会員登録した購入希望者）のＩＤ、及びパスワードの入力を求めるようにしている。伴奏データの購入は、ＩＤ、パスワードを対応するボックスに入力した後、「送信」アイコンをクリックすることで行い、そのキャンセルは、「戻る」アイコンをクリックすることで行うようになっている。
【０１５０】
上記購入画面を受信した端末装置１２１は、それを表示装置上に表示させる（ステップＳＴ７４）。それを表示させた後は、ユーザーが入力装置を操作して入力したデータをボックス内に表示させる（ステップＳＴ７５）。各ボックス内に表示させたデータは、課金データとして、ユーザーが「送信」アイコンをクリックするのを待ってサーバー１１１に送信する（ステップＳＴ７６）。
【０１５１】
サーバー１１１は、端末装置１２１から課金データを受信すると、そのデータを用いた課金処理を行い、それのユーザーが購入を希望する伴奏データの代金を徴収する（ステップＳＳ４０）。その伴奏データは、代金を徴収した後に端末装置１２１に送信する（ステップＳＳ４１）。
【０１５２】
上記課金処理は、例えば端末装置１２１から課金データとして受信したＩＤ、パスワードをＤＢサーバー１２２に送信してその組み合わせを持つ会員の有無を会員ＤＢから確認させ、そのような会員が登録されているのを確認できれば、その会員が登録時にデータを入力のカードを発行したカード会社が代金を予め決められた銀行口座に振り込むように金融機関１０５に依頼することで行う。その課金処理を実行後に端末装置１２１に送信する伴奏データもＤＢサーバー１２２から取得する。
【０１５３】
サーバー１１１から送信された伴奏データを受信した端末装置１２１は、それの保存先をユーザーに問い合わせることで、受信した伴奏データをユーザーが指定した場所にストアする（ステップＳＴ７７）。その後は図５のステップＳＴ２１に移行して、図２６に示す伴奏データ送信画面の送信を要求するための戻り要求信号をサーバー１１１に送信する。このことから、サーバー１１１は、伴奏データを送信した後には図５のステップＳＳ７に移行する。
【０１５４】
サーバー１１１は、上述したようにして、ネットワーク１０３を介して接続された端末装置１２１のユーザーに対して伴奏データの試聴を含むその購入に係るサービスを提供するための処理を実行する。それにより、伴奏データの内容を試聴により確認できるようにして、ユーザーが所望の伴奏データを確実に購入できる環境を実現させている。
【０１５５】
なお、本実施の形態では、提供システム１０１から端末システム１０３に伴奏再生用のイベントデータ（ＭＩＤＩデータ、或いはコードデータ）を随時、送信することで、その端末システム１０３のユーザーが伴奏の試聴を行えるようにしているが、伴奏データを送り、それを端末システム１０３側で再生させることにより、その試聴を行えるようにしても良い。
【０１５６】
試聴のための伴奏データの再生形態については、本実施の形態では図２７に示す試聴選択画面上で選択できる３種類を用意しているが、その再生形態はそれらに限定されるものではなく、適宜、決定して良い。どのような再生形態で伴奏データを再生したとしても、その内容を部分的、或いは全体的に確認できることから、何れもしても、ユーザーは自身が所望の伴奏データをより容易、且つ確実に取得できるようになる。
【０１５７】
上述したような提供システム１０１、或いはその変形例の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた伴奏データ提供システムを構築することができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。本発明を適用させた伴奏データ提供システムの構成も本実施の形態に限定されるものではない。
【０１５８】
【発明の効果】
以上、説明したように本発明は、試聴希望者からネットワークを介して、伴奏に対する試聴を要求するための試聴要求を受け付け、その試聴要求で試聴を要求された伴奏を再生するための試聴用の伴奏データを、ネットワークを介して送信することで試聴希望者に提供し、その提供した伴奏データを再生させることで試聴希望者に伴奏を試聴させる。その試聴によって、試聴希望者は伴奏の内容を確認することができる。このため、試聴希望者は自身が所望する伴奏データをより容易、且つ確実に取得（例えば購入）することができるようになる。
【図面の簡単な説明】
【図１】本実施の形態による伴奏データ提供システムを用いて構築されたネットワークシステムの構成を示す図である。
【図２】データベースサーバーが管理するデータの種類、及びその内容を説明する図である。
【図３】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである。
【図４】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き１）。
【図５】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き２）。
【図６】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き３）。
【図７】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き４）。
【図８】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き５）。
【図９】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き６）。
【図１０】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き７）。
【図１１】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き８）。
【図１２】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き９）。
【図１３】端末システムを伴奏データ提供システムと接続させた場合に、それらが実行する処理の流れを示すフローチャートである（続き１０）。
【図１４】第１の演奏開始準備処理のフローチャートである。
【図１５】第１の演奏処理のフローチャートである。
【図１６】第２の演奏開始準備処理のフローチャートである。
【図１７】第２の演奏処理のフローチャートである。
【図１８】第２の演奏処理のフローチャートである（続き）。
【図１９】スタート処理のフローチャートである。
【図２０】エレメント選択処理のフローチャートである。
【図２１】第３の演奏処理のフローチャートである。
【図２２】第３の演奏処理のフローチャートである（続き）。
【図２３】認証用画面を示す図である。
【図２４】登録画面を示す図である。
【図２５】メニュー画面を示す図である。
【図２６】伴奏データ選択画面を示す図である。
【図２７】試聴選択画面を示す図である。
【図２８】コード／エレメント入力画面を示す図である。
【図２９】試聴画面を示す図である。
【図３０】演奏画面を示す図である。
【符号の説明】
１０１    伴奏データ提供システム
１０２    ネットワーク
１０３    端末システム
１１１    サーバー
１１２    データベースサーバー
１２１    端末装置
１２２    電子楽器
【図１】
0003906681.tif 000002
【図２】
0003906681.tif 000003
【図３】
0003906681.tif 000004
【図４】
0003906681.tif 000005
【図５】
0003906681.tif 000006
【図６】
0003906681.tif 000007
【図７】
0003906681.tif 000008
【図８】
0003906681.tif 000009
【図９】
0003906681.tif 000010
【図１０】
0003906681.tif 000011
【図１１】
0003906681.tif 000012
【図１２】
0003906681.tif 000013
【図１３】
0003906681.tif 000014
【図１４】
0003906681.tif 000015
【図１５】
0003906681.tif 000016
【図１６】
0003906681.tif 000017
【図１７】
0003906681.tif 000018
【図１８】
0003906681.tif 000019
【図１９】
0003906681.tif 000020
【図２０】
0003906681.tif 000021
【図２１】
0003906681.tif 000022
【図２２】
0003906681.tif 000023
【図２３】
0003906681.tif 000024
【図２４】
0003906681.tif 000025
【図２５】
0003906681.tif 000026
【図２６】
0003906681.tif 000027
【図２７】
0003906681.tif 000028
【図２８】
0003906681.tif 000029
【図２９】
0003906681.tif 000030
【図３０】
0003906681.tif 000031