JP2768233B2 - 電子楽器 - Google Patents
電子楽器Info
- Publication number
- JP2768233B2 JP2768233B2 JP5234235A JP23423593A JP2768233B2 JP 2768233 B2 JP2768233 B2 JP 2768233B2 JP 5234235 A JP5234235 A JP 5234235A JP 23423593 A JP23423593 A JP 23423593A JP 2768233 B2 JP2768233 B2 JP 2768233B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- timing
- chord
- register
- code
- 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
Links
Description
じて発生した演奏データに基づいて和音を検出する和音
検出機能を有する電子楽器に関する。
奏においては、鍵盤で演奏された和音に従って自動伴奏
音を発生することが行われる。そのために、鍵盤で演奏
された和音(根音とコードタイプ)を検出することが従
来から行われている。例えば電子楽器内に和音検出装置
が内蔵され、この和音検出装置では、鍵盤を手弾き演奏
(押鍵)することにより発生した演奏データすなわち1
又は複数の押鍵に対応するノートデータを入力し、この
押鍵ノートデータの組み合わせ(押鍵パターン)を基に
して和音の根音及び種類(タイプ)を検出する。従来知
られた和音検出法の典型例は、和音演奏用鍵盤で押鍵イ
ベントが発生する毎に、そのときの和音演奏用鍵盤にお
ける全ての押鍵ノート(音名)の組合せに基づいて和音
を検出することである。しかし、この方法には、演奏者
が所望の和音を構成する複数の音名の鍵を同時に押した
つもりでも実際の押鍵イベント発生時点にバラツキが生
じることや、ミスタッチによる一時的な和音の誤検出等
により、検出ノイズが出易いという欠点がある。そこ
で、別の和音検出法として、和音演奏用鍵盤で全鍵が離
鍵されている状態から最初の押鍵イベント(ニューキー
オンイベント)が発生したときをトリガ時点とし、この
トリガ時点から所定時間が経過するまでの間に発生した
押鍵イベントのノート組合せパターンに基づいて和音を
検出することが考えられている。この方法では、所定時
間の間の押鍵イベントのバラツキやミスタッチ押鍵を無
効にすることができるので、和音検出精度を上げること
ができる。しかし、この方法では、新たに和音を検出す
る前に予め全鍵を離鍵状態にした後でなければ、和音を
検出することができないので、和音を変更する場合は必
ず一旦全鍵が離鍵状態となるように離鍵操作を行い、そ
れから所望の和音を押鍵する操作を行わねばならないも
のである。そのため、和音演奏操作法が制限されてしま
い、和音演奏操作が面倒であるとともに、レガート形式
で和音を変更することはできなかった。また、ミスタッ
チ離鍵によって、一旦押したつもりの鍵が一時的に離さ
れた状態となったときも、それに応答して和音の誤検出
をしてしまうおそれがあった。また、特開昭61−28
9394号においては、自動演奏テンポにおける所定の
拍子タイミング毎に(例えば4分音符のタイミング毎
に)規則的に、かつ一定の期間(例えば16分音符長の
期間)で和音検出処理を行い、その一定期間の間で押鍵
ノートが変動した場合はその変動に応答して和音検出を
行うことを許すが、それ以外のときは和音検出を行わな
いようにした和音検出法が開示されている。この方法で
は、所定の拍子タイミングの直後の所定期間における押
鍵ノートの組合せ状態から和音の検出を行うので、それ
以外のときのミスタッチによる和音の誤検出は起こらな
いが、レガート形式の押鍵変更によって、拍子タイミン
グの冒頭では変更前の和音の構成音のどれかの離鍵が完
了していないような場合は、拍子タイミングの冒頭で和
音の誤検出が起こるおそれがある。この場合も、ミスタ
ッチ離鍵によって、一旦押したつもりの鍵が一時的に離
された状態となったときも、それに応答して和音の誤検
出をしてしまうおそれがあった。
いては、タイマインタラプトによって、定期的に押鍵状
態をチェックし、その都度の押鍵状態に基づいて和音を
検出することが示されている。しかし、この方法では、
タイマインタラプトによって絶えず、和音検出処理を行
なわねばならないので、煩雑であった。また、特開平1
−177089号公報においては、キーイベント(押鍵
変化又は離鍵変化)が、所定の拍タイミングの1/4拍
以内のタイミングで起こったならば、そのときの押鍵状
態に基づいて和音検出を行なうが、それ以外の場合は、
次の拍タイミングまで待機し、次の拍タイミングが到来
したときその先頭のタイミングで、そのときの押鍵状態
に基づいて和音検出を行なうことが示されている。この
場合も、拍タイミングの先頭タイミングで一旦押鍵した
が、ミスタッチ離鍵によって、一旦押したつもりの鍵が
その1/4拍以内のタイミングで一時的に離された状態
となったときは、それに応答して和音の誤検出をしてし
まうおそれがあった。
方法の或るものにおいては、新たに和音を検出する前に
予め全鍵を離鍵状態にした後でなければ、和音を検出す
ることができないので、全鍵が離鍵状態となるように和
音検出用の特別の演奏を行わなければならず、通常の演
奏状態(メロディー演奏等)の下では全鍵が離鍵状態に
ならない限り、和音を検出することができないという問
題を有していた。また、別の或るものは、タイマインタ
ラプトによって絶えず、和音検出処理を行なわねばなら
ないので、煩雑であった。また、いずれの方法も、ミス
タッチ離鍵によって、一旦押したつもりの鍵が一時的に
離された状態となったときも、それに応答して和音の誤
検出をしてしまうおそれがあった。この発明は上述の点
に鑑みてなされたものであり、和音検出のための特別な
演奏を行わなくても通常の演奏状態で発生する演奏デー
タに基づいて和音を正確に検出することができるように
すると共に、ミスタッチ離鍵に和音の誤検出を防ぐこと
のできる和音検出機能を有する電子楽器を提供すること
を目的とする。
は、押鍵及び離鍵操作に対応した演奏データを入力する
入力手段と、前記入力された演奏データに基づく演奏状
態を記憶する記憶手段と、前記入力された演奏データに
基づく演奏状態を前記記憶手段に記憶すると共に、自動
伴奏の所定の音符長に従った拍タイミングと、この拍タ
イミングの近傍であり、拍タイミングから所定時間だけ
離れたタイミングとの間でなされた離鍵操作に対応して
変化した演奏状態を前記記憶手段に記憶しないように制
御する制御手段と、前記拍タイミング毎、及び前記拍タ
イミングの近傍の前記タイミング毎に、前記記憶手段に
記憶されている演奏状態に基づいて和音を検出する和音
検出手段とを具えたものである。
ら、その入力時刻に同期させて、和音検出処理を行って
いた。ところが、この発明の電子楽器は演奏データの入
力時刻とは無関係に自動伴奏の所定の音符長に従った拍
タイミング毎、及びこの拍タイミングの近傍であり、拍
タイミングから所定時間だけ離れたタイミング毎に、和
音の検出を行うようにしている。すなわち、演奏データ
の中には、押鍵及び離鍵に関するものが存在するので、
入力手段から押鍵に関するデータが入力したり、離鍵に
関するデータが入力したりして、その状態は常に変化し
ている。ところが、和音の演奏はだいたい拍タイミング
毎に行われるのが普通なので、その拍タイミングに集中
して押鍵や離鍵が発生する。そこで、和音検出手段は、
入力手段からの演奏データの入力時刻とは無関係の拍タ
イミング毎に和音を検出している。従って、この拍タイ
ミング毎にその時点における演奏データに基づいて和音
を検出することによって、正確に和音を検出することが
できる。しかし、実際の演奏においては、拍タイミング
と演奏のタイミングとが完全に一致するようなことはな
く、拍タイミングよりも若干遅れて演奏データが入力さ
れたりすることがある。そこで、この発明では、拍タイ
ミング毎に和音を検出すると共にこの拍タイミングの近
傍であり、拍タイミングから所定時間だけ離れたタイミ
ング毎でも和音を検出するようにしている。これによっ
て、より正確に和音を検出することができるようにな
る。また、この発明によれば、前記拍タイミングと、こ
の拍タイミングの近傍の所定時間だけ離れたタイミング
との間でなされた離鍵操作に対応して変化した演奏状態
を記憶手段に記憶しないようにしているので、拍タイミ
ングで一旦押鍵したが、押鍵操作のバラツキによって、
その近傍のタイミングで一時的にミスタッチ離鍵されて
しまったとしても、押鍵記憶が維持されるので、ミスタ
ッチ離鍵による和音の誤検出が起こらない、という優れ
た効果を奏する。なお、この発明の実施態様として、レ
ガート形式の和音変更演奏に的確に対処するには、特
に、拍子タイミングの前の先行タイミングにおける演奏
データを考慮することが有利である。すなわち、レガー
ト形式の押鍵(ノート指定)演奏変更によって、拍子タ
イミングの冒頭で変更前の和音の構成ノートが残ってい
たとしても、その先行タイミングにおいて抽出したノー
トの状態を参照して、レガート形式の和音変更演奏を的
確に判定して、それに応じた適切な和音検出を行なうよ
うにすることができる。
例を詳細に説明する。図2はこの発明に係る和音検出装
置を内蔵した電子楽器のハードウェア構成を示すブロッ
ク図である。この実施例の電子楽器は、マイクロプロセ
ッサユニット(CPU)21、プログラムメモリ(RO
M)22、ワーキングメモリ(RAM)23を含むマイ
クロコンピュータの制御の下に各種の処理を実行するよ
うになっている。
制御するものである。このCPU21に対して、データ
及びアドレスバス2Cを介してプログラムメモリ22、
ワーキングメモリ23、自動伴奏装置24、押鍵検出回
路25、スイッチ検出回路26、音源回路27が接続さ
れている。
テムプログラム、楽音に関する各種パラメータや各種デ
ータ等を格納しているものであり、リードオンリーメモ
リ(ROM)で構成されている。ワーキングメモリ23
は、CPU21がプログラムを実行する際に発生する各
種のデータやフラグを一時的に記憶するものであり、ラ
ンダムアクセスメモリ(RAM)の所定のアドレス領域
がそれぞれ割り当てられる。自動伴奏装置24は、和音
の根音及び種類(タイプ)に関するデータやベース進行
に関するデータ等を記憶した伴奏パターンメモリを内蔵
しており、これらのデータをタイマ2Bからのテンポク
ロックに応じて順次読み出して自動伴奏音を生成する。
するための複数の鍵を備えており、各鍵に対応したキー
スイッチを有しており、また必要に応じて押圧力検出装
置等のタッチ検出手段を有している。鍵盤28は音楽演
奏のための基本的な操作子であり、これ以外の演奏操作
子でもよいことはいうまでもない。
高を指定する鍵盤28のそれぞれの鍵に対応して設けら
れたキースイッチ回路を含むものである。この押鍵検出
回路25は、鍵盤28の離鍵状態から押鍵状態への変化
を検出してキーオンイベントを出力し、押鍵状態から離
鍵状態への変化を検出してキーオフイベントを出力する
と共にそれぞれのキーオンイベント及びキーオフイベン
トに関する鍵の音高を示すキーコード(ノートナンバ)
を出力する。押鍵検出回路25は、この他にも鍵押し下
げ時の押鍵操作速度や押圧力等を検出してベロシティデ
ータやアフタタッチデータとして出力する。
29に設けられた各々の操作子(スイッチ)に対応して
設けられており、各々の操作子の操作状況に応じた操作
データをイベント情報として出力する。パネルスイッチ
29は、自動伴奏のスタート/ストップ、伴奏のスタイ
ル、発生すべき楽音の音色、音量、音高、効果等を選
択、設定、制御するための各種の操作子を含むものであ
る。
信号の同時発生が可能であり、データ及びアドレスバス
2Cを経由して与えられる演奏データを入力し、それに
基づいたメロディ音や伴奏音等の楽音信号を発生する。
音源回路27における楽音信号発生方式はいかなるもの
を用いてもよい。例えば、発生すべき楽音の音高に対応
して変化するアドレスデータに応じて波形メモリに記憶
した楽音波形サンプル値データを順次読み出すメモリ読
み出し方式、又は上記アドレスデータを位相角パラメー
タデータとして所定の周波数変調演算を実行して楽音波
形サンプル値データを求めるFM方式、あるいは上記ア
ドレスデータを位相角パラメータデータとして所定の振
幅変調演算を実行して楽音波形サンプル値データを求め
るAM方式等の公知の方式を適宜採用してもよい。
ウンドシステム2A内のデジタル−アナログ変換器(A
DC)、アンプ及びスピーカを介して発音される。タイ
マ2Bは和音検出用の所定時間間隔を計時したり、自動
伴奏のテンポを設定したりするためのテンポクロックパ
ルスを発生するものであり、このテンポクロックパルス
の周波数はパネルスイッチ29上のテンポスイッチ(図
示していない)によって調整される。発生したテンポク
ロックはCPU21や自動伴奏装置24に対してタイマ
割込み命令として与えられ、自動伴奏装置24はタイマ
割込み処理により自動伴奏の各種処理を実行する。
される和音検出装置の処理の一例を図1、図3、図4、
図5、図7、図8及び図9のフローチャートに基づいて
説明する。図3は、マイクロコンピュータが処理するメ
インルーチンの一例を示す図である。このメインルーチ
ンはつぎのようなステップで順番に実行される。
と、CPU21はプログラムメモリ22に格納されてい
る制御プログラムに応じた処理を開始する。そして、こ
の「初期設定」処理では、ワーキングメモリ23内の各
種レジスタやフラグ等を初期化する。 ステップ32:押鍵検出回路25をスキャンして鍵盤2
8が操作され、キーイベントが発生したかどうかを判定
し、キーイベント有り(YES)の場合は次のステップ
33のキーイベント処理を実行してからステップ34に
進み、キーイベント無し(NO)の場合はステップ34
に進む。
イベントが発生する毎に行われるキーイベント処理であ
る。このキーイベント処理の詳細は図4に示してある。 ステップ34:スイッチ検出回路26をスキャンしてス
タート/ストップスイッチが操作され、そのオンイベン
トが発生したかどうかを判定し、オンイベント有り(Y
ES)の場合はステップ35に進み、オンイベント無し
(NO)の場合はステップ3Aに進む。
を反転する。すなわち、この実施例では、スタート/ス
トップスイッチが操作される毎に自動伴奏が開始したり
又は停止したりする。 ステップ36:演奏走行状態フラグRUNが『1』かど
うかを判定し、『1』(YES)の場合、すなわち自動
伴奏が開始される場合はステップ37に進み、そうでな
い(NO)場合、すなわち自動伴奏が停止される場合は
ステップ39進む。
演奏走行状態フラグRUNが反転された結果、それが
『1』であると、すなわち自動伴奏が開始されたと判定
されたので、ここでは自動伴奏装置24にスタート信号
を出力する。 ステップ38:自動伴奏の新たなスタートに対応してテ
ンポクロックレジスタCLKを『0』にリセットする。 ステップ39:同じく前のステップ36の処理で演奏走
行状態フラグRUNが反転された結果、それが『0』で
あると、すなわち自動伴奏が停止されたと判定されたの
で、自動伴奏装置24にストップ信号を出力する。 ステップ3A:パネルスイッチ29におけるその他の操
作子の操作に基づく処理や、その他の音量変更処理等の
種々の処理をおこなう。
図3のステップ33のキーイベント処理の一例を示す図
である。このキーイベント処理は鍵盤28が操作され、
キーイベントが発生する毎に、つぎのようなステップで
順番に実行される。
ベントかどうかを判定し、キーオンイベント(YES)
の場合はステップ42に進み、そうでない(NO)場合
はステップ43に進む。 ステップ42:前のステップ41でキーオンイベントと
判定されたので、そのキーオンイベントに対応するキー
コードの発音処理(キーオン処理)をおこなう。 ステップ43:現在押鍵中の全てのキーコードをキーコ
ードリストレジスタKCLSTに格納する。
フイベントと判定されたので、そのキーオフイベントに
対応するキーコードの消音処理(キーオフ処理)をおこ
なう。 ステップ45:テンポクロックレジスタCLKの値を1
2で除した余り(CLKmod12)が『0』かどうか
を判定し、『0』(YES)の場合は図3のメインルー
チンにリターンし、『0』以外の値(NO)の場合には
ステップ43に進む。 この実施例では、1小節を96分長とし、4分音符を2
4分長、8分音符を12分長としている。テンポクロッ
クレジスタCLKは『0』〜『95』の値を繰り返し累
算しているので、この値を8分音符長の『12』で除し
た余り(CLKmod12)が『0』の場合には、丁度
8分音符の発音タイミングすなわち拍タイミングである
ことを意味する。
ーオンイベントが発生した時点で、そのキーオンイベン
トに対応するキーコードをキーコードリストレジスタK
CLSTに格納し、キーオフイベントが発生した時点
で、そのキーオフイベントに対応するキーコードをキー
コードリストレジスタKCLSTから削除するという処
理を行っているが、テンポクロックレジスタCLKの値
を12で除した余り(CLKmod12)が『0』にな
ってから『1』になるまでの間に発生したキーオフイベ
ントに対しては、そのキーオフイベントに対応するキー
コードをキーコードリストレジスタKCLSTから削除
することなくリターンしている。これによって、CLK
mod12が『0』になってから『1』になるまでの間
に押鍵状態であったところのキーコードが全てキーコー
ドリストレジスタKCLSTに格納されることとなる。
行されるタイマ割り込み処理を示す図である。図6は、
図5のタイマ割り込み処理によって実行される和音検出
処理やレガート処理の動作を説明するための図である。
図6において、横軸は時間を示し、縦軸はその時の押鍵
状態を示す。図5のタイマ割り込み処理は1小節当たり
96回の割込みで実行される。これに対応して図6の下
側には、現在の割込みタイミングを示すために、テンポ
クロックレジスタCLKの値(23〜39)が示してあ
る。
音符のタイミングを基準にして、その前後1分長におけ
る押鍵状態を検出し、それに応じて和音の検出を行って
いる。これに対応して図6の上側には、テンポクロック
レジスタCLKの値を12で除した余り(CLKmod
12)が『11』の場合を示すプリタイミングPRE、
『0』の場合を示すジャストタイミングJUST、
『1』の場合を示すレイトタイミングLATEがそれぞ
れ示してある。$図6において、キーコードK1のキー
は、割込タイミング24と25の間で押鍵され、割込タ
イミング39と40の間で離鍵されている。キーコード
K2のキーは、割込タイミク23と24の間で押鍵さ
れ、割込タイミング39と40の間で離鍵されている。
キーコードK3のキーは、割込タイミング35と36の
間で押鍵され、割込タイミング39と40の間で離鍵さ
れている。キーコードK4のキーは、割込タイミング2
3と24の間で押鍵され、割込タイミング36と37の
間で離鍵されている。キーコードK5のキーは、割込タ
イミング28で押鍵され、割込タイミング34で離鍵さ
れている。
ステップで順番に実行される。 ステップ51:演奏走行状態フラグRUNが『1』かど
うかを判定し、『1』(YES)の場合、すなわち自動
伴奏が開始される場合はステップ52に進み、そうでな
い(NO)場合、すなわち自動伴奏が停止される場合は
ステップ54に進む。 ステップ52:テンポクロックレジスタCLKの値を1
2で除した余り(CLKmod12)が『11』か、
『0』か、又は『1』であるかどうかを判定し、『1
1』、『0』又は『1』(YES)の場合は次のステッ
プ53に進み、これ以外の値(NO)の場合にはステッ
プ54に進む。 ステップ53:テンポクロックレジスタCLKの値を1
2で除した余り(CLKmod12)が『11』、
『0』及び『1』の場合、すなわち図6のプリタイミン
グPRE(割込タイミング23及び35)、ジャストタ
イミングJUST(割込タイミング24及び36)及び
レイトタイミングLATE(割込タイミング25及び3
7)のそれぞれにおける押鍵状態を検出するための押鍵
状態検出処理を行う。この押鍵状態検出処理の詳細につ
いては後述する。 ステップ54:テンポクロックレジスタCLKの値を
『1』だけインクリメント処理してリターンする。これ
によって、割込タイミングは1ずつ増加する。
出処理の詳細を示す図である。この押鍵状態検出処理
は、前述のように、テンポクロックレジスタCLKの値
を12で除した余り(CLKmod12)が『11』
(プリタンミングPRE)、『0』(ジャストタイミン
グJUST)又は『1』(レイトタイミングLATE)
の場合に行われる。この押鍵状態検出処理はつぎのよう
なステップで順番に実行される。 ステップ11:カレントリストレジスタCLST内のキ
ーコードをプリリストレジスタPLSTに格納する。 ステップ12:キーコードリストレジスタKCLST内
のキーコードをカレントリストレジスタCLSTに格納
する。
リストレジスタPLSTには1回前の割込タイミングに
おけるキーコードが格納され、カレントリストレジスタ
CLSTには現在押鍵中の全てのキーコードが格納され
る。なお、図4のステップ45の判定処理によって、テ
ンポクロックレジスタCLKの値を12で除した余り
(CLKmod12)が『0』になってから『1』にな
るまでの間に発生したキーオフイベントに対しては、そ
のキーオフイベントに対応するキーコードをキーコード
リストレジスタKCLSTから削除することなくリター
ンしているので、ジャストタイミングJUSTからレイ
トタイミングLATEまでの間にキーオフイベントが発
生しても、それは無視され、キーオンイベントのみが有
効なものとして、キーコードリストレジスタKCLST
内に追加格納される。例えば、図6ではキーコードK4
のキーが割込タイミング36と37の間で離鍵され、キ
ーコードK3のキーが割込タイミング35と36の間で
押鍵されているキー状態がこれに対応する。
どうかを判定し、『1』(YES)の場合はステップ1
7に進み、『0』(NO)の場合はステップ14に進
む。この継続フラグCFは、ステップ14及び15の処
理で共にYESと判定された場合にステップ16で
『1』に設定され、ステップ17の処理でNOと判定さ
れた場合に『0』に設定される。例えば、図6では、ス
テップ13の判定は割込タイミング36ではYESとな
り、これ以外の割込タイミング23、24、25、35
及び37ではNOとなる。
続中でないと判定されたので、このステップではテンポ
クロックレジスタCLKの値を12で除した余り(CL
Kmod12)が『11』(プリタイミングPRE)か
どうかを判定し、『11』(YES)の場合にはステッ
プ15に進み、そうでない(NO)場合はステップ1C
に進む。例えば、図6では、ステップ14の判定は割込
タイミング23及び35ではYESとなり、これ以外の
割込タイミング24、25、37ではNOとなる。
割込タイミングがプリタイミングPREであると判定さ
れたということは、ステップ11でプリリストレジスタ
PLSTに前回のレイトタイミングLATEにおけるキ
ーコードが格納され、ステップ12でカレントリストレ
ジスタCLSTに今回のプリタイミングPREにおける
キーコードが格納されているので、このステップ15で
は、カレントリストレジスタCLST内のキーコードが
全てプリリストレジスタPLST内のキーコードに属す
るかどうかを判定し、属する(YES)場合、すなわち
押鍵に継続性がある場合には次のステップ16に進み、
属しない(NO)場合、すなわち押鍵に継続性がない場
合にはステップ1Cに進む。
T内のキーコードが全てプリリストレジスタPLST内
のキーコードに属するということは、前回のレイトタイ
ミングLATEにおける押鍵が今回のプリタイミングP
REでも継続している場合を意味し、逆に属しないとい
うことは新たな離鍵又は押鍵が行われたことを意味す
る。例えば、図6では、割込タイミング25(レイトタ
イミングLATE)のキーコードはK1、K2及びK4
であり、割込タイミング35(プリタイミングPRE)
のキーコードはK1、K2及びK4なので、この場合に
は押鍵に継続性があると判定される。従って、図6では
ステップ15の判定は、割込タイミング35ではYES
となり、これ以外の割込タイミング23ではNOとな
る。
割込みタイミングがプリタイミングPREであり、ステ
ップ15でカレントリストレジスタCLST内のキーコ
ードが全てプリリストレジスタPLST内のキーコード
に属すると判定されたということは、前回のレイトタイ
ミングLATEにおける押鍵と今回のプリタイミングP
REにおける押鍵との間に継続性が存在することを意味
するので、このステップでは、継続フラグCFに『1』
をセットして、ステップ1Cに進む。従って、図6では
割込タイミング35で継続フラグCFに『1』がセット
される。
ラグCFが『1』、すなわち押鍵継続中であると判定さ
れたので、このステップではカレントリストレジスタC
LST内のキーコードが全てプリリストレジスタPLS
T内のキーコードに属するかどうかを判定し、属する
(YES)場合にはステップ18に進み、属しない(N
O)場合にはステップ19に進む。すなわち、前のステ
ップ13で押鍵継続中であると判定されたので、前回の
押鍵状態検出処理から今回の押鍵状態検出処理の間でも
依然として押鍵継続中であるかどうかを判定している。
コードが全てプリリストレジスタPLST内のキーコー
ドに属する(YES)ということは、前回のプリタイミ
ングPREにおける押鍵が今回のジャストタイミングJ
USTでも継続している場合、又は前回のジャストタイ
ミングJUSTにおける押鍵が今回のレイトタイミング
LATEでも継続しているか、又はその間に離鍵された
場合を意味し、逆に属しない(NO)ということは前回
のプリタイミングPREと今回のジャストタイミングJ
USTとの間で新たな押鍵があった場合、又は前回のジ
ャストタイミングJUSTと今回のレイトタイミングL
ATEとの間で新たに押鍵された場合を意味する。例え
ば、図6では、割込タイミング36におけるステップ1
7の判定は属しない(NO)となる。
と判定され、ステップ17で今回も押鍵継続中であると
判定されたので、このステップではテンポクロックレジ
スタCLKの値を12で除した余り(CLKmod1
2)が『0』かどうか、すなわち割込みタイミングがジ
ャストタイミングJUSTかどうかを判定し、『0』
(YES)の場合には現在の割込みタイミングがジャス
トタイミングJUSTなので、ステップ1Cに進みパー
ト分割処理を行い、そうでない(NO)場合には現在の
割込みタイミングがプリタイミングPRE又はレイトタ
イミングLATEなので、ステップ1Dに進む。
ストレジスタCLST内のキーコードが全てプリリスト
レジスタPLST内のキーコードに属しない(NO)と
判定されたので、前回のタイミングから今回のタイミン
グの間に新たな押鍵があったことを意味するので、この
ステップでは、継続フラグCFを『0』にリセットす
る。従って、図6では、割込タイミク36で継続フラグ
CFは『0』にリセットされる。
LKの値を12で除した余り(CLKmod12)が
『11』かどうか、すなわち割込みタイミングがプリタ
イミングPREかどうかを判定し、『11』(YES)
の場合はステップ1Cに進み、『0』又は『1』(N
O)の場合は次のステップ1Bに進む。
おけるステップ1Aの判定はNO(ジャストタイミング
である)となる。
たな押鍵があったと判定され、さらに割込みタイミング
がジャストタイミングJUST又はレイトタイミングL
ATEである場合に該当するので、レガート処理を行
う。このレガート処理の詳細は図9に示されている。 ステップ1C:カレントリストレジスタCLST内のキ
ーコードを所定のパートに分割するためのパート分割処
理を行う。このパート分割処理の詳細については図7を
用いて後述する。
LKの値を12で除した余り(CLKmod12)が
『11』かどうかを判定し、『11』(YES)の場合
には和音検出処理の必要がないので、ステップ1Fに進
み、そうでない(NO)場合は和音検出処理を行うため
に次のステップ1Eに進む。 ステップ1E:前のステップ1Cでそれぞれのパートに
分割されたキーコードに基づいた和音の検出処理を行
う。この和音検出処理の詳細についは、図8を用いて後
述する。 ステップ1F:前のステップ1Bのレガート処理でカレ
ントリストレジスタCLSTの内容が変更された可能生
があるので、ステップ12と同様にキーコードリストレ
ジスタKCLST内のキーコードをカレントリストレジ
スタCLSTに格納しなおす。
処理の詳細を示す図である。このパート分割処理は、カ
レントリストレジスタCLSTに格納されているキーコ
ードを各パート(メロディパート、ベースパート、コー
ドパート)にそれぞれ分割する。このパート分割処理は
つぎのようなステップで順番に実行される。
LSTの構成要素(キーコード)の数が2音以下かどう
かを判定し、2音以下(YES)の場合はステップ72
に進み、3音以上(NO)の場合はステップ73に進
む。 ステップ72:前のステップ71でカレントリストレジ
スタCLSTの構成要素(キーコード)の数が2音以下
だと判定されたので、カレントリストレジスタCLST
内のキーコードの属する音域(例えば、鍵盤を3分割し
た場合の高音域をメロディパート、中音域をコードパー
ト、低音域をベースパートとする)に応じて、各パート
(メロディパート、ベースパート、コードパート)に分
類し、それを各メロディパートレジスタM、ベースパー
トレジスタB及びコードパートレジスタCに2音又は1
音を格納する。
LSTの構成要素(キーコード)の数が3音かどうかを
判定し、3音(YES)の場合はステップ74に進み、
4音以上(NO)の場合はステップ75に進む。 ステップ74:前のステップ73でカレントリストレジ
スタCLSTの構成要素(キーコード)の数が3音だと
判定されたので、カレントリストレジスタCLST内の
キーコードはコードパートに対応するとして、メロディ
パートレジスタM及びベースパートレジスタBにはそれ
ぞれ空集合φを格納し、コードパートレジスタCにカレ
ントリストレジスタCLST内の3つの構成要素(キー
コード)を格納する。
LSTの構成要素(キーコード)の数が4音かどうかを
判定し、4音(YES)の場合はステップ76に進み、
5音以上(NO)の場合はステップ79に進む。 ステップ76:前のステップ75でカレントリストレジ
スタCLSTの構成要素(キーコード)の数が4音だと
判定されたので、カレントリストレジスタCLST内の
最上音のキーコードがキーコードナンバC4以上の音高
かどうかを判定し、C4以上(YES)の音高の場合は
ステップ77に進み、C4より低い音高の場合はステッ
プ78に進む。
トリストレジスタCLST内の最上音のキーコードがキ
ーコードナンバC4以上の音高だと判定されたので、こ
のステップでは、その最上音(1音)のキーコードをメ
ロディパートレジスタMに格納し、残りの3音をコード
パートレジスタCに格納し、ベースパートレジスタBに
は空集合φを格納する。 ステップ78:前のステップ76でカレントリストレジ
スタCLST内の最上音のキーコードがキーコードナン
バC4より低い音高だと判定されたので、このステップ
では、その最下音(1音)のキーコードをベースパート
レジスタBに格納し、残りの3音をコードパートレジス
タCに格納し、メロディパートレジスタMには空集合φ
を格納する。
トリストレジスタCLSTの構成要素(キーコード)の
数が5音以上だと判定されたので、そのカレントリスト
レジスタCLST内の最上音(1音)のキーコードをメ
ロディパートレジスタMに格納し、その最下音(1音)
のキーコードをベースパートレジスタBに格納し、最上
音及び最下音以外の残りの音の下から3音又は全部の音
をコードパートレジスタCに格納する。
理の詳細を示す図である。この和音検出処理は、図7の
パート分割処理で分割されたコードパートレジスタC及
びベースパートレジスタB内のキーコードに応じて行わ
れる。この和音検出処理はつぎのようなステップで順番
に実行される。 ステップ81:コードパートレジスタCの集合が空集合
φかどうかを判定し、空集合φ(YES)の場合はステ
ップ8Bに進み、空集合φでない(NO)場合はステッ
プ82に進む。 ステップ82:ベースパートレジスタBの集合が空集合
φかどうかを判定し、空集合φ(YES)の場合はステ
ップ87に進み、空集合φでない(NO)場合はステッ
プ83に進む。
で共にコードパートレジスタC及びベースパートレジス
タBが空集合φでないと判定されたので、このステップ
では、コードベースレジスタCBにコードパートレジス
タC及びベースパートレジスタB内のキーコードを格納
する。 ステップ84:コードベースレジスタCBに格納されて
いる構成要素(キーコード)に基づいて和音を検出す
る。
検出することができたかどうかを判定し、検出できた
(YES)場合はステップ86に進み、検出できなかっ
た(NO)場合はステップ87に進む。 ステップ86:ベースレジスタBSに空集合φを意味す
る16進数の『F』(図ではFHで表示してある)を格
納する。 ステップ87:コードパートレジスタCにはキーコード
が格納されているがステップ82でベースパートレジス
タBには空であると判定された場合、又はステップ85
でコードベースレジスタCB内の構成要素(キーコー
ド)に基づいて和音が検出されなかったと判定された場
合なので、コードパートレジスタC内の構成要素(キー
コード)に基づいて和音を検出する。
検出することができたかどうかを判定し、検出できた
(YES)場合はステップ89に進み、検出できなかっ
た(NO)場合は図1のステップ1Fにリターンする。 ステップ89:前のステップ87で和音が検出されたの
で、このステップでは、ベースレジスタBSにベースパ
ートレジスタBの構成要素(キーコード)を12で除し
た余り、すなわち音名を格納する。なお、ベースパート
レジスタBが空の時には空集合φを意味する16進数の
『F』(図ではFHで表示してある)を格納する。
音レジスタRTに格納し、検出された和音の種類を和音
タイプレジスタTPに格納する。 ステップ8B:根音レジスタRT、和音タイプレジスタ
TP及びベースレジスタBSにそれぞれ格納されている
根音、和音の種類及びベース音を自動伴奏装置24に出
力する。これによって、自動伴奏装置24は検出された
和音に基づいた伴奏を行う。なお、ベースレジスタBS
の格納値が『FH』の場合には、検出された和音に対応
したベース音を自動伴奏装置24側で生成して伴奏す
る。
理の詳細構成を示す図である。このレガート処理は、図
7のパート分割処理でコードパートレジスタC及びメロ
ディパートレジスタMにそれぞれ分割格納されたキーコ
ードに応じて行われる。例えば、図6では、割込タイミ
ング36でこのレガート処理が行われる。このレガート
処理はつぎのようなステップで順番に実行される。 ステップ91:コードメロディレジスタCMにコードパ
ートレジスタC及びメロディパートレジスタMのキーコ
ードを格納する。 ステップ92:コードメロディレジスタCMに格納され
ているキーコードの中で最も音高の低い音(最下音)を
コードボトムレジスタCBotに格納し、最も音高の高
い音(最上音)をコードトップレジスタCTopに格納
する。
空集合φかどうかを判定し、空集合φ(YES)の場合
はステップ94に進み、空集合φでない(NO)場合は
ステップ96に進む。 ステップ94:カレントリストレジスタCLST中でコ
ードボトムレジスタCBotのキーコード以上の音高を
有する音列(キーコード列)をカレントオーバラップコ
ードレジスタCOCBotに格納する。 ステップ95:カレントオーバラップコードレジスタC
OCBotに格納されているキーコードが、コードメロ
ディレジスタCMに格納されているキーコードとコード
トップレジスタCTopに対して上下6度以内の音(キ
ーコード)とを加算したものに等しいかどうかを判定
し、等しい(YES)場合、すなわち押鍵状態がレガー
ト状態である場合にはステップ99に進み、等しくない
(NO)場合、すなわち押鍵状態がレガート状態でない
場合には図1のステップ1Cにリターンする。
パートレジスタCが空集合φだと判定されたので、この
ステップでは、メロディパートレジスタMが空集合φか
どうかを判定し、空集合φ(YES)の場合は押鍵がメ
ロディパート及びコードパートに対応する押鍵が存在し
なかったことを意味するので、図1のステップ1Cにリ
ターンし、空集合φでない(NO)場合、メロディパー
トに関する押鍵が存在した場合はステップ96に進む。 ステップ97:カレントリストレジスタCLST中でメ
ロディパートレジスタMのキーコードに対して上下6度
以内の音列(キーコード列)をカレントオーバラップメ
ロディレジスタCOMに格納する。 ステップ98:カレントオーバラップメロディレジスタ
COMに格納されているキーコードが、コードメロディ
レジスタCMに格納されているキーコードとメロディパ
ートレジスタMに対して上下6度以内の音(キーコー
ド)とを加算したものに等しいかどうかを判定し、等し
い(YES)場合、すなわち押鍵状態がレガート状態で
ある場合にはステップ99に進み、等しくない(NO)
場合、すなわち押鍵状態がレガート状態でない場合には
図1のステップ1Cにリターンする。
たが、自動伴奏処理をおこなうシーケンサモジュール
と、押鍵検出回路や音源回路からなる音源モジュールと
がそれぞれ別々に構成され、各モジュール間のデータの
授受を周知のMIDI規格でおこなうように構成された
ものにも同様に適用できることは言うまでもない。ま
た、上述の実施例では、ジャストタイミングJUSTか
らレイトタイミングLATEまでの間でキーオフイベン
トが発生しても、そのキーコードをキーコードリストレ
ジスタKCLSTから削除しない場合について説明した
が、プリタイミングPREからレイトタイミングLAT
Eまでの間でキーオフイベントが発生した場合でも同様
に処理してもよい。さらに、上述の実施例では、図7の
パート分割処理と図8の和音検出処理とを同じタイミン
グで行う場合について説明したが、パート分割処理だけ
を和音検出処理のタイミングよりも細かく行うようにし
てもよい。すなわち、和音検出処理を8分音符長のタイ
ミングで行い、パート分割処理を32分音符長のタイミ
ングで行うようにしてもよい。
ミング毎に和音を検出すると共にこの拍タイミングの近
傍であり、拍タイミングから所定時間だけ離れたタイミ
ング毎でも和音を検出するようにしたことにより、和音
検出のための特別な演奏を行わなくても通常の演奏状態
で発生する演奏データに基づいて和音を正確に検出する
ことができるという効果がある。また、この発明によれ
ば、前記拍タイミングと、この拍タイミングの近傍の所
定時間だけ離れたタイミングとの間でなされた離鍵操作
に対応して変化した演奏状態を記憶手段に記憶しないよ
うにしているので、拍タイミングで一旦押鍵したが、押
鍵操作のバラツキによって、その近傍のタイミングで一
時的にミスタッチ離鍵されてしまったとしても、押鍵記
憶が維持されるので、ミスタッチ離鍵による和音の誤検
出が起こらない、という優れた効果を奏する。また、こ
の発明の実施態様として、レガート形式の押鍵(ノート
指定)演奏変更によって、拍子タイミングの冒頭で変更
前の和音の構成ノートが残っていたとしても、その先行
タイミングにおいて抽出したノートの状態を参照して、
レガート形式の和音変更演奏を的確に判定して、それに
応じた適切な和音検出を行なうようにすることができ
る。
出処理の詳細を示す図である。
器のハード構成を示すブロック図である。
チンの一例を示す図である。
が処理する図3のキーイベント処理の一例を示す図であ
る。
タイマ割込み処理の詳細を示す図である。
る和音検出処理やレガート処理の動作を説明するための
図である。
処理の詳細を示す図である。
理の詳細を示す図である。
理の詳細を示す図である。
ングメモリ、24…自動伴奏装置、25…押鍵検出回
路、26…スイッチ検出回路、27音源回路、28…鍵
盤、29…パネルスイッチ、2A…サウンドシステム、
2B…タイマ、2C…データ及びアドレスバス
Claims (1)
- 【請求項1】 押鍵及び離鍵操作に対応した演奏データ
を入力する入力手段と、 前記入力された演奏データに基づく演奏状態を記憶する
記憶手段と、 前記入力された演奏データに基づく演奏状態を前記記憶
手段に記憶すると共に、自動伴奏の所定の音符長に従っ
た拍タイミングと、この拍タイミングの近傍であり、拍
タイミングから所定時間だけ離れたタイミングとの間で
なされた離鍵操作に対応して変化した演奏状態を前記記
憶手段に記憶しないように制御する制御手段と、 前記拍タイミング毎、及び前記拍タイミングの近傍の前
記タイミング毎に、前記記憶手段に記憶されている演奏
状態に基づいて和音を検出する和音検出手段とを具えた
ことを特徴とする電子楽器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5234235A JP2768233B2 (ja) | 1993-08-26 | 1993-08-26 | 電子楽器 |
US08/270,457 US5641928A (en) | 1993-07-07 | 1994-07-05 | Musical instrument having a chord detecting function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5234235A JP2768233B2 (ja) | 1993-08-26 | 1993-08-26 | 電子楽器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0764561A JPH0764561A (ja) | 1995-03-10 |
JP2768233B2 true JP2768233B2 (ja) | 1998-06-25 |
Family
ID=16967814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5234235A Expired - Fee Related JP2768233B2 (ja) | 1993-07-07 | 1993-08-26 | 電子楽器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2768233B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2407958A1 (en) | 2010-07-13 | 2012-01-18 | Yamaha Corporation | Electronic musical instrument |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5703693B2 (ja) * | 2010-11-01 | 2015-04-22 | ヤマハ株式会社 | コード検出装置及びプログラム |
JP5696435B2 (ja) * | 2010-11-01 | 2015-04-08 | ヤマハ株式会社 | コード検出装置及びプログラム |
JP5712701B2 (ja) * | 2011-03-14 | 2015-05-07 | ヤマハ株式会社 | コード検出装置およびコード検出方法を実現するためのプログラム |
JP5712702B2 (ja) * | 2011-03-14 | 2015-05-07 | ヤマハ株式会社 | コード検出装置およびコード検出方法を実現するためのプログラム |
JP5742321B2 (ja) * | 2011-03-14 | 2015-07-01 | ヤマハ株式会社 | コード検出装置およびコード検出方法を実現するためのプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH067331B2 (ja) * | 1987-12-29 | 1994-01-26 | ヤマハ株式会社 | 自動伴奏装置 |
JP3334809B2 (ja) * | 1991-10-16 | 2002-10-15 | カシオ計算機株式会社 | 自動伴奏装置 |
-
1993
- 1993-08-26 JP JP5234235A patent/JP2768233B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2407958A1 (en) | 2010-07-13 | 2012-01-18 | Yamaha Corporation | Electronic musical instrument |
US8373054B2 (en) | 2010-07-13 | 2013-02-12 | Yamaha Corporation | Electronic musical instrument |
Also Published As
Publication number | Publication date |
---|---|
JPH0764561A (ja) | 1995-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2624090B2 (ja) | 自動演奏装置 | |
JPH079586B2 (ja) | 電子楽器の自動伴奏装置 | |
JPH0634170B2 (ja) | 電子楽器の自動伴奏装置 | |
JP2768233B2 (ja) | 電子楽器 | |
US5641928A (en) | Musical instrument having a chord detecting function | |
JP3239411B2 (ja) | 自動演奏機能付電子楽器 | |
JP3389705B2 (ja) | 電子鍵盤楽器 | |
JPH04274497A (ja) | 自動伴奏装置 | |
JPH0769698B2 (ja) | 自動伴奏装置 | |
JP2998527B2 (ja) | 自動伴奏装置 | |
JP3195111B2 (ja) | 自動演奏装置 | |
JP2629564B2 (ja) | 和音検出装置 | |
JPH0375874B2 (ja) | ||
JPH0464073B2 (ja) | ||
US5159142A (en) | Electronic musical instrument with lone modification for polyphonic effect | |
JP2570562B2 (ja) | 自動演奏装置及び自動伴奏装置 | |
JP2513014B2 (ja) | 電子楽器の自動演奏装置 | |
JP2564811B2 (ja) | 演奏記録装置 | |
JPH0631964B2 (ja) | 電子楽器 | |
JP3097382B2 (ja) | 和音検出装置 | |
JPH05273971A (ja) | 電子楽器 | |
JP3033393B2 (ja) | 自動伴奏装置 | |
JP3143039B2 (ja) | 自動演奏装置 | |
JPH07146681A (ja) | 電子楽器 | |
JPH0758434B2 (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: 20090410 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090410 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100410 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110410 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 15 |
|
LAPS | Cancellation because of no payment of annual fees |