JPH0638191B2 - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JPH0638191B2
JPH0638191B2 JP60130702A JP13070285A JPH0638191B2 JP H0638191 B2 JPH0638191 B2 JP H0638191B2 JP 60130702 A JP60130702 A JP 60130702A JP 13070285 A JP13070285 A JP 13070285A JP H0638191 B2 JPH0638191 B2 JP H0638191B2
Authority
JP
Japan
Prior art keywords
key
chord
bass
code
pressed
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
JP60130702A
Other languages
English (en)
Other versions
JPS61289394A (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 JP60130702A priority Critical patent/JPH0638191B2/ja
Publication of JPS61289394A publication Critical patent/JPS61289394A/ja
Publication of JPH0638191B2 publication Critical patent/JPH0638191B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 以下の順序でこの発明を説明する。
産業上の利用分野 発明の概要 従来の技術 発明が解決しようとする問題点と解決手段 実施例 第1図の電子楽器の構成説明 第1図の電子楽器の動作説明 1.メイン処理(第7図) 2.押鍵処理(第8図、第12図) 3.離鍵処理(第9図) 4.割込処理 5.ベース処理 6.割込処理(続き) 実施例の変形例 発明の効果 [産業上の利用分野] この発明は、自動伴奏機能を有する電子楽器に関し、特
に、鍵盤から入力されるコード(和音)情報に応じた伴
奏を自動演奏する際の押鍵ばらつきによるコード種類の
変化に即座に対処し、鍵操作に対する応答性を人間の感
覚に合せるようにした電子楽器に関する。
[発明の概要] この発明は、押鍵された単数または複数の音に対応する
伴奏音を押鍵タイミングとは別個のタイミングで発音可
能な電子楽器において、発音タイミングから所定時間以
内に新たな押鍵(または離鍵)があったときはその時点
における全押下鍵情報に基づいて発音すべき伴奏音を訂
正することにより、押鍵(または離鍵)のばらつきによ
るコード種類の変化に即座に対処し、鍵操作に対する応
答性を人間の感覚に合せるようにしたものである。
[従来の技術] 鍵盤式電子楽器において、人間の指による鍵操作の時間
的精度には自ずから限界がある。複数鍵を同時に押鍵し
ようとする場合に、それら複数の鍵が文字通り同時に
(μS:マイクロ秒の単位まで同時に)押されることは
通常起り難い。いかに同時に押したつもりでも、各指の
長さの違い、あるいは利き指、その他の要因によって、
各鍵間の押下時間の相違は少なく見積っても数mS乃至
10数mS(ミリ秒)の時間となる。これは複数鍵を同時
に離鍵しようとする場合も同様である。すなわち、数m
S乃至10数mSの時間は人間にとっては同時と感じとら
れるのである。しかし、1μS程度の単位で信号が区別
されて情報が処理される電子楽器においては、人が同時
に行なったつもりの押鍵操作(または離鍵操作)の際に
生じる時間的差異でも、そのまま押鍵(または離鍵)時
点の違いとして顕在化してしまうおそれがある。すなわ
ち、数mS乃至10数mSの誤差をもって複数の鍵が同時
に(人間の感覚で同時に)押し下げられたとしても、電
子楽器はそれらの鍵がばらばらに押圧されたものとして
応答してしまい、演奏者が複数の鍵を同時に押圧するこ
とにより期待したような処理が行なわれなくなるおそれ
がある。このような不都合は、自動演奏のための処理を
行なう場合に特に問題となる。例えば、同時に押鍵され
ている複数の音が形成しているコード(和音)を検出す
る場合に、押鍵操作当初および離鍵操作当初において、
鍵操作のばらつきによって実際に押した鍵数よりも少な
い鍵によって誤ったコードが検出されてしまうようなこ
とが起り得る。特に、検出したコードに対応するベース
音を押鍵タイミングとは別個のタイミング(リズム)で
発音させるような場合、コードを誤検出すると誤った音
高のベース音を発生することになるが、従来の電子楽器
では、この音高が次の発音タイミングまで訂正されない
ため、このベース音が不調和音となって演奏を損ねるお
それさえあった。また、例えば離鍵された複数の音をア
ルペジオ形式で低音側から順番に1音ずつ発生させよう
とする場合に、押鍵操作のばらつきによって電子楽器内
回路が真先に応答した高音側の音が先に発音されたり、
あるいは電子楽器内回路が真先に応答した1音だけが先
に何回か繰返し発音されたりするようなことが起り得
る。
[発明が解決しようとする問題点と解決手段] この発明は、押鍵された複数の音に対応するベース音や
アルペジオ形式の伴奏音等を押鍵タイミングとは別個の
タイミングで発音させる自動伴奏音演奏中に、複数個の
各鍵の押鍵(または離鍵)がばらついて正規の発音タイ
ミングに遅れて押鍵(または離鍵)が完了した場合で
も、この押鍵(または離鍵)完了時点で発音音高を直ち
に訂正し、演奏者が鍵盤操作により期待した音高による
伴奏により近い自動伴奏が可能な電子楽器を提供するこ
とを目的とする。
上記目的を達成するためこの発明では、自動伴奏のテン
ポにマッチした自動伴奏音の発音開始時はその時の全押
下鍵に基づき伴奏音を決定して発音するとともに、発音
開始時から一定時間内に新たな押鍵(または離鍵)があ
れば即座にその時点における全押下鍵情報に基づく新た
な伴奏音高を決定し、これが発音中の伴奏音と異なれば
これを直ちに新たな音高に訂正して発音を継続させるよ
うにしている。
以下図面を用いてこの発明の実施例を説明する。
[実施例] 第1図に示す実施例は、押下鍵で指定されたコード(和
音)に応じたベース音の自動伴奏が可能な電子楽器にこ
の発明を適用したものである。
この電子楽器は、1拍(4分音符)ごとの発音開始のタ
イミングでそのときの単数または複数の押下鍵に応じた
ベース音を発音することは従来の電子楽器と同様である
が、さらに、この発音開始のタイミングから1拍の1/
4すなわち16分音符分の時間が経過するまでの間にいず
れかの鍵の押鍵(または離鍵)があったときはその新た
な鍵情報をも加味して発音すべきベース音の音高を決定
し、この音高が発音中のベース音と異なればこれを直ち
に訂正した上で発音を継続することを最大の特徴として
いる。第2図を参照して、例えばC,E,G音からなる
和音(Cメジャ)を押鍵する場合、第2拍の発音開始タ
イミングT0より前にC,E,G音の押鍵が完了して和
音が成立していれば、第2拍目はタイミングT0でCメ
ジャに対応するベース音の第1音(根音に相当)である
C音を発音する。また、第2〜3拍目について示すよう
に、タイミングT0より前にはE,G音しか押鍵されて
おらず和音が成立していなければ、第3拍目はタイミン
グT0で低音側のE音を発音するとともに、このタイミ
ングT0から16分音符分の時間後のタイミングT1まで
の期間(第2図の斜線部)中に残るC音の押鍵が完了す
れば、残りの発音期間は発音中のE音をCメジヤに対す
る第1音として正規の音高であるC音に切り換えて発音
を継続する。さらに、第3〜4拍目のように、第3拍内
にG音しか押鍵されなければ、第4拍目はタイミングT
0でG音を発音するとともに、第4拍目のタイミングT
1までの期間中にさらにE音が押鍵されたときは、残り
の発音期間は音高を低音側のE音に訂正して発音を継続
する。そして、第4拍目のタイミングT1以後に残るC
音の押鍵が完了して和音(Cメジャ)が成立したとき
は、次の発音タイミングである次小節の第1拍目でC音
を発音する。なお、以後はC,E,G音が押鍵されてい
る限り、例えばC,G,E,G,C,G,E,G,…の
ようにベース音を自動演奏し続けるものとする。
第1図の電子楽器の構成説明 第1図において、鍵盤回路10は、図示しない鍵盤におけ
る押鍵を検出し、押下鍵を表わす鍵情報(キーコード)
を発生する。このキーコードは、第3図に示すように、
押下鍵(キー)C1,C#0,D1,…,B1,C2,
…に対応して各C音に12(10進表示)の倍数12,24,3
6,…が、そして他のキーには半音上がることに1ずつ
増加する数値が割り当てられている。また、休符すなわ
ちいずれのキーも押下されていない状態を表わす(キ
ー)コードは0である。なお、以下においては、特に断
わらない限り、キーコード等の数値データは10進数で表
わすものとする。
中央処理装置(CPU)11には、バスライン12を介し
て、上記鍵盤回路10の他、CPU11の制御プログラムが
格納されたプログラムメモリ13、各種のデータ変換テー
ブルが格納されたテーブルメモリ14、CPU11が上記制
御プログラムを実行する際に発生する各種データを一時
記憶するワーキングメモリ15、自動伴奏の開始および停
止制御用のスタート/ストップ・スイッチ等図示しない
各種操作スイッチからなるスイッチ群16、演奏者等によ
る自動演奏のテンポ設定に応じた周期のテンポクロック
を発生するテンポ発生器17およびトーンジェネレータ
(TG)18等が接続されている。そして、CPU11は、
上記プログラムメモリ13内の制御プログラムに従って、
鍵盤回路10から出力される鍵情報やスイッチ群16からの
スイッチ情報を取り込んだり、これらの情報に基づく演
算処理によって所定の楽音情報(発音開始、発音停止、
音高および音色等の情報)を形成したり、この楽音情報
をトーンジェネレータ18に送出する等、この電子楽器全
体の動作を制御する。
トーンジェネレータ18は、メロディ音形成用に複数例え
ば5個の発音チャンネル、伴奏音形成用として後述のキ
ーコードバッファKCBUFのチャンネル数に対応する
4個の発音チャンネルおよびベース音形成用の1個の発
音チャンネルを備え、CPU11から与えられる楽音情報
に対応する楽音(メロディ音、伴奏者およびベース音)
信号を形成する。この楽音信号は、図示しないサウンド
システムにより音響に変換され発音される。
プログラムメモリ13およびテーブルメモリ14は、リード
オンリメモリ(ROM)により構成されている。テーブ
ルメモリ14には、第4図a〜dに示すように、10進表示
で0〜11の12個のノート(音名)コードNCをアドレス
として、これを音名に対応するビットのみを“1”で示
す12ビットのビット対応データに変換するためのデコー
ドテーブル(同図a)、各コードタイプCHORD(=
j)をアドレスとして、そのコードを構成する音名に対
応するビットのみが“1”である12ビットのビット対応
データが格納されているビットパターンテーブル(同図
b)、コードタイプCHORDと発音タイミングCLK
とに対応して発音すべきベース音のパターンデータPT
Nが4ビットで書込まれているベースパターンテーブル
(同図c)、コードタイプ別にパターンデータPTNと
第3図に示すキーコードとの対応を示すベースキーコー
ドテーブル(同図d)等、各種の変換テーブルが設けら
れている。CPU11においては、種々の演算処理を行な
う際にこれらのテーブルを参照してデータ変換すること
により処理(特にデータ変換処理)速度の向上を図るこ
とができる。なお、上述においてノートコードNCに
は、C音からB音まで半音で1ずつ異なる0〜11の数値
が割り当てられている。また、コードタイプCHORD
としては、第6図に示すように、メジャ(M)、マイナ
(m)、セブンス(7th)、…の10個のコードタイプに
対して0〜9の数値が割り当てられている。10はコード
不成立を示す。さらに、ベースパターンデータPTNと
しては、0〜15(16進表示でO〜F)の数値が割り当て
られており、例えば15(16進表示でF)は休符である。
ここで、ベースパターンデータPTNは、根音をCとし
て作成されているが、他の根音(C#〜B)に対しては
Cとの音程でもあるノートコードNCを加算して移調す
ればよい。
ワーキングメモリ15は、例えばランダムアクセスメモリ
(RAM)からなり、下記に示す各種のレジスタやフラ
グが設けられている。
CLK:テンポカウンタ テンポクロック数0〜15、1小節内の現タイミングを示
す RUNBUF:ランバッフアフラグ オートベース・スタート/ストップスイッチがスタート
状態“1”か否“0”か RUN:ランフラグ オートベースが走行中“1”か停止中“0”か、ランバ
ッファフラグRUNBUF=“1”かつ押鍵有りで
“1”になる KONP:キーオンフラグ 押鍵により伴奏パターンが変更されると“1”になり、
変更後の伴奏パターンの第1音が実際に発音されると
“0”に戻る OLDK:前イベントデータレジスタ ベースパターンテーブル(第4図c)上での前イベント
のデータO〜FH(16進表示) ROOT:根音名レジスタ C〜Bまで0〜11に対応する音名のいずれか CHORD:コード名レジスタ コードタイプ0〜9、コード不成立10 KEY:ベース音名バッファ ベース用TGの発音のためのバッファ KCBUF:キーコードバッファ 伴奏用TGの発音のための4チャンネル分のバッファ
(第5図参照) KCMIN:最低音バッファ キーコードバッファKCBUF内の最低押鍵名(数値が
最小のもの)を記憶 BASS:ベース音発音中フラグ ベース音発音中“1”かベース音なし“0”か REG:キーステートレジスタ 伴奏鍵中の押下されている鍵の音名をビット対応で記
憶、各音名に対し1ビット計12ビット BIT:現押鍵レジスタ 現押鍵の音名レジスタ、フォーマットはキーステートレ
ジスタREGと同一 PTN,SCALE:仮のバッファ なお、以下の説明においては各レジスタ等およびその内
容は同一のラベル名で表わすものとする。例えばベース
キーコードバッファもその内容もいずれもKEYとな
る。
テンポ発生器17は、例えば周波数可変の発振器、あるい
は周波数固定の発振器とこの発振器出力を分周してテン
ポクロックを作成する分周率可変の分周器等で構成さ
れ、第2図に示すように1拍の1/4(16分音符長)周
期のテンポクロック、すなわち4/4拍子であれば1小
節当り16個のテンポクロックを発生する。
第1図の電子楽器の動作説明 次に第7〜11図のフローチャートを参照しながらこの電
子楽器の動作を説明する。
1.メイン処理 第7図を参照して、この電子楽器に電源が投入される
と、CPU11はプログラムメモリ13に格納された制御プ
ログラムに従って動作を開始する(ステップ100 )。ス
テップ101 ではランフラグRUN、ランバッファフラグ
RUNBUF、ベース音発音中フラグBASS、キーオ
ンフラグKONP、前イベントデータレジスタOLDK
およびキーステートレジスタREGをクリアする等、回
路全体をイニシャライズした後、ステップ102 およびス
テップ200 からなるメイン処理動作を実行する。ステッ
プ102 ではスイッチ群16のスタート/ストップスイッチ
を検査してこのスタート/ストップスイッチが押下され
るごとにランバッファフラグRUNBUFの値を“0”
から“1”または“1”から“0”にトグルチェンジす
る。
2.押鍵処理 第8図は、第7図ステップ200 の離鍵処理サブルーチン
を示す。この押鍵処理においては、先ずステップ201 〜
203 で、鍵盤回路10からのキーデータ出力に基づいて伴
奏用鍵盤例えば下鍵盤における新たな押鍵または離鍵が
発生したか否かを検査する。押鍵および離鍵のいずれも
新たには発生していなければステップ203 を経て第7図
のメイン処理(ステップ102 )に戻る。また、押鍵また
は離鍵が発生したとしてもそれが伴奏用鍵盤以外のメロ
ディ用鍵盤(上鍵盤)等の操作によるものであれば、ス
テップ201 からステップ204 に移行し、鍵操作に対応す
る音高(キーコード)でトーンジェネレータ18を制御し
た後、第7図のメイン処理に戻る。また、伴奏用鍵盤に
おいて新たな離鍵が発生していれば、ステップ202 から
ステップ300 の離鍵処理(詳細は後述)に移行する。さ
らに、伴奏用鍵盤において新たな押鍵が発生していれ
ば、ステップ203 からステップ205 に移行する。
ステップ205 では鍵盤回路10から取り込んだ新たに押鍵
された鍵のキーコードKCのノートコードNCを算出
し、ワーキングメモリ15内の仮バッファSCALEに格
納する。各鍵に対するキーコードKCは第3図に示すよ
うに割当てられており、またノートコードNCにはC音
を0とする0〜11の数値が割当てられているため、ノー
トコードNCはキーコードKCを12で除算した余りとし
て求めることができる。ステップ206 ではテーブルメモ
リ14内のデコードテーブル(第4図a)を参照して仮バ
ッファSCALEの内容であるノートコードNCのビッ
ト対応押鍵データを求め、メモリ15内の現押鍵音名レジ
スタBITに格納する。次いで、メモリ15内のキーステ
ートレジスタREGの内容と上記レジスタBITの内容
との論理和を求め、結果をレジスタREGに格納する
(ステップ207 )。これにより、レジスタREGは、現
在押鍵中の鍵の音名に対応するビットが“1”、他が
“0”となる。
次に、ステップ208 でレジスタREGの内容をレジスタ
BITにセーブし、続いて、ステップ210 で根音名カウ
ンタiおよびコードタイプカウンタjをクリアした後、
ステップ211 〜220 でレジスタREGの内容に基づき現
在の鍵盤操作におけるコード(和音)名を検索する。す
なわち、ステップ211 でメモリ14内のビットパターンテ
ーブル(第4図b)のアドレスjのデータとレジスタR
EGの内容とを比較する。もし、一致しなければ、ステ
ップ212 でカウンタjを歩進し、ステップ213 を経てス
テップ211 に戻り、次のアドレスjのデータとレジスタ
REGの内容とを比較する。ここでは、第6図に示すよ
うに、j=0〜9のそれぞれに対応してM(メジャ)、
m(マイナ)等の10種類のコードタイプが用意されてい
る。従って、j=0〜9についてステップ211 の比較結
果がいずれも「不一致」のときは、根音名iについての
コードが成立しなかったときである。この場合は、ステ
ップ212 でカウンタjが歩進されてj=10となり、ステ
ップ213 の判定は「ノー」となるからステップ214 ,21
5 の処理で根音名iを半音だけ高音側へシフトする。つ
まり、ステップ214 でレジスタREGの内容を第12図に
示すように右へ1ビット回転し、ステップ215 でカウン
タiの内容を歩進する。続くステップ216 ではコードタ
イプ検索を全部の根音名i=0〜11(C〜B)について
終了したか否かを判定する。1オクターブの半音数すな
わち音名数は12個であるから、i<12なら未了、i≧12
なら終了である。もし、未了ならば、ステップ211 に戻
って次の根音名iについてコードタイプを検索する。も
し、終了したにもかかわらずコードタイプが検出されな
ければ、コードは押鍵されていないのであるから、この
場合はステップ217 で押鍵されている鍵のうち最低音の
キーコードを最低押鍵音バッファKCMINに格納し、
ステップ218 でこの最低音のキーコードKCMINをノ
ートコードに変換して音名カウンタiにセットし、かつ
コードタイプカウンタjにコード不成立を表わすデータ
10をセットした後、ステップ220 に移行する。
一方、ステップ211 で比較した結果が「一致」つまりコ
ードタイプが検出された場合は、ステップ219 でレジス
タBITにセーブしてあった内容をレジスタREGに転
送してレジスタREGの内容をステップ210 の状態に復
帰させた後、ステップ220 に移行する。これは、ステッ
プ214 でレジスタREGの内容を右へ回転してのちに、
ステップ211 でコードタイプが検出されると、レジスタ
REGの内容が実際の押鍵状態と一致しなくなるからで
ある。
ステップ220 では、根音名レジスタROOTに根音名カ
ウンタiの計数値iを、またコード名レジスタCHOR
Dにコードタイプカウンタjの計数値jを格納する。
ステップ221 では、メモリ15内のランバッファフラグR
UNBUFを検査し、フラグRUNBUF=“1”すわ
なちリズムスタートスイッチがスタート側に設定されて
いれば、ステップ221 を経由してランフラグRUNをセ
ットする。
この電子楽器においては、各4分音符の発音タイミング
T0後タイミングT1までの16分音符内(第2図の斜線
部)に新押鍵があったとき、この新押鍵をも加味して発
音すべきベース音高を決定し、もし、このベース音高が
現在発音中のものと異なる場合は直ちにこれを新たに決
定した音高に訂正するようにしている。ステップ230
は、現在のタイミングが音高を訂正すべきタイミング内
であるか否かを判定するもので、ここではテンポカウン
タCLKの下位2ビットが“01”すなわちテンポカウ
ンタCLKの内容が10進表示で1、5、9または13であ
るか否かを判定している。もし、この判定が「ノー」で
あれば現在は上記音高訂正のタイミングではないから、
ステップ231 に進み、新押鍵によるベース音は次の発音
タイミング(キーオン)で発音すべくキーオンフラグK
ONPをセットし、ステップ240 へ移行する。一方、ス
テップ230 の判定が「イエス」であれば現在は各4分音
符の発音開始タイミングT0から後の16分音符内である
から、ステップ232 以下の音高訂正処理を行なう。
ステップ232 では、ベース音発音中フラグBASSを検
査する。もし、フラグBASS=“0”つまりベース音
が発音中でなければ、訂正されるべき音高データ(ベー
スキーコード)は無いのであるからステップ231 は進ん
でキーオンフラグKONPをセットした後、ステップ24
0 へ移行する。もし、フラグBASS=“1”つまりベ
ース音が発音中であれば、ステップ233 でキーオンフラ
グKONPをリセットし、ステップ234 で根音名レジス
タROOTの内容に24を加算する。つまり、C〜B(0
〜11)のノートコードをベース音の音域C2〜B2(24
〜35)まで2オクターブシフトする。そして、ステップ
235 でレジスタROOTの内容と前イベントデータレジ
スタOLDKの内容とを比較する。ステップ235 で比較
した結果、現在発音中のベース音高OLDKと新押鍵に
より新たに決定されたベース音高ROOTとが異なって
いれば、ステップ236 でレジスタROOT内の新ベース
キーコードをベースキーコードバッファKEYに格納
し、ステップ237 でバッファKEY内のベースキーコー
ドをレジスタOLDKに格納し、ステップ238 でトーン
ジェネレータ18のベースキーコードを新ベースキーコー
ドKEYですり替えてベース音高を訂正した後、ステッ
プ 240に移行する。一方、ステップ235 の比較で現在発
音中のベース音高OLDKと新押鍵により新たに決定さ
れたベース音高ROOTとが一致していれば、現在発音
中のベース音高は訂正する必要がないから、ステップ23
6 〜 238の処理を行なうことなくステップ240 に移行す
る。
ステップ240 では、メモリ15内に4チャンネル分が設け
られているキーバッファKCBUF(第5図)の空きチ
ャンネルを捜し、ステップ241 でこの空きチャンネルに
上記新たなキーコードKCを格納し、ステップ242 でこ
の新たなキーコードKCに対するトーンジェネレータ18
のキーオン処理を行なう。このステップ242 の処理によ
り、鍵操作通りの伴奏者が発音される。
3.離鍵処理 第8図のステップ202 において、離鍵のあったことが検
出されたときは、第9図の離鍵処理(ステップ300 )を
行なう。すなわち、ステップ301 でキーコードバッファ
KCBUFの離鍵されたキーコードKCが格納されてい
るチャンネルを捜し、ステップ302 でこのチャンネルの
内容をクリアした後、ステップ303 で今離鍵されたキー
と同じ音名(KCを12で割った余り)のキーコードKC
が他のチャンネルにあるか否かを判定する。同じ音名が
他のチャンネルにある場合とは、例えばC3,E3,G
3,C4のように押鍵されていた状態からC3(または
C4)が離鍵された場合である。もし、同じ音名のキー
コードが他のチャンネルになければ、ステップ304 で今
離鍵された鍵のキーコードKCからノートコードNCを
算出し、デコードテーブル(第4図a)を参照してこの
ノートコードNCのビット対応データを求め、現押鍵音
名レジスタBITに格納する。続いて、ステップ305 で
メモリ13内のキーステートレジスタREGの内容と上記
レジスタBITの内容を反転したデータとの論理積を求
め、結果をレジスタREGに格納する。これにより、レ
ジスタREGでは、レジスタBIT中“1”が立ってい
るビットに対応するビットのみがクリアされる。すなわ
ち離鍵キーに対応する音名データのみがレジスタREG
から削除される。なお、ステップ303 において、今離鍵
されたキーと同じ音名のキーコードが他のチャンネルに
ある場合は、離鍵による音名の組合せつまりレジスタR
EGの内容は変らないから、ステップ304 および305 の
処理を行なうことなくステップ310 に移行する。
ステップ310 では、トーンジェネレータ18の上記離鍵キ
ーに対応するチャンネルに対して伴奏鍵発音のキーオフ
処理を行なう。ステップ311 ではキーコードバッファK
CBUFの全チャンネルが空きになった否かを判定す
る。まだ発音すべき伴奏音が残っていれば、演奏中であ
るから、そのままメイン処理(第7図)に戻る。一方、
キーコードバッファKCBUFの全チャンネルが空きに
なっていれば、ステップ312 でランフラグRUNがリセ
ットされているか否かを検査する。ステップ311 の判定
で全チャンネルが空きになっており、発音すべき伴奏音
は残っていなくても、ランフラグRUNがセットされて
いれば、これは、オートベース演奏中である。従って、
ステップ312 でフラグRUNがセットされていれば、そ
のまま、メイン処理(第7図)に戻る。オートベースが
走っておらず(ステップ312 )、かつすべてのキーが離
鍵された(ステップ311 )ら、ステップ313 および314
でオートベースの発音をオフする。すなわち、ステップ
313 でベースキーコードKEYに対するトーンジェネレ
ータ18のキーオフ処理を行ない、ステップ314 でベース
音発音中フラグをリセットするとともに、前イベントデ
ータレジスタOLDKをクリアする。その後、メイン処
理(第7図)に戻る。
4.割込処理 前述したように第1図の電子楽器においてはテンポ発生
器17から16分音符のタイミングで発生するテンポクロッ
クを割込信号として以下の割込処理(ステップ400 )を
実行する。第10図において、ステップ401 では、ランフ
ラグRUNおよびランバッファフラグRUNBUFを検
査する。スタート/ストップスイッチでオートベースが
選択され(ランバッファフラグRUNBUF=
“1”)、かついずれかの伴奏キーが押下され(ランフ
ラグRUN=“1”)た後であれば、オートベースの発
音準備は出来ているから、ステップ402 に移行してベー
スパターンテーブル(第4図c)を参照し、小節内タイ
ミングCLKとコードタイプCHORDをアドレスとす
るベースパターンデータPTNを読出して仮バッファP
TNに格納する。さらに、ベースキーコードテーブル
(第4図d)より上記ベースパターンデータPTNとコ
ードタイプCHORDをアドレスとするベースキーコー
ドを読出してベースキーコードバッファKEYに格納す
る。続いて、第11図に示すステップ500 のベース処理を
行なう。
5.ベース処理 第11図において、ステップ501 では、ベースキーコード
KEYが休符か否かを判定する。もし、休符でなければ
ステップ502 で今度は前イベントデータOLDKが休符
であるか否かを判定する。前イベントデータOLDKが
休符であれば、次のステップ503 でベースキーコードK
EYを前イベントデータレジスタOLDKに格納した
後、ステップ504 でキーオンフラグKONPを検査す
る。ベースキーコーオKEYが休符でなく(ステップ50
1 )、前イベントデータOLDKが休符であり(ステッ
プ502 )、かつキーオンフラグKONPが“1”であれ
ば(ステップ504 )、現時点は、コード(和音)変更後
の第1音つまり根音の発音タイミングであり、根音名レ
ジスタROOTやキーオンフラグKONPの状態は押鍵
処理200 (第8図)におけるステップ219 からステップ
231 を通る処理経路を経た状態のままである。従って、
ステップ505 でレジスタROOTの内容(ノートコー
ド)に24を加算する。すなわちノートコードを2オクタ
ーブシフトして、音域がC2〜B2のベースキーコード
に変換する。ステップ506 ではレジスタROOT内のベ
ースキーコードをベースキーコードバッファKEYに格
納し、ステップ507 でバッファKEY内のベースキーコ
ードをレジスタOLDKに格納し、ステップ508 でベー
スキーコードKEYに対してトーンジェネレータ18のキ
ーオン処理を行なう。さらに、ステップ509 でキーオン
フラグKONPをリセットし、ステップ510 でベース発
音中フラグBASSをセットした後上記割込処理ルーチ
ンのステップ410 (第10図)に戻る。
一方、ステップ504 の判定でキーオンフラグKONPが
立っていなければ、コードが変更されてから第2番目以
降のベース音の発音開始タイミングであるから、ステッ
プ511 に進み、上記ステップ402 (第10図)で検索した
Cを根音とするキーコードKEYを根音名データ(0〜
11)分だけシフト(移調)し、ステップ512 で移調後の
ベースキーコードKEYに対してトーンジェネレータ18
のキーオン処理を行なう。
したがって、根音がCの場合には、キーコードKEYが
このままトーンジェネレータ18に送られることになる。
さらに、ステップ513 でベース発音中フラグBASSを
セットした後、ステップ410 (第10図)に戻る。
ベースキーコードKEYが休符でなく(ステップ501
)、かつ前イベントデータOLDKも休符でなければ
(ステップ502 )、ステップ502 からステップ520 に進
んでベースキーコードKEYを前イベントデータOLD
Kと比較する。もし、ベースキーコードKEYが前イベ
ントデータOLDKと同じであれば、ベース音高に変化
はないから、そのままステップ410 (第10図)に戻る。
一方、ベースキーコードKEYが前イベントデータOL
DKと異なるときは、ステップ521 に進んでトーンジェ
ネレータ18におけるベースキーコードを新たなキーコー
ドKEYですり替え、ステップ522 でベースキーコード
KEYを前イベントデータレジスタOLDKに格納した
後、ステップ410 (第10図)に戻る。これは、グリッサ
ンドやレガート奏法の場合である。
ステップ501 においてベースキーコードKEYが休符で
あれば、ステップ530 に進み、ベースキーコードKEY
と前イベントデータOLDKとを比較する。前イベント
データOLDKも休符であれば、休符が継続しており、
新たに処理すべきイベントは無いから、そのままステッ
プ410 (第10図)に戻る。一方、ステップ530 におい
て、前イベントデータOLDKが休符でないときは、ベ
ースキーコードKEYは今回新たに休符になったのであ
るから、ステップ531 でベースキーコードKEYを前イ
ベントデータレジスタOLDKに格納し、ステップ532
でベースキーコードKEYに対してトーンジェネレータ
18のキーオフ処理を行なう。さらに、ステップ533 でベ
ース発音中フラグBASSをリセットした後、ステップ
410 (第10図)に戻る。
6.割込処理(続き) ステップ410 ではテンポカウンタCLKの計数値を歩進
する。ステップ411 ではテンポカウンタCLKの計数値
が最大値15を超えたか否かを判定する。もし、まだ超え
ていなければそのまま、超えていればステップ412 でテ
ンポカウンタCLKの計数値をクリアした後、割込を解
除してもとのルーチンに戻る。
ステップ401 (第10図)の判定は、スタート/ストップ
スイッチによりオートベース停止が設定されている(ま
たは設定された)場合(ランバッファフラグRUNBU
F=“0”)、およびオートベース設定状態であっても
まだ伴奏鍵が押鍵されていない場合(ランフラグRUN
=“0”)、つまりオートベース演奏の準備が出来てい
ない場合に「ノー」になる。この場合は、ステップ420
および421 でテンポカウンタCLKおよびランフラグR
UN=“0”をクリアした後、ステップ422 でキーコー
ドバッファKCBUFの全チャンネルが空きになった否
かを判定する。まだ発音すべき伴奏音が残っていれば、
演奏中であるから、そのまま割込を解除してもとのルー
チンに戻る。一方、キーコードバッファKCBUFの全
チャンネルが空きになっていれば、ステップ423 でベー
スキーコードKEYに対してトーンジェネレータ18のキ
ーオフ処理を行ない、ステップ424 でベース音発音中フ
ラグBASSをリセットするとともに、前イベントデー
タレジスタOLDKをクリアした後、割込を解除しても
とのルーチンに戻る。
[実施例の変形例] 以上がこの発明の実施例であるが、この発明は上述の実
施例に限定されることなく適宜変形して実施することが
できる。例えば、上述の実施例においては、離鍵時には
コード検出を行なっていないが、押鍵時と同様のアルゴ
リズムでコードを検出し、発音制御することも可能であ
る。また、上述においては、パターンテーブルをコード
種類ごとに用意しているが、複数のリズム種類に対しリ
ズム種類ごとに別々に設けてもよい。また、上述の実施
例では、押鍵により初めてオートベースが走るようにし
ているが、スタートスイッチの操作のみでクロック(テ
ンポカウンタ)CLKが動き始めるようにしてもよい。
また、上述において、テンポカウンタCLKの分解能は
1拍(4分音符)の1/4、パターンの小節数は2小節
にしているが、これらの分解能および小節数が実施例の
ものに限定されないことは勿論である。
また、上述においては、コードの構成音通りの押鍵によ
りコードを入力するフィンガードコードの場合について
説明したが、根音キーまたは根音キーと他の白鍵もしく
は黒鍵によりコードを指定するシングルフィンガーモー
ドにおいても根音キーと他のキーとの押鍵ばらつきによ
る問題はフィンガードコードの場合と同様であり、この
発明がこのようなシングルフィンガーモードの場合に対
しても適用可能なことは勿論である。さらに、この発明
は、オートベースだけでなく、オートコードに適用する
ことも可能である。
[発明の効果] 以上のようにこの発明によると、伴奏音の発音タイミン
グから所定時間以内の押鍵により、コードが変化し、さ
らにこのコードに対応して発音すべき伴奏音が変ったと
きは直ちに発音中の伴奏音を押鍵したコードに対する正
規の音高に訂正して発音を継続するようにしているた
め、演奏者の押鍵ばらつきにより、コード押鍵の完了が
発音タイミングより遅れた場合であっても、演奏者が意
図したコードに対応する伴奏音を自動演奏することがで
きる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係る電子楽器のブロック
構成図、 第2図は第1図の楽器における押鍵のタイミングとベー
ス音の発音タイミングとの関係を説明するためのタイミ
ングチャート、 第3図は第1図の楽器におけるキーとキーコードとの対
応図、 第4図は第1図の楽器におけるメモリ構成図、 第5図は伴奏用キーコードバッファ、 第6図はコードタイプ対コードデータ対照図、 第7図はメイン処理のフローチャート、 第8図は押鍵処理のフローチャート、 第9図は離鍵処理のフローチャート、 第10図は割込処理のフローチャート、 第11図はベース処理のフローチャート、 第12図はステップ214 の動作説明図である。 10:鍵盤回路、 11:CPU、 13:プログラムメモリ、 14:テーブルメモリ、 15:ワーキングメモリ、 16:スイッチ群、 17:テンポ発生器、 18:トーンジェネレータ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】鍵盤における押鍵(または離鍵)を検出し
    て鍵情報を発生する鍵情報発生手段と、 この鍵情報発生手段から発生される単数または複数の鍵
    情報に基づいて和音を決定し発音処理する和音形成手段
    とを備えた電子楽器であって、 楽曲の発音タイミングを指定するための計数手段と、 前記計数手段の計数値をもとにした数値が所定の値から
    他の所定の値となるまでの所定期間は上記和音形成手段
    における和音発音動作を可能化し他の期間は禁止すると
    ともに、これらの期間を所定周期で交互に繰り返させる
    タイミング制御手段と、 上記可能化期間の開始時に押下中の鍵はすべてこの可能
    化期間開始時に同一のタイミングで押下されたものとし
    て和音を発音させるよう上記和音形成手段を制御すると
    ともに、上記可能化期間内に上記鍵盤でいずれかの鍵の
    押鍵(または離鍵)があったときはこの押鍵(または離
    鍵)時に押下中の鍵すべての鍵情報に基づいて和音を発
    音させるよう和音形成手段を制御する制御手段とを備え
    てなる電子楽器。
JP60130702A 1985-06-18 1985-06-18 電子楽器 Expired - Fee Related JPH0638191B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60130702A JPH0638191B2 (ja) 1985-06-18 1985-06-18 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60130702A JPH0638191B2 (ja) 1985-06-18 1985-06-18 電子楽器

Publications (2)

Publication Number Publication Date
JPS61289394A JPS61289394A (ja) 1986-12-19
JPH0638191B2 true JPH0638191B2 (ja) 1994-05-18

Family

ID=15040573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60130702A Expired - Fee Related JPH0638191B2 (ja) 1985-06-18 1985-06-18 電子楽器

Country Status (1)

Country Link
JP (1) JPH0638191B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5641928A (en) * 1993-07-07 1997-06-24 Yamaha Corporation Musical instrument having a chord detecting function

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58157697U (ja) * 1982-04-15 1983-10-21 マックス株式会社 作画機のペンア−ム

Also Published As

Publication number Publication date
JPS61289394A (ja) 1986-12-19

Similar Documents

Publication Publication Date Title
JP2623809B2 (ja) 自動押鍵指示装置
JPS6367193B2 (ja)
JPH0584920B2 (ja)
JPH0746272B2 (ja) 電子楽器
JPH0717116Y2 (ja) 電子楽器
JP2768233B2 (ja) 電子楽器
JP2536596B2 (ja) 電子楽器
JPH0769698B2 (ja) 自動伴奏装置
JP3195111B2 (ja) 自動演奏装置
JP2619237B2 (ja) 電子楽器の自動伴奏装置
JP2570562B2 (ja) 自動演奏装置及び自動伴奏装置
JPH0375874B2 (ja)
JPH0774951B2 (ja) 自動伴奏装置付き電子楽器
JPH0320758B2 (ja)
JPH0464073B2 (ja)
JP2586744B2 (ja) 電子楽器の自動伴奏装置
JPS61289394A (ja) 電子楽器
JP2560485B2 (ja) 電子楽器
JP2513014B2 (ja) 電子楽器の自動演奏装置
JP3082294B2 (ja) 伴奏音信号形成装置
JPH0774952B2 (ja) 電子楽器
JPH0758434B2 (ja) 自動伴奏装置
JP2879742B2 (ja) 自動伴奏装置
JP2500490B2 (ja) 自動伴奏装置
JP2621835B2 (ja) 自動演奏装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees