JP2705421B2 - 自動伴奏装置 - Google Patents

自動伴奏装置

Info

Publication number
JP2705421B2
JP2705421B2 JP4001007A JP100792A JP2705421B2 JP 2705421 B2 JP2705421 B2 JP 2705421B2 JP 4001007 A JP4001007 A JP 4001007A JP 100792 A JP100792 A JP 100792A JP 2705421 B2 JP2705421 B2 JP 2705421B2
Authority
JP
Japan
Prior art keywords
pattern
accompaniment
rhythm
data
chord
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP4001007A
Other languages
English (en)
Other versions
JPH0643872A (ja
Inventor
長谷部  雅彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP4001007A priority Critical patent/JP2705421B2/ja
Publication of JPH0643872A publication Critical patent/JPH0643872A/ja
Application granted granted Critical
Publication of JP2705421B2 publication Critical patent/JP2705421B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、自動伴奏にフィルイ
ンを良好に挿入したり、あるいは、リズム音と伴奏音と
の整合を図ることができる自動伴奏装置に関する。
【0002】
【従来の技術】自動的に伴奏音を発生する自動伴奏装置
が従来から種々開発されている。この種の自動伴奏装置
においては、リズム楽音、ベース音および和音(コー
ド)について各々所定の伴奏パターン、すなわち、リズ
ムパターン、ベースパターンおよびコードパターンを記
憶しており、これらのパターンに従って各楽音を発生す
るようにしている。この場合、各楽音について発音から
消音への変化および消音から発音への変化を示すデータ
(以下、これらの変化をイベントデータという)を各イ
ベントが発生すべきタイミングを示すタイミングデータ
とともに記憶しておき、自動伴奏中は記憶したタイミン
グデータと現在演奏中のタイミングとを比較し、これら
が一致した際にイベントデータを読み出して、各楽音の
発音および消音を制御するようにしている。また、記憶
する伴奏パターンとしては、例えば、2小節や4小節の
複数の小節からなっているパターンが多い。
【0003】ところで、自動伴奏は、周知のように、記
憶されている伴奏パターンを繰り返し用いるが(以下、
この繰り返しの伴奏パターンをノーマルパターンとい
う)、その途中に所定のフィルインパターンによる演奏
を挿入することがある。この場合、フィルイン演奏は、
演奏者が所定のスイッチを操作することによって開始さ
れるようになっている。また、フィルイン演奏が終了す
ると、もとのノーマルパターンに戻るようになってい
る。ここで、ノーマルパターンへの戻り方は、フィルイ
ンがどのタイミングで行われてもノーマルパターンの先
頭に戻るという戻り方が行われている。ここで、フィル
インパターンは、通常1小節のパターンであることが多
い。また、伴奏パターンとは別に、複数小節のコード進
行パターンを記憶しておき、このコード進行パターンに
基づいてベースパターンやコードバッキングパターンの
楽音を発生させるような自動伴奏装置もある。
【0004】
【発明が解決しようとする課題】このとき、伴奏パター
ンが複数小節で構成されている場合は、伴奏パターンの
各小節をコード進行に適合するように整合をとって発音
していく必要がある。例えば、コード進行パターンが4
小節の繰り返しであれば、このコード進行の各小節は各
々起承転結に対応した音楽表情の移り変わりがあり、そ
れに合わせて伴奏パターンの各小節にもそれぞれ起承転
結の表情の変化がある。それゆえ、コード進行の小節と
ノーマルパターンの小節の位置関係を整合させることが
必要である。
【0005】しかしながら、従来装置においては、フィ
ルインパターンが1小節であるとした場合、仮に3小節
目の途中においてフィルインパターンが使われると、曲
が4小節目に移行した際には、コード進行は4小節目に
入るが、ノーマルパターンは1小節目に戻ってしまうた
め、前述の例で言えば、コード進行が「結」の表情なの
にノーマルパターンは「起」の表情となって、コード進
行と伴奏演奏との整合が崩れ、音楽性に乏しい演奏にな
ってしまっていた。
【0006】また、リズムパターンの演奏進行中にリズ
ム以外の伴奏を開始させたとき、つまり、最初はリズム
音だけで、途中からベース音やコード音等の伴奏音を付
加する場合にも上記と同様の不都合が生じる。すなわ
ち、リズムパターン演奏途中、例えば、2小節目におい
て伴奏を開始させたときは、その時点からコード進行パ
ターンが開始されるため、コード信号が「起」の表情の
ときに伴奏パターンが「承」の表情となって、両者の整
合がとれなくなってしまい、音楽性に乏しくなってしま
っていた。
【0007】この発明は、上述した事情に鑑みてなされ
たもので、どのタイミングで伴奏を開始しても、コード
進行とリズムパターンとが整合し、違和感のない楽音的
に豊かな自動伴奏を得ることができる自動伴奏装置を提
供することを目的としている。
【0008】
【0009】
【課題を解決するための手段】この発明においては、リ
ズム演奏に用いられ、複数小節で構成されるリズムパタ
ーンを記憶したリズムパターン記憶手段と、前記リズム
パターンに対応した複数小節の伴奏パターンを記憶した
伴奏パターン記憶手段と、前記リズムパターンおよび伴
奏パターンを構成する小節数の、整数倍(但し2倍以
上)の小節数で構成されるコード進行パターンを記憶し
たコード進行記憶手段と、前記複数小節で構成されるリ
ズムパターンを繰り返し読出し、該読出したリズムパタ
ーンに従って、発音するリズム音を指示するリズム音指
示信号を発生するリズム音信号発生手段と、前記リズム
音信号発生手段によって読み出し中の、リズムパターン
小節の位置を検出する読出位置検出手段と、前記伴奏
パターンおよびコード進行パターンに基づく伴奏音の発
生を指示する伴奏音指示手段と、前記伴奏音指示手段に
よる指示に応じて、前記読出位置検出手段により検出さ
れたリズムパターンの小節の位置と、同じ小節の位置か
ら前記伴奏パターンおよびコード進行パターンの読出し
を開始するよう指示する読出開始位置指示手段と、前記
読出開始位置指示手段によって指示された小節の位置か
ら、伴奏音情報として前記伴奏パターンおよびコード進
行パターンを繰り返し読出す伴奏音情報読出手段と、前
記伴奏音情報読出手段によって読出された伴奏音情報に
従って、コード進行パターンおよび伴奏パターンに基づ
く伴奏音に対応した伴奏音信号を発生する伴奏音信号発
生手段とを具備することを特徴とする。
【0010】
【0011】
【作用】この発明による自動伴奏装置にあっては、リズ
ム音信号発生手段によってリズム音が発生されている状
態のときに、伴奏パターンおよびコード進行パターンに
基づく伴奏音の発生指示があると、リズムパターンの読
出中の小節の位置を検出し、検出した小節の位置と同じ
小節の位置の伴奏パターンおよびコード進行パターンの
読出位置から伴奏パターンおよびコード進行パターンが
読出される。したがって、リズム音と伴奏音の整合を図
ることができる。
【0012】
【実施例】以下、図面を参照してこの発明の実施例につ
いて説明する。 A:実施例の構成
【0013】図1は、この発明の一実施例の電気的構成
を示すブロック図である。図において、1は複数のキー
から構成される鍵盤であり、各キーの押鍵、離鍵状態は
押鍵検出回路2によって検出され、その検出信号がCP
U3に供給されるようになっている。4はCPU3に割
込信号INTを供給するタイマであり、CPU3は割込
信号INTが供給されると所定のタイマインタラプト処
理(後述)を実行するようになっている。なお、タイマ
4は、曲のテンポに応じて割込信号INTを出力する。
5はROMであり、CPU3で用いられるプログラムお
よび自動演奏に用いられる自動演奏データが記憶されて
いる。6はRAMであり、後述する種々のレジスタが設
定される。7は音源回路であり、CPU3の制御の下に
楽音信号を発生する。この音源回路7で発生された楽音
信号は、D/Aコンバータ8によってアナログ信号に変
換された後にサウンドシステム9に供給されて発音され
る。
【0014】10は、種々のスイッチから構成されるパ
ネルスイッチ部であり、各スイッチのオン/オフ状態が
スイッチ検出回路11によって検出され、その検出信号
がCPU3に供給されるようになっている。13はCP
U3の制御の下に各種表示を行う表示回路である。
【0015】ここで、図2にパネルスイッチ部10の要
部と表示部13の外観を示す。表示部13は図示のよう
に2つの7セグメントLED13a,13bによって構
成されている。次に、パネルスイッチ部10の各スイッ
チについて説明する。まず、スタート/ストップスイッ
チSWaは自動演奏の開始および停止を指示するスイッ
チであり、押す毎に開始(オン)と停止(オフ)の指示
内容が反転する。フィルインスイッチSWbはフィルイ
ン演奏を指示するためのスイッチであり、このスイッチ
が押されると所定のフィルインパターン(後述)が読み
出されてフィルイン演奏が行われるようになっている。
SWcは、イントロ/エンディングスイッチであり、曲
の開始前に押されると所定のイントロパターンが読み出
されてイントロ(前奏)が行われ、その後、ノーマルパ
ターンの演奏が行われる。また、イントロ/エンディン
グスイッチSWcが自動演奏中に押されると、エンディ
ングパターンが読み出されてエンディング演奏が行われ
るようになっている。SWdは、自動的にベース音とコ
ード音を付加する演奏態様(以下、オートベースコード
という)のオンおよびオフを指示するABCスイッチで
ある。このABCスイッチSWdは、押す毎にオートベ
ースコードの開始、停止を交互に指示するようになって
おり、オートベースコードが指示されているときは、そ
の近傍に設けられているLEDaが点灯するようになっ
ている。また、自動演奏がオンでオートベースコードが
オフの場合は、リズム演奏だけが自動的に演奏されるよ
うになっている。
【0016】次に、STLSWは、演奏スタイルを指示
するためのスタイル選択スイッチであり、「0」〜
「9」までの数値に対応して10個設けられている。こ
の実施例の場合、演奏スタイルは2桁の数値によって指
定されるようになっており、始めに押されたスタイル選
択スイッチSTLSWに対応する数値によって10の位
の値が指示され、次に、押されたスタイル選択スイッチ
STLSWによって1の位の値が指示される。
【0017】次に、図3はROM5内の自動演奏データ
の記憶エリアを示している。この図に示すように、自動
演奏データの記憶エリアは、パターン参照テーブル5a
とパターンデータエリア5bとから構成されている。パ
ターンデータエリア5bには、自動演奏に用いられるパ
ターンデータが記憶されており、1つの演奏スタイルに
ついて、リズム(R)、ベース(B)、コード(C)お
よびコード進行の各パターンが設定されている。すなわ
ち、図に示すエリアA1のデータがスタイルの数だけ設
けられている。そして、図示のように、リズム(R)、
ベース(B)、コード(C)の各パターンは、さらに、
ノーマルパターン、イントロパターン、フィルインパタ
ーンを有している。一方、パターン参照テーブル5a
は、上述した各パターンの先頭アドレスを記憶してい
る。このテーブルにおいては、領域A2の部分が1つの
演奏スタイルに対応しおり、したがって、領域A2と同
様の内容が演奏スタイルの数だけ設けられている。
【0018】次に、図4の(a)の部分にリズムパター
ンデータの内容を示す。なお、図に示すデータの内容
は、ノーマル、イントロおよびエンディングの各パター
ンにおいて同様となっている。図4(a)に示すブロッ
クB1は、1つのイベント(1つの音の発生を指示する
データ)の内容を示しており、このように1イベントは
音の発音タイミングを示すタイミングデータ、打楽器音
種類を示すノートナンバおよび音の強さを示すベロシテ
ィから構成されている。また、ブロックB2には小節線
を示す小節線データが書き込まれている。この場合、ブ
ロックB1は、2小節分の音の数(すなわち、イベント
の数)だけ設けられている。また、図4(b)はリズム
パターンデータ中のフィルインデータを示している。フ
ィルインデータも図4(a)に示すデータと同様に、タ
イミング、ノートナンバおよびベロシティからなるイベ
ントのブロックB1と小節線データを記憶するブロック
B2から構成されているが、データ量は1小節分となっ
ている。
【0019】ベースパターンデータおよびコードパター
ンデータの内容も、上述のリズムパターンデータとほぼ
同様であるが、1つのイベントが図5(b)に示す内容
になっている。すなわち、図4に示すブロックB1の内
容にゲートタイムデータが付加された内容になってい
る。ここで、ゲートタイムとは、音長に対応したデータ
であり、例えば、音長に応じて1〜96の値が書き込ま
れる。音長は、それを計時するための基本クロックをカ
ウントすることによって制御されるようになっている。
この実施例の場合は、4分音符の長さを24クロックの
長さに対応させており、ゲートタイムは通常その長さの
80%程度とするため、そのゲートタイムは「19」に
なる。また、全音符のゲートタイムは「76」となる。
また、このゲートタイムは、スタッカートの時は音符長
の50%、つまり、4分音符の場合は「12」とする
等、演奏手法により変化させる。ここで、リズムパター
ンのノートナンバは打楽器音種類を示すものであった
が、ベースパターンとコードパターンのノートナンバは
音高に対応した値である。上述したベースパターンおよ
びコードパターンは、基準となるコード(例えば、Cメ
ジャ)に基づいて各音の音高が設定されており、このた
め、各音が実際に発音されるときは、コード進行パター
ンデータによって指定されたコードのルート(根音)に
応じて移調し、タイプ(マイナ、セブンス等)に応じて
適宜修正して用いられるようになっている。
【0020】次に、図5(a)にコード進行パターンデ
ータの内容を示す。なお、図示のメモリマップは、1ア
ドレス毎に仕切ってある。図5(a)に示すように、最
初のアドレスにはイントロにおける和音の根音を示すイ
ントロルートおよびイントロにおける和音のタイプを示
すコードタイプのデータが各々記憶されている。コード
タイプとは、コードの種類であり、例えば、メジャ、マ
イナー、セブンス、オーグメント等である。第2番目の
アドレスには、エンディング演奏における和音の根音を
示すエンディングルートおよびエンディング演奏におけ
る和音のタイプを示すコードタイプのデータが各々記憶
されている。なお、イントロパターンおよびエンディン
グパターンは、2小節に亘って1つのルートおよび1つ
のコードタイプによって演奏される。また、第3番目以
降のアドレスは、連続する2つのアドレスがペアになっ
ており、手前側のアドレスには小節の位置およびその小
節内における拍の位置を示すデータが記憶され、後のア
ドレスにはコードのルートおよびタイプを示すデータが
記憶されている。これらのデータによって、所定の小節
における所定の拍でのコードが指定される。例えば、第
2小節目の第2拍からはCメジャー、第4拍目からはA
m(Aマイナー)というような指定がなされる。以下
に、上記各データの意味を具体的に説明する。
【0021】まず、小節データは、「0」が第1小節、
「1」が第2小節、「2」が第3小節、「3」が第4小
節を各々示す。この実施例におけるコード進行は、4小
節単位で繰り返すように設定されているので、小節デー
タは上記0〜3のいずれかの値をとる。次に、拍データ
は指定された小節内の拍の位置を示すデータで、「0」
が第1拍、「1」が第2拍、「2」が第3拍、「3」が
第4拍を各々示す。また、ルートデータは指定される和
音のルート(C,G,F等)を示し、タイプデータは指
定される和音の種類(メジャー、マイナー等)を示す。
【0022】B:実施例の動作 以下、上述した構成によるこの実施例の動作を説明す
る。
【0023】全体動作 まず、装置に電源が投入されると、図6(a)に示すス
テップSPa1のイニシャライズ処理が行われ、これに
より、各種レジスタのクリア、初期値設置等がなされ
る。例えば、自動演奏のオン/オフを指定する自動演奏
フラグRUNやオートベースコードのオン/オフを指定
するオートベースコードフラグABCがクリアされる。
次に、ステップSPa2に進みスイッチ処理を行う。ス
イッチ処理は、図6(b)に示すように、まず、パネル
スイッチ10の各スイッチについてオンまたはオフが検
出されたか否かを判定する。この判定で「YES」と判
定されると、対応するスイッチについて後述する各処理
を行い(ステップSPb2)、メインルーチンにリター
ンする。なお、ステップSPb1で「NO」と判定され
た場合は、何も行わず直ちにリターンする。。上記スイ
ッチ処理が終了した後は、図6に示すステップSPa3
に進み、鍵盤の各キーの状態をスキャンする等の処理
(その他の処理)を行う。以後は、ステップSPa2、
SPa3の処理を繰り返す。
【0024】スイッチ処理 以下に、スイッチ処理の詳細について説明する。各スイ
ッチ処理は、スイッチの操作に応じて各レジスタやフラ
グの内容を設定したり、ポインタの値やパターンデータ
の値を設定する処理である。
【0025】a:スタイル選択スイッチ処理 スタイル選択スイッチSTLSWのいずれかが押される
と、図7に示すサブルーチンが起動される。まず、ステ
ップSPc1において、自動演奏フラグRUNの値が
「0」か否かが判定される。この判定が「NO」の場
合、すなわち、自動演奏がオンの場合は何もせずにメイ
ンルーチンへリターンする。スタイル選択スイッチST
LSWは、自動演奏がオンの場合は動作せず、自動演奏
オフ状態でのみ、スタイルを選択可能になっている。一
方、ステップSPc1の判定が「YES」の場合は、ス
テップSPc2に進み、1回目のオンか否かが判定され
る。1回目のオンであれば、ステップSPc3に進み、
オンされたスタイル選択スイッチSTLSWの番号を表
示回路13の10の桁、すなわち、7セグメントLED
13a(図2参照)に表示し、さらに、ステップSPc
4に進んで、レジスタAにその番号を書き込む。この処
理の後は、メインルーチンにリターンする。
【0026】次に、自動演奏がオフの状態において、再
びスタイル選択スイッチSTLSWが押されると、ステ
ップSPc1を介してステップSPc2至り、このス
テップSPc2において「NO」と判定される。この結
果、ステップSPc5に進み、オンされたスタイル選択
スイッチSTLSWの番号を表示回路13の1の桁、す
なわち、7セグメントLED13b(図2参照)に表示
し、さらに、ステップSPc6に進んで、レジスタBに
その番号を書き込む。そして、レジスタSTYLEに、
レジスタAの内容を10の桁、レジスタBの内容を1の
桁として2桁の数値を書き込む。このようにし書き込
まれた番号が自動演奏スタイル番号となる。次に、ステ
ップSPc8に進んで、パターン参照テーブル5a(図
3参照)内の先頭アドレス群のうち、レジスタSTYL
Eの内容に対応したものを読み出し、指定された演奏ス
タイルに対応する自動演奏パターンの先頭アドレスを得
る。この処理の後は、メインルーチンにリターンする。
なお、上述した処理において、1桁の演奏スタイル番号
(すなわち、1,2,3,…9)を指定するときは、
1回目に「0」番のスタイル選択スイッチSTLSWを
押し、次に所望の番号のスタイル選択スイッチSTLS
を押せば良い。
【0027】b:スタート/ストップスイッチ処理 スタート/ストップスイッチSWaが押されると、図8
に示すサブルーチンが起動され、ステップSPd1にお
いて自動演奏フラグRUNの値が「0」か否かが判定さ
れる。この判定が「NO」の場合、すなわち、自動演奏
がオンの場合は、ステップSPd2において自動演奏フ
ラグRUNの値をクリアしてリターンする。このように
して自動演奏フラグRUNの値がクリアされると、自動
演奏のオフが指示される。一方、ステップSPd1の判
定が「YES」の場合は、ステップSPd3に移りオー
トベースコードフラグABCの内容が「1」か否か、す
なわち、オートベースコートがオンか否かが判定され
る。オートベースコードがオンであれば、この判定が
「YES」となり、ステップSPd4に進む。このステ
ップSPd4においては、エンディングルートデータを
レジスタEROOTに、エンディングタイプデータをレ
ジスタETYPEにそれぞれ格納する。このとき、レジ
スタに格納される各データは、前述したステップSPc
8で得られた先頭アドレスに基づいて、パターンデータ
エリア5b内の該当エリア(図5(a)の第2アドレス
参照)から読み出されたデータである。なお、ステップ
SPd4において、エンディングにおけるベース、コー
ドの自動演奏準備を行うのは、この後にエンディンが指
示されることがあるためである。
【0028】次に、ステップSPd5に進み、コード進
行パターンのポインタを進める。ポインタを進めると、
図5(a)に示す第3番目のアドレスがアクセスされ、
ここから、小節データと拍データが読み出される。そし
て、小節データがレジスタMEASへ、拍データがレジ
スタBEATへ各々格納される。そして、ステップSP
d6に進み、ベース(B)とコード(C)のノーマルパ
ターンデータの先頭アドレスにポインタをセットし、当
該アドレスのデータを読み出す。すなわち、ベースタイ
ミングデータとコードタイミングデータを読み出し(図
4(a)参照)、これらをレジスタBTIMEおよびレ
ジスタCTIMEに格納する。このようにして、ベース
およびコードの自動演奏の準備を行う。ステップSPd
6の処理の後、またはステップSPd3で「NO」と判
定された場合はステップSPd7に進む。なお、ステッ
プSPd3で「NO」と判定された場合、すなわち、オ
ートベースコードがオフの場合に、ステップSPd4〜
ステップSPd6の処理を行わないのは、この場合はベ
ース音とコード音を自動発生しないので、これらの演奏
データのセットが不要だからである。
【0029】ステップSPd7においては、リズム
(R)のノーマルパターンの先頭アドレスにポインタを
セットし、当該アドレスのデータを読み出す。すなわ
ち、リズムタイミングデータが読み出される。このリズ
ムタイミングデータは、レジスタRTIMEに格納され
る。次に、ステップSPd8に進んで、自動演奏フラグ
RUNを「1」にし、レジスタCLOCK、CMEA
S、PMEASをクリアし、フラグINTRO、FIL
LIN、ENDINGをリセットしてリターンする。こ
こで、レジスタCLOCKは、自動演奏における現時点
の小節内のタイミングを示すレジスタであり、後述する
タイマインタラプト処理においてインクリメントされ
る。また、レジスタCMEASは現時点におけるコード
進行の小節の位置を示すデータが記憶されるレジスタで
ある。レジスタPMEASは現時点におけるリズムパタ
ーンの小節の位置を示すデータが記憶されるレジスタで
ある。以上のようにして自動演奏に必要なレジスタやフ
ラグの内容が設定されると、以後は、後述するタイマイ
ンタラプト処理によって楽音発生が行われる。
【0030】c:イントロ/エンディングスイッチ処理 イントロ/エンディングスイッチSWcが押されると、
図9、図10に示すサブルーチンが起動される。まず、
ステップSPe1において、自動演奏フラグRUNが
「0」か否かが判定され、「YES」であれば図9に示
すステップSPe2〜ステップSPe7の処理を行い、
「NO」であれば図10に示すステップSPe8〜ステ
ップSP13の処理を行う。前者はイントロ演奏が指示
された場合であり、後者はエンディング演奏が指示され
た場合である。すなわち、自動演奏オフ中にこのスイッ
チが押された場合は、イントロの指示、自動演奏オン中
にこのスイッチが押された時はエンディング演奏の指示
であるとしている。
【0031】(イ)ステップSPe2〜ステップSPe
7の処理(イントロ演奏が指示された場合) 図9に示すステップSPe2においては、オートベース
コードフラグABCが「1」か否かが判定され、「YE
S」であれば、ステップSPe3に進み、イントロルー
トデータおよびイントロタイプデータ(図5(a)参
照)を各々レジスタROOTおよびレジスタTYPEに
格納する。次に、ステップSPe4に進んで、エンディ
ングルートデータおよびエンディングタイプデータ(図
5(a)参照)を各々レジスタEROOTおよびレジス
タETYPEに格納する。なお、ステップSPe4の処
理は、前述したステップSPd4(図8参照)の処理と
同じである。
【0032】次に、ステップSPe5に進み、ベースイ
ントロパターンとコードイントロパターンの各先頭アド
レスへポインタをセットし、そのアドレスのデータを読
み出す。そして、読出したデータのうちベースタイミン
グデータをレジスタBTIMEに格納し、コードタイミ
ングデータをレジスタCTIMEに格納する。このステ
ップSPe5の処理の後、あるいは、ステップSPe2
において「NO」と判断された場合は、ステップSPe
6に進み、リズムイントロパターンの先頭アドレスへポ
インタをセットし、そのアドレスのデータ、すなわち、
リズムタイミングデータを読出す。このデータは、レジ
スタRTIMEに格納される。次に、ステップSPe7
に進み、自動演奏フラグRUNおよびイントロフラグI
NTROの値を「1」に設定し、フィルインフラグFI
LLINおよびエンディングフラグENDINGの値を
「0」にする。また、レジスタCLOCK、CMEA
S、PMEASをクリアする。ここで、イントロフラグ
INTRO、フィルインフラグFILLINおよびエン
ディングフラグENDINGは、各々イントロ、フィル
インおよびエンディングの指示の有無を示すフラグであ
り、「1」のときが当該処理が指示されていることを示
す。
【0033】以上のように、オートベースコードがオフ
(オートベースコードフラグABCが「0」)のとき
は、リズムイントロパターンのみの読出しを行って(ス
テップSPe6)、各種フラグやレジスタの設定を行う
(ステップSPe7)。一方、オートベースコードがオ
ン(オートベースコードフラグABCが「1」)のとき
は、上述した処理に加えて、イントロおよびエンディン
グの演奏データのセットを行うとともに(ステップSP
e3、4)イントロのベースおよびコードパターンの読
出しを開始する(ステップSPe5)。
【0034】(ロ)ステップSPe8〜ステップSPe
13の処理(エンディング演奏が指示された場合の処
理) まず、ステップSPe8において、フィルインフラグF
ILLINが「0」否か、すなわち、フィルイン演奏
が指定されているか否かが判定される。この判定が「N
O」の場合は、直ちにメインルーチンへリターンする。
これは、イントロエンディングスイッチSWcが自動
演奏中に押されても(ステップSPe1で「NO」)、
フィルイン演奏の実行中は、エンディングの指示を無視
するためである。
【0035】一方、ステップSPe8において「YE
S」と判定されると、ステップSPe9に進んで、オー
トベースコードフラグABCが「1」か否かが判定され
る。この判定が「YES」の場合は、ステップSPe1
0に進み、ベースおよびコードのエンディングパターン
のタイミングデータ(図4の(a)参照)のうち、その
時点のレジスタCLOCKの値と一致するか、超えてい
るものをサーチする。レジスタCLOCKの値は、後述
するタイマインタラプト処理によって順次インクリメン
トされるようになっており、前述のように4分音符が2
4カウント(4/4拍子の場合、1小節が96カウン
ト:0〜95)に設定されている。このレジスタCLO
CKの値は、0から95の間を循環するので、現時点の
演奏の1小節におけるタイミングを示す。したがって、
上記サーチ処理は、イントロエンディングスイッチSW
cが押されたタイミングと同じタイミングか、あるい
は、イントロエンディングスイッチSWcが押された後
であって、これに最も近いタイミングをサーチする処理
となる。そして、サーチされたベースおよびコードのタ
イミングデータをレジスタBTIMEおよびレジスタC
TIMEに各々格納する。
【0036】このステップSPe10の処理は、エンデ
ィング演奏が指定されると、そのタイミングに対応する
エンディングパターンデータから順次読み出しを行うよ
うにするための処理であり、これにより、小節の途中で
エンディング演奏が指示されても、そのタイミングから
直ちにエンディングパターンに切り換わるようになって
いる。次に、レジスタEROOTの内容をレジスタRO
OTに転送するとともに、レジスタETYPEの内容を
レジスタTYPEに転送する(ステップSPe11)。
レジスタROOTおよびレジスタTYPEは、自動演奏
に直ちに用いられるルートおよびコードタイプを格納す
るレジスタである。なお、レジスタEROOTまたはレ
ジスタETYPEは、エンディングルートとエンディン
グコードを一時格納するためのレジスタであり、前述し
たステップSPd4あるいはステップSPe4において
書き込みが行われる。
【0037】ステップSPe11の処理の後、あるい
は、ステップSPe9で「NO」と判定された場合は、
ステップSPe12に進み、リズムのエンディングパタ
ーンのタイミングデータ(図4の(a)参照)のうち、
その時点のレジスタCLOCKの値と一致するか、超え
ているものをサーチし、サーチされたタイミングデータ
をレジスタRTIMEに格納する。この処理は、前述し
たステップSPe10の処理をリズムパターンについて
行う処理である。ステップSPe12の後は、ステップ
SPe13においてエンディングフラグENDINGを
「1」にし、エンディング演奏が開始されたことを示し
て、リターンする。
【0038】以上のように、オートベースコードがオフ
(オートベースコードフラグABCが「0」)のとき
は、リズムエンディングパターン内のタイミングデータ
のみの読出しを行った後(ステップSPe12)、エン
ディングフラグENDINGを立てる(ステップSPe
13)。一方、オートベースコードがオン(オートベー
スコードフラグABCが「1」)のときは、上述した処
理に加えて、ベースおよびコードのエンディングパター
ン内の所定のタイミングデータを読み出すとともに、既
に選択されているエンディングパターンのルートとコー
ドタイプとを、次のタイミングの自動演奏に用いるよう
にセットする。
【0039】d:フィルインスイッチ処理 フィルインスイッチSWbが押されると、図11に示す
サブルーチンが起動される。まず、ステップSPf1に
おいては、自動演奏フラグRUNが1か否かが判定され
「NO」であれば、何もせず直ちにリターンする。「Y
ES」の場合は、ステップSPf2に進み、イントロフ
ラグINTROが「0」で、かつ、エンディングフラグ
ENDINGが「0」であるか否かが判定される。ここ
で、イントロまたはエンディングのいずれかが行われて
いれば、この判定は「NO」となり、直ちにリターンす
る。これは、イントロまたはエンディングのいずれかの
自動演奏がすでに開始されていた場合は、当該処理を優
先し、以下のステップによるフィルインスイッチ処理を
行わないためである。
【0040】次に、ステップSPf3に進み、オートベ
ースコードフラグABCが「1」か否かが判定される。
この判定が「YES」であれば、ステップSPf4に進
み、ベースおよびコードのフィルインパターンのタイミ
ングデータ(図4の(a)参照)のうち、その時点のレ
ジスタCLOCKの値と一致するか、超えているものを
サーチする。このサーチ処理は、前述したステップSP
e10に対応した処理であり、フィルインスイッチSW
bが押されたタイミングと同じタイミングか、あるい
は、フィルインスイッチSWbが押された後であって、
これに最も近いタイミングをサーチする処理となる。そ
して、サーチされたベースおよびコードのタイミングデ
ータをレジスタBTIMEおよびレジスタCTIMEに
各々格納する。このステップSPf4の処理により、フ
ィルイン演奏が指定されると、そのタイミングに対応す
るフィルインパターンデータから順次読み出しが開始さ
れるようになる。これにより、小節の途中でフィルイン
演奏が指示されても、そのタイミングから直ちにフィル
インパターンに切り換わる。
【0041】ステップSPf4の処理の後、あるいは、
ステップSPf3で「NO」と判定された後は、ステッ
プSPf5に進み、リズムのフィルインパターンのタイ
ミングデータ(図4の(a)参照)のうち、その時点の
レジスタCLOCKの値と一致するか、超えているもの
をサーチし、サーチされたタイミングデータをレジスタ
RTIMEに格納する。この処理は、前述したステップ
SPf4の処理をリズムパターンについて行う処理であ
る。ステップSPf5の後は、ステップSPf6におい
てフラグFILLINに1を立て、フィルイン演奏が開
始されたことを示してリターンする。
【0042】以上のように、オートベースコードがオフ
(オートベースコードフラグABCが「0」)のとき
は、リズムのフィルインパターン内のタイミングデータ
のみの読出しを行った後(ステップSPf5)、フィル
インフラグFILLINを立てる(ステップSPf
6)。一方、オートベースコードがオン(オートベース
コードフラグABCが「1」)のときは、上述した処理
に加えて、ベースおよびコードのフィルインパターン内
の所定のタイミングデータを読み出す。
【0043】e:ABCスイッチ処理 オートベースコードスイッチSWdが押されると、図1
2、図13に示すサブルーチンが起動される。まず、ス
テップSPg1において自動演奏フラグRUNが「1」
か否かが判定され、「NO」であればステップSPg2
に進んで、オートベースコードフラグABCの値を反転
し、次いで、図13に示すステップSPg3のLED表
示処理を行う。LED表示処理は、図2に示す発光ダイ
オードLEDaの点灯、消灯を制御する処理であり、ス
テップSPg2において反転された後のオートベースコ
ードフラグABCの値が「1」であれば発光ダイオード
LEDaを点灯させてオートベースコードが指示されて
いる旨を表示する。一方、ステップSPg2で反転した
オートベースコードフラグABCの値が「0」であれば
発光ダイオードLEDaを消灯させる。このステップS
Pg3の処理の後はリターンする。
【0044】一方、ステップSPg1の判定が「YE
」の場合、ステップSPg4に進み、オートベースコ
ードフラグABCが「0」か否かが判定される。この判
定が「NO」の場合は、ステップSPg2、SPg3の
処理を行ってリターンする。
【0045】ここで、ステップSPg1→SPg2→S
Pg3と進む場合は、2通りある。まず、第1は、リズ
ムパターンの自動演奏が行われる前に、オートベースコ
ードを指示する場合であり、また、第2は、上記のよう
に指定したオートベースコードを、リズムの自動演奏を
開始する前に取りやめる場合である。ただし、前者の場
合においては、オートベースコードを指示しても、ベー
スおよびコードの自動演奏はスタート/ストップスイッ
チSWaが押されるまでは行われない。言い替えれば、
オートベースコードを指示するが、実際のベース、コー
ドの自動演奏は待機状態にしておき、スタート/ストッ
プスイッチSWaが押されると、リズム、ベース、コー
ドの全ての自動演奏を同時に指示する場合である。
【0046】一方、ステップSPg1→SPg4→SP
g2→SPg3と進む場合は、既に、リズム、ベースお
よびコードの全てについて自動演奏が行われているが、
後からベースとコードの自動演奏を停止しようとする場
合であり、この場合は後述するタイマインタラプト処理
により直ちにベースとコードのデータの読出しが停止さ
れるため、これらの自動演奏が停止される。
【0047】さて、ステップSPg1、SPg4で共に
「YES」と判定される場合は、リズムについては既に
自動演奏が行われているが、これに加えて後からベース
とコードの自動演奏を付加するためにオートベースコー
ドスイッチSWdを押した場合である。この場合は、ス
テップSPg5において、エンディングフラグENDI
NGが「0」か否かが判定され、また、ステップSPg
6においてイントロフラグINTOが「0」か否かが判
定される。
【0048】ここで、エンディング演奏およびイントロ
演奏のいずれも指示されていなければ(ノーマルパター
ンかフィルインパターンが指定されている場合)、ステ
ップSPg5、SPg6の判定は共に「YES」となっ
てステップSPg7に進む。ステップSPg7において
は、レジスタPMEASおよびレジスタCLOCKの双
方の内容で表されるタイミングと等しいか、あるいは、
それを超えないタイミングのコードタイミングデータを
サーチし、そのタイミングのルートとコードタイプとを
読み出す。そして、読み出したルートデータおよびコー
ドタイプデータをレジスタROOTおよびレジスタTY
PEに各々格納する。レジスタPMEASの内容は、2
小節単位で構成されているパターンデータ(図4(a)
参照)の前半の1小節か、後半の1小節かを示すレジス
タであり、「0」が前半の1小節、「1」が後半の1小
節を示す。
【0049】次いで、ポインタを進め、小節データおよ
び拍データを読出し(図5(a)参照)、これらをレジ
スタMEASおよびBEATへ各々格納する。次に、レ
ジスタPMEASの内容をレジスタCMEASに転送す
る。レジスタCMEASは、コードの自動演奏における
現在の小節位置を示す内容になっており、「0」〜
「3」のいずれかの値をとっている。ステップSPg9
においては、前の値に係わり無く、レジスタPMEAS
の値(「0」または「1」)を転送する。これは、フィ
ルインがどのようなタイミングで指示されても、フィル
イン終了後のパターンデータの小節とコード進行の小節
との整合をとるためであり、同様に、リズムパターンデ
ータだけによる自動演奏に、どのようなタイミングでオ
ートベースコードが指定されても、オートベースコード
起動後のコード進行の小節とリズムパターンの小節との
整合をとるためである。
【0050】次に、ステップSPg11に移り、コード
進行データのエンディングルートデータおよびエンディ
ングコードタイプ(図5(a)参照)を一時格納レジス
タであるレジスタEROOTおよびETYPEに格納す
る。一方、ステップSPg6の判定の際に、イントロ演
奏が指示されていれば、上述したステップSPg7〜S
Pg9の処理に換えてステップSPg10の処理が行わ
れる。すなわち、イントロのルートおよびコードタイプ
をレジスタROOTおよびレジスタTYPEに格納し、
これらイントロ用のルートおよびコードタイプによる発
音処理に備える。その後は、ステップSPg11を介し
てステップSP13に移る。
【0051】また、エンディング演奏が指示されていれ
ば、ステップSPg5の判定が「NO」となり、ステッ
プSPg12の処理を行って直ちにステップSPg13
の処理に移る。ステップSPg12は、エンディングの
ルートおよびコードタイプを記憶しているレジスタER
OOTおよびレジスタETYPEの内容をレジスタRO
OTおよびレジスタTYPEに転送し、エンディング用
のルートおよびコードタイプによる発音処理に備える。
【0052】次に、ステップSPg13に進むと、レジ
スタPMEAS、CLOCKで表されるタイミングと等
しいか、あるいは、それを超えないタイミングとなるデ
ータをベース、コードパターン内からサーチして読み出
す。この場合のベース、コードパターンは、エンディン
グが指示されていればエンディングパターン、イントロ
が指示されていればイントロパターンであり、また、フ
ィルインが指示されていればフィルインパターンとな
る。そして、読み出されたベースタイミングデータおよ
びコードタイミングデータが各々レジスタBTIMEお
よびレジスタCTIMEに格納される。そして、ステッ
プSPg14に進んで、オートベースコードフラグAB
Cを「1」にし、ステップSPg3のLED表示処理を
行ってリターンする。
【0053】タイマインタラプト処理 次に、タイマインタラプト処理について説明する。この
処理は、図1に示すタイマ4の割込信号INTによって
4分音符について24回の割合で起動され、その起動の
周期は曲のテンポに応じて可変制御される。まず、図1
4に示すステップSPh1において、自動演奏フラグR
UNが「1」か否かが判定され、この判定が「NO」で
あれば直ちにリターンする。タイマインタラプト処理
は、自動演奏における発音タイミング制御を行う処理で
あるため、自動演奏が指示されていなければ不要だから
である。ステップSPh1で「YES」と判定される
と、ステップSPh2〜SPh6の処理へ進む。これら
のステップ中のステップSPh5は、図5(a)に示す
コード進行パターンから現時点のタイミングに対応する
ルートデータおよびタイプデータを読出してレジスタR
OOTおよびTYPEに格納する処理であり、ステップ
SPh6はポインタを1つ進めて小節データおよび拍デ
ータを読出し、これらをレジスタMEASおよびBEA
Tに格納する処理である。また、ステップSPh2〜S
Ph4の処理は、ステップSPh5およびSPh6の処
理を行うか否かを判断する処理である。
【0054】まず、ステップSPh2は、イントロフラ
グINTROが「0」で、かつ、エンディングフラグE
NDINGが「0」か否かを判定する。この判定が「
」であれば、ステップSPh5、SPh6の処理は行
わない。イントロまたはエンディングが指示されていれ
ば、これら専用のルートおよびコードタイプを用いるた
めである(図5(a)の第1、第2アドレス参照)。ス
テップSPh3は、レジスタクロックの内容が、1拍、
2拍、3拍、4拍の各開始タイミングを示す数値、すな
わち、0,24,48,72のいずれかに該当するか否
かを判定し、「NO」の場合はステップSPh5、SP
h6の処理は行わない。これはコードの自動演奏におけ
るコード変更(すなわち、ルートおよびコードタイプデ
ータの読出し)は、各拍の開始タイミングにおいてだけ
行うようにしているからである。
【0055】ステップSPh4はレジスタCMEASと
レジスタMEASの内容が等しく、かつ、レジスタCL
OCKの値の1/24(すなわち、現時点の拍の位置)
がレジスタBEATの内容に等しいか否かが判断され、
「NO」の場合にはステップSPh5、SPh6の処理
は行わない。レジスタMEASおよびレジスタBEAT
には、次に変更すべきコードについての小節データと拍
データとが格納されており、これらと現時点の小節位置
および拍位置が一致しなければ、次に、変更すべきコー
ドは未だ変更タイミングに達していないからである。
【0056】ステップSPh6の処理の後、あるいは、
ステップSPh2〜SPh4のいずれかで「NO」と判
定された場合は、ステップSPh7に進み、オートベー
スコードフラグABCが「1」か否かが判断される。こ
の判断が「YES」の場合は、ステップSPh8に進ん
で、レジスタCLOCKの内容とレジスタBTIMEの
内容が等しいか否かが判定される。この判定が「YE
S」であれば、現時点がベースパターンの発音タイミン
グに一致した場合なので、そのタイミングに合致するベ
ースパターンのノートナンバをレジスタROOTおよび
レジスタTYPEに応じて変換(移調および修正)した
後、変換後のノートナンバ、ベロシティ、ゲートタイム
をイベントデータとして音源回路7へ供給する。これに
より、ベース音が自動的に発音される。そして、ポイン
タを進めてベースパターンの次のタイミングデータを読
出し、レジスタBTIMEに格納する。この処理の後、
あるいは、ステップSPh8で「NO」と判定された場
合は、ステップSPh10に至り、レジスタCLOCK
とレジスタCTIMEの内容が等しいか否かを判定す
る。この判定が「YES」であれば、該当するコードデ
ータの発音タイミングであるので、ステップSPh11
に進み、そのコードを構成する各ノートのノートナンバ
をレジスタROOTとレジスタTYPEの内容に応じて
変換(移調および修正)し、変換後のノートナンバ、ベ
ロシティ、ゲートタイムをイベントデータとして音源回
路7へ出力する。これにより、コード音が自動的に発音
される。そして、ポインタを進めてコードパターン中の
次のタイミングデータを読出し、レジスタCTIMEに
格納する。このステップSPh11の後、あるいはステ
ップSPh10、SPh7で「NO」と判定された場合
は、ステップSPh12に進みレジスタCLOCKの内
容がレジスタRTIMEの内容に等しいか否かが判定さ
れる。この判定が「YES」であれば、該当するリズム
データの発音タイミングであるので、ステップSPh1
3に進んで、そのノートナンバとベロシティをイベント
データとして音源回路7へ供給する。この結果、リズム
音が自動発音される。そして、リズムパターン中の次の
タイミングデータを読出し、レジスタRTIMEへ格納
する。この処理の後、あるいは、ステップSPh12で
「NO」と判定された場合は、図16に示すステップS
Ph14に進む。
【0057】以上のように、オートベースコードが指定
されていなければ、ステップSPh12、SPh13の
処理により、リズム音だけの自動発音処理がなされ、ま
た、オートベースコードが指定されていれば、リズム音
の発音処理に加えて、ステップSPh8〜SPh11の
処理により、ベース音およびコード音の自動発音が行わ
れる。次に、ステップSPh14に進むと、レジスタC
LOCKの値が「95」か否か、すなわち、現時点のタ
イミングが小節の終了タイミングに一致したか否かが判
定される。この判定が「NO」の場合は、ステップSP
h15に進んで、レジスタCLOCKの値を1インクリ
メントしてリターンする。以後は、ステップSPh14
で「YES」となるまで、上述した処理を繰り返す。こ
れにより、リズム音のみ、あるいは、これにベース音、
コード音が加えられた自動演奏が指定された演奏パター
ンに従って順次行われていく。
【0058】一方、ステップSPh14の処理が「YE
S」の場合は、ステップSPh16に進んで、レジスタ
PMEASの内容が「1」か否かが判定される。すなわ
ち、演奏パターンの小節数が第2小節目か否かが判定さ
れる。現時点が第1小節目の演奏であれば、この判定は
「NO」となり、図17に示すステップSPh25に進
む。ここでは、フィルインフラグFILLINが「1」
か否かが判定される。この判定が「YES」であれば、
フィルインパターンは1小節のパターンであるから、フ
ィルイン演奏がノーマルパターンの1小節目において行
われ、かつ、そのフィルイン演奏の終了タイミングであ
ることを意味する。
【0059】ステップSPh27においては、ベースお
よびノーマルパターンの中から1つ目の小節線データ
(図4(a)参照)を探し出し、その次のデータにポイ
ンタをセットして、該当するベースタイミングおよびコ
ードタイミングを読出し、レジスタBTIMEおよびレ
ジスタCTIMEに格納する。すなわち、ノーマルパタ
ーンの2小節目の最初のタイミングデータを格納する。
ステップSPh28ではリズムノーマルパターンについ
て上記ステップSPh27と同様の処理を行い、読み出
したリズムタイミングデータをレジスタRTIMEに格
納する。そして、ステップSPh29でフィルインフラ
グFILLINをクリアする。なお、オートベースコー
ドが指定されていない場合にステップSPh27の処理
を行わないのは、ベースおよびコードの発音制御が不要
なためである。以上のステップSPh26〜SPh29
の処理により、次の、自動演奏はノーマルパターンの2
小節目から開始される。
【0060】ステップSPh29の処理の後、あるい
は、ステップSPh25で「NO」と判定された場合に
は、ステップSPh30に進み、演奏パターンが2小節
目に進んだことを示すために、レジスタPMEASを
「1」にし、次いで、図18に示すステップSPh31
に進む。一方、図16に示すステップSPh16で「Y
ES」と判定された場合には、ステップSPh17に進
み、エンディングフラグENDINGが「0」か否かが
判定される。この判定が「NO」の場合、すなわち、エ
ンディング演奏が行われていた場合は、ステップSPh
18に進み、自動演奏を終了させるべく、自動演奏フラ
グRUNを「0」にしてリターンする。これは、ステッ
プSPh14→SPh16→SPh17→SPh18と
なる場合は、エンディングパターンの2小節目が終了し
た場合であるから、自動演奏を終了させる必要があるた
めである。
【0061】一方、エンディング演奏が指示されていな
い場合は、ステップSPh17の処理が「YES」とな
り、ステップSPh19に進む。このステップSPh1
9においては、オートベースコードフラグABCが
「1」か否かが判定され、「YES」であれば、ベース
およびコードのノーマルパターンのデータを先頭に戻す
べくステップSPh20の処理を行う。すなわち、ノー
マルパターンの2小節目の演奏の終了時点において、1
小節目の先頭のデータが準備される。次に、ステップS
Ph21に進み、イントロフラグINTROが「1」か
否かが判定される。この判定が「YES」の場合は、イ
ントロパターンによる演奏が全て終了した場合であるか
ら、ステップSPh22に進み、コード進行の最初のデ
ータを読出し、小節データをレジスタMEASへ、拍デ
ータをレジスタBEATへ格納する。
【0062】そして、ステップSPh22の処理の後、
あるいは、ステップSPh19,21で「NO」と判断
された場合は、図18に示すステップSPh23に進
む。ステップSP23においては、リズムパターンのポ
インタをノーマルパターンの先頭にセットしてデータを
読み出し、リズムタイミングデータレジスタRTIME
へ格納する。この処理は、前述したステップSPh20
と同様の処理をリズムパターンについて行うものであ
り、ノーマルパターンの2小節目の演奏の終了時点にお
いて、1小節目の先頭のデータを準備する。次に、ステ
ップSPh24に進み、イントロフラグINTROを
「0」にし、レジスタPMEASをクリアする。ステッ
プSPh24の処理の後、あるいは、図17に示すステ
ップSPh30の後は、ステップSPh31に至り、オ
ートベースコードフラグABCが「1」か否かを判定す
る。この判定が「YES」の場合は、ステップSPh3
2に進み、レジスタCMEASの内容が「3」か否かを
判定する。すなわち、コード進行の「4」小節目の最後
のタイミングか否かを判定する。この判定が「YES」
の場合は、コード進行を始めに戻す必要があるので、ス
テップSPh33に進み、コード進行の最初のデータに
ポインタをセットし、データを読み出す。そして、読み
出した小節データおよび拍データをレジスタMEASに
格納し、次いで、レジスタCMEASをクリアする。ス
テップSPh34の後は、ステップSPh35において
レジスタCLOCKの内容を小節の始めのタイミングに
戻すべく、その値をクリアし、リターンする。
【0063】一方、ステップSPh32の判定が「N
O」の場合は、コード進行を始めに戻す必要がないの
で、レジスタCMEASを1インクリメントし、ステッ
プSPh35を介してリターンする。また、ステップS
Ph31において「NO」と判定された場合には、ベー
スとコードの自動演奏を行っていない場合であるので、
コード進行についての処理を行うことなく、ステップS
Ph35を介してリターンする。
【0064】具体的動作例 次に、具体的動作について2つの例を示す。
【0065】(イ)フィルインの動作例 図19に示すように、時刻t1においてイントロ/エン
ディングスイッチSWcが押されると、図9に示すサブ
ルーチンにより、イントロおよびエンディングのデータ
がセットされ、さらに、タイマインタラプト処理(図1
4〜図18)によってイントロパターンによる演奏が開
始される(オートベースコードはオンとする)。この場
合、イントロパターンは2小節のパターンであるため、
時刻t2において終了する。そして、イントロパターン
が終了すると、ステップSPh20、SPh22、SP
h23(図16、図18参照)の処理により、ノーマル
パターンデータの読出が開始され、以後、ノーマルパタ
ーンによる演奏が継続される。この場合、図19に示す
ように、コード進行の第1、第2小節にノーマルパター
ンの第1、第2小節が対応し、また、コード進行の第
3、第4小節にノーマルパターンの第1、第2小節が対
応する。そして、ノーマルパターンの第1小節の途中で
ある時刻t3においてフィルインスイッチSWbが押さ
れると、図11に示すサブルーチンによってフィルイン
パターンデータがセットされ、ステップSPh9〜SP
h13の処理によってフィルインパターンの発音が行わ
れる。このフィルインパターンの発音は、1小節の残り
分についてだけ行われる。そして、フィルインパターン
が終了すると、図17に示すステップSPh27,28
の処理により、ノーマルパターンの第2小節目の先頭デ
ータがセットされるから、次の小節はノーマルパターン
の第2小節による演奏がなされる。この結果、ノーマル
パターンの小節とコード進行の小節との整合性が維持さ
れたまま自動演奏が継続される。そして、時刻t4にお
いてイントロ/エンディングスイッチSWcが押される
と、図10に示す処理によりエンディングパターンがセ
ットされ、さらに、タイマインタラプト処理によってエ
ンディング演奏が行われる。この場合、ノーマルパター
ンの第1小節の途中でイントロ/エンディングスイッチ
SWcが押されているので、エンディングパターンは、
第1小節の残り分と、第2小節に亘って行われる。な
お、フィルインがノーマルパターンの第2小節の途中で
行われると、図18に示すステップSPh23、SPh
33の処理が行われるため、次の小節はノーマルパター
ンの第1小節による演奏が行われる。したがって、この
場合においてもノーマルパターンの小節とコード進行の
小節との整合性は崩れない。
【0066】(ロ)オートベースコードの動作例 図20に示すように、時刻t10において、オートベー
スコードオフの状態で、スタート/ストップスイッチS
Waが押されると、図8に示すステップSPb7の処理
により、リズムノーマルパターンがセットされ、さら
に、タイマインタラプト処理によってリズムのノーマル
パターンによる自動演奏が行われる。そして、ノーマル
パターンの第2小節の途中である時刻t11においてオ
ートベースコードスイッチSWdが押されると、図12
に示すステップSPg7の処理により、演奏パターン
(この場合はノーマルパターン)の小節数と、小節内に
おけるオートベースコードスイッチSWdの押下タイミ
ングに基づいて次の発音に用いられるルートおよびコー
ドタイプがセットされる。具体的には、オートベースコ
ードスイッチSWdが押された時点、またはその時点よ
り手前であるが最も近いタイミングのルートおよびコー
ドタイプがセットされる。また、ステップSPg13に
おいては、オートベースコードスイッチSWdが押され
た時点、またはその時点より後であるが最も近いタイミ
ングのベースおよびコードパターンデータがセットされ
る。したがって、次の発音タイミングにおいては、ベー
スおよびコードパターンデータがコード進行の第2小節
の対応する拍のルートおよびコードタイプにしたがって
発音され、リズム音の小節と伴奏音の小節との整合性が
崩れない。この関係は、オートベースコードスイッチS
Wdがどのようなタイミングで押されても同様である。
なお、ステップSPg7において、その時点のデータが
ない場合は、その時点より手前であるが最も近いタイミ
ングのルートおよびコードタイプをセットしているの
は、コードの変更が拍の開始タイミングにおいてだけ行
われるようになっているためである。すなわち、次の発
音タイミングが拍の開始タイミングでない場合は、ベー
スおよびコードパターンデータのルートおよびコードタ
イプは、それ以前の拍の開始タイミングにおいて決定さ
れているからである。このステップSPg7およびこれ
に対応するステップSPg13の処理により、オートベ
ースコードSWdが押された瞬間から、小節数および押
下タイミングに対応するルートとコードタイプが決ま
り、これに基づいて次のベースとコードの音高制御がな
される。
【0067】C:変形例 上述した実施例は、以下の変形が可能である 自動演奏の位置を示すデータ(レジスタPMEASの
内容)は実施例では小節数に対応するものであったが、
これに限らず、より細かい単位で示すようにしてもよ
く、例えば、拍単位にしてもよい。このようにすると、
フィルインパターンが1小節未満であったり、小節単位
よりも数拍長いパターンであったような場合にも良好に
対応することができる。
【0068】
【発明の効果】以上説明したように、この発明によれ
ば、リズム音が発生されている状態のときに、伴奏パタ
ーンおよびコード進行パターンに基づく伴奏音の発生指
示があると、リズムパターンの読出中の小節の位置を検
出し、検出した小節の位置と同じ小節の位置の伴奏パタ
ーンおよびコード進行パターンが読み出されるので、ど
のタイミングで伴奏を開始してもコード進行とリズムパ
ターンとが整合し、違和感のない楽音的に豊かな自動伴
奏を得ることができる。また、リズムの再生中に伴奏音
の発生を指示された場合、その時点でリズムに対応する
アドレスをサーチし、サーチした個所から伴奏音の発生
を開始させることで、伴奏音の発生指示があるまでは、
伴奏音に関する処理を行わずに済ませることができるの
で、伴奏音を発生していないときのCPUの負担を軽減
することができ、他の処理をスムーズに行うことができ
るという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の一実施例の構成を示すブロック図
である。
【図2】 同実施例におけるパネルスイッチ10の外観
を示す正面図である。
【図3】 同実施例におけるROM5の記憶状態を示す
メモリマップである。
【図4】 同実施例におけるパターンデータエリアの記
憶状態を示すメモリマップである。
【図5】 同実施例におけるパターンデータエリアの記
憶状態を示すメモリマップである。
【図6】 同実施例の動作を示すフローチャートであ
る。
【図7】 同実施例の動作を示すフローチャートであ
る。
【図8】 同実施例の動作を示すフローチャートであ
る。
【図9】 同実施例の動作を示すフローチャートであ
る。
【図10】 同実施例の動作を示すフローチャートであ
る。
【図11】 同実施例の動作を示すフローチャートであ
る。
【図12】 同実施例の動作を示すフローチャートであ
る。
【図13】 同実施例の動作を示すフローチャートであ
る。
【図14】 同実施例の動作を示すフローチャートであ
る。
【図15】 同実施例の動作を示すフローチャートであ
る。
【図16】 同実施例の動作を示すフローチャートであ
る。
【図17】 同実施例の動作を示すフローチャートであ
る。
【図18】 同実施例の動作を示すフローチャートであ
る。
【図19】 同実施例の動作例を説明するためのタイミ
ングチャートである。
【図20】 同実施例の動作例を説明するためのタイミ
ングチャートである。
【符号の説明】
3……CPU(第1パターン再生手段、第2パターン再
生手段、再開指示手段、再生再開位置決定手段、読出位
置検出手段、パターン読出手段、読出位置制御手段、リ
ズム音信号発生手段、伴奏音信号発生手段) 5……R
OM(記憶手段、リズムパターン記憶手段、伴奏パター
ン記憶手段、コード進行記憶手段) 7……音源回路
(楽音発生手段、リズム音信号発生手段、伴奏音信号発
生手段)SWb……フィルインスイッチ(第2パターン
指示手段) SWd……オートベースコードスイッチ
(伴奏音指示手段)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 リズム演奏に用いられ、複数小節で構成
    されるリズムパターンを記憶したリズムパターン記憶手
    段と、 前記リズムパターンに対応した複数小節の伴奏パターン
    を記憶した伴奏パターン記憶手段と、 前記リズムパターンおよび伴奏パターンを構成する小節
    数の、整数倍(但し2倍以上)の小節数で構成されるコ
    ード進行パターンを記憶したコード進行記憶手段と、 前記複数小節で構成されるリズムパターンを繰り返し読
    出し、該読出したリズムパターンに従って、発音するリ
    ズム音を指示するリズム音指示信号を発生するリズム音
    信号発生手段と、 前記リズム音信号発生手段によって読み出し中の、リズ
    ムパターンの小節の位置を検出する読出位置検出手段
    と、 前記伴奏パターンおよびコード進行パターンに基づく伴
    奏音の発生を指示する伴奏音指示手段と、 前記伴奏音指示手段による指示に応じて、前記読出位置
    検出手段により検出されたリズムパターンの小節の位置
    と、同じ小節の位置から前記伴奏パターンおよびコード
    進行パターンの読出しを開始するよう指示する読出開始
    位置指示手段と、 前記読出開始位置指示手段によって指示された小節の
    置から、伴奏音情報として前記伴奏パターンおよびコー
    ド進行パターンを繰り返し読出す伴奏音情報読出手段
    と、 前記伴奏音情報読出手段によって読出された伴奏音情報
    に従って、コード進行パターンおよび伴奏パターンに基
    づく伴奏音に対応した伴奏音信号を発生する伴奏音信号
    発生手段とを具備することを特徴とする自動伴奏装置。
JP4001007A 1992-01-07 1992-01-07 自動伴奏装置 Expired - Fee Related JP2705421B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4001007A JP2705421B2 (ja) 1992-01-07 1992-01-07 自動伴奏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4001007A JP2705421B2 (ja) 1992-01-07 1992-01-07 自動伴奏装置

Publications (2)

Publication Number Publication Date
JPH0643872A JPH0643872A (ja) 1994-02-18
JP2705421B2 true JP2705421B2 (ja) 1998-01-28

Family

ID=11489527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4001007A Expired - Fee Related JP2705421B2 (ja) 1992-01-07 1992-01-07 自動伴奏装置

Country Status (1)

Country Link
JP (1) JP2705421B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4821532B2 (ja) * 2006-09-21 2011-11-24 ヤマハ株式会社 アルペジオ演奏装置及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61156099A (ja) * 1984-12-27 1986-07-15 ヤマハ株式会社 自動演奏装置
JPH03204690A (ja) * 1990-01-04 1991-09-06 Yamaha Corp 電子楽器

Also Published As

Publication number Publication date
JPH0643872A (ja) 1994-02-18

Similar Documents

Publication Publication Date Title
JPS6157640B2 (ja)
JP2631722B2 (ja) 自動演奏装置
JP2705421B2 (ja) 自動伴奏装置
JP3261929B2 (ja) 自動伴奏装置
JPH06161452A (ja) 自動伴奏装置
JP2669295B2 (ja) 自動演奏装置および演奏情報の記録媒体
JP3296182B2 (ja) 自動伴奏装置
JPH0367276B2 (ja)
JP2570562B2 (ja) 自動演奏装置及び自動伴奏装置
US5260509A (en) Auto-accompaniment instrument with switched generation of various phrase tones
JP2663506B2 (ja) 自動演奏装置
JP3362070B2 (ja) 自動演奏装置
JP2643277B2 (ja) 自動演奏装置
JPH04274297A (ja) 自動演奏装置
JP2570068B2 (ja) 自動演奏装置
JP3075750B2 (ja) 自動演奏装置
JP3055352B2 (ja) 伴奏パターン作成装置
JP2599720B2 (ja) 電子楽器
JP2988371B2 (ja) 自動伴奏装置
JP3022496B2 (ja) 自動伴奏装置
JP3108494B2 (ja) 自動伴奏装置
JP2576296B2 (ja) 電子楽器の自動伴奏装置
JP2621371B2 (ja) 自動演奏装置
JP2518341B2 (ja) 自動演奏装置
JPH0727381B2 (ja) 自動伴奏装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19970128

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970909

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071009

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees