JP2013190694A - コード抽出装置、その方法及びそのプログラム - Google Patents

コード抽出装置、その方法及びそのプログラム Download PDF

Info

Publication number
JP2013190694A
JP2013190694A JP2012057966A JP2012057966A JP2013190694A JP 2013190694 A JP2013190694 A JP 2013190694A JP 2012057966 A JP2012057966 A JP 2012057966A JP 2012057966 A JP2012057966 A JP 2012057966A JP 2013190694 A JP2013190694 A JP 2013190694A
Authority
JP
Japan
Prior art keywords
chord
code
character
character information
lyrics
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
JP2012057966A
Other languages
English (en)
Other versions
JP6064343B2 (ja
JP2013190694A5 (ja
Inventor
Toshihisa Nakamura
利久 中村
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 JP2012057966A priority Critical patent/JP6064343B2/ja
Publication of JP2013190694A publication Critical patent/JP2013190694A/ja
Publication of JP2013190694A5 publication Critical patent/JP2013190694A5/ja
Application granted granted Critical
Publication of JP6064343B2 publication Critical patent/JP6064343B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Auxiliary Devices For Music (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)

Abstract

【課題】曲の進行に合わせたコード進行情報を正確かつ容易に作成できるコード抽出装置を提供すること。
【解決手段】コード抽出装置1のCPU10は、コード譜から、基音及び3度の表記以外の文字列を除去し、除去されたコード譜内の所定範囲(改行コード、タブコード、または特定の記号文字列などで区切られた範囲)に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を歌詞を表わす文字情報として識別し、基音及び3度の表記以外の文字列を除去されたコード譜内の文字情報から、識別された歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出する。
【選択図】図4

Description

本発明は、コード抽出装置、その方法及びそのプログラムに関する。
楽器を演奏する時の運指を利用者に提示するための各種の技術が提案されている。例えば、特許文献1には、ギターにおけるコードの押さえ方情報であるコードダイヤグラムを曲の進行に合わせて表示する技術が開示されている。この技術によれば、演奏者は表示されたコードダイヤグラムを確認しながらギターの演奏を行うことができる。
特開2005−241877号公報
しかしながら、特許文献1では、曲の進行に合わせたコード進行情報を予め記憶装置に記憶させておく必要があるため、音楽の専門知識を持った者がテンポ、拍子、調などを考慮したコード進行情報を予め作成しなければならなかった。よって、作成に時間がかかり十分な楽曲数を準備するためにはコスト的、時間的に困難であった。
そこで本発明は、曲の進行に合わせたコード進行情報を正確かつ容易に作成できるコード抽出装置を提供することを目的とする。
上記目的を達成するため、本発明の一態様のコード抽出装置は、
少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出装置であって、
前記コード譜から、基音及び3度の表記以外の文字列を除去する文字列除去手段と、
前記文字列除去手段により前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別手段と、
前記文字列除去手段により前記文字列を除去されたコード譜内の文字情報から、前記歌詞識別手段により識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出手段と、
を備える。
本発明によれば、曲の進行に合わせたコード進行情報を正確かつ容易に作成できる。
図1は、本発明の第1及び第2実施形態にかかるコード抽出装置1のハードウェア構成を示す図である。 図2は、本発明の第1及び第2実施形態にかかるコード譜を示す図である。 図3は、本発明の第1実施形態にかかるコード抽出装置1において実行されるメインフローを示すフローチャートである。 図4は、本発明の第1実施形態にかかるコード抽出装置1において実行される和音コード抽出処理の第1の例を示すフローチャートである。 図5は、本発明の第1実施形態にかかるコード抽出装置1において実行される表示処理を示すフローチャートである。 図6は、本発明の第1実施形態にかかるコード譜を示す図である。 図7は、本発明の第1実施形態にかかるコード譜からテンションノート等を削除したことを示す図である。 図8は、本発明の第1実施形態にかかるコード譜から歌詞を含んだ和音コードを抽出したことを示す図である。 図9は、本発明の第1実施形態にかかるコード譜から歌詞を含まない和音コードを抽出したことを示す図である。 図10は、図9に示す和音コードにテンションノート等を付加したことを示す図である。 図11は、本発明の第1実施形態にかかるテンションノート等を示すテーブルである。 図12は、本発明の第1実施形態にかかる表示部の例を示す図である。 図13は、本発明の第1実施形態にかかるコード抽出装置1において実行される和音コード抽出処理の第2の例を示すフローチャートである。 図14は、本発明の第2実施形態にかかるコード抽出装置1において実行されるメインフローを示すフローチャートである。 図15は、本発明の第2実施形態にかかるコード抽出装置1において実行されるデータベース作成処理を示すフローチャートである。 図16は、本発明の第2実施形態にかかるコード譜を、歌詞と、歌詞を含む和音コードと、に分離したことを示す図である。 図17は、本発明の第2実施形態にかかるコード譜を、歌詞と、歌詞を含まない和音コードと、に分離したことを示す図である。 図18は、図17に示す和音コードにテンションノート等を付加したことを示す図である。
以下、添付図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の第1及び第2実施形態にかかるコード抽出装置1のハードウェア構成を示す図である。図1に示すように、本実施の形態にかかるコード抽出装置1は、CPU(Central Processing Unit)10、ROM(Read Only Memory)20、RAM(Random Access Memory)30、入力部40、及び表示部50を備える。
CPU10は、コード抽出装置1全体の制御、読み込んだコード譜からのコード進行データの抽出、抽出したコード進行データに含まれるコード名に対応するコードダイヤグラムの表示部50への表示制御など、種々の処理を実行する。
ROM20は、CPU10に実行させる種々の処理、例えば、コード進行データの抽出処理、コードダイヤグラムの表示制御処理などのプログラムを記憶する。また、当該プログラムの実行で参照されるテーブルを記憶する。RAM30は、ROM20から読み出されたプログラムや、処理の過程で一時的に生じたデータを記憶する。
入力部40は、使用者によるコード譜の操作入力を受け付け、表示部50は、コード譜とコードの押さえ方の情報であるコードダイヤグラムを表示する。
図2は、本発明の第1及び第2実施形態にかかるコード譜を示す図である。ここで、コード譜とは、曲のコード進行を表すコード名(以下、「和音コード」とする)と歌詞とからなる文字情報である。
本発明の第1及び第2実施形態にかかるコード譜は、文字情報のみで構成されるプレーンテキスト形式である。図2(a)〜(d)に示すように、コード譜は、先頭行に曲のタイトル、次行とその次の行に和音コードと歌詞とをそれぞれ有しており、さらに次の行以降に、和音コードの行と歌詞の行とを連続して有している。例えば、図2(a)の例では、「C」、「G」、「Am」、「F」などが和音コードである。
なお、タイトルの行と和音コードの行との間、及び、和音コードの行と歌詞の行との間には、適宜空白行が含まれていてもよい。
[第1実施形態]
以下、本発明の第1実施形態にかかるコード抽出装置1において実行される処理について説明する。図3は、本発明の第1実施形態にかかるコード抽出装置1において実行されるメインフローを示すフローチャートである。
図3に示すようにコード抽出装置1のCPU10は、コード抽出装置1の電源が投入されると、RAM30中のデータや、表示部50の画像のクリアを含むイニシャル処理(初期化処理)を実行する(ステップS1)。イニシャル処理が終了すると、CPU10は、図4(又は、図13)を参照して後述する和音コード抽出処理を実行する(ステップS2)。和音コード抽出処理が終了すると、CPU10は、図5を参照して後述する表示処理を実行する(ステップS3)。表示処理が終了すると、CPU10は、メインフローを終了する。
図4は、本発明の第1実施形態にかかるコード抽出装置1において実行される和音コード抽出処理の第1の例を示すフローチャートである。
まず、ステップS11でCPU10は、コード譜を読み込む。具体的には、図2で示したコード譜を読み込む。また、コード譜は、入力部40からプレーンテキスト形式で入力されたコード譜であってもよいし、CD−ROM(図示せず)等の外部記憶にプレーンテキスト形式で記憶されたコード譜であってもよい。例えば、図6(a)又は(b)に示すコード譜が読み込まれる。
ここで、図4の和音コード抽出処理においては、説明の便宜のため、図6(a)又は(b)に示すように、和音コードの行と歌詞の行とが、それぞれ、2行ずつであるものとする。
図4に戻って、ステップS12で、CPU10は、読み込まれたコード譜から、スペースに囲まれた文字列、もしくは、スペースと改行コードとに囲まれた文字列を抽出する。例えば、図6(a)を例とすると、「タイトル:△△△」、「C」、「G]、「When」、「me」「C/E」等が抽出される。
図4に戻って、ステップS13で、CPU10は、ステップS12で抽出した文字列から、テンションノート1、テンションノート2、ベース音指定の文字列を削除する。
ここで、テンションノート1、テンションノート2とは、基音(1度)と3度と5度の3音で構成される和音コードに付加される6度、7度、9度、11度、又は13度の音であり、図11に示される文字列で表される。例えば、「C7」は、「C、E、G、B♭」の4音で構成される和音コードであり、「C、E、G」が1度、3度、5度の3音であり、「B♭」が付加される7度の音である。「C、E、G」の3音では、和音コードは「C」と表現される。
したがって、ステップS12で抽出した文字列に「C7」が存在すれば、CPU10は、「7」を削除して「C」とする。
また、ベース音指定の文字列とは、和音コードのベース音が基音と異なる場合に付加される文字列である。例えば、「C、E、G」の3音で構成される和音コードである「C」のベース音が「C」であれば、和音コードの表記は、そのまま「C」であるが、ベース音が「G」であれば、和音コードの表記は、「C/G」又は「ConG」である。
したがって、ステップS12で抽出した文字列に「C/G」又は「ConG」が存在すれば、CPU10は、「/G」又は「onG」を削除して「C」とする。
ここで、ステップS12の処理後の様子を図7に示す。図7(a)によれば、図6(a)に示したコード譜に存在した「C/E」のベース音指定の文字列である「/E」が削除され、「C」となっている。また、図7(b)によれば、図6(b)に示したコード譜に存在した「G7」のテンションノート1の文字列である「7」が削除され、「G」となっている。
図4に戻って、ステップS14で、CPU10は、基音及び3度の表記以外の文字列があるか否かを判断する。この判断がYESの場合、CPU10は、ステップS15に処理を移し、NOの場合、ステップS16に処理を移す。
ここで、基音は、図11に示すように「C」〜「B」までの17個で表現される。さらに、「C#」と「D♭」とは異名同音であり、「D#」と「E♭」、「F#」と「G♭」、「G#」と「A♭」、「A#」と「B♭」も同様に異名同音である。よって、12種類の音高に対して、17通りの表現が可能となっている。
また、3度の表記とは、和音コードの3度の音を変化させる付加文字のことである。例えば、図11に示す「m」は、3度の音を長3度から短3度に変化させることを示している。具体例として、「Cm」とは、「C、E♭、G」の3音からなる和音コードであり、「C、E、G」からなる和音コードである「C」の基音から長3度離れた音である「E」を短3度離れた音である「E♭」に変化させた和音コードである。
図4に戻って、ステップS15で、CPU10は、基音及び3度の表記以外の文字列を削除する(ただし、改行コードは残す)。
ステップS15の処理後の様子を図8に示す。図8(a)によれば、図7(a)に存在する基音及び3度の表記のみが残っている。図8(b)も同様である。
図4に戻って、ステップS16で、CPU10は、最初の文字列を曲の調とする。具体的には、図8に示す基音及び3度の表記のみの文字列うち最初の文字列である「C」(ハ長調)を曲の調とする。
ステップS17で、CPU10は、次の文字を和音コードとしたとき和音の構成音は曲の調の音階に乗っているか否かを判断する。具体的には、CPU10は、図示しない音階データベースと図示しないコードデータベースとを参照して判断する。この判断がYESの場合、CPU10は、処理をステップS37に移し、NOの場合、処理をステップS20に移す。
例えば、図8(b)において、最初の文字列「C」の次の文字列である和音コード「F」の構成音は、曲の調であるハ長調の音階に乗っている。
ここで、和音コード「F」がハ長調の音階に乗っているか否かを判断する方法について説明する。図示しない音階データベースは、各調(12種類の長調及び12種類の短調)の音階の構成音を記憶しており、ハ長調の音階は、「C、D、E、F、G、A、B」で構成される。図示しないコードデータベースは、各和音コード(12種類の長三和音及び12種類の短三和音)の構成音を記憶しており、和音コード「F」の構成音は、「C、F、A」である。したがって、和音コード「F」の構成音はハ長調の音階に含まれるので、ハ長調の音階に乗っていると判断される。この判断方法は、他の調及び他の和音コードの場合でも成立する。
図4に戻って、ステップS37で、CPU10は、転調フラグをクリアし、ステップS18で、CPU10は、次は改行コードであるか否かを判断する。この判断がYESの場合、CPU10は、ステップS19に処理を移し、NOの場合には、ステップS17に処理を移す。
ステップS19で、CPU10は、改行コードまでを和音コード名として保持する。具体的には、RAM30に改行コードまでを和音コード名として記憶する。
例えば、図8(b)において、1行目の和音コード「C」、「F」、「C」は、全てハ長調の音階に乗っているので、RAM30に和音コード名として記憶される。
図4に戻って、ステップS23で、CPU10は、次の行に文字列があるか否かを判断する。この判断がYESの場合、CPU10は処理をステップS17に移し、NOの場合、処理をステップS24に移す。
ここで、図8(b)の2行目について説明する。2行目の最初の和音コードは、「A」であるが、ハ長調の音階に乗らないので、ステップS17でNOと判断される。
ステップS20では、転調フラグが1か否かを判断する。この判断がYESの場合、CPU10は処理をステップS22に移し、NOの場合、処理をステップS21に移す。
2行目の最初の和音コード「A」を処理している時点では、転調フラグは1ではないので、ステップS21に処理が移る。
ステップS21では、CPU21この和音コード「A」を新しい曲の調(イ長調)とする。また、転調フラグを1とする。その後、処理をステップS17に移す。
さらに、「A」の次の文字列は「B」であり、和音コード「B」は、イ長調の音階に乗らないので、CPU10は、ステップS17でNOと判断し、ステップS20に処理を移す。ステップS20では、CPU10は、転調フラグを1と判断(転調が2回連続して行われたと判断)し、ステップS22に処理を移す。
ステップS22で、CPU10は、次の改行コードまでの文字列を破棄する。例えば、図8(b)の2行目の「A、B、C、D、E、F、G」を、和音コードではなく歌詞と識別し、改行コードを含めて破棄する。さらに、ステップS38において、CPU10は、調を元の調(ハ長調)に戻す。その後、CPU10は、処理をステップS23に移す。
ここで、図8(b)の3行目について説明する。3行目の最初の和音コードは、「F」であり、ハ長調の音階に乗っている。また、その後の和音コードは「C」、「G」、「C」であり、いずれも、ハ長調の音階に乗っている。よって、3行目については、ステップS17、ステップS37及びステップS18の処理が繰り返されて、RAM30に和音コードとして記憶される。この処理が終了した後の様子を図9(b)に示す。図9(b)によれば、図8(b)の2行目が削除されて、和音コードのみが残っている。
図8(a)の場合は、和音コードの全てがハ長調の音階に乗るので、削除が行われず、そのまま和音コードとしてRAM30に記憶される(図9(a)参照)。
ステップS24では、CPU10は、ステップS13で削除したテンションノート1、テンションノート2、及びベース音指定の文字列を該当箇所に再度付加する。具体的には、RAM30に記憶されている和音コードの該当箇所に付加する。
ステップS24の処理後の様子を図10に示す。図10(a)によれば、ステップS13で削除した「/E」が付加されて、「C/E」に戻っている。図10(b)も同様である。
以上、図4の和音コード抽出処理によって、図10に示すように、コード譜から和音コードのみが抽出された。
なお、図4の和音コード抽出処理では、改行コードを認識して行単位で和音コードと歌詞とを区別しているが、これに限られず、特定の記号文字列やタブコードなどで区切られた範囲を単位として和音コードと歌詞とを区別してもよい。
図5は、本発明の第1実施形態にかかるコード抽出装置1において実行される表示処理を示すフローチャートである。
まず、ステップS25で、CPU10は、コード譜を読み込む。この処理は、図4で上述したステップ11と同様である。図5の表示処理では、図2(a)に示したコード譜を読み込むものとして説明する。
ステップS26で、CPU10は、和音コード文字情報を読み込む。具体的には、RAM30に記憶されている和音コード文字情報を読み込む。図5の表示処理では、図2(a)に示したコード譜に対応する和音コード文字情報(図10(a)参照)を読み込むものとして説明する。
ステップS27で、CPU10は、拍子、テンポ、及び一行当たりの小節数の設定を行う。これらは、初期値としてコード抽出装置1に予め記憶されていてもよいし、また、コード抽出装置1に備えられた設定手段(図示せず)によって、使用者が設定してもよい。
第1実施形態では、拍子を4分の4(1小節に4分音符が4つである拍子)、テンポを60(1分間に4分音符が60個となるテンポ)、1行当たりの小節数を2小節として説明する。この場合、1行当たりの経過時間は、4×2×60/60=8秒となる。
ステップS28では、CPU10は、表示スタートボタン(図示せず)の入力があったか否かを判断する。この判断がYESの場合、CPU10は、ステップS29に処理を移し、NOの場合には、ステップS28に処理を移す。
ステップS29では、CPU10は、1行目の和音コードに対応するコードダイヤグラムデータを読み込む。コードダイヤグラムデータは、コードの押さえ方を示す画像であるコードダイヤグラムに対応した画像ファイルであり、例えば、和音コード名と画像ファイル名とが対応付けられたコードダイヤグラムテーブル(図示せず)としてROM20に記憶されている。
コードダイヤグラムは、ギター、ウクレレ、及びキーボードなど、複数種類の楽器について、和音コードの演奏方法の画像を有している。例えば、ギターついての和音コードの演奏方法は、後述する図12の第2表示領域502に示されるとおりである。演奏者は、コード抽出装置1が備える切り替えボタン(図示せず)を操作することで、コードダイヤグラムの画像の種類を楽器に応じて切り替えることができる。
ここで、図10によれば、1行目の和音コードは、「C」、「G」、「Am」、「F」であるので、CPU10は、これらに対応する画像ファイルを読み込む。
ステップS30で、CPU10は、コード譜の画面表示及びコードダイヤグラム画面の表示を行う。具体的には、図12に示すように、表示部50の第1表示領域501にコード譜を表示し、第2表示領域502に、コードダイヤグラムの表示を行う。図12によれば、1行目の和音コードとこれに対応する歌詞とが太字で表示されており、現在演奏すべき箇所が強調表示されている。
ステップS31で、CPU10は、和音コード一行分の時間が経過したか否かを判断する。この判断がYESの場合、CPU10は、ステップS32に処理を移し、NOの場合には、ステップS31に処理を移す。
ステップS32では、CPU10は、次の和音コード行があるか否かを判断する。この判断がYESの場合、CPU10は、ステップS33に処理を移し、NOの場合には、表示処理を終了する。
ステップS33では、CPU10は、次の和音コード行に対応するコードダイヤグラムデータを読み込む。
ステップS34では、CPU10は、該当行のコード譜の画面表示及びコードダイヤグラム画面の表示を行う。該当行のコード譜の画面表示については、CPU10は、太字で強調表示する。
図13は、本発明の第1実施形態にかかるコード抽出装置1において実行される和音コード抽出処理の第2の例を示すフローチャートである。
この第2の例では、最初に決定された調から一度別の調に転調してすぐに元の調に戻る場合に和音コードの行が削除されてしまうことを防止する処理を説明する(第1の例では転調が2回連続したことになり、和音コードの行が削除されてしまう)。
例えば、図2(c)のコード譜によれば、和音コードが「C」〜「Am」までは、ハ長調の音階に乗っているが(調の音階に乗っているか否かの判断方法は、図4のステップS17で説明したのと同様である)、「D」はハ長調の音階に乗らずに転調し、次の「G」でハ長調に戻っている。
まず、CPU10は、図4のステップS11〜ステップS16までの処理を行い、ステップS47に処理を移す。
ステップS47で、CPU10は、次の文字列を和音コードとしたとき、和音の構成音は曲の調の音階に乗っているか否かを判断する。この判断がYESの場合、CPU10は、ステップS51に処理を移し、NOの場合には、ステップS48に処理を移す。例えば、図2(c)のコード譜の場合、次の文字列の和音コードが「D」の場合、ハ長調の音階に乗っていないので、ステップS48に処理が移る。
ステップS48で、CPU10は、仮転調フラグが1である否かを判断する。この判断がYESの場合、CPU10は、ステップS54に処理を移し、NOの場合には、ステップS49に処理を移す。和音コードが「D」の場合、NOと判断され、ステップS49に処理が移る。
ステップS49で、CPU10は、仮転調フラグを1にする。
ステップS50で、CPU10は、この和音コード「D」を新しい曲の調の候補とする。ただし、まだ調は変更しない。その後、処理をステップS47に移す。
図2(c)のコード譜において、「D」の次の文字列は「G」であるので、ステップS47において、和音コード「G」は、ハ長調の音階に乗っていると判断され、ステップS51に処理が移る。
ステップS51でCPU10は、仮転調フラグが1である否かを判断する。この判断がYESの場合、CPU10は、ステップS52に処理を移し、NOの場合には、ステップS53に処理を移す。和音コードが「D」の場合にステップS49で仮転調フラグが1になっているので、CPU10は、ステップS52に処理を移す。
ステップS52で、CPU10は、仮転調フラグをクリアする。すなわち、ステップS50における転調候補を破棄する。これにより、最初の調から一度転調してすぐに元の調に戻った場合に、2度の転調とみなされて和音コードの行が削除されてしまうことを防止できる。
ステップS53で、CPU10は、次は改行コードであるか否かを判断する。この判断がYESの場合、CPU10は、ステップS57に処理を移し、NOの場合には、ステップS47に処理を移す。
ステップS57で、CPU10は、改行コードまでを和音コード名として保持する。具体的には、RAM30に改行コードまでを和音コード名として記憶する。
ステップS54で、CPU10は、転調フラグが1であるか否かを判断する。この判断がYESの場合、CPU10は、ステップS58に処理を移し、NOの場合には、ステップS55に処理を移す。
ステップS55で、CPU10は、ステップS50で候補となった和音コードを新しい曲の調とする。さらに、転調フラグを1にする。
ステップS56で、CPU10は、直近のステップS47における和音コードの構成音は曲の新しい調の音階に乗っているか否かを判断する。この判断がYESの場合、CPU10は、ステップS47に処理を移し、NOの場合には、ステップS58に処理を移す。
ステップS58で、CPU10は、次の改行コードまでの文字列を和音コードではなく歌詞と識別して破棄する。さらに、ステップS68で、CPU10は、調を元の調に戻す。その後、CPU10は、処理をステップS59に移す。
ステップS59で、CPU10は、次の行に文字列があるか否かを判断する。この判断がYESの場合、CPU10は処理をステップS47に移し、NOの場合、処理をステップS60に移す。
ステップS60の処理は、図4のステップS24と同様である。
ここで、和音コード抽出処理の第2の例においても、図4の和音コード抽出処理の第1の例と同様に、図8(b)における、「A、B、C、D、E、F、G」の行が削除されることを説明する。
ステップS47で、次の文字列の和音コードは「A」であり、ハ長調の音階に乗らないので、ステップS48に移る。仮転調フラグは1ではないので、ステップS49に移り、仮転調フラグが1になる。ステップS50で、和音コード「A」(イ長調)を新しい曲の調の候補とする(まだ調は変更しない)。その後、ステップS47に移る。
ステップS47では、次の文字列の和音コードは「B」であり、ハ長調の音階に乗らないので、ステップS48に移る。仮転調フラグは1なので、ステップS54に移る。転調フラグは1ではないので、ステップS55に移り、ステップS50で候補となった和音コード「A」であるイ長調を新しい曲の調とし、転調フラグを1にする。ステップS56では、直近のステップS47における和音コード「B」の構成音は、イ長調の音階に乗っていないので、ステップS58に移り、次に改行コードまでの文字列が破棄される。
このようにして、図8(b)における、「A、B、C、D、E、F、G」の行が削除され、図9(b)に示す和音コードが得られる。
図8(a)の和音コードの場合、全てハ長調の音階に乗るので、仮転調フラグが1とはならずに、ステップS47、S51、S53、S57、S59の処理を繰り返し、図9(a)に示す和音コードが得られる。
以上、図13の和音コード抽出処理によって、一旦転調してすぐに元の調に戻った場合に和音コードの行を削除することを防止できる。さらに、図10に示すように、コード譜から和音コードのみが抽出される。
なお、図13の和音コード抽出処理では、改行コードを認識して行単位で和音コードと歌詞とを区別しているが、これに限られず、特定の記号文字列やタブコードなどで区切られた範囲を単位として和音コードと歌詞とを区別してもよい。
[第2実施形態]
図14は、本発明の第2実施形態にかかるコード抽出装置1において実行されるメインフローを示すフローチャートである。
図14に示すようにコード抽出装置1のCPU10は、コード抽出装置1の電源が投入されると、RAM30中のデータのクリアを含むイニシャル処理(初期化処理)を実行する(ステップS61)。イニシャル処理が終了すると、CPU10は、図15を参照して後述するデータベース作成処理を実行する(ステップS62)。このデータベース作成処理は、データベース作成対象となるコード譜がなくなるまで繰り返し実行される(ステップS63)。データベース作成対象となるコード譜がなくなると、CPU10は、後述するデータベース検索処理を実行する(ステップS64)。データベース検索処理が終了すると、CPU10は、メインフローを終了する。
図15は、本発明の第2実施形態にかかるコード抽出装置1において実行されるデータベース作成処理を示すフローチャートである。
図15のステップS71〜ステップS84のうち、ステップS75、S82、S84以外の処理は、図4のステップS11〜S14、S16〜S21、S23と同様であるので、説明を省略する。
ステップS75で、CPU10は、基音及び3度の表記以外の文字列を分離する(ただし、改行コードは残す)。これにより、図16に示すように、基音及び3度の表記の文字列が和音コードとして一時的に分類され、基音及び3度の表記以外の文字列が歌詞として一時的に分類される。
ステップS82で、CPU10は、次の改行コードまでの文字列を削除し、歌詞に転記する。例えば、図16(b)の和音コードの2行目の「A、B、C、D、E、F、G」を、歌詞と識別し、改行コードを含めて削除して、歌詞に転記する。さらに、ステップS82において、CPU10は、調を元の調(ハ長調)に戻す。その後、CPU10は、処理をステップS83に移す。これにより、図17に示すように、歌詞と和音コードとが正確に分離される。
ステップS84では、CPU10は、ステップS73で削除したテンションノート1、テンションノート2、及びベース音指定の文字列を該当箇所に再度付加する。具体的には、RAM30に記憶されている和音コードの該当箇所に付加する。
ステップS84の処理後の様子を図18に示す。図18(a)によれば、ステップS73で削除した「/E」が付加されて、「C/E」に戻っている。図10(b)も同様に、ステップS73で削除した「7」が付加されて「G7」に戻っている。
ステップS85で、CPU10は、歌詞と和音コードをそれぞれ検索用データベースに記憶する。歌詞は、歌詞データベースに記憶し、和音コードは、和音コードデータベースに記憶する。歌詞データベース及び和音コードデータベースはRAM30の所定領域に存在する。
以上、図15のデータベース作成処理によって、図18に示すように、コード譜から歌詞と和音コードとが正確に分離されて、各データベースに記憶された。
なお、図15のデータベース作成処理では、改行コードを認識して行単位で和音コードと歌詞とを区別しているが、これに限られず、特定の記号文字列やタブコードなどで区切られた範囲を単位として和音コードと歌詞とを区別してもよい。
ここで図14のステップS64の処理であるデータベース検索処理について説明する。
まず、CPU10は、音声入力があるか否かを判断する。具体的には、コード抽出装置1が備える集音装置(図示せず)から音声入力があるか否かを判断する。例えば、音声入力があった場合には、CPU10は、所定時間音声を取り込み、音声データをRAM30に記憶する。
続いて、CPU10は、入力音声からメロディ(音高データ)を抽出し、抽出したメロディから、コード進行を推定し、入力音声から音声認識により歌詞を抽出する。
続いて、CPU10は、推定したコード進行に基づいて、和音コードデータベースを検索する。また、CPU10は、抽出した歌詞に基づいて、歌詞データベースを検索する。
さらに、CPU10は、歌詞及びコード進行の一致度を算出して、一致度に基づいて楽曲を推定する。例えば、歌詞及びコード進行の一致度が高い順に表示部50に表示することで、楽曲を推定する。
データベース検索処理について説明は以上である。
ここで、本発明の第1及び第2実施形態にかかるコード抽出装置1のハードウェア構成の変形例について説明する。
当該変形例では、図1を参照して説明したハードウェア構成に加えて、CPU10は、通信部を介して、インターネットと通信可能に連結されている。これにより、CPU10は、通信部を介して、インターネット上に存在するプレーンテキストであるコード譜をダウンロードして、RAM30に記憶する。さらに、CPU10は、記憶されたコード譜を読み込むことによって、上述の和音コード抽出処理、表示処理を実行することにより、上述したようにコードダイヤグラムを表示する。
第1実施形態のコード抽出装置1のCPU10は、コード譜から、基音及び3度の表記以外の文字列を除去し、除去されたコード譜内の所定範囲(改行コード、タブコード、または特定の記号文字列などで区切られた範囲)に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を歌詞を表わす文字情報として識別し、基音及び3度の表記以外の文字列を除去されたコード譜内の文字情報から、識別された歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出する。
したがって、歌詞とコード名とを正確に識別できるので、コード名を正確かつ容易に抽出できる。
第1実施形態のコード抽出装置1のCPU10は、基音(1度)と3度と5度の3音で構成される和音コードに付加される6度、7度、9度、11度、又は13度の音を表わす文字列、及び和音コードのベース音が基音と異なる場合に付加される文字列を除去する。
したがって、基音及び3度の表記のみに基づいてコード名を抽出できるので、コード名の抽出処理を容易に行うことができる。
第1実施形態のコード抽出装置1のCPU10は、所定範囲に含まれる文字情報で表わされるコード名のコード構成音が、当該所定範囲の先頭の文字情報に基づいて決定される調の音階に含まれる場合に、所定の条件を満足すると判別する。
したがって、コード名のコード構成音が、決定された調の音階に含まれる場合に、当該コード名が歌詞と判断されてしまうこと、を防止できる。
第1実施形態のコード抽出装置1のCPU10は、所定範囲に含まれる文字情報で表わされるコード名のコード構成音が、当該所定範囲の先頭の文字情報に基づいて決定される調の音階に含まれない場合には、当該コード名に基づいて調を再決定するとともに、当該再決定された調にて再度所定の条件を満足するか否か判別する。
したがって、コード名のコード構成音が、再決定された調の音階に含まれる場合に、当該コード名が歌詞と判断されてしまうこと、を防止できる。
第1実施形態のコード抽出装置1のコード譜には、改行コード、タブコード及び特定の文字記号列の少なくともひとつが、所定範囲の間隔で挿入されている。
したがって、コード譜において所定範囲に含まれる文字列の抽出が容易になる。
第1実施形態のコード抽出装置1は、抽出されたコード進行情報を構成するコード名を表示する表示装置50を有する。また、表示装置50はさらに、除去された文字列及び歌詞を表わす文字情報として識別された文字情報を、コード進行情報を構成するコード名とは別の領域に表示する。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
第1実施形態においては、コードダイヤグラムを和音コードの一行ごとに表示したが、これに限られず、曲中で使用される全ての和音コードに対応するコードダイヤグラムを一括に表示してもよい。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段などより構成される全体的な装置を意味するものとする。
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出装置であって、
前記コード譜から、基音及び3度の表記以外の文字列を除去する文字列除去手段と、
前記文字列除去手段により前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別手段と、
前記文字列除去手段により前記文字列を除去されたコード譜内の文字情報から、前記歌詞識別手段により識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出手段と、
を備えるコード抽出装置。
[付記2]
付記1に記載のコード抽出装置において、
前記文字列除去手段はさらに、基音(1度)と3度と5度の3音で構成される和音コードに付加される6度、7度、9度、11度、又は13度の音を表わす文字列、及び和音コードのベース音が基音と異なる場合に付加される文字列を除去するコード抽出装置。
[付記3]
付記1に記載のコード抽出装置において、
前記歌詞識別手段は、前記所定範囲に含まれる文字情報で表わされるコード名のコード構成音が、当該所定範囲の先頭の文字情報に基づいて決定される調の音階に含まれる場合に、前記所定の条件を満足すると判別するコード抽出装置。
[付記4]
付記3に記載のコード抽出装置において、
前記歌詞識別手段は、前記所定範囲の先頭の文字情報に基づいて決定される調の音階に含まれない場合には、当該コード名に基づいて前記調を再決定するとともに、当該再決定された調にて再度前記所定の条件を満足するか否か判別するコード抽出装置。
[付記5]
付記1に記載のコード抽出装置において、
前記読み出されたコード譜は、改行コード、タブコード及び特定の文字記号列の少なくともひとつが、前記所定範囲の間隔で挿入されているコード抽出装置。
[付記6]
請求項1に記載のコード抽出装置においてさらに、
前記コード進行情報抽出手段により抽出されたコード進行情報を構成するコード名を表示する表示手段を有するコード抽出装置。
[付記7]
付記6に記載のコード抽出装置において、
前記表示手段はさらに、前記文字列除去手段にて除去された文字列及び前記歌詞識別手段にて前記歌詞を表わす文字情報として識別された文字情報を、前記コード進行情報を構成するコード名とは別の領域に表示するコード抽出装置。
[付記8]
少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出方法であって、
前記コード譜から、前記基音及び3度の表記以外の文字列を除去する文字列除去ステップと、
前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別ステップと、
前記文字列を除去されたコード譜内の文字情報から、前記識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出ステップと、
を含むコード抽出方法。
[付記9]
少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出装置として用いられるコンピュータに、
前記コード譜から、前記基音及び3度の表記以外の文字列を除去する文字列除去ステップと、
前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別ステップと、
前記文字列を除去されたコード譜内の文字情報から、前記識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出ステップと、
を実行させるプログラム。
1・・・コード抽出装置、10・・・CPU、20・・・ROM、30・・・RAM、40・・・入力装置、50・・・表示部、60・・・通信部、70・・・インターネット、501・・・第1表示領域、502・・・第2表示領域

Claims (9)

  1. 少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出装置であって、
    前記コード譜から、基音及び3度の表記以外の文字列を除去する文字列除去手段と、
    前記文字列除去手段により前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別手段と、
    前記文字列除去手段により前記文字列を除去されたコード譜内の文字情報から、前記歌詞識別手段により識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出手段と、
    を備えるコード抽出装置。
  2. 請求項1に記載のコード抽出装置において、
    前記文字列除去手段はさらに、基音(1度)と3度と5度の3音で構成される和音コードに付加される6度、7度、9度、11度、又は13度の音を表わす文字列、及び和音コードのベース音が基音と異なる場合に付加される文字列を除去するコード抽出装置。
  3. 請求項1に記載のコード抽出装置において、
    前記歌詞識別手段は、前記所定範囲に含まれる文字情報で表わされるコード名のコード構成音が、当該所定範囲の先頭の文字情報に基づいて決定される調の音階に含まれる場合に、前記所定の条件を満足すると判別するコード抽出装置。
  4. 請求項3に記載のコード抽出装置において、
    前記歌詞識別手段は、前記所定範囲の先頭の文字情報に基づいて決定される調の音階に含まれない場合には、当該コード名に基づいて前記調を再決定するとともに、当該再決定された調にて再度前記所定の条件を満足するか否か判別するコード抽出装置。
  5. 請求項1に記載のコード抽出装置において、
    前記読み出されたコード譜は、改行コード、タブコード及び特定の文字記号列の少なくともひとつが、前記所定範囲の間隔で挿入されているコード抽出装置。
  6. 請求項1に記載のコード抽出装置においてさらに、
    前記コード進行情報抽出手段により抽出されたコード進行情報を構成するコード名を表示する表示手段を有するコード抽出装置。
  7. 請求項6に記載のコード抽出装置において、
    前記表示手段はさらに、前記文字列除去手段にて除去された文字列及び前記歌詞識別手段にて前記歌詞を表わす文字情報として識別された文字情報を、前記コード進行情報を構成するコード名とは別の領域に表示するコード抽出装置。
  8. 少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出方法であって、
    前記コード譜から、前記基音及び3度の表記以外の文字列を除去する文字列除去ステップと、
    前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別ステップと、
    前記文字列を除去されたコード譜内の文字情報から、前記識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出ステップと、
    を含むコード抽出方法。
  9. 少なくともコード名及び歌詞を表わす文字情報で構成されるコード譜から、コード進行情報を構成するコード名を抽出するコード抽出装置として用いられるコンピュータに、
    前記コード譜から、前記基音及び3度の表記以外の文字列を除去する文字列除去ステップと、
    前記文字列を除去されたコード譜内の所定範囲に含まれる文字情報において、所定の条件を満足しない場合、当該所定範囲の文字情報を前記歌詞を表わす文字情報として識別する歌詞識別ステップと、
    前記文字列を除去されたコード譜内の文字情報から、前記識別された前記歌詞を表わす文字情報を除いた文字情報を、コード進行情報を構成するコード名として抽出するコード進行情報抽出ステップと、
    を実行させるプログラム。
JP2012057966A 2012-03-14 2012-03-14 コード抽出装置、その方法及びそのプログラム Active JP6064343B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012057966A JP6064343B2 (ja) 2012-03-14 2012-03-14 コード抽出装置、その方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012057966A JP6064343B2 (ja) 2012-03-14 2012-03-14 コード抽出装置、その方法及びそのプログラム

Publications (3)

Publication Number Publication Date
JP2013190694A true JP2013190694A (ja) 2013-09-26
JP2013190694A5 JP2013190694A5 (ja) 2015-04-30
JP6064343B2 JP6064343B2 (ja) 2017-01-25

Family

ID=49390975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012057966A Active JP6064343B2 (ja) 2012-03-14 2012-03-14 コード抽出装置、その方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP6064343B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015075575A (ja) * 2013-10-08 2015-04-20 ヤマハ株式会社 音楽データ生成装置および音楽データ生成方法を実現するためのプログラム
JP2017215610A (ja) * 2017-08-08 2017-12-07 ヤマハ株式会社 コード進行情報生成装置およびコード進行情報生成方法を実現するためのプログラム
CN111052221A (zh) * 2017-09-07 2020-04-21 雅马哈株式会社 和弦信息提取装置、和弦信息提取方法及和弦信息提取程序

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250556A (ja) * 1999-02-26 2000-09-14 Yamaha Corp 電子楽器等における和音検出装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250556A (ja) * 1999-02-26 2000-09-14 Yamaha Corp 電子楽器等における和音検出装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN7015002899; ライブに欠かせない最強コード譜アプリ〜On Song for iPad , 20100902, [online] *
JPN7015002900; Can OnSong import my regular text chord charts and transpose them? , 20110314, [online] *
JPN7015002901; "Onsong for iPad" , 20100605, [online] *
JPN7015002901; Onsong for iPad , 20100605, [online] *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015075575A (ja) * 2013-10-08 2015-04-20 ヤマハ株式会社 音楽データ生成装置および音楽データ生成方法を実現するためのプログラム
JP2017215610A (ja) * 2017-08-08 2017-12-07 ヤマハ株式会社 コード進行情報生成装置およびコード進行情報生成方法を実現するためのプログラム
CN111052221A (zh) * 2017-09-07 2020-04-21 雅马哈株式会社 和弦信息提取装置、和弦信息提取方法及和弦信息提取程序
CN111052221B (zh) * 2017-09-07 2023-06-23 雅马哈株式会社 和弦信息提取装置、和弦信息提取方法及存储器

Also Published As

Publication number Publication date
JP6064343B2 (ja) 2017-01-25

Similar Documents

Publication Publication Date Title
US10403166B2 (en) Musical performance assistance device and method
CN108257588B (zh) 一种谱曲方法及装置
JPWO2008062816A1 (ja) 自動作曲システム
JP6295583B2 (ja) 音楽データ生成装置および音楽データ生成方法を実現するためのプログラム
JP6064343B2 (ja) コード抽出装置、その方法及びそのプログラム
JP6760450B2 (ja) 自動アレンジ方法
JP6565528B2 (ja) 自動アレンジ装置及びプログラム
JP2006195043A (ja) 電子音楽装置および同装置に適用されるコンピュータ読み取り可能なプログラム
JP6645085B2 (ja) 自動アレンジ装置及びプログラム
WO2019180830A1 (ja) 歌唱評価方法及び装置、プログラム
JP6693176B2 (ja) 歌詞生成装置および歌詞生成方法
JP3637952B2 (ja) コード進行検索装置および記憶媒体
JP2005055457A (ja) 楽譜表示装置及びプログラム
JP6496998B2 (ja) 演奏情報編集装置および演奏情報編集プログラム
KR20120077757A (ko) 입력 음성의 분석을 이용한 작곡 및 기성곡 검색 시스템
JP6604307B2 (ja) コード検出装置、コード検出プログラムおよびコード検出方法
JP6606844B2 (ja) ジャンル選択装置、ジャンル選択方法、プログラムおよび電子楽器
JP6439239B2 (ja) 演奏データファイル検索方法、システム、プログラム、端末装置、およびサーバ装置
JP2013068899A (ja) 楽音再生装置及び情報処理装置、並びにプログラム
JP6658785B2 (ja) 自動伴奏方法および自動伴奏装置
JP6525034B2 (ja) コード進行情報生成装置およびコード進行情報生成方法を実現するためのプログラム
JP4548365B2 (ja) 楽譜表示装置及びプログラム
JP6667332B2 (ja) カラオケシステム
JP4760348B2 (ja) 楽曲選択装置および楽曲選択用コンピュータプログラム
JP5747974B2 (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150311

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161205

R150 Certificate of patent or registration of utility model

Ref document number: 6064343

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150