JP3666291B2 - 電子楽器 - Google Patents
電子楽器 Download PDFInfo
- Publication number
- JP3666291B2 JP3666291B2 JP08254399A JP8254399A JP3666291B2 JP 3666291 B2 JP3666291 B2 JP 3666291B2 JP 08254399 A JP08254399 A JP 08254399A JP 8254399 A JP8254399 A JP 8254399A JP 3666291 B2 JP3666291 B2 JP 3666291B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- event
- connector
- connectors
- timbre
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、楽器の操作に不慣れな使用者が容易に演奏に参加できる電子楽器および電子楽器の制御装置に関する。
【0002】
【従来の技術】
従来より、演奏者の操作に対応して電気的に楽音を発生する電子楽器が知られている。このような電子楽器は、例えば、ピアノやギターなどの自然楽器をモデルにしており、一つの楽器を一人の演奏者が操作するものが一般的であった。
【0003】
【発明が解決しようとする課題】
ところで、近年は、単に一人の使用者が演奏を楽しむだけではなく、楽器の演奏に不慣れな多数の使用者が参加して一つの音楽を演奏することができるような電子楽器も望まれている。
しかしながら、従来の電子楽器を用いてこのような演奏を行う場合には多数の電子楽器を必要とするので、電子楽器の運搬や設置に大変手間がかかるという問題があった。また、多数の電子楽器で一つの演奏を行う場合には、各電子楽器を使用する演奏者は、それぞれの電子楽器の演奏方法や設定方法などの操作方法を知らなくてはならず、楽器の操作に不慣れな使用者にとっては、演奏に参加することは困難であるという問題があった。
【0004】
本発明は、上述した課題を解決するためになされたものであり、楽器の操作に不慣れな複数人の使用者が容易に演奏に参加できる電子楽器および電子楽器の制御装置を提供することを目的としている。
【0005】
【課題を解決するための手段】
上述した課題を解決するために、請求項1記載の発明は、第1機器と、複数の第2機器とを備える電子楽器において、前記第1機器は、音色を示す音色データを複数の音色毎に記憶する第1記憶手段と、前記第2機器が接続される複数のコネクタを配置した接続手段と、前記接続手段に配置された複数のコネクタにおいて、近接するコネクタが同じグループに含まれるように、前記複数のコネクタを1以上のいずれかの数のグループにグループ分けし、グループ毎に音色を割り当てる割当手段と、前記割当手段によりグループに割り当てられた音色の音色データを前記第1記憶手段から読出し、該グループに属するコネクタに接続されている第2機器へ送信する第1送信手段とを備え、前記第2機器は、前記第1送信手段より送信された音色データを受信する第1受信手段と、前記第1受信手段で受信した音色データを記憶する第2記憶手段と、当該第2機器の運動状態を検知する運動検知手段と、前記運動検知手段により検知した運動状態に応じて、前記第2記憶手段に記憶された音色データに基づいた楽音を発音する第1楽音発音手段とを備えることを特徴とする。
請求項2記載の発明は、請求項1記載の電子楽器において、前記グループに含まれる各コネクタの位置を結ぶと多角形が形成され、該多角形が隣接して幾何学的に1乃至複数形成されるように前記コネクタが配置されていることを特徴とする。
請求項3記載の発明は、請求項1記載の電子楽器において、前記コネクタに前記第2機器が接続されたことを検知する検知手段を備え、前記第1送信手段は、前記検知手段により前記第2機器が前記コネクタに接続されたことが検知された場合、前記音色データを送信することを特徴とする。
請求項4記載の発明は、請求項1乃至3のいずれかに記載の電子楽器において、前記第1機器は、前記音色データを外部から入力する入力手段を備え、前記入力手段に前記音色データが入力されたことに応じて、入力された前記音色データを前記第1記憶手段に記憶させるとともに、前記接続手段に配置された複数のコネクタのうち、近接するコネクタが同じグループに含まれるように、前記複数のコネクタを1以上のいずれかの数のグループにグループ分けし、該入力された音色データが示す音色をグループ毎に割り当てることを特徴とする
請求項5記載の発明は、請求項1に記載の電子楽器において、前記第2機器は、前記第1受信手段で受信した音色データが示す音色に対応した色の光を発光することを特徴とする。
【0008】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
【0009】
A:第1実施形態
1.実施形態の構成
1−1.外観構成
1−1−1.全体構成
図1は、本実施形態の外観構成を示す図である。本実施形態にかかる電子楽器は、親機100および、12個の子機200i(iは、0〜11の整数。以下、特定しない場合は子機200と記す)を備えて構成されており、親機100が行う自動演奏にあわせて、子機200毎にそれぞれ割り当てられた音色の楽音を発音して合奏するものである。
親機100は、フロッピーディスクから読み込んだデータに基づいて自動演奏を行うものである。また、データによって指定された音色を各子機200に対して設定する。本実施形態では、データは、MIDI(Musical Instrument Digital Interface)規格に基づいた演奏データを含み、親機100は、MIDIデータに基づいて楽音を生成するように構成されている。
本実施形態では、子機200に対しては楽音制御データとして親機100で自動演奏される楽曲の所定の演奏パートに対応する音色データが割り当てられるものとし、子機200は親機100とは独立に動作する電子楽器として機能する。なお、親機100では子機200に割り当てる演奏パートの楽音は発生しないものとする。
子機200は、それぞれ割り当てられた演奏パートに対応する音色の楽音を生成して発音する電子楽器であり、図2に示すように、演奏者が子機200を振ると、後に説明するように電気的に演奏指示を発生して、楽音を生成するように構成されている。
なお、本実施形態において行われる演奏としては、楽器の操作に不慣れな使用者が容易に演奏に参加できるように、例えば、各子機200に太鼓や掛け声などの音色を割り当てて、親機100が演奏する祭り囃子に併せて適宜子機200を振ることによって太鼓や掛け声を発音するようなものが適している。
【0010】
1−1−2.各機器の構成
次に、親機100および子機200の外観構成についてそれぞれ説明する。
(1)親機の構成
図3は、親機100の外観構成を示す図であり、(1)は、親機100の正面を示し、(2)は親機100の上面を示している。図3に示すように、親機100は、子機差込部110、操作部120、フロッピーディスクドライブ(FDD)130、および電源スイッチ140を備えて構成されている。
子機差込部110は、12個の子機差込穴111j(jは、0〜11の整数。以下、特定しない場合は、子機差込穴111と記す)を備え、各子機差込穴111jには、子機200iと接続するためのコネクタ112j(jは、0〜11の整数。以下、特定しない場合は、コネクタ112と記す)が設けられている(図6参照)。本実施形態においては、12個の子機200をそれぞれ子機差込穴111に差し込んで、親機100と子機200とを接続して、親機100から子機200への音色割り当てなどを行うようになっている。
操作部120は、親機100の自動演奏に関する操作を行うためのユーザインターフェイスであり、後に図4を参照して説明するように、各種スイッチおよび設定表示用のLED(Light Emitting Diode)などを備えて構成されている。FDD130は、挿入されたフロッピーディスクへのデータの読み書きを行う装置であり、本実施形態では、フロッピーディスクに記憶されたデータ(より詳細には後述する)を読み込むために用いられる。なお、FDD130に設けられた排出スイッチ131は、FDD130に挿入されているフロッピーディスクの排出を指示するスイッチである。電源スイッチ140は、親機100への電源投入および遮断を指示するスイッチである。
【0011】
図4は、操作部120の拡大図であり、この図に示すように、操作部120は、再生スイッチ121、停止スイッチ122、転調スイッチ123a、123b、転調表示LED123c、音量スイッチ124a、124b、音量表示LED124c、テンポスイッチ125a、125b、テンポ表示LED125cを備えて構成されている。
再生スイッチ121は、親機100における自動演奏の開始(再生)および、自動演奏の一時停止を指示するスイッチであり、停止スイッチ122は、自動演奏の終了(停止)を指示するスイッチである。
転調スイッチ123aおよび123bは、自動演奏における転調、いわゆる「キーコントロール」を指示するスイッチである。そして、転調スイッチ123aはキーを低く設定することを指示するスイッチであり、転調スイッチ123bはキーを高く設定することを指示するスイッチである。転調表示LED123cは、設定されているキーを表示するLEDであり、転調スイッチ123aがオンされる毎に、使用者からみて左に点灯位置が移動し、転調スイッチ123bがオンされる毎に、使用者からみて右に点灯位置が移動するようになっている。
【0012】
音量スイッチ124aおよび124bは、自動演奏における音量(ボリューム)を指示するスイッチである。そして、音量スイッチ124aはボリュームを小さく設定することを指示するスイッチであり、音量スイッチ124bはボリュームを大きく設定することを指示するスイッチである。音量表示LED124cは、設定されているボリュームを表示するLEDであり、音量スイッチ124aがオンされる毎に、使用者からみて左に点灯位置が移動し、音量スイッチ124bがオンされる毎に、使用者からみて右に点灯位置が移動するようになっている。そして、テンポスイッチ125aおよび125bは、自動演奏の速さ(テンポ)を指示するスイッチである。そして、テンポスイッチ125aはテンポを遅く設定することを指示するスイッチであり、テンポスイッチ125bはテンポを速く設定することを指示するスイッチである。テンポ表示LED125cは、設定されているテンポを表示するLEDであり、テンポスイッチ125aがオンされる毎に、使用者からみて左に点灯位置が移動し、テンポスイッチ125bがオンされる毎に、使用者からみて右に点灯位置が移動するようになっている。
なお、上記転調スイッチ123、音量スイッチ124、テンポスイッチ125は、標準のキー、音量、テンポからの相対的な値を指定するものであり、各々正負5段階の幅でキー、音量、テンポを設定するものである。この標準のキー、音量、テンポは上記フロッピーディスクが記憶する演奏データ中に含まれているものとする。
【0013】
(2)子機の構成
図5は、子機200の外観構成を示す図である。図5に示すように、子機200の筐体は、筐体上部210および筐体下部220に分かれて構成されており、長軸方向中心部に向かってテーパのつけられた略円筒状の形状に形成されている。
後に説明するように、子機200は、筐体上部210の内部にライト(図示略)を備えており、筐体上部210は、ライトの発光が外部から認識できるように、半透明の樹脂などで形成されている。
また、子機200は、音源およびサウンドシステム(図示略)を備えており、筐体上部210は、生成された楽音を外部に放音するための開口部211および212を備えている。また、筐体上部210は、生成された楽音の共鳴や遠達性などの音響特性を向上させるように、筐体上部210の形状や、開口部211、212の配置といった諸条件が調整されて形成されている。
開口部211は、筐体上部210の先端面に形成されており、周囲の人間に対して生成された楽音を広がりのある音として聞かせるための穴として機能する。一方、開口部212は、筐体上部210の側面に形成されており、当該子機200を把持している演奏者に対して生成された楽音を聞かせるための穴として機能する。
【0014】
演奏者が把持するための筐体下部220は、筐体下部220全体、もしくは、少なくとも筐体下部220の表面部はゴムなどの抵抗の高い素材が使用されている。また、筐体下部220の一端(グリップエンド側)の断面積は他端(筐体上部側)の断面積よりも大きな逆テーパ形状に形成されている。これにより、演奏者が子機200を振る際に手から抜けてしまうことを防止する。なお、本実施形態では、筐体下部220の断面は略円形に形成されており、平均的な成人が把持するのに適した程度の大きさとなっている。
【0015】
また、筐体下部部220の底面部には、図6に示すように、親機100との電気的接続を行うためのコネクタ221が設けられている。
ここで、図7は、コネクタ112およびコネクタ221の形状を示す図である。この図に示すように、親機100は、コネクタ112の中心から同心円状に配置された、電源端子113aおよび113b、データ入力端子114a、データ出力端子114bを備え、子機200は、コネクタ221の中心から同心円状に配置された、電源端子222aおよび222b、データ出力端子223a、データ入力端子223bを備えている。
【0016】
子機差込穴111の直径は、筐体下部220の底面の直径よりも若干大きめに形成され、これにより子機200が位置決めされた状態で親機100の子機差込穴111に収容されるようになっている。そして、位置決めされた状態で子機200が子機差込穴111に収容されたときに、親機100および子機200のコネクタ同士は、対応する各端子が対向して接続されるように構成されている。
親機100の電源端子113aおよび113bは、子機200の電源端子222aおよび222bと接続されて、親機100から子機200に対して電力供給を行うための端子である。子機200は充電可能な電池を備えており、子機200が親機100に接続されているときに、親機100から供給された電力を充電するように構成されている。
また、親機100のデータ出力端子114bは、子機200のデータ入力端子223bと接続されたときに子機200に対してデータを送信するための端子であり、親機100のデータ入力端子114aは子機200のデータ出力端子223aと接続されたときに子機200からデータを受信するための端子である。
【0017】
1−2.電気的構成
次に、本実施形態の電気的構成について説明する。
(1)親機の構成
図8は、親機100の電気的構成を示す図であり、この図に示すように、親機100は、バス101を介して接続されたCPU102、ROM103、RAM104、音源105、コネクタ112、操作部120、FDD130、および、音源105に接続されたサウンドシステム(SS)106を備えて構成されている。
CPU102は、ROM103に記憶されたプログラムに基づいて、バス101を介して接続された各部の制御を行うものである。ROM103には、後述するように、制御プログラムの他、バージョン情報や、初期化データなどが記憶されている(図12(1)参照)。
RAM104は、読み書き可能なメモリであり、後述するようにデータが記憶される他、各種フラグなどを記憶するエリアが設けられる(図12(2)参照)。
音源105は、CPU102の制御の下で、RAM104に記憶されたMIDIデータに基づいて楽音信号を生成するものであり、例えばRAM104に記憶された音色データである波形データを読み出して、該波形データを再生する方式の音源で構成され、音源105において生成された楽音信号は、サウンドシステム(SS)106から増幅されて放音されるように構成されている。
【0018】
(2)子機の構成
図9は、子機200の電気的構成を示す図であり、この図に示すように、子機200は、CPU201、ROM202、RAM203、音源204、サウンドシステム(SS)205、センサ206、A/D変換器207、ライト208、およびコネクタ221を備えて構成されている。
CPU201は、ROM202に記憶されたプログラムおよび親機100から送信された楽音制御データに基づいて、接続された各部の制御を行うものである。ROM202には、後述するように、制御プログラムの他、初期化データなどが記憶されている(図13(1)参照)。
RAM203は、読み書き可能なメモリであり、後述するように各種フラグなどを記憶するエリアが設けられる(図13(2)参照)。
音源204は、親機100の音源105と同じ方式で楽音信号の生成を行うものであって、CPU201の制御の下で楽音信号を生成するものであり、音源204において生成された楽音信号は、サウンドシステム(SS)205から増幅されて放音されるように構成されている。
センサ206は、子機200の動作を検出する加速度センサであり、A/D変換器207は、センサ206のアナログ出力をデジタルデータに変換してCPU201に供給するものである。本実施形態では、子機200の動作に応じて、楽音の生成およびライト208の発光を行うように構成されている。なお、センサ206の検出値の扱いについては、後に詳しく説明する。
ライト208は、点灯あるいは消灯をCPU201によって制御される発光体であり、本実施形態では、センサ206の出力結果に応じて発音がなされたこと、および、親機200からデータの受信が完了してスタンバイ状態となったことなどを演奏者に報知する際に発光するようになっている。
【0019】
(3)データ構成
次に、本実施形態で用いるデータ構成について説明する。本実施形態では、フロッピーディスク、親機100のROM103およびRAM104、子機200のROM202およびRAM203に、以下に説明する各種データが記憶されている。
【0020】
▲1▼フロッピーディスク
図10は、フロッピーディスクに記憶されたデータの例を示す図である。図示するように、フロッピーディスクには、記憶されているデータのバージョンデータ(図中“Ver”)、演奏データ(図中“SongData”)、音色データ(図中“Tone[0]〜[M]”)、および、割当指示データ(図中“Spec[0]〜[N]”)などが記憶されている。ここで、Mは、前記演奏データにおいて使用される音色の個数であり、Nは同演奏データにおいて使用される子機の個数に対応する数(本実施形態では0〜11)である。
演奏データは、親機100が自動演奏を行うための音楽情報を示しており、上述のようにMIDIデータから構成されいる。MIDIデータとしては、例えば、発音を指示する「ノートオン(NoteOn)」や、消音を指示する「ノートオフ(NoteOff)」などが含まれている。
音色データは、例えば波形データを読み出し再生する方式の音源などにおいて楽音を生成する際に用いられる波形データであり、音色データの種類(図中では、[M]で示している)が異なれば、生成される楽音の音色も異なるようになっている。本実施形態では、音色データは、フロッピーディスクに記憶されており、親機100は、ここに記憶された音色データを読み出して、音色データを各子機200に対して送信することによって音色の割当を行うようになっている。
割当指示データは、子機200にどのような楽音制御データを割り当てるかを指示するデータであり、例えば、図示するように音色コード(図中“ToneCode”)およびしきい値データ(図中“Sens”)などを含んでいる。音色コードは、上述の音色データの種類を指定するコードであり、しきい値データはセンサ206によって演奏動作を検出したと認識するためのしきい値を示す数値である。親機100は、割当指示データの指示に基づいて、各子機200に対して楽音制御データの割り当てを行うようになっている。
【0021】
より具体的には、図3(2)に示した各子機差込穴111jに設けられたコネクタ112jを、所定数のグループとして、各グループに属するコネクタ112に接続される子機200に共通の音色データを送信する。例えば、図11(a)に示すように、コネクタ1121〜11212までのすべてのコネクタを一つのグループとして、各コネクタ112に接続された12個の子機200に対して、共通の音色データを送信する。
また、図11(b)に示すように、コネクタ1121〜1124およびコネクタ1129、11210の6個のコネクタを一つのグループとし、コネクタ1125〜1128およびコネクタ11211、11212を一つのグループとして、各グループに属するコネクタ112に接続された6個の子機200に対して、共通の音色データを送信する。
また、図11(c)に示すように、コネクタ1121〜1124を一つのグループとし、コネクタ1125〜1128を一つのグループとし、コネクタ1129〜11212を一つのグループとして、各グループに属するコネクタ112に接続された4個の子機200に対して、共通の音色データを送信する。
【0022】
また、図11(d)に示すように、コネクタ1121、1122、1129を一つのグループとし、コネクタ1123、1124、11210を一つのグループとし、コネクタ1125,1126,11211を一つのグループとし、コネクタ1127,1128,11212を一つのグループとして、各グループに属するコネクタ112に接続された3個の子機200に対して、共通の音色データを送信する。
また、図11(e)に示すように、コネクタ1121、1122を一つのグループとし、コネクタ1123、1124を一つのグループとし、コネクタ1125,1126を一つのグループとし、コネクタ1127,1128を一つのグループとし、コネクタ1129,11210を一つのグループとし、コネクタ11211,11212を一つのグループとして、各グループに属するコネクタ112に接続された2個の子機200に対して、共通の音色データを送信する。
そして、図11(f)に示すように、グループ化を行わずに、各コネクタ112jに接続された子機200に対して、互いに異なる音色データを送信する。
【0023】
本実施形態では、グループ化を行わずに各コネクタ112jに接続された子機200に対してそれぞれ異なる音色データを送信するか、各コネクタ112jを所定のグループに分けて各グループ毎に共通の音色データを送信するかは、フロッピーディスクに記憶された割当指示データによって定められている。フロッピーディスクにはコネクタ112の数と同数(本実施形態では12個)の割当指示データが記憶されており、コネクタ112jが対応する割当指示データSpec[j]の内容は、あらかじめグループ分けした(もしくは個別の)ものとなっている。
グループ化を行って音色の割当を行う際に、グループを視覚的に認識しやすくする目的で、コネクタ112は多角形である構成単位を1ないし複数幾何学的に組み合わせた形態で配置されている。具体的には、親機100を上から見た場合、1つの構成単位は図11(d)に示すような三角形を形成し、4つの三角形が隣接し、かつ同一円周上に所定の間隔でもって配置されている。本実施形態においては、1つの構成要素を二等辺三角形とし、各二等辺三角形の等辺が隣接し、かつ等しい間隔で配置されていることが望ましい。なお、コネクタ112jは、子機差込穴111jの底面に設けられているので、コネクタ112jの配置がそのまま子機差込穴111jの配置となる。
【0024】
コネクタ112のグループ化は、三角形を基本とした簡単な規則に従って行われる。グループ化規則は、
i)複数の三角形を所定数組み合わせる
ii)同心円上に配置された複数の三角形の中心方向に対向する頂点(二等辺三角形であれば等辺に挟まれた頂点。図11(f)では9,10,11,12が相当する)毎、他の2頂点を組とした底辺毎に所定数組み合わせる
iii)各コネクタを個別のものとする
の3規則である。
【0025】
例えば、iの規則に従い三角形を1つずつ選択して組み合わせた場合は、図11(d)に示した4グループに分けられ、隣接した三角形を2つずつ組み合わせた場合は図11(b)に示した2グループに分けられる。
また、iiの規則に従い、同心円上に配置された複数の三角形の中心方向に対向する頂点のうち隣接したものを2つずつ組み合わせ、底辺を1つずつ組み合わせた場合は、図11(e)に示した6グループに分けられ、前者を4つ組み合わせ、隣接した後者を2つずつ組み合わせた場合は、図11(c)に示した3グループに分けられる。
iiiの規則に従い各コネクタ112を個別のものにした場合は、図11(f)に示す12グループ(すなわちグループ化なし)に分けられる。iの規則もしくはiiの規則に従いすべてのコネクタ112を組み合わせた場合は、図11(a)に示した1グループに分けられる。
【0026】
▲2▼親機100
図12は、親機100のメモリに記憶されたデータの例を示す図であり、(1)はROM103のデータ記憶例を、(2)はRAM104のデータ記憶例を示している。
図12(1)に示すように、ROM103には、親機100を制御するためのプログラム(図中“Program”)の他、当該親機100のバージョンデータ(図中“Ver”)、初期化データなどが記憶されている。
【0027】
また、図12(2)に示すように、RAM104には、フロッピーディスクから読み込んだバージョンデータ(図中"Read Ver")、演奏データ(図中"SongData")および音色データ(図中"ToneData")の他、各コネクタ112の状態を示すコネクタデータ(図中"Com[0]〜[N]"、本実施形態ではN=11であり、各々対応する添え字のコネクタ112の状態を記憶する)、自動演奏における音量を示すデータ(図中"Volume")、テンポを示すデータ(図中"Tempo")、調を示すデータ(図中"Tune")が記憶され、親機100の状態を示すフラグ(図中"DataLoaded"、"StandBy"、"Disk"、"Play"、"Pause")などが設定される。
コネクタデータとしては、フロッピーディスクから転送された上述の割当指示データ(図中"Spec[0]")、子機200が接続されている状態を示すフラグ(図中"Exist")、子機200に対してデータ送信を行ったことを示すフラグ(図中"Updated")がある。このExistフラグが"true"であるときは、子機200がコネクタ112に接続されている状態を示し、Updatedフラグが"true"であるときは、当該([0]が示す)コネクタに接続されている子機200に対してアップデートが完了している状態を示している。
また、音量データは上述の音量スイッチ124a、124bの操作に基づいて更新される値であり、同様に、テンポデータは上述のテンポスイッチ125a、125bの操作に基づいて更新される値であり、調データは上述の転調スイッチ123a、123bの操作に基づいて更新される値である。
なお、DataLoadedフラグが"true"であるときは、フロッピーディスクから所定のデータの読み込みが完了している状態を示し、StandByフラグが"true"であるときは、親機100がスタンバイ状態であることを示し、Diskフラグが"true"であるときは、FDD130にフロッピーディスクが挿入されている状態を示し、Playフラグが"true"であるときは、自動演奏中であることを示している。そして、Pauseフラグが"true"であるときは、自動演奏を停止中であることを示している。
【0028】
(3)子機200
図13は、子機200のメモリに記憶されたデータの例を示す図であり、(1)はROM202のデータ記憶例を、(2)はRAM203のデータ記憶例を示している。
図13(1)に示すように、ROM202には、子機200を制御するためのプログラム(図中"Program")の他、初期化データなどが記憶されており、(2)に示すように、RAM203には、親機100から送信された音色データ(図中"Tone")、しきい値データ(図中"Sense")、センサ206における検出値を示すデータ(図中"Mag")などが記憶され、子機200の状態を示すフラグ(図中"StandBy"、"LightOn"、"NoteOn")などが設定される。
なお、StandByフラグが"true"であるときは、子機200がスタンバイ状態であることを示し、LightOnフラグが"true"であるときは、ライト208を点灯中である状態を示し、NoteOnフラグが"true"であるときは、音源204において楽音信号を生成中(発音中)の状態を示している。
【0029】
2.実施形態の動作
次に、上記構成を有する実施形態の動作について説明する。
2−1.概要動作
まず、本実施形態の概要動作について説明する。本実施形態は、親機100はデータに基づいて自動演奏を行い、各子機200は指示動作(子機200を振る動作)に基づいて、それぞれ割り当てられた音色の楽音を発音する電子楽器である。
親機100は、電源投入時に接続されている子機200の状態をチェックする。そして、FDD130にフロッピーディスクが挿入されてデータが親機100のRAM104に転送されると、データに基づいて音色を各子機200に割り当てる。
なお、以下の説明では詳細は省略するが、本実施形態で親機100と子機200との間で送受信されるデータはヘッダ部とデータ部とから構成され、ヘッダ部にはデータ部に含まれるデータの種別を識別する情報が格納されている。親機100および子機200は、このヘッダ部を参照することにより、受信したデータが動作の指示を行うコマンドデータであるか、それとも単なるデータであるか、さらにはコマンドやデータの種別を識別することができる。
以下、このような動作を行うために、CPU102およびCPU201がプログラムに基づいて行う処理について、フローチャートを参照しながら説明する。
【0030】
2−2.各機器の動作
2−2−1.親機の動作
(1)パワーオン・オフイベント
本実施形態では親機100に電源が投入されるとCPU102はROM103に記憶されたプログラムに従い、後述する各種イベントに対応した処理を行う。メインルーチン(詳細は省略)はまずRAMの初期化を行い、その後はパネル操作や子機200の接続などによって発生してRAM104の所定のエリア(図12では省略)にスタックされる各種イベントを順次読み出し、この読み出したイベントに対応する処理を実行するものである。
まず、電源スイッチ140の操作にかかる処理について、図14および図15に示すフローチャートを参照しながら説明する。
【0031】
(1)パワーオンイベント
図14は、電源の投入によってメインルーチンが発生するパワーオンイベントに応じてCPU10が実行する処理(パワーオンイベント:図中"Event.Power.ON")を示している。
CPU102は、パワーオンイベントが発生すると、子機200の接続確認を行う(S1111)。子機200の接続確認処理においては、後述するコネクタ接続状態変化イベント(図中" Event.Com[j].STATUS"。より具体的には図18参照)を発生する。そして、各コネクタ112j(j=0〜n)毎にコネクタ接続状態変化イベントを発生した後、パワーオンイベント処理を終了する。
なお、パワーオフイベント処理を終了する前にフロッピーディスクが挿入されているか否かをチェックし、フロッピーディスクが挿入されていれば、後述のディスクインイベントを発生し、フロッピーディスクからのデータ読み込み処理を行うようにしてもよい。
【0032】
(2)パワーオフイベント
図15は、パワーオフイベントに応じてCPU102が実行する処理(パワーオフイベント:図中"Event.Power.OFF")を示している。パワーオフイベントは電源スイッチ140の操作に応じて発生し、CPU102は、パワーオフイベントが発生すると、まず、Playフラグの状態、すなわち、自動演奏中であるか否かを判定する(S1121)。ここで、自動演奏中であると判定した場合は(S1121;true)、演奏終了イベント(図中"Event.Play.STOP")を発生して自動演奏を終了させた後(S1122)、Diskフラグの状態、すなわち、FDD130にフロッピーディスクが挿入されているか否かを判定する(S1123)。一方、ステップS1121の判定において、自動演奏中でないと判定した場合は(S1121;false)、そのままステップS1123の判定に移行する。
ステップS1123の判定において、フロッピーディスクがFDD130に挿入されていると判定した場合は(S1123;true)、ディスク排出イベント(図中"Event.Switch.EJECT")を発生した後(S1124)、所定時間待機する(S1125)。一方、フロッピーディスクがFDD130に挿入されていないと判定した場合には(S1123;false)、そのまま所定時間待機し(S1125)、その後親機200の電源は遮断される(S1126)。ここで、所定時間とは、演奏を終了してフロッピーディスクを排出するために十分な時間である。
【0033】
(2)ディスクイベント
次に、フロッピーディスクの挿入および排出にかかる処理について、図16および図17に示すフローチャートを参照しながら説明する。
【0034】
▲1▼ディスクインイベント
図16は、デスクインイベントに応じてCPU102が実行する処理(ディスクインイベント:図中“Event.Disk.IN”)を示している。ディスクインイベントはFDD130にフロッピーディスクが挿入されたことに応じて発生し、CPU102は、ディスクインイベントが発生すると、まず、Diskフラグをtrueとし(S1201)、フロッピーディスクに記憶されているバージョンデータを読み込んで変数ReadVerに格納する(S1202)。
【0035】
そして、ROM103に記憶されたバージョンデータVerとフロッピーディスクから読み込んだバージョンデータReadVerとを比較して、挿入されたフロッピーディスクに記憶されたデータのバージョンが、親機100のバージョンと適合しているか否かを判定する(S1203)。ここで、適合すると判定した場合は、フロッピーディスクに記憶されているデータを読み込んでよいと判定できるので、まず、RAM104の初期化を行い(S1204)、StandByフラグおよびDataLoadedフラグをfalseとして(S1205)、演奏データが読み込みされていない状態とした後、FDD130に挿入されているフロッピーディスクから演奏データを読み込む(S1206)。そして、演奏データの読み込みが完了した場合はDataLoadedフラグをtrueとし(S1207)、StandByフラグをtrueとして(S1208)、データの読み込みを完了して親機100をスタンバイ状態とする。
【0036】
次に、各コネクタ112jに対応するUpdatedフラグをfalseとして(S1209)、後述するデータ送信イベント(図中"Event.Com[j].DATASEND":図19参照)を発生する(S1210)。このステップS1209およびS1210の処理をj=1〜nまで繰り返した後、ディスクインイベント処理を終了する。
【0037】
ところで、ステップS1203の判定において、バージョンが適合しないと判定した場合は、データをフロッピーディスクから読み込みできないと判定できるので、フロッピーディスクをFDD130から排出する処理を行い(S1211)、DisKフラグをfalseとする(S1212)。そして、挿入されたフロッピーディスクは適合しないものであった旨を警告音や音声メッセージを出力するなどしてユーザに報知する処理を行い(S1213)、ディスクインイベント処理を終了する。
【0038】
(2)排出スイッチイベント
図17は、排出スイッチイベントに応じてCPU102が実行する処理(排出スイッチイベント:図中"Event.Switch.EJECT")を示している。排出スイッチイベントは排出スイッチ131の操作に応じて発生し、CPU102は、排出スイッチイベントが発生すると、まず、Diskフラグの状態、すなわち、フロッピーディスクがFDD130に挿入されているか否かを判定する(S1221)。ここで、フロッピーディスクがFDD130に挿入されていると判定した場合は(S1221;true)、次にDataLoadedフラグの状態、すなわち、データの読み込みが完了しているか否かを判定し(S1222)、読み込みが完了していないと判定した場合は(S1222;false)、フロッピーディスクからのデータ読み込み処理を中断すると同時に誤動作を防止する目的でRAM104の初期化を行う(S1223)。この場合、フロッピーディスクの読み込みを指示したディスクインイベント処理は強制終了し、図16のステップS1207以後の処理は行われない。そして、フロッピーディスクを排出する旨を報知する処理を行い(S1224)、フロッピーディスクをFDD130から排出する(S1225)。ステップS1222の判定において、読み込みが完了していると判定した場合は(S1222;true)、ステップS1223、S1224の処理を行わずに、フロッピーディスクの排出処理を行う(S1225)。
フロッピーディスクの排出を終了(S1225)した場合、あるいは、ステップS1221の判定においてフロッピーディスクがFDD130に挿入されていないと判定した場合は(S1221;false)、DisKフラグをfalseとして(S1226)、排出イベント処理を終了する。
【0039】
(3)子機への音色割り当て
次に、子機200への音色を割り当てにかかる処理について、図18および図19に示すフローチャートを参照しながら説明する。
【0040】
(1)コネクタ状態イベント
図18は、コネクタ状態イベントに応じてCPU102が実行する処理(コネクタ状態イベント:図中"Event.Com[j].STATUS)を示している。コネクタ状態イベントは各コネクタ112jにおいて子機200が接続された場合、もしくは、コネクタ112jと子機200との接続が失われた場合に発生し、CPU102は、コネクタ状態イベントが発生すると、CPU102は、コネクタ112jから子機200に対してreplayコマンドを送信する(S1301)。replayコマンドとは、親機100から子機200に対して送信するチェック用のコマンドであり、replayコマンドを受信した子機200は、後述するように該コマンドを親機200に返信するようになっている。
【0041】
親機100は、コネクタ112jを介して子機200iから受信したデータをkに保持し(S1302)、k=nullであるか否か、すなわちreplayコマンドに対する応答がなされたか否かを判定する(S1303)。ここで、子機200iがコネクタ112jに接続されていない場合、あるいは接続された子機200iが破損している場合や誤動作を生じている場合は、子機200iからreplayコマンドが返信されないので、k=nullとなる。
従ってステップS1303の判定において、子機200iから応答があったと判定した場合は(S1303;false)、当該子機200iの接続されたコネクタjについてのCom[j].Existフラグをtrueとする(S1304)。そして、Com[j].Updatedフラグの状態、すなわち、コネクタ112jに接続された子機200iへのデータ送信を行ったか否かを判定し(S1305)、子機200iへのデータ送信を行っていないと判定した場合は(S1305;false)、コネクタ112jにおけるデータ送信イベント(図中“Event.Com[j].DATASEND”図19参照)を発生して(S1306)、コネクタ状態イベント処理を終了する。
【0042】
ところで、ステップS1303の判定において、子機200iからの応答がなかったと判定した場合は(S1303;true)、コネクタ112jには子機200が接続されていない、あるいは、接続された子機200が異常であると判定できるので、Com[j].Existフラグをfalseとして(S1307)、コネクタ状態イベント処理を終了する。
また、ステップS1305の判定において、すでに子機200iへのデータ送信を行ったと判定した場合は(S1305;true)、子機200に対して新たにデータ送信を行う必要がないと判定できるので、ステップS1306の処理を行わずにコネクタ状態イベント処理を終了する。
【0043】
▲2▼データ送信イベント
図19は、データ送信イベントに応じてCPU102が実行する処理(データ送信イベント処理:図中“Event.Com[j].DATASEND”)を示している。なお、この処理も、各コネクタ112j毎に行われ、これにより、各コネクタ112jに接続された子機200iへのデータ送信が行われるようになる。
【0044】
データ送信イベントは上述のディスクインイベント処理もしくはコネクタ状態イベント処理の過程において発生し、コネクタ112jから対応する割当データを送信する処理を指示するものである。CPU102は、データ送信イベント処理が発生すると、StandByフラグの状態、すなわち、親機100がスタンバイ状態であるか否かを判定する(S1311)。ここで、親機100がスタンバイ状態であると判定した場合は(S1311;true)、次に、Com[j].Existフラグの状態、すなわち、コネクタjに子機200iが正常に接続されているか否かを判定し(S1312)、正常に接続されていると判定した場合は(S1312;true)、RAM104に記憶されている音色コードデータ(図中"Tone[Com[j].ToneCode]")および、しきい値データ(図中"Com[j].Sens")を、子機200に送信する(S1313)。
CPU102は、音色コードデータおよびしきい値データの送信を終了すると、データ送信終了コマンド(図中"complete")を子機200に送信し(S1314)、Com[j].Updatedフラグをtrueとして(S1315)、データ送信イベント処理を終了する。
【0045】
なお、ステップS1311の判定において親機100がスタンバイ状態ではないと判定した場合(S1311;false)、あるいは、ステップS1312の判定においてコネクタjの子機200iが正常に接続されていないと判定した場合は(S1312;false)、音色コードデータおよびしきい値データを送信することができないので、ステップS1313〜S1315の処理を行わずに、データ送信イベント処理を終了する。
【0046】
(4)スイッチ操作
次に、操作部120のスイッチ操作にによって発生するイベントに応じてCPU102が実行する処理について、図20〜図23に示すフローチャートを参照しながら説明する。
【0047】
(1)再生スイッチイベント
図20は、再生スイッチイベントに応じてCPU102によって実行される処理(再生スイッチイベント:図中"Event.Switch.PLAY")を示している。なお、本イベントにおいて判定に用いるフラグ("Play"、"Pause")は、"Play"がtrueであるときは、親機100において自動演奏を行っている状態を示し、"Pause"がtrueであるときは、親機100において自動演奏を停止している状態を示している。
【0048】
再生スイッチイベントは、再生スイッチ121の操作に応じて発生し、CPU102は、再生スイッチイベントが発生すると、StandByフラグの状態、すなわち、親機100がスタンバイ状態であるか否かを判定する(S1401)。ここで、親機100がスタンバイ状態であると判定した場合は(S1401;true)、次に、Playフラグの状態、すなわち、自動演奏中であるか否かを判定し(S1402)、自動演奏中ではないと判定した場合は(S1402;false)、自動演奏イベントを発生させて(S1403)、Playフラグをtrueにして(S1404)、再生スイッチイベント処理を終了する。
【0049】
ステップS1402の判定において、自動演奏中であると判定した場合は(S1402;true)、Pauseフラグの状態、すなわち、自動演奏を中断しているか否かを判定する(S1405)。ここで、自動演奏を中断していると判定した場合は(S1405;true)、演奏再開イベント(図中“Event.Play.CONT”)を発生させて(S1406)、Pauseフラグをfalseとした後に(S1407)、再生スイッチイベント処理を終了する。
一方、ステップS1405の判定において、自動演奏を中断していないと判定した場合は(S1405;false)、自動演奏中断イベント(図中“Event.Play.PAUSE”)を発生させて(S1408)、Pauseフラグをtrueとした後に(S1409)、再生スイッチイベント処理を終了する。
【0050】
ところで、ステップS1401の判定において、親機100がスタンバイ状態ではないと判定した場合は(S1401;false)、演奏の開始あるいは中断を行うことはできないと判定できるので、そのままスイッチイベント処理を終了する。
【0051】
▲2▼停止スイッチイベント
図21は、停止スイッチイベントに応じてCPU102が実行する処理(停止スイッチイベント:図中“Event.Switch.STOP”)を示している。
停止スイッチイベントは、停止スイッチ122の操作に応じて発生し、CPU102は、停止スイッチイベントが発生すると、Playフラグの状態、すなわち、自動演奏中であるか否かを判定し(S1411)、自動演奏中であると判定した場合は(S1411;true)、Pauseフラグをfalseとして、Pauseフラグの状態、すなわち、自動演奏を中断しているか否かを判定する(S1413)。ここで、自動演奏を中断していると判定した場合は(S1413;true)、Pauseフラグをfalseとして、自動演奏停止イベント(図中“Event.Play.STOP”)を発生した後(S1415)、停止スイッチイベント処理を終了する。
【0052】
一方、ステップS1413の判定において、自動演奏を中断していないと判定した場合は(S1413;false)、ステップS1414の処理を行わずに自動演奏停止イベントを発生した後(S1415)、停止スイッチイベント処理を終了する。
なお、ステップS1411の判定において、自動演奏中ではないと判定した場合は(S1411;false)、演奏を停止する必要がないと判定できるので、そのまま、停止スイッチイベント処理を終了する。
【0053】
(3)その他のスイッチイベント
図22は、転調スイッチイベントに応じてCPU102が実行する処理(転調スイッチイベント:図中"Event.Switch.TUNE")を示している。なお、音量スイッチイベント(音量スイッチ124a、124bの操作に応じて発生)、テンポスイッチイベント(テンポスイッチ125a、125bの操作に応じて発生)に応じてCPU102が実行する処理("Event.Switch.VOLUME"、"Event.Switch.TEMPO")も共通するので、ここでは、転調スイッチイベントに応じてCPU102が実行する処理の説明を行う。
転調スイッチイベントは転調スイッチ123a、123bの操作に応じて発生し、転調スイッチ123aの操作に応じた転調スイッチイベントが発生すると、RAM104に記憶されたTuneの値を1減算し、転調スイッチ123bの操作に応じた転調スイッチイベントが発生すると、RAM104に記憶されたTuneの値に1加算する(S1420)。
なお、本実施形態では、各スイッチに対応して設定される値は−5〜+5の範囲の整数である。各値の初期値は0であり、CPU102は、演奏データをフロッピーディスクから読み込んだ時点で各々の値を0にリセットする(図16:S1204)。また、転調スイッチイベント(音量スイッチイベント、テンポスイッチイベント)の発生に応じた処理によって各値が−5〜+5の範囲を逸脱することはない。このようにTuneの値を更新した後は、転調スイッチイベント処理を終了する。
【0054】
(5)自動演奏処理
次に、自動演奏にかかる処理について説明する。図23は、自動演奏処理を示すフローチャートである。自動演奏処理については公知の技術であるので詳細は省略するが、本実施形態では、自動演奏はテンポに応じた割り込み処理によって行われ、前述の自動演奏イベント、自動演奏中断イベント、自動演奏再開イベント、自動演奏終了イベントによって、自動演奏の開始、一時停止、終了が制御される。割り込み処理を開始すると、CPU102は、データ中のMIDIデータを順次読み出して、MIDIデータによって指示される演奏を再生する(S1430)。なお、割り込み周期(テンポ)は、上述のTempoに応じて制御される。また、演奏再生においては、Volumeの値に応じて音量が制御され、Tuneの値に応じて転調が制御される。
【0055】
2−2−2.子機の動作
次に、図24〜図28を参照しながら、子機200の動作について説明する。本実施形態では、子機200も親機100と同様、CPU201で実行される処理プログラムのメインルーチンは、子機200の動作に伴い発生し、RAM203の所定のエリア(図12では省略)にスタックされる各種イベントを順次読み出し、この読み出したイベントに対する処理を実行するものである。
【0056】
(1)子機200の指示動作検出
図24は、子機200の指示動作を検出するための処理概念を示す図である。上述したように、子機200には、センサ206が設けられており、センサ206は、子機断面におけるxyz軸方向の各々の加速度を検出して出力している。A/D変換器207においてデジタル値に変換された各軸方向の検出値に基づいて、CPU201は、子機200の操作状態を示す検出値Magを生成する。
検出値Magは、図24に示すように、各軸方向の加速度(力)の和、速度(力積)の和、あるいは、速度の二乗和(運動エネルギー)などを示すように算出すればよい。
【0057】
(2)親機からの音色割り当て
まず、親機100から音色の割り当てを受ける際の処理について説明する。
(1)コネクタ状態イベント
図25は、コネクタ状態イベントに応じてCPU201が実行する処理(コネクタ状態イベント:図中"Event.Com.STATUS")を示している。コネクタ状態イベントは、親機100と同様、コネクタ221が親機100のコネクタ112と接続された場合、もしくは、コネクタ221と親機100のコネクタ112との接続が失われた場合に発生し、CPU201は、コネクタ状態イベントが発生すると、CPU201は、NoteOnフラグの状態、すなわち、発音処理中であるか否かを判定し(S2101)、発音処理中であると判定した場合は(S2101;true)、ノートオフイベント(図中"Event.NOTEOff")を発生して、発音を停止する(S2102)。そして、NoteOnフラグをfalseとする(S2103)。
ステップS2101の判定において、発音処理中ではないと判定した場合(S2101;false)、あるいは、発音を停止した後(S2102、S2103)、CPU201は、LightOnフラグの状態、すなわち、ライト208が点灯中であるか否かを判定し(S2104)、ライト208が点灯中であると判定した場合は(S2104;true)、ライトオフイベント(図中"Event.LIGHTOFF")を発生してライト208を消灯する(S2105)。そして、LightOnフラグfalseとする(S2106)。
【0058】
ステップS2104の判定において、ライト208を点灯中ではないと判定した場合(S2104;false)、あるいは、ライト208を消灯した後(S2105、S2106)、CPU201は、StandByフラグの状態、すなわち、子機200がスタンバイ状態にあるいか否かを判定し(S2107)、スタンバイ状態ではないと判定した場合は(S2107;false)、誤動作を防止するためにRAM203を初期化した後に(S2108)、コネクタ状態イベント処理を終了する。
一方、子機200がスタンバイ状態であると判定した場合は(S2107;true)、RAM203の初期化を行わずに、コネクタ状態イベント処理を終了する。
【0059】
▲2▼データ受信イベント
図26は、データ受信イベントに応じてCPU201が実行する処理(データ受信イベント:図中“Event.Com.DATAIN”)を示している。データ受信処理イベントは、コネクタ221において親機100からのデータ受信要求信号を受信したことに応じて発生し、データ受信イベントが発生すると、CPU201は、受信したデータをいったんRAM203のテンポラリエリアに格納し(S2111)、受信したデータがcomplateコマンドであるか否かを判定する(S2112)。ここで、受信したデータがcomplateコマンドであると判定した場合は(S2112;YES)、親機100からのデータ受信が完了したと判定できるので、ライトオンイベント(図中“Event.LIGHTON” )を発生してライト208を点灯する(S2113)。そして、LightONフラグをtrueとし(S2114)、StandByフラグをtrueとして(S2115)、子機200をスタンバイ状態とした後にデータ受信イベント処理を終了する。
【0060】
ところで、ステップS2112の判定において、受信したデータがcomplateコマンドではないと判定した場合は(S2112;NO)、受信したデータがreplayコマンドであったか否かを判定する(S2116)。ここで、受信したデータがreplayコマンドであったと判定した場合は(S2116;YES)、親機100は、子機200が正常に接続されているか否かを検査する信号を送信してきたと判定できるので、これに応答してreplayコマンドをコールバックして(S2117)、データ受信イベント処理を終了する。
【0061】
一方、ステップS2116の判定において、受信したデータがreplayコマンドではなかったと判定した場合は(S2116;NO)、受信したデータは、割当データであると判定できるので、まず、StandByフラグの状態、すなわち、子機200がスタンバイ状態にあるか否かを判定し(S2118)、スタンバイ状態であると判定した場合は(S2118;true)、いったんStandByフラグをfalseとした後に(S2119)、RAM203の初期化を行い(S2120)、受信したデータをRAM203の所定のエリアに書き込む(S2121)。ステップS2118の判定において、子機200がスタンバイ状態ではないと判定した場合は(S2118;false)、受信したデータをRAM203の所定のエリアに書き込んだ後(S2121)、受信イベント処理を終了する。
【0062】
(2)演奏処理
次に、子機200の操作に応じた演奏処理について図27および図28を参照しながら説明する。
【0063】
▲1▼タイマ割り込み1
図27は、センサ206の出力値を定期的に検出して、発音およびライト208の点灯を行う処理(タイマ割り込み1)を示している。この割り込み処理は、プログラムされたタイマによって、演奏者の演奏動作を十分検知できる時間間隔毎に周期的に実行される。
タイマ割り込み1を開始すると、CPU201は、上述したようにセンサ206の出力値から変数Magを算出する(S2201)。そして、動作方向をレジスタSIGN1にセットして(S2202)、Magがしきい値Sense以上であるか否かを判定する(S2203)。ここで、Magがしきい値Sense未満であると判定した場合は(S2203;false)、発音処理および点灯処理を行う必要がないと判定できるので、タイマ割り込み1を終了する。
【0064】
Magがしきい値Sense以上であると判定した場合は(S2203;true)、SIGN0が示す方向が、SIGN1の示す方向と異なるか否かを判定する(S2204)。本実施形態では、SIGN0に前回の処理(S2205)における方向がセットされ、SIGN1に今回検出した方向(S2202)がセットされており、SIGN0とSIGN1とを比較することによって、方向を判定することができるようになっている。
【0065】
ステップS2204の判定において、今回の動作方向と前回の動作方向が同じであると判定した場合は(S2204;false)、新たな発音処理および点灯処理を行う必要がない場合であるとみなし、タイマ割り込み1を終了する。一方、今回の動作方向と前回の動作方向が異なると判定した場合は(S2204;true)、今回検出した方向SIGN1の値をSIGN0にセットする(S2205)。そして、NoteOnフラグをtrueとして(S2206)、ノートオンイベント(図中“Event.NOTEON”)を発生し、CPU201は音源204に対して、RAM203に記憶した音色データに基づいた楽音を生成するように指示する(S2207)。CPU201は、楽音の生成を開始すると、発音時間をTIMER1にセットする(S2208)。この、TIMER1にセットされた値は、後述するタイマ割り込み2において消音するタイミングを決定するために用いられる。
発音開始処理(S2206〜S2208)を行った後、CPU201は、ライト208を点灯する処理を行う。ここでは、まず、LightOnフラグをtrueとして(S2209)、ライトオンイベント(図中“Event.LIGHTON”)を発生して、CPU201はライト208の点灯を指示する(S2210)。CPU201は、ライト208の点灯を開始すると、点灯時間をTIMER2にセットする(S2211)。この、TIMER2にセットされた値は、後述するタイマ割り込み2において消灯するタイミングを決定するために用いられる。そして、発音開始処理および点灯開始処理のいずれもが終了すると、タイマ割り込み1を終了する。
【0066】
▲2▼タイマ割り込み2
図28は、タイマ割り込み1においてセットしたTIMER1およびTIMER2の値を所定周期でデクリメントして、消音およびライト208の消灯を行う処理(タイマ割り込み2)を示している。
タイマ割り込み2を開始すると、CPU201は、まず、NoteOnフラグの状態、すなわち、子機200が発音中であるか否かを判定する(S2221)。ここで、発音中であると判定した場合は(S2221;true)、次に、TIMER1のカウント値が0より大きいか否かを判定し(S2222)、カウント値が0より大きいと判定した場合は(S2222;true)、TIMER1のカウント値を所定値D1だけデクリメントする(S2223)。一方、ステップS2222の判定において、カウント値が0以下になったと判定した場合は(S2222;false)、消音タイミングになったと判定できるので、ノートオフイベント(図中“Event.NOTEOFF”)を発生して、CPU201は音源204に消音を指示した後(S2224)、NoteOnフラグをfalseとする(S2225)。
【0067】
ステップS2221の判定において、発音中ではないと判定した場合(S2221;false)、あるいは、TIMER1をデクリメントした後(S2223)、または、消音処理を行った後(S2224、S2225)、CPU201は、LightOnフラグの状態、すなわち、ライト208が点灯されているか否かを判定する(S2226)。ここで、ライト208が点灯中であると判定した場合は(S2226;true)、次に、TIMER2のカウント値が0より大きいか否かを判定し(S2227)、カウント値が0より大きいと判定した場合は(S2227;true)、TIMER2のカウント値を所定値D2だけデクリメントする(S2228)。一方、ステップS2227の判定において、カウント値が0以下になったと判定した場合は(S2227;false)、消灯タイミングになったと判定できるので、ライトオフイベント(図中“Event.LIGHTOFF”)を発生して、CPU201はライト208の消灯を指示した後(S2229)、LightOnフラグをfalseとする(S2230)。
そして、ステップS2226の判定においてライト208を点灯中ではないと判定した場合(S2226;false)、あるいは、TIMER2をデクリメントした後(S2228)、または、消灯処理を行った後(S2229、S2230)、タイマ割り込み2を終了する。
なお、上記説明において詳細は省略したが、本実施形態の子機200の音源204は、前述のノートオンイベントの発生に応じて、RAM203に記憶された音色データに基づいた楽音信号の生成を開始し、ノートオフイベントの発生に応じて発生している楽音信号の消音を行うようCPU201によって制御されるものである。また、ライト208は前述のライトオンイベントに応じて発光し、ライトオフイベントに応じて消灯するようにCPU201によって制御されるものである。
【0068】
3.第1実施形態の効果
上述した処理によって、親機100は演奏データに基づいて自動演奏を行い、各子機200はそれぞれ割り当てられた音色の楽音を演奏指示動作に基づいて発音する。FDD130にフロッピーディスクが挿入されて演奏データが親機100のRAM104に転送されると、演奏データに対応した割当データ(音色データ、しきい値データ)を音色を各子機200iに送信して割り当てを行うので、フロッピーディスクに記録された演奏データに基づいて容易に初期設定を行うことができるようになる。
各子機200iは、それぞれ音源204および演奏指示動作(子機200を振る動作)を検出するセンサ備え、検出された演奏指示動作に対応して、送信された音色データに基づいた楽音の生成を行うので、演奏者は、各子機200を振るだけで容易に演奏を行うことができるようになる。
【0069】
B:第2実施形態
次に、本発明の第2の実施形態について説明する。第1実施形態は、各子機200において発音を行う場合を例として説明したが、第2実施形態では、子機200は、親機100における発音を制御する場合を例として説明する。
【0070】
1.第2実施形態の構成
まず、第2実施形態の構成について説明する。第2実施形態においては、外観構成および、親機100の電気的構成については、異なる部分についてのみ説明して、図示は省略する。
第2実施形態においては、子機200は、親機100における自動演奏を制御するので、子機200は、親機100に対して、上述のMagに応じて発生する演奏指示データ(トリガ信号)をリアルタイムで送信する。
従って、第1実施形態では、コネクタ112およびコネクタ221が接触している態様の接続を行うものとして説明したが、第2実施形態においては、コネクタ112およびコネクタ221は、例えば赤外線などを用いて、非接触(ワイヤレス)でデータの送受信を行うことができるように構成されている。
【0071】
本実施形態では、特定の割当データCom[j]には、第1実施形態の音色データのかわりに、子機200に対して親機100の自動演奏のテンポを制御する機能を割り当てることを指示するtriggerコマンドが記憶されている。また、子機200のRAM203には、上記第1実施形態の場合において記載したフラグに加え、Triggerフラグが設けられており、Triggerフラグが“true”のときは、子機200は親機100の自動演奏のテンポを制御するものであることを示している。
【0072】
2.第2実施形態の動作
次に、第2実施形態の動作について説明する。図29は、第2実施形態におけるデータ受信イベントのフローチャートであり、図30は、第2実施形態におけるタイマ割り込み1のフローチャートである。なお、その他の処理については、第1実施形態と同様であるので、図示および説明は省略する。
【0073】
(1)データ受信イベント
図29に示す各ステップのうち、ステップS2111〜S2120までは、第1実施形態と同様の処理であるので説明を省略し、ここでは、ステップS2121〜S2124について説明する。
子機200のCPU201は、RAM203を初期化した後(S2120)、受信した割当データの内容を判定する(S2121)。すなわち、割当データが、親機100が子機200iからのトリガ信号を受信することを示すtriggerコマンドであるか否かを判定し、triggerコマンドであると判定した場合は(S2121;true)、RAM203に設定されたTriggerフラグをtrueとして(S2122)、データ受信イベント処理を終了する。一方、triggerコマンドではないと判定した場合は(S2121;false)、Triggerフラグをfalseとした後(S2123)、親機100から受信したデータをRAM203の所定のエリアに書き込むと(S2124)、データ受信イベント処理を終了する。
【0074】
(2)タイマ割り込み1
図30に示す各ステップのうち、ステップS2201〜S2211は第1実施形態と同様の処理であるが、本実施形態では、ステップS2203とS2204との間にステップS2203'およびステップS2203"が行われる点で異なるので、ここでは、ステップS2203'およびS2203"の処理について説明する。第2実施形態においては、CPU201は、センサ206の検出値Magがしきい値Sense以上であるか否かを判定し(S2203)、しきい値以上であると判定した場合は(S2203;true)、子機200iにおける指示動作を検出したと判定できるので、Triggerフラグの状態、すなわち、親機100にトリガ信号を送る必要があるか否かを判定する(S2203')。
ここで、トリガ信号を送信する必要があると判定した場合には(S2203';true)、トリガ信号を親機100に送信して(S2203")、ステップS2204に移行する。一方、ステップS2203の判定において、Magがしきい値以上でないと判定した場合には(S2203;false)、子機200において指示動作を検出していないと判定できるので、タイマ割り込み1を終了する。
【0075】
このように子機200が送信するトリガ信号を受信する親機100は、該トリガ信号を受信する間隔に基づいて(例えばトリガ信号間隔を4分音符の長さであるとみなし)、自動演奏のテンポを制御する。
【0076】
3.第2実施形態の効果
このように、第2実施形態においては、親機100は各子機200に対してトリガ信号を受信するか否かを示すtriggerコマンドを送信し、triggerコマンドを受信した子機200は、指示動作を検出した場合に親機100に対してトリガ信号を送信する。そして、親機100は、受信したトリガ信号に応じて上述のテンポデータ(Tempo)の値を更新するので、親機100における自動演奏を子機200の指示動作に基づいて制御できるようになる。
【0077】
C:第3実施形態
次に、本発明の第3の実施形態について説明する。第3実施形態においては、子機200に備えられたライト208を用いて、演奏者に対して操作タイミングを指示する例について説明する。
【0078】
1.第3実施形態の構成
まず、第3実施形態の構成について説明する。第3実施形態においては、外観構成および、親機100の電気的構成については、異なる部分についてのみ説明して、図示は省略する。
第3実施形態においては、親機100は、子機200における発音タイミングを指示するので、親機100は、子機200に対して、発音タイミングを指示するタイミング信号をリアルタイムで送信する。
従って、第1実施形態では、コネクタ112およびコネクタ221が接触している態様の接続を行うものとして説明したが、第3実施形態においては、コネクタ112およびコネクタ221は、例えば赤外線などを用いて、非接触(ワイヤレス)でデータの送受信を行うことができるように構成されている。また、第3実施形態におけるデータには、各子機200i毎に、発音タイミングを指示するためのタイミング指示データを含んでいる(図示略)。
【0079】
2.第3実施形態の動作
次に、第3実施形態の動作について説明する。第3実施形態では、親機100がデータに基づいてタイミングデータを各子機200に送信する。タイミングデータには、演奏タイミングとなる子機200iのIDを示すデータが含まれており、親機100は、タイミングデータを各子機200iに対して一斉に送信し、タイミングデータを受信した子機200iは、受信したIDが自己のIDと一致している場合に演奏者に対して指示動作を行うタイミングを報知する。図31は、第3実施形態におけるタイマ割り込み3のフローチャートである。なお、その他の処理については、第1実施形態と同様であるので、図示および説明は省略する。
子機200iには、各々固有のIDが設定され、各子機のRAM203には、このIDを記憶するためのエリアが設けられている。このIDは、ROM202に予め記憶しておいたIDをRAM203に転送するといった固定的なものであってもよいし、親機100が子機200iに割当データを送信する際。子機200iが接続されている親機100のコネクタ112jに対応した番号をIDとして、割当データとともに子機200iに送信するといった動的なものであってもよい。
【0080】
(1)タイマ割り込み3
図31に示すタイマ割り込み3は、親機100からタイミング信号(図中“Event.TIMING”)を所定周期で受信して、受信したタイミングデータが自己宛のデータであれば、演奏者に対して指示動作を行うタイミングを報知する処理である。
より詳細には、タイマ割り込み3にかかる処理を開始すると、CPU201は、親機100からタイミングデータを受信したか否かを判定し(S2301)、タイミングデータを受信したと判定した場合は(S2301;true)、タイミングデータに含まれるID(図中“TIMING.ID”)が自己のIDと一致するか否かについて判定する(S2302)。なお、自己のIDは、上述したようにRAM203に記憶されている。
【0081】
ステップS2302の判定において、受信したIDと自己のIDとが一致したと判定した場合は(S2302;true)、LightOnフラグをtrueとして(S2303)、ライトオンイベントを発生してライト208の点灯を開始した後(S2304)、点灯時間をTIMER2にセットして(S2305)、タイマ割り込み3を終了する。
ステップS2301の判定において、タイミングデータを受信していないと判定した場合(S2301;false)、あるいは、ステップS2302の判定において、受信したIDと自己のIDとが一致しないと判定した場合は(S2302;false)、ライト208を転送する必要がないと判定できるので、ステップS2303〜S2305にかかる処理を行わずに、タイマ割り込み3を終了する。
【0082】
3.第3実施形態の効果
このように、第3実施形態においては、親機100は、子機200に対して演奏タイミングを示すタイミングデータを送信し、子機200は、受信したタイミングデータに基づいてライト208を点灯することによって、子機200を振る動作を行うタイミングを演奏者に報知するので、演奏者は容易に演奏を行うことができるようになる。
【0083】
D:変形例
本発明は、上述した実施形態に限定されるものではなく、以下のような各種の変形が可能である。
【0084】
(1)親機100に関する変形
上記実施形態では、親機100は、子機200の数に対応する子機差込穴111を有する半球状の形状をしているが(図1参照)、子機200を収容した状態で持ち運びすることができる形状および大きさであればどのようなものでもよい。
子機200を収容する部分の形状も、子機200との接続が行えればどのような形状でもよい。
また、必ずしも上記実施形態のように音源を備えて自動演奏を行う必要はなく、単に各子機200に対する音色などの割当を行う機能を備えるだけでもよい。このような場合は、テンポや調を変更するスイッチも不要となる。
上記実施形態においては、フロッピーディスクから、あらかじめ音色データを記憶していない親機100に対して音色データを供給しているが、親機100にあらかじめ複数の音色データを記憶しておき、フロッピーディスクから音色コードを供給するようにしても構わない。
【0085】
(2)子機200に関する変形
上記実施形態においては、子機200は、あらかじめ音色データを記憶しておかずに、親機100から送信された音色データを用いて楽音の生成を行っているが、あらかじめ複数の音色データを記憶しておき、親機100から送信された音色コードによって割り当てが行われるようにしても構わない。あるいは、あらかじめ予備の音色データを子機200に記憶しておいて、親機100から正常に音色データが送信されなかった場合に、予備の音色データを用いるようにしてもよい。このように、子機200が予め音色データを記憶している場合は、親機100から各子機200に送信されるデータは、子機200を振ったときに発音される楽音の音高、音量、発音時間などの音楽要素のうちのいずれかに関して制御を指示するデータであってもよい。例えば、子機200の動作によって音高を制御する場合は、親機100は、子機200にいずれの音高の楽音を生成するかを指示するデータを送信する。
【0086】
また、子機差込穴111および筐体下部220の断面形状も、上記実施形態のように略円形に限らず、楕円形や多角形など他の形状であっても良く、演奏者が筐体下部220を把持しやすい形状であればどのようなものでもよい。筐体下部220の断面積についても、上記実施形態においては、平均的な成人が把持するのに適した大きさとして説明したが、子供が把持するのに適した大きさであっても構わない。
【0087】
上記形態においては、筐体上部210の形状は、図5に示すように、一端側の断面積が他端側の断面積よりも大きな略円筒状の形状に形成されているが、生成された楽音の共鳴や遠達性などの音響特性を向上させるように調整されていればどのような形状でもよく、例えば球状の形状であってもよいし、断面が多角形の柱状や錐状の形状であってもよい。この場合において、放音用の開口部は、当該子機200を把持している演奏者に対してよく聞こえる位置や、他の演奏者に対してよく聞こえるような位置に設けられていれば、どのような位置であっても構わない。
【0088】
上記実施形態においては、子機200において演奏指示動作を検出したことや発音タイミング、または、データの受信完了を報知する手段としてランプ208を設けたが、これに限らず、例えばモータなどの振動体を設けて、該モータを駆動することによって発生する振動によって演奏者に報知を行ってもよい。また、演奏指示動作を検出したことを報知する場合には、上記モータなどの振動体にかえて、子機200の筐体上部210および筐体下部220の全体もしくは一部を硬質の材料で形成し、子機200のサウンドシステム(SS)205で楽音の発生に伴うスピーカの振動によって子機200を振動させるようにしてもよい。さらにまた、このような報知手段を、例えば、子機200の異常など他の情報を演奏者に報知するために用いても構わない。
【0089】
また、上記実施形態の音源として、PCM音源などの波形データを用いるものを例示したが、FM音源や物理モデル音源など、いかなる形式の音源を使用しても構わない。音色データは音源に適合する形式のデータであればいかなる形式のものであっても構わないのは勿論である。
音色も、特定の楽器(例えばピアノ)の異なる音高であってもよいし、波の音や小鳥のさえずりといった効果音でもいい。
【0090】
(3)親機100と子機200との接続に関する変形
上記実施形態においては、親機100に子機200が正常に接続されている場合に割当データの送信を行っているが、データ送信が完了する前に子機200が親機100から離された場合には、例えば警告音の発音など、その旨を警告する手段を設けてもよい。
また、上記実施形態においては、図7に示すような同心円状のコネクタ112および221によって親機100と子機200とを接続しているが、これに限らず、図36に示すような非対称のコネクタ形状でもよい。図7に示す形状によれば、子機200を子機差込穴111に差し込む際の方向を意識する必要がなくなり、図32に示すような非対称の形状によれば、差込方向の間違えを防止することができる。
【0091】
上記実施形態では、コネクタ112のグループ化は図11を用いて説明した6パターンのみならず、上述したiの規則およびiiの規則に従っていれば任意のグループにグループ分けしてもよく、iの規則とiiの規則を組み合わせてグループ化を行ってもよい。例えば、三角形二つをiの規則に従って各々1つのグループとし、残りの三角形をiiの規則に従って同心円上に配置された複数の三角形の中心方向に対向する頂点と底辺とを各々1つのグループとした6つのグループに分けてもよい。また、グループ化規則も、その他の規則を適用しても構わず、グループが幾何学的に容易に認識できるような規則であればどのようなものでも構わない。
上記実施形態では、あらかじめグループ化した各コネクタ112に対応した数の割当指示データをフロッピーディスクに記憶しておく例を説明したが、フロッピーディスクにはグループの数(本実施形態では1〜12)だけの割当指示データを用意しておき、親機100がフロッピーディスクからデータを読み込む際、割当指示データの数に基づいて、CPU102がコネクタ112を適宜所定のグループに分けるようにしてもよい。例えば、割当指示データの数とグループ分けのパターンを対応つけて記憶したテーブルや、割当指示データの数に基づいてコネクタ112をグループに分ける関数もしくはプログラムを、親機100のROM103もしくはフロッピーディスクなどに用意し、該テーブルを参照した結果や関数もしくはプログラムの処理結果に応じて、コネクタ112を上述した規則に従った所定のグループに分けるようにすればよい。
【0092】
上記実施形態では、子機200を12個備えた電子楽器を例として説明したが、子機200は12個に限定されるものではない。親機100における子機差込穴111の配置についても、子機200の個数に応じて適宜変更可能である。例えば子機200を12個用いる場合においても、三角形のみならず正方形や菱形といった四辺形を一つの構成単位とし、四辺形を同心円上に3つ、各四辺形の一つの対角線が放射状に並ぶようにコネクタ112を配置するようにしてもよい。四辺形を構成単位とする場合、グループ化規則は、
iv)四辺形を所定の数組み合わせる
v)放射状に並んだ四辺形の対角線上の頂点毎、その他の頂点毎に組み合わせるvi)四辺形の各頂点を個別とする
といったように、グループが幾何学的に容易に認識できるような規則であればどのようなものでもよい。また、上述したように、三角形もしくは四辺形を同心円上に配置するのではなく、直線上に並べて配置するものとしてもよい。要するに、子機差込穴111の配置方法は、一つの構成要素が多角形を形成し、この構成要素を1ないし複数幾何学的に配置したのであればよく、各構成要素である多角形が視覚的に容易に認識できるような配置方法であればどのようなものでもよい。
【0093】
(4)データに関する変形
上記実施形態では、演奏データは、親機100における自動演奏用のMIDIデータとして説明したが、親機100における楽音の発生を制御する複数種類の制御データを含むものであればどのようなデータでもよく、プログラムであってもよい。また、自動演奏に用いられる演奏データはMIDIデータに限らず、楽曲の自動演奏を制御できるものであればどのような形式のデータであっても構わない。
【0094】
上記実施形態では、フロッピーディスクによって供給され、子機200に割り当てられるものとして、子機200のセンサの検出結果に対するしきい値、音色データもしくは、子機200が発生すべき信号を指示するデータを例示したが、これに限定されるものではなく、その他のデータであってもよいし、子機200の動作を制御するプログラムであってもよい。
【0095】
なお、上記実施形態においては、フロッピーディスクから各種データを読み込むものとして説明を行ったが、CD(Compact Disc)やMO(Magneto Optical disk)などの他の可搬型の記録媒体を用いてもよいし、親機100の内部に設置されたハードディスクドライブなどの大容量の記憶媒体(図示略)に記憶されたデータを読み込むようにしてもよい。また、任意の通信プロトコル(例えば、MIDI、TCP/IP、IEEE1394など)に準拠した通信インターフェイス(図示略)を介して、他の機器からデータを受信するようにしてもよい。
また、上記実施形態では、制御プログラムはROM103およびROM202に記憶されているが、これに限らず、不揮発性メモリカード、CD−ROM、フロッピーディスク、光磁気ディスク、および磁気ディスク等の可搬型の記録媒体に記録されたデータをハードディスク等の記憶装置に転送できるように構成してもよい。このようにすれば、制御情報や制御プログラム等の追加(インストール)や更新(バージョンアップ)の際に便利である。また、可搬型の記録媒体から直接RAM203へデータを転送するようにしてもよい。
【0096】
2.処理の変形
(1)演奏動作検出処理に関する変形
上記実施形態のように子機200を振る動作を検出する場合に限らず、子機200を打撃する動作を検出してもよい。
上記実施形態においては、子機200は、前回検出した運動方向SIGN0と今回検出したSIGN1とを比較し、SIGN0とSIGN1とが異なるときに発音指示を行うようにしたが、SIGN0とSIGN1とを比較する際にある程度程度の幅を持たせ、SIGN0を基準とした範囲(例えば、SIGN0を法線ベクトルとする平面に対してSIGN0と対向する方向)であった場合に発音指示を行うようにしてもよい。
【0097】
上記実施形態においては、子機200の運動状態を3方向において検出しているが、これに限らず、少なくとも1以上の方向を検出できればよい。また、運動状態を検出する際に用いられるしきい値は、親機100が子機200に送信するものに限らず、子機200のROM203などにあらかじめしきい値を記憶させておき、このしきい値を使用するものとしてもよい。さらにまた、別途しきい値設定手段を設け、演奏者がこのしきい値設定手段を操作することでしきい値を設定するようにしてもよいし、このしきい値設定手段は演奏者の動作特徴を解析するものであって、この解析結果に応じて自動的にしきい値を設定するものであってもよい。
【0098】
(2)演奏指示に関する変形
上記実施形態では、演奏指示としては、第1および第3実施形態では楽音生成(発音)指示をあげて、第2実施形態ではテンポ変更指示をあげて説明したが、これに限らず、演奏内容に関する指示であればどのよう指示内容でもよく、例えば、音量や調などの演奏の属性を指示してもよいし、音高、音色、発音時間など種々の音楽要素に関する指示を行ってもよい。
【0099】
(3)楽音制御データ送信に関する変形
上記実施形態においては、演奏データが親機100に入力されて、RAM104に記憶された際に、各子機200に対する楽音制御データの種類の割り当てを行うものとしたが、割り当てタイミングはこれに限らず、例えば、割り当てを指示する操作子を親機100あるいは子機200に設けて、当該操作子の操作が検出されたときに割り当てを行うようにしてもよし、いったん割り当ての行われた子機200が、再度コネクタ112jに接続されたことが検出された場合には、再度割り当てを行うようにしてもよい。また、親機100と子機200とを無線によって接続している場合には、定期的に割り当てを更新するようにしてもよい。
【0100】
また、第1実施形態においては演奏データ中には、コネクタ112毎に割り当てを行うことができるように楽音制御データが含まれているが、第3実施形態のように、子機200に個別のIDが設定されている場合は、子機200のID毎に割り当てを行えるようにしても構わない。複数種類の制御についても、上記実施形態のように、複数種類の音色といった同種類の制御内容に限らず、楽音の生成とテンポ制御といった異なる種類の制御の組み合わせであっても構わない。
【0101】
上記実施形態では、制御データの受信が完了したことを演奏者に報知するために、各子機200はライト208を点灯する処理を行っているが、ライト208の発光色を制御できる構成とすれば、当該子機200に割り当てられた音色などのグループに対応する発光色での点灯を行うようにすることができる。このようにすれば、同一のグループに割り当てられた子機200のライト208は同一色で発光するので、演奏者は各子機200が属するグループを視覚的に認識しやすくなる。
【0102】
【発明の効果】
以上説明したように、本発明によれば、楽器の操作に不慣れな複数人の使用者が容易に演奏に参加できるようになる。
【図面の簡単な説明】
【図1】 本実施形態の外観構成を示す図である。
【図2】 子機の使用態様を説明する図である。
【図3】 親機の外観構成を示す図である。
【図4】 操作部の外観構成を示す図である。
【図5】 子機の外観構成を示す図である。
【図6】 親機と子機との接続形態を説明する図である。
【図7】 コネクタの形状を示す図である。
【図8】 親機の電気的構成を示すブロック図である。
【図9】 子機の電気的構成を示すブロック図である。
【図10】 フロッピーディスクに記憶されたデータの例である。
【図11】 子機差込穴の配置とグループ化との関係を説明する図である。
【図12】 親機のメモリに記憶されたデータの例である。
【図13】 子機のメモリに記憶されたデータの例である。
【図14】 親機における電源オンイベントを示すフローチャートである。
【図15】 親機における電源オフイベントを示すフローチャートである。
【図16】 親機におけるディスク挿入イベントを示すフローチャートである。
【図17】 親機におけるディスク排出イベントを示すフローチャートである。
【図18】 親機におけるコネクタ状態イベントを示すフローチャートである。
【図19】 親機におけるデータ送信イベントを示すフローチャートである。
【図20】 親機における再生スイッチイベントを示すフローチャートである。
【図21】 親機における停止スイッチイベントを示すフローチャートである。
【図22】 親機における転調スイッチイベントを示すフローチャートである。
【図23】 親機における割り込み処理を示すフローチャートである。
【図24】 子機における指示動作の検出手段を説明する図である。
【図25】 子機におけるコネクタ状態イベントを示すフローチャートである。
【図26】 子機におけるデータ受信イベントを示すフローチャートである。
【図27】 子機における割り込み処理1を示すフローチャートである。
【図28】 子機における割り込み処理2を示すフローチャートである。
【図29】 第2実施形態における子機のデータ受信イベントを示すフローチャートである。
【図30】 第2実施形態における子機の割り込み処理1を示すフローチャートである。
【図31】 第3実施形態における子機の割り込み処理3を示すフローチャートである。
【図32】 コネクタ形状の変形例を示す図である。
【符号の説明】
100……親機、101……バス、102……CPU、103……ROM、104……RAM、105……音源、106……サウンドシステム、110……子機差込部、111……子機差込穴、112……コネクタ、113a、113b……電源端子、114a……データ入力端子、114b……データ出力端子、120……操作部、121……再生スイッチ、122……停止スイッチ、123a、123b……転調スイッチ、123c……転調表示部、124a、124b……音量スイッチ、123c……音量表示部、125a、125b……テンポスイッチ、125c……テンポ表示部、130……FDD、140……電源スイッチ、200……子機、201……CPU、202……ROM、203……RAM、204……音源、205……サウンドシステム、206……センサ、207……A/D変換器、208……ライト、210……筐体上部、211、212……開口部、220……筐体下部、221……コネクタ、222a、222b……電源端子、223a……データ出力端子、223b……データ入力端子。
Claims (5)
- 第1機器と、複数の第2機器とを備える電子楽器において、
前記第1機器は、
音色を示す音色データを複数の音色毎に記憶する第1記憶手段と、
前記第2機器が接続される複数のコネクタを配置した接続手段と、
前記接続手段に配置された複数のコネクタにおいて、近接するコネクタが同じグループに含まれるように、前記複数のコネクタを1以上のいずれかの数のグループにグループ分けし、グループ毎に音色を割り当てる割当手段と、
前記割当手段によりグループに割り当てられた音色の音色データを前記第1記憶手段から読出し、該グループに属するコネクタに接続されている第2機器へ送信する第1送信手段とを備え、
前記第2機器は、
前記第1送信手段より送信された音色データを受信する第1受信手段と、
前記第1受信手段で受信した音色データを記憶する第2記憶手段と、
当該第2機器の運動状態を検知する運動検知手段と、
前記運動検知手段により検知した運動状態に応じて、前記第2記憶手段に記憶された音色データに基づいた楽音を発音する第1楽音発音手段と
を備える電子楽器。 - 前記グループに含まれる各コネクタの位置を結ぶと多角形が形成され、該多角形が隣接して幾何学的に1乃至複数形成されるように前記コネクタが配置されていることを特徴とする請求項1に記載の電子楽器。
- 前記コネクタに前記第2機器が接続されたことを検知する検知手段を備え、
前記第1送信手段は、前記検知手段により前記第2機器が前記コネクタに接続されたことが検知された場合、前記音色データを送信することを特徴とする請求項1に記載の電子楽器。 - 前記第1機器は、前記音色データを外部から入力する入力手段を備え、
前記入力手段に前記音色データが入力されたことに応じて、入力された前記音色データを前記第1記憶手段に記憶させるとともに、
前記接続手段に配置された複数のコネクタのうち、近接するコネクタが同じグループに含まれるように、前記複数のコネクタを1以上のいずれかの数のグループにグループ分けし、該入力された音色データが示す音色をグループ毎に割り当てること
を特徴とする請求項1乃至請求項3のいずれかに記載の電子楽器。 - 前記第2機器は、前記第1受信手段で受信した音色データが示す音色に対応した色の光を発光することを特徴とする請求項1に記載の電子楽器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08254399A JP3666291B2 (ja) | 1999-03-25 | 1999-03-25 | 電子楽器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08254399A JP3666291B2 (ja) | 1999-03-25 | 1999-03-25 | 電子楽器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000276141A JP2000276141A (ja) | 2000-10-06 |
JP3666291B2 true JP3666291B2 (ja) | 2005-06-29 |
Family
ID=13777431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08254399A Expired - Fee Related JP3666291B2 (ja) | 1999-03-25 | 1999-03-25 | 電子楽器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3666291B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4536554B2 (ja) * | 2004-03-30 | 2010-09-01 | ローム株式会社 | 電子機器 |
JP4797523B2 (ja) | 2005-09-12 | 2011-10-19 | ヤマハ株式会社 | 合奏システム |
JP4752425B2 (ja) | 2005-09-28 | 2011-08-17 | ヤマハ株式会社 | 合奏システム |
JP4692189B2 (ja) | 2005-09-28 | 2011-06-01 | ヤマハ株式会社 | 合奏システム |
JP4259532B2 (ja) | 2006-03-16 | 2009-04-30 | ヤマハ株式会社 | 演奏制御装置、およびプログラム |
JP4320782B2 (ja) | 2006-03-23 | 2009-08-26 | ヤマハ株式会社 | 演奏制御装置、およびプログラム |
JP4679431B2 (ja) | 2006-04-28 | 2011-04-27 | 任天堂株式会社 | 音出力制御プログラムおよび音出力制御装置 |
JP4572980B2 (ja) * | 2008-10-27 | 2010-11-04 | ヤマハ株式会社 | 自動演奏装置及びプログラム |
JP4868045B2 (ja) * | 2009-08-24 | 2012-02-01 | ヤマハ株式会社 | 楽音制御システム |
US11232774B2 (en) | 2017-04-13 | 2022-01-25 | Roland Corporation | Electronic musical instrument main body device and electronic musical instrument system |
-
1999
- 1999-03-25 JP JP08254399A patent/JP3666291B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000276141A (ja) | 2000-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3666291B2 (ja) | 電子楽器 | |
JP4741596B2 (ja) | 楽器伴奏およびサウンド評価のための携帯用電子装置 | |
US9452358B2 (en) | System and method for playing a music video game with a drum system game controller | |
US4817484A (en) | Electronic stringed instrument | |
US9378717B2 (en) | Synchronized multiple device audio playback and interaction | |
JP2008515009A6 (ja) | 楽器伴奏およびサウンド評価のための携帯用電子装置 | |
CN111583892A (zh) | 一种电子打击旋律乐器 | |
CA2113329A1 (en) | Talking playset | |
JP3666290B2 (ja) | 電子楽器および電子楽器の制御方法 | |
CN101515452A (zh) | 数码键盘多弦鼓琴 | |
WO2001097200A1 (en) | Method and apparatus for learning to play musical instruments | |
JP3584825B2 (ja) | 楽音信号発生装置 | |
JP3972619B2 (ja) | 音発生装置 | |
CN102814045B (zh) | 合唱玩具系统及合唱玩具演奏方法 | |
CN211209865U (zh) | 一种新型多面鼓蓝牙音箱 | |
CN1748243A (zh) | 虚拟现实音乐手套系统 | |
CN110556089A (zh) | 一种多功能柔性屏电子钢琴 | |
US20230306940A1 (en) | Digital keyboard instrument with access to microtonal notes | |
JP3584826B2 (ja) | 楽音信号発生装置 | |
US11527225B2 (en) | Sensor module, system of modules for a piano keyboard, and corresponding method | |
CN212818146U (zh) | 一种麦克风 | |
JP2012511953A (ja) | サウンドステップ | |
CN207995351U (zh) | 一种能够琵琶弹唱的蓝牙音箱 | |
KR200188987Y1 (ko) | 댄스연습용 게임시스템 | |
CN1537663A (zh) | 语音辨识互动型玩偶 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050328 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100415 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110415 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120415 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130415 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |