(57)【特許請求の範囲】
【請求項１】
演奏すべき現在の伴奏パターンを記憶する記憶手段と、
伴奏パターンに対して与える変形をそれぞれ示す複数の形容詞の何れかを指定するための指定手段と、
全ての前記複数の形容詞に対応した変形アルゴリズムをそれぞれ実行して、前記記憶手段に記憶されている前記現在の伴奏パターンを基にして該伴奏パターンに対して変形を施し、各形容詞に対応した変形済みパターンをそれぞれ作成してバッファに保存する変形パターン作成手段と、
前記指定手段によって何れかの形容詞の指定があったとき、前記変形パターン作成手段によって作成されて前記バッファに保存済みの前記変形済みパターンの中から該指定された形容詞に一致するパターンを選択し、前記記憶手段に記憶されている前記現在の伴奏パターンを該選択したパターンで差し替えるパターン変更手段と、
前記記憶手段に記憶されている前記現在の伴奏パターンに従って自動伴奏を行い、自動伴奏音を発音させる伴奏手段と、
を備え、前記伴奏手段による自動伴奏に並行して前記変形パターン作成手段による前記各形容詞に対応した変形済みパターンの作成が行われることを特徴とする自動伴奏装置。
【請求項２】
前記変形パターン作成手段は、前記指定手段による前記何れかの形容詞の指定に応じて前記パターン変更手段によって前記記憶手段に記憶する前記現在の伴奏パターンが該指定された形容詞に対応する前記変形済みパターンに差し替え変更された後は、該差し替え変更された新たな現在の伴奏パターンを対象にして、全ての前記複数の形容詞の各々に対応した前記変形済みパターンの作成を行うものである請求項１記載の自動伴奏装置。
【請求項３】
前記変形パターン作成手段と前記伴奏手段はＣＰＵのマルチタスク処理によりそれぞれ実現されるものであって、該ＣＰＵが処理する前記伴奏手段としてのタスクが前記変形パターン作成手段としてのタスクに優先して実行されることを特徴とする請求項１又は２に記載の自動伴奏装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、自動リズム演奏やその他の自動伴奏のために適用可能な自動伴奏装置に関し、特に自動伴奏パターンの変更を容易に行えるようにしたものに関する。
【０００２】
【従来の技術】
ユーザーの望みの自動伴奏パターンを得るための、従来の自動伴奏装置における典型例は、複数の伴奏パターンを予めメモリに記憶しておき、その中のいずれかを選択するやり方である。しかし、そのやり方では、選択可能なパターンが限られてしまうという欠点が有る。すなわち、予め記憶された伴奏パターンの中からいずれかを選択するタイプの自動伴奏装置では、記憶可能な伴奏パターンの数に限界があるため、ユーザーが欲しいと思う伴奏パターンに最も近いものを選択することができるだけであり、ユーザーが真に欲する伴奏パターンを得られないことが多い。
【０００３】
それに対して、ユーザーの望みに従って全く自由に自動伴奏パターンを作成できるようにするやり方としては、電子楽器等の鍵盤をユーザーが任意に手弾き演奏（押鍵）することにより、望みの伴奏パターンを作成し、これをメモリに記憶するようにしたものがある。こうしてメモリに記憶した伴奏パターンを読出し再生することによって自動伴奏を行うことができる。
また、リズム演奏パターンの作成を比較的容易にするものとして、個々の打楽器音源毎に複数のパターンを予め記憶しておき、各打楽器音源毎に夫々所望の１つのパターンを選択することにより、それらの組合せによって全体として望みのリズム演奏パターンを得るようにしたものもある。
【０００４】
【発明が解決しようとする課題】
前者の手弾き演奏を利用するやり方では、ユーザー自身が音楽に関する知識や演奏技術を有していないと、適切な伴奏パターンを作成することができないという問題があり、またユーザーが知識や演奏技術等を有していたとしても、その作成作業自体に多くの手間を要し、望みの伴奏パターンの作成を非常に困難なものにしていた。
後者のパターンを利用するやり方では、打楽器音源の選択操作と望みのパターンを選択するための選択操作を別々に行わねばならないという面倒がある、また、操作性が悪い、また、組合せによって得られる演奏パターンのバリエーションに限度が有る、など解決されるべき問題点が有った。また、メモリに記憶したパターンの中からしか選択することができないので、自由な伴奏パターンの作成を行うことができないものであった。
この発明は上述の点に鑑みてなされたもので、伴奏パターンの作成や変更を容易に行えるようにすると共に、複雑なパターンであっても容易な作成や変更を可能にした自動伴奏装置を提供しようとするものである。
【０００５】
【課題を解決するための手段】
この目的を達成するために、この発明に従う自動伴奏装置は、演奏すべき現在の伴奏パターンを記憶する記憶手段と、伴奏パターンに対して与える変形をそれぞれ示す複数の形容詞の何れかを指定するための指定手段と、全ての前記複数の形容詞に対応した変形アルゴリズムをそれぞれ実行して、前記記憶手段に記憶されている前記現在の伴奏パターンを基にして該伴奏パターンに対して変形を施し、各形容詞に対応した変形済みパターンをそれぞれ作成してバッファに保存する変形パターン作成手段と、前記指定手段によって何れかの形容詞の指定があったとき、前記変形パターン作成手段によって作成されて前記バッファに保存済みの前記変形済みパターンの中から該指定された形容詞に一致するパターンを選択し、前記記憶手段に記憶されている前記現在の伴奏パターンを該選択したパターンで差し替えるパターン変更手段と、前記記憶手段に記憶されている前記現在の伴奏パターンに従って自動伴奏を行い、自動伴奏音を発音させる伴奏手段とを備え、前記伴奏手段による自動伴奏に並行して前記変形パターン作成手段による前記各形容詞に対応した変形済みパターンの作成が行われることを特徴とするものである。
【０００６】
【作用】
記憶されてる伴奏パターンにもとづいて、変形パターン作成手段によって複数の形容詞に対応する変形済みパターンがそれぞれ作成される。伴奏手段によって、伴奏パターンに従った自動伴奏が実行されているとき、指定手段によって複数の形容詞のうちの何れかの形容詞が指定されると、該指定された形容詞に対応する変形済みパターンが選択され、それまでの伴奏パターンと差し替えられる。
【０００７】
【実施例】
以下、この発明の実施例を添付図面に従って詳細に説明する。
図２は鍵盤及び音源回路を内蔵した電子楽器１Ｆと、伴奏パターンのエディット処理、及び電子楽器１Ｆへ伴奏パターンに基づくデータを出力する処理を行うパソコン２０との詳細構成及び両者間の接続関係を示すハードブロック図である。
まず、電子楽器１Ｆの構成について説明する。
マイクロプロセッサユニット（ＣＰＵ）１１は、この電子楽器１Ｆの動作を制御するものである。このＣＰＵ１１に対して、バス１Ｅを介してＲＯＭ１２、ＲＡＭ１３、押鍵検出回路１４、スイッチ検出回路１５、表示回路１６、音源回路１７、サウンドシステム１８、タイマ１９及びＭＩＤＩインターフェイス（Ｉ／Ｆ）１Ｄがそれぞれ接続されている。
【０００８】
この実施例ではＣＰＵ１１によって押鍵検出処理や演奏データ（ノートデータ）の送受信処理及び発音処理等を行う電子楽器について説明するが、押鍵検出回路１４からなるモジュールや音源回路１７からなるモジュールとがそれぞれ別々に構成され、各モジュール間のデータの授受をＭＩＤＩインターフェイスで行うように構成されたものにも同様に適用できる。
ＲＯＭ１２はＣＰＵ１１の各種プログラムや各種データを格納するものであり、リードオンリーメモリ（ＲＯＭ）で構成されている。
ＲＡＭ１３は、演奏情報やＣＰＵ１１がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ（ＲＡＭ）の所定のアドレス領域がそれぞれ割り当てられ、レジスタ及びフラグとして利用される。
【０００９】
鍵盤１Ａは、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、また必要に応じて押鍵速度検出装置や押圧力検出装置等のタッチ検出手段を有している。鍵盤１Ａは音楽演奏のための基本的な操作子であり、これ以外の演奏操作子、例えばドラムパッド等でもよいことはいうまでもない。
【００１０】
押鍵検出回路１４は、発生すべき楽音の音高を指定する鍵盤１Ａのそれぞれの鍵に対応して設けられた複数のキースイッチからなる回路を含んで構成されており、新たな鍵が押圧されたときはキーオンイベント情報を出力し、鍵が新たに離鍵されたときはキーオフイベント情報を出力する。また、鍵押し下げ時の押鍵操作速度又は押圧力等を判別してタッチデータを生成する処理を行い、生成したタッチデータをベロシティデータとして出力する。このようにキーオン、キーオフイベント情報及びベロシティ情報はＭＩＤＩ規格で表現されておりキーコードと割当てチャンネルを示すデータをも含んでいる。
【００１１】
パネルスイッチ１Ｂは、音色、音量、効果等を選択・設定・制御するための各種操作子を含むものである。パネルスイッチには色々なものがあるが、その詳細については公知なので説明を省略する。
スイッチ検出回路１５は、パネルスイッチ１Ｂの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報を、バス１Ｅを介してＣＰＵ１１に出力する。
表示回路１６はＣＰＵ１１の制御状態、設定データの内容等の各種の情報を表示部１Ｃに表示するものである。表示部１Ｃは液晶表示パネル（ＬＣＤ）等から構成され、表示回路１６によってその表示動作を制御される。
【００１２】
音源回路１７は、複数のチャンネルで楽音信号の同時発生が可能であり、バス１Ｅを経由して与えられた演奏情報（ＭＩＤＩ規格に準拠したデータ）を入力し、このデータに基づき楽音信号を発生する。後述するように、本電子楽器１Ｆの音源回路１７は各種ドラム音の楽音信号を発生可能なように構成されているものである。
音源回路１７における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してもよい。
【００１３】
音源回路１７から発生された楽音信号は、図示しないアンプ及びスピーカからなるサウンドシステム１８を介して発音される。
タイマ１９は時間間隔を計数したりするためのクロックパルスを発生するものであり、このクロックパルスはＣＰＵ１１に対してインタラプト命令として与えられるので、ＣＰＵ１１はインタラプト処理により各種処理を実行する。
【００１４】
ＭＩＤＩインターフェイス（Ｉ／Ｆ）１Ｄは電子楽器１Ｆのバス１Ｅとパソコン２０のＭＩＤＩインターフェイス（Ｉ／Ｆ）２Ｃとの間を接続し、ＭＩＤＩインターフェイス２Ｃはパソコン２０のバス２ＤとＭＩＤＩインターフェイス１Ｄとの間を接続している。従って、電子楽器１９のバス１Ｅとパソコン２０のバス２Ｄとの間は、ＭＩＤＩインターフェイス１Ｄ及び２Ｃを介して接続され、両者の間では、ＭＩＤＩ規格に準拠したデータのやり取りが双方向で行えるようになっている。
【００１５】
次に、パソコン２０の構成について説明する。
マイクロプロセッサユニット（ＣＰＵ）２１は、このパソコン２０の動作を制御するものである。このＣＰＵ２１に対して、バス２Ｄを介してＲＯＭ２２、ＲＡＭ２３、ハードディスク装置２４、ディスプレイインターフェイス（Ｉ／Ｆ）２５、マウスインターフェイス（ＭＯＵＳＥ  Ｉ／Ｆ）２６、スイッチ検出回路２７、タイマ２８及びＭＩＤＩインターフェイス２Ｃがそれぞれ接続されている。
【００１６】
ＲＯＭ２２はＣＰＵ２１の各種プログラムや各種データや各種記号文字等のデータを格納するものであり、リードオンリーメモリ（ＲＯＭ）で構成されている。
ＲＡＭ２３は、ＣＰＵ２１がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ（ＲＡＭ）で構成されている。なお、この実施例では、ＲＡＭ２３の所定領域が図３に示すようなカレントパターンメモリ領域、アサインメモリ領域、アンドゥバッファ領域、退避メモリ領域及びパターンテーブル領域に割り当てられている。
【００１７】
カレントパターンメモリ領域は、自動伴奏時に読み出されるリズムパターンを記憶する領域である。アサインメモリ領域は、エディット処理やトランスフォーマー処理によって新たに作成されたリズムパターンを記憶する領域である。アンドゥバッファ領域は、トランスフォーマー処理によって変形されたリズムパターンを一時的に記憶する領域である。退避メモリ領域は、フィルインを挿入するときにそれまでのカレントパターンを保存したり、データベースからコンポーネントのリズムパターンを読み出す時、前に存在していたコンポーネントのリズムパターンを一時的に保存する領域である。
【００１８】
パターンテーブル領域は、データベース（ハードディスク装置２４）に記憶されているリズムパターンのアドレスとリズムパターンの複雑度を示すデータを、その複雑度の小さい順序をアドレスとして記憶する領域である。すなわち、パターンテーブル領域はリズムパターンを複雑度の小さい順序に並び替えた場合に、その順序アドレスをデータベース上のアドレスに変換するためのアドレス変換用のパターンテーブルを記憶する領域である。このパターンテーブルの詳細については後述する。
【００１９】
ハードディスク装置２４は、パソコン２０の外部記憶装置であり、数十〜数百メガバイト（ＭＢ）の記憶容量を有する。この実施例では、ハードディスク装置２４は、リズムパターンのデータベースとして利用され、図３に示すようなそれぞれ異なる音楽スタイル（ジャンル）のパターンを記憶するために３つのバンクＡ，Ｂ，Ｃに分割にされている。
【００２０】
この実施例では、バンクＡには各ドラム音のコンポーネントに対応したロック音楽専用の複数のリズムパターンが記憶され、バンクＢには各ドラム音のコンポーネントに対応したディスコ音楽専用の複数のリズムパターンが記憶され、バンクＣには各ドラム音のコンポーネントに対応したロック及びディスコ音楽に共通の複数のリズムパターンが記憶されている。各バンクに記憶されている複数のリズムパターンを特定するための先頭アドレスが、前述のパターンテーブル領域に単純なものから複雑なものへと、その複雑さの度合いに従った順序をアドレスとして順番に記憶されている。
【００２１】
例えば、バスドラム（ＢＤ）とスネアドラム（ＳＤ）とからなるコンポーネントに対しては、ＢＤ＋ＳＤパターン１、ＢＤ＋ＳＤパターン２、・・・のようにパターン番号に従ってより複雑なリズムパターンとなっている。同様に、タムタムのハイ、ミドル及びロー（ＴｏｍＨ、ＴｏｍＭ、ＴｏｍＬ）からなるコンポーネントに対してもＴｏｍＨ＋ＴｏｍＭ＋ＴｏｍＬパターン１、ＴｏｍＨ＋ＴｏｍＭ＋ＴｏｍＬパターン２、・・・のようにパターン番号に従ってより複雑なリズムパターンとなっている。
【００２２】
図４は、パターンテーブル領域に記憶されているアドレス変換用のパターンテーブルの内容を示す図である。図では、ロック音楽用パターンテーブルとディスコ音楽用パターンテーブルが示してある。ロック音楽用パターンテーブルは、バンクＡ及びＣに記憶されている複数のリズムパターンを特定するための先頭アドレスＡ−１，Ａ−２，Ａ−３，Ｃ−１，Ａ−４，Ｃ−２，・・・，Ａ−ｎを、そのリズムパターンの持つ複雑さの度合い（複雑度の大きさ）に従った順番１，２，３，・・・，ｎに記憶している。一方、ディスコ音楽用パターンテーブルは、バンクＢ及びＣに記憶されている複数のリズムパターンを特定するための先頭アドレスＢ−１，Ｂ−２，Ｃ−１，Ｂ−３，Ｃ−２，Ｃ−３，・・・，Ｂ−ｎを、そのリズムパターンの持つ複雑さの度合い（複雑度の大きさ）に従った順番１，２，３，・・・，ｎに記憶している。
【００２３】
ここで、先頭アドレスのＡ、Ｂ又はＣは、そのリズムパターンの記憶されているバンクの種類を示す。すなわち、先頭アドレスＡ−１，Ａ−２，Ａ−３，Ａ−４，Ａ−ｎはバンクＡのアドレスを示し、先頭アドレスＢ−１，Ｂ−２，Ｂ−３，Ｂ−ｎはバンクＢのアドレスを示し、先頭アドレスＣ−１，Ｃ−２，Ｃ−３はバンクＣのアドレスを示す。
【００２４】
複雑度はリズムパターンを所定の規則に応じて『０〜１００』の値に数値化したものを用いる。所定の規則として、例えば、リズムパターン中に含まれる音の数、リズムパターン中のノートイベントデータが存在するタイミングの数、リズムパターンの前半に含まれる音の数と後半に含まれる音の数との差、又はあるタイミング（例えば、一拍目、三拍目、８分の裏拍等）におけるイベントの出現数等を、そのまま複雑度としたり、これらの規則をユーザーが任意に選択し適宜組み合わせたものや、これらを総合的に判断したものを複雑度とする。また、ユーザーが任意にリズムパターンを並び替えることができるようにしてもよい。
【００２５】
ロック音楽用パターンテーブルでは、アドレス『１』には、複雑度の最も小さい『５』のロック音楽専用のリズムパターンがデータベース上の先頭アドレス『Ａ−１』に記憶されていることを示している。以下、同様に、アドレス『２』には複雑度『７』のロック音楽専用のリズムパターンがデータベース上の先頭アドレス『Ａ−２』に、アドレス『３』には複雑度『１０』のロック音楽専用のリズムパターンがデータベース上の先頭アドレス『Ａ−３』に、アドレス『４』には複雑度『１１』のロック及びディスコ音楽共通のリズムパターンがデータベース上の先頭アドレス『Ｃ−１』に、アドレス『５』には複雑度『１６』のロック音楽専用のリズムパターンがデータベース上の先頭アドレス『Ａ−４』に、アドレス『６』には複雑度『２０』のロック及びディスコ音楽共通のリズムパターンがデータベース上の先頭アドレス『Ｃ−２』に、アドレス『ｎ』には複雑度の最も高い『９５』のロック音楽専用のリズムパターンがデータベース上の先頭アドレス『Ａ−ｎ』に、それぞれ記憶されていることを示している。
【００２６】
ディスコ音楽用のパターンテーブルでは、アドレス『１』には、複雑度が最も小さい『１０』のディスコ音楽専用のリズムパターンがデータベース上の先頭アドレス『Ｂ−１』に記憶されていることを示している。以下、同様に、アドレス『２』には複雑度『１４』のディスコ音楽専用のリズムパターンがデータベース上の先頭アドレス『Ｂ−２』に、アドレス『３』には複雑度『２２』のロック及びディスコ音楽共通のリズムパターンがデータベース上の先頭アドレス『Ｃ−１』に、アドレス『４』には複雑度『２５』のディスコ音楽専用のリズムパターンがデータベース上の先頭アドレス『Ｂ−３』に、アドレス『５』には複雑度『２６』のロック及びディスコ音楽共通のリズムパターンがデータベース上の先頭アドレス『Ｃ−２』に、アドレス『６』には複雑度『３０』のロック及びディスコ音楽共通のリズムパターンがデータベース上の先頭アドレス『Ｃ−３』に、アドレス『ｎ』には複雑度の最も高い『９１』のディスコ音楽専用のリズムパターンがデータベース上の先頭アドレス『Ｂ−ｎ』に、それぞれ記憶されていることを示している。
【００２７】
なお、バンクＣのリズムパターンはロック音楽及びディスコ音楽に共通するので、ロック音楽用パターンテーブルとディスコ音楽用パターンテーブルの両方に存在する。例えば、図４のパターンテーブルの中では、先頭アドレス『Ｃ−１』及び『Ｃ−２』のリズムパターンがロック音楽用パターンテーブルとディスコ音楽用パターンテーブルの両方に存在する。図４では、同じリズムパターンでありながら、その複雑度が異なるのは、前述したように複雑度を求める所定の規則がロック音楽用パターンテーブルとディスコ音楽用パターンテーブルとでそれぞれ異なっているからである。
また、各バンクＡ，Ｂ，Ｃには、図３に示すようにリアルタイム演奏を意識したフィルインパターンやその他の楽器のパターン等も記憶されているので、カレントパターンに代えて一時的にフィルインパターンを挿入して演奏できるようになっている。
【００２８】
各バンクＡ，Ｂ，Ｃに記憶されているリズムパターンの内容は、図３に示すように、イベントの発生タイミングを示すタイミングデータと、そのイベントの種類を示すノートイベントデータとの組み合わせからなる演奏データを相対時間方式で順次記憶することによって構成されている。なお、ここではノートイベントデータは、ＭＩＤＩのノートオンメッセージに対応した形式で記憶されており、３バイトのデータからなる。また、タイミングデータは、各ノートイベントの発生間隔をクロック数で表わしたものである。その他、ハードディスク装置２４には、バリエーションパターン１及び２として、トランスフォーマーの形容詞を指示するためのシーケンスデータが２種類記憶されている。すなわち、図３に示すようにバリエーション１，２は形容詞１、形容詞２、形容詞３及び形容詞４を順番に記憶したシーケンシャルデータで構成されている。
【００２９】
なお、図示していないが、ハードディスク装置２４に対するアクセスタイムを大幅に短縮するために、数メガバイト程度のキャッシュメモリ（ＲＡＭ）を設けたり、ＲＡＭ２３とハードディスク装置２４との間におけるデータ転送の負担を軽減するために、ＤＭＡ装置を設けたりしてもよいことはいうまでもない。
【００３０】
ディスプレイ２９は、パソコン２０内部で演算処理されたデータ等をディスプレイインターフェイス（Ｉ／Ｆ）を介して入力し、これらのデータを視覚的に認識可能なように表示するものであり、通常のＣＲＴやＬＣＤ等で構成される。
【００３１】
図５は、ディスプレイ２９の表示例を示す図である。ディスプレイ２９は、現在どのコンポーネントが選択されているのか示すと共にそれが複雑度でどのレベルに位置するのかを示すために、選択されたコンポーネントのリズムパターンの複雑度を選択パターンの項に表示している。従って、選択パターンの項に複雑度が表示されているコンポーネントは現在選択されており、何も表示されていないコンポーネントは選択されていないことを意味する。また、選択パターンの項に表示された複雑度の大きさに応じてそのリズムパターンが複雑度でどのレベルに位置するのかを示す。
【００３２】
例えば、図５（Ａ）では、バスドラム（ＢＤ）とスネアドラム（ＳＤ）とからなるコンポーネントＢＤ＋ＳＤに関しては、複雑度『８０』のリズムパターンが選択されていることが示されている。タムタムのコンポーネントＴｏｍに関しては、複雑度『２０』のリズムパターンが選択されていることが示されている。ハイハットのコンポーネントＨＨに関しては、複雑度『４５』のリズムパターンが選択されていることが示されている。シンバルのコンポーネントＣＹに関しては、複雑度の表示がないので、何も選択されていないことが示されている。以下、同様にして、そのコンポーネントが選択されているかどうかが、選択パターンの項に複雑度が表示されているかどうかで容易に判別できるようになっている。また、選択パターンの項に表示された複雑度の大きさに応じてそのリズムパターンが複雑度でどのレベルに位置するのかを容易に認識することができる。
【００３３】
図５（Ａ）では、複雑度を直接数値表示する場合について示してあるが、これに限らず、図５（Ｂ）のように複雑度を棒グラフ等の図形で表示してもよい。このように図形表示することよって、そのコンポーネントが選択されているのかどうかが容易に認識できると共に複雑度における位置づけを感覚的に認識することができる。
【００３４】
なお、上述のようにリズムパターンを複雑度で位置づけする場合に限らず、複雑度以外の要素（例えば、激しさ、ノリの良さ等）で位置づけしてもよい。また、これらの要素を複数組み合わせて、２次元、３次元、又は多次元的に表示してもよい。多次元的に表示する場合には、レーダーチャートのような図形表示が有効である。
【００３５】
マウス２Ａは、ディスプレイ２９上の座標点を入力するポインティングデバイスの一種あり、その出力はマウスインターフェイス（ＭＯＵＳＥ  Ｉ／Ｆ）２６及びバス２Ｄを介してＣＰＵ２１に取り込まれる。
パネルスイッチ２Ｂは、パソコン２０にプログラムやデータ等を入力するためのキーボードであり、テンキーやファンクションキー等を備えたものである。
【００３６】
スイッチ検出回路２７は、パネルスイッチ２Ｂのキー操作状態を検出し、その操作状態に応じたキー情報をバス２Ｄを介してＣＰＵ２１に出力する。
タイマ２８は時間間隔を計数したり、パソコン２０全体の動作クロックを発生するものである。パソコン２０はこの動作クロックを所定数だけ計数することによって所定時間の計時を行い、それに応じたインタラプト処理を行う。例えば、この所定数を自動伴奏のテンポに応じた値とすることで、パソコン２０によって自動伴奏の処理を実行するようにしている。
【００３７】
この実施例では、鍵盤１Ａの押鍵状態に対応したノートナンバをＭＩＤＩインターフェイス１Ｄ及び２Ｃを介してパソコン２０のＣＰＵ２１に送信することによって、パソコン２０のマウス２Ａやパネルスイッチ２Ｂ以外にパソコン２０の各種機能を選択設定制御する操作子として、電子楽器１Ｆの鍵盤１Ａの各鍵が動作するようになっている。
【００３８】
図６は、鍵盤１Ａに割り当てられた各種機能の一例を示す図である。
図において、鍵盤１Ａは全部で６１個の鍵で構成され、パターンアサインエリア、操作子エリア及びドラムパターンエリアに分割されている。ノートナンバＥ０〜Ｂ１のキーがパターンアサインエリアを構成し、ノートナンバＣ２〜Ｇ＃３のキーが操作子エリアを構成し、ノートナンバＡ３〜Ｅ５のキーがドラムパターンエリアを構成する。
【００３９】
ノートナンバＥ０〜Ｂ１のキーは、エディット処理やトランスフォーマー処理によって作成されたリズムパターンを新たなリズムパターンとして記憶するためのアサインメモリ領域に対応したアドレスを発生する。すなわち、ＲＡＭ２３のアサインメモリ領域は全部で２０個のアドレスを有したアサインメモリ管理領域と、２０個のパターンを格納可能なパターン記憶領域とから成り、アサイン管理領域の一つ一つのアドレスがノートナンバＥ０〜Ｂ１に対応している。例えば、ノートナンバＥ０はアサインメモリ管理領域の第１のアドレスに対応し、ノートナンバＦ０は第２のアドレスに対応し、以下同様にしてノートナンバＦ＃０〜Ｂ１がアサインメモリ管理領域の第３から第２０のアドレスにそれぞれ対応している。そして、各アドレスには各パターン記憶領域の先頭アドレス値が記憶されている。
【００４０】
ノートナンバＣ２〜Ｇ＃３のキーは、エディット処理やトランスフォーマー処理を行うための各種操作子として機能する。従って、ノートナンバＣ２〜Ｇ＃３がそのまま各鍵に割り当てられた操作子機能を表すキー情報となる。
【００４１】
具体的には、ノートナンバＣ２のキーがアサインキー、ノートナンバＤ２、Ｅ２、Ｆ２、Ｇ２及びＡ２のキーがトランスフォーマー１〜５の指定キー、ノートナンバＢ２のキーがアンドゥ指定キー、ノートナンバＣ３のキーがスタート／ストップ指定キー、ノートナンバＤ３、Ｅ３及びＦ３のキーがバンクＡ〜Ｃの指定キー、ノートナンバＧ３のキーがパターン確定用のロックキー、ノートナンバＣ＃２及びＤ＃２のキーがバリエーション１、２の指定キー、ノートナンバＦ＃２のキーがリプレース入力キー、ノートナンバＧ＃２のキーがインサート入力キー、ノートナンバＡ＃２のキーがクォンタイズ処理指定キー、ノートナンバＣ＃３のキーがデリートドラム指示キー、ノートナンバＤ＃３のキーがデリートコンポーネント指示キー、ノートナンバＦ＃３のキーがアクセント入力キー、ノートナンバＧ＃３のキーがフィルイン指定キーにそれぞれ対応している。
これら各キーの操作に応じた処理内容の詳細については後述する。
【００４２】
ドラムパターンエリアのノートナンバＡ３〜Ｅ５のキーは、ドラム音の指定キーとして機能する。従って、ノートナンバＣ２〜Ｇ＃３がそのまま各鍵に割り当てられたドラム音の種類を表すドラム音情報となる。
【００４３】
具体的には、ノートナンバＡ３のキーがバスドラム（ＢＤ）、ノートナンバＡ＃３のキーがスネアドラム（ＳＤ）、ノートナンバＢ３のキーがタムタムのハイ（Ｔｏｍ  Ｈ）、ノートナンバＣ４のキーがタムタムのロー（Ｔｏｍ  Ｌ）、ノートナンバＣ＃４のキーがタムタムのミドル（Ｔｏｍ  Ｍ）、ノートナンバＤ４のキーがコンガのハイ（Ｃｏｎｇａ  Ｈ）、ノートナンバＥ４のキーがコンガのロー（Ｃｏｎｇａ  Ｌ）、ノートナンバＤ＃４のキーがティンバレ（Ｔｉｍｂ）、ノートナンバＦ４のキーがテンプルブロックのロー（ＴＢ  Ｌ）、ノートナンバＦ＃４のキーがテンプルブロックのハイ（ＴＢ  Ｈ）、ノートナンバＧ４のキーがハイハットのクローズ（ＨＨＣ）、ノートナンバＡ４のキーがハイハットのオープン（ＨＨＯ）、ノートナンバＧ＃４のキーがタンブリン（Ｔａｍｂ）、ノートナンバＡ＃４のキーがクラベス（Ｃｌａｖｅ）、ノートナンバＢ４のキーがカウベル（Ｃｏｗｂｅｌｌ）、ノートナンバＣ５のキーがアゴゥゴゥのハイ（Ａｇｏｇｏ  Ｈ）、ノートナンバＣ＃５のキーがアゴゥゴゥのロー（Ａｇｏｇｏ  Ｌ）、ノートナンバＤ５のキーがハンドクラップス（Ｃｌａｐｓ）、ノートナンバＤ＃５のキーがクラッシュシンバル（Ｃｒａｓｈ  ＣＹ）、ノートナンバＥ５のキーがライドシンバル（Ｒｉｄｅ  ＣＹ）のドラム音にそれぞれ対応している。
【００４４】
上述の各ドラム音は単独で指定することも可能であるが、この実施例では、複数のドラム音をその演奏形態に応じてグループ化したコンポーネントとして利用している。従って、このコンポーネントを構成するドラム音は１又は複数である。ここで、コンポーネントが複数のドラム音から構成される場合には、これらの間には演奏形態に共通性（音楽的な関連）が存在することが必要である。例えば、バスドラム（ＢＤ）とスネアドラム（ＳＤ）とが、タムタムのハイ（Ｔｏｍ  Ｈ）とタムタムのミドル（Ｔｏｍ  Ｍ）とタムタムのロー（Ｔｏｍ  Ｌ）とが、コンガのハイ（Ｃｏｎｇａ  Ｈ）とコンガのロー（Ｃｏｎｇａ  Ｌ）とティンバレ（Ｔｉｍｂ）とが、テンプルブロックのハイ（ＴＢ  Ｈ）とテンプルブロックのロー（ＴＢ  Ｌ）とが、ハイハットのオープン（ＨＨＯ）とハイハットのクローズ（ＨＨＣ）とが、アゴゥゴゥのハイ（Ａｇｏｇｏ  Ｈ）とアゴゥゴゥのロー（Ａｇｏｇｏ  Ｌ）とが、それぞれ１つのコンポーネントを構成する。従って、タンブリン（Ｔａｍｂ）、クラベス（Ｃｌａｖｅ）、カウベル（Ｃｏｗｂｅｌｌ）、ハンドクラップス（Ｃｌａｐｓ）、クラッシュシンバル（Ｃｒａｓｈ  ＣＹ）及びライドシンバル（Ｒｉｄｅ  ＣＹ）のドラム音は単独扱いのコンポーネントとなる。
【００４５】
但し、タンブリン（Ｔａｍｂ）とクラベス（Ｃｌａｖｅ）とを、カウベル（Ｃｏｗｂｅｌｌ）とハンドクラップス（Ｃｌａｐｓ）とを、クラッシュシンバル（Ｃｒａｓｈ  ＣＹ）とライドシンバル（Ｒｉｄｅ  ＣＹ）とを、それぞれ１つのコンポーネントとして扱ってもよいことはいうまでもない。また、これ以外の組合せでもよい。
【００４６】
図１は、図２の電子楽器１Ｆ及びパソコン２０が伴奏パターン作成装置として動作する場合の機能ブロックを示す図である。
図１の伴奏パターン作成装置はカレントパターンメモリ１を中心に動作する。パソコン２０は、カレントパターンメモリ１からカレントパターンを読み出しながら自動伴奏処理を行うようになっている。
【００４７】
カレントパターンメモリ１、アサインメモリ２、アンドゥバッファ３、退避メモリ４及びパターンテーブル６３は、図３に示されたＲＡＭ２３の所定領域がそれぞれ対応する。
データベース手段５は、図２のハードディスク装置２４に対応する。データベース手段５は図３のように多数のリズムパターンデータを記憶している。
パターンセレクタ６１は、図２の鍵盤１ＡのノートナンバＡ３、Ａ＃３、Ｂ３、・・・、Ｅ５のドラムパターンエリアの各指定キーと、鍵盤１ＡのノートナンバＤ３、Ｅ３及びＦ３のバンクＡ，Ｂ，Ｃの指定キーとがそれぞれ対応する。
【００４８】
従って、この伴奏パターン作成装置は、パターンセレクタ６１によってデータベース手段５内のコンポーネントが適宜選択されると、それに対応したリズムパターンデータをデータベース手段５から読み出して、カレントパターンメモリ１に供給する。この実施例では、コンポーネントの選択は、パターンセレクタ６１すなわち鍵盤１Ａの操作によって行われ、鍵盤１Ａの操作によって発生したノートナンバに対応したコンポーネントが指定される。この時、各コンポーネント中のリズムパターンは複数存在するので、指定されたコンポーネントのどのリズムパターンデータを読み出すかは、鍵盤１Ａの操作時におけるベロシティデータによって行う。
【００４９】
すなわち、データベース手段５内の各バンクＡ，Ｂ，Ｃを構成する各リズムパターンデータの先頭アドレスは、図４のようにリズムパターンの複雑度に応じた順番をアドレスとしてパターンテーブル６３に記録されている。そこで、パターンセレクタ６１の操作時におけるベロシティデータをパターンテーブル６３のアドレスに対応付けることによって、パターンテーブル６３からはベロシティデータの大きさに応じて複雑度のそれぞれ異なるリズムパターンデータの先頭アドレスがパターンセレクタ６１に供給される。パターンセレクタ６１は、データベース手段５の該先頭アドレスによって指定されたアドレスに記憶されているリズムパターンデータを読み出して、カレントパターンメモリ１に供給する。データベース手段５から読み出されたリズムパターンデータはカレントパターンメモリ１内にカレントパターンとして格納される。格納されたカレントパターンの内容はエディット手段７やトランスフォーマー９によって種々の変更が施される。
【００５０】
エディット手段７は、図２の鍵盤１ＡのノートナンバＦ＃２のリプレース入力キー、ノートナンバＧ＃２のインサート入力キー、ノートナンバＡ＃２のクォンタイズ処理指定キー、ノートナンバＣ＃３のデリートドラム指示キー、ノートナンバＤ＃３のデリートコンポーネント指示キー、ノートナンバＦ＃３のアクセント入力キーに対応する。
【００５１】
ここで、リプレース入力とはカレントパターンの元のノートイベントデータを消去し、新たなノートイベントデータのみを記憶することをいう。インサート入力とはカレントパターンの元のノートイベントデータに新たなノートイベントデータを追加して記憶することをいう。クォンタイズとはノートイベントの発生タイミングを基準タイミングにジャストフィットさせることをいう。アクセントとはカレントパターン内のドラム音で、操作された鍵盤に対応するドラム音にアクセントを付けなおすことをいう。デリートドラムとはカレントパターン内のドラム音であって、操作された鍵盤に対応するドラム音だけを消去することをいう。デリートコンポーネントとはカレントパターン内のドラム音であって、操作した鍵盤に対応するコンポーネントのドラム音を全て消去することをいう。
【００５２】
形容詞指示手段８は、図２の鍵盤１ＡのノートナンバＤ２，Ｅ２，Ｆ２，Ｇ２，Ａ２のトランスフォーマー指定キーに対応する。
トランスフォーマー９は、図２のＲＯＭ２２内に格納されているトランスフォーマー用プログラムに対応する。カレントパターンの内容はこのトランスフォーマー指定キーに対応する形容詞指示手段８で指示された形容詞に応じて変形処理される。このトランスフォーマー９は感覚的な形容詞の指示をするだけで思い通りのイメージに沿ったパターンを作成する。
【００５３】
アンドゥ手段１０は、図２の鍵盤１ＡのノートナンバＢ２のアンドゥキーに対応する。
トランスフォーマー９によって変形されたパターンはアンドゥバッファ３に保存されるので、変形の結果、思い通りのパターンが得られなかった場合には、元のパターンを呼び戻すことができるようになっている。すなわち、アンドゥバッファ３には変形されたパターンが変形処理順に記憶されるので、アンドゥバッファ３の内容を順次遡って読み出すことによって元のパターンを呼び戻すことができる。
このようにして、新たなパターンの追加や変形によって作成されたカレントパターンは、アサインメモリ２に記憶しておくことが可能であり、アサインメモリ２に記憶されたパターンはいつでも鍵盤１Ａのパターンアサインエリアのキーを操作することによって読み出すことができる。
【００５４】
パターン登録手段６２は、図２のパネルスイッチ２Ｂ上のパターン登録用操作子が対応する。
パターン登録手段６２は、カレントパターンメモリ１内のカレントパターン、すなわちエディット手段７やトランスフォーマー９よって種々変更の施されたものをデータベース手段５に新たなリズムパターンデータとして新規登録する。この時、パターン登録手段６２は、データベース手段５に新規登録したリズムパターンデータの複雑度を求め、その複雑度に応じてパターンテーブル６３内の順番を並び替えて、新たなパターンテーブル６３を作成する。
【００５５】
例えば、図５に示すような複雑度『２０』のタムタムＴｏｍのリズムパターンをデータベース手段５のバンクＢのディスコ音楽用パターンテーブルに新たに登録する場合を想定して、パターンテーブルの並び替えについて説明する。まず、パターン登録手段６２は、タムタムＴｏｍのリズムパターンをデータベース手段５のアドレス『Ｂ−ｎ１』に登録する。そして、パターン登録手段６２は、タムタムＴｏｍのリズムパターンの複雑度を求める。タムタムＴｏｍのリズムパターンの複雑度は『２０』なので、パターン登録手段６２は、図４に示すようなディスコ音楽用パターンテーブルのアドレス『３』以降の先頭アドレス『Ｃ−１，Ｂ−３，Ｃ−２，Ｃ−３，・・・，Ｂ−ｎ』をそれぞれ１アドレスずつ後方に移動し、アドレス『３』の位置にタムタムＴｏｍのリズムパターンの先頭アドレス『Ｂ−ｎ１』を新たに記録する。
【００５６】
次に、ＣＰＵ１１によって実行される図２の電子楽器１Ｆの処理の一例を図７のフローチャートを用いて説明する。
図７（Ａ）は図２の電子楽器１ＦのＣＰＵ１１が処理するメインルーチンの一例を示す図である。
まず、電源が投入されると、ＣＰＵ１１はＲＯＭ１２に格納されている制御プログラムに応じた処理を開始する。「イニシャライズ処理」では、ＲＡＭ１３内の各種レジスタ及びフラグを初期化する。その後に、ＣＰＵ１１は「キー処理」、「ＭＩＤＩ受信処理」及び「その他の処理」をイベントの発生に応じて繰り返し実行する。
【００５７】
図７（Ｂ）は図７（Ａ）の「キー処理」の詳細を示す図である。
「キー処理」では、鍵盤１Ａの操作状態がキーオン状態かキーオフ状態かを判定し、その判定結果に応じて、ＭＩＤＩノートオンメッセージ又はＭＩＤＩノートオフメッセージをＭＩＤＩインターフェース１Ｄ及び２Ｃを介してパソコン２０に出力する。従って、この実施例では、鍵盤１Ａが操作された場合でも電子楽器自体の処理すなわち音源回路１７を駆動しないようにしてある。そのため、キー処理の時点では、音源回路１７は発音処理を行わないようにしてある。
【００５８】
図７（Ｃ）は図７（Ａ）の「ＭＩＤＩ受信処理」の詳細を示す図である。
「ＭＩＤＩ受信処理」では、パソコン２０からＭＩＤＩインターフェース２Ｃ及び１Ｄを介してＭＩＤＩメッセージを入力する毎に実行する。「ＭＩＤＩ受信処理」では、そのＭＩＤＩメッセージがノートオンメッセージかどうかを判定し、ノートオン（ＹＥＳ）の場合にはそのノートオン信号、ノートナンバ及びベロシティデータを音源回路１７に供給し、楽音の発音を音源回路１７に行わせる。一方、ＭＩＤＩメッセージがノートオン以外（ＮＯ）の場合には受信したＭＩＤＩメッセージに応じた「メッセージ対応処理」を行った後、図７（Ａ）のメインルーチンにリターンする。
「その他の処理」では、パネルスイッチ１Ｂにおけるその他の操作子の操作に基づく処理やその他の種々の処理を行う。
【００５９】
次に、ＣＰＵ２１によって実行される図２のパソコン２０の処理の一例を図８〜図１７のフローチャートを用いて説明する。
図８（Ａ）は図２のパソコン２０のＣＰＵ２１が処理するメインルーチンの一例を示す図である。
まず、電源が投入されると、ＣＰＵ２１はＲＯＭ２２に格納されている制御プログラムに応じた処理を開始する。「イニシャライズ処理」では、ＲＡＭ２３内の各種レジスタ及びフラグを初期化する。その後に、ＣＰＵ２１は「ＭＩＤＩ受信処理」、「表示処理」及び「その他の処理」を繰り返し実行する。
【００６０】
図８（Ｂ）は図８（Ａ）の「ＭＩＤＩ受信処理」の詳細を示す図である。
「ＭＩＤＩ受信処理」は、電子楽器１ＦからＭＩＤＩインターフェース１Ｄ及び２Ｃを介してＭＩＤＩメッセージが入力する毎に実行される。「ＭＩＤＩ受信処理」では、ＭＩＤＩメッセージがノートオンメッセージかどうかを判定し、ノートオン（ＹＥＳ）の場合にはそのキーオンのノートナンバに対応した処理（図９〜図１２の処理）を実行し、ノートオフ（ＮＯ）の場合にはそのキーオフのノートナンバに対応した処理（図１３の処理）を実行する。
【００６１】
「表示処理」では、データベース手段５のどのバンクを処理中であり、演奏しているドラム音の種類やカレントパターンのどの部分を演奏中であるかをディスプレイ２９に表示するための処理を行う。具体的には、図５や図２１に示すような画面を表示する。
「その他の処理」では、パネルスイッチ２Ｂにおけるその他の操作子の操作に基づく処理やその他の種々の処理を行う。ここでは、パネルスイッチ２Ｂ上のパターン登録用操作子の操作に応じた図１７の「パターン登録処理」を行う。この「パターン登録処理」の詳細について後述する。
【００６２】
図９〜図１２は、受信したＭＩＤＩメッセージがノートオンメッセージの場合に実行される図８（Ｂ）のノートオンメッセージのノートナンバに対応した処理を示す図である。
図９（Ａ）は、鍵盤１ＡのノートナンバＥ０〜Ｂ１に対応したパターンアサインエリアのキーが操作されることによって、ノートナンバＥ０〜Ｂ１を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるパターンアサインエリアキー処理を示す図である。
このパターンアサインエリアキー処理では、まずアサインフラグＡＳＳＩＧＮがハイレベル“１”かどうかを判定し、その判定結果に応じた処理を行う。
【００６３】
すなわち、アサインフラグＡＳＳＩＧＮは、鍵盤１Ａのアサインキー（ノートナンバＣ２のキー）がキーオン操作された場合に、図９（Ｂ）のアサインキー処理によってハイレベル“１”にセットされ、逆にキーオフ操作された場合には図１３（Ａ）の処理によってローレベル“０”にリセットされる。従って、アサインフラグＡＳＳＩＧＮがハイレベル“１”（ＹＥＳ）だと判定された場合は、パターンアサインエリアのキーとアサインキーとが同時に押されていることを意味するので、この場合には、カレントパターンメモリ１内のカレントパターンをそのノートナンバに対応したアサインメモリ２のアサインメモリ領域にコピーしてリターンする。
【００６４】
一方、アサインフラグＡＳＳＩＧＮがローレベル“０”（ＮＯ）だと判定された場合は、パターンアサインエリアのキーだけが操作されたことを意味するので、この場合には、そのノートナンバに対応したアサインメモリ２のアサインメモリ領域に記憶されているリズムパターンをカレントパターンメモリ１にコピーしてリターンする。
【００６５】
すなわち、アサインキーを押しながらパターンアサインエリアのキーを操作した場合には、その時にカレントパターンメモリ１に記憶されているリズムパターンデータがそのパターンアサインエリアのキーに登録され、パターンアサインエリアのキーだけを単独に操作した場合には、そのキーに予め登録されているリズムパターンがカレントパターンメモリ１に呼び出されることとなる。
【００６６】
図９（Ｂ）は鍵盤１ＡのノートナンバＣ２に対応したアサインキーが操作され、ノートナンバＣ２を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるアサインキー処理を示す図である。
このアサインキー処理では、全フラグをローレベル“０”にクリアしてからアサインフラグＡＳＳＩＧＮにハイレベル“１”をセットしてリターンする。
【００６７】
図９（Ｃ）は鍵盤１ＡのノートナンバＤ２〜Ａ２（＃を除く）に対応したトランスフォーマー１〜５のキーが操作され、ノートナンバＤ２〜Ａ２（＃を除く）を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるトランスフォーマーキー処理を示す図である。
ノートナンバＤ２〜Ａ２（＃を除く）を含むＭＩＤＩメッセージが電子楽器１Ｆから受信されたということは、トランスフォーマーの形容詞の種類を指示したことを意味する。従って、このトランスフォーマーキー処理では、まず、全フラグをローレベル“０”にクリアし、ＭＩＤＩメッセージ内のノートナンバ及びベロシティデータに応じてトランスフォーマーの形容詞の種類を決定する。トランスフォーマーの種類が決定したらトランスフォーマーフラグＴＲＡＮＳにハイレベル“１”をセットしてリターンする。
【００６８】
なお、この実施例では、それぞれのトランスフォーマー１〜５には、２つの形容詞が割り当てられており、ベロシティデータの大きさに応じていずれか一方が選択されるようになっている。例えば、トランスフォーマー１には複雑化処理（Ｃｏｍｐｌｅｘ）と簡単化処理（Ｓｉｍｐｌｅ）、トランスフォーマー２には硬音化処理（Ｈａｒｄ）と軟音化処理（Ｓｏｆｔ）、トランスフォーマー３には活発化処理（Ｅｎｅｒｇｅｔｉｃ）と平静化処理（Ｃａｌｍ）、トランスフォーマー４には無表情化処理（Ｍｅｃｈａｎｉｃａｌ）と優美化処理（Ｇｒａｃｅｆｕｌ）、トランスフォーマー５にはどもり化処理（Ｓｔｕｔｔｅｒｉｎｇ）と浮動化処理（Ｆｌｏａｔｉｎｇ）がそれぞれ割り当てられている。
従って、ベロシティデータの大きさがある所定値以下の場合には前者が選択され、所定値よりも大きい場合には後者が選択されるようになっている。
トンラスフォーマーフラグＴＲＡＮＳがハイレベル“１”の場合は、トランスフォーマー９は図１６（Ｄ）のトランスフォーマーキー処理を行い、カレントパターンの内容を各トランスフォーマーの形容詞に応じて変更する。
【００６９】
以下、各形容詞の内容について説明する。
複雑化処理（Ｃｏｍｐｌｅｘ）とは、次のいずれか一つを実行することをいう。
複雑化処理の第１は、予め指示されたテンプレートと呼ばれるパターン原型に基づき、このテンプレートに対応した３連音符系のリズムパターンをデータベース手段５からサーチし、それをカレントパターンに加えることによって行われる。
複雑化処理の第２は、データベース手段５からランダムにクラッシュ以外のコンポーネントを構成するドラム音を抽出してカレントパターンに加えることによって行われる。
【００７０】
簡単化処理（Ｓｉｍｐｌｅ）とは次のいずれか一つを実行することをいう。
簡単化処理の第１は、カレントパターン内のバスドラム（ＢＤ）、スネアドラム（ＳＤ）のリズムパターンに比べてより基本のリズムパターンに近いものをデータベース手段５からサーチし、それをカレントパターンとすることによって行われる。
簡単化処理の第２は、カレントパターン内のハイハット（ＨＨＣ，ＨＨＯ）のリズムパターンに比べてより基本のリズムパターンに近いものをデータベース手段５からサーチし、それをカレントパターンとすることによって行われる。
簡単化処理の第３は、上記バスドラム（ＢＤ）、スネアドラム（ＳＤ）、ハイハット（ＨＨＣ，ＨＨＯ）以外のコンポーネントのリズムパターンをカレントパターン内から除去することによって行われる。
【００７１】
硬音化処理（Ｈａｒｄ）とは次のいずれか一つを実行することをいう。
硬音化処理の第１は、カレントパターン内のリズムパターンの全てのベロシティを一律に増加させることによって行われる。
硬音化処理の第２は、カレントパターン内のドラム音をソフト用コンポーネントからハード用コンポーネントに交換することによって行われる。
【００７２】
ここで、ハード用コンポーネントを構成するドラム音は、例えばバスドラム（ＢＤ）、スネアドラム（ＳＤ）、タムタム（Ｔｏｍ  Ｈ，Ｔｏｍ  Ｍ，Ｔｏｍ  Ｌ）、カウベル（Ｃｏｗｂｅｌｌ）、アゴーゴ（Ａｇｏｇｏ  Ｈ，Ａｇｏｇｏ  Ｌ）、ハンドクラップス（Ｃｌａｐｓ）、クラッシュ（Ｃｒａｓｈ  ＣＹ）であり、ソフト用コンポーネントを構成するドラム音は、例えばクラベス（Ｃｌａｖｅ）、タンバリン（Ｔａｍｂ）、ハイハット（ＨＨＣ，ＨＨＯ）、ライド（Ｒｉｄｅ  ＣＹ）、コンガ（Ｃｏｎｇａ  Ｈ，Ｃｏｎｇａ  Ｌ）、ウッドブロック、シェイカーである。なお、この実施例では、ウッドブロックとシェイカーのドラム音は、鍵盤１Ａへ割当ててないが、これらのドラム音はソフト用コンポーネントを構成するものとして例示した。
【００７３】
軟音化（Ｓｏｆｔ）とは次のいずれか一つを実行することをいう。
軟音化処理の第１は、カレントパターン内のリズムパターンの全てのベロシティを一律に減少させることによって行われる。
軟音化処理の第２は、カレントパターン内のドラム音をハード用コンポーネントからソフト用コンポーネントに交換することによって行われる。
【００７４】
活発化処理（Ｅｎｅｒｇｅｔｉｃ）とは次のいずれか一つを実行することをいう。
活発化処理の第１は、テンプレートに基づいたリズムパターンをカレントパターン内で増加させることによって行われる。
活発化処理の第２は、テンポ速度を１２０程度に近づけることによって行われる。
活発化処理の第３は、カレントパターン内のリズムパターンをテンプレートに基づいて３連音符系のリズムパターンに近づける（シャッフルする）ことによって行われる。
【００７５】
平静化処理（Ｃａｌｍ）とは次のいずれか一つを実行することをいう。
平静化処理の第１は、テンプレートに基づいたリズムパターンをカレントパターン内で減少させることによって行われる。
平静化処理の第２は、テンポ速度を６０程度に近づけることによって行われる。
平静化処理の第３は、カレントパターン内のリズムパターンをテンプレートに基づいて非３連音符系のリズムパターンに近づける（ノンシャッフルする）ことによって行われる。
【００７６】
無表情化処理（Ｍｅｃｈａｎｉｃａｌ）とは、次のいずれか一つを実行することをいう。
無表情化処理の第１は、テンプレートに基づいてカレントパターン内のリズムパターンを１６分にクォンタイズすることによって行われる。
無表情化処理の第２は、テンプレートに基づいてカレントパターン内のリズムパターンをバスドラム（ＢＤ）又はスネアドラム（ＳＤ）を基本パターンとした８分にクォンタイズすることによって行われる。
無表情化処理の第３は、カレントパターン内のドラム音をソフト用コンポーネントからハード用コンポーネントに交換することによって行われる。
無表情化処理の第４は、ベロシティデータを『９０』の値を中心とした値に圧縮処理することによって行われる。
【００７７】
優美化処理（Ｇｒａｃｅｆｕｌ）とは、次のいずれか一つを実行することをいう。
優美化処理の第１は、ベロシティデータを『６４』の値を中心として両側に拡張することによって行われる。
優美化処理の第２は、テンプレートに基づいて３連音符系のリズムパターンをカレントパターンに追加することによって行われる。
優美化処理の第３は、カレントパターン内のドラム音をハード用コンポーネントからソフト用コンポーネントに交換することによって行われる。
優美化処理の第４は、カレントパターン内のドラム音にフラッターを施す（装飾音を付ける）ことによって行われる。
【００７８】
どもり化処理（Ｓｔｕｔｔｅｒｉｎｇ）とは、次のいずれか一つを実行することをいう。
どもり化処理の第１は、テンプレートに基づいて、カレントパターン内のリズムパターンからダウンビートを消去し、アップビートに変換する（シンコペーション化する）ことによって行われる。
どもり化処理の第２は、テンプレートに基づいて３連音符系のリズムパターンをカレントパターンに追加することによって行われる。
【００７９】
浮動化処理（Ｆｌｏａｔｉｎｇ）とは、次のいずれか一つを実行することをいう。
浮動化処理の第１は、テンプレートに基づいて、カレントパターン内のリズムパターンからアップビートを消去し、ダウンビートに変換する（非シンコペーション化する）ことによって行われる。
浮動化処理の第２は、テンプレートに基づいて３連音符系のリズムパターンをカレントパターンから減少させることによって行われる。
浮動化処理の第３は、テンプレートに基づいて１２／８の３連音符系のリズムパターンをカレントパターンに追加することによって行われる。
浮動化処理の第４は、カレントパターン内のドラム音をハード用コンポーネントからソフト用コンポーネントに交換することによって行われる。
浮動化処理の第５は、テンポ速度を『１２０』程度に近づけることによって行われる。
【００８０】
図９（Ｄ）は鍵盤１ＡのノートナンバＢ２に対応したアンドゥキーが操作され、ノートナンバＢ２を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるアンドゥキー処理を示す図である。
このアンドゥキー処理では、全フラグをローレベル“０”にクリアしてからアンドゥフラグＵＮＤＯにハイレベル“１”をセットしてリターンする。
【００８１】
アンドゥフラグＵＮＤＯがハイレベル“１”の場合は、アンドゥ手段１０は図１６（Ａ）のアンドゥ処理を行い、アンドゥバッファ３から前のリズムパターンを読み出しカレントパターンメモリ１にコピーする。これによって、トランスフォーマー９によるパターン変更の結果が気に入らない場合には、前回のリズムパターンに戻すことができる。なお、アンドゥバッファ３は、全部で２０個分のリズムパターンを順番に記憶しているので、アンドゥキーの操作に応じて順次遡って前のリズムパターンをカレントパターンメモリ１に復活することができるようになっている。
【００８２】
図９（Ｅ）は鍵盤１ＡのノートナンバＣ３に対応したスタート／ストップキーが操作され、ノートナンバＣ３を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるスタート／ストップキー処理を示す図である。
このスタート／ストップキー処理では、まず走行状態フラグＲＵＮがハイレベル“１”かどうかを判定し、その判定結果に応じた処理を行う。ここで走行状態フラグＲＵＮは、カレントパターンメモリ１からカレントパターンを読み出し中であるかどうかを示すものである。
【００８３】
従って、走行状態フラグＲＵＮがハイレベル“１”（ＹＥＳ）だと判定された場合は、読み出しを停止するために走行状態フラグＲＵＮにローレベル“０”をセットしてリターンする。一方、走行状態フラグＲＵＮがローレベル“０”（ＮＯ）だと判定された場合は、読み出しを開始するためにカレントパターンメモリ１の最初のタイミングデータをタイミングレジスタＴＩＭＥにセットし、走行状態フラグＲＵＮをハイレベル“１”にセットしてリターンする。これによって、図１４のタイマ割込処理においてカレントパターンメモリ１から順次カレントパターンの読み出し処理が実行されるようになる。
【００８４】
図９（Ｆ）は鍵盤１ＡのノートナンバＤ３〜Ｆ３（＃を除く）に対応したバンクＡ，Ｂ，Ｃのいずれかのキーが操作され、ノートナンバＤ３〜Ｆ３（＃を除く）を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるバンクＡ，Ｂ，Ｃキー処理を示す図である。
このバンクＡ，Ｂ，Ｃキー処理では、バンクレジスタＢＡＮＫに『１』、『２』、『３』のいずれか１つを格納してリターンする。この実施例では、ノートナンバＤ３に対応したバンクＡのキーが操作された場合にはバンクレジスタＢＡＮＫには『１』を格納し、ノートナンバＥ３に対応したバンクＢのキーが操作された場合にはバンクレジスタＢＡＮＫには『２』を格納し、ノートナンバＦ３に対応したバンクＣのキーが操作された場合にはバンクレジスタＢＡＮＫには『３』を格納する。これによって、キー操作に応じてデータベース手段５のバンクＡ，Ｂ，Ｃが切り替えられるので、これ以後にコンポーネントの指定があれば、そのバンクからリズムパターンが読み出され、カレントパターンメモリ１に格納されるようになる。
【００８５】
図１０（Ａ）は鍵盤１ＡのノートナンバＧ３に対応したロックキーが操作され、ノートナンバＧ３を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるロックキー処理を示す図である。
このロックキー処理では、全フラグをローレベル“０”にクリアしてからロックフラグＬＯＣＫにハイレベル“１”をセットしてリターンする。
データベース手段５からのリズムパターンは、通常はドラムパターンエリアのキーを操作している間だけ有効であるが、このロックキーを操作することによってリズムパターンの内容は確定し、ドラムパターンエリアのキーを離してもそのリズムパターンは有効状態を維持する。
【００８６】
図１０（Ｂ）は鍵盤１ＡのノートナンバＣ＃２，Ｄ＃２に対応したバリエーション１，２のキーが操作され、ノートナンバＣ＃２，Ｄ＃２を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるバリエーション１，２キー処理を示す図である。
このバリエーション１，２キー処理では、全フラグをローレベル“０”にクリアしてからバリエーションフラグＶＡＲＩ１又はＶＡＲＩ２にハイレベル“１”をセットしてリターンする。
これによって、カレントパターンの読み出しが小節線まで進んだときに、バリエーションパターン（図３の形容詞シーケンス）が読み出されるようになる。
【００８７】
図１０（Ｃ）は鍵盤１ＡのノートナンバＦ＃２に対応したリプレースキーが操作され、ノートナンバＦ＃２を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるリプレースキー処理を示す図である。
このリプレースキー処理では、全フラグをローレベル“０”にクリアしてからリプレースフラグＲＥＰＬＡＣＥにハイレベル“１”をセットしてリターンする。
これによって、このリプレースキーを押しつづけている間にドラムパターンエリアのキーを操作すると、図１１（Ｄ）の処理が実行され、対応するドラム音が操作タイミングの位置に入力されるようになる。このとき、前の対応ドラム音は消去される。
【００８８】
図１０（Ｄ）は鍵盤１ＡのノートナンバＧ＃２に対応したインサートキーが操作され、ノートナンバＧ＃２を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるインサートキー処理を示す図である。
このインサートキー処理では全フラグをローレベル“０”にクリアしてからインサートフラグＩＮＳＥＲＴにハイレベル“１”をセットしてリターンする。
これによって、このインサートキーを押しつづけている間にドラムパターンエリアのキーを操作すると、対応するドラム音がその操作タイミングの位置に入力されるようになる。このとき、前のドラム音は消去されることなく新たなドラム音が追加される。
【００８９】
図１０（Ｅ）は鍵盤１ＡのノートナンバＡ＃２に対応したクォンタイズキーが操作され、ノートナンバＡ＃２を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるクォンタイズキー処理を示す図である。
このクォンタイズキー処理では、全フラグをローレベル“０”にクリアし、その時のベロシティデータの大きさに応じてクォンタイズの分解能を決定し、クォンタイズフラグＱＵＡＮＴにハイレベル“１”をセットしてリターンする。
これによって、カレントパターンの読み出しが小節線まで達したとき、次の小節線以降のリズムパターンを読み出す際に、データそのものは書き替えずに読み出すタイミングのみをクォンタイズ処理して読み出す。このような処理を読み出しクォンタイズ処理という。
【００９０】
図１０（Ｆ）は鍵盤１ＡのノートナンバＣ＃３に対応したデリートドラムキーが操作され、ノートナンバＣ＃３を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるデリートドラムキー処理を示す図である。
このデリートドラムキー処理では、全フラグをローレベル“０”にクリアしてからデリートドラムフラグＤＥＬＤＲＵＭにハイレベル“１”をセットしてリターンする。
これによって、例えばその後にノートナンバＣ４のノートオンメッセージが検出されたら、ノートナンバＣ４に対応するドラム音（タムタムのロー（Ｔｏｍ  Ｌ））をカレントパターンの中から削除する。
【００９１】
図１１（Ａ）は鍵盤１ＡのノートナンバＤ＃３に対応したデリートコンポーネントキーが操作され、ノートナンバＤ＃３を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるデリートコンポーネントキー処理を示す図である。
このデリートコンポーネントキー処理では、全フラグをローレベル“０”にクリアしてからデリートコンポネントフラグＤＥＬＣＯＭＰにハイレベル“１”をセットしてリターンする。
これによって、例えばその後にノートナンバＣ４のノートオンメッセージが検出されたら、ノートナンバＣ４のタムタムのロー（Ｔｏｍ  Ｌ）が含まれるコンポーネントのドラム音が全て（すなわち、タムタムのハイ（Ｔｏｍ  Ｈ）タムタムのミッド（Ｔｏｍ  Ｍ）タムタムのロー（Ｔｏｍ  Ｌ））カレントパターンから削除される。
【００９２】
図１１（Ｂ）は鍵盤１ＡのノートナンバＦ＃３に対応したアクセントキーが操作され、ノートナンバＦ＃３を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるアクセントキー処理を示す図である。
このアクセントキー処理では全フラグをローレベル“０”にクリアしてからアクセントフラグＡＣＣＥＮＴにハイレベル“１”をセットしてリターンする。
これによって、例えばその後にノートナンバＣ４のノートオンメッセージが検出され、対応するノートナンバＣ４のノートオフメッセージが検出されるまでの間にそのノートナンバと同一のノートイベントがカレントパターンから読み出されたときは、そのノートイベントのベロシティがＣ４のノートオンベロシティに書き替えられる。
【００９３】
図１１（Ｃ）は鍵盤１ＡのノートナンバＧ＃３に対応したフィルインキーが操作され、ノートナンバＧ＃３を含むＭＩＤＩメッセージが電子楽器１Ｆから受信された場合に行われるフィルインキー処理を示す図である。
このフィルインキー処理では、まず全フラグをローレベル“０”にクリアしてからカレントパターンメモリ１内のカレントパターンを退避メモリ４に一時的に退避させる。そして、データベース手段５の対応するバンクＡ，Ｂ，Ｃのフィルインパターンをカレントパターンメモリ１にコピーし、その読み出し位置（現在の小節内のタイミングに対応するパターン上のデータ）をサーチしてからフィルインフラグＦＩＬＬにハイレベル“１”をセットしてリターンする。
これによって、ノートナンバＧ＃３に対応したフィルインキーが操作された時点からその小節の最後までフィルインパターンが演奏されるようになる。
【００９４】
図１１（Ｄ）は鍵盤１ＡのノートナンバＡ３〜Ｅ５に対応したドラムパターンエリアのキーが操作され、ノートナンバＡ３〜Ｅ５を含むＭＩＤＩメッセージを電子楽器１Ｆから受信した場合に行われるドラムキー処理を示す図である。
このドラムキー処理では、まずロックフラグＬＯＣＫ以外のフラグ（リプレースフラグＲＥＰＬＡＣＥ、インサートフラグＩＮＳＥＲＴ、デリートドラムフラグＤＥＬＤＲＵＭ及びデリートコンポーネントフラグＤＥＬＣＯＭＰ）のいずれかがハイレベル“１”かどうかを判定し、その判定結果に応じた処理を行う。
【００９５】
すなわち、ノートナンバがＡ３〜Ｅ５のいずれかであれば、それはドラム音（単音）の指定又はコンポーネントの指定である。従って、ロックフラグＬＯＣＫ以外のいずれかのフラグがハイレベル“１”（ＹＥＳ）だと判定された場合は、そのハイレベル“１”にセットされているフラグに対応したフラグ対応処理１を実行してリターンする。このフラグ対応処理１の詳細は、図１２に示されている。
【００９６】
一方、ロックフラグＬＯＣＫ以外のいずれのフラグもハイレベル“１”でない（ＮＯ）と判定された場合は、押鍵されたキー（ノートナンバ）に対応したコンポーネントの音（一部についてはドラム音）をカレントパターンから削除して退避メモリ４に一時的に退避させる。そして、押鍵されたキー（ノートナンバ）、ベロシティデータ、ジャンルに対応したコンポーネント（ドラム）のリズムパターンをパターンテーブル６３を参照して選択し、選択されたコンポーネントのリズムパターンをデータベース手段５から読み出してカレントパターンに追加する。
選択されたリズムパターンの複雑度を図５のようにディスプレイ２９に表示する。
【００９７】
これによって、ノートナンバＡ３〜Ｅ５に対応するキーを押鍵するだけで、ノートナンバに対応するコンポーネントのリズムパターンを、ベロシティデータの大きさに応じて選択して、追加することができる。なお、パターンテーブル６３は、図４に示したようにベロシティの値すなわちアドレスが大きいほど、より複雑なパターンとなるように、リズムパターンの先頭アドレスを順番に記憶しているので、リズムパターンの種類をより細かく選択することができる。
【００９８】
図１２は、図１１（Ｄ）のフラグ対応処理１の詳細を示す図である。
このフラグ対応処理１は、ロックフラグＬＯＣＫ以外のリプレースフラグＲＥＰＬＡＣＥ、インサートフラグＩＮＳＥＲＴ、デリートドラムフラグＤＥＬＤＲＵＭ及びデリートコンポーネントフラグＤＥＬＣＯＭＰのいずれかがハイレベル“１”の場合に行われる処理である。
【００９９】
図１２（Ａ）は鍵盤１ＡのノートナンバＦ＃２に対応したリプレースキーが押されている状態でドラムパターンエリアのキーが操作されることによって実行されるリプレース処理を示す図である。すなわち、リプレースキーが押されている間は、図１０（Ｃ）のリプレースキー処理によってリプレースフラグＲＥＰＬＡＣＥにハイレベル“１”がセットされるので、図１１（Ｄ）のドラムキー処理でロックフラグＬＯＣＫ以外のリプレースフラグＲＥＰＬＡＣＥがハイレベル“１”だと判定され、リプレース処理が行われる。
このリプレース処理では、ノートナンバに対応するドラム音をベロシティデータと共にカレントパターンに追加する。そして、押されたドラム音のデリートフラグにハイレベル“１”をセットして図１１（Ｄ）のドラムキー処理にリターンする。デリートフラグにハイレベル“１”のセットされたドラム音は、図１５のステップ５４でカレントパターンから削除される。
【０１００】
図１２（Ｂ）は鍵盤１ＡのノートナンバＧ＃２に対応したインサートキーが押されている状態でドラムパターンエリアのキーが操作されることによって実行されるインサート処理を示す図である。すなわち、インサートキーが押されている間は、図１０（Ｄ）のインサートキー処理によってインサートフラグＩＮＳＥＲＴにハイレベル“１”がセットされるので、図１１（Ｄ）のドラムキー処理でロックフラグＬＯＣＫ以外のインサートフラグＲＥＰＬＡＣＥがハイレベル“１”だと判定され、インサート処理が行われる。
このインサート処理では、ノートナンバに対応するドラム音をベロシティデータと共にカレントパターンに追加して図１１（Ｄ）のドラムキー処理にリターンする。
【０１０１】
図１２（Ｃ）は鍵盤１ＡのノートナンバＣ＃３に対応したデリートドラムキーが押されている状態でドラムパターンエリアのキーが操作されることによって実行されるデリートドラム処理を示す図である。すなわち、デリートドラムキーが押されている間は、図１０（Ｆ）のデリートドラムキー処理によってデリートドラムフラグＤＥＬＤＲＵＭにハイレベル“１”がセットされるので、図１１（Ｄ）のドラムキー処理でロックフラグＬＯＣＫ以外のデリートドラムフラグＤＥＬＤＲＵＭがハイレベル“１”だと判定され、デリートドラム処理が行われる。
このデリートドラム処理では、押されたドラム音のデリートフラグにハイレベル“１”をセットして図１１（Ｄ）のドラムキー処理にリターンする。デリートフラグにハイレベル“１”のセットされたドラム音は、図１５のステップ５４でカレントパターンから削除される。
【０１０２】
図１２（Ｄ）は鍵盤１ＡのノートナンバＤ＃３に対応したデリートコンポーネントキーが押されている状態でドラムパターンエリアのキーが操作されることによって実行されるデリートコンポーネント処理を示す図である。すなわち、デリートコンポーネントキーが押されている間は、図１１（Ａ）のデリートコンポーネントキー処理によってデリートコンポーネントフラグＤＥＬＣＯＭＰにハイレベル“１”がセットされるので、図１１（Ｄ）のドラムキー処理でロックフラグＬＯＣＫ以外のデリートコンポーネントフラグＤＥＬＣＯＭＰがハイレベル“１”だと判定され、デリートコンポーネント処理が行われる。
このデリートコンポーネント処理では、押されたドラム音を含むコンポーネントのデリートフラグにハイレベル“１”をセットして図１１（Ｄ）のドラムキー処理にリターンする。デリートフラグにハイレベル“１”のセットされたコンポーネントを構成するドラム音は、図１５のステップ５６でカレントパターンから削除される。
【０１０３】
図１３は受信したＭＩＤＩメッセージがノートオフメッセージの場合に行われる図８（Ｂ）のノートオフメッセージのノートナンバに対応した処理の詳細を示す図である。
図１３（Ａ）では、鍵盤１ＡのノートナンバＣ２に対応したアサインキー、ノートナンバＧ３に対応したロックキー、ノートナンバＦ＃２に対応したリプレースキー、ノートナンバＧ＃２に対応したインサートキー、ノートナンバＡ＃２に対応したクォンタイズ、ノートナンバＣ＃３に対応したデリートドラム、ノートナンバＤ＃３に対応したデリートコンポーネントキー又はノートナンバＦ＃３に対応したアクセントキーが操作され、ノートナンバＣ２、Ｇ３、Ｆ＃２、Ｇ＃２、Ａ＃２、Ｃ＃３、Ｄ＃３又はＦ＃３を含むＭＩＤＩメッセージを電子楽器１Ｆから受信した場合に、それぞれのノートナンバに対応した図９から図１１の各キー処理でハイレベル“１”にセットされたフラグをクリアする。
【０１０４】
図１３（Ｂ）は鍵盤１ＡのノートナンバＡ３〜Ｅ５に対応したドラムパターンエリアのキーが離鍵され、ノートナンバＡ３〜Ｅ５のノートオフメッセージを含むＭＩＤＩメッセージを電子楽器１Ｆから受信した場合に行われるドラムキー処理を示す図である。
このドラムキー処理では、まずロックフラグＬＯＣＫがローレベル“０”かどうかを判定し、ＹＥＳの場合には以下の処理を行い、ＮＯの場合にはデータベース手段５から読出し中のリズムパターンを確定させるために、そのまま図８（Ａ）のメインルーチンにリターンする。
ロックフラグＬＯＣＫがローレベル“０”の場合には、離鍵されたキーのノートナンバＡ３〜Ｅ５のドラム音（単音）又はコンポーネントの音をカレントパターンから削除し、図１１（Ｄ）で退避していたコンポーネント（ドラム）の音をカレントパターンに戻す。
【０１０５】
図１４は４分音符当たり４８０回の割込みで実行されるタイマ割込処理を示す図である。このタイマ割込処理はカレントパターンメモリ１からカレントパターンを読み出す時のテンポに対応して処理される。すなわち、テンポに応じて割込み周期が変更される。この処理はつぎのようなステップで順番に実行される。
【０１０６】
ステップ３１：走行状態フラグＲＵＮがハイレベル“１”かどうかを判定し、ハイレベル“１”（ＹＥＳ）の場合には次のステップ３２に進み、そうでない（ＮＯ）場合はリターンする。
ステップ３２：タイミングデータを格納してあるタイムレジスタＴＩＭＥの値が『０』かどうか、すなわち次のノートイベントまでの時間が経過したか否かを判定し、『０』（ＹＥＳ）の場合は時間が経過しているので、次のステップ３３に進み、そうでない（ＮＯ）場合は時間がまだ経過していないので、ステップ４０に進む。
【０１０７】
ステップ３３：前のステップ３２で次のノートイベントまでの時間が経過したと判定されたので、ここではそのタイミングに対応するイベントデータを読み出す。
ステップ３４：前のステップ３３で読み出されたイベントデータがエンドデータかどうかを判定し、エンドデータの場合にはステップ３９に進み、それ以外のデータの場合にはステップ３５に進む。
【０１０８】
ステップ３５：前のステップ３３で読み出されたイベントデータがエンドデータ以外のデータだと判定されたので、そのデータに対応したＭＩＤＩノートイベント（ＭＩＤＩメッセージ）をＭＩＤＩインターフェイス２Ｃ及び１Ｄを介して電子楽器１Ｆに出力する。このＭＩＤＩノートイベント出力の詳細については後述する。
ステップ３６：前のステップ３３で読み出されたイベントデータの次のデータを読み出す。
【０１０９】
ステップ３７：前のステップ３６で読み出されたデータがタイミングデータかどうかを判定し、ＹＥＳの場合は次のステップ３８に進み、ＮＯの場合はステップ３４にリターンする。従って、前のステップ３６で読み出されたデータがエンドデータの場合には、ステップ３４でＹＥＳと判定され、ステップ３９の処理が行われ、イベントデータの場合にはステップ３５，３６の処理が行われる。
【０１１０】
ステップ３８：読み出されたタイミングデータをタイムレジスタＴＩＭＥにセットする。
ステップ３９：前のステップ３４でエンドデータと判定されたので、ここではリズムパターンの最初のタイミングデータをタイムレジスタＴＩＭＥにセットしてステップ４１に進む。
ステップ４０：前のステップ３２でまだ時間が経過していないと判定されたので、ここではタイムレジスタＴＩＭＥの値を１だけデクリメント処理してステップ４１に進む。
【０１１１】
ステップ４１：小節内における読み出しタイミング（図示しないカウンタによりカウントされる）が小節線のタイミングかどうかを判定し、小節線のタイミングの場合（ＹＥＳ）は次のステップ４２に進み、そうでない（ＮＯ）場合はリターンする。
ステップ４２：いずれかのフラグがハイレベル“１”かどうかを判定し、ハイレベル“１”のフラグがあれば（ＹＥＳ）ステップ４３に進み、そうでなければリターンする。
ステップ４３：前のステップ４２でハイレベル“１”のフラグ有りと判定されたので、ここではそのハイレベル“１”のフラグに対応したフラグ対応処理２を行ってからリターンする。このフラグ対応処理２の詳細は図１６に示されている。
【０１１２】
図１５は、図１４のステップ３５のＭＩＤＩノートイベント出力処理の詳細を示す図である。
このＭＩＤＩノートイベント出力処理は、アクセントフラグＡＣＣＥＮＴ、デリートドラムフラグＤＥＬＤＲＵＭ又はデリートコンポーネントフラグＤＥＬＣＯＭＰのいずれかがハイレベル“１”の場合には、そのフラグに対応した処理を行い、そうでない場合にはカレントパターンメモリ１のリズムパターンに応じたノートイベントの出力処理を行う。この処理はつぎのようなステップで順番に実行される。
【０１１３】
ステップ５１：鍵盤１ＡのノートナンバＦ＃３に対応したアクセントキーが押鍵されてアクセントフラグＡＣＣＥＮＴにハイレベル“１”がセットされているかどうかを判定し、セットされている（ＹＥＳ）場合は次のステップ５２に進み、そうでない（ＮＯ）場合はステップ５３に進む。
ステップ５２：読み出されたノートイベントのノートナンバが、受信したノートイベントの（そのときノートオンされている）ノートナンバに対応すれば、読み出しノートイベントのベロシティを受信したノートオンメッセージのベロシティに差し替える。
【０１１４】
ステップ５３：鍵盤１ＡのノートナンバＣ＃３に対応したデリートドラムキーが押鍵され、いずれかのドラム音のデリートドラムフラグＤＥＬＤＲＵＭにハイレベル“１”がセットされているかどうかを判定し、セットされている（ＹＥＳ）場合は次のステップ５４に進み、そうでない（ＮＯ）場合はステップ５５に進む。
ステップ５４：受信したノートナンバに対応したドラム音のイベントがカレントパタンーメモリ１から読み出されたイベント中に存在する場合はそれを読み出されたカレントパターンのイベント中から削除する。
【０１１５】
ステップ５５：鍵盤１ＡのノートナンバＤ＃３に対応したデリートコンポーネントキーが押鍵され、いずれかのコンポーネントのデリートコンポーネントフラグＤＥＬＣＯＭＰにハイレベル“１”がセットされているかどうかを判定し、セットされている（ＹＥＳ）場合は次のステップ５６に進み、そうでない（ＮＯ）場合はステップ５９に進む。
ステップ５６：受信したノートナンバに対応したコンポーネントを構成するドラム音のイベントがカレントパタンーメモリ１から読み出されたイベント中に存在する場合はそのコンポーネントを構成するドラム音全てを読み出されたカレントパターンのイベント中から削除する。
【０１１６】
ステップ５７：前のステップ５４又は５６でドラム音が削除された結果、読み出されたカレントパターンのイベント内に残ったイベントが有るかどうかを判定し、残ったイベントが有る場合（ＹＥＳ）にはステップ５８に進み、そうでない（ＮＯ）場合はリターンして図１４のステップ３６に進む。
ステップ５８：ステップ５２でアクセント処理されたノートイベント、ステップ５４で削除された結果残ったノートイベント又はステップ５２，５４，５６の処理を経なかったノートイベントをＭＩＤＩインターフェイス２Ｃ，１Ｄを介して電子楽器１Ｆに出力する。
【０１１７】
図１６は図１４のステップ４３のフラグ対応処理２の詳細を示す図である。
このフラグ対応処理２は、アンドゥフラグＵＮＤＯ、フィルインフラグＦＩＬＬ、バリエーションフラグＶＡＲＩ１，ＶＡＲＩ２及びトランスフォーマーフラグＴＲＡＮＳのいずれかがハイレベル“１”の場合に行われる処理である。
【０１１８】
図１６（Ａ）は鍵盤１ＡのノートナンバＢ２に対応したアンドゥキーが押鍵されることによってアンドゥフラグＵＮＤＯにハイレベル“１”がセットされている場合（ＵＮＤＯ＝１）に行われるアンドゥ処理を示す図である。
このアンドゥ処理では、アンドゥバッファ３に格納されているリズムパターンの１つ前のパターンを読み出し、カレントパターンメモリ１内にカレントパターンとして転送する。そして、アンドゥフラグＵＮＤＯをローレベル“０”にクリアする。
【０１１９】
図１６（Ｂ）は鍵盤１ＡのノートナンバＧ＃３に対応したフィルインキーが押鍵されることによって、フィルインフラグＦＩＬＬにハイレベル“１”がセットされている場合（ＦＩＬＬ＝１）に行われるフィルイン復帰処理を示す図である。
このフィルイン復帰処理では、退避メモリ４に退避していたリズムパターンを読み出し、カレントパターンメモリ１内にカレントパターンとしてコピーする。そして、フィルインフラグＦＩＬＬをローレベル“０”にクリアする。
【０１２０】
図１６（Ｃ）は鍵盤１ＡのノートナンバＤ＃２又はＣ＃２に対応したバリエーションキーが押鍵されることによってバリエーションフラグＶＡＲＩ１，ＶＡＲＩ２にハイレベル“１”がセットされている場合（ＶＡＲＩ１又はＶＡＲＩ２＝１）に行われるバリエーション処理を示す図である。
このバリエーション処理では、バリエーションの指示中なので、図３のバリエーションシーケンスから次（又は先頭）の形容詞を読み出してトランスフォーマー９に指示する。例えば、バリエーションシーケンスが４小節分存在する場合には、１回この処理を実行する毎に形容詞を１つずつ読み出し、４回分の読み出しが終了するまで繰り返す。そして、４回分終了した時には、バリエーションフラグＶＡＲＩ１又はＶＡＲＩ２をローレベル“０”にクリアする。
【０１２１】
図１６（Ｄ）は鍵盤１ＡのノートナンバＤ２，Ｅ２，Ｆ２，Ｇ２，Ａ２に対応したトランスフォーマーキーが押鍵されることによってトランスフォーマーフラグＴＲＡＮＳにハイレベル“１”がセットされている場合（ＴＲＡＮＳ＝１）に行われるトランスフォーマー処理を示す図である。
このトランスフォーマー処理では、アンドゥバッファ３にカレントパターンメモリ１のカレントパターンをコピーし、指示されている形容詞に応じてカレントパターンの内容を変更する演算を行う。この演算の内容については後述する。そしてトランスフォーマーフラグＴＲＡＮＳをローレベル“０”にクリアする。
【０１２２】
図１７は、パソコン２０のＣＰＵ２１が行う図８の「その他の処理」の中の「パターン登録処理」の詳細を示す図である。この「パターン登録処理」は、カレントパターンメモリ１内の新たなリズムパターンデータをデータベース手段５に登録する際に、そのリズムパターンデータの複雑度を求め、その複雑度がパターンテーブル６３のどのレベルに位置するのかを判定し、そのレベル位置に登録して、パターンテーブル６３の書換えを行う処理である。この処理はつぎのようなステップで順番に実行される。
【０１２３】
ステップ７１：新規に登録するリズムパターンの複雑度を求め、その複雑度を新規登録複雑度レジスタＣＯＭＰ（Ｎ）に格納する。
ステップ７２：図１のパターンテーブル６３からアドレスレジスタＡＤ＝１のリズムパターンの複雑度を読み出し、その複雑度を既登録複雑度レジスタＣＯＭＰ（Ｄ）に格納する。このアドレスレジスタＡＤは図４のパターンテーブル上のアドレスを格納するものである。
【０１２４】
ステップ７３：新規登録複雑度レジスタＣＯＭＰ（Ｎ）の複雑度が既登録複雑度レジスタＣＯＭＰ（Ｄ）の複雑度よりも小さいかどうかを判定し、小さい（ＹＥＳ）場合にはステップ７６に進み、同じか大きい（ＮＯ）場合にはステップ７４に進む。
ステップ７４：アドレスレジスタＡＤを１だけインクリメント処理する。
ステップ７５：パターンテーブル６３からアドレスレジスタＡＤのアドレスに記録されているリズムパターンの複雑度を読み出し、その複雑度を既登録複雑度レジスタＣＯＭＰ（Ｄ）に格納し、ステップ７３にリターンする。
すなわち、ステップ７３〜７５は、新規登録されるリズムパターンの複雑度が現在のパターンテーブル６３上でどのアドレスに対応するのかを検出する。
【０１２５】
ステップ７６：前のステップ７３で新規登録複雑度レジスタＣＯＭＰ（Ｎ）の複雑度が既登録複雑度レジスタＣＯＭＰ（Ｄ）の複雑度よりも小さいと判定されたので、ここでは、アドレスレジスタＡＤのアドレス以降のリズムパターンの先頭アドレスを１アドレスずつ後ろにずらして記録する。
ステップ７７：新規登録リズムパターンの先頭アドレスと、その複雑度をアドレスレジスタＡＤのアドレスの位置に登録する。
【０１２６】
図１８〜図２０はトランスフォーマー処理によってカレントパターンの内容を変更する演算処理の一例を示す図である。
図１８〜図２０に示されたトランスフォーマー処理は、カレントパターン内の変更対象となるリズムパターンをサーチテンプレート（Ｓｅａｒｃｈ−ｔｅｍｐｌａｔｅ）に基づいてサーチし、それをリプレーステンプレート（Ｒｅｐｌａｃｅ−ｔｅｍｐｌａｔｅ）に基づいて所定のリズムパターンに変更して置き替えている。具体的には、サーチテンプレートに対応したリズムパターンをリプレーステンプレートの３連音符系のリズムパターンに置き替えている。
【０１２７】
図において、サーチテンプレートのデータフォーマットはＳｅａｒｃｈ−ｔｅｍｐｌａｔｅ＝（（オフセットデータ）（サーチデータ）（誤差範囲データ））で与えられ、リプレーステンプレートのデータフォーマットはＲｅｐｌａｃｅ−ｔｅｍｐｌａｔｅ＝（（リプレースデータ）（ベロシティー選択データ）（ドラム音選択データ））で与えれる。
サーチデータ及びリプレースデータにはタイミングデータで表現されたリズムパターンが記憶されている。すなわち、この実施例では、４分音符に相当するタイミングデータの値を「４８０」、８分音符相当のタイミングデータ値を「２４０」、１６分音符相当のタイミングデータ値を「１２０」、３２分音符相当のタイミングデータ値を「６０」としている。従って、図１８に示したサーチテンプレートのサーチデータ（０  ２４０  ３６０  ４８０）は１個の８分音符と２個の１６分音符からなる４分音符相当のリズムパターンを示し、リプレーステンプレートのリプレースデータ（０  １６０  ３２０）は４分音符相当の３連音符系のリズムパターンを示す。
【０１２８】
図１８では、サーチテンプレートのデータフォーマットはＳｅａｒｃｈ−ｔｅｍｐｌａｔｅ＝（（０  ４８０  ９６０  １４４０）（０  ２４０  ３６０  ４８０）（２０  ２０  ２０  ２０））であり、リプレーステンプレートのデータフォーマットはＲｅｐｌａｃｅ−ｔｅｍｐｌａｔｅ＝（（０  １６０  ３２０）（００１）（０１１））である。
サーチテンプレートのオフセットデータ（０  ４８０  ９６０  １４４０）は、サーチデータに示されるリズムパターンをカレントパターン内からサーチする際のオフセット量、すなわちサーチデータが示すリズムパターンが存在すべきカレントパターン中の位置を示す。誤差範囲データ（２０  ２０  ２０  ２０）はサーチデータの許容誤差範囲を示す。従って、リズムパターンがサーチデータ（０  ２４０  ３６０  ４８０）に正確に一致しなくても、誤差範囲データを含むサーチデータ（０±２０  ２４０±２０  ３６０±２０  ４８０±２０）＝（４６０〜２０  ２２０〜２６０  ３４０〜３８０  ４６０〜２０）に該当するようなリズムパターンであれば、変更対象となり、リプレースデータに置き替えられる。
【０１２９】
リプレーステンプレートのリプレースデータ（０  １６０  ３２０）は、置き替えられるリズムパターンを示す。
ベロシティー選択データはリプレースデータのベロシティーとしてサーチデータのどの音符のものを用いるかを示す。すなわち、ベロシティー選択データの『０』はサーチデータの第１番目のデータ（８分音符）のベロシティーを示し、『１』はサーチデータの第２番目のデータ（第１番目の１６分音符）のベロシティーを示し、『２』はサーチデータの第３番目のデータ（第２番目の１６分音符）のベロシティーを示す。そして、ベロシティー選択データのそれぞれの順番はリプレースデータの順番に対応している。
【０１３０】
すなわち、ベロシティー選択データ（００１）の場合には、サーチデータの第１番目のデータ（８分音符）のベロシティーがリプレースデータの第１及び第２番目のデータ（３連音符の第１及び第２番目の音符）に置き替わり、サーチデータの第２番目のデータ（１６分音符）のベロシティーがリプレースデータの第３番目のデータ（３連音符の第３番目の音符）に置き替わることとなる。
【０１３１】
ドラム音選択データはリプレースデータのドラム音としてサーチデータのどの音符のものを用いるかを示す。すなわち、ドラム音選択データの『０』はサーチデータの第１番目のデータ（８分音符）のドラム音を示し、『１』はサーチデータの第２番目のデータ（第１番目の１６分音符）のドラム音を示し、『２』はサーチデータの第３番目のデータ（第２番目の１６分音符）のドラム音を示す。そして、ドラム音選択データのそれぞれの順番はリプレースデータの順番に対応している。
【０１３２】
すなわち、ドラム音選択データ（０１１）の場合にはサーチデータの第１番目のデータ（８分音符）のドラム音がリプレースデータの第１番目のデータ（３連音符の第１番目の音符）のドラム音に置き替わり、サーチデータの第２番目のデータ（１６分音符）のドラム音がリプレースデータの第２及び第３番目のデータ（３連音符の第２及び第３番目の音符）のドラム音に置き替わることを示す。
【０１３３】
図１８は、サーチテンプレート（（０  ４８０  ９６０  １４４０）（０  ２４０  ３６０  ４８０）（２０  ２０  ２０  ２０））及びリプレーステンプレート（（０  １６０  ３２０）（００１）（０１１））に応じて、図１８（Ａ）のカレントパターンが図１８（Ｂ）〜（Ｅ）のように順番にトランスフォーマー処理される様子を示す図である。
まず、図１８（Ａ）のカレントパターンは、各オフセットデータ（０  ４８０９６０  １４４０）の位置からサーチデータ（０  ２４０  ３６０）に対応する４分音符相当のリズムパターンが存在するので、その中のいずれか一つがランダムに置き替えられる。この例では、図１８（Ｂ）のようにサーチデータ（０  ２４０  ３６０）に対応する第４番目のリズムパターンがリプレースデータ（０１６０  ３２０）の３連音符に置き替えられ、次の時点では図１８（Ｃ）のように第２番目のリズムパターンが３連音符に置き替えられ、さらに次の時点では図１８（Ｄ）のように第１番目のリズムパターンが３連音符に置き替えられ、最後に図１８（Ｅ）のように第３番目のリズムパターンが３連音符に置き替えられることによって、図１８（Ａ）のリズムパターンは図１８（Ｅ）のような３連音符のリズムパターンになる。
【０１３４】
図１９（Ａ）及び図１９（Ｂ）は、サーチテンプレート（（０  ４８０  １４４０）（０  ２４０  ３６０  ４８０）（２０  ２０  ２０  ２０））及びリプレーステンプレート（（０  １６０  ３２０）（００１）（０１１））に応じて、図１８（Ａ）のカレントパターンがトランスフォーマー処理される様子を示す図である。
図１９（Ａ）のカレントパターンは、図１８（Ａ）と同じであり、各オフセットデータ（０  ４８０  ９６０  １４４０）の位置からサーチデータ（０  ２４０  ３６０）に対応するリズムパターンが存在する。ところが、図１９（Ａ）では、サーチテンプレートのオフセットデータが（０  ４８０  １４４０）であり、図１８の場合のオフセットデータから『９６０』が削除された状態となっている。従って、この場合は、図１９（Ｂ）のようにサーチデータ（０  ２４０  ３６０）に対応する第３番目のリズムパターンだけがリプレースデータ（０  １６０  ３２０）の３連音符に置き替えられることなく、元の（０  ２４０  ３６０）のリズムパターンを維持することとなる。
【０１３５】
図１９（Ｃ）及び図１９（Ｄ）は、サーチテンプレート（（０  ４８０  ９６０  １４４０）（０  ２４０  ３６０  ４８０）（２０  ２０  ２０  ２０））及びリプレーステンプレート（（０  １６０  ３２０）（００１）（０１１））に応じて、図１９（Ｃ）のカレントパターンがトランスフォーマー処理される様子を示す図である。
図１９（Ｃ）のカレントパターンは、図１８（Ａ）と異なり、各オフセットデータ『０』、『４８０』、『９６０』を基準として、サーチデータ（０  ２４０３６０）に対応するリズムパターンは存在しないが、最後のオフセットデータ『１４４０』を基準としてサーチデータ（０  ２４０  ３６０）に対応するリズムパターンが存在する。従って、この例では、図１９（Ｄ）のようにサーチデータ（０  ２４０  ３６０）に対応する第４番目のリズムパターンだけがリプレースデータ（０  １６０  ３２０）の３連音符に置き替えられ、これ以外は元のリズムパターンを維持している。
【０１３６】
図２０は、ドラム音選択データ及びベロシティー選択データに応じて、リズムパターンのドラム音及びベロシティーがどのように置き替えられるのか、その様子を示す図である。
図２０（Ａ）及び図２０（Ｂ）において、サーチテンプレート（（０  ４８０９６０  １４４０）（０  ２４０  ３６０  ４８０）（２０  ２０  ２０  ２０））及びリプレーステンプレート（（０  １６０  ３２０）（００１）（０１１））は、図１８の場合と同じである。従って、図２０（Ａ）のリズムパターンは図２０（Ｂ）のような３連音符のリズムパターンになる。
【０１３７】
このとき、ドラム音選択データは（０１１）であるからサーチデータの第１番目のデータ（８分音符）のドラム音がリプレースデータの第１番目のデータ（３連音符の第１番目の音符）のドラム音に置き替わり、サーチデータの第２番目のデータ（１６分音符）のドラム音がリプレースデータの第２及び第３番目のデータ（３連音符の第２及び第３番目の音符）のドラム音に置き替わることとなる。この様子を図２０（Ａ）及び（Ｂ）の第１及び第２番目のリズムパターンが３連音符に置き替わる部分に矢印で示した。
同様に、ベロシティー選択データは（００１）であるからサーチデータの第１番目のデータ（８分音符）のベロシティーがリプレースデータの第１及び第２番目のデータ（３連音符の第１及び第２番目の音符）に置き替わり、サーチデータの第２番目のデータ（１６分音符）のベロシティーがリプレースデータの第３番目のデータ（３連音符の第３番目の音符）に置き替わることとなる。この様子を図２０（Ａ）及び（Ｂ）の第３及び第４番目のリズムパターンが３連音符に置き替わる部分に矢印で示した。
【０１３８】
図２０（Ｃ）及び図２０（Ｄ）において、サーチテンプレートは（（０  ４８０  ９６０  １４４０）（０  ２４０  ３６０  ４８０）（２０  ２０  ２０  ２０））であり、前述の場合と同じであるが、リプレーステンプレートは（（０１６０  ３２０）（００１）（＊＊＊））であり、ドラム音選択データだけが前回の場合と異なっている。この場合、ドラム音選択データが異なるだけであり、図２０（Ｃ）のリズムパターンは前述のトランスフォーマー処理の場合と同様に図２０（Ｄ）のような３連音符のリズムパターンに置き替わる。
【０１３９】
このとき、ドラム音選択データの（＊＊＊）は、（０００）、（１１１）、（２２２）、（０１２）・・・のように『０』と『１』と『２』の組み合わせが順番に現れるようになっている。
従って、図２０（Ｃ）の第１番目のリズムパターンでは、サーチデータの第１番目のデータ（８分音符）のドラム音がリプレースデータの第１、第２及び第３番目のデータ（３連音符の第１、第２及び第３番目の音符）のドラム音に置き替わる。
第２番目のリズムパターンでは、サーチデータの第２番目のデータ（１６分音符）のドラム音がリプレースデータの第１、第２及び第３番目のデータ（３連音符の第１、第２及び第３番目の音符）のドラム音に置き替わる。
【０１４０】
第３番目のリズムパターンでは、サーチデータの第３番目のデータ（１６分音符）のドラム音がリプレースデータの第１、第２及び第３番目のデータ（３連音符の第１、第２及び第３番目の音符）のドラム音に置き替わる。
第４番目のリズムパターンでは、サーチデータの第１番目のデータ（８分音符）のドラム音がリプレースデータの第１番目のデータ（３連音符の第１番目の音符）のドラム音に、サーチデータの第２番目のデータ（１６分音符）のドラム音がリプレースデータの第２番目のデータ（３連音符の第２番目の音符）のドラム音に、サーチデータの第３番目のデータ（１６分音符）のドラム音がリプレースデータの第３番目のデータ（３連音符の第３番目の音符）のドラム音に、それぞれ置き替わる。
この様子を図２０（Ｃ）及び（Ｄ）の各リズムパターンが３連音符に置き替わる部分に矢印で示した。
【０１４１】
図２１は、図２のディスプレイ２９の表示画面の表示例を示す図である。
バンク表示部２９Ａは、現在のバンクがハードディスク装置２４のどのバンクであるかを示すものである。図では、現在のバンクはバンクＡであることを示している。
このバンク表示部２９Ａの下には、現在のカレントパターンの状態を示す部分がある。
この部分は、ドラム音名表示部２９Ｂと、現発音表示部２９Ｃと、カレントパターン表示部２９Ｄと、現在位置表示部２９Ｅとから構成される。
ドラム音名表示部２９Ｂには、鍵盤１Ａに対応したドラム音名が表示されている。
現発音表示部２９Ｃは、各ドラム音の右側に設けられた円形状の点灯部で構成され、現在発音中のドラム音に対応する点灯部のみが点灯するようになっている。
カレントパターン表示部２９Ｄは、１小節分のリズムパターンを正方形状の点灯部で表示するようになっている。図では、バスドラム、スネアドラム及びハイハットのクローズドのリズムパターンがそれぞれ表示されている。
現在位置表示部２９Ｅは、１小節中の現在発音中の位置を示すものである。
【０１４２】
このような表示をすることによって、発音されるドラム音や現在のカレントパターンの内容を一目で認識することができる。また、このカレントパターンが変形された場合でもその変形内容を簡単に把握できる。この場合には、変形前のパターンと変形後のパターンとを同時に表示するようにすればよい。さらに、図５のような複雑度を同時に表示してもよい。
【０１４３】
なお、上述の実施例では、リズム伴奏を例に説明したが、これに限らず、ベースやコードバッキング等の伴奏に本発明を適用してもよい。例えば、データベースに多数のベースパターンと、多数のバッキングパターンを記憶させておき、操作子の操作によって、各パート毎にいずれかのパターンを選択するようにすればよい。すなわち、ベースパート、パッキングパート１、２、３、・・・（各バッキングパートは音色が異なる）のそれぞれの操作子を設け、ベースパートの操作子を操作したらデータベースからベースパターンのいずれかを選択し、パッキングパート１の操作子を操作したらデータベースからバッキングパターンのいずれかを選択するといった具合にすればよい。
【０１４４】
また、上述の実施例では、フラグ対応処理２（アンドゥ処理、フィルイン処理、バリエーション処理、トランスフォーマー処理）を小節線までの演奏が終了した時点で実行する場合について説明したが、これら各処理に対応するキーが操作された時点で直ちにその処理を実行するようにしてもよい。
【０１４５】
図１５のステップ５２のアクセント処理では、ノートオンされているノートナンバに対応するベロシティをそのままノートオンベロシティに差し替えて、アクセントとしているが、上述のサーチテンプレートやリプレーステンプレートのようなアクセントテンプレート（例えば、タイミング毎にどれくらいのベロシティに差し替えるかを示したパターン）を複数容易しておき、これらをノートオンされているノートナンバに対応するベロシティによって選択し、選択されたアクセントテンプレートのベロシティをノートオンベロシティに差し替えるようにしてもよい。
【０１４６】
上述の実施例では、鍵盤楽器の鍵盤を各種機能の割当てキーとして使用したが、パソコン側のディスプレイ上にスイッチを表示させ、そのスイッチを指定することによって各種機能を指定するようにしてもよい。また、鍵盤以外にもドラムパッドのようなものを用いてもよいし、単なるスイッチでもよい。さらに、上述の実施例では、全ての機能を鍵盤で指定する場合について説明したが、ロック機能はフットスイッチに割り当てる等のようにして他の操作子と組合せて各種機能を指定するようにしてもよい。
【０１４７】
また、実施例では、電子楽器とパソコンとをＭＩＤＩ回線で接続して自動伴奏装置を構成したが、単体の電子楽器に適用してもよい。
上述の実施例では、トランスフォーマーの形容詞を指定するときに、１つのキーに対して２種類の形容詞を割当て、それをベロシティの値に応じて切り換えるようにしたが、形容詞による変形の度合いをベロシティの値に応じて段階的に切り換えるようにしてもよい。また、１つのキーに対して１つの形容詞を割り当ててもよい。
【０１４８】
上述の実施例では、形容詞のシーケンスデータとして４小節分を割当て、この４小節の演奏が終了した形容詞のシーケンスも終了するが、シーケンス読出終了の指示がない場合には、その４小節分のシーケンスデータを繰り返し実行するようにしてもよい。また、シーケンスデータは４小節分に限定されず、何小節分でもよいことはいうまでもない。さらに、形容詞の指定は小節線のタイミングでなくてもよい。
【０１４９】
また、トランスフォーマーによりリズムパターンを変形させる際に、現在のリズムパターンの内容に応じて異なる変形処理を施すようにしてもよい。例えば、トランスフォーマーによってドラム音を追加する、あるいは差し替えるような変形のとき、現在のリズムパターンがどのようなパターンであるか判断し、１６ビート系のリズムパターンである場合と、８ビート系である場合とで、追加するドラム音や差し替えるパターンを異ならせるようにしてもよい。
【０１５０】
次に本発明の他の実施例について説明する。他の実施例においては、トランスフォーマー指示があると直ちにトランスフォーマーによるパターンの変形がなされる。このとき、リアルタイムでパターンの変形処理を行うと、処理時間がかかるため、自動伴奏がもたつく可能性がある。そこで、他の実施例においてはＣＰＵによる処理の空き時間を利用して、次回のトランスフォーマーの指定に備え、予め全てのトランスフォーマー種類に対する変形処理をカレントパターンに施しておき、トランスフォーマー指示が発生したときは変形済みのパターンと差し替える処理を行うようにして、自動伴奏がもたつくのを防ぐようにしている。なお、他の実施例においては前述の図２における電子楽器１Ｆが全ての処理を行うものとして説明するが、前述の実施例と同様、電子楽器とパソコンというような構成をとってもいいことはもちろんである。
【０１５１】
前述の実施例においてはトランスフォーマー機能が電子楽器１Ｆの鍵盤（＃を除くＡ２〜Ｄ２）に割り当てられており、トランスフォーマーキーを操作すると、操作されたキーのベロシティに応じて該キーに割り当てられた２つのトランスフォーマー種類（形容詞）のうちの何れかが選択され、選択されたトランスフォーマー種類に応じてカレントパターンが変形されるようになっていた。他の実施例においては、鍵盤は通常の演奏用鍵盤として動作し、パネルスイッチに１０種類の形容詞に対応したトランスフォーマースイッチや、その他機能スイッチが配置されているものとする。もちろん、トランスフォーマー種類は１０種類に限るものではなく、何種類でもよい。
【０１５２】
他の実施例においては、マルチタスク方式で処理が行われる。各種機能はそれぞれ個別のタスクにより実行され、各タスク間の動作をモニタプログラムが管理する。ここでは、スイッチ検出回路１５によって検出されたパネルスイッチの状態に応じて各種タスクを実行させるパネル管理タスク、パネルスイッチの操作によってトランスフォーマー指示が行われた場合に指示されたトランスフォーマー種類に応じてカレントパターンを変化させるトランスフォーマータスク、所定周期で実行されカレントパターンが読み出される自動伴奏タスク、ＣＰＵの処理の空き時間を利用してパターンの変形処理を行う変形タスクの４つのタスクに関して詳細に説明する。その他のタスク（たとえば鍵盤関連の処理を行うタスク等）については、詳細説明は省略する。
【０１５３】
図２２はモニタプログラムによって各タスク間の動作を管理するために用いられるタスク制御ブロック（ＴＣＢ）である。ここでは説明の便宜上、表形式でタスク制御ブロックを表示している。図２２において、左端にはタスク名が記されており、処理の優先度の高い順に上から並んでいる。その右側にはタスクの動作状態を示すステータスが示されている。このステータスは、タスクが動作中であることを示す「ラン」、タスクが動作する準備ができている（順番がくればいつでも動作できる）状態を示す「レディ」、動作していない状態を示す「ウェイト」の３つからなる。モニタプログラムは、ステータスが「レディ」となっているタスクの内の、優先順位がもっとも高いタスクを「ラン」状態とし、いずれか１つのタスク処理を選択的に実行するようになる。したがって、この図２２からわかるように、この実施例で説明する４つのタスクは、パネル管理タスク、トランスフォーマータスク、自動伴奏タスク、変形タスクの順に優先度が付与されている。
【０１５４】
ステータスの右側にはアドレスや、処理中のレジスタ等の再開用データが示されている。これは、あるタスクの動作中にタイマ割り込み等により、それまで処理をしていたタスクの処理を中断して他のの処理へ移行しなければならないとき、その後の復帰時に備えて、中断したアドレスや、レジスタの内容等をタスク制御ブロックに記録しておくものである。
【０１５５】
次に図２３から図２８を参照して、ＣＰＵ１１による処理のフローチャートを説明する。図２３および図２４は各タスク間の動作を管理するモニタプログラムである。このモニタプログラムはタイマ１９から割り込み信号が発生したときや、タスクからＷＡＩＴコール、ＳＴＡＴコールがあった場合に起動される処理である。
【０１５６】
タイマ１１から第１の割り込み信号（所定周期：例えば１０ｍｓ毎）が発生すると、ＣＰＵ１１がいかなる処理（モニタプログラムの処理中あるいはタスク処理中）をしている途中であっても、ステップ８１へと進む。ステップ８１ではそれまでの処理がモニタプログラムであったか否かが判断される。モニタプログラムの処理中であったときは、ステップ８２へと進み、モニタプログラムの処理中アドレス等、復帰に必要な情報を記憶し、ステップ８３でパネル管理タスクのタスク制御ブロックのステートを「レディ」とする。すなわち、タイマ割り込み１がかかると、パネル管理タスクが「レディ」状態となり、後述するステップ８８、ステップ８９でパネル管理タスク（図２５）が再開されるようになる。このようにして、パネル管理タスクはタイマ割り込み１の周期毎に実行されるようになる。ステップ８３の後、ステップ８４へ進み、記憶していたアドレス等の復帰に必要な情報にもとづいて、中断していた位置のモニタプログラムの処理へと復帰する。
【０１５７】
ステップ８１にてＮＯと判断したとき、すなわち、いずれかのタスクの処理中にタイマ割り込みがかかったときは、ステップ８５へ進み、処理中であったタスクの、そのときのアドレスやレジスタ等をタスク制御ブロックの該タスクに対応する領域へと記録し、ステップ８６へ進んで、処理中だったタスクのステータスを「レディ」とし、ステップ８７でパネル管理タスクのステータスを「レディ」とする。そして、ステップ８８へと進む。
【０１５８】
ステップ８８では、タスク制御ブロックにステータスが「レディ」状態のタスクがあるか否かをチェックする。この判断がＹＥＳとなるまで、ステップ８８の処理を繰り返す。この間に、前述のタイマ割り込み１が発生したときは、ステップ８１、８２、８３、８４を介して、パネル管理タスクのステータスが「レディ」とされるので、ステップ８８の判断でＹＥＳとなる。ステップ８８でＹＥＳと判断されたときは、ステップ８９へ進んで「レディ」状態にあるタスクの中で、優先順位が最も高いタスク（図２２の表においては上側に記載されているタスク）のステータスを「ラン」とし、タスク制御ブロックに記憶された再開用のアドレス、レジスタ等にもとづいて該タスクの処理を再開し、モニタプログラムの処理からタスクの処理へと移行する。
【０１５９】
タイマ１１から第２の割り込み信号（自動伴奏のテンポに応じた所定周期：例えば四分音符あたり４８０回の割合）が発生すると、ＣＰＵ１１がいかなる処理（モニタプログラムの処理中あるいはタスク処理中）をしている途中であっても、ステップ９０へと進む。ステップ９０ではそれまでの処理がモニタプログラムであったか否かが判断される。モニタプログラムの処理中であったときは、ステップ９１へと進み、モニタプログラムの処理中アドレス等、復帰に必要な情報を記憶し、ステップ９２で自動伴奏タスクのタスク制御ブロックのステートを「レディ」とする。すなわち、タイマ割り込み２がかかると、自動伴奏タスクが「レディ」状態となり、後述するステップ８８、ステップ８９で自動伴奏タスク（図２６）が実行される。このようにして、自動伴奏タスクはタイマ割り込み２の周期毎に実行されるようになる。ステップ９２の後、ステップ９３へ進み、記憶していたアドレス等の復帰に必要な情報にもとづいて、中断していた位置のモニタプログラムの処理へと復帰する。
【０１６０】
ステップ９０にてＮＯと判断したとき、すなわち、いずれかのタスクの処理中にタイマ割り込みがかかったときは、ステップ９４へ進み、処理中であったタスクの、そのときのアドレスやレジスタ等をタスク制御ブロックの該タスクに対応する領域へと記録し、ステップ９５へ進んで、処理中だったタスクのステータスを「レディ」とし、ステップ９６で自動伴奏タスクのステータスを「レディ」とする。そして、ステップ８８へと進む。
【０１６１】
また、詳細は後述するが、各タスクの処理において「ＷＡＩＴコール」が発生したときは、ステップ９７へ進む。ステップ９７においては、依頼タスク（ＷＡＩＴコールを発生させたタスク）における、処理中のアドレス、レジスタ等をタスク制御ブロックに記録し、次回の再開に備える。そして、ステップ９８で依頼タスクのステータスを「ウェイト」とし、ステップ８８へと進む。
【０１６２】
また、各タスクの処理において「ＳＴＡＴコール」が発生したときは、ステップ９９へ進む。ステップ９９ではそれまで処理中の（すなわちＳＴＡＴコールを発生させた）タスクのアドレスやレジスタ等をタスク制御ブロックに記録し、次回の再開に備える。そしてステップ１００で処理中のタスクのステータスを「レディ」とし、ステップ１０１で指定タスクのステータスを「レディ」とする。そしてステップ８８へと進む。
【０１６３】
ここで、前述したようにタイマ１９による割り込み信号１の発生があり、ステップ８３またはステップ８７にてパネル管理タスクのステータスが「レディ」状態となり、ステップ８８を介してステップ８９でパネル管理タスクが「ラン」状態となった場合、図２５のパネル管理タスクが実行される。このパネル管理タスクに限らず、すべてのタスクには「ＷＡＩＴコール」を発生する処理があり、この処理の後にタスクの処理を終了して「ウェイト」状態となる。従って、ここではＷＡＩＴコール処理の次からパネル管理タスクの処理が再開するものとして説明する。
【０１６４】
まずステップ１１１でパネルスキャン処理を実行する。スキャンした結果、パネルスイッチのオンイベントがあったか否かをステップ１１２で判断し、イベントがあったときはステップ１１３へ進み、イベントバッファにパネルスイッチのオンのイベントを書き込む。イベントがなかったときはステップ１１７へと進む。ステップ１１４では書き込んだイベントが何れかのトランスフォーマースイッチのオンイベントか否かを判断し、トランスフォーマースイッチのオンイベントであったら、ステップ１１５へ進んでトランスフォーマータスクに対してＳＴＡＴコールを発生する。この結果、図２３のステップ９９へ処理が進み、ステップ９９、１００を介してステップ１０１でトランスフォーマータスクのステータスが「レディ」となる。
【０１６５】
その後ステップ１１７へ進んでＷＡＩＴコールを発生し、その結果、図２３のステップ９７へ進んで、ステップ９８においてこのパネル管理タスクは「ウェイト」状態となる。ステップ１１４でＮＯと判断したときはステップ１１６へ進んでその他のタスクに対してＳＴＡＴコールを発生し、その結果、図２３のモニタプログラムのステップ１０１にてその他のタスクのステータスが「レディ」となる。
【０１６６】
次に、前述したようにタイマ１９による割り込み信号２の発生があり、ステップ９２またはステップ９６にて自動伴奏タスクのステータスが「レディ」状態となり、ステップ８８を介してステップ８９で自動伴奏タスクが「ラン」状態となった場合、図２６の自動伴奏タスクが実行される。前述したパネル管理タスクと同様に、ＷＡＩＴコール処理（ステップ１２３）の次からこの自動伴奏タスクの処理が再開するものとして説明する。
【０１６７】
まずステップ１２１で自動伴奏の走行状態を示すランフラグＲＵＮ（図示しないその他のタスクにて１又は０の設定される）の値が１であるか否かを判断し、１（ＹＥＳ）である場合はステップ１２２へ進み、自動伴奏処理を行う。この自動伴奏処理は、前述の図１４における処理とほぼ同様の処理であるため、詳細説明は省略するが、カレントパターンのデータを、１クロック分読み出す処理である。その後ステップ１２３へ進んでＷＡＩＴコールを発生し、その結果、図２３のステップ９７へ進んで、ステップ９８においてこの自動伴奏タスクは「ウェイト」状態となる。ランフラグＲＵＮの値が１でなかった（ＮＯ）ときもステップ１２３へと進む。
【０１６８】
次にステップ１１５、そしてモニタプログラムのステップ９９、１００、１０１、８８、８９を介して、トランスフォーマータスクが起動された場合について説明する。前述したパネル管理タスクと同様に、ＷＡＩＴコール処理（ステップ１４０）の次からトランスフォーマータスクの処理が再開するものとして説明する。まずステップ１３１でイベントバッファをチェックする。その結果、トランスフォーマースイッチのオンイベントがイベントバッファに記憶されていたら、ステップ１３２でＹＥＳと判断され、ステップ１３３へと進む。
【０１６９】
ステップ１３３ではイベントバッファに記憶されているトランスフォーマー種類（＝形容詞）を得て、イベントバッファのトランスフォーマーイベントをクリアする。そして、ステップ１３４で該トランスフォーマー種類の変形済みパターンが変形パターンバッファに記憶されているか否かを判断し、記憶されている（ＹＥＳ）ときは、ステップ１３５で該トランスフォーマー種類の変形済みパターンを選択し、カレントパターンをこの変形済みパターンに差し換える。これにより、見かけ上トランスフォーマー処理が実行されたことになるが、実際には読み出すパターンを差し換えているだけであるので、処理には多くの時間を必要とせず、自動伴奏がもたつくことがない。
【０１７０】
一方、ステップ１３４で変形済みパターンが記憶されていない（ＮＯ）と判断されたときは、後述する変形タスクによる変形済みパターン作成処理が終了していない場合であり、この時点でトランスフォーマー処理を実行し、指定されたトランスフォーマー種類に従ってカレントパターンが変形される。従って、この場合はトランスフォーマースイッチが操作された時点で実際のトランスフォーマー処理が実行されるので、前述したステップ１３５におけるパターン差し替え処理よりも多くの処理時間を必要とし、自動伴奏が多少もたつく可能性もある。
【０１７１】
その後、ステップ１３７で変形パターンバッファをクリアし、ステップ１３８でトランスフォーマーフラグＴＲＡＮＳを１にセットする。このトランスフォーマーフラグＴＲＡＮＳはトランスフォーマースイッチが操作されたことを示すフラグであり、後述する変形タスクにて利用される。そして、ステップ１３９で変形タスクに対してＳＴＡＴコールを発生する。この結果、図２３のステップ９９へ処理が進み、ステップ９９、１００を介してステップ１０１で変形タスクのステータスが「レディ」となる。
【０１７２】
そして、ステップ１３１へ戻り、イベントバッファをチェックし、ステップ１３２で再びトランスフォーマースイッチのオンイベントの有無を判断する。この場合、ステップ１３３でバッファのトランスフォーマーイベントがクリアされているので、ＮＯと判断され、ステップ１４０へ進み、ＷＡＩＴコールを発生する。そして、図２３のステップ９７へと進み、その結果、トランスフォーマータスクは「ウェイト」状態となる。
【０１７３】
図２３のステップ８８、８９にて変形タスクが優先順位最高のレディタスクであったとき、すなわち、変形タスクよりも優先度の高いパネル管理タスク、トランスフォーマータスク、自動伴奏タスク等が全て「ウェイト」状態で、かつ変形タスクが「レディ」状態であるときは、図２８の変形タスクが実行される。ステップ１５１ではトランスフォーマーフラグＴＲＡＮＳが１であるか否かを判断し、１（ＹＥＳ）であるときはステップ１５２で全トランスフォーマー種類の変形済みパターンの作成が終了したか否かを判断する。全ての種類において変形済みパターンの作成が終了していない（ＮＯ）ときには、ステップ１５３で次の（全く変形済みパターンが作成されていないときは最初の）種類に従ったパターンを変形させるトランスフォーマー処理を実行し、変形済みパターンを作成する。そして、ステップ１５４で作成した変形済みパターンを変形パターンバッファへと保管し、ステップ１５１へと進む。一方、ステップ１５２でＹＥＳと判断されたときは、ステップ１５５でトランスフォーマーフラグＴＲＡＮＳをクリアして、ステップ１５１へと戻る。ステップ１５１でＮＯと判断されたとき、すなわち、ステップ１５５でトランスフォーマーフラグＴＲＡＮＳがクリアされた後にステップ１５１へと進んだときは、ステップ１５６へ進み、ＷＡＩＴコールを発生する。その結果、図２３のモニタプログラムのステップ９７、９８において変形タスクが「ウェイト」状態となる。
【０１７４】
以上のようにしてトランスフォーマースイッチが操作されたとき、変形済みパターンが既に作成されていた場合は、カレントパターンが変形済みパターンに差し替えられる。この変形済みパターンの作成はパネル管理タスク、トランスフォーマータスク、自動伴奏タスクよりも優先度の低い変形タスクにより実行される。すなわち、変形タスクの処理中であっても、これら優先度の高いタスクが「レディ」状態となったときには、変形タスクの処理は中断され、優先度の高いタスクの処理が実行される。よって、変形済みパターンの作成はＣＰＵ１１の空き時間になされることになり、自動伴奏処理には悪影響を及ぼさない。
【０１７５】
変形済みパターンの作成が終了する前に、次のトランスフォーマーの指示が発生することもあるが、この場合はトランスフォーマータスク内で変形処理が実行されるため、多少の自動伴奏処理のもたつきが発生することもあり得るが、あまり頻繁にトランスフォーマーの指示をしなければ、この問題はあまり生じない。また、ＣＰＵの処理速度が向上すれば、変形済みパターンの作成に要する時間は短縮され、全てのトランスフォーマー種類における変形済みパターンが作成されている可能性が高くなる。
【０１７６】
なお、変形タスクにおいて全てのトランスフォーマー種類における変形済みパターンを作成するようにしたが、指示される可能性の高い、一部のトランスフォーマー種類のみについて変形済みパターンを作成するようにしてもよい。指示される可能性の高いトランスフォーマー種類は、それまでのトランスフォーマー種類の指定状況を元に決定すればよい。また、全種類の変形済みパターンを作成する場合であっても、指示される可能性の高い種類順に変形済みパターンを作成していくようにすると、全種類の変形済みパターンの作成が終了していない場合であっても、新たに指定された種類の変形済みパターンが既に作成されている可能性が高くなる。
【０１７７】
また、トランスフォーマースイッチの操作があった時点で伴奏パターンを変更するようにしたが、操作のあった小節の次の小節の先頭や、操作のあった時点の次の拍等にてパターンを変更するようにしてもよい。また、実施例は１つのＣＰＵで伴奏タスクと変形タスクの処理を行うようにしたが、それぞれ別のＣＰＵによって処理するようにしてもよい。
【０１７８】
【発明の効果】
以上のようにこの発明によれば、変更操作が簡単かつ容易に行えるとともに、リアルタイムで伴奏パターンを変更しても自動伴奏がもたつかないという効果がある。
【図面の簡単な説明】
【図１】図２の電子楽器及びパソコンが伴奏パターン作成装置として動作する場合の機能ブロックを示す図である。
【図２】鍵盤及び音源回路を内蔵した電子楽器と、伴奏パターンのエディット処理を行うパソコンとの詳細構成及び両者間の接続関係を示すハードブロック図である。
【図３】図２のパソコン側のＲＡＭ及びハードディスク装置のデータ構成を示す図である。
【図４】パターンテーブル領域に記憶されているアドレス変換用のパターンテーブルの内容を示す図である。
【図５】ディスプレイの表示例を示す図である。
【図６】図２の鍵盤に割り当てられた各種機能の一例を示す図である。
【図７】図２の電子楽器のＣＰＵが実行する処理ルーチンの一例を示す図であり、図７（Ａ）はメインルーチンの一例を、図７（Ｂ）は図７（Ａ）のキー処理の詳細を、図７（Ｃ）は図７（Ａ）のＭＩＤＩ受信処理の詳細を示す。
【図８】図２のパソコンのＣＰＵが実行する処理ルーチンの一例を示す図であり、図８（Ａ）はメインルーチンの一例を、図８（Ｂ）は図８（Ａ）のＭＩＤＩ受信処理の詳細を示す。
【図９】受信したＭＩＤＩメッセージがノートナンバＥ０〜Ｂ１，Ｃ２，Ｄ２〜Ａ２（＃を除く），Ｂ２，Ｃ３，Ｄ３〜Ｆ３（＃を除く）に対応したノートオンメッセージの場合に行われる図８（Ｂ）の処理の詳細を示す図であり、図９（Ａ）はノートナンバＥ０〜Ｂ１のパターンアサインエリアキーの場合を、図９（Ｂ）はノートナンバＣ２のアサインキーの場合を、図９（Ｃ）はノートナンバＤ２〜Ａ２（＃を除く）のトランスフォーマーキーの場合を、図９（Ｄ）はノートナンバＢ２のアンドゥキーの場合を、図９（Ｅ）はノートナンバＣ３のスタート／ストップキーの場合を、図９（Ｆ）はノートナンバＤ３〜Ｆ３（＃を除く）のバンクＡ，Ｂ，Ｃキーの場合を示す。
【図１０】受信したＭＩＤＩメッがノートナンバＧ３，Ｃ＃２，Ｄ＃２，Ｆ＃２，Ｇ＃２，Ａ＃２，Ｃ＃３に対応したノートオンメッセージの場合に行われる図８（Ｂ）の処理の詳細を示す図であり、図１０（Ａ）はノートナンバＧ３のロックキーの場合を、図１０（Ｂ）はノートナンバＣ＃２，Ｄ＃２のバリエーション１、２キーの場合を、図１０（Ｃ）はノートナンバＦ＃２のリプレースキーの場合を、図１０（Ｄ）はノートナンバＧ＃２のインサートキーの場合を、図１０（Ｅ）はノートナンバＡ＃２のクォンタイズキーの場合を、図１０（Ｆ）はノートナンバＣ＃３のデリートドラムキーの場合を示す。
【図１１】受信したＭＩＤＩメッセージがノートナンバＤ＃３，Ｆ＃３，Ｇ＃３，Ａ３〜Ｅ５に対応したノートオンメッセージの場合に行われる図８（Ｂ）の処理の詳細を示す図であり、図１１（Ａ）はノートナンバＤ＃３のデリートコンポーネントキーの場合を、図１１（Ｂ）はノートナンバＦ＃３のアクセントキーの場合を、図１１（Ｃ）はノートナンバＧ＃３のフィルインキーの場合を、図１１（Ｄ）はノートナンバＡ３〜Ｅ５のドラムキーの場合を示す。
【図１２】図１１（Ｄ）のフラグ対応処理１の詳細を示す図であり図１２（Ａ）はリプレース処理を、図１２（Ｂ）はインサート処理を、図１２（Ｃ）はデリートドラム処理を、図１２（Ｄ）はデリートコンポーネント処理を示す。
【図１３】受信したＭＩＤＩメッセージがノートナンバＣ２，Ｇ３，Ｆ＃２，Ｇ＃２，Ａ＃２，Ｃ＃３，Ｄ＃３，Ｆ＃３，Ａ３〜Ｅ５に対応したノートオフメッセージの場合に行われる図６（Ｂ）の処理の詳細を示す図であり、図１３（Ａ）はノートナンバＣ２，Ｇ３，Ｆ＃２，Ｇ＃２，Ａ＃２，Ｃ＃３，Ｄ＃３，Ｆ＃３の場合を示し、図１３（Ｂ）はノートナンバＡ３〜Ｅ５の場合を示す。
【図１４】４分音符当たり４８０回の割込みで実行されるタイマ割込処理を示す図である。
【図１５】図１４のステップ３５のＭＩＤＩノートイベント出力処理の詳細を示す図である。
【図１６】図１４のステップ４３のフラグ対応処理２の詳細を示す図であり、図１６（Ａ）はアンドゥ処理を、図１６（Ｂ）はフィルイン復帰処理を、図１６（Ｃ）はバリエーション処理を、図１６（Ｄ）はトランスフォーマー処理を示す。
【図１７】図２のパソコンのＣＰＵが行う図８の「その他の処理」の中の「パターン登録処理」の詳細を示す図である。
【図１８】トランスフォーマー処理によってカレントパターンの内容を変更する演算処理の一例を示す図である。
【図１９】トランスフォーマー処理によってカレントパターンの内容を変更する演算処理の他の例を示す図である。
【図２０】トランスフォーマー処理によってカレントパターンのドラム音及びベロシティーがどのように置き替えられるのか、その様子の概念を示す図である。
【図２１】図２のディスプレイの表示画面の表示例を示す図である。
【図２２】他の実施例におけるタスク制御ブロックを示す図である。
【図２３】他の実施例におけるマルチタスクのモニタ処理のフローチャートを示す図である。
【図２４】他の実施例におけるマルチタスクのモニタ処理のフローチャートを示す図である。
【図２５】他の実施例におけるパネル管理タスク処理のフローチャートを示す図である。
【図２６】他の実施例における自動伴奏タスク処理のフローチャートを示す図である。
【図２７】他の実施例におけるトランスフォーマータスク処理のフローチャートを示す図である。
【図２８】他の実施例における変形タスク処理のフローチャートを示す図である。
【符号の説明】
１…カレントパターンメモリ、２…アサインメモリ、３…アンドゥバッファ、４…退避メモリ、５…データベース手段、６…パターンセレクタ、７…エディット手段、８…形容詞指示手段、９…トランスフォーマー、１０…アンドゥ手段、１Ｆ…電子楽器、１１…マイクロプロセッサユニット（ＣＰＵ）、１２…ＲＯＭ、１３…ＲＡＭ、１４…押鍵検出回路、１５…スイッチ検出回路、１６…表示回路、１７…音源回路、１８…サウンドシステム、１９…タイマ、１Ａ…鍵盤、１Ｂ…パネルスイッチ、１Ｃ…表示部、１Ｄ…ＭＩＤＩインターフェース、１Ｅ…バス、２０…パソコン、２１…マイクロプロセッサユニット（ＣＰＵ）、２２…ＲＯＭ、２３…ＲＡＭ、２４…ハードディスク装置、２５…ディスプレイインターフェース、２６…マウスインターフェース、２７…スイッチ検出回路、２８…タイマ、２９…ディスプレイ、２Ａ…マウス、２Ｂ…パネルスイッチ、２Ｃ…ＭＩＤＩインターフェース、２Ｄ…バス。
【図１】
0003596048.tif 000002
【図３】
0003596048.tif 000003
【図２】
0003596048.tif 000004
【図４】
0003596048.tif 000005
【図５】
0003596048.tif 000006
【図６】
0003596048.tif 000007
【図７】
0003596048.tif 000008
【図８】
0003596048.tif 000009
【図９】
0003596048.tif 000010
【図１０】
0003596048.tif 000011
【図１１】
0003596048.tif 000012
【図１３】
0003596048.tif 000013
【図１２】
0003596048.tif 000014
【図１４】
0003596048.tif 000015
【図１５】
0003596048.tif 000016
【図１６】
0003596048.tif 000017
【図１７】
0003596048.tif 000018
【図１８】
0003596048.tif 000019
【図１９】
0003596048.tif 000020
【図２０】
0003596048.tif 000021
【図２１】
0003596048.tif 000022
【図２２】
0003596048.tif 000023
【図２４】
0003596048.tif 000024
【図２３】
0003596048.tif 000025
【図２５】
0003596048.tif 000026
【図２７】
0003596048.tif 000027
【図２６】
0003596048.tif 000028
【図２８】
0003596048.tif 000029