JP2017037348A - Automatic code correction apparatus, automatic code correction method, and program thereof - Google Patents
Automatic code correction apparatus, automatic code correction method, and program thereof Download PDFInfo
- Publication number
- JP2017037348A JP2017037348A JP2016226109A JP2016226109A JP2017037348A JP 2017037348 A JP2017037348 A JP 2017037348A JP 2016226109 A JP2016226109 A JP 2016226109A JP 2016226109 A JP2016226109 A JP 2016226109A JP 2017037348 A JP2017037348 A JP 2017037348A
- Authority
- JP
- Japan
- Prior art keywords
- melody
- sound
- chord
- code
- cpu
- 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
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
Description
本発明は、自動コード修正装置、自動コード修正方法及びそのプログラムに関する。 The present invention relates to an automatic code correction device, an automatic code correction method, and a program thereof.
電子ピアノや電子オルガンのような鍵盤を備えた電子楽器では、主として右手でメロディを、左手で伴奏を弾く、あるいはコードを構成する複数の鍵を押鍵するのが一般的である。従ってこのような電子楽器においては、右手と左手をそれぞれ楽譜等にしたがって独立して動かすための練習が必要である。 In an electronic musical instrument having a keyboard such as an electronic piano or an electronic organ, it is common to play a melody mainly with the right hand and an accompaniment with the left hand, or press a plurality of keys constituting a chord. Therefore, in such an electronic musical instrument, it is necessary to practice to move the right hand and the left hand independently according to a musical score or the like.
このようにピアノの奏法及びオルガンの奏法の何れにおいても、右手と左手を同時に異なる形態で動かすことが必要であり、このためには相応の練習が必要である。特に、メロディを奏するために右手を動かすことは可能であるが、同時に左手で異なる演奏を行うことが困難と感じる演奏者が、特に初心者では多い。したがって、演奏者が右手でメロディを演奏することにより、左手で演奏することにより生成されるべき伴奏音を自動的に作成することのできる電子楽器が求められる。 As described above, in both the piano playing method and the organ playing method, it is necessary to move the right hand and the left hand simultaneously in different forms. For this purpose, appropriate practice is required. In particular, it is possible to move the right hand to play a melody, but there are many performers who find it difficult to perform different performances with the left hand at the same time, especially for beginners. Therefore, there is a need for an electronic musical instrument that can automatically create an accompaniment sound to be generated by playing a melody with the right hand by the performer.
例えば、特許文献1には、楽曲の音符データを複数の区間ごとに記憶しておき、音符データの第2の区間のコード名を付与するにあたり、調データ、第2の区間に対応する音符データ、第1の区間の音符データ及び先に第2の区間に付与されているコード名を参照して、新たなコード名を決定する装置が提案されている。
For example, in
このようにコードを決定するための要素のひとつとして、楽曲を構成する音符が用いられているが、これら音符それぞれが均等にコード決定に反映されるものではない。例えば音符がいずれの拍に含まれるかによってその重みが異なり、また、その拍内における時間的な位置によっても重みが異なる。したがって、その重みを反映させて、コード名を決定するのが望ましい。また、単一の音符のみを参照するのではなく、複数の音符の遷移に応じてコード名を決定するのが、より望ましい。 As described above, notes constituting the music are used as one of the elements for determining the chord, but each of these notes is not reflected in the chord determination evenly. For example, the weight varies depending on which beat the note is included in, and the weight varies depending on the temporal position within the beat. Therefore, it is desirable to determine the code name reflecting the weight. It is more desirable to determine the chord name according to the transition of a plurality of notes rather than referencing only a single note.
そこで、特許文献2では、楽曲を構成する音符の重み及びその遷移に基づいて、リアルタイムに適切にコード名を決定することができる自動伴奏装置が提案されている。
Therefore,
しかしながら、リアルタイムでコード付けを行うと、経験則から作成されたデータベースを利用しながらある程度決め付けることになり、単純な曲では精度よくリアルタイムコード付けできても、装飾音や借用和音が使われる場合には、リアルタイムコード付けの精度が劣る場合があった。 However, if you code in real time, it will be decided to some extent while using a database created from rules of thumb, even if simple songs can be accurately coded in real time, but decorative sounds and borrowed chords are used In some cases, the accuracy of real-time coding was inferior.
本発明は、入力されたメロディに対してリアルタイムでコード付けを行った後、ノンリアルタイムでコードを修正することで、コード付けの精度をより高めることができる自動コード修正装置を提供することを目的とする。
また本発明は、メロディに予め付与されたコードを、そのメロディにより適合するコードに修正することを目的とする。
It is an object of the present invention to provide an automatic chord correction device capable of further improving the accuracy of chording by correcting chords in non-real time after performing chording on an input melody in real time. And
Another object of the present invention is to correct a chord previously assigned to a melody to a chord suitable for the melody.
上記目的を達成するため、本発明の一態様の自動コード修正装置は、
演奏手段により演奏されている曲のメロディの音高の履歴により、当該メロディに対し
てリアルタイムでコード付与を行うリアルタイムコード付け手段と、
前記演奏手段によるメロディ演奏終了後、前記リアルタイムコード付け手段にて付与さ
れたコードをノンリアルタイムで修正するノンリアルタイムコード修正手段と、
前記ノンリアルタイムコード修正手段により修正された各コードのスケールと、前記修
正されたコードそれぞれに対応する区間の前記メロディのスケールとが一致するか否か判
定し、一致していない場合は当該修正されたコードをさらに訂正するコード訂正手段と、
を有する。
In order to achieve the above object, an automatic code correction apparatus according to an aspect of the present invention includes:
Real-time coding means for assigning chords to the melody in real time according to the pitch history of the melody of the song being played by the performance means;
A non-real-time code correction means for correcting the code given by the real-time code attaching means in non-real time after the melody performance by the performance means is completed;
It is determined whether or not the scale of each chord corrected by the non-real-time chord correcting means matches the scale of the melody in the section corresponding to each of the corrected chords. Code correction means for further correcting the code,
Have
本発明によれば、コード付けの精度をより高めることができる自動コード修正装置を提供することが可能となる。 ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to provide the automatic code correction apparatus which can raise the precision of coding more.
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる自動コード修正装置を適用した電子楽器の外観を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、鍵盤11を有する。また、鍵盤11の上部には、音色の指定、自動伴奏の開始・終了、リズムパターンの指定などを行なうためのスイッチ(符号12、13参照)や、リアルタイムでのコード付けが終了した後にノンリアルタイムでのコード修正を開始するためのノンリアルタイムコード付け修正スイッチ14、演奏される楽曲に関する種々の情報、たとえば、音色、リズムパターン、コード名などを表示する表示部15を有する。本実施の形態にかかる電子楽器10は、たとえば、61個の鍵(C2〜C7)を有する。また、電子楽器10は、自動伴奏をオンする自動伴奏モード、及び、自動伴奏をオフにする通常モードの2つの演奏モードのうち、何れかの下での演奏が可能である。
Embodiments of the present invention will be described below with reference to the accompanying drawings. FIG. 1 is a diagram showing an external appearance of an electronic musical instrument to which an automatic chord correction apparatus according to this embodiment is applied. As shown in FIG. 1, the electronic
図2は、本発明の実施の形態にかかる自動コード修正装置の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる自動コード修正装置10は、CPU21、ROM22、RAM23、サウンドシステム24、スイッチ群25、鍵盤11及び表示部15を備える。
FIG. 2 is a block diagram showing the configuration of the automatic code correction apparatus according to the embodiment of the present invention. As shown in FIG. 2, the automatic
CPU21は、電子楽器10全体の制御、鍵盤11の鍵の押鍵やスイッチ群25を構成するスイッチ(たとえば、図1の符号12、13、14参照)の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターン及びコード名にしたがった自動伴奏の演奏など、種々の処理を実行する。
The
ROM22は、CPU21に実行させる種々の処理、たとえば、スイッチの操作、鍵盤の何れかの鍵の押鍵、押鍵に応じた楽音の発音、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターン及びコード名にしたがった自動伴奏の演奏などのプログラムを記憶する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、及び、種々の自動伴奏パターンを示すデータ(自動伴奏データ)を格納した自動伴奏パターンエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生じたデータを記憶する。なお、本実施の形態において、自動伴奏パターンは、メロディ音及びオブリガート音を含むメロディ自動伴奏パターン、コード名ごとの構成音を含むコード自動伴奏パターン、並びに、ドラム音を含むリズムパターンを有する。たとえば、メロディ自動伴奏パターンのデータのレコードは、楽音の音色、音高、発音タイミング(発音時刻)、音長などを含む。コード自動伴奏パターンのデータのレコードは、上記情報に加えて、コード構成音を示すデータを含む。また、リズムパターンのデータは、楽音の音色、発音タイミングを含む。
The
サウンドシステム24は、音源部26、オーディオ回路27及びスピーカ28を有する。音源部26は、たとえば、押鍵された鍵についての情報或いは自動伴奏パターンについての情報をCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。
The
本実施の形態にかかる電子楽器10は、通常モードの下においては、鍵盤11の鍵の押鍵に基づいて楽音を発生する。その一方、電子楽器10は、自動伴奏スイッチ(図示せず)が操作されることにより、自動伴奏モードとなる。自動伴奏モードの下では、鍵の押鍵により、その鍵の音高の楽音が発生する。また、押鍵された鍵の音高に基づいてコード名が決定され、そのコード名のコード構成音を含む自動伴奏パターンにしたがった楽音が発生する。なお、自動伴奏パターンは、ピアノやギターなど音高の変化を伴うメロディ自動伴奏パターン、コード自動伴奏パターンと、バスドラム、スネアドラム、シンバルなど音高の変化を伴わないリズムパターンとを含む。以下、電子楽器10が、自動伴奏モードの下で動作する場合について説明する。
The electronic
以下、本実施の形態にかかる電子楽器10において実行される処理についてより詳細に説明する。図3は、本実施の形態にかかる自動コード修正装置において実行されるメインフローの例を示すフローチャートである。なお、図示しないが、メインフローの実行中に、所定の時間間隔で、割込カウンタのカウンタ値をインクリメントするタイマインクリメント処理も実行される。
Hereinafter, the process executed in the electronic
図3に示すように、電子楽器10のCPU21は、電源が投入されると、RAM23中のデータや、表示部15の画像のクリアを含むイニシャル処理(初期化処理)を実行する(ステップS1)。イニシャル処理(ステップS1)が終了すると、CPU21は、スイッチ群25を構成するスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行する(ステップS2)。
As shown in FIG. 3, when the power is turned on, the
たとえば、スイッチ処理(ステップS2)においては、音色指定スイッチや、自動伴奏パターンの種別の指定スイッチ、自動伴奏パターンのオン・オフの指定スイッチなど、種々のスイッチの操作が検出される。自動伴奏パターンがオンとなったときには、CPU21は、演奏モードを、自動伴奏モードに切り換える。演奏モードを示すデータは、RAM23の所定の領域に指定される。音色や自動伴奏パターンの種別を示すデータも、同様に、RAM23の所定の領域に格納される。
For example, in the switch process (step S2), various switch operations such as a tone color designation switch, an automatic accompaniment pattern type designation switch, and an automatic accompaniment pattern on / off designation switch are detected. When the automatic accompaniment pattern is turned on, the
次いで、CPU21は、鍵盤処理を実行する(ステップS3)。図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。鍵盤処理において、CPU21は、鍵盤11の鍵を走査する。鍵の走査結果であるイベント(鍵オン或いはオフ)は、そのイベントが生じた時刻の情報とともに、RAM23に一時的に記憶される。CPU21は、RAM23に記憶された鍵の走査結果を参照して(ステップS11)、ある鍵についてイベントが発生しているか否かを判断する(ステップS12)。ステップS12でYesと判断された場合には、CPU11は、その発生したイベントが鍵オンであるか否かを判断する(ステップS13)。
Next, the
ステップS13でYesと判断された場合には、CPU21は、当該鍵オンがあった鍵について発音処理を実行する(ステップS14)。発音処理においては、CPU21は、RAM23に記憶されていたメロディ鍵用の音色データ、及び、鍵の音高を示すデータを読み出してRAM23に一時的に記憶する。後述する音源発音処理(図3のステップS6)において、音色や音高を示すデータは音源部26に与えられる。音源部26は、音色及び音高を示すデータにしたがって、ROM22の波形データを読み出して、所定の音高の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。
If it is determined Yes in step S13, the
その後、CPU21は、鍵オンがあった鍵についての音高情報(たとえば鍵番号)及び押鍵タイミング(たとえば押鍵時刻)をRAM23に格納する(ステップS15)。押鍵タイミングは、割り込みカウンタのカウンタ値に基づいて算出することができる。
Thereafter, the
ステップS13でNoと判断された場合には、発生イベントが鍵オフであったことになる。したがって、CPU21は、鍵オフになった鍵についての消音処理を実行する(ステップS16)。消音処理においては、CPU21は、発生イベントから消音すべき楽音の音高を示すデータを生成し、RAM23に一時的に記憶する。この場合にも、後述する音源発音処理(ステップS6)において、消音すべき楽音の音高を示すデータが、音源部26に与えられる。音源部26は、与えられたデータに基づいて、所定の楽音を消音する。その後、CPU21は、鍵オフがあった鍵について、押鍵されていた時間(押鍵時間)をRAM23に格納する(ステップS17)。
If it is determined No in step S13, the generated event is key-off. Therefore, the
CPU21は、全ての鍵イベントについて処理が終了したかを判断する(ステップS18)。ステップS18でNoと判断された場合には、ステップS12に戻る。
The
鍵盤処理(図3のステップS3)が終了すると、CPU21は、コード判定処理を実行する(ステップS4)。図5は、本実施の形態にかかるコード判定処理の例を示すフローチャートである。本実施の形態においては、概略的には、現在発音されているメロディ音を、現在メロディ音(Current Melody)CM、それより1つ前に発音されているメロディ音を、先行メロディ音(Previous Melody)PM、現在より一つ前に演奏されていたコード名を、先行コード名(Previous CHord name)PreCHとして、現在メロディ音CM、先行メロディ音PM及び先行コード名PreCHに基づいて、新たに発音すべき現在コード名(Current CHord name)CurCHを決定している。なお、本実施の形態においては、楽曲の調性をハ長調(CMaj)或いはイ短調(Amin)として、コード名については、IMaj、IImなど、主音に対する度数で表し、そのデータをRAM23などに記憶している。他の調性の場合には、当該調性のルート音と、「C」(或いは「A」)の音との音高差に基づいて、ルート音を伴うコード名を得ることが可能である。
なお、楽曲の調性は、ハ長調(CMaj)或いはイ短調(Amin)として予め定められている場合に限られず、他の長調、短調を含めてリアルタイムに決定してもよい。この場合、決定される調の種類は、1つ以上となる。さらに、決定された調は、RAM23に記憶される。
When the keyboard process (step S3 in FIG. 3) is completed, the
Note that the tonality of the music is not limited to the case where it is predetermined as C major (CMaj) or A minor (Amin), and may be determined in real time including other majors and minors. In this case, one or more key types are determined. Further, the determined key is stored in the
ただし、押鍵が何拍目に行なわれたかなど、押鍵された時間的な位置や、押鍵が拍の頭であるか否か、或いは、複数の押鍵による音型(持続、順次進行、跳躍など)に基づいて、上記現在メロディ音CM及び先行メロディ音PMを決定すべき場合がある。つまり、現実に現在押鍵されている鍵以外の押鍵について現在メロディ音CMとすべき場合や、現在押鍵された鍵の1つ前に押鍵された鍵以外の押鍵について先行メロディ音PMとすべき場合がある。以下、コード判定処理において、ステップS24〜30は、主として、現在メロディ音CM及び先行メロディ音PMの決定に関する。引き続いて実行されるステップS31が、現在メロディ音CM、先行メロディ音PM及び先行コード名PreCHに基づいて、具体的に現在コード名CurCHを決定する処理となる。 However, the time position at which the key was pressed, such as at what beat the key was pressed, whether the key was the beginning of the beat, or the sound type by multiple key presses (continuous, progressive ), The current melody sound CM and the preceding melody sound PM may be determined. That is, when a key other than the key currently pressed is to be the current melody sound CM, or when a key other than the key pressed immediately before the key currently pressed is the preceding melody sound There are cases where it should be PM. Hereinafter, in the chord determination process, steps S24 to 30 mainly relate to determination of the current melody sound CM and the preceding melody sound PM. The subsequent step S31 is a process for specifically determining the current chord name CurCH based on the current melody sound CM, the preceding melody sound PM, and the preceding chord name PreCH.
まず、CPU21は、現在時刻が属する拍の情報及び押鍵情報(鍵オンの時刻や鍵オフまでの時間)を特定して、現在の拍において押鍵された鍵を特定し、かつ、現在時刻が属する拍の一つ前の区間(前拍区間)において、押鍵されていた鍵の情報を取得する(ステップS21)。ステップS21において、現在の拍における押鍵された鍵の情報が、現在メロディ音CMの初期値、前拍区間の先頭で押鍵された鍵の情報が、先行メロディ音PMの初期値となる。
First, the
次いで、CPU21は、拍の情報及び押鍵情報に基づいて、現在時刻が属する拍の先頭に押鍵中の鍵が存在しているかを判断する(ステップS22)。ステップS23でNoと判断された場合には、コード名判定処理が終了する。ステップS22でYesと判断された場合には、CPU21は、現在コード名CurCHを、先行コード名PreCHにコピーする(ステップS23)。
Next, the
CPU21は、後述するコードテーブルを指定するテーブル指定情報を、第2のコードテーブルを指定する情報に設定する(ステップS24)。コードテーブルには、主として押鍵が1拍目であるときに用いる第1のコードテーブルと、それ以外のときに用いる第2のコードテーブルが含まれ、それぞれROM22に格納されている。テーブル指定情報は、第1のコードテーブル或いは第2のコードテーブルの何れを用いるかを示す情報であり、RAM23に格納される。
The
次いで、押鍵された鍵の時間的位置、つまり、鍵が何拍目に押鍵されたかを判断する(ステップS25、26、28)。押鍵が1拍目である場合(ステップS25でYes)或いは押鍵が3拍目である場合(ステップS26でYes)には、CPU21は、1拍目・3拍目対応ノート決定処理を実行する(ステップS27)。押鍵が2拍目である場合(ステップS28でYes)には、2拍目対応ノート決定処理を実行する(ステップS29)。また、ステップS508でNoと判断された場合、つまり、押鍵が4拍目である場合には、4拍目対応ノート決定処理を実行する(ステップS30)。
Next, the time position of the pressed key, that is, the beat at which the key is pressed is determined (steps S25, 26, and 28). When the key press is the first beat (Yes in step S25) or the key press is the third beat (Yes in step S26), the
本実施の形態においては、楽曲は4分の4拍子であり、1小節が4拍で構成される。押鍵がn拍目であることは、押鍵のタイミングが、第n拍の先頭以降で、第(n+1)拍の先頭よりも時間的に早いことを意味している。 In the present embodiment, the music has a four-quarter beat, and one measure is composed of four beats. The key depression being the nth beat means that the timing of the key depression is temporally earlier than the beginning of the (n + 1) th beat after the beginning of the nth beat.
楽曲の構成要素には拍子及び拍という概念がある。また、拍子においては拍ごとに重みがあり、上記拍の重みを考慮してメロディは進行する。また、シンコペーションなど、場合によって拍の重みが移動する場合もある。本実施の形態においては、拍の重みを考慮して、最適なメロディの流れを構成する構成音を抽出し、コード判定に用いるのに最適な現在メロディ音CM及び先行メロディ音PMを特定する。 The components of music have the concept of time and beat. Further, in the time signature, there is a weight for each beat, and the melody progresses in consideration of the weight of the beat. In some cases, the weight of the beat may move, such as syncopation. In the present embodiment, taking into account the weight of the beat, constituent sounds constituting an optimal melody flow are extracted, and the current melody sound CM and preceding melody sound PM that are optimal for use in chord determination are specified.
図6〜図9は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。図6に示すように、押鍵が1拍目に関するものであるかを判断する(ステップS41)。ステップS24でYesと判断された場合には、CPU21は、テーブル指定情報を、第1のテーブルを示す情報に変更する(ステップS42)。次いで、CPU12は、第1のドミナントモーション判定処理を実行する(ステップS43)。
6 to 9 are flowcharts showing examples of the first-beat / third-beat-corresponding note determination processing according to the present embodiment. As shown in FIG. 6, it is determined whether the key depression is related to the first beat (step S41). When it is determined Yes in step S24, the
ドミナントモーション判定処理は、メロディの流れからドミナントモーション(つまり、属和音(ドミナント)から主和音(トニック)への進行)を抽出するものである。本実施の形態においては、処理においてコード名を考慮した第1のドミナントモーション判定処理と、コード名を考慮しない第2のドミナントモーション判定処理とが用いられる。図10は、本実施の形態にかかる第1のドミナントモーション判定処理の例を示すフローチャートである。 The dominant motion determination process is to extract a dominant motion (that is, progression from a genus chord (dominant) to a main chord (tonic)) from the melody flow. In the present embodiment, a first dominant motion determination process in which the code name is considered in the process and a second dominant motion determination process in which the code name is not considered are used. FIG. 10 is a flowchart showing an example of the first dominant motion determination process according to the present embodiment.
図10に示すように、CPU21は、RAM23に格納された先行コード名PreCHが、メジャー系のドミナントコードのいずれかに対応するかを判断する(ステップS81)。ここで、本実施の形態にかかる第1のドミナントモーション判定処理においては、たとえば、メジャー系のドミナントコードは、「VMaj」、「V7」及び「VIIm7(−5)」としている。ステップS81でYesと判断された場合には、CPU21は、(先行メロディ音PM及び現在メロディ音CMの値の組である(PM,CM)が、(F,E)、(B,C)、(D,C)の何れかであるかを判断する(ステップS82)。ステップS82では、先行メロディ音PMから現在メロディ音CMへの動きが、長調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。
As shown in FIG. 10, the
ステップS82でYesと判断された場合には、CPU21は、現在コード名CurCHを「IMaj」に決定し、その情報をRAM23に格納する(ステップS83)。その後、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納する(ステップS84)。ステップS81でNo或いはステップS82でNoと判断された場合には、CPU21は、先行コード名PreCHが、マイナー系のドミナントコードの何れかに対応するかを判断する(ステップS85)。ここで、本実施の形態において、たとえば、マイナー系のドミナントコードは、「IIIMaj」及び「III7」としている。
If it is determined Yes in step S82, the
ステップS85でYesと判断された場合には、CPU21は、(PM,CM)が、(G#,A)、(B,A)、(D,C)の何れかであるかを判断する(ステップS86)。ステップS86においては、先行メロディ音PMから現在メロディ音CMへの動きが、短調の和音進行でドミナントからトニックに解決するときの動きであるか否かを判断している。ステップS86でYesと判断された場合には、CPU21は、現在コード名CurCHを「VImin」に決定し、その情報をRAM23に格納する(ステップS87)。その後、ステップS84に進む。
When it is determined Yes in step S85, the
ステップS85でNoと判断された場合、或いは、ステップS86でNoと判断された場合には、CPU21は、ドミナントモーション処理において第2の判定結果であったことを示す情報をRAM23に格納する(ステップS88)。
If it is determined No in step S85, or if it is determined No in step S86, the
ステップS43の第1のドミナントモーション判定処理が終了すると、CPU21は、第1のドミナントモーション判定処理の結果が、第2の処理結果であったかを判断する(ステップS44)。ステップS44でNoと判断された場合、つまり、第1のドミナントモーション判定処理の結果が、第1の処理結果であった場合には、先行メロディ音PM及び現在メロディ音CMを初期値から変更することなく、RAM23に格納して、処理を終了する(ステップS45)。ステップS44でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報を参照して、現在時刻に対応する拍の直前拍に押鍵があったかを判断する(ステップS46)。
When the first dominant motion determination process in step S43 ends, the
ステップS44でYesと判断された場合には、CPU21は、RAM23の押鍵情報を参照して、直前拍先頭以降にも押鍵があったかを判断する(ステップS47)。ステップS47でNoと判断されたことは、直前拍及び今回の拍でそれぞれ4分音符が押鍵されたことを意味する。この場合の処理については後述する。ステップS47でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報中、直前拍先頭以降に押鍵された鍵の発音時間を参照して、現在まで発音中であるかを判断する(ステップS49)。ステップS49では、拍頭の押鍵ではなくても、それが直前拍先頭以降に押鍵されかつ維持されているものであれば、シンコペーションに該当するため、シンコペーションに該当する押鍵があったかを判断している。
When it is determined Yes in step S44, the
ステップS49でYesと判断された場合には、先行メロディ音PMは初期値のまま、その一方、直前拍先頭以降に押鍵された鍵を現在メロディ音CMとするとともに、シンコペーションフラグSYNを「1」にセットして、RAM23に格納する(ステップS50)。先行メロディ音PM及び現在メロディ音CMは、RAM23に格納される。シンコペーションに該当する押鍵は、拍頭における押鍵と同様の重みを有するため、拍頭と同様に扱われる。
If it is determined Yes in step S49, the preceding melody sound PM remains the initial value, while the key pressed after the head of the immediately preceding beat is set as the current melody sound CM, and the syncopation flag SYN is set to “1”. And stored in the RAM 23 (step S50). The preceding melody sound PM and the current melody sound CM are stored in the
次に、図7を参照して、ステップS46でNoであった場合について説明する。ステップS46でNoと判断された場合には、CPU21は、現在の拍先頭における押鍵が曲開始音に該当するかを判断する(ステップS51)。ステップS51は、CPU21が、AM23に格納された押鍵情報を参照して、最初の押鍵情報であるかを判断することにより実現できる。ステップS51でYesと判断された場合には、先行メロディ音PMとして、現在メロディ音CMを与える。また、現在メロディ音CMを初期値から変更することはないが、CPU21は、テーブル指定情報を第2のコードテーブルを指定する情報に変更する(ステップS52)。
Next, with reference to FIG. 7, the case where it is No in step S46 will be described. When it is determined No in step S46, the
ステップS51でNoと判断された場合には、8拍以上の時間、押鍵が無いかを判断する(ステップS53)。ステップS53でYesと判断された場合には、CPU21は、現在メロディ音CMは初期値のまま維持し、その一方、先行メロディ音PMとして、現在メロディ音CMを与え、RAM23に情報を格納する(ステップS54)。ステップS53でYesと判断される場合は、2小節以上、新たな押鍵が無いことになる。この場合には、メロディシーケンスの意味が薄くなるため、2小節以上前に押鍵された先行メロディ音PMの初期値は無視することとしている。ステップS53でNoと判断された場合には、CPU21は、先行メロディ音PM及び現在メロディ音CMを初期値のまま維持する(ステップS55)。
If it is determined No in step S51, it is determined whether there is no key depression for a time of 8 beats or more (step S53). If it is determined Yes in step S53, the
次に、図8を参照して、ステップS47でNoと判断された場合について説明する。ステップS47でNoと判断された場合には、CPU21は、現在メロディ機能(CurrentMelodyFunction:CMF)が、非和声音(OtherTone:OT)であるかを判断する(ステップS61)。ここに、現在メロディ機能CMFは、先行コード名PreCHに対する現在メロディ音CMの機能を示す。本実施の形態において、CMFは、現在メロディ音CMが、先行コード名PreCHのコード構成音であることを示すコードトーン(ChordTone:CT)、現在のスケール(調性)の構成音であることを示すスケールノート(ScaleNote:CN)、その他の音(非和声音)を示すアザートーン(OtherTone)の何れかとなる。
Next, the case where No is determined in step S47 will be described with reference to FIG. When it is determined No in step S47, the
より具体的には、コード名と音名との間を関連付けたメロディ機能テーブルをROM22に格納し、CPU21が、現在メロディ音CM及び先行コード名PreCHの組に対応付けられた値を参照して、現在メロディ機能を判断している。図25は、本実施の形態にかかるメロディ機能テーブルの一例の部分を示す図である。図25に示すように、メロディ機能テーブル2500においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。図25において、メロディ機能テーブル2500中、CTはコードトーンを示し(たとえば、符号2501〜2503参照)、SNは、スケールノートを示す(たとえば、符号2511〜2513参照)。また、図25においては、メロディ機能テーブル2500中、何も記載されていない欄(たとえば、符号2521、2522参照)は、アザートーンを示す。
More specifically, a melody function table that associates chord names with pitch names is stored in the
ステップS61でYesと判断された場合には、CPU21は、先行メロディ音PM及び現在メロディ音CMを、初期値のまま維持する(ステップS62)。その一方、ステップS61でNoと判断された場合には、CPU21は、現在メロディ機能CMFがスケールノートSNであるかを判断する(ステップS63)。ステップS63でYesと判断された場合には、CPU21は、先行メロディ音PMと現在メロディ音CMとの差が2半音以内であるかを判断する(ステップS64)。ステップS64では、いわゆる順次進行であるかが判断されている。ステップS64でYesと判断された場合、又は、ステップS63でNoと判断された場合には、第1のドミナントモーション処理を実行する(ステップS65)。
When it is determined Yes in step S61, the
次いで、CPU21は、第1のドミナントモーション判定処理(ステップS65)において、第2の判定結果であるかを判断する(ステップS66)。ステップS66でNoと判断された場合、つまり、第1の判定結果である場合には、CPU21は、先行メロディ音PM及び現在メロディ音CMを、初期値のまま維持する(ステップS62)。ステップS66でYesと判断された場合には、CPU21は、現在の押鍵、つまり、処理対象となっている押鍵が1拍目のものであるかを判断する(ステップS63)。ステップS63でYesと判断された場合には、CPU21は、先行メロディ音PM及び現在メロディ音CMを、初期値のまま維持する(ステップS68)。
Next, the
その一方、ステップS67でNoと判断された場合、つまり、処理対象となっている押鍵が3拍目のものであれば、CPU21は、先行メロディ音PMとして、初期的な先行メロディ音PMよりさらに1つ前に押鍵された音高PPMを与える(ステップS69)。なお、現在メロディ音CMは初期値が維持される。これは、3拍目で順次進行を構成する楽音は、装飾的な音である可能性が高く、メロディラインを支配する本来の楽音は、さらにその一拍前の楽音とすることが適切であると考えられるからである。
On the other hand, if it is determined No in step S67, that is, if the key to be processed is the third beat, the
次に、ステップS49でNoと判断された場合について説明する。図9に示すように、CPU21は、直前拍における拍頭以降の押鍵音を特定し(ステップS71)、特定された押鍵音の音高が、初期的なCMと同一であるかを判断する(ステップS72)。ステップS72でYesと判断された場合には、CPU21は、現在メロディ音CMを初期的な状態で維持し、その一方、先行メロディ音PMとして、現在メロディ音CMの値を与える(ステップS73)。たとえば、直前拍において、8分音符で「D」、「C」という順でメロディが進行し、現在の拍での押鍵が「C」であった場合を考える。この場合には、直前拍の最初の「D」の音は装飾音であると考えて、「D」から「C」というシーケンスではなく、「C」から「C」というシーケンスが適当であると考えている。このため、先行メロディ音を、現在メロディ音と同じにして、同じ音の連続としている。
Next, the case where it is determined No in step S49 will be described. As shown in FIG. 9, the
ステップS72でNoと判断された場合には、CPU21は、特定された拍頭以降の押鍵音が、全て、先行メロディ音PMと等しいかを判断する(ステップS74)。ステップS74でYesと判断された場合には、ステップS63に進む。たとえば、直前拍において、16分音符で、「D」、「C」、「C」、「C」という4つの押鍵がなされたと考える。この場合には、拍頭であるからといって「D」は、装飾的な音であることも考えられるため、拍頭の押鍵である「D」を、先行メロディ音PMとすべきではない場合もある。そこで、ステップS63以降の処理を実行している。
When it is determined No in step S72, the
その一方、ステップS74でNoと判断された場合には、CPU21は、先行メロディ音PM及び現在メロディ音CMを、初期値のまま維持する(ステップS75)。
On the other hand, when it is determined No in step S74, the
次に、2拍目対応ノート決定処理(ステップS29)について説明する。図11〜図14は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。図11に示すように、CPU21は、1拍目に押鍵が無かったかを判断する(ステップS91)。ステップS91でYesと判断された場合、つまり、押鍵が゛無かった場合には、CPU21は、テーブル指定情報を第1のコードテーブルを指定する情報に変更する(ステップS91)。たとえば、曲の途中で、前の小節の音が延び、1拍目が休符で、2拍目から次のフレーズが開始されるときには、本実施の形態では、2拍目で押鍵された音が1拍目と同様の重みがあると考え、1拍目用のコードテーブルである第1のコードテーブルを使用するようにしている。
Next, the second beat corresponding note determination process (step S29) will be described. FIGS. 11-14 is a flowchart which shows the example of the 2nd beat corresponding | compatible note determination process concerning this Embodiment. As shown in FIG. 11, the
2拍目対応ノート処理では、1拍目・3拍目対応ノート決定処理の第1のドミナントモーション判定処理(ステップS43)及びその判定結果に基づく処理(ステップS44、45)が省略されている。ステップS93〜ステップS97は、それぞれ、図6のステップS46〜50と同様である。 In the second beat corresponding note processing, the first dominant motion determination processing (step S43) and the processing based on the determination result (steps S44 and 45) of the first beat / third beat corresponding note determination processing are omitted. Steps S93 to S97 are the same as steps S46 to S50 in FIG.
また、図12は、ステップS93でNoと判断された場合に実行される処理である。ステップS101、ステップS103〜105は、それぞれ、図7のステップS51、ステップS53〜55と同様である。また、ステップS102では、テーブル指定情報の変更が伴わないことを除き、図7のステップS52と同様である。 FIG. 12 is a process executed when No is determined in step S93. Steps S101 and S103 to 105 are the same as steps S51 and S53 to 55 in FIG. 7, respectively. Step S102 is the same as step S52 in FIG. 7 except that the table designation information is not changed.
次に、ステップS94でNoと判断された場合について説明する。図13に示すように、CPU21は、現在メロディ機能CMFが、非和声音OTであるかを判断する(ステップS111)。ステップS111及びステップS111でYesの場合に進むステップS112は、図8のステップS61、62と同様である。
Next, the case where it is determined No in step S94 will be described. As shown in FIG. 13, the
ステップS111でNoと判断された場合には、CPU21は、先行コード名PreCHが無判定コード以外のコードであるかを判断する(ステップS113)。図21(特にステップS205)において説明するように、無判定コードについては、先の処理で転調フラグが「1」以上の値となっている。そこで、ステップS113では、RAM23に格納された転調フラグが「1」以上であるかを判断すれば良い。
When it is determined No in step S111, the
ステップS113でNo、つまり、先行コード名PreCHが無判定コードである場合には、CPU21は、先行メロディン音PMとして、現在メロディ音CMを与える(ステップS114)。その一方、ステップS113でYesと判断された場合、つまり、先行コード名PreCHが無判定コード以外である場合には、現在メロディ機能CMFがスケールノートSNであるかを判断する(ステップS115)。ステップS63でYesと判断された場合には、CPU21は、先行メロディ音PMと現在メロディ音CMとの差が2半音以内であるかを判断する(ステップS116)。ステップS115及びステップS116は、図8のステップS63及び64と同様である。ステップS115でNoと判断された場合、或いは、ステップS116でYesと判断された場合には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与える(ステップS117)。
つまり、先行コード名PreCHが保持されることになる。
If No in step S113, that is, if the preceding code name PreCH is a non-determined code, the
That is, the preceding code name PreCH is held.
2拍目や4拍目においては、先行コード名が維持されるコードホールドが行なわれる場合があるため、適切なコードホールドを実現している。本実施の形態では、現在メロディ機能CMFがコードトーン(CT)である場合、或いは、現在メロディ機能CMFがスケールノート(SN)であり、かつ、順次進行である場合には、コードホールドを行なっている。4拍子の楽曲では、2拍目及び4拍目は弱拍である。したがって、メロディが弱拍を強調するものでない限り、基本的に、2拍目及び4拍目のコードは、1拍目及び3拍目のコードを維持している。 In the 2nd beat and the 4th beat, since the chord hold in which the preceding chord name is maintained may be performed, an appropriate chord hold is realized. In the present embodiment, when the current melody function CMF is a chord tone (CT), or when the current melody function CMF is a scale note (SN) and progresses sequentially, chord hold is performed. Yes. In a 4-beat music, the second and fourth beats are weak. Therefore, unless the melody emphasizes weak beats, the second and fourth chords basically maintain the first and third beat chords.
たとえば、図46に示す楽曲では、拍頭に「C」、「D」、「E」、「F」、「E」、「D」、「C」という音があり、この音のシーケンスは順次進行となっている。実際には、このシーケンスに適切なコード名は、IMaj(CMaj)である。しかしながら、ステップS115〜ステップS117に示す処理を実行しないと、2拍目や4拍目では、コード名がIMaj(CMaj)以外になってしまう。そこで、ステップS115〜116に示すように一定の条件の下では、コードホールドを行なって、適切なコード名を得られるようにしている。 For example, in the music shown in FIG. 46, there are sounds of “C”, “D”, “E”, “F”, “E”, “D”, “C” at the beginning, and the sequence of these sounds is in sequence. It is progressing. In practice, a suitable code name for this sequence is IMaj (CMaj). However, if the processing shown in steps S115 to S117 is not executed, the chord name will be other than IMaj (CMaj) at the second and fourth beats. Therefore, as shown in steps S115 to 116, code holding is performed under a certain condition so that an appropriate code name can be obtained.
ステップS117の後、CPU21は、RAM23中のコード決定フラグを「1」にセットする(ステップS118)。この場合には、ステップS117で既に現在コード名CurCHが決定されるため、後続するコード決定の処理を要さないからである。
After step S117, the
また、ステップS116でNoと判断された場合には、ステップS112に進み、先行メロディ音PM及び現在メロディ音CMが維持される。 If it is determined No in step S116, the process proceeds to step S112, and the preceding melody sound PM and the current melody sound CM are maintained.
ステップS96でNoと判断された場合の処理は、図14に示される。図14のステップS121〜ステップS125は、図9のステップS71〜75と同様である。ステップS124でYesと判断された場合には、図10のステップS115に進み、コードホールドが判断される。 The processing in the case where it is determined No in step S96 is shown in FIG. Steps S121 to S125 in FIG. 14 are the same as steps S71 to S75 in FIG. If it is determined Yes in step S124, the process proceeds to step S115 in FIG. 10 to determine code hold.
次に、4拍目対応ノート決定処理(ステップS30)について説明する。図15〜図16は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。4拍目対応ノート決定処理は、2拍目対応ノート決定処理と類似する。 Next, the fourth beat corresponding note determination process (step S30) will be described. 15 to 16 are flowcharts showing an example of the fourth beat corresponding note determination process according to the present embodiment. The fourth beat corresponding note determination process is similar to the second beat corresponding note determination process.
図15に示すように、4拍目対応ノート決定処理においては、1拍目の押鍵の有無及びそれに伴う処理(図11のステップS91〜92)は省略されている。図15において、ステップS131〜135は、図11のステップS93〜97と同様である。また、ステップS131でYesと判断された場合には、図12の処理が実行される。 As shown in FIG. 15, in the fourth beat corresponding note determination process, the presence / absence of the first beat key depression and the process (steps S91 to S92 in FIG. 11) are omitted. In FIG. 15, steps S131 to S135 are the same as steps S93 to 97 of FIG. If it is determined Yes in step S131, the process of FIG. 12 is executed.
ステップS132でNoと判断された場合には、図16に示す処理が実行される。図16において、ステップS141〜146は、図13のステップS111〜116と同様である。4拍目対応ノート処理においては、ステップS145でNo或いはステップS146でYesと判断されたときに、さらに、第2のドミナントモーション判定処理(ステップS147)を実行し、その結果に基づいて、コードホールドと行なうべきかを判断している。 If it is determined No in step S132, the process shown in FIG. 16 is executed. In FIG. 16, steps S141 to 146 are the same as steps S111 to 116 in FIG. In the note processing corresponding to the fourth beat, when it is determined No in step S145 or Yes in step S146, the second dominant motion determination process (step S147) is further executed, and the code hold is performed based on the result. Judging what should be done.
図17は、本実施の形態にかかる第2のドミナントモーション判定処理の例を示すフローチャートである。第2のドミナントモーション判定処理では、メロディ音の遷移のみが判断され、先行コード名PreCHのコード種別は考慮されない。図17に示すように、CPU21は、(PM,CM)が、(F,E)、(B,C)、(D,C)の何れかであるかを判断する(ステップS151)。これは、図10のステップS82と同様である。ステップS151でNoと判断された場合には、CPU21は、(PM,CM)が、(G#,A)、(B,A)、(D,C)の何れかであるかを判断する(ステップS153)。これは、図10のステップS86と同様である。
FIG. 17 is a flowchart illustrating an example of the second dominant motion determination process according to the present embodiment. In the second dominant motion determination process, only the transition of the melody sound is determined, and the chord type of the preceding chord name PreCH is not considered. As shown in FIG. 17, the
ステップS151でYesと判断された場合、或いは、ステップS153でYesと判断された場合には、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納する(ステップS152)。その一方、ステップS153でNoと判断された場合には、CPU21は、ドミナントモーション処理において第1の判定結果であったことを示す情報をRAM23に格納する(ステップS154)。
If it is determined Yes in step S151, or if it is determined Yes in step S153, the
第2のドミナントモーション判定処理により第2の判定結果となった場合(ステップS148でYes)には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与える(ステップS149)。つまり、先行コード名PreCHが保持されることになる。次いで、CPU21は、RAM23中のコード決定フラグを「1」にセットする。その一方、ステップS148でYesと判断された場合には、ステップS142に進み、先行メロディ音PM及び現在メロディ音CMが維持される。
When the second determination result is obtained by the second dominant motion determination process (Yes in step S148), the
ステップS134でNoと判断された場合には、図14に示す処理が実行される。 If it is determined No in step S134, the process shown in FIG. 14 is executed.
ステップS27、29、30に示す、拍のそれぞれに対応したノート決定処理が終了すると、処理により修正された先行メロディ音PM及び現在メロディ音CMに基づいて、コード決定処理が実行される(ステップS31)。図18〜図21は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。 When the note determination process corresponding to each beat shown in steps S27, 29, and 30 is completed, the chord determination process is executed based on the preceding melody sound PM and the current melody sound CM corrected by the process (step S31). ). 18 to 21 are flowcharts illustrating an example of the code determination process according to the present embodiment.
図18に示すように、CPU21は、コードホールドにより既に現在コード名CurCHが決定され、コード決定フラグが「1」ではないかを判断する(ステップS161)。ステップS161でNoと判断された場合、つまり、コード決定フラグが「1」である場合には、CPU21は、現在コード名CurCH及びその発音時刻をRAM23の所定の領域に格納する(ステップS175)。
As shown in FIG. 18, the
ステップS161でYesと判断された場合、つまり、コード決定フラグが「1」ではない場合には、CPU21は、RAM23から先行メロディ音PM及び現在メロディ音CMを取得する(ステップS162)。CPU21は、先行メロディ音PMが曲開始音であるかを判断する(ステップS163)。ステップS163においては、たとえば、先行メロディ音PMよりさらに前の時刻に押鍵された音が存在しないことを判断すれば良い。ステップS163でNoと判断された場合には、CPU21は、先行コード音PreCHが無判定コードであるかを判断する(ステップS164)。
When it is determined Yes in step S161, that is, when the code determination flag is not “1”, the
ステップS163でYesと判断された場合、或いは、ステップS164でYesと判断された場合には、CPU21は、先行メロディ音PMとして、現在メロディ音CMを与える(ステップS165)。ステップS164でYesと判断された場合には、先行コード名PreCHが無判定コードであるため、新たにメロディシーケンスが開始する方が妥当であるからである。
If it is determined Yes in step S163, or if it is determined Yes in step S164, the
次いで、CPU21は、メロディシーケンステーブルを参照して(PM,CM)に対応する値の組を取得する(ステップS166)。図22は、本実施の形態にかかるメロディシーケンステーブルの例を示す図である。図22に示すように、メロディシーケンステーブル2200には、所定の先行メロディ音PM及び現在メロディ音CMについて値の組が格納されている。(PM,CM)に対応する値の組がメロディシーケンステーブル2200中に存在すれば、その値の組を一時的にRAM23に格納すれば良い。その一方、(PM,CM)に対応する値の組が、メロディシーケンステーブル2200中に存在しなければ、値の組が存在しないことを示す情報をRAM23に格納すれば良い。
Next, the
次に、CPU21は、現在メロディ音CMの直前に押鍵された音(CM直前音)を特定する(ステップS167)。ここにいう直前に押鍵された音は、実際に直前に押鍵された音であり、先行メロディ音PMと同一ではない場合もある。CPU21は、ステップS167で特定されたCM直前音と、現在メロディ音CMとを比較して、これらの音高差が5半音以上であるかを判断する(ステップS168)。ステップS168でYesと判断された場合には、CPU21は、現在メロディ音CMが1拍目の押鍵に関するものであるかを判断する(ステップS169)。
Next, the
メロディシーケンスにおいては、核となるべきメロディ音が含まれ、その前後には、核となるメロディ音を装飾するメロディ音が存在する場合がる。装飾するメロディ音は、核となるメロディ音からそれほど音高差が無いのが通常である。その一方、音高差が一定範囲(たとえば4度程度)以上となるように跳躍する場合には、跳躍した後の音に比較的重みが大きくなる場合が多い。そこで、ステップS168で、音高差を判断して、その差に基づいて異なる処理を行なっている。 The melody sequence includes a melody sound that should be a core, and there may be a melody sound that decorates the core melody sound before and after that. Normally, the melody sound to be decorated does not have much pitch difference from the core melody sound. On the other hand, when jumping so that the pitch difference is not less than a certain range (for example, about 4 degrees), the weight after the jump is often relatively large. Therefore, in step S168, the pitch difference is determined, and different processing is performed based on the difference.
ステップS169でYesと判断された場合には、CPU21は、先行コード名PreCHが2小節以上継続しているかを判断する(ステップS171)。ステップS171でYesと判断された場合には、CPU21は、第1のコードテーブルのうち、種別として「jump2」の欄を参照することを決定し、第1のコードテーブル中の所定のコード名を取得する(ステップS172)。その一方、ステップS172でNoと判断された場合には、CPU21は、第1のコードテーブルのうち、種別として「jump1」の欄を参照することを決定し、第1のコードテーブル中の所定のコード名を取得する(ステップS173)。
When it is determined Yes in step S169, the
図23は、本実施の形態にかかる第1のコードテーブルの例を示す図である。図23においては、第1のコードテーブルの一部を示している。図23に示すように、コードテーブル2300では、少なくとも、先行コード名の機能(先行コード機能(PreviousChordFunction):符号2310参照)及び(先行メロディ音PM,現在メロディ音CM)の組(たとえば、符号2301、2302参照)に基づいて、コード名が決められるようになっている。 FIG. 23 is a diagram illustrating an example of a first code table according to the present embodiment. FIG. 23 shows a part of the first code table. As shown in FIG. 23, in the code table 2300, at least a set of a preceding code name function (preceding chord function (PreviousChordFunction): see reference numeral 2310) and (preceding melody sound PM, current melody sound CM) (for example, reference numeral 2301) 2303), the code name is determined.
さらに、本実施の形態においては、「ジャンプなし」、「jump1」及び「jump2」という3つの種別(符号2311参照)を設け、先行コード機能、(先行メロディ音PM,現在メロディ音CM)の組及び種別に基づいて、コード名が決定されるようになっている。 Further, in the present embodiment, three types (see reference numeral 2311) of “no jump”, “jump1”, and “jump2” are provided, and a set of a preceding chord function and (preceding melody sound PM, current melody sound CM). The code name is determined based on the type.
先行コード機能は、トニック(TO)、サブドミナント(SU)及びドミナント(DO)の3つがある。トニックに該当するコード名として、「IMaj」、「IM7」、「IIImin」、「IIIm7」、「VImin」、「VIm7」がある。サブドミナントに該当するコード名として、「IImin」、「IIm7」、「IIm7(−5)」、「IVMaj」、「IVM7」、「IVmin」、[IVmM7]がある。また、ドミナントに該当するコード名として、「IIIMaj」、「III7」、「III7sus4」、「VMaj」、「V7」、「V7sus4」、「VIIm7(−5)」がある。先行コード機能ごとの該当するコード名は、たとえば、RAM23に予め格納されている。
There are three preceding code functions: tonic (TO), subdominant (SU), and dominant (DO). Code names corresponding to tonics include “IMaj”, “IM7”, “IIImin”, “IIIm7”, “VImin”, and “VIm7”. Code names corresponding to the subdominant include “IImin”, “IIm7”, “IIm7 (−5)”, “IVMaj”, “IVM7”, “IVmin”, and [IVmM7]. As code names corresponding to dominant, there are “IIIMaj”, “III7”, “III7sus4”, “VMaj”, “V7”, “V7sus4”, and “VIIm7 (−5)”. The corresponding code name for each preceding code function is stored in advance in the
また、種別において「jump2」は、メロディシーケンスにおける跳躍及び先行コード名の継続を考慮して、コードの変化の程度を大きくしている。その一方、「jump1」では、「jump2」の場合よりも、コード変化の度合いが小さい。また、「ジャンプなし」という種別は、後述するように、第1のコードテーブルを使用する場合でも、「jump1」或いは「jump2」の種別が無い場合に使用されるものである。 In addition, “jump2” in the type increases the degree of chord change in consideration of the jump in the melody sequence and the continuation of the preceding chord name. On the other hand, the degree of code change is smaller in “jump1” than in “jump2”. The type “no jump” is used when there is no “jump1” or “jump2” type even when the first code table is used, as will be described later.
たとえば、先行コード名PreCHの先行コード機能が「トニック」であり、かつ、(先行メロディ音PM,現在メロディ音CM)=(C,G)であり、種別が「jump2」であれば、第1のコードテーブルから「VMaj」(符号2321参照)が取得される。また、先行コード名PreCHの先行コード機能が「トニック」であり、かつ、(先行メロディ音PM,現在メロディ音CM)=(C,G)であり、種別が「jump1」であれば、第1のコードテーブルから「IMaj」(符号2322参照)が取得される。 For example, if the preceding code function of the preceding code name PreCH is “Tonic”, (preceding melody sound PM, current melody sound CM) = (C, G), and the type is “jump2”, the first “VMaj” (see reference numeral 2321) is acquired from the code table of FIG. Also, if the preceding code function of the preceding code name PreCH is “Tonic”, (preceding melody sound PM, current melody sound CM) = (C, G), and the type is “jump1”, the first "IMaj" (see reference numeral 2322) is obtained from the code table.
CPU21は、現在コード名CurCHとして、第1のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する(ステップS174、175)。
The
次に、ステップS168でNo或いはステップS169でNoと判断された場合について説明する。CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーン(CT)であるかを判断する(ステップS181)。ステップS181でYesと判断された場合には、CPU21は、先行コード名PreCHの楽音の発音時刻及び現在時刻に基づき、先行コード名PreCHの発音時間が2拍以内であるかを判断する(ステップS182)。ステップS182でYesと判断された場合には、CPU21は、さらに、シンコペーションフラグが「1」であるかを判断する(ステップS183)。
Next, the case where it is determined No in step S168 or No in step S169 will be described. The
ステップS183でNoと判断された場合には、CPU21は、第2のドミナントモーション処理を実行して(ステップS185)、先行メロディ音PMから現在メロディ音CMへの移行がドミナントモーションであるかを判断する。第2のドミナントモーション処理の結果が第2の判定結果である場合(ステップS185でYes)には、CPU21は、現在コード名CurCHとして、先行コード名PreCHを与える(ステップS186)。つまり、先行コード名PreCHが保持されることになる。
If it is determined No in step S183, the
ステップS181でNo、ステップS182でNo、或いは、ステップS185でNoと判断された場合には、CPU21は、(先行メロディ音PM,現在メロディ音CM)に対応する値の組が、メロディシーケンステーブル中に存在していたかを判断する(ステップS187)。図18のステップS166において、値の組或いは値の組が存在しないことを示す情報がRAM23に格納されているため、その情報を参照することにより、ステップS187の判断が可能である。
If NO in step S181, NO in step S182, or NO in step S185,
ステップS187でYesと判断された場合には、現在メロディ音CMが、1拍目或いは2拍目に関するものであり、かつ、テーブル指定情報は第1のテーブルを示しているかを判断する(ステップS188)。ステップS188でYesと判断された場合には、CPU21は、第1のコードテーブルのうち、種別として「ジャンプなし」の欄を参照することを決定し、第1のコードテーブルにおいて、所定のコード名を取得する(ステップS189)。これに対して、ステップS188でNoと判断された場合には、CPU21は、第2のコードテーブルを参照することを決定し、第2のコードテーブルにおいて、所定のコード名を取得する(ステップS190)。
If it is determined Yes in step S187, it is determined whether the current melody sound CM relates to the first or second beat and the table designation information indicates the first table (step S188). ). If it is determined Yes in step S188, the
図24は、本実施の形態にかかる第2のコードテーブルの例を示す図である。図24においては、第2のコードテーブルの一部を示している。図24に示すように、コードテーブル2300では、先行コード名の機能(先行コード機能(PreviousChordFunction):符号2410参照)及び(先行メロディ音PM,現在メロディ音CM)の組(たとえば、符号2401、2402参照)に基づいて、コード名が決められるようになっている。たとえば、先行コード名PreCHの先行コード機能が「サブドミナント」であり、かつ、(先行メロディ音PM,現在メロディ音CM)=(C,G)であれば、第2のコードテーブルから「VMaj」(符号2421参照)が取得される。
FIG. 24 is a diagram illustrating an example of a second code table according to the present embodiment. FIG. 24 shows a part of the second code table. As shown in FIG. 24, in the code table 2300, a set of preceding code name functions (preceding chord function (Previous Chord Function): see reference numeral 2410) and (preceding melody sound PM, current melody sound CM) (for example,
その後、CPU21は、現在コード名CurCHとして、第1のコードテーブル或いは第2のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する(ステップS191、175)。
Thereafter, the
ステップS187においてYesと判断される場合は、メロディシーケンステーブルに、(先行メロディ音PM,現在メロディ音CM)の組が存在したため、コードテーブルを参照することで適切なコード名が取得されている。その一方、ステップS187でNoと判断された場合には、転調或いは一時的な無判定コードの決定などが行なわれる。ステップS187でNoと判断された場合には、CPU21は、現在メロディ音CMの発音時間(押鍵時間)が4分音符より大きいか、つまり、1拍より長く発音されているかを判断する(ステップS201)。
If it is determined Yes in step S187, an appropriate chord name is acquired by referring to the chord table because there is a set of (preceding melody tone PM, current melody tone CM) in the melody sequence table. On the other hand, when it is determined No in step S187, modulation or temporary determination of a non-determined code is performed. If it is determined No in step S187, the
ステップS201でNoと判断された場合には、CPU21は、先行コード名PreCHを変更せず、そのまま現在コードCurCHとする(ステップS207)。ステップS201でNoとなる場合は、演奏者が意図して押鍵したのではなく、ミスタッチによって誤った鍵を押鍵してしまった可能性が高い。そこで、この場合は、コード名を変更することなく、先行コード名PreCHをそのまま現在コード名CurCHとする。
When it is determined No in step S201, the
ステップS201でYesと判断された場合には、CPU21は、現在メロディ音の発音時間(押鍵時間)が、3拍以下であるかを判断する(ステップS202)。ステップS202でYesと判断された場合には、転調フラグが「2」以下であるかを判断する。ステップS203でYesと判断された場合には、CPU21は、RAM23に格納される転調フラグの値をインクリメントする(ステップS205)。ステップS202でNo或いはステップS203でNoと判断された場合には、CPU21は、転調処理を実行する(ステップS204)。
If it is determined Yes in step S201, the
本実施の形態においては、基本的には、現在メロディ音CM、先行メロディ音PMを含むメロディ音は、「C」のスケール(調性)で処理される。したがって、転調処理では、転調後の調性と「C」との音高差が算出され、その音高差をオフセットとしてRAM23に格納すれば良い。転調処理以後は、実際に押鍵された鍵番号により特定される音名をオフセットだけ減じることで、「C」の調性で処理を続行することが可能となる。
In the present embodiment, basically, the melody sound including the current melody sound CM and the preceding melody sound PM is processed with a scale (tonality) of “C”. Therefore, in the modulation process, a pitch difference between the tone after the modulation and “C” is calculated, and the pitch difference may be stored in the
ステップS205の後、CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーン(CT)或いはスケールノート(SN)であるかを判断する(ステップS206)。ステップS206においては、ステップS61と同様に、CPU21は、メロディ機能テーブルを参照して、現在メロディ音CM及び先行コード名PreCHの組に対応付けられた値が、コードトーン或いはスケールノートであるかを判断すれば良い。ステップS206でYesと判断された場合には、CPU21は、コードを保持すべく現在コード名CurCHに、先行コード名PreCHを与える(ステップS207)。
After step S205, the
ステップS207でNoと判断された場合には、CPU21は、無判定コードテーブルを参照して、ディミニシュ(dim)或いはオーギュメント(aug)のコードを、現在コード名CurCHに与える(ステップS208)。図26は、本実施の形態にかかる無判定コードテーブルの一例の部分を示す図である。図26に示す無判定コードテーブル2600においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。
If it is determined No in step S207, the
無判定コードテーブルにおいて2600において、空欄(たとえば、符号2601参照)は、現在メロディ音CMと先行コード名PreCHからなる値の組に対応付けられた現在メロディ機能(CMF)が、コードトーン(CT)或いはスケールノート(SN)であることを意味している(図25参照)。したがって、無判定コードテーブル2600において空欄となる現在メロディ音CMと先行コード名PreCHからなる値の組については、現在コード名CurCHが無判定コードとなることが無いため、値が格納されていない。したがって無判定コードテーブル2600では、現在メロディ機能(CMF)が、アザートーン(OT)である場合について、ディミニシュ(dim)或いはオーギュメント(aug)の何れかを指定する情報が格納されている。 In 2600 of the undetermined code table, a blank (for example, reference numeral 2601) indicates that the current melody function (CMF) associated with the set of values including the current melody sound CM and the preceding chord name PreCH is the chord tone (CT). Or it means a scale note (SN) (see FIG. 25). Therefore, a value set of the current melody sound CM and the preceding chord name PreCH that is blank in the undetermined code table 2600 is not stored because the current chord name CurCH does not become an undetermined code. Therefore, the non-determined code table 2600 stores information specifying either diminished (dim) or augmented (aug) when the current melody function (CMF) is the other tone (OT).
CPU21は、無判定コードテーブル2600から、現在メロディ音CMと先行コード名PreCHからなる値の組に対応付けられた、ディミニシュ(dim)或いはオーギュメント(aug)の何れかを指定する情報を取得して、現在メロディ音CMを根音とするコード名を得る。たとえば、現在メロディ音が「C#」、先行コード名が「IMaj」であれば、コード名は、「I#dim」となる(符号2611参照)。また、現在メロディ音が「A♭」、先行コード名が「IM7」であれば、コード名は、「IV♭aug」となる。CPU21は、このようにして、現在メロディ音CMを根音とするディミニッシュ(dim)或いはオーギュメント(aug)のコード名を、現在コード名CurCHとして決定し、RAM23に格納する。
The
上述したように、本実施の形態においては、まず、現在の拍の拍頭の押鍵に関する現在メロディ音CMと、前拍の拍頭の押鍵に関する先行メロディ音PMとが、何拍目かを示す情報、先行コード名PreCHや、押鍵タミングなどにしたがって修正される(図5のステップS21〜30)。その上で、現在メロディ音CM、先行メロディ音PM及び先行コード名PreCHに基づいて、現在コード名CurCHが決定される(ステップS31)。 As described above, in the present embodiment, first, how many beats the current melody sound CM related to the key pressing at the beginning of the current beat and the preceding melody sound PM related to the key pressing at the beginning of the previous beat. Is corrected in accordance with the information indicating the preceding code name, PreCH, key pressing timing, and the like (steps S21 to 30 in FIG. 5). Then, the current chord name CurCH is determined based on the current melody sound CM, the preceding melody sound PM, and the preceding chord name PreCH (step S31).
コード名判定処理(図3のステップS4)が終了すると、CPU21は、自動伴奏処理を実行する(ステップS5)。図45は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。まず、CPU21は、自動コード修正装置10が自動伴奏モードの下で動作しているかを判断する(ステップS411)。ステップS411でYesと判断された場合には、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、メロディ音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップS412)。
When the chord name determination process (step S4 in FIG. 3) ends, the
自動伴奏データには、3つの種類の楽音、すなわち、メロディ音(オブリガート音を含む)、コード音、リズム音のデータが含まれる。メロディ音のデータ及びコード音のデータは、発音すべき楽音ごとに、その音高、発音タイミング及び発音時間を含む。また、リズム音のデータは、発音すべき楽音(リズム音)ごとに、その発音タイミングを含む。 The automatic accompaniment data includes data of three types of musical sounds, that is, melody sounds (including obligato sounds), chord sounds, and rhythm sounds. The data of the melody sound and the data of the chord sound include the pitch, the sounding timing and the sounding time for each musical sound to be sounded. The rhythm sound data includes the sound generation timing for each musical sound (rhythm sound) to be generated.
ステップS412でYesと判断された場合には、CPU21は、メロディ発音・消音処理を実行する(ステップS413)。メロディ発音・消音処理においては、処理にかかるイベントがノートオンイベントであるかを判断する。ノートオンイベントであることは、現在時刻が、上記メロディ音のデータにおける所定の楽音の発音タイミングとほぼ一致することで判断できる。その一方、ノートオフイベントであることは、現在時刻が、当該楽音の発音タイミングに発音時間を加えた時刻とほぼ一致することで判断できる。
If it is determined Yes in step S412, the
処理にかかるイベントがノートオフイベントである場合には、CPU21は、消音処理を実行する。その一方、処理にかかるイベントがノートオンイベントであれば、メロディ音のデータにしたがった発音処理を実行する。
If the event related to the process is a note-off event, the
次いで、CPU21は、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、コード音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップS414)。ステップS414においてYesと判断された場合には、CPU21は、コード発音・消音処理を実行する(ステップS415)。コード音発音・消音処理においては、発音タイミングに達したコード音について発音処理を実行し、その一方、消音タイミングに達したコード音については消音処理を実行する。
Next, the
その後CPU21は、現在時刻が、自動伴奏データ中、リズムのデータについてのイベントの実行タイミングに達しているかを判断する(ステップS416)。ステップS416においてYesと判断された場合には、CPU21は、リズム音発音処理を実行する(ステップS417)。リズム音発音処理においては、発音タイミングに達したリズム音についてノートオンイベントを生成する。
Thereafter, the
自動伴奏処理(図3のステップS5)が終了すると、CPU21は、音源発音処理を実行する(ステップS6)。音源発音処理において、CPU21は、生成されたノートオンイベントに基づいて、発音すべき楽音の音色及び音高を示すデータを音源部26に与え、或いは、消音すべき楽音の音色及び音高を示すデータを音源部26に与える。音源部26は、音色、音高、音長等を示すデータにしたがって、ROM22の波形データを読み出して、所定の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。また、CPU21は、ノートオフイベントに基づいて、音源26にノートオフイベントが示す音高の消音を指示する。
When the automatic accompaniment process (step S5 in FIG. 3) ends, the
音源発音処理(ステップS6)が終了すると、CPU21は、その他の処理(たとえば現在コード名CurCH及び現在メロディ音CMのRAM23への格納、表示部15への画像表示、LED(図示せず)の点灯、消灯など:ステップS7)を実行して、ステップS8に処理を移す。
When the sound source sound generation process (step S6) is completed, the
ステップS8で、CPU21は、演奏終了か否かを判断する。具体的には、ノンリアルタイムコード付け修正スイッチ14が押下されたか否かを判断する。この判断がYESのとき、CPU21は、処理をステップS9に移し、NOのとき、ステップS2に処理を移す。演奏終了と判断されれば、RAM23には、ステップS7の処理により、一連の演奏によるリアルタイムコード付けの結果としてのコードデータとメロディデータとが格納されることになる。
In step S8, the
ステップS9で、CPU21は、図27を参照して後述するノンリアルタイムコード修正処理を行う。ノンリアルタイムコード修正処理が終了すると、CPU21は、メインフローの処理を終了する。
In step S9, the
図27は、本実施の形態にかかるノンリアルタイムコード修正処理の例を示すフローチャートである。 FIG. 27 is a flowchart showing an example of non-real time code correction processing according to the present embodiment.
ステップS211で、CPU21は、図28及び図29を参照して後述するキー判定検証処理を行う。
ステップS212で、CPU21は、図30を参照して後述するコード構成音検証処理を行う。
ステップS213で、CPU21は、図31乃至図34を参照して後述するフレーズ区切り検証処理を行う。
ステップS214で、CPU21は、図35及び図36を参照して後述するコード付け修正処理を行う。
In step S211, the
In step S212, the
In step S <b> 213, the
In step S214, the
ステップS215で、CPU21は、図37を参照して後述するメロディとコードスケールの比較処理を行う。
ステップS216で、CPU21は、図38を参照して後述するユーザーによる修正処理を行う。
その後、CPU21は、ノンリアルタイムコード修正処理を終了する。
In step S215, the
In step S216, the
Thereafter, the
図28及び図29は、本実施の形態にかかるキー判定検証処理の例を示すフローチャートである。 28 and 29 are flowcharts illustrating an example of the key determination verification process according to the present embodiment.
ステップS221で、CPU21は、曲中キーは1個であるか否かを判断する。具体的には、CPU21は、RAM23に格納された調(曲中キー)の種類の数が1個であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS222に移し、NOの場合、処理をステップS234に移す。
In step S <b> 221, the
ステップS222で、CPU21は、最終メロディ音によるキー確定表と曲中キーとを比較する。具体的には、CPU21は、最終メロディ音によるキー確定テーブル(図39)を参照し、曲中キーと最終メロディ音を比較する。例えば、図39によれば、曲中キーが「C」であり、最終メロディ音が「C、E、G」のいずれかであれば、曲中キーと最終メロディ音とが対応する部分に「C(1)」が格納されているので、後述するステップS223でマッチすることになる。
一方、曲中キーが「C」であり、最終メロディ音が「A」であれば、曲中キーと最終メロディ音とが対応する部分にデータが格納されていないので、後述するステップS223でマッチしないことになる。
In step S222, the
On the other hand, if the song key is “C” and the last melody sound is “A”, the data is not stored in the corresponding portion of the song key and the last melody sound, so a match is made in step S223 described later. Will not.
ステップS223で、CPU21は、ステップS222での結果がマッチするか否かを判断する。この判断がYESの場合、キー判定に問題ないので、CPU21は、キー判定検証処理を終了し、NOの場合、キーを修正するために処理をステップS224に移す。
In step S223, the
ステップS224で、CPU21は、最終メロディ音によるキー確定表に載っている最終音のあるキーを優先順位に従って候補キーとする。具体的には、CPU21は、最終メロディ音によるキー確定テーブル(図39)を参照し、候補キーを決定する。例えば、キー確定テーブル(図39)によれば、最終メロディ音が「A」の場合、「A」の列には、F(1)、D(2)、A(3)が格納されている。このF、D、Aは、メロディがAで終わったときに可能性の高いキーを示すものであり、数字は優先順位を示す。したがって、リアルタイムキー判定で曲中キーが「C」と判定されていて、かつ最終メロディ音がAであるこの場合は、優先順位の高いFキーが曲の最終部分の候補キーとなる。
なお、図39では、長調用のキー確定テーブルのみ開示しているが、短調用のキー確定テーブル(図示せず)も存在する。
In step S224, the
In FIG. 39, only the key determination table for the major key is disclosed, but a key determination table for the minor key (not shown) also exists.
ステップS225で、CPU21は、最終4小節を候補キーでコード付けし、ステップS226で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。これらの処理は、曲の最終部分が候補キーで問題ないか検証するための処理である。
例えば、候補キーが「F」の場合、最終4小節をキー「F」でコード付けして、コード付けした最初の4小節のコード機能が、カデンツ判定テーブル(図40)の曲エンド部のコード機能と一致するか否か判断する。この判断がYESの場合、CPU21は、処理をステップS227に移し、NOの場合、処理をステップS231に移す。
In step S225, the
For example, if the candidate key is “F”, the last four measures are coded with the key “F”, and the chord function of the first four measures coded is the chord of the song end portion of the cadence determination table (FIG. 40). Determine whether it matches the function. If this determination is YES, the
図40のカデンツ判定テーブルは、曲エンド部と曲中の部分とに分けて、可能性のあるカデンツ(終止形)の形を示したテーブルである。なお、イントロ部分やサビの部分などを追加してさらに細分化してもよい。図40の「T」は、トニック、「D」は、ドミナント、「S」は、サブドミナントを表している。 The cadence determination table of FIG. 40 is a table showing the shape of a possible cadence (end shape) divided into a song end part and a part in the song. Note that an intro part, a rust part, or the like may be added to further subdivide. In FIG. 40, “T” represents a tonic, “D” represents a dominant, and “S” represents a subdominant.
ステップS227で、CPU21は、曲頭から候補キーで問題ないか検証する。この処理は、候補キーの最後の4小節が、カデンツ判定テーブルの曲エンド部のコード機能と一致した場合に行われる。例えば、候補キーが「F」であった場合は、曲の最後の4小節はキー「F」で確定しているが、CPU21は、曲頭からキー「F」が成立するか否かを、リアルタイム(図4の鍵盤処理)で入力された曲頭からのメロディ音データをRAM23から読み出して検証する。
In step S227, the
ステップS228で、CPU21は、候補キーで問題ないか否かを判断する。具体的には、CPU21は、ステップS227で曲頭から候補キーが成立したか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS230に移し、NOの場合、処理をステップS229に移す。
In step S228, the
ステップS229で、CPU21は、矛盾したところでキーを2個に修正する。具体的には、CPU21は、曲頭からどの部分までが候補キーとして成立しないかをステップS227の検証結果から判断して、曲頭から候補キーとして成立しない箇所までと、侯補キーが成立し始める箇所から曲の最後までと、でキーを2つに分ける。例えば、リアルタイムキー判定で曲中キーが「C」と判定されており、かつ、候補キーが「F」の場合、「C」と「F」との2つのキーに分ける。その後、処理をステップS221に移す。
In step S229, the
ステップS230では、曲頭から候補キーが成立しているので、CPU21は、キーを確定し、キー判定検証処理を終了する。
In step S230, since the candidate key is established from the beginning of the song, the
ステップS231で、CPU21は、キー確定表の次候補があるか否かを判断する。具体的には、キー確定テーブル(図39)を検索して判断する。例えば、最終メロディ音が「A」で、候補キーが「F」である場合、次候補キーとして、第2の優先順位のキーである「D」が存在する。一方、最終メロディ音が「A」で、候補キーが「A」である場合、次候補のキーは存在しない。この判断がYESの場合、CPU21は、処理をステップS232に移し、NOの場合、処理をステップS233に移す。
In step S231, the
ステップS232で、CPU21は、候補キーをステップS231で判断した次候補のキーに置換し、ステップS225に処理を移す。
In step S232, the
ステップS233で、CPU21は、キーを修正せず、キー判定検証処理を終了する。
In step S233, the
ステップS234で、CPU21は、曲中のキーは2個である否かを判断する。この判断がYESの場合、CPU21は、処理をステップS235に移し、NOの場合、処理をステップS237に移す。
In step S234, the
ステップS235で、CPU21は、冒頭キーと曲中キーの差が+1半音、+2半音、+3半音のいずれかであるか否かを判断する。この処理は、所謂盛り上がり転調をしているかどうかを判断する処理である。この判断がYESの場合、CPU21は、処理をステップS236に移し、NOの場合、処理をステップS240に移す。
In step S235, the
ステップS236で、CPU21は、キーを確定し、キー判定検証処理を終了する。
In step S236, the
ステップS237で、CPU21は、冒頭キーと最終キーとは同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS238に移し、NOの場合、処理をステップS240に移す。
In step S237, the
ステップS238で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。具体的には、CPU21は、冒頭キーについては、カデンツ判定テーブル(図40)の曲中を参照して、冒頭キーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲中のコード機能と一致するか否かを判断する。一方、最終キーについては、カデンツ判定テーブル(図40)の曲エンド部を参照して、最終キーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲エンド部のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS239に移し、NOの場合、処理をステップS240に移す。
In step S238, the
ステップS239で、CPU21は、冒頭キーと最終のキーを確定する。例えば、ステップS238で、冒頭キーのみ一致すると判断されれば、冒頭キーのみ確定する。また、最終キーのみ一致すると判断されれば、最終キーのみ確定する。さらに、冒頭キーと最終キーの両方が一致すると判断されれば、冒頭キー及び最終キーが確定する。
In step S239, the
ステップS240で、CPU21は、未検証キーがあるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS241に移し、NOの場合、キー判定検証処理を終了する。
In step S240, the
ステップS241で、CPU21は、関係調借用判定表を参照し、キー確定後4小節以内にこの表にあるコードがあるか判断する。具体的には、CPU21は、関係調借用判定テーブル(図41)を参照して、キー確定後4小節以内に当該テーブルの主調独自コードがあるか判断する。
例えば、キーが3つある場合で、冒頭キーが「C」であり、冒頭キーと最終キーとの間のキーが属調(冒頭キーである主調Cの属調はG)である場合に、属調の最初の4小節以内に主調独自コードである、V7(G7)又はIIm(Dm)が存在するか否かが判断される。
ここで、主調独自コードについて説明する。例えば、主調がCの場合、属調Gは、主調の第4音(ファ)のみが半音上がった調であり、主調C(ド、レ、ミ、ファ、ソ、ラ、シ、で構成)と属調G(ソ、ラ、シ、ド、レ、ミ、ファ#、で構成)とを比較すると、属調Gには、ファは含まれない。よって、ファを含むコードであるG7又はDmは、属調Gのコードではなく、主調Cのコードである。本実施形態では、この意味で、主調独自コードという名称を用いている。
In step S241, the
For example, when there are three keys, the first key is “C”, and the key between the first key and the last key is in the genus (the genus of the main key C as the first key is G). It is determined whether V7 (G7) or IIm (Dm), which is the main tone unique code, exists within the first four measures of the genus.
Here, the main tone unique code will be described. For example, when the main tone is C, the genus tone G is a tone in which only the fourth tone (Fa) of the main tone is raised by a semitone, and the main tone C (comprised of de, les, mi, fa, so, la, shi) And the genus G (composed of Seo, La, Shi, Do, Les, Mi, and Fah #), the genus G does not include fa. Therefore, G7 or Dm, which is a code including a fa, is not a genus G code but a main tone C code. In this embodiment, the name of the main tone unique code is used in this sense.
ステップS242で、CPU21は、ステップS241でマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS243に移し、NOの場合、処理をステップS248に移す。
In step S242, the
ステップS243で、CPU21は、マッチしたところから元キーに修正する。例えば、主調独自コードが存在した箇所から、主調(冒頭キー)に修正する。
In step S243, the
ステップS244で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。この処理では、ステップS243で修正後のキーでカデンツ判定テーブル(図40)の曲中を参照して、修正後のキーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲中のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS245に移し、NOの場合、処理をステップS246に移す。
In step S244, the
ステップS245で、CPU21は、その部分のキー(修正後のキー)を確定し、処理をステップS247に移す。
In step S245, the
ステップS246で、CPU21は、残りキーは1個であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS222に移し、NOの場合、処理をステップS247に移す。
In step S246, the
ステップS247で、CPU21は、未検証キーがあるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS241に移し、NOの場合、キー判定検証処理を終了する。
In step S247, the
ステップS248で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。この処理では、未検証キーでカデンツ判定テーブル(図40)の曲中を参照して、未検証キーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲中のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS245に移し、NOの場合、処理をステップS249に移す。
In step S248, the
ステップS249で、CPU21は、同主調をチェックしたか否かを判断する。すなわち、CPU21は、関係調借用判定テーブル(図41)の最下段である同主調(図示せず)について主調独自コードの存在の有無をチェックしたか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS246に移し、NOの場合、処理をステップS250に移す。
In step S249, the
ステップS250で、CPU21は、次の関係調を確認対象としてステップS241に処理を移す。例えば、属調についてチェックしたのであれば、次(その下段)の関係調である下属調を次の確認対象とする。
In step S250, the
図30は、本実施の形態にかかるコード構成音検証処理の例を示すフローチャートである。ところで、リアルタイム自動コード付けで倚音や経過音などの装飾音が強拍に存在する場合に、当該装飾音がコード付けに影響を与えるためにコード付けが間違ってしまうことがある。そこで、このコード構成音検証処理は、このようなコード付けの間違いを修正するために、本実施形態においては、小節毎にメロディ音から装飾音を除いたコード構成音を抽出し、このコード構成音によって成立するコードがリアルタイムコード付けのコードと同一かどうか検証している。 FIG. 30 is a flowchart showing an example of the chord composition sound verification process according to the present embodiment. By the way, when a decoration sound such as a stuttering sound or a progress sound is present in a strong beat in real-time automatic coding, the decoration may affect the coding so that the coding may be wrong. Therefore, in this embodiment, the chord constituent sound verification process extracts chord constituent sounds obtained by removing the decoration sound from the melody sound for each measure in order to correct such an error in coding. It is verified whether the code formed by sound is the same as the code for real-time coding.
まず、ステップS261で、CPU21は、その小節に1拍以上ある音について音長が長い順に3音抽出する。具体的には、RAM23に格納された一連の演奏によるリアルタイムコード付けの結果としてのコードデータとメロディデータを読み出して、その小節に1拍以上ある音について音長が長い順に3音抽出する。ここで、その小節とは、CPU21の処理対象となる小節であり、最初は1小節目を処理対象とする。
First, in step S261, the
ステップS262で、CPU21は、抽出した3音がリアルタイムコード付けのコード構成音に含まれるか否かを判断する。具体的には、CPU21は、図43のコードスケールテーブルを参照して判断する。例えば、リアルタイムコード付けのコードがIMajorである場合に、ステップS261又はS263で抽出された3音が、コード構成音(CT)である「C、E、G」であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS264に移し、NOの場合、処理をステップS263に移す。
ここで、抽出した3音がコード構成音(CT)であれば、これら3音は支配的な音となる。
In step S262, the
Here, if the extracted three sounds are chord constituent sounds (CT), these three sounds become dominant sounds.
ステップS263で、CPU21は、小節を半分にして音長の長い順に3音抽出する。その後、ステップS262に処理を移す。
In step S263, the
ステップS264で、CPU21は、小節内にコード以外のメロディ音があるか否かを判断する。具体的には、CPU21の処理対象となる小節内にステップS261又はステップS263で抽出した3音以外の音が存在し、かつ、図43のコードスケールテーブルを参照して当該音がコード構成音(CT)ではない場合に、当該音はコード以外のメロディ音となる。この判断がYESの場合、CPU21は、処理をステップS265に移し、NOの場合、処理をステップS270に移す。
In step S264, the
ステップS265で、CPU21は、それらの音は装飾音を含むか否かを判断する。具体的には、CPU21は、装飾音データベース(図42)を参照して判断する。この判断がYESの場合、CPU21は、処理をステップS266に移し、NOの場合、処理をステップS267に移す。
In step S265, the
ここで、図42を参照して装飾音データベースについて説明する。この装飾音データベースは、強拍(4拍子の場合は、1拍と3拍)に装飾音(コード構成音以外の音)があるか否かを判断するためのデータベースである。
例えば、図42の例によれば、4拍子の場合で、1拍目(強拍)にコード構成音以外の装飾音(例えば、倚音)があり、2拍目(弱拍)にコード構成音があり、かつ、2拍目のコード構成音は、1拍目の音より、全音(又は半音)高いか低いかの関係にある場合に、1拍目の音が装飾音と判断される。3拍目、4拍目についても同様である。
なお、図42では図示していないが、2拍子、3拍子等、4拍子以外の装飾音の有無を判定することもできる。
Here, the decorative sound database will be described with reference to FIG. This decoration sound database is a database for determining whether or not there is a decoration sound (a sound other than a chord constituent sound) in a strong beat (1 beat and 3 beats in the case of 4 beats).
For example, according to the example of FIG. 42, in the case of four time signatures, there is a decoration sound (for example, stuttering) other than the chord component sound in the first beat (strong beat), and the chord structure in the second beat (weak beat). If there is a sound and the chord component sound of the second beat is higher or lower than the sound of the first beat, the sound of the first beat is determined as a decoration sound. . The same applies to the third and fourth beats.
Although not shown in FIG. 42, it is also possible to determine the presence / absence of a decoration sound other than four time signatures such as two time signatures and three time signatures.
ステップS266で、CPU21は、装飾音を省いて、リアルタイムコード付け結果のコードと比較する。具体的には、CPU21は、RAM23に格納されたリアルタイムコード付けされたコードを読み出して、装飾音を省いた処理対象の小節の音が、図43のコードスケールテーブルの各コードに対応するコード構成音(CT)であるか否かを判断する。
In step S266, the
ステップS267で、CPU21は、リアルタイムコード付け結果のコードと比較する。具体的には、CPU21は、RAM23に格納されたリアルタイムコード付けされたコードを読み出して、処理対象の小節の音が、図43のコードスケールテーブルの各コードに対応するコード構成音(CT)であるか否かを判断する。
In step S267, the
ステップS268で、CPU21は、ステップS266及びS267での比較の結果が、マッチするか否か(ステップS266又はS267の判断がYES(マッチ)かNO(アンマッチ)か)を判断する。この判断がYESの場合、CPU21は、処理をステップS270に移し、NOの場合、処理をステップS269に移す。
In step S268, the
ステップS269で、CPU21は、この支配的な音はコードとして成立するか否かを判断する。具体的には、CPU21は、図43のコードスケールテーブルを参照して、ステップS266又はS267で比較した音が、コード構成音(CT)であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS272に移し、NOの場合、処理をステップS270に移す。
In step S269, the
ステップS272で、CPU21は、コード修正フラグをONにする。具体的には、CPU21は、処理対象となった小節に対応づけてコード修正フラグをONにする。なお、コード修正フラグはRAM23の所定領域に存在する。これにより、後述するコード修正処理(図35)において、対象小節のコードを修正できる。
In step S272, the
ステップS270で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、コード構成音検証処理を終了し、NOの場合、処理をステップS271に移す。
In step S270, the
ステップS271で、CPU21は、次の小節をコード構成音検証の対象とし、ステップS261に処理を移す。
In step S271, the
図31乃至図34は、本実施の形態にかかるフレーズ区切り検証処理の例を示すフローチャートである。 FIG. 31 to FIG. 34 are flowcharts showing examples of phrase break verification processing according to the present embodiment.
ステップS281で、CPU21は、1小節目と(8N+1)小節目のコード進行を比較する。具体的には、RAM23に格納された一連の演奏によるリアルタイムコード付けの結果としてのコードデータとメロディデータを読み出して比較する。Nの初期値は1である。
In step S281, the
ステップS282で、CPU21は、1小節目と(8N+1)小節目のコード進行が同一か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS296に移し、NOの場合、処理をステップS283に移す。
In step S282, the
ステップS283で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディリズムを比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S283, the
ステップS284で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディリズムがマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS285に移し、NOの場合、処理をステップS290に移す。
In step S284, the
ステップS285で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S285, the
ステップS286で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS287に移し、NOの場合、処理をステップS288に移す。
In step S286, the
ステップS287で、CPU21は、該当する小節をフレーズ8型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S287, the
ステップS288で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS289に移し、NOの場合、処理をステップS296に移す。
In step S288, the
ステップS289で、CPU21は、該当する小節をフレーズ8β型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S289, the
ステップS290で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディリズムが70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS291に移し、NOの場合、処理をステップS296に移す。
In step S290, the
ステップS291で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S291, the
ステップS292で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS293に移し、NOの場合、処理をステップS294に移す。
In step S292, the
ステップS293で、CPU21は、該当する小節をフレーズ8Rα型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S293, the
ステップS294で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS295に移し、NOの場合、処理をステップS296に移す。
In step S294, the
ステップS295で、CPU21は、該当する小節をフレーズ8Rβ型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S295, the
ステップS296で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS298に移し、NOの場合、処理をステップS297に移す。
In step S296, the
ステップS297で、CPU21は、Nを1増加させて、ステップS281に処理を移す。
In step S297, the
ステップS298で、CPU21は、1小節目と(4N+1)小節目のコード進行を比較する。具体的には、RAM23に格納されたリアルタイムコード付けによるコードデータを読み出して比較する。ここで、Nの初期値は1である。
In step S298, the
ステップS299で、CPU21は、1小節目と(4N+1)小節目のコード進行が同一か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS313に移し、NOの場合、処理をステップS300に移す。
In step S299, the
ステップS300で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディリズムを比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S300, the
ステップS301で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディリズムがマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS302に移し、NOの場合、処理をステップS307に移す。
In step S301, the
ステップS302で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S302, the
ステップS303で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS304に移し、NOの場合、処理をステップS305に移す。
In step S303, the
ステップS304で、CPU21は、該当する小節をフレーズ4型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S304, the
ステップS305で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS306に移し、NOの場合、処理をステップS313に移す。
In step S <b> 305, the
ステップS306で、CPU21は、該当する小節をフレーズ4β型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S306, the
ステップS307で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディリズムが70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS308に移し、NOの場合、処理をステップS313に移す。
In step S307, the
ステップS308で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S308, the
ステップS309で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS310に移し、NOの場合、処理をステップS311に移す。
In step S309, the
ステップS310で、CPU21は、該当する小節をフレーズ4Rα型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S310, the
ステップS311で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS312に移し、NOの場合、処理をステップS313に移す。
In step S <b> 311, the
ステップS312で、CPU21は、該当する小節をフレーズ4Rβ型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S312, the
ステップS313で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS315に移し、NOの場合、処理をステップS314に移す。
In step S313, the
ステップS314で、CPU21は、Nを1増加させて、ステップS281に処理を移す。
In step S314, the
ステップS315で、CPU21は、1小節目と(2N+1)小節目のコード進行を比較する。具体的には、RAM23に格納されたリアルタイムコード付けによるコードデータを読み出して比較する。ここで、Nの初期値は1である。
In step S315, the
ステップS316で、CPU21は、1小節目と(2N+1)小節目のコード進行が同一か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS330に移し、NOの場合、処理をステップS317に移す。
In step S316, the
ステップS317で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディリズムを比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S317, the
ステップS318で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディリズムがマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS319に移し、NOの場合、処理をステップS324に移す。
In step S318, the
ステップS319で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S319, the
ステップS320で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS321に移し、NOの場合、処理をステップS322に移す。
In step S320, the
ステップS321で、CPU21は、該当する小節をフレーズ2型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S321, the
ステップS322で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS323に移し、NOの場合、処理をステップS330に移す。
In step S322, the
ステップS323で、CPU21は、該当する小節をフレーズ2β型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S323, the
ステップS324で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディリズムが70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS325に移し、NOの場合、処理をステップS330に移す。
In step S324, the
ステップS325で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。
In step S325, the
ステップS326で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS327に移し、NOの場合、処理をステップS328に移す。
In step S326, the
ステップS327で、CPU21は、該当する小節をフレーズ2Rα型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S327, the
ステップS328で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS329に移し、NOの場合、処理をステップS330に移す。
In step S328, the
ステップS329で、CPU21は、該当する小節をフレーズ2Rβ型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。
In step S329, the
ステップS330で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS332に移し、NOの場合、処理をステップS331に移す。
In step S330, the
ステップS331で、CPU21は、Nを1増加させて、ステップS315に処理を移す。
In step S331, the
ステップS332で、CPU21は、フレーズ型がひとつもないか否かを判断する。具体的には、CPU21は、RAM23のフレーズ型領域に型データの記録が全くないか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS333に移し、NOの場合、フレーズ区切り検証処理を終了する。
In step S332, the
ステップS333で、CPU21は、1小節目と(N+1)小節目のメロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。ここで、Nの初期値は1である。
In step S333, the
ステップS334で、CPU21は、1小節目と(N+1)小節目のメロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS335に移し、NOの場合、処理をステップS336に移す。
In step S334, the
ステップS335で、CPU21は、該当する小節をフレーズX型とする。また、Xまでの小節数を記憶する。具体的には、CPU21は、RAM23のフレーズ型領域に小節数のデータと型データを格納する。
In step S335, the
ステップS336で、CPU21は、最後の小節であるか否かを判断する。この判断がYESの場合、CPU21は、フレーズ区切り検証処理を終了し、NOの場合、処理をステップS337に移す。
In step S336, the
ステップS337で、CPU21は、Nを1増加させて、処理をステップS333に移す。
In step S337, the
図35及び図36は、本実施の形態にかかるコード付け修正処理の例を示すフローチャートである。 35 and 36 are flowcharts showing an example of the coding correction process according to the present embodiment.
ステップS341で、CPU21は、リアルタイムコード付けのキーとキー判定検証処理(図28及び図29)で修正されたキーとを比較する。
In step S341, the
ステップS342で、CPU21は、キー変更箇所が有るか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS343に移し、NOの場合、処理をステップS346に移す。
In step S342, the
ステップS343で、CPU21は、キーの変更箇所を新キー(キー判定検証処理(図28及び図29)で修正されたキー)でコード付けする。
In step S343, the
ステップS344で、CPU21は、キー確定保留箇所が有るか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS345に移し、NOの場合、処理をステップS346に移す。
In step S344, the
ステップS346で、CPU21は、支配的な音によるコード修正指定箇所が有るか否かを判断する。具体的には、CPU21は、ステップS272(図30)で、コード修正フラグがONされた小節があるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS347に移し、NOの場合、処理をステップS350に移す。
In step S346, the
ステップS347で、CPU21は、指定部分の最後の4小節がカデンツ判定表とあっているか否かを判断する。具体的には、CPU21は、コード修正フラグがONされた小節を含む4小節について、当該4小節が曲中か曲エンド部かに応じて、カデンツ判定テーブル(図40)の曲中又は曲エンド部を参照して、4小節のコード機能が、カデンツ判定テーブル(図40)のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS377に移し、NOの場合、処理をステップS348に移す。
In step S347, the
ステップS348で、CPU21は、キー確定保留範囲を特定し、その部分のメロディをキー判定し、キーを確定する。
In step S348, the
ステップS349で、CPU21は、キーの変更箇所を新キーでコード付けする。その後、ステップS347に処理を移す。
In step S349, the
ステップS377で、CPU21は、コード修正をする。具体的には、CPU21は、ステップS269で決定した、支配的な音に応じたコード構成音に対応したコードで、コード修正フラグがONにされた小節のコードを修正する。
In step S377, the
ステップS269で、CPU21は、支配的な音はコードとして成立するか否かを判断する。具体的には、CPU21は、図43のコードスケールテーブルを参照して、ステップS266又はS267で比較した音が、コード構成音(CT)であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS272に移し、NOの場合、処理をステップS270に移す。
In step S269, the
ステップS350で、CPU21は、該当箇所のフレーズ区切りは、4(*)型(4型、4β型、4Rα型、又は4Rβ型)か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS351に移し、NOの場合、処理をステップS357に移す。
In step S350, the
ステップS351で、CPU21は、フレーズ区切りが4型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS352に移し、NOの場合、処理をステップS353に移す。
In step S351, the
ステップS352で、CPU21は、その部分のコードを比較元と同一とする。4型の場合、メロディのリズムも音高も比較元と同一なので、コードも同一とする。例えば、5〜8小節目が4型である場合、CPU21は、5〜8小節目のコードを1〜4小節目のコードと同一にする。また、後述するように9〜12小節目が4β型、4Rα型、4Rβ型のいずれかであれば、9〜12小節目のコードと1〜4小節目のコードとで異なる部分のコードの機能が同一であれば、当該異なる部分のコードを1〜4小節目のコードと同一にする。
In step S352, the
ステップS353で、CPU21は、違う部分のコードを比較する。この場合、4β型、4Rα型、4Rβ型のいずれかであるが、これらは、メロディ音高とメロディリズムのいずれか一方か両方が、比較元とそれぞれ30%未満異なるということなので、当該異なる部分のコードを比較する。例えば、9〜12小節目が、4β型、4Rα型、4Rβ型のいずれかであれば、9〜12小節目のコードと1〜4小節目のコードとを比較する。
In step S353, the
ステップS354で、CPU21は、機能は同一であるか否かを判断する。具体的には、CPU21は、当該異なる部分のコードの機能が同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS352に移し、NOの場合、処理をステップS355に移す。
In step S354, the
ステップS355で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS357に移し、NOの場合、処理をステップS356に移す。
In step S355, the
ステップS356で、CPU21は、次の4小節へ進めて、ステップS351に処理を移す。
In step S356, the
ステップS357で、CPU21は、該当箇所のフレーズ区切りは、8(*)型(8型、8β型、8Rα型、又は8Rβ型)か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS358に移し、NOの場合、処理をステップS364に移す。
In step S357, the
ステップS358で、CPU21は、フレーズ区切りが8型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS359に移し、NOの場合、処理をステップS360に移す。
In step S358, the
ステップS359で、CPU21は、その部分のコードを比較元と同一とする。8型の場合、メロディのリズムも音高も比較元と同一なので、コードも同一とする。例えば、9〜16小節目が8型である場合、CPU21は、9〜16小節目のコードを1〜8小節目のコードと同一にする。また、後述するように17〜24小節目が8β型、8Rα型、8Rβ型のいずれかの場合、17〜24小節目のコードと1〜8小節目のコードとで異なる部分のコードの機能が同一であれば、当該異なる部分のコードを1〜8小節目のコードと同一にする。
In step S359, the
ステップS360で、CPU21は、違う部分のコードを比較する。この場合、8β型、8Rα型、8Rβ型のいずれかであるが、これらは、メロディ音高とメロディリズムのいずれか一方か両方が、比較元とそれぞれ30%未満異なるということなので、当該異なる部分のコードを比較する。例えば、17〜24小節目が、8β型、8Rα型、8Rβ型のいずれかであれば、17〜24小節目のコードと1〜8小節目のコードとを比較する。
In step S360, the
ステップS361で、CPU21は、機能は同一であるか否かを判断する。具体的には、CPU21は、当該異なる部分のコードの機能が同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS359に移し、NOの場合、処理をステップS362に移す。
In step S361, the
ステップS362で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS364に移し、NOの場合、処理をステップS363に移す。
In step S362, the
ステップS363で、CPU21は、次の8小節へ進めて、ステップS358に処理を移す。
In step S363, the
ステップS364で、CPU21は、該当箇所のフレーズ区切りは、2(*)型(2型、2β型、2Rα型、又は2Rβ型)か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS365に移し、NOの場合、処理をステップS371に移す。
In step S364, the
ステップS365で、CPU21は、フレーズ区切りが2型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS366に移し、NOの場合、処理をステップS367に移す。
In step S365, the
ステップS366で、CPU21は、その部分のコードを比較元と同一とする。2型の場合、メロディのリズムも音高も比較元と同一なので、コードも同一とする。例えば、3〜4小節目が2型である場合、CPU21は、3〜4小節目のコードを1〜2小節目のコードと同一にする。また、後述するように5〜6小節目が2β型、2Rα型、2Rβ型のいずれかであれば、5〜6小節目のコードと1〜2小節目のコードとで異なる部分のコードの機能が同一であれば、当該異なる部分のコードを1〜2小節目のコードと同一にする。
In step S366, the
ステップS367で、CPU21は、違う部分のコードを比較する。この場合、2β型、2Rα型、2Rβ型のいずれかであるが、これらは、メロディ音高とメロディリズムのいずれか一方か両方が、比較元とそれぞれ30%未満異なるということなので、当該異なる部分のコードを比較する。例えば、3〜4小節目が、2β型、2Rα型、2Rβ型のいずれかであれば、3〜4小節目のコードと1〜2小節目のコードとを比較する。
In step S367, the
ステップS368で、CPU21は、機能は同一であるか否かを判断する。具体的には、CPU21は、当該異なる部分のコードの機能が同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS366に移し、NOの場合、処理をステップS369に移す。
In step S368, the
ステップS369で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS371に移し、NOの場合、処理をステップS370に移す。
In step S369, the
ステップS370で、CPU21は、次の2小節へ進めて、ステップS365に処理を移す。
In step S370, the
ステップS371で、CPU21は、該当箇所のフレーズ区切りはX型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS372に移し、NOの場合、処理をステップS376に移す。
In step S <b> 371, the
ステップS372で、CPU21は、開始位置を確認する。
In step S372, the
ステップS373で、CPU21は、その部分のコードを比較元と同一とする。
In step S373, the
ステップS374で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS376に移し、NOの場合、処理をステップS375に移す。
In step S374, the
ステップS375で、CPU21は、次のX型へ進めて、ステップS372に処理を移す。
In step S375, the
ステップS376で、CPU21は、他にもフレーズ型記憶箇所が有るか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS350に移し、NOの場合、コード付け修正処理を終了する。
In step S376, the
図37は、本実施の形態にかかるメロディとコードスケールの比較処理の例を示すフローチャートである。 FIG. 37 is a flowchart showing an example of comparison processing between a melody and a chord scale according to the present embodiment.
ステップS381で、CPU21は、修正されたコードのスケールをコードスケールテーブル(図43)で確認し、修正されたコード区間に対応するメロディ(リアルタイムコード付けの際に入力されたメロディ)と、修正されたコードのコードスケールと、が一致するか否かを確認する。ここで、コードスケールとは、図43のコードスケールテーブルでいうところの、スケールノート(SN)とコード構成音(CT)とを合わせた音群である。
例えば、修正されたコードが、キーがCにおけるIMajor(CMajor)である場合、修正されたコードのコードスケールは、図43によれば、「C,D,E,F,G,A,B」である。
したがって、修正されたコードが、キーがCにおけるIMajor(CMajor)である場合、修正されたコード区間に対応するメロディが、「C,D,E,F,G,A,B」のいずれかであれば、当該メロディと当該コードスケールとが一致する。
In step S381, the
For example, if the modified code is Imajor (CMajor) with the key C, the code scale of the modified code is “C, D, E, F, G, A, B” according to FIG. It is.
Therefore, when the modified chord is IMajor (CMajor) with the key C, the melody corresponding to the modified chord section is “C, D, E, F, G, A, B”. If there is, the melody matches the chord scale.
ステップS382で、CPU21は、ステップS381で一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS388に移し、NOの場合、処理をステップS383に移す。
In step S382, the
ステップS383で、CPU21は、スケール外音は装飾音か否かを判断する。具体的には、CPU21は、ステップS265(図30)と同様に装飾音データベース(図42)を参照して判断する。この判断がYESの場合、CPU21は、処理をステップS388に移し、NOの場合、処理をステップS384に移す。
In step S383, the
ステップS384で、CPU21は、リハモデータベース(図示せず)を参照する。例えば、キーがAm(Amの構成音は、「A、B、C、D、E、F、G」)で、メロディがメロディックマイナーの上向型(A、B、C、D、E、F#、G#)であった場合、「F#、G#」は、キーAmの構成音ではないので、F#の音に対して、Bm7にコードを変更することができる。
このように、リハモデータベース(図示せず)には、コードを変更することのできるパターンがデータベースとして登録されている。
In step S384, the
Thus, in the rehabilitation database (not shown), patterns that can change codes are registered as a database.
ステップS385で、CPU21は、リハモデータベースにおいてマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS386に移し、NOの場合、処理をステップS387に移す。
In step S385, the
ステップS386で、CPU21は、コード修正をする。具体的には、CPU21は、リハモデータベースに登録されているコードに修正する。
In step S386, the
ステップS387で、CPU21は、不適合箇所を記録する。すなわち、マッチしなかった箇所をRAM23に記録する。
In step S387, the
ステップS388で、CPU21は、最後のコードか否かを判断する。この判断がYESの場合、CPU21は、メロディとコードスケールの比較処理を終了し、NOの場合、処理をステップS389に移す。
In step S388, the
ステップS389で、CPU21は、次のコードへ進み、処理をステップS381へ移す。
In step S389, the
図38は、本実施の形態にかかるユーザーによる修正処理の例を示すフローチャートである。
ノンリアルタイムで修正しても、耳の肥えたユーザーにとっては、不満がある場合がる。そのときに、ユーザーによる修正機能があると便利である。ユーザーによる修正処理は、そのための処理である。
FIG. 38 is a flowchart showing an example of correction processing by the user according to the present embodiment.
Even non-real-time corrections may be frustrating for users with advanced ears. At that time, it is convenient if there is a correction function by the user. The correction process by the user is a process for that purpose.
ステップS401で、CPU21は、Anyキーによるデータ再生中か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS402に移し、NOの場合、ユーザーによる修正処理を修正する。
In step S401, the
ステップS402で、CPU21は、Editスイッチ(図示せず)がオンか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS404に移し、NOの場合、処理をステップS403に移す。
In step S402, the
ステップS403で、CPU21は、コード優先データベース順にコード候補を出力する。具体的には、CPU21は、コード優先データベース(図44)に格納された順番で、コード候補を出力する。例えば、修正前のコードがIImであれば、1番目のコード候補として、「IIm7」を出力する。
In step S403, the
ステップS404で、CPU21は、OKスイッチ(図示せず)が押下されたか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS405に移し、NOの場合、処理をステップS406に移す。
In step S404, the
ステップS405で、CPU21は、コードを修正し、処理をステップS407に移す。具体的には、CPU21は、ステップS403で出力されたコードでコード修正する。
In step S405, the
ステップS406で、CPU21は、次候補を出力し、処理をステップS404に移す。例えば、現在出力されたコードが「IIm7」であれば、CPU21は、2番目のコード候補である「IV」を出力する。
In step S406, the
ステップS407で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、ユーザーによる修正処理を終了し、NOの場合、処理をステップS401に移す。
In step S407, the
本実施の形態の電子楽器10は、曲のメロディを演奏する鍵盤11を有しており、CPU21は、演奏されているメロディの音高の履歴により、当該メロディに対してリアルタイムでコード付与を行い、メロディ演奏終了後、リアルタイムでコード付与されたコードをノンリアルタイムで修正する。
したがって、入力されたメロディに対してリアルタイムでコード付けを行った後、ノンリアルタイムでコードを修正することで、コード付けの精度をより高めることができる。
The electronic
Therefore, after performing chording on the input melody in real time, the chording accuracy can be further improved by correcting the chord in non-real time.
また、本実施の形態において、CPU21は、曲の所定区間ごとに、そこに含まれるメロディ音の中で付与されたコード以外の他のコードが成立する音が存在するか否か検証し、成立する場合に当該所定区間を修正箇所として指定し、
曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士の楽式の一致度を検証し、当該検証結果に基づいて、前記付与されたコードを修正する。
したがって、例えば、所定の長さとして4小節のフレーズに区切った場合に、4小節ごとの楽式の一致度に基づいてコード修正が行われるので、フレーズの楽式の一致度が高ければ、フレーズ同士のコード付けの一致度を高くすることができる。
Further, in the present embodiment, the
The melody of the song is divided into a plurality of phrases of a predetermined length, the musical score matching degree between the phrases is verified, and the assigned code is corrected based on the verification result.
Therefore, for example, when the phrase is divided into phrases of four bars as a predetermined length, code correction is performed based on the musical score matching degree for every four bars. It is possible to increase the matching degree of coding between each other.
また、本実施の形態において、CPU21は、曲の所定の区間に付与されているキーが、当該所定の区間のメロディの最終音に基づいて定められるキーと一致するか否かを検証する。
したがって、曲の所定の区間に付与されているキーが正確であるか否かをメロディの最終音に基づいて検証することができる。
Further, in the present embodiment, the
Therefore, it can be verified based on the final sound of the melody whether or not the key assigned to the predetermined section of the song is accurate.
また、本実施の形態において、CPU21は、修正された各コードのスケールと、対応する区間のメロディのスケールとが一致するか否か判定し、一致していない場合は当該修正されたコードをさらに訂正する。
したがって、修正されたコードの正確性を検証し、正確でない場合はさらにコードを訂正できるので、コード付けの精度をより高めることができる。
Further, in the present embodiment, the
Therefore, the accuracy of the modified code is verified, and if it is not accurate, the code can be further corrected, so that the coding accuracy can be further improved.
また、本実施の形態において、CPU21は、リアルタイムでのコード付けにおいて、曲データ中の所定の拍に属する音高、当該拍の直前の拍に属する音高及び当該直前の拍に付与されたコードに基づいて所定の拍に付与すべきコードを決定する。
したがって、リアルタイムでのコード付けを迅速かつ正確に行うことができる。
In the present embodiment, the
Therefore, real-time coding can be performed quickly and accurately.
また、本実施の形態において、CPU21は、曲の小節ごとに、当該小節に含まれるメロディ音のうち、付与されたコードの構成音以外の他の音が存在するか否かを判別し、
他の音が存在すると判別された場合に、当該他の音が装飾音であるか否かを判別し、
装飾音と判別された場合にはこの装飾音を除いた音に基づくコードと前記小節に付与されたコードとを比較するとともに、装飾音と判別されない場合には前記他の音に基づくコードと前記小節に付与されたコードとを比較し、
両者のコードが一致しないと判断された場合に、前記小節の区間を修正箇所と指定する。
したがって、リアルタイムでコード付けの誤りの原因であった装飾音を除いて、支配的な音により確実にコードを修正することができる。
In the present embodiment, the
When it is determined that another sound exists, it is determined whether the other sound is a decorative sound,
When it is determined as a decoration sound, the chord based on the sound excluding the decoration sound is compared with the chord assigned to the measure, and when it is not determined as a decoration sound, the chord based on the other sound and the chord Compare the chord given to the bar,
If it is determined that the two codes do not match, the section of the bar is designated as a correction portion.
Therefore, the chord can be corrected with certainty using the dominant sound, excluding the decoration sound that has caused the coding error in real time.
また、本実施の形態において、CPU21は、曲の小節ごとに、当該小節に含まれるメロディ音のうち、支配的な音以外の他の音が存在するか否かを判別する際に、曲の小節毎に、当該小節に含まれるメロディ音のうち音長の長い3つの音を抽出するとともに、これら3つの音が前記小節に付与されているコードの構成音か判別し、コード構成音と判別した場合は、これら3つの音を支配的な音とする。
したがって、支配的な音をコード構成音とすることができる。
In the present embodiment, the
Therefore, the dominant sound can be a chord constituent sound.
また、本実施の形態において、CPU21は、曲のメロディを所定の長さの複数のフレーズに区切る際に、曲を4小節毎、8小節毎及び2小節毎に区切る。
したがって、4小節単位、8小節単位、2小節単位等、音楽的に繰り返しの多い小節数を単位として、楽式の一致度を検証できる。
In the present embodiment, the
Accordingly, it is possible to verify the degree of coincidence of musical expressions using the number of measures that are musically repeated, such as 4 bar units, 8 bar units, and 2 bar units.
また、本実施の形態において、曲データは、さらにリズム音を含み、CPU21は、楽式としてフレーズ同士のメロディ音の音高及びリズム音を比較し、各フレーズを、音高及びリズム音の両方が一致する場合、音高及びリズム音の一方が一致しかつ他方が所定値以上一致する場合、音高及びリズム音の両方が所定値以上一致する場合のいずれかに分類する。
したがって、楽式の一致度の検証方法のバリエーションを多くできる。
In the present embodiment, the song data further includes a rhythm sound, and the
Accordingly, it is possible to increase variations of the verification method for the coincidence of the musical style.
また、本実施の形態において、CPU21は、コード修正する際に、コード構成音検証により修正箇所と判断された曲の区間がある場合に、当該区間における他のコードを付与することにより、前記区間の最終部分がカデンツに沿う形で終結しているか否か判別し、
終結していると判別された場合は、付与されたコードを当該他のコードに訂正する。
したがって、より適切なコード付けを行うことができる。
Further, in the present embodiment, when there is a song section that is determined to be a corrected portion by the chord composition sound verification when the chord correction is performed, the
If it is determined that it is terminated, the assigned code is corrected to the other code.
Therefore, more appropriate coding can be performed.
また、本実施の形態において、CPU21は、コード修正する際に、コード構成音検証により修正箇所と判断された曲の区間がある場合に、当該区間における他のコードを付与することにより、前記区間の最終部分がカデンツに沿う形で終結しているか否か判別し、
終結していないと判別された場合は、当該区間に含まれるメロディ音によりキーを確定し、当該確定されたキーに基づいて新たに付与されたコードで再度カデンツに沿う形で終結しているか否か判別する。
したがって、より適切なコード付けを行うことができる。
Further, in the present embodiment, when there is a song section that is determined to be a corrected portion by the chord composition sound verification when the chord correction is performed, the
If it is determined that the key has not been terminated, the key is determined by the melody sound included in the section, and whether or not the key is terminated again in accordance with the cadence with a newly assigned code based on the determined key To determine.
Therefore, more appropriate coding can be performed.
また、本実施の形態において、CPU21は、曲のメロディを所定の長さの複数のフレーズに区切ってから、音高及びリズム音の両方が一致する場合に分類されたフレーズ夫々に付与されたコードを同一のコードに訂正し、
音高及びリズム音の一方が一致しかつ他方が所定値以上一致する場合、音高及びリズム音の両方が所定値以上一致する場合のいずれかに分類されたフレーズ夫々に付与されたコードの中で異なる部分のコード同士の機能が同一の場合は、当該異なる部分のコードを同一とする。
したがって、コード付けの精度をより高めることができる。
In the present embodiment, the
Among the chords assigned to each of the phrases classified as either the pitch or rhythm sound matches and the other matches a predetermined value or more, or both the pitch and rhythm sound match a predetermined value or more If the functions of the codes of different parts are the same, the codes of the different parts are the same.
Therefore, the coding accuracy can be further increased.
本実施の形態においては、コード名判定処理(図3のステップS4)において、CPU21は、鍵盤11の一連の操作において進行するメロディシーケンスにおいて、実行中の自動伴奏データの進行を規定する時間情報、特に拍の情報に基づいて、現在の拍の拍頭において押鍵された鍵に関連する現在メロディ音CMと、1つ前の拍である前拍の拍頭において押鍵された鍵に関する先行メロディ音PMとを決定する。また、CPU21は、決定された現在メロディ音情報と、先行メロディ音情報と、前拍におけるコード名である先行コード名PreCHとに基づき、現在コード名CurCHを決定するコード名決定処理(図5のステップS31)を実行する。また、メロディ音の決定に際して、CPU21は、現在の拍が、小節において何番目の拍であるかに基づいて、現在メロディ音CM及び先行メロディ音PMを決定する。
In the present embodiment, in the chord name determination process (step S4 in FIG. 3), the
すなわち、本実施の形態によれば、押鍵された拍の位置(時間的な位置)を考慮して現在メロディ音CM及び先行メロディ音PMが決定され、決定されたメロディ音のシーケンスと、先行コード名PreCHに基づいて現在コード名CurCHが決定される。 That is, according to the present embodiment, the current melody sound CM and the preceding melody sound PM are determined in consideration of the position of the pressed key (temporal position), and the determined melody sound sequence and the preceding The current code name CurCH is determined based on the code name PreCH.
また、本実施の形態においては、CPU21は、拍子が4拍子である場合に、現在の拍が、1拍目或いは3拍目であるか、或いは、他の拍であるかに基づいて、現在メロディ音情報及び先行メロディ音情報を決定する。すなわち、強拍(1拍目、3拍目)と、弱拍(2拍目、4拍目)に基づいて、現在メロディ音CM及び先行メロディ音PMを決定することで、拍の重みを考慮することが可能となる。
In the present embodiment, when the time signature is 4 beats, the
また、本実施の形態において、CPU21は、前拍の先頭以降の押鍵が、現在の拍まで延びている場合に、シンコペーションであると判断し、現在メロディ音CMを、現在の拍まで延びている押鍵に関するものに決定する。すなわち、拍頭の押鍵でなくとも、シンコペーションを構成する場合には、これを拍頭の押鍵と同様に取り扱うことができる。
In the present embodiment, the
また、CPU21は、第1のドミナントモーション判定処理(図10)において、先行コード名PreCHがドミナントコードを示し、かつ、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。このように、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。
In addition, in the first dominant motion determination process (FIG. 10), the
また、CPU21は、第2のドミナントモーション判定処理(図17)において、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。ここでは、先行コード名PreCHがドミナントコードではない場合でも、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。
Further, in the second dominant motion determination process (FIG. 17), the
さらに、CPU21は、第1のドミナントモーション判定処理或いは第2のドミナントモーション判定処理により、現在コード名CurCHとしてトニックに相当するコード名が付与されなかった場合に、現在コード名CurCHとして、先行コード名PreCHを与える。これにより、コード保持を実現することができる。
Further, when the code name corresponding to the tonic is not assigned as the current code name CurCH by the first dominant motion determination process or the second dominant motion determination process, the
また、本実施の形態においては、現在メロディ音CMが1拍目の押鍵に関する場合に、先行メロディ音PM、現在メロディ音CM及び先行コード名情報PreCHに対応付けられたコード名を格納した第1のコードテーブルと、現在メロディ音CMが、1拍目以外の押鍵に関する場合に、先行メロディ音PM、現在メロディ音CM及び先行コード名PrCHに対応付けられたコード名を格納した第2のコードテーブルとを備え、CPU21は、押鍵タイミングにしたがって、第1のコードテーブル或いは第2のコードテーブルを参照する。これにより、拍にしたがって異なるコード名を取得することが可能となる。また、テーブルを参照することで、リアルタイムにコード名を決定することが可能となる。
Further, in the present embodiment, when the current melody sound CM relates to the key depression of the first beat, the code names associated with the preceding melody sound PM, the current melody sound CM, and the preceding code name information PreCH are stored. When the chord table of 1 and the current melody sound CM relate to key depression other than the first beat, the second melody that stores the chord name associated with the preceding melody sound PM, the current melody sound CM, and the preceding chord name PrCH is stored. The
さらに、本実施の形態においては、決定された先行メロディ音PM及び現在メロディ音CMに基づき、第1のコードテーブル或いは第2のコードテーブルにおいて、対応するコード名が存在しない場合に、現在コード名CurCHとしてオーギュメント(aug)或いはディミニッシュ(dim)という無判定コードを付与する。これにより、先行メロディ音PMや現在メロディ音が、コード構成音或いはスケールノートでない場合であっても、楽曲においてそれほど違和感のない何らかのコード名を付与することが可能となる。 Furthermore, in the present embodiment, the current code name when there is no corresponding code name in the first code table or the second code table based on the determined preceding melody sound PM and current melody sound CM. A non-determined code such as augment or dim is assigned as CurCH. As a result, even if the preceding melody sound PM or the current melody sound is not a chord constituent sound or a scale note, it is possible to give some chord name that is not so uncomfortable in the music.
さらに、本実施の形態においては、CPU21は、無判定コードテーブルを参照して、現在メロディ音CM、先行メロディ音PM及び先行コード名PreCHから、オーギュメント(aug)或いはディミニッシュ(dim)の何れのコードにすべきかを判断することが可能となる。
Further, in the present embodiment, the
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。 The present invention is not limited to the above embodiments, and various modifications can be made within the scope of the invention described in the claims, and these are also included in the scope of the present invention. Needless to say.
たとえば、前記実施の形態においては、拍子を4拍子としているが、3拍子或いは6拍子でも本発明を適用可能である。たとえば、3拍子の場合には、上記処理のうち、1拍目〜3拍目についての処理を使用すれば良い。また、6拍子は、3拍子が2つあると考え、上記1拍目〜3拍目の処理を使用する。また、4拍目〜6拍目は、1拍目〜3拍目と同様に扱って同一の処理を実行すれば良い。 For example, in the above-described embodiment, the time signature is set to 4 time signatures, but the present invention can be applied to 3 time signatures or 6 time signatures. For example, in the case of three time signatures, the processing for the first to third beats among the above processing may be used. In addition, six beats are considered to have two three beats, and the above first to third beat processing is used. Further, the fourth to sixth beats may be handled in the same manner as the first to third beats, and the same processing may be executed.
また、前記実施の形態では、ハ長調(CMaj)或いはイ短調(Amin)という調性において、主音(根音)に対する度数を用いたコード名が得られるがこれに限定されるものではなく、他の調性についても本発明を適用可能である。この場合には、たとえば、楽曲が長調であれば、「C」と、その楽曲の調性の根音との音高差が算出され、その音高差をオフセットとして、オフセット値をRAM23に格納すれば良い。処理においては、実際に押鍵された鍵番号により特定される音名をオフセットだけ減じることで、「C」のスケールにて処理を実行することが可能となる。
In the above embodiment, the chord name using the frequency with respect to the main tone (root tone) is obtained in the tonality of C major (CMaj) or A minor (Amin), but the present invention is not limited to this. The present invention can also be applied to the tonality. In this case, for example, if the music is in major key, the pitch difference between “C” and the root tone of the tonality of the music is calculated, and the offset value is stored in the
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
曲のメロディを演奏する演奏手段と、
演奏されているメロディの音高の履歴により、当該メロディに対してリアルタイムでコード付与を行うリアルタイムコード付け手段と、
前記演奏手段によるメロディ演奏終了後、前記リアルタイムコード付け手段にて付与されたコードをノンリアルタイムで修正するノンリアルタイムコード修正手段と、
を有する自動コード修正装置。
[付記2]
前記ノンリアルタイムコード修正手段は、
前記曲の所定区間ごとに、そこに含まれるメロディ音の中で前記付与されたコード以外の他のコードが成立する音が存在するか否か検証し、存在する場合に前記所定区間を修正箇所として指定するコード構成音検証手段と、
曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士の楽式の一致度を検証するフレーズ区切り検証手段と、
前記コード構成音検証手段及びフレーズ区切り検証手段の検証結果に基づいて、前記付与されたコードを修正するコード修正手段と、
を有する付記1に記載の自動コード修正装置。
[付記3]
前記ノンリアルタイムコード修正手段はさらに、
前記曲の所定の区間に付与されているキーが、前記所定の区間のメロディの最終音に基づいて定められるキーと一致するか否かを検証するキー判定検証手段をさらに有する付記2に記載の自動コード修正装置。
[付記4]
前記ノンリアルタイムコード修正手段により修正された各コードのスケールと、対応する区間の前記メロディのスケールとが一致するか否か判定し、一致していない場合は当該修正されたコードをさらに訂正するコード訂正手段をさらに有する付記1に記載の自動コード修正装置。
[付記5]
前記リアルタイムコード付け手段は、前記曲データ中の所定の拍に属する音高、当該拍の直前の拍に属する音高及び当該直前の拍に付与されたコードに基づいて前記所定の拍に付与すべきコードを決定する付記1に記載の自動コード修正装置。
[付記6]
前記コード構成音検証手段は、
前記曲の小節ごとに、当該小節に含まれるメロディ音のうち、前記付与されたコードの構成音以外の他の音が存在するか否かを判別する第1の判別手段と、
この第1の判別手段により他の音が存在すると判別された場合に、当該他の音が装飾音であるか否かを判別する第2の判別手段と、
この第2の判別手段により装飾音と判別された場合にはこの装飾音を除いた音に基づくコードと前記小節に付与されたコードとを比較するとともに、装飾音と判別されない場合には前記他の音に基づくコードと前記小節に付与されたコードとを比較する比較手段と、
この比較手段により両者のコードが一致しないと判断された場合に、前記小節の区間を修正箇所と指定する修正箇所指定手段と、
を有する付記2に記載の自動コード修正装置。
[付記7]
前記第1の判別手段は、前記曲の小節毎に、当該小節に含まれるメロディ音のうち音長の長い3つの音を抽出するとともに、これら3つの音が前記小節に付与されているコードの構成音か判別し、コード構成音と判別した場合は、前記3つの音をコード構成音とするコード構成音判別手段を有する付記6に記載の自動コード修正装置。
[付記8]
前記フレーズ区切り検証手段は、前記曲を4小節毎、8小節毎及び2小節毎に区切る付記2に記載の自動コード修正装置。
[付記9]
前記曲データは、さらにリズム音を含み、
前記フレーズ区切り検証手段は、楽式として前記フレーズ同士のメロディ音の音高及びリズム音を比較し、各フレーズを、音高及びリズム音の両方が一致する場合、音高及びリズム音の一方が一致しかつ他方が所定値以上一致する場合、音高及びリズム音の両方が所定値以上一致する場合のいずれかに分類する分類手段と、
を有する付記2に記載の自動コード修正装置。
[付記10]
前記コード修正手段は、
前記コード構成音検証手段にて修正箇所と判断された曲の区間がある場合に、当該区間における前記他のコードを付与することにより、前記区間の最終部分がカデンツに沿う形で終結しているか否か判別するカデンツ判定手段と、
このカデンツ判定手段により終結していると判別された場合は、前記付与されたコードを前記他のコードに訂正する訂正手段と、
を有する付記2に記載の自動コード修正装置。
[付記11]
前記コード修正手段はさらに、
前記カデンツ判定手段により終結していないと判別された場合は、前記区間に含まれるメロディ音によりキーを確定し、当該確定されたキーに基づいて新たに付与されたコードを再度前記カデンツ判定手段に供給するコード生成手段を有する付記10に記載の自動コード修正装置。
[付記12]
前記コード修正手段は、
前記フレーズ区切り検証手段にて、音高及びリズム音の両方が一致する場合に分類されたフレーズ夫々に付与されたコードを同一のコードに訂正し、
音高及びリズム音の一方が一致しかつ他方が所定値以上一致する場合、音高及びリズム音の両方が所定値以上一致する場合のいずれかに分類されたフレーズ夫々に付与されたコードの中で異なる部分のコード同士の機能が同一の場合は、当該異なる部分のコードを同一とする付記2に記載の自動コード修正装置。
[付記13]
コードメロディ音及び当該メロディ音に対して付与されたコードからなる曲データを取得する曲取得手段と、
この取得された曲の各小節に、当該小節に属するメロディ音に基づき、前記小節に付与されているコードを検証するコード構成音検証手段と、
前記曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士に付与されたコードが一致しない場合に、両者の楽式の一致度を検証するフレーズ区切り検証手段と、
前記コード構成音検証手段及びフレーズ区切り検証手段の検証結果に基づいて、前記付与されたコードを修正するコード修正手段と、
を有する自動コード修正装置。
[付記14]
コンピュータに実行させる、
曲のメロディを演奏する演奏ステップと、
演奏されているメロディの音高の履歴により、当該メロディに対してリアルタイムでコード付与を行うリアルタイムコード付けステップと、
前記演奏ステップによるメロディ演奏終了後、前記リアルタイムコード付け手段にて付与されたコードをノンリアルタイムで修正するノンリアルタイムコード修正ステップと、
を含む自動コード修正プログラム。
[付記15]
コンピュータに実行させる、
メロディ音及び当該メロディ音に対して付与されたコードからなる曲データを取得する曲取得ステップと、
この取得された曲の各小節に、当該小節に属するメロディ音に基づき、前記小節に付与されているコードを検証するコード構成音検証ステップと、
前記曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士に付与されたコードが一致しない場合に、両者の楽式の一致度を検証するフレーズ区切り検証ステップと、
前記コード構成音検証ステップ及びフレーズ区切り検証ステップの検証結果に基づいて、前記付与されたコードを修正するコード修正ステップと、
を含む自動コード修正プログラム。
The invention described in the scope of claims at the beginning of the filing of the present application will be appended.
[Appendix 1]
A performance means for playing the melody of the song;
Real-time coding means for assigning chords to the melody in real time according to the pitch history of the melody being played,
A non-real-time code correction means for correcting the code given by the real-time code attaching means in non-real time after the melody performance by the performance means is completed;
An automatic code correction device.
[Appendix 2]
The non-real time code correcting means includes
For each predetermined section of the song, it is verified whether or not there is a sound in which other chords other than the assigned chords exist among the melody sounds included therein, and if there is, the predetermined section is corrected Chord composition sound verification means to be designated as
Phrase break verification means for dividing the melody of a song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the phrases,
Code correcting means for correcting the assigned code based on the verification results of the chord constituent sound verifying means and the phrase break verifying means;
The automatic code correction device according to
[Appendix 3]
The non-real time code correcting means further includes
The key determination verification unit according to
[Appendix 4]
It is determined whether or not the scale of each chord modified by the non-real time chord correcting means and the scale of the melody in the corresponding section match, and if not, the chord that further corrects the corrected chord The automatic code correction device according to
[Appendix 5]
The real-time code attaching means assigns the predetermined beat based on a pitch belonging to a predetermined beat in the music data, a pitch belonging to the beat immediately before the beat, and a chord assigned to the beat immediately before the beat. The automatic code correction device according to
[Appendix 6]
The chord constituent sound verification means includes:
First discriminating means for discriminating whether or not there is a sound other than the constituent sound of the assigned chord among the melody sounds included in the measure for each measure of the song;
A second discriminating unit for discriminating whether or not the other sound is a decorative sound when the first discriminating unit determines that the other sound is present;
When the second discrimination means discriminates the decoration sound, the chord based on the sound excluding the decoration sound is compared with the chord assigned to the bar. A comparison means for comparing the chord based on the sound of the chord and the chord assigned to the bar;
When it is determined by the comparison means that the two codes do not match, a correction location specifying means for specifying the section of the measure as a correction location;
The automatic code correction device according to
[Appendix 7]
The first discriminating means extracts, for each measure of the song, three long melody sounds from the melody sound included in the measure, and the three sounds of the chord assigned to the measure. The automatic chord correction apparatus according to
[Appendix 8]
The automatic code correction device according to
[Appendix 9]
The song data further includes a rhythm sound,
The phrase delimiter verification means compares the pitches of melody sounds and rhythm sounds of the phrases as a musical expression, and when both the pitches and rhythm sounds match, A classifying means for classifying the pitch and the rhythm sound when the other matches the predetermined value or more, and the pitch and rhythm sound both match the predetermined value or more;
The automatic code correction device according to
[Appendix 10]
The code correcting means includes
If there is a section of a song that is determined to be corrected by the chord component sound verification means, is the final part of the section terminated in a form that conforms to cadence by adding the other chord in the section? Cadence determination means for determining whether or not,
When it is determined that the cadence determination means is terminated, a correction means for correcting the assigned code to the other code;
The automatic code correction device according to
[Appendix 11]
The code correcting means further includes
When it is determined that the cadence determination means is not terminated, a key is determined by the melody sound included in the section, and a newly added code based on the determined key is again input to the cadence determination means. The automatic code correction device according to
[Appendix 12]
The code correcting means includes
In the phrase delimiter verification means, the code assigned to each of the phrases classified when both pitch and rhythm sound match, is corrected to the same code,
Among the chords assigned to each of the phrases classified as either the pitch or rhythm sound matches and the other matches a predetermined value or more, or both the pitch and rhythm sound match a predetermined value or more If the functions of the different portions of the code are the same, the automatic code correcting device according to
[Appendix 13]
A song acquisition means for acquiring song data comprising a chord melody sound and a chord assigned to the melody sound;
Chord constituent sound verification means for verifying the chord assigned to the measure based on the melody sound belonging to the measure for each measure of the acquired song;
A phrase delimiter verification means for delimiting the melody of the song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the musical expressions when the codes given to the phrases do not match;
Code correcting means for correcting the assigned code based on the verification results of the chord constituent sound verifying means and the phrase break verifying means;
An automatic code correction device.
[Appendix 14]
Let the computer run,
A performance step to play the melody of the song,
A real-time coding step for assigning chords to the melody in real time according to the pitch history of the melody being played,
A non-real-time code correction step of correcting the code given by the real-time code attaching means in non-real time after the melody performance by the performance step is completed;
Automatic code correction program including.
[Appendix 15]
Let the computer run,
A song acquisition step of acquiring song data comprising a melody sound and a code assigned to the melody sound;
A chord constituent sound verification step for verifying the chord assigned to the measure based on the melody sound belonging to the measure for each measure of the acquired song;
A phrase delimiter verification step for delimiting the melody of the song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the musical expressions when the codes given to the phrases do not match;
A code correction step of correcting the assigned code based on the verification results of the chord constituent sound verification step and the phrase break verification step;
Automatic code correction program including.
10 電子楽器 11 鍵盤 12、13 スイッチ 14 ノンリアルタイムコード付け修正スイッチ 15 表示部 21 CPU 22 ROM 23 RAM 24 サウンドシステム 25 スイッチ群 26 音源部 27 オーディオ回路 28 スピーカ
DESCRIPTION OF
上記目的を達成するため、本発明の一態様の自動コード修正装置は、演奏手段による曲の演奏中において、逐次入力されるメロディに対して逐次コードを判定していくリアルタイムコード判定手段と、前記リアルタイムコード判定手段により判定された複数のコードと、前記複数のコードに対応するメロディの履歴とを記録する記録手段と、前記演奏手段による曲の演奏終了後、前記記録手段に記録されたメロディの履歴に基づいて複数のコードを判定するノンリアルタイムコード判定手段と、前記リアルタイムコード判定手段により判定された各コードと、前記ノンリアルタイムコード判定手段により判定された各コードとを比較し、前記比較結果に基づいて前記記録手段に記録されたコードを修正する第1のコード修正手段と、を備えたことを特徴とする。
また、本発明の他の態様の自動コード修正装置は、メロディ音及び前記メロディ音に対して付与されたコードからなる曲の所定区間ごとに、前記所定区間に含まれるメロディ音に基づき、前記所定区間に付与されているコードを検証するコード構成音検証手段と、前記曲のメロディを前記所定区間よりも長い区間で複数のフレーズに区切り、前記複数のフレーズ同士の楽式の一致度を検証するフレーズ区切り検証手段と、前記コード構成音検証手段及び前記フレーズ区切り検証手段の検証結果に基づいて、前記付与されたコードを修正するコード修正手段と、を備えたことを特徴とする。
In order to achieve the above object, an automatic chord correction apparatus according to an aspect of the present invention includes a real-time chord determination unit that sequentially determines chords for a melody sequentially input during performance of a song by the performance unit, A recording unit that records a plurality of chords determined by the real-time chord determining unit and a history of melody corresponding to the plurality of chords; Non-real-time code determination means for determining a plurality of codes based on a history, each code determined by the real-time code determination means, and each code determined by the non-real-time code determination means, and the comparison result And a first code correcting means for correcting the code recorded in the recording means based on And wherein the door.
According to another aspect of the present invention, there is provided an automatic chord correcting apparatus, wherein the predetermined chord is set based on a melody sound included in the predetermined section for each predetermined section of a song composed of a melody sound and a chord given to the melody sound. Chord constituent sound verification means for verifying a chord assigned to a section; and dividing the melody of the song into a plurality of phrases in a section longer than the predetermined section, and verifying the musical coincidence between the plurality of phrases Phrase break verification means, and code correction means for correcting the assigned code based on the verification results of the chord composition sound verification means and the phrase break verification means.
Claims (17)
てリアルタイムでコード付与を行うリアルタイムコード付け手段と、
前記演奏手段によるメロディ演奏終了後、前記リアルタイムコード付け手段にて付与さ
れたコードをノンリアルタイムで修正するノンリアルタイムコード修正手段と、
前記ノンリアルタイムコード修正手段により修正された各コードのスケールと、前記修
正されたコードそれぞれに対応する区間の前記メロディのスケールとが一致するか否か判
定し、一致していない場合は当該修正されたコードをさらに訂正するコード訂正手段と、
を有する自動コード修正装置。 Real-time coding means for assigning chords to the melody in real time according to the pitch history of the melody of the song being played by the performance means;
A non-real-time code correction means for correcting the code given by the real-time code attaching means in non-real time after the melody performance by the performance means is completed;
It is determined whether or not the scale of each chord corrected by the non-real-time chord correcting means matches the scale of the melody in the section corresponding to each of the corrected chords. Code correction means for further correcting the code,
An automatic code correction device.
前記曲の所定区間ごとに、そこに含まれるメロディ音の中で前記付与されたコード以外
の他のコードが成立する音が存在するか否か検証し、存在する場合に前記所定区間を修正
箇所として指定するコード構成音検証手段と、
曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士の楽式の一致
度を検証するフレーズ区切り検証手段と、
前記コード構成音検証手段及びフレーズ区切り検証手段の検証結果に基づいて、前記付
与されたコードを修正するコード修正手段と、
を有する請求項1に記載の自動コード修正装置。 The non-real time code correcting means includes
For each predetermined section of the song, it is verified whether or not there is a sound in which other chords other than the assigned chords exist among the melody sounds included therein, and if there is, the predetermined section is corrected Chord composition sound verification means to be designated as
Phrase break verification means for dividing the melody of a song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the phrases,
Code correcting means for correcting the assigned code based on the verification results of the chord constituent sound verifying means and the phrase break verifying means;
The automatic code correction device according to claim 1, comprising:
前記曲の所定の区間に付与されているキーが、前記所定の区間のメロディの最終音に基
づいて定められるキーと一致するか否かを検証するキー判定検証手段をさらに有する請求
項2に記載の自動コード修正装置。 The non-real time code correcting means further includes
The key determination verification means for verifying whether or not a key assigned to a predetermined section of the song matches a key determined based on a final sound of the melody of the predetermined section. Automatic code correction device.
該拍の直前の拍に属する音高及び当該直前の拍に付与されたコードに基づいて前記所定の
拍に付与すべきコードを決定する請求項1に記載の自動コード修正装置。 The real-time code attaching means is applied to the predetermined beat based on a pitch belonging to a predetermined beat in the melody of the song, a pitch belonging to the beat immediately before the beat, and a chord assigned to the immediately preceding beat. The automatic code correction device according to claim 1, wherein a code to be determined is determined.
前記曲の小節ごとに、当該小節に含まれるメロディ音のうち、前記付与されたコードの
構成音以外の他の音が存在するか否かを判別する第1の判別手段と、
この第1の判別手段により他の音が存在すると判別された場合に、当該他の音が装飾音
であるか否かを判別する第2の判別手段と、
この第2の判別手段により装飾音と判別された場合にはこの装飾音を除いた音に基づく
コードと前記小節に付与されたコードとを比較するとともに、装飾音と判別されない場合
には前記他の音に基づくコードと前記小節に付与されたコードとを比較する比較手段と、
この比較手段により両者のコードが一致しないと判断された場合に、前記小節の区間を
修正箇所と指定する修正箇所指定手段と、
を有する請求項2に記載の自動コード修正装置。 The chord constituent sound verification means includes:
First discriminating means for discriminating whether or not there is a sound other than the constituent sound of the assigned chord among the melody sounds included in the measure for each measure of the song;
A second discriminating unit for discriminating whether or not the other sound is a decorative sound when the first discriminating unit determines that the other sound is present;
When the second discrimination means discriminates the decoration sound, the chord based on the sound excluding the decoration sound is compared with the chord assigned to the bar. A comparison means for comparing the chord based on the sound of the chord and the chord assigned to the bar;
When it is determined by the comparison means that the two codes do not match, a correction location specifying means for specifying the section of the measure as a correction location;
The automatic code correction device according to claim 2, comprising:
の長い3つの音を抽出するとともに、これら3つの音が前記小節に付与されているコード
の構成音か判別し、コード構成音と判別した場合は、前記3つの音をコード構成音とする
コード構成音判別手段を有する請求項5に記載の自動コード修正装置。 The first discriminating means extracts, for each measure of the song, three long melody sounds from the melody sound included in the measure, and the three sounds of the chord assigned to the measure. 6. The automatic chord correcting apparatus according to claim 5, further comprising: a chord constituent sound discriminating unit that discriminates the constituent sounds and determines that the three sounds are chord constituent sounds.
求項2に記載の自動コード修正装置。 3. The automatic code correction device according to claim 2, wherein the phrase delimiter verification unit divides the music into every four bars, every eight bars, and every two bars.
前記コード構成音検証手段にて修正箇所と判断された曲の区間がある場合に、当該区間
における前記他のコードを付与することにより、前記区間の最終部分がカデンツに沿う形
で終結しているか否か判別するカデンツ判定手段と、
このカデンツ判定手段により終結していると判別された場合は、前記付与されたコード
を前記他のコードに訂正する訂正手段と、
を有する請求項2に記載の自動コード修正装置。 The code correcting means includes
If there is a section of a song that is determined to be corrected by the chord component sound verification means, is the final part of the section terminated in a form that conforms to cadence by adding the other chord in the section? Cadence determination means for determining whether or not,
When it is determined that the cadence determination means is terminated, a correction means for correcting the assigned code to the other code;
The automatic code correction device according to claim 2, comprising:
前記カデンツ判定手段により終結していないと判別された場合は、前記区間に含まれる
メロディ音によりキーを確定し、当該確定されたキーに基づいて新たに付与されたコード
を再度前記カデンツ判定手段に供給するコード生成手段を有する請求項8に記載の自動コ
ード修正装置。 The code correcting means further includes
When it is determined that the cadence determination means is not terminated, a key is determined by the melody sound included in the section, and a newly added code based on the determined key is again input to the cadence determination means. 9. The automatic code correction device according to claim 8, further comprising code generation means to be supplied.
前記フレーズ区切り検証手段にて、音高及びリズム音の両方が一致する場合に分類され
たフレーズ夫々に付与されたコードを同一のコードに訂正し、
音高及びリズム音の一方が一致しかつ他方が所定値以上一致する場合、音高及びリズム
音の両方が所定値以上一致する場合のいずれかに分類されたフレーズ夫々に付与されたコ
ードの中で異なる部分のコード同士の機能が同一の場合は、当該異なる部分のコードを同
一とする請求項2に記載の自動コード修正装置。 The code correcting means includes
In the phrase delimiter verification means, the code assigned to each of the phrases classified when both pitch and rhythm sound match, is corrected to the same code,
Among the chords assigned to each of the phrases classified as either the pitch or rhythm sound matches and the other matches a predetermined value or more, or both the pitch and rhythm sound match a predetermined value or more 3. The automatic code correcting device according to claim 2, wherein when the functions of the codes of different parts are the same, the codes of the different parts are made the same.
小節に属するメロディ音に基づき、前記小節に付与されているコードを検証するコード構
成音検証手段と、
前記曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士に付与され
たコードが一致しない場合に、両者の楽式の一致度を検証するフレーズ区切り検証手段と
、
前記コード構成音検証手段及びフレーズ区切り検証手段の検証結果に基づいて、前記付
与されたコードを修正するコード修正手段と、
を有する自動コード修正装置。 A chord constituent sound verification means for verifying a chord assigned to the measure based on a melody sound belonging to the measure for each measure of the melody sound and a measure composed of the chord assigned to the melody sound;
A phrase delimiter verification means for delimiting the melody of the song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the musical expressions when the codes given to the phrases do not match;
Code correcting means for correcting the assigned code based on the verification results of the chord constituent sound verifying means and the phrase break verifying means;
An automatic code correction device.
演奏されている曲のメロディの音高の履歴により、当該メロディに対してリアルタイム
でコード付与を行うリアルタイムコード付けステップと、
前記メロディ演奏終了後、前記リアルタイムで付与されたコードをノンリアルタイムで
修正するノンリアルタイムコード修正ステップと、
前記修正された各コードのスケールと、前記修正されたコードそれぞれに対応する区間
の前記メロディのスケールとが一致するか否か判定し、一致していない場合は当該修正さ
れたコードをさらに訂正するコード訂正ステップと、
を実行させる自動コード修正プログラム。 In a computer used as an automatic code correction device,
A real-time coding step for assigning a chord to the melody in real time according to the pitch history of the melody of the song being played;
A non-real time chord correction step for correcting the chord assigned in real time after the melody performance is completed;
It is determined whether or not the scale of each modified chord and the scale of the melody in the section corresponding to each of the modified chords match, and if not, the corrected chord is further corrected. A code correction step;
Automatic code correction program that runs
メロディ音及び当該メロディ音に対して付与されたコードからなる曲の各小節に、当該
小節に属するメロディ音に基づき、前記小節に付与されているコードを検証するコード構
成音検証ステップと、
前記曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士に付与さ
れたコードが一致しない場合に、両者の楽式の一致度を検証するフレーズ区切り検証ステ
ップと、
前記コード構成音検証ステップ及びフレーズ区切り検証ステップの検証結果に基づいて
、前記付与されたコードを修正するコード修正ステップと、
を実行させる自動コード修正プログラム。 In a computer used as an automatic code correction device,
A chord composition sound verification step for verifying a chord assigned to the measure based on a melody sound belonging to the measure for each measure of the melody sound and a measure composed of the chord assigned to the melody sound;
A phrase delimiter verification step for delimiting the melody of the song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the musical expressions when the codes given to the phrases do not match;
A code correction step of correcting the assigned code based on the verification results of the chord constituent sound verification step and the phrase break verification step;
Automatic code correction program that runs
装置が、
演奏されている曲のメロディの音高の履歴により、当該メロディに対してリアルタイム
でコード付与を行い、
前記メロディ演奏終了後、前記リアルタイムで付与されたコードをノンリアルタイムで
修正し、
前記修正された各コードのスケールと、前記修正されたコードそれぞれに対応する区間
の前記メロディのスケールとが一致するか否か判定し、一致していない場合は当該修正さ
れたコードをさらに訂正する、自動コード修正方法。 An automatic code correction method used in an automatic code correction device, wherein the automatic code correction device comprises:
Based on the pitch history of the melody of the song being played, a chord is given to the melody in real time,
After completion of the melody performance, the chord assigned in real time is corrected in non-real time,
It is determined whether or not the scale of each modified chord and the scale of the melody in the section corresponding to each of the modified chords match, and if not, the corrected chord is further corrected. , Automatic code correction method.
装置が、
メロディ音及び当該メロディ音に対して付与されたコードからなる曲の各小節に、当該
小節に属するメロディ音に基づき、前記小節に付与されているコードを検証し、
前記曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士に付与さ
れたコードが一致しない場合に、両者の楽式の一致度を検証し、
前記検証されたコード及び前記楽式の一致度の検証結果に基づいて、前記付与されたコ
ードを修正する、自動コード修正方法。 An automatic code correction method used in an automatic code correction device, wherein the automatic code correction device comprises:
Based on the melody sound belonging to the measure for each measure of the song composed of the melody sound and the chord assigned to the melody sound, the code assigned to the measure is verified,
When the melody of the song is divided into a plurality of phrases of a predetermined length, and the chords given to the phrases do not match,
An automatic code correction method for correcting the assigned code based on the verified code and the verification result of the coincidence degree of the musical expression.
てリアルタイムでコード付与を行うリアルタイムコード付け手段と、
前記演奏手段によるメロディ演奏終了後、前記リアルタイムコード付け手段にて付与さ
れたコードをノンリアルタイムで修正するノンリアルタイムコード修正手段と、
を備え
前記ノンリアルタイムコード修正手段は、
前記曲の所定区間ごとに、そこに含まれるメロディ音の中で前記付与されたコード以外
の他のコードが成立する音が存在するか否か検証し、存在する場合に前記所定区間を修正箇所として指定するコード構成音検証手段と、
曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士の楽式の一致
度を検証するフレーズ区切り検証手段と、
前記コード構成音検証手段及びフレーズ区切り検証手段の検証結果に基づいて、前記付
与されたコードを修正するコード修正手段と、
を有する自動コード修正装置。 Real-time coding means for assigning chords to the melody in real time according to the pitch history of the melody of the song being played by the performance means;
A non-real-time code correction means for correcting the code given by the real-time code attaching means in non-real time after the melody performance by the performance means is completed;
The non-real time code correction means comprises
For each predetermined section of the song, it is verified whether or not there is a sound in which other chords other than the assigned chords exist among the melody sounds included therein, and if there is, the predetermined section is corrected Chord composition sound verification means to be designated as
Phrase break verification means for dividing the melody of a song into a plurality of phrases of a predetermined length and verifying the degree of coincidence between the phrases,
Code correcting means for correcting the assigned code based on the verification results of the chord constituent sound verifying means and the phrase break verifying means;
An automatic code correction device.
装置が、
演奏手段により演奏されている曲のメロディの音高の履歴により、当該メロディに対し
てリアルタイムでコード付与を行い、
前記演奏手段によるメロディ演奏終了後、前記曲の所定区間ごとに、そこに含まれるメ
ロディ音の中で前記付与されたコード以外の他のコードが成立する音が存在するか否か検
証し、存在する場合に前記所定区間を修正箇所として指定し、
前記曲のメロディを所定の長さの複数のフレーズに区切り、当該フレーズ同士の楽式の
一致度を検証し、
前記他のコードが成立する音が存在するか否かの検証結果及び前記フレーズ同士の楽式
の一致度の検証結果に基づいて、前記付与されたコードを修正する、自動コード修正方法
。 An automatic code correction method used in an automatic code correction device, wherein the automatic code correction device comprises:
Based on the pitch history of the melody of the song being played by the performance means, the chord is given to the melody in real time,
After completion of the melody performance by the performance means, it is verified whether or not there is a sound in which a chord other than the assigned chord is established among the melody sounds included in the predetermined section of the song. If you want to specify the predetermined section as a correction location,
Dividing the melody of the song into a plurality of phrases of a predetermined length, verifying the degree of coincidence between the phrases,
An automatic code correction method for correcting the assigned code on the basis of a verification result of whether or not there is a sound in which the other chord is formed and a verification result of a musical coincidence degree between the phrases.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016226109A JP6555231B2 (en) | 2016-11-21 | 2016-11-21 | Automatic code correction device, automatic code correction method and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016226109A JP6555231B2 (en) | 2016-11-21 | 2016-11-21 | Automatic code correction device, automatic code correction method and program thereof |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011213373A Division JP6047867B2 (en) | 2011-09-28 | 2011-09-28 | Automatic code correction device, automatic code correction method and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017037348A true JP2017037348A (en) | 2017-02-16 |
JP6555231B2 JP6555231B2 (en) | 2019-08-07 |
Family
ID=58047345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016226109A Active JP6555231B2 (en) | 2016-11-21 | 2016-11-21 | Automatic code correction device, automatic code correction method and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6555231B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0854881A (en) * | 1994-08-12 | 1996-02-27 | Kawai Musical Instr Mfg Co Ltd | Automatic accompaniment device of electronic musical instrument |
JP2002032077A (en) * | 2000-07-18 | 2002-01-31 | Yamaha Corp | Device and method for correcting chord progression, computer-readable recording medium with recorded program applied to the same device, method and device for automatic music composition, and computer-readable recording medium applied to the same device |
JP2003255949A (en) * | 2002-03-06 | 2003-09-10 | Yamaha Corp | Automatic pitch correcting device and automatic composition apparatus |
JP2006106313A (en) * | 2004-10-05 | 2006-04-20 | Casio Comput Co Ltd | Chord discrimination device and chord discrimination processing program |
-
2016
- 2016-11-21 JP JP2016226109A patent/JP6555231B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0854881A (en) * | 1994-08-12 | 1996-02-27 | Kawai Musical Instr Mfg Co Ltd | Automatic accompaniment device of electronic musical instrument |
JP2002032077A (en) * | 2000-07-18 | 2002-01-31 | Yamaha Corp | Device and method for correcting chord progression, computer-readable recording medium with recorded program applied to the same device, method and device for automatic music composition, and computer-readable recording medium applied to the same device |
JP2003255949A (en) * | 2002-03-06 | 2003-09-10 | Yamaha Corp | Automatic pitch correcting device and automatic composition apparatus |
JP2006106313A (en) * | 2004-10-05 | 2006-04-20 | Casio Comput Co Ltd | Chord discrimination device and chord discrimination processing program |
Also Published As
Publication number | Publication date |
---|---|
JP6555231B2 (en) | 2019-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3309687B2 (en) | Electronic musical instrument | |
JP3557917B2 (en) | Automatic composer and storage medium | |
US8314320B2 (en) | Automatic accompanying apparatus and computer readable storing medium | |
US8324493B2 (en) | Electronic musical instrument and recording medium | |
JP5472261B2 (en) | Automatic adjustment determination apparatus, automatic adjustment determination method and program thereof | |
US6294720B1 (en) | Apparatus and method for creating melody and rhythm by extracting characteristic features from given motif | |
JP5293710B2 (en) | Key judgment device and key judgment program | |
JP2008527463A (en) | Complete orchestration system | |
JP6047867B2 (en) | Automatic code correction device, automatic code correction method and program thereof | |
KR102560394B1 (en) | Chord generation system based on music score chord ai discrimination algorithm | |
JP6555231B2 (en) | Automatic code correction device, automatic code correction method and program thereof | |
US9384716B2 (en) | Automatic key adjusting apparatus and method, and a recording medium | |
JP2615880B2 (en) | Chord detector | |
JP3656597B2 (en) | Electronic musical instruments | |
JP3719157B2 (en) | Music data expression device, music data expression method, and music data expression program | |
JP2718073B2 (en) | Automatic accompaniment device | |
JP2580950B2 (en) | Automatic scale generator | |
JP4186797B2 (en) | Computer program for bass tone string generation and bass tone string generator | |
JP3978277B2 (en) | Automatic accompaniment device | |
JP4025440B2 (en) | Electronic keyboard instrument | |
JP3775039B2 (en) | Melody generator and recording medium | |
JPH04319999A (en) | Sound generation instruction device for electronic musical instrument | |
JP2626587B2 (en) | Automatic performance device | |
JP3731532B2 (en) | Electronic musical instruments | |
JP3879759B2 (en) | Electronic musical instruments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161208 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181212 |
|
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: 20190611 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190624 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6555231 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |