特許第6151121号(P6151121)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社河合楽器製作所の特許一覧

特許6151121コード進行推定検出装置及びコード進行推定検出プログラム
<>
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000002
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000003
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000004
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000005
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000006
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000007
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000008
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000009
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000010
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000011
  • 特許6151121-コード進行推定検出装置及びコード進行推定検出プログラム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6151121
(24)【登録日】2017年6月2日
(45)【発行日】2017年6月21日
(54)【発明の名称】コード進行推定検出装置及びコード進行推定検出プログラム
(51)【国際特許分類】
   G10H 1/38 20060101AFI20170612BHJP
   G10G 3/04 20060101ALI20170612BHJP
【FI】
   G10H1/38 Z
   G10G3/04
【請求項の数】6
【全頁数】15
(21)【出願番号】特願2013-159322(P2013-159322)
(22)【出願日】2013年7月31日
(65)【公開番号】特開2015-31738(P2015-31738A)
(43)【公開日】2015年2月16日
【審査請求日】2016年5月25日
【新規性喪失の例外の表示】特許法第30条第2項適用 http://www.kawai.co.jp/cmusic/products/bp/index.htmや、http://www.kawai.co.jp/cmusic/products/bp/produce.htm#huのアドレスで公開されている株式会社河合楽器製作所のウェブサイトにて、藤田明裕が発明したコード進行推定検出装置について株式会社河合楽器製作所が平成25年6月5日に公開した。
(73)【特許権者】
【識別番号】000001410
【氏名又は名称】株式会社河合楽器製作所
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】藤田 明裕
【審査官】 岩田 淳
(56)【参考文献】
【文献】 特開2009−282464(JP,A)
【文献】 特開2001−142462(JP,A)
【文献】 特開平11−126075(JP,A)
【文献】 特開2010−025972(JP,A)
【文献】 特表2010−538335(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10G 3/04
G10H 1/38
(57)【特許請求の範囲】
【請求項1】
演奏情報又は音響信号からコードを推定するコード進行推定検出装置であって、
前記演奏情報又は音響信号の全体から曲の調を検出する調検出手段と、
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手段と、
前記特定区間毎に前記調検出手段で検出された調に応じて分類された各コードのコード機能を推定するコード機能推定手段と、
前記コード機能推定手段によって得られたコード機能の進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手段と、
各ケーデンスのコード機能にコードを割り当てるコード割当手段と、
を備えることを特徴とするコード進行推定検出装置。
【請求項2】
前記コード機能確定手段は、基準ケーデンスを複数記憶した基準ケーデンス記憶手段を備え、前記コード機能進行と前記基準ケーデンスを比較し、一致した場合、その部分のコード機能を基準ケーデンスと同じコード機能として確定する請求項1に記載のコード進行推定検出装置。
【請求項3】
前記コード機能確定手段は、前記基準ケーデンスと前記コード機能進行を比較し、一致しない場合、前記コード機能進行のコード機能を、前記基準ケーデンスに一致するようにコード機能進行のコード機能を変更する請求項2に記載のコード進行推定検出装置。
【請求項4】
前記コード機能確定手段により最終的に決定されるメインコード進行、及び、該メインコード進行とは異なる複数のコード進行候補を表示可能とするコード進行表示手段を備え、前記コード進行候補に表示されたコードをメインコード進行に割り当て可能とした請求項1に記載のコード進行推定検出装置。
【請求項5】
指定された特定範囲の演奏情報又は音響信号を演奏し、コードを内蔵音源で演奏する演奏手段を備え、
前記演奏情報又は音響信号と、前記コード進行表示手段に表示されたメインコード進行の各コードを同時に演奏可能とした請求項4に記載のコード進行推定検出装置。
【請求項6】
演奏情報又は音響信号からコード進行を推定するプログラムであって、
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手順と、
各コードのコード機能を推定するコード機能推定手順と、
推定されたコード機能進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手順と、
各ケーデンスのコード機能にコードを割り当てるコード割当手順と、
をコンピュータに実行させることを特徴とするコード進行推定検出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演奏情報又は音響信号を分析し、使用されているコード進行を推定するコード進行推定検出装置に関し、特に、音響信号による演奏に対して、予め記憶された基本ケーデンス(コード機能の進行に関する指標)に基づいてコード進行を推定するコード進行推定検出装置及びコード進行推定検出プログラムに関する。
【背景技術】
【0002】
ポピュラーやロック系の音楽を小編成のバンドで演奏する場合、和音から構成されるコードが記載されたコード譜やリードシートと呼ばれるメロディとコード進行のみが書かれた楽譜を使用して演奏が行われる。楽曲のコード進行を採譜する作業は、特別な音楽的知識を有する専門家でないと困難であるため、演奏音が収録された音楽CD等の音源から出力される音響信号に基づいて、コンピュータを使用したコード検出装置によりコードを検出することが行われていた。
【0003】
この種のコード検出装置は、例えば特許文献1に記載されるように、電子情報としての音響信号が入力されることで、所定の時間毎の各音階音のレベル、平均的なビート間隔と各ビートの位置、拍子と小節線位置、ベース音、各小節のコードをそれぞれ検出するものである。コードを検出する際には、複数のコード候補が検出され、検出されたコードはコンピュータの内蔵音源でコード演奏が可能なように構成されている。
【0004】
コード検出装置によれば、音響信号における一つのコード検出区間(小節など)に対して複数のコードを検出するとともに、そのコードの演奏音の強さや持続時間等から尤度(確からしさ)を決定し、尤度が最も高いコードをその区間のコードとして検出することが行われる。従って、コード検出の対象となった楽曲のコード進行は、尤度が高いコードが羅列されたものとなる。
一方、一般的に音楽のコード進行は、複数のケーデンスの組み合わせで成り立っている場合が多い。ケーデンスとはコードの機能の進行を示す指標であり、代表的なものがいくつかある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4767691号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来のコード検出装置で検出されたコード進行は、コードの尤度のみにより決められたものであるため、本来のケーデンスと異なるコードとなっている場合があるという課題が存在する。
また、上述した従来の手法では、音楽的な(ケーデンスを考慮した)推定により、コード進行を検出することは行われていなかった。
【0007】
本発明は上記事情に鑑みて提案されたもので、演奏情報又は音響信号に対して、ケーデンスを考慮した音楽的な推定により、より正しいコードの進行を推定して検出可能としたコード進行推定検出装置及びコード進行推定検出プログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
上記目的を達成するため本発明の請求項1は、演奏情報又は音響信号において演奏されているコードを推定して検出するコード進行推定検出装置であって、次の各構成を含むことを特徴としている。
前記演奏情報又は音響信号の全体から曲の調を検出する調検出手段。
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手段。
前記特定区間毎に前記調検出手段で検出された調に応じて分類された各コードのコード機能を推定するコード機能推定手段。
前記コード機能推定手段によって得られたコード機能の進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手段。
各ケーデンスのコード機能にコードを割り当てるコード割当手段。
【0009】
請求項2は、請求項1のコード進行推定検出装置において、前記コード機能確定手段は、基準ケーデンスを複数記憶した基準ケーデンス記憶手段を備え、前記コード機能進行と前記基準ケーデンスを比較し、一致した場合、その部分のコード機能を基準ケーデンスと同じコード機能として確定することを特徴としている。
【0010】
請求項3は、請求項2のコード進行推定検出装置において、前記コード機能確定手段は、前記基準ケーデンスと前記コード機能進行を比較し、一致しない場合、前記コード機能進行のコード機能を、前記基準ケーデンスに一致するようにコード機能進行のコード機能を変更することを特徴としている。
【0011】
請求項4は、請求項1のコード進行推定検出装置において、前記コード機能確定手段により最終的に決定されるメインコード進行、及び、該メインコード進行とは異なる複数のコード進行候補を表示可能とするコード進行表示手段を備え、前記コード進行候補に表示されたコードをメインコード進行に割り当て可能としたことを特徴としている。
【0012】
請求項5は、請求項4のコード進行推定検出装置において、指定された特定範囲の演奏情報又は音響信号を演奏し、コードを内蔵音源で演奏する演奏手段を備え、
前記演奏情報又は音響信号と、前記コード進行表示手段に表示されたメインコード進行の各コードを同時に演奏可能としたことを特徴としている。
【0013】
請求項6は、演奏情報又は音響信号からコード進行を推定するコード進行推定検出プログラムであって、
前記演奏情報又は音響信号から特定区間毎に複数のコードと各コードの尤度を検出するコード検出手順と、
各コードのコード機能を推定するコード機能推定手順と、
推定されたコード機能進行について、複数の基本的なケーデンスを元に最終的なコード機能進行を決定するコード機能確定手順と、
各ケーデンスのコード機能にコードを割り当てるコード割当手順と、
をコンピュータに実行させることを特徴としている。
【発明の効果】
【0014】
本発明のコード進行推定検出装置及びコード進行推定検出プログラムによれば、演奏情報又は音響信号より検出された各コードの機能を推定し、予め記憶された基準ケーデンスに沿ったコードを選択することで、より音楽的なコード進行を得ることができる。
【0015】
また、同じケーデンスに対して、異なるコードを選択可能とすることで、複数のコード進行を提案することができる。
【図面の簡単な説明】
【0016】
図1】本発明のコード進行推定検出装置のハードウエア構成を示すブロック図である。
図2】本発明のコード進行推定検出装置の主要な構成を示すブロック図である。
図3】コード進行推定検出装置の他の実施例における主要な構成を示すブロック図である。
図4】自動演奏装置の表示部に演奏情報に対応して表示されたトラック画面である。
図5】本発明によるコード進行推定の手順を示すフローチャートである。
図6】コード進行推定検出装置で検出された検出コードデータ配列の一例を示す表である。
図7】コード進行推定検出装置で検出された各小節のコード候補に対するコード機能と、各小節に対するコード機能進行の対応関係を示す表である。
図8】コード進行推定検出装置のコード進行推定におけるコード機能確定処理の詳細手順を示すフローチャートである。
図9】コード進行推定検出装置のコード進行推定におけるコード割当処理の詳細手順を示すフローチャートである。
図10】コード進行推定検出装置のコード進行表示手段に表示されるコード進行画面である。
図11】自動演奏装置の表示部に演奏情報に対応して表示されたトラック画面である。
【発明を実施するための形態】
【0017】
以下、図面を参照しながら本発明の実施形態の一例に係るコード進行推定検出装置について説明する。
【0018】
コード進行推定検出装置のハードウエアは、パーソナルコンピュータ等の汎用情報処理装置によって実現することができる。図1は、コンピュータ上に構築されたコード進行推定検出装置のハードウエア構成を示すブロック図であり、バス10に対して、ディスプレイ11、マウス12、キーボード13、ROM14、RAM15、CPU16、HDD17、ディスクドライブ18、MIDIインターフェイス19、オーディオインターフェイス20、ネットワークインターフェイス21を接続して構成されている。
【0019】
コンピュータのHDD17には、MIDIインターフェイス19、オーディオインターフェイス20若しくはネットワークインターフェイス21を介して音響信号を取り込んでコードを検出するとともに、予め記憶された複数のケーデンスを基にコード機能を推定することで得られるコード進行の推定を行うためのコード進行推定検出プログラムが、ディスクドライブ18に装着された記録媒体からインストールされ、若しくはインターネットを介して所定のURLよりダウンロードされている。
【0020】
CPU16は、上記の手順によりインストール又はダウンロードされた所定の制御プログラム(コード推定検出プログラム)に従って各種処理(各ステップ)を実行し、コード推定装置全体を制御するものであり、演奏情報記憶部31、コード検出部32、コード機能推定部34、コード割当部37及びコード演奏情報ファイル作成部38を要部機能として備えることで、取り込んだ演奏情報を記憶し、記憶した情報からコード進行を推定してディスプレイ(表示部)11に表示可能とするとともに、再生デバイス(音再生手段)46を備えることで、RAM15にインストール又はダウンロードされたソフトウェア音源42を使用して推定されたコードに相当するコード音を演奏(コード演奏)可能としている。
コード推定検出プログラム及びソフトウェア音源は、実行時においてRAM15に読込まれている。
【0021】
図2は、コード進行推定検出プログラムを組み込むことでコンピュータ上に構築されたコード進行推定検出装置の主要構成を示すブロック図である。コード進行推定検出装置は、演奏情報からコードを検出するコード進行推定手段30と、検出されたコードによるコード演奏を行う演奏手段(自動演奏装置)40により構成されている。
演奏情報は、ノートデータ(音符)を含む情報で、発音イベント(発音開始時間と強さ)と発音停止イベント(発音停止時間)で1つのノートデータを表現している。演奏情報は、音響信号から作成したり、MIDIインターフェイスから入力したり、コンピュータ又はネットワーク上のスタンダードMIDIファイルのような演奏情報ファイルから読み込むことで取得する。
【0022】
コード進行推定手段30は、演奏情報が記憶された演奏情報記憶部31と、演奏情報に対してコードを検出するコード検出部32と、演奏情報の全体から曲の調を検出する調検出部33と、特定区間毎の各コードのコード機能を推定するコード機能推定部34と、コード機能進行を決定するコード機能確定部35と、コード機能にコードを割り当てるコード割当部37と、検出されたコードの情報を記憶するコード演奏情報ファイル作成部38と、演奏情報から検出されたコード等の検出結果を液晶ディスプレイ等で表示する表示部39により構成されている。
【0023】
コード検出部32は、演奏情報から特定区間毎に複数のコードと各コードの尤度を検出する。コードの尤度とは、コードの確からしさを示す指標であり、「音の強さ」や「音の持続時間の長さ」等から算出される既知の値である。演奏情報からコードを検出する一般的な手法としては、検出区間で発音している音と、コード構成音を照らし合わせてコードを推定する。演奏情報においては、強く、持続時間が長いノートを含んでいるコードの尤度が高くなる。
【0024】
コード機能推定部34により推定されるコード機能とは、コードの性質を表現するケーデンスであり、「トニック」「ドミナント」「サブドミナント」等が存在する。
また、コード機能は、調検出部33で検出された調に応じて、検出されたコード名を各コード機能に分類する。分類ルールは、調とディグリーNo(ド〜シに1〜7を割り当てたもの)で決定される。
【0025】
コード機能の「トニック」は、キー(調)に対して主和音となるコードであるトニック・コードを意味する。最も安定感のあるコードであり、通常、曲の始めや終わりに使用されるコードとなる。例えばキーが「C」であればトニックは「C」や「CM7」となる。曲の調を決定づける最も重要なコードである。
コード機能の「ドミナント」は、主音に対して完全5度上の音であり、属音とも言う。この音をルートとしたコードをドミナント・コードといい、ドミナントと略される。例えばキーが「C」であればドミナントは「G」となる。トニックへ進行しようとする力が働き、通常フレーズの終わりや曲の終わりでは、ドミナントからトニックへ進行する。
コード機能の「サブドミナント」は、主音に対して完全4度上の音であり、下属音とも言う。この音をルートとしたコードをサブドミナント・コードといい、サブドミナントと略される。例えばキーが「C」であればサブドミナントは「F」となる。トニックからの進行を受けて曲の雰囲気を変化させたり、抑揚感を出す働きがある。
【0026】
コード機能確定部35の基準ケーデンス記憶部36には、複数の基本的なケーデンス(基準ケーデンス)が記憶され、この基準ケーデンスを元にコード機能推定部34によって得られたコード機能の進行について最終的なコード機能進行を決定する。基準ケーデンスとしては、例えば、次のような3種のコード機能進行が記憶されている。
(A)「トニック」「サブドミナント」「トニック」(T-S-T)
(B)「トニック」「ドミナント」「トニック」(T-D-T)
(C)「トニック」「サブドミナント」「ドミナント」「トニック」(T-S-D-T)
【0027】
コード機能確定部35では、コード機能進行と基準ケーデンスを比較し、一致した場合は、その部分のコード機能を基準ケーデンスと同じコード機能として確定する。また、基準ケーデンスとコード機能進行を比較し、一致しない場合は、コード機能進行のコード機能を、基準ケーデンスに一致するようにコード機能進行のコード機能を変更することが行われる。
【0028】
表示部39には、コード機能確定部35により最終的に決定されるメインコード進行、及び、このメインコード進行とは異なる複数のコード進行候補を表示可能とするコード進行表示部39aを備えている。
また、コード割当部37は、コード機能確定部35により確定するコード機能に対応するコード(コード進行候補のコード)をメインコード進行への割り当てを行う。
【0029】
コード進行推定手段30は、図1のハードウエア資質との対応では、ディスプレイ11、マウス12、キーボード13、コードに関するデータを読み出すROM14、ワーキングメモリとなるRAM15、プログラムを実行するCPU16、コード進行推定検出プログラムが格納されたHDD17等で構成される。
【0030】
コード進行推定検出装置では、図2に示すように、演奏情報を演奏情報記憶部31に記録するとともに、演奏情報記憶部31のデータからコード検出部32でコードを検出し、コード演奏情報ファイル作成部38でコード演奏情報ファイルとして記録される。
そして、演奏手段40では、コード演奏情報ファイル作成部38で作成されたデータによりソフトウェア音源42により作成されたコードに対応する音楽データが再生バッファ45を介して再生デバイス(音再生手段)46で再生される。
コード検出結果は表示部39で表示される。
【0031】
演奏手段40は、図1のハードウエア資質との対応では、ディスプレイ11、マウス12、キーボード13、プログラムを実行するCPU16、ワーキングメモリとなるRAM15、オーディオインターフェイス20で構成される。
【0032】
図3は、コード進行推定検出プログラムを組み込むことでコンピュータ上に構築されたコード進行推定検出装置の他の実施例の主要構成を示すブロック図である。この例では、図2における演奏情報に代えて、楽曲を電子情報で表現した音響信号からコードを検出する。
コード進行推定検出装置は、音響信号からコードを検出するコード進行推定手段30と、音響信号によるデータ演奏、及び、検出されたコードによるコード演奏を行う演奏手段(自動演奏装置)40により構成されている。
図2のコード進行推定検出装置と同一構成を採る部分については、同一符号を付して説明を省略する。
【0033】
コード進行推定手段30は、演奏曲に対応する音響信号が記憶された波形記憶部81と、音響信号に対してコードを検出するコード検出部32と、音響信号による演奏全体から曲の調を検出する調検出部33と、特定区間毎の各コードのコード機能を推定するコード機能推定部34と、コード機能進行を決定するコード機能確定部35と、コード機能にコードを割り当てるコード割当部37と、検出されたコードの情報を記憶するコード演奏情報ファイル作成部38と、音響信号から検出されたコード等の検出結果を液晶ディスプレイ等で表示する表示部39により構成されている。
【0034】
コード進行推定検出装置では、図3に示すように、音響信号を波形記憶部81に記録するとともに、波形記憶部81のデータからコード検出部32でコードを検出し、コード演奏情報ファイル作成部38でコード演奏情報ファイルとして記録される。
そして、演奏手段40では、加算器44において音響信号が記録された波形記憶部81からデータ波形用バッファ41を介して入力されるデータに対して、ソフトウェア音源42により作成されたコードに対応する波形データがコード波形用バッファ43を介して加算されることで、重畳された音楽データが再生バッファ45を介して再生デバイス(音再生手段)46で再生される。再生デバイス(音再生手段)46による再生は、ステレオ若しくはモノラルで行われるが、ステレオの場合、右チャネル用スピーカで音響信号及びコード演奏の右チャネル側が、左チャネル用スピーカで音響信号及びコード演奏の左チャネル側が再生される。コード検出結果は表示部39で表示される。
【0035】
以下、図2及び図3におけるコード進行推定手段30及び演奏手段40の動作について説明する。
コード進行推定手段30は、音楽ファイル、CD等のオーディオトラック又はオーディオインターフェイスから取り込まれた音響情報を分析し、その楽曲のテンポ、拍子、1拍目位置(各小節の開始位置)、コードを既存の技術を使用して検出する。コード検出については、例えば特許4767691号に記載された技術で行われるが、以下、簡単に説明する。
【0036】
コード検出部32では、演奏情報記憶部31に記憶された演奏情報(又は波形記憶部81に記憶された音響信号)に対してコード検出期間を設定し、コード検出音域、例えばC3からA6の各音階音のコード検出期間における周波数データの平均的なレベルを計算し、これが大きな値を持つ音階音から順に数個の音名を検出し、これと検出が行われているベース音の音名からコード候補を抽出する。
この際、必ずしもレベルが大きな音がコード構成音であるとは限らないので、複数の音名の音を例えば5つ検出し、その中の2つ以上をすべての組み合わせで抜き出して、これとベース音の音名とからコード候補の抽出が行われる。コード候補の抽出が行われた後、予め設定された基準に基づいて一つのコードが選択されて抽出される。
【0037】
コードの抽出が行われると、表示部39に図4に示すような検出結果の画面(トラック画面)が表示される。
トラック画面のマスタートラックには、演奏情報又は音響信号より検出されたテンポ=120、拍子=4/4、調=G(ト長調)が指定されている。素材トラック1には、コードの抽出が行われた演奏情報1が指定されている。演奏情報は、公知規格であるMIDI規格に準拠した形式で表示されている。
コードトラック、リズムトラック、素材トラック2には何も指定されていない。点線は小節線を示している。
【0038】
この画面状態から、コード進行推定を行う手順について、図5を参照して説明する。
トラック画面に表示された演奏情報を右クリックするなどして、ポップアップメニューを表示し、メニューの「演奏情報からコード進行を推定する」コマンド(図示せず)を選択すると、コード進行推定の動作が開始される。
コード機能推定部34によるコード進行推定では、演奏情報に含まれる全てのノート情報から調を検出する(ステップ51)。調はこの後の処理で使用される。調を検出しない場合は、マスタートラックの調を用いたり、処理開始時に指定するようにしてもよい。
調検出部33による調検出については、最も出現頻度が高い音符から推定するなど、一般的な手法で行われる。
【0039】
続いて、小節毎にコードを検出する(ステップ52)。小節区切りはマスタートラックに従う。マスタートラックに拍子の指定が無い場合は、処理開始時に拍子を指定したり、演奏情報から推定したりしてもよい。演奏情報から特定区間(小節内)に含まれる音符と、各コードの構成音を示したテーブルを比較して、小節毎に可能性のある複数のコードを検出する。
【0040】
検出結果は、図6に示すような検出コードデータの配列として記憶される。
1つの検出コードデータは、コード名配列、コード名に対応した尤度配列、選択されたコードのインデックス、小節番号、小節内のコード開始時間で構成される。
小節番号1のコード検出の場合、コードとして、「G」「GM7」「G7」「Em」「Em7」「Bm」「Bm7」「CM7」が検出され、対応する尤度が「6726」「3758」「3432」「2904」「2323」「1848」「1478」「2745」となっている。
【0041】
次に、検出コードデータ配列のコードを「トニック」、「ドミナント」、「サブドミナント」の各コード機能に分類し、コード機能進行を生成する(ステップ53)。コード機能進行とは、各コード検出範囲のコード機能を割り当てたものである。
ステップ51で検出された調に応じて、検出されたコードを各コード機能に分類する。分類ルールは、調とディグリーNo(ド〜シに1〜7を割り当てたもの)で決定される。ト長調では以下のような分類になる。
【0042】
トニック:G、GM7、Em、Em7、Bm、Bm7
サブドミナント:Am、Am7、C、CM7
ドミナント:Bm、Bm7、D、D7、F#m(b5)、F#m7(b5)
【0043】
検出されたコードをコード機能別に分類し、多くのコード候補が分類されたコード機能を、そのコード検出区間のコード機能とする。
例えば、小節毎にコード進行候補として検出された複数のコードにおいて、「トニック」に属するコードが最大数である場合には、その小節のコード機能は「トニック」が選択される。
【0044】
次に、図6に示した検出コードデータ配列の各小節に対して、ケーデンスを確定する処理が行われる(ステップ54)。
図6の検出コードデータ配列に対応するコード機能の分類結果とコード機能進行は図7に示すようになる。すなわち、小節番号1におけるコード候補は、「トニック」に属するコードとして、G、GM7、G7、Em、Em7、Bm、Bm7の7種、「ドミナント」に属するコードとして、Bm、Bm7の2種、「サブドミナント」に属するコードとして、CM7が抽出されている。したがって、小節番号1に対応するコード機能は、コード候補が一番多い「トニック」が選択され、同様の処理により、小節番号2では「サブドミナント」が選択され、小節番号3では「サブドミナント」が選択され、小節番号4では「トニック」が選択され、小節番号5では「ドミナント」が選択され、小節番号6では「トニック」が選択されることで、小節番号1〜6に対応するコード機能進行は、T-S-S-T-D-Tとなる。
【0045】
続いて、コード機能進行の各小節について、上述した基準ケーデンス(A)〜(C)からケーデンスを確定する処理が行われる。この手順を図8に示す。
最も一致度が高い基準ケーデンスから順番にコード機能確定処理を行う。
先ず、比較開始小節から基準ケーデンスの長さ分の区間(基準ケーデンス(A)(B)については3小節分、基準ケーデンス(C)については4小節分)について、基準ケーデンスと比較し(ステップ61)、完全に一致しているかどうかを確認する(ステップ62)。完全に一致していれば、そのままコード機能が確定する。
【0046】
基準ケーデンスに一致しない場合、全て(この例の場合は3種)の基準ケーデンスについて、比較開始小節からのコード機能進行と比較し、ケーデンス一致度を算出する。ケーデンス一致度は、一致コード機能数÷全コード数で計算する。
最初の比較開始小節は1小節目となる。基準ケーデンス(A)のT-S-Tとコード機能進行を比較すると、1つめのトニックは一致、2つ目のサブドミナントが一致し、3つ目のトニックが一致しない。その結果、一致度は0.67=2÷3となる。
基準ケーデンス(B)のT-D-Tとの比較の場合は、1つめのトニックのみが一致するので、一致度は0.33=1÷3となる。
基準ケーデンス(C)のT-S-D-Tのとの比較の場合は、3番目のドミナント以外は一致しているので、一致度は0.75=3÷4となる。
【0047】
本例の場合、一致度が高い基準ケーデンスは基準ケーデンス(C)のT-S-D-Tであり、続いて、コード機能進行の一致しなかった部分のコード機能を変更できるかどうかを確認する(ステップ63)。本例の場合は、基準ケーデンス(C)の3番目(ドミナント)と図7のコード機能進行の3番目(サブドミナント)が異なるので、変更可能かどうかの処理が行われる。
【0048】
具体的には、異なった部分のコード機能の分類結果を参照し、基準ケーデンスと同じコード機能に分類されたコード候補があるかどうかを調べる。コード候補があればコード機能の変更が可能と考え、コード機能変更処理を行う(ステップ64)。
本例では、図7の3番目のコード検出区間では、「ドミナント」に分類されたコード候補があるので変更が可能と判定され、コード機能を変更する(ステップ64)。小節番号3のコード機能進行について、基準ケーデンス(C)の3番目を「ドミナント」から「サブドミナント」に変更し、4小節までの区間のコード機能進行は、T-S-S-Tのコード機能として確定する。
【0049】
変更ができない場合は、全ケーデンス完了か否かの処理へ移る(ステップ65)。ステップ65では、まだ処理されていない基準ケーデンスがあるか調べ、処理されていない基準ケーデンスがあれば、その未処理の基準ケーデンスについてステップ62からの確定処理を行う。
処理されていない基準ケーデンスがなければ処理を完了する。
【0050】
ステップ65における全基準ケーデンスに対する処理が完了したら、コード機能進行の全ての区間の処理が終了したか否かを確認し(ステップ66)、終了している場合は処理を完了する。
終了していない場合は、比較開始小節を更新して、基準ケーデンスと比較(ステップ61)の処理に戻る。本例では、比較開始小節を4に更新し、基準ケーデンスと比較(ステップ61)の処理に戻る。
同様に小節4〜6の区間にコード機能確定処理を行うことで、コード機能確定(ステップ54)の処理を完了する。
【0051】
本例では、基準ケーデンスとしては、上述した最も基本的な3種(T-S-T,T-D-T,T-S-D-T)のみとしたが、これ以外の一般的に使用されるケーデンスを含んだり、「サブドミナントマイナー」や「セカンダリードミナント」を使用したものを基準ケーデンスとして追加してもよい。
【0052】
続いて、図5のフローチャートにおいて、最終的に確定したコード機能に対してコードを割り当てる(ステップ55)。ここでは、コード機能の分類結果を参照し、確定したコード機能に応じたコードを割り当てていく。
基本的には尤度が高いコードから割り当てる。
コード進行を一つ選ぶ場合は、尤度が高いものを割り当てればよいが、複数のコード進行を提案する場合は、一度割り当てたコードを、割り当て済みコード配列などに記憶し、異なるコードが選択されるようにしてもよい。
また、前後のコードとの結びつきを考慮して、割り当てを行ってもよい。
【0053】
図5のフローチャートにおけるステップ55におけるコード割当を行う場合の手順について、図9のフロ−チャートに示す。
コード機能に応じたコードをその区間の候補として選択する(ステップ71)。
割り当て済み配列を参照し、割り当て頻度を確認する(ステップ72)。
割り当てが行われていないか、割り当て頻度が他のコードより低ければ、候補となったコードをその区間のコードとして割り当てるコード割り当て処理が行われ(ステップ76)、割り当て済配列に記憶する処理(ステップ77)が行われる。
割り当て頻度が他のコード以上であれば、異なるRootでのコードの割り当て処理(ステップ73)が行われる。すなわち、ステップ73では、異なるRootで、より割り当て頻度の少ないコードを候補とする(ステップ74)。
【0054】
ステップ74において異なる候補に該当するコードがあればコード割り当て処理へ移る(ステップ76)。
ステップ74において異なる候補に該当するコードが無ければ、今回割り当てるコードをステップ71で選択されたコードに確定する(ステップ75)。
ステップ74では、同じルートで、より割り当て頻度の少ないコードを候補とする。該当するコードがなければ、割り当て済配列に記憶する処理(ステップ77)が行われる。
【0055】
コード割り当て処理(ステップ76)では、候補となったコードをその区間のコードとして割り当てる。
割り当て済配列に記憶する処理(ステップ77)では、割り当てたコードを割り当て済み配列に記憶する。
【0056】
次に、全小節について候補選択の処理が終わったか判定し(ステップ78)、終わっていなければ、次の区間の候補選択の処理をステップ71へ戻って行う。全小節の処理が終わっている場合は、提示する全てのコード進行の処理が終わったか判定し(ステップ79)、終わっていなければステップ71へ戻って、次のコード進行の処理を行う。
提示する全てのコード進行の処理が終わっていれば、図9の処理を終了する。
【0057】
本例の場合、ステップ71で最初の区間(1小節目)の候補を決める。「トニック」で最も尤度が高いGが候補となる。ステップ72では、Gは割り当て配列に記憶されていないので、ステップ76へ移り、1小節目のコードとして割り当てられる。ステップ77で割り当て済み配列に記憶する。ステップ78で全ての区間が終わっていないのでステップ71へ戻り、2小節目の処理へ移る。
【0058】
2小節目においては、「サブドミナント」で最も高い尤度のコードCが候補となる。ステップ72で、Cは割り当て配列に記憶されていないのでステップ76へ移り、2小節目のコードとして割り当てられる。ステップ77で割り当て済み配列に記憶する。さらにステップ71へ戻り、3小節目の処理へ移る。
【0059】
3小節目の処理も同様に行われる。
【0060】
4小節目は、「トニック」で最も尤度が高いGが候補となるが、ステップ72で既に登録されているので、異なるRootで最も尤度が高く、割り当て頻度が低いコードに候補に変更する。この場合Em7が候補となる。ステップ75でEm7を4小節目のコードとして割り当て、ステップ77で割り当て済み配列にEm7を記憶する。
【0061】
5小節目は「ドミナント」で最も尤度が高く、割り当て頻度が低いBm7が候補となり、Bm7が5小節目のコードとして登録され、割り当て済み配列に記憶する。
【0062】
6小節目は、トニックで最も高い尤度のGが候補になるが、割り当て済みなので、異なるRootの候補を探す。異なるRootのEm7もBm7割り当て済みで割り当て頻度もGと同じなので、割り当てられていない同じRoot(G)のコードを候補とする。この場合は、次に尤度が高いG7が候補となる。ステップ76で6小節目のコードとして割り当て、割り当て済み配列に登録する。
【0063】
以上で、コード進行候補1のコードの割り当てが完了する。
更に、別のコード進行候補を得る場合は、以上の手続きを繰り返し、各小節に対応するコード進行の候補を生成する。
【0064】
以上の手続きによって得られたコード進行画面を図10に示す。
コード進行画面90は、表示部39のコード進行表示部39aに表示される。本例では、4つのコード進行候補を別のコード進行候補として生成した。
メインコード進行は、最初はコード進行候補1と同じである。
コード進行画面90の試聴ボタン91をクリックすると、元の演奏情報と、メインに表示してあるメインコード進行を演奏し、生成されたコード進行が意図したものかどうか確認することができる。
【0065】
メインのコードを変更する場合は、同じ小節のコード候補1〜4の各コードをクリックすると、そのコードがメインのコードとなる。
候補1〜4をクリックすると、そのコード進行がメインコード進行となる。
完了ボタン92をクリックすると、図11に示すように、メインコード進行が、自動演奏装置の表示部39に演奏情報に対応して表示されたトラック画面のコードトラックに貼り付く。
【0066】
上述したコード進行推定検出装置によれば、演奏情報(又は音響信号)より検出された各コードの機能を推定し、予め記憶された基準ケーデンスに沿ったコードを選択することで、より音楽的なコード進行を得ることができる。
【0067】
また、図10のコード進行画面90に示したように、各小節の同じケーデンス(機能)に対して、複数のコード候補(候補1〜4)を作成し、異なるコードを選択可能とすることで、複数のコード進行を提案することができる。
【符号の説明】
【0068】
30…コード進行推定手段、 31…演奏情報記憶部、 32…コード検出部、 33…調検出部、 34…コード機能推定部、 35…コード機能確定部、 36…基準ケーデンス記憶部、 37…コード割当部、 38…コード演奏情報ファイル作成部、 39…表示部、 39a…コード進行表示部、 40…演奏手段(自動演奏装置)、 41…データ波形用バッファ、 42…ソフトウェア音源、 43…コード波形用バッファ、 44…加算器、 45…再生バッファ、 46…再生デバイス(音再生手段) 81…波形記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11