(57)【要約】【課題】演奏情報に対して、ケーデンスを考慮した音楽的な推定により、より正しいコードの進行を推定して検出可能としたコード進行推定検出装置を得る。【解決手段】演奏情報からコードを推定するコード進行推定検出装置であって、前記演奏情報から特定区間毎に複数のコードと各コードの尤度を検出するコード検出部３２と、前記特定区間毎の各コードのコード機能を推定するコード機能推定部３４と、前記コード機能推定部３４によって得られたコード機能の進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定部３５と、各ケーデンスのコード機能にコードを割り当てるコード割当部３７と、を備える。【選択図】図２
2015031738.tif 000002
【特許請求の範囲】
【請求項１】
演奏情報又は音響信号からコードを推定するコード進行推定検出装置であって、
前記演奏情報又は音響信号の全体から曲の調を検出する調検出手段と、
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手段と、
前記特定区間毎に前記調検出手段で検出された調に応じて分類された各コードのコード機能を推定するコード機能推定手段と、
前記コード機能推定手段によって得られたコード機能の進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手段と、
各ケーデンスのコード機能にコードを割り当てるコード割当手段と、
を備えることを特徴とするコード進行推定検出装置。
【請求項２】
前記コード機能確定手段は、基準ケーデンスを複数記憶した基準ケーデンス記憶手段を備え、前記コード機能進行と前記基準ケーデンスを比較し、一致した場合、その部分のコード機能を基準ケーデンスと同じコード機能として確定する請求項１に記載のコード進行推定検出装置。
【請求項３】
前記コード機能確定手段は、前記基準ケーデンスと前記コード機能進行を比較し、一致しない場合、前記コード機能進行のコード機能を、前記基準ケーデンスに一致するようにコード機能進行のコード機能を変更する請求項１に記載のコード進行推定検出装置。
【請求項４】
前記コード機能確定手段により最終的に決定されるメインコード進行、及び、該メインコード進行とは異なる複数のコード進行候補を表示可能とするコード進行表示手段を備え、前記コード進行候補に表示されたコードをメインコード進行に割り当て可能とした請求項１に記載のコード進行推定検出装置。
【請求項５】
指定された特定範囲の演奏情報又は音響信号を演奏し、コードを内蔵音源で演奏する演奏手段を備え、
前記演奏情報又は音響信号と、前記コード進行表示手段に表示されたメインコード進行の各コードを同時に演奏可能とした請求項４に記載のコード進行推定検出装置。
【請求項６】
演奏情報又は音響信号からコード進行を推定するプログラムであって、
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手順と、
各コードのコード機能を推定するコード機能推定手順と、
推定されたコード機能進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手順と、
各ケーデンスのコード機能にコードを割り当てるコード割当手順と、
をコンピュータに実行させることを特徴とするコード進行推定検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏情報又は音響信号を分析し、使用されているコード進行を推定するコード進行推定検出装置に関し、特に、音響信号による演奏に対して、予め記憶された基本ケーデンス（コード機能の進行に関する指標）に基づいてコード進行を推定するコード進行推定検出装置及びコード進行推定検出プログラムに関する。
【背景技術】
【０００２】
ポピュラーやロック系の音楽を小編成のバンドで演奏する場合、和音から構成されるコードが記載されたコード譜やリードシートと呼ばれるメロディとコード進行のみが書かれた楽譜を使用して演奏が行われる。楽曲のコード進行を採譜する作業は、特別な音楽的知識を有する専門家でないと困難であるため、演奏音が収録された音楽ＣＤ等の音源から出力される音響信号に基づいて、コンピュータを使用したコード検出装置によりコードを検出することが行われていた。
【０００３】
この種のコード検出装置は、例えば特許文献１に記載されるように、電子情報としての音響信号が入力されることで、所定の時間毎の各音階音のレベル、平均的なビート間隔と各ビートの位置、拍子と小節線位置、ベース音、各小節のコードをそれぞれ検出するものである。コードを検出する際には、複数のコード候補が検出され、検出されたコードはコンピュータの内蔵音源でコード演奏が可能なように構成されている。
【０００４】
コード検出装置によれば、音響信号における一つのコード検出区間（小節など）に対して複数のコードを検出するとともに、そのコードの演奏音の強さや持続時間等から尤度（確からしさ）を決定し、尤度が最も高いコードをその区間のコードとして検出することが行われる。従って、コード検出の対象となった楽曲のコード進行は、尤度が高いコードが羅列されたものとなる。
一方、一般的に音楽のコード進行は、複数のケーデンスの組み合わせで成り立っている場合が多い。ケーデンスとはコードの機能の進行を示す指標であり、代表的なものがいくつかある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４７６７６９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来のコード検出装置で検出されたコード進行は、コードの尤度のみにより決められたものであるため、本来のケーデンスと異なるコードとなっている場合があるという課題が存在する。
また、上述した従来の手法では、音楽的な（ケーデンスを考慮した）推定により、コード進行を検出することは行われていなかった。
【０００７】
本発明は上記事情に鑑みて提案されたもので、演奏情報又は音響信号に対して、ケーデンスを考慮した音楽的な推定により、より正しいコードの進行を推定して検出可能としたコード進行推定検出装置及びコード進行推定検出プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するため本発明の請求項１は、演奏情報又は音響信号において演奏されているコードを推定して検出するコード進行推定検出装置であって、次の各構成を含むことを特徴としている。
前記演奏情報又は音響信号の全体から曲の調を検出する調検出手段。
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手段。
前記特定区間毎に前記調検出手段で検出された調に応じて分類された各コードのコード機能を推定するコード機能推定手段。
前記コード機能推定手段によって得られたコード機能の進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手段。
各ケーデンスのコード機能にコードを割り当てるコード割当手段。
【０００９】
請求項２は、請求項１のコード進行推定検出装置において、前記コード機能確定手段は、基準ケーデンスを複数記憶した基準ケーデンス記憶手段を備え、前記コード機能進行と前記基準ケーデンスを比較し、一致した場合、その部分のコード機能を基準ケーデンスと同じコード機能として確定することを特徴としている。
【００１０】
請求項３は、請求項１のコード進行推定検出装置において、前記コード機能確定手段は、前記基準ケーデンスと前記コード機能進行を比較し、一致しない場合、前記コード機能進行のコード機能を、前記基準ケーデンスに一致するようにコード機能進行のコード機能を変更することを特徴としている。
【００１１】
請求項４は、請求項１のコード進行推定検出装置において、前記コード機能確定手段により最終的に決定されるメインコード進行、及び、該メインコード進行とは異なる複数のコード進行候補を表示可能とするコード進行表示手段を備え、前記コード進行候補に表示されたコードをメインコード進行に割り当て可能としたことを特徴としている。
【００１２】
請求項５は、請求項４のコード進行推定検出装置において、指定された特定範囲の演奏情報又は音響信号を演奏し、コードを内蔵音源で演奏する演奏手段を備え、
前記演奏情報又は音響信号と、前記コード進行表示手段に表示されたメインコード進行の各コードを同時に演奏可能としたことを特徴としている。
【００１３】
請求項６は、演奏情報又は音響信号からコード進行を推定するコード進行推定検出プログラムであって、
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手順と、
各コードのコード機能を推定するコード機能推定手順と、
推定されたコード機能進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手順と、
各ケーデンスのコード機能にコードを割り当てるコード割当手順と、
をコンピュータに実行させることを特徴としている。
【発明の効果】
【００１４】
本発明のコード進行推定検出装置及びコード進行推定検出プログラムによれば、演奏情報又は音響信号より検出された各コードの機能を推定し、予め記憶された基準ケーデンスに沿ったコードを選択することで、より音楽的なコード進行を得ることができる。
【００１５】
また、同じケーデンスに対して、異なるコードを選択可能とすることで、複数のコード進行を提案することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のコード進行推定検出装置のハードウエア構成を示すブロック図である。
【図２】本発明のコード進行推定検出装置の主要な構成を示すブロック図である。
【図３】コード進行推定検出装置の他の実施例における主要な構成を示すブロック図である。
【図４】自動演奏装置の表示部に演奏情報に対応して表示されたトラック画面である。
【図５】本発明によるコード進行推定の手順を示すフローチャートである。
【図６】コード進行推定検出装置で検出された検出コードデータ配列の一例を示す表である。
【図７】コード進行推定検出装置で検出された各小節のコード候補に対するコード機能と、各小節に対するコード機能進行の対応関係を示す表である。
【図８】コード進行推定検出装置のコード進行推定におけるコード機能確定処理の詳細手順を示すフローチャートである。
【図９】コード進行推定検出装置のコード進行推定におけるコード割当処理の詳細手順を示すフローチャートである。
【図１０】コード進行推定検出装置のコード進行表示手段に表示されるコード進行画面である。
【図１１】自動演奏装置の表示部に演奏情報に対応して表示されたトラック画面である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら本発明の実施形態の一例に係るコード進行推定検出装置について説明する。
【００１８】
コード進行推定検出装置のハードウエアは、パーソナルコンピュータ等の汎用情報処理装置によって実現することができる。図１は、コンピュータ上に構築されたコード進行推定検出装置のハードウエア構成を示すブロック図であり、バス１０に対して、ディスプレイ１１、マウス１２、キーボード１３、ＲＯＭ１４、ＲＡＭ１５、ＣＰＵ１６、ＨＤＤ１７、ディスクドライブ１８、ＭＩＤＩインターフェイス１９、オーディオインターフェイス２０、ネットワークインターフェイス２１を接続して構成されている。
【００１９】
コンピュータのＨＤＤ１７には、ＭＩＤＩインターフェイス１９、オーディオインターフェイス２０若しくはネットワークインターフェイス２１を介して音響信号を取り込んでコードを検出するとともに、予め記憶された複数のケーデンスを基にコード機能を推定することで得られるコード進行の推定を行うためのコード進行推定検出プログラムが、ディスクドライブ１８に装着された記録媒体からインストールされ、若しくはインターネットを介して所定のＵＲＬよりダウンロードされている。
【００２０】
ＣＰＵ１６は、上記の手順によりインストール又はダウンロードされた所定の制御プログラム（コード推定検出プログラム）に従って各種処理（各ステップ）を実行し、コード推定装置全体を制御するものであり、演奏情報記憶部３１、コード検出部３２、コード機能推定部３４、コード割当部３７及びコード演奏情報ファイル作成部３８を要部機能として備えることで、取り込んだ演奏情報を記憶し、記憶した情報からコード進行を推定してディスプレイ（表示部）１１に表示可能とするとともに、再生デバイス（音再生手段）４６を備えることで、ＲＡＭ１５にインストール又はダウンロードされたソフトウェア音源４２を使用して推定されたコードに相当するコード音を演奏（コード演奏）可能としている。
コード推定検出プログラム及びソフトウェア音源は、実行時においてＲＡＭ１５に読込まれている。
【００２１】
図２は、コード進行推定検出プログラムを組み込むことでコンピュータ上に構築されたコード進行推定検出装置の主要構成を示すブロック図である。コード進行推定検出装置は、演奏情報からコードを検出するコード進行推定手段３０と、検出されたコードによるコード演奏を行う演奏手段（自動演奏装置）４０により構成されている。
演奏情報は、ノートデータ（音符）を含む情報で、発音イベント（発音開始時間と強さ）と発音停止イベント（発音停止時間）で１つのノートデータを表現している。演奏情報は、音響信号から作成したり、MIDIインターフェイスから入力したり、コンピュータ又はネットワーク上のスタンダードMIDIファイルのような演奏情報ファイルから読み込むことで取得する。
【００２２】
コード進行推定手段３０は、演奏情報が記憶された演奏情報記憶部３１と、演奏情報に対してコードを検出するコード検出部３２と、演奏情報の全体から曲の調を検出する調検出部３３と、特定区間毎の各コードのコード機能を推定するコード機能推定部３４と、コード機能進行を決定するコード機能確定部３５と、コード機能にコードを割り当てるコード割当部３７と、検出されたコードの情報を記憶するコード演奏情報ファイル作成部３８と、演奏情報から検出されたコード等の検出結果を液晶ディスプレイ等で表示する表示部３９により構成されている。
【００２３】
コード検出部３２は、演奏情報から特定区間毎に複数のコードと各コードの尤度を検出する。コードの尤度とは、コードの確からしさを示す指標であり、「音の強さ」や「音の持続時間の長さ」等から算出される既知の値である。演奏情報からコードを検出する一般的な手法としては、検出区間で発音している音と、コード構成音を照らし合わせてコードを推定する。演奏情報においては、強く、持続時間が長いノートを含んでいるコードの尤度が高くなる。
【００２４】
コード機能推定部３４により推定されるコード機能とは、コードの性質を表現するケーデンスであり、「トニック」「ドミナント」「サブドミナント」等が存在する。
また、コード機能は、調検出部３３で検出された調に応じて、検出されたコード名を各コード機能に分類する。分類ルールは、調とディグリーNo（ド〜シに１〜７を割り当てたもの）で決定される。
【００２５】
コード機能の「トニック」は、キー(調)に対して主和音となるコードであるトニック・コードを意味する。最も安定感のあるコードであり、通常、曲の始めや終わりに使用されるコードとなる。例えばキーが「Ｃ」であればトニックは「Ｃ」や「ＣＭ７」となる。曲の調を決定づける最も重要なコードである。
コード機能の「ドミナント」は、主音に対して完全５度上の音であり、属音とも言う。この音をルートとしたコードをドミナント・コードといい、ドミナントと略される。例えばキーが「Ｃ」であればドミナントは「Ｇ」となる。トニックへ進行しようとする力が働き、通常フレーズの終わりや曲の終わりでは、ドミナントからトニックへ進行する。
コード機能の「サブドミナント」は、主音に対して完全４度上の音であり、下属音とも言う。この音をルートとしたコードをサブドミナント・コードといい、サブドミナントと略される。例えばキーが「Ｃ」であればサブドミナントは「Ｆ」となる。トニックからの進行を受けて曲の雰囲気を変化させたり、抑揚感を出す働きがある。
【００２６】
コード機能確定部３５の基準ケーデンス記憶部３６には、複数の基本的なケーデンス（基準ケーデンス）が記憶され、この基準ケーデンスを元にコード機能推定部３４によって得られたコード機能の進行について最終的なコード機能進行を決定する。基準ケーデンスとしては、例えば、次のような３種のコード機能進行が記憶されている。
（Ａ）「トニック」「サブドミナント」「トニック」（T-S-T）
（Ｂ）「トニック」「ドミナント」「トニック」（T-D-T）
（Ｃ）「トニック」「サブドミナント」「ドミナント」「トニック」（T-S-D-T）
【００２７】
コード機能確定部３５では、コード機能進行と基準ケーデンスを比較し、一致した場合は、その部分のコード機能を基準ケーデンスと同じコード機能として確定する。また、基準ケーデンスとコード機能進行を比較し、一致しない場合は、コード機能進行のコード機能を、基準ケーデンスに一致するようにコード機能進行のコード機能を変更することが行われる。
【００２８】
表示部３９には、コード機能確定部３５により最終的に決定されるメインコード進行、及び、このメインコード進行とは異なる複数のコード進行候補を表示可能とするコード進行表示部３９ａを備えている。
また、コード割当部３７は、コード機能確定部３５により確定するコード機能に対応するコード（コード進行候補のコード）をメインコード進行への割り当てを行う。
【００２９】
コード進行推定手段３０は、図１のハードウエア資質との対応では、ディスプレイ１１、マウス１２、キーボード１３、コードに関するデータを読み出すＲＯＭ１４、ワーキングメモリとなるＲＡＭ１５、プログラムを実行するＣＰＵ１６、コード進行推定検出プログラムが格納されたＨＤＤ１７等で構成される。
【００３０】
コード進行推定検出装置では、図２に示すように、演奏情報を演奏情報記憶部３１に記録するとともに、演奏情報記憶部３１のデータからコード検出部３２でコードを検出し、コード演奏情報ファイル作成部３８でコード演奏情報ファイルとして記録される。
そして、演奏手段４０では、コード演奏情報ファイル作成部３８で作成されたデータによりソフトウェア音源４２により作成されたコードに対応する音楽データが再生バッファ４５を介して再生デバイス（音再生手段）４６で再生される。
コード検出結果は表示部３９で表示される。
【００３１】
演奏手段４０は、図１のハードウエア資質との対応では、ディスプレイ１１、マウス１２、キーボード１３、プログラムを実行するＣＰＵ１６、ワーキングメモリとなるＲＡＭ１５、オーディオインターフェイス２０で構成される。
【００３２】
図３は、コード進行推定検出プログラムを組み込むことでコンピュータ上に構築されたコード進行推定検出装置の他の実施例の主要構成を示すブロック図である。この例では、図２における演奏情報に代えて、楽曲を電子情報で表現した音響信号からコードを検出する。
コード進行推定検出装置は、音響信号からコードを検出するコード進行推定手段３０と、音響信号によるデータ演奏、及び、検出されたコードによるコード演奏を行う演奏手段（自動演奏装置）４０により構成されている。
図２のコード進行推定検出装置と同一構成を採る部分については、同一符号を付して説明を省略する。
【００３３】
コード進行推定手段３０は、演奏曲に対応する音響信号が記憶された波形記憶部８１と、音響信号に対してコードを検出するコード検出部３２と、音響信号による演奏全体から曲の調を検出する調検出部３３と、特定区間毎の各コードのコード機能を推定するコード機能推定部３４と、コード機能進行を決定するコード機能確定部３５と、コード機能にコードを割り当てるコード割当部３７と、検出されたコードの情報を記憶するコード演奏情報ファイル作成部３８と、音響信号から検出されたコード等の検出結果を液晶ディスプレイ等で表示する表示部３９により構成されている。
【００３４】
コード進行推定検出装置では、図３に示すように、音響信号を波形記憶部８１に記録するとともに、波形記憶部８１のデータからコード検出部３２でコードを検出し、コード演奏情報ファイル作成部３８でコード演奏情報ファイルとして記録される。
そして、演奏手段４０では、加算器４４において音響信号が記録された波形記憶部８１からデータ波形用バッファ４１を介して入力されるデータに対して、ソフトウェア音源４２により作成されたコードに対応する波形データがコード波形用バッファ４３を介して加算されることで、重畳された音楽データが再生バッファ４５を介して再生デバイス（音再生手段）４６で再生される。再生デバイス（音再生手段）４６による再生は、ステレオ若しくはモノラルで行われるが、ステレオの場合、右チャネル用スピーカで音響信号及びコード演奏の右チャネル側が、左チャネル用スピーカで音響信号及びコード演奏の左チャネル側が再生される。コード検出結果は表示部３９で表示される。
【００３５】
以下、図２及び図３におけるコード進行推定手段３０及び演奏手段４０の動作について説明する。
コード進行推定手段３０は、音楽ファイル、ＣＤ等のオーディオトラック又はオーディオインターフェイスから取り込まれた音響情報を分析し、その楽曲のテンポ、拍子、１拍目位置（各小節の開始位置）、コードを既存の技術を使用して検出する。コード検出については、例えば特許４７６７６９１号に記載された技術で行われるが、以下、簡単に説明する。
【００３６】
コード検出部３２では、演奏情報記憶部３１に記憶された演奏情報（又は波形記憶部８１に記憶された音響信号）に対してコード検出期間を設定し、コード検出音域、例えばＣ３からＡ６の各音階音のコード検出期間における周波数データの平均的なレベルを計算し、これが大きな値を持つ音階音から順に数個の音名を検出し、これと検出が行われているベース音の音名からコード候補を抽出する。
この際、必ずしもレベルが大きな音がコード構成音であるとは限らないので、複数の音名の音を例えば５つ検出し、その中の２つ以上をすべての組み合わせで抜き出して、これとベース音の音名とからコード候補の抽出が行われる。コード候補の抽出が行われた後、予め設定された基準に基づいて一つのコードが選択されて抽出される。
【００３７】
コードの抽出が行われると、表示部３９に図４に示すような検出結果の画面（トラック画面）が表示される。
トラック画面のマスタートラックには、演奏情報又は音響信号より検出されたテンポ＝１２０、拍子＝４／４、調＝Ｇ（ト長調）が指定されている。素材トラック１には、コードの抽出が行われた演奏情報１が指定されている。演奏情報は、公知規格であるMIDI規格に準拠した形式で表示されている。
コードトラック、リズムトラック、素材トラック２には何も指定されていない。点線は小節線を示している。
【００３８】
この画面状態から、コード進行推定を行う手順について、図５を参照して説明する。
トラック画面に表示された演奏情報を右クリックするなどして、ポップアップメニューを表示し、メニューの「演奏情報からコード進行を推定する」コマンド（図示せず）を選択すると、コード進行推定の動作が開始される。
コード機能推定部３４によるコード進行推定では、演奏情報に含まれる全てのノート情報から調を検出する（ステップ５１）。調はこの後の処理で使用される。調を検出しない場合は、マスタートラックの調を用いたり、処理開始時に指定するようにしてもよい。
調検出部３３による調検出については、最も出現頻度が高い音符から推定するなど、一般的な手法で行われる。
【００３９】
続いて、小節毎にコードを検出する（ステップ５２）。小節区切りはマスタートラックに従う。マスタートラックに拍子の指定が無い場合は、処理開始時に拍子を指定したり、演奏情報から推定したりしてもよい。演奏情報から特定区間（小節内）に含まれる音符と、各コードの構成音を示したテーブルを比較して、小節毎に可能性のある複数のコードを検出する。
【００４０】
検出結果は、図６に示すような検出コードデータの配列として記憶される。
１つの検出コードデータは、コード名配列、コード名に対応した尤度配列、選択されたコードのインデックス、小節番号、小節内のコード開始時間で構成される。
小節番号１のコード検出の場合、コードとして、「G」「GM7」「G7」「Em」「Em7」「Bm」「Bm7」「CM7」が検出され、対応する尤度が「６７２６」「３７５８」「３４３２」「２９０４」「２３２３」「１８４８」「１４７８」「２７４５」となっている。
【００４１】
次に、検出コードデータ配列のコードを「トニック」、「ドミナント」、「サブドミナント」の各コード機能に分類し、コード機能進行を生成する（ステップ５３）。コード機能進行とは、各コード検出範囲のコード機能を割り当てたものである。
ステップ５１で検出された調に応じて、検出されたコードを各コード機能に分類する。分類ルールは、調とディグリーNo（ド〜シに１〜７を割り当てたもの）で決定される。ト長調では以下のような分類になる。
【００４２】
トニック：G、GM7、Em、Em7、Bm、Bm7
サブドミナント：Am、Am7、C、CM7
ドミナント：Bm、Bm7、D、D７、F#m(b5)、F#m7(b5)
【００４３】
検出されたコードをコード機能別に分類し、多くのコード候補が分類されたコード機能を、そのコード検出区間のコード機能とする。
例えば、小節毎にコード進行候補として検出された複数のコードにおいて、「トニック」に属するコードが最大数である場合には、その小節のコード機能は「トニック」が選択される。
【００４４】
次に、図６に示した検出コードデータ配列の各小節に対して、ケーデンスを確定する処理が行われる（ステップ５４）。
図６の検出コードデータ配列に対応するコード機能の分類結果とコード機能進行は図７に示すようになる。すなわち、小節番号１におけるコード候補は、「トニック」に属するコードとして、G、GM7、G７、Em、Em7、Bm、Bm7の７種、「ドミナント」に属するコードとして、Bm、Bm7の２種、「サブドミナント」に属するコードとして、CM7が抽出されている。したがって、小節番号１に対応するコード機能は、コード候補が一番多い「トニック」が選択され、同様の処理により、小節番号２では「サブドミナント」が選択され、小節番号３では「サブドミナント」が選択され、小節番号４では「トニック」が選択され、小節番号５では「ドミナント」が選択され、小節番号６では「トニック」が選択されることで、小節番号１〜６に対応するコード機能進行は、T-S-S-T-D-Tとなる。
【００４５】
続いて、コード機能進行の各小節について、上述した基準ケーデンス（Ａ）〜（Ｃ）からケーデンスを確定する処理が行われる。この手順を図８に示す。
最も一致度が高い基準ケーデンスから順番にコード機能確定処理を行う。
先ず、比較開始小節から基準ケーデンスの長さ分の区間（基準ケーデンス（Ａ）（Ｂ）については３小節分、基準ケーデンス（Ｃ）については４小節分）について、基準ケーデンスと比較し（ステップ６１）、完全に一致しているかどうかを確認する（ステップ６２）。完全に一致していれば、そのままコード機能が確定する。
【００４６】
基準ケーデンスに一致しない場合、全て（この例の場合は３種）の基準ケーデンスについて、比較開始小節からのコード機能進行と比較し、ケーデンス一致度を算出する。ケーデンス一致度は、一致コード機能数÷全コード数で計算する。
最初の比較開始小節は１小節目となる。基準ケーデンス（Ａ）のT-S-Tとコード機能進行を比較すると、１つめのトニックは一致、２つ目のサブドミナントが一致し、３つ目のトニックが一致しない。その結果、一致度は0.67=2÷3となる。
基準ケーデンス（Ｂ）のT-D-Tとの比較の場合は、１つめのトニックのみが一致するので、一致度は0.33=1÷3となる。
基準ケーデンス（Ｃ）のT-S-D-Tのとの比較の場合は、３番目のドミナント以外は一致しているので、一致度は0.75=3÷4となる。
【００４７】
本例の場合、一致度が高い基準ケーデンスは基準ケーデンス（Ｃ）のT-S-D-Tであり、続いて、コード機能進行の一致しなかった部分のコード機能を変更できるかどうかを確認する（ステップ６３）。本例の場合は、基準ケーデンス（Ｃ）の３番目（ドミナント）と図７のコード機能進行の３番目（サブドミナント）が異なるので、変更可能かどうかの処理が行われる。
【００４８】
具体的には、異なった部分のコード機能の分類結果を参照し、基準ケーデンスと同じコード機能に分類されたコード候補があるかどうかを調べる。コード候補があればコード機能の変更が可能と考え、コード機能変更処理を行う（ステップ６４）。
本例では、図７の３番目のコード検出区間では、「ドミナント」に分類されたコード候補があるので変更が可能と判定され、コード機能を変更する（ステップ６４）。小節番号３のコード機能進行について、基準ケーデンス（Ｃ）の３番目を「ドミナント」から「サブドミナント」に変更し、４小節までの区間のコード機能進行は、T-S-S-Tのコード機能として確定する。
【００４９】
変更ができない場合は、全ケーデンス完了か否かの処理へ移る（ステップ６５）。ステップ６５では、まだ処理されていない基準ケーデンスがあるか調べ、処理されていない基準ケーデンスがあれば、その未処理の基準ケーデンスについてステップ６２からの確定処理を行う。
処理されていない基準ケーデンスがなければ処理を完了する。
【００５０】
ステップ６５における全基準ケーデンスに対する処理が完了したら、コード機能進行の全ての区間の処理が終了したか否かを確認し（ステップ６６）、終了している場合は処理を完了する。
終了していない場合は、比較開始小節を更新して、基準ケーデンスと比較（ステップ６１）の処理に戻る。本例では、比較開始小節を４に更新し、基準ケーデンスと比較（ステップ６１）の処理に戻る。
同様に小節４〜６の区間にコード機能確定処理を行うことで、コード機能確定（ステップ５４）の処理を完了する。
【００５１】
本例では、基準ケーデンスとしては、上述した最も基本的な３種（T-S-T，T-D-T，T-S-D-T）のみとしたが、これ以外の一般的に使用されるケーデンスを含んだり、「サブドミナントマイナー」や「セカンダリードミナント」を使用したものを基準ケーデンスとして追加してもよい。
【００５２】
続いて、図５のフローチャートにおいて、最終的に確定したコード機能に対してコードを割り当てる（ステップ５５）。ここでは、コード機能の分類結果を参照し、確定したコード機能に応じたコードを割り当てていく。
基本的には尤度が高いコードから割り当てる。
コード進行を一つ選ぶ場合は、尤度が高いものを割り当てればよいが、複数のコード進行を提案する場合は、一度割り当てたコードを、割り当て済みコード配列などに記憶し、異なるコードが選択されるようにしてもよい。
また、前後のコードとの結びつきを考慮して、割り当てを行ってもよい。
【００５３】
図５のフローチャートにおけるステップ５５におけるコード割当を行う場合の手順について、図９のフロ−チャートに示す。
コード機能に応じたコードをその区間の候補として選択する（ステップ７１）。
割り当て済み配列を参照し、割り当て頻度を確認する（ステップ７２）。
割り当てが行われていないか、割り当て頻度が他のコードより低ければ、候補となったコードをその区間のコードとして割り当てるコード割り当て処理が行われ（ステップ７６）、割り当て済配列に記憶する処理（ステップ７７）が行われる。
割り当て頻度が他のコード以上であれば、異なるRootでのコードの割り当て処理（ステップ７３）が行われる。すなわち、ステップ７３では、異なるRootで、より割り当て頻度の少ないコードを候補とする（ステップ７４）。
【００５４】
ステップ７４において異なる候補に該当するコードがあればコード割り当て処理へ移る（ステップ７６）。
ステップ７４において異なる候補に該当するコードが無ければ、今回割り当てるコードをステップ７１で選択されたコードに確定する（ステップ７５）。
ステップ７４では、同じルートで、より割り当て頻度の少ないコードを候補とする。該当するコードがなければ、割り当て済配列に記憶する処理（ステップ７７）が行われる。
【００５５】
コード割り当て処理（ステップ７６）では、候補となったコードをその区間のコードとして割り当てる。
割り当て済配列に記憶する処理（ステップ７７）では、割り当てたコードを割り当て済み配列に記憶する。
【００５６】
次に、全小節について候補選択の処理が終わったか判定し（ステップ７８）、終わっていなければ、次の区間の候補選択の処理をステップ７１へ戻って行う。全小節の処理が終わっている場合は、提示する全てのコード進行の処理が終わったか判定し（ステップ７９）、終わっていなければステップ７１へ戻って、次のコード進行の処理を行う。
提示する全てのコード進行の処理が終わっていれば、図９の処理を終了する。
【００５７】
本例の場合、ステップ７１で最初の区間（１小節目）の候補を決める。「トニック」で最も尤度が高いＧが候補となる。ステップ７２では、Ｇは割り当て配列に記憶されていないので、ステップ７６へ移り、１小節目のコードとして割り当てられる。ステップ７７で割り当て済み配列に記憶する。ステップ７８で全ての区間が終わっていないのでステップ７１へ戻り、２小節目の処理へ移る。
【００５８】
２小節目においては、「サブドミナント」で最も高い尤度のコードCが候補となる。ステップ７２で、Cは割り当て配列に記憶されていないのでステップ７６へ移り、２小節目のコードとして割り当てられる。ステップ７７で割り当て済み配列に記憶する。さらにステップ７１へ戻り、３小節目の処理へ移る。
【００５９】
３小節目の処理も同様に行われる。
【００６０】
４小節目は、「トニック」で最も尤度が高いＧが候補となるが、ステップ７２で既に登録されているので、異なるRootで最も尤度が高く、割り当て頻度が低いコードに候補に変更する。この場合Em7が候補となる。ステップ７５でEm7を４小節目のコードとして割り当て、ステップ７７で割り当て済み配列にEm7を記憶する。
【００６１】
５小節目は「ドミナント」で最も尤度が高く、割り当て頻度が低いBm7が候補となり、Bm7が５小節目のコードとして登録され、割り当て済み配列に記憶する。
【００６２】
６小節目は、トニックで最も高い尤度のGが候補になるが、割り当て済みなので、異なるRootの候補を探す。異なるRootのEm7もBm7割り当て済みで割り当て頻度もＧと同じなので、割り当てられていない同じRoot（G）のコードを候補とする。この場合は、次に尤度が高いG7が候補となる。ステップ７６で６小節目のコードとして割り当て、割り当て済み配列に登録する。
【００６３】
以上で、コード進行候補１のコードの割り当てが完了する。
更に、別のコード進行候補を得る場合は、以上の手続きを繰り返し、各小節に対応するコード進行の候補を生成する。
【００６４】
以上の手続きによって得られたコード進行画面を図１０に示す。
コード進行画面９０は、表示部３９のコード進行表示部３９ａに表示される。本例では、４つのコード進行候補を別のコード進行候補として生成した。
メインコード進行は、最初はコード進行候補１と同じである。
コード進行画面９０の試聴ボタン９１をクリックすると、元の演奏情報と、メインに表示してあるメインコード進行を演奏し、生成されたコード進行が意図したものかどうか確認することができる。
【００６５】
メインのコードを変更する場合は、同じ小節のコード候補１〜４の各コードをクリックすると、そのコードがメインのコードとなる。
候補１〜４をクリックすると、そのコード進行がメインコード進行となる。
完了ボタン９２をクリックすると、図１１に示すように、メインコード進行が、自動演奏装置の表示部３９に演奏情報に対応して表示されたトラック画面のコードトラックに貼り付く。
【００６６】
上述したコード進行推定検出装置によれば、演奏情報（又は音響信号）より検出された各コードの機能を推定し、予め記憶された基準ケーデンスに沿ったコードを選択することで、より音楽的なコード進行を得ることができる。
【００６７】
また、図１０のコード進行画面９０に示したように、各小節の同じケーデンス（機能）に対して、複数のコード候補（候補１〜４）を作成し、異なるコードを選択可能とすることで、複数のコード進行を提案することができる。
【符号の説明】
【００６８】
３０…コード進行推定手段、  ３１…演奏情報記憶部、  ３２…コード検出部、  ３３…調検出部、  ３４…コード機能推定部、  ３５…コード機能確定部、  ３６…基準ケーデンス記憶部、  ３７…コード割当部、  ３８…コード演奏情報ファイル作成部、  ３９…表示部、  ３９ａ…コード進行表示部、  ４０…演奏手段（自動演奏装置）、  ４１…データ波形用バッファ、  ４２…ソフトウェア音源、  ４３…コード波形用バッファ、  ４４…加算器、  ４５…再生バッファ、  ４６…再生デバイス（音再生手段）  ８１…波形記憶部。
【図１】
2015031738.tif 000003
【図２】
2015031738.tif 000004
【図３】
2015031738.tif 000005
【図４】
2015031738.tif 000006
【図５】
2015031738.tif 000007
【図６】
2015031738.tif 000008
【図７】
2015031738.tif 000009
【図８】
2015031738.tif 000010
【図９】
2015031738.tif 000011
【図１０】
2015031738.tif 000012
【図１１】
2015031738.tif 000013