(57)【特許請求の範囲】
【請求項１】
少なくとも複数の部分が動作可能な動作体と、
この動作体の各部分をそれぞれ動作させる駆動手段と、
前記動作体の各部分の動作状態を選択指定して前記動作体の複数種の動作ポーズを入力するポーズ入力手段と、
このポーズ入力手段で入力された複数種の動作ポーズを記憶するポーズ記憶手段と、
このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせた前記動作体の動作パターンを複数種入力する動作パターン入力手段と、
この動作パターン入力手段で入力された動作パターンごとに繰返し回数データを入力する繰返し回数入力手段と、
前記動作パターン入力手段で入力された複数種の動作パターンと、前記繰返し回数入力手段で入力された繰返し回数データとを、それぞれ対応付けて記憶する動作パターン記憶手段と、
この動作パターン記憶手段に記憶されている複数種の動作パターンのうちのいずれかを選択する動作パターン選択手段と、
この動作パターン選択手段により選択された動作パターンに対応して前記動作パターン記憶手段に記憶されている繰返し回数データに基づいて、この選択動作パターンを繰り返し読み出す読出し手段と、
この読出し手段により読み出された動作パターンに基づいて前記ポーズ記憶手段に記憶されている動作ポーズを読み出し、この読み出された動作ポーズに基づいて前記駆動手段を制御する制御手段と、
を備えたことを特徴とする動作体の駆動制御装置。
【請求項２】
複数種のリズムパターンを記憶するリズムパターン記憶手段と、
このリズムパターン記憶手段からいずれかのリズムパターンを選択して読み出すリズムパターン選択手段と、
このリズムパターン選択手段で選択されたリズムパターンに基づいて楽音の発生を指示する楽音発生指示手段と、
少なくとも複数の部分が動作可能な動作体と、
この動作体の各部分をそれぞれ動作させる駆動手段と、
前記動作体の各部分の動作状態を選択指定して前記動作体の複数種の動作ポーズを入力するポーズ入力手段と、
このポーズ入力手段で入力された複数種の動作ポーズを記憶するポーズ記憶手段と、
このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせた前記動作体の動作パターンを複数種入力する動作パターン入力手段と、
この動作パターン入力手段で入力された複数種の動作パターンを、前記リズムパターン記憶手段に記憶されているリズムパターンにそれぞれ対応させて記憶する動作パターン記憶手段と、
前記リズムパターン選択手段でリズムパターンが選択されたときに、この選択されたリズムパターンに対応する動作パターンを前記動作パターン記憶手段から読み出す動作パターン読出し手段と、
この動作パターン読出し手段により読み出された動作パターンに基づいて前記ポーズ記憶手段に記憶されている動作ポーズを読み出し、この読み出された動作ポーズに基づいて前記駆動手段を制御する制御手段と、
を備えたことを特徴とする動作体の駆動制御装置。
【請求項３】
少なくとも複数の部分が動作可能な動作体と、
この動作体の各部分をそれぞれ動作させる駆動手段と、
前記動作体の各部分の動作状態を選択指定して前記動作体の複数種の動作ポーズを入力するポーズ入力手段と、
このポーズ入力手段で入力された複数種の動作ポーズを記憶するとともに、各動作ポーズから他の動作ポーズに到達するまでの所要時間を記憶するポーズ記憶手段と、
このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせるた前記動作体の動作パターンを入力する動作パターン入力手段と、
この動作パターン入力手段で入力された動作パターンを記憶する動作パターン記憶手段と、
テンポ値を設定するテンポ設定手段と、
前記動作パターン記憶手段に記憶された動作パターンを選択する動作パターン選択手段と、
この動作パターン選択手段で選択された動作パターンに対応する動作ポーズ及び前記ポーズ記憶手段に記憶されている前記所要時間に基づいて算出した前記動作体の動作速度が、前記設定されたテンポに追従可能か否かを判定する動作速度判定手段と、
この動作速度判定手段により追従不可能と判定されたときは、当該動作パターンの一部の動作ポーズを間引きして間引き動作パターンを生成する間引き演算手段と、
前記動作パターン選択手段で選択された動作パターン又は前記間引き動作パターンに基づいて前記駆動手段を制御する制御手段と、
を備えたことを特徴とする動作体の駆動制御装置。
【請求項４】
前記ポーズ記憶手段に記憶された各動作ポーズの優先順位を設定する優先順位設定手段を有し、前記間引き演算手段は、当該優先順位の低い動作ポーズから順に間引きすることを特徴とする請求項３記載の動作体の駆動制御装置。
【請求項５】
複数種のリズム動作パターン及び各リズム動作パターンのテンポ範囲を記憶する動作パターン記憶手段と、
テンポを設定するテンポ設定手段と、
このテンポ設定手段で設定されたテンポが前記テンポ範囲内となるリズム動作パターンの１つを前記動作パターン記憶手段から選択して読み出す動作パターン選択手段と、
この動作パターン選択手段で選択されたリズム動作パターン及び前記設定されたテンポに基づいて楽音の発生を指示する楽音発生指示手段と、
少なくとも複数の部分が動作可能な動作体と、
この動作体の各部分をそれぞれ動作させる駆動手段と、
前記動作パターン選択手段で選択されたリズム動作パターンに基づいて前記駆動手段を制御する制御手段と、
を備えたことを特徴とする動作体の駆動制御装置。
【請求項６】
前記動作体の各部分の動作状態を選択指定して前記動作体の複数種の動作ポーズを入力するポーズ入力手段と、
このポーズ入力手段で入力された複数種の動作ポーズを記憶するポーズ記憶手段と、
このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせて前記動作パターン記憶手段に記憶させる動作パターンを入力する動作パターン入力手段とを備え、
前記制御手段は、前記選択されたリズム動作パターンに基づいて前記ポーズ記憶手段に記憶されている動作ポーズを読み出し、この読み出された動作ポーズに基づいて前記駆動手段を制御することを特徴とする請求項５記載の動作体の駆動制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、人形などの動作体を備え、この動作体の駆動を制御する装置に関する。
【０００２】
【従来の技術】
音楽に合わせて人形が踊るようにしたものとして、オルゴールが広く知られている。オルゴールでは、とげ付きの円筒を回転させるための、ゼンマイやモータなどの駆動源を利用して、人形が取り付けられた回転台を回転させたり、駆動源の回転をカム機構やリンク機構を介して人形の手足を動かしたりしている。しかし、このようなオルゴールでは、使用者が人形の動作を自由に変えることができないため、人形が一定の動作しかしないという不都合があった。
そこで、従来では、人形の足や頭などの各部分および人形全体が演奏に合わせて動くようにしたものとして、特開平６−２６９５７３号に開示された人形操作装置（ここでは、電子鍵盤楽器という）が提案されている。この電子鍵盤楽器では、人形全体、足、頭部などの各部分をそれぞれモータで駆動することにより、鍵盤の押鍵操作による演奏に応じて、人形全体を左右方向に回転させたり、足を前後方向に振ったり、頭部を左右方向に振ったりさせて、人形が踊るようになっている。このような電子鍵盤楽器では、予め人形の各部分の動作を鍵盤の各鍵で選択指定して入力し、この入力されたデータを記憶部に記憶させ、記憶されたデータに基づいて各モータを制御部で制御して人形を動かしている。この場合、鍵による人形の動作データの入力は、例えば「ド」、「レ」に対応する鍵で人形全体の左右方向への回転を入力したり、「ミ」、「ファ」に対応する鍵で足の上下方向への動きを入力したりしている。
【０００３】
【発明が解決しようとする課題】
しかしながら、このような電子鍵盤楽器では、人形の各部分の動きを指定するだけで、人形全体のポーズを指定するものではないため、人形の動作が単調となり、人形を使用者の好みのポーズで自由に動作させることは難しいという問題がある。
また、この電子鍵盤楽器では、人形の個々の動作を演奏される曲全体に亘ってひとつひとつ入力しなければならない。例えば、演奏される曲によっては、人形の動作があるパターンで繰り返し行なうようにしたい場合でも、同じような動作データを繰り返して入力しなければならず、入力操作が非常に煩わしいものであった。
さらに、この電子鍵盤楽器では、ある特定の演奏のために予め入力記憶させた動作データ群の一部を、新たに入力する別の演奏のための人形の動作データに用いたりすることはできず、最初からすべての動作データを入力しなければならないという不都合があった。
この発明の課題は、人形などの動作体を連続して動作させるデータをより簡単に入力することができるようにすることである。
【０００４】
【課題を解決するための手段】
請求項１に記載の発明は、少なくとも複数の部分が動作可能な動作体と、この動作体の各部分をそれぞれ動作させる駆動手段と、動作体の各部分の動作状態を選択指定して動作体の複数種の動作ポーズを入力するポーズ入力手段と、このポーズ入力手段で入力された複数種の動作ポーズを記憶するポーズ記憶手段と、このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせた動作体の動作パターンを複数種入力する動作パターン入力手段と、この動作パターン入力手段で入力された動作パターンごとに繰返し回数データを入力する繰返し回数入力手段と、動作パターン入力手段で入力された複数種の動作パターンと、繰返し回数入力手段で入力された繰返し回数データとを、それぞれ対応付けて記憶する動作パターン記憶手段と、この動作パターン記憶手段に記憶されている複数種の動作パターンのうちのいずれかを選択する動作パターン選択手段と、この動作パターン選択手段により選択された動作パターンに対応して動作パターン記憶手段に記憶されている繰返し回数データに基づいて、この選択動作パターンを繰り返し読み出す読出し手段と、この読出し手段により読み出された動作パターンに基づいてポーズ記憶手段に記憶されている動作ポーズを読み出し、この読み出された動作ポーズに基づいて駆動手段を制御する制御手段とを備えたことを特徴とするものである。
かかる構成により、ポーズ入力手段の入力操作により動作体の各部分の動作状態を選択指定して動作体の動作ポーズを複数種入力して記憶しておき、そしてこの複数種の動作ポーズのそれぞれを指定するデータを組み合わせた動作パターンを入力記憶し、演奏時などに任意に選択された動作パターンに基づいて動作ポーズを順次読み出して動作体を制御するようにしている。このため、動作体は使用者の好みのポーズで自由に動作させることができ、しかも動作パターンの入力も動作ポーズ一つひとつを入力記憶するのではなく、事前に入力記憶させておいた動作ポーズを指定するデータを順次入力記憶させるだけなので、入力操作が非常に簡単になる。
【０００５】
さらに、かかる構成により、動作ポーズを指定するデータを組み合わせた動作パターンごとにその動作パターンの繰返し回数を規定する繰返し回数データも併せて記憶するようにしているので、同一の動作パターンが繰り返されるような動作を行なわせたい場合は、非常に入力操作が簡単になる。
【０００６】
請求項２に記載の発明は、複数種のリズムパターンを記憶するリズムパターン記憶手段と、このリズムパターン記憶手段からいずれかのリズムパターンを選択して読み出すリズムパターン選択手段と、このリズムパターン選択手段で選択されたリズムパターンに基づいて楽音の発生を指示する楽音発生指示手段と、少なくとも複数の部分が動作可能な動作体と、この動作体の各部分をそれぞれ動作させる駆動手段と、動作体の各部分の動作状態を選択指定して動作体の複数種の動作ポーズを入力するポーズ入力手段と、このポーズ入力手段で入力された複数種の動作ポーズを記憶するポーズ記憶手段と、このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせた動作体の動作パターンを複数種入力する動作パターン入力手段と、この動作パターン入力手段で入力された複数種の動作パターンを、リズムパターン記憶手段に記憶されているリズムパターンにそれぞれ対応させて記憶する動作パターン記憶手段と、リズムパターン選択手段でリズムパターンが選択されたときに、この選択されたリズムパターンに対応する動作パターンを動作パターン記憶手段から読み出す動作パターン読出し手段と、この動作パターン読出し手段により読み出された動作パターンに基づいてポーズ記憶手段に記憶されている動作ポーズを読み出し、この読み出された動作ポーズに基づいて駆動手段を制御する制御手段とを備えたことを特徴とするものである。
かかる構成により、演奏されるリズムの種類に同期して動作体の動作パターンを変更するようになり、しかもその動作パターンの内容は使用者が入力した動作ポーズを組み合わせたものとなり、使用者の好みに応じ、かつ演奏されるリズムの種類に応じて動作体を自由に動作させることができる。
【０００７】
請求項３に記載の発明は、少なくとも複数の部分が動作可能な動作体と、この動作体の各部分をそれぞれ動作させる駆動手段と、動作体の各部分の動作状態を選択指定して動作体の複数種の動作ポーズを入力するポーズ入力手段と、このポーズ入力手段で入力された複数種の動作ポーズを記憶するとともに、各動作ポーズから他の動作ポーズに到達するまでの所要時間を記憶するポーズ記憶手段と、このポーズ記憶手段に記憶された動作ポーズを指定するデータを複数組み合わせるた動作体の動作パターンを入力する動作パターン入力手段と、この動作パターン入力手段で入力された動作パターンを記憶する動作パターン記憶手段と、テンポ値を設定するテンポ設定手段と、動作パターン記憶手段に記憶された動作パターンを選択する動作パターン選択手段と、この動作パターン選択手段で選択された動作パターンに対応する動作ポーズ及びポーズ記憶手段に記憶されている所要時間に基づいて算出した動作体の動作速度が、設定されたテンポに追従可能か否かを判定する動作速度判定手段と、この動作速度判定手段により追従不可能と判定されたときは、動作パターンの一部の動作ポーズを間引きして間引き動作パターンを生成する間引き演算手段と、動作パターン選択手段で選択された動作パターン又は間引き動作パターンに基づいて駆動手段を制御する制御手段とを備えたことを特徴とするものである。
かかる構成により、指定した動作パターンが設定されたテンポに追従できないと判断したときには、その動作パターンを構成する複数の動作ポーズを間引きして新たに間引き動作パターンを構成する。そして、この間引き動作パターンで動作体を動作させるように制御する。したがって、テンポが速くなった場合でも、動作体の機械的構造に起因する慣性を考慮してテンポに合った動きに変更させることができる。
【０００８】
請求項５に記載の発明は、複数種のリズム動作パターン及び各リズム動作パターンのテンポ範囲を記憶する動作パターン記憶手段と、テンポを設定するテンポ設定手段と、このテンポ設定手段で設定されたテンポがテンポ範囲内となるリズム動作パターンの１つを動作パターン記憶手段から選択して読み出す動作パターン選択手段と、この動作パターン選択手段で選択されたリズム動作パターン及び設定されたテンポに基づいて楽音の発生を指示する楽音発生指示手段と、少なくとも複数の部分が動作可能な動作体と、この動作体の各部分をそれぞれ動作させる駆動手段と、動作パターン選択手段で選択されたリズム動作パターンに基づいて駆動手段を制御する制御手段とを備えたことを特徴とするものである。
かかる構成により、複数種のリズム動作パターンのそれぞれの最大テンポ及び最小テンポを設定し、発生するリズムのテンポが最大テンポ及び最小テンポの範囲内に入るようなリズム動作パターンを１つ自動的に選択する。したがって、リズム動作パターンのテンポ範囲が、発生するリズムのテンポに適合しない場合でも、リズム選択操作を何回も行う必要がないので、リズム動作パターンの選択操作が非常に簡単になる。
【０００９】
以下、図１〜図６０を参照して、この発明を電子楽器に適用した第１〜第３実施形態について説明する。
まず、図１〜図３７を参照して、第１実施形態について説明する。
図１は電子楽器の外観図である。この電子楽器は、楽器ケース１の手前側に白鍵および黒鍵を配列した鍵盤部２が設けられ、後部左側に人形（動作体）３が設けられ、後部右側にポーズ入力部４および各種のデータ入力部５が設けられた構造になっている。
人形３は、図２に示すように、楽器ケース１に立設された人形軸６の上部に頭部を有する胴体部７が水平方向に回動可能に取り付けられ、この胴体部７の上部両側に上腕８がそれぞれ上下方向に回動可能に取り付けられ、各上腕８の先端に下腕９がそれぞれ前後方向に回動可能に取り付けられ、胴体部７の下部両側に腿１０がそれぞれ上下方向に回動可能に取り付けられ、各腿１０の先端に脛１１がそれぞれ前後方向に回動可能に取り付けられた構造になっている。
【００１０】
この人形３の胴体部７、上腕８、下腕９、腿１０、および脛１１の各部分の取付部には、それぞれ駆動装置１２が設けられている。これら各駆動装置１２はすべて同じ原理のものであり、その一例として、例えば上腕８と下腕９との取付部に設けられた駆動装置１２について説明する。この駆動装置１２は、図３および図４に示すように、上腕８の下端に支点軸１３が水平に設けられ、この支点軸１３に下腕９の上端部が上下方向に回動自在に取り付けられ、上腕８の支点軸１３より左上に電磁石１４が設けられ、下腕９に永久磁石１５が電磁石１４と対応可能に配設された構造になっている。すなわち、永久磁石１５は、垂下された上腕８の下端に下腕９が垂下された状態のときに一方の磁極（以下、Ｓ極という）が電磁石１４に対応し、かつ垂下された上腕８に対して下腕９が９０度回転して水平な状態になったときに他方の磁極（以下、Ｎ極という）が電磁石１４に対応するように設けられている。また、電磁石１４は、両電極が各支点軸１３および人形軸６を通るリード線１４ａにより楽器ケース１内の電子回路に電気的に接続され、永久磁石１５のＳ極を引き付ける磁界を発生させる電流（Ａ値＝「０」）と、永久磁石１５のＮ極を引き付ける磁界を発生させる電流（Ｂ値＝「１」）とのいずれかが供給されるようになっている。
【００１１】
このような人形３では、図５および図６に示すように各部分が動作する。すなわち、胴体部７は人形軸６に対して、Ａ値で左に５度回転し、Ｂ値で右に５度回転する。上腕８は胴体部７に対して、Ａ値で垂下し、Ｂ値で前方に９０度回転して水平になる。下腕９は垂下した上腕８に対して、Ａ値で垂下し、Ｂ値で前方に９０度回転して水平になる。腿１０は胴体部７に対して、Ａ値で垂下し、Ｂ値で前方に９０度回転して水平になる。脛１１は垂下した腿１０に対して、Ａ値で垂下し、Ｂ値で後方に９０度回転して水平になる。したがって、この人形３では、各部分の駆動装置１２がすべてＡ値になると、図６（ａ）に示すように、上腕８、下腕９、腿１０、および脛１１がそれぞれ垂下した状態で、人形３全体が左に５度回転することになり、この状態で下腕９の取付部と脛１１の取付部との各駆動装置１２がＢ値になると、図６（ｂ）に示すように、下腕９が前方に９０度回転するとともに脛１１が後方に９０度回転してそれぞれ水平になり、さらにこの状態で上腕８の取付部と腿１０の取付部との各駆動装置１２がＢ値になると、図６（ｃ）に示すように、上腕８と腿１０がそれぞれ前方に９０度回転して水平になるとともに、下腕９が垂直に立ち、脛１１が垂下した状態になる。このように、この人形３では、２の９乗の５１２とうりのポーズが選択できる。
【００１２】
また、楽器ケース１上のポーズ入力部４は、図７に示すように、人形３が表示された人形表示部２０と、この人形表示部２０の周囲に人形３の各部分に対応して設けられたポーズセレクトスイッチＳＷ１〜ＳＷ９とからなっており、各ポーズセレクトスイッチＳＷ１〜ＳＷ９はそれぞれ押すごとにＡ値とＢ値が交互に選択されるようになっている。この場合、ポーズセレクトスイッチＳＷ１は人形３の左側の上腕８に対応し、ポーズセレクトスイッチＳＷ２は左側の下腕９に対応し、ポーズセレクトスイッチＳＷ３は左側の腿１０に対応し、ポーズセレクトスイッチＳＷ４は左側の脛１１に対応し、ポーズセレクトスイッチＳＷ５は人形３の右側の上腕８に対応し、ポーズセレクトスイッチＳＷ６は右側の下腕９に対応し、ポーズセレクトスイッチＳＷ７は右側の腿１０に対応し、ポーズセレクトスイッチＳＷ８は右側の脛１１に対応し、ポーズセレクトスイッチＳＷ９は人形３の下側の人形軸６に対応している。
【００１３】
楽器ケース１上のデータ入力部５は、図８に示すように、その領域内の中央上部に配置されたＬＥＤや液晶表示装置などからなる表示部２１を備えている。この表示部２１の左側には、人形３の動作（ダンス）のオン−オフを指定するダンスオンオフキー２２、数字を入力するテンキー２３、音色を選択するトーンセレクトキー２４、リズムを選択するリズムセレクトキー２５、演奏のイントロを指定するイントロキー２６、演奏のフィルインを指定するフィルインキー２７、演奏のノーマルを指定するノーマルキー２８、演奏のエンディングを指定するエンディングキー２９が配置されている。表示部２１の下側には、表示部２１に表示されたカーソルの位置を指定するカーソルキー３０、入力するデータを削除するデリートキー３１、入力するデータをストアするエンターキー３２、リズムをスタートおよびストップするリズムスタートストップキー３３が配置されている。さらに、表示部２１の右側には、クリエートモードとプレイモードを選択指定するモード切替キー３４、ダンスソング処理を選択するダンスソングキー３５、ダンスパターン処理を選択するダンスパターンキー３６、ダンスポーズ処理を選択するダンスポーズキー３７、リズムダンスパターン処理を選択するリズムダンスパターンキー３８、指定したトリガーに起動するダンスポーズを指定するトリガーダンスキー３９、ダンスを一時的に変化させるダンスフィルインキー４０が配置されている。
【００１４】
このような電子楽器の回路構成について図９を参照して説明する。
制御部（ＣＰＵ）４５は、回路全般を制御するものであり、鍵盤部２、ポーズ入力部４、データ入力部５からなる入力部４６からデータが与えられる。すなわち、制御部４５は、入力部４６から鍵盤部２の鍵操作による楽音データが与えられると、この楽音データに基づいて音源部４７で楽音を作成してパワーアンプスピーカＰＡから楽音を発生させる。また、制御部４５は、入力部４６からダンスオン信号およびクリエートモードでダンスポーズ、ダンスパターンなどの各種のデータが与えられると、これらのデータを順次ＲＡＭ（記憶手段）４８に記憶する。さらに、制御部４５は、入力部４６からダンスオン信号およびプレイモードで楽音データが与えられると、上記のように楽音を発生させるとともに、ＲＡＭ４８から指定されたデータを読み出し、この読み出したデータに基づいて各駆動装置１２の駆動を制御し、人形３を動作させる。
【００１５】
次に、図１０〜図１５を参照して、データフォーマットについて説明する。
ダンスポーズのデータフォーマットは、図１０に示すように、人形３がある一瞬静止した状態でのポーズを表すもので、９ビットのデータで表されている。この場合、各ビットは各駆動装置１２のＡ値（＝０）、Ｂ値（＝１）で「０」、「１」で表される。
ダンスパターンのデータフォーマットは、図１１に示すように、ダンスポーズＮＯと次のダンスポーズまでのクロック値（拍数）との組を小節（１小節または複数小節）ごとに連続して表される。この場合、クロック値は８分音符単位で指定されるようになっている。また、ダンスパターンのデータ長は、固定長の場合と非固定長の場合とがある。固定長のものは、演奏のイントロ、エンディングなどに対応した長さのパターンをもち、後述するリズムダンスパターンの長さにダンスパターンの長さが一致している。また、非固定長のものは、ダンスポーズおよびクロック値の組を順次入力したダンスパターンの長さで、入力したクロック値の合計であり、各ダンスパターンによって長さが異なる。
ダンスソングのデータフォーマットは、図１３に示すように、ダンスパターンＮＯとその繰返し回数との組を演奏の長さに応じて複数組連ねて表される。例えば、ダンスパターンの１つを４回繰り返すように設定するとして、そのダンスパターンが２小節であったとすると、８小節に亘って１つのダンスパターンが再生される。なお、繰返し回数は、この実施例では９８回まで可能とし、９９を指定すると特別に永久繰り返しをするように設定されている。
リズムダンスパターンのデータフォーマットは、図１２に示すように、リズムのイントロ、ノーマル、フィルイン、エンディングなどに分けられ、各リズムが複数のダンスパターンＮＯの組み合わせ、あるいは１つのダンスパターンＮＯの繰り返しで表される。
【００１６】
また、上記以外に２つの特殊なデータフォーマットがある。
一つはトリガーダンスで、楽音データのある部分をトリガーとして記憶していたダンスパターンを演奏中に自動的に割り込ませて再生させるためのものである。このデータフォーマットは図１４に示すようにトリガーデータとダンスパターンＮＯとの組で表される。この場合、トリガーデータはトリガーイベントとトリガー値とで表される。トリガーイベントは楽音データのトリガーであり、例えば音高やイニシャルベロシティーなどで、音高を「１」、ベロシティーを「０」で指定する。トリガー値は音高データとベロシティー値で表される。したがって、音高を指定すれば、演奏中に特徴的な音高が鳴るごとに、決まったダンスパターンが再生される。また、イニシャルベロシティーは、ＭＡＸになったときだけ特殊なダンスパターンを再生するようにすれば、強く鍵を弾く度に、決まったダンスパターンが再生される。
もう一つはダンスフィルインで、音楽のフィルインとは独立に指定できるものであり、そのデータフォーマットは図１５に示すようにダンスパターンＮＯで表される。その使用方法は、音楽のフィルインと同様、ダンスソングまたはリズムダンスパターンの再生中にダンスを変化させたいときに、ダンスフィルインキー４０を押すと次の小節から記憶したダンスパターンが再生され、その後、普通のダンスパターンに戻る。
【００１７】
次に、この第１実施形態における電子楽器の動作フローについて、図１６〜図３７を参照して説明する。
この動作フローでは、ダンスオンオフキー２２がオンの状態の場合であり、ダンスオンオフキー２２がオフのときは普通の電子鍵盤楽器として使用できるようになっている。
まず、メインフローでは、図１６に示すように、ダンスオンオフキー２２がオンの状態でスタートし、ステップＳ１でモード切替キー３４がクリエートモードであるかプレイモードであるかを判断し、クリエートモードのときにはステップＳ２に進んでクリエート処理を行なってステップＳ１に戻り、プレイモードのときにはステップＳ３に進んでプレイ処理を行なってステップＳ１に戻る。
【００１８】
［クリエート処理］
まず、クリエート処理について説明する。
クリエート処理では、ダンスソングキー３５、ダンスパターンキー３６、ダンスポーズキー３７、リズムダンスパターンキー３８、トリガーダンスキー３９、ダンスフィルインキー４０のいずれがオンされたかを判断し、オンされたキーに対応する処理を行なって、メインフローに戻る。すなわち、図１７に示すように、ステップＳ４ではダンスソングキー３５のオン−オフを判断し、オンのときにはステップＳ５に進んでダンスソング処理を行なってステップＳ６に進み、オフのときはそのままステップＳ６に進む。ステップＳ６ではダンスパターンキー３６のオン−オフを判断し、オンのときにはステップＳ７に進んでダンスパターン処理を行なってステップＳ８に進み、オフのときはそのままステップＳ８に進む。ステップＳ８ではダンスポーズキー３７のオン−オフを判断し、オンのときにはステップＳ９に進んでダンスポーズ処理を行なってステップＳ１０に進み、オフのときはそのままステップＳ１０に進む。ステップＳ１０ではリズムダンスパターンキー３８のオン−オフを判断し、オンのときにはステップＳ１１に進んでリズムダンスパターン処理を行なってステップＳ１２に進み、オフのときはそのままステップＳ１２に進む。ステップＳ１２ではトリガーダンスキー３９のオン−オフを判断し、オンのときにはステップＳ１３に進んでトリガーダンスパターン処理を行なってステップＳ１４に進み、オフのときはそのままステップＳ１４に進む。ステップＳ１４ではダンスフィルインキー４０のオン−オフを判断し、オンのときにはステップＳ１５に進んでダンスフィルイン処理を行なってメインフローに戻り、オフのときはそのままメインフローに戻る。
【００１９】
ダンスポーズ処理では、人形３のダンスポーズを順次指定して記憶する。すなわち、クリエート処理でダンスポーズ処理が選択されると、図１８に示すように、ステップＳ２０でテンキー２３が入力されたかを判断し、入力されたときにはステップＳ２１に進んでポーズＮＯレジスタＰＮＲに入力されたテンキー２３をストアしてステップＳ２２に進むが、テンキー２３が入力されていないと判断されたときにはそのままステップＳ２２に進む。ステップＳ２２ではデリートキー３１のオン−オフを判断し、オンのときにはステップＳ２３に進んでポーズＮＯレジスタＰＮＲの内容をクリアしてステップＳ２４に進むが、デリートキー３１がオフと判断されたときにはポーズＮＯレジスタＰＮＲの内容をストアしたままステップＳ２４に進む。ステップＳ２４ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ２５に進んでエンターフラグを「１」にしてステップＳ２６に進むが、エンターキー３２がオフと判断されたときにはステップＳ２６に進む。ステップＳ２６ではエンターフラグが「１」であるかを判断し、「１」でなければメインフローに戻り、「１」であればステップＳ２７に進む。
【００２０】
ステップＳ２７ではポーズセレクトスイッチＳＷ１〜ＳＷ９が押されたかを判断し、押されたときにはステップＳ２８に進んでポーズセレクトスイッチＳＷ１〜ＳＷ９がオンするごとにダンスポーズレジスタＤＰＲの対応するビットを反転させて、ダンスポーズレジスタＤＰＲの対応するビットのＡ値（「０」）かＢ値（「１」）かを選択し、ステップＳ２９に進む。このときには、すべてのポーズセレクトスイッチＳＷ１〜ＳＷ９について判断し、各ポーズセレクトスイッチＳＷ１〜ＳＷ９に対応する人形３の各部分のＡ値かＢ値をそれぞれ選択する。これにより、人形３の１つの動作ポーズが入力される。なお、ポーズセレクトスイッチＳＷ１〜ＳＷ９が押されていない判断されたときには、そのままステップＳ２９に進む。ステップＳ２９ではデリートキー３１のオン−オフを判断し、オンのときにはステップＳ３０に進んでダンスポーズレジスタＤＰＲの内容をクリアしてステップＳ３１に進むが、デリートキー３１がオフと判断されたときにはダンスポーズレジスタＤＰＲの内容をストアしたままでステップＳ３１に進む。ステップＳ３１ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ３２に進んでＲＡＭ４８のダンスポーズ記憶エリア内にポーズＮＯレジスタＰＮＲの内容をアドレスにしてダンスポーズレジスタＤＰＲの内容をストアし、メインフローに戻る。これにより、指定されたダンスポーズＮＯに選択されたダンスポーズが記憶される（図１０参照）。この場合には、人形３の各部分に対応するポーズセレクトスイッチＳＷ１〜ＳＷ９が９個あり、各スイッチＳＷ１〜ＳＷ９がそれぞれＡ値かＢ値の２つであることから、上記フローを繰り返すことにより人形３のポーズを２の９乗の５１２通り選択して順次入力することができる。なお、エンターキー３２がオフと判断されたときは、ダンスポーズレジスタＤＰＲの内容を記憶せずにメインフローに戻る。
【００２１】
ダンスパターン処理では、ダンスポーズ処理で入力されたダンスポーズＮＯと８分音符単位のクロック値とを１組として順次記憶する。すなわち、クリエート処理でダンスパターン処理が選択されると、図１９に示すように、ステップＳ３５に進み、クリエート処理における前のルーチンでダンスパターンキー３６がオフであるかを判断し、オフのときはステップＳ３６に進んでカウンタＣＲを「０」にしてステップＳ３７に進むが、オンと判断されたときにはステップＳ３７に進む。ステップＳ３７ではカーソルキー３０が操作されたかを判断する。そして、左側のカーソルキー３０がオンと判断されたときには、図１１に示すダンスパターンのデータフォーマットのダンスポーズＮＯ領域が指定され、ステップＳ３８でレフトフラグＬＦを「１」にしてステップＳ４０に進む。また、右側のカーソルキー３０がオンと判断されたときには、ダンスパターンのデータフォーマットのクロック値領域が指定され、ステップＳ３９でレフトフラグＬＦを「０」にしてステップＳ４０に進む。なお、左右のいずれのカーソルキー３０もオフと判断されたときには、そのままステップＳ４０に進む。
【００２２】
ステップＳ４０ではテンキー２３がオンであるかを判断し、オンのときはステップＳ４１に進んでレフトフラグＬＦが「１」であるかを判断し、「１」と判断されたときにはステップＳ４２に進んでテンキー２３の入力をポーズＮＯレジスタＰＮＲにストアしてステップＳ４４に進む。また、ステップＳ４１でレフトフラグＬＦが「１」でないと判断されたときには、ステップＳ４３に進んでテンキー２３の入力をクロック値指定レジスタＣＳＲにストアしてステップＳ４４に進む。なお、ステップＳ４０でテンキー２３がオフと判断されたときには、そのままステップＳ４４に進む。ステップＳ４４ではデリートキー３１のオン−オフを判断し、オンのときにはステップＳ４５に進んでレフトフラグＬＦが「１」であるかを判断し、「１」と判断されたときにはステップＳ４６に進んでポーズＮＯレジスタＰＮＲの内容をクリアしてステップＳ４８に進む。また、レフトフラグＬＦが「１」でないと判断されたときには、ステップＳ４７に進んでクロック値指定レジスタＣＳＲの内容をクリアしてステップＳ４８に進む。なお、ステップＳ４４でデリートキー３１がオフと判断されたときには、ポーズＮＯレジスタＰＮＲの内容およびクロック値指定レジスタＣＳＲの内容をストアしたままでステップＳ４８に進む。ステップＳ４８ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ４９に進んでカウンタＣＲをアドレスにしてＲＡＭ４８のダンスパターン記憶エリア内にポーズＮＯレジスタＰＮＲおよびクロック値指定レジスタＣＳＲの内容をストアし、ステップＳ５０に進んでカウンタＣＲに「１」を加えてカウントしてメインフローに戻る。これにより、指定されたダンスポーズＮＯとクロック値とからなるダンスパターンが記憶される（図１１参照）。このフローを繰り返すことにより順次ダンスパターンが記憶される。なお、ステップＳ４８でエンターキー３２がオフと判断されたときには、ポーズＮＯレジスタＰＮＲおよびクロック値指定レジスタＣＳＲの内容を記憶せずにメインフローに戻る。
【００２３】
ダンスソング処理では、ダンスパターン処理で入力されたダンスパターンＮＯとその繰返し回数との組を小節ごとに順次記憶する。すなわち、クリエート処理でダンスソング処理が選択されると、図２０に示すように、ステップＳ５５に進み、クリエート処理における前のルーチンでダンスパターンキー３６がオフであるかを判断し、オフのときはステップＳ５６に進んでカウンタＣＲを「０」にしてステップＳ５７に進むが、オンと判断されたときにはそのままステップＳ５７に進む。ステップＳ５７ではカーソルキー３０が操作されたかを判断する。そして、左側のカーソルキー３０がオンと判断されたときには、図１２に示すダンスソングのデータフォーマットのダンスパターンＮＯ領域が指定され、ステップＳ５８に進んでレフトフラグＬＦを「１」にしてステップＳ６０に進む。また、右側のカーソルキー３０がオンと判断されたときには、ダンスソングのデータフォーマットの繰返し回数領域が指定され、ステップＳ５９に進んでレフトフラグＬＦを「０」にしてステップＳ６０に進む。なお、左右のいずれのカーソルキー３０もオフと判断されたときには、そのままステップＳ６０に進む。
【００２４】
ステップＳ６０ではテンキー２３がオンであるかを判断し、オンのときはステップＳ６１に進んでレフトフラグＬＦが「１」であるかを判断し、「１」のときにはステップＳ６２に進んでテンキー２３の入力をダンスパターンＮＯレジスタＤＰＮＲにストアしてステップＳ６４に進むが、ステップＳ６１でレフトフラグＬＦが「１」でないと判断されたときには、ステップＳ６３に進んでテンキー２３の入力を繰返し回数レジスタＫＫＲにストアしてステップＳ６４に進む。なお、ステップＳ６０でテンキー２３がオフと判断されたときには、そのままステップＳ６４に進む。ステップＳ６４ではデリートキー３１のオン−オフを判断し、オンのときにはステップＳ６５に進んでレフトフラグＬＦが「１」であるかを判断し、「１」のときにはステップＳ６６に進んでダンスパターンレジスタＤＰＮＲの内容をクリアしてステップＳ６８に進み、またレフトフラグＬＦが「１」でないと判断されたときにはステップＳ６７に進んで繰返し回数レジスタＫＫＲの内容をクリアしてステップＳ６８に進む。なお、ステップＳ６４でデリートキー３１がオフと判断されたときには、ダンスパターンレジスタＤＰＮＲおよび繰返し回数レジスタＫＫＲの各内容をストアしたままでステップＳ６８に進む。ステップＳ６８ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ６９に進んでカウンタＣＲをアドレスにしてＲＡＭ４８のダンスソング記憶エリア内にダンスパターンレジスタＤＰＮＲおよび繰返し回数レジスタＫＫＲの内容をストアし、ステップＳ７０に進んでカウンタＣＲに「１」を加えてカウントして、メインフローに戻る。このように、このフローを繰り返すことにより、ダンスパターンＮＯとその繰返し回数とからなる組を複数組み合わせたダンスソングデータが記憶される（図１２参照）。なお、ステップＳ６８でエンターキー３２がオフと判断されたときには、ダンスパターンレジスタＤＰＮＲおよび繰返し回数レジスタＫＫＲの内容を記憶せずにメインフローに戻る。
【００２５】
リズムダンスパターン処理では、演奏のリズムをイントロ、フィルイン、ノーマル、エンディングの４つに分け、それぞれにリズムＮＯを指定し、各リズムＮＯごとにダンスパターンのデータを指定して記憶する。すなわち、クリエート処理でリズムダンスパターン処理が選択されると、図２１に示すステップＳ７１に進んでエンターフラグＥＦが「１」であるかを判断する。ここでエンターフラグＥＦが「１」でないと判断された場合には、ステップＳ７２に進んでテンキー２３がオンであるかを判断し、オンのときにはステップＳ７３に進んでテンキー２３の入力をリズム指定レジスタＲＳＲにストアし、ステップＳ７４以降に進む。なお、テンキー２３がオフと判断されたときは、そのままステップＳ７４以降に進む。
ステップ７４以降ではフィルインキー２７、イントロキー２６、エンディングキー２９、ノーマルキー２８のいずれがオンしたかを判断する。すなわち、ステップＳ７４ではフィルインキー２７がオンであるかを判断し、オンのときにはステップＳ７５に進んで変化パターン指定レジスタＨＰＲを「１」にしてステップＳ７６に進み、オフのときにはそのままステップＳ７６に進む。ステップＳ７６ではイントロキー２６がオンであるかを判断し、オンのときにはステップＳ７７に進んで変化パターン指定レジスタＨＰＲを「２」にしてステップＳ７８に進み、オフのときにはそのままステップＳ７８に進む。ステップＳ７８ではエンディングキー２９がオンであるかを判断し、オンのときにはステップＳ７９に進んで変化パターン指定レジスタＨＰＲを「３」にしてステップＳ８０に進み、オフのときにはそのままステップＳ８０に進む。ステップＳ８０ではノーマルキー２８がオンであるかを判断し、オンのときにはステップＳ８１に進んで変化パターン指定レジスタＨＰＲを「４」にしてステップＳ８２に進み、オフのときにはそのままステップＳ８２に進む。
ステップＳ８２ではデリートキー３１がオンであるかを判断し、オンのときにはステップＳ８３に進んでリズム指定レジスタＲＳＲおよび変化パターン指定レジスタＨＰＲの内容をクリアしてステップＳ８４に進むが、オフと判断されたときにはリズム指定レジスタＲＳＲおよび変化パターン指定レジスタＨＰＲの内容をストアしたままでステップＳ８４に進む。ステップＳ８４ではエンターキー３２がオンであるかを判断し、オンのときにはステップＳ８５に進んでエンターフラグＥＦを「１」にしてメインフローに戻る。なお、オフと判断されたときにはそのままメインフローに戻る。
【００２６】
このように、ステップＳ８４でエンターキー３２がオンし、ステップＳ８５でエンターフラグＥＦが「１」になった場合には、メインフローに戻った後、再びステップＳ７１に戻り、このステップＳ７１で今度はエンターフラグＥＦが「１」であると判断され、ステップＳ８６に進む。ステップＳ８６では前回のルーチンの変化パターン指定レジスタＨＰＲと同じであるかを判断し、同じでなければステップＳ８７に進んでカウンタＣＲを「０」にしてステップＳ８８に進み、同じであると判断されたときにはそのままステップＳ８８に進む。ステップＳ８８ではテンキー２３がオンであるかを判断し、オンのときにはステップＳ８９に進んでテンキー２３の入力をダンスパターンＮＯレジスタＤＰＮＲにストアしてステップＳ９０に進むが、オフと判断されたときにはそのままステップＳ９０に進む。ステップＳ９０ではデリートキー３１のオン−オフを判断し、オンのときにはステップＳ９１に進んでリズム指定レジスタＲＳＲ、変化パターン指定レジスタＨＰＲ、ダンスパターンＮＯレジスタＤＰＮＲの内容をクリアしてステップＳ９２に進むが、デリートキー３１がオフと判断されたときには、リズム指定レジスタＲＳＲ、変化パターン指定レジスタＨＰＲ、ダンスパターンＮＯレジスタＤＰＮＲの内容をストアしたままでステップＳ９２に進む。ステップＳ９２ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ９３に進んでカウンタＣＲ及び変化パターン指定レジスタＨＰＲをアドレスにしてＲＡＭ４８のリズム指定レジスタＲＳＲで示すエリアに、ダンスパターンＮＯレジスタＤＰＮＲの内容をストアし、ステップＳ９４に進んでカウンタＣＲに「１」を加えてカウントし、メインフローに戻る。これにより、イントロ、フィルイン、ノーマル、エンディングごとに指定されたリズムＮＯでダンスパターンが記憶される（図１３参照）。なお、ステップＳ９２でエンターキー３２がオフと判断されたときには、リズム指定レジスタＲＳＲ、変化パターン指定レジスタＨＰＲ、ダンスパターンＮＯレジスタＤＰＮＲの内容を記憶せずにメインフローに戻る。
【００２７】
トリガーダンスパターン処理では、楽音の音高およびベロシティを指定し、指定された音高データおよびベロシティ値に対応するダンスパターンを指定して記憶する。すなわち、クリエート処理でトリガーダンスパターン処理が選択されると、図２２に示すように、ステップＳ１００に進み、前回のルーチンでトリガーダンスキー３９がオンであるかを判断し、オンのときにはステップＳ１０１に進んでトリガーダンスフラグＴＤＦを「１」にしてステップＳ１０３に進み、またオフと判断されたときにはステップＳ１０２に進んでトリガーダンスフラグＴＤＦを「０」にしてステップＳ１０３に進む。ステップＳ１０３では鍵盤部２の鍵が押鍵されたかを判断し、押鍵されたときにはステップＳ１０４に進んでトリガーダンスフラグＴＤＦが「１」であるかを判断し、「１」であるときにはステップＳ１０５に進んでベロシティ値をトリガーレジスタＴＲにストアしてステップＳ１０７に進み、またトリガーダンスフラグＴＤＦが「１」でないと判断されたときにはステップＳ１０６に進んで音高データをトリガーレジスタＴＲにストアしてステップＳ１０７に進む。なお、ステップＳ１０３で押鍵操作がされていないと判断されたときには、そのままステップＳ１０７に進む。ステップＳ１０７ではテンキー２３が入力されたかを判断し、入力されたときにはステップＳ１０８に進んでテンキー２３の入力をダンスパターンＮＯレジスタＤＰＮＲにストアしてステップＳ１０９に進み、入力がなされていないと判断されたときにはそのままステップＳ１０９に進む。ステップＳ１０９ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ１１０に進んでトリガーダンスフラグＴＤＦに応じてＲＡＭ４８のトリガーダンスパターン記憶エリア内にダンスパターンＮＯレジスタＤＰＮＲおよびトリガーレジスタＴＲの内容をストアしてメインフローに戻る。これにより、指定された音高データおよびベロシティ値に応じたダンスパターンが記憶される（図１４参照）。なお、エンターキー３２がオフと判断されたときには、ダンスパターンＮＯレジスタＤＰＮＲおよびトリガーレジスタＴＲの内容を記憶せずにメインフローに戻る。
【００２８】
ダンスフィルイン処理では、ダンスソングおよびリズムダンスパターンの再生中にダンスフィルインキー４０が押されたときに次の小節から再生するダンスパターンを指定して記憶する。すなわち、クリエート処理でダンスフィルイン処理が選択されると、図２３に示すように、ステップＳ１１１でテンキー２３が入力されたかを判断し、入力されたときにはステップＳ１１２に進んでテンキー２３の入力をダンスパターンＮＯレジスタＤＰＮＲにストアしてステップＳ１１３に進み、入力がなされていないと判断されたときにはそのままステップＳ１１３に進む。ステップＳ１１３ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ１１４に進んでＲＡＭ４８のダンスフィルイン記憶エリア内にダンスパターンＮＯレジスタＤＰＮＲの内容をストアしてメインフローに戻る。これにより、ダンスフィルインとして指定されたダンスパターンが記憶される（図１５参照）。なお、エンターキー３２がオフと判断されたときには、ダンスパターンＮＯレジスタＤＰＮＲの内容を記憶せずにメインフローに戻る。
【００２９】
［プレイ処理］
次に、プレイ処理について説明する。
プレイ処理では、鍵盤部２で演奏を行なうとともに、ＲＡＭ４８に記憶されたダンスポーズ、ダンスパターン、ダンスソング、リズムダンスパターン、トリガーダンス、ダンスフィルインなどのデータを読み込んで、人形３を指定されたダンスポーズおよびダンスパターンで動作させる。
すなわち、メインフローでモード切替キー３４がプレイモードに選択されると、図２４に示すステップＳ１２０に進んで鍵盤処理を行なう。この鍵盤処理は、図３２に示すステップＳ１２１で鍵盤部２の鍵が変化したかを判断する。そして、鍵が変化したときには、ステップＳ１２２に進んでオンフラグＯＮＦを「１」にし、ステップＳ１２３に進んで鍵盤部２の押鍵によるベロシティ値と音高データをストアし、ステップＳ１２４に進んで押鍵された鍵に対応する発音処理をして、図２４のプレイ処理のステップＳ１３０に進む。また、ステップＳ１２１で鍵の変化が終了したと判断されたときには、ステップＳ１２５に進んでオンフラグＯＮＦを「０」にし、ステップＳ１２６に進んで離鍵された鍵のベロシティ値と音高データをストアし、ステップＳ１２７に進んで押鍵された鍵に対応する消音処理をして、プレイ処理のステップＳ１３０に進む。なお、ステップＳ１２１で鍵がそのままで変化ないと判断されたときには、プレイ処理のステップＳ１３０に進む。
【００３０】
ステップＳ１２０で鍵盤処理が行なわれた後は、ステップＳ１３０に進んでダンスオンオフキー２２のオン−オフを判断し、オフのときにはメインフローに戻る。オンと判断されたときにはステップＳ１３１以降に進んでダンスソングキー３４、ダンスパターンキー３６、ダンスポーズキー３７、リズムダンスパターンキー３８、およびリズムセレクトキー２５のいずれがオンであるかを判断する。つまり、まず、ステップＳ１３１ではダンスソングキー３４がオンであるかを判断し、オンのときにはステップＳ１３２に進んでプレイモードＰＭを「１」にして、ステップＳ１３３に進んでＲＡＭ４８からダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲに読み出し、ステップＳ１３４に進んでＲＡＭ４８から繰返し回数をリピートレジスタＲＰに読み出してステップＳ１３５に進む。また、ダンスソングキー３４がオフと判断されたときには、そのままステップＳ１３５に進む。ステップＳ１３５ではダンスパターンキー３６がオンであるかを判断し、オンのときにはステップＳ１３６に進んでプレイモードＰＭを「２」にしてステップＳ１３７に進み、オフと判断されたときにはそのままステップＳ１３７に進む。ステップＳ１３７ではダンスポーズキー３７がオンであるかを判断し、オンのときにはステップＳ１３８に進んでプレイモードＰＭを「３」にしてステップＳ１３９に進み、オフと判断されたときにはそのままステップＳ１３９に進む。ステップＳ１３９ではリズムダンスパターンキー３８がオンであるかを判断し、オンのときにはステップＳ１４０に進んでプレイモードＰＭを「４」にし、図２５に示すステップＳ１４１に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８からノーマルのダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアしてステップＳ１４２に進み、オフと判断されたときにはそのままステップＳ１４２に進む。
【００３１】
図２５に示すステップＳ１４２では、リズムセレクトキー２５がオンであるかを判断し、オンのときにはステップＳ１４２に進んでリズムフラグＲＦを反転させてステップＳ１４３に進み、オフと判断されたときにはそのままステップＳ１４４に進む。ステップＳ１４４ではリズムフラグＲＦが「１」であるかを判断し、「１」であればステップＳ１４５に進んでテンキー２３が入力されたかを判断し、入力されていればステップＳ１４６に進んでテンキー２３の入力をリズムＮＯレジスタＲＮＲにストアしてステップＳ１４７に進み、テンキー２３が入力されていないと判断されたときにはそのままステップＳ１４７に進む。ステップＳ１４７ではエンターキー３２がオンであるかを判断し、オンのときにはステップＳ１４８に進んでリズムフラグＲＦを「０」にしてステップＳ１４９に進む。なお、ステップＳ１４４でリズムフラグＲＦが「１」でないと判断されたとき、およびステップＳ１４７でエンターキー３２がオフと判断されたときには、それぞれステップＳ１４９に進む。
【００３２】
ステップＳ１４９ではリズムスタートストップキー３３がオンであるかを判断し、オンのときにはステップＳ１５０に進んでスタートフラグＳＴＦを反転させ、ステップＳ１５１に進んであるポーズの継続時間を示すクロックＣＬを「０」にするとともに、演奏パターン長Ｃを「０」にしてステップＳ１５２に進む。なお、リズムスタートストップキー３３がオフと判断されたときには、ステップＳ１５２に進む。ステップＳ１５２ではイントロキー２６がオンであるかを判断し、オンのときにはステップＳ１５３に進んでスタートフラグＳＴＦを「１」にし、ステップＳ１５４に進んでクロックＣＬを「０」にするとともに、演奏パターン長Ｃを「０」にし、さらにステップＳ１５５に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８から「イントロ」のダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアして、図２６に示すステップＳ１５６に進む。なお、ステップＳ１５２でイントロキー２６がオフと判断されたときには、そのままステップＳ１５６に進む。
図２６のステップＳ１５６では、スタートフラグＳＴＦが「１」であるかを判断し、「１」でないときにはステップＳ１５７に進んでタイマインタラプトを禁止し、ステップＳ１５８で駆動装置１２の動作を停止させて、メインフローに戻る。スタートフラグＳＴＦが「１」と判断されたときにはステップＳ１５９に進んでタイマインタラプトを解除し、ステップＳ１６５のリズム処理を行なう。タイマインタラプトでは、図３７に示すステップＳ１６０でポーズタイマフラグＴＦ１を「１」にし、ステップＳ１６１でリズム音タイマフラグＴＦ２を「１」にする。
【００３３】
ステップＳ１６５のリズム処理では、図３３に示すステップ１６６でリズムパターン再生を行なう。リズムパターン再生は、ステップＳ１５９でタイマインタラプトが解除されると、図３４に示すステップＳ１６７で演奏パターン長Ｃが「０」であるかを判断し、「０」であればステップＳ１６８に進んでリズムパターンレジスタＲＰＲに対応するリズム音パターンからリズム音色をリズムトーンレジスタＲＴＮに読み込むとともに、クロック数を演奏パターン長レジスタＣに読み込んで、図３３のステップＳ１７５に進む。ステップＳ１６７で演奏パターン長Ｃが「０」でなければ、ステップＳ１６９に進んでリズムトーンレジスタＲＴＮの内容に基づいてリズム音を発音し、ステップＳ１７０に進んでリズム音タイマフラグＴＦ２が「１」であるかを判断し、「１」でなければ、リズム音タイマフラグＴＦ２が「１」になるまでステップＳ１６９でリズム音を発音させ、リズム音タイマフラグＴＦ２が「１」になると、ステップＳ１７１に進んで演奏パターン長Ｃを「１」だけ減算し、ステップＳ１７２に進んでリズム音タイマフラグＴＦ２を「０」にし、演奏パターン長Ｃが「０」になるまでこのフローを繰り返し、図３３のステップＳ１７５に進む。
図３３のリズム処理のステップＳ１７５では、リズムパターンのデータが終了しているかを判断し、リズムパターンのデータが終了していないときには終了するまでリズムパターン再生を行なってリズム音を発音させ、リズムパターンのデータが終了すると、ステップＳ１７６に進んでエンディングキー２９がオンであるかを判断し、オフのときにはステップＳ１７７に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８からリズムパターンＮＯをリズムパターンレジスタＲＰＲにストアして、図２６のプレイ処理のステップＳ１８０以降に進む。エンディングキー２９がオンのときには、ステップＳ１７８に進んでスタートフラグＳＴＦを「０」にして、プレイ処理のステップＳ１８０以降に進む。
【００３４】
図２６のプレイ処理のステップＳ１８０以降では、ダンスソング、ダンスパターン、ダンスポーズ、リズムダンスパターン、ダンスフィルイン、トリガーダンスの各データに応じて人形３を動作させる。
まず、ステップＳ１８０では、ダンスソングモードであるかを判断する。すなわち、ステップＳ１８０でプレイモードＰＭが「１」であるかを判断し、「１」でなければ、ダンスソングモードでないので、後述する図２７のステップＳ２００に進み、「１」であればステップＳ１８１のパターン再生を行なう。パターン再生は、図３５に示すステップＳ１８２でクロックＣＬが「０」であるかを判断し、「０」であれば、ステップＳ１８３に進んでダンスパターンＮＯレジスタＤＰＮＲに対応するダンスパターンからダンスポーズＮＯをポーズＮＯレジスタＰＮＲに読み込むとともに、クロック数をレジスタＣＬに読み込む。また、クロックＣＬが「０」でなければ、ステップＳ１８４に進んでポーズ再生を行なう。ポーズ再生は、図３６に示すステップＳ１８５でポーズＮＯレジスタＰＮＲの内容に基づいて駆動装置１２を動作させる。これにより、人形３が動作して１つのポーズをとる。そして、図３５のステップＳ１８６に進んでポーズタイマフラグＴＦ１が「１」であるかを判断し、「１」でなければ、ポーズタイマフラグＴＦ１が「１」になるまでポーズ再生を繰り返えす。これにより、人形３が順次ポーズをとる。ポーズタイマフラグＴＦ１が「１」になると、ステップＳ１８７に進んでクロックＣＬを「１」減算し、ステップＳ１８８に進んでポーズタイマフラグＴＦ１を「０」にし、ステップＳ１８２のクロックＣＬが「０」になるまで上述した処理を繰り返す。これにより、人形３が指定されたダンスパターンの動作を行なう。なお、ステップＳ１８２でクロックＣＬが「０」になれば、ステップＳ１８８を経てプレイ処理の次のステップＳ１９０に進む。
【００３５】
プレイ処理のステップＳ１９０では、ダンスソングのデータが終了したかを判断し、終了していないときにはダンスソングの１組のデータが終了するまでステップＳ１８１のパターン再生を行ない、終了したときにはステップＳ１９１に進んでリピートレジスタＲＰから「１」を減算してステップＳ１９２に進む。ステップＳ１９２ではリピートレジスタＲＰが「０」であるかを判断し、「０」でないときはリピートレジスタＲＰが「０」になるまでステップＳ１８１のパターン再生を行ない、「０」になったときにはステップＳ１９３に進む。これにより、人形３がダンスソングの指定された１組のデータの動作を終了する。そして、ステップＳ１９３では次のデータの有無を判断し、次のデータがあるときにはステップＳ１９４に進んで次のダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアするとともに、その繰返し回数をリピートレジスタＲＰにストアし、このデータに基づいて再びパターン再生を行ない、ステップＳ１９３で次のデータがなくなるまでパターン再生を繰り返す。これにより、人形３が指定された一連のダンスパターンの動作をする。なお、ステップＳ１９４でデータがないと判断されたときには、ステップＳ１９５に進んでスタートフラグＳＴＦを「０」にして図２７のステップＳ２００に進む。
【００３６】
図２７のステップＳ２００では、ダンスパターンモードであるかを判断する。すなわち、ステップＳ２００でプレイモードＰＭが「２」であるかを判断し、「２」でなければ、ダンスパターンモードでないので、ステップＳ２０４に進むが、「２」であるときにはステップＳ２０１に進んで前述したパターン再生を行なう。これにより、人形３が指定されたダンスパターンの動作を行なう。そして、ステップＳ２０２に進んでダンスパターンのデータが終了しているかを判断し、終了していないときにはダンスパターンのデータが終了するまでパターン再生を行ない、終了したときにはステップＳ２０３に進んでクロックＣＬを「０」にして、ステップＳ２０４に進む。
ステップＳ２０４では、ダンスポーズモードであるかを判断する。すなわち、このステップＳ２０４でプレイモードＰＭが「３」であるかを判断し、「３」であるときにはステップＳ２０５に進んで前述したポーズ再生を行なって、人形３に指定されたポーズをとらせ、図２８に示すステップＳ２０６に進む。なお、ステップＳ２０４で、プレイモードＰＭが「３」でなければ、ダンスポーズモードでないので、図２８に示すステップＳ２０６に進む。
【００３７】
図２８のステップＳ２０６では、リズムダンスパターンモードであるかを判断する。すなわち、ステップＳ２０６でプレイモードＰＭが「４」であるかを判断し、「４」であればステップＳ２０７に進んで前述したパターン再生を行なう。このときには、リズムダンスパターンのデータに基づいて人形３が動作する。そして、ステップＳ２０８に進んでリズムダンスパターンのデータが終了しているかを判断し、終了していないときにはリズムダンスパターンのデータが終了するまでパターン再生を行ない、終了するとステップＳ２０９に進んでエンディングであるかを判断し、エンディングでなければステップＳ２１０に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８からノーマルのダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアし、再びステップＳ２０７のパターン再生を繰り返す。そして、ステップＳ２０９でエンディングであると判断されると、ステップＳ２１１に進んでスタートフラグＳＴＦを「０」にし、ステップＳ２１２に進んで駆動装置１２を停止させてメインフローに戻る。なお、ステップＳ２０６でプレイモードＰＭが「４」でないときには、リズムダンスパターンモードでないので、ステップＳ２１３に進む。
【００３８】
ステップＳ２１３では、ダンスフィルインであるかを判断する。すなわち、ステップＳ２１３でダンスフィルインキー４０がオンであるかを判断し、オンであるときには、ステップＳ２１４に進んでダンスフィルインフラグＤＦＦを「１」にしてステップＳ２１５に進むが、ダンスフィルインキー４０がオフのときにはそのままステップＳ２１５に進む。ステップＳ２１５ではダンスフィルインフラグＤＦＦが「１」であるかを判断し、「１」であるときにはステップＳ２１６に進んで次の小節の１拍目であるかを判断し、次の小節の１拍目でないときには次の小節の１拍目になるまで待機し、ステップＳ２１６で次の小節の１拍目であると判断されたときにはステップＳ２１７に進んでＲＡＭ４８のダンスフィルイン記憶エリアからダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアし、ステップＳ２１８に進んでクロックＣＬを「０」にするとともに、ダンスフィルインフラグＤＦＦを「０」にする。これにより、現在行なわれているパターン再生、つまりダンスソングモード（プレイモード「１」）、ダンスパターンモード（プレイモード「２」）、リズムダンスパターンモード（プレイモード「４」）のいずれかのパターン再生中に、ダンスフィルインで指定されたダンスパターンのデータに応じて人形３が動作する。なお、人形３の動作が終了した後、およびステップＳ２１５でダンスフィルインフラグＤＦＦが「１」でないと判断されたときには、図２９のステップＳ２２０に進む。
【００３９】
図２９のステップＳ２２０では、トリガーダンスモードであるかを判断する。すなわち、ステップＳ２２０でトリガーダンスキー３９がオンであるかを判断し、オンのときにはステップＳ２２１に進んでＲＡＭ４８のトリガーダンス記憶エリア内のトリガーイベントを読み出し、ステップＳ２２２に進んでオンフラグＯＮＦが「１」であるかを判断し、「１」であればステップＳ２２３に進んでトリガーイベントが「１」であるかを判断する。そして、トリガーイベントが「１」と判断されたときには、ステップＳ２２４に進んで鍵盤部２の押鍵による音高とトリガーダンス記憶エリアの音高とが同じであるかを比較し、同じであればステップＳ２２６に進む。また、トリガーイベントが「１」でないと判断されたときには、ステップＳ２２５に進んで押鍵によるベロシティとトリガーダンス記憶エリアのベロシティとが同じであるかを比較し、同じであればステップＳ２２６に進む。ステップＳ２２６では、ＲＡＭ４８のトリガーダンス記憶エリアのダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアし、ステップＳ２２７に進んでクロックＣＬを「０」にする。これにより、鍵盤部２の押鍵操作中に指定された音高または指定されたベロシティになると、その都度、パターン再生を行なって、人形３を指定されたダンスパターンで動作させる。なお、ステップＳ２２４で押鍵による音高とトリガーダンス記憶エリアの音高とが同じでないとき、およびステップＳ２２５で押鍵によるベロシティとトリガーダンス記憶エリアのベロシティとが同じでないときには、上述したパターン再生は行なわない。また、ステップＳ２２３でオンフラグＯＮＦが「１」でないと判断されたとき、およびステップＳ２２０でトリガーダンスキー３９がオフと判断されたときには、上述したパターン再生は行なわずに、メインフローに戻る。
【００４０】
次に、プレイ処理中におけるリズムダンスパターンのフィルインおよびエンデングの割込みについて説明する。
リズムダンスパターンのフィルインは、プレイ処理中にフィルインキー２７がオンされると、図３０に示すステップＳ２３０でプレイモードＰＭが「４」つまりリズムダンスパターンモードであるかを判断し、「４」でなければフィルイン処理を行なわずにプレイ処理を続行するが、「４」であると判断されたときには、ステップＳ２３１に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８から「フィルイン」のダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアする。そして、ステップＳ２３２に進んでクロックＣＬを「０」にし、ステップＳ２３３に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８から「フィルイン」のダンスパターンＮＯをリズムパターンレジスタＲＰＲにストアし、ステップＳ２３４に進んで演奏パターン長Ｃを「０」にする。これにより、リズムダンスパターンモード中にフィルインキー２７がオンされると、リズムダンスパターンの再生中に割り込んで「フィルイン」のダンスパターンを再生する。
リズムダンスパターンのエンディングは、プレイ処理中にエンディングキー２９がオンされると、図３１に示すステップＳ２３５でプレイモードＰＭが「４」つまりリズムダンスパターンモードであるかを判断し、「４」でなければエンディング処理を行なわずにプレイ処理を続行するが、「４」であると判断されたときには、ステップＳ２３６に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８から「エンディング」のダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアする。そして、ステップＳ２３７に進んでクロックＣＬを「０」にし、ステップＳ２３８に進んでリズムＮＯレジスタＲＮＲの内容に基づいてＲＡＭ４８から「エンディング」のダンスパターンＮＯをリズムパターンレジスタＲＰＲにストアし、ステップＳ２３９に進んで演奏パターン長Ｃを「０」にする。これにより、リズムダンスパターンモード中にエンディングキー２９がオンされると、リズムダンスパターンの再生中に割り込んで「エンディング」のダンスパターンを再生する。
【００４１】
このように、第１実施形態の電子楽器では、クリエート処理により、人形３のポーズデータを複数入力し、これらのポーズデータを適宜選択して複数のダンスパターンデータを入力するので、これらのダンスパターンデータを適宜選択するとともに各選択されたダンスパターンデータの繰返し数を指定することにより、ダンスソングデータを入力したり、あるいは演奏をイントロ、フィルイン、エンデング、ノーマルなどに分け、それぞれに対応してダンスパターンデータを選択することにより、リズムダンスパターンデータを入力したりすることができ、このため使用者が好みに応じて人形３の動作データを簡単に入力することができる。
また、プレイ処理により、入力されたデータに基づいて人形３を鍵盤部２による演奏に同期して動作させることができるとともに、人形３をダンスソング、リズムダンスパターン、ダンスパターン、およびダンスポーズの４種類中で動作させることができるほか、フィルインキー２７、エンディングキー２９、トリガーダンスキー３９、ダンスフィルインキー４０を操作することにより演奏中でも押圧されたキーに対応するデータの内容に応じて人形を動作させることができる。
【００４２】
次に、図３８〜図４８を参照して第２実施形態について説明する。第２実施形態における発明は、第１実施形態における発明をさらに改良したものであり、人形３が指定されたリズムのテンポに同期して指定されたダンスパターンに基づいて動作する際に、人形３の機械的構造に起因する慣性により、そのリズムのテンポに追従できない場合を考慮したものである。
第２実施形態における電子楽器の構成のうち、第１実施形態における電子楽器の構成と同じものは第１実施形態を援用し、主に異なる部分について説明する。第２実施形態における電子楽器の楽器ケース１上のデータ入力部５には、図３８に示すように、テンポ設定キー４１が設けられている。テンポ設定キー４１は曲のテンポを設定するスイッチであり、例えば、８分音符を拍の単位として１分間の拍数を設定する。また、ＲＡＭ４８のダンスパターンのフォーマットは、図３９に示すように、ダンスポーズＮＯ及びクロック値の他に各ダンスポーズＮＯごとに優先順位がストアされる。また、後述するスキップ処理を行うために、各ダンスパターンＮＯごとにスキップ判定エリア４２が設けられている。
【００４３】
次に、この第２実施形態のクリエート処理におけるダンスパターン処理について説明する。第１実施形態では、図１９に示すようなダンスパターン処理を行ったが、第２実施形態の処理では、カーソルキー３０及びテンキー２３の操作に応じて、図１８のダンスポーズ処理で入力されたダンスポーズＮＯ、８分音符単位のクロック値及び優先順位をＲＡＭ４８にストアする。すなわち、ダンスパターン処理が選択されると、図４０に示すように、ステップＳ３０１においてクリエート処理における前のルーチンでダンスパターンキー３６がオフであったか否かを判断し、オフであったと判断したときはステップＳ３０２に移行して、ポインタＣＲを「０」にリセットしてステップＳ３０３に移行する。ポインタＣＲは、ダンスポーズＮＯをストアするごとにインクリメントされるポインタである。ステップＳ３０１において、ダンスパターンキー３６がオンであったと判断したときにはポインタＣＲをリセットすることなくステップＳ３０３に移行する。ステップＳ３０３では、カーソルキー３０が操作されたかを判断する。そして、左側のカーソルキー３０がオンと判断したときには、ステップＳ３０４に移行してレフトフラグＬＦを「１」だけデクリメントしてステップＳ３０５に移行する。ステップＳ３０５ではレフトフラグＬＦが「０」より小さいかすなわち負の値かどうかを判断する。負の値である場合には、ステップＳ３０６に移行してレフトフラグＬＦを「２」にセットする。一方、ステップＳ３０３において右側のカーソルキー３０がオンと判断したときには、ステップＳ３０７に移行してレフトフラグＬＦを「１」だけインクリメントしてステップＳ３０８に移行する。ステップＳ３０８ではレフトフラグＬＦが「２」より大きいかどうかを判断する。「２」より大きい場合にはステップＳ３０９に移行してレフトフラグＬＦを「０」にセットする。
【００４４】
ステップＳ３０３〜ステップＳ３０９の処理は、カーソルキー３０の操作に応じてレフトフラグＬＦの値を「０」、「１」、「２」のいずれかにセットする処理である。レフトフラグＬＦの値によってダンスパターンのデータフォーマットのエリアが指定される。すなわち、レフトフラグＬＦが「０」の場合はダンスポーズＮＯエリアを指定し、レフトフラグＬＦが「１」の場合はクロック値エリアを指定し、レフトフラグＬＦが「２」の場合は優先順位エリアを指定する。エリア指定の後は図４１のステップ３１０に移行する。なお、ステップＳ３０３において、左右のいずれのカーソルキー３０もオフと判断したとき、ステップＳ３０５においてレフトフラグＬＦが負の値でないとき、及び、ステップＳ３０８においてレフトフラグＬＦが「２」以下であるときには、そのままステップＳ３１０に移行する。
【００４５】
図４１のステップＳ３１０ではテンキー２３がオンであるかを判断し、オンのときはステップＳ３１１に移行してレフトフラグＬＦの値が「０」、「１」、「２」のいずれであるかを判断する。「０」と判断したときにはステップＳ３１２に移行してテンキー２３の入力をポーズＮＯレジスタＰＮＲにストアし、「１」と判断したときにはステップＳ３１３に移行してテンキー２３の入力をクロック指定レジスタＣＳＲにストアし、「２」と判断したときにはステップＳ３１４に移行してテンキー２３の入力を優先順位レジスタＵにストアする。テンキー２３の入力のストア後はステップＳ３１５に移行する。
ステップＳ３１５ではデリートキー３１のオン−オフを判断し、オンのときには、ステップＳ３１６に移行してレフトフラグＬＦの値が「０」、「１」、「２」のいずれであるかを判断する。「０」と判断したときにはステップＳ３１７に移行してポーズＮＯレジスタＰＮＲの内容をクリアし、「１」と判断したときにはステップＳ３１８に移行してクロック指定レジスタＣＳＲの内容をクリアし、「２」と判断したときにはステップＳ３１９に移行して優先順位レジスタＵの内容をクリアする。
【００４６】
次に、ステップＳ３２０ではエンターキー３２のオン−オフを判断し、オンのときにはステップＳ３２１に移行してポインタＣＲをアドレスにしてＲＡＭ４８のダンスパターン記憶エリア内にポーズＮＯレジスタＰＮＲ、クロック値指定レジスタＣＳＲ、又は優先順位レジスタＵの内容をストアし、ステップＳ３２２に移行してポインタＣＲを「１」だけインクリメントしてメインフローに戻る。図４０及び図４１のダンスパターン処理を繰り返すことにより、図３９に示すように、指定されたダンスポーズＮＯ、クロック値及び各ダンスポーズＮＯごとの優先順位とからなるダンスパターンが記憶される。ステップＳ３２０においてエンターキー３２がオフと判断したときにはＲＡＭ４８にストアすることなくメインフローに戻る。
なお、ステップＳ３１０においてテンキー２３がオフである場合には、入力するデータがないので、デリートキー３１及びエンターキー３２がオンされることなくメインフローに戻ることになる。同様に、ステップＳ３１５においてデリートキー３１がオンである場合には、レジスタの内容がクリアされてＲＡＭ４８にストアするデータがないので、エンターキー３２がオンされることなくメインフローに戻ることになる。
【００４７】
次に、第２実施形態のプレイ処理について説明する。図４２に示すように、この処理では第１実施形態における鍵盤処理（ステップＳ１２０）の後にテンポ処理（ステップＳ３３０）が追加されるだけで、他の処理については第１実施形態の場合と同じである。したがって、このテンポ処理について説明し、他の処理の説明は省略する。
テンポ処理は、図４３に示すように、ステップＳ３３１のテンポ設定処理及びＳ３３２のスキップ処理からなる。ステップＳ３３１のテンポ設定処理は、図３８のテンポ設定キー４１のうち左側のテンポＵＰキー又は右側のテンポＤＯＷＮキーが操作されるとＲＡＭ４８のテンポエリア（図示せず）のテンポデータを更新する処理である。すなわち、図４４に示すように、ステップＳ３３３においてテンポ設定キー４１のＵＰキーがオンであるか否かを判断し、オンであると判断したときにはステップＳ３３４に移行して、ＲＡＭ４８のテンポデータをインクリメントしてステップＳ３３７に移行する。一方、ステップＳ３３３においてＵＰキーがオフと判断したときには、ステップＳ３３５に移行してテンポ設定キー４１のＤＯＷＮキーがオンであるか否かを判断し、オンであると判断したときにはステップＳ３３６に移行して、ＲＡＭ４８のテンポデータをデクリメントしてステップＳ３３７に移行する。ステップＳ３３７では、ＲＡＭ４８のテンポデータに基づいてタイマインタラプトの時間制御を行ってメインフローに戻る。タイマインタラプトの時間制御により、８分音符を拍の単位として曲のテンポを制御する。
【００４８】
一方、図４３のステップＳ３３２のスキップ処理は、人形３が曲のテンポに同期して複数のダンスポーズの組み合わせで構成されているダンスパターンの動作を行う場合に、人形３が任意のダンスポーズから次のダンスポーズに到達するまでの時間が曲のテンポに追従できない場合に、次のダンスポーズを間引き（スキップ）する処理である。また、その際に各ダンスポーズに優先順位を付けて、優先順位の低いダンスポーズから先に間引きする。優先順位指定レジスタＵの値は、スキップをするか否かの閾値であり、任意のダンスポーズＮＯの優先順位がこの閾値を超えた場合（優先度が閾値より低い場合）にはスキップの対象とする。このスキップ処理においてスキップフラグＳＦ１及びＳＦ２を使用する。初期状態ではスキップフラグＳＦ１及びＳＦ２は「０」にリセットされている。
【００４９】
図４５において、スキップ処理が開始すると、ステップＳ３４０においてダンスパターンＮＯレジスタＤＰＮＲを「１」にセットし、１番目のダンスパターンＮＯを指定する。次に、ステップＳ３４１においてポーズＮＯレジスタＰＮＲを「１」にセットし、１番目のダンスポーズＮＯを指定する。次に、ステップＳ３４２に移行してこの１番目のダンスポーズＮＯ、クロック値、及び優先順位を読み出す。次に、ステップＳ３４３において２番目のダンスポーズＮＯを読み出し、ステップＳ３４４に移行して、１番目のダンスポーズＮＯ及び２番目のダンスポーズＮＯから、人形３が１番目のダンスポーズから２番目のダンスポーズに至るポーズ間の到達絶対時間ＴＡを算出する。ある任意のダンスポーズから他のダンスポーズに至る到達絶対時間ＴＡは、あらかじめＲＯＭ４９に登録されており、２つのダンスポーズＮＯをアドレスにして到達絶対時間ＴＡを算出する。
【００５０】
次にステップＳ３４５に移行して、ステップＳ３４２で読み出したクロック値及びＲＡＭ４８のテンポデータに基づいて曲のテンポに人形３が同期してポーズ動作をするために必要な要求到達時間ＴＢを計算する。すなわち、テンポによってクロックの周期が求まるので、この周期とクロック値との積により要求到達時間ＴＢを計算する。次にステップＳ３４６に移行して、要求到達時間ＴＢと絶対到達時間ＴＡとを比較する。ここで要求到達時間ＴＢが到達絶対時間ＴＡ以下であると判断したときには、人形３の動作がテンポに追従できないので、ステップＳ３４７に移行してスキップフラグＳＦ１を「１」にセットし、ステップＳ３４８に移行してポーズＮＯレジスタＰＮＲの値を「１」だけインクリメントして２番目のダンスポーズＮＯを指定する。ステップＳ３４６において、要求到達時間ＴＢが到達絶対時間ＴＡよりも大きいと判断したときには、人形３の動作がテンポに追従できるので、スキップフラグＳＦ１は「０」にリセットされたままステップＳ３４８に移行する。
次に、ステップＳ３４９に移行してインクリメントしたポーズＮＯレジスタＰＮＲの値が最終のダンスポーズＮＯであるか否かを判断する。最終でない場合には、ポーズＮＯレジスタＰＮＲの値が最終のダンスポーズＮＯになるまで、ポーズＮＯレジスタＰＮＲの値をインクリメントしながら、ステップＳ３４２〜ステップＳ３４９までの各処理を繰り返し実行する。この一連の処理において、ある任意のダンスポーズから次のダンスポーズに至る到達絶対時間ＴＡが要求到達時間ＴＢ以上になる場合が１度でもあると、スキップフラグＳＦ１が「１」にセットされることになる。
【００５１】
次に、図４６のステップＳ３５０に移行して優先順位指定レジスタＵに最低優先順位の値をストアし、ステップＳ３５１に移行してスキップフラグＳＦ１が「１」か否かを判断する。ＳＦ１が「１」であると判断したときには、ステップＳ３５２に移行してポーズＮＯレジスタＰＮＲを再び「１」にセットして、同じＤＰＮＲ番目のダンスパターンＮＯの１番目のダンスポーズＮＯを指定する。次に、ステップＳ３５３に移行してダンスポーズＮＯ、クロック値、及び優先順位を読み出す。そして、ステップＳ３５４に移行して読み出したダンスポーズＮＯをレジスタＰＮＲ１にストアし、ステップＳ３５５に移行して読み出したクロック値をポーズ継続時間を示すレジスタＣＬにストアする。次に、ステップＳ３５６に移行してポーズＮＯレジスタＰＮＲを「１」だけインクリメントして２番目のダンスポーズＮＯを指定して、ステップＳ３５７に移行して２番目のダンスポーズＮＯ、クロック値、及び優先順位を読み出す。そして、ステップＳ３５８に移行して２番目のダンスポーズＮＯの優先順位の値が優先順位指定レジスタＵの値以上であるか否かを判断する。Ｕの値以上と判断したときには、優先度が優先順位指定レジスタＵの値（閾値）以下であるので、ステップＳ３５９に移行してレジスタＣＬにストアされている１番目のクロック値に２番目のクロック値を加算する。すなわち１番目のダンスポーズをそのまま持続させて２番目のダンスポーズをスキップしたと仮定して、ステップＳ３５６のインクリメント処理に移行して３番目のダンスポーズＮＯを指定する。そして、ステップＳ３５８において優先度が優先順位指定レジスタＵの値より高いダンスポーズＮＯを検索するまで、ステップＳ３５６〜ステップＳ３５９の各処理を繰り返し実行する。
【００５２】
ステップＳ３５８において、例えばｉ番目のダンスポーズＮＯの優先度が優先順位指定レジスタＵの値より高いと判断したときには、図４７のステップＳ３６１に移行して、レジスタＰＮＲ２にｉ番目のダンスポーズＮＯをストアする。そして、ステップＳ３６２に移行してレジスタＰＮＲ１及びレジスタＰＮＲ２の内容を読み出して、１番目のダンスポーズからｉ番目のダンスポーズに至る到達絶対時間ＴＡを算出する。次に、ステップＳ３６３に移行してリズムの発音時間を示すレジスタＣのクロック値及び設定されているテンポデータにより１番目のダンスポーズからｉ番目のダンスポーズに至るまでの要求到達時間ＴＢを計算する。そして、ステップＳ３６４に移行して要求到達時間ＴＢと到達絶対時間ＴＡとを比較し、要求到達時間ＴＢが到達絶対時間ＴＡ以下と判断したときには、ステップＳ３６５に移行してスキップフラグＳＦ２を「1」にセットしてステップＳ３６６に移行する。一方、要求到達時間ＴＢが到達絶対時間ＴＡより大きいと判断したときには、スキップフラグＳＦ２をセットせずにステップＳ３６６に移行する。ステップＳ３６６では、指定したｉ番目のダンスポーズＮＯが最終のものか否かを判断し、最終でないと判断したときには、図４６のステップＳ３５３に移行して、ステップＳ３５８において優先度が優先順位指定レジスタＵの値より高いダンスポーズＮＯを検索するまで、ステップＳ３５６〜ステップＳ３５９の各処理を繰り返し実行する。
【００５３】
図４６のステップＳ３５８において、例えばｊ番目のダンスポーズＮＯの優先度が優先順位指定レジスタＵの値より高いと判断したときには、図４７のステップＳ３６１に移行して、レジスタＰＮＲ２にｊ番目のダンスポーズＮＯをストアする。そして、ステップＳ３６２に移行してレジスタＰＮＲ１及びレジスタＰＮＲ２の内容を読み出して、ｉ番目のダンスポーズからｊ番目のダンスポーズに至る到達絶対時間ＴＡを算出する。次に、ステップＳ３６３に移行して、レジスタＣのクロック値及び設定されているテンポデータによりｉ番目のダンスポーズからｊ番目のダンスポーズに至るまでの要求到達時間ＴＢを計算する。そして、ステップＳ３６４に移行して要求到達時間ＴＢと到達絶対時間ＴＡとを比較し、要求到達時間ＴＢが到達絶対時間ＴＡ以下と判断したときには、ステップＳ３６５に移行してスキップフラグＳＦ２を「1」にセットしてステップＳ３６６に移行する。一方、要求到達時間ＴＢが到達絶対時間ＴＡより大きいと判断したときには、スキップフラグＳＦ２をセットせずにステップＳ３６６に移行する。そして、ダンスポーズＮＯが最終のものとなるまで図４６のステップＳ３５３〜図４７のステップＳ３６６の各処理を繰り返し実行する。
すなわち、スキップフラグＳＦ１が「１」の１つのダンスパターンについて、１番目のダンスポーズＮＯ及び優先度が優先順位指定レジスタＵの値より高いｉ番目、ｊ番目、……のダンスポーズＮＯをピックアップして、間引きダンスパターンを仮定する。そして、この間引きダンスパターンについて、要求到達時間ＴＢと到達絶対時間ＴＡとを比較し、ＴＢがＴＡ以下と判断したときにはスキップフラグＳＦ２を「1」にセットする。
【００５４】
ステップＳ３６６において、ダンスポーズＮＯが最終のものと判断したときには、ステップＳ３６７に移行してスキップフラグＳＦ２が「１」であるか否かを判断する。「１」であると判断したときには、ステップＳ３６８に移行してスキップフラグＳＦ２をクリアし、ステップＳ３６９に移行して優先順位指定レジスタＵの値をデクリメントして優先度を１段高くする。すなわち、この間引きダンスパターンにおいて少なくとも１つのポーズ間において、要求到達時間ＴＢが到達絶対時間ＴＡ以下となるので、さらに間引きをするために閾値であるレジスタＵの値を高くするのである。次に、ステップＳ３７０に移行してレジスタＵの値が最高優先順位であるか否かを判断し、最高優先順位ではないと判断したときには図４６のステップＳ３５２に移行して、デクリメントしたレジスタＵの値を閾値として図４７のステップＳ３７までの各処理を実行する。そして、ステップＳ３６７においてスキップフラグＳＦ２が「１」でないと判断したときには、ステップＳ３７１に移行して、そのときのレジスタＵの値を図３９に示すダンスパターンＮＯのスキップ判定エリア４２にストアして、ステップＳ３７２に移行する。また、レジスタＵの値をデクリメントした結果、最高優先順位になったと判断したときには、スキップフラグＳＦ２が「１」であってもステップＳ３７２に移行する。
【００５５】
ステップＳ３７２において、ダンスパターンＮＯレジスタＤＰＮＲの値を「１」だけインクリメントして、次のダンスパターンＮＯを指定する。次に、ステップＳ３７３に移行してスキップフラグＳＦ１をクリアし、ステップＳ３７４に移行してスキップフラグＳＦ２をクリアする。そして、ステップＳ３７５に移行して、インクリメントしたダンスパターンＮＯがＲＡＭ４８にストアされている最終のダンスパターンＮＯを超えた番号であるか否かを判断する。超えたと判断したとときにはこのスキップ処理を終了して図４２のフローに戻ってステップＳ１３０に移行する。一方、最終のダンスパターンＮＯを超えないと判断したときには、図４５のステップＳ３４１に移行して図４７のステップＳ３７５までの各処理を実行して、そのインクリメントした新たなダンスパターンＮＯについてスキップ処理を行う。
【００５６】
次に、この第２実施形態のパターン再生処理について、図４８を参照して説明する。なお、このパターン再生処理のフローにおいて、図３５に示す第１実施形態のパターン再生と同じ処理には同一のステップ符号を付している。このパターン再生処理では、ステップＳ１８２においてレジスタＣＬが「０」か否かを判断し、「０」であると判断したときには、ステップＳ３７６に移行してダンスパターンＮＯレジスタＤＰＮＲに対応するダンスパターンから再生するダンスポーズの優先順位及びクロック値を読み出す。そして、ステップＳ３７７に移行して読み出したクロック値をレジスタＣＬにストアする。次に、ステップＳ３７８に移行して、スキップ判定エリア４２にストアされているＵの値と読み出したダンスポーズの優先順位とを比較する。Ｕの値がダンスポーズの優先順位以上と判断したときには、ステップＳ３７９に移行してダンスパターンからダンスポーズＮＯを読み出してポーズＮＯレジスタＰＮＲにストアしてメインフローに戻る。一方、Ｕの値がダンスポーズの優先順位未満と判断したときには、ダンスポーズＮＯを読み出すことなくすなわちそのダンスポーズをスキップしてメインフローに戻る。  レジスタＣＬにクロック値がストアされた状態では、ステップＳ１８２においてレジスタＣＬは「０」でないと判断して、ステップＳ１８４に移行してポーズ再生を行う。そして、ステップＳ１８６においてタイマフラグＴＦ１が「１」でなくタイマインタラプトがないと判断したときにはメインフローに戻る。一方、タイマフラグＴＦ１が「１」でタイマインタラプトがあったと判断したときには、ステップＳ１８７に移行してレジスタＣＬのクロック値を「１」だけデクリメントし、ステップＳ１８８に移行してタイマフラグＴＦ１をクリアしてメインフローに戻る。
【００５７】
このように、上記第２実施形態においては、指定したダンスパターンを設定されたテンポで、リズムに同期して動作すべき人形３が追従できないと判断したときには、そのダンスパターンを構成する複数のダンスポーズを間引きして新たに間引きダンスパターンを構成する。そして、この間引きダンスパターンで人形３を動作させるように制御する。したがって、テンポが速くなった場合でも、人形３の動きをリズムに同期させることができる。
また、この場合において、複数のダンスポーズに優先順位を付けて、優先順位の低いダンスポーズから先に間引きするようにしたので、ダンスパターンの中の特徴的なポーズ等の優先順位を高くすることにより、そのダンスパターンの特徴が損なわれることがない。
【００５８】
次に、図４９〜図６０を参照してこの発明の電子楽器の第３実施形態について説明する。第３実施形態における発明は、第１実施形態における発明をさらに改良したものである。第１実施形態において、ＲＡＭ４８にストアされている複数のリズムダンスパターンの１つをリズムセレクトキー２５の操作で選択した場合、選択したリズムダンスパターンのテンポ範囲が設定されたリズムのテンポから外れていることもある。このような場合には、ユーザはリズムのテンポに適合するリズムダンスパターンを見いだすまで何度もリズムセレクトキー２５を操作する場合も考えられる。このような場合にはユーザの操作が煩雑になる。そこで、第３実施形態における発明は、このような場合を考慮してリズムのテンポに適合するリズムダンスパターンを自動的に選択するようにしたものである。
第３実施形態における電子楽器の構成のうち、第１実施形態における電子楽器の構成と同じものは第１実施形態を援用し、主に異なる部分について説明する。第３実施形態における電子楽器のデータ入力部５には、図４９に示すように、テンポ設定キー４１の他に、リズムダンスパターンのリズムの最大テンポを設定するＭＡＸキー４３及び最小テンポを設定するＭＩＮキー４４が設けられている。ＲＡＭ４８には、図５０に示すように、複数種のリズムダンスパターン＃１〜＃ｎ（例えば、タンゴ、ワルツ、ロック、ジャズ、ボサノバ等）がストアされている。また、各リズムパターンごとに最大テンポエリア５０及び最小テンポエリア５１が設けられている。そして、ＭＡＸキー４３又はＭＩＮキー４４がオンされると、各リズムパターンの最大テンポ又は最小テンポが対応する各エリアにストアされる。
【００５９】
次に、この第３実施形態におけるクリエート処理におけるリズムダンスパターン処理について、図５１〜図５５を参照して説明する。このリズムダンスパターン処理は、図２１に示す第１実施形態におけるリズムダンスパターン処理にテンポ設定処理が追加されたフローになっている。
クリエート処理でリズムダンスパターン処理が選択されると、図５１のステップＳ４０１に移行して、エンタフラグＥＦが「１」であるか否かを判断する。エンタフラグＥＦが「１」でないと判断したときには、ステップＳ４０２に移行してテンキー２３がオンであるか否かを判断し、オンであると判断したときにはステップＳ４０３に移行して、そのテンキー入力をリズム指定レジスタＲＳＲにストアする。次に、リズムパターンの設定処理を行う。リズムパターンには、イントロ、フィルイン、ノーマル、エンディングがあり、キー操作に応じて変化パターン指定レジスタＨＰＲの値を決定する。すなわち、ステップＳ４０４に移行してフィルインキー２７がオンであるか否かを判断し、オンであると判断したときにはステップＳ４０５に移行して、変化パターン指定レジスタＨＰＲを「１」にセットする。フィルインキー２７がオンでないと判断したときには、ステップＳ４０６に移行してイントロキー２６がオンであるか否かを判断し、オンであると判断したときにはステップＳ４０７に移行して、変化パターン指定レジスタＨＰＲを「２」にセットする。イントロキー２６がオンでないと判断したときには、ステップＳ４０８に移行して、エンディングキー２９がオンであるか否かを判断し、オンであると判断したときにはステップＳ４０９に移行して、変化パターン指定レジスタＨＰＲを「３」にセットする。
【００６０】
一方、ステップＳ４０１でエンタフラグＥＦが「１」であると判断したときには、図５２のステップＳ４１０に移行して、現在のルーチンの変化パターン指定レジスタＨＰＲの値が前回のルーチンと同じであるか否かを判断する。同じでないと判断したときにはステップＳ４１１に移行してポインタＣＲを「０」にクリアする。このポインタＣＲは、図５０における任意のリズムダンスパターンの各リズムパターンに対応してストアする複数のダンスパターンをカウントするポインタであり、ポインタＣＲが「０」であることは最初のダンスパターンをストアすることを意味する。
次に、テンキー２３、デリートキー３１又はエンタキー３３のいずれかがオンされた場合にはそのキーに対応する処理を行う。すなわち、ステップＳ４１２においてテンキー２３がオンであるか否かを判断し、オンであると判断したときにはステップＳ４１３に移行して、そのテンキー入力をダンスパターンＮＯレジスタＤＰＮＲにストアする。ステップＳ４１４においてデリートキー３１がオンであるか否かを判断し、オンであると判断したときにはステップＳ４１５に移行してリズム指定レジスタＲＳＲの内容、変化パターン指定レジスタＨＰＲの内容、及びダンスパターンＮＯレジスタＤＰＮＲの内容をクリアする。また、ステップＳ４１６においてエンタキー３３がオンであるか否かを判断し、オンであると判断したときにはステップＳ４１７に移行し、ポインタＣＲ及び変化パターン指定レジスタＨＰＲをアドレスにして図５０に示すリズム指定レジスタＲＳＲに対応するエリアに、ダンスパターンＮＯレジスタＤＰＮＲの内容をストアする。さらに、ステップＳ４１８に移行してポインタＣＲを「１」だけインクリメントして、図１７のメインフローに戻る。
【００６１】
図５１のステップＳ４０８においてエンディングキー２９がオンでないと判断したときには、図５３のステップＳ４１９に移行して、ノーマルキー２８がオンであるか否かを判断し、オンであると判断したときにはステップＳ４２０に移行して、変化パターン指定レジスタＨＰＲを「４」にセットする。その後ステップＳ４２１に移行して、デリートキー３１がオンであるか否かを判断し、オンであると判断したときにはステップＳ４２２に移行して、リズム指定レジスタＲＳＲの内容及び変化パターン指定レジスタＨＰＲの内容をクリアする。デリートキー３１がオンでないと判断したときには、リズム指定レジスタＲＳＲの内容及び変化パターン指定レジスタＨＰＲの内容は当然のことながらそのまま保持される。次に、ステップＳ４２３に移行してエンタキー３３がオンであるか否かを判断し、オンであると判断したときにはエンタフラグＥＦを「１」にセットする。エンタキー３３がオンでないと判断したときには、エンタフラグＥＦはリセット状態になっている。
【００６２】
次に、図５４のステップＳ４２５に移行して、ＭＡＸキー４３がオンであるか否かを判断し、オンであると判断したときにはステップＳ４２６に移行して、マックスフラグＭＡＸＦを「１」にセットし、ミニマムフラグＭＩＮＦを「０」にセットする。ＭＡＸキー４３がオンでないと判断したときにはステップＳ４２７に移行して、ＭＩＮキー４４がオンであるか否かを判断し、オンであると判断したときにはステップＳ４２８に移行して、マックスフラグＭＡＸＦを「０」にセットし、ミニマムフラグＭＩＮＦを「１」にセットする。次に、ステップＳ４２９に移行して、テンポ設定キー４１のうちＵＰキーがオンであるか否かを判断し、オンであると判断したときにはステップＳ４３０に移行して、テンポレジスタＴＭＰのテンポデータをインクリメントする。ＵＰキーがオンでないと判断したときにはステップＳ４３１に移行して、テンポ設定キー４１のうちＤＯＷＮキーがオンであるか否かを判断し、オンであると判断したときにはステップＳ４３２に移行してテンポレジスタＴＭＰのテンポデータをデクリメントする。
【００６３】
次に、ステップＳ４３３に移行してエンタキー３２がオンであるか否かを判断し、オンであると判断したときにはステップＳ４３４に移行して、マックスフラグＭＡＸＦ又はミニマムフラグＭＩＮＦのいずれか一方が「１」であるか否かを判断し、「１」であると判断したときには図５５のステップＳ４３５に移行する。ステップＳ４３５ではマックスフラグＭＡＸＦが「１」であるか否かを判断し、「１」であると判断したときにはステップＳ４３６に移行して、リズム指定レジスタＲＳＲに対応するダンスパターンの最大テンポエリア５０にテンポレジスタＴＭＰのテンポデータをストアする。一方、ステップＳ４３５においてマックスフラグＭＡＸＦが「１」でないと判断したときには、ステップＳ４３７に移行してミニマムフラグＭＩＮＦが「１」であるか否かを判断し、「１」であると判断したときにはステップＳ４３８に移行して、リズム指定レジスタＲＳＲに対応するダンスパターンの最小テンポエリア５１にテンポレジスタＴＭＰのテンポデータをストアする。この後、図１７のメインフローに戻る。
【００６４】
次に、第３実施形態のプレイ処理について説明する。図５６に示すように、この処理では第１実施形態における鍵盤処理（ステップＳ１２０）の後にテンポ処理（ステップＳ４４０）が追加されるだけで、他の処理については第１実施形態の場合と同じである。したがって、このテンポ処理について説明し、他の処理の説明は省略する。テンポ処理は、図５７に示すように、ステップＳ４４１のテンポ設定処理及びＳ４４２のパターン選択処理からなる。
ステップＳ４４１のテンポ設定処理は、第２実施形態の場合と同じであり、図４９のテンポ設定キー４１のうち左側のテンポＵＰキー又は右側のテンポＤＯＷＮキーが操作されると、テンポレジスタＴＭＰのテンポデータが更新される。すなわち、図５８に示すように、ステップＳ４４３においてテンポ設定キー４１のＵＰキーがオンであるか否かを判断し、オンであると判断したときにはステップＳ４４４に移行してテンポレジスタＴＭＰのテンポデータをインクリメントして、ステップＳ４４７に移行する。一方、ステップＳ４４３においてＵＰキーがオフであると判断したときにはステップＳ４４５に移行して、テンポ設定キー４１のＤＯＷＮキーがオンであるか否かを判断し、オンであると判断したときにはステップＳ４４６に移行してテンポレジスタＴＭＰのテンポデータをデクリメントして、ステップＳ４４７に移行する。ステップＳ４４７では、テンポデータに基づいてタイマインタラプトの時間制御を行ってメインフローに戻る。タイマインタラプトの時間制御により、８分音符を拍の単位として曲のテンポを制御する。
【００６５】
図５７のステップＳ４４２におけるパターン選択処理は、図５０における複数のリズムダンスパターン＃１〜＃ｎから設定されたテンポに適合するリズムダンスパターンを１つ自動的に選択する処理である。すなわち、図５９に示すように、ステップＳ４５１において、初期設定としてリズムＮＯレジスタＲＮＲを「１」にセットする。したがって、図５０におけるリズムダンスパターン＃１が指定されることになる。次に、ステップＳ４５２に移行して、リズムＮＯレジスタＲＮＲに対応するリズムダンスパターン＃１の最大テンポ及び最小テンポを読み出す。次にステップＳ４５３に移行して、設定されたテンポデータが読み出した最大テンポと最小テンポの範囲内に入っているか否かを判断し、入っていると判断したときには図５６のメインフローに戻る。
【００６６】
ステップＳ４５３において、テンポデータが範囲内に入っていないと判断したときにはステップＳ４５４に移行して、リズムＮＯレジスタＲＮＲを「１」だけインクリメントして、リズムダンスパターン＃２を指定する。次に、ステップＳ４５５に移行して、リズムＮＯレジスタＲＮＲで指定されるリズムダンスパターンが最後のリズムダンスパターン＃ｎであるか否かを判断し、最後でないと判断したときにはステップＳ４５２に移行して、リズムＮＯレジスタＲＮＲで指定されるリズムダンスパターン＃２の最大テンポ及び最小テンポを読み出す。以下、設定されたテンポデータが読み出した最大テンポと最小テンポの範囲内に入っているリズムダンスパターンを検索するまで、ステップＳ４５２〜ステップＳ４５５の各処理を繰り返し実行する。ステップＳ４５３において、テンポデータが読み出した最大テンポと最小テンポの範囲内に入っているリズムダンスパターンを検索したときには、図５６のメインフローに戻る。一方、すべてのリズムダンスパターンを検索してもテンポデータが最大テンポと最小テンポの範囲内に入っているリズムダンスパターンがないと判断したときには、ステップＳ４５６に移行して最初のリズムダンスパターン＃１のＮＯをリズムＮＯレジスタＲＮＲにストアして、図５６のメインフローに戻る。
【００６７】
次に、図５６のプレイ処理において、ステップＳ４４０のテンポ処理の後は、ステップＳ１３０から図６０のステップＳ１４１までは、第１実施形態の場合と同じであるので説明は省略する。この第３実施形態においては、ＲＡＭ４８にストアされている複数種のリズムダンスパターンの１つを自動的に選択するので、第１実施形態の図２５におけるステップＳ１４２のリズムセレクトキー２５のオン・オフ判断処理は不要となる。したがって、その後のステップＳ１４３〜ステップＳ１４８の各処理も不要となる。この結果、図６０においてステップＳ１４１の処理の後はステップＳ１４９に移行して、スタート／ストップキー３３が操作されたか否かを判断し、操作されたと判断したときにはステップＳ１５０に移行して、スタートフラグＳＴＦの値を反転する。さらに、ステップＳ１５１に移行して、レジスタＣＬ及びレジスタＣをリセットする。次に、ステップＳ１５２に移行してイントロキー２６がオンであるか否かを判断し、オンであると判断したときにはステップＳ１５３に移行して、スタートフラグＳＴＦを「１」にセットする。さらに、ステップＳ１５４に移行してレジスタＣＬ及びレジスタＣをリセットする。次に、リズムＮＯレジスタＲＮＲの内容に基づき、ＲＡＭ４８からイントロダンスパターンＮＯをダンスパターンＮＯレジスタＤＰＮＲにストアする。この後は、図２６〜図２９に示す第１実施形態の場合と同様であり、その説明は省略する。
【００６８】
このように、上記第３実施形態においては、複数種のリズムダンスパターンのそれぞれの最大テンポ及び最小テンポを設定するＭＡＸキー４３及びＭＩＮキー４４を設け、発生するリズムのテンポが最大テンポ及び最小テンポの範囲内に入るようなリズムダンスパターンを１つ自動的に選択する。したがって、リズムダンスパターンのテンポ範囲が発生するリズムのテンポに適合しない場合でも、リズムセレクトキー２５を何回も操作するような煩雑な操作を行う必要がないので、リズムダンスパターンの選択操作が非常に簡単になる。
【００６９】
なお、上記第３実施形態では、発生するリズムのテンポが最大テンポ及び最小テンポの範囲内に入るようなリズムダンスパターンを１つ自動的に選択するが、第３実施形態の変形例として、その選択したリズムダンスパターンがユーザの所望するものでない場合には、リズムセレクトキー２５の操作で他の適合するリズムダンスパターンを自動的に選択するような構成にしてもよい。
あるいは、適合するリズムダンスパターンが複数種存在する場合には、１〜２小節程度の間それらのすべてを順に発音させて、例えば、スタート／ストップキー３３等の操作により、ユーザが所望するようなリズムダンスパターンを選択するような構成にしてもよい。
【００７０】
また、上記第１〜第３実施形態では、リズムに同期して動作する動作体を単体の人形３としたが、複数の人形をリズムに同期させて動作させるようにしてもよい。例えば、指揮者の人形及び複数の楽隊の人形を発生するリズムに合わせて動作させ、あたかもこれらの人形が曲を奏でるかのような構成にしてもよい。
また、上記第１〜第３実施形態では、リズムに同期して動作する動作体を人形３としたが、動作体としては人形に限定するものではない。例えば、抽象的な物体をリズムに合わせて動作させるようにしてもよい。
【００７１】
【発明の効果】
以上説明したように、請求項１に記載の発明によれば、ポーズ入力手段の入力操作により動作体の各部位の動作状態を選択指定して動作体の動作ポーズを複数種入力して記憶しておき、そしてこの複数種の動作ポーズのそれぞれを指定するデータを組み合わせた動作パターンを入力記憶し、演奏時などに任意に選択された動作パターンに基づいて動作ポーズを順次読み出して動作体を制御するようにしている。このため、動作体は使用者の好みのポーズで自由に動作させることができ、しかも動作パターンの入力も動作ポーズ一つひとつを入力記憶するのではなく、事前に入力記憶させておいた動作ポーズを指定するデータを順次入力記憶させるだけなので、入力操作が非常に簡単になる。
【００７２】
さらに、この発明によれば、動作ポーズを指定するデータを組み合わせた動作パターンごとにその動作パターンの繰返し回数を規定する繰返し回数データも併せて記憶するようにしているので、同一の動作パターンが繰り返されるような動作を行なわせたい場合は、非常に入力操作が簡単になる。
また、請求項２に記載の発明によれば、演奏されるリズムの種類に同期して動作体の動作パターンを変更するようになり、しかもその動作パターンの内容は使用者が入力した動作ポーズを組み合わせたものとなり、使用者の好みに応じ、かつ演奏されるリズムの種類に応じて動作体を自由に動作させることができる。
【００７３】
また、請求項３に記載の発明によれば、指定した動作パターンが設定されたテンポに追従できないと判断したときには、その動作パターンを構成する複数の動作ポーズを間引きして新たに間引き動作パターンを構成する。そして、この間引き動作パターンで動作体を動作させるように制御する。したがって、テンポが速くなった場合でも、動作体の機械的構造に起因する慣性を考慮してテンポに合った動きに変更させることができる。
【００７４】
また、請求項５に記載の発明によれば、複数種のリズム動作パターンのそれぞれの最大テンポ及び最小テンポを設定し、発生するリズムのテンポが最大テンポ及び最小テンポの範囲内に入るようなリズム動作パターンを１つ自動的に選択する。したがって、リズム動作パターンのテンポ範囲が、発生するリズムのテンポに適合しない場合でも、リズム選択操作をを何回も行う必要がないので、リズム動作パターンの選択操作が非常に簡単になる。
【図面の簡単な説明】
【図１】この発明の第１〜第３実施形態における電子楽器を示す外観斜視図。
【図２】図１の人形の構成図。
【図３】図２の人形のうち、上腕と下腕との取付部およびこの取付部の駆動装置を示し、（ａ）は垂下された状態の上腕を示す正面図、（ｂ）は垂下された状態での下腕を示す図、（ｃ）は９０度前方に回動した下腕を示す図。
【図４】図３の要部を示し、（ａ）は上腕における支点と電磁石の位置関係を示す拡大図、（ｂ）は下腕における支点と永久磁石のＳ極、Ｎ極との位置関係を示す拡大図。
【図５】図２の人形の各部位の動作範囲を示した図。
【図６】人形のポーズの一例を示し、（ａ）は各部位がＡ値（「０」）のときのポーズを示す図、（ｂ）は（ａ）の状態で下腕と脛とがＢ値（「１」）になったときのポーズを示す図、（ｃ）は（ｂ）の状態で上腕と腿とがＢ値（「１」）になったときのポーズを示す図。
【図７】図１のポーズ入力部を示す図。
【図８】この発明の第１実施形態におけるデータ入力部を示す図。
【図９】図１の電子楽器の回路構成図。
【図１０】ダンスポーズのデータフォーマットを示す図。
【図１１】ダンスパターンのデータフォーマットを示す図。
【図１２】ダンスソングのデータフォーマットを示す図。
【図１３】リズムダンスパターンのデータフォーマットを示す図。
【図１４】トリガーダンスのデータフォーマットを示す図。
【図１５】ダンスフィルインのデータフォーマットを示す図。
【図１６】図３のＣＰＵの第１実施形態におけるメインフローを示す図。
【図１７】図１６のメインフローでのクリエート処理を示す図。
【図１８】図１７のクリエート処理でのダンスポーズ処理を示す図。
【図１９】図１７のクリエート処理でのダンスパターン処理を示す図。
【図２０】図１７のクリエート処理でのダンスソング処理を示す図。
【図２１】図１７のクリエート処理でのリズムダンスパターン処理を示す図。
【図２２】図１７のクリエート処理でのトリガーダンスパターン処理を示す図。
【図２３】図１７のクリエート処理でのダンスフィルイン処理を示す図。
【図２４】図１６のメインフローでのプレイ処理のうちステップＳ１２０からステップＳ１３１までを示す図。
【図２５】プレイ処理のうちステップＳ１３２からステップＳ１４６までを示す図。
【図２６】プレイ処理のうちステップＳ１４７からステップＳ１５９までを示す図。
【図２７】プレイ処理のうちステップＳ１６０からステップＳ１６５までを示す図。
【図２８】プレイ処理のうちステップＳ１６６からステップＳ１７８までを示す図。
【図２９】プレイ処理のうちステップＳ１７９からステップＳ１８６までを示す図。
【図３０】プレイ処理中でのフィルインの割込みフローを示す図。
【図３１】プレイ処理中でのエンデングの割込みフローを示す図。
【図３２】プレイ処理での鍵盤処理フローを示す図。
【図３３】プレイ処理でのリズム処理フローを示す図。
【図３４】リズム処理でのリズムパターン再生フローを示す図。
【図３５】プレイ処理でのパターン再生フローを示す図。
【図３６】ポーズ再生フローを示す図。
【図３７】タイマインタラプトを示す図。
【図３８】この発明の第２実施形態におけるデータ入力部を示す図。
【図３９】第２実施形態におけるダンスパターンのフォーマットを示す図。
【図４０】第２実施形態におけるダンスパターン処理のうちステップＳ３０１からステップＳ３０９までを示す図。
【図４１】ダンスパターン処理のうちステップＳ３１０からステップＳ３２２までを示す図。
【図４２】第２実施形態のプレイ処理のうちステップＳ１２０からステップＳ１４０まで及びステップＳ３３０のテンポ処理を示す図。
【図４３】図４２のテンポ処理を示す図。
【図４４】図４３のテンポ設定処理を示す図。
【図４５】図４３のスキップ処理のうちステップＳ３４０からステップＳ３４９までを示す図。
【図４６】スキップ処理のうちステップＳ３５０からステップＳ３５９までを示す図。
【図４７】スキップ処理のうちステップＳ３６１からステップＳ３７５までを示す図。
【図４８】第２実施形態におけるパターン再生処理を示す図。
【図４９】この発明の第３実施形態におけるデータ入力部を示す図。
【図５０】第３実施形態におけるリズムダンスパターンのフォーマットを示す図。
【図５１】第３実施形態におけるリズムダンスパターン処理のうちステップＳ４０１からステップＳ４０９までを示す図。
【図５２】リズムダンスパターン処理のうちステップＳ４１０からステップＳ４１８までを示す図。
【図５３】リズムダンスパターン処理のうちステップＳ４１９からステップＳ４２４までを示す図。
【図５４】リズムダンスパターン処理のうちステップＳ４２５からステップＳ４３４までを示す図。
【図５５】リズムダンスパターン処理のうちステップＳ４３５からステップＳ４３８までを示す図。
【図５６】第３実施形態におけるプレイ処理のうちステップＳ１２０からステップＳ１４０まで及びステップＳ４４０のテンポ処理を示す図。
【図５７】図５６のテンポ処理を示す図。
【図５８】図５７のテンポ設定処理を示す図。
【図５９】図５７のパターン選択処理を示す図。
【図６０】第３実施形態におけるプレイ処理のうち図５６以降のステップＳ１４１及びステップＳ１４９からステップＳ１５５までを示す図。
【符号の説明】
１  楽器ケース
２  鍵盤部
３  人形
４  ポーズ入力部
５  データ入力部
６  人形軸
７  胴体部
８  上腕
９  下腕
１０  腿
１１  脛
１２  駆動装置
２０  人形表示部
２１  表示部
２２  ダンスオンオフキー
２３  テンキー
２４  トーンセレクトキー
２５  リズムセレクトキー
２６  イントロキー
２７  フィルインキー
２８  ノーマルキー
２９  エンディングキー
３０  カーソルキー
３１  デリートキー
３２  エンターキー
３３  リズムスタートストップキー
３４  モード切替キー
３５  ダンスソングキー
３６  ダンスパターンキー
３７  ダンスポーズキー
３８  リズムダンスパターンキー
３９  トリガーダンスキー
４０  ダンスフィルインキー
４１  テンポ設定キー
４２  スキップ判定エリア
４３  ＭＡＸキー
４４  ＭＩＮキー
４５  制御部
４６  入力部
４７  音源部
４８  ＲＡＭ
４９  ＲＯＭ
５０  最大テンポエリア
５１  最小テンポエリア
ＳＷ１〜ＳＷ９  ポーズセレクトスイッチ
【図１】
0003639967.tif 000002
【図２】
0003639967.tif 000003
【図３】
0003639967.tif 000004
【図４】
0003639967.tif 000005
【図５】
0003639967.tif 000006
【図６】
0003639967.tif 000007
【図７】
0003639967.tif 000008
【図８】
0003639967.tif 000009
【図９】
0003639967.tif 000010
【図１０】
0003639967.tif 000011
【図１１】
0003639967.tif 000012
【図１２】
0003639967.tif 000013
【図１３】
0003639967.tif 000014
【図１４】
0003639967.tif 000015
【図１５】
0003639967.tif 000016
【図１６】
0003639967.tif 000017
【図１７】
0003639967.tif 000018
【図１８】
0003639967.tif 000019
【図１９】
0003639967.tif 000020
【図２０】
0003639967.tif 000021
【図２１】
0003639967.tif 000022
【図２２】
0003639967.tif 000023
【図２３】
0003639967.tif 000024
【図２４】
0003639967.tif 000025
【図２５】
0003639967.tif 000026
【図２６】
0003639967.tif 000027
【図２７】
0003639967.tif 000028
【図２８】
0003639967.tif 000029
【図２９】
0003639967.tif 000030
【図３０】
0003639967.tif 000031
【図３１】
0003639967.tif 000032
【図３２】
0003639967.tif 000033
【図３３】
0003639967.tif 000034
【図３４】
0003639967.tif 000035
【図３５】
0003639967.tif 000036
【図３６】
0003639967.tif 000037
【図３７】
0003639967.tif 000038
【図３８】
0003639967.tif 000039
【図３９】
0003639967.tif 000040
【図４０】
0003639967.tif 000041
【図４１】
0003639967.tif 000042
【図４２】
0003639967.tif 000043
【図４３】
0003639967.tif 000044
【図４４】
0003639967.tif 000045
【図４５】
0003639967.tif 000046
【図４６】
0003639967.tif 000047
【図４７】
0003639967.tif 000048
【図４８】
0003639967.tif 000049
【図４９】
0003639967.tif 000050
【図５０】
0003639967.tif 000051
【図５１】
0003639967.tif 000052
【図５２】
0003639967.tif 000053
【図５３】
0003639967.tif 000054
【図５４】
0003639967.tif 000055
【図５５】
0003639967.tif 000056
【図５６】
0003639967.tif 000057
【図５７】
0003639967.tif 000058
【図５８】
0003639967.tif 000059
【図５９】
0003639967.tif 000060
【図６０】
0003639967.tif 000061