JP5293710B2 - 調判定装置および調判定プログラム - Google Patents

調判定装置および調判定プログラム Download PDF

Info

Publication number
JP5293710B2
JP5293710B2 JP2010214648A JP2010214648A JP5293710B2 JP 5293710 B2 JP5293710 B2 JP 5293710B2 JP 2010214648 A JP2010214648 A JP 2010214648A JP 2010214648 A JP2010214648 A JP 2010214648A JP 5293710 B2 JP5293710 B2 JP 5293710B2
Authority
JP
Japan
Prior art keywords
key
cpu
operator
name
pitch
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.)
Active
Application number
JP2010214648A
Other languages
English (en)
Other versions
JP2012068548A (ja
Inventor
広子 奥田
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 JP2010214648A priority Critical patent/JP5293710B2/ja
Priority to US13/245,230 priority patent/US8648241B2/en
Priority to CN201110289346.4A priority patent/CN102419969B/zh
Publication of JP2012068548A publication Critical patent/JP2012068548A/ja
Application granted granted Critical
Publication of JP5293710B2 publication Critical patent/JP5293710B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/38Chord
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/081Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for automatic key or tonality recognition, e.g. using musical rules or a knowledge base

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本発明は、楽曲の調を判定する調判定装置および調判定プログラムに関する。
鍵盤を備えた電子楽器では、ピアノやオルガンと同様に主としてメロディを奏する右手および伴奏を奏する左手を用いて弾くのが一般的である。ピアノの奏法では、右手と左手をそれぞれ楽譜等にしたがって独立して動かすための練習が必要である。また、オルガンの奏法でも、左手でコードを構成する複数の鍵を正しく押鍵することが必要である。オルガンの奏法においても、コードを押さえるためには練習を要する。
このようにピアノの奏法およびオルガンの奏法の何れにおいても、右手と左手を同時に動かすためには相応の練習が必要である。特に、メロディを奏するために右手を動かすことは可能であっても、同時に左手を押鍵することが困難と感じる演奏者が、特に初心者では多い。したがって、演奏者が右手でメロディを演奏することで、左手の演奏に相当する伴奏を自動的に作成して、演奏する電子楽器が求められる。
たとえば、特許文献1には、楽曲の音符データを複数の区間ごとに記憶しておき、音符データの第2の区間のコード名を付与するにあたり、調データ、第2の区間に対応する音符データ、第1の区間の音符データおよび先に第2の区間に付与されているコード名を参照して、新たなコード名を決定する装置が提案されている。
特許第3099436号公報 特開平5−11763号公報
調は一定とは限らず、楽曲の途中で、他の調に移行する転調が生じる場合が多々存在する。転調が生じた場合には、コード名の決定に先立ち、どの調に移行したかを判断し、新たな調を取得する必要がある。また、楽曲の開始時やフレーズの開始時には、そもそもどの調で楽曲やフレーズを開始したかを判定することが困難な場合もある。
たとえば、特許文献2には、新たなコードと新たなコードに先行するコードとの間のコードパターンを分析することにより、新たな調を判定する技術が開示されている。また、特許文献1においても、確定したコード進行に基づいて、調を検出する技術が開示されている。
何れの場合にも、調の検出には、確定したコード進行を取得する必要があり、単なるメロディシーケンスから調を検出することが不可能であるという問題点があった。
本発明は、メロディシーケンスから適切に調を判定することができる調判定装置および調判定プログラムを提供することを目的とする。また、本発明は、上記メロディシーケンスおよびコード進行から、転調が生じたときであっても適切に調を判定することができる調判定装置および調判定プログラムを提供することを目的とする。
本発明の目的は、それぞれが音名と対応付けられた演奏操作子の操作がなされる毎に、当該演奏操作子に対応する音名を取得する操作子情報取得手段と、
前記操作子情報取得手段により取得された音名を、操作された操作子の履歴に対応する音名群として、順次レジスタに格納する格納手段と、
キーのダイアトニックスケールノートを格納した第1のテーブルと、
前記キー毎のダイアトニックスケールノート群のうち、当該キー固有のトライトーンおよびその間のスケールノート群を格納した第2のテーブルと
前記操作子の履歴に対応する音名群と前記第1のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群全てを含むダイアトニックスケール群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第1の検索判定手段と、
前記第1の検索判定手段により検索されたキーが複数ある場合は、前記操作子の履歴に対応する音名群と前記第2のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群の少なくとも一部を含む前記トライトーン及びその間のスケールノート群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第2の検索判定手段と、
を備えたことを特徴とする調判定装置により達成される。
別の好ましい実施態様においては、前記第2の検索判定手段により検索されたキーが複数ある場合は、当該複数のキーのうち、調号の最も少ないキーを、前記楽曲の調と判定するように構成されている。
また、本発明の目的は、キー毎のダイアトニックスケールノート群を格納した第1のテーブルと、前記キー毎のダイアトニックスケールノート群のうち、当該キー固有のトライトーンおよびその間のスケールノート群を格納した第2のテーブルとを有するコンピュータに、
それぞれが音名と対応付けられた演奏操作子の操作がなされる毎に、当該演奏操作子に対応する音名を取得する操作子情報取得ステップと、
前記取得された音名を、操作された操作子の履歴に対応する音名群として、順次レジスタに格納する格納ステップと、
前記操作子の履歴に対応する音名群と前記第1のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群全てを含むダイアトニックスケール群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第1の検索判定ステップと、
前記第1の検索判定ステップにより検索されたキーが複数ある場合は、前記操作子の履歴に対応する音名群と前記第2のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群の少なくとも一部を含む前記トライトーン及びその間のスケールノート群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第2の検索判定ステップと、
を実行させる調判定プログラムにより達成される。
本発明によれば、メロディシーケンスから適切に調を判定することができる調判定装置および調判定プログラムを提供することが可能となる。また、本発明によれば、上記メロディシーケンスおよびコード進行から、転調が生じたときであっても適切に調を判定することができる調判定装置および調判定プログラムを提供することが可能となる。
図1は、本実施の形態にかかる電子楽器の外観を示す図である。 図2は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。 図3は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャートである。 図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。 図5は、本実施の形態にかかるキー判定処理の例を示すフローチャートである。 図6は、本実施の形態にかかる仮キー処理の例を示すフローチャートである。 図7は、本実施の形態にかかる仮キー処理の例を示すフローチャートである。 図8は、本実施の形態にかかる音長を考慮したコード確認処理の例を示すフローチャートである。 図9、本実施の形態にかかる転調処理の例を示すフローチャートである。 図10は、本実施の形態にかかる転調処理の例を示すフローチャートである。 図11は、ドミナントモーションによる転調処理の例を示すフローチャートである。 図12は、本実施の形態にかかる近親調への転調処理の例を示すフローチャートである。 図13は、本実施の形態にかかる盛り上がりによる転調処理の例を示すフローチャートである。 図14は、本実施の形態にかかる盛り上がりによる転調処理の例を示すフローチャートである。 図15は、本実施の形態にかかるダイアトニックレジスタの例を示す図である。 図16は、本実施の形態にかかるキーノートスケールテーブルの例を示す図である。 図17は、本実施の形態にかかるダイアトニックスケールテーブルの例を示す図である。 図18は、本実施の形態にかかるコードデータベースの例を示す図である。 図19は、本実施の形態にかかる仮キー選択処理の例を示すフローチャートである。 図20は、本実施の形態にかかる仮キー選択処理の例を示すフローチャートである。 図21は、本実施の形態にかかる仮コード決定マップの例を示す図である。 図22は、本実施の形態にかかるコード名判定処理の例を示すフローチャートである。 図23は、本実施の形態にかかるコード判定テーブルの例を示す図である。 図24は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器の外観を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、鍵盤11を有する。また、鍵盤11の上部には、音色の指定、自動伴奏の開始・終了、リズムパターンの指定などを行なうためのスイッチ(符号12、13参照)や、演奏される楽曲に関する種々の情報、たとえば、音色、リズムパターン、コード名などを表示する表示部15を有する。本実施の形態にかかる電子楽器10は、たとえば、61個の鍵(C2〜C7)を有する。また、電子楽器10は、自動伴奏をオンする自動伴奏モード、および、自動伴奏をオフにする通常モードの2つの演奏モードのうち、何れかの下での演奏が可能である。
図2は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、スイッチ群25、大規模記憶装置30、鍵盤11および表示部15を備える。
CPU21は、電子楽器10全体の制御、鍵盤11の鍵の押鍵やスイッチ群25を構成するスイッチ(たとえば、図1の符号12、13参照)の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御、押鍵された楽音の音高にしたがった、演奏されている楽曲の調(キー)の決定、コード名の決定、自動伴奏パターン、調およびコード名にしたがった自動伴奏の演奏など、種々の処理を実行する。
ROM22は、CPU21に実行させる種々の処理、たとえば、鍵盤11の鍵の押鍵やスイッチ群25を構成するスイッチ(たとえば、図1の符号12、13参照)の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御、押鍵された楽音の音高にしたがった、演奏されている楽曲の調(キー)の決定、コード名の決定、自動伴奏パターン、調およびコード名にしたがった自動伴奏の演奏などのプログラムを記憶する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、種々の自動伴奏パターンを示すデータ(自動伴奏データ)を格納した自動伴奏パターンエリアを有する。
RAM23は、ROM22から読み出されたプログラムや、処理の過程で生じたデータを記憶する。処理の過程で生じたデータには、たとえば、後述するダイアトニックレジスタなどが含まれる。また、本実施の形態において、自動伴奏パターンは、メロディ音およびオブリガート音を含むメロディ自動伴奏パターン、コード名ごとの構成音を含むコード自動伴奏パターン、並びに、ドラム音を含むリズムパターンを有する。たとえば、メロディ自動伴奏パターンのデータのレコードは、楽音の音色、音高、発音タイミング(発音時刻)、音長などを含む。コード自動伴奏パターンのデータのレコードは、上記情報に加えて、コード構成音を示すデータを含む。また、リズムパターンのデータは、楽音の音色、発音タイミングを含む。
サウンドシステム24は、音源部26、オーディオ回路27およびスピーカ28を有する。音源部26は、たとえば、押鍵された鍵についての情報或いは自動伴奏パターンについての情報をCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。
大規模記憶装置30は、ハードディスクやメモリカードを含む。大規模記憶装置30には、後述するダイアトニックスケールテーブル、キースケールノートテーブル、仮コード決定マップ、アベイラブルコードテーブルなど種々のテーブルが格納される。
本実施の形態にかかる電子楽器10は、通常モードの下においては、鍵盤11の鍵の押鍵に基づいて楽音を発生する。その一方、電子楽器10は、自動伴奏スイッチ(図示せず)が操作されることにより、自動伴奏モードとなる。自動伴奏モードの下では、鍵の押鍵により、その鍵の音高の楽音が発生する。また、押鍵された鍵の音高に基づいて、楽曲の調(キー)およびコード名が決定され、調にしたがって、コード名のコード構成音を含む自動伴奏パターンにしたがった楽音が発生する。なお、自動伴奏パターンは、ピアノやギターなど音高の変化を伴うメロディ自動伴奏パターン、コード自動伴奏パターンと、バスドラム、スネアドラム、シンバルなど音高の変化を伴わないリズムパターンとを含む。以下、電子楽器10が、自動伴奏モードの下で動作する場合について説明する。
以下、本実施の形態にかかる電子楽器10において実行される処理についてより詳細に説明する。図3は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャートである。なお、図示しないが、メインフローの実行中に、所定の時間間隔で、割込カウンタのカウンタ値をインクリメントするタイマインクリメント処理も実行される。
図3に示すように、電子楽器10のCPU21は、電子楽器10の電源が投入されると、RAM23中のデータや、表示部15の画像のクリアを含むイニシャル処理(初期化処理)を実行する(ステップ301)。また、イニシャル処理においては、大規模記憶装置30に格納されていた種々のテーブルを、RAM23にコピーする。イニシャル処理(ステップ301)が終了すると、CPU21は、スイッチ群25を構成するスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行する(ステップ302)。
たとえば、スイッチ処理(ステップ302)においては、音色指定スイッチや、自動伴奏パターンの種別の指定スイッチ、自動伴奏パターンのオン・オフの指定スイッチなど、種々のスイッチの操作が検出される。自動伴奏パターンがオンとなったときには、CPU21は、演奏モードを、自動伴奏モードに切り換える。演奏モードを示すデータは、RAM23の所定の領域に指定される。音色や自動伴奏パターンの種別を示すデータも、同様に、RAM23の所定の領域に格納される。
次いで、CPU21は、鍵盤処理を実行する(ステップ303)。図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。鍵盤処理において、CPU21は、鍵盤11の鍵を走査する。鍵の走査結果であるイベント(鍵オン或いはオフ)は、そのイベントが生じた時刻の情報とともに、RAM23に一時的に記憶される。CPU21は、RAM23に記憶された鍵の走査結果を参照して(ステップ401)、ある鍵についてイベントが有るか否かを判断する(ステップ402)。ステップ402でYesと判断された場合には、CPU11は、イベントが鍵オンであるか否かを判断する(ステップ403)。
ステップ403でYesと判断された場合には、CPU21は、当該鍵オンがあった鍵について発音処理を実行する(ステップ404)。発音処理においては、CPU21は、RAM23に記憶されていたメロディ鍵用の音色データ、および、鍵の音高を示すデータを読み出してRAM23に一時的に記憶する。音源発音処理(図3のステップ307)において、音色や音高を示すデータは音源部26に与えられる。音源部26は、音色および音高を示すデータにしたがって、ROM22の波形データを読み出して、所定の音高の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。
その後、CPU21は、鍵オンがあった鍵についての音高情報(たとえば鍵番号)および押鍵タイミング(たとえば押鍵時刻)をRAM23に格納する(ステップ405)。押鍵タイミングは、割り込みカウンタのカウンタ値に基づいて算出することができる。
ステップ403でNoと判断された場合には、イベントが鍵オフであったことになる。したがって、CPU21は、鍵オフになった鍵についての消音処理を実行する(ステップ406)。消音処理においては、CPU21は、消音すべき楽音の音高を示すデータを生成し、RAM23に一時的に記憶する。この場合にも、後述する音源発音処理(ステップ306)において、消音すべき楽音の音色および音高を示すデータが、音源部26に与えられる。音源部26は、与えられたデータに基づいて、所定の楽音を消音する。その後、CPU21は、鍵オフがあった鍵について、押鍵されていた時間(押鍵時間)をRAM23に格納する(ステップ407)。
CPU21は、全ての鍵イベントについて処理が終了したかを判断する(ステップ408)。ステップ408でNoと判断された場合には、ステップ402に戻る。
鍵盤処理(図3のステップ303)が終了すると、CPU21は、キー判定処理を実行する(ステップ304)。図5は、本実施の形態にかかるキー判定処理の例を示すフローチャートである。図5に示すように、CPU21は、RAM23中に格納されたダイアトニックレジスタ中のデータを更新する(ステップ501)。
図15は、本実施の形態にかかるダイアトニックレジスタの例を示す図である。本実施の形態において、ダイアトニックレジスタ1500は、メロディ音が押鍵されるごとに、一連の項目に値が格納される。図15の例では、時系列に5つのメロディ音のそれぞれについて、一連の値が格納される(符号1501〜1505)。図15においては、矢印tの方向に時間的に新しい押鍵についての値となっている。つまり、メロディ音の項目にあるように、「C」、「D」、「E」、「F」、「B」の順で押鍵されている。
本実施の形態においては、複数のメロディ音について、以下に述べる項目の値が、ダイアトニックレジスタ1500の単位レジスタ1501〜1505に格納されるようになっている。単位レジスタ1501〜1505は、それぞれ、メロディ音、音長、仮キー、仮コード、仮機能、メロディ音履歴、キー候補レジスタおよび確定キーという項目を有し、単位レジスタには、各項目についての値が格納され得る。メロディ音には、押鍵された鍵の音名が格納される。また、音長は、当該鍵の押鍵時間が格納される。
最終的に、キーが確定したときには、単位レジスタの確定キーの項目に、キー名が格納される(たとえば、単位レジスタ1505格納)。しかしながら、キーが確定したと判断されるためには、複数の押鍵が必要となる。そこで、本実施の形態においては、キーが確定できると判断する段階になるまでは、処理により仮キーが特定されて、そのキー名が、単位レジスタの仮キーの項目に格納される。また、仮キーの下で、メロディ音に適切な仮のコード名が、仮コードの項目に格納される。また、仮機能の項目には、仮キーの下での、仮コードの機能(主音をIとした場合のコード名、および、トニック(T)、ドミナント(D)、サブドミナント(S)の種別)が格納される。
メロディ音履歴は、演奏開始時或いは所定のタイミングから、押鍵された鍵の音名が蓄積される。たとえば、最初の押鍵についての単位レジスタ1501には、押鍵された鍵であるCのみが格納され、次の押鍵についての単位レジスタ1502には、2つの鍵CDが格納されている。キー候補には、当該鍵が押鍵された時点で、あり得る1以上のキー名が格納される。
ステップ501においては、新たな単位レジスタ中のメロディ音、音長、およびメロディ音履歴などに値が格納される。次いで、CPU21は、ダイアトニックレジスタ1500において、最新の押鍵にかかる単位レジスタを参照して、仮コードの状態であるかを判断する(ステップ502)。仮コードの状態とは、確定キーに値が格納されていない状態をいう。ステップ502でYesと判断された場合には、CPU21は、仮キー処理をイ実行する(ステップ503)。
図6および図7は、本実施の形態にかかる仮キー処理の例を示すフローチャートである。図6に示すように、CPU21は、ダイアトニックレジスタ1501の最新の押鍵にかかる単位レジスタのメロディ音履歴と、RAM23中に格納されたキースケールノートテーブルとを比較する(ステップ601)。図16は、本実施の形態にかかるキーノートスケールテーブルの例を示す図である。キースケールノートテーブル1600には、C〜Bの12個のキーそれぞれについて、キースケールノートが格納され、かつ、それぞれのキーに固有のトライトーンおよびその間のスケールノートを含む4つの音名について、フラグなどの識別子が付されている。
図16に示すキーノートスケール1600において、たとえば、キーがCであれば、F、G,A、Bの4つの音名が、上記識別子が付された音名(符号1601参照)、キーがGであれば、C、D、E、F#の4つの音名が、上記識別子が付された音名(符号1602参照)、キーがDであれば、G、A、B、C3の4つの音名が、上記識別子が付された音名(符号1603参照)となる。
ステップ601においては、メロディ音履歴とキースケールノートテーブル1600とが比較され、メロディ音履歴に格納された音名が、上記識別子が付された音名と全て一致するようなキーが存在するか否かが判断される。CPU21は、上記比較の結果、一致するキーが存在すると判断した場合(ステップ602でNo)には、ダイアトニックレジスタ1500の単位レジスタにおいて、確定キーの値として、上記一致すると判断されたキーを格納する(ステップ604)。また、CPU21は、RAM23中に格納された現在キーレジスタに、上記一致すると判断されたキーを格納する(ステップ607)。
ステップ602でYes、つまり、比較の結果、一致するキーが存在しないと判断された場合には、CPU21は、RAM23中に格納されたダイアトニックスケールテーブルを参照して、メロディ音履歴に基づき、キー候補を絞り込む(ステップ603)。
図17は、本実施の形態にかかるダイアトニックスケールテーブルの例を示す図である。図17に示すように、ダイアトニックレジスタに格納された値は、所定の音に識別子が付与されていないことを除けば、図16に示すキースケールノートテーブルと同一である。したがって、ダイアトニックスケールテーブルを別途設けずに、キースケールノートテーブルを参照するように構成しても良い。図17に示すダイアトニックレジスタにおいては、たとえば、キーがCであればC、D、E、F、G、A、Bの音名が格納され(符号1701参照)、キーGであればG、A、B、C、D、E、F#の音名が格納される(符号1702参照)。
ステップ603では、メロディ音履歴と、ダイアトニックスケールテーブル1700とが比較され、メロディ音履歴に含まれる音名が、あるキーのダイアトニックスケールに全て含まれるようなキーが存在するかが調べられる。このようなキーは、存在しない場合もあるし、複数存在する場合もある。たとえば、単位レジスタ1503のメロディ音履歴には、C、D、Eが格納されている。そこで、ダイアトニックスケールテーブル1700を参照すると、C、D、Eの全てをダイアトニックスケールとして含むキーは、C、G、Fの3つとなる。したがって、この場合には、C、D、Eの3つのキーがキー候補となり得る。
CPU21は、ステップ603で見出されたキー候補が2つ以上であるかを判断する(ステップ605)。ステップ605でNoと判断された場合、つまり、キー候補が1つである場合には、ステップ604に進む。したがって、CPU21は、ダイアトニックレジスタ1500の単位レジスタにおいて、確定キーの値として、上記キー候補を格納する(ステップ604)。また、CPU21は、RAM23中に格納された現在キーレジスタに、上記キー候補を格納する(ステップ607)。
ステップ605でYesと判断された場合には、CPU21は、メロディ音履歴に値(音名)が2つ以上格納されているかを判断する(ステップ608)。ステップ608でNoと判断された場合には、ステップ709に進む。ステップ709において、CPU21は、メロディ履歴に含まれる値において、最も調号の少ない音を、単位レジスタ中の仮キーの値として格納する。なお、調号が同じ場合(たとえば、FとG、DとB♭)には、♯系のキーが優先して仮キーとされる。
ステップ606でYesと判断された場合には、CPU21は、メロディ音履歴において、トライトーンに該当する2つの音が含まれるかを判断する(ステップ701)。ここに、トライトーンとは、三全音(増4度或いは減5度)の音程の2つの音をいう。したがって、ステップ701においては、メロディ音履歴中に、三全音の音程を有する2音が含まれているかが判断される。
ステップ701でYesと判断された場合には、さらに、CPU21は、メロディ音履歴において、上記トライトーンの間に位置する2つのスケールノートが含まれているかを判断する(ステップ702)。ステップ702でYesと判断された場合には、ステップ604に進む。すなわち、ステップ602でNoと判断された場合と同様となる。
ステップ702でNoと判断されたときには、2つのキー候補が得られる。図16のキースケールノートテーブル1600から理解できるように、同一のトライトーンを有する2つキーが存在する。たとえば、スケールノートにおいて、FとBというトライトーンを有するキーは、C、G♭の2つとなる。そこで、CPU21は、2つのキー候補を特定し、さらに、調号の少ないほうを第1仮キー、調号の多いほうを第2仮キーとして、RAM23に格納する(ステップ704)。その後、ステップ707に進み、CPU21は、第1仮キーの値を、単位レジスタの仮キーとして格納する。
ステップ701でNoと判断された場合には、CPU21は、メロディ音履歴において、連続する4音以上のスケールノートが含まれるかを判断する(ステップ703)。連続して4音以上のスケールノートが同一であるようなキーは2つ存在する。したがって、ステップ703でYesと判断された場合にも、ステップ702でNoと判断された場合と同様に処理される。すなわち、CPU21は、2つのキー候補を特定し、さらに、調号の少ないほうを第1仮キー、調号の多いほうを第2仮キーとして、RAM23に格納する(ステップ704)。その後、ステップ707に進み、CPU21は、第1仮キーの値を、単位レジスタの仮キーとして格納する。
ステップ703においてNoと判断された場合には、CPU21は、メロディ音履歴において、連続する3音のスケールノートが含まれるかを判断する(ステップ705)。ステップ705でNoと判断された場合には、CPU21は、メロディ音履歴において、連続しない5音以上のスケールノートが含まれるかを判断する(ステップ708)。ステップ705でYes或いはステップ708でYesと判断される場合には、3つのキー候補が得られる。CPU21は、3つのキー候補を特定し、さらに、調号の最小のものを第1仮キー、2番目に調号の少ないものを第2仮キー、調号が最大のものを第3仮キーとして、RAM23に格納する(ステップ706)。その後、ステップ707に進み、CPU21は、第1仮キーの値を、単位レジスタの仮キーとして格納する。
ステップ708でNoと判断された場合には、CPU21は、メロディ音履歴に含まれる音をそのまま調名と考えたときに、最も調号の少ない音を、単位レジスタ中の仮キーの値として格納する(ステップ709)。
ステップ502でNoと判断された場合、または、仮キー処理(ステップ503)が終了した場合、CPU21は、転調フラグ値が所定の閾値以下であるかを判断する(ステップ504)。転調フラグ値は、コード名判定処理(ステップ305)において、適切なコード名が決定されなかった場合にインクリメントされる値である。ステップ504でYesと判断された場合には、CPU21は、キーが未確定であるかを判断する(ステップ505)。これは、ダイアトニックレジスタの最新の単位レジスタにおいて、確定キーの項目に値が格納されているかを判断すれば良い。
ステップ505でNo、つまり、確定キーの項目に値が格納されており、キーが確定している場合には、CPU21は、RAM23中のキー確定フラグを「1」にセットする(ステップ506)。ステップ504でNoと判断された場合(つまり、転調フラグ値が閾値より大きい場合)或いはステップ505でYesと判断された場合には、音長を考慮したコード確認処理が実行される(ステップ507)。図8は、本実施の形態にかかる音長を考慮したコード確認処理の例を示すフローチャートである。
図8に示すように、音長を考慮したコード確認処理において、CPU21は、ダイアトニックレジスタの単位レジスタ中の音長をそれぞれ参照して、音長の長いほうから上位4つのメロディ音の音名を特定する(ステップ801)。次いで、CPU21は、ステップ801で特定されたメロディ音から構成されるコード構成音と、コードデータベースとを比較する(ステップ802)。図18は、本実施の形態にかかるコードデータベースの例を示す図である。図18に示すように、コードデータベース1800には、コード名ごとに、コード構成音および当該コードに関するスケールノートが格納されている。図18において、たとえば、ハッチングで示される音名がコード構成音である。
CPU21は、上記4つのコード構成音と、同一のコード構成音を有するコードデータベース1800中のコード名があるかを判断する(ステップ803)。ステップ803でNoと判断された場合には、CPU21は、音長の長いほうから上位3つのメロディ音の音名からなるコード構成音と、コードデータベースとを比較する(ステップ804)。次いで、CPU21は、上記3つのコード構成音と、同一のコード構成音を有するコードデータベース1800中のコード名があるかを判断する(ステップ807)。
ステップ803でYes或いはステップ807でYesと判断された場合には、CPU21は、RAM23に格納されていた現在コード名CurChを、前回コード名PreChとして格納する(ステップ805)。また、CPU21は、ステップ803或いはステップ807で一致するとされたコード名を、現在コード名CurChとして格納する(ステップ806)。
なお、コード名は、Cを主音としたときの相対的なコード名ではなく、音名を利用したコード名となる。たとえば、アベイラブルコードテーブルにおいて、IMaj、IVMajが取得されていれば、それぞれ、現在コード名CurChは、C(CMaj)、F(FMaj)となる。
その後、CPU21は転調処理を実行する(ステップ508)。図9および図10は、本実施の形態にかかる転調処理の例を示すフローチャートである。図9に示すように、CPU21は、先に実行されたコード確認処理において、新たな現在コード名CurChが取得されたかを判断する(ステップ901)。ステップ901でNoと判断された場合には、仮キー選択処理を実行する(ステップ902)。仮キー選択処理については後述する。
ステップ901でYesと判断された場合には、CPU21は、新たに取得された現在コード名CurChが、現在キー或いは仮キーにおけるIII7或いはV7に相当するかを判断する(ステップ903)。ステップ903でYesと判断された場合には、CPCU21は、ダイアトニックレジスタの単位レジスタにおいて、確定キー値として、現在コード名がIII7或いはV7となったキー、つまり、現在キー或いは仮キーを格納する(ステップ904)。また、CPU21は、RAM23中の現在キーレジスタに、上記キーを格納する(ステップ905)。
ステップ903でNoと判断された場合には、CPU21は、新たに取得された現在コード名CurChが、現在キー或いは仮キーにおけるIII7或いはV7以外の7thのコードであるかを判断する(ステップ906)。ステップ906でYesと判断された場合には、ドミナントモーションによる転調処理を実行する(ステップ907)。図11は、ドミナントモーションによる転調処理の例を示すフローチャートである。
図11に示すように、ドミナントモーションによる転調処理においては、CPU21は、現在キーの主音と、現在コード名におけるルート音との間の差を算出する(ステップ1101)。CPU21は、転調後のキーとして、現在キー+ステップ1101で算出された差+5半音にて得られる音名を算出する(ステップ1102)。次いで、CPU21は、ダイアトニックレジスタの単位レジスタにおいて、仮キーの値として、ステップ1102で得られた音名を格納する(ステップ1103)。また、CPU21は、単位レジスタにおいて、キー候補の項目に、上記算出されたキーの平行短調に対応する(短三度下の)キーを追加する(ステップ1104)。
ステップ906においてNoと判断された場合に、CPU21は、現在コード名が、ピボット転調におけるピボットコードに該当するかを判断する(ステップ908)。ステップ908でYesと判断された場合には、近親調への転調処理が実行される。図12は、図9におけるステップ908および909の例をより詳細に示すフローチャートである。図12において、ステップ1201〜ステップ1203が、図9のステップ908に相当し、ステップ1204〜1205が、図9のステップ909に該当する。
CPU21は、前回コード名PreChが、現在キー或いは仮キーにおけるピボットコードに該当するかを判断する(ステップ1201)。たとえば、現在キーがCであれば、そのダイアトニックコードは以下のようになる。
CM7(IM7)
Dm7(IIm7)
Em7(IIIm7)
FM7(IVM7)
G7(V7)
Am7(VIm7)
Bm7(−5)(VIIm7(−5)
たとえば、この中で、Em7は、たとえば、キーDにおけるダイアトニックコード(IIm7)、キーGにおけるダイアトニックコード(VIm7)などに該当する。また、Am7は、キーGにおけるダイアトニックコード(IIm7)などに該当する。
たとえば、RAM23に、コード名ごとにどのキーのダイアトニックコードに該当するかを示すテーブルを格納して、CPU21は、テーブルを参照することで、ピボットコードに該当するかを判断すれば良い(ステップ1201)。ステップ1201でYesと判断された場合には、ピボットコードを経て後続するキーにおけるダイアトニックコードを特定する(ステップ1202)。次いで、CPU21は、現在コード名CurChが、ステップ1202で特定されたダイアトニックコード中、ピボットコードの近親調に該当するかを判断する(ステップ1203)。ステップ1201或いはステップ1203でNoと判断された場合(ステップ908でNoと判断された場合に対応する)には、ステップ1001に進む。
ステップ1203でYesと判断された場合には、近親調への転調処理(ステップ909)が実行される。CPU21は、ダイアトニックレジスタの単位レジスタにおける確定キー値として、上記近親調を格納する(ステップ1204)。またCPU21は、RAM23中の現在キーレジスタにも、上記近親調を格納する(ステップ1205)。
ステップ908でNoと判断された場合には、CPU21は、現在コード名CurChが、現在キー或いは仮キーに対して、半音上、全音上、短三度上のキーのI或いはIIIのコードに該当するかを判断する(ステップ1001)。ステップ1001でYesと判断された場合には、盛り上がりによる転調処理が実行される。図13および図14は、本実施の形態にかかる盛り上がりによる転調処理の例を示すフローチャートである。
図13に示すように、CPU21は、現在コード名CurChが、現在キー或いは仮キーに対して、半音上のキーのIのコードに相当するかを判断する(ステップ1301)。ステップ1301でYesと判断された場合には、CPU21は、現在キーの半音上の音名を得て、当該音名のキーに転調したと判断する(ステップ1302)。CPU21は、ステップ1302で得られたキーを、ダイアトニックレジスタの単位レジスタ中、確定キーとして格納する(ステップ1303)。また、CPU21は、ステップ1302で得られたキーを、RAM23中の現在キーレジスタに格納する(ステップ1304)。
ステップ1301でNoと判断された場合には、CPU21は、現在コード名CurChが、現在キー或いは仮キーに対して、半音上のキーのVのコードに相当するかを判断する(ステップ1305)。ステップ1305でYesと判断された場合には、CPU21は、もとの仮キーの半音上のキーを、ダイアトニックレジスタの単位レジスタ中、仮キーとして格納する(ステップ1306)。また、CPU21は、もとの仮キーの半音上のキーから長三度下のキーを、単位レジスタ中、キー候補として格納する(ステップ1307)。
ステップ1305でNoと判断された場合には、CPU21は、現在コード名CurChは、現在キー或いは仮キーに対して、全音上のキーのIのコードに相当するかを判断する(ステップ1308)。ステップ1308でYesと判断された場合には、CPU21は、現在キーの全音上の音名を得て、当該音名のキーに転調したと判断する(ステップ1309)。CPU21は、ステップ1309で得られたキーを、ダイアトニックレジスタの単位レジスタ中、確定キーとして格納する(ステップ1310)。また、CPU21は、ステップ1309で得られたキーを、RAM23中の現在キーレジスタに格納する(ステップ1311)。
ステップ1308でNoと判断された場合には、CPU21は、現在コード名CurChが、現在キー或いは仮キーに対して、全音上のキーのVのコードに相当するかを判断する(ステップ1401)。ステップ1401でYesと判断された場合には、CPU21は、もとの仮キーの全音上のキーを、ダイアトニックレジスタの単位レジスタ中、仮キーとして格納する(ステップ1402)。また、CPU21は、もとの仮キーの全音上のキーから短三度下のキーを、単位レジスタ中、キー候補として格納する(ステップ1403)。
ステップ1401でNoと判断された場合には、CPU21は、現在コード名CurChは、現在キー或いは仮キーに対して、短三度上のキーのIのコードに相当するかを判断する(ステップ1404)。ステップ1404でYesと判断された場合には、CPU21は、現在キーの短三度上の音名を得て、当該音名のキーに転調したと判断する(ステップ1405)。CPU21は、ステップ1405で得られたキーを、ダイアトニックレジスタの単位レジスタ中、確定キーとして格納する(ステップ1406)。また、CPU21は、ステップ1405で得られたキーを、RAM23中の現在キーレジスタに格納する(ステップ1407)。
ステップ1404でNoと判断された場合には、CPU21は、現在コード名CurChが、現在キー或いは仮キーに対して、短三度上のキーのVのコードに相当するかを判断する(ステップ1408)。ステップ1408でYesと判断された場合には、CPU21は、もとの仮キーの短三度上のキーを、ダイアトニックレジスタの単位レジスタ中、仮キーとして格納する(ステップ1409)。また、CPU21は、もとの仮キーの全音上のキーから長二度下のキーを、単位レジスタ中、キー候補として格納する(ステップ1410)。
次に、仮キー選択処理(ステップ902)について説明する。図19および図20は、本実施の形態にかかる仮キー選択処理の例を示すフローチャートである。図19に示すように、CPU21は、ダイアトニックレジスタの単位レジスタにおいて、候補キーが2個以上であるかを判断する(ステップ1901)、ステップ1901でYesと判断された場合には、CPU21は、候補キーのうちの2つを、5度の関係になるように並べて、下の音名を仮キーとして、アベイラブルコードテーブルと比較する(ステップ1902)。
ステップ1902においては、5度の関係を有する2音がコード構成音となるようなコードがアベイラブルコードテーブルから特定される。このようなコードが見出された場合には、ステップ1903でYesと判断される。候補キーのうち、2つにより5度の関係があるような音名の組が得られない場合には、ステップ1903でNoと判断される。ステップ1903でYesと判断された場合には、CPU21は、現在コード名CurChとして、上記ステップ1902で見出されたコード名の第3音を抜いた(omit3)を格納する(ステップ1904)。
ステップ1903でNoと判断された場合、或いは、ステップ1901でNoと判断された場合には、CPU21は、RAM23中に前回コード名PreChが格納されているかを判断する(ステップ1905)。ステップ1905でYesと判断された場合には、CPU21は、音長を考慮したコード確認処理(図8)のステップ804と同様に音長が上位の3音をコード構成音として、前回コード名PreChのコード構成音とを比較する(ステップ1906)。比較された2つのコードが不協和でない場合(ステップ1907でNo)には、RAM23中の現在コード名CurChとして、前回コード名PreChを格納する(ステップ1908)。たとえば、2つのコードが不協和であることは、2つのコードの主音が、短二度、長二度、増四度(減五度)、短七度、長七度の関係にあることである。
ステップ1907でYesと判断された場合には、CPU21は、RAM23中の仮コード決定マップを参照して、現在メロディ音からコードを決定する(ステップ2001)。図21は、本実施の形態にかかる仮コード決定マップの例を示す図である。図21に示すように、仮コード決定マップには、メロディ音ごとに、コード名が対応付けられている。CPU21は、得られたコードのコード構成音中、第3音(性格音)に該当する音が、ダイアトニックレジスタの単位レジスタ中の候補キー、または、前回コード名PreChのコード構成音の何れかと一致するかを判断する(ステップ2002)。ステップ2002でNoと判断された場合には、CPU21は、現在コード名において、コード名の第3音を抜いたもの(omit3)とするように情報を付加する(ステップ2003)。
その後、CPU21は、ダイアトニックレジスタの単位レジスタ中、仮キーとして、候補キーのうち最も調号の少ないキーを格納する(ステップ2004)。なお、最初の押鍵に基づく音に対しては、仮キー選択処理を経て、仮コード決定マップを参照してコードが決定されることになる。
キー判定処理が終了すると、CPU21は、コード名判定処理を実行する。図22は、本実施の形態にかかるコード名判定処理の例を示すフローチャートである。図22に示すように、CPU21は、RAM23中のキー確定フラグが「1」であるかを判断する(ステップ2201)。ステップ2201でYesと判断された場合には、CPU21は、キー判定処理において新たな現在コード名CurChが取得されているかを判断する(ステップ2202)。ステップ2201でNo或いはステップ2202でYesと判断された場合には、処理を終了する。
ステップ2202でNoと判断された場合には、現在メロディ音CM、前回メロディ音PMおよび前回コード名PreChに基づき、コード判定テーブルを参照して、コード名を取得する。なお、現在メロディ音CMは、現在進行中の楽曲において、現在の拍の先頭にて押鍵された鍵名、前回メロディ音PMは、一つ前の拍の先頭にて押鍵された鍵名であり、それぞれ、たとえば、鍵盤処理(図4)においてRAM23に格納された情報に基づいて取得される。
図23は、本実施の形態にかかるコード判定テーブルの例を示す図である。図23に示すコード判定テーブルおいては、前回コード名の機能(トニック(TO)、サブドミナント(SU)或いはドミナント(DO)の何れか)と、および、前回メロディ音PMおよび現在メロディ音CMの組み合わせによって、コード名が取得されるようになっている。なお、図23のコード判定テーブル2300は、キー(C)の場合についてのものである。したがって、他のキーの場合には、当該キーの主音とCとの音程をオフセットとして、実際の前回メロディ音PMおよび現在メロディ音CMからオフセットを考慮して、キーをCとした場合の前回メロディ音PMおよび現在メロディ音CMを算出して用いれば良い。なお、図23の例では示されていないが、前回メロディ音PMおよび今回メロディ音CMの組み合わせによっては、コード名が得られない場合もある。
CPU21は、コード判定テーブルを参照することによりコード名が取得されたかを判断する(ステップ2204)。ステップ2204でYesと判断された場合には、CPU21は、RAM23中の現在コード名CurChとして、ステップ2203で取得されたコード名を格納する(ステップ2205)。また、CPU21は、RAM23において、現在メロディ音CMを、前回メロディ音PMとして格納する(ステップ2206)とともに、転調フラグをクリアする(ステップ2207)。
ステップ2204でNoと判断された場合には、CPU21は、RAM23中の現在コード名CurChとして前回コード名PreChを格納する(ステップ2208)。また、CPU21は、RAM23中の転調フラグをインクリメントする(ステップ2209)。転調フラグは、現在コード名が確定できなかった回数を示す。この回数が所定の閾値より大きくなったときに(図5のステップ504参照)、前述した転調処理が実行される(図5のステップ508参照)。
コード名判定処理(ステップ305)が終了すると、CPU21は、自動伴奏処理を実行する(ステップ306)。図24は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。まず、CPU21は、電子楽器10が自動伴奏モードの下で動作しているかを判断する(ステップ2401)。ステップ2401でYesと判断された場合には、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、メロディ音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップ2402)。
自動伴奏データには、3つの種類の楽音、すなわち、メロディ音(オブリガート音を含む)、コード音、リズム音のデータが含まれる。メロディ音のデータおよびコード音のデータは、発音すべき楽音ごとに、その音高、発音タイミングおよび発音時間を含む。また、リズム音のデータは、発音すべき楽音(リズム音)ごとに、その発音タイミングを含む。
ステップ2402でYesと判断された場合には、CPU21は、メロディ発音・消音処理を実行する(ステップ2403)。メロディ発音・消音処理においては、処理にかかるイベントがノートオンイベントであるかを判断する。ノートオンイベントであることは、現在時刻が、上記メロディ音のデータにおける所定の楽音の発音タイミングとほぼ一致することで判断できる。その一方、ノートオフイベントであることは、現在時刻が、当該楽音の発音タイミングに発音時間を加えた時刻とほぼ一致することで判断できる。
処理にかかるイベントがノートオフイベントである場合には、CPU21は、消音処理を実行する。その一方、処理にかかるイベントがノートオンイベントであれば、メロディ音のデータにしたがった発音処理を実行する。
次いで、CPU21は、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、コード音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップ2404)。ステップ2404においてYesと判断された場合には、CPU21は、コード発音・消音処理を実行する(ステップ2405)。コード音発音・消音処理においては、発音タイミングに達したコード音について発音処理を実行し、その一方、消音タイミングに達したコード音については消音処理を実行する。
その後CPU21は、現在時刻が、自動伴奏データ中、リズムのデータについてのイベントの実行タイミングに達しているかを判断する(ステップ2406)。ステップ2406においてYesと判断された場合には、CPU21は、リズム音発音処理を実行する(ステップ2407)。リズム音発音処理においては、発音タイミングに達したリズム音についてノートオンイベントを生成する。
自動伴奏処理(図3のステップ306)が終了すると、CPU21は、音源発音処理を実行する(ステップ307)。音源発音処理において、CPU21は、生成されたノートオンイベントに基づいて、発音すべき楽音の音色および音高を示すデータを音源部26に与え、或いは、消音すべき楽音の音色および音高を示すデータを音源部26に与える。音源部26は、音色、音高、音長等を示すデータにしたがって、ROM22の波形データを読み出して、所定の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。また、CPU21は、ノートオフイベントに基づいて、音源26にノートオフイベントが示す音高の消音を指示する。
音源発音処理(ステップ307)が終了すると、CPU21は、その他の処理(たとえば、表示部15への画像表示、LED(図示せず)の点灯、消灯など:ステップ308)を実行して、ステップ302に戻る。
本実施の形態においては、CPU21は、ダイアトニックレジスタの単位レジスタ中、メロディ音履歴中に含まれる音名群と、ダイアトニックスケールテーブルとを比較して、メロディ音履歴に含まれる音名が、あるキーのダイアトニックスケールに全て含まれるようなキーが存在するかを判断することにより、キー候補を絞り込み、楽曲の調を判定し、単位レジスタ中に判定された調を格納する。したがって、単にメロディシーケンスのみによって、楽音の調を判定することが可能となる。
また、本実施の形態においては、キー候補の絞り込みの結果、複数のキー候補が存在する場合に、CPU21は、メロディ音履歴に対応する音名群中に、キー候補のダイアトニックスケール中のトライトーンおよびその間のスケールノートが含まれるかを判断することにより、キー候補をさらに絞り込む。単に、メロディ音が、あるキーのダイアトニックスケール上にあるかだけではなく、調に固有であるトライトーンを考慮することで、より正確に調を判定することが可能となる。
さらに、本実施の形態においては、CPU21は、キー候補の絞込みの結果、複数のキー候補が存在する場合に、調号の最も少ない調を、楽曲の調と判定する。これにより、キー候補が複数のときに、より可能性の高い調を選択することが可能となる。
また、本実施の形態においては、CPU21は、ダイアトニックレジスタの単位レジスタ中、メロディ音履歴中に含まれる音名群と、キーごとのダイアトニックスケールノートのうち、キー固有のトライトーンおよびその間のスケールノートを格納したキースケールノートテーブルとを比較して、メロディ音履歴に含まれる音名が、あるキーのトライトーンおよびその間のスケールノートと一致するかを判断することにより、キー候補を絞り込み、演奏操作子の操作による楽曲の調を判定し、レジスタ中に判定された調を格納する。したがって、本実施の形態よれば、調に固有であるトライトーンおよびその間のスケールノートを考慮することで、正確に調を判定することが可能となる。
また、本実施の形態においては、CPU21は、キー候補を1つに絞り込めた場合に、当該1つのキー候補を、確定キーとして単位レジスタに格納し、それ以外の場合に、キー候補のうち所定のものを仮キーとして単位レジスタに格納するように構成されている。これにより、判定された調の確実性に応じて、調の情報を保存することができる。
また、CPU21は、押鍵された鍵に対応付けられた音高(たとえば、現在の音高および先行する音高)と、先行するコード名である前回コード名とに基づき現在コード名を判定する。また、CPU21は、レジスタ中に格納された調に対して、所定の関係を有する場合に、当該所定の関係に基づき、新たな調を得る。したがって、演奏されている楽曲の途中で転調が生じた場合にも、転調後の調を適切に判定することができる。
本実施の形態においては、CPU21は、現在コード名が、レジスタ中に格納された調に対して、III7或いはV7以外の関係を有する7の和音である場合に、現在の調と、現在コード名の根音との差分値を算出し、かつ、現在の調に、上記差分値および5半音を加えることにより、新たな調を得る。これにより、ドミナントモーションによる転調を検出することが可能となる。
また、本実施の形態においては、CPU21は、前回コード名が、レジスタ中に格納された調におけるピボットコードであり、かつ、現在コード名が、ピボットコードに後続する調のダイアトニックコードにおいて、ピボットコードの近親調に該当する場合に、当該近親調を、新たな調として得る。これにより、いわゆるピボット転調を検出することが可能となる。
さらに、本実施の形態においては、CPU21は、現在コード名が、レジスタ中に格納された調に対して、半音上、全音上或いは短三度上の調のI或いはIIIの和音である場合に、それぞれ、当該半音上、全音上或いは短三度上の調を、新たな調として得る。これにより、いわゆる盛り上がりによる転調を検出することが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、キーを判定する際に、長調或いはその平行調に相当する短調の何れかを決定しても良い。この場合、長調/短調の選択スイッチを設け、スイッチ処理において、CPU21が、選択スイッチの操作状態を判断し、RAM23中に、長調/短調の選択情報を格納すれば良い。キー判定処理において、CPU11は、仮キー或いは確定キーを得る際に、RAM23中の長調/短調の選択情報を参照して、得られたキーが長調或いは短調であるかを判定して、判定されたキー(長調或いは短調)を、ダイアトニックレジスタ等に格納すれば良い。
10 電子楽器
11 鍵盤
12、13 スイッチ
15 表示部
21 CPU
22 ROM
23 RAM
24 サウンドシステム
25 スイッチ群
26 音源部
27 オーディオ回路
28 スピーカ

Claims (3)

  1. それぞれが音名と対応付けられた演奏操作子の操作がなされる毎に、当該演奏操作子に対応する音名を取得する操作子情報取得手段と、
    前記操作子情報取得手段により取得された音名を、操作された操作子の履歴に対応する音名群として、順次レジスタに格納する格納手段と、
    キー毎のダイアトニックスケールノート群を格納した第1のテーブルと、
    前記キー毎のダイアトニックスケールノート群のうち、当該キー固有のトライトーンおよびその間のスケールノート群を格納した第2のテーブルと、
    前記操作子の履歴に対応する音名群と前記第1のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群全てを含むダイアトニックスケール群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第1の検索判定手段と、
    前記第1の検索判定手段により検索されたキーが複数ある場合は、前記操作子の履歴に対応する音名群と前記第2のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群の少なくとも一部を含む前記トライトーン及びその間のスケールノート群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第2の検索判定手段と、
    を備えたことを特徴とする調判定装置。
  2. 前記第2の検索判定手段により検索されたキーが複数ある場合は、当該複数のキーのうち、調号の最も少ないキーを、前記楽曲の調と判定することを特徴とする請求項1に記載の調判定装置。
  3. キー毎のダイアトニックスケールノート群を格納した第1のテーブルと、前記キー毎のダイアトニックスケールノート群のうち、当該キー固有のトライトーンおよびその間のスケールノート群を格納した第2のテーブルとを有するコンピュータに、
    それぞれが音名と対応付けられた演奏操作子の操作がなされる毎に、当該演奏操作子に対応する音名を取得する操作子情報取得ステップと、
    前記取得された音名を、操作された操作子の履歴に対応する音名群として、順次レジスタに格納する格納ステップと、
    前記操作子の履歴に対応する音名群と前記第1のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群全てを含むダイアトニックスケール群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第1の検索判定ステップと、
    前記第1の検索判定ステップにより検索されたキーが複数ある場合は、前記操作子の履歴に対応する音名群と前記第2のテーブルとを比較することにより、前記操作子の履歴に含まれる音名群の少なくとも一部を含む前記トライトーン及びその間のスケールノート群に対応するキーを検索するとともに、検索されたキーがひとつの場合は、当該検索されたキーを前記演奏操作子の操作による楽曲の調と判定する第2の検索判定ステップと、
    を実行させる調判定プログラム。
JP2010214648A 2010-09-27 2010-09-27 調判定装置および調判定プログラム Active JP5293710B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010214648A JP5293710B2 (ja) 2010-09-27 2010-09-27 調判定装置および調判定プログラム
US13/245,230 US8648241B2 (en) 2010-09-27 2011-09-26 Key determination apparatus and storage medium storing key determination program
CN201110289346.4A CN102419969B (zh) 2010-09-27 2011-09-27 调判断装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010214648A JP5293710B2 (ja) 2010-09-27 2010-09-27 調判定装置および調判定プログラム

Publications (2)

Publication Number Publication Date
JP2012068548A JP2012068548A (ja) 2012-04-05
JP5293710B2 true JP5293710B2 (ja) 2013-09-18

Family

ID=45869299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010214648A Active JP5293710B2 (ja) 2010-09-27 2010-09-27 調判定装置および調判定プログラム

Country Status (3)

Country Link
US (1) US8648241B2 (ja)
JP (1) JP5293710B2 (ja)
CN (1) CN102419969B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8168877B1 (en) * 2006-10-02 2012-05-01 Harman International Industries Canada Limited Musical harmony generation from polyphonic audio signals
EP2772904B1 (en) * 2013-02-27 2017-03-29 Yamaha Corporation Apparatus and method for detecting music chords and generation of accompaniment.
JP6040809B2 (ja) * 2013-03-14 2016-12-07 カシオ計算機株式会社 コード選択装置、自動伴奏装置、自動伴奏方法および自動伴奏プログラム
JP5790686B2 (ja) * 2013-03-25 2015-10-07 カシオ計算機株式会社 コード演奏ガイド装置、方法、およびプログラム
US9384716B2 (en) 2014-02-07 2016-07-05 Casio Computer Co., Ltd. Automatic key adjusting apparatus and method, and a recording medium
US9818385B2 (en) * 2016-04-07 2017-11-14 International Business Machines Corporation Key transposition
JP6977741B2 (ja) * 2019-03-08 2021-12-08 カシオ計算機株式会社 情報処理装置、情報処理方法、演奏データ表示システム、およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5302777A (en) 1991-06-29 1994-04-12 Casio Computer Co., Ltd. Music apparatus for determining tonality from chord progression for improved accompaniment
JPH0511763A (ja) 1991-06-29 1993-01-22 Casio Comput Co Ltd 調性判定装置及び自動伴奏装置
JP3099436B2 (ja) 1991-07-24 2000-10-16 ヤマハ株式会社 和音検出装置および自動伴奏装置
US5510572A (en) * 1992-01-12 1996-04-23 Casio Computer Co., Ltd. Apparatus for analyzing and harmonizing melody using results of melody analysis
JP3356182B2 (ja) * 1992-02-07 2002-12-09 ヤマハ株式会社 作編曲アシスト装置
JP3413844B2 (ja) * 1992-03-25 2003-06-09 ヤマハ株式会社 演奏データの調検出装置
JP2963585B2 (ja) * 1992-09-08 1999-10-18 ヤマハ 株式会社 調決定装置
JP2658767B2 (ja) * 1992-10-13 1997-09-30 ヤマハ株式会社 自動伴奏装置
US5563361A (en) * 1993-05-31 1996-10-08 Yamaha Corporation Automatic accompaniment apparatus
JPH0728468A (ja) * 1993-07-13 1995-01-31 Casio Comput Co Ltd コード進行発生装置
JP3216529B2 (ja) * 1995-07-11 2001-10-09 ヤマハ株式会社 演奏データ分析装置および演奏データ分析方法
JP4174961B2 (ja) * 2000-08-25 2008-11-05 ヤマハ株式会社 演奏装置、演奏方法および情報記録媒体
JP2006064746A (ja) * 2004-08-24 2006-03-09 Yamaha Corp 音楽情報指定装置および音楽情報指定方法を実現するためのプログラム
JP2007286312A (ja) * 2006-04-17 2007-11-01 Yamaha Corp 楽音信号発生装置
US20070240559A1 (en) * 2006-04-17 2007-10-18 Yamaha Corporation Musical tone signal generating apparatus
CN101154376A (zh) * 2006-09-26 2008-04-02 久久音乐科技有限公司 音乐伴奏装置的自动跟调方法暨系统
CN101551996A (zh) * 2009-05-11 2009-10-07 曾平蔚 电子弹拨乐器及其发音控制方法

Also Published As

Publication number Publication date
CN102419969A (zh) 2012-04-18
US8648241B2 (en) 2014-02-11
CN102419969B (zh) 2013-11-06
US20120073423A1 (en) 2012-03-29
JP2012068548A (ja) 2012-04-05

Similar Documents

Publication Publication Date Title
JP6040809B2 (ja) コード選択装置、自動伴奏装置、自動伴奏方法および自動伴奏プログラム
JP5293710B2 (ja) 調判定装置および調判定プログラム
JP5168297B2 (ja) 自動伴奏装置および自動伴奏プログラム
JP5041015B2 (ja) 電子楽器および楽音生成プログラム
JP5672280B2 (ja) 演奏情報処理装置、演奏情報処理方法及びプログラム
US20130305907A1 (en) Accompaniment data generating apparatus
JP2010092016A (ja) アドリブ演奏機能を有する電子楽器およびアドリブ演奏機能用プログラム
JP2008089975A (ja) 電子楽器
JP2012098480A (ja) コード検出装置及びプログラム
JP5909967B2 (ja) 調判定装置、調判定方法及び調判定プログラム
JP6421811B2 (ja) コード選択方法およびコード選択装置
US9384716B2 (en) Automatic key adjusting apparatus and method, and a recording medium
JP2010117419A (ja) 電子楽器
CN113140201A (zh) 伴奏音生成装置、电子乐器、伴奏音生成方法及伴奏音生成程序
JP2016161900A (ja) 音楽データ検索装置及び音楽データ検索プログラム
JP6658785B2 (ja) 自動伴奏方法および自動伴奏装置
JP2002182642A (ja) 演奏案内装置および演奏案内方法
JP6554826B2 (ja) 音楽データ検索装置及び音楽データ検索プログラム
JP5692275B2 (ja) 電子楽器
JP5564921B2 (ja) 電子楽器
JP3620321B2 (ja) 自動伴奏装置
JP2016191855A (ja) ジャンル選択装置、ジャンル選択方法、プログラムおよび電子楽器
JP5825449B2 (ja) コード検出装置
JP2000029466A (ja) 電子鍵盤楽器
JPH06282268A (ja) 自動伴奏装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

Ref document number: 5293710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150