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