JPH0764561A - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JPH0764561A
JPH0764561A JP5234235A JP23423593A JPH0764561A JP H0764561 A JPH0764561 A JP H0764561A JP 5234235 A JP5234235 A JP 5234235A JP 23423593 A JP23423593 A JP 23423593A JP H0764561 A JPH0764561 A JP H0764561A
Authority
JP
Japan
Prior art keywords
key
timing
chord
register
performance
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.)
Granted
Application number
JP5234235A
Other languages
English (en)
Other versions
JP2768233B2 (ja
Inventor
Atsushi Tougi
温 東儀
Yoshiko Fukushima
由子 福島
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 JP5234235A priority Critical patent/JP2768233B2/ja
Priority to US08/270,457 priority patent/US5641928A/en
Publication of JPH0764561A publication Critical patent/JPH0764561A/ja
Application granted granted Critical
Publication of JP2768233B2 publication Critical patent/JP2768233B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】 和音検出のための特別な演奏を行わなくても
通常の演奏状態で発生する演奏データに基づいて和音を
正確に検出するができるようにする。 【構成】入力手段は、演奏に対応した演奏データを入力
する。演奏データの中には、押鍵及び離鍵に関するもの
が存在するので、入力手段から押鍵に関するデータが入
力したり、離鍵に関するデータが入力したりして、その
状態は常に変化している。そこで、和音検出手段は、入
力手段からの演奏データの入力時刻とは無関係の自動伴
奏の所定の音符長に従った拍タイミング毎に和音を検出
すると共にこの拍タイミングの近傍であり、拍タイミン
グから所定時間だけ離れたタイミング毎にも和音を検出
するようにしている。これによって、拍タイミングと演
奏のタイミングとが一致しないような場合、すなわち拍
タイミングよりも若干遅れて演奏データが入力された場
合でも、正確に和音を検出することができるようにな
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は鍵盤楽器等の演奏に応
じて発生した演奏データに基づいて和音を検出する和音
検出機能を有する電子楽器に関する。
【0002】
【従来の技術】電子楽器に内蔵された和音検出装置は、
例えば鍵盤等を手弾き演奏(押鍵)することにより発生
した演奏データすなわち各ノートのオン・オフ状態の組
み合わせ(押鍵パターン)に対応した和音の根音及び種
類(タイプ)を検出するものである。従来の和音検出装
置は、押鍵イベントが発生する毎にその押鍵パターンに
基づいて和音を検出したり、又は全鍵離鍵の状態から最
初の押鍵イベントが発生してから所定時間が経過するま
での間に発生した押鍵イベントのパターンに応じて和音
を検出したりしていた。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
方法は、新たに和音を検出する前に予め全鍵を離鍵状態
にした後でなければ、和音を検出することができないの
で、全鍵が離鍵状態となるように和音検出用の特別の演
奏を行わなければならず、通常の演奏状態(メロディー
演奏等)の下では全鍵が離鍵状態にならない限り、和音
を検出することができないという問題を有する。
【0004】この発明は上述の点に鑑みてなされたもの
であり、和音検出のための特別な演奏を行わなくても通
常の演奏状態で発生する演奏データに基づいて和音を正
確に検出することのできる和音検出機能を有する電子楽
器を提供することを目的とする。
【0005】
【課題を解決するための手段】この発明に係る電子楽器
は、演奏に対応した演奏データを入力する入力手段と、
自動伴奏の所定の音符長に従った拍タイミング毎、及び
この拍タイミングの近傍であり、拍タイミングから所定
時間だけ離れたタイミング毎に、前記演奏データに基づ
いて和音を検出する和音検出手段とを具えたものであ
る。
【0006】
【作用】従来は、押鍵に関する演奏データが入力した
ら、その入力時刻に同期させて、和音検出処理を行って
いた。ところが、この発明の電子楽器は演奏データの入
力時刻とは無関係に自動伴奏の所定の音符長に従った拍
タイミング毎、及びこの拍タイミングの近傍であり、拍
タイミングから所定時間だけ離れたタイミング毎に、和
音の検出を行っている。すなわち、演奏データの中に
は、押鍵及び離鍵に関するものが存在するので、入力手
段から押鍵に関するデータが入力したり、離鍵に関する
データが入力したりして、その状態は常に変化してい
る。ところが、和音の演奏はだいたい拍タイミング毎に
行われるのが普通なので、その拍タイミングに集中して
押鍵や離鍵が発生する。そこで、和音検出手段は、入力
手段からの演奏データの入力時刻とは無関係の拍タイミ
ング毎に和音を検出している。従って、この拍タイミン
グ毎にその時点における演奏データに基づいて和音を検
出することによって、正確に和音を検出することができ
る。しかし、実際の演奏においては、拍タイミングと演
奏のタイミングとが完全に一致するようなことはなく、
拍タイミングよりも若干遅れて演奏データが入力された
りすることがある。そこで、この発明では、拍タイミン
グ毎に和音を検出すると共にこの拍タイミングの近傍で
あり、拍タイミングから所定時間だけ離れたタイミング
毎でも和音を検出するようにしている。これによって、
より正確に和音を検出することができるようになる。
【0007】
【実施例】以下、添付図面を参照してこの発明の一実施
例を詳細に説明する。図2はこの発明に係る和音検出装
置を内蔵した電子楽器のハードウェア構成を示すブロッ
ク図である。この実施例の電子楽器は、マイクロプロセ
ッサユニット(CPU)21、プログラムメモリ(RO
M)22、ワーキングメモリ(RAM)23を含むマイ
クロコンピュータの制御の下に各種の処理を実行するよ
うになっている。
【0008】CPU21は、この電子楽器全体の動作を
制御するものである。このCPU21に対して、データ
及びアドレスバス2Cを介してプログラムメモリ22、
ワーキングメモリ23、自動伴奏装置24、押鍵検出回
路25、スイッチ検出回路26、音源回路27が接続さ
れている。
【0009】プログラムメモリ22はCPU21のシス
テムプログラム、楽音に関する各種パラメータや各種デ
ータ等を格納しているものであり、リードオンリーメモ
リ(ROM)で構成されている。ワーキングメモリ23
は、CPU21がプログラムを実行する際に発生する各
種のデータやフラグを一時的に記憶するものであり、ラ
ンダムアクセスメモリ(RAM)の所定のアドレス領域
がそれぞれ割り当てられる。自動伴奏装置24は、和音
の根音及び種類(タイプ)に関するデータやベース進行
に関するデータ等を記憶した伴奏パターンメモリを内蔵
しており、これらのデータをタイマ2Bからのテンポク
ロックに応じて順次読み出して自動伴奏音を生成する。
【0010】鍵盤28は、発音すべき楽音の音高を選択
するための複数の鍵を備えており、各鍵に対応したキー
スイッチを有しており、また必要に応じて押圧力検出装
置等のタッチ検出手段を有している。鍵盤28は音楽演
奏のための基本的な操作子であり、これ以外の演奏操作
子でもよいことはいうまでもない。
【0011】押鍵検出回路25は、発生すべき楽音の音
高を指定する鍵盤28のそれぞれの鍵に対応して設けら
れたキースイッチ回路を含むものである。この押鍵検出
回路25は、鍵盤28の離鍵状態から押鍵状態への変化
を検出してキーオンイベントを出力し、押鍵状態から離
鍵状態への変化を検出してキーオフイベントを出力する
と共にそれぞれのキーオンイベント及びキーオフイベン
トに関する鍵の音高を示すキーコード(ノートナンバ)
を出力する。押鍵検出回路25は、この他にも鍵押し下
げ時の押鍵操作速度や押圧力等を検出してベロシティデ
ータやアフタタッチデータとして出力する。
【0012】スイッチ検出回路26は、パネルスイッチ
29に設けられた各々の操作子(スイッチ)に対応して
設けられており、各々の操作子の操作状況に応じた操作
データをイベント情報として出力する。パネルスイッチ
29は、自動伴奏のスタート/ストップ、伴奏のスタイ
ル、発生すべき楽音の音色、音量、音高、効果等を選
択、設定、制御するための各種の操作子を含むものであ
る。
【0013】音源回路27は、複数のチャンネルで楽音
信号の同時発生が可能であり、データ及びアドレスバス
2Cを経由して与えられる演奏データを入力し、それに
基づいたメロディ音や伴奏音等の楽音信号を発生する。
音源回路27における楽音信号発生方式はいかなるもの
を用いてもよい。例えば、発生すべき楽音の音高に対応
して変化するアドレスデータに応じて波形メモリに記憶
した楽音波形サンプル値データを順次読み出すメモリ読
み出し方式、又は上記アドレスデータを位相角パラメー
タデータとして所定の周波数変調演算を実行して楽音波
形サンプル値データを求めるFM方式、あるいは上記ア
ドレスデータを位相角パラメータデータとして所定の振
幅変調演算を実行して楽音波形サンプル値データを求め
るAM方式等の公知の方式を適宜採用してもよい。
【0014】音源回路27から出力される楽音信号はサ
ウンドシステム2A内のデジタル−アナログ変換器(A
DC)、アンプ及びスピーカを介して発音される。タイ
マ2Bは和音検出用の所定時間間隔を計時したり、自動
伴奏のテンポを設定したりするためのテンポクロックパ
ルスを発生するものであり、このテンポクロックパルス
の周波数はパネルスイッチ29上のテンポスイッチ(図
示していない)によって調整される。発生したテンポク
ロックはCPU21や自動伴奏装置24に対してタイマ
割込み命令として与えられ、自動伴奏装置24はタイマ
割込み処理により自動伴奏の各種処理を実行する。
【0015】次に、マイクロコンピュータによって実行
される和音検出装置の処理の一例を図1、図3、図4、
図5、図7、図8及び図9のフローチャートに基づいて
説明する。図3は、マイクロコンピュータが処理するメ
インルーチンの一例を示す図である。このメインルーチ
ンはつぎのようなステップで順番に実行される。
【0016】ステップ31:まず、電源が投入される
と、CPU21はプログラムメモリ22に格納されてい
る制御プログラムに応じた処理を開始する。そして、こ
の「初期設定」処理では、ワーキングメモリ23内の各
種レジスタやフラグ等を初期化する。 ステップ32:押鍵検出回路25をスキャンして鍵盤2
8が操作され、キーイベントが発生したかどうかを判定
し、キーイベント有り(YES)の場合は次のステップ
33のキーイベント処理を実行してからステップ34に
進み、キーイベント無し(NO)の場合はステップ34
に進む。
【0017】ステップ33は鍵盤28が操作され、キー
イベントが発生する毎に行われるキーイベント処理であ
る。このキーイベント処理の詳細は図4に示してある。 ステップ34:スイッチ検出回路26をスキャンしてス
タート/ストップスイッチが操作され、そのオンイベン
トが発生したかどうかを判定し、オンイベント有り(Y
ES)の場合はステップ35に進み、オンイベント無し
(NO)の場合はステップ3Aに進む。
【0018】ステップ35:演奏走行状態フラグRUN
を反転する。すなわち、この実施例では、スタート/ス
トップスイッチが操作される毎に自動伴奏が開始したり
又は停止したりする。 ステップ36:演奏走行状態フラグRUNが『1』かど
うかを判定し、『1』(YES)の場合、すなわち自動
伴奏が開始される場合はステップ37に進み、そうでな
い(NO)場合、すなわち自動伴奏が停止される場合は
ステップ39進む。
【0019】ステップ37:前のステップ36の処理で
演奏走行状態フラグRUNが反転された結果、それが
『1』であると、すなわち自動伴奏が開始されたと判定
されたので、ここでは自動伴奏装置24にスタート信号
を出力する。 ステップ38:自動伴奏の新たなスタートに対応してテ
ンポクロックレジスタCLKを『0』にリセットする。 ステップ39:同じく前のステップ36の処理で演奏走
行状態フラグRUNが反転された結果、それが『0』で
あると、すなわち自動伴奏が停止されたと判定されたの
で、自動伴奏装置24にストップ信号を出力する。 ステップ3A:パネルスイッチ29におけるその他の操
作子の操作に基づく処理や、その他の音量変更処理等の
種々の処理をおこなう。
【0020】図4は、マイクロコンピュータが処理する
図3のステップ33のキーイベント処理の一例を示す図
である。このキーイベント処理は鍵盤28が操作され、
キーイベントが発生する毎に、つぎのようなステップで
順番に実行される。
【0021】ステップ41:キーイベントがキーオンイ
ベントかどうかを判定し、キーオンイベント(YES)
の場合はステップ42に進み、そうでない(NO)場合
はステップ43に進む。 ステップ42:前のステップ41でキーオンイベントと
判定されたので、そのキーオンイベントに対応するキー
コードの発音処理(キーオン処理)をおこなう。 ステップ43:現在押鍵中の全てのキーコードをキーコ
ードリストレジスタKCLSTに格納する。
【0022】ステップ44:前のステップ41でキーオ
フイベントと判定されたので、そのキーオフイベントに
対応するキーコードの消音処理(キーオフ処理)をおこ
なう。 ステップ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分音符の発音タイミングすなわち拍タイミングである
ことを意味する。
【0023】すなわち、このキーイベント処理では、キ
ーオンイベントが発生した時点で、そのキーオンイベン
トに対応するキーコードをキーコードリストレジスタK
CLSTに格納し、キーオフイベントが発生した時点
で、そのキーオフイベントに対応するキーコードをキー
コードリストレジスタKCLSTから削除するという処
理を行っているが、テンポクロックレジスタCLKの値
を12で除した余り(CLKmod12)が『0』にな
ってから『1』になるまでの間に発生したキーオフイベ
ントに対しては、そのキーオフイベントに対応するキー
コードをキーコードリストレジスタKCLSTから削除
することなくリターンしている。これによって、CLK
mod12が『0』になってから『1』になるまでの間
に押鍵状態であったところのキーコードが全てキーコー
ドリストレジスタKCLSTに格納されることとなる。
【0024】図5は、1小節当たり96回の割込みで実
行されるタイマ割り込み処理を示す図である。図6は、
図5のタイマ割り込み処理によって実行される和音検出
処理やレガート処理の動作を説明するための図である。
図6において、横軸は時間を示し、縦軸はその時の押鍵
状態を示す。図5のタイマ割り込み処理は1小節当たり
96回の割込みで実行される。これに対応して図6の下
側には、現在の割込みタイミングを示すために、テンポ
クロックレジスタCLKの値(23〜39)が示してあ
る。
【0025】また、このタイマ割り込み処理では、8分
音符のタイミングを基準にして、その前後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で離鍵さ
れている。
【0026】図5のタイマ割り込み処理はつぎのような
ステップで順番に実行される。 ステップ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ずつ増加する。
【0027】図1は、図5のステップ53の押鍵状態検
出処理の詳細を示す図である。この押鍵状態検出処理
は、前述のように、テンポクロックレジスタCLKの値
を12で除した余り(CLKmod12)が『11』
(プリタンミングPRE)、『0』(ジャストタイミン
グJUST)又は『1』(レイトタイミングLATE)
の場合に行われる。この押鍵状態検出処理はつぎのよう
なステップで順番に実行される。 ステップ11:カレントリストレジスタCLST内のキ
ーコードをプリリストレジスタPLSTに格納する。 ステップ12:キーコードリストレジスタKCLST内
のキーコードをカレントリストレジスタCLSTに格納
する。
【0028】ステップ11,12の処理によって、プリ
リストレジスタPLSTには1回前の割込タイミングに
おけるキーコードが格納され、カレントリストレジスタ
CLSTには現在押鍵中の全てのキーコードが格納され
る。なお、図4のステップ45の判定処理によって、テ
ンポクロックレジスタCLKの値を12で除した余り
(CLKmod12)が『0』になってから『1』にな
るまでの間に発生したキーオフイベントに対しては、そ
のキーオフイベントに対応するキーコードをキーコード
リストレジスタKCLSTから削除することなくリター
ンしているので、ジャストタイミングJUSTからレイ
トタイミングLATEまでの間にキーオフイベントが発
生しても、それは無視され、キーオンイベントのみが有
効なものとして、キーコードリストレジスタKCLST
内に追加格納される。例えば、図6ではキーコードK4
のキーが割込タイミング36と37の間で離鍵され、キ
ーコードK3のキーが割込タイミング35と36の間で
押鍵されているキー状態がこれに対応する。
【0029】ステップ13:継続フラグCFが『1』か
どうかを判定し、『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となる。
【0030】ステップ14:前のステップ13で押鍵継
続中でないと判定されたので、このステップではテンポ
クロックレジスタCLKの値を12で除した余り(CL
Kmod12)が『11』(プリタイミングPRE)か
どうかを判定し、『11』(YES)の場合にはステッ
プ15に進み、そうでない(NO)場合はステップ1C
に進む。例えば、図6では、ステップ14の判定は割込
タイミング23及び35ではYESとなり、これ以外の
割込タイミング24、25、37ではNOとなる。
【0031】ステップ15:前のステップ14で現在の
割込タイミングがプリタイミングPREであると判定さ
れたということは、ステップ11でプリリストレジスタ
PLSTに前回のレイトタイミングLATEにおけるキ
ーコードが格納され、ステップ12でカレントリストレ
ジスタCLSTに今回のプリタイミングPREにおける
キーコードが格納されているので、このステップ15で
は、カレントリストレジスタCLST内のキーコードが
全てプリリストレジスタPLST内のキーコードに属す
るかどうかを判定し、属する(YES)場合、すなわち
押鍵に継続性がある場合には次のステップ16に進み、
属しない(NO)場合、すなわち押鍵に継続性がない場
合にはステップ1Cに進む。
【0032】すなわち、カレントリストレジスタCLS
T内のキーコードが全てプリリストレジスタPLST内
のキーコードに属するということは、前回のレイトタイ
ミングLATEにおける押鍵が今回のプリタイミングP
REでも継続している場合を意味し、逆に属しないとい
うことは新たな離鍵又は押鍵が行われたことを意味す
る。例えば、図6では、割込タイミング25(レイトタ
イミングLATE)のキーコードはK1、K2及びK4
であり、割込タイミング35(プリタイミングPRE)
のキーコードはK1、K2及びK4なので、この場合に
は押鍵に継続性があると判定される。従って、図6では
ステップ15の判定は、割込タイミング35ではYES
となり、これ以外の割込タイミング23ではNOとな
る。
【0033】ステップ16:前のステップ14で現在の
割込みタイミングがプリタイミングPREであり、ステ
ップ15でカレントリストレジスタCLST内のキーコ
ードが全てプリリストレジスタPLST内のキーコード
に属すると判定されたということは、前回のレイトタイ
ミングLATEにおける押鍵と今回のプリタイミングP
REにおける押鍵との間に継続性が存在することを意味
するので、このステップでは、継続フラグCFに『1』
をセットして、ステップ1Cに進む。従って、図6では
割込タイミング35で継続フラグCFに『1』がセット
される。
【0034】ステップ17:前のステップ13で継続フ
ラグCFが『1』、すなわち押鍵継続中であると判定さ
れたので、このステップではカレントリストレジスタC
LST内のキーコードが全てプリリストレジスタPLS
T内のキーコードに属するかどうかを判定し、属する
(YES)場合にはステップ18に進み、属しない(N
O)場合にはステップ19に進む。すなわち、前のステ
ップ13で押鍵継続中であると判定されたので、前回の
押鍵状態検出処理から今回の押鍵状態検出処理の間でも
依然として押鍵継続中であるかどうかを判定している。
【0035】カレントリストレジスタCLST内のキー
コードが全てプリリストレジスタPLST内のキーコー
ドに属する(YES)ということは、前回のプリタイミ
ングPREにおける押鍵が今回のジャストタイミングJ
USTでも継続している場合、又は前回のジャストタイ
ミングJUSTにおける押鍵が今回のレイトタイミング
LATEでも継続しているか、又はその間に離鍵された
場合を意味し、逆に属しない(NO)ということは前回
のプリタイミングPREと今回のジャストタイミングJ
USTとの間で新たな押鍵があった場合、又は前回のジ
ャストタイミングJUSTと今回のレイトタイミングL
ATEとの間で新たに押鍵された場合を意味する。例え
ば、図6では、割込タイミング36におけるステップ1
7の判定は属しない(NO)となる。
【0036】ステップ18:ステップ13で押鍵継続中
と判定され、ステップ17で今回も押鍵継続中であると
判定されたので、このステップではテンポクロックレジ
スタCLKの値を12で除した余り(CLKmod1
2)が『0』かどうか、すなわち割込みタイミングがジ
ャストタイミングJUSTかどうかを判定し、『0』
(YES)の場合には現在の割込みタイミングがジャス
トタイミングJUSTなので、ステップ1Cに進みパー
ト分割処理を行い、そうでない(NO)場合には現在の
割込みタイミングがプリタイミングPRE又はレイトタ
イミングLATEなので、ステップ1Dに進む。
【0037】ステップ19:ステップ17でカレントリ
ストレジスタCLST内のキーコードが全てプリリスト
レジスタPLST内のキーコードに属しない(NO)と
判定されたので、前回のタイミングから今回のタイミン
グの間に新たな押鍵があったことを意味するので、この
ステップでは、継続フラグCFを『0』にリセットす
る。従って、図6では、割込タイミク36で継続フラグ
CFは『0』にリセットされる。
【0038】ステップ1A:テンポクロックレジスタC
LKの値を12で除した余り(CLKmod12)が
『11』かどうか、すなわち割込みタイミングがプリタ
イミングPREかどうかを判定し、『11』(YES)
の場合はステップ1Cに進み、『0』又は『1』(N
O)の場合は次のステップ1Bに進む。
【0039】例えば、図6では、割込タイミング36に
おけるステップ1Aの判定はNO(ジャストタイミング
である)となる。
【0040】ステップ1B:押鍵継続中であり、かつ新
たな押鍵があったと判定され、さらに割込みタイミング
がジャストタイミングJUST又はレイトタイミングL
ATEである場合に該当するので、レガート処理を行
う。このレガート処理の詳細は図9に示されている。 ステップ1C:カレントリストレジスタCLST内のキ
ーコードを所定のパートに分割するためのパート分割処
理を行う。このパート分割処理の詳細については図7を
用いて後述する。
【0041】ステップ1D:テンポクロックレジスタC
LKの値を12で除した余り(CLKmod12)が
『11』かどうかを判定し、『11』(YES)の場合
には和音検出処理の必要がないので、ステップ1Fに進
み、そうでない(NO)場合は和音検出処理を行うため
に次のステップ1Eに進む。 ステップ1E:前のステップ1Cでそれぞれのパートに
分割されたキーコードに基づいた和音の検出処理を行
う。この和音検出処理の詳細についは、図8を用いて後
述する。 ステップ1F:前のステップ1Bのレガート処理でカレ
ントリストレジスタCLSTの内容が変更された可能生
があるので、ステップ12と同様にキーコードリストレ
ジスタKCLST内のキーコードをカレントリストレジ
スタCLSTに格納しなおす。
【0042】図7は、図1のステップ1Cのパート分割
処理の詳細を示す図である。このパート分割処理は、カ
レントリストレジスタCLSTに格納されているキーコ
ードを各パート(メロディパート、ベースパート、コー
ドパート)にそれぞれ分割する。このパート分割処理は
つぎのようなステップで順番に実行される。
【0043】ステップ71:カレントリストレジスタC
LSTの構成要素(キーコード)の数が2音以下かどう
かを判定し、2音以下(YES)の場合はステップ72
に進み、3音以上(NO)の場合はステップ73に進
む。 ステップ72:前のステップ71でカレントリストレジ
スタCLSTの構成要素(キーコード)の数が2音以下
だと判定されたので、カレントリストレジスタCLST
内のキーコードの属する音域(例えば、鍵盤を3分割し
た場合の高音域をメロディパート、中音域をコードパー
ト、低音域をベースパートとする)に応じて、各パート
(メロディパート、ベースパート、コードパート)に分
類し、それを各メロディパートレジスタM、ベースパー
トレジスタB及びコードパートレジスタCに2音又は1
音を格納する。
【0044】ステップ73:カレントリストレジスタC
LSTの構成要素(キーコード)の数が3音かどうかを
判定し、3音(YES)の場合はステップ74に進み、
4音以上(NO)の場合はステップ75に進む。 ステップ74:前のステップ73でカレントリストレジ
スタCLSTの構成要素(キーコード)の数が3音だと
判定されたので、カレントリストレジスタCLST内の
キーコードはコードパートに対応するとして、メロディ
パートレジスタM及びベースパートレジスタBにはそれ
ぞれ空集合φを格納し、コードパートレジスタCにカレ
ントリストレジスタCLST内の3つの構成要素(キー
コード)を格納する。
【0045】ステップ75:カレントリストレジスタC
LSTの構成要素(キーコード)の数が4音かどうかを
判定し、4音(YES)の場合はステップ76に進み、
5音以上(NO)の場合はステップ79に進む。 ステップ76:前のステップ75でカレントリストレジ
スタCLSTの構成要素(キーコード)の数が4音だと
判定されたので、カレントリストレジスタCLST内の
最上音のキーコードがキーコードナンバC4以上の音高
かどうかを判定し、C4以上(YES)の音高の場合は
ステップ77に進み、C4より低い音高の場合はステッ
プ78に進む。
【0046】ステップ77:前のステップ76でカレン
トリストレジスタCLST内の最上音のキーコードがキ
ーコードナンバC4以上の音高だと判定されたので、こ
のステップでは、その最上音(1音)のキーコードをメ
ロディパートレジスタMに格納し、残りの3音をコード
パートレジスタCに格納し、ベースパートレジスタBに
は空集合φを格納する。 ステップ78:前のステップ76でカレントリストレジ
スタCLST内の最上音のキーコードがキーコードナン
バC4より低い音高だと判定されたので、このステップ
では、その最下音(1音)のキーコードをベースパート
レジスタBに格納し、残りの3音をコードパートレジス
タCに格納し、メロディパートレジスタMには空集合φ
を格納する。
【0047】ステップ79:前のステップ75でカレン
トリストレジスタCLSTの構成要素(キーコード)の
数が5音以上だと判定されたので、そのカレントリスト
レジスタCLST内の最上音(1音)のキーコードをメ
ロディパートレジスタMに格納し、その最下音(1音)
のキーコードをベースパートレジスタBに格納し、最上
音及び最下音以外の残りの音の下から3音又は全部の音
をコードパートレジスタCに格納する。
【0048】図8は、図1のステップ1Eの和音検出処
理の詳細を示す図である。この和音検出処理は、図7の
パート分割処理で分割されたコードパートレジスタC及
びベースパートレジスタB内のキーコードに応じて行わ
れる。この和音検出処理はつぎのようなステップで順番
に実行される。 ステップ81:コードパートレジスタCの集合が空集合
φかどうかを判定し、空集合φ(YES)の場合はステ
ップ8Bに進み、空集合φでない(NO)場合はステッ
プ82に進む。 ステップ82:ベースパートレジスタBの集合が空集合
φかどうかを判定し、空集合φ(YES)の場合はステ
ップ87に進み、空集合φでない(NO)場合はステッ
プ83に進む。
【0049】ステップ83:前のステップ81及び83
で共にコードパートレジスタC及びベースパートレジス
タBが空集合φでないと判定されたので、このステップ
では、コードベースレジスタCBにコードパートレジス
タC及びベースパートレジスタB内のキーコードを格納
する。 ステップ84:コードベースレジスタCBに格納されて
いる構成要素(キーコード)に基づいて和音を検出す
る。
【0050】ステップ85:前のステップ84で和音を
検出することができたかどうかを判定し、検出できた
(YES)場合はステップ86に進み、検出できなかっ
た(NO)場合はステップ87に進む。 ステップ86:ベースレジスタBSに空集合φを意味す
る16進数の『F』(図ではFHで表示してある)を格
納する。 ステップ87:コードパートレジスタCにはキーコード
が格納されているがステップ82でベースパートレジス
タBには空であると判定された場合、又はステップ85
でコードベースレジスタCB内の構成要素(キーコー
ド)に基づいて和音が検出されなかったと判定された場
合なので、コードパートレジスタC内の構成要素(キー
コード)に基づいて和音を検出する。
【0051】ステップ88:前のステップ87で和音を
検出することができたかどうかを判定し、検出できた
(YES)場合はステップ89に進み、検出できなかっ
た(NO)場合は図1のステップ1Fにリターンする。 ステップ89:前のステップ87で和音が検出されたの
で、このステップでは、ベースレジスタBSにベースパ
ートレジスタBの構成要素(キーコード)を12で除し
た余り、すなわち音名を格納する。なお、ベースパート
レジスタBが空の時には空集合φを意味する16進数の
『F』(図ではFHで表示してある)を格納する。
【0052】ステップ8A:検出された和音の根音を根
音レジスタRTに格納し、検出された和音の種類を和音
タイプレジスタTPに格納する。 ステップ8B:根音レジスタRT、和音タイプレジスタ
TP及びベースレジスタBSにそれぞれ格納されている
根音、和音の種類及びベース音を自動伴奏装置24に出
力する。これによって、自動伴奏装置24は検出された
和音に基づいた伴奏を行う。なお、ベースレジスタBS
の格納値が『FH』の場合には、検出された和音に対応
したベース音を自動伴奏装置24側で生成して伴奏す
る。
【0053】図9は、図1のステップ1Bのレガート処
理の詳細構成を示す図である。このレガート処理は、図
7のパート分割処理でコードパートレジスタC及びメロ
ディパートレジスタMにそれぞれ分割格納されたキーコ
ードに応じて行われる。例えば、図6では、割込タイミ
ング36でこのレガート処理が行われる。このレガート
処理はつぎのようなステップで順番に実行される。 ステップ91:コードメロディレジスタCMにコードパ
ートレジスタC及びメロディパートレジスタMのキーコ
ードを格納する。 ステップ92:コードメロディレジスタCMに格納され
ているキーコードの中で最も音高の低い音(最下音)を
コードボトムレジスタCBotに格納し、最も音高の高
い音(最上音)をコードトップレジスタCTopに格納
する。
【0054】ステップ93:コードパートレジスタCが
空集合φかどうかを判定し、空集合φ(YES)の場合
はステップ94に進み、空集合φでない(NO)場合は
ステップ96に進む。 ステップ94:カレントリストレジスタCLST中でコ
ードボトムレジスタCBotのキーコード以上の音高を
有する音列(キーコード列)をカレントオーバラップコ
ードレジスタCOCBotに格納する。 ステップ95:カレントオーバラップコードレジスタC
OCBotに格納されているキーコードが、コードメロ
ディレジスタCMに格納されているキーコードとコード
トップレジスタCTopに対して上下6度以内の音(キ
ーコード)とを加算したものに等しいかどうかを判定
し、等しい(YES)場合、すなわち押鍵状態がレガー
ト状態である場合にはステップ99に進み、等しくない
(NO)場合、すなわち押鍵状態がレガート状態でない
場合には図1のステップ1Cにリターンする。
【0055】ステップ96:前のステップ93でコード
パートレジスタCが空集合φだと判定されたので、この
ステップでは、メロディパートレジスタMが空集合φか
どうかを判定し、空集合φ(YES)の場合は押鍵がメ
ロディパート及びコードパートに対応する押鍵が存在し
なかったことを意味するので、図1のステップ1Cにリ
ターンし、空集合φでない(NO)場合、メロディパー
トに関する押鍵が存在した場合はステップ96に進む。 ステップ97:カレントリストレジスタCLST中でメ
ロディパートレジスタMのキーコードに対して上下6度
以内の音列(キーコード列)をカレントオーバラップメ
ロディレジスタCOMに格納する。 ステップ98:カレントオーバラップメロディレジスタ
COMに格納されているキーコードが、コードメロディ
レジスタCMに格納されているキーコードとメロディパ
ートレジスタMに対して上下6度以内の音(キーコー
ド)とを加算したものに等しいかどうかを判定し、等し
い(YES)場合、すなわち押鍵状態がレガート状態で
ある場合にはステップ99に進み、等しくない(NO)
場合、すなわち押鍵状態がレガート状態でない場合には
図1のステップ1Cにリターンする。
【0056】上述の実施例では電子楽器について説明し
たが、自動伴奏処理をおこなうシーケンサモジュール
と、押鍵検出回路や音源回路からなる音源モジュールと
がそれぞれ別々に構成され、各モジュール間のデータの
授受を周知のMIDI規格でおこなうように構成された
ものにも同様に適用できることは言うまでもない。ま
た、上述の実施例では、ジャストタイミングJUSTか
らレイトタイミングLATEまでの間でキーオフイベン
トが発生しても、そのキーコードをキーコードリストレ
ジスタKCLSTから削除しない場合について説明した
が、プリタイミングPREからレイトタイミングLAT
Eまでの間でキーオフイベントが発生した場合でも同様
に処理してもよい。さらに、上述の実施例では、図7の
パート分割処理と図8の和音検出処理とを同じタイミン
グで行う場合について説明したが、パート分割処理だけ
を和音検出処理のタイミングよりも細かく行うようにし
てもよい。すなわち、和音検出処理を8分音符長のタイ
ミングで行い、パート分割処理を32分音符長のタイミ
ングで行うようにしてもよい。
【0057】
【発明の効果】この発明によれば、和音検出のための特
別な演奏を行わなくても通常の演奏状態で発生する演奏
データに基づいて和音を正確に検出することができると
いう効果がある。
【図面の簡単な説明】
【図1】 図5のタイマ割込み処理における押鍵状態検
出処理の詳細を示す図である。
【図2】 この発明に係る和音検出機能を有する電子楽
器のハード構成を示すブロック図である。
【図3】 マイクロコンピュータが処理するメインルー
チンの一例を示す図である。
【図4】 鍵盤が操作される毎にマイクロコンピュータ
が処理する図3のキーイベント処理の一例を示す図であ
る。
【図5】 1小節当たり96回の割り込みで実行される
タイマ割込み処理の詳細を示す図である。
【図6】 図5のタイマ割り込み処理によって実行され
る和音検出処理やレガート処理の動作を説明するための
図である。
【図7】 図5のタイマ割込み処理におけるパート分割
処理の詳細を示す図である。
【図8】 図5のタイマ割込み処理における和音検出処
理の詳細を示す図である。
【図9】 図5のタイマ割込み処理におけるレガート処
理の詳細を示す図である。
【符号の説明】
21…CPU、22…プログラムメモリ、23…ワーキ
ングメモリ、24…自動伴奏装置、25…押鍵検出回
路、26…スイッチ検出回路、27音源回路、28…鍵
盤、29…パネルスイッチ、2A…サウンドシステム、
2B…タイマ、2C…データ及びアドレスバス

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 演奏に対応した演奏データを入力する入
    力手段と、 自動伴奏の所定の音符長に従った拍タイミング毎、及び
    この拍タイミングの近傍であり、拍タイミングから所定
    時間だけ離れたタイミング毎に、前記演奏データに基づ
    いて和音を検出する和音検出手段とを具えたことを特徴
    とする電子楽器。
JP5234235A 1993-07-07 1993-08-26 電子楽器 Expired - Fee Related JP2768233B2 (ja)

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 true JPH0764561A (ja) 1995-03-10
JP2768233B2 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022095A (ja) * 2010-07-13 2012-02-02 Yamaha Corp 電子楽器
JP2012098480A (ja) * 2010-11-01 2012-05-24 Yamaha Corp コード検出装置及びプログラム
JP2012098481A (ja) * 2010-11-01 2012-05-24 Yamaha Corp コード検出装置及びプログラム
JP2012189941A (ja) * 2011-03-14 2012-10-04 Yamaha Corp コード検出装置およびコード検出方法を実現するためのプログラム
JP2012189942A (ja) * 2011-03-14 2012-10-04 Yamaha Corp コード検出装置およびコード検出方法を実現するためのプログラム
JP2012189943A (ja) * 2011-03-14 2012-10-04 Yamaha Corp コード検出装置およびコード検出方法を実現するためのプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01177089A (ja) * 1987-12-29 1989-07-13 Yamaha Corp 自動伴奏装置
JPH05108072A (ja) * 1991-10-16 1993-04-30 Casio Comput Co Ltd 自動伴奏装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01177089A (ja) * 1987-12-29 1989-07-13 Yamaha Corp 自動伴奏装置
JPH05108072A (ja) * 1991-10-16 1993-04-30 Casio Comput Co Ltd 自動伴奏装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022095A (ja) * 2010-07-13 2012-02-02 Yamaha Corp 電子楽器
JP2012098480A (ja) * 2010-11-01 2012-05-24 Yamaha Corp コード検出装置及びプログラム
JP2012098481A (ja) * 2010-11-01 2012-05-24 Yamaha Corp コード検出装置及びプログラム
JP2012189941A (ja) * 2011-03-14 2012-10-04 Yamaha Corp コード検出装置およびコード検出方法を実現するためのプログラム
JP2012189942A (ja) * 2011-03-14 2012-10-04 Yamaha Corp コード検出装置およびコード検出方法を実現するためのプログラム
JP2012189943A (ja) * 2011-03-14 2012-10-04 Yamaha Corp コード検出装置およびコード検出方法を実現するためのプログラム

Also Published As

Publication number Publication date
JP2768233B2 (ja) 1998-06-25

Similar Documents

Publication Publication Date Title
JP2562370B2 (ja) 自動伴奏装置
JPH079586B2 (ja) 電子楽器の自動伴奏装置
JPH0651761A (ja) 自動演奏装置
JPH0634170B2 (ja) 電子楽器の自動伴奏装置
JPH0584920B2 (ja)
JP2768233B2 (ja) 電子楽器
US5641928A (en) Musical instrument having a chord detecting function
JPH04274497A (ja) 自動伴奏装置
JPH07306679A (ja) 電子鍵盤楽器
JPH0769698B2 (ja) 自動伴奏装置
US5418326A (en) Automatic accompaniment instrument for automatically performing an accompaniment that is based on a chord progression formed by a sequence of chords
JP2998527B2 (ja) 自動伴奏装置
JP2513014B2 (ja) 電子楽器の自動演奏装置
JP2943560B2 (ja) 自動演奏装置
US5159142A (en) Electronic musical instrument with lone modification for polyphonic effect
US5541355A (en) Electronic musical instrument having an automatic peformance function
JPH05273971A (ja) 電子楽器
JP2570562B2 (ja) 自動演奏装置及び自動伴奏装置
JPH0631964B2 (ja) 電子楽器
JPH0464073B2 (ja)
JPH0734158B2 (ja) 自動演奏装置
JP3033393B2 (ja) 自動伴奏装置
JP2629564B2 (ja) 和音検出装置
JP3097382B2 (ja) 和音検出装置
JP3055352B2 (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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090410

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090410

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100410

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110410

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 14

FPAY Renewal fee payment (prs 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