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