JPH0926790A - 演奏データ分析装置 - Google Patents

演奏データ分析装置

Info

Publication number
JPH0926790A
JPH0926790A JP7175250A JP17525095A JPH0926790A JP H0926790 A JPH0926790 A JP H0926790A JP 7175250 A JP7175250 A JP 7175250A JP 17525095 A JP17525095 A JP 17525095A JP H0926790 A JPH0926790 A JP H0926790A
Authority
JP
Japan
Prior art keywords
chord
section
note
key
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.)
Withdrawn
Application number
JP7175250A
Other languages
English (en)
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 JP7175250A priority Critical patent/JPH0926790A/ja
Priority to US08/678,760 priority patent/US6031171A/en
Publication of JPH0926790A publication Critical patent/JPH0926790A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】演奏データのメロディを検査区間に分割して調
やコードを正確に検出する。 【解決手段】メロディデータをフレーズ(#1〜#N)に分
割し、各フレーズを音符数と音符長に応じて1小節また
は2拍のコードリズム(#11 〜#1M ,〜,#N1 〜#NL )
に分割する。各コードリズム区間から和声音を抽出す
る。抽出した和声音に基づいてコードリズムを必要に応
じて結合し、区間を変更したコードリズム(#11 〜#1
M',〜,#N1 〜#NL')を調検出用の検出区間とする。各
検出区間毎に和声音と音名列を抽出する。抽出した和声
音と音名列に基づいて候補となる調を抽出する。抽出し
た候補調から検出区間の調を確定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子楽器やコンピ
ュータミュージック等における演奏データを分析する装
置に関わり、該演奏データの音符に対応するデータで構
成されたメロディ情報から調やコード(和音)を検出す
る演奏データ分析装置に関する。
【0002】
【従来の技術】従来、電子楽器やコンピュータミュージ
ック等においてメロディにコード(和音)を付けたり調
を検出するために演奏データの分析が行われる。例えば
演奏データの調を検出する方法として、演奏データが示
すメロディの最終の音を主音とみなして調を検出する方
法があるが、メロディの途中で転調する場合に適用でき
ないという問題がある。そこで、メロディを楽節毎など
所定長のブロックに分割してそれぞれのブロックにおけ
る調を検出する方法などがあるが、このメロディを分割
すること自体が分析結果に影響を与えるので、所定長に
分割するだけでは未だに不十分で正確な調検出等を行え
ないという問題がある。
【0003】
【発明が解決しようとする課題】本発明は、演奏データ
のメロディ情報から正確な調検出やコード検出を行うこ
とを課題とする。
【0004】
【課題を解決するための手段】上記の課題を解決するた
めになした本発明の演奏データ分析装置は、音符のシー
ケンスを示す演奏データを入力する演奏データ入力手段
と、前記演奏データ入力手段によって入力された演奏デ
ータを少なくとも音符数、音符長、発音タイミングパタ
ーンのいずれかによって区間に分割する区間分割手段
と、前記区間分割手段によって分割された各区間の演奏
データの調および/またはコードを検出する検出手段
と、を備えることを特徴とする。
【0005】
【作用】本発明の演奏データ分析装置は、入力された演
奏データを、少なくとも音符数、音符長、発音タイミン
グパターンのいずれかによって区間に分割して、この分
割された区間について調および/またはコードを検出す
る。音符数、音符長、発音タイミングパターンはメロデ
ィの調やコードが変化するタイミングの特徴を現してい
るので正確な調やコードを検出することができる。
【0006】なお、本発明の演奏データ分析装置の好ま
しいものは、前記分割されたそれぞれの区間について候
補調を抽出し、該抽出した候補調に基づいて前記演奏デ
ータにおける調を検出するようにしたことを特徴とする
請求項1記載の演奏データ分析装置である。
【0007】さらに、本発明の演奏データ分析装置の好
ましいものは、前記分割されたそれぞれの区間について
候補コードを抽出し、該抽出した候補コードに基づいて
前記演奏データにおけるコードを検出するようにしたこ
とを特徴とする請求項1記載の演奏データ分析装置であ
る。
【0008】
【発明の実施の形態】図2は本発明実施例の演奏データ
分析装置を適用した電子楽器のブロック図であり、CP
U1はプログラムメモリ2に格納されている制御プログ
ラムに基づいてワーキングメモリ3のワーキングエリア
を使用して電子楽器全体の制御を行い、パネルスイッチ
等の操作子4の操作と表示装置5への表示処理により、
通常モードまたはメロディ分析モードで動作する。
【0009】通常モードでは、CPU1は鍵盤6のキー
イベントに応じたキーコード、タッ−データ、キーオン
信号(またはキーオフ信号)等を取り込み、キーコード
とノートオンまたはノートオフを音源7に出力して鍵盤
演奏に対応する発音処理と消音処理を行う。なお、音源
7は上記CPU1から入力されるデータに応じた楽音信
号を発生し、サウンドシステム8は楽音信号のD/A変
換および増幅等を行って楽音を発生する。
【0010】メロディ分析モードでは、先ず、CPU1
は鍵盤6のキーイベントに応じたキーコード、タッチデ
ータ、キーオン信号(またはキーオフ信号)等を取り込
み、これらのデータに基づいて演奏データを生成する。
なお、この演奏データを生成する処理は、鍵盤6による
通常の演奏操作に応じて演奏データを生成するリアルタ
イムレコードのモードまたは鍵盤6と操作子4の操作に
よって1音づつ入力して演奏データを生成するステップ
レコードのモードで行う。
【0011】また、この演奏データから入力演奏時の音
長のバラツキ等を修正(クオンタイズ)して音符の符長
を示す音長データを生成し、音高データ、音長データ、
休符データ、休符長データからなるメロディデータを構
成してデータメモリ9(RAM)に記憶する。そして、
メロディデータを記憶すると、後述詳細に説明するよう
に、CPU1はこの記憶したメロディデータの分析を行
い、メロディデータを分割した区間分析データ、検出調
のデータおよび検出コード(和音)のデータを分析デー
タとしてデータメモリ9に記憶する。
【0012】図3はメロディデータと分析データ中の区
間分析データの各フォーマットを示す図である。同図
(A) に示したメロディデータは、ピッチに対応する音高
データと音符の符長に対応する音長データで一つの音符
を表し、休符データと休符の符長に対応する休符長デー
タで一つの休符を表している。音高データはキーコード
であり、休符データは予め決められた特定の識別コード
である。また、音長データおよび休符長データは、所定
のクロック(例えば4分音符を24個に分割したクロッ
ク)を単位としてクロック数で時間長を表したデータで
ある。
【0013】なお、実際の演奏では、同じ音符でもスラ
ーで弾く場合とスタッカートで弾く場合のように実際の
発音時間が異なることがあるが、前述のように、上記音
長データと休符長データは実際の発音時間に関係なく符
長分のクロック数となるように加工されている。したが
って、メロディデータの先頭から音長データと休符長デ
ータを加算することにより小節線の位置が判明し、これ
によりメロディデータを小節単位やフレーズ単位でも検
索することができる。
【0014】図3(B) に示した区間分析データは、後述
説明するようにメロディデータをメロディの分析結果に
応じてコードリズム区間に分割したものであり、図3
(A) のメロディデータに各コードリズム区間の境界を示
す分割データを挿入したフォーマットで記録される。な
お、メロディデータと区間分析データの最後にはエンド
データが記録される。
【0015】図1は実施例におけるメロディ分析の流れ
を説明する概念図である。まず、データメモリ9のメロ
ディデータをフレーズ(#1〜#N)に分割し、この各フレ
ーズをさらに細かくコードリズム(#11 〜#1M ,〜,#N
1 〜#NL )に分割する。このコードリズムは1小節ある
いは2拍のようにフレーズより小さな検出区間であり、
この分割の仕方は後述説明するようにフレーズの音符数
と音符長に応じて決定する。
【0016】さらに、この実施例では各検出区間から和
声音を抽出し、この和声音に基づいて、調検出用の検出
区間とするためにコードリズムを必要に応じて結合し、
区間を変更したコードリズム(#11 〜#1M',〜,#N1 〜
#NL')とする。この再構成したコードリズムの各検出区
間毎に和声音と音名列を抽出してこの和声音と音名列に
基づいて候補となる調を抽出する。
【0017】なお、実施例では、例えば次表1に示した
ように、各調の音階に対応してその調を特徴つける主要
な音名からなる音名列をI ,II,III ,IVのような度数
で音階音列テーブルとしてプログラムメモリ2に記憶し
ており、和声音と音名列とから候補調を抽出するとき、
この音階音列テーブルの中から検出区間の音名列に含ま
れる音階音列を検索し、この音階音列と検出区間の和声
音とを含む音階の調を候補調とする。そして、この候補
調から検出区間の調を確定する。
【0018】
【表1】
【0019】また、この実施例では、調検出用に分割し
た検出区間とその和声音から検出区間のコード(和音)
を決定するようにしており、コードシーケンスDB(デ
ータベース)10(図2)に記憶されたコード進行デー
タに基づいてコードを検出する。このとき、決定するコ
ードがフレーズの先頭や最後のコードとして適している
か検査しつつ、コード進行データとのマッチングにより
コードを決定する。
【0020】図5はコード進行データの一例を示す図で
ある。コード進行データは代表的なコード進行を示すも
のであり、4つのコードで構成される4コード進行、3
つのコードで構成される3コード進行、2つのコードで
構成される2コード進行がある。また、これらの4コー
ド進行、3コード進行、2コード進行は、それぞれ長調
と短調に対応するコード進行データに分類されている。
さらに、4コード進行については1小節に1つのコード
が対応するような同期型とコードと小節が対応しない非
同期型とに分類されている。これらのコード進行の各コ
ードはImaj のように根音(I) とタイプ(maj) の組み合
わせで示されている。ここで、根音は調の主音を基準と
した度数で表わされているので、コード進行データは1
2音名(C,C♯,D,〜,B)の主音の調に対してそ
れぞれ共通に対応可能となっている。
【0021】また、同類のコード進行データ同志には優
先準位が付けられている。例えば、図5に示した4コー
ド進行(同期)DBの長調用では、「Imaj→VImin →II
m7→V7」(ハ長調の場合、Cmaj →Amin →Dm7→G7
)が最も優先準位が高く、「IIIm7 →IVmin →IIm7→V
7」(ハ長調の場合、Em7→Fmin →Dm7→G7 )、「I
maj→IIm7→V7→Imaj」(ハ長調の場合、Cmaj →Dm7
→G7 →Cmaj )、の順に優先準位が低くなっている。
【0022】図6は実施例におけるメロディ分析モード
での制御プログラムのメロディ分析処理のフローチャー
ト、図7〜図17はサブルーチンのフローチャートであ
り、各フローチャートに基づいて実施例の動作を説明す
る。
【0023】操作子4の操作によりメロディ分析モード
が指定されると、図6のメロディ分析処理が開始され、
ステップS1で図7のデータ入力処理を行ってメロディ
データを記憶し、コードリズム入力があればそれも記憶
し、なければコードリズム自動設定モードにする。ステ
ップS1−1ではコードリズム自動設定モードか否かを
判定し、コードリズム自動設定モードならステップS2
に、そうでなければステップS3に進む。ステップS2
では図8の区間仮分割処理を行ってメロディデータをフ
レーズに分割する。そして、ステップS3で図9のコー
ドリズム区間抽出処理を行って各フレーズを音符数と音
符長に応じてコードリズム区間に分割し、ステップS4
で図10の和声音抽出処理を行うとともにステップS5
で図13の和声音再抽出処理を行って和声音を抽出し、
ステップS6で図14のコードリズム結合処理を行って
調検出用の検出区間としてコードリズムの区間を決定す
る。そして、ステップS7で図15の調検出処理を行っ
て調を確定する。また、ステップS8で図17のコード
検出処理を行ってコードを決定する。
【0024】図7のデータ入力処理では、ステップS1
1で、鍵盤6からの演奏操作に基づいてメロディ入力を
行い、メロディデータをデータメモリ9に記憶する。次
に、ステップS12で、操作子4により4分の4拍子や
4分の3拍子など拍子のデータのマニュアル入力処理を
行い、ステップS13で、操作子4によるコードリズム
区間のマニュアル指定入力が無い場合には自動設定モー
ドにしてコードリズムを自動的に設定する。マニュアル
指定入力が有れば指定されたコードリズム区間の区切り
を記憶する。
【0025】図8の区間仮分割処理では、ステップS2
1で、2分音符以上の音符(2分音符の符長以上に符長
が長い音符)が小節線の直前にあったときその小節線の
位置をフレーズの分割位置とする。フレーズが4小節以
上になったときは、前から4小節毎の小節線の位置をフ
レーズの分割位置として、メロディデータをフレーズに
再分割していく。なお、このとき図3(B) の場合と同様
にメロディデータにコードリズムとは異なるフレーズの
分割データを挿入することにより分割位置を記憶する。
【0026】ここで、後述説明する図9のコードリズム
抽出処理において上記の記憶した各フレーズをメロディ
パターンに応じて1小節または2拍毎のコードリズム区
間にさらに仮分割するが、このときメロディパターンの
検査条件をフレーズ中の音符密度に応じて切り換えるよ
うにする。このために各フレーズに対応するフラグDV
(FN)(FNはフレーズ番号)を用い、次の処理のよ
うに、フレーズの音符密度が低いときフラグDV(F
N)を“1”とし、音符密度が高いときフラグDV(F
N)を“2”として記憶しておく。
【0027】先ず、ステップS22で現在設定されてい
る拍子が4分の3拍子であるか否かを判定し、4分の3
拍子であればステップS23で全てのフレーズに対応す
る全てのフラグDV(all)を“1”にセットして元
のルーチンに復帰し、4分の3拍子でなければ、ステッ
プS24で読出しポインタ(データメモリ9における読
出しポインタ。以下同じ。)のをセットして最初のフレ
ーズに注目してステップS25に進む。
【0028】ステップS25では、フレーズ中の音符の
うち8分音符以上の符長の合計とフレーズの長さの比が
0.6以上であるか否かを判定して、0.6以上であれ
ばフラグDV(FN)を“1”にセットし、それ以外の
ときはフラグDV(FN)を“2”にセットする。そし
て、ステップS26で現在最後のフレーズであるか否か
を判定し、最後のフレーズでなければステップS27で
読出しポインタを次のフレーズに更新してステップS2
5に進み、最後のフレーズであればそのまま元のルーチ
ンに復帰する。
【0029】以上の処理により、4分の3拍子の場合と
4分の3拍子以外で8分音符以上の符長の合計とフレー
ズの長さの比が0.6以上の場合は、フレーズ中に符長
の長い音符が多い(音符密度が低い)とみなし、4分の
3拍子以外で8分音符以上の符長の合計とフレーズの長
さの比が0.6に満たない場合は、符長の短い音符が多
い(音符密度が高い)と見なし、図9のコードリズム抽
出処理でこの音符密度に応じて検査条件を切り換えてメ
ロディパターンを検査する。
【0030】図9において、先ず、ステップS31で読
出しポインタをセットして最初の小節に注目し、ステッ
プS32でDV(FN)=2であるか否かを判定する。
DV(FN)=2であれば、ステップS33でその現在
の小節に含まれる音符が2音以下であるか否かを判定
し、2音以下であればステップS37で分割データを挿
入して1小節のコードリズム区間に分割する。すなわ
ち、音符数に応じて分割する。ステップS33で2音以
下でなければ、ステップS34でトリルパターンを検索
してトリルパターンが1小節全体にわたっているかを検
査する。なお、トリルパターンとは、音高aと音高b
(aとbの音程差は1音以内)の音符がabab…と2
回以上繰り返すパターンである。
【0031】ステップS35の判定で、1小節のトリル
パターンであればステップS37で1小節のコードリズ
ム区間に分割し、1小節のトリルパターンでなければス
テップS36に進む。ステップS36では、1小節の全
ての音符が4分音符であるか否かを判定し、全ての音符
が4分音符であればステップS37で1小節のコードリ
ズム区間に分割し、そうでなければステップS305で
小節内に分割データを挿入して2拍づつのコードリズム
区間に分割し、ステップS306に進む。すなわち、音
符長に応じて分割する。
【0032】一方、ステップS32でDV(FN)=2
でなければ、ステップS38で図4に示した特殊パター
ンを現在の小節内で検索し、ステップS39でこの特殊
パターンがあったか否かを判定する。この特殊パターン
は1拍目から2拍目または3拍目から4拍目にかけて現
れた2拍長の発音タイミングのパターンであり、2拍3
拍間にまたがるようなパターンは無視する。この特殊パ
ターンは使用頻度が高い2拍で1まとまりになってい
る。また、最初に入力したままのメロディデータの原メ
ロディパターンおよび連続する同音高の音を1つの音と
してまとめた結果生じる発音タイミングパターンの場合
のいずれもチェックする。図4(A) の場合は順次進行で
同方向進行のみのという条件付きである。なお、順次進
行とは隣り合う音符の音高差が2度(全音または半音)
で上または下に進行することであり、同方向とは音高が
上がるか下がるかの1方向の場合である。また、図4
(B) ,(c) の場合は無条件である。
【0033】この特殊パターンがあれば2拍長でひとま
とまりのパターンであるのでステップS305で2拍づ
つのコードリズム区間に分割し、特殊パターンが無けれ
ばまだ2拍づつに決めないでステップS301で4拍長
のトリルパターンを検索する。そして、ステップS30
2の判定で4拍長のトリルパターンがあればステップS
37で1小節のコードリズム区間に分割し、4拍長のト
リルパターンが無ければステップS303で全て同音名
であるか否かを判定する。全て同音名であればステップ
S37で1小節のコードリズム区間に分割し、少なくと
も全ては同音名でなければ、ステップS304で8分音
符以下の符長の音符が有るか否かを判定する。そして、
8分音符以下の音符が無ければステップS37で1小節
のコードリズム区間に分割し、8分音符以下の音符があ
ればステップS305で2拍づつのコードリズム区間に
分割する。すなわち、音符長に応じて分割する。
【0034】以上一つの小節についての処理が終了する
と、ステップS306で現在注目している小節が最後の
小節であるか否かを判定し、最後の小節でなければステ
ップS307で読出しポインタを次の小節に更新してス
テップS32に進み、最後の小節であればそのまま元の
ルーチンに復帰する。
【0035】以上の処理により、トリルパターンが1小
節にわたる場合、1小節の全ての音符が4分音符の場
合、1小節に4拍長のトリルパターンがある場合、1小
節で全て同音名であった場合など、1小節内で調の変化
(あるいはコードの変化)が無さそうな場合に1小節の
コードリズム区間に分割される。また、2拍長でひとま
とまりの特殊パターンがある場合や長いトリルパターン
がなかったり音名が分散している場合など、1小節内で
調の変化がありそうな場合に2拍長のコードリズム区間
に分割される。このように、メロディパターンや符長に
応じて各フレーズが1小節または2拍づつのコードリズ
ム区間に仮分割される。なお、上記のコードリズム区間
への分割の際、原メロディパターンの音符が2つのコー
ドリズム区間にまたがるときは、その音符(前のコード
リズム区間の最後の音符)の符長を分割位置で切断し、
後ろのコードリズム区間の最初の音符の前に切断した残
りの符長を示すタイ情報(図3(B) 参照)を付加する。
【0036】次に、図10の和声音抽出処理(および図
11の和声音抽出ルール処理と図12の先取音処理)に
よりメロディの先頭からコードリズム区間の和声音を抽
出し、和声音が抽出できなかったコードリズム区間につ
いては図13の和声音再抽出処理によりメロディの後ろ
から順に和声音を再抽出する。そこで、各コードリズム
区間に対応して和声音が検出されたか否かを示す検出フ
ラグを用い、和声音の未検出状態を検出フラグ“0”で
記憶し、和声音の検出済状態を検出フラグ“1”で記憶
する。
【0037】図10の和声音抽出処理では、ステップS
41で読出しポインタをセットして最初のコードリズム
区間に注目し、ステップS42で注目コードリズム区間
の検出フラグを予め“0”(未検出)にセットしてステ
ップS43に進む。ステップS43では、注目コードリ
ズム区間の先頭が休符であり、かつ直前のコードリズム
区間に音符があり、かつその音符が和声音でないとき、
この休符を直前の音符に吸収させる。すなわち、休符デ
ータを削除し、この休符の符長を直前の音符の符長に加
えて音長データとする。
【0038】次に、ステップS44で、注目コードリズ
ム区間内で音高aと音高bの音符がabaの並びになっ
ているメロディすなわち刺繍音を含むパターンの検出を
行い(ab間,ba間に休符があってもこの休符は無視
する。)、ステップS45で刺繍音パターンが検出され
たか否かを判定する。刺繍音パターンが検出されていた
ら、ステップS46で音高aの音符を和声音、音高bの
音符を刺繍音とし、ステップS47で、注目コードリズ
ム区間の音符で音高aを1度としたときの3度音が有る
か、無ければ6度音が有るか、無ければ増4度音が有る
かを優先準位で検索し、この優先準位で検出された音を
和声音とする。そして、ステップS48でその他の音符
をその他非和声音とし、ステップS49で注目コードリ
ズム区間の検出フラグを“1”とし、ステップS402
に進む。
【0039】このように刺繍音パターンに着目して和声
音を検出する一方、ステップS45で刺繍音パターンが
検出されていなければ、ステップS401で図11の和
声音抽出ルール処理を行って刺繍音パターン以外のルー
ルで和声音を抽出し、ステップS402に進む。そし
て、一つのコードリズム区間についての処理が終了する
と、ステップS402で現在の注目コードリズム区間が
最後のコードリズム区間であるか否かを判定し、最後の
コードリズム区間でなければステップS403で読出し
ポインタを次のコードリズム区間に更新してステップS
42に進み、最後のコードリズム区間であればそのまま
元のルーチンに復帰する。
【0040】図11の和声音抽出ルール処理では、ステ
ップS410で注目コードリズム区間が休符のみである
か否かを判定し、休符のみであればそのまま元のルーチ
ンに復帰し、休符のみでなければステップS411で音
名が1種類であるか否かを判定する。音名が1種類であ
れば、ステップS412で全ての音符を和声音としてス
テップS418に進む。
【0041】一方、ステップS411で音名が1種類で
なければ、ステップS413で図12の先取音処理を行
う。ここで、図12の先取音処理は、例えばコードが変
化するときに後のコードの構成音を前のコードの最終拍
に先行させたアンティシペーションと称する音符に対す
る処理である。先ず、ステップS420で「次のコード
リズム区間の先頭は音符でかつ4分音符以上の符長であ
る」という条件を満足するか否かを判定し、条件を満足
しなければそのまま元のルーチンに復帰し、条件を満足
すればステップS421で現在の注目コードリズム区間
の最後が音符ならばその音符を次のコードリズム区間の
最初の音符として元のルーチンに復帰する。これにより
アンティシペーションの音符が同じコードリズム区間内
に配置される。
【0042】この先取音処理が終了すると図11におい
て、ステップS414で注目コードリズム区間の音符数
が3音であるか否かを判定し、3音あれば、ステップS
415で3音の内で最大の音高差をもつ2音を和声音と
してステップS418に進む。3音でなければ、ステッ
プS416でコードリズム区間の長さの1/2以上の符
長の音符(以下、音符iという。)があるか否かを判定
する。音符iが無ければそのまま元のルーチンに復帰
し、音符iがあれば、ステップS417で音符iを和声
音とするとともに、音符iをコード構成音とするコード
の他のコード構成音があればそれらを和声音としてステ
ップS418に進む。そして、ステップS418でその
他の音符をその他非和声音とし、ステップS419で注
目コードリズム区間の検出フラグを“1”として元のル
ーチンに復帰する。
【0043】以上のように図10の和声音抽出処理、図
11の和声音抽出ルール処理および図12の先取音処理
により、メロディの先頭からコードリズム区間の和声音
が抽出され、和声音が抽出されたコードリズム区間は検
出フラグが“1”となり、和声音が抽出されなかったコ
ードリズム区間は検出フラグが“0”となる。そこで、
図13の和声音再抽出処理によりメロディの最後から検
査して検出フラグが“0”のコードリズム区間について
和声音を再抽出する。
【0044】先ず、ステップS51で読出しポインタを
セットして最後のコードリズム区間に注目し、ステップ
S52で注目コードリズム区間の検出フラグ=0である
か否かを判定する。検出フラグ=0でなければすでに和
声音が検出されているので、ステップS501に進み、
検出フラグ=0であれば和声音が検出されていないので
ステップS54以降で和声音を検出する。
【0045】ステップS54では、注目コードリズム区
間が「2音で、かつ、後ろのコードリズム区間の先頭音
が和声音で、かつ、これら3音が同方向順次進行であ
る」という条件を満足するか否かを判定し、条件を満足
すればステップS55でその3音の先頭音を和声音と
し、ステップS59に進む。
【0046】一方、ステップS54で条件を満足しなけ
れば、ステップS56で、注目コードリズム区間が「2
音で、かつ、後ろのコードリズム区間の音が1音であ
る」という条件を満足するか否かを判定し、条件を満足
すればステップS57で2番目の音符を和声音としてス
テップS59に進み、条件を満足しなければ、ステップ
S58で、注目コードリズム区間の任意の2音の音高差
で3度が有るか、無ければ6度が有るか、無ければ増4
度が有るかを優先準位で調べ、その優先準位で検出され
た音高差をもつ2音を和声音とする。なお、これらの音
高差をもつ組のうち最優先準位の同じ度数の組が2つ以
上あるときは低音側を優先する。そして、ステップS5
9でその他の音符をその他非和声音とする。
【0047】以上のように一つのコードリズム区間につ
いての和声音の検出が終了すると、ステップS501で
現在注目しているコードリズム区間が最初のコードリズ
ム区間であるか否かを判定し、最初のコードリズム区間
でなければステップS53で読出しポインタを直前のコ
ードリズム区間に更新してステップS52に進み、最初
のコードリズム区間であればそのまま元のルーチンに復
帰する。
【0048】以上の処理により、フレーズを1小節また
は2拍づつに仮分割したコードリズム区間の和声音が抽
出される。次に、このコードリズム区間への仮分割が調
検出にとって必要以上に分割されている可能性があるの
で、図14のコードリズム結合処理により、必要以上に
仮分割されたコードリズム区間をそれに含まれる和声音
に基づいて結合する処理を行う。
【0049】図14のコードリズム結合処理では、ステ
ップS61で読出しポインタをセットして最初の小節に
注目し、ステップS62で注目小節が2拍毎のコードリ
ズム区間に分割されているか否かを判定する。2拍毎の
コードリズム区間に分割されていなければ、ステップS
64で注目小節に対してその1小節を検出区間として設
定し、ステップS66に進む。
【0050】一方、注目小節が2拍毎のコードリズム区
間に分割されていれば、ステップS63で「注目小節の
全ての和声音とマッチする構成音のコードが存在し、か
つ、設定されているテンポが4分音符>46(4分音符
を1拍としたとき1分間に46拍を超えるテンポ)であ
る」という条件を満足するか否かを判定する。条件を満
足すれば、ステップS64で注目小節に対してその1小
節を検出区間として設定し、条件を満足しなければ、ス
テップS65で注目小節に対して2拍毎を検出区間とし
て設定する。そして、以上一つの小節についての処理が
終了すると、ステップS66で注目小節が最後の小節で
あるか否かを判定し、最後の小節でなければステップS
67で読出しポインタを次の小節に更新してステップS
62に進み、最後の小節であればそのまま元のルーチン
に復帰する。
【0051】なお、以上のコードリズム結合処理におい
ては、小節が2拍毎のコードリズム区間に仮分割されて
いる場合に、その小節の全ての和声音とマッチする構成
音のコードが存在する場合で、さらに、テンポが比較的
速い場合は、その小節内で調が変化しない可能性が高い
とみなしており、この2拍毎のコードリズム区間を1小
節にまとめて検出区間とするようにしている。
【0052】以上のようにメロディデータを1小節また
は2拍に分割して検出区間を決定すると図15の調検出
処理で調検出を行う。先ず、ステップS71で読出しポ
インタをセットして最初の検出区間に注目し、ステップ
S72で直前の検出区間の調が確定しているか否かを判
定する。直前の検出区間の調が確定していなければ(注
目検出区間が最初の検出区間であって直前の検出区間が
存在しない場合も含む)、ステップS76で図16の候
補調抽出処理を行って検出区間の候補調を抽出し、ステ
ップS77に進む。
【0053】一方、ステップS72で直前の検出区間の
調が確定していれば、ステップS73で注目検出区間に
その確定している調に対する調外音(調の音階に無い
音)が有るか否かを判定し、調外音が有ればステップS
76に進み、調外音が無ければステップS74で注目検
出区間の調を直前の検出区間の調に確定し、ステップS
705に進む。
【0054】ここで、図16の候補調抽出処理を先に説
明する。先ず、ステップS81で注目検出区間の音符の
音名をピックアップしてソートし、ステップS82で、
前掲の表1の音階音列テーブルのうちソートした音名列
に3音名以上含まれる音階音列を検索し、ステップS8
3で、マッチした音階音列があればマッチした各音階音
列と注目検出区間の和声音とが含まれる音階の調を検索
し、検出された調(複数あれば複数の調)を注目検出区
間の候補調として記憶する。そして、ステップS84
で、記憶した候補調から、注目検出区間にその調の5度
音および短7度音がある短調を候補調を除き、元のルー
チンに復帰する。以上のように候補調を抽出すると、図
15のステップS77以降で所定の条件に合えば調を確
定する。
【0055】先ず、ステップS77で、条件(A) 「調が
確定されていない検出区間から注目検出区間までに調の
音階の1度音と7度音とがある長調(maj)の候補調」を
ピックアップし、ステップS78で、条件(B) 「調が確
定されていない検出区間から注目検出区間までに調の音
階の1度音と5度音と7度音とがある短調(minor) の候
補調をピックアップし、ステップS79で、条件(C)
「調が確定されていない検出区間から注目検出区間まで
に調の音階の1度音と6度音と7度音とがある短調(min
or) の候補調をピックアップする。
【0056】次に、ステップS701で条件(A) 〜(C)
でピックアップされた候補調が有るか否かを判定し、候
補調が無ければステップS702で注目検出区間が最後
の検出区間であるか否かを判定する。最後の検出区間で
あれば、ステップS703で、調が確定されていない検
出区間から注目検出区間までを直前に決定された調に確
定して元のルーチンに復帰し、最後の検出区間でなけれ
ば調を確定しないでステップS75に進む。
【0057】一方、条件(A) 〜(C) でピックアップされ
た候補調が有れば、ステップS704で、調が確定され
ていない検出区間から注目検出区間までに候補調として
最も多く挙げられた調を、この確定されていない検出区
間から注目検出区間までの調として確定して記憶し、ス
テップS705に進む。なお、最も多く挙げられた調が
複数有るときは前の検出区間(最後に確定された検出区
間)の調と同じ調、近親調優先という条件により決定す
る。また、前の調が確定されてないときは(A)(B) (C)
の優先準位でピックアップされた調に確定する。
【0058】以上の一つの検出区間についての処理が終
了すると、ステップS705で注目検出区間が最後の検
出区間であるか否かを判定し、最後の検出区間でなけれ
ばステップS75で読出しポインタを次の検出区間に更
新してステップS72に進み、最後の検出区間であれば
元のルーチンに復帰する。
【0059】以上のように、メロディが和声音とメロデ
ィパターンに応じて2拍または1小節の検出区間に分割
され、和声音と音名列とにより検出区間毎に候補調が抽
出され、この候補調に基づき検出区間毎に調が確定され
る。なお、図15のステップS77〜S79、ステップ
S703およびステップS704において、「調が確定
されていない検出区間から注目検出区間まで」とは、直
前の検出区間まで調が確定している場合は注目検出区間
だけを指しており、少なくとも調の確定が可能な場合
は、検出区間毎に調を確定していることになる。
【0060】図17のコード検出処理では、ステップS
91で検出区間が1小節単位で4つ以上連続している部
分がある場合(全て1小節単位の場合も含む)の処理を
行う。すなわち、コード進行データ中の4コード進行
(同期)の4つのコードと4つの検出区間を対応させ、
それぞれの検出区間の和声音が対応するコードの構成音
に含まれ、かつ、検出区間の1つがフレーズの最初また
は最後の場合はフレーズの最初または最後に適したコー
ドであるとき、この4つの検出区間のコードをその4コ
ード進行(同期)の4つのコードにそれぞれ決定する。
なお、このような4コード進行(同期)が複数ある場合
は優先準位に従って決定する。また、フレーズの最初ま
たは最後に適したコード群は予めプログラムメモリ2に
記憶されており、それらと比較することにより適するか
否か判別する。
【0061】次に、ステップS92で2拍の検出区間を
含む部分の処理を行う。すなわち、コードが決定されて
いない検出区間(ステップS91で処理の対象とならな
かった検出区間)に対して、コード進行データ中の4コ
ード進行(非同期)の4つのコードと4つの検出区間を
対応させ、それぞれの検出区間の和声音が対応するコー
ドの構成音に含まれ、かつ、検出区間の1つがフレーズ
の最初または最後の場合はフレーズの最初または最後に
適したコードであるとき、この4つの検出区間のコード
をその4コード進行(非同期)の4つのコードにそれぞ
れ決定する。なお、このような4コード進行(非同期)
が複数ある場合は優先準位に従って決定する。
【0062】次に、ステップS93で、コードが決定さ
れなかった部分で検出区間が少なくとも3つ連続してい
る部分の処理を行う。すなわち、コードが決定されてい
ない検出区間に対して、コード進行データ中の3コード
進行の3つのコードと3つの検出区間を対応させ、それ
ぞれの検出区間の和声音が対応するコードの構成音に含
まれるとき、この3つの検出区間のコードをその3コー
ド進行の3つのコードにそれぞれ決定する。なお、この
ような3コード進行が複数ある場合は優先準位に従って
決定する。
【0063】次に、ステップS94で、コードが決定さ
れなかった部分で検出区間が少なくとも2つ連続してい
る部分の処理を行う。すなわち、コードが決定されてい
ない検出区間に対して、コード進行データ中の2コード
進行の2つのコードと2つの検出区間を対応させ、それ
ぞれの検出区間の和声音が対応するコードの構成音に含
まれるとき、この2つの検出区間のコードをその2コー
ド進行の2つのコードにそれぞれ決定する。なお、この
ような2コード進行が複数ある場合は優先準位に従って
決定する。
【0064】次に、ステップS95で4コード進行、3
コード進行および2コード進行でコードが決定されなか
った部分の処理を行う。すなわち、コードが決定されて
いない各検出区間に対して、それぞれの検出区間の和声
音が対応するコードの構成音に含まれるコードのうち、
優先準位が最も高いコードに決定する。
【0065】なお、上記のコード決定の際には、例えば
次表2に示したようなメロディと競合するコードは除く
ようにする。同表は根音が“C”の場合を示しているが
他の根音の場合でもメロディと競合するコードとは同表
と同じ音程関係にある。
【0066】
【表2】
【0067】この実施例では、フレーズの最初または最
後に適したコードであるかを検査しているが、曲の最初
または最後に適したコードであるかを検査するようにし
てもよい。また、コード進行データはリズム種類、曲
風、テンポ、拍子などにより異なるデータベースとして
もっていてもよい。
【0068】以上のように、メロディデータの音符数と
音符長に応じてフレーズより短い2拍または1小節の検
出区間に分割し、少なくとも検出可能な検出区間につい
ては検出区間毎に調およびコードを検出するので、メロ
ディに忠実で正確な調およびコードの検出を行うことが
できる。
【0069】また、実施例では、メロディデータを区間
仮分割処理でフレーズに分割し、コードリズム区間抽出
処理で1小節または2拍の検出区間に分割するようにし
ているが、1小節単位または1拍単位等に分割するよう
にしてもよい。
【0070】さらに、実施例では、鍵盤から演奏データ
を入力するようにしているが、演奏データあるいはメロ
ディデータを例えばMIDIデータにより外部から供給
するようにしてもよい。
【0071】
【発明の効果】以上説明したように本発明の演奏データ
分析装置によれば、入力された演奏データを、少なくと
も音符数、音符長、発音タイミングパターンのいずれか
によって区間に分割し、該分割された区間について前記
演奏データの調および/またはコードを検出するように
したので、演奏データのメロディ情報から正確な調検出
やコード検出を行うことができる。
【図面の簡単な説明】
【図1】本発明の実施例のメロディ分析の流れを説明す
る概念図である。
【図2】実施例の演奏データ分析装置を適用した電子楽
器のブロック図である。
【図3】実施例におけるメロディデータと区間分析デー
タの各フォーマットを示す図である。
【図4】実施例における2拍長の特殊パターンを示す図
である。
【図5】実施例におけるコード進行データの一例を示す
図である。
【図6】実施例におけるメロディ分析処理のフローチャ
ートである。
【図7】実施例におけるデータ入力処理のフローチャー
トである。
【図8】実施例における区間仮分割処理のフローチャー
トである。
【図9】実施例におけるコードリズム区間抽出処理のフ
ローチャートである。
【図10】実施例における和声音抽出処理のフローチャ
ートである。
【図11】実施例における和声音抽出ルール処理のフロ
ーチャートである。
【図12】実施例における先取音処理のフローチャート
である。
【図13】実施例における和声音再抽出処理のフローチ
ャートである。
【図14】実施例におけるコードリズム結合処理のフロ
ーチャートである。
【図15】実施例における調検出処理のフローチャート
である。
【図16】実施例におけるコード検出処理のフローチャ
ートである。
【図17】実施例におけるベースパターンについての音
高変換処理のフローチャートである。
【符号の説明】
1…CPU、2…プログラムメモリ、3…ワーキングメ
モリ、4…操作子、6…鍵盤、9…データメモリ、10
…コードシーケンスDB。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 音符のシーケンスを示す演奏データを入
    力する演奏データ入力手段と、 前記演奏データ入力手段によって入力された演奏データ
    を少なくとも音符数、音符長、発音タイミングパターン
    のいずれかによって区間に分割する区間分割手段と、 前記区間分割手段によって分割された各区間の演奏デー
    タの調および/またはコードを検出する検出手段と、 を備えることを特徴とする演奏データ分析装置。
JP7175250A 1995-07-11 1995-07-11 演奏データ分析装置 Withdrawn JPH0926790A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7175250A JPH0926790A (ja) 1995-07-11 1995-07-11 演奏データ分析装置
US08/678,760 US6031171A (en) 1995-07-11 1996-07-11 Performance data analyzer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7175250A JPH0926790A (ja) 1995-07-11 1995-07-11 演奏データ分析装置

Publications (1)

Publication Number Publication Date
JPH0926790A true JPH0926790A (ja) 1997-01-28

Family

ID=15992890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7175250A Withdrawn JPH0926790A (ja) 1995-07-11 1995-07-11 演奏データ分析装置

Country Status (1)

Country Link
JP (1) JPH0926790A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007010637A1 (ja) * 2005-07-19 2007-01-25 Kabushiki Kaisha Kawai Gakki Seisakusho テンポ検出装置、コード名検出装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007010637A1 (ja) * 2005-07-19 2007-01-25 Kabushiki Kaisha Kawai Gakki Seisakusho テンポ検出装置、コード名検出装置及びプログラム
US7582824B2 (en) 2005-07-19 2009-09-01 Kabushiki Kaisha Kawai Gakki Seisakusho Tempo detection apparatus, chord-name detection apparatus, and programs therefor

Similar Documents

Publication Publication Date Title
JP3704980B2 (ja) 自動作曲装置と記録媒体
US5852252A (en) Chord progression input/modification device
US6417437B2 (en) Automatic musical composition method and apparatus
US6294720B1 (en) Apparatus and method for creating melody and rhythm by extracting characteristic features from given motif
US6100462A (en) Apparatus and method for generating melody
JP5293710B2 (ja) 調判定装置および調判定プログラム
US6486390B2 (en) Apparatus and method for creating melody data having forward-syncopated rhythm pattern
JP3196604B2 (ja) 和音分析装置
Pardo et al. Automated partitioning of tonal music
JP3216529B2 (ja) 演奏データ分析装置および演奏データ分析方法
US6031171A (en) Performance data analyzer
JP3591444B2 (ja) 演奏データ分析装置
JPH0926790A (ja) 演奏データ分析装置
JPH0926789A (ja) 演奏データ分析装置
US9384716B2 (en) Automatic key adjusting apparatus and method, and a recording medium
JP3163654B2 (ja) 自動伴奏装置
JP2727569B2 (ja) 自動調決定装置
JP2003216156A (ja) 和音検出装置及びプログラム
JP3807333B2 (ja) メロディ検索装置およびメロディ検索プログラム
JP3316547B2 (ja) 和音付装置
JP3163653B2 (ja) 調性判定装置
ADAMoVá Eva FeRkoVá Silvia ADAMoVá Michal ŠukoLA
JP3364940B2 (ja) 自動作曲機
JP3225935B2 (ja) 自動運指付け装置および記憶媒体
JP2000163064A (ja) 楽曲生成装置および楽曲生成プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021001