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

演奏データ分析装置

Info

Publication number
JP2001142462A
JP2001142462A JP2000313698A JP2000313698A JP2001142462A JP 2001142462 A JP2001142462 A JP 2001142462A JP 2000313698 A JP2000313698 A JP 2000313698A JP 2000313698 A JP2000313698 A JP 2000313698A JP 2001142462 A JP2001142462 A JP 2001142462A
Authority
JP
Japan
Prior art keywords
chord
section
data
note
determined
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
JP2000313698A
Other languages
English (en)
Other versions
JP3591444B2 (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 JP2000313698A priority Critical patent/JP3591444B2/ja
Publication of JP2001142462A publication Critical patent/JP2001142462A/ja
Application granted granted Critical
Publication of JP3591444B2 publication Critical patent/JP3591444B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 演奏データに、つながりのよい和音進行を付
与する。 【解決手段】 データメモリのメロディデータをフレー
ズ(#1〜#N)に分割し、さらに細かくコードリズム(#1
1 〜#1M ,〜,#N1 〜#NL )に分割する。各コードリズ
ム区間の和声音に基づいてコードリズムを必要に応じて
結合して検出区間(#11 〜#1M',〜,#N1 〜#NL')とす
る。再構成したコードリズムの各検出区間毎に和声音と
音名列を抽出して調を検出する。検出区間とその和声音
から検出区間のコード(和音)を決定する。コードシー
ケンスデータベースに記憶されたコード進行データに基
づいてコードを検出する。決定するコードがフレーズの
先頭や最後のコードとして適しているか検査しつつ、コ
ード進行データとのマッチングによりコードを決定す
る。コード進行データの候補が複数ある場合は優先順位
に従って決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子楽器やコンピ
ュータミュージック等における演奏データを分析する装
置に関わり、入力された演奏データから和音進行を検出
する演奏データ分析装置に関する。
【0002】
【従来の技術】従来、電子楽器やコンピュータミュージ
ック等においてメロディにコード(和音)を付けたり編
曲等を行うために、演奏データから和音を検出する必要
がある。このような演奏データの和音を検出する方法と
して、演奏データの構成音から和音を解析することが行
われる。しかし、和音を一つずつ付与していくと、連続
する和音の間で、つながりが悪くなる可能性がある。
【0003】
【発明が解決しようとする課題】本発明は、音符のシー
ケンスを示す演奏データに、つながりのよい和音進行を
付与することを課題とする。
【0004】
【課題を解決するための手段】上記の課題を解決するた
めになした本発明の請求項1記載の演奏データ分析装置
は、音符のシーケンスを示す演奏データを入力する演奏
データ入力手段と、前記演奏データ入力手段によって入
力された演奏データを所定の区間に分割する区間分割手
段と、予め多数の和音進行を記憶した和音進行データベ
ースと、前記和音進行データベースに記憶されている和
音進行のうちから、前記区間分割により分割された所定
区間の演奏データに適合する和音進行を抽出する和音進
行抽出手段と、を備えることを特徴とする。
【0005】本発明の請求項2記載の演奏データ分析装
置は、請求項1の構成を備え、前記和音進行データベー
スに記憶されている複数の和音進行のそれぞれには優先
順位が付与されており、前記所定区間の演奏データに適
合する和音進行が複数存在するとき、前記優先順位に従
った和音進行を抽出することを特徴とする。
【0006】請求項1の演奏データ分析装置によれば、
和音進行データベースから、所定区間の演奏データに適
合する和音進行を抽出するので、典型的な和音進行の中
から和音進行を選択することにより、連続する和音の間
で音楽的につながりのよい和音進行を付与することがで
きる。
【0007】また、請求項2の演奏データ分析装置によ
れば、請求項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拍のようにフレーズより小さな区間で
あり、コード進行において1つのコードが占める単位区
間を意味する。この分割の仕方は後述説明するようにメ
ロディの特徴に応じて決定する。
【0016】次に、この各コードリズム区間から和声音
を抽出し、この和声音に基づいて、調検出用の検出区間
とするためにコードリズムを必要に応じて結合し、区間
を変更したコードリズム(#11 〜#1M',〜,#N1 〜#N
L')とする。この再構成したコードリズムの各検出区間
毎に和声音と音名列を抽出してこの和声音と音名列に基
づいて候補となる調を抽出する。
【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
に、そうでなければステップS4に進む。ステップ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)=1であるか否かを判定する。
DV(FN)=1であれば(音符密度が低い)、ステッ
プ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)=1
でなければ(音符密度が高い)、ステップ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小節のコードリズム区間に分割し、少なくと
も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つのコードにそれぞれ決定する。
このとき、長調用のDBと短調用のDBのどちらを用い
るかは、前述のようにして求めた調(メジャまたはマイ
ナ)によって決定され、調の主音を考慮することによ
り、度数で表された和音を実和音に変換することができ
る。なお、このような4コード進行(同期)が複数ある
場合は優先順位に従って決定する。また、フレーズの最
初または最後に適したコード群は予めプログラムメモリ
2に記憶されており、それらと比較することにより適す
るか否か判別する。ここで、ある4つの検出区間におい
て、4コード進行(同期)の4つのコードと4つの検出
区間の対応がとれたとすると、次はそれに続く新たな4
つの検出区間について同様の処理を行う。一方、4つの
コードと4つの検出区間との対応がとれなかった場合、
4つの検出区間を後方へ1つすらし、前回の後ろ3区間
+新たな1区間の計4区間で同様の処理を行う。このよ
うな処理を繰り返し実行することによって、全検出区間
について4コード進行(同期)のコードが当てはまる場
合を確定していく。
【0061】次に、ステップS92で前述S91でコー
ドを決定することができなかった検出区間の処理を行
う。すなわち、コードが決定されていない検出区間(ス
テップS91で処理の対象とならなかった検出区間)に
対して、コード進行データ中の4コード進行(非同期)
の4つのコードと4つの検出区間を対応させ、それぞれ
の検出区間の和声音が対応するコードの構成音に含ま
れ、かつ、検出区間の1つがフレーズの最初または最後
の場合はフレーズの最初または最後に適したコードであ
るとき、この4つの検出区間のコードをその4コード進
行(非同期)の4つのコードにそれぞれ決定する。な
お、このような4コード進行(非同期)が複数ある場合
は優先順位に従って決定する。ここで、非同期とは4つ
のコード進行が必ずしも4つの検出区間と対応するとは
限らないことを意味する。すなわち、1つのコードが複
数の検出区間に渡ってもよいということである。例え
ば、C→Am →Dm7→G7 という非同期コード進行があ
ったとする。このコード進行を、8つの検出区間に対応
させ、C→C→C→C→Am →Am →Dm7→G7 のよう
に割り振ってもよい。したがって、前述のステップS9
1において決定できなかった連続する4以上の検出区間
に対して非同期コード進行を対応させる場合、まず最初
の4区間について該区間に対応するコード進行があるか
否かを判断し、あればそのコード進行に決定し、無けれ
ば区間を1つ増やして5区間とする。そしてこの5区間
を任意に4区間にグループ化し、グループ化された4区
間についてコード進行との一致を判断する。以降、一致
するコード進行がないと判断される毎に区間を1つずつ
増やして同様の処理を行う。そして、連続する区間の最
後まで達しても一致するコード進行が見つからなかった
場合は、区間を後方へ1つずらし、同様の処理を行う。
これを連続する区間の最後4区間に達するまで繰り返し
行う。それでも一致するコード進行が見つからなかった
ときは次のステップS93へと進む。
【0062】次に、ステップS93で、コードが決定さ
れなかった部分で検出区間が少なくとも3つ連続してい
る部分の処理を行う。すなわち、コードが決定されてい
ない検出区間に対して、コード進行データ中の3コード
進行の3つのコードと3つの検出区間を対応させ、それ
ぞれの検出区間の和声音が対応するコードの構成音に含
まれるとき、この3つの検出区間のコードをその3コー
ド進行の3つのコードにそれぞれ決定する。なお、この
ような3コード進行が複数ある場合は優先順位に従って
決定する。3コード進行の場合は、4コード進行(同
期)と同様に、検出区間との対応がとれなかった場合に
は、検出区間を後方へ1つずらしながら、処理を繰り返
す。
【0063】次に、ステップS94で、コードが決定さ
れなかった部分で検出区間が少なくとも2つ連続してい
る部分の処理を行う。すなわち、コードが決定されてい
ない検出区間に対して、コード進行データ中の2コード
進行の2つのコードと2つの検出区間を対応させ、それ
ぞれの検出区間の和声音が対応するコードの構成音に含
まれるとき、この2つの検出区間のコードをその2コー
ド進行の2つのコードにそれぞれ決定する。なお、この
ような2コード進行が複数ある場合は優先順位に従って
決定する。この2コード進行の場合も4コード進行(同
期)の場合と同様の処理手順である。
【0064】次に、ステップS95で4コード進行、3
コード進行および2コード進行でコードが決定されなか
った部分の処理を行う。すなわち、コードが決定されて
いない各検出区間に対して、それぞれの検出区間の和声
音が対応するコードの構成音に含まれるコードのうち、
優先順位が最も高いコードに決定する。この処理によ
り、コード未決定区間はなくなり、全ての区間のコード
決定が完了する。
【0065】なお、上記のコード決定の際には、例えば
次表2に示したようなメロディと競合するコードは除く
ようにする。同表は根音が“C”の場合を示しているが
他の根音の場合でもメロディと競合するコードとは同表
と同じ音程関係にある。
【0066】
【表2】
【0067】この実施例では、フレーズの最初または最
後に適したコードであるかを検査しているが、曲の最初
または最後に適したコードであるかを検査するようにし
てもよい。また、コード進行データはリズム種類、曲
風、テンポ、拍子などにより異なるデータベースとして
もっていてもよい。
【0068】以上のように、メロディデータの和声音と
音名列とを抽出し、この和声音と音名列とを含む音階か
ら調を検出するので、メロディに忠実な調検出を行うこ
とができる。また、メロディデータを和声音とメロディ
パターンに応じてフレーズより短い2拍または1小節の
検出区間に分割し、少なくとも検出可能な検出区間につ
いては検出区間毎に調を検出するので、正確な調検出を
行うことができる。
【0069】なお、実施例では、コードリズム区間を2
拍または1小節に分割するようにしているが、この分割
の長さをテンポに応じて切り換えるようにしてもよい。
【0070】また、実施例では、メロディデータを区間
仮分割処理でフレーズに分割し、コードリズム区間抽出
処理で1小節または2拍の検出区間に分割するようにし
ているが、予め決められた区間(1小節単位、1拍単位
等)に分割するようにしてもよい。
【0071】さらに、実施例では、鍵盤から演奏データ
を入力するようにしているが、演奏データあるいはメロ
ディデータを例えばMIDIデータにより外部から供給
するようにしてもよい。このとき、MIDIや各種ネッ
トワークなどの通信インタフェース、FDやCD−RO
Mなどの記憶媒体からメロディデータを供給することが
できる。また、本願実施例では制御プログラムはプログ
ラムメモリに格納されているものとしているが、外部記
憶媒体にプログラムを格納しておき、必要に応じてCP
Uを有する装置にロードさせて用いるようにしてもよ
い。
【0072】
【発明の効果】以上説明したように本発明の請求項1の
演奏データ分析装置によれば、和音進行データベースか
ら、所定区間の演奏データに適合する和音進行を抽出す
るので、典型的な和音進行の中から和音進行を選択する
ことにより、連続する和音の間で音楽的につながりのよ
い和音進行を付与することができる。
【0073】また、請求項2の演奏データ分析装置によ
れば、請求項1の効果に加えて、和音進行としての優先
順位に従う和音進行を抽出するので、さらにつながりの
よい和音進行を付与することができる。
【図面の簡単な説明】
【図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 (2)

    【特許請求の範囲】
  1. 【請求項1】 音符のシーケンスを示す演奏データを入
    力する演奏データ入力手段と、 前記演奏データ入力手段によって入力された演奏データ
    を所定の区間に分割する区間分割手段と、 予め多数の和音進行を記憶した和音進行データベース
    と、 前記和音進行データベースに記憶されている和音進行の
    うちから、前記区間分割により分割された所定区間の演
    奏データに適合する和音進行を抽出する和音進行抽出手
    段と、を備えることを特徴とする演奏データ分析装置。
  2. 【請求項2】 前記和音進行データベースに記憶されて
    いる複数の和音進行のそれぞれには優先順位が付与され
    ており、前記所定区間の演奏データに適合する和音進行
    が複数存在するとき、前記優先順位に従った和音進行を
    抽出することを特徴とする請求項1記載の演奏データ分
    析装置。
JP2000313698A 1995-07-11 2000-10-13 演奏データ分析装置 Expired - Fee Related JP3591444B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000313698A JP3591444B2 (ja) 1995-07-11 2000-10-13 演奏データ分析装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP17524895 1995-07-11
JP7-175248 1995-07-11
JP2000313698A JP3591444B2 (ja) 1995-07-11 2000-10-13 演奏データ分析装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP17957396A Division JP3216529B2 (ja) 1995-07-11 1996-07-09 演奏データ分析装置および演奏データ分析方法

Publications (2)

Publication Number Publication Date
JP2001142462A true JP2001142462A (ja) 2001-05-25
JP3591444B2 JP3591444B2 (ja) 2004-11-17

Family

ID=26496577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000313698A Expired - Fee Related JP3591444B2 (ja) 1995-07-11 2000-10-13 演奏データ分析装置

Country Status (1)

Country Link
JP (1) JP3591444B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008538827A (ja) * 2005-04-25 2008-11-06 ガオンダ コーポレイション オーディオデータの自動生成方法及びこれを利用した使用者端末機及び記録媒体
US8492636B2 (en) 2010-09-15 2013-07-23 Yamaha Corporation Chord detection apparatus, chord detection method, and program therefor
JP2015031738A (ja) * 2013-07-31 2015-02-16 株式会社河合楽器製作所 コード進行推定検出装置及びコード進行推定検出プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008538827A (ja) * 2005-04-25 2008-11-06 ガオンダ コーポレイション オーディオデータの自動生成方法及びこれを利用した使用者端末機及び記録媒体
US8492636B2 (en) 2010-09-15 2013-07-23 Yamaha Corporation Chord detection apparatus, chord detection method, and program therefor
JP2015031738A (ja) * 2013-07-31 2015-02-16 株式会社河合楽器製作所 コード進行推定検出装置及びコード進行推定検出プログラム

Also Published As

Publication number Publication date
JP3591444B2 (ja) 2004-11-17

Similar Documents

Publication Publication Date Title
JP3704980B2 (ja) 自動作曲装置と記録媒体
EP1125273B1 (en) Fast find fundamental method
US9018505B2 (en) Automatic accompaniment apparatus, a method of automatically playing accompaniment, and a computer readable recording medium with an automatic accompaniment program recorded thereon
US6417437B2 (en) Automatic musical composition method and apparatus
JP2000514571A (ja) 自動即興演奏システム及び方法
US5852252A (en) Chord progression input/modification device
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
JP3216529B2 (ja) 演奏データ分析装置および演奏データ分析方法
JP3591444B2 (ja) 演奏データ分析装置
US6031171A (en) Performance data analyzer
JPH0990952A (ja) 和音分析装置
US9384716B2 (en) Automatic key adjusting apparatus and method, and a recording medium
JPH0926790A (ja) 演奏データ分析装置
JPH0926789A (ja) 演奏データ分析装置
Sutcliffe et al. The C@ merata task at MediaEval 2016: Natural Language Queries Derived from Exam Papers, Articles and Other Sources against Classical Music Scores in MusicXML.
JP3163654B2 (ja) 自動伴奏装置
JP3807333B2 (ja) メロディ検索装置およびメロディ検索プログラム
JPH05346781A (ja) 調検出装置および自動編曲装置
JP3163653B2 (ja) 調性判定装置
JP3316547B2 (ja) 和音付装置
JP3364940B2 (ja) 自動作曲機
JP2000163064A (ja) 楽曲生成装置および楽曲生成プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040816

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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: 20070903

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees