JP2848092B2 - 自動伴奏装置 - Google Patents

自動伴奏装置

Info

Publication number
JP2848092B2
JP2848092B2 JP4077870A JP7787092A JP2848092B2 JP 2848092 B2 JP2848092 B2 JP 2848092B2 JP 4077870 A JP4077870 A JP 4077870A JP 7787092 A JP7787092 A JP 7787092A JP 2848092 B2 JP2848092 B2 JP 2848092B2
Authority
JP
Japan
Prior art keywords
chord
code
information
automatic accompaniment
beat
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
JP4077870A
Other languages
English (en)
Other versions
JPH05281962A (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 JP4077870A priority Critical patent/JP2848092B2/ja
Publication of JPH05281962A publication Critical patent/JPH05281962A/ja
Application granted granted Critical
Publication of JP2848092B2 publication Critical patent/JP2848092B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、演奏者が入力したコ
ード(和音)情報を、自動伴奏に同期させて、自動記憶
するとともに、所定の操作に従って自動再生する電子楽
器に関する。
【0002】
【従来の技術】従来より、鍵盤を有する電子楽器には、
コードシーケンサ(以下、自動伴奏装置)が設けられた
ものがあり、該自動伴奏装置は、自動伴奏されるリズム
音に同期させて、演奏者が鍵盤より入力したコード(和
音)情報を所定の記憶装置に記憶したり、記憶されたコ
ード情報を自動伴奏されるリズム音に同期させて再生し
ている。
【0003】入力したコードの記憶は、まず、リズム音
を自動伴奏しておき、演奏者がリズム音に合せて、鍵盤
からコードを順次入力すると、始めに入力されたコード
を、その入力された小節の先頭のコードとして記憶する
ようになっている。そして、順次入力されるコードを、
その入力タイミングに応じて、リズム音と同期させて記
憶している。なお、入力タイミングは実際には四分音符
に基づいて量子化されている。また、記憶されたコード
は、コード再生操作を行なうと、自動伴奏装置によっ
て、再生操作タイミングの次の小節から順次再生される
ようになっている。
【0004】
【発明が解決しようとする課題】ところで、一般に、コ
ード入力は、自動伴奏を聞きながら、この自動伴奏に同
期させて入力する必要がある。しかしながら、上述した
従来の電子楽器では、自動伴奏に対して、コード入力の
タイミングが少しでも遅れると、タイミングが次の小節
のものとして記憶される。このため、再生されるコード
の発音タイミングが演奏者の意図するタイミングと異な
り、不自然な演奏になるという問題を生じた。同様に、
再生開始時にも、操作が少しでも遅れると、操作時点か
ら1小節近く経過してから再生開始されてしまうため、
操作者の意図に合わなくなるという問題も生じた。
【0005】上述した事情に鑑み、本願請求項1記載の
発明は、コード再生時において操作を行う操作者の意図
に合った再生を行うことができる自動伴奏装置を提供す
ることを目的としている。また、請求項2記載の発明
は、コードの記録時において、コードの入力の操作が多
少遅れてもよく、容易に自動伴奏に同期させたコード入
力ができるという利点を有する自動伴奏装置を提供する
ことを目的としている。
【0006】
【課題を解決するための手段】上述した問題点を解決す
るために、請求項1記載の発明では、コードを示すコー
ド情報を演奏進行に基づいて順次発生するコード進行情
報を複数記憶したコード進行メモリと、前記コード進行
メモリからコード進行情報として記憶されたコード情報
を順次読み出すコード進行読み出し手段と、ズム音を
発生することでリズム演奏を行い、前記コード進行読み
出し手段によってコード情報が読み出されているときに
はコード情報に基づくコード音を合わせて発生すること
で自動伴奏を行う自動伴奏手段と、前記複数のコード進
行情報の中から一つを選択する選択操作子と、操作者に
操作される操作子であって、少なくとも前記自動伴奏手
段によるリズム演奏の開始を指示する開始操作子と、前
記自動伴奏手段の自動伴奏開始に応答して拍をカウント
する拍タイミング管理手段と、前記選択操作子が操作さ
れた時点が前記自動伴奏手段による演奏にかかる小節中
のいずれの位置かを前記拍タイミング管理手段のカウン
ト値に基づいて検出する小節位置検出手段と、前記選択
操作子が操作されたときに、当該操作時点においてコー
ド進行情報が読み出されているか否かを判断する判断手
段と、前記判断手段によって、コード進行情報が読み出
されていないと判断された場合に、前記選択操作子が操
作されたときに、前記小節位置検出手段によって、操作
された時点が所定の位置より前であると検出されれば直
ちにコード情報を読み出すように前記コード進行読み出
し手段を制御し、後であると検出されれば次の小節の先
頭時点からコード情報を読み出すように前記コード進行
読み出し手段を制御する第1の制御手段と、前記判断手
段によって、コード進行情報が読み出されていると判断
された場合に、前記選択操作子が操作されたときに、操
作があった小節の次の小節からコード進行を切り換える
ように制御する第2の制御手段とを備えることを特徴と
する。
【0007】また、請求項2記載の発明では、操作者の
操作に応じてコードを示すコード情報を発生するコード
情報発生手段と、前記コード情報発生手段によって順次
発生されるコード情報をコード進行情報として記憶する
コード進行メモリと、前記コード進行メモリに前記コー
ド情報発生手段によって発生されたコード情報を書き込
む書込手段と、自動伴奏を行う自動伴奏手段と、該自動
伴奏手段の開始に応答して拍をカウントする拍タイミン
グ管理手段と、自動伴奏中であってコード情報発生手段
により最初のコード情報が発生された時点が自動演奏に
かかる小節中のいずれの位置かを前記拍タイミング管理
手段のカウント値に基づいて検出する小節位置検出手段
と、前記小節位置検出手段によって、前記最初のコード
情報が発生された時点が所定の位置より前にあったと検
出されたときには、現小節の先頭時におけるコードとし
て書き込むよう前記書込手段を制御し、後であれば次の
小節の先頭時におけるコードとして書き込むよう前記書
込手段を制御する第1の制御手段と、前記最初のコード
情報が前記次の小節の先頭におけるコード情報として書
き込まれた後に、前記次の小節の先頭よりも前の時点で
発生手段によって新たなコード情報が発生された場合、
前記次の小節の先頭におけるコードとして既に書き込ま
れたコード情報に代えて前記新たなコード情報を書き込
むように制御する第2の制御手段とを備えることを特徴
とする。
【0008】
【作用】請求項1記載の発明によれば、操作者が開始操
作子を操作し、自動伴奏手段によるリズム演奏の開始を
指示すると、拍タイミング管理手段が自動伴奏手段の自
動伴奏開始に応答して拍をカウントする。操作者が選択
操作子を操作すると、小節位置検出手段は、選択操作子
が操作された時点が自動伴奏手段による演奏にかかる小
節中のいずれの位置かを拍タイミング管理手段のカウン
ト値に基づいて検出する。また、判断手段が、選択操作
子が操作されたときに、当該操作時点においてコード進
行情報が読み出されているか否かを判断する。第1の制
御手段は、判断手段によって、コード進行情報が読み出
されていないと判断された場合に、選択操作子が操作さ
れたときに、小節位置検出手段によって操作された時点
が所定の位置より前であると検出されれば、直ちにコー
ド情報を読み出すようにコード進行読み出し手段を制御
し、後であると検出されれば、次の小節の先頭時点から
コード情報を読み出すようにコード進行読み出し手段を
制御する。
【0009】そして、判断手段によって、コード進行
報が読み出されていると判断された場合に、操作者によ
って選択操作子が操作されたときには、第2の制御手段
が、操作があった小節の次の小節からコード進行を切り
換えるように制御を行う。
【0010】また、請求項2記載の発明によれば、拍タ
イミング管理手段は、自動伴奏手段の開始に応答して拍
をカウントする。小節位置検出手段は、自動伴奏中であ
ってコード情報発生手段により最初のコード情報が発生
された時点が自動演奏にかかる小節中のいずれの位置か
を拍タイミング管理手段のカウント値に基づいて検出す
る。第1の制御手段は、小節位置検出手段によって最初
のコード情報が発生された時点が所定の位置より前にあ
ったと検出されたときには、現小節の先頭時におけるコ
ードとしてコード情報をコード進行メモリに書き込むよ
う書込手段を制御し、後であれば次の小節の先頭時にお
けるコードとして書き込むよう書込手段を制御する。
【0011】そして、第2の制御手段は、 最初のコー
ド情報が次の小節の先頭におけるコード情報として書き
込まれた後に、次の小節の先頭よりも前の時点で発生手
段によって新たなコード情報が発生された場合、次の小
節の先頭におけるコードとして既に書き込まれたコード
情報に代えてその新たなコード情報を書き込むように制
御を行う。
【0012】
【実施例】次に図面を参照してこの発明の実施例につい
て説明する。図1はこの発明の一実施例の構成を示すブ
ロック図である。コードメモリ1は、コード進行を記憶
する記憶装置であり、演奏者によって入力されたコード
の種類とデュレーションとを組み合わせて記憶する(詳
細は後述する)。ノンコードとしては、全てに「1(1
6進法でFF)」が設定されるようになっており、ノン
コードの場合には、自動伴奏ではリズム音のみが演奏さ
れる。拍子メモリ2には、各伴奏の種類(スタイル)毎
に何拍子の曲であるかを示すテンポデータが記憶されて
いる。
【0013】操作パネル3は、鍵盤4、コードパッド
5、スイッチ群6および表示部7からなる。鍵盤4は、
複数の白鍵および黒鍵からなり、演奏者の演奏に応じて
コード情報や通常の演奏情報等をデータバスDBを介し
てCPU8へ供給する。コードパッド5は、円盤形状を
有し、自動伴奏装置の動作タイミングを入力したり、コ
ードの種類を選択するため操作子である。この実施例で
は、4つのコードパッドが設けられていおり、各々に異
なるコード進行が割当てられている。したがって、この
実施例では、4種類のコード進行が選択できるようにな
っている。また、スイッチ群6は、複数のスライドスイ
ッチやプッシュスイッチ等から構成されており、本実施
例で用いられるのは自動伴奏のスタートスイッチ、スト
ップスイッチ、録音スイッチおよびスタイル選択スイッ
チである。これらスイッチ群のオン、オフ状態は所定の
タイミングでデータバスDBを介してCPU8へ供給さ
れる。表示部7はCPU8からの指示によって本装置の
動作モードやエラーメッセージ等を表示する。ここで、
操作パネル3の詳細な構成を説明するために、図2に示
す本実施例における電子楽器の正面図を参照して説明す
る。
【0014】図2において、電子楽器の前部(演奏者
側)には上記鍵盤4が設けられており、電子楽器の後部
には、上記操作パネル3が設けられている。この操作パ
ネル3には、上述した4つのコードパッド5a,5b,
5c,5d、自動伴奏のスタートスイッチ6a、ストッ
プスイッチ6b、録音スイッチ6c、スタイル選択スイ
ッチ6dおよび表示部7が設けられている。スタートス
イッチ6aは、コードの記憶処理または記憶されたコー
ドの再生処理の開始に先立って操作され、該スタートス
イッチ6aが操作されると、自動伴奏の演奏を開始する
ようになっている。次に、ストップスイッチ6bは、コ
ードの記憶処理または記憶されたコードの再生処理の終
了において操作され、該ストップスイッチ6bが操作さ
れると、自動伴奏の演奏を停止するようになっている。
【0015】また、録音スイッチ6cは、コードの記憶
処理において、記憶開始を指示する際に操作され、上記
コードパッド5a〜5dと同時に用いられるようになっ
ている。また、スタイル選択スイッチ6dは、コードパ
ッド5a〜5dに伴奏スタイルを割り当てるためのスイ
ッチである。本実施例では、以下に述べる動作に先立っ
て演奏者により操作されることにより、各コードパッド
5a〜5dには所望する伴奏スタイルが割り当てられて
いるものとする。
【0016】図1に戻って説明を続けると、CPU8は
所定のプログラムに従って電子楽器全体の処理を行なう
ものであり、データバスDBを介して各部の回路と各種
データを授受している。プログラムメモリ9には上記プ
ログラムが記憶されている。また、ワーキングメモリ1
0は、CPU8の処理において生じる各種データが記憶
されるレジスタや、変数等の状態を示すフラグとして用
いられる。次に、テンポクロック部11は、所定のクロ
ックCLを発生し、CPU8および自動伴奏装置12へ
供給する。CPU8および自動伴奏装置12は、上記ク
ロックCLに従って同期して動作するようになってい
る。
【0017】自動伴奏装置12は、上記クロックCLに
従って、コードパッドメモリ1に記憶されたコードデー
タと、拍子メモリ2に記憶されたテンポデータとに基づ
き伴奏データをミキシング回路13に供給する。また、
トーンジェネレータ14はCPU8の命令に基づき楽音
データを発生し、これをミキシング回路13に供給す
る。ミキシング回路13は、伴奏データと楽音データと
を混合し、これをサウンドシステム15へ供給する。サ
ウンドシステム15は上記混合された伴奏データと楽音
データをアナログ信号に変換した後、図示しないスピー
カから楽音として出力する。次に、前述したコードパッ
ドメモリ1について図3を参照して説明する。この図に
おいて、コードパッドメモリ1は各コードパッド5a〜
5dに対応して設けられており、順次、コードパッド5
aにはコードメモリCM(0,CP)、コードパッド5
bにはコードメモリCM(1,CP)、コードパッド5
cにはコードメモリCM(2,CP)、コードパッド5
dにはコードメモリCM(3,CP)が対応しており、
コードパッドメモリCM(0,CP)〜(3,CP)の
各々には、コードパッドに割り当てられた伴奏スタイル
に対応したコードデータが記憶される。なお、符号CP
は発音すべきコードの先頭データが記憶されるアドレス
を示すポインタであり、コードパッドメモリCM(0,
CP)〜CM(3,CP)を示す変数(上記符号CMに
付けられた括弧内の始めの数値)としてはパターンナン
バ変数PTNが用いられる。コードパッドメモリCM
(0,CP)〜CM(3,CP)には、記憶時において
入力されたコードのコード根音(根音レジスタRT)、
コード種類(コード種類レジスタTP)およびコードの
持続時間(デュレーションDT)が1つの組として入力
されたコード順に記憶される。また、コードデータの終
りにはデュレーションDTにエンドコードが記憶され
る。
【0018】次に、上述した構成による動作について、
図4〜図12に示すフローチャートを参照して説明す
る。 (本実施例の動作)演奏者によって電源が投入される
と、図4に示すメインルーチンがCPU8によって実行
される。メインルーチンでは、まず、ステップSA1に
おいて、各回路や、各種レジスタおよびフラグ等の初期
設定を行なう。次に、ステップSA2、ステップSA
4、ステップSA6、ステップSA8およびステップS
A10において、各種イベントが発生したか否かを判断
する。イベントが発生しなかった場合には、各ステップ
における判断結果は「NO」となり、上記ステップSA
2〜SA10のループを繰り返し実行する。
【0019】上記ループの実行において、コードの記憶
処理を行なうためには、まず、スタートスイッチ6aを
押下する。スタートスイッチ6aが押下されると、ステ
ップSA8における判断結果が「YES」となり、ステ
ップSA9へ進む。ステップSA9では、図5に示すス
タート処理が実行される。スタート処理では、まず、ス
テップSB1において、自動伴奏フラグACMPRUN
が「1」であるか否かを判断する。この自動伴奏フラグ
ACMPRUNは、自動伴奏が開始されているか否かを
示しており、自動伴奏が開始されていない時には「0」
となり、自動伴奏が開始している時には「1」となる。
この場合は、スタートスイッチ6aは初めて押下された
ので、まだ、自動伴奏は行なわれていないため、自動伴
奏フラグACMRUNは「0」である。したがって、ス
テップSB1における判断結果は「NO」となり、ステ
ップSB3へ進み、自動伴奏フラグACMPRUNを
「1」とする。次に、ステップSB4において、根音レ
ジスタRTを「FF(16進)」とし、コード種類レジ
スタTPを「FF(16進)」とする。次に、ステップ
SB5へ進み、自動伴奏装置にスタート信号、根音レジ
スタRTおよびコード種類レジスタTPの内容を出力
し、メインルーチンへ戻る。
【0020】自動伴奏装置12は、スタート信号、根音
レジスタRTおよびコード種類レジスタTPの内容に基
づいて伴奏データをミキシング回路13へ出力する。こ
の場合、ミキシング回路13には、楽音データは供給さ
れていないため、上記伴奏データのみがサウンドシステ
ム15へ供給される。なお、根音レジスタRTおよびコ
ード種類レジスタTPの内容は「FF」であるため、サ
ウドシステム14からはリズム音のみが発音される。一
方、既に、自動伴奏が行なわれている場合には、自動伴
奏フラグACMRUNが「1」となっているため、ステ
ップSB1における判断結果は「YES」となり、自動
伴奏装置12に対してデータを送出せずに、そのままメ
インルーチンへ戻る。言換えると、一度、自動伴奏が開
始されると、スタートスイッチ6aの操作は無視され
る。
【0021】また、本実施例の電子楽器では、電源が投
入されると、1拍毎に、図6に示すテンポクロック処理
が実行される。テンポクロック処理は、クロックに従っ
て、一定の間隔で割込み実行されるルーチンである。こ
のテンポクロック処理では、まず、ステップSC1にお
いて、自動伴奏フラグACMPRUNが「1」であるか
否かを判断する。自動伴奏が行なわれていない場合に
は、自動伴奏フラグACMPRUNは「0」であるた
め、上記ステップSC1における判断結果は「NO」と
なり、当該テンポクロック処理を終了し、これまで実行
していたルーチンへ戻る。
【0022】これに対して、この場合、上述したスター
ト処理のステップSB3において、自動伴奏フラグAC
MPRUNが「1」となっているため、ステップSC1
における判断結果は「YES」となり、ステップS
へ進む。ステップSC2では、録音モードフラグREC
が「0」であるか否かを判断する。この録音モードフラ
グRECは、記憶モードであるか否かを示すフラグであ
り、記憶モードでない時(すなわち、再生モードの時)
には「0」、記憶待機モードの時には「1」、また、記
憶が既に開始されている時には「2」となる。この場
合、まだ、記憶モードフラグRECは「0」であるた
め、ステップSC2における判断結果は「YES]とな
り、ステップSC3へ進む。ステップSC3では、待機
フラグWAITが「1」であるか否かを判断する。
【0023】この待機フラグWAITは、演奏モードに
おいて、所定のコードが小節の先頭のタイミングで発音
されるよう、発音タイミングを制御するためのフラグで
あり、「0」の時にはコードの発音タイミングが小節の
先頭に一致している場合である。なお、詳細は後述する
が、コード再生中にコードパッドを操作することによっ
てコード進行を変更する場合があり、この場合にも、最
初に発音されるコードの発音タイミングを小節の先頭に
合せる必要があるため、上記待機フラグWAITが参照
される。
【0024】現在、待機フラグWAITは、メインルー
チンの初期設定で「0」となっている。したがって、ス
テップSC3における判断結果は「NO」となり、ステ
ップSC12へ進む。ステップSC12では、コード再
生フラグCHDRUNが「1」であるか否かを判断す
る。このコード再生フラグCHDRUNは、コードパッ
ドメモリ5に記憶されたコードの再生が開始されたか否
かを示すフラグであり、「0」の場合はコード再生が開
始されていないことを示し、「1」の場合にはコード再
生が開始されたことを示す。この場合には、コード再生
が開始されていないので、ステップSC12における判
断結果は「NO」となり、ステップSC8へ進む。
【0025】ステップSC8では、各スタイルが何拍子
であるかを記憶している拍子レジスタMTRから「1」
を減算した値がビートカウンタBTと等しいか否かを判
断する。このビートカウンタBTは、各小節における拍
子をカウントする変数であり、伴奏スタイルに応じて、
3拍子の場合には、「0」,「1」,「2」の値を順次
とり、4拍子の場合には、「0」,「1」,「2」,
「3」の値を順次とる。この実施例では、一例として4
拍子としている。なお、現在の伴奏スタイルの種類は、
図示するスタイル変数STYLによって示される。ビー
トカウンタBTが現在の伴奏スタイルの最終拍に達して
いない場合には、ステップSC8における判断結果は
「NO」となり、ステップSC9へ進む。ステップSC
9では、現在が何拍目であるかを示すビートカウンタB
Tを「1」だけインクリメントして次の拍に更新する。
【0026】一方、ビートカウンタBTが現在の伴奏ス
タイルの最終拍に達している場合には、ステップSC8
における判断結果は「YES」となり、ステップSC1
0へ進む。ステップSC10では、ビートカウンタBT
を「0」にリセットし、次の小節の先頭を示すように更
新する。したがって、この場合には、選択された伴奏ス
タイルが4拍子であるので、ビートカウンタBTは
「0」,「1」,「2」,「3」,「0」,「1」,
「2」,……という値を繰り返しとる。そして、ステッ
プSC9またはSC10の処理が終了すると、当該テン
ポクロック処理を終了し、これまで実行していたルーチ
ンへ戻る。
【0027】次に、鍵盤4から入力されたコードをコー
ドパッドメモリ1に記憶する処理について説明する。 (記憶モード)上述した自動伴奏が演奏されている状態
において、演奏者が、録音スイッチ6cを押下しなが
ら、所望するコード進行に対応したコードパッド5a〜
5dのいずれか1つを叩くと、メインルーチンのステッ
プSA4における判断結果が「YES」となり、ステッ
プSA5へ進む。なお、以下の説明ではコードパッド5
aが操作されたと仮定する。ステップSA5では、図7
に示すコードパッドイベント処理が実行される。このコ
ードパッドイベント処理では、まず、ステップSD1に
おいて、録音スイッチ6cが、コードパッド5aと同時
に押下されているかを判断する。この場合、上述したよ
うに録音スイッチ6cが同時に押下されているため、ス
テップSD1における判断結果は「YES」となり、ス
テップSD2へ進む。ステップSD2では、図8に示す
記憶モード処理が実行される。
【0028】記憶モード処理では、まず、ステップSE
1において、叩かれたコードパッドに対応したコードパ
ッド・ナンバ(0,1,2,3の値のいずれか)がパタ
ーンナンバ変数PTNに代入される。次に、ステップS
E2へ進み、記憶モードフラグRECを「1」とする。
したがって、コードパッド5a〜5dのうち操作された
いずれかに対応するコードパッドメモリCM(PTN,
CP)が記憶待機状態になる。例えば、コードパッド5
aが操作された場合には、パターンナンバ変数PTNの
内容は「0」となり、その結果、図3に示すコードパッ
ドメモリCM(0,CP)が記憶待機状態になる。表示
部7には、記憶待機状態であることを示すメッセージが
表示される。次に、ステップSE3において、待機状態
のコードパッドメモリCM(0,CP)の先頭データが
記憶されるアドレスをポインタCPに格納する。そし
て、当該記憶モード処理ルーチンを終了しメインルーチ
ンへ戻る。
【0029】また、自動伴奏が進行して次の拍にくる
と、記憶モードフラグRECが上記ステップSE2にお
いて、「1」となって記憶待機モードになるため、前述
した1拍毎に実行されるテンポクロック処理のステップ
SC2における判断結果が「NO」となり、ステップS
17へ進む。ステップSC17では、デュレーション
DTを「1」だけインクリメントする。次に、前述した
ステップSC8、および、SC9またはSC10へ進
み、ビートカウンタBTを更新した後、当該テンポクロ
ック処理を終了し、これまで実行していたルーチンへ戻
る。なお、上記テンポクロック処理におけるデュレーシ
ョンDTのインクリメントおよびビートカウントBTの
更新は、記憶待機モードおよび後述する記憶モードの
間、自動伴奏の進行に応じて1拍毎に行なわれる。
【0030】次に、演奏者は自動伴奏されるリズム音に
合せて、所望するコードまたは旋律を鍵盤4により順次
入力していく。何らかのキーイベントが発生すると、メ
インルーチンのステップSA2における判断結果が「Y
ES」となり、ステップSA3へ進む。ステップSA3
では、図9に示すキーイベント処理が実行される。キー
イベント処理では、まず、ステップSF1において、通
常のキーイベントに対する発音/消音処理を行なう。こ
のキーイベントに対する楽音はトーンジェネレータ14
により生成され、ミキシング回路13へ供給される。次
に、ステップSF2へ進み、自動伴奏フラグACMPR
UNが「1」であるか否かを判断する。ステップSF2
における判断結果が「NO」の場合には当該処理を終了
して、メインルーチンへ戻る。
【0031】この場合、自動伴奏は既に開始されている
ため、上記自動伴奏フラグACMPRUNは「1」であ
る。したがって、ステップSF2における判断結果は
「YES」となり、ステップSF3へ進む。ステップS
F3では、演奏者によるコードの入力を検出する。次
に、ステップSF4において、コードが検出されたか否
かを判断する。まだ、コードが入力されていない場合、
すなわち、キーイベントが生じても、それがコードでな
い場合には、ステップSF4における判断結果は「N
O」となり、当該処理を終了して、メインルーチンへ戻
る。
【0032】一方、演奏者によってコードが入力された
場合には、ステップSF4における判断結果は「YE
S」となり、ステップSF5へ進む。ステップSF5で
は、根音レジスタRTおよびコード種類レジスタTP
に、各々、入力されたコードのコード根音およびコード
種類を格納する。次に、ステップSF6において、自動
伴奏装置12に根音レジスタRTおよびコード種類レジ
スタTPの内容を出力する。これにより、自動伴奏装置
12は、根音レジスタRTおよびコード種類レジスタT
Pの内容に基づいてコードデータをミキシング回路13
へ出力する。この場合、ミキシング回路13は、上記楽
音データとコードデータとを混合し、サウンドシステム
15へ供給する。サウドシステム14からは鍵盤より入
力したコードが発音される。次に、ステップSF7へ進
み、記憶モードフラグRECが「0」より大きいか否か
を判断する。記憶モードフラグRECが「0」の場合、
すなわち、記憶待機モードではなく、再生モードの場合
には、ステップSF7における判断結果が「NO」とな
るため、演奏入力されたコードを記憶することなく、当
該処理を終了してメインルーチンへ戻る。
【0033】一方、現在の状態は、前述した記憶モード
処理において、記憶モードフラグRECには「1」が格
納され、記憶待機モードになっているため、上記ステッ
プSF7における判断結果は「YES」となり、ステッ
プSF8へ進む。ステップSF8では、図10に示す記
憶処理ルーチンが実行される。記憶処理ルーチンでは、
まず、ステップSG1において、記憶モードフラグRE
Cが「1」であるか否か、すなわち、記憶待機モードで
あるか否かを判断する。この場合、上述したように、記
憶待機モードであるので、ステップSG1における判断
結果は「YES」となり、ステップSG2へ進む。ステ
ップSG2では、記憶を開始するために、記憶モードフ
ラグRECを「2」とし、記憶が開始されていることを
示す状態にする。次に、ステップSG3において、パタ
ーンナンバ変数PTNおよびポインタCPによって示さ
れるコードパッドメモリCM(PTN,CP)に根音レ
ジスタRTの内容、すなわち、演奏入力されたコード根
音を格納するとともに、コードメモリ(PTN,CP+
1)に根音種類レジスタTPの内容を格納する。次に、
ステップSG4へ進み、ビートカウンタBTが「2」よ
り小さいか否かを判断する。すなわち、ステップSG4
では、コードが小節の丁度中間である2拍目より前に入
力されたのか、あるいは2拍目以降に入力されたのかを
判断する。そして、ビートカウンタBTが「2」よりも
小さい場合、すなわち、コードの入力が2拍目より前に
行なわれた場合には、ステップSG4における判断結果
は「YES」となり、ステップSG5へ進む。ステップ
SG5では、デュレーションDTにそのままビートカウ
ンタBTの値を代入する。この結果、後述するステップ
SG12において、2拍子より前に入力されたコードの
入力タイミングは、入力された小節の先頭拍のタイミン
グと一致するように記憶される。
【0034】一方、ビートカウンタBTが「2」以上の
場合、すなわち、コードの入力が2拍目以降に行なわれ
た場合には、ステップSG4における判断結果は「N
O」となり、ステップSG6へ進む。ステップSG6で
は、ビートカウンタBTから「4」を減算した値をデュ
レーションDTに代入する。この結果、後述するステッ
プSG12において、2拍目以降に入力されたコードの
入力タイミングは、次の小節の先頭拍のタイミングと一
致するように記憶される。
【0035】上記ステップSG5またはSG6が終了す
ると、ステップSG7へ進み、コードパッドメモリCM
(PTN、CP)のアドレスを示すポインタCPを
「2」インクリメントする。これにより、ポインタCP
は、次の入力コードに対するデータを記憶するためのア
ドレスを示すよう更新される。そして、当該処理を終了
して、メインルーチンへ戻る。一方、既に記憶が開始さ
れている場合、すなわち、先のコード入力に引き続き次
のコードが入力された場合には、第1のコードに対する
上述したステップSG2において、記憶モードフラグR
ECが「2」となっているため、ステップSG1におけ
る判断結果は「NO」となり、ステップSG8へ進む。
ステップSG8では、デュレーションDTが「0」より
大きいか否かを判断する。これは、現時点におけるコー
ドの入力タイミングを判断するためであり、デュレーシ
ョンDTが「0」より大きい場合、すなわち、現時点の
コードが直前に入力されたコードに対して(2つ目の入
力時は記憶開始に対して)1拍以上の間隔が空いていて
入力された場合には、ステップSG8における判断結果
は「YES」となり、ステップSG9へ進む。ステップ
SG9では、コードパッドメモリCM(PTN,C
P),CM(PTN,CP+1)および(PTN,CP
+2)に、順次、デュレーションDT、根音レジスタR
Tおよびコード種類TPの内容を格納する。なお、ここ
で、デュレーションDTは再生時には、前の入力和音の
期間に対応する、いわゆる「符長データ」と見ることも
できる。
【0036】そして、ステップSG10において、ポイ
ンタCPを「3」だけインクリメントし、次の入力コー
ドに対するデータを記憶するためのアドレスを示す値に
更新する。次に、ステップSG11において、デュレー
ションDTを「0」にクリアした後、当該処理を終了し
て、メインルーチンへ戻る。すなわち、ステップSG
1,およびSG8〜SG11においては、先のコード入
力に引き続き入力されるコードのデータを、該コードの
入力タイミングより前で、かつ、その入力タイミングに
最も近い拍のタイミングで入力されたかのように、所定
のコードパッドメモリへ記憶する。また、上記ステップ
SG11においてデュレーションDTを「0」としたこ
とによって、次にテンポクロック処理が実行された時に
は、デュレーションDTは、ステップSC17において
インクリメントされるため、「1」からカウントアップ
される。
【0037】一方、ステップSG8において、デュレー
ションDTが「0」以下の場合、すなわち、引き続き入
力されるコードが、現時点のコードの直前に入力された
コードに対して(2つ目の入力時は記憶開始に対して)
1拍より短い間隔しかない場合には、ステップSG8に
おける判断結果は「NO」となり、ステップSG12へ
進む。ステップSG12では、現在のコードデータであ
る根音レジスタRTおよび根音種類TPの内容を、直前
のコードデータが記憶されたアドレスに記憶する。言換
えると、直前に入力されたコードに対して1拍以上の間
隔が空いていない場合には、現時点のコードの根音レジ
スタRTおよび根種類TPの内容を、直前のコードデー
タに上書する。これによって、再生時には、一拍の発音
中に指定コードが複数あるという状況はなくなる。そし
て、上記ステップSG12における処理が終了すると、
当該処理を終了してメインルーチンへ戻る。
【0038】以下、同様にして、順次入力されるコード
がコードパッドメモリへ記憶される。そして、コードの
入力を終了するために、ストップスイッチが押下される
と、メインルーチンのステップSA10における判断結
果が「YES」となり、ステップSA11へ進む。ステ
ップSA11では、図11に示すストップ処理が実行さ
れる。ストップ処理では、まず、ステップSH1におい
て、自動伴奏フラグACMPRUNが「0」であるか否
かを判断する。この場合、コード入力のために、自動伴
奏が行なわれているので、自動伴奏フラグACMPRU
Nは「1」である。したがって、ステップSH1におけ
る判断結果は「NO」となり、ステップSH2へ進む。
ステップSH2では、自動伴奏ACMPRUNを「0」
とする。次に、ステップSH3へ進み、自動伴奏装置1
2にストップ信号を出力する。これにより、リズム音に
よる自動伴奏が停止する。次に、ステップSH4におい
て、記憶モードフラグRECが「2」であるか否かを判
断する。現時点では記憶モードであるため、記憶モード
フラグRECは「2」である。したがって、ステップS
H4における判断結果は「YES」となり、ステップS
H5へ進む。ステップSH5では、コードパッドメモリ
CM(PTN,CP)にエンドコードを書き込む。そし
て、当該ストップ処理を終了し、メインルーチンへ戻
る。
【0039】また、上記ステップSH2において、自動
伴奏フラグACMPRUNを「0」としたことで、図6
に示すテンポクロック処理のステップSC1における判
断結果は「NO」となり、そのまま当該処理を終了し
て、割り込みがかかる前の処理へ戻る。これは、次に、
何らかの操作が行なわれることによって自動伴奏フラグ
ACMPRUNが「1」になるまで、繰り返し実行され
る。以上の処理によって、最初に入力されたコードは、
その入力タイミングが小節の2拍目より前ならば、その
小節の先頭拍で入力されたかように、所定のコードパッ
ドメモリ(PTN,CP)に記憶される。また、上記コ
ードの入力タイミングが小節の2拍目以降ならば、次の
小節の先頭拍で入力されたかのように記憶される。さら
に、上記最初のコードに引き続いて入力されたコードに
関しては、そのコードが入力されたタイミングに最も近
接した拍で入力されたかのように記憶される。
【0040】次に、上述した記憶モードにおいて記憶さ
れたコードの再生動作について説明する。 (再生モード)まず、前述したメインルーチンのステッ
プSA1〜SA11のループの実行において、記憶され
たコードの再生処理を行なうためには、まず、スタート
スイッチ6aを押下する。スタートスイッチ6aが押下
されると、ステップSA8における判断結果が「YE
S」となり、ステップSA9へ進む。ステップSA9で
は、図5に示すスタート処理が実行される。スタート処
理では、現時点では自動伴奏が行なわれていないため、
前述したように、自動伴奏フラグACMRUNは「0」
である。このため、ステップSB1における判断結果は
「NO」となり、ステップSB2において、自動伴奏フ
ラグACMPRUNを「1」とした後、ステップSB3
において、根音レジスタRTに「FF(16進)」を代
入し、根音種類レジスタTPに「FF(16進)」を代
入した後、ステップSB4へ進み、自動伴奏装置12に
スタート信号、根音レジスタRTおよび根音種類レジス
タTPの内容を出力してメインルーチンへ戻る。自動伴
奏装置12は、スタート信号、根音レジスタRTおよび
根音種類レジスタTPの内容に基づいて伴奏データを順
次ミキシング回路13へ出力する。この場合、ミキシン
グ回路13には、演奏データは供給されていないので、
上記伴奏データのみをサウンドシステム15へ出力す
る。なお、根音レジスタRTおよび根音種類レジスタT
Pの内容は「FF」であるため、サウドシステム14か
らはリズム音のみが順次発音される。
【0041】また、自動伴奏フラグACMPRUMが
「1」となることにより、図6に示すテンポクロック処
理のステップSC1における判断結果が「YES」とな
り、ステップSC2へ進む。この場合、現時点では、記
憶モードフラグRECは、まだ、「2」のままである。
したがって、ステップSC2における判断結果は「N
O」となり、ステップSC17へ進み、デュレーション
DTをインクリメントした後、さらに、ステップSC8
〜SC10へ進み、ビートカウンタBTを更新する。そ
の後、当該テンポクロック処理を終了し、これまで実行
していたルーチンへ戻る。
【0042】次に、演奏者が再生したいコードに対応す
るコードパッド5a〜5dのいずれかを叩くと、メイン
ルーチンのステップSA4における判断結果が「YE
S」となり、ステップSA5に進み、前述した図7に示
すコードパッドイベント処理が実行される。この場合、
録音スイッチ6cは押下されていないため、ステップS
D1における判断結果は「NO」となり、ステップSD
3へ進む。ステップSD3では、叩かれたコードパッド
5(5a〜5dのいずれか)に対応するコードパッド番
号をパターンナンバ変数PTNへ代入する。次に、ステ
ップSD4へ進み、自動伴奏フラグACMPRUNが
「0」であるか否かを判断する。この場合、自動伴奏
は、既に行なわれているので、ステップSD4における
判断結果は「NO」となり、ステップSD5へ進む。ス
テップSD5では、コード演奏フラグCHDRUNが
「0」であるか否かを判断する。これは、コード進行を
変更した場合には、変更後のコードを、小節の先頭で発
音するための判断であり、この場合、コードパッドメモ
リCM(PTN,CP)のコードデータは、上述したよ
うに、まだ、再生されていないので、コード演奏フラグ
CHDRUNは「0」である。このため、ステップSD
5における判断結果は「YES」となり、ステップSD
6へ進む。
【0043】ステップSD6では、記憶モードフラグR
ECを「0」にして再生モードにする。次に、ステップ
SD7において、ビートカウンタBTが「0」であるか
否かを判断する。コードパッド5a〜5dのいずれかが
叩かれたタイミングが小節の先頭拍の場合には、ビート
カウンタBTが「0」であるので、ステップSD7にお
ける判断結果は「YES」となり、ステップSD8へ進
む。ステップSD8では、待機フラグWAITを「0」
として待機状態を解除するとともに、コード演奏フラグ
CHDRUNを「1」としてコード演奏状態とする。次
に、ステップSD9において、パターンナンバ変数PT
Nで示されるコードパッドメモリCM(PTN,CP)
の先頭アドレスをポインタCPに代入する。そして、ス
テップSD10へ進み、図12に示すコード再生処理を
実行する。
【0044】コード再生処理では、まず、ステップSI
1において、コードパッドメモリCM(PTN,CP)
の内容を根音レジスタRTへ格納し、コードパッドメモ
リCM(PTN,CP+1)の内容を根種類レジスタT
Pへ格納するとともに、コードパッドメモリCM(PT
N,CP+2)の内容をデュレーションDTへ代入す
る。そして、ステップSI2において、次に再生すべき
コードのアドレスを示すポインタCPを「3」だけイン
クリメントして更新する。次に、ステップSI3へ進
み、自動伴奏装置12に上記根音レジスタRTおよび根
音種類レジスタTPの内容を出力する。自動伴奏装置1
2は、根音レジスタRTおよび根音種類レジスタTPの
内容に基づいて伴奏データをミキシング回路13へ出力
する。ミキシング回路13は、演奏データとコードを含
む伴奏データとをミキシングしてサウンドシステム15
へ出力する。サウドシステム14からは自動伴奏の拍子
に同期したコードとともに、演奏された楽音が発音され
る。上記ステップSI3の処理が終了すると、当該処理
を終了し、コードパッドイベント処理へ戻る。コードパ
ッドイベント処理では、当該処理を終了し、メインルー
チンへ戻る。
【0045】一方、上述したコードパッドイベント処理
において、コードパッド5a〜5dのいずれかが叩かれ
たタイミングが小節の先頭拍でない場合には、ビートカ
ウンタBTが「0」以外であるため、ステップSD7に
おける判断結果が「NO」となり、ステップSD11へ
進む。ステップSD11では、待機フラグWAITを
「1」として待機状態とする。その後、当該処理を終了
してメインルーチンへ戻る。このように、コードパッド
5a〜5dのイベントが生じた時点で、ビートカウンタ
BTが「0」以外の場合には、当該コードパッドイベン
ト処理では、操作されたコードパッドに対応するコード
パッドメモリに記憶されたコードは再生されない。この
ような場合には、テンポクロック処理によって再生が開
始される。以下に、その処理を説明する。
【0046】上述したように、コードパッドイベント処
理において、コード再生が実行されなかった場合には、
自動伴奏が次の拍に進むと、図6に示すテンポクロック
処理が再び実行された際に、以下の処理が実行される。
この場合、既に、自動伴奏フラグACMPRUNは
「1」であり、記憶モードフラグRECは「0」である
ため、ステップSD3へ進む。前述したように、待機フ
ラグWAITは、コードパッドイベント処理のステップ
SD11において、「1」となっているため、上記ステ
ップSC3における判断結果は「YES」となり、ステ
ップSC4へ進む。ステップSC4では、上述したコー
ドパッドイベント処理と同様に、ビートカウンタBTが
「0」であるか否かを判断する。そして、ビートカウン
タBTが「0」でない場合、すなわち、現時点のタイミ
ングが小節の先頭拍でない場合には、ステップSC8お
よびSC9へと進むことにより、ビートカウンタBTを
インクリメントし、その後、メインルーチンへ戻る。こ
の場合には、さらに、自動伴奏が次の拍に進む度に該テ
ンポクロック処理が実行されて、ステップSC8におけ
る判断結果が「YES」になり、ビートカウンタBTが
「0」になるまで、待機状態を保持する。
【0047】そして、ステップSC10において、ビー
トカウンタBTが「0」になった後、自動伴奏が次の拍
に進んで、再び、テンポクロック処理が実行されると、
ステップSC4における判断結果は「YES」となり、
ステップSC5へ進む。言換えると、現時点のタイミン
グが小節の先頭拍になると、該ステップSC4における
判断結果は「YES」となり、ステップSG5へ進む。
すなわち、コード再生において、再生を開始させるため
にコードパッドを操作すると、その操作が自動伴奏にお
ける小節の先頭拍でない場合には、待機フラグWAIT
を「1」とし待機状態とする。そして、自動伴奏の進行
に合せて1拍毎に実行されるテンポクロック処理におい
て、ビートカウンタBTの内容に基づいて自動伴奏が小
節の先頭拍に到達したか否かを判定し、先頭拍に到達し
た場合にコード再生のための次のステップへ進む。上記
ステップSC5では、上述したコードパッドイベント処
理のステップSD8と同様に、待機フラグWAITを
「0」として待機状態を解除するとともに、コード演奏
フラグCHDRUNを「1」としてコード演奏状態とす
る。次に、ステップSC6において、コードパッドメモ
リ(PTN,CP)の先頭アドレスをポインタCPに代
入する。そして、ステップSC7へ進み、前述した図1
2に示すコード再生処理を実行する。
【0048】コード再生処理では、まず、ステップSI
1において、コードパッドメモリCM(PTN,CP)
の内容を根音レジスタRTへ格納し、コードパッドメモ
リCM(PTN,CP+1)の内容を根音種類レジスタ
TPへ格納するとともに、コードパッドメモリCM(P
TN,CP+2)の内容をデュレーションDTへ格納す
る。そして、ステップSI2において、次に再生すべき
コードのアドレスを示すCPを「3」だけインクリメン
トして更新した後、ステップSI3へ進み、自動伴奏装
置12に上記根音レジスタRTおよび根音種類レジスタ
TPの内容を出力する。自動伴奏装置12は、根音レジ
スタRTおよび根音種類レジスタTPの内容に基づいて
伴奏データをミキシング回路13へ出力する。ミキシン
グ回路13は、演奏データとコードを含む伴奏データと
をミキシングしてサウンドシステム15へ出力する。サ
ウドシステム14からは小節の先頭拍に同期してコード
が発音される。
【0049】上記ステップSI3の処理が終了すると、
当該処理を終了し、テンポクロック処理のステップSC
8へ戻る。この場合、ビートカウンタBTは「0」であ
るため、ステップSC8における判断結果は「NO」と
なり、ステップSC9へ進み、ビートカウンタBTをイ
ンクリメントした後、当該処理を終了してメインルーチ
ンへ戻る。
【0050】上述した再生モードにおいて、コード再生
を実行するためにコードパッドを操作した後は、自動伴
奏が順次進行するにつれて、1拍毎に、テンポクロック
処理が実行され、以下に述べる処理が行なわれる。この
場合、上述したように、自動伴奏フラグACMPRUN
は「1」であり、記憶モードフラグRECは「0」であ
るため、ステップSC1およびSC2の判断結果は「Y
ES」となり、ステップSC3へ進み、待機フラグWA
ITが「1」であるか否かを判断する。待機フラグWA
ITは、前述したように、操作されたコードパッド5
(5a〜5dのいずれか)に対して第1のコードが発音
された際に、同処理のステップSC5またはコードパッ
ドイベント処理のステップSD8において「0」とされ
ている。したがって、ステップSC3における判断結果
は「NO」となり、ステップSC12へ進む。ステップ
SC12では、コード演奏フラグCHDRUNが「1」
であるか否かを判断する。
【0051】このコード演奏フラグCHDRUNは、上
記ステップSC5またはステップSD8において「1」
とされているため、上記ステップSC12における判断
結果は「YES」となり、ステップSC13へ進む。ス
テップSC13では、デュレーションDTがコードデー
タの終了を示すエンドコードであるか否かを判断する。
デュレーションDTがコードデータの終了を示すエンド
コードでない場合には、ステップSC12における判断
結果は「NO」となり、ステップSC13へ進む。ステ
ップSC13では、デュレーションDTが「0」である
かを判断する。このステップSC13におけるデュレー
ションDTの値は、前に発音されたコードデータに対す
るコード再生処理において、ステップSH1で該コード
データに対するデュレーション値が代入されている。す
なわち、上記ステップSG13では、前に発音されたコ
ードデータのデュレーションDTに相当する持続時間
(拍)が経過したか否かを判断している。
【0052】デュレーションDTが「0」でない場合、
言換えると、まだ、デュレーションDTに相当する持続
時間(拍)が経過しておらず、先のコードが発音されて
いる場合には、ステップSC13における判断結果は
「NO」となり、ステップSC14に進む。ステップS
C14では、デュレーションDTを「1」デクリメント
する。そして、新たにコード再生を行なうことなく、ス
テップSC8、および、ステップSC9またはSC10
へ進み、ビートカウンタBTを更新した後、当該テンポ
クロック処理を終了し、これまで実行していたメインル
ーチンへ戻る。上述した処理は、自動伴奏が順次進行す
る各拍毎に実行され、その都度、コード再生処理を実行
することなく、デュレーションDTをデクリメントする
とともに、ビットカウンタBTを更新する。
【0053】そして、ステップSC15において、デュ
レーションDTが「0」になると、次のテンポクロック
処理の実行の際に、ステップSC14における判断結果
が「YES」となり、ステップSC7に進み、前述した
図12に示すコード再生処理においてステップSI1〜
SI3の処理を行なう。この際、ステップSI1におい
て、所定のコードパッドメモリCM(PTN,CP),
CM(PTN,CP+1)およびCM(PTN,CP+
2)から、次のコードデータが、各々、根音レジスタR
T、根音種類レジスタTP、デュレーションDTへ格納
され、ステップSI2において、ポインタCPが次のコ
ードデータのアドレスを示す値に更新された後、ステッ
プSI3において、自動伴奏装置12に出力される。自
動伴奏装置12では、根音レジスタRTおよび根音種類
レジスタTPの内容に基づいて伴奏データをミキシング
回路13へ出力する。楽音データと伴奏データは、ミキ
シング回路13によってミキシングされ、サウンドシス
テム15により所定のタイミングで発音される。そし
て、上記ステップSI3の終了すると、テンポクロック
処理へ戻り、ステップSC8、および、ステップSC9
またはSC10へ進み、ビートカウンタBTを更新した
後、当該テンポクロック処理を終了し、これまで実行し
ていたメインルーチンへ戻る。以下、上述した処理が繰
り返し実行されることにより、コードパッドメモリに記
憶されたコードが、順次、所定のタイミングで、かつ、
そのコードのデュレーションDTの値に応じて発音され
る。
【0054】そして、コードデータの最後には、デュレ
ーションDTとしてエンドコードが格納されているた
め、テンポクロック処理のステップSC13における判
断結果が「YES」なり、コード再生を行なうことな
く、ステップSC8、および、ステップSC9またはS
C10へ進み、ビートカウンタBTを更新した後、当該
テンポクロック処理を終了し、これまで実行していたル
ーチンへ戻る。以下、常に、ステップSC13における
判断結果は「YES」となり、自動伴奏が進行しても、
コード再生は行なわれない。
【0055】また、上述した再生モードにおいて、コー
ド進行を変えるために、異なるコード進行に対応したコ
ードパッド5a〜5dのいずれかを叩くと、メインルー
チンのステップSA4における判断結果が「YES」と
なり、ステップSA5のコードパッドイベント処理へ進
む。この場合、録音スイッチ6cは押下されていないた
め、ステップSD1における判断結果は「NO」とな
り、ステップSDへ進む。ステップSDでは、PT
Nへコードパッドナンバを格納し、ステップSDへ進
み、自動伴奏フラグACMPRUNが「0」であるか否
かを判断する。以下、新たに設定されたパターンナンバ
変数PTNを符号PTN’で示す。この場合、自動伴奏
が行なわれているので、ステップSDの判断結果は
「NO」となり、ステップSD5へ進み、コード演奏フ
ラグCHDRUNが「0」であるか否かを判断する。コ
ード演奏フラグCHDRUNは「1」であるため、ステ
ップSD5における判断結果は「NO」となり、ステッ
プSD11へ進み、待機フラグWAITを「1」として
待機状態とした後、当該処理を終了してメインルーチン
へ戻る。
【0056】さらに、自動演奏が進行して次の拍でテン
ポクロック処理が実行されると、この場合には、ステッ
プSC1、SC2およびSC3における判断結果は「Y
ES」となり、ステップSC4へ進み、ビートカウンタ
BTが「0」であるか否かを判断する。そして、ビート
カウンタBTが「0」でない場合、すなわち、自動伴奏
が小節の先頭拍に到達していない場合には、ステップS
C4における判断結果は「NO」となり、ステップSC
8、SC9、またはSC10と進み、ビートカウンタB
Tを更新し、メインルーチンへ戻る。これは、ビートカ
ウンタBTが「0」になるまで行なわれる。
【0057】そして、自動伴奏が小節の先頭拍に到達す
ると、ステップSC4における判断結果は「YES」と
なり、ステップSC5へ進み、待機フラグWAITを
「0」として待機状態を解除するとともに、コード演奏
フラグCHDRUNを「1」とする。次に、ステップS
C6において、新たに操作されたコードパッドに対応す
るコードパッドメモリCM(PTN’,CP)の先頭デ
ータのアドレスをポインタCPに格納する。これによっ
て、コードパッドメモリCM(PTN’,CP)が切り
換えられる。次に、ステップSC7へ進み、図12に示
すコード再生処理が実行される。コード再生処理におい
ては、パターンナンバ変数PTN’によって示される新
たなコードパッドメモリCM(PTN’,CP)のコー
ドデータが根音レジスタRTへ、コードパッドメモリC
M(PTN’,CP+1)の根音種類が根音種類レジス
タTPへ、コードパッドメモリCM(PTN’,CP+
2)のデュレーションがデュレーションDTへ、各々、
格納された後、根音レジスタRT、根音種類レジスタT
Pの内容が自動伴奏装置12へ出力される。
【0058】自動伴奏装置12では、根音レジスタRT
および根音種類レジスタTPの内容に基づいて伴奏デー
タをミキシング回路13へ出力する。楽音データと伴奏
データは、ミキシング回路13によってミキシングさ
れ、サウンドシステム15により所定のタイミングで発
音される。そして、上記コード再生処理が終了すると、
テンポクロック処理へ戻り、ステップSC8、および、
ステップSC9またはSC10へ進み、ビートカウンタ
BTを更新した後、当該テンポクロック処理を終了し、
これまで実行していたメインルーチンへ戻る。以下、前
述したコード再生と同様に、パターンナンバ変数PT
N’によって示される新たなコードパッドメモリに記憶
されたコードデータが自動伴奏とともに順次再生され
る。
【0059】なお、再生モードにおいて、自動伴奏がま
だ開始されていない状態でコードパッド5a〜5dのい
ずれかを叩いた場合には、自動伴奏フラグACMPRU
Nは「0」であるため、上述したコードパッドイベント
処理のステップSD4における判断結果が「YES」と
なり、ステップSD12へ進む。そして、ステップSD
12において、表示部7にエラーメッセージとして、例
えば、「StartAcmp.1」と表示して操作ミス
が生じたことを知らせる。この表示は数秒後に消灯す
る。すなわち、自動伴奏(リズム音による自動演奏)が
開始されていない状態で、コードパッドを叩いても、コ
ードパッドメモリのコードデータを再生することはでき
ないため、エラーとして処理される。
【0060】次に、再生モードの終了について説明す
る。上述した自動伴奏とコード再生とが行なわれている
状態において、ストップキー6bを押下すると、メイン
ルーチンのステップSA10における判断結果が「YE
S」となり、ステップSA11へ進む。ステップSA1
1では、前述した図11に示すストップ処理が実行され
る。ストップ処理では、まず、ステップSH1におい
て、自動伴奏ACMPRUNが「0」であるか否かを判
断する。この場合、自動伴奏が行なわれているので、自
動伴奏フラグACMPRUNは「1」であるため、ステ
ップSH2へ進み、自動伴奏ACMPRUNを「0」と
する。次に、ステップSH3へ進み、自動伴奏装置12
にストップ信号を出力して自動伴奏を停止させる。次
に、ステップSH4において、記憶モードフラグREC
が「2」であるか否かを判断する。現時点では再生モー
ド、すなわち、記憶モードフラグRECが「0」である
ため、ステップSH4における判断結果は「NO」とな
り、当該ストップ処理を終了し、メインルーチンへ戻
る。上記ステップSH3において、自動伴奏装置12へ
ストップ信号を出力したことにより、自動伴奏が終了す
る。
【0061】また、上記ステップSH2において、自動
伴奏フラグACMPRUNを「0」としたことで、図6
に示すテンポクロック処理のステップSC1における判
断結果は「NO」となり、そのまま当該処理を終了して
メインルーチンへ戻る。以下、何らかのイベントが生じ
るまでメインルーチンが繰り返し実行され、イベントが
生じると、該イベントに応じて、これまで述べてきた処
理が実行される。
【0062】このように、コード再生時においては、再
生開始を指示する操作は容易なので、タイミングを1拍
目の後(2つ目の先頭)で分け、また、コード記憶時に
は、コード記憶の操作は複雑であり、コード入力に時間
がかかるため、コード入力のタイミング2拍目の後(3
拍目の先頭)で分けることにより、遅めのタイミングに
するようにしている。
【0063】(本発明の楽器としての動作)次に本発明
の楽器としての動作の主なところを説明しておく。 (コードシーケンサの再生演奏動作)電源投入後、所望
のスタイル選択スイッチ6dをオンする事で、所望の演
奏スタイルを選ぶことができる。次にスタートスイッチ
をオンすると、選ばれたスタイルのリズム演奏(打楽器
音による演奏)が始まる。これは、図5のスタートスイ
ッチイベントでルートとタイプにそれぞれデフォルト値
としてノンコードを表すFFHが設定され、自動伴奏装
置に出力されるためである。この時点で鍵盤を操作し、
コードを指定すれば、そのコードのルートとタイプが自
動伴奏装置に送られるので、そのコードに応じて音程の
ある楽器音(ベースやピアノ等の各演奏パート)の自動
伴奏が行われる。
【0064】上記の状態、すなわちリズム演奏が行われ
ている状態でコードパッドがオンされると、オンされた
コードパッドに対応して記憶されている曲のコードがシ
ーケンシャルに読み出され、そのコード進行に対応した
自動伴奏が自動伴奏装置12によって行われる。このと
き、パッドをオンした時点がリズム演奏の小節の先頭に
充分近ければすぐにコードの読み出しが始まり、自動伴
奏が始まる。また、パッドをオンした時点がリズム演奏
の先頭からやや遅れると、次の小節の先頭の時点でコー
ドの読み出しが始まり、自動伴奏が始まる。これは、図
7のSD7もおいてBTが0、すなわち小節の先頭から
次のテンポクロックまでの間にパッドイベントが有るか
無いかを調べるようにして実現している。その後はコー
ド進行のデータとしてエンドコードが出てくるまで自動
伴奏が続き、該エンドコードの指示にしたがって終了す
る。このようにして自動伴奏が記憶されたコードに進行
にしたがって行われ、すなわちコードシーケンサの再生
が行われる。コードシーケンサの再生が行われている最
中に鍵盤4を操作すると、そのマニュアル演奏のデータ
もトーンジェネレータ14に送られるので、コードシー
ケンサの再生とともにマニュアル演奏も同時に発音させ
ることができる。
【0065】(コードシーケンサのコード進行記録動
作)まず、上記再生動作などをストップスイッチ6bを
押すなどして止めておき、録音したい曲のスタイルをス
タイル選択スイッチ6dで選んでおく。そして、録音ス
イッチ6cをオンしながらコード進行を記録しておくメ
モリエリアに対応したコードパッドをオンする。する
と、記録の待機状態となり、スタートスイッチ6aがオ
ンされるのを待つ。この状態で鍵盤4を操作するとその
操作通りに発音され、その時コードの検出がされるよう
な操作の仕方であると、図9のSF8に入り、一応記憶
処理ルーチンを通る。しかし、スタートスイッチ6aを
オンしたときに図5のSB3で結局デフォルト値にリセ
ットされてしまうので、コード進行のデータとしては記
録されず、結局、この時点の鍵盤操作はコード進行の記
録に影響がない。
【0066】上記の状態の次にスタートスイッチ6aを
オンすると、前記したようにデフォルト値によってノン
コードが自動伴奏装置12に送られるので、リズム演奏
が始まる。この状態でリズムに合わせて鍵盤4を使って
コードを入力して行けば、指定されたコードによる自動
伴奏が行われるとともに、その順序で1拍を最小分解能
として記録していく。1拍の間に複数回のコード入力が
有れば図10のSG12を繰り返し行うので、上書きさ
れ、後の入力が優先となる。1拍以上経過してコードが
入力されれば、図6のテンポクロックルーチンが1拍毎
に実行される中でSC17でDTがインクリメントされ
ているので、図10のSG8の処理でYESの方へ行
き、別のタイミングのコード入力としてSG9で処理さ
れる。
【0067】ここで、一番最初のコードの入力時におい
ては、その入力時点がいかなる場合でも曲の先頭小節の
先頭として記録される。コードの指定はかなり複雑なコ
ードの場合遅れがちであることを考慮して、2拍まで待
って行うようにしている。すなわち、先頭のコードの指
定がリズム演奏のある小節の前半であれば、図10のS
G4でYESとなり、SG5でその小節の最初に指定さ
れた場合に既にDTがカウントされているはずの値をD
Tにセットする。また、先頭のコードの指定がリズム演
奏のある小節の後半であれば、SG6で次に小節の先頭
の場合につじつまがあうDT値をセットするようにして
いる。
【0068】上記では、録音スイッチ6cをオンしなが
らコードパッドをオンした後、スタートスイッチ6aを
オンする状況で説明したが、先にスタートスイッチ6a
をオンしてリズム演奏を走らせておき、その後、録音ス
イッチ6cをオンしながらコードパッドをオンするよう
にしても、後の機能は同じである。
【0069】
【発明の効果】以上、説明したように、請求項1記載の
発明によれば、コード進行情報が読み出されていない場
合に、選択操作子が操作されたときに、小節位置検出手
段によって、操作された時点が所定の位置より前である
と検出されれば直ちにコード情報を読み出すようにコー
ド進行読み出し手段を制御し、後であると検出されれば
次の小節の先頭時点からコード情報を読み出すようにコ
ード進行読み出し手段を制御する第1の制御手段と、コ
ード進行情報が読み出されている場合に、選択操作子が
操作されたときに、操作があった小節の次の小節からコ
ード進行を切り換えるように制御する第2の制御手段と
を設けたので、コード進行の開始を指示する際には、所
定位置まではコード進行開始の指示が遅れても、その小
節の先頭タイミングに開始指示されたものとして制御が
行われるようになる。また、コード再生中にはコード進
行の切換が次小節の先頭すなわち小節線タイミングで行
われるようになる。
【0070】したがって、コード再生開始指示操作が多
少遅れても、操作者の意図に即した所望の位置で再生を
開始することができる。一方、コードの進行を切り替え
る場合にはコード再生の開始時には取りにくい操作子の
操作タイミングも一旦コード再生が開始された後すなわ
ち再生中には比較的タイミングが取りやすくなるので、
切換時には操作指示後の次小節の先頭で制御を行うよう
にすることにより、操作者の意図に即した所望の位置で
切換の制御を行うことが可能になる。
【0071】また、請求項2記載の発明によれば、小節
位置検出手段によって、最初のコード情報が発生された
時点が所定の位置より前にあったと検出されたときに
は、現小節の先頭時におけるコードとして書き込むよう
書込手段を制御し、後であれば次の小節の先頭時におけ
るコードとして書き込むよう書込手段を制御する第1の
制御手段と、最初のコード情報が次の小節の先頭におけ
るコード情報として書き込まれた後に、次の小節の先頭
よりも前の時点で発生手段によって新たなコード情報が
発生された場合、次の小節の先頭におけるコードとして
既に書き込まれたコード情報に代えて新たなコード情報
書き込むように制御する第2の制御手段とを備えたの
で、最初のコードの書込時には現小節あるいは次小節に
おける当該小節の先頭時のコードとしてコード情報がコ
ード進行メモリに書き込まれ、最初のコードの書込後に
は当該指定の拍タイミングにおいてコード情報がコード
進行メモリに書き込まれるようになる。したがって、必
ず小節の先頭から開始するようにコード情報がコード進
行メモリに書き込まれるようになるので、再生に適した
ものとなり、結果としてコードの入力の操作が多少遅れ
てもよく、操作者の意図に合わせて容易に自動伴奏に同
期させてコード入力ができるようになる。
【図面の簡単な説明】
【図1】 本発明の一実施例の構成を示すブロック図で
ある。
【図2】 同実施例の電子楽器の操作パネル部3の詳細
な構成を示す正面図である。
【図3】 同実施例のコードパッドメモリの構成を示す
概念図である。
【図4】 同実施例の動作を説明するためのメインルー
チンのフローチャートである。
【図5】 同実施例の動作を説明するためのスタート処
理を示すフローチャートである。
【図6】 同実施例の動作を説明するためのテンポクロ
ック処理を示すフローチャートである。
【図7】 同実施例の動作を説明するためのコードパッ
ドイベント処理を示すフローチャートである。
【図8】 同実施例の動作を説明するための記憶モード
処理を示すフローチャートである。
【図9】 同実施例の動作を説明するためのキーイベン
ト処理を示すフローチャートである。
【図10】 同実施例の動作を説明するための記憶処理
を示すフローチャートである。
【図11】 同実施例の動作を説明するためのストップ
処理を示すフローチャートである。
【図12】 同実施例の動作を説明するためのコード再
生処理を示すフローチャートである。
【符号の説明】
1……コードパッドメモリ(コード進行メモリ)、2…
…拍子メモリ、4……鍵盤(コード指定手段)、5……
コードパッド(コード進行開始操作子)、8……CPU
(コード進行再生手段、小節位置検出手段、比較手段、
制御手段、リアルタイムライト手段、時点位置検出手
段)、11……テンポクロック、12……自動伴奏装置
(自動演奏手段)。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G10H 1/00 102 G10H 1/36 G10H 1/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 コードを示すコード情報を演奏進行に基
    づいて順次発生するコード進行情報を複数記憶したコー
    ド進行メモリと、 前記コード進行メモリからコード進行情報として記憶さ
    れたコード情報を順次読み出すコード進行読み出し手段
    と、 ズム音を発生することでリズム演奏を行い、前記コー
    ド進行読み出し手段によってコード情報が読み出されて
    いるときにはコード情報に基づくコード音を合わせて発
    生することで自動伴奏を行う自動伴奏手段と、 前記複数のコード進行情報の中から一つを選択する選択
    操作子と、 操作者に操作される操作子であって、少なくとも前記自
    動伴奏手段によるリズム演奏の開始を指示する開始操作
    子と、 前記自動伴奏手段の自動伴奏開始に応答して拍をカウン
    トする拍タイミング管理手段と、 前記選択操作子が操作された時点が前記自動伴奏手段に
    よる演奏にかかる小節中のいずれの位置かを前記拍タイ
    ミング管理手段のカウント値に基づいて検出する小節位
    置検出手段と、前記選択操作子が操作されたときに、当該操作時点にお
    いてコード進行情報が読み出されているか否かを判断す
    る判断手段と、 前記判断手段によって、コード進行情報が読み出されて
    いないと判断された場合に、前記選択操作子が操作され
    たときに、前記小節位置検出手段によって、操作された
    時点が所定の位置より前であると検出されれば直ちにコ
    ード情報を読み出すように前記コード進行読み出し手段
    を制御し、後であると検出されれば次の小節の先頭時点
    からコード情報を読み出すように前記コード進行読み出
    し手段を制御する第1の制御手段と、 前記判断手段によって、コード進行情報が読み出されて
    いると判断された場合に、前記選択操作子が操作された
    ときに、操作があった小節の次の小節からコード進行を
    切り換えるように制御する第2の制御手段とを備えるこ
    とを特徴とする自動伴奏装置。
  2. 【請求項2】 操作者の操作に応じてコードを示すコー
    ド情報を発生するコード情報発生手段と、 前記コード情報発生手段によって順次発生されるコード
    情報をコード進行情報として記憶するコード進行メモリ
    と、 前記コード進行メモリに前記コード情報発生手段によっ
    て発生されたコード情報を書き込む書込手段と、 自動伴奏を行う自動伴奏手段と、 該自動伴奏手段の開始に応答して拍をカウントする拍タ
    イミング管理手段と、 自動伴奏中であってコード情報発生手段により最初のコ
    ード情報が発生された時点が自動演奏にかかる小節中の
    いずれの位置かを前記拍タイミング管理手段のカウント
    値に基づいて検出する小節位置検出手段と、 前記小節位置検出手段によって、前記最初のコード情報
    が発生された時点が所定の位置より前にあったと検出さ
    れたときには、現小節の先頭時におけるコードとして書
    き込むよう前記書込手段を制御し、後であれば次の小節
    の先頭時におけるコードとして書き込むよう前記書込手
    段を制御する第1の制御手段と、 前記最初のコード情報が前記次の小節の先頭におけるコ
    ード情報として書き込まれた後に、前記次の小節の先頭
    よりも前の時点で発生手段によって新たなコード情報が
    発生された場合、前記次の小節の先頭におけるコードと
    して既に書き込まれたコード情報に代えて前記新たなコ
    ード情報を書き込むように制御する第2の制御手段とを
    備えることを特徴とする自動伴奏装置。
JP4077870A 1992-03-31 1992-03-31 自動伴奏装置 Expired - Fee Related JP2848092B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4077870A JP2848092B2 (ja) 1992-03-31 1992-03-31 自動伴奏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4077870A JP2848092B2 (ja) 1992-03-31 1992-03-31 自動伴奏装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP9337526A Division JP2842440B2 (ja) 1997-12-08 1997-12-08 自動伴奏装置

Publications (2)

Publication Number Publication Date
JPH05281962A JPH05281962A (ja) 1993-10-29
JP2848092B2 true JP2848092B2 (ja) 1999-01-20

Family

ID=13646094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4077870A Expired - Fee Related JP2848092B2 (ja) 1992-03-31 1992-03-31 自動伴奏装置

Country Status (1)

Country Link
JP (1) JP2848092B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0690625B2 (ja) * 1985-11-08 1994-11-14 カシオ計算機株式会社 電子楽器
JP2518277B2 (ja) * 1987-05-29 1996-07-24 ヤマハ株式会社 電子楽器
JPH02304599A (ja) * 1989-05-19 1990-12-18 Matsushita Electric Ind Co Ltd 電子楽器

Also Published As

Publication number Publication date
JPH05281962A (ja) 1993-10-29

Similar Documents

Publication Publication Date Title
US6031174A (en) Generation of musical tone signals by the phrase
JP2991044B2 (ja) 自動演奏機能を有した電子楽器
JP3018821B2 (ja) 自動演奏装置
JP3237455B2 (ja) 演奏指示装置
JP3684774B2 (ja) 演奏指示装置及びプログラムを記録した媒体
JP2848092B2 (ja) 自動伴奏装置
JP2842440B2 (ja) 自動伴奏装置
JP2643277B2 (ja) 自動演奏装置
JP2531424B2 (ja) 自動伴奏装置
JP3192579B2 (ja) 自動演奏装置及び自動演奏方法
JP3940999B2 (ja) 演奏装置および演奏方法
JPH1185153A (ja) 演奏装置
JP2002221964A (ja) 自動演奏装置および自動演奏方法
JP2694788B2 (ja) 電子楽器
JP3620321B2 (ja) 自動伴奏装置
JP2879742B2 (ja) 自動伴奏装置
JP3832258B2 (ja) 自動演奏装置および自動演奏方法
JP2722880B2 (ja) 電子楽器
JP3120487B2 (ja) 自動伴奏機能付電子楽器
JP2760398B2 (ja) 自動演奏装置
JP2518341B2 (ja) 自動演奏装置
JP2825030B2 (ja) 電子楽器
JP3150580B2 (ja) 自動演奏装置及び自動演奏方法
JP3931551B2 (ja) 演奏装置および演奏方法
JP2665854B2 (ja) 自動演奏装置

Legal Events

Date Code Title Description
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: 20071106

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081106

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees