(57)【特許請求の範囲】
【請求項１】
第１機器と、複数の第２機器とを備える電子楽器において、
前記第１機器は、
前記第２機器に割り当てる音色を示す割当指示データを複数の第２機器毎に記憶し、該割当指示データが示す音色のデータである音色データを複数の音色毎に記憶する第１記憶手段と、
前記割当指示データが示す音色の音色データを前記第１記憶手段から読出し、読出した音色データを割当指示データに対応する第２機器へ送信する第１送信手段とを備え、
前記第２機器は、
前記第１送信手段より送信された音色データを受信する第１受信手段と、
前記第１受信手段で受信した音色データを記憶する第２記憶手段と、
当該第２機器の運動状態を検知する運動状態検知手段と、
前記運動状態検知手段により検知した運動状態に応じて、前記第２記憶手段に記憶された音色データに基づいた楽音を発音する第１楽音発音手段と
を備える電子楽器。
【請求項２】
請求項１記載の電子楽器において、
前記第１機器は、前記割当指示データと前記音色データとを外部から入力する入力手段と、
前記入力手段に前記割当指示データと前記音色データとが入力されたことに応じて、入力された割当指示データと前記音色データとを前記第１記憶手段に記憶させるとともに、当該記憶した所定の音色データを前記第１送信手段から送信するように制御する送信制御手段と
を備えることを特徴とする電子楽器。
【請求項３】
請求項１または２記載の電子楽器において、
前記第２機器は、前記運動状態検知手段により検知した運動状態に応じて演奏指示データを生成し、生成した演奏指示データを前記第１機器へ送信する第２送信手段を有し、
前記第１機器は、前記第２送信手段が送信した演奏指示データを受信する第２受信手段と、
前記第２受信手段が受信した演奏指示データに基づいた楽音制御を行う楽音制御手段と
を備えることを特徴とする電子楽器。
【請求項４】
請求項３記載の電子楽器において、
前記第２機器は、当該第２機器を識別する固有の識別情報を前記第２記憶手段において記憶し、
前記識別情報を前記第２送信手段から送信し、
前記第１機器は、前記第２送信手段から送信された識別情報を前記第２受信手段により受信し、該識別情報により特定される第２機器に対応した割当指示データが指示する音色の音色データを、該識別情報により特定される第２機器へ送信することを特徴とする電子楽器。
【請求項５】
請求項１ないし４いずれかに記載の電子楽器において、
前記第１記憶手段は、一連の楽音の発生および消去を指示する演奏データを記憶し、
前記第１機器は、前記演奏データに応じて楽音を発音する第２楽音発音手段を備えることを特徴とする電子楽器。
【請求項６】
請求項５に記載の電子楽器において、
前記演奏データは、発音のタイミングを指示するタイミングデータを含み、
前記第１送信手段は、前記タイミングデータを前記複数の第２機器へ送信し、
前記第１受信手段は、前記第１送信手段から送信されたタイミングデータを受信し、
前記第２機器は、前記第１受信手段により受信したタイミングデータに基づいて発音のタイミングを報知する報知手段を備えることを特徴とする電子楽器。
【請求項７】
第１機器と、複数の第２機器とを備える電子楽器において、
前記第１機器は、
複数の演奏パートからなる楽曲の演奏データを記憶し、
前記演奏パートに対応する音色であって、前記第２機器に割り当てる演奏パートの音色を示す割当指示データを複数の第２機器毎に記憶し、前記各演奏パートに対応する音色のデータである音色データを記憶する第１記憶手段と、
前記割当指示データが示す音色の音色データを前記第１記憶手段から読出し、読出した音色データを割当指示データに対応する第２機器へ送信する第１送信手段と、
前記演奏データに基づいて楽音を発生する手段であって、前記割当指示データが示す音色の演奏パートを除いた楽音を発音する第１楽音発音手段とを備え、
前記第２機器は、
前記第１送信手段より送信された音色データを受信する第１受信手段と、
前記第１受信手段で受信した音色データを記憶する第２記憶手段と、
当該第２機器の運動状態を検知する運動状態検知手段と、
前記運動状態検知手段により検知した運動状態に応じて、前記第２記憶手段に記憶された音色データに基づいた楽音を発音する第２楽音発音手段と
を備える電子楽器。
【請求項８】
第１機器と、複数の第２機器とを備える電子楽器の制御方法であって、
前記第１機器は、
前記第２機器に割り当てる音色を示す割当指示データを複数の第２機器毎に記憶し、該割当指示データが示す音色のデータである音色データを複数の音色毎に記憶する第１記憶過程と、
前記第１記憶過程で記憶した割当指示データが示す音色の音色データを、割当指示データに対応する第２機器へ送信する第１送信過程と
を備え、
前記第２機器は、
前記第１送信過程により送信された音色データを受信する第１受信過程と、
前記第１受信過程により受信された音色データを記憶する第２記憶過程と、
当該第２機器の運動状態を検知する運動検知過程と、
前記運動検知過程により検知された運動状態に応じて、前記第２記憶過程で記憶した音色データに基づいた楽音信号を発音する第１楽音過程と
を備えることを特徴とする電子楽器の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、多数の使用者が容易に演奏に参加できる電子楽器、当該電子楽器の制御方法、および電子楽器の制御データを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来より、演奏者の操作に対応して電気的に楽音を発生する電子楽器が知られている。このような電子楽器は、例えば、ピアノやギターなどの自然楽器をモデルにしており、一つの楽器を一人の演奏者が操作するものが一般的であった。
【０００３】
【発明が解決しようとする課題】
ところで、近年は、単に一人の使用者が演奏を楽しむだけではなく、多数の使用者が参加して一つの音楽を演奏することができるような電子楽器も望まれている。
しかしながら、従来の電子楽器を用いてこのような演奏を行う場合は、多数の電子楽器を用意しなければならなかった。また、多数の電子楽器で一つの演奏を行う場合には、各楽器毎にパートや音色などの割当を行うことが一般的であるが、従来は、それぞれの電子楽器において設定を行う必要があったので、大変手間がかかるという問題があった。
このように、従来の電子楽器は、複数の使用者が一つの演奏に参加することには適していなかった。
本発明は、上述した課題を解決するためになされたものであり、多人数が容易に演奏に参加できる電子楽器、電子楽器の制御方法、および電子楽器の制御データを記録した記録媒体を提供することを目的としている。
【０００４】
【課題を解決するための手段】
上述した課題を解決するために、請求項１記載の発明は、第１機器と、複数の第２機器とを備える電子楽器において、前記第１機器は、前記第２機器に割り当てる音色を示す割当指示データを複数の第２機器毎に記憶し、該割当指示データが示す音色のデータである音色データを複数の音色毎に記憶する第１記憶手段と、前記割当指示データが示す音色の音色データを前記第１記憶手段から読出し、読出した音色データを割当指示データに対応する第２機器へ送信する第１送信手段とを備え、前記第２機器は、前記第１送信手段より送信された音色データを受信する第１受信手段と、前記第１受信手段で受信した音色データを記憶する第２記憶手段と、当該第２機器の運動状態を検知する運動状態検知手段と、前記運動状態検知手段により検知した運動状態に応じて、前記第２記憶手段に記憶された音色データに基づいた楽音を発音する第１楽音発音手段とを備えることを特徴とする。
請求項２記載の発明は、請求項１記載の電子楽器において、前記第１機器は、前記割当指示データと前記音色データとを外部から入力する入力手段と、前記入力手段に前記割当指示データと前記音色データとが入力されたことに応じて、入力された割当指示データと前記音色データとを前記第１記憶手段に記憶させるとともに、当該記憶した所定の音色データを前記第１送信手段から送信するように制御する送信制御手段とを備えることを特徴とする。
請求項３記載の発明は、請求項１または２記載の電子楽器において、前記第２機器は、前記運動状態検知手段により検知した運動状態に応じて演奏指示データを生成し、生成した演奏指示データを前記第１機器へ送信する第２送信手段を有し、前記第１機器は、前記第２送信手段が送信した演奏指示データを受信する第２受信手段と、前記第２受信手段が受信した演奏指示データに基づいた楽音制御を行う楽音制御手段とを備えることを特徴とする。
請求項４記載の発明は、請求項３記載の電子楽器において、前記第２機器は、当該第２機器を識別する固有の識別情報を前記第２記憶手段において記憶し、前記識別情報を前記第２送信手段から送信し、前記第１機器は、前記第２送信手段から送信された識別情報を前記第２受信手段により受信し、該識別情報により特定される第２機器に対応した割当指示データが指示する音色の音色データを、該識別情報により特定される第２機器へ送信することを特徴とする。
請求項５記載の発明は、請求項１ないし４いずれかに記載の電子楽器において、前記第１記憶手段は、一連の楽音の発生および消去を指示する演奏データを記憶し、前記第１機器は、前記演奏データに応じて楽音を発音する第２楽音発音手段を備えることを特徴とする。
請求項６記載の発明は、請求項５に記載の電子楽器において、前記演奏データは、発音のタイミングを指示するタイミングデータを含み、前記第１送信手段は、前記タイミングデータを前記複数の第２機器へ送信し、前記第１受信手段は、前記第１送信手段から送信されたタイミングデータを受信し、前記第２機器は、前記第１受信手段により受信したタイミングデータに基づいて発音のタイミングを報知する報知手段を備えることを特徴とする。
請求項７記載の発明は、第１機器と、複数の第２機器とを備える電子楽器において、前記第１機器は、複数の演奏パートからなる楽曲の演奏データを記憶し、前記演奏パートに対応する音色であって、前記第２機器に割り当てる演奏パートの音色を示す割当指示データを複数の第２機器毎に記憶し、前記各演奏パートに対応する音色のデータである音色データを記憶する第１記憶手段と、前記割当指示データが示す音色の音色データを前記第１記憶手段から読出し、読出した音色データを割当指示データに対応する第２機器へ送信する第１送信手段と、前記演奏データに基づいて楽音を発生する手段であって、前記割当指示データが示す音色の演奏パートを除いた楽音を発音する第１楽音発音手段とを備え、前記第２機器は、前記第１送信手段より送信された音色データを受信する第１受信手段と、前記第１受信手段で受信した音色データを記憶する第２記憶手段と、当該第２機器の運動状態を検知する運動状態検知手段と、前記運動状態検知手段により検知した運動状態に応じて、前記第２記憶手段に記憶された音色データに基づいた楽音を発音する第２楽音発音手段とを備えることを特徴とする。
【０００５】
請求項８記載の発明は、第１機器と、複数の第２機器とを備える電子楽器の制御方法であって、前記第１機器は、前記第２機器に割り当てる音色を示す割当指示データを複数の第２機器毎に記憶し、該割当指示データが示す音色のデータである音色データを複数の音色毎に記憶する第１記憶過程と、前記第１記憶過程で記憶した割当指示データが示す音色の音色データを、割当指示データに対応する第２機器へ送信する第１送信過程とを備え、前記第２機器は、前記第１送信過程により送信された音色データを受信する第１受信過程と、前記第１受信過程により受信された音色データを記憶する第２記憶過程と、当該第２機器の運動状態を検知する運動検知過程と、前記運動検知過程により検知された運動状態に応じて、前記第２記憶過程で記憶した音色データに基づいた楽音信号を発音する第１楽音過程とを備えることを特徴とする。
【０００７】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
【０００８】
Ａ：第１実施形態
１．実施形態の構成
１−１．外観構成
１−１−１．全体構成
図１は、本実施形態の外観構成を示す図である。本実施形態にかかる電子楽器は、親機１００および、例えば１２個の子機２００ｉ（ｉは、０〜１１の整数。以下、特定しない場合は子機２００と記す）を備えて構成されており、親機１００が行う自動演奏にあわせて、子機２００毎にそれぞれ割り当てられた音色の楽音を発音して合奏するものである。
親機１００は、フロッピーディスクから読み込んだデータに基づいて自動演奏を行うものである。また、データによって指定された音色を各子機２００に対して設定する。本実施形態では、データは、ＭＩＤＩ（Musical Instrument Digital Interface）規格に基づいた演奏データを含み、親機１００は、ＭＩＤＩデータに基づいて楽音を生成するように構成されている。
本実施形態では、子機２００に対しては楽音制御データとして親機１００で自動演奏される楽曲の所定の演奏パートに対応する音色データが割り当てられるものとし、子機２００は親機１００とは独立に動作する電子楽器として機能する。なお、親機１００では子機２００に割り当てる演奏パートの楽音は発生しないものとする。
子機２００は、それぞれ割り当てられた演奏パートに対応する音色の楽音を生成して発音する電子楽器であり、図２に示すように、演奏者が子機２００を振ると、後に説明するように電気的に演奏指示を発生して、楽音を生成するように構成されている。
【０００９】
１−１−２．各機器の構成
次に親機１００および子機２００の外観構成についてそれぞれ説明する。
（１）親機の構成
図３は、親機１００の外観構成を示す図であり、（１）は、親機１００の正面を示し、（２）は親機１００の上面を示している。図３に示すように、親機１００は、子機差込部１１０、操作部１２０、フロッピーディスクドライブ（ＦＤＤ）１３０、および電源スイッチ１４０を備えて構成されている。
子機差込部１１０は、例えば１２個の子機差込穴１１１ｊ（ｊは、０〜１１の整数。以下、特定しない場合は、子機差込穴１１１と記す）を備え、各子機差込穴１１１ｊには、子機２００ｉと接続するためのコネクタ１１２ｊ（ｊは、０〜１１の整数。以下、特定しない場合は、コネクタ１１２と記す）が設けられている（図６参照）。本実施形態においては、１２個の子機２００をそれぞれ子機差込穴１１１に差し込んで、親機１００と子機２００とを接続して、親機１００から子機２００への音色割り当てなどを行うようになっている。
操作部１２０は、親機１００の自動演奏に関する操作を行うためのユーザインターフェイスであり、後に図４を参照して説明するように、各種スイッチおよび設定表示用のＬＥＤ（Light Emitting Diode）などを備えて構成されている。ＦＤＤ１３０は、挿入されたフロッピーディスクへのデータの読み書きを行う装置であり、本実施形態では、フロッピーディスクに記憶されたデータ（より詳細には後述する）を読み込むために用いられる。なお、ＦＤＤ１３０に設けられた排出スイッチ１３１は、ＦＤＤ１３０に挿入されているフロッピーディスクの排出を指示するスイッチである。電源スイッチ１４０は、親機１００への電源投入および遮断を指示するスイッチである。
【００１０】
図４は、操作部１２０の拡大図であり、この図に示すように、操作部１２０は、再生スイッチ１２１、停止スイッチ１２２、転調スイッチ１２３ａ、１２３ｂ、転調表示ＬＥＤ１２３ｃ、音量スイッチ１２４ａ、１２４ｂ、音量表示ＬＥＤ１２４ｃ、テンポスイッチ１２５ａ、１２５ｂ、テンポ表示ＬＥＤ１２５ｃを備えて構成されている。
再生スイッチ１２１は、親機１００における自動演奏の開始（再生）および、自動演奏の一時停止を指示するスイッチであり、停止スイッチ１２２は、自動演奏の終了（停止）を指示するスイッチである。
転調スイッチ１２３ａおよび１２３ｂは、自動演奏における転調、いわゆる「キーコントロール」を指示するスイッチである。そして、転調スイッチ１２３ａはキーを低く設定することを指示するスイッチであり、転調スイッチ１２３ｂはキーを高く設定することを指示するスイッチである。転調表示ＬＥＤ１２３ｃは、設定されているキーを表示するＬＥＤであり、転調スイッチ１２３ａがオンされる毎に、使用者からみて左に点灯位置が移動し、転調スイッチ１２３ｂがオンされる毎に、使用者からみて右に点灯位置が移動するようになっている。
【００１１】
音量スイッチ１２４ａおよび１２４ｂは、自動演奏における音量（ボリューム）を指示するスイッチである。そして、音量スイッチ１２４ａはボリュームを小さく設定することを指示するスイッチであり、音量スイッチ１２４ｂはボリュームを大きく設定することを指示するスイッチである。音量表示ＬＥＤ１２４ｃは、設定されているボリュームを表示するＬＥＤであり、音量スイッチ１２４ａがオンされる毎に、使用者からみて左に点灯位置が移動し、音量スイッチ１２４ｂがオンされる毎に、使用者からみて右に点灯位置が移動するようになっている。
そして、テンポスイッチ１２５ａおよび１２５ｂは、自動演奏の速さ（テンポ）を指示するスイッチである。そして、テンポスイッチ１２５ａはテンポを遅く設定することを指示するスイッチであり、テンポスイッチ１２５ｂはテンポを速く設定することを指示するスイッチである。テンポ表示ＬＥＤ１２５ｃは、設定されているテンポを表示するＬＥＤであり、テンポスイッチ１２５ａがオンされる毎に、使用者からみて左に点灯位置が移動し、テンポスイッチ１２５ｂがオンされる毎に、使用者からみて右に点灯位置が移動するようになっている。
なお、上記転調スイッチ１２３、音量スイッチ１２４、テンポスイッチ１２５は、標準のキー、音量、テンポからの相対的な値を指定するものであり、各々正負５段階の幅でキー、音量、テンポを設定するものである。この標準のキー、音量、テンポは上記フロッピーディスクが記憶する演奏データ中に含まれているものとする。
【００１２】
（２）子機の構成
図５は、子機２００の外観構成を示す図である。図５に示すように、子機２００の筐体は、筐体上部２１０および筐体下部２２０に分かれて構成されており、長軸方向中心部に向かってテーパのつけられた略円筒状の形状に形成されている。  後に説明するように、子機２００は、筐体上部２１０の内部にライト（図示略）を備えており、筐体上部２１０は、ライトの発光が外部から認識できるように、半透明の樹脂などで形成されている。
また、子機２００は、音源およびサウンドシステム（図示略）を備えており、筐体上部２１０は、生成された楽音を外部に放音するための開口部２１１および２１２を備えている。また、筐体上部２１０は、生成された楽音の共鳴や遠達性などの音響特性を向上させるように、筐体上部２１０の形状や、開口部２１１、２１２の配置といった諸条件が調整されて形成されている。
開口部２１１は、筐体上部２１０の先端面に形成されており、周囲の人間に対して生成された楽音を広がりのある音として聞かせるための穴として機能する。一方、開口部２１２は、筐体上部２１０の側面に形成されており、当該子機２００を把持している演奏者に対して生成された楽音を聞かせるための穴として機能する。
【００１３】
演奏者が把持するための筐体下部２２０は、演奏者が子機２００を振る際に手から抜けてしまうことを防止するため、筐体下部２２０全体、もしくは、少なくとも筐体下部２２０の表面部はゴムなどの抵抗の高い素材が使用され、グリップエンドに広がりを有する逆テーパ形状に形成されている。
また、筐体下部部２２０の底面部には、図６に示すように、親機１００との電気的接続を行うためのコネクタ２２１が設けられている。
ここで、図７は、コネクタ１１２およびコネクタ２２１の形状を示す図である。この図に示すように、親機１００は、コネクタ１１２の中心から同心円状に配置された、電源端子１１３ａおよび１１３ｂ、データ入力端子１１４ａ、データ出力端子１１４ｂを備え、子機２００は、コネクタ２２１の中心から同心円状に配置された、電源端子２２２ａおよび２２２ｂ、データ出力端子２２３ａ、データ入力端子２２３ｂを備えている。
【００１４】
子機差込穴１１１の直径は、筐体下部２２０の底面の直径よりも若干大きめに形成され、これにより子機２００が位置決めされた状態で親機１００の子機差込穴１００に収容されるようになっている。そして、位置決めされた状態で子機２００が子機差込穴１１１に収容されたときに、親機１００および子機２００のコネクタ同士は、対応する各端子が対向して接続されるように構成されている。
親機１００の電源端子１１３ａおよび１１３ｂは、子機２００の電源端子２２２ａおよび２２２ｂと接続されて、親機１００から子機２００に対して電力供給を行うための端子である。子機２００は充電可能な電池を備えており、子機２００が親機１００に接続されているときに、親機１００から供給された電力を充電するように構成されている。
また、親機１００のデータ出力端子１１４ａは、子機２００のデータ入力端子２２３ａと接続されたときに子機２００に対してデータを送信するための端子であり、親機１００のデータ入力端子１１４ｂは子機２００のデータ出力端子２２３ｂと接続されたときに子機２００からデータを受信するための端子である。
【００１５】
１−２．電気的構成
次に、本実施形態の電気的構成について説明する。
（１）親機の構成
図８は、親機１００の電気的構成を示す図であり、この図に示すように、親機１００は、バス１０１を介して接続されたＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４、音源１０５、コネクタ１１２、操作部１２０、ＦＤＤ１３０、および、音源１０５に接続されたサウンドシステム（ＳＳ）１０６を備えて構成されている。
ＣＰＵ１０２は、ＲＯＭ１０３に記憶されたプログラムに基づいて、バス１０１を介して接続された各部の制御を行うものである。ＲＯＭ１０３には、後述するように、制御プログラムの他、バージョン情報や、初期化データなどが記憶されている（図１１（１）参照）。
ＲＡＭ１０４は、読み書き可能なメモリであり、後述するようにデータが記憶される他、各種フラグなどを記憶するエリアが設けられる（図１１（２）参照）。
音源１０５は、ＣＰＵ１０２の制御の下で、ＲＡＭ１０４に記憶されたＭＩＤＩデータに基づいて楽音信号を生成するものであり、例えばＲＡＭ１０４に記憶された音色データである波形データを読み出して、該波形データを再生する方式の音源で構成され、音源１０５において生成された楽音信号は、サウンドシステム（ＳＳ）１０６から増幅されて放音されるように構成されている。
【００１６】
（２）子機の構成
図９は、子機２００の電気的構成を示す図であり、この図に示すように、子機２００は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、音源２０４、サウンドシステム（ＳＳ）２０５、センサ２０６、Ａ／Ｄ変換器２０７、ライト２０８、およびコネクタ２２１を備えて構成されている。
ＣＰＵ２０１は、ＲＯＭ２０２に記憶されたプログラムおよび親機１００から送信された楽音制御データに基づいて、接続された各部の制御を行うものである。ＲＯＭ２０２には、後述するように、制御プログラムの他、初期化データなどが記憶されている（図１２（１）参照）。
ＲＡＭ２０３は、読み書き可能なメモリであり、後述するように各種フラグなどを記憶するエリアが設けられる（図１２（２）参照）。
音源２０４は、親機１００の音源１０５と同じ方式で楽音信号の生成を行うものであって、ＣＰＵ２０１の制御の下で楽音信号を生成するものであり、音源２０４において生成された楽音信号は、サウンドシステム（ＳＳ）２０５から増幅されて放音されるように構成されている。
センサ２０６は、子機２００の動作を検出する加速度センサであり、Ａ／Ｄ変換器２０７は、センサ２０６のアナログ出力をデジタルデータに変換してＣＰＵ２０１に供給するものである。本実施形態では、子機２００の動作に応じて、楽音の生成およびライト２０８の発光を行うように構成されている。なお、センサ２０６の検出値の扱いについては、後に詳しく説明する。
ライト２０８は、点灯あるいは消灯をＣＰＵ２０１によって制御される発光体であり、本実施形態では、センサ２０６の出力結果に応じて発音がなされたこと、および、親機２００からデータの受信が完了してスタンバイ状態となったことなどを演奏者に報知する際に発光するようになっている。
【００１７】
（３）データ構成
次に、本実施形態で用いるデータ構成について説明する。本実施形態では、フロッピーディスク、親機１００のＲＯＭ１０３およびＲＡＭ１０４、子機２００のＲＯＭ２０２およびＲＡＭ２０３に、以下に説明する各種データが記憶されている。
【００１８】
▲１▼フロッピーディスク
図１０は、フロッピーディスクに記憶されたデータの例を示す図である。図示するように、フロッピーディスクには、記憶されているデータのバージョンデータ（図中“Ｖｅｒ”）、演奏データ（図中“ＳｏｎｇＤａｔａ”）、音色データ（図中“Ｔｏｎｅ[0]〜[M]”）、および、割当指示データ（図中“Ｓｐｅｃ[0]〜[N]”）などが記憶されている。ここで、Ｍは、前記演奏データにおいて使用される音色の個数であり、Ｎは同演奏データにおいて使用される子機の個数に対応する数（本実施形態では０〜１１）である。
演奏データは、親機１００が自動演奏を行うための音楽情報を示しており、上述のようにＭＩＤＩデータから構成されいる。ＭＩＤＩデータとしては、例えば、発音を指示する「ノートオン（ＮｏｔｅＯｎ）」や、消音を指示する「ノートオフ（ＮｏｔｅＯｆｆ）」などが含まれている。
音色データは、例えば波形データを読み出し再生する方式の音源などにおいて楽音を生成する際に用いられる波形データであり、音色データの種類（図中では、[M]で示している）が異なれば、生成される楽音の音色も異なるようになっている。本実施形態では、音色データは、フロッピーディスクに記憶されており、親機１００は、ここに記憶された音色データを読み出して、音色データを各子機２００に対して送信することによって音色の割当を行うようになっている。
割当指示データは、子機２００にどのような楽音制御データを割り当てるかを指示するデータであり、例えば、図示するように音色コード（図中“ＴｏｎｅＣｏｄｅ”）およびしきい値データ（図中“Ｓｅｎｓ”）などを含んでいる。音色コードは、上述の音色データの種類を指定するコードであり、しきい値データはセンサ２０６によって演奏動作を検出したと認識するためのしきい値を示す数値である。親機１００は、割当指示データの指示に基づいて、各子機２００に対して楽音制御データの割り当てを行うようになっている。
【００１９】
▲２▼親機１００
図１１は、親機１００のメモリに記憶されたデータの例を示す図であり、（１）はＲＯＭ１０３のデータ記憶例を、（２）はＲＡＭ１０４のデータ記憶例を示している。
図１１（１）に示すように、ＲＯＭ１０３には、親機１００を制御するためのプログラム（図中“Ｐｒｏｇｒａｍ”）の他、当該親機１００のバージョンデータ（図中“Ｖｅｒ”）、初期化データなどが記憶されている。
【００２０】
また、図１１（２）に示すように、ＲＡＭ１０４には、フロッピーディスクから読み込んだバージョンデータ（図中“Ｒｅａｄ  Ｖｅｒ”）、演奏データ（図中“ＳｏｎｇＤａｔａ”）および音色データ（図中“ＴｏｎｅＤａｔａ”）の他、各コネクタ１１２の状態を示すコネクタデータ（図中“Ｃｏｍ[0]〜[N]”、本実施形態ではＮ＝１１であり、各々対応する添え字のコネクタ１１２の状態を記憶する）、自動演奏における音量を示すデータ（図中“Ｖｏｌｕｍｅ”）、テンポを示すデータ（図中“Ｔｅｍｐｏ”）、調を示すデータ（図中“Ｔｕｎｅ”）が記憶され、親機１００の状態を示すフラグ（図中“ＤａｔａＬｏａｄｅｄ”、“ＳｔａｎｄＢｙ”、“Ｄｉｓｋ”、“Ｐｌａｙ”、“Ｐａｕｓｅ”）などが設定される。
コネクタデータとしては、フロッピーディスクから転送された上述の割当指示データ（図中“Ｓｐｅｃ[0]”）、子機２００が接続されている状態を示すフラグ（図中“Ｅｘｉｓｔ”）、子機２００に対してデータ送信を行ったことを示すフラグ（図中“Ｕｐｄａｔｅｄ”）がある。このＥｘｉｓｔフラグが“ｔｒｕｅ”であるときは、子機２００がコネクタ１１２に接続されている状態を示し、Ｕｐｄａｔｅｄフラグが“ｔｒｕｅ”であるときは、当該（[0]が示す）コネクタに接続されている子機２００に対してデータの送信が完了している状態を示している。
また、音量データは上述の音量スイッチ１２４ａ、１２４ｂの操作に基づいて更新される値であり、同様に、テンポデータは上述のテンポスイッチ１２５ａ、１２５ｂの操作に基づいて更新される値であり、調データは上述の転調スイッチ１２３ａ、１２３ｂの操作に基づいて更新される値である。
なお、ＤａｔａＬｏａｄｅｄフラグが“ｔｒｕｅ”であるときは、フロッピーディスクから所定のデータの読み込みが完了している状態を示し、ＳｔａｎｄＢｙフラグが“ｔｒｕｅ”であるときは、親機１００がスタンバイ状態であることを示し、Ｄｉｓｋフラグが“ｔｒｕｅ”であるときは、ＦＤＤ１３０にフロッピーディスクが挿入されている状態を示し、Ｐｌａｙフラグが“ｔｒｕｅ”であるときは、自動演奏中であることを示している。そして、Ｐａｕｓｅフラグが“ｔｒｕｅ”であるときは、自動演奏を停止中であることを示している。
【００２１】
▲３▼子機２００
図１２は、子機２００のメモリに記憶されたデータの例を示す図であり、（１）はＲＯＭ２０２のデータ記憶例を、（２）はＲＡＭ２０３のデータ記憶例を示している。
図１２（１）に示すように、ＲＯＭ１０３には、親機１００を制御するためのプログラム（図中“Ｐｒｏｇｒａｍ”）の他、初期化データなどが記憶されており、（２）に示すように、ＲＡＭ２０３には、親機１００から送信された音色データ（図中“Ｔｏｎｅ”）、しきい値データ（図中“Ｓｅｎｓｅ”）、センサ２０６における検出値を示すデータ（図中“Ｍａｇ”）などが記憶され、子機２００の状態を示すフラグ（図中“ＳｔａｎｄＢｙ”、“ＬｉｇｈｔＯｎ”、“ＮｏｔｅＯｎ”）などが設定される。
なお、ＳｔａｎｄＢｙフラグが“ｔｒｕｅ”であるときは、子機２００がスタンバイ状態であることを示し、ＬｉｇｈｔＯｎフラグが“ｔｒｕｅ”であるときは、ライト２０８を点灯中である状態を示し、ＮｏｔｅＯｎフラグが“ｔｒｕｅ”であるときは、音源２０４において楽音信号を生成中（発音中）の状態を示している。
【００２２】
２．実施形態の動作
次に、上記構成を有する実施形態の動作について説明する。
２−１．概要動作
まず、本実施形態の概要動作について説明する。本実施形態は、親機１００はデータに基づいて自動演奏を行い、各子機２００は指示動作（子機２００を振る動作）に基づいて、それぞれ割り当てられた音色の楽音を発音する電子楽器である。
親機１００は、電源投入時に接続されている子機２００の状態をチェックする。そして、ＦＤＤ１３０にフロッピーディスクが挿入されてデータが親機１００のＲＡＭ１０４に転送されると、データに基づいて音色を各子機２００に割り当てる。
なお、以下の説明では詳細は省略するが、本実施形態で親機１００と子機２００との間で送受信されるデータはヘッダ部とデータ部とから構成され、ヘッダ部にはデータ部に含まれるデータの種別を識別する情報が格納されている。親機１００および子機２００は、このヘッダ部を参照することにより、受信したデータが動作の指示を行うコマンドデータであるか、それとも単なるデータであるか、さらにはコマンドやデータの種別を識別することができる。
以下、このような動作を行うために、ＣＰＵ１０２およびＣＰＵ２０１がプログラムに基づいて行う処理について、フローチャートを参照しながら説明する。
【００２３】
２−２．各機器の動作
２−２−１．親機の動作
（１）パワーオン・オフイベント
本実施形態では親機１００に電源が投入されるとＣＰＵ１０２はＲＯＭ１０３に記憶されたプログラムに従い、後述する各種イベントに対応した処理を行う。メインルーチン（詳細は省略）はまずＲＡＭの初期化を行い、その後はパネル操作や子機２００の接続などによって発生してＲＡＭ１０４の所定のエリア（図１１では省略）にスタックされる各種イベントを順次読み出し、この読み出したイベントに対応する処理を実行するものである。
まず、電源スイッチ１４０の操作にかかる処理について、図１３および図１４に示すフローチャートを参照しながら説明する。
【００２４】
▲１▼パワーオンイベント
図１３は、電源の投入によってメインルーチンが発生するパワーオンイベントに応じてＣＰＵ１０が実行する処理（パワーオンイベント：図中“Ｅｖｅｎｔ．Ｐｏｗｅｒ．ＯＮ”）を示している。
ＣＰＵ１０２は、パワーオンイベントが発生すると、子機２００の接続確認を行う（Ｓ１１１１）。子機２００の接続確認処理においては、後述するコネクタ接続状態変化イベント（図中“  Ｅｖｅｎｔ．Ｃｏｍ［ｊ］．ＳＴＡＴＵＳ”。より具体的には図１８参照）を発生する。そして、各コネクタ１１２ｊ（ｊ＝０〜ｎ）毎にコネクタ接続状態変化イベントを発生した後、パワーオンイベント処理を終了する。
なお、パワーオンイベント処理を終了する前にフロッピーディスクが挿入されているか否かをチェックし、フロッピーディスクが挿入されていれば、後述のディスクインイベントを発生し、フロッピーディスクからのデータ読み込み処理を行うようにしてもよい。
【００２５】
(2)パワーオフイベント
図１４は、パワーオフイベントに応じてＣＰＵ１０２が実行する処理（パワーオフイベント：図中"Ｅｖｅｎｔ．Ｐｏｗｅｒ．ＯＦＦ"）を示している。パワーオフイベントは電源スイッチ１４０の操作に応じて発生し、ＣＰＵ１０２は、パワーオフイベントが発生すると、まず、Ｐｌａｙフラグの状態、すなわち、自動演奏中であるか否かを判定する（Ｓ１１２１）。ここで、自動演奏中であると判定した場合は（Ｓ１１２１；ｔｒｕｅ）、演奏終了イベント（図中"Ｅｖｅｎｔ．Ｐｌａｙ．ＳＴＯＰ"）を発生して自動演奏を終了させた後（Ｓ１１２２）、Ｄｉｓｋフラグの状態、すなわち、ＦＤＤ１３０にフロッピーディスクが挿入されているか否かを判定する（Ｓ１１２３）。一方、ステップＳ１１２１の判定において、自動演奏中でないと判定した場合は（Ｓ１１２１；ｆａｌｓｅ）、そのままステップＳ１１２３の判定に移行する。
ステップＳ１１２３の判定において、フロッピーディスクがＦＤＤ１３０に挿入されていると判定した場合は（Ｓ１１２３；ｔｒｕｅ）、ディスク排出イベント（図中"Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＥＪＥＣＴ"）を発生した後（Ｓ１１２４）、所定時間待機する（Ｓ１１２５）。一方、フロッピーディスクがＦＤＤ１３０に挿入されていないと判定した場合には（Ｓ１１２３；ｆａｌｓｅ）、そのまま所定時間待機し（Ｓ１１２５）、その後親機２００の電源は遮断される（Ｓ１１２６）。ここで、所定時間とは、演奏を終了してフロッピーディスクを排出するために十分な時間である。
【００２６】
（２）ディスクイベント
次に、フロッピーディスクの挿入および排出にかかる処理について、図１５および図１６に示すフローチャートを参照しながら説明する。
【００２７】
▲１▼ディスクインイベント
図１５は、デスクインイベントに応じてＣＰＵ１０２が実行する処理（ディスクインイベント：図中“Ｅｖｅｎｔ．Ｄｉｓｋ．ＩＮ”）を示している。ディスクインイベントはＦＤＤ１３０にフロッピーディスクが挿入されたことに応じて発生し、ＣＰＵ１０２は、ディスクインイベントが発生すると、まず、Ｄｉｓｋフラグをｔｒｕｅとし（Ｓ１２０１）、フロッピーディスクに記憶されているバージョンデータを読み込んで変数ＲｅａｄＶｅｒに格納する（Ｓ１２０２）。
【００２８】
そして、ＲＯＭ１０３に記憶されたバージョンデータＶｅｒとフロッピーディスクから読み込んだバージョンデータＲｅａｄＶｅｒとを比較して、挿入されたフロッピーディスクに記憶されたデータのバージョンが、親機１００のバージョンと適合しているか否かを判定する（Ｓ１２０３）。ここで、適合すると判定した場合は、フロッピーディスクに記憶されているデータを読み込んでよいと判定できるので、まず、ＲＡＭ１０４の初期化を行い（Ｓ１２０４）、ＳｔａｎｄＢｙフラグおよびＤａｔａＬｏａｄｅｄフラグをｆａｌｓｅとして（Ｓ１２０５）、演奏データが読み込みされていない状態とした後、ＦＤＤ１３０に挿入されているフロッピーディスクから演奏データを読み込む（Ｓ１２０６）。そして、演奏データの読み込みが完了した場合はＤａｔａＬｏａｄｅｄフラグをｔｒｕｅとし（Ｓ１２０７）、ＳｔａｎｄＢｙフラグをｔｒｕｅとして（Ｓ１２０８）、データの読み込みを完了して親機１００をスタンバイ状態とする。
【００２９】
次に、各コネクタ１１２ｊに対応するＵｐｄａｔｅｄフラグをｆａｌｓｅとして（Ｓ１２０９）、後述するデータ送信イベント（図中“Ｅｖｅｎｔ．Ｃｏｍ［ｊ］．ＤＡＴＡＳＥＮＤ”：図１７参照）を発生する（Ｓ１２１０）。このステップＳ２０９およびＳ２１０の処理をｊ＝１〜ｎまで繰り返した後、ディスクインイベント処理を終了する。
【００３０】
ところで、ステップＳ１２０３の判定において、バージョンが適合しないと判定した場合は、データをフロッピーディスクから読み込みできないと判定できるので、フロッピーディスクをＦＤＤ１３０から排出する処理を行い（Ｓ１２１１）、ＤｉｓＫフラグをｆａｌｓｅとする（Ｓ１２１２）。そして、挿入されたフロッピーディスクは適合しないものであった旨を警告音や音声メッセージを出力するなどしてユーザに報知する処理を行い（Ｓ１２１３）、ディスクインイベント処理を終了する。
【００３１】
▲２▼排出スイッチイベント
図１６は、排出スイッチイベントに応じてＣＰＵ１０２が実行する処理（排出スイッチイベント：図中“Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＥＪＥＣＴ”）を示している。排出スイッチイベントは排出スイッチ１３１の操作に応じて発生し、ＣＰＵ１０２は、排出スイッチイベントが発生すると、まず、Ｄｉｓｋフラグの状態、すなわち、フロッピーディスクがＦＤＤ１３０に挿入されているか否かを判定する（Ｓ１２２１）。ここで、フロッピーディスクがＦＤＤ１３０に挿入されていると判定した場合は（Ｓ１２２１；ｔｒｕｅ）、次にＤａｔａＬｏａｄｅｄフラグの状態、すなわち、データの読み込みが完了しているか否かを判定し（Ｓ１２２２）、読み込みが完了していないと判定した場合は（Ｓ１２２２；ｆａｌｓｅ）、フロッピーディスクからのデータ読み込み処理を中断すると同時に誤動作を防止する目的でＲＡＭ１０４の初期化を行う（Ｓ１２２３）。この場合、フロッピーディスクの読み込みを指示したディスクインイベント処理は強制終了し、図１５のステップＳ１２０７以後の処理は行われない。そして、フロッピーディスクを排出する旨を報知する処理を行い（Ｓ１２２４）、フロッピーディスクをＦＤＤ１３０から排出する（Ｓ１２２５）。ステップＳ１２２２の判定において、読み込みが完了していると判定した場合は（Ｓ１２２２；ｔｒｕｅ）、ステップＳ１２２３、Ｓ１２２４の処理を行わずに、フロッピーディスクの排出処理を行う（Ｓ１２２５）。
フロッピーディスクの排出を終了（Ｓ１２２５）した場合、あるいは、ステップＳ２２１の判定においてフロッピーディスクがＦＤＤ１３０に挿入されていないと判定した場合は（Ｓ１２２１；ｆａｌｓｅ）、ＤｉｓＫフラグをｆａｌｓｅとして（Ｓ１２２６）、排出イベント処理を終了する。
【００３２】
（３）子機への音色割り当て
次に、子機２００への音色を割り当てにかかる処理について、図１７および図１８に示すフローチャートを参照しながら説明する。
【００３３】
▲１▼コネクタ状態イベント
図１７は、コネクタ状態イベントに応じてＣＰＵ１０２が実行する処理（コネクタ状態イベント：図中“Ｅｖｅｎｔ．Ｃｏｍ［ｊ］．ＤＡＴＡＳＥＮＤ）を示している。コネクタ状態イベントは各コネクタ１１２ｉにおいて子機２００が接続された場合、もしくは、コネクタ１１２ｊと子機２００との接続が失われた場合に発生し、ＣＰＵ１０２は、コネクタ状態イベントが発生すると、ＣＰＵ１０２は、コネクタ１１２ｊから子機２００に対してｒｅｐｌａｙコマンドを送信する（Ｓ１３０１）。ｒｅｐｌａｙコマンドとは、親機１００から子機２００に対して送信するチェック用のコマンドであり、ｒｅｐｌａｙコマンドを受信した子機２００は、後述するように該コマンドを親機２００に返信するようになっている。
【００３４】
親機１００は、コネクタ１１２ｊを介して子機２００ｉから受信したデータをｋに保持し（Ｓ１３０２）、ｋ＝ｎｕｌｌであるか否か、すなわちｒｅｐｌａｙコマンドに対する応答がなされたか否かを判定する（Ｓ１３０３）。ここで、子機２００ｉがコネクタ１１２ｊに接続されていない場合、あるいは接続された子機２００ｉが破損している場合や誤動作を生じている場合は、子機２００ｉからｒｅｐｌａｙコマンドが返信されないので、ｋ＝ｎｕｌｌとなる。
従ってステップＳ１３０３の判定において、子機２００ｉから応答があったと判定した場合は（Ｓ１３０３；ｆａｌｓｅ）、当該子機２００ｉの接続されたコネクタｊについてのＣｏｍ[j]．Ｅｘｉｓｔフラグをｔｒｕｅとする（Ｓ１３０４）。そして、Ｃｏｍ[j]．Ｕｐｄａｔｅｄフラグの状態、すなわち、コネクタ１１２ｊに接続された子機２００ｉへのデータ送信を行ったか否かを判定し（Ｓ１３０５）、子機２００ｉへのデータ送信を行っていないと判定した場合は（Ｓ１３０５；ｆａｌｓｅ）、コネクタ１１２ｊにおけるデータ送信イベント（図中“Ｅｖｅｎｔ．Ｃｏｍ［ｊ］．ＤＡＴＡＳＥＮＤ”図１８参照）を発生して（Ｓ１３０６）、コネクタ状態イベント処理を終了する。
【００３５】
ところで、ステップＳ１３０３の判定において、子機２００ｉからの応答がなかったと判定した場合は（Ｓ１３０３；ｔｒｕｅ）、コネクタ１１２ｊには子機２００が接続されていない、あるいは、接続された子機２００が異常であると判定できるので、Ｃｏｍ[j]．Ｅｘｉｓｔフラグをｆａｌｓｅとして（Ｓ１３０７）、コネクタ状態イベント処理を終了する。
また、ステップＳ１３０５の判定において、すでに子機２００ｉへのデータ送信を行ったと判定した場合は（Ｓ１３０５；ｔｒｕｅ）、子機２００に対して新たにデータ送信を行う必要がないと判定できるので、ステップＳ１３０６の処理を行わずにコネクタ状態イベント処理を終了する。
【００３６】
▲２▼データ送信イベント
図１８は、データ送信イベントに応じてＣＰＵ１０２が実行する処理（データ送信イベント処理：図中“Ｅｖｅｎｔ．Ｃｏｍ［ｊ］．ＤＡＴＡＳＥＮＤ”）を示している。なお、この処理も、各コネクタ１１２ｊ毎に行われ、これにより、各コネクタ１１２ｊに接続された子機２００ｉへのデータ送信が行われるようになる。
【００３７】
データ送信イベントは上述のディスクインイベント処理もしくはコネクタ状態イベント処理の過程において発生し、コネクタ１１２ｊから対応する割当データを送信する処理を指示するものである。ＣＰＵ１０２は、データ送信イベント処理が発生すると、ＳｔａｎｄＢｙフラグの状態、すなわち、親機１００がスタンバイ状態であるか否かを判定する（Ｓ１３１１）。ここで、親機１００がスタンバイ状態であると判定した場合は（Ｓ１３１１；ｔｒｕｅ）、次に、Ｃｏｍ[j]．Ｅｘｉｓｔフラグの状態、すなわち、コネクタｊに子機２００ｉが正常に接続されているか否かを判定し（Ｓ１３１２）、正常に接続されていると判定した場合は（Ｓ１３１２；ｔｒｕｅ）、ＲＡＭ１０４に記憶されている音色コードデータ（図中“Ｔｏｎｅ[Ｃｏｍ[i]．ＴｏｎｅＣｏｄｅ]”）および、しきい値データ（図中“Ｃｏｍ[i]．Ｓｅｎｓ”）を、子機２００に送信する（Ｓ１３１３）。
ＣＰＵ１０２は、音色コードデータおよびしきい値データの送信を終了すると、データ送信終了コマンド（図中“ｃｏｍｐｌｅｔｅ”）を子機２００に送信し（Ｓ１３１４）、Ｃｏｍ[j]．Ｕｐｄａｔｅｄフラグをｔｒｕｅとして（Ｓ１３１５）、データ送信イベント処理を終了する。
【００３８】
なお、ステップＳ１３１１の判定において親機１００がスタンバイ状態ではないと判定した場合（Ｓ１３１１；ｆａｌｓｅ）、あるいは、ステップＳ１３１２の判定においてコネクタｊの子機２００ｉが正常に接続されていないと判定した場合は（Ｓ１３１２；ｆａｌｓｅ）、音色コードデータおよびしきい値データを送信することができないので、ステップＳ１３１３〜Ｓ１３１５の処理を行わずに、データ送信イベント処理を終了する。
【００３９】
（４）スイッチ操作
次に、操作部１２０のスイッチ操作にによって発生するイベントに応じてＣＰＵ１０２が実行する処理について、図１９〜図２２に示すフローチャートを参照しながら説明する。
【００４０】
▲１▼再生スイッチイベント
図１９は、再生スイッチイベントに応じてＣＰＵ１０２によって実行される処理（再生スイッチイベント：図中“Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＰＬＡＹ”）を示している。なお、本イベントにおいて判定に用いるフラグ（“Ｐｌａｙ”、“Ｐａｕｓｅ”）は、“Ｐｌａｙ”がｔｒｕｅであるときは、親機１００において自動演奏を行っている状態を示し、“Ｐａｕｓｅ”がｔｒｕｅであるときは、親機１００において自動演奏を行っている状態を示している。
【００４１】
再生スイッチイベントは、再生スイッチ１２１の操作に応じて発生し、ＣＰＵ１０２は、再生スイッチイベントが発生すると、ＳｔａｎｄＢｙフラグの状態、すなわち、親機１００がスタンバイ状態であるか否かを判定する（Ｓ１４０１）。ここで、親機１００がスタンバイ状態であると判定した場合は（Ｓ１４０１；ｔｒｕｅ）、次に、Ｐｌａｙフラグの状態、すなわち、自動演奏中であるか否かを判定し（Ｓ１４０２）、自動演奏中ではないと判定した場合は（Ｓ１４０２；ｆａｌｓｅ）、自動演奏イベントを発生させて（Ｓ１４０３）、Ｐｌａｙフラグをｔｒｕｅにして（Ｓ１４０４）、再生スイッチイベント処理を終了する。
【００４２】
ステップＳ１４０２の判定において、自動演奏中であると判定した場合は（Ｓ１４０２；ｔｒｕｅ）、Ｐａｕｓｅフラグの状態、すなわち、自動演奏を中断しているか否かを判定する（Ｓ１４０５）。ここで、自動演奏を中断していると判定した場合は（Ｓ１４０５；ｔｒｕｅ）、演奏再開イベント（図中“Ｅｖｅｎｔ．Ｐｌａｙ．ＣＯＮＴ”）を発生させて（Ｓ１４０６）、Ｐａｕｓｅフラグをｆａｌｓｅとした後に（Ｓ１４０７）、再生スイッチイベント処理を終了する。
一方、ステップＳ１４０５の判定において、自動演奏を中断していないと判定した場合は（Ｓ１４０５；ｆａｌｓｅ）、自動演奏中断イベント（図中“Ｅｖｅｎｔ．Ｐｌａｙ．ＰＡＵＳＥ”）を発生させて（Ｓ１４０８）、Ｐａｕｓｅフラグをｔｒｕｅとした後に（Ｓ１４０９）、再生スイッチイベント処理を終了する。
【００４３】
ところで、ステップＳ１４０１の判定において、親機１００がスタンバイ状態ではないと判定した場合は（Ｓ１４０１；ｆａｌｓｅ）、演奏の開始あるいは中断を行うことはできないと判定できるので、そのままスイッチイベント処理を終了する。
【００４４】
▲２▼停止スイッチイベント
図２０は、停止スイッチイベントに応じてＣＰＵ１０２が実行する処理（停止スイッチイベント：図中“Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＳＴＯＰ”）を示している。
停止スイッチイベントは、停止スイッチ１２２の操作に応じて発生し、ＣＰＵ１０２は、停止スイッチイベントが発生すると、Ｐｌａｙフラグの状態、すなわち、自動演奏中であるか否かを判定し（Ｓ１４１１）、自動演奏中であると判定した場合は（Ｓ１４１１；ｔｒｕｅ）、Ｐａｕｓｅフラグをｆａｌｓｅとして、Ｐａｕｓｅフラグの状態、すなわち、自動演奏を中断しているか否かを判定する（Ｓ１４１３）。ここで、自動演奏を中断していると判定した場合は（Ｓ１４１３；ｔｒｕｅ）、Ｐａｕｓｅフラグをｆａｌｓｅとして、自動演奏停止イベント（図中“Ｅｖｅｎｔ．Ｐｌａｙ．ＳＴＯＰ”）を発生した後（Ｓ１４１５）、停止スイッチイベント処理を終了する。
【００４５】
一方、ステップＳ１４１３の判定において、自動演奏を中断していないと判定した場合は（Ｓ１４１３；ｆａｌｓｅ）、ステップＳ１４１４の処理を行わずに自動演奏停止イベントを発生した後（Ｓ１４１５）、停止スイッチイベント処理を終了する。
なお、ステップＳ１４１１の判定において、自動演奏中ではないと判定した場合は（Ｓ１４１１；ｆａｌｓｅ）、演奏を停止する必要がないと判定できるので、そのまま、停止スイッチイベント処理を終了する。
【００４６】
▲３▼その他のスイッチイベント
図２１は、転調スイッチイベントに応じてＣＰＵ１０２が実行する処理（転調スイッチイベント：図中“Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＴＵＮＥ”）を示している。なお、音量スイッチイベント（音量スイッチ１２４ａ、１２４ｂの操作に応じて発生）、テンポスイッチイベント（テンポスイッチ１２５ａ、１２５ｂの操作に応じて発生）に応じてＣＰＵ１０２が実行する処理（“Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＶＯＬＵＭＥ”、“Ｅｖｅｎｔ．Ｓｗｉｔｃｈ．ＴＥＭＰＯ”）も共通するので、ここでは、転調スイッチイベントに応じてＣＰＵ１０２が実行する処理の説明を行う。
転調スイッチイベントは転調スイッチ１２３ａ、１２３ｂの操作に応じて発生し、転調スイッチ１２３ａの操作に応じた転調スイッチイベントが発生すると、ＲＡＭ１０４に記憶されたＴｕｎｅの値を１減算し、転調スイッチ１２３ｂの操作に応じた転調スイッチイベントが発生すると、ＲＡＭ１０４に記憶されたＴｕｎｅの値に１加算する（Ｓ１２４０）。
なお、本実施形態では、各スイッチに対応して設定される値は−５〜＋５の範囲の整数である。各値の初期値は０であり、ＣＰＵ１０２は、演奏データをフロッピーディスクから読み込んだ時点で各々の値を０にリセットする（図１５：Ｓ１２０４）。また、転調スイッチイベント（音量スイッチイベント、テンポスイッチイベント）の発生に応じた処理によって各値が−５〜＋５の範囲を逸脱することはない。
このようにＴｕｎｅの値を更新した後は、転調スイッチイベント処理を終了する。
【００４７】
（５）自動演奏処理
次に、自動演奏にかかる処理について説明する。図２２は、自動演奏処理を示すフローチャートである。自動演奏処理については公知の技術であるので詳細は省略するが、本実施形態では、自動演奏はテンポに応じた割り込み処理によって行われ、前述の自動演奏イベント、自動演奏中断イベント、自動演奏再開イベント、自動演奏終了イベントによって、自動演奏の開始、一時停止、終了が制御される。割り込み処理を開始すると、ＣＰＵ１０２は、データ中のＭＩＤＩデータを順次読み出して、ＭＩＤＩデータによって指示される演奏を再生する（Ｓ１４３０）。なお、割り込み周期（テンポ）は、上述のＴｅｍｐｏに応じて制御される。また、演奏再生においては、Ｖｏｌｕｍｅの値に応じて音量が制御され、Ｔｕｎｅの値に応じて転調が制御される。
【００４８】
２−２−２．子機の動作
次に、図２３〜図２７を参照しながら、子機２００の動作について説明する。本実施形態では、子機２００も親機１００と同様、ＣＰＵ２０１で実行される処理プログラムのメインルーチンは、子機２００の動作に伴い発生し、ＲＡＭ２０３の所定のエリア（図１２では省略）にスタックされる各種イベントを順次読み出し、この読み出したイベントに対する処理を実行するものである。
【００４９】
（１）子機２００の指示動作検出
図２３は、子機２００の指示動作を検出するための処理概念を示す図である。上述したように、子機２００には、センサ２０６が設けられており、センサ２０６は、子機断面におけるｘｙｚ軸方向の各々の加速度を検出して出力している。Ａ／Ｄ変換器２０７においてデジタル値に変換された各軸方向の検出値に基づいて、ＣＰＵ２０１は、子機２００の操作状態を示す検出値Ｍａｇを生成する。
検出値Ｍａｇは、図２３に示すように、各軸方向の加速度（力）の和、速度（力積）の和、あるいは、速度の二乗和（運動エネルギー）などを示すように算出すればよい。
【００５０】
（２）親機からの音色割り当て
まず、親機１００から音色の割り当てを受ける際の処理について説明する。
▲１▼コネクタ状態イベント
図２４は、コネクタ状態イベントに応じてＣＰＵ２０１が実行する処理（コネクタ状態イベント：図中“Ｅｖｅｎｔ．Ｃｏｍ．ＳＴＡＴＵＳ”）を示している。コネクタ状態イベントは、親機１００と同様、コネクタ２２１が親機１００のコネクタ１１２と接続された場合、もしくは、コネクタ２２１と親機１００のコネクタ１１２との接続が失われた場合に発生し、ＣＰＵ２０１は、コネクタ状態イベントが発生すると、ＣＰＵ２０１は、ＮｏｔｅＯｎフラグの状態、すなわち、発音処理中であるか否かを判定し（Ｓ２１０１）、発音処理中であると判定した場合は（Ｓ２１０１；ｔｒｕｅ）、ノートオフイベント（図中“Ｅｖｅｎｔ．ＮＯＴＥＯｆｆ”）を発生して、発音を停止する（Ｓ２１０２）。そして、ＮｏｔｅＯｎフラグをｆａｌｓｅとする（Ｓ２１０３）。
ステップＳ２１０１の判定において、発音処理中ではないと判定した場合（Ｓ２１０１；ｆａｌｓｅ）、あるいは、発音を停止した後（Ｓ２１０２、Ｓ２０１３）、ＣＰＵ２０１は、ＬｉｇｈｔＯｎフラグの状態、すなわち、ライト２０８が点灯中であるか否かを判定し（Ｓ２１０４）、ライト２０８が点灯中であると判定した場合は（Ｓ２１０４；ｔｒｕｅ）、ライトオフイベント（図中“Ｅｖｅｎｔ．ＬＩＧＨＴＯＦＦ”）を発生してライト２０８を消灯する（Ｓ２１０５）。そして、ＬｉｇｈｔＯｎフラグｆａｌｓｅとする（Ｓ２１０６）。
【００５１】
ステップＳ２１０４の判定において、ライト２０８を点灯中ではないと判定した場合（Ｓ２１０４；ｆａｌｓｅ）、あるいは、ライト２０８を消灯した後（Ｓ２１０５、Ｓ２０１６）、ＣＰＵ２０１は、ＳｔａｎｄＢｙフラグの状態、すなわち、子機２００がスタンバイ状態にあるいか否かを判定し（Ｓ２１０７）、スタンバイ状態ではないと判定した場合は（Ｓ２１０７；ｆａｌｓｅ）、誤動作を防止するためにＲＡＭ２０３を初期化した後に（Ｓ２１０８）、コネクタ状態イベント処理をする。
一方、子機２００がスタンバイ状態であると判定した場合は（Ｓ２１０７；ｔｒｕｅ）、ＲＡＭ２０３の初期化を行わずに、コネクタ状態イベント処理を終了する。
【００５２】
▲２▼データ受信イベント
図２５は、データ受信イベントに応じてＣＰＵ２０１が実行する処理（データ受信イベント：図中“Ｅｖｅｎｔ．Ｃｏｍ．ＤＡＴＡＩＮ”）を示している。データ受信処理イベントは、コネクタ２２１において親機１００からのデータ受信要求信号を受信したことに応じて発生し、データ受信イベントが発生すると、ＣＰＵ２０１は、受信したデータをいったんＲＡＭ２０３のテンポラリエリアに格納し（Ｓ２１１１）、受信したデータがｃｏｍｐｌａｔｅコマンドであるか否かを判定する（Ｓ２１１２）。ここで、受信したデータがｃｏｍｐｌａｔｅコマンドであると判定した場合は（Ｓ２１１２；ＹＥＳ）、親機１００からのデータ受信が完了したと判定できるので、ライトオンイベント（図中“Ｅｖｅｎｔ．ＬＩＧＨＴＯＮ”  ）を発生してライト２０８を点灯する（Ｓ２１１３）。そして、ＬｉｇｈｔＯＮフラグをｔｒｕｅとし（Ｓ２１１４）、ＳｔａｎｄＢｙフラグをｔｒｕｅとして（Ｓ２１１５）、子機２００をスタンバイ状態とした後にデータ受信イベント処理を終了する。
【００５３】
ところで、ステップＳ２１１２の判定において、受信したデータがｃｏｍｐｌａｔｅコマンドではないと判定した場合は（Ｓ２１１２；ＮＯ）、受信したデータがｒｅｐｌａｙコマンドであったか否かを判定する（Ｓ２１１６）。ここで、受信したデータがｒｅｐｌａｙコマンドであったと判定した場合は（Ｓ２１１６；ＹＥＳ）、親機１００は、子機２００が正常に接続されているか否かを検査する信号を送信してきたと判定できるので、これに応答してｒｅｐｌａｙコマンドをコールバックして（Ｓ２１１７）、子機２００をスタンバイ状態とした後にデータ受信イベント処理を終了する。
【００５４】
一方、ステップＳ２１１６の判定において、受信したデータがｒｅｐｌａｙコマンドではなかったと判定した場合は（Ｓ２１１６；ＮＯ）、受信したデータは、割当データであると判定できるので、まず、ＳｔａｎｄＢｙフラグの状態、すなわち、子機２００がスタンバイ状態にあるか否かを判定し（Ｓ２１１８）、スタンバイ状態であると判定した場合は（Ｓ２１１８；ｔｒｕｅ）、いったんＳｔａｎｄＢｙフラグをｆａｌｓｅとした後に（Ｓ２１１９）、ＲＡＭ２０３の初期化を行い（Ｓ２１２０）、受信したデータをＲＡＭ２０３の所定のエリアに書き込む（Ｓ２１２１）。ステップＳ２１１８の判定において、子機２００がスタンバイ状態ではないと判定した場合は（Ｓ２１１８；ｆａｌｓｅ）、受信したデータをＲＡＭ２０３の所定のエリアに書き込んだ後（Ｓ２１２１）、受信イベント処理を終了する。
【００５５】
（３）演奏処理
次に、子機２００の操作に応じた演奏処理について図２６および図２７を参照しながら説明する。
【００５６】
▲１▼タイマ割り込み１
図２６は、センサ２０６の出力値を定期的に検出して、発音およびライト２０８の点灯を行う処理（タイマ割り込み１）を示している。この割り込み処理は、プログラムされたタイマによって、演奏者の演奏動作を十分検知できる時間間隔毎に周期的に実行される。
タイマ割り込み１を開始すると、ＣＰＵ２０１は、上述したようにセンサ２０６の出力値から変数Ｍａｇを算出する（Ｓ２２０１）。そして、動作方向をレジスタＳＩＧＮ１にセットして（Ｓ２２０２）、Ｍａｇがしきい値Ｓｅｎｓｅ以上であるか否かを判定する（Ｓ２２０３）。ここで、Ｍａｇがしきい値Ｓｅｎｓｅ未満であると判定した場合は（Ｓ２２０３；ｆａｌｓｅ）、発音処理および点灯処理を行う必要がないと判定できるので、タイマ割り込み１を終了する。
【００５７】
Ｍａｇがしきい値Ｓｅｎｓｅ以上であると判定した場合は（Ｓ２２０３；ｔｒｕｅ）、ＳＩＧＮ０が示す方向が、ＳＩＧＮ１の示す方向と異なるか否かを判定する（Ｓ２２０４）。本実施形態では、ＳＩＧＮ０に前回の処理（Ｓ２２０５）における方向がセットされ、ＳＩＧＮ１に今回検出した方向（Ｓ２２０２）がセットされており、ＳＩＧＮ０とＳＩＧＮ１とを比較することによって、方向を判定することができるようになっている。
【００５８】
ステップＳ２２０４の判定において、今回の動作方向と前回の動作方向が同じであると判定した場合は（Ｓ２２０４；ｆａｌｓｅ）、新たな発音処理および点灯処理を行う必要がない場合であるとみなし、タイマ割り込み１を終了する。一方、今回の動作方向と前回の動作方向が異なると判定した場合は（Ｓ２２０４；ｔｒｕｅ）、今回検出した方向ＳＩＧＮ１の値をＳＩＧＮ０にセットする（Ｓ２２０５）。そして、ＮｏｔｅＯｎフラグをｔｒｕｅとして（Ｓ２２０６）、ノートオンイベント（図中“Ｅｖｅｎｔ．ＮＯＴＥＯＮ”）を発生し、ＣＰＵ２０１は音源２０４に対して、ＲＡＭ２０３に記憶した音色データに基づいた楽音を生成するように指示する（Ｓ２２０７）。ＣＰＵ２０１は、楽音の生成を開始すると、発音時間をＴＩＭＥＲ１にセットする（Ｓ２２０８）。この、ＴＩＭＥＲ１にセットされた値は、後述するタイマ割り込み２において消音するタイミングを決定するために用いられる。
発音開始処理（Ｓ２２０６〜Ｓ２２０８）を行った後、ＣＰＵ２０１は、ライト２０８を点灯する処理を行う。ここでは、まず、ＬｉｇｈｔＯｎフラグをｔｒｕｅとして（Ｓ２２０９）、ライトオンイベント（図中“Ｅｖｅｎｔ．ＬＩＧＨＴＯＮ”）を発生して、ＣＰＵ２０１はライト２０８の点灯を指示する（Ｓ２２１０）。ＣＰＵ２０１は、ライト２０８の点灯を開始すると、点灯時間をＴＩＭＥＲ２にセットする（Ｓ２２１１）。この、ＴＩＭＥＲ２にセットされた値は、後述するタイマ割り込み２において消灯するタイミングを決定するために用いられる。そして、発音開始処理および点灯開始処理のいずれもが終了すると、タイマ割り込み１を終了する。
【００５９】
▲２▼タイマ割り込み２
図２７は、タイマ割り込み１においてセットしたＴＩＭＥＲ１およびＴＩＭＥＲ２の値を所定周期でデクリメントして、消音およびライト２０８の消灯を行う処理（タイマ割り込み２）を示している。
タイマ割り込み２を開始すると、ＣＰＵ２０１は、まず、ＮｏｔｅＯｎフラグの状態、すなわち、子機２００が発音中であるか否かを判定する（Ｓ２２２１）。ここで、発音中であると判定した場合は（Ｓ２２２１；ｔｒｕｅ）、次に、ＴＩＭＥＲ１のカウント値が０より大きいか否かを判定し（Ｓ２２２２）、カウント値が０より大きいと判定した場合は（Ｓ２２２２；ｔｒｕｅ）、ＴＩＭＥＲ１のカウント値を所定値Ｄ１だけデクリメントする（Ｓ２２２３）。一方、ステップＳ２２２２の判定において、カウント値が０以下になったと判定した場合は（Ｓ２２２２；ｆａｌｓｅ）、消音タイミングになったと判定できるので、ノートオフイベント（図中“Ｅｖｅｎｔ．ＮＯＴＥＯＦＦ”）を発生して、ＣＰＵ２０１は音源２０４に消音を指示した後（Ｓ２２２４）、ＮｏｔｅＯｎフラグをｆａｌｓｅとする（Ｓ２２２５）。
【００６０】
ステップＳ２２２１の判定において、発音中ではないと判定した場合（Ｓ２２２１；ｆａｌｓｅ）、あるいは、ＴＩＭＥＲ１をデクリメントした後（Ｓ２２２３）、または、消音処理を行った後（Ｓ２２２４、Ｓ２２２５）、ＣＰＵ２０１は、ＬｉｇｈｔＯｎフラグの状態、すなわち、ライト２０８が点灯されているか否かを判定する（Ｓ２２２６）。ここで、ライト２０８が点灯中であると判定した場合は（Ｓ２２２６；ｔｒｕｅ）、次に、ＴＩＭＥＲ２のカウント値が０より大きいか否かを判定し（Ｓ２２２７）、カウント値が０より大きいと判定した場合は（Ｓ２２２７；ｔｒｕｅ）、ＴＩＭＥＲ２のカウント値を所定値Ｄ２だけデクリメントする（Ｓ２２２８）。一方、ステップＳ２２２７の判定において、カウント値が０以下になったと判定した場合は（Ｓ２２２７；ｆａｌｓｅ）、消灯タイミングになったと判定できるので、ライトオフイベント（図中“Ｅｖｅｎｔ．ＬＩＧＨＴＯＦＦ”）を発生して、ＣＰＵ２０１はライト２０８の消灯を指示した後（Ｓ２２２９）、ＬｉｇｈｔＯｎフラグをｆａｌｓｅとする（Ｓ２２３０）。
そして、ステップＳ２２２６の判定においてライト２０８を点灯中ではないと判定した場合（Ｓ２２２６；ｆａｌｓｅ）、あるいは、ＴＩＭＥＲ２をデクリメントした後（Ｓ２２２８）、または、消灯処理を行った後（Ｓ２２２９、Ｓ２２３０）、タイマ割り込み２を終了する。
なお、上記説明において詳細は省略したが、本実施形態の子機２００の音源２０４は、前述のノートオンイベントの発生に応じて、ＲＡＭ２０３に記憶された音色データに基づいた楽音信号の生成を開始し、ノートオフイベントの発生に応じて発生している楽音信号の消音を行うようＣＰＵ２０１によって制御されるものである。また、ライト２０８は前述のライトオンイベントに応じて発光し、ライトオフイベントに応じて消灯するようにＣＰＵ２０１によって制御されるものである。
【００６１】
３．第１実施形態の効果
上述した処理によって、親機１００は演奏データに基づいて自動演奏を行い、各子機２００はそれぞれ割り当てられた音色の楽音を指示動作に基づいて発音する。ＦＤＤ１３０にフロッピーディスクが挿入されて楽音制御データが親機１００のＲＡＭ１０４に転送されると、楽音制御データに対応した割当データ（音色データ、しきい値データ）を各子機２００ｉに送信して割り当てを行うので、フロッピーディスクに記録された楽音制御データに基づいて容易に初期設定を行うことができるようになる。
子機２００ｉを親機１００の各子機差込穴１１１ｊに差し込むことによって、コネクタ１１２ｊとコネクタ２２１ｉとを接続することができ、親機１００は、コネクタ１１２ｊにコネクタ２２１ｉが正常に接続されているか否かをチェックして、正常に接続されている場合に割り当てを行うので、演奏者は、子機２００ｉを親機１００の子機差込穴１１１ｊに差し込むだけで、初期設定を行うことができるようになる。
また、各子機２００ｉは、それぞれ音源２０４および指示動作（子機２００を振る動作）を検出するセンサ備え、検出された指示動作に対応して、送信された音色データに基づいた楽音の生成を行うので、演奏者は、各子機２００を振るだけで容易に演奏を行うことができるようになる。
【００６２】
Ｂ：第２実施形態
次に、本発明の第２の実施形態について説明する。第１実施形態は、各子機２００において発音を行う場合を例として説明したが、第２実施形態では、子機２００は、親機１００における発音を制御する場合を例として説明する。
【００６３】
１．第２実施形態の構成
まず、第２実施形態の構成について説明する。第２実施形態においては、外観構成および、親機１００の電気的構成については、異なる部分についてのみ説明して、図示は省略する。
第２実施形態においては、子機２００は、親機１００における自動演奏を制御するので、子機２００は、親機１００に対して、上述のＭａｇに応じて発生する演奏指示データ（トリガ信号）をリアルタイムで送信する。
従って、第１実施形態では、コネクタ１１２およびコネクタ２２１が接触している態様の接続を行うものとして説明したが、第２実施形態においては、コネクタ１１２およびコネクタ２２１は、例えば赤外線などを用いて、非接触（ワイヤレス）でデータの送受信を行うことができるように構成されている。
【００６４】
本実施形態では、特定の割当データＣｏｍ［ｊ］には、第１実施形態の音色データのかわりに、子機２００に対して親機１００の自動演奏のテンポを制御する機能を割り当てることを指示するｔｒｉｇｇｅｒコマンドが記憶されている。また、子機２００のＲＡＭ２０３には、上記第１実施形態の場合において記載したフラグに加え、Ｔｒｉｇｇｅｒフラグが設けられており、Ｔｒｉｇｇｅｒフラグが“ｔｒｕｅ”のときは、子機２００は親機１００の自動演奏のテンポを制御するものであることを示している。
【００６５】
２．第２実施形態の動作
次に、第２実施形態の動作について説明する。図２８は、第２実施形態におけるデータ受信イベントのフローチャートであり、図２９は、第２実施形態におけるタイマ割り込み１のフローチャートである。なお、その他の処理については、第１実施形態と同様であるので、図示および説明は省略する。
【００６６】
（１）データ受信イベント
図２８に示す各ステップのうち、ステップＳ２１１１〜Ｓ２１２０までは、第１実施形態と同様の処理であるので説明を省略し、ここでは、ステップＳ２１２１〜Ｓ２１２４について説明する。
子機２００のＣＰＵ２０１は、ＲＡＭ２０３を初期化した後（Ｓ２１２０）、受信した割当データの内容を判定する（Ｓ２１２１）。すなわち、割当データが、親機１００が子機２００ｉからのトリガ信号を受信することを示すｔｒｉｇｇｅｒコマンドであるか否かを判定し、ｔｒｉｇｇｅｒコマンドであると判定した場合は（Ｓ２１２１；ｔｒｕｅ）、ＲＡＭ２０３に設定されたＴｒｉｇｇｅｒフラグをｔｒｕｅとして（Ｓ２１２２）、データ受信イベント処理を終了する。一方、ｔｒｉｇｇｅｒコマンドではないと判定した場合は（Ｓ２１２１；ｆａｌｓｅ）、Ｔｒｉｇｇｅｒフラグをｆａｌｓｅとした後（Ｓ２１２３）、親機１００から受信したデータをＲＡＭ２０３の所定のエリアに書き込むと（Ｓ２１２４）、データ受信イベント処理を終了する。
【００６７】
（２）タイマ割り込み１
図２９に示す各ステップのうち、ステップＳ２２０１〜Ｓ２２１１は第１実施形態と同様の処理であるが、本実施形態では、ステップＳ２２０３とＳ２２０４との間にのステップＳ２２０３’およびステップＳ２２０３”が行われる点で異なるので、ここでは、ステップＳ２２０３’およびＳ２２０３”の処理について説明する。
第２実施形態においては、ＣＰＵ２０１は、センサ２０６の検出値Ｍａｇがしきい値Ｓｅｎｓｅ以上であるか否かを判定し（Ｓ２２０３）、しきい値以上であると判定した場合は（Ｓ２２０３；ｔｒｕｅ）、子機２００ｉにおける指示動作を検出したと判定できるので、Ｔｒｉｇｇｅｒフラグの状態、すなわち、親機１００にトリガ信号を送る必要があるか否かを判定する（Ｓ２２０３’）。
ここで、トリガ信号を送信する必要があると判定した場合には（Ｓ２２０３’；ｔｒｕｅ）、トリガ信号を親機１００に送信して（Ｓ２２０３”）、ステップＳ２２０４に移行する。一方、ステップＳ２２０３の判定において、トリガ信号を送信する必要がないと判定した場合には（Ｓ２２０３；ｔｒｕｅ）、子機２００において指示動作を検出していないと判定できるので、タイマ割り込み１を終了する。
【００６８】
このように子機２００が送信するトリガ信号を受信する親機１００は、該トリガ信号を受信する間隔に基づいて（例えばトリガ信号間隔を４分音符の長さであるとみなし）、自動演奏のテンポを制御する。
【００６９】
３．第２実施形態の効果
このように、第２実施形態においては、親機１００は各子機２００に対してトリガ信号を受信するか否かを示すｔｒｉｇｇｅｒコマンドを送信し、ｔｒｉｇｇｅｒコマンドを受信した子機２００は、指示動作を検出した場合に親機１００に対してトリガ信号を送信する。そして、親機１００は、受信したトリガ信号に応じて上述のテンポデータ（Ｔｅｍｐｏ）の値を更新するので、親機１００における自動演奏を子機２００の指示動作に基づいて制御できるようになる。
【００７０】
Ｃ：第３実施形態
次に、本発明の第３の実施形態について説明する。第３実施形態においては、子機２００に備えられたライト２０８を用いて、演奏者に対して操作タイミングを指示する例について説明する。
【００７１】
１．第３実施形態の構成
まず、第３実施形態の構成について説明する。第３実施形態においては、外観構成および、親機１００の電気的構成については、異なる部分についてのみ説明して、図示は省略する。
第３実施形態においては、親機１００は、子機２００における発音タイミングを指示するので、親機１００は、子機２００に対して、発音タイミングを指示するタイミング信号をリアルタイムで送信する。
従って、第１実施形態では、コネクタ１１２およびコネクタ２２１が接触している態様の接続を行うものとして説明したが、第２実施形態においては、コネクタ１１２およびコネクタ２２１は、例えば赤外線などを用いて、非接触（ワイヤレス）でデータの送受信を行うことができるように構成されている。
また、第３実施形態におけるデータには、各子機２００ｉ毎に、発音タイミングを指示するためのタイミング指示データを含んでいる（図示略）。
【００７２】
２．第３実施形態の動作
次に、第３実施形態の動作について説明する。第３実施形態では、親機１００がデータに基づいてタイミングデータを各子機２００に送信する。タイミングデータには、演奏タイミングとなる子機２００ｉのＩＤを示すデータが含まれており、親機１００は、タイミングデータを各子機２００ｉに対して一斉に送信し、タイミングデータを受信した子機２００ｉは、受信したＩＤが自己のＩＤと一致している場合に演奏者に対して指示動作を行うタイミングを報知する。図３０は、第３実施形態におけるタイマ割り込み３のフローチャートである。なお、その他の処理については、第１実施形態と同様であるので、図示および説明は省略する。
子機２００ｉには、各々固有のＩＤが設定され、各子機のＲＡＭ２０３には、このＩＤを記憶するためのエリアが設けられている。このＩＤは、ＲＯＭ２０２に予め記憶しておいたＩＤをＲＡＭ２０３に転送するといった固定的なものであってもよいし、親機１００が子機２００ｉに割当データを送信する際。子機２００ｉが接続されている親機１００のコネクタ１１２ｊに対応した番号をＩＤとして、割当データとともに子機２００ｉに送信するといった動的なものであってもよい。
【００７３】
（１）タイマ割り込み３
図３０に示すタイマ割り込み３は、親機１００からタイミング信号（図中“Ｅｖｅｎｔ．ＴＩＭＩＮＧ”）を所定周期で受信して、受信したタイミングデータが自己宛のデータであれば、演奏者に対して指示動作を行うタイミングを報知する処理である。
より詳細には、タイマ割り込み３にかかる処理を開始すると、ＣＰＵ２０１は、親機１００からタイミングデータを受信したか否かを判定し（Ｓ２３０１）、タイミングデータを受信したと判定した場合は（Ｓ２３０１；ｔｒｕｅ）、タイミングデータに含まれるＩＤ（図中“ＴＩＭＩＮＧ．ＩＤ”）が自己のＩＤと一致するか否かについて判定する（Ｓ２３０２）。なお、自己のＩＤは、上述したようにＲＡＭ２０３に記憶されている。
【００７４】
ステップＳ２３０２の判定において、受信したＩＤと自己のＩＤとが一致したと判定した場合は（Ｓ２３０２；ｔｒｕｅ）、ＬｉｇｈｔＯｎフラグをｔｒｕｅとして（Ｓ２３０３）、ライトオンイベントを発生してライト２０８の点灯を開始した後（Ｓ２３０４）、点灯時間をＴＩＭＥＲ２にセットして（Ｓ２３０５）、タイマ割り込み３を終了する。
ステップＳ２３０１の判定において、タイミングデータを受信していないと判定した場合（Ｓ２３０１；ｆａｌｓｅ）、あるいは、ステップＳ２３０２の判定において、受信したＩＤと自己のＩＤとが一致しないと判定した場合は（Ｓ２３０２；ｆａｌｓｅ）、ライト２０８を転送する必要がないと判定できるので、ステップＳ２３０３〜Ｓ２３０５にかかる処理を行わずに、タイマ割り込み３を終了する。
【００７５】
３．第３実施形態の効果
このように、第３実施形態においては、親機１００は、子機２００に対して演奏タイミングを示すタイミングデータを送信し、子機２００は、受信したタイミングデータに基づいてライト２０８を点灯することによって、子機２００を振る動作を行うタイミングを演奏者に報知するので、演奏者は容易に演奏を行うことができるようになる。
【００７６】
Ｄ：変形例
本発明は、上述した実施形態に限定されるものではなく、以下のような各種の変形が可能である。
【００７７】
上記実施形態では、演奏全体を制御する第１の機器として親機１００をあげ、親機１００とは独立して楽音制御を行う第２の機器として子機２００ｉをあげて、本発明にかかる電子楽器の説明を行ったが、これらはあくまでも例示であって、図示して説明した構成および処理に限定されるものではない。
演奏指示の態様としても、上記実施形態のように子機２００を振る動作を検出する場合に限らず、子機２００を打撃する動作を検出してもよい。
上記実施形態においては、子機２００は、前回検出した運動方向ＳＩＧＮ０と今回検出したＳＩＧＮ１とを比較し、ＳＩＧＮ０とＳＩＧＮ１とが異なるときに発音指示を行うようにしたが、ＳＩＧＮ０とＳＩＧＮ１とを比較する際にある程度の幅を持たせ、ＳＩＧＮ０を基準とした範囲（例えば、ＳＩＧＮ０を法線ベクトルとする平面に対してＳＩＧＮ０と対向する方向）であった場合に発音指示を行うようにしてもよい。
【００７８】
上記実施形態においては、子機２００の運動状態を３方向において検出しているが、これに限らず、少なくとも１以上の方向を検出できればよい。また、運動状態を検出する際に用いられるしきい値は、親機１００が子機２００に送信するものに限らず、子機２００のＲＯＭ２０３などにあらかじめしきい値を記憶させておき、このしきい値を使用するものとしてもよい。さらにまた、別途しきい値設定手段を設け、演奏者がこのしきい値設定手段を操作することでしきい値を設定するようにしてもよいし、このしきい値設定手段は演奏者の動作特徴を解析するものであって、この解析結果に応じて自動的にしきい値を設定するものであってもよい。
【００７９】
上記実施形態では、子機２００に割り当てる演奏指示としては、第１および第３実施形態では楽音生成（発音）指示をあげて、第２実施形態ではテンポ変更指示をあげて説明したが、これに限らず、演奏に関する指示であればどのような内容でもよく、例えば、音量や調などのテンポ以外の親機１００の自動演奏の属性を指示してもよいし、親機１００の自動演奏を制御する指示をしてもよい。さらに、他の子機２００に対するデータの割当指示や、フロッピーディスクからの楽曲データ読み込みなど演奏以外の指示を行うようにしてもよい。
また、１つの子機２００に対して同時に複数種類の楽音制御データを割り当てても構わない。例えば上記第２実施形態において、子機２００に対してＴｒｉｇｇｅｒを割り当てると同時に所定の音色データをも割り当てた場合、該子機２００は親機１００のテンポ制御を行うと同時に所定の音色で楽音信号を形成することができる。さらに、例えばｘ方向の運動状態に応じてテンポの制御を行い、ｙ方向の運動状態に応じて所定の音色で楽音信号形成といったように、運動方向に応じて異なる処理を行ってもよい。
【００８０】
上記実施形態では、フロッピーディスクによって供給され、子機２００に割り当てられるものとして、子機２００のセンサの検出結果に対するしきい値、音色データもしくは、子機２００が発生すべき信号を指示するデータを例示したが、これに限定されるものではなく、その他のデータであってもよいし、子機２００の動作を制御するプログラムであってもよい。また、親機１００における自動演奏に用いられる演奏データはＭＩＤＩデータに限らず、楽曲の自動演奏を制御できるものであればどのような形式のデータであっても構わない。
【００８１】
なお、上記実施形態においては、フロッピーディスクから各種データを読み込むものとして説明を行ったが、ＣＤ（Compact Disc）やＭＯ（Magneto Optical disk）などの他の可搬型の記録媒体を用いてもよいし、親機１００の内部に設置されたハードディスクドライブなどの大容量の記憶媒体（図示略）に記憶されたデータを読み込むようにしてもよい。また、任意の通信プロトコル（例えば、ＭＩＤＩ、ＴＣＰ／ＩＰ、ＩＥＥＥ１３９４など）に準拠した通信インターフェイス（図示略）を介して、他の機器からデータを受信するようにしてもよい。
【００８２】
上記実施形態においては、親機１００がデータの入力を完了した時点で子機２００に対する楽音制御データの割当を行うようにしたが、これに限らず、例えば子機２００に対する楽音制御データの割当を指示する手段を別途設け、この手段による指示に応じて楽音制御データの割当を行うようにしてもよい。例えば、ユーザが子機２００に対する楽音制御データの割当を指示する操作子を親機１００に設けてもよいし、上述したように特定の子機２００に他の子機に対する楽音制御データの割当を指示する機能を持たせるようにしてもよいし、上述の通信インターフェイスを介して入力される所定のコマンドであっても構わない。また、第２実施形態や第３実施形態のように、親機１００と子機２００との間で常時データの送受信が可能な場合は、任意のタイミングで楽音制御データの割当を行うようにしてもよい。
【００８３】
また、第３実施形態のように複数の子機２００を個別に特定できる場合は、子機２００毎に楽音制御データの割当状況を管理し、子機２００との接続が確立された時点で当該子機に対する楽音制御データの割当がなされていなかった場合に、当該子機２００に対する楽音制御データの割当を行うようにしてもよい。例えば、図２５もしくは図２８のステップＳ２１１７においてｒｅｐｌａｙのかわりに子機２００ｉ自身のＩＤを送信するようにし、親機１００は図１７のステップＳ１３０３において、子機２００が送信したＩＤによって子機２００を特定するようにすればよい。この場合、コネクタデータＣｏｍ［０］〜Ｃｏｍ［Ｎ］は対応する添え字のＩＤが割り当てられた子機２００の状態を記憶するものとなる。さらにまた、子機２００が接続されていない、もしくは、破損しているといったように、子機２００に楽音制御データを割り当てることができなかった場合は、当該楽音制御データに応じた処理を親機１００で行うようにしてもよい。例えば、ある音色の演奏パートが子機２００に割り当てられる場合、当該子機２００に音色データを割り当てることができなかった場合は、親機１００において所定のタイミングで該演奏パートを発音するようにしてもよい。
上記実施形態においては、各子機２００に対して各々楽音制御データを割り当てるようにしたが（図３１（ｆ））、図３１（ａ）から（ｅ）に示すようにコネクタ１１２もしくはコネクタに対応するＩＤが割り振られた子機２００をいくつかのグループに分類し、各グループ毎に共通の楽音制御データを割り当てるようにしても構わない。
【００８４】
上記実施形態においては、子機２００において演奏指示動作を検出したことや発音タイミング、または、データの受信完了を報知する手段としてランプ２０８を設けたが、これに限らず、例えばモータなどの振動体を設けて、該モータを駆動することによって発生する振動によって演奏者に報知を行ってもよい。また、演奏指示動作を検出したことを報知する場合には、上記モータなどの振動体にかえて、子機２００の筐体上部２１０および筐体下部２２０の全体もしくは一部を硬質の材料で形成し、子機２００のサウンドシステム（ＳＳ）２０５で楽音の発生に伴うスピーカの振動によって子機２００を振動させるようにしてもよい。さらにまた、このような報知手段を、例えば、子機２００の異常など他の情報を演奏者に報知するために用いても構わない。
【００８５】
上記実施形態においては、親機１００、子機２００は、あらかじめ音色データを記憶しておかずに、フロッピーディスクや親機１００から送信された音色データを用いて楽音の生成を行っているが、あらかじめ複数の音色データを記憶しておき、フロッピーディスクや親機１００から送信された音色コードによって割り当てが行われるようにしても構わない。あるいは、あらかじめ予備の音色データを親機１００や子機２００に記憶しておいて、フロッピーディスクや親機１００から正常に音色データが送信されなかった場合に、予備の音色データを用いるようにしてもよい。
また、上記実施形態の音源として、ＰＣＭ音源などの波形データを用いるものを例示したが、ＦＭ音源や物理モデル音源など、いかなる形式の音源を使用しても構わない。音色データは音源に適合する形式のデータであればいかなる形式のものであっても構わないのは勿論である。
【００８６】
また、上記実施形態においては、親機１００に子機２００が正常に接続されている場合に割当データの送信を行っているが、データ送信が完了する前に子機２００が親機１００から離された場合には、例えば警告音の発音など、その旨を警告する手段を設けてもよい。
上記実施形態においては、図７に示すような同心円状のコネクタ１１２および２２１によって親機１００と子機２００とを接続しているが、これに限らず、図３２に示すような非対称のコネクタ形状でもよい。図７に示す形状によれば、子機２００を子機差込穴１１１に差し込む際の方向を意識する必要がなくなり、図３２に示すような非対称の形状によれば、差込方向の間違えを防止することができる。
なお、上記実施形態で説明を行った子機２００の構成のうち、音源およびサウンドシステムは省略しても構わない。また、さらに子機２００の構成を簡略化し、センサ２０６とコネクタ２２１のみの構成としても構わない。これらの場合、子機２００は親機１００とデータの送受信を行う操作子として機能する。
【００８７】
なお、上記実施形態では、制御プログラムはＲＯＭ１０３およびＲＯＭ２０２に記憶されているが、これに限らず、不揮発性メモリカード、ＣＤ−ＲＯＭ、フロッピーディスク、光磁気ディスク、および磁気ディスク等の可搬型の記録媒体に記録されたデータをハードディスク等の記憶装置に転送できるように構成してもよい。このようにすれば、制御情報や制御プログラム等の追加（インストール）や更新（バージョンアップ）の際に便利である。また、可搬型の記録媒体から直接ＲＡＭ１０４あるいはＲＡＭ２０３へデータを転送するようにしてもよい。
【００８８】
【発明の効果】
以上説明したように、本発明によれば、多人数が容易に演奏に参加できるようになる。
【図面の簡単な説明】
【図１】  本実施形態の外観構成を示す図である。
【図２】  子機の使用態様を説明する図である。
【図３】  親機の外観構成を示す図である。
【図４】  操作部の外観構成を示す図である。
【図５】  子機の外観構成を示す図である。
【図６】  親機と子機との接続形態を説明する図である。
【図７】  コネクタの形状を示す図である。
【図８】  親機の電気的構成を示すブロック図である。
【図９】  子機の電気的構成を示すブロック図である。
【図１０】  フロッピーディスクに記憶されたデータの例である。
【図１１】  親機のメモリに記憶されたデータの例である。
【図１２】  子機のメモリに記憶されたデータの例である。
【図１３】  親機における電源オンイベントを示すフローチャートである。
【図１４】  親機における電源オフイベントを示すフローチャートである。
【図１５】  親機におけるディスク挿入イベントを示すフローチャートである。
【図１６】  親機におけるディスク排出イベントを示すフローチャートである。
【図１７】  親機におけるコネクタ状態イベントを示すフローチャートである。
【図１８】  親機におけるデータ送信イベントを示すフローチャートである。
【図１９】  親機における再生スイッチイベントを示すフローチャートである。
【図２０】  親機における停止スイッチイベントを示すフローチャートである。
【図２１】  親機における転調スイッチイベントを示すフローチャートである。
【図２２】  親機における割り込み処理を示すフローチャートである。
【図２３】  子機における指示動作の検出手段を説明する図である。
【図２４】  子機におけるコネクタ状態イベントを示すフローチャートである。
【図２５】  子機におけるデータ受信イベントを示すフローチャートである。
【図２６】  子機における割り込み処理１を示すフローチャートである。
【図２７】  子機における割り込み処理２を示すフローチャートである。
【図２８】  第２実施形態における子機のデータ受信イベントを示すフローチャートである。
【図２９】  第２実施形態における子機の割り込み処理１を示すフローチャートである。
【図３０】  第３実施形態における子機の割り込み処理３を示すフローチャートである。
【図３１】  コネクタ毎の音色割り当てに関する変形例を示す図である。
【図３２】  コネクタ形状の変形例を示す図である。
【符号の説明】
１００……親機、１０１……バス、１０２……ＣＰＵ、１０３……ＲＯＭ、１０４……ＲＡＭ、１０５……音源、１０６……サウンドシステム、１１０……子機差込部、１１１……子機差込穴、１１２……コネクタ、１１３ａ、１１３ｂ……電源端子、１１４ａ……データ入力端子、１１４ｂ……データ出力端子、１２０……操作部、１２１……再生スイッチ、１２２……停止スイッチ、１２３ａ、１２３ｂ……転調スイッチ、１２３ｃ……転調表示部、１２４ａ、１２４ｂ……音量スイッチ、１２３ｃ……音量表示部、１２５ａ、１２５ｂ……テンポスイッチ、１２５ｃ……テンポ表示部、１３０……ＦＤＤ、１４０……電源スイッチ、２００……子機、２０１……ＣＰＵ、２０２……ＲＯＭ、２０３……ＲＡＭ、２０４……音源、２０５……サウンドシステム、２０６……センサ、２０７……Ａ／Ｄ変換器、２０８……ライト、２１０……筐体上部、２１１、２１２……開口部、２２０……筐体下部、２２１……コネクタ、２２２ａ、２２２ｂ……電源端子、２２３ａ……データ出力端子、２２３ｂ……データ入力端子。
【図１】
0003666290.tif 000002
【図２】
0003666290.tif 000003
【図３】
0003666290.tif 000004
【図４】
0003666290.tif 000005
【図５】
0003666290.tif 000006
【図６】
0003666290.tif 000007
【図７】
0003666290.tif 000008
【図８】
0003666290.tif 000009
【図９】
0003666290.tif 000010
【図１０】
0003666290.tif 000011
【図１１】
0003666290.tif 000012
【図１２】
0003666290.tif 000013
【図１３】
0003666290.tif 000014
【図１４】
0003666290.tif 000015
【図１５】
0003666290.tif 000016
【図１６】
0003666290.tif 000017
【図１７】
0003666290.tif 000018
【図１８】
0003666290.tif 000019
【図１９】
0003666290.tif 000020
【図２０】
0003666290.tif 000021
【図２１】
0003666290.tif 000022
【図２２】
0003666290.tif 000023
【図２３】
0003666290.tif 000024
【図２４】
0003666290.tif 000025
【図２５】
0003666290.tif 000026
【図２６】
0003666290.tif 000027
【図２７】
0003666290.tif 000028
【図２８】
0003666290.tif 000029
【図２９】
0003666290.tif 000030
【図３０】
0003666290.tif 000031
【図３１】
0003666290.tif 000032
【図３２】
0003666290.tif 000033