JP2000259154A - コード判定装置 - Google Patents

コード判定装置

Info

Publication number
JP2000259154A
JP2000259154A JP11059226A JP5922699A JP2000259154A JP 2000259154 A JP2000259154 A JP 2000259154A JP 11059226 A JP11059226 A JP 11059226A JP 5922699 A JP5922699 A JP 5922699A JP 2000259154 A JP2000259154 A JP 2000259154A
Authority
JP
Japan
Prior art keywords
code
determination
chord
register
data
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.)
Pending
Application number
JP11059226A
Other languages
English (en)
Inventor
Jun Sato
佐藤  淳
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP11059226A priority Critical patent/JP2000259154A/ja
Publication of JP2000259154A publication Critical patent/JP2000259154A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 良好なコード判定精度を得ることができるコ
ード判定装置を実現する。 【解決手段】 演奏すべき各音の音高および発音タイミ
ングを含む自動演奏データからコード判定処理1および
コード判定処理2によってそれぞれ個別に抽出した各コ
ードをマージ処理にて1つのコード進行に併合する為、
ある演奏区間では適正にコード抽出し得るが、他の演奏
区間では適正に抽出できなくなるという弊害を解消で
き、良好なコード判定精度を得ることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シーケンサ等に用
いて好適なコード判定装置に関する。
【0002】
【従来の技術】従来より、ピアノパートやギターパート
等の複数の演奏パートに対応させたトラック毎に、その
パートにおいて演奏すべき各音の音高や発音タイミング
等を表わす自動演奏データを予め楽曲の進行順にメモリ
記憶しておき、これらメモリ記憶された各トラックの自
動演奏データを、設定された再生テンポに同期して順次
読み出して自動演奏したり、コード判定を施して時系列
に表示することにより、楽曲のコード進行をユーザーに
知らしめたり、このコード進行に基づいて楽曲をアレン
ジしたりすることができるシーケンサが知られている。
【0003】
【発明が解決しようとする課題】ところで、こうしたシ
ーケンサに搭載されるコード判定装置では、固定された
唯一のコード判定手法に従ってコード抽出する態様であ
る為、ある演奏区間では適正にコード抽出し得るが、他
の演奏区間では適正にコード抽出できないことがままあ
り、良好なコード判定精度が得られないという問題があ
る。そこで本発明はこのような事情に鑑みてなされたも
ので、良好なコード判定精度を得ることができるコード
判定装置を提供することを目的としている。
【0004】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の発明では、演奏すべき各音の音高
および発音タイミングを含む自動演奏データからコード
抽出する装置であって、判定手法が異なる複数のコード
判定手段と、これらコード判定手段が前記自動演奏デー
タからそれぞれ個別の判定手法にて抽出した各コードを
併合してコード進行を形成するコード進行形成手段とを
具備することを特徴とする。
【0005】上記請求項1に従属する請求項2に記載の
発明では、前記コード進行形成手段は、同一発音タイミ
ング下で異なるコードが抽出された場合、所定の判定手
法を行うコード判定手段が抽出したコードを優先するこ
とを特徴としている。
【0006】本発明では、自動演奏データからそれぞれ
個別の判定手法にて抽出した各コードを併合してコード
進行を形成する為、ある演奏区間では適正にコード抽出
し得るが、他の演奏区間では適正に抽出できなくなると
いう弊害を解消でき、良好なコード判定精度を得ること
ができる。
【0007】
【発明の実施の形態】本発明によるコード判定装置は、
周知の電子楽器のみならず、パーソナルコンピュータを
用いたDTM装置もしくはシーケンサに適用され得る。
以下では、本発明の実施の一形態によるコード判定装置
を実施例として図面を参照して説明する。 (1)全体構成 図1は、本発明による実施例の全体構成を示すブロック
図である。この図において、1はコンソールパネル上に
配設される各種スイッチから構成されるパネルスイッチ
であり、各スイッチ操作に対応したイベントを発生す
る。このイベントは後述するCPU3のキースキャンに
より取込まれる。パネルスイッチ1に配設されるスイッ
チ種類としては、例えば、図示されていないが、自動演
奏曲を選択する曲選択スイッチ1aや、自動演奏の開始
/停止を指示するスタート/ストップスイッチ1bある
いは後述するコード判定を指示する判定スイッチ1cが
ある。
【0008】2は上述したコンソールパネルに配設され
るLCDパネル2a(図示略)と、CPU3から供給さ
れる表示制御信号に応じてLCDパネル2aを表示制御
する表示ドライバ2b(図示略)とから構成される表示
部であり、上記パネルスイッチ1の操作に応じた動作状
態などを画面表示する。CPU3はROM4にストアさ
れる各種制御プログラムを実行し、キースキャンにより
取込んだパネルスイッチ1の各スイッチ操作(スイッチ
イベント)に応じて装置各部を制御するものであり、そ
の特徴的な処理動作については追って詳述する。
【0009】ROM4はCPU3にロードされる各種制
御プログラムを記憶するプログラムエリア他、各演奏パ
ートに対応するトラック別の自動演奏データや後述する
コード種判定テーブルTBLを記憶するデータエリアを
備える。以下、図2および図3を参照してデータエリア
に記憶される自動演奏データおよびコード種判定テーブ
ルTBLの構成について説明しておく。先ず、自動演奏
データは図2に図示するように、各演奏パートに対応す
るトラック別にプリセットされるものであり、そのデー
タ形式は所謂、絶対時間方式と呼ばれ、曲頭から進行順
(アドレス順)にイベントおよび音高を順次指定して行
くデータ構成となっている。なお、自動演奏データは、
後述するRAM5に記憶するようにしても良く、自動演
奏データをユーザーが任意に記憶させるようにしても良
い。
【0010】コード種判定テーブルTBLは、図3に示
すように、和音を構成する各音の半音数を読み出しアド
レスとして対応するコード種(和音種類)を読み出すよ
うになっている。例えば、和音を構成する各音の半音数
が「0」,「4」および「7」の場合、これに対応する
コード種として「maj(メジャー)」が判定される。
なお、この判定テーブルTBLでは3和音についてのみ
開示しているが、実際には「7th(セブンス)」や
「6th(シックスス)」等の4和音についても対応す
る半音数が設定されている。
【0011】次に、再び図1を参照して実施例の構成に
ついて説明を進める。図1において、5はRAMであ
り、CPU3の処理に用いる各種レジスタ/フラグデー
タを一時記憶するワークエリアと、上述した自動演奏デ
ータに基づいてコード判定した結果を保持するコードデ
ータエリアとを備える。コードデータエリアには、図3
に図示するように、後述するコード判定処理1に基づき
抽出されたコードデータを記憶する判定コードデータA
と、後述するコード判定処理2に基づき抽出されたコー
ドデータを記憶する判定コードデータBと、これら判定
コードデータA,Bの両者を併合したマージコードデー
タとがそれぞれ格納される。これらコードデータは、コ
ード進行を表わすタイミングTとコードCHDとが楽曲
進行順に格納されるものである。なお、ここで言うコー
ドCHDとは、上記コード種判定テーブルTBLにより
判定されるコード種とそのルート(根音)とから形成さ
れるデータである。
【0012】6はCPU3の制御の下に、自動演奏時の
再生テンポTEMPを指定するテンポクロックTMPを
発生するテンポクロック発生回路である。7は周知の波
形メモリ読み出し方式で構成される音源である。この音
源7では、自動演奏データの各記憶トラックに対応した
複数の同時発音チャンネルを備えており、再生テンポT
EMPに同期してROM4から順次読み出される自動演
奏データに基づき各発音チャンネルにてそれぞれ指定音
色の楽音信号を形成する。8は音源7から出力される楽
音信号をD/A変換した後に増幅してスピーカSPより
楽音として発音させるサウンドシステムである。
【0013】(2)動作 次に、図5〜図16を参照して上記構成による実施例の
動作について説明する。以下では、本発明の要旨にかか
わる特徴的な動作として、コード進行認識処理について
述べる。 メインルーチンの動作(全体動作) まず、本実施例において電源が投入されると、CPU3
はROM4から所定の制御プログラムをロードして図3
に示すメインルーチンを実行し、ステップSA1に処理
を進め、RAM5に格納される各種レジスタ/フラグ類
をリセットしたり、初期値セットするイニシャライズを
行う。次いで、ステップSA2では、コンソールパネル
上に配設される各種スイッチ操作に応じた処理、例え
ば、コード進行判定を指示する判定スイッチ1cの操作
に対応した処理等を実行する。そして、ステップSA3
では、判定スイッチ1cがオン設定されている場合に、
選択された曲の自動演奏データからコード進行を判定す
るコード進行認識処理を実行し、続くステップSA4で
は自動演奏データに従って自動演奏を行う等のその他の
処理を実行する。これ以後、電源がオフ状態に設定され
る迄、ステップSA2〜SA4を繰り返す。
【0014】コード進行認識処理ルーチンの動作 次に、図6を参照してコード進行認識処理ルーチンの動
作について説明する。上述したステップSA2を介して
図6に示すコード進行認識処理ルーチンが実行される
と、CPU3はステップSB1に処理を進め、コード進
行判定フラグCFが「1」、つまり、上述した判定スイ
ッチ1cがオン設定状態にあるかどうかを判断する。こ
こで、判定スイッチ1cがオフ設定されていれば、コー
ド進行判定フラグCFは「0」なので、ステップSB1
の判断結果が「NO」となり、この場合、何等処理せず
に本ルーチンを終了させる。一方、判定スイッチ1cが
オン設定されていると、コード進行判定フラグCFは
「1」なので、ステップSB1の判断結果が「YES」
となり、ステップSB2〜SB5の各処理(追って詳述
する)を実行した後、ステップSB6にてコード進行判
定フラグCFをゼロリセットしてから本ルーチンを終了
させる。
【0015】ベーストラック検出処理ルーチンの動作 次に、図7を参照してベーストラック検出処理ルーチン
の動作について述べる。上述したステップSB2を介し
てベーストラック検出処理ルーチンが実行されると、C
PU3は図7に示すステップSC1に処理を進め、先ず
トラック番号TNをゼロリセットし、続くステップSC
2,SC3では最小平均音高レジスタMAVおよびベー
ストラックナンバレジスタBTにそれぞれ初期値「12
8」,「N」をセットする。こうしてレジスタ初期化が
完了すると、次のステップSC4に処理を進め、トラッ
ク番号TNに対応した演奏パートの自動演奏データをR
OM4から読み出し、読み出した自動演奏データ中の音
高データを用いて平均音高を算出してレジスタCAVに
ストアする。
【0016】次いで、ステップSC5では、トラック番
号TNにアサインされる音色がベース音色(例えば、エ
レクトリックベース、コントラバス等)であるかどうか
を判断する。ここで、トラック番号TNの音色がベース
音色であると、判断結果は「YES」となり、次のステ
ップSC6に処理を進め、レジスタCAVにストアされ
ている平均音高を1/2にしてレジスタCAVの内容を
更新する。一方、トラック番号TNの音色がベース音色
でない場合には、上記ステップSC5の判断結果が「N
O」となり、この場合、何も処理せずにステップSC7
に処理を進める。
【0017】なお、トラック番号TNの音色がベース音
色である場合に、レジスタCAVにストアされている平
均音高を1/2に更新するようにしたのは、ベース音色
以外のトラックがベーストラックとして検出されないよ
うにする為のフィルタリング操作に相当する。つまり、
ベース音色がアサインされていないトラックでも平均音
高が小さいものも存在する可能性があり、そのようなト
ラックを誤ってベーストラックと見做してしまうことが
ないように、ベース音色がアサインされるトラックの平
均音高を一意的に半分に設定しているのである。
【0018】さて、トラック番号TNについての平均音
高が定まると、CPU3はステップSC7に処理を進
め、レジスタCAVにストアされる平均音高が最小平均
音高レジスタMAVより小さいか否かを判断する。最小
平均音高レジスタMAVには、初期値「128」となる
最大値がセットされている為、最初の比較では判断結果
が「YES」となり、次のステップSC8に進み、レジ
スタCAVの値を最小平均音高レジスタMAVに入れ直
す。次いで、ステップSC9では、ベーストラックナン
バレジスタBTにトラック番号TNをセットし直す。
【0019】こうして、仮のベーストラックナンバとそ
の平均音高とがそれぞれレジスタBTおよびレジスタM
AVにセットし直されると、ステップSC10に処理を
進めてトラック番号TNを歩進させ、続くステップSC
11では全トラックについてベーストラック検出し終え
たかどうかを判断する。そして、全トラックについてベ
ーストラック検出し終えていなければ、判断結果が「Y
ES」となり、上述したステップSC4に処理を戻す。
以後、全トラックについてベーストラック検出し終える
迄、ステップSC4〜SC10を繰り返すことによっ
て、全てのトラックの内で最小平均音高となるトラック
番号がレジスタBTに、その最小平均音高がレジスタM
AVに格納される。
【0020】コード判定処理1ルーチンの動作 次に、図8〜図11を参照してコード判定処理1ルーチ
ンの動作について説明する。以下では、最初にコード判
定処理1ルーチンの概略動作について述べた後に、本ル
ーチンからコールされるコード判定処理Aルーチンの動
作について説明する。 (イ)概略動作 上述したステップSB3を介してコード判定処理1ルー
チンが実行されると、CPU3は図8に示すステップS
E1に処理を進め、音符ポインタレジスタiの値をゼロ
リセットし、続くステップSE2では、全トラックにつ
いて音符ポインタレジスタiに対応する音符の消音タイ
ミングと一致する音符数をカウントし、その結果をレジ
スタCTにストアする。次いで、ステップSE3では、
レジスタCTにストアされた音符数が2音以上であるか
を判断する。
【0021】ここで、単音しか検出されない場合には、
コード判定する必要がない為、判断結果は「NO」とな
り、後述するステップSE5に処理を進めるが、2音以
上検出された場合には、判断結果が「YES」となり、
次のステップSE4に進み、後述するコード判定処理A
ルーチンを実行してコード判定する。そして、ステップ
SE5では、次の音符について和音検出すべく音符ポイ
ンタレジスタiを1インクリメントして歩進させ、続く
ステップSE6では全ての音符について和音検出し終え
たか否かを判断し、その途中であるならば判断結果が
「YES」となり、上記ステップSE2に処理を戻す。
一方、全ての音符について和音検出し終えると、ステッ
プSE6の判断結果が「NO」となり、本ルーチンを完
了させる。
【0022】(ロ)コード判定処理Aルーチンの動作 次に、図9〜図11を参照してコード判定処理Aルーチ
ンの動作について説明する。上述したように、消音タイ
ミングが一致する複数の音符が存在すると、ステップS
E4を介して本ルーチンが実行され、CPU3は図9に
示すステップSF1に処理を進める。ステップSF1で
は、上述したステップSE2にて検出した音符群、つま
り、消音タイミングが同じ音符群の内、最も速い発音タ
イミングを検出してレジスタKOTにストアする。続い
て、ステップSF2ではレジスタKOTにストアした発
音タイミングに最も近い音符をベーストラックBT中か
ら検出してレジスタRTにストアする。なお、このベー
ストラックBTとは、前述したベーストラック検出処理
ルーチン(図7参照)において検出されるトラックであ
る。
【0023】次いで、ステップSF3では、レジスタR
Tにストアされた音符をルート(根音)とし、このルー
トから長3度もしくは短3度の音程関係にある音(以
下、長3度音および短3度音と称す)が、上述したステ
ップSE2にて検出した音符群に含まれているかどうか
を検査する。そして、ステップSF4では、この検査の
結果、該当する音符の有無を判断する。ここで、該当す
る音符が有る場合には判断結果が「YES」となり、後
述するステップSF8に処理を進める。
【0024】一方、該当する音符が存在しない場合には
判断結果が「NO」となり、ステップSF5〜SF7に
て再度、和音となるべき音符が存在するか否かを判定す
る。すなわち、レジスタKOTにストアした発音タイミ
ングに次に近い音符をベーストラックBT中から検出し
てレジスタRTにストアし、このレジスタRTにストア
されたルートに対する長3度音もしくは短3度音が、上
述したステップSE2にて検出した音符群に含まれてい
るかどうかを再判定する。この再判定でもなお該当する
音符が見つからない時には、コード判定する必要がない
としてステップSF7の判断結果は「NO」となり、本
ルーチンを完了させるが、再判定の結果、該当する音符
が存在する場合にはステップSF7の判断結果が「YE
S」となり、ステップSF8に処理を進めて長3度音お
よび短3度音の両者が存在するか否かを判断する。
【0025】a.長3度音および短3度音の両者が存在
する場合 この場合、判断結果は「YES」となり、ステップSF
9に処理を進め、レジスタRTにストアされたルート
(根音)に対して減5度もしくは増5度の音程関係にあ
る音(以下、減5度音および増5度音と称す)が、上述
したステップSE2にて検出した音符群に含まれている
かどうかを検査する。次いで、図10に示すステップS
F10に進み、この検査の結果に基づき減5度音および
増5度音の有無を判断する。
【0026】a−1.減5度音および増5度音が無い場
合 この場合、判断結果は「NO」となり、ステップSF1
1に進み、長3度音をレジスタIT1に、完全5度音を
レジスタIT2にストアする。つまり、長3度音・短3
度音の両者が存在し、かつ減5度音および増5度音が存
在しない場合には、メジャー(maj)あるいはマイナ
ー(min)のいずれかである可能性が高く、この一例
では優先的にメジャーと判定するようにしている。な
お、マイナーと判定する際には、短3度音をレジスタI
T1に、完全5度音をレジスタIT2にストアする態様
となる。こうして、メジャー(maj)あるいはマイナ
ー(min)が判定されると、後述するステップSF2
4に進み、6度および7度の音についての有無を判断す
る。
【0027】a−2.減5度音もしくは増5度音が有る
場合 一方、上記ステップSF10において、減5度音もしく
は増5度音が有ると、判断結果は「YES」となり、C
PU3はステップSF12に処理を進めて減5度音の有
無を判断する。つまり、ディミニッシュ(dim)であ
るかオーギュメント(aug)のいずれであるかを判断
する。減5度音があると、ステップSF12の判断結果
は「YES」となり、ステップSF13に処理を進め、
短3度音をレジスタIT1に、減5度音をレジスタIT
2にそれぞれセットする。これに対し、増5度音があれ
ば、ステップSF12の判断結果は「NO」となり、ス
テップSF14に処理を進め、長3度音をレジスタIT
1に、増5度音をレジスタIT2にそれぞれセットす
る。そして、この後にステップSF24に処理を進め
る。
【0028】b.長3度音もしくは短3度音のいずれか
が存在する場合 さて、長3度音もしくは短3度音のいずれかが存在する
と、上記ステップSF8(図9参照)の判断結果は「N
O」となり、ステップSF15に処理を進め、存在する
長3度音(あるいは短3度音)をレジスタIT1にスト
アする。続いてステップSF16では、上述したステッ
プSF9と同様、レジスタRTにストアされたルート
(根音)に対して減5度もしくは増5度の音程関係にあ
る音(以下、減5度音および増5度音と称す)が、上述
したステップSE2にて検出した音符群に含まれている
かどうかを検査する。そしてこの後、図10に示すステ
ップSF17に処理を進め、上記検査結果に基づき減5
度音および増5度音の有無を判断する。
【0029】b−1.減5度音および増5度音が無い場
合 長3度音もしくは短3度音のいずれかが存在し、かつ減
5度音および増5度音が無い場合には、ステップSF1
8に進み、完全5度音をレジスタIT2にストアする。
つまり、この場合、長3度音があればメジャー(ma
j)となり、短3度音があればマイナー(min)と判
定することになる。そしてこの後、後述するステップS
F24に進み、6度および7度の音についての有無を判
断する。
【0030】b−2.減5度音もしくは増5度音が有る
場合 上記ステップSF17において、減5度音もしくは増5
度音が有ると、判断結果は「YES」となり、CPU3
はステップSF19に処理を進めて減5度音の有無を判
断する。つまり、ディミニッシュ(dim)が成立する
かどうかを判断する。そして、減5度音があると、ステ
ップSF19の判断結果は「YES」となり、ステップ
SF22に処理を進め、レジスタIT1に短3度音が格
納されているか否かを判断する。ここで、レジスタIT
1に短3度音が格納されていると、判断結果は「YE
S」となり、次のステップSF23に処理を進め、減5
度音をレジスタIT2にセットする。これにより、ディ
ミニッシュ(dim)がコード判定される。これに対
し、レジスタIT1に短3度音が格納されていない時に
は上記ステップSF22の判断結果は「NO」となり、
この場合、和音成立していないと見做して後述するステ
ップSF27に処理を進める。
【0031】一方、上記ステップSF19において、減
5度音が無い場合には、ステップSF20に処理を進め
てオーギュメント(aug)の成立の可否について判断
する。すなわち、ステップSF20ではレジスタIT1
に長3度音が格納されているか否かを判断し、レジスタ
IT1に長3度音が格納されていれば、次のステップS
F21に処理を進めて増5度音をレジスタIT2にセッ
トする。これにより、オーギュメント(aug)がコー
ド判定される。これに対し、レジスタIT1に長3度音
が格納されていない時には上記ステップSF20の判断
結果は「NO」となり、この場合、和音成立していない
と見做して後述するステップSF27に処理を進める。
【0032】以上のようにして、3和音(メジャー、マ
イナー、ディミニッシュおよびオーギュメント)につい
てコード判定がなされると、ステップSF24に処理を
進め、更にルートに対して7度および6度の音程関係に
ある音が、上述したステップSE2にて検出した音符群
に含まれているかどうかを検査した後、セブンス(7t
h)系およびシックスス(6th)系のコードの成立の
有無を判断する。なお、和音成立した場合には対応する
音符の音程がレジスタIT3に格納される。
【0033】この後、CPU3は図11に示すステップ
SF25に処理を進め、レジスタRTに格納されたルー
トと、レジスタIT1〜IT3にストアされた音程(半
音数)とを用いて、前述したコード種判定テーブルTB
L(図3参照)を参照してコード種を特定する。次い
で、ステップSF26では、上記発音タイミング、ルー
トおよびコード種を一組とするコード進行結果を、時系
列順に歩進するアドレスに従って判定コードデータAエ
リアに記憶させ、続くステップSF27ではレジスタI
T1〜IT3をゼロリセットした後、本ルーチンを完了
させる。
【0034】コード判定処理2ルーチンの動作 次に、図12〜図15を参照してコード判定処理2ルー
チンの動作について説明する。以下では、最初にコード
判定処理2ルーチンの概略動作について述べた後に、本
ルーチンからコールされるコード判定処理Bルーチンの
動作について説明する。 (イ)概略動作 前述したステップSB4(図6参照)を介してコード判
定処理2ルーチンが実行されると、CPU3は図12に
示すステップSG1に処理を進め、音符ポインタiをゼ
ロリセットし、続くステップSG2では、拍番号BPを
ゼロリセットする。次いで、ステップSG3では、1オ
クターブ12音中の各音名(C〜B)に対応して設けら
れ、各音名毎の音符数をカウントするレジスタC(C)
〜C(B)を全てゼロリセットする。
【0035】そして、ステップSG4に進むと、i番目
の音符の発音タイミングを記憶するレジスタtiの値
を、1拍間隔に相当するタイミング値TBで除算した結
果が拍番号BPより大きいか否か、つまり、1拍分経過
したかどうかを判断する。ここで、1拍分の時間が経過
すると、判断結果は「YES」となり、ステップSG5
を介して後述するコード判定処理Bルーチンを実行して
経過した拍でのコード判定を行い、続くステップSG6
では、拍番号BPを1インクリメントして歩進させると
ともに、レジスタC(C)〜C(B)を全てゼロリセッ
トする。
【0036】一方、拍の間であると、判断結果は「N
O」となり、ステップSG7に進み、i番目の音符の音
名に対応するレジスタC(C)〜C(B)をカウントア
ップする。この後、ステップSG8に進み、音符ポイン
タiを1インクリメントして歩進させ、続くステップS
G9では、歩進した音符ポインタiの値が最大値Max
より小さいか否か、すなわち、全ての音符についてコー
ド判定処理し終えたかどうかを判断する。そして、その
処理の途中であるならば、判断結果は「YES」とな
り、上述したステップSG4に処理を戻し、以後、コー
ド判定処理が完了するまでステップSG4〜SG9を繰
り返す。なお、本ルーチンでは全てのトラックにおける
音符を音符ポインタiに応じて読み出す形態である。
【0037】(ロ)コード判定処理Bルーチンの動作 次に、図13〜図15を参照してコード判定処理Bルー
チンの動作について説明する。上述したように、1拍進
行毎にステップSG5を介して本ルーチンが実行され、
CPU3は図13に示すステップSH1に処理を進め
る。ステップSH1では、レジスタC(C)〜C(B)
の内でカウントされた音名が2種以上有るか否かを判断
する。ここで、2種以上無ければ、和音成立しないの
で、判断結果は「NO」となり、本ルーチンを完了させ
るが、2種以上あれば、和音成立の可能性があるので、
判断結果は「YES」となり、ステップSH2に処理を
進め、レジスタC(C)〜C(B)にカウントされた音
名の内、上位2音名の音程が長3度もしくは短3度の関
係にあるか否かを判断する。以下、その音程関係にある
場合とない場合とに分けて説明して行く。
【0038】a.上位2音名の音程が長3度もしくは短
3度の関係にある場合 この場合、上記ステップSH2の判断結果が「YES」
となり、次のステップSH3に進み、上位2音名の中で
低い方の音をルートに決定してレジスタRTにストア
し、続くステップSH4では長3度もしくは短3度の音
程をレジスタIT1にストアする。次いで、CPU3は
図14に示すステップSH5に処理を進め、レジスタC
(C)〜C(B)にカウントされた音名の内、3位の音
名があるか否かを判断する。ここで、3位の音名が無け
れば、ステップSH5の判断結果は「NO」となり、ス
テップSH6に処理を進め、この場合、完全5度音をレ
ジスタIT2にストアした後、後述するステップSH1
5(図15参照)に進む。
【0039】これに対し、3位の音名が有ると、上記ス
テップSH5の判断結果は「YES」となり、ステップ
SH7に処理を進める。ステップSH7では、3位の音
名とレジスタRTにセットしたルート(根音)との音程
が減5度もしくは増5度の関係(以下、この音程関係に
ついて減5度音および増5度音と称す)にあるか否かを
判断する。ここで、減5度音や増5度音も存在しない時
には、判断結果が「NO」となり、後述するステップS
H26に処理を進めて4位の音名の有無について判断す
るが、減5度音あるいは増5度音のいずれかが存在する
時には、判断結果が「YES」となり、ステップSH8
以降に処理を進め、減5度音あるいは増5度音が有る場
合のコード判定を進める。つまり、ディミニッシュ(d
im)あるいはオーギュメント(aug)の成立の可否
について判定する。
【0040】すなわち、減5度音があると、ステップS
H8の判断結果は「YES」となり、ステップSH11
に処理を進め、レジスタIT1に短3度音が格納されて
いるか否かを判断する。ここで、レジスタIT1に短3
度音が格納されていると、判断結果は「YES」とな
り、次のステップSH12に処理を進め、減5度音をレ
ジスタIT2にセットする。これにより、ディミニッシ
ュ(dim)がコード判定される。なお、レジスタIT
1に短3度音が格納されていない時には上記ステップS
H8の判断結果は「NO」となり、この場合、和音が成
立たないと見做して後述するステップSH17に処理を
進める。
【0041】一方、上記ステップSH8において、減5
度音が無いと、ステップSH9に処理を進めてオーギュ
メント(aug)の成立の可否について判定すべく、レ
ジスタIT1に長3度音が格納されているか否かを判断
する。そして、長3度音が格納されていれば、判断結果
が「YES」となり、次のステップSH10に処理を進
め、増5度音をレジスタIT2にセットする。これによ
り、オーギュメント(aug)がコード判定される。な
お、レジスタIT1に長3度音が格納されていない時に
は上記ステップSH9の判断結果は「NO」となり、こ
の場合、和音が成立たないとして後述するステップSH
17に処理を進める。
【0042】さて、以上のようにして、上位2音名の音
程が長3度もしくは短3度の関係にある場合の3和音に
ついてコード判定がなされると、CPU3は図15に示
すステップSH13に処理を進め、更にレジスタC
(C)〜C(B)にカウントされた音名の内、4位の音
名があるか否か判断し、4位の音名が無ければ判断結果
は「NO」となり、後述するステップSH15に処理を
進めてコード種を特定するが、4位の音名が有る時には
判断結果が「YES」となり、ステップSH14に進
む。ステップSH14では、4位の音名がルートに対し
て7度および6度の音程関係にあるか否かを判断するこ
とにより、セブンス(7th)系およびシックスス(6
th)系のコードの成立の有無について判定する。そし
て、この判定の結果、4和音が成立した時には対応する
音程音をレジスタIT3にストアする。
【0043】この後、CPU3はステップSH15に処
理を進め、レジスタRTに格納されたルートと、レジス
タIT1〜IT3にストアされた音程(半音数)とを用
いて、前述したコード種判定テーブルTBL(図3参
照)を参照してコード種を特定する。次いで、ステップ
SH16では、現在の拍タイミング、ルートおよびコー
ド種を一組とするコード進行結果を、時系列順に歩進す
るアドレスに従って判定コードデータBエリアに記憶さ
せ、続くステップSF27ではレジスタRTに初期値
「12」を、レジスタIT1〜IT3に初期値「0」を
ストアしてリセットさせた後、本ルーチンを完了させ
る。
【0044】b.上位2音名の音程が長3度もしくは短
3度の関係にない場合 さて一方、レジスタC(C)〜C(B)にカウントされ
た音名の内、上位2音名の音程が長3度もしくは短3度
の関係にない場合には、前述したステップSH2の判断
結果が「NO」となり、図13に示すステップSH18
に処理を進め、レジスタC(C)〜C(B)に3位の音
名が有るか否かを判断する。ここで、3位の音名が無い
場合には和音成立しないので、判断結果は「NO」とな
り、本ルーチンを完了させるが、3位の音名があれば判
断結果「YES」となり、次のステップSH19に処理
を進める。
【0045】ステップSH19では、上位3音名で長3
度もしくは短3度の音程の組が有るか否かを判断する。
そして、その音程関係にある組が無い時には和音成立せ
ずとして判断結果が「NO」となり、本ルーチンを完了
させるが、長3度もしくは短3度の音程の組が存在する
場合には、判断結果が「YES」となり、図14に示す
ステップSH20に処理を進める。次いで、ステップS
H20に進むと、その音程関係の組が2組以上有るか否
かを判断し、有る場合には判断結果が「YES」となっ
てステップSH21に進み、1位の音名をルートとして
レジスタRTにストアする。続いて、ステップSH22
では長3度もしくは短3度の音程をレジスタIT1にス
トアする。そして、ステップSH23では完全5度音、
減5度音および増5度音の内で合致する条件の音をレジ
スタIT2にストアした後、前述したステップSH13
(図15参照)に処理を進める。
【0046】一方、上記ステップSH20において、長
3度もしくは短3度の音程の組が複数存在しない時に
は、当該ステップSH20の判断結果が「NO」とな
り、ステップSH24に処理を進め、決定したルートを
レジスタRTにストアし、続くステップSH25では長
3度もしくは短3度の音程をレジスタIT1にストアす
る。次いで、ステップSH26では、レジスタC(C)
〜C(B)にカウントされた音名の内、4位の音名があ
るか否かを判断する。ここで、4位の音名が無ければ、
ステップSH26の判断結果は「NO」となり、ステッ
プSH28に処理を進め、この場合、省略形の和音と見
做して完全5度音をレジスタIT2にストアした後、上
述したステップSH14(図15参照)に進む。
【0047】これに対し、4位の音名が有ると、上記ス
テップSH26の判断結果は「YES」となり、ステッ
プSH27に処理を進める。ステップSH27では、4
位の音名とレジスタRTにセットしたルート(根音)と
の音程が減5度もしくは増5度の関係(以下、この音程
関係について減5度音および増5度音と称す)にあるか
否かを判断する。ここで、減5度音や増5度音も存在し
ない時には、判断結果が「NO」となり、前述したステ
ップSH17に処理を進めるが、減5度音あるいは増5
度音のいずれかが存在する時には、判断結果が「YE
S」となり、図15に示すステップSH29以降に処理
を進め、減5度音あるいは増5度音が有る場合のコード
判定を進める。
【0048】すなわち、減5度音があると、ステップS
H29の判断結果は「YES」となり、ステップSH3
0に処理を進め、レジスタIT1に短3度音が格納され
ているか否かを判断する。ここで、レジスタIT1に短
3度音が格納されていると、判断結果は「YES」とな
り、次のステップSH12に処理を進め、減5度音をレ
ジスタIT2にセットする。これにより、ディミニッシ
ュ(dim)がコード判定される。なお、レジスタIT
1に短3度音が格納されていない時には和音が成立たな
いと見做してステップSH17に処理を進める。
【0049】一方、減5度音が無いと、ステップSH3
2に処理を進めてオーギュメント(aug)の成立の可
否について判定すべく、レジスタIT1に長3度音が格
納されているか否かを判断する。そして、長3度音が格
納されていれば、判断結果が「YES」となり、次のス
テップSH33に処理を進め、増5度音をレジスタIT
2にセットする。これにより、オーギュメント(au
g)がコード判定される。なお、レジスタIT1に長3
度音が格納されていない時には和音が成立たないとして
後述するステップSH17に処理を進める。
【0050】マージ処理ルーチンの動作 次に、図16を参照してマージ処理ルーチンの動作につ
いて説明する。以上のようにして、互いに異なるコード
判定方法に従って自動演奏データのコード進行を抽出し
終えると、CPU3は前述したステップSB5(図6参
照)を介して本ルーチンを実行し、図16に示すステッ
プSJ1に処理を進める。ステップSJ1では、ROM
5のコードデータエリアに格納される判定コードデータ
Aおよび判定コードデータBのそれぞれについてタイミ
ングTの順に、コード種とルートから形成されるコード
CHDを読み出し、それをRAM5のワークエリアに書
き込む。
【0051】次いで、ステップSJ2では、上記ステッ
プSJにて読み出したコードデータがデータ終端を表わ
すデータENDであるか否か、つまり、コードデータC
HDを全て読み出し終えたかどうかを判断する。読み出
し終えていなければ、判断結果は「NO」となり、次の
ステップSJ3に処理を進め、上記ステップSJ1にて
RAM5のワークエリアに書き込まれた判定コードデー
タAおよび判定コードデータBの両タイミングTが一致
するか否かを判断する。ここで、両タイミングTが一致
した場合には、判断結果が「YES」となり、次のステ
ップSJ4に処理を進め、判定コードデータB側のコー
ドデータCHDを棄却し、次のステップSJ5にて判定
コードデータA側のタイミングTおよびコードCHDを
マージコードデータエリアに格納する。
【0052】一方、判定コードデータAおよび判定コー
ドデータBの両タイミングTが一致していなければ、上
記ステップSJ3の判断結果は「NO」となり、ステッ
プSJ5に進み、この場合、判定コードデータAのタイ
ミングTおよびコードCHDと、判定コードデータBの
タイミングTおよびコードCHDとをタイミングTの順
に対応するコードデータCHDをそれぞれマージコード
データエリアに格納する。そして、この後、上述したス
テップSJ1に処理を戻し、次のタイミングTとそのコ
ードデータCHDとを読み出し、以後、データ終端を表
わすデータENDが読み出される迄、ステップSJ1〜
SJ5を繰り返して判定コードデータAおよび判定コー
ドデータBの各コード進行結果をマージして行く。な
お、本実施例では、判定コードデータAおよび判定コー
ドデータBの両タイミングTが一致した場合、判定コー
ドデータB側のコードデータCHDを棄却しているが、
これに替えて、判定コードデータB側のコード進行結果
を優先する態様としても構わない。
【0053】以上説明したように、本実施例によれば、
互いに手法が異なる複数のコード判定処理により自動演
奏データのコード進行をそれぞれ別個に抽出しておき、
それら個別に抽出したコード進行結果を1つのコード進
行結果に併合するようにしたので、良好なコード認識精
度を得ることが可能になっている。なお、上述した実施
例では、タイミング重複したコードデータCHDが存在
した場合、いずれか一方側のコード判定処理手法を優先
してコード進行結果を2者択一する態様としたが、これ
に限らず、例えば、3つ以上の異なるコード判定処理手
法にてコード進行結果を求めておき、タイミング重複し
た時に対応するコードデータCHDについて多数決で決
める態様としても良い。
【0054】
【発明の効果】請求項1記載の発明によれば、自動演奏
データからそれぞれ個別の判定手法にて抽出した各コー
ドを併合してコード進行を形成する為、ある演奏区間で
は適正にコード抽出し得るが、他の演奏区間では適正に
抽出できなくなるという弊害を解消でき、良好なコード
判定精度を得ることができる。請求項2記載の発明によ
れば、同一発音タイミング下で異なるコードが抽出され
た場合、所定の判定手法を行うコード判定手段が抽出し
たコードを優先するので、誤ったコード判定を最小化し
得る。
【図面の簡単な説明】
【図1】本発明の実施の一形態であるコード判定装置の
全体構成を示すブロック図である。
【図2】自動演奏データのデータ構造を説明するための
図である。
【図3】コード種判定テーブルTBLの構成を示す図で
ある。
【図4】判定コードデータA,Bおよびマージコードデ
ータの構成を示す図である。
【図5】メインルーチンの動作を示すフローチャートで
ある。
【図6】コード進行認識処理ルーチンの動作を示すフロ
ーチャートである。
【図7】ベーストラック検出処理ルーチンの動作を示す
フローチャートである。
【図8】コード判定処理1ルーチンの動作を示すフロー
チャートである。
【図9】コード判定処理Aルーチンの動作を示すフロー
チャートである。
【図10】コード判定処理Aルーチンの動作を示すフロ
ーチャートである。
【図11】コード判定処理Aルーチンの動作を示すフロ
ーチャートである。
【図12】コード判定処理2ルーチンの動作を示すフロ
ーチャートである。
【図13】コード判定処理Bルーチンの動作を示すフロ
ーチャートである。
【図14】コード判定処理Bルーチンの動作を示すフロ
ーチャートである。
【図15】コード判定処理Bルーチンの動作を示すフロ
ーチャートである。
【図16】マージ処理ルーチンの動作を示すフローチャ
ートである。
【符号の説明】
1 パネルスイッチ 2 表示部 3 CPU(コード判定手段、コード進行形成手段) 4 ROM 5 RAM(コード進行形成手段) 6 テンポクロック発生回路 7 音源 8 サウンドシテム

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 演奏すべき各音の音高および発音タイミ
    ングを含む自動演奏データからコード抽出する装置であ
    って、 判定手法が異なる複数のコード判定手段と、 これらコード判定手段が前記自動演奏データからそれぞ
    れ個別の判定手法にて抽出した各コードを併合してコー
    ド進行を形成するコード進行形成手段とを具備すること
    を特徴とするコード判定装置。
  2. 【請求項2】 前記コード進行形成手段は、同一発音タ
    イミング下で異なるコードが抽出された場合、所定の判
    定手法を行うコード判定手段が抽出したコードを優先す
    ることを特徴とする請求項1記載のコード認識装置。
JP11059226A 1999-03-05 1999-03-05 コード判定装置 Pending JP2000259154A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11059226A JP2000259154A (ja) 1999-03-05 1999-03-05 コード判定装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11059226A JP2000259154A (ja) 1999-03-05 1999-03-05 コード判定装置

Publications (1)

Publication Number Publication Date
JP2000259154A true JP2000259154A (ja) 2000-09-22

Family

ID=13107262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11059226A Pending JP2000259154A (ja) 1999-03-05 1999-03-05 コード判定装置

Country Status (1)

Country Link
JP (1) JP2000259154A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014178396A (ja) * 2013-03-14 2014-09-25 Casio Comput Co Ltd 和音選択装置、この和音選択装置を用いた自動伴奏装置および自動伴奏プログラム
JP2017027087A (ja) * 2016-11-10 2017-02-02 カシオ計算機株式会社 コード選択装置、自動伴奏装置、自動伴奏方法およびコード選択方法
US10062368B2 (en) 2016-09-28 2018-08-28 Casio Computer Co., Ltd. Chord judging apparatus and chord judging method
US10410616B2 (en) 2016-09-28 2019-09-10 Casio Computer Co., Ltd. Chord judging apparatus and chord judging method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014178396A (ja) * 2013-03-14 2014-09-25 Casio Comput Co Ltd 和音選択装置、この和音選択装置を用いた自動伴奏装置および自動伴奏プログラム
US10062368B2 (en) 2016-09-28 2018-08-28 Casio Computer Co., Ltd. Chord judging apparatus and chord judging method
US10410616B2 (en) 2016-09-28 2019-09-10 Casio Computer Co., Ltd. Chord judging apparatus and chord judging method
JP2017027087A (ja) * 2016-11-10 2017-02-02 カシオ計算機株式会社 コード選択装置、自動伴奏装置、自動伴奏方法およびコード選択方法

Similar Documents

Publication Publication Date Title
US5939654A (en) Harmony generating apparatus and method of use for karaoke
JP2003099032A (ja) コード提示装置およびコード提示用コンピュータプログラム
JP7192203B2 (ja) 電子管楽器、その電子管楽器の制御方法及びその電子管楽器用のプログラム
JPH0823746B2 (ja) 自動楽音発生装置
JP2000259154A (ja) コード判定装置
JP2008089975A (ja) 電子楽器
JP4070120B2 (ja) 自然楽器の楽音判定装置
JP6528752B2 (ja) 楽音再生装置、楽音再生方法、プログラムおよび電子楽器
JP2007140000A (ja) 歌唱採点装置および歌唱採点処理のプログラム
JP3239706B2 (ja) 歌唱音声合成装置
JP4998565B2 (ja) 歌唱採点装置および歌唱採点処理のプログラム
JPH08185174A (ja) 音声発生装置
JP2007316416A (ja) カラオケ装置およびカラオケ処理プログラム
JP5145875B2 (ja) 演奏練習支援装置および演奏練習支援処理のプログラム
JP2738217B2 (ja) 電子楽器
JP3173310B2 (ja) ハーモニー生成装置
JPH07152372A (ja) 演奏装置
JPH05204297A (ja) 階名発生装置
JP2022177297A (ja) 電子管楽器、その電子管楽器の制御方法及びその電子管楽器用のプログラム
JPH07104753A (ja) 電子楽器の自動調律装置
JPH08152880A (ja) 電子楽器
JP2001175259A (ja) 楽音発生装置
JPH10333674A (ja) 演奏装置
JPH04243295A (ja) 電子楽器
JPH08185170A (ja) 楽音発生装置