説明

モチーフ演奏装置及びモチーフ演奏方法

【課題】曲の構成要素であるメロディモチーフと自動伴奏とが同期して合奏される。
【解決手段】オートリズム、オートアルペジオ、オートベースの自動伴奏はスタート/ストップスイッチの操作によってスタートするメロディモチーフは、オートリズム、オートアルペジオ、オートベースといった自動伴奏との同期合奏が可能である。「オートモチーフ」はスタート/ストップスイッチの操作によってスタート/ストップする完全な自動伴奏であり、「オート」ではない「モチーフ」はキーボードの操作によってスタート/ストップするモチーフ演奏である。これらの「モチーフ」及び「オートモチーフ」は設定テンポに応じて同期して実行される。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、自動的にモチーフを演奏するモチーフ演奏装置及びモチーフ演奏方法に関する。
【0002】
【従来技術】従来、自動的にメロディ演奏を行う電子楽器が広く知られている。このような自動演奏楽器は、自動演奏のパターンデータを記憶しておき、自動演奏のスタートスイッチの操作に応じて、この自動演奏パターンデータを読み出し、この読み出しデータに応じた楽音を順次生成発音していくものである。
【0003】
【発明が解決しようとする課題】しかしながら、上記自動演奏楽器では、スタートスイッチを押しさえすれば、機械的に自動演奏が始まり、この自動演奏に対し演奏者が演奏をしながら関与することは全くできず、演奏を変化させることは不可能であった。このような自動演奏は1曲分の自動演奏であり、曲の構成要素であるメロディモチーフを演奏するものではなかった。
【0004】本発明は、上述した課題を解決するためになされたものであり、本発明の目的は、曲の構成要素であるメロディモチーフを演奏できるようにすることにより、従来にない変化に富んだ自動演奏を実現することである。そして、1つの発音指示だけでも、演奏内容を変化させることができ、また演奏者が演奏をしながら自動演奏に関与できるようにすることである。
【0005】
【課題を解決するための手段】上記目的を達成するために、本発明においては、複数のメロディ演奏の内容とこの各メロディ演奏のタイミングとを示すメロディモチーフ情報を記憶し、楽音の発音の指示に基づいて、この記憶されたメロディモチーフ情報を読み出して出力するようにした。これにより、曲の構成要素であるメロディモチーフを演奏でき、従来にない変化に富んだ自動演奏を実現できる。1つの発音指示だけでも、演奏内容を変化させることができ、また演奏者が演奏をしながら自動演奏に関与できる。
【0006】自動伴奏の情報を記憶し、読み出し指示に応じて、設定された演奏のテンポに基づいて、自動伴奏の情報を読み出しさせて出力させ、さらに、複数のメロディ演奏の内容とこの各メロディ演奏のタイミングとを示すメロディモチーフ情報を記憶し、読み出しの指示に応じて、上記設定された演奏のテンポに基づいて、記憶されたメロディモチーフ情報を読み出し、上記自動伴奏の出力に同期して出力するようにした。これにより、自動伴奏とモチーフメロディとの合奏を行うことができ、しかも自動伴奏とメロディモチーフとの同期合奏も可能となる。モチーフとは、フレーズ、ピリオド(楽節)、複数のピリオド等までも含む複数音の概念である。モチーフデータは、数音の連続した楽音データの組み合わせよりなる、比較的短かい演奏パターンである。
【0007】
【発明の実施の形態の要約】メロディモチーフは、図4に示すようなフォーマットで、ROM19に記憶され、キーボード13のいずれかのキーオンに応じて読み出される。このメロディモチーフは、図17の下段及び図19R>9に示すように、オートリズム、オートアルペジオ、オートベースといった自動伴奏との同期合奏が可能である。この同期される自動伴奏はスタート/ストップスイッチ38の操作によってスタートまたはストップする(図35ステップ407〜418、段落「0014」「0057」「0067」)。本明細書において、「オートモチーフ」はスタート/ストップスイッチ38の操作によってスタート/ストップする完全な自動伴奏であり、「オート」ではない「モチーフ」はキーボード13の操作によってスタート/ストップするモチーフ演奏である。これらの「モチーフ」及び「オートモチーフ」は設定テンポに応じて同期して実行される(段落「0047」「0071」「0074」「0079」「0094」「0168」)。このオートモチーフとモチーフとは全く同じフローチャートにて実行される(図26〜図3434)。
【0008】
【発明の実施の形態】<アドリブモチーフのデータフォーマット>図1は、ROM19のアドリブモチーフパターンエリア42に記憶されたアドリブモチーフデータの1つのフォーマットを示すものである。このアドリブモチーフパターンエリア42と全く同じものが、RAM20にもアドリブモチーフパターンエリア47として転送記憶されている。このアドリブモチーフは、後述するアドリブモチーフ第1メロディの16ビートのリズムに対応したものであり、ROM19の「000н(нは16進数であることを示す記号)」番地から「3FFн」番地に記憶されている。
【0009】このうち「000н」番地から「020н」番地の前までが、アドリブモチーフスタートアドレスエリア42a(47a)であり、「020н」番地から「060н」番地の前までが、アドリブモチーフアサインエリア42b(47b)であり、「060н」番地から「092н」番地の前までがパターン“0”のアドリブモチーフデータであり、「092н」番地から「0AEн」番地の前までがパターン“1”のアドリブモチーフデータである。
【0010】これ以降同様にして、パターン“2”“3”…のアドリブモチーフデータが続き、最後のパターン“15”のアドリブモチーフデータは「3C6н」番地の前まであり、これ以降「3FFн」番地までは何も記憶されていない。従って、このアドリブモチーフ第1メロディの16ビートのリズムに対応したアドリブモチーフデータは、16種類のアドリブモチーフのパターンデータよりなっている。
【0011】<アドリブモチーフスタートアドレスリスト>上記「000н」番地から「020н」番地の前までのアドリブモチーフスタートアドレスエリア42a(47a)の記憶内容は、図2に示すとおりである。このエリアには、アドリブモチーフデータのパターン“0”からパターン“15”までの夫々につき、記憶されているエリアの上述の先頭番地が記憶されている。1つの先頭番地を記憶するのに2番地分の記憶容量が必要とされる。
【0012】<アドリブモチーフアサインリスト>上記「020н」番地から「060н」番地の前までのアドリブモチーフアサインエリア42b(47b)はキーボード13の各キーに割り当てられたアドリブモチーフのパターンナンバを記憶しているもので、その記憶内容は、図3に示すとおりである。
【0013】メジャクロックの番地には、拍子データが記憶されており、図12に示すように、各拍子に応じたクロック数が4分音符あたり48個のクロック数となるように決められている。このメジャクロックは、通常アドリブモチーフの属するリズムによって決定される。
【0014】オートアルペジオ、オートベース、第1オートリズム(ドラム系)、第2オートリズム(シンバル系)の各番地には、これらの伴奏として用いられるのパターンナンバを記憶している。このオートアルペジオ、オートベース、第1オートリズム、第2オートリズム(以下オートオートモチーフト呼ぶ)にも、アドリブモチーフデータが用いられ、キーボード13のキーオンではなく、スタート/ストップスイッチ38のオンによってスタートされる。リズムディレイは、第1オートリズムのスタートタイムと第2オートリズムのスタートタイムとの間のディレイタイムを示している。なお、これらオートモチーフにメロディ、コード等も含めてもよい。
【0015】キーナンバ24〜72の番地には、キーボード13の各キーに割り当てられるアドリブモチーフのパターンナンバが記憶されている。このパターンナンバが、図1に示すアドリブモチーフのパターンの種類を示している。キーナンバ24〜72は、図10に示すように、キーボード13の各キーを示しており、このうちキーナンバ24〜43はローアキーボード13bを構成し、キーナンバ44〜72はアッパーキーボード13aを構成している。このローアキーボード13b、アッパーキーボード13aの中のフィックスエリアは、各キーに割り当てられたアドリブモチーフのパターンナンバを変更できない固定されたものであり、アサイナブルエリアは、各キーに割り当てられたアドリブモチーフのパターンナンバを変更できるものである。
【0016】<アドリブモチーフエリア指定テーブル41>図7は、ROM19のアドリブモチーフエリア指定テーブル41を示すものであり、上述したアドリブモチーフのそれぞれの記憶エリアのスタートアドレスが記憶されている。このアドリブモチーフは、まずアドリブモチーフ第1メロディ、アドリブモチーフ第2メロディ、アドリブモチーフベース、アドリブモチーフリズム、アドリブモチーフコードの5つよりなっている。この各々のアドリブモチーフは、さらに16ビート、ディスコ…の16個のリズムごとに異なるものが記憶され、合計5×16=80種類のアドリブモチーフが記憶されている。そして、このうちの1種類のアドリブモチーフは、上述した図1に示すように、さらに16個のパターンよりなり、合計80×16=1280個のパターンのアドリブモチーフがROM19に記憶されている。
【0017】このアドリブモチーフ第1メロディ、アドリブモチーフ第2メロディ、アドリブモチーフベース、アドリブモチーフリズム、アドリブモチーフコードの5つの選択は、図17〜図19に示すように、各モード、操作キーボードによって決定される。
【0018】この1280パターンのアドリブモチーフは、上述のアドリブモチーフスタートアドレスリスト、アドリブモチーフアサインリストも含んだ形で、電源投入時に全てRAM20に転送される。これは、書き込み可能なRAM20に転送することで、アドリブモチーフの内容の変更や、キーボード13のアサイナブルエリアに割り当てられているアドリブモチーフのパターンの変更をできるようにしたものである。
【0019】<アドリブモチーフのデータフォーマット>図4、図5、図6は、アドリブモチーフの具体的なデータフォーマットを示すものである。このうち、図4は、アドリブモチーフ第1メロディ、アドリブモチーフ第2メロディ、アドリブモチーフベースのデータフォーマットを示すものである。図5は、アドリブモチーフリズムデータのデータフォーマットを示すものである。図6R>6は、アドリブモチーフコードデータのデータフォーマットを示すものである。
【0020】図4のアドリブモチーフ第1メロディ、アドリブモチーフ第2メロディ、アドリブモチーフベースのアドリブモチーフデータは、演奏パターンに応じた複数の音符データよりなり、音色の変化するところと、先頭番地とには、メロディ音の音色データが記憶されている。音符データは、キーナンバ、ゲートタイム、ベロシティ、ステップタイムの各データよりなっている。音色データは、メロディ音の音色ナンバとステップタイムとの両データよりなっている。
【0021】キーナンバは、キーボード13の各キーを示すナンバであり、音高を示している。ゲートタイムは、キーオンからキーオフまでの時間長を示している。ベロシティはキーボード13の操作キーの操作速度又は操作強度を示すデータである。ステップタイムは、1つ前の音符データのキーオン又は音色データ変化から当該音符データのキーオンまでの時間長を示している。
【0022】音色ナンバは、メロディ音の音色を示すデータであり、図11に示すように、ストリングス(弦)なら「00н」、ブラス(金管)なら「04н」であり、32種類の音色を表す。先頭番地の音色データのステップタイムは「00…0」であり、アドリブモチーフ演奏のスタート後、直ちにこの音色データに応じた音色の設定が行われる。音色の変化するところの音色データのステップタイムは、1つ前の音符データのキーオン又は音色データ変化から音色の変化するタイミングまでの時間長を示している。
【0023】末尾には、リピートデータが記憶されている。リピートデータは、先頭番地まで戻ることを示すコマンドであり、キーオンがされている限り、このアドリブモチーフパターンが繰り返されることになる。このリピートデータは、「11…1」のコマンドと、ステップタイムとよりなっている。このステップタイムは、1つ前の音符データのキーオン又は音色データ変化からリピートのタイミングまでの時間長を示している。この場合のリピートタイミングは、通常1小節の整数倍の時間を費やす。
【0024】図5のアドリブモチーフリズムデータは、リズムパターンに応じた複数のビートデータよりなり、音色の変化するところと先頭番地とには、リズム音の音色データが記憶されている。ビートデータは、ベロシティデータとステップタイムデータとの両データよりなっている。音色データは、対応するローアキーナンバとステップタイムの両データよりなっている。
【0025】ローアキーナンバは、図10に示すように、ナンバ「24」〜「43」のキーを示しており、直接バスドラム、ハイハット等のリズム音色ナンバを示すものではない。しかし、図13に示すROM19のリズム音色テーブル44を用いて、ローアキーナンバがバスドラム、ハイハット等を示すリズム音色ナンバにデコードされる。このときあわせて発音キーナンバもデコード出力される。
【0026】リズム音色ナンバは、図11に示すように、「00н」〜「3Cн」がドラム系の音色を示し、「40н」以上がシンバル系の音色を示している。ドラム系の音色は、白鍵に割り当てられ、シンバル系の音色は、黒鍵に割り当てられており、キーの色に応じてリズムの音色の系統を変えることができるようになっている。むろんこれ以外の割り当て形態を取ってもよい。
【0027】発音キーナンバは、リズム音であっても音高(発音周波数)を変えるものであり、「121」〜「127」のキーナンバが用いられる。このキーナンバは図10に示すローアキーナンバ、アッパーキーナンバの延長上の値であるが、発音周波数は延長上になく、全く異なり、121〜127の7種類とも独立した値をとる。これにより、例えばロータム、ミッドタム、ハイタムにつき、同じリズム音色ナンバを用い、異なる発音キーナンバで対応することができ、音色の情報量を少なくすることができる。むろんロータム、ミッドタム、ハイタムに異なるリズム音色ナンバを割り当ててもよく、これに応じて図5のローアキーナンバをリズム音色ナンバとしてもよい。
【0028】他のベロシティ、ステップタイム等は、上述の図4のアドリブモチーフデータと同じである。なお、図14は、ROM19のキー判別デコーダ45を示すものであり、「24」〜「72」のキーナンバに対する、このデコーダ45の出力により、白鍵、黒鍵、アッパー、ローアの判別が行われる。
【0029】このアドリブモチーフリズムデータには、ゲートタイムが含まれていないが、ステップ197、209、507のバッファ49にセットされる段階では「1」とされる。むろんこれ以外も値でもよい。
【0030】図6のアドリブモチーフコードデータは、コードパターンに応じた複数のコードデータよりなっている。このコードデータは、コードとルート(根音)を示すデータとステップタイムデータとよりなっている。このコードとルートとは、伴奏の内容を示すものであり、ROM19のコードルートテーブル43によって、実際の放音楽音のキーナンバがデコード出力される。
【0031】他のステップタイム等は、上述の図4のアドリブモチーフデータと同じである。なおこのコードルートテーブル43により、逆に実際の操作キーナンバからコードとルートとをデコード出力することもできる。
【0032】このようなアドリブモチーフデータは、図4R>4、図5、図6のフォーマットに限られるものではなく、さらに音量、エフェクト等の楽音データを付加してもよい。逆に図4、図5において、ベロシティを省略して、現在押されているキーのベロシティを使用してもよいし、音色データを省略して、モチーフ演奏時に音色スイッチ33…で選択した音色データをアサインメントメモリ4にセットしてもよい。また音色ナンバとベロシティとをひとまとめにして、トーンナンバの形で記憶するようにしてもよい。さらに図5のアドリブモチーフリズムにゲートタイムを付加したり、図6のアドリブモチーフコードに音色ナンバ、トーンナンバ、ベロシティ、ゲートタイム等を付加したり、逆にルートを省略してアッパーキーボード13aの操作キーの音高に基づいて決める等してもよい。このほか、アドリブモチーフデータの最後のリピートデータを省略することも可能である。
【0033】<全体回路>図8は、モチーフ演奏装置の全体回路図を示すもので、キーボード13の操作内容はキースキャン回路14でスキャンされ、キースイッチメモリ1に記憶される。またパネルスイッチボード15の操作内容はパネルスキャン回路16でスキャンされ、パネルスイッチメモリ2に記憶される。パネルスイッチメモリ2の記憶内容はCPU12によって処理された後パネル表示メモリ3に転送され、この転送内容に基づいてパネル表示回路18により、パネルLED群17の各LEDが点灯又は消灯される。
【0034】《通常の演奏時》通常の演奏時には、キーボード13の操作キーに応じたキーナンバは、CPU12によって、いったんリングバッファ49に書き込まれた後、楽音発生回路24のアサインメントメモリ4に書き込まれて、チャンネル割り当てが行われる。このとき、操作キーの操作速度又は操作圧力を示すベロシティデータと、パネルスイッチボード15で選択されたメロディ音又はリズム音の音色ナンバ(音色データ)もリングバッファ49に書き込まれる。そしてこのベロシティデータと音色ナンバとに基づいてトーンナンバが決定され、アサインメントメモリ4に書き込まれる。
【0035】上記トーンナンバの決定は、図11に基づいて行われる。すなわちメロディ音又はリズム音の音色ナンバは6ビットであり、この6ビットの音色ナンバの下位にベロシティデータの上位2ビットが付加されて、トーンナンバが決定される。従って、同じ音色ナンバでも、ベロシティデータの4つの段階(「00」「01」「10」「11」)に応じて、トーンナンバが変化する。
【0036】もちろん、6ビットの音色ナンバの下位にキーナンバの上位2ビットを付加してトーンナンバとし、キースプリット機能を実現してもよい。さらに、変換ROM等を用いて、ベロシティデータやキーナンバより2ビットデータを得て、これをトーンナンバの下位2ビットとすることもできる。
【0037】リングバッファ49は、図15に示す構成で、音符データがキー操作順に書き込まれていく。この音符データは、キーナンバ、ゲートタイム、ベロシティ、音色ナンバよりなり、これらのデータは図4、図11R>1で述べた通りである。ただしこの場合、1つの音符データは、キーオンについてのものとキーオフについてのものとに分離されており、ゲートタイムは、キーオンに切り換えるコマンド(「11…1(255)」)と、キーオフに切り換えるコマンド(「00…0(0)」)との2つのみである。「1」〜[254」の値を取るときは、キーオンからキーオフまでの時間長を示している。キーナンバの上位には1ビットのオン/オフデータが付加されており、音符データがキーオン(1)に係るものか、キーオフ(0)に係るものかが示される。
【0038】アサインメントメモリ4には、図16に示すように、最高16音の楽音データが書き込み可能であり、16チャンネルの楽音生成系が構成されている。このアサインメントメモリ4にセットされているトーンナンバに応じた波形データ及びエンベロープデータがROM23より読み出され、D−Aコンバータ25を介し、サウンドシステム26より放音出力される。この場合、波形データはキーナンバに応じた速度で読み出される。
【0039】アサインメントメモリ4の各チャンネルエリアには、オン/オフデータ、キーナンバ、ゲートタイム/エンベロープ、ベロシティ、トーンナンバが記憶される。ゲートタイム/エンベロープの番地には、キーオン以降はゲートタイム(キーオンからキーオフまでの時間)がセットされ、キーオフ以降はエンベロープのレベルデータがセットされる。他のオン/オフデータ、キーナンバ、ベロシティ、トーンナンバは、上述した通りである。
【0040】《OFAモード時》OFA(ワンフィンガーアドリブ)モード、即ち各キーの操作で各キーに割り当てられたアドリブモチーフパターンの自動演奏を行うモードには、キーボード13の操作キーに応じたキーナンバは、CPU12によって、各キーに割り当てられたアドリブモチーフパターンのデータがRAM20のアドリブモチーフパターンエリア47より読み出され、いったんリングバッファ49に書き込まれた後、楽音発生回路24のアサインメントメモリ4に書き込まれて、チャンネル割り当てが行われる。このアドリブモチーフデータは、数音の連続した楽音データの組み合わせよりなる、比較的短かい演奏パターンであり、フレーズ、ピリオド(楽節)、複数のピリオド等までも含む概念である。
【0041】このときも、リングバッファ49に書き込まれたアドリブモチーフのベロシティと音色ナンバ(ローアキーナンバ)とに基づいてトーンナンバが決定され、アサインメントメモリ4に書き込まれる。またコードとルート(根音)を示すコードデータは、ROM19のコードルートテーブル43に与えられ、対応する実際の放音楽音のキーナンバが読み出され、いったんリングバッファ49に書き込まれた後、アサインメントメモリ4に書き込まれる。
【0042】《アドリブモチーフ記録時》アドリブモチーフの記録モード時には、キーボード13の操作キーに応じたキーナンバ、ベロシティ、パネルスイッチボード15の選択音色スイッチ33に応じたメロディ音の音色ナンバは、CPU12によって、RAM20のレコードバッファ48に順次書き込まれた後、指定されたキーボード13のキーに割り当てられたアドリブモチーフパターンとして、RAM20のアドリブモチーフパターンエリア47に書き込まれる。レコードバッファ48は、図1515に示すように、リングバッファ49と同じ構成である。
【0043】このときも、コード伴奏については、操作キーに応じたキーナンバが、ROM19のコードルートテーブル43に与えられ、対応するコードとルート(根音)を示すコードデータが読み出されて記録される。またリズム演奏については、操作キーに応じたローアキーナンバがそのまま記録される。
【0044】このアドリブモチーフ記録時においても、通常の演奏と同じく、キーナンバ、コードとルート等が、いったんリングバッファ49に書き込まれた後、アサインメントメモリ4に書き込まれて、楽音の生成放音が行われる。
【0045】またSCI(シリアル コミュニケーション インタフェース)回路10は、外部接続される電子楽器との間で、MIDI(ミュージカル インスツルメンツデジタル インタフェース)仕様の楽音データのインタフェースを行う回路である。このSCI回路10に入力された楽音データは、上述した通常の演奏、アドリブモチーフパターンの自動演奏、アドリブモチーフの記録のいずれも可能である。
【0046】上記SCI回路10へ新たな楽音データの入力があったり、キーボード13よりキースイッチメモリ1へ新たな楽音データの書き込みがあったり、パネルスイッチボード15よりパネルスイッチメモリ2へ新たなメロディ音色ナンバデータやモードデータの書き込みがあったりすると、インタラプト信号INT1、INT3、INT4がCPU12に入力されて、新たな楽音データ、音色ナンバ、モードデータに応じた通常の演奏、アドリブモチーフパターンの自動演奏、アドリブモチーフの記録が行われる。
【0047】またプログラマブルタイマ11からCPU12にもインタラプト信号INT2が入力されるが、このプログラマブルタイマ11は、設定テンポに応じたデータがセットされ、一定時間ごとに上記インタラプト信号INT2がCPU12に与えられ、上記アドリブモチーフパターンの実行、ゲートタイムデータ及びステップタイムデータに応じたカウントが行われる。
【0048】RAM20には、上記アドリブモチーフデータのほか、各種データが記憶され、ROM19には、CPU12が各種処理を行うためのプログラムやデータ等が記憶されている。具体的には、ROM19には、プログラムエリア40の他、上述したアドリブモチーフエリア41、アドリブモチーフパターンエリア42、コードルートテーブル43、リズム音色テーブル44、キー判別デコーダ45等が設けられ、RAM20には、ワーキングRAM46の他、上述したアドリブモチーフパターンエリア47、レコードバッファ48、リングバッファ49等が設けられている。
【0049】また、RAM20内のアドリブモチーフデータやその他のデータ等は、フロッピー(登録商標)ディスク制御回路21を通じてフロッピーディスク22にセーブされたり、逆にロードされたりする。さらに、ブザー28は、ブザードライバ27を介して、CPU12によって放音駆動される。このブザー28は、メトロノームと同じ働きをもち、テンポに応じた一定時間ごとに放音を行うものである。
【0050】<パネルスイッチボード15>図9は、パネルスイッチボード15の各スイッチを示すものである。モードスイッチ31は、ノーマル(NORMAL)、ベース/リズム(BASS/RHYTHM)、オート(AUTO)の各演奏モードをリングシフトで切り換えるものである。ノーマルは、図17左上段に示すように、キーボード13でメロディを演奏する通常の演奏モードであり、ベース/リズムは、キーボード13のアッパーキーボード13aでベースの演奏、ローアキーボード13bでリズムを演奏するモードであり、オートは、アッパーキーボード13aでメロディの演奏、ローアキーボード13bで操作キーのコードとルートの検出が行われ、楽音の放音は行われないモードである。
【0051】OFA(ワンフィンガーアドリブ)スイッチ32は、キーボード13の各キーの操作で各キーに割り当てられたアドリブモチーフパターンの自動演奏を行うモードを指定するものである。
【0052】このOFAモードでは、モードスイッチ31をノーマルにすると、図17(d)に示すように、アッパーキーボード13aでは、各キーに割り当てられたメロディのアドリブモチーフが自動演奏され、ローアキーボード13bでは、通常のメロディ演奏が行われる。この場合アッパーキーボード13aでは、2つのキーを同時押しして、2種類のメロディのアドリブモチーフを並行して自動演奏させることができる。またローアキーボード13bの操作キーに応じたコードとルートの検出が行われ、アッパーキーボード13aで演奏されるメロディのアドリブモチーフの音階がシフト修正される。このシフト修正は公知の技術である。
【0053】OFAモードでモードスイッチ31をベース/リズムにすると、図17(e)に示すように、アッパーキーボード13aでは、各キーに割り当てられたベースのアドリブモチーフが自動演奏され、ローアキーボード13bでは、各キーに割り当てられたリズムのアドリブモチーフが自動演奏される。そしてローアキーボード13bの白鍵でドラム系のリズム音の演奏が行われ、黒鍵でシンバル系のリズム音の演奏が行われる。この場合アッパーキーボード13aで演奏されるベースのアドリブモチーフの音階は、このモードに入る前のコードルートレジスタに記憶されていたコードとルートに基づいてシフト修正される。このシフト修正は公知の技術である。
【0054】OFAモードでモードスイッチ31をオートにすると、図17(f)に示すように、アッパーキーボード13aでは、各キーに割り当てられたメロディのアドリブモチーフが自動演奏され、ローアキーボード13bでは、各キーに割り当てられたコードルートのアドリブモチーフが自動選択され、楽音の放音は行われない。この場合アッパーキーボード13aでは、1つのキーで第1メロディ、第2メロディの2種類のメロディのアドリブモチーフを並行して自動演奏させることができる。またローアキーボード13bで検出されたキーに応じた、アドリブモチーフのコードとルートによって、アッパーキーボード13aで演奏されるメロディのアドリブモチーフの音階がシフト修正される。このシフト修正は公知の技術である。
【0055】記録/割当(REC/A.ASN)スイッチ39は、レコード/アサインのモードを設定するもので、キーコード13の演奏内容又はMIDIデータをアドリブモチーフパターンとして記録したり、キーボード13のアサイナブルなキーに、アドリブモチーフパターンを割り当てたり、上述の図3に示すオートアルペジオ等のオートモチーフのそれぞれに、アドリブモチーフパターンを割り当てたりする。このアドリブモチーフパターンとして記録される楽音は、図18左下段に示すように、上記ノーマルモード(g)であれば第1メロディ音、ベース/リズムモード(h)であればベース音及びリズム音、オートモード(i)であれば第2メロディ音及びコード音になる。
【0056】図23及び図24は、新たなアドリブモチーフパターンデータを記録させた場合の例を示しており、パターン“2”として新たなアドリブモチーフパターンデータを書き込むには、古いパターン“2”がクリアされ、パターン“3”以降が順次つめてシフトされ、末尾に新たなパターン“2”が書き込まれる。これに応じて、図24に示すように、アドリブモチーフスタートアドレスエリアの内容が書き換えられる。
【0057】スタート/ストップ(START/STOP)スイッチ38は、上述の図3に示すオートアルペジオ、オートベース、第1オートリズム、第2オートリズムのオートモチーフをスタートさせたりストップさせたりするものである。このうち、オートアルペジオ、オートベースは、スタート/ストップスイッチ38をオンしてもデータの読み出しは行うが、発音はマスキングされており、ローアキーボード13bを操作してはじめて、放音が開始される。このマスキングはサウンドシステム26で行われる。
【0058】上記オートアルペジオ、オートベースは、図17(c)(f)に示すように、オートモードでのみ実行される。また第1オートリズム、第2オートリズムは、全てのモードで実行される。ただし、レコード/アサインモードでは、いづれも実行されない。なお、OFAモードかつベース/リズムモード(e)では、実行される第1オートリズム、第2オートリズムのうち、ローアキーボード13bで演奏されるリズム音のアドリブモチーフと同じ系列のリズム音がカットされる。
【0059】音色スイッチ33…(MELODY)は、メロディ演奏の音色を切り換えるもので、1つのスイッチ33で、4つの音色をリングシフトで切り換えられるようになっている。リズムスイッチ34…(RHYTHM)は、リズム演奏の種類を切り換えるもので、1つのスイッチ34で、2種類のリズムを交互に切り換えられるようになっている。電源スイッチ(POWER ON)35は、システム全体の電源のオン/オフ用のスイッチである。音量スイッチ(TOTAL VOL)36は、スライドタイプのもので、楽器全体の出力音量を変化させるものである。テンポスイッチ(TEMPO)37は、アップ用とダウン用の2つのスイッチよりなり、各スイッチで、設定テンポ値をアップしたりダウンしたりする。
【0060】<キーボード13>図10は、キーボード13を示すものである。このキーボード13は、C2(キーナンバ24)〜C6(キーナンバ72)の49鍵よりなり、C2(24)〜G3(43)は、ローアキーボード13b、C3#(44)〜C6(72)は、アッパーキーボード13aである。このうち、ローアキーボード13bの中のC2(24)〜D3#(39)、アッパーキーボード13aの中のG3#(44)〜B4(59)は、各キーに割り当てられたアドリブモチーフパターンが固定されて変更できないものであり、これ以外のキーは変更可能なものである。
【0061】<ワーキングRAM46>図20及び図21R>1は、RAM20内のワーキングRAM46の内容を示すものである。メジャクロックレジスタ71には、リズムスイッチ34…で選択されたリズムに応じた図12に示すような拍子データがセットされる。テンポレジスタ72には、テンポスイッチ37で設定されたテンポデータがセットされる。
【0062】モードレジスタ73には、設定されたモードの内容が記憶される。再下位ビットの「S/S」は、スタート/ストップスイッチ38のオン(1)、オフ(0)を示す。次の3ビットの「NOR、B/R、AUT」は、モードスイッチ31の切換えによって設定されたモード内容を示す。「R/A」のビットは、記録/割当スイッチ39のオン(1)、オフ(0)を示す。「OFA」のビットは、OFAスイッチ32のオン(1)、オフ(0)を示す。
【0063】メロディ音色レジスタ74は、音色スイッチ33…によって選択されたメロディ音色に応じた「0」〜「31」のナンバデータが2ビットシフトアップして記憶される。リズム種類レジスタ75は、リズムスイッチ34…によって選択されたリズムの種類に応じた「0」〜「15」のナンバデータが記憶される。
【0064】コードルートレジスタ76は、伴奏コードのコードの種類とコードのルート(根音)の各データがセットされる。このコードとルートは、ローアキーボード13bの操作キーの状態からコード検出して得られたものと、アドリブモチーフ演奏時にコードデータとして記憶されているものとがある。
【0065】キーステータスレジスタ77は、ローアキーボード13bの各キーのオン(1)、オフ(0)がセットされ、コードの種類とコードのルート(根音)の検出が行われる。
【0066】《シーケンスレジスタ群》リズム1、リズム2、ベース、アルペジオ、メロディ1、メロディ2、コードの各シーケンスレジスタ群78、79、80、81、82、83、84は、上記オートアルペジオ、オートベース、第1オートリズム、第2オートリズムの各オートモチーフを実行したり、各キーに割り当てられたアドリブモチーフを演奏するのに使用される。すなわち、このレジスタ群と後述するフローチャートに応じたプログラムにより、リズム1、リズム2、ベース、アルペジオ、メロディ1、メロディ2、コードの7つのアドリブモチーフ演奏用のシーケンスシステムが構成される。このうちリズムとメロディとは、2つずつレジスタ群が設けられているので、2つのアドリブモチーフパターンを並行して演奏できる。むろん、このレジスタ群の数を増やせば、同時に演奏できるアドリブモチーフの数を増やすことができる。また、リズム1のシーケンスシステムでは、ドラム音の演奏が行われ、リズム2のシーケンスシステムでは、シンバル音の演奏が行われる。
【0067】この各レジスタ群の使用は、図19に示す通りに分担され、丸印はアドリブモチーフであり、三角印はオートモチーフを示している。そして、アドリブモチーフはキーボード13のキーオンでスタートし、オートモチーフはスタート/ストップスイッチ38のオンでスタートする。ただしアルペジオとベースのオートモチーフは、スタート/ストップスイッチ38のオンからキーボード13のキーオンまで、発音がマスキングされることは、上述した通りである。
【0068】これらの各シーケンスレジスタ群は、A、B、C、D、HL、Mの各レジスタよりなっている。Aレジスタは、このレジスタ群を使用して実行されているオートモチーフ又はアドリブモチーフの図3に示すパターンナンバがセットされる。最上位ビットUSEは、このレジスタ群が使用中(1)かそうでないか(0)を示している。Bレジスタは、このアドリブモチーフ(オートモチーフ)にて現在選択されている音色ナンバがセットされる。Cレジスタは、リズム音色の読み出し周波数を決定する、発音キーナンバがセットされる。この発音キーナンバは、図13に示すとおりであり、リズムのアドリブモチーフ(オートモチーフ)においてのみ使用される。Dレジスタは、ステップタイムデータがセットされ、アドリブモチーフ(オートモチーフ)データの読み出し時に、次の音符データ、ビートデータ、コードデータを読み出すまでの待機時間が計測される。
【0069】HLレジスタは、現在読み出しているアドリブモチーフ(オートモチーフ)パターンのRAM20の記憶アドレスデータがセットされる。この場合ローバイト(L)とハイバイト(H)との2バイト分がセットされる。
【0070】Mレジスタは、キーボード13の操作キーがオフされて、リズムのアドリブモチーフ(オートモチーフ)が停止してから、再度リズムのアドリブモチーフ(オートモチーフ)がスタートするまでの待機時間を小節数で表わしたデータがセットされる。このMレジスタの最上位ビットM/Aは、このリズムのアドリブモチーフ(オートモチーフ)がスタート/ストップスイッチ38の操作によりスタートしているものか(A)、ローアキーボード13bのキーオンによりスタートしているものか(M)を示している。
【0071】メジャクロックカウンタ85は、ローバイトが、プログラマブルタイマ11からのインタラプト信号INT2入力ごとに+1され、上述したメジャクロックレジスタの値に一致するとクリアされるとともに、ハイバイトが+1され、テンポと拍子に応じたカウントが行われる。したがって、ハイバイトはカウントが開始されてからの小節数を示している。
【0072】イベントオンオフ、イベントキーナンバ、イベントベロシティの各レジスタ89、90、91は、インタラプト信号INT1、INT3の入力があったときのイベントのあったキーについての各データが一時的にセットされる。
【0073】リングトップアドレスレジスタ92とリングボトムアドレスレジスタ93とは、RAM20のリングバッファ49の書き込みポイント(トップ)のアドレスデータと、読み出しポイント(ボトム)のアドレスデータがセットされる。このリングトップアドレスの更新は、上記インタラプト信号INT1〜INT4の入力があったときに、割り込み処理ルーチンにて行われ、リングボトムアドレスの更新は、メインルーチンにてリングバッファ49の内容を処理するときに行われる。
【0074】ステップタイムカウンタ86では、1つ前のキーオンイベントから次のキーオンイベントまでの時間データのカウントが行われる。このカウントは、上記プログラマブルタイマ11からのインタラプト信号INT2入力ごとに行われる。
【0075】レコーディングアドレスレジスタ87は、レコードバッファ48の書き込みが行われている番地を示すアドレスデータがセットされる。リズムキーナンバレジスタ88は、最新にキーオンされたローアキーナンバがセットされる。この新たなキーナンバのセットに続いて、ベロシティデータ、ステップタイムデータもセットされる。
【0076】ベロシティメモリ94は、キーボード13の各キーのキーオン時のベロシティデータを一時待避的に記憶するのに使用される。この理由は、後述する図26R>6〜図31のキーオン、キーオフ時の処理のステップ111の処理で、ゲートタイムを後で求めるために、ゲートタイムとベロシティを書き込む番地にメジャクロックカウンタ85の値を書き込んでしまうためである。またこのベロシティメモリ94は、キーナンバ「127」に応じた番地まであるが、ローアキーナンバ「120」〜「127」に対応したものである。
【0077】<アサインメントメモリ4>図16は、楽音発生回路24のアサインメントメモリ4を示すものである。このアサインメントメモリ4には、最高16音の楽音データがセット可能である。各楽音データは、4バイト構成となっている。
【0078】1バイト目は、キーナンバがセットされ、最上位ビットのオン/オフデータは、キーオン状態かキーオフ状態かを示している。
【0079】2バイト目は、ゲートタイムがセットされる。このゲートタイムは、上記プログラマブルタイマ11からのインタラプト信号INT2の入力ごとにデクリメントされ、「0」になると、上記1バイト目のオン/オフデータがクリアされ、この後、2バイト目にはゲートタイムの代わりにエンベロープのレベルを示すデータがセットされる。
【0080】3バイト目は、ベロシティデータがセットされる。このベロシティデータは、キーオン時(オンベロシティ)とキーオフ時(オフベロシティ)に夫々セットされるが、OFAモードでは、キーオン時だけにセットされる。
【0081】4バイト目は、トーンナンバがセットされる。このトーンナンバは、図11に示すとおり、メロディ音又はリズム音の音色ナンバとベロシティデータ又は音色ナンバとキーナンバによって決定される。
【0082】<楽音発生回路24>図22は、上述の楽音発生回路24の具体的な回路構成を示すものであり、ライン上の数値はデータビット数を示している。上記アサインメントメモリ4の各楽音データは、時分割に読み出される。このうち、トーンナンバは、トーンナンバラッチ51にラッチされた後、アドレスロジック回路57を介して、上記楽音ROM23に与えられる。また、キーナンバデータは、キーナンバラッチ52にラッチされた後、周波数ナンバROM56に与えられて、対応する周波数ナンバデータが読み出され、周波数ナンバ累算器58で、各チャンネルごとに累算される。この累算周波数ナンバデータの上位12ビットは、アドレスロジック回路57を介して、上述のトーンナンバデータとともに、上記楽音ROM23に与えられる。これにより、トーンナンバデータに対応した波形データが、キーナンバデータに対応した速度で読み出されていく。
【0083】この楽音ROM23からの波形データは、波形発生器70に入力され、上記周波数ナンバ累算器58からの累算周波数ナンバデータの下位4ビットと、次述するベロシティラッチ53からのベロシティデータとに応じた波形が発生され、この波形データは乗算機73に与えられる。上記ベロシティラッチ53には、上記アサインメントメモリ4から読み出されたベロシティデータがラッチされる。
【0084】一方、エンベロープフェーズカウンタ59は、エンベロープ波形のアタック、ディケイ、サスティン、リリース等の各フェーズを切り換えていくためのカウントが行われる。このエンベロープフェーズカウントデータは、上記アドレスロジック回路57を介して、楽音ROM23に与えられ、エンベロープデータが読み出されるタイムスロットにおいて、対応するフェーズのエンベロープのレベルとレートが読み出される。このエンベロープのレベルとレートは、エンベロープ発生器71に入力されて、ベロシティラッチ53からのベロシティデータに応じたレベルのエンベロープデータが生成され、このエンベロープデータは乗算器73に与えられて、上記波形データに乗算され、D−Aコンバータ25を介して、サウンドシステム26より放音出力される。
【0085】上記楽音ROM23からのエンベロープの到達レベルは、レベルラッチ72にラッチされて、コンパレータ74に与えられ、上記エンベロープ発生器71からの順次変化しているエンベロープデータのレベルと比較される。両者が一致すると一致信号が出力され、この一致信号は、エンベロープフェーズカウンタ59にインクリメント信号として入力され、エンベロープのフェーズが1つ進められる。
【0086】上記アサインメントメモリ4からのオン/オフデータは、キーオン/オフラッチ54にラッチされて、イクシクルシブオアゲート66及びアンドゲート61に与えられる。また、アサインメントメモリ4からのゲートタイム/エンベロープデータは、ゲートタイム/エンベロープラッチ55にラッチされ、オール“0”検出器60、オール“1”検出器62及びデクリメンタ67に入力される。
【0087】ゲートタイム/エンベロープラッチ55にラッチされたゲートタイムが「00…0(0)」となって、キーオンからキーオフに変わるタイミングになると、オール“0”検出器60より検出信号が出力され、アンドゲート61を介して、イクスクルシブオアゲート66に入力される。この場合、キーオン中で、オン/オフデータが「1」であると、アンドゲート61は開成され、イクスクルシブオアゲート66の出力が「1」から「0」に切り換わり、これが新たなオン/オフデータとしてアサインメントメモリ4に書き込まれる。また、キーオフ中で、オン/オフデータが「0」のときは、アンドゲート61は開成されて、その出力は「0」であり、オン/オフデータが「1」になると、イクスクルシブオアゲート66の出力が「0」から「1」に切り換わり、これが同じく新たなオン/オフデータとしてアサインメントメモリ4に書き込まれる。
【0088】このような、オン/オフデータは、オン/オフイベント検出器69に入力されて、オンイベント時の「0」から「1」への変化と、オフイベント時の「1」から「0」への変化が検出され、それぞれにおいて検出信号が出力される。このうち、オンイベント信号は、上記周波数ナンバ累算器58及びエンベロープフェーズカウンタ59に入力されて、累算値及びカウント値がクリアされる。また、オフイベント信号は、エンベロープフェーズカウンタ59に入力されて、リリースフェーズへの切り換えが行われる。
【0089】上記ゲートタイム/エンベロープラッチ55からのゲートタイムは、デクリメンタ67でデクリメントされた後、セレクタ68を介して、再びアサインメントメモリ4の同じチャンネルエリアに書き込まれる。しかし、キーオフ後は、セレクタ68のセレクト信号は「1」から「0」に切り換わるので、エンベロープ発生器71からのエンベロープデータが代わってセレクトされる。
【0090】エッジ検出器64はDタイプのフリップフロップであり、D端子には上記プログラマブルタイマ11からのインタラプト信号INT2の反転信号が入力され、CK(クロックパルス)端子には16チャンネルの演算周期信号が入力されている。これによりエッジ検出器64からは、インタラプト信号INT2のダウンエッジが16チャンネルの演算周期信号のアップエッジのタイミングまでディレイされて反転出力され、アンドゲート65を介して、デクリメンタ67に入力され、ゲートタイムがインタラプト信号INT2出力ごとにデクリメントされる。
【0091】上記オール“0”検出器60からの検出信号及びオール“1”検出器62からの検出信号は、ノアゲート63を介して反転されて上記アンドゲート65に与えられ、このアンドゲート65を閉成し、デクリメンタ67のデクリメントを停止させる。これによりゲートタイムがオール0の「00…0(0)」のときと、オール1の「11…1(255)」のときとは、ゲートタイムのデクリメントが行われず、キーオフ状態、キーオン状態が維持される。
【0092】なお、システムクロック発生器78では、発振器77からのマスタクロック信号が分周されて、各種周期の制御信号が出力され、装置全体のシステムコントロールが行われる。
【0093】<メインルーチン>図25は、CPU12が行う処理のメインルーチンを示すものである。このメインルーチンは、イニシャルルーチンも含んでおり、電源投入により実行される。まず、ROM19のアドリブモチーフパターンエリア42に記憶されている、64キロバイト分のすべてのアドリブモチーフパターンをRAM20に転送し(ステップ000)、RAM20のワーキングRAM46内の各レジスタにパネルスイッチボード15の操作状態に応じたデータをセットする(ステップ001)。
【0094】次いで、アサインメントメモリ4をクリアし(ステップ002)、パネル表示メモリ2の内容をメロディ音色についてはストリングス(STRINGS)のLED(発光ダイオード)、リズムの種類については16ビート(16BEAT)のLEDが点灯する内容とし(ステップ003)、4分音符のテンポレジスタの48倍の周期となるデータをプログラマブルタイマ11にセットする(ステップ004)。以上がイニシャルルーチンである。
【0095】次に、メインルーチンに入ってRAM20のリングバッファ49内にデータが書き込み済か否か判断し(ステップ005)、データ書き込み済であれば、RAM20のワーキングRAM46のリングボトムアドレスレジスタ93で指定される読み出しアドレスから4バイト分の音符データを読み出し(ステップ006)、リングボトムアドレスレジスタ93の値を+4する(ステップ007)。
【0096】そして、上記読み出した音符データのオン/オフデータが「1」のオン状態にあるか否か判断する(ステップ008)。オン状態にあれば、ステップ009〜012の新たなチャンネル割り当て処理を行う。まず、アサインメントメモリ4内の各チャンネルエリアの中に、オン/オフデータが「0」のオフ状態にあるチャンネルエリアをサーチする(ステップ009)。オフ状態にあるチャンネルエリアがあれば(ステップ010)、このオフ状態にあるチャンネルエリアのうち、エンベロープデータのレベルの最も小さいチャンネルエリアをセレクトし(ステップ011)、「1」のオン/オフデータと、上記ステップ006でリングバッファ49より読み出したキーナンバ、ゲートタイム、ベロシティ、トーンナンバの各データとを、このチャンネルエリアに書き込む。
【0097】なお、上記ステップ010で、アサインメントメモリ4の中に、オフ状態にあるチャンネルエリアがなければ、ステップ011、012のチャンネル割り当て処理は行われない。また、上記ステップ005で、リングバッファ49にデータが書き込まれていなければ、ステップ006〜012の空チャンネルサーチ処理、チャンネル割り当て処理は行われない。
【0098】この後、もしフロッピーディスク22に対するロード/セーブの指示があれば(ステップ016)、フロッピーディスク22に対する、ロード/セーブを行う(ステップ017)。また、上記ステップ008で、リングバッファ49より読み出した音符データのオン/オフデータが「1」のオン状態ではなく、「0」のオフ状態であれば、ステップ013〜015のキーオフ処理に進む。
【0099】まず、アサインメントメモリ4内の各チャンネルエリアの中に、ゲートタイムが「11111111(255)」のキーオン続行中で、しかも上記ステップ006でリングバッファ49より読み出した、音符データの中のキーナンバと同じキーナンバの割り当てられているチャンネルをサーチする(ステップ013)。該当するチャンネルがあれば(スタップ014)、このチャンネルのオン/オフデータを「0」とし、ゲートタイムデータを「00000000(0)」として(ステップ015)、キーオフ状態に切り換える。そして、上記ステップ016、017のフロッピーディスク22のロード/セーブ処理に移行する。
【0100】<キーイベント(キーオン、キーオフ)時の処理>図26〜図31は、キーオン、キーオフがあり、上記SCI回路10からCPU12にインタラプト信号INT1が出力されたときと、上記キースキャン回路14からCPU12にインタラプト信号INT3が出力されたときの楽音発音処理のフローチャートを示すものである。
【0101】《OFAオフモードのアッパーキーボード》まず、CPU12は、SCI回路10又はキースイッチメモリ1に一時記憶されている新たなイベントのあったオン/オフデータ、キーナンバ、ベロシティの各データをRAM20のワーキングRAM46のイベントオン/オフレジスタ89、イベントキーナンバレジスタ90、イベントベロシティレジスタ91に書き込む(ステップ100)。次いで、ワーキングRAM46のモードレジスタにOFA(ワンフィンガーアドリブ)フラグが立っているか否か判断する(ステップ101)。フラグが立って、OFAモードならば、イベントキーがアッパーキーボード13aのものかローアキーボード13bのものかを、イベントのあった新たなキーナンバより判断する(ステップ102)。
【0102】アッパーキーボード13aであれば、ベース/リズムモードのときのみ、イベントキーナンバを−24する(ステップ103、104)。これは、音程をベース用に下げるためである。オートモード、ノーマルモードのときは、音程は下げない。このベース/リズム、オート、ノーマルのモード判別は、ワーキングRAM46のモードレジスタ73の内容に基づいて行われる。後述するステップ123、124も含めて、このようなモード判別を行うのは、図17及び図18に示すように、モードによって楽音の発音状態が異なるためである。
【0103】上記ステップ103、104の後、CPU12は、ステップ105〜108のリングバッファ49へのデータ書き込み処理にはいる。この処理は、1つのサブルーチンSUB1を構成しており、このサブルーチンSUB1は他の処理においても実行されることがある。
【0104】この処理では、まず、イベントオン/オフレジスタ89の上記イベントに係るオン/オフデータが「1」のオン状態か否かを判断する(ステップ105)。「1」のオン状態であれば、「1」のオン/オフデータ、このイベントのあったキーナンバ、「11…1(255)」のゲートタイム、イベントのあったキーのベロシティ、音色ナンバの各データをリングバッファ49に書き込む(ステップ106)。
【0105】このリングバッファ49への書き込みアドレスはリングトップアドレスレジスタ92の値に基づいており、上記ステップ106の書き込みの後、このリングトップアドレスレジスタ92の値が+4される(ステップ107)。この+4するのは、1つの音符データの記憶で4番地使用するからである。
【0106】また、上記ステップ105で、イベントに係るオン/オフデータが「0」のオフ状態であれば、「0」のオン/オフデータ、このイベントのあったキーナンバ、「00…0(0)」のゲートタイム、イベントのあったキーのベロシティ、音色ナンバの各データをリングバッファ49に書き込む(ステップ108)。
【0107】次いで、CPU12はワーキングRAM46のモードレジスタ73の記録/割当フラグR/Aの内容から、記録モードか否か判断する(ステップ109)。記録モードであれば、ワーキングRAM46のイベントオンオフレジスタ89のオン/オフデータが「1」のオン状態か否か判断する(ステップ110)。
【0108】「1」のオン状態にあれば、「1」のオン/オフデータ、イベントキーナンバレジスタ90の値、メジャクロックカウンタ85の値、ステップタイムカウンタ86の値をRAM20のレコードバッファ48に書き込み(ステップ111)、ワーキングRAM46のレコーディングアドレスレジスタ87の値を+4する(ステップ112)。そして、ワーキングRAM46のベロシティメモリ94のイベントキーナンバに対応した番地に、キーオン時のオンベロシティデータ、すなわちキーオン時のメジャクロックカウンタ85の値を書き込み(ステップ113)、ステップタイムカウンタ86をクリアしてリターンする(ステップ114)。
【0109】また、上記ステップ110で、イベントオンオフデータが「0」のオフ状態であれば、レコーディングアドレスレジスタ87の値と同じレコードバッファ48の番地から逆登り、このイベントオフに係るキーナンバと同じキーナンバをもつ音符データをサーチする(ステップ115)。そして、見つけた音符データの第2バイト目と第3バイト目に記憶されているキーオン時のメジャクロックカウンタ85の値と、今回のキーオフ時のメジャクロックカウンタの値との差分データを求める(ステップ116)。
【0110】この差分データが「11…1(255)」以上の長いデータであれば(ステップ117)、「1」のオン/オフデータ、イベントキーナンバ、「0」のゲートタイム、キーオフ時のベロシティ、ステッタイムカウンタの各データをRAM20のレコードバッファ48に書き込む(ステップ118)。これにより、上記ステップ111のキーオン時の音符データとは分離された、キーオフ用の音符データがレコードバッファ48に書き込まれる。
【0111】次いで、CPU12はレコーディングアドレスレジスタ87の値を+4し(ステップ119)、差分データを「11…1(255)」とする(ステップ120)。上記ステップ125で、差分データが「11…1(255)」より小さければ、上記ステップ118〜120のキーオフ用の音符データの書き込み処理は行わない。
【0112】この後、上記ステップ115でサーチした音符データの第2バイト目に、上述の差分データを書き込み(ステップ121)、ワーキングRAM46のベロシティメモリ94のイベントキーナンバに対応したアドレスのベロシティデータをキースイッチメモリ1より読み出し、上記サーチしたキーオン時の音符データの第3バイト目に書き込んでリターンする(ステップ122)。
【0113】これにより、キーオンからキーオフまでのゲートタイムが、「11…1(255)」より小さければ、ゲートタイムデータが上記キーオン時の音符データに書き込まれ、「11…1(255)」より大きければ、音符データがキーオン用とキーオフ用に分離され、キーオン用の音符データの中には、キーオン続行を示す「11…1(255)」のゲートタイムが書き込まれ、キーオフ用の音符データの中には、キーオフ続行を示す「00…0(0)」のゲートタイムが書き込まれる。
【0114】《OFAオフモードのローアキーボード13b》上記ステップ102で、イベントキーがローアキーボード13bのものであることが判別されたときには、ワーキングRAM46のモードレジスタ73の値から、現在ノーマルモード、ベース/リズム、オートのいずれのモードかを判断する(ステップ123、124)。ノーマルモードであれば、上述したステップ105〜122の楽音データのレコーディング処理を行う。
【0115】また、ベース/リズムモードであれば、イベントオン/オフレジスタ89のイベントオン/オフデータが「1」のオン状態か否か判断する(ステップ125)。「1」のオン状態にあれば、イベントキーナンバに基き、図13に示すROM19のリズム音色テーブル44より、対応するリズム音色ナンバと発音キーナンバを読み出し(ステップ126)。「1」のオン/オフデータ、発音キーナンバ、「1」のゲートタイム、キーオンベロシティ、音色ナンバの各データをワーキングRAM46のリングバッファ49に書き込んで、リングトップアドレスの値を+4する(ステップ127、128)。リングバッファ49の書き込み番地は、リングトップアドレスレジスタ92の値に基づいている。
【0116】この後、CPU12は、レコードモードにあるか否かをモードレジスタ73の記憶内容から判断し(ステップ129)、レコードモードであれば、ワーキングRAM46のリズムキーナンバレジスタ88に記憶されている、今回のイベントの前にイベントのあったローアキーナンバが、今回の新たなイベントのローアキーナンバに一致しているか否か判断する(ステップ130)。
【0117】一致していなければ、今回新たに別のリズム音色のキーがオンされたことになるから、リズムキーナンバレジスタ88にイベントローアキーナンバを書き込み(ステップ131)、最上位ビットに「1」を付加したイベントローアキーナンバと「0」のステップタイムのデータをレコードバッファ48に書き込み、レコードアドレスレジスタ87の値を+2する(ステップ132、133)。これにより、新たなリズム音色のデータが書き込まれる。
【0118】次いで、ベロシティメモリ94のベロシティデータと、ステップタイムカウンタ86の値をレコードバッファ48に書き込み(ステップ134)、レコーディングアドレスレジスタ87の値を+2して(ステップ135)、ステップタイムカウンタ86の値をクリアしてリターンする(ステップ136)。
【0119】なお、上記ステップ130で、イベントローアキーナンバが前回のものと一致していれば、リズムの音色は変化していないので、ステップ131〜133のリズム音色データ書き込み処理は行われない。また、ステップ129で、レコードモードになければ、ステップ130〜136のレコーディング処理は不要になるので、そのままリターンする。さらに、ステップ125で、イベントに係るオン/オフデータが「0」のオフ状態であれば、ベース/リズムについてはキーオフは考慮していないので、ステップ126〜136のデータ書き込み処理は不要となり、そのままリターンする。
【0120】また、上記ステップ123、124で、オートモードにあることが判別されれば、CPU12は、キーステータスレジスタ77のオンキーのデータ内容を修正し(ステップ137)、このオンキーデータからコードとルートとを判断し、この結果をコードルートレジスタ76に書き込む(ステップ138)。このコードとルートとの検出は、オンキー状態を示すデータをアドレスとして、コードとルートとを読み出すコードルートテーブル43に基づいて行われる。
【0121】そして、CPU12は、記録モードにあるか否かをモードレジスタ73の内容から判断し(ステップ139)、記録モードであれば、ステップタイムカウンタ86の値が「48」以上か否か判断する(ステップ140)。「48」以上であれば、コードルートレジスタ76のコードとルート及びステップタイムカウンタ86の値をレコードバッファ48に書き込み(ステップ141)、レコーディングアドレスレジスタ87の値を+2し(ステップ142)、ステップタイムカウンタ86の値をクリアする(ステップ143)。
【0122】上記ステップ140で、ステップタイムカウンタ86の値が「48」を越えていなければ、一拍分の時間が経過していないため、ステップ141〜143の書き込み処理は行わない。また、ステップ139で、レコードモードになければ、ステップ140〜143のレコーディング処理は不要になるので、そのままリターンする。また、ここではリングバッファ49へのデータ書き込みが行われないため、キー操作に応じた発音はなされない。むろんリングバッファ49へのデータ書き込みを行って発音させるようにしてもよい。
【0123】上記ステップ138でコードルートレジスタ76にセットされたコードルートデータは、キーオフがあってもクリアされず、次の新たなキーオンがあるまで維持される。このコードルートデータに基づき、マクロルーチンMACRO5のステップ224(ステップ230でも同じ)で、アドリブモチーフアルペジオ、アドリブモチーフベースの音高修正が行われる。むろん、この音高修正を省略してもよい。このようにして、図17及び図18のOFAオフのモードと記録/割当モードにおける、キーオン、キーオフのイベント処理が行われる。
【0124】《OFAモードのアッパーキーボード13a》上記ステップ101でOFAモードにあることが判別されれば、CPU12は、ステップ144で、イベントキーがアッパーキーボード13aのものかローアキーボード13bのものかを、イベントのあった新たなキーナンバより判断する(ステップ144)。アッパーキーボード13aであれば、ワーキングRAM46のモードレジスタ73の値から、現在ノーマルモード、ベース/リズム、オートのいずれのモードかを判断する(ステップ145、146)。オートモードであれば、イベントオン/オフレジスタ89のイベントオン/オフデータが「1」のオン状態か否か判断する(ステップ147)。
【0125】「1」のオン状態にあれば、ステップ148〜160のメロディ1のキーオンシーケンスの処理にはいる。この処理は、1つのサブルーチンMACRO1を構成しており、このサブルーチンMACRO1は他の処理においても実行されることがある。
【0126】この処理では、まず、「1」のUSEフラグ、このイベントのあったキーナンバをメロディ1のシーケンスレジスタ群82のAレジスタに書き込み、このイベントキーの割り当てアドリブモチーフのスタートアドレスデータを同じくHLレジスタに書き込む(ステップ148)。このスタートアドレスは次のようにして決定される。すなわち、図7に示すアドリブモチーフ第1メロディの選択リズムに応じたアドリブモチーフパターンがまず選択され、ついでこれに対応した図3に示すアドリブモチーフモチーフアサインリスト42b(47b)の中の上記イベントキーナンバに応じたアドリブモチーフパターンナンバが選択され、さらにこれに対応した図2に示すスタートアドレスが選択される。
【0127】次いで、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の先頭番地より、音色ナンバを読み出して、Bレジスタに書き込み(ステップ149)、HLレジスタの値を+2する(ステップ150)。そして、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の番地の記憶データの最上位ビットが「1」か否か、すなわち図4に示すように、記憶データが音色ナンバか否か判断する(ステップ151)。
【0128】現在先頭の音色ナンバを読み出した直後であるから音色ナンバと判断され、ステップ152に進み、次の番地のステップタイムデータを読み出してDレジスタに書き込み(ステップ152)、このステップタイムデータが「0」か否か判断する(ステップ153)。「0」であれば、待ち時間が無く、直ちに音色をセットしなくてはならず、上記音色ナンバをBレジスタにセットし(ステップ154)、HLレジスタの値を+2して(ステップ155)、ステップ151に戻る。
【0129】このステップ151では、今度は音色ナンバではなく音符データが判別されるので、3つ先の番地のステップタイムデータを読み出してDレジスタに書き込み(ステップ156)、このステップタイムデータが「0」か否か判断する(ステップ157)。「0」であれば、待ち時間が無く、直ちに発音しなくてはならず、上記音符データのキーナンバをコードルートレジスタ76の値で修正した値と、続くゲートタイムと、ベロシティと、上記Bレジスタの音色ナンバとをリングバッファ49に書き込む(ステップ158)。
【0130】コードルートレジスタ76の値に基づくキーナンバの修正は、キーナンバをルートの音高やコードの種類に基づいて+1、+2……、−1、−2……する処理である。これにより演奏全体に調和を持たせることができる。この後、リングトップアドレスレジスタ92の値を+4し(ステップ159)、HLレジスタの値を+4して(ステップ160)、ステップ151に戻る。
【0131】今回のステップ151でも音符データが判別されるので、3つ先の番地のステップタイムデータを読み出してDレジスタに書き込み(ステップ156)、このステップタイムデータが「0」か否か判断する(ステップ157)。この場合の音符データは先頭から2つ目の音符データであり、通常ステップタイムデータは「0」ではないので、このメロディ1のキーオンシーケンス処理を終了して、そのまま次のメロディ2のキーオンシーケンスの処理にはいる(ステップ161)。
【0132】次のメロディ2のキーオンシーケンスの処理は、上記のメロディ1のキーオンシーケンス処理(ステップ148〜160、マクロルーチンMACRO1)と同じものである。ただし使用されるシーケンスレジスタ群は、メロディ2のものであり、演奏されるアドリブモチーフパターンは第2メロディである。また第2番目以降の音符データのセットは、メロディ1の場合と同じく、後述する図32〜図34のメロディ2のシーケンスの処理で行われる。このように、各マクロルーチンはプログラムは同じであるが、パラメータは各々異なるものである。
【0133】こうして、1つのキーの操作で、第1メロディと第2メロディとの2種類のメロディのアドリブモチーフを同じタイミングで並行して演奏することができる。むろん、メロディのシーケンスレジスタ群の数と、ステップ161のメロディのキーオンシーケンス処理のステップ数を増やせば、1つのキーオンで同時に発音できるアドリブモチーフのメロディ音を増やすことができる。この1つのキー操作で、複数のアドリブモチーフを同時演奏するのは、メロディ以外に、リズム、ベース、アルペジオ、コードにおいても同様に実行してもよい。
【0134】このように、OFAモードでのキーオン時には、このキーに割り当てられたアドリブモチーフパターンの先頭の音色データのセット(ステップ152〜155)と、これに続く第1番目の音符データのセット(ステップ156〜160)とが行われる。第2番目以降の音符データのセットは、後述する図32〜図34のメロディ1のシーケンスの処理で、インタラプト信号INT2の出力時に行われる。この場合、第1番目の音符データのステップタイムが「0」でなく、待ち時間があれば、この第1番目の音符データのセットもインタラプト信号INT2の出力時に行われる。
【0135】また上記ステップ147で、「0」のオフ状態にあれば、ステップ162、163のメロディ1のキーオフシーケンスの処理にはいる。この処理も、1つのマクロルーチンMACRO2を構成しており、このマクロルーチンMACRO2は他の処理においても実行されることがある。
【0136】この処理では、まず上記キーオンシーケンスの処理でAレジスタにセットしたキーナンバが、今回のキーオフのキーナンバと一致しているか否か判断する(ステップ162)。一致していれば、AレジスタのUSEフラグを「0]として(ステップ163)、メロディ1のシーケンスシステムの作動を停止させ、第1メロディのアドリブモチーフの演奏を停止させる。
【0137】次いで、同じキーオフシーケンス処理をメロディ2についても行い(ステップ164)、同様にしてメロディ2のシーケンスシステムの作動も停止させ、第2メロディのアドリブモチーフの演奏も停止させる。
【0138】上記ステップ145で、ノーマルモードにあることが判別されれば、イベントオン/オフレジスタ89のイベントオン/オフデータが「1」のオン状態か否か判断する(ステップ165)。「1」のオン状態にあれば、メロディ1のシーケンスレジスタ群82のAレジスタのUSEフラグが「0」か否か判断する(ステップ166、167)。「0」であれば、メロディ1のキーオンシーケンス処理のマクロルーチンMACRO1を行う(ステップ168)。
【0139】上記ステップ167で、メロディ1のシーケンスレジスタ群82のAレジスタのUSEフラグが「1」で、アドリブモチーフのメロディ音がすでに発音中であれば、ステップ169に進み、今度はメロディ2のシーケンスレジスタ群83のAレジスタのUSEフラグが「0」か否か判断する(ステップ169、170)。「0」であれば、メロディ2のキーオンシーケンス処理のマクロルーチンMACRO1を行う(ステップ171)。このマクロルーチンMACRO1は、上述したように、ステップ148〜160と同じである。
【0140】こうして、メロディ1のシーケンスシステムを使用して、アドリブモチーフのメロディ音がすでに発音中の時に、重ねて別のキーオンがあると、メロディ2のシーケンスシステムを使用して、アドリブモチーフのメロディ音が、さらにもう1音、遅れたタイミングで発音される。むろん、メロディのシーケンスレジスタ群の数と、ステップ169〜171のメロディのキーオンシーケンス処理のステップ数を増やせば、キーの同時操作で同時に発音できるアドリブモチーフのメロディ音を増やすことができる。この複数のキー操作で、複数のアドリブモチーフを別々に並行して演奏するのは、メロディ以外に、リズム、ベース、アルペジオ、コードにおいても同様に実行してもよい。
【0141】なお、1つのキーで複数種類のアドリブモチーフを同じタイミングで演奏できるようにし、しかも異なるキーについては、これらの演奏を異なるタイミングで独立に演奏できるようにしてもよい。
【0142】このメロディ1、メロディ2のキーオンシーケンス処理でも、このキーに割り当てられたアドリブモチーフパターンの先頭の音色データのセット(ステップ152〜155)と、これに続く第1番目の音符データのセット(ステップ156〜160)とが行われる。第2番目以降の音符データのセットは、後述する図32〜図34のメロディ1、メロディ2のシーケンスの処理で、インタラプト信号INT2の出力時に行われる。この場合、第1番目の音符データのステップタイムが「0」でなく、待ち時間があれば、この第1番目の音符データのセットもインタラプト信号INT2の出力時に行われることは、オートモードの場合と同じである。
【0143】また上記ステップ165で、「0」のオフ状態にあれば、メロディ1のキーオフシーケンス処理(ステップ172)及びメロディ2のキーオフシーケンス処理(ステップ173)にはいる。このマクロルーチンMACRO2は、上述したように、ステップ160、161と同じである。なお、メロディ1のキーオフシーケンス処理からメロディ2のキーオフシーケンス処理にはいるのは、メロディ1のキーオフシーケンス処理でNOと判別された時である。
【0144】上記ステップ146で、ベース/リズムモードであることが判別されれば、イベントオン/オフレジスタ89のイベントオン/オフデータが「1」のオン状態か否か判断する(ステップ174)。「1」のオン状態にあれば、ベースのキーオンシーケンス処理のマクロルーチンMACRO1を行う(ステップ175)。このマクロルーチンMACRO1は、上述したように、ステップ148〜160と同じである。また、「0」のオフ状態であれば、ベースのキーオフシーケンス処理のマクロルーチンMACRO2を行う(ステップ176)。このマクロルーチンMACRO2は、上述したように、ステップ162、163と同じである。
【0145】このステップ175内のステップ158と同じ処理でのベース音の音高修正は、コードルートレジスタ76の値に基づくが、このモードではコードルートレジスタ76の値は書き換えられないため、結局このモードに入る前のコードルートレジスタ76の値に基づいて音高修正が行われる。むろん、この音高修正を省略してもよい。こうして、ベースのアドリブモチーフについても自動演奏を行うことができる。
【0146】このベースのキーオンシーケンス処理でも、このキーに割り当てられたアドリブモチーフパターンの先頭の音色データのセット(ステップ152〜155)と、これに続く第1番目の音符データのセット(ステップ156〜160)とが行われる。第2番目以降の音符データのセットは、後述する図32〜図34のベースのシーケンスの処理で、インタラプト信号INT2の出力時に行われる。この場合、第1番目の音符データのステップタイムが「0」でなく、待ち時間があれば、この第1番目の音符データのセットもインタラプト信号INT2の出力時に行われることは、オートモード、ノーマルモードの場合と同じである。
【0147】《OFAモードのローアキーボード13b》上記ステップ144で、操作キーがローアキーボード13bであれば、ワーキングRAM46のモードレジスタ73の値から、現在ノーマルモード、ベース/リズム、オートのいずれのモードかを判断する(ステップ177、178)。オートモードであれば、イベントオン/オフレジスタ89のイベントオン/オフデータが「1」のオン状態か否か判断する(ステップ179)。
【0148】「1」のオン状態にあれば、「1」のUSEフラグ、このイベントのあったキーナンバをコードのシーケンスレジスタ群84のAレジスタに書き込み、このイベントキーの割り当てアドリブモチーフのスタートアドレスデータを同じくHLレジスタに書き込む(ステップ180)。このスタートアドレスは次のようにして決定される。すなわち、図7に示すアドリブモチーフコードの選択リズムに応じたアドリブモチーフパターンがまず選択され、ついでこれに対応した図3に示すアドリブモチーフモチーフアサインリスト42b(47b)の中の上記イベントキーナンバに応じたアドリブモチーフパターンナンバが選択され、さらにこれに対応した図2に示すスタートアドレスが選択される。
【0149】次いで、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の先頭番地より、コードルートデータを読み出して、コードルートレジスタ76に書き込み(ステップ181)、HLレジスタの値を+2する(ステップ182)。そして、2番目のコードルートデータのステップタイムデータを読み出してDレジスタに書き込み(ステップ183)、このステップタイムデータが「0」か否か判断する(ステップ184)。通常は、1番目のコードルートデータと2番目のコードルートデータとの間のステップタイムデータは、「0」ではないので、そのままリターンする。第2番目以降の音符データのセットは、後述する図32〜図34のコードのシーケンスの処理で、インタラプト信号INT2の出力時に行われる。
【0150】上記ステップ184で、「0」であれば、待ち時間が無く、直ちにコードルートデータをセットしなくてはならず、上記2番目のコードルートデータをコードルートレジスタ76にセットして(ステップ185)、ステップ182に戻る。
【0151】上記ステップ181、185でコードルートレジスタ76にセットされるコードルートデータに基づき、ステップ158、224でキーナンバが修正されることは、上述した通りである。また、ここではリングバッファ49へのデータ書き込みが行われないため、キー操作に応じた発音はなされない。むろんデータ書き込みを行って発音させるようにしてもよい。
【0152】また、キーオフがあっても、ステップ179の後、コードのシーケンスレジスタ群84は依然、使用され続け、ステップ233〜240で、コードのアドリブモチーフデータの読み出しが続行される。この読み出しは、ステップ424〜429のモード切り換えまで続く。このアドリブモチーフコードのコードルートデータに基づき、マクロルーチンMACRO1のステップ158(ステップ161でも同じ)及びマクロルーチンMACRO5のステップ224(ステップ230でも同じ)で、アドリブモチーフメロディ、アドリブモチーフアルペジオ、アドリブモチーフベースの音高修正が行われる。むろん、この音高修正を省略してもよい。
【0153】上記ステップ177で、ノーマルモードであることが判別されれば、キーステータスレジスタ77にセットされているローアキーのオンデータを修正し(ステップ186)、このローアキーのオンデータからコードとルートとを検出してコードルートレジスタ76にセットし(ステップ187)、リングバッファ49へのデータ書き込み処理にはいる(ステップ188)。この処理は、上述したステップ105〜108のサブルーチンSUB1と同じである。
【0154】ここでもコードルートレジスタ76にセットされるコードルートデータに基づき、ステップ158、224でキーナンバが修正されるが、リングバッファ49へのデータ書き込みが行われるため、キー操作に応じた発音がなされる。このコードルートレジスタ76にセットされたコードルートデータは、キーオフがあってもクリアされず、次の新たなキーオンがあるまで維持される。このコードルートデータに基づき、マクロルーチンMACRO1のステップ168、171内のステップ158と同じステップで、アドリブモチーフメロディの音高修正が行われる。むろん、この音高修正を省略してもよい。
【0155】上記ステップ178で、ベース/リズムモードであることが判別されれば、イベントキーが白鍵か黒鍵かを、図14に示すキー判別デコーダ45の内容から判断する(ステップ189)。白鍵であれば、リズム1のシーケンス処理のサブルーチンMACRO3を実行する。この処理は、1つのマクロルーチンMACRO3を構成しており、このマクロルーチンMACRO3は他の処理においても実行されることがある。
【0156】この処理では、まず、イベントオン/オフレジスタ89のイベントオン/オフデータが「1」のオン状態か否か判断する(ステップ190)。「1」のオン状態にあれば、「1」のUSEフラグ、このイベントのあったキーナンバをリズム1のシーケンスレジスタ群78のAレジスタに書き込み、このイベントキーの割り当てアドリブモチーフのスタートアドレスデータを同じくHLレジスタに書き込む(ステップ191)。このスタートアドレスは次のようにして決定される。すなわち、図7に示すアドリブモチーフリズムの選択リズムに応じたアドリブモチーフパターンがまず選択され、ついでこれに対応した図3に示すアドリブモチーフアサインリスト42b(47b)の中の上記イベントキーナンバに応じたアドリブモチーフパターンナンバが選択され、さらにこれに対応した図2に示すスタートアドレスが選択される。
【0157】次いで、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の先頭番地より、ローアキーナンバを読み出し、このローアキーナンバから図13に示すリズム音色テーブル44の記憶内容に基づいて、リズム音色ナンバと発音キーナンバを求め、おのおのBレジスタ、Cレジスタにセットする(ステップ192)。次いで、HLレジスタの値を+2する(ステップ193)。
【0158】そして、2番目のビートデータのステップタイムデータを読み出してDレジスタに書き込み(ステップ194)、このステップタイムデータが「0」か否か判断する(ステップ195)。「0」であれば、待ち時間が無く、直ちに発音しなくてはならず、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の番地の記憶データの最上位ビットが「1」か否か、すなわち図5に示すように、記憶データがローアキーナンバか否か判断する(ステップ196)。
【0159】現在先頭のビートデータを読み出した直後であるからローアキーナンバであることが判断され、ステップ197に進み、「1」のオン/オフデータ、上記Cレジスタにセットした発音キーナンバと、「1」のゲートタイムと、このビートデータ内のベロシティと、上記Bレジスタにセットしたリズム音色ナンバとをリングバッファ49に書き込み(ステップ197)、リングトップアドレスレジスタ92の値を+4し(ステップ198)、ステップ193に戻る。
【0160】次のステップ193〜195で、2番目のビートデータのステップタイムデータが「0」か否か判断する。しかし通常は、1番目のビートデータと2番目のビートデータとの間のステップタイムデータは、「0」ではないので、Mレジスタのマニュアル/オートフラグM/Aを「0」のマニュアルのリズム演奏状態にし、Mレジスタの小節カウンタの値を「0」にして(ステップ1A2)、リターンする。
【0161】また、上記ステップ190で、「0」のオフ状態にあれば、上記Aレジスタにセットしたキーオンのキーナンバが、今回のキーオフのキーナンバと一致しているか否か判断する(ステップ199)。一致していれば、AレジスタのUSEフラグを「0]として(ステップ1A0)、Mレジスタのマニュアル/オートフラグM/Aを「0」のマニュアルのリズム演奏状態にし、Mレジスタの小節カウンタの値を「1」にして(ステップ1A1)、リターンする。
【0162】こうして、このリズム1のシーケンス処理でも、このキーに割り当てられたアドリブモチーフパターンの先頭のリズム音色ナンバ及び発音キーナンバのセット(ステップ190〜192)と、これに続く第1番目のビートデータのセット(ステップ193〜198、1A2)と、キーオフに応じたリズムのアドリブモチーフの演奏停止(ステップ199〜1A1)とが行われる。第2番目以降のビートデータのセットは、後述する図32〜図34のリズム1のシーケンスの処理で、インタラプト信号INT2の出力時に行われる。この場合、第1番目のビートデータのステップタイムが「0」でなく、待ち時間があれば、この第1番目のビートデータのセットもインタラプト信号INT2の出力時に行われることは、オートモード、ノーマルモードの場合と同じである。このことは次述するリズム2のシーケンス処理でも同じである。
【0163】このリズム1のシーケンス処理はローアキーボード13bの白鍵の操作に基づくもので、リズム1のシーケンスレジスタ群78が使用され、ドラム系のリズムのアドリブモチーフが演奏される。このキー操作の前にスタート/ストップスイッチ38のオンにより、リズム1のシーケンスレジスタ群78が使われ、リズム1のシーケンス処理が実行されて、ドラム系の第1オートリズムのオートモチーフが演奏されていても、リズム1のシーケンスレジスタ群78は、上記リズムのアドリブモチーフの演奏に転用され、ドラム系の第1オートリズムのオートモチーフの演奏は中断される。そして、ローアキーボード13bのキーオフにより、ドラム系の第1オートリズムのオートモチーフが再スタートする。この再スタートまでの待機時間が、上記ステップ1A1でセットした小節カウンタの値「1」である。このことは次述するシンバル系のリズム2のシーケンス処理でも同じである。
【0164】こうして、ドラム系の第1オートリズムの演奏中に、ローアキーボード13bの白鍵が操作されて、ドラム系のリズムのアドリブモチーフの演奏が開始されると、同じドラム系のオートリズムが停止される。これは次述するシンバル系のリズム演奏でも同じである。従って、自動演奏とアドリブモチーフ演奏との系列が重複せず、シンプルな演奏を行うことができる。
【0165】上記ステップ189で、操作キーが黒鍵であることが判別されれば、シンバル系のリズム2のシーケンス処理にはいり(ステップ1A3)、リターンする。このシンバル系のリズム2のシーケンスの処理は、上記のドラム系のリズム1のシーケンス処理(ステップ190〜1A2、マクロルーチンMACRO3)と同じものである。ただし使用されるシーケンスレジスタ群は、シンバル系のリズム2のものである。
【0166】こうして、ドラム系のリズム1のシーケンスシステムを使用して、アドリブモチーフのリズム音がすでに発音中の時に、重ねて別のキーオンがあると、シンバル系のリズム2のシーケンスシステムを使用して、アドリブモチーフのリズム音が、さらにもう1音、遅れたタイミングで発音される。むろん、リズムのシーケンスレジスタ群の数と、ステップ190〜1A2のリズムのキーオンシーケンス処理のステップ数を増やせば、キーの同時操作で同時に発音できるアドリブモチーフのリズム音を増やすことができる。
【0167】なお、リズムの系列をドラム系、シンバル系以上に細かい系列に分割してもよいし、1つ1つの細かい楽器ごとに分割したり、弦系、木管系、金管系(トランペット系、ホルン系)、音の高さ、音の持続性等で分けてもよい。この系列ごとに自動演奏を停止させる形態は、リズム以外にメロディ、ベース、アルペジオ、コードについて行ってもよい。また、逆に例えば第1オートリズムをシンバル系として、ドラム系のアドリブモチーフ演奏で、シンバル系のオートリズムを停止させるというように、アドリブモチーフと異なる系列の自動演奏を停止させてもよい。さらに、アドリブモチーフ演奏で自動演奏を停止させる形態は、リズム全体、メロディ全体というように、全系統ごと、さらには全演奏について、行うようにしてもよい。このほか、キーオフ後、自動演奏を再開するまで待ち時間がなくてもよい。この場合ステップ1A1、1A2、246〜248は省略される。また、キーオフ後、自動演奏を再開するまで待ち時間が1小節以外の時間でもよい。この場合、ステップ1A1のセットデータは1小節以外のデータとなる。
【0168】<インタラプト信号INT2出力時の周期的割り込み処理>図32〜図34は、上記プログラマブルタイマ11からCPU12にインタラプト信号INT2が出力されたときの楽音発音処理のフローチャートを示すものである。この処理では、リズム1、リズム2、ベース、アルペジオ、メロディ1、メロディ2、コードのシーケンス処理等が行われる。
【0169】《リズムのシーケンス処理》まずリズム1シーケンス処理では、リズム1のシーケンスレジスタ群78のAレジスタのUSEフラグが「1]の使用中か否か判別する(ステップ200)。「1」の使用中であれば、Dレジスタのステップタイムを−1して(ステップ201)、「0」になったか否か判別する(ステップ202)。このステップタイムを−1する処理は、インタラプト信号INT2出力ごとに行われ、ステップタイム分の時間が経過すると「0」になる。
【0170】「0」になると、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地のデータの最上位ビットが「1」か否か、すなわち音色データか否か判別する(ステップ203)。音色データではなく、ビートデータであれば、ステップ209に進み、「1」のオン/オフデータ、上記Cレジスタにセットした発音キーナンバと、「1」のゲートタイムと、このビートデータ内のベロシティと、上記Bレジスタにセットしたリズム音色ナンバとをリングバッファ49に書き込む(ステップ209)。次いで、リングトップアドレスレジスタ92の値を+4し(ステップ210)、HLレジスタの値を+2して(ステップ211)、次のビートデータのステップタイムをDレジスタにセットし(ステップ212)、ステップ202に戻る。
【0171】上記ステップ203で、「1」の音色データであることが判別されれば、ステップ204に進み、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地のデータが「11…1(255)」か否か、すなわちリピートデータか否か判別する(ステップ204)。
【0172】リピートデータでなければ、ステップ207に進み、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地より、ローアキーナンバを読み出し、このローアキーナンバから図1313に示すリズム音色テーブル44の記憶内容に基づいて、リズム音色ナンバと発音キーナンバを求め、おのおのBレジスタ、Cレジスタにセットする(ステップ207)。次いで、HLレジスタの値を+2し(ステップ208)、上記ステップ209〜212のビートデータのセットにはいり、ステップ202に戻る。
【0173】上記ステップ204で、「11…1(255)」のリピートデータであることが判別されれば、このリピートデータのステップタイムをDレジスタにセットして(ステップ205)、HLレジスタにスタートアドレスデータを再び書き込み(ステップ206)、ステップ202に戻る。このスタートアドレスは、ステップ191と同じようにして決定される。
【0174】このようにして、ステップタイム経過ごとに(ステップ200〜202)、リズムのアドリブモチーフのビートデータのセット(ステップ209〜212)、音色データのセット(ステップ207、208)が行われ、リピートデータで先頭からの繰り返しが行われる(ステップ204〜206)。
【0175】上記ステップ200で、USEフラグが「0」であることが判別、又はステップ202で、Dレジスタのステップタイムがまだ「0」でないことが判別されれば、リズム2のシーケンス処理にはいる(ステップ213)。このリズム2のシーケンスの処理は、上記のリズム1のシーケンス処理(ステップ200〜212、マクロルーチンMACRO4)と同じものである。ただし使用されるシーケンスレジスタ群は、リズム2のものである。
【0176】《ベースのシーケンス処理》ベースのシーケンス処理では、ベースのシーケンスレジスタ群80のAレジスタのUSEフラグが「1]の使用中か否か判別する(ステップ214)。「1」の使用中であれば、Dレジスタのステップタイムを−1して(ステップ215)、「0」になったか否か判別する(ステップ216)。このステップタイムを−1する処理は、インタラプト信号INT2出力ごとに行われ、ステップタイム分の時間が経過すると「0」になる。
【0177】「0」になると、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地のデータの最上位ビットが「1」か否か、すなわち音色データか否か判別する(ステップ217)。音色データではなく、音符データであれば、ステップ224に進み、「1」のオン/オフデータ、上記音符データのキーナンバをコードルートレジスタ76の値で修正した値と、続くゲートタイムと、ベロシティと、上記Bレジスタの音色ナンバとをリングバッファ49に書き込む(ステップ224)。次いで、リングトップアドレスレジスタ92の値を+4し(ステップ225)、HLレジスタの値を+4して(ステップ226)、次のデータの最上位ビットが「1」で、音色データなら(ステップ227)、1つ先の番地のステップタイムをDレジスタにセットし(ステップ228)、「0」で音符データなら、3つ先の番地のステップタイムをDレジスタにセットし(ステップ228)、ステップ216に戻る。
【0178】上記ステップ217で、「1」の音色データであることが判別されれば、ステップ218に進み、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地のデータが「11…1(255)」か否か、すなわちリピートデータか否か判別する(ステップ218)。
【0179】リピートデータでなければ、ステップ221に進み、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地より、音色ナンバを読み出し、Bレジスタにセットする(ステップ221)。次いで、HLレジスタの値を+2し(ステップ222)、次の音符データのステップタイムをDレジスタにセットし(ステップ223)、ステップ216に戻る。
【0180】上記ステップ218で、「11…1(255)」のリピートデータであることが判別されれば、このリピートデータのステップタイムをDレジスタにセットして(ステップ219)、HLレジスタにスタートアドレスデータを再び書き込み(ステップ220)、ステップ216に戻る。このスタートアドレスは、ステップ191と同じようにして決定される。
【0181】このようにして、ステップタイム経過ごとに(ステップ214〜216)、ベースのアドリブモチーフの音符データのセット(ステップ224〜229)、音色データのセット(ステップ221〜223)が行われ、リピートデータで先頭からの繰り返しが行われる(ステップ218〜220)。
【0182】上記ステップ214で、USEフラグが「0」であることが判別、又はステップ216で、Dレジスタのステップタイムがまだ「0」でないことが判別されれば、順番にアルペジオ、メロディ1、メロディ2のシーケンス処理にはいる(ステップ230、231、232)。このアルペジオ、メロディ1、メロディ2のシーケンスの処理は、上記のベースのシーケンス処理(ステップ214〜229、マクロルーチンMACRO5)と同じものである。ただし使用されるシーケンスレジスタ群は、アルペジオ、メロディ1、メロディ2のものである。
【0183】《コードのシーケンス処理》コードのシーケンス処理では、コードのシーケンスレジスタ群80のAレジスタのUSEフラグが「1]の使用中か否か判別する(ステップ233)。「1」の使用中であれば、Dレジスタのステップタイムを−1して(ステップ234)、「0」になったか否か判別する(ステップ235)。このステップタイムを−1する処理は、インタラプト信号INT2出力ごとに行われ、ステップタイム分の時間が経過すると「0」になる。
【0184】「0」になると、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地のコードルートデータをコードルートレジスタ76にセットし(ステップ236)、HLレジスタの値を+2して(ステップ237)、次の番地のステップタイムをDレジスタにセットし(ステップ238)、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の指定番地のデータが「11…1(255)」か否か、すなわちリピートデータか否か判別する(ステップ239)。
【0185】リピートデータでなければ、ステップ235に戻り、リピートデータあれば、HLレジスタにスタートアドレスデータを再び書き込み(ステップ240)、ステップ235に戻る。このスタートアドレスは、ステップ191と同じようにして決定される。
【0186】このようにして、ステップタイム経過ごとに(ステップ233〜235)、コードのアドリブモチーフのコードルートデータのセットが行われ(ステップ236〜238)、リピートデータで先頭からの繰り返しが行われる(ステップ239、240)。
【0187】上記ステップ233で、USEフラグが「0」であることが判別、又はステップ235で、Dレジスタのステップタイムがまだ「0」でないことが判別されれば、つぎのステップ241に進む。
【0188】《カウント処理》ステップ242〜245、251〜256はタイムカウント処理である。この処理では、まずメジャクロックカウンタ85のローバイトを+1し(ステップ241)、メジャクロックレジスタ71の拍子データに一致すると(ステップ242)、メジャクロックカウンタ85のローバイトをクリアし(ステップ243)、メジャクロックカウンタ85のハイバイトを+1する(ステップ244)。
【0189】次いで、モードレジスタ73の値が「00100101в(вは2進数であることを示す記号)」、すなわちOFAモードかつベース/リズムモードでスタート/ストップスイッチ38がオン状態でなく(ステップ245)、さらにモードレジスタ73の値が「0001***1в(*は任意の値)」、すなわち記録/割当モードでスタート/ストップスイッチ38がオン状態であれば(ステップ251)、ステップタイムカウンタ86を+1する(ステップ252)。
【0190】そして、ステップタイムカウンタ86の値が「11…1(255)」に達すれば(ステップ253)、ダミーイベントデータをレコードバッファ48に書き込み(ステップ254)、レコーディングアドレスレジスタ87を+2し(ステップ255)、ステップタイムカウンタ86をクリアして(ステップ256)、リターンする。上記ダミーデータは、ステップタイムがオーバフローした場合の便宜的なデータであり、アドリブモチーフのメロディ又はベースの場合は2バイトの音色ナンバがセットされ、アドリブモチーフのリズムの場合は2バイトのローアキーナンバがセットされ、アドリブモチーフのコードの場合は2バイトのコードルートデータがセットされる。
【0191】《リズム再スタート処理》上記ステップ245で、OFAモードかつベース/リズムモードでスタート/ストップスイッチ38がオン状態であれば、第1オートリズム及び第2オートリズムの再スタート処理を行い、ステップ251に戻る。
【0192】この第1オートリズム再スタート処理では、Mレジスタの値が「00н」〜「80н」か否か、すなわちマニュアルのリズム演奏状態で、オートのリズム演奏の再スタートまでの待機時間があるか否か判別する(ステップ246)。もしYESであれば、Mレジスタの値を−1し(ステップ247)、Mレジスタの値が「0」であれば(ステップ248)、リズム1のシーケンスレジスタ群78のセット処理を行う(ステップ249)。このステップ249の処理は、図37に示す通りである。
【0193】次いで第2オートリズムについても、再スタート処理にはいる(ステップ250)。この第2オートリズムの再スタート処理は、上記の第1オートリズムの再スタート処理(ステップ246〜249、マクロルーチンMACRO7)と同じものである。ただし使用されるシーケンスレジスタ群は、リズム2のものである。こうして、キーオフ後、待機時間が経過すると、第1オートリズム、第2オートリズム、それぞれについて、独立にオートリズムの再スタートが行われる。
【0194】<パネルスイッチ操作時の処理>図35〜図36は、パネルスイッチボード15でスイッチ操作があり、上記パネルスキャン回路16からCPU12にインタラプト信号INT4が出力されたときの処理のフローチャートを示すものである。
【0195】この処理では、まずオンイベントであれば(ステップ400)、このイベントに係るスイッチがテンポスイッチ37の場合、テンポレジスタ72の値及びプログラマブルタイマ11へのプリセット値を修正し(ステップ401、402)、音色スイッチ33が操作された場合、メロディ音色レジスタ74の値を修正して、パネル表示メモリ3の記憶内容を修正する(ステップ403、404)。
【0196】また、リズムスイッチ34が操作された場合、リズム種類レジスタ75の値を修正して、パネル表示メモリ3の記憶内容を修正し(ステップ405、406)、スタート/ストップスイッチ38が操作された場合、モードレジスタ73のS/Sフラグを反転して、パネル表示メモリ3のスタート/ストップスイッチ38に応じた記憶内容を修正する(ステップ407、408)。
【0197】ここで、上記S/Sフラグが「1」、すなわちスタート/ストップスイッチ38がオン状態であれば(ステップ409)、リズム1及びリズム2のシーケンスレジスタ群78、79のセット処理を行い、オートリズムをスタートさせる(ステップ410)。
【0198】この処理は、図37に示す通りである。このとき、モードレジスタ73のAUTフラグが「1」で、オートモードであれば、ベース及びアルペジオのシーケンスレジスタ群80、81のセット処理を行い、オートベース、オートアルペジオをスタートさせる(ステップ411、412)。さらに、モードレジスタ73のR/Aフラグが「1」で、記録/割当モードであれば、レコーディングアドレスレジスタ87及びメジャクロックカウンタ85をクリアする(ステップ413〜415)。
【0199】また上記ステップ409で、S/Sフラグが「0」、すなわちスタート/ストップスイッチ38がオフ状態になれば、リズム1及びリズム2のシーケンスレジスタ群78、79のUSEフラグをクリアして、使用していない状態とし、オートリズムをストップさせる(ステップ416)。このとき、モードレジスタ73のAUTフラグが「0」で、オートモードであれば、ベース及びアルペジオのシーケンスレジスタ群80、81のUSEフラグをクリアして、使用していない状態とし、オートベース、オートアルペジオをストップさせる(ステップ417、418)。
【0200】さらに、モードレジスタ73のR/Aフラグが「1」で、記録/割当モードであれば、「11…(255)」のリピートデータとメジャクロックレジスタ71の値とメジャクロックカウンタ85の値との差分データをレコードバッファ48に書き込み、モードレジスタ73のR/Aフラグとパネル表示メモリ3の記録/割当スイッチ39に応じた記憶内容をクリアする(ステップ419〜421)。
【0201】ついで、キーボード13のいづれかのキーが押鍵中か否か判別する(ステップ422)。押鍵中でなければ、モードスイッチ31が操作された場合、モードレジスタ73の値を修正して、パネル表示メモリ3の記憶内容を修正する(ステップ423、424)。この場合、OFAモードかつオートモードであれば、コードのシーケンスレジスタ群84のUSEフラグをクリアして、使用していない状態とし、コード検出をストップさせる(ステップ425)。そして、OFAスイッチ32が操作された場合、モードレジスタ73の値を修正して、パネル表示メモリ3の記憶内容を修正する(ステップ426、427)。この場合、OFAフラグが「0」になれば、やはりコードのシーケンスレジスタ群84のUSEフラグをクリアして、使用していない状態とし、コード検出をストップさせる(ステップ428、429)。
【0202】これらステップ425、429により、モード切り換えがあると、コードのアドリブモチーフの読み出しかつ出力は停止される。むろん、別の指示、例えばスタート/ストップスイッチ38のオフにより停止するようにしてもよい。
【0203】次に、モードレジスタ73のS/Sフラグが「0」、すなわちスタート/ストップスイッチ38がオフ状態であれば(ステップ430)、記録/割当スイッチ39が操作された場合、モードレジスタ73のR/Aフラグを反転し、パネル表示メモリ3の記憶内容を修正して(ステップ431、432)、リターンする。
【0204】上記ステップ422で、押鍵中であれば上述のステップ423〜432のモード切り換え処理はなされず、押鍵中に演奏内容が変化してしまうことがない。
【0205】<リズムのシーケンスレジスタ群78、79のセット処理>上記ステップ249、410のリズムのシーケンスレジスタ群78、79のセット処理は、図3737のフローチャートに基づいて行われる。まず、図3に示すアドリブモチーフアサインリスト42b(47b)の「024н」番地の第1オートリズムのパターンナンバと「1」のUSEフラグとをAレジスタにセットし、このパターンナンバに対応した図2に示すスタートアドレス、すなわちアドリブスタートアドレスリスト42a(47a)の上記パターンナンバを2倍した番地のデータをHLレジスタにセットする(ステップ501)。Aレジスタにセットするデータは通常はイベントキーナンバであるが、オートモチーフには対応するキーナンバがないため、アドリブモチーフのパターンナンバがセットされる。
【0206】次いで、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の先頭番地より、ローアキーナンバを読み出し、このローアキーナンバから図13に示すリズム音色テーブル44の記憶内容に基づいて、リズム音色ナンバと発音キーナンバを求め、おのおのBレジスタ、Cレジスタにセットする(ステップ502)。次いで、HLレジスタの値を+2する(ステップ503)。
【0207】そして、2番目のビートデータのステップタイムデータを読み出してDレジスタに書き込み(ステップ504)、このステップタイムデータが「0」か否か判断する(ステップ505)。「0」であれば、待ち時間が無く、直ちに発音しなくてはならず、HLレジスタで指定されるRAM20のアドリブモチーフパターンエリア47の番地の記憶データの最上位ビットが「1」か否か、すなわち図5に示すように、記憶データがローアキーナンバか否か判断する(ステップ506)。
【0208】現在先頭のビートデータを読み出した直後であるからローアキーナンバであることが判断され、ステップ507に進み、「1」のオン/オフデータ、上記Cレジスタにセットした発音キーナンバと、「1」のゲートタイムと、このビートデータ内のベロシティと、上記Bレジスタにセットしたリズム音色ナンバとをリングバッファ49に書き込み(ステップ507)、リングトップアドレスレジスタ92の値を+4し(ステップ508)、ステップ503に戻る。
【0209】次のステップ503〜505で、2番目のビートデータのステップタイムデータが「0」か否か判断する。しかし通常は、1番目のビートデータと2番目のビートデータとの間のステップタイムデータは、「0」ではないので、そのままリターンする。
【0210】こうして、第1オートリズムのオートモチーフパターンの先頭のリズム音色ナンバ及び発音キーナンバのセット(ステップ502)と、これに続く第1番目のビートデータのセット(ステップ503〜508)とが行われる。第2番目以降のビートデータのセットは、既に述べた図32〜図34のリズム1のシーケンスの処理で、インタラプト信号INT2の出力時に行われる。このことは次述する第2オートリズムでも同じである。
【0211】次いで、図3に示すアドリブモチーフアサインリスト42b(47b)の「025н」番地の第2オートリズムのパターンナンバをAレジスタにセットし、このパターンナンバに対応した図2に示すスタートアドレス、すなわちアドリブスタートアドレスリスト42a(47a)の上記パターンナンバを2倍した番地のデータをHLレジスタにセットする(ステップ509)。
【0212】そして、図3に示すアドリブモチーフアサインリスト42b(47b)の「026н」番地の第1オートリズムと第2オートリズムの間のディレイ時間をDレジスタにセットし(ステップ510)、このディレイ時間が「0」か否か判別する(ステップ511)。「0」であれば、ディレイ時間が既に経過したか、始めから「0」かであり、リズム2のシーケンス処理にはいり(ステップ512)、リターンする。このリズム2のシーケンスの処理は、上記のリズム1のシーケンス処理(ステップ501〜508、マクロルーチンMACRO8)と同じものである。ただし使用されるシーケンスレジスタ群は、リズム2のものである。
【0213】なお、上記ステップ249のリズム1のシーケンスレジスタ群78のセット処理では、ステップ501〜508の処理が行われ、ステップ250内の同じリズム2のシーケンスレジスタ群79のセット処理では、ステップ509、512の処理が行われる。
【0214】また、上記ステップ412のベース及びアルペジオのシーケンスレジスタ群80、81のセット処理では、上記ステップ501〜508と同じ処理が行われる。ただし使用されるシーケンスレジスタ群はベース、アルペジオのものであり、セットされるオートモチーフのパターンナンバは、オートベース、オートアルペジオのものであり、ステップ402はステップ221に置き変わり、ステップ504はステップ229に置き変わり、ステップ507はステップ224に置き変わる。
【0215】本発明は上記実施例に限定されず、本発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、演奏のモチーフを示す情報は、図4〜図6各図に示すものに対し、情報を付加したり削除したりしてもよい。また、楽音の放音を指示する手段は、キーボード以外に弦、木管、金管等のものでもよい。
【0216】本発明の実施の態様は次のとおりである。[A]コード伴奏のモチーフを示す情報を記憶する記憶手段と、楽音の放音を指示する指示手段と、この指示手段が操作があったとき、上記記憶手段より情報を読み出す読み出し手段と、この読み出し手段で読み出された情報を出力する出力手段とを備えたことを特徴とするモチーフ演奏装置。 [B]上記読み出し手段は、上記指示手段の操作が解除された後でも、読み出しを続行する手段であることを特徴とする請求項A記載のモチーフ演奏装置。 [C]上記読み出し手段または出力手段は、所定のスイッチ操作により、その動作を停止させる手段であることを特徴とする請求項Aまたは請求項B記載のモチーフ演奏装置。
【0217】[D] 演奏のテンポを設定するテンポ設定手段と、 複数のコードの内容とこの各コードの演奏のタイミングとを示すモチーフ情報を記憶するとともに、さらにこのモチーフ情報をリズムの種類に応じて複数種類記憶する記憶手段と、リズムの種類を設定するリズム設定手段と、 楽音の発音を指示する複数の発音指示手段と、 この複数の発音指示手段の指示に応答して、上記モチーフ情報の中の上記リズム設定手段によって設定されたリズムに応じたモチーフ情報を、前記テンポ設定手段で設定されたテンポに基づき、上記記憶手段より順次読み出す読み出し手段と、 この読み出し手段によって読み出されたモチーフ情報のコードに基づいて、上記複数のコードを上記各コードの演奏のタイミングにおいてコード伴奏を行うコード伴奏手段とを備えたことを特徴とするモチーフ演奏装置。
【0218】[E]複数の演奏の内容とこの各演奏のタイミングとを示すモチーフ情報を各演奏パートに対応させて記憶する記憶手段と、 上記各演奏パートごとに楽音の発音を指示する複数の発音指示手段と、 この発音指示手段の操作に応じて、上記記憶手段よりモチーフ情報を読み出す読み出し手段と、 上記発音指示手段のオン操作を上記各演奏パートごとに検出する第1の検出手段と、 この第1の検出手段の検出に応じて、この演奏パートに応じたモチーフ情報の上記読み出し手段による読み出しを開始させる第1の読み出し制御手段と、 上記発音指示手段のオフ操作を上記各演奏パートごとに検出する第2の検出手段と、 この第2の検出手段の検出に応じて、この演奏パートに応じたモチーフ情報の上記読み出し手段による読み出しを停止させる第2の読み出し制御手段とを備えたことを特徴とするモチーフ演奏装置。
【0219】[F]上記記憶手段に記憶されるモチーフ情報は、上記発音指示手段の指示に応じて入力された情報であることを特徴とする請求項DまたはE記載のモチーフ演奏装置。 [G]上記記憶手段は、上記複数の発音指示手段の各々に対応した複数種類のモチーフ情報を記憶し、上記読み出し手段は、指示された発音指示手段に対応するモチーフ情報を、この記憶手段から選択的に順次読み出すことを特徴とする請求項D、EまたはF記載のモチーフ演奏装置。 [H]上記複数の発音指示手段それぞれに対応される複数種類のモチーフ情報は、上記記憶手段に記憶された他のモチーフ情報に切り換え選択されることを特徴とする請求項D、E、FまたはG記載のモチーフ演奏装置。
【0220】[J]複数のメロディ演奏の内容とこの各メロディ演奏のタイミングとを示すメロディモチーフ情報を記憶する手段と、 楽音の発音を指示する手段と、 この発音の指示に応じて、上記記憶されたメロディモチーフ情報を読み出して出力する手段とを備えたことを特徴とするモチーフ演奏装置。
【0221】[K]複数のメロディ演奏の内容とこの各メロディ演奏のタイミングとを示すメロディモチーフ情報を記憶する手段に対して、 楽音の発音の指示に基づいて、この記憶されたメロディモチーフ情報を読み出して出力させることを特徴とするモチーフ演奏方法。
【0222】[L]自動伴奏の情報を記憶する手段と、 この記憶された自動伴奏の情報の読み出しを指示する手段と、 この指示に応じて、設定された演奏のテンポに基づいて、上記自動伴奏の情報を読み出して出力する手段と、 複数のメロディ演奏の内容とこの各メロディ演奏のタイミングとを示すメロディモチーフ情報を記憶する手段と、 この記憶されたメロディモチーフ情報の読み出しを指示する手段と、 この指示に応じて、上記設定された演奏のテンポに基づいて、上記記憶されたメロディモチーフ情報を読み出して、上記自動伴奏の情報の出力に同期させて出力する手段とを備えたことを特徴とするモチーフ演奏装置。
【0223】[M]自動伴奏の情報を記憶する手段に対して、 この記憶された自動伴奏の情報の読み出しを指示させ、 この指示に応じて、設定された演奏のテンポに基づいて、上記自動伴奏の情報を読み出しさせて出力させ、 複数のメロディ演奏の内容とこの各メロディ演奏のタイミングとを示すメロディモチーフ情報を記憶する手段に対して、 この記憶されたメロディモチーフ情報の読み出しを指示させ、 この指示に応じて、上記設定された演奏のテンポに基づいて、上記記憶されたメロディモチーフ情報を読み出しさせて、上記自動伴奏の情報の出力に同期させて出力させることを特徴とするモチーフ演奏方法。
【0224】本発明は、演奏のモチーフ情報をリズム種類ごとまたは演奏パートごとに記憶し、楽音の発音を指示する発音指示手段が操作されている間、上記モチーフ情報を読み出して出力するようにしたものである。これにより、発音指示手段の発音指示に変化がなくても、モチーフ情報のパターンに応じて、演奏内容が変化する。また、上記発音指示手段が指示されている間、上記モチーフ情報を読み出して出力し、発音指示手段のオフ操作があれば、モチーフ情報の読み出しを停止するようにしたことにより、発音指示手段の指示が続く限りは、モチーフ情報のパターンに応じて、楽音が自動的に複数音続けて鳴り、楽に演奏を行うことができる。
【0225】さらに、発音指示手段を指示している間だけ、モチーフ情報に基づく演奏内容が自動的に発音され(以下、自動演奏という)、この自動演奏を停止したければ、発音指示手段の指示を停止すれば良く、演奏者が発音指示手段に対して演奏操作をしながら自動演奏に関与することができる。そして、このモチーフ情報はリズム種類ごとまたは演奏パートごとに選択することができ、幅の広いモチーフ演奏を行うことができる。
【0226】一例が図3に示すもので、キーボード13の各キーに対し、1〜16の番号で示す種々のアドリブモチーフパターンが割り当てられている。このパターンは、16ビートのリズムにおける第1メロディ音のアドリブモチーフを示すものである。他の第2メロディ音、ベース音、リズム音及び伴奏コード音の各演奏パートについても、図7に示すようにアドリブモチーフ情報が記憶され選択出力される。さらにこれらの各演奏パートごとのアドリブモチーフ情報は、16ビート以外に図7に示すように、ディスコ、ボサノバ、ワルツ等の他のリズムに対応するアドリブモチーフ情報も記憶されて選択出力される。
【0227】このアドリブモチーフのデータフォーマット例は、メロディ音が図4、リズム音が図5、伴奏コード音が図6に示す通りである。そして図30のステップ179に示すように、キーオフがあってもコードシーケンスレジスタ群84のUSE(使用中)フラグはクリアされず、引き続き図33のサブルーチンMACRO6のアドリブモチーフコードのシーケンス処理が行われる。次いで図36のステップ425、429に示すように、モード切り換えにより、アドリブモチーフコードのシーケンス処理は停止する。
【0228】これにより、記憶するモチーフ情報が伴奏についてのものであれば、発音指示手段の指示に変化がなくても、このモチーフパターンに応じて、伴奏内容が変化し、コードタイプ及びコードルートが変化することになる。また、記憶するモチーフ情報がリズムについてのものであれば、発音指示手段の指示が続く限りは、このモチーフパターンに応じて、リズム音が自動的に複数音続けて鳴り、楽にリズム演奏を行うことができる。
【0229】さらに、記憶するモチーフ情報がメロディ演奏についてのものであれば、発音指示手段を1つ指示するだけで自動メロディ演奏が行え、自動メロディ演奏を停止したければ、発音指示手段の指示を停止すればよく、演奏者が発音指示手段に対して演奏操作をしながら自動メロディ演奏に関与することができる。ここで、モチーフとは、フレーズ、ピリオド(楽節)、複数のピリオド等までも含む複数音の概念である。また、コードはコードタイプのみまたはコードタイプ及びコードルート(根音)両方を示す。
【0230】
【発明の効果】以上詳述したように、本発明は、演奏のモチーフ情報を記憶し、楽音の発音を指示する発音指示手段の指示があったときに、指示された発音指示手段に対応したモチーフ情報を読み出して出力するようにした。したがって、発音指示手段の指示に変化がなくても、モチーフ情報のパターンに応じて、演奏内容が変化する等の効果を奏する。
【0231】また、発音指示手段を指示している間だけ、モチーフ情報に基づく演奏内容が自動的に発音され(以下、自動演奏という)、この自動演奏を停止したければ、発音指示手段の指示を停止すれば良く、演奏者が発音指示手段に対して演奏操作をしながら自動演奏に関与することができる等の効果を奏する。
【図面の簡単な説明】
【図1】アドリブモチーフデータ等の記憶例を示す図である。
【図2】アドリブモチーフデータ等の記憶例を示す図である。
【図3】アドリブモチーフデータ等の記憶例を示す図である。
【図4】アドリブモチーフデータの記憶フォーマットを示す図である。
【図5】アドリブモチーフデータの記憶フォーマットを示す図である。
【図6】アドリブモチーフデータの記憶フォーマットを示す図である。
【図7】アドリブモチーフエリアテーブル41を示す図である。
【図8】モチーフ演奏装置の全体回路図である。
【図9】パネルスイッチボード15を示す図である。
【図10】キーボード13を示す図である。
【図11】トーンナンバのリストを示す図である。
【図12】拍子データのリストを示す図である。
【図13】リズム音色テーブル44を示す図である。
【図14】キー判別デコーダ45を示す図である。
【図15】レコードバッファ48、リングバッファ49を示す図である。
【図16】アサインメントメモリ4を示す図である。
【図17】各モードの機能を示す図である。
【図18】各モードの機能を示す図である。
【図19】各モードの機能を示す図である。
【図20】ワーキングRAM46を示す図である。
【図21】ワーキングRAM46を示す図である。
【図22】楽音発生回路24を示す図である。
【図23】アドリブモチーフデータ記録による記憶内容の変化をを示す図である。
【図24】アドリブモチーフデータ記録による記憶内容の変化をを示す図である。
【図25】メインルーチンのフローチャートを示す図である。
【図26】OFAモードでないときのアッパーキーボードのキーイベント(キーオン、キーオフ)時の処理のフローチャートを示す図である。
【図27】OFAモードでないときのローアキーボードのキーイベント(キーオン、キーオフ)時の処理のフローチャートを示す図である。
【図28】OFAモードのときのアッパーキーボードのキーイベント(キーオン、キーオフ)時の処理のフローチャートを示す図である。
【図29】OFAモードのときのアッパーキーボードのキーイベント(キーオン、キーオフ)時の処理のフローチャートを示す図である。
【図30】OFAモードのときのローアキーボードのキーイベント(キーオン、キーオフ)時の処理のフローチャートを示す図である。
【図31】OFAモードのときのローアキーボードのキーイベント(キーオン、キーオフ)時の処理のフローチャートを示す図である。
【図32】インタラプト信号INT2出力時の一定周期ごとに行われる処理のフローチャートを示す図である。
【図33】インタラプト信号INT2出力時の一定周期ごとに行われる処理のフローチャートを示す図である。
【図34】インタラプト信号INT2出力時の一定周期ごとに行われる処理のフローチャートを示す図である。
【図35】パネルスイッチ操作時の処理のフローチャートを示す図である。
【図36】パネルスイッチ操作時の処理のフローチャートを示す図である。
【図37】リズムのシーケンスレジスタ群78、79のセット処理のフローチャートを示す図である。
【符号の説明】
4…アサインメントメモリ、12…CPU、13…キーボード、15…パネルスイッチボード、19…ROM、20…RAM、31…モードスイッチ、32…OFA(ワンフィンガーアドリブ)スイッチ、33…音色スイッチ、34…リズムスイッチ、38…スタート/ストップスイッチ、39…記録/割当スイッチ、42(47)…アドリブモチーフパターンエリア、42a(47a)…アドリブモチーフスタートアドレスリスト、42b(47b)…アドリブモチーフアサインリスト、46…ワーキングRAM、48…レコードバッファ、49…リングバッファ。

【特許請求の範囲】
【請求項1】 音高と、発音開始のタイミングと、発音終了のタイミングとを示す数音分のメロディモチーフ情報を記憶する手段と、発音の指示に応じて、上記記憶されたメロディモチーフ情報を読み出して出力するとともに、この発音の指示が継続されている間、当該メロディモチーフ情報の読み出し出力を維持し、当該発音の指示の解除に応じて、当該メロディモチーフ情報の読み出し出力を停止する手段とを備えたことを特徴とするモチーフ演奏装置。
【請求項2】 音高と、発音開始のタイミングと、発音終了のタイミングとを示す数音分のメロディモチーフ情報を記憶する手段に対して、楽音の発音の指示に基づいて、この記憶されたメロディモチーフ情報を読み出して出力させるとともに、この発音の指示が継続されている間、当該メロディモチーフ情報の読み出し出力を維持させ、当該発音の指示の解除に応じて、当該メロディモチーフ情報の読み出し出力を停止させることを特徴とするモチーフ演奏方法。
【請求項3】 自動伴奏の情報を記憶する手段と、この記憶された自動伴奏の情報の読み出しを指示する手段と、この指示に応じて、設定された演奏のテンポに基づいて、上記自動伴奏の情報を読み出して出力する手段と、音高と、発音開始のタイミングと、発音終了のタイミングとを示す数音分のメロディモチーフ情報を記憶する手段と、楽音の発音を指示する手段と、この発音の指示に応じて、上記自動伴奏の情報の読み出し進行状況に関わらず、上記記憶されたメロディモチーフ情報を先頭から読み出すとともに、上記設定された演奏のテンポに基づいて、当該記憶されたメロディモチーフ情報を読み出して、上記自動伴奏の情報の出力に同期させて出力する手段とを備えたことを特徴とするモチーフ演奏装置。
【請求項4】 自動伴奏の情報を記憶する手段に対して、この記憶された自動伴奏の情報の読み出しを指示させ、この指示に応じて、設定された演奏のテンポに基づいて、上記自動伴奏の情報を読み出しさせて出力させ、音高と、発音開始のタイミングと、発音終了のタイミングとを示す数音分のメロディモチーフ情報を記憶する手段に対して、楽音の発音の指示に基づいて、上記自動伴奏の情報の読み出し進行状況に関わらず、上記記憶されたメロディモチーフ情報を先頭から読み出しさせるとともに、上記設定された演奏のテンポに基づいて、当該記憶されたメロディモチーフ情報を読み出しさせて、上記自動伴奏の情報の出力に同期させて出力させることを特徴とするモチーフ演奏方法。

【図2】
image rotate


【図1】
image rotate


【図3】
image rotate


【図5】
image rotate


【図6】
image rotate


【図4】
image rotate


【図7】
image rotate


【図11】
image rotate


【図8】
image rotate


【図9】
image rotate


【図10】
image rotate


【図12】
image rotate


【図13】
image rotate


【図14】
image rotate


【図15】
image rotate


【図16】
image rotate


【図17】
image rotate


【図23】
image rotate


【図18】
image rotate


【図19】
image rotate


【図20】
image rotate


【図21】
image rotate


【図22】
image rotate


【図24】
image rotate


【図25】
image rotate


【図26】
image rotate


【図27】
image rotate


【図29】
image rotate


【図34】
image rotate


【図28】
image rotate


【図30】
image rotate


【図31】
image rotate


【図32】
image rotate


【図33】
image rotate


【図35】
image rotate


【図36】
image rotate


【図37】
image rotate


【公開番号】特開2001−166771(P2001−166771A)
【公開日】平成13年6月22日(2001.6.22)
【国際特許分類】
【出願番号】特願2000−335165(P2000−335165)
【分割の表示】特願平11−98126の分割
【出願日】平成1年10月12日(1989.10.12)
【出願人】(000001410)株式会社河合楽器製作所 (563)