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 PDF

Info

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
Application number
JP2016226109A
Other languages
Japanese (ja)
Other versions
JP6555231B2 (en
Inventor
広子 奥田
Hiroko Okuda
広子 奥田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2016226109A priority Critical patent/JP6555231B2/en
Publication of JP2017037348A publication Critical patent/JP2017037348A/en
Application granted granted Critical
Publication of JP6555231B2 publication Critical patent/JP6555231B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an automatic code correction apparatus which performs coding to an input melody in real time, then corrects a code in non-real time, and thereby can increase accuracy in coding.SOLUTION: An automatic code correction apparatus 10 comprises a keyboard 11 for playing a melody of a piece of music. A CPU 21 performs coding to the melody in real time on the basis of a history of pitch of the played melody and, after finishing playing the melody, corrects a code in non-real time, where the code is coded in real time.SELECTED DRAWING: Figure 2

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 Patent Document 1, musical note data of music is stored for each of a plurality of sections, and when the chord name of the second section of the note data is given, the key data and the musical note data corresponding to the second section An apparatus for determining a new chord name by referring to the note data of the first section and the chord name previously given to the second section has been proposed.

このようにコードを決定するための要素のひとつとして、楽曲を構成する音符が用いられているが、これら音符それぞれが均等にコード決定に反映されるものではない。例えば音符がいずれの拍に含まれるかによってその重みが異なり、また、その拍内における時間的な位置によっても重みが異なる。したがって、その重みを反映させて、コード名を決定するのが望ましい。また、単一の音符のみを参照するのではなく、複数の音符の遷移に応じてコード名を決定するのが、より望ましい。   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, Patent Document 2 proposes an automatic accompaniment apparatus that can appropriately determine a chord name in real time based on the weights of notes constituting the music and the transitions thereof.

特許第3099436号公報Japanese Patent No. 3099436 特開2011−158855号公報JP 2011-158855 A

しかしながら、リアルタイムでコード付けを行うと、経験則から作成されたデータベースを利用しながらある程度決め付けることになり、単純な曲では精度よくリアルタイムコード付けできても、装飾音や借用和音が使われる場合には、リアルタイムコード付けの精度が劣る場合があった。   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は、本実施の形態にかかる自動コード修正装置の外観を示す図である。FIG. 1 is a diagram showing an external appearance of an automatic code correction apparatus according to this embodiment. 図2は、本発明の実施の形態にかかる自動コード修正装置の構成を示すブロックダイヤグラムである。FIG. 2 is a block diagram showing the configuration of the automatic code correction apparatus according to the embodiment of the present invention. 図3は、本実施の形態にかかる自動コード修正装置において実行されるメインフローの例を示すフローチャートである。FIG. 3 is a flowchart showing an example of a main flow executed in the automatic code correction apparatus according to this embodiment. 図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。FIG. 4 is a flowchart showing in more detail an example of keyboard processing according to the present embodiment. 図5は、本実施の形態にかかるコード名判定処理の例を示すフローチャートである。FIG. 5 is a flowchart illustrating an example of the code name determination process according to the present embodiment. 図6は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。FIG. 6 is a flowchart illustrating an example of the first-beat / third-beat correspondence determination processing according to the present embodiment. 図7は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。FIG. 7 is a flowchart showing an example of the first beat / third beat corresponding note determination process according to the present embodiment. 図8は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。FIG. 8 is a flowchart showing an example of the first-beat / third-beat-corresponding note determination processing according to the present embodiment. 図9は、本実施の形態にかかる1拍目・3拍目対応ノート決定処理の例を示すフローチャートである。FIG. 9 is a flowchart showing an example of the first-beat / third-beat correspondence note determination processing according to the present embodiment. 図10は、本実施の形態にかかる第1のドミナントモーション判定処理の例を示すフローチャートである。FIG. 10 is a flowchart showing an example of the first dominant motion determination process according to the present embodiment. 図11は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。FIG. 11 is a flowchart showing an example of the second beat corresponding note determination process according to the present embodiment. 図12は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。FIG. 12 is a flowchart showing an example of the second beat-corresponding note determination process according to the present embodiment. 図13は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。FIG. 13 is a flowchart showing an example of the second beat corresponding note determination process according to the present embodiment. 図14は、本実施の形態にかかる2拍目対応ノート決定処理の例を示すフローチャートである。FIG. 14 is a flowchart showing an example of the second beat corresponding note determination process according to the present embodiment. 図15は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。FIG. 15 is a flowchart showing an example of the fourth beat corresponding note determination process according to the present embodiment. 図16は、本実施の形態にかかる4拍目対応ノート決定処理の例を示すフローチャートである。FIG. 16 is a flowchart showing an example of the fourth beat corresponding note determination process according to the present embodiment. 図17は、本実施の形態にかかる第2のドミナントモーション判定処理の例を示すフローチャートである。FIG. 17 is a flowchart illustrating an example of the second dominant motion determination process according to the present embodiment. 図18は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。FIG. 18 is a flowchart illustrating an example of the code determination process according to the present embodiment. 図19は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。FIG. 19 is a flowchart illustrating an example of code determination processing according to the present embodiment. 図20は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。FIG. 20 is a flowchart illustrating an example of code determination processing according to the present embodiment. 図21は、本実施の形態にかかるコード決定処理の例を示すフローチャートである。FIG. 21 is a flowchart illustrating an example of code determination processing according to the present embodiment. 図22は、本実施の形態にかかるメロディシーケンステーブルの例を示す図である。FIG. 22 is a diagram showing an example of a melody sequence table according to the present embodiment. 図23は、本実施の形態にかかる第1のコードテーブルの例を示す図である。FIG. 23 is a diagram illustrating an example of a first code table according to the present embodiment. 図24は、本実施の形態にかかる第2のコードテーブルの例を示す図である。FIG. 24 is a diagram illustrating an example of a second code table according to the present embodiment. 図25は、本実施の形態にかかるメロディ機能テーブルの一例の部分を示す図である。FIG. 25 is a diagram showing an example of a melody function table according to the present embodiment. 図26は、本実施の形態にかかる無判定コードテーブルの一例の部分を示す図である。FIG. 26 is a diagram showing an example of a non-determination code table according to the present embodiment. 図27は、本実施の形態にかかるノンリアルタイムコード修正処理の例を示すフローチャートである。FIG. 27 is a flowchart showing an example of non-real time code correction processing according to the present embodiment. 図28は、本実施の形態にかかるキー判定検証処理の例を示すフローチャートである。FIG. 28 is a flowchart illustrating an example of key determination verification processing according to the present embodiment. 図29は、本実施の形態にかかるキー判定検証処理の例を示すフローチャートである。FIG. 29 is a flowchart illustrating an example of key determination verification processing according to the present embodiment. 図30は、本実施の形態にかかるコード構成音検証処理の例を示すフローチャートである。FIG. 30 is a flowchart showing an example of the chord composition sound verification process according to the present embodiment. 図31は、本実施の形態にかかるフレーズ区切り検証処理の例を示すフローチャートである。FIG. 31 is a flowchart showing an example of phrase break verification processing according to the present embodiment. 図32は、本実施の形態にかかるフレーズ区切り検証処理の例を示すフローチャートである。FIG. 32 is a flowchart showing an example of phrase break verification processing according to the present embodiment. 図33は、本実施の形態にかかるフレーズ区切り検証処理の例を示すフローチャートである。FIG. 33 is a flowchart illustrating an example of phrase break verification processing according to the present embodiment. 図34は、本実施の形態にかかるフレーズ区切り検証処理の例を示すフローチャートである。FIG. 34 is a flowchart showing an example of phrase break verification processing according to the present embodiment. 図35は、本実施の形態にかかるコード付け修正処理の例を示すフローチャートである。FIG. 35 is a flowchart illustrating an example of the coding correction process according to the present embodiment. 図36は、本実施の形態にかかるコード付け修正処理の例を示すフローチャートである。FIG. 36 is a flowchart illustrating an example of the coding correction process according to the present embodiment. 図37は、本実施の形態にかかるメロディとコードスケールの比較処理の例を示すフローチャートである。FIG. 37 is a flowchart showing an example of comparison processing between a melody and a chord scale according to the present embodiment. 図38は、本実施の形態にかかるユーザーによる修正処理の例を示すフローチャートである。FIG. 38 is a flowchart showing an example of correction processing by the user according to the present embodiment. 図39は、本実施の形態にかかる最終メロディ音によるキー確定テーブルの例を示す図である。FIG. 39 is a diagram showing an example of a key confirmation table based on the final melody sound according to the present embodiment. 図40は、本実施の形態にかかるカデンツ判定テーブルの例を示す図である。FIG. 40 is a diagram illustrating an example of a cadence determination table according to the present embodiment. 図41は、本実施の形態にかかる関係調借用判定テーブルの例を示す図である。FIG. 41 is a diagram illustrating an example of a relational arbitration determination table according to the present embodiment. 図42は、本実施の形態にかかる装飾音データベースの一例の部分を示す図である。FIG. 42 is a diagram showing an example of a decorative sound database according to the present embodiment. 図43は、本実施の形態にかかるコードスケールテーブルの一例の部分を示す図である。FIG. 43 is a diagram illustrating an example of a code scale table according to the present embodiment. 図44は、本実施の形態にかかるコード優先データベースの一例の部分を示す図である。FIG. 44 is a diagram showing an example of a code priority database according to the present embodiment. 図45は、本実施の形態にかかる自動伴奏処理の例を示すフローチャートである。FIG. 45 is a flowchart showing an example of automatic accompaniment processing according to the present embodiment. 図46は、楽譜の一例を示す図である。FIG. 46 shows an example of a score.

以下、添付図面を参照して、本発明の実施の形態について説明する。図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 musical instrument 10 according to the present embodiment has a keyboard 11. Also, on the upper part of the keyboard 11, there are switches (see reference numerals 12 and 13) for specifying a timbre, starting and ending automatic accompaniment, specifying a rhythm pattern, etc., and non-real time after the real time coding is finished. A non-real-time coding correction switch 14 for starting chord correction at, and a display unit 15 for displaying various information relating to the music to be played, for example, tone color, rhythm pattern, chord name, and the like. The electronic musical instrument 10 according to the present embodiment has, for example, 61 keys (C2 to C7). In addition, the electronic musical instrument 10 can perform under one of two performance modes: an automatic accompaniment mode for turning on automatic accompaniment and a normal mode for turning off automatic accompaniment.

図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 code correction device 10 according to the present embodiment includes a CPU 21, a ROM 22, a RAM 23, a sound system 24, a switch group 25, a keyboard 11, and a display unit 15.

CPU21は、電子楽器10全体の制御、鍵盤11の鍵の押鍵やスイッチ群25を構成するスイッチ(たとえば、図1の符号12、13、14参照)の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターン及びコード名にしたがった自動伴奏の演奏など、種々の処理を実行する。   The CPU 21 controls the entire electronic musical instrument 10, detects keys pressed on the keyboard 11, detects operations of switches constituting the switch group 25 (for example, reference numerals 12, 13 and 14 in FIG. 1), and operates keys and switches. Accordingly, various processes such as control of the sound system 24, determination of the chord name according to the pitch of the depressed key, automatic accompaniment according to the automatic accompaniment pattern and chord name, and the like are executed.

ROM22は、CPU21に実行させる種々の処理、たとえば、スイッチの操作、鍵盤の何れかの鍵の押鍵、押鍵に応じた楽音の発音、押鍵された楽音の音高にしたがったコード名の決定、自動伴奏パターン及びコード名にしたがった自動伴奏の演奏などのプログラムを記憶する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、及び、種々の自動伴奏パターンを示すデータ(自動伴奏データ)を格納した自動伴奏パターンエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生じたデータを記憶する。なお、本実施の形態において、自動伴奏パターンは、メロディ音及びオブリガート音を含むメロディ自動伴奏パターン、コード名ごとの構成音を含むコード自動伴奏パターン、並びに、ドラム音を含むリズムパターンを有する。たとえば、メロディ自動伴奏パターンのデータのレコードは、楽音の音色、音高、発音タイミング(発音時刻)、音長などを含む。コード自動伴奏パターンのデータのレコードは、上記情報に加えて、コード構成音を示すデータを含む。また、リズムパターンのデータは、楽音の音色、発音タイミングを含む。   The ROM 22 performs various processes to be executed by the CPU 21, such as switch operation, key depression of any key on the keyboard, tone generation according to the key depression, and chord names according to the pitch of the depressed musical tone. Programs such as determination, automatic accompaniment pattern and automatic accompaniment performance according to chord names are stored. The ROM 22 stores a waveform data area for storing waveform data for generating musical sounds such as piano, guitar, bass drum, snare drum, and cymbal, and data (automatic accompaniment data) indicating various automatic accompaniment patterns. Automatic accompaniment pattern area. The RAM 23 stores a program read from the ROM 22 and data generated in the course of processing. In the present embodiment, the automatic accompaniment pattern includes a melody automatic accompaniment pattern including a melody sound and obligato sound, a chord automatic accompaniment pattern including a constituent sound for each chord name, and a rhythm pattern including a drum sound. For example, the data record of the melody automatic accompaniment pattern includes the tone color, pitch, tone generation timing (pronunciation time), tone length, and the like of the musical tone. The record of the chord automatic accompaniment pattern data includes data indicating chord constituent sounds in addition to the above information. The rhythm pattern data includes the tone color of the musical tone and the sounding timing.

サウンドシステム24は、音源部26、オーディオ回路27及びスピーカ28を有する。音源部26は、たとえば、押鍵された鍵についての情報或いは自動伴奏パターンについての情報をCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。   The sound system 24 includes a sound source unit 26, an audio circuit 27, and a speaker 28. For example, when the sound source unit 26 receives information about the depressed key or information about the automatic accompaniment pattern from the CPU 21, the sound source unit 26 reads predetermined waveform data from the waveform data area of the ROM 22, and generates musical tone data of a predetermined pitch. Generate and output. The sound source unit 26 can also output waveform data, particularly waveform data of percussion instrument sounds such as a snare drum, bass drum, and cymbal, as musical sound data. The audio circuit 27 D / A converts and amplifies the musical sound data. Thereby, an acoustic signal is output from the speaker 28.

本実施の形態にかかる電子楽器10は、通常モードの下においては、鍵盤11の鍵の押鍵に基づいて楽音を発生する。その一方、電子楽器10は、自動伴奏スイッチ(図示せず)が操作されることにより、自動伴奏モードとなる。自動伴奏モードの下では、鍵の押鍵により、その鍵の音高の楽音が発生する。また、押鍵された鍵の音高に基づいてコード名が決定され、そのコード名のコード構成音を含む自動伴奏パターンにしたがった楽音が発生する。なお、自動伴奏パターンは、ピアノやギターなど音高の変化を伴うメロディ自動伴奏パターン、コード自動伴奏パターンと、バスドラム、スネアドラム、シンバルなど音高の変化を伴わないリズムパターンとを含む。以下、電子楽器10が、自動伴奏モードの下で動作する場合について説明する。   The electronic musical instrument 10 according to the present embodiment generates a musical tone based on the key depression of the keyboard 11 under the normal mode. On the other hand, the electronic musical instrument 10 enters an automatic accompaniment mode when an automatic accompaniment switch (not shown) is operated. Under the automatic accompaniment mode, a musical tone having the pitch of the key is generated by pressing the key. Further, a chord name is determined based on the pitch of the depressed key, and a musical tone is generated according to an automatic accompaniment pattern including chord constituent sounds of the chord name. The automatic accompaniment pattern includes an automatic melody accompaniment pattern that accompanies a change in pitch, such as piano and guitar, an automatic chord accompaniment pattern, and a rhythm pattern that does not accompany changes in pitch, such as a bass drum, snare drum, and cymbal. Hereinafter, the case where the electronic musical instrument 10 operates in the automatic accompaniment mode will be described.

以下、本実施の形態にかかる電子楽器10において実行される処理についてより詳細に説明する。図3は、本実施の形態にかかる自動コード修正装置において実行されるメインフローの例を示すフローチャートである。なお、図示しないが、メインフローの実行中に、所定の時間間隔で、割込カウンタのカウンタ値をインクリメントするタイマインクリメント処理も実行される。   Hereinafter, the process executed in the electronic musical instrument 10 according to the present embodiment will be described in more detail. FIG. 3 is a flowchart showing an example of a main flow executed in the automatic code correction apparatus according to this embodiment. Although not shown, timer increment processing for incrementing the counter value of the interrupt counter is also executed at predetermined time intervals during execution of the main flow.

図3に示すように、電子楽器10のCPU21は、電源が投入されると、RAM23中のデータや、表示部15の画像のクリアを含むイニシャル処理(初期化処理)を実行する(ステップS1)。イニシャル処理(ステップS1)が終了すると、CPU21は、スイッチ群25を構成するスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行する(ステップS2)。   As shown in FIG. 3, when the power is turned on, the CPU 21 of the electronic musical instrument 10 executes initial processing (initialization processing) including clearing of the data in the RAM 23 and the image on the display unit 15 (step S1). . When the initial process (step S1) ends, the CPU 21 detects each operation of the switches constituting the switch group 25, and executes a switch process that executes a process according to the detected operation (step S2).

たとえば、スイッチ処理(ステップ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 CPU 21 switches the performance mode to the automatic accompaniment mode. Data indicating the performance mode is specified in a predetermined area of the RAM 23. Similarly, data indicating the type of timbre and automatic accompaniment pattern is also stored in a predetermined area of the RAM 23.

次いで、CPU21は、鍵盤処理を実行する(ステップS3)。図4は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。鍵盤処理において、CPU21は、鍵盤11の鍵を走査する。鍵の走査結果であるイベント(鍵オン或いはオフ)は、そのイベントが生じた時刻の情報とともに、RAM23に一時的に記憶される。CPU21は、RAM23に記憶された鍵の走査結果を参照して(ステップS11)、ある鍵についてイベントが発生しているか否かを判断する(ステップS12)。ステップS12でYesと判断された場合には、CPU11は、その発生したイベントが鍵オンであるか否かを判断する(ステップS13)。   Next, the CPU 21 executes keyboard processing (step S3). FIG. 4 is a flowchart showing in more detail an example of keyboard processing according to the present embodiment. In the keyboard process, the CPU 21 scans the keys on the keyboard 11. An event (key on or off), which is a key scanning result, is temporarily stored in the RAM 23 together with information on the time at which the event occurred. The CPU 21 refers to the key scanning result stored in the RAM 23 (step S11), and determines whether or not an event has occurred for a certain key (step S12). When it is determined Yes in step S12, the CPU 11 determines whether or not the generated event is key-on (step S13).

ステップS13でYesと判断された場合には、CPU21は、当該鍵オンがあった鍵について発音処理を実行する(ステップS14)。発音処理においては、CPU21は、RAM23に記憶されていたメロディ鍵用の音色データ、及び、鍵の音高を示すデータを読み出してRAM23に一時的に記憶する。後述する音源発音処理(図3のステップS6)において、音色や音高を示すデータは音源部26に与えられる。音源部26は、音色及び音高を示すデータにしたがって、ROM22の波形データを読み出して、所定の音高の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。   If it is determined Yes in step S13, the CPU 21 executes a sound generation process for the key that has been turned on (step S14). In the sound generation process, the CPU 21 reads out the tone color data for the melody key and the data indicating the pitch of the key stored in the RAM 23 and temporarily stores them in the RAM 23. In a sound source sound generation process (step S6 in FIG. 3), which will be described later, data indicating the timbre and pitch are given to the sound source unit 26. The sound source unit 26 reads the waveform data in the ROM 22 according to the data indicating the timbre and pitch, and generates musical tone data of a predetermined pitch. Thereby, a predetermined musical sound is generated from the speaker 28.

その後、CPU21は、鍵オンがあった鍵についての音高情報(たとえば鍵番号)及び押鍵タイミング(たとえば押鍵時刻)をRAM23に格納する(ステップS15)。押鍵タイミングは、割り込みカウンタのカウンタ値に基づいて算出することができる。   Thereafter, the CPU 21 stores pitch information (for example, key number) and key pressing timing (for example, key pressing time) for the key that has been turned on in the RAM 23 (step S15). The key pressing timing can be calculated based on the counter value of the interrupt counter.

ステップ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 CPU 21 executes a mute process for the key that has been turned off (step S16). In the silencing process, the CPU 21 generates data indicating the pitch of the musical sound to be muted from the generated event, and temporarily stores it in the RAM 23. Also in this case, in the sound source sound generation process (step S6) described later, data indicating the pitch of the musical sound to be muted is given to the sound source unit 26. The sound source unit 26 mutes a predetermined musical sound based on the given data. Thereafter, the CPU 21 stores the time (key pressing time) during which the key has been turned off in the RAM 23 (step S17).

CPU21は、全ての鍵イベントについて処理が終了したかを判断する(ステップS18)。ステップS18でNoと判断された場合には、ステップS12に戻る。   The CPU 21 determines whether the processing has been completed for all key events (step S18). If it is determined No in step S18, the process returns to step S12.

鍵盤処理(図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 CPU 21 executes a code determination process (step S4). FIG. 5 is a flowchart illustrating an example of the code determination process according to the present embodiment. In the present embodiment, generally, a melody sound that is currently sounded is a current melody sound (Current Melody) CM, and a melody sound that is sounded immediately before that is a preceding melody sound (Previous Melody). ) PM, the chord name that was played immediately before the current chord name (Previous Chord name) PreCH is newly pronounced based on the current melody tone CM, preceding melody tone PM, and preceding chord name PreCH The current code name (Current Chord name) CurCH is determined. In the present embodiment, the tonality of the music is expressed in C major (CMaj) or A minor (Amin), the chord name is expressed in degrees with respect to the main sound, such as IMaj, IIm, and the data is stored in the RAM 23 or the like. doing. In the case of another tonality, it is possible to obtain a chord name accompanied by the root sound based on the pitch difference between the root sound of the tonality and the sound of “C” (or “A”). .
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 RAM 23.

ただし、押鍵が何拍目に行なわれたかなど、押鍵された時間的な位置や、押鍵が拍の頭であるか否か、或いは、複数の押鍵による音型(持続、順次進行、跳躍など)に基づいて、上記現在メロディ音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 CPU 21 specifies beat information and key press information (key-on time and time until key-off) to which the current time belongs, specifies the key pressed in the current beat, and sets the current time The information on the key that was pressed in the previous section (previous beat section) of the beat to which the key belongs is acquired (step S21). In step S21, the information on the key pressed at the current beat becomes the initial value of the current melody sound CM, and the information on the key pressed at the head of the previous beat section becomes the initial value of the preceding melody sound PM.

次いで、CPU21は、拍の情報及び押鍵情報に基づいて、現在時刻が属する拍の先頭に押鍵中の鍵が存在しているかを判断する(ステップS22)。ステップS23でNoと判断された場合には、コード名判定処理が終了する。ステップS22でYesと判断された場合には、CPU21は、現在コード名CurCHを、先行コード名PreCHにコピーする(ステップS23)。   Next, the CPU 21 determines whether there is a key being pressed at the head of the beat to which the current time belongs based on the beat information and the key press information (step S22). If it is determined No in step S23, the code name determination process ends. If it is determined Yes in step S22, the CPU 21 copies the current code name CurCH to the preceding code name PreCH (step S23).

CPU21は、後述するコードテーブルを指定するテーブル指定情報を、第2のコードテーブルを指定する情報に設定する(ステップS24)。コードテーブルには、主として押鍵が1拍目であるときに用いる第1のコードテーブルと、それ以外のときに用いる第2のコードテーブルが含まれ、それぞれROM22に格納されている。テーブル指定情報は、第1のコードテーブル或いは第2のコードテーブルの何れを用いるかを示す情報であり、RAM23に格納される。   The CPU 21 sets table designation information for designating a code table, which will be described later, to information for designating the second code table (step S24). The code table mainly includes a first code table used when the key is pressed at the first beat and a second code table used at other times, and each is stored in the ROM 22. The table designation information is information indicating which of the first code table or the second code table is used, and is stored in the RAM 23.

次いで、押鍵された鍵の時間的位置、つまり、鍵が何拍目に押鍵されたかを判断する(ステップ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 CPU 21 executes the first beat / third beat corresponding note determination process. (Step S27). If the pressed key is the second beat (Yes in step S28), the second beat corresponding note determination process is executed (step S29). If NO is determined in step S508, that is, if the depressed key is the fourth beat, the fourth beat corresponding note determination process is executed (step S30).

本実施の形態においては、楽曲は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 CPU 21 changes the table designation information to information indicating the first table (step S42). Next, the CPU 12 executes a first dominant motion determination process (step S43).

ドミナントモーション判定処理は、メロディの流れからドミナントモーション(つまり、属和音(ドミナント)から主和音(トニック)への進行)を抽出するものである。本実施の形態においては、処理においてコード名を考慮した第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 CPU 21 determines whether the preceding code name PreCH stored in the RAM 23 corresponds to one of the major dominant codes (step S81). Here, in the first dominant motion determination process according to the present embodiment, for example, the major dominant codes are “VMaj”, “V7”, and “VIIm7 (−5)”. When it is determined Yes in step S81, the CPU 21 determines that (PM, CM), which is a set of values of the preceding melody sound PM and the current melody sound CM, is (F, E), (B, C), In step S82, the movement from the preceding melody sound PM to the current melody sound CM is resolved from dominant to tonic with major chord progression. It is judged whether or not it is a movement.

ステップ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 CPU 21 determines the current code name CurCH to be “IMaj” and stores the information in the RAM 23 (step S83). Thereafter, the CPU 21 stores information indicating that it is the first determination result in the dominant motion processing in the RAM 23 (step S84). If it is determined No in step S81 or No in step S82, the CPU 21 determines whether the preceding code name PreCH corresponds to any of the minor dominant codes (step S85). In this embodiment, for example, the minor dominant codes are “IIIMaj” and “III7”.

ステップ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 CPU 21 determines whether (PM, CM) is any one of (G #, A), (B, A), and (D, C) ( Step S86). In step S86, it is determined whether or not the movement from the preceding melody sound PM to the current melody sound CM is a movement when resolving from dominant to tonic by progression of minor chords. When it is determined Yes in step S86, the CPU 21 determines the current code name CurCH to “VImin” and stores the information in the RAM 23 (step S87). Thereafter, the process proceeds to step S84.

ステップ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 CPU 21 stores information indicating that the result of the second determination in the dominant motion process is in the RAM 23 (step S85). S88).

ステップ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 CPU 21 determines whether or not the result of the first dominant motion determination process is the second process result (step S44). If it is determined No in step S44, that is, if the result of the first dominant motion determination process is the first process result, the preceding melody sound PM and the current melody sound CM are changed from the initial values. Without being stored in the RAM 23, the process is terminated (step S45). When it is determined Yes in step S44, the CPU 21 refers to the key pressing information stored in the RAM 23 and determines whether there is a key pressing immediately before the beat corresponding to the current time (step S46).

ステップS44でYesと判断された場合には、CPU21は、RAM23の押鍵情報を参照して、直前拍先頭以降にも押鍵があったかを判断する(ステップS47)。ステップS47でNoと判断されたことは、直前拍及び今回の拍でそれぞれ4分音符が押鍵されたことを意味する。この場合の処理については後述する。ステップS47でYesと判断された場合には、CPU21は、RAM23に格納された押鍵情報中、直前拍先頭以降に押鍵された鍵の発音時間を参照して、現在まで発音中であるかを判断する(ステップS49)。ステップS49では、拍頭の押鍵ではなくても、それが直前拍先頭以降に押鍵されかつ維持されているものであれば、シンコペーションに該当するため、シンコペーションに該当する押鍵があったかを判断している。   When it is determined Yes in step S44, the CPU 21 refers to the key pressing information in the RAM 23 and determines whether there is a key pressing after the head of the immediately preceding beat (step S47). If it is determined No in step S47, it means that a quarter note has been pressed on the previous beat and the current beat. Processing in this case will be described later. If it is determined Yes in step S47, the CPU 21 refers to the sound generation time of the key pressed after the head of the previous beat in the key press information stored in the RAM 23, and has it been sounded so far? Is determined (step S49). In step S49, even if the key is not depressed at the beginning of the beat, if it is depressed and maintained after the beginning of the previous beat, it corresponds to the syncopation, so it is determined whether there is a pressed key corresponding to the syncopation. doing.

ステップ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 RAM 23. Since the key depression corresponding to the syncopation has the same weight as the key depression at the beginning of the beat, it is handled in the same manner as the beginning of the beat.

次に、図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 CPU 21 determines whether or not the key depression at the beginning of the current beat corresponds to the music start sound (step S51). Step S51 can be realized by the CPU 21 referring to the key pressing information stored in the AM 23 to determine whether it is the first key pressing information. If it is determined Yes in step S51, the current melody sound CM is given as the preceding melody sound PM. Further, although the current melody sound CM is not changed from the initial value, the CPU 21 changes the table designation information to information for designating the second code table (step S52).

ステップ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 CPU 21 maintains the current melody sound CM as the initial value, while giving the current melody sound CM as the preceding melody sound PM and stores the information in the RAM 23 ( Step S54). When it is determined Yes in step S53, there is no new key pressing for two bars or more. In this case, since the meaning of the melody sequence becomes faint, the initial value of the preceding melody sound PM that is pressed two or more bars before is ignored. When it is determined No in step S53, the CPU 21 maintains the initial melody sound PM and the current melody sound CM as initial values (step S55).

次に、図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 CPU 21 determines whether the current melody function (CurrentMelodyFunction: CMF) is a non-harmonic sound (OtherTone: OT) (step S61). Here, the current melody function CMF indicates the function of the current melody sound CM for the preceding chord name PreCH. In the present embodiment, the CMF indicates that the current melody tone CM is a tone of chord tone (ChordTone: CT) indicating that it is a chord tone of the preceding chord name PreCH, and a tone of the current scale (tonality). A scale note (ScaleNote: CN) to be shown, or an other tone (Other Tone) to show another sound (non-harmonic sound).

より具体的には、コード名と音名との間を関連付けたメロディ機能テーブルを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 ROM 22, and the CPU 21 refers to the values associated with the set of the current melody tone CM and the preceding chord name PreCH. Currently judging the melody function. FIG. 25 is a diagram showing an example of a melody function table according to the present embodiment. As shown in FIG. 25, in the melody function table 2500, a predetermined value can be acquired corresponding to a set of values including the current melody sound CM and the preceding chord name PreCH. 25, in the melody function table 2500, CT indicates a chord tone (for example, reference numerals 2501 to 2503), and SN indicates a scale note (for example, reference numerals 2511 to 2513). In FIG. 25, a column in which nothing is written in the melody function table 2500 (for example, see reference numerals 2521 and 2522) indicates an other tone.

ステップ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 CPU 21 maintains the preceding melody sound PM and the current melody sound CM as initial values (step S62). On the other hand, when it is determined No in step S61, the CPU 21 determines whether or not the current melody function CMF is the scale note SN (step S63). When it is determined Yes in step S63, the CPU 21 determines whether the difference between the preceding melody sound PM and the current melody sound CM is within two semitones (step S64). In step S64, it is determined whether the progress is so-called sequential. If it is determined Yes in step S64, or if it is determined No in step S63, the first dominant motion process is executed (step S65).

次いで、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 CPU 21 determines whether or not it is the second determination result in the first dominant motion determination process (step S65) (step S66). When it is determined No in step S66, that is, when the result is the first determination result, the CPU 21 maintains the initial melody sound PM and the current melody sound CM as initial values (step S62). When it is determined Yes in step S66, the CPU 21 determines whether or not the current key press, that is, the key press to be processed is the first beat (step S63). When it is determined Yes in step S63, the CPU 21 maintains the preceding melody sound PM and the current melody sound CM as initial values (step S68).

その一方、ステップ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 CPU 21 uses the initial preceding melody sound PM as the preceding melody sound PM. Further, the pitch PPM that was previously pressed is given (step S69). Note that the initial value of the current melody sound CM is maintained. This is because it is highly possible that the musical sound that sequentially progresses at the third beat is a decorative sound, and it is appropriate that the original musical sound that dominates the melody line is the musical sound one beat before that. Because it is considered.

次に、ステップ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 CPU 21 specifies the key pressing sound after the beginning of the previous beat (step S71), and determines whether the pitch of the specified key pressing sound is the same as the initial CM. (Step S72). If it is determined Yes in step S72, the CPU 21 maintains the current melody sound CM in the initial state, while giving the value of the current melody sound CM as the preceding melody sound PM (step S73). For example, consider a case where the melody progresses in the order of “D” and “C” in the eighth note in the immediately preceding beat, and the key depression at the current beat is “C”. In this case, the first “D” sound of the immediately preceding beat is considered to be a decoration sound, and the sequence “C” to “C” is appropriate instead of the sequence “D” to “C”. thinking. For this reason, the preceding melody sound is made the same as the current melody sound, and the same sound is continuous.

ステップ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 CPU 21 determines whether or not all the key pressing sounds after the specified beat are equal to the preceding melody sound PM (step S74). If it is determined Yes in step S74, the process proceeds to step S63. For example, it is considered that four key presses of “D”, “C”, “C”, and “C” were made with a sixteenth note in the last beat. In this case, since “D” may be a decorative sound just because it is the beginning of a beat, “D”, which is the key to press the beginning of the beat, should not be the leading melody sound PM. There may be no. Therefore, the processing after step S63 is executed.

その一方、ステップS74でNoと判断された場合には、CPU21は、先行メロディ音PM及び現在メロディ音CMを、初期値のまま維持する(ステップS75)。   On the other hand, when it is determined No in step S74, the CPU 21 maintains the initial melody sound PM and the current melody sound CM as initial values (step S75).

次に、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 CPU 21 determines whether there is no key depression at the first beat (step S91). If it is determined Yes in step S91, that is, if there is no key depression, the CPU 21 changes the table designation information to information for designating the first code table (step S91). For example, when the sound of the previous measure is extended in the middle of a song, the first beat is rest and the next phrase starts from the second beat, in this embodiment, the key is depressed at the second beat. Considering that the sound has the same weight as the first beat, the first chord table that is the chord table for the first beat is used.

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 CPU 21 determines whether or not the current melody function CMF is a non-harmonic sound OT (step S111). Step S112 that proceeds to the case of Yes in step S111 and step S111 is the same as steps S61 and 62 in FIG.

ステップS111でNoと判断された場合には、CPU21は、先行コード名PreCHが無判定コード以外のコードであるかを判断する(ステップS113)。図21(特にステップS205)において説明するように、無判定コードについては、先の処理で転調フラグが「1」以上の値となっている。そこで、ステップS113では、RAM23に格納された転調フラグが「1」以上であるかを判断すれば良い。   When it is determined No in step S111, the CPU 21 determines whether the preceding code name PreCH is a code other than the non-determined code (step S113). As described in FIG. 21 (particularly step S205), for the non-determined code, the modulation flag has a value of “1” or more in the previous process. Therefore, in step S113, it may be determined whether the modulation flag stored in the RAM 23 is “1” or more.

ステップ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 CPU 21 gives the current melody sound CM as the preceding melody tone PM (step S114). On the other hand, if it is determined Yes in step S113, that is, if the preceding chord name PreCH is other than a non-determined code, it is determined whether the current melody function CMF is the scale note SN (step S115). If it is determined Yes in step S63, the CPU 21 determines whether the difference between the preceding melody sound PM and the current melody sound CM is within two semitones (step S116). Steps S115 and S116 are the same as steps S63 and 64 in FIG. When it is determined No in step S115 or when it is determined Yes in step S116, the CPU 21 gives the preceding code name PreCH as the current code name CurCH (step S117).
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 CPU 21 sets the code determination flag in the RAM 23 to “1” (step S118). In this case, since the current code name CurCH is already determined in step S117, the subsequent code determination process is not required.

また、ステップ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 CPU 21 determines whether (PM, CM) is any one of (F, E), (B, C), and (D, C) (step S151). This is the same as step S82 in FIG. When it is determined No in step S151, the CPU 21 determines whether (PM, CM) is any one of (G #, A), (B, A), and (D, C) ( Step S153). This is the same as step S86 in FIG.

ステップ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 CPU 21 stores information indicating that it is the first determination result in the dominant motion processing in the RAM 23 (step S151). S152). On the other hand, when it is determined No in step S153, the CPU 21 stores information indicating that it is the first determination result in the dominant motion processing in the RAM 23 (step S154).

第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 CPU 21 gives the preceding code name PreCH as the current code name CurCH (step S149). That is, the preceding code name PreCH is held. Next, the CPU 21 sets the code determination flag in the RAM 23 to “1”. On the other hand, if Yes is determined in step S148, the process proceeds to step S142, and the preceding melody sound PM and the current melody sound CM are maintained.

ステップ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 CPU 21 determines whether or not the current code name CurCH has already been determined by the code hold, and the code determination flag is “1” (step S161). If it is determined No in step S161, that is, if the chord determination flag is “1”, the CPU 21 stores the current chord name CurCH and its sounding time in a predetermined area of the RAM 23 (step S175).

ステップ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 CPU 21 acquires the preceding melody sound PM and the current melody sound CM from the RAM 23 (step S162). The CPU 21 determines whether the preceding melody sound PM is a song start sound (step S163). In step S163, for example, it may be determined that there is no sound pressed at a time prior to the preceding melody sound PM. When it is determined No in step S163, the CPU 21 determines whether the preceding chord sound PreCH is a non-determined code (step S164).

ステップ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 CPU 21 gives the current melody sound CM as the preceding melody sound PM (step S165). This is because if it is determined Yes in step S164, it is more appropriate to start a new melody sequence because the preceding chord name PreCH is an undetermined code.

次いで、CPU21は、メロディシーケンステーブルを参照して(PM,CM)に対応する値の組を取得する(ステップS166)。図22は、本実施の形態にかかるメロディシーケンステーブルの例を示す図である。図22に示すように、メロディシーケンステーブル2200には、所定の先行メロディ音PM及び現在メロディ音CMについて値の組が格納されている。(PM,CM)に対応する値の組がメロディシーケンステーブル2200中に存在すれば、その値の組を一時的にRAM23に格納すれば良い。その一方、(PM,CM)に対応する値の組が、メロディシーケンステーブル2200中に存在しなければ、値の組が存在しないことを示す情報をRAM23に格納すれば良い。   Next, the CPU 21 refers to the melody sequence table and acquires a set of values corresponding to (PM, CM) (step S166). FIG. 22 is a diagram showing an example of a melody sequence table according to the present embodiment. As shown in FIG. 22, the melody sequence table 2200 stores a set of values for a predetermined preceding melody sound PM and a current melody sound CM. If a set of values corresponding to (PM, CM) exists in the melody sequence table 2200, the set of values may be temporarily stored in the RAM 23. On the other hand, if the value set corresponding to (PM, CM) does not exist in the melody sequence table 2200, information indicating that the value set does not exist may be stored in the RAM 23.

次に、CPU21は、現在メロディ音CMの直前に押鍵された音(CM直前音)を特定する(ステップS167)。ここにいう直前に押鍵された音は、実際に直前に押鍵された音であり、先行メロディ音PMと同一ではない場合もある。CPU21は、ステップS167で特定されたCM直前音と、現在メロディ音CMとを比較して、これらの音高差が5半音以上であるかを判断する(ステップS168)。ステップS168でYesと判断された場合には、CPU21は、現在メロディ音CMが1拍目の押鍵に関するものであるかを判断する(ステップS169)。   Next, the CPU 21 specifies the sound that was pressed immediately before the current melody sound CM (the sound immediately before the CM) (step S167). The sound pressed immediately before here is a sound actually pressed immediately before, and may not be the same as the preceding melody sound PM. The CPU 21 compares the sound immediately before the CM specified in step S167 with the current melody sound CM, and determines whether the pitch difference is 5 semitones or more (step S168). If it is determined Yes in step S168, the CPU 21 determines whether or not the current melody sound CM is related to the key depression of the first beat (step S169).

メロディシーケンスにおいては、核となるべきメロディ音が含まれ、その前後には、核となるメロディ音を装飾するメロディ音が存在する場合がる。装飾するメロディ音は、核となるメロディ音からそれほど音高差が無いのが通常である。その一方、音高差が一定範囲(たとえば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 CPU 21 determines whether the preceding code name PreCH continues for two bars or more (step S171). When it is determined Yes in step S171, the CPU 21 determines to refer to the column “jump2” as the type in the first code table, and sets a predetermined code name in the first code table. Obtain (step S172). On the other hand, when it is determined No in step S172, the CPU 21 determines to refer to the column “jump1” as the type in the first code table, and the predetermined code in the first code table. A code name is acquired (step S173).

図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 RAM 23, for example.

また、種別において「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 CPU 21 stores the code name specified from the first code table in the predetermined area of the RAM 23 as the current code name CurCH, and stores the sound generation time in the predetermined area of the RAM 23 (steps S174 and 175).

次に、ステップ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 CPU 21 determines whether or not the current melody sound CM is a chord tone (CT) of the preceding chord name PreCH (step S181). When it is determined Yes in step S181, the CPU 21 determines whether the sounding time of the preceding chord name PreCH is within 2 beats based on the sounding time of the musical tone of the preceding chord name PreCH and the current time (step S182). ). When it is determined Yes in step S182, the CPU 21 further determines whether the syncopation flag is “1” (step S183).

ステップ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 CPU 21 executes the second dominant motion process (step S185), and determines whether the transition from the preceding melody sound PM to the current melody sound CM is a dominant motion. To do. When the result of the second dominant motion process is the second determination result (Yes in step S185), the CPU 21 gives the preceding code name PreCH as the current code name CurCH (step S186). That is, the preceding code name PreCH is held.

ステップ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, CPU 21 determines that a set of values corresponding to (preceding melody sound PM, current melody sound CM) is in the melody sequence table. (Step S187). In step S166 in FIG. 18, information indicating that a value set or a value set does not exist is stored in the RAM 23, so that the determination in step S187 can be made by referring to the information.

ステップ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 CPU 21 determines to refer to the “no jump” field as the type in the first code table, and the predetermined code name in the first code table. Is acquired (step S189). On the other hand, when it is determined No in step S188, the CPU 21 determines to refer to the second code table, and acquires a predetermined code name in the second code table (step S190). ).

図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, reference numerals 2401, 2402). The code name can be determined based on (see below). For example, if the preceding code function of the preceding code name PreCH is “subdominant” and (preceding melody sound PM, current melody sound CM) = (C, G), “VMaj” is obtained from the second code table. (See reference numeral 2421).

その後、CPU21は、現在コード名CurCHとして、第1のコードテーブル或いは第2のコードテーブルから特定されたコード名をRAM23の所定の領域に格納するとともに、その発音時刻をRAM23の所定の領域に格納する(ステップS191、175)。   Thereafter, the CPU 21 stores the code name specified from the first code table or the second code table in the predetermined area of the RAM 23 as the current code name CurCH, and stores the sound generation time in the predetermined area of the RAM 23. (Steps S191 and 175).

ステップ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 CPU 21 determines whether the sounding time (key pressing time) of the current melody sound CM is longer than a quarter note, that is, whether it is sounding longer than one beat (step). S201).

ステップS201でNoと判断された場合には、CPU21は、先行コード名PreCHを変更せず、そのまま現在コードCurCHとする(ステップS207)。ステップS201でNoとなる場合は、演奏者が意図して押鍵したのではなく、ミスタッチによって誤った鍵を押鍵してしまった可能性が高い。そこで、この場合は、コード名を変更することなく、先行コード名PreCHをそのまま現在コード名CurCHとする。   When it is determined No in step S201, the CPU 21 does not change the preceding code name PreCH, and uses the current code CurCH as it is (step S207). If No in step S201, the performer did not intentionally press the key, but there is a high possibility that the wrong key was pressed due to a mistouch. Therefore, in this case, the previous code name PreCH is directly used as the current code name CurCH without changing the code name.

ステップ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 CPU 21 determines whether the sounding time (key pressing time) of the current melody sound is 3 beats or less (step S202). If it is determined Yes in step S202, it is determined whether the modulation flag is “2” or less. When it is determined Yes in step S203, the CPU 21 increments the value of the modulation flag stored in the RAM 23 (step S205). When it is determined No in step S202 or No in step S203, the CPU 21 executes a modulation process (step S204).

本実施の形態においては、基本的には、現在メロディ音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 RAM 23 as an offset. After the modulation process, it is possible to continue the process with the tone of “C” by reducing the pitch name specified by the key number actually pressed by the offset.

ステップS205の後、CPU21は、現在メロディ音CMが、先行コード名PreCHのコードトーン(CT)或いはスケールノート(SN)であるかを判断する(ステップS206)。ステップS206においては、ステップS61と同様に、CPU21は、メロディ機能テーブルを参照して、現在メロディ音CM及び先行コード名PreCHの組に対応付けられた値が、コードトーン或いはスケールノートであるかを判断すれば良い。ステップS206でYesと判断された場合には、CPU21は、コードを保持すべく現在コード名CurCHに、先行コード名PreCHを与える(ステップS207)。   After step S205, the CPU 21 determines whether the current melody sound CM is the chord tone (CT) or scale note (SN) of the preceding chord name PreCH (step S206). In step S206, as in step S61, the CPU 21 refers to the melody function table to determine whether the value associated with the set of the current melody sound CM and the preceding chord name PreCH is a chord tone or a scale note. Just judge. If it is determined Yes in step S206, the CPU 21 gives the preceding code name PreCH to the current code name CurCH to hold the code (step S207).

ステップS207でNoと判断された場合には、CPU21は、無判定コードテーブルを参照して、ディミニシュ(dim)或いはオーギュメント(aug)のコードを、現在コード名CurCHに与える(ステップS208)。図26は、本実施の形態にかかる無判定コードテーブルの一例の部分を示す図である。図26に示す無判定コードテーブル2600においては、現在メロディ音CMと先行コード名PreCHからなる値の組に対応して、所定の値が取得できるようになっている。   If it is determined No in step S207, the CPU 21 refers to the non-determined code table and gives the code of the diminished (dim) or the augment (aug) to the current code name CurCH (step S208). FIG. 26 is a diagram showing an example of a non-determination code table according to the present embodiment. In the undetermined code table 2600 shown in FIG. 26, a predetermined value can be acquired corresponding to a set of values including the current melody sound CM and the preceding chord name PreCH.

無判定コードテーブルにおいて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 CPU 21 acquires, from the undetermined code table 2600, information specifying either a diminished (dim) or an augment (aug) associated with a set of values including the current melody sound CM and the preceding chord name PreCH. Thus, the chord name having the current melody tone CM as the root tone is obtained. For example, if the current melody sound is “C #” and the preceding chord name is “IMaj”, the chord name is “I # dim” (see reference numeral 2611). If the current melody sound is “A ♭” and the preceding chord name is “IM7”, the chord name is “IV ♭ aug”. In this way, the CPU 21 determines the chord name of the diminished (dim) or augment (aug) having the current melody sound CM as the root tone as the current chord name CurCH and stores it in the RAM 23.

上述したように、本実施の形態においては、まず、現在の拍の拍頭の押鍵に関する現在メロディ音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 CPU 21 executes an automatic accompaniment process (step S5). FIG. 45 is a flowchart showing an example of automatic accompaniment processing according to the present embodiment. First, the CPU 21 determines whether or not the automatic chord correction apparatus 10 is operating under the automatic accompaniment mode (step S411). If it is determined Yes in step S411, it is determined whether or not the current time has reached the event execution timing for the melody sound data in the automatic accompaniment data with reference to a timer (not shown) of the CPU 21. (Step S412).

自動伴奏データには、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 CPU 21 executes a melody pronunciation / mute process (step S413). In the melody pronunciation / mute process, it is determined whether the event related to the process is a note-on event. A note-on event can be determined by the fact that the current time substantially coincides with the tone generation timing of a predetermined musical sound in the melody sound data. On the other hand, a note-off event can be determined by the fact that the current time substantially coincides with the time obtained by adding the sound generation time to the sound generation timing of the musical sound.

処理にかかるイベントがノートオフイベントである場合には、CPU21は、消音処理を実行する。その一方、処理にかかるイベントがノートオンイベントであれば、メロディ音のデータにしたがった発音処理を実行する。   If the event related to the process is a note-off event, the CPU 21 executes a mute process. On the other hand, if the event related to the process is a note-on event, the sound generation process according to the melody sound data is executed.

次いで、CPU21は、CPU21のタイマ(図示せず)を参照して、現在時刻が、自動伴奏データ中、コード音のデータについてのイベントの実行タイミングに達しているかを判断する(ステップS414)。ステップS414においてYesと判断された場合には、CPU21は、コード発音・消音処理を実行する(ステップS415)。コード音発音・消音処理においては、発音タイミングに達したコード音について発音処理を実行し、その一方、消音タイミングに達したコード音については消音処理を実行する。   Next, the CPU 21 refers to a timer (not shown) of the CPU 21 to determine whether the current time has reached the event execution timing for the chord data in the automatic accompaniment data (step S414). When it is determined Yes in step S414, the CPU 21 executes chord sound generation / mute processing (step S415). In the chord sound generation / mute process, the sound generation process is executed for the chord sound that has reached the sound generation timing, while the mute process is executed for the chord sound that has reached the mute timing.

その後CPU21は、現在時刻が、自動伴奏データ中、リズムのデータについてのイベントの実行タイミングに達しているかを判断する(ステップS416)。ステップS416においてYesと判断された場合には、CPU21は、リズム音発音処理を実行する(ステップS417)。リズム音発音処理においては、発音タイミングに達したリズム音についてノートオンイベントを生成する。   Thereafter, the CPU 21 determines whether or not the current time has reached the event execution timing for the rhythm data in the automatic accompaniment data (step S416). When it is determined Yes in step S416, the CPU 21 executes a rhythm sound generation process (step S417). In the rhythm sound sound generation process, a note-on event is generated for the rhythm sound that has reached the sound generation timing.

自動伴奏処理(図3のステップS5)が終了すると、CPU21は、音源発音処理を実行する(ステップS6)。音源発音処理において、CPU21は、生成されたノートオンイベントに基づいて、発音すべき楽音の音色及び音高を示すデータを音源部26に与え、或いは、消音すべき楽音の音色及び音高を示すデータを音源部26に与える。音源部26は、音色、音高、音長等を示すデータにしたがって、ROM22の波形データを読み出して、所定の楽音データを生成する。これにより、スピーカ28から所定の楽音が発生する。また、CPU21は、ノートオフイベントに基づいて、音源26にノートオフイベントが示す音高の消音を指示する。   When the automatic accompaniment process (step S5 in FIG. 3) ends, the CPU 21 executes a sound source sound generation process (step S6). In the sound source sound generation process, the CPU 21 gives data indicating the tone color and pitch of the tone to be generated to the sound source unit 26 based on the generated note-on event, or indicates the tone color and pitch of the tone to be muted. Data is supplied to the sound source unit 26. The sound source unit 26 reads the waveform data in the ROM 22 in accordance with data indicating tone color, pitch, tone length, etc., and generates predetermined musical tone data. Thereby, a predetermined musical sound is generated from the speaker 28. Further, the CPU 21 instructs the sound source 26 to mute the pitch indicated by the note-off event based on the note-off event.

音源発音処理(ステップS6)が終了すると、CPU21は、その他の処理(たとえば現在コード名CurCH及び現在メロディ音CMのRAM23への格納、表示部15への画像表示、LED(図示せず)の点灯、消灯など:ステップS7)を実行して、ステップS8に処理を移す。   When the sound source sound generation process (step S6) is completed, the CPU 21 stores other processes (for example, storing the current chord name CurCH and the current melody sound CM in the RAM 23, displaying an image on the display unit 15, and lighting an LED (not shown)). , Extinguishment, etc .: Step S7) is executed, and the process proceeds to Step S8.

ステップS8で、CPU21は、演奏終了か否かを判断する。具体的には、ノンリアルタイムコード付け修正スイッチ14が押下されたか否かを判断する。この判断がYESのとき、CPU21は、処理をステップS9に移し、NOのとき、ステップS2に処理を移す。演奏終了と判断されれば、RAM23には、ステップS7の処理により、一連の演奏によるリアルタイムコード付けの結果としてのコードデータとメロディデータとが格納されることになる。   In step S8, the CPU 21 determines whether or not the performance is finished. Specifically, it is determined whether or not the non-real time coding correction switch 14 is pressed. When this determination is YES, the CPU 21 moves the process to step S9, and when NO, moves the process to step S2. If it is determined that the performance is completed, the RAM 23 stores the chord data and the melody data as a result of real-time chording by a series of performances by the process of step S7.

ステップS9で、CPU21は、図27を参照して後述するノンリアルタイムコード修正処理を行う。ノンリアルタイムコード修正処理が終了すると、CPU21は、メインフローの処理を終了する。   In step S9, the CPU 21 performs non-real time code correction processing which will be described later with reference to FIG. When the non-real-time code correction process ends, the CPU 21 ends the main flow process.

図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 CPU 21 performs a key determination verification process which will be described later with reference to FIGS.
In step S212, the CPU 21 performs a chord composition sound verification process which will be described later with reference to FIG.
In step S <b> 213, the CPU 21 performs a phrase break verification process described later with reference to FIGS. 31 to 34.
In step S214, the CPU 21 performs a coding correction process to be described later with reference to FIGS.

ステップS215で、CPU21は、図37を参照して後述するメロディとコードスケールの比較処理を行う。
ステップS216で、CPU21は、図38を参照して後述するユーザーによる修正処理を行う。
その後、CPU21は、ノンリアルタイムコード修正処理を終了する。
In step S215, the CPU 21 performs a melody and chord scale comparison process, which will be described later with reference to FIG.
In step S216, the CPU 21 performs correction processing by the user, which will be described later with reference to FIG.
Thereafter, the CPU 21 ends the non-real time code correction process.

図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 CPU 21 determines whether there is one song key. Specifically, the CPU 21 determines whether or not the number of types of keys (in-music keys) stored in the RAM 23 is one. If this determination is YES, the CPU 21 moves the process to step S222, and if NO, moves the process to step S234.

ステップS222で、CPU21は、最終メロディ音によるキー確定表と曲中キーとを比較する。具体的には、CPU21は、最終メロディ音によるキー確定テーブル(図39)を参照し、曲中キーと最終メロディ音を比較する。例えば、図39によれば、曲中キーが「C」であり、最終メロディ音が「C、E、G」のいずれかであれば、曲中キーと最終メロディ音とが対応する部分に「C(1)」が格納されているので、後述するステップS223でマッチすることになる。
一方、曲中キーが「C」であり、最終メロディ音が「A」であれば、曲中キーと最終メロディ音とが対応する部分にデータが格納されていないので、後述するステップS223でマッチしないことになる。
In step S222, the CPU 21 compares the key confirmation table based on the final melody sound with the mid-music key. Specifically, the CPU 21 refers to the key confirmation table (FIG. 39) based on the final melody sound, and compares the mid-music key with the final melody sound. For example, according to FIG. 39, if the song key is “C” and the last melody sound is any one of “C, E, G”, the portion corresponding to the song key and the last melody sound is “ Since “C (1)” is stored, it is matched in step S223 described later.
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 CPU 21 determines whether or not the result in step S222 matches. If this determination is YES, there is no problem with the key determination, so the CPU 21 ends the key determination verification process. If NO, the process proceeds to step S224 to correct the key.

ステップ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 CPU 21 sets a key having the final sound listed in the key determination table of the final melody sound as a candidate key according to the priority order. Specifically, the CPU 21 refers to the key confirmation table (FIG. 39) based on the final melody sound and determines a candidate key. For example, according to the key confirmation table (FIG. 39), when the final melody sound is “A”, F (1), D (2), and A (3) are stored in the column “A”. . F, D, and A indicate keys that are most likely when the melody ends with A, and the numbers indicate the priority order. Therefore, in this case where the middle key is determined as “C” in the real-time key determination and the final melody sound is A, the F key having a higher priority is the candidate key for the final part of the music.
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 CPU 21 codes the last four bars with the candidate key, and in step S226, the CPU 21 determines whether or not the last four bars match the cadence determination table. These processes are processes for verifying whether there is no problem with the candidate key for the final part of the song.
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 CPU 21 moves the process to step S227, and if NO, moves the process to step S231.

図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 CPU 21 verifies whether there is no problem with the candidate key from the beginning of the song. This process is performed when the last four measures of the candidate key match the chord function of the song end portion of the cadence determination table. For example, if the candidate key is “F”, the last four measures of the song are confirmed with the key “F”, but the CPU 21 determines whether or not the key “F” is established from the beginning of the song. The melody sound data from the beginning of the song input in real time (keyboard processing in FIG. 4) is read from the RAM 23 and verified.

ステップS228で、CPU21は、候補キーで問題ないか否かを判断する。具体的には、CPU21は、ステップS227で曲頭から候補キーが成立したか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS230に移し、NOの場合、処理をステップS229に移す。   In step S228, the CPU 21 determines whether there is no problem with the candidate key. Specifically, the CPU 21 determines whether or not a candidate key has been established from the beginning of the song in step S227. If this determination is YES, the CPU 21 moves the process to step S230, and if NO, moves the process to step S229.

ステップS229で、CPU21は、矛盾したところでキーを2個に修正する。具体的には、CPU21は、曲頭からどの部分までが候補キーとして成立しないかをステップS227の検証結果から判断して、曲頭から候補キーとして成立しない箇所までと、侯補キーが成立し始める箇所から曲の最後までと、でキーを2つに分ける。例えば、リアルタイムキー判定で曲中キーが「C」と判定されており、かつ、候補キーが「F」の場合、「C」と「F」との2つのキーに分ける。その後、処理をステップS221に移す。   In step S229, the CPU 21 corrects the key to two at the contradiction. Specifically, the CPU 21 determines from the verification result in step S227 which part from the beginning of the song is not established as a candidate key, and the compensation key is established from the beginning of the song to a portion that is not established as a candidate key. Divide the key in two from the beginning to the end of the song. For example, if the in-music key is determined to be “C” in the real-time key determination and the candidate key is “F”, the key is divided into two keys “C” and “F”. Thereafter, the process proceeds to step S221.

ステップS230では、曲頭から候補キーが成立しているので、CPU21は、キーを確定し、キー判定検証処理を終了する。   In step S230, since the candidate key is established from the beginning of the song, the CPU 21 determines the key and ends the key determination verification process.

ステップS231で、CPU21は、キー確定表の次候補があるか否かを判断する。具体的には、キー確定テーブル(図39)を検索して判断する。例えば、最終メロディ音が「A」で、候補キーが「F」である場合、次候補キーとして、第2の優先順位のキーである「D」が存在する。一方、最終メロディ音が「A」で、候補キーが「A」である場合、次候補のキーは存在しない。この判断がYESの場合、CPU21は、処理をステップS232に移し、NOの場合、処理をステップS233に移す。   In step S231, the CPU 21 determines whether there is a next candidate in the key determination table. Specifically, it is determined by searching the key confirmation table (FIG. 39). For example, when the final melody sound is “A” and the candidate key is “F”, “D” that is the second priority key exists as the next candidate key. On the other hand, when the final melody sound is “A” and the candidate key is “A”, there is no next candidate key. If this determination is YES, the CPU 21 moves the process to step S232, and if NO, moves the process to step S233.

ステップS232で、CPU21は、候補キーをステップS231で判断した次候補のキーに置換し、ステップS225に処理を移す。   In step S232, the CPU 21 replaces the candidate key with the next candidate key determined in step S231, and proceeds to step S225.

ステップS233で、CPU21は、キーを修正せず、キー判定検証処理を終了する。   In step S233, the CPU 21 does not correct the key and ends the key determination verification process.

ステップS234で、CPU21は、曲中のキーは2個である否かを判断する。この判断がYESの場合、CPU21は、処理をステップS235に移し、NOの場合、処理をステップS237に移す。   In step S234, the CPU 21 determines whether there are two keys in the song. If this determination is YES, the CPU 21 moves the process to step S235, and if NO, moves the process to step S237.

ステップS235で、CPU21は、冒頭キーと曲中キーの差が+1半音、+2半音、+3半音のいずれかであるか否かを判断する。この処理は、所謂盛り上がり転調をしているかどうかを判断する処理である。この判断がYESの場合、CPU21は、処理をステップS236に移し、NOの場合、処理をステップS240に移す。   In step S235, the CPU 21 determines whether or not the difference between the opening key and the song key is +1 semitone, +2 semitone, or +3 semitone. This process is a process for determining whether or not so-called upscaling modulation is performed. If this determination is YES, the CPU 21 moves the process to step S236, and if NO, moves the process to step S240.

ステップS236で、CPU21は、キーを確定し、キー判定検証処理を終了する。   In step S236, the CPU 21 determines the key and ends the key determination verification process.

ステップS237で、CPU21は、冒頭キーと最終キーとは同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS238に移し、NOの場合、処理をステップS240に移す。   In step S237, the CPU 21 determines whether or not the initial key and the final key are the same. If this determination is YES, the CPU 21 moves the process to step S238, and if NO, moves the process to step S240.

ステップS238で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。具体的には、CPU21は、冒頭キーについては、カデンツ判定テーブル(図40)の曲中を参照して、冒頭キーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲中のコード機能と一致するか否かを判断する。一方、最終キーについては、カデンツ判定テーブル(図40)の曲エンド部を参照して、最終キーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲エンド部のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS239に移し、NOの場合、処理をステップS240に移す。   In step S238, the CPU 21 determines whether or not the last four measures match the cadence determination table. Specifically, the CPU 21 refers to the beginning of the song in the cadence determination table (FIG. 40), and the chord function of the last four measures of the opening key is in the cadence determination table (FIG. 40). It is determined whether or not the code function matches. On the other hand, for the last key, the chord function of the last four bars of the last key is referred to as the chord function of the song end part of the cadence judgment table (FIG. 40) with reference to the song end part of the cadence judgment table (FIG. 40). Determine whether they match. If this determination is YES, the CPU 21 moves the process to step S239, and if NO, moves the process to step S240.

ステップS239で、CPU21は、冒頭キーと最終のキーを確定する。例えば、ステップS238で、冒頭キーのみ一致すると判断されれば、冒頭キーのみ確定する。また、最終キーのみ一致すると判断されれば、最終キーのみ確定する。さらに、冒頭キーと最終キーの両方が一致すると判断されれば、冒頭キー及び最終キーが確定する。   In step S239, the CPU 21 determines the initial key and the final key. For example, if it is determined in step S238 that only the first key matches, only the first key is confirmed. If it is determined that only the last key matches, only the last key is confirmed. Furthermore, if it is determined that both the initial key and the final key match, the initial key and the final key are determined.

ステップS240で、CPU21は、未検証キーがあるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS241に移し、NOの場合、キー判定検証処理を終了する。   In step S240, the CPU 21 determines whether there is an unverified key. If this determination is YES, the CPU 21 moves the process to step S241, and if NO, ends the key determination verification process.

ステップ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 CPU 21 refers to the relational arbitration determination table and determines whether there is a code in this table within four measures after the key is determined. Specifically, the CPU 21 refers to the relational adjustment determination table (FIG. 41) and determines whether the main tone unique code of the table exists within 4 bars after the key is determined.
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 CPU 21 determines whether or not there is a match in step S241. If this determination is YES, the CPU 21 moves the process to step S243, and if NO, moves the process to step S248.

ステップS243で、CPU21は、マッチしたところから元キーに修正する。例えば、主調独自コードが存在した箇所から、主調(冒頭キー)に修正する。   In step S243, the CPU 21 corrects the original key from the match. For example, the main tone (first key) is corrected from the location where the main tone unique code exists.

ステップS244で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。この処理では、ステップS243で修正後のキーでカデンツ判定テーブル(図40)の曲中を参照して、修正後のキーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲中のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS245に移し、NOの場合、処理をステップS246に移す。   In step S244, the CPU 21 determines whether or not the last four measures match the cadence determination table. In this process, the chord function of the last four measures of the corrected key is referred to in the cadence determination table (FIG. 40) by referring to the tune in the cadence determination table (FIG. 40) with the corrected key in step S243. Determine if it matches the code function in the middle. If this determination is YES, the CPU 21 moves the process to step S245, and if NO, moves the process to step S246.

ステップS245で、CPU21は、その部分のキー(修正後のキー)を確定し、処理をステップS247に移す。   In step S245, the CPU 21 determines the key of the part (key after correction), and moves the process to step S247.

ステップS246で、CPU21は、残りキーは1個であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS222に移し、NOの場合、処理をステップS247に移す。   In step S246, the CPU 21 determines whether or not there is one remaining key. If this determination is YES, the CPU 21 moves the process to step S222, and if NO, moves the process to step S247.

ステップS247で、CPU21は、未検証キーがあるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS241に移し、NOの場合、キー判定検証処理を終了する。   In step S247, the CPU 21 determines whether there is an unverified key. If this determination is YES, the CPU 21 moves the process to step S241, and if NO, ends the key determination verification process.

ステップS248で、CPU21は、最後の4小節がカデンツ判定表とあっているか否かを判断する。この処理では、未検証キーでカデンツ判定テーブル(図40)の曲中を参照して、未検証キーの最後の4小節のコード機能が、カデンツ判定テーブル(図40)の曲中のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS245に移し、NOの場合、処理をステップS249に移す。   In step S248, the CPU 21 determines whether or not the last four measures match the cadence determination table. In this process, the chord function of the last four measures of the unverified key is referred to as the chord function in the song of the cadence determination table (FIG. 40) by referring to the song in the cadence determination table (FIG. 40) with the unverified key. Determine whether they match. If this determination is YES, the CPU 21 moves the process to step S245, and if NO, moves the process to step S249.

ステップS249で、CPU21は、同主調をチェックしたか否かを判断する。すなわち、CPU21は、関係調借用判定テーブル(図41)の最下段である同主調(図示せず)について主調独自コードの存在の有無をチェックしたか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS246に移し、NOの場合、処理をステップS250に移す。   In step S249, the CPU 21 determines whether or not the same key is checked. That is, the CPU 21 determines whether or not the existence of the main tone unique code is checked for the same main tone (not shown) at the bottom of the relational borrowing determination table (FIG. 41). If this determination is YES, the CPU 21 moves the process to step S246, and if NO, moves the process to step S250.

ステップS250で、CPU21は、次の関係調を確認対象としてステップS241に処理を移す。例えば、属調についてチェックしたのであれば、次(その下段)の関係調である下属調を次の確認対象とする。   In step S250, the CPU 21 moves the process to step S241 on the next relational tone as a confirmation target. For example, if the genus is checked, the lower genus that is the next (lower) relation is set as the next confirmation target.

図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 CPU 21 extracts three sounds in descending order of the sound length of a sound having one beat or more in the measure. Specifically, the chord data and melody data as a result of real-time chording by a series of performances stored in the RAM 23 are read out, and three sounds are extracted in order from the longest of the sounds having one or more beats in that measure. Here, the measure is a measure to be processed by the CPU 21, and the first measure is initially set as the process target.

ステップ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 CPU 21 determines whether or not the extracted three sounds are included in a chord constituent sound with a real-time code. Specifically, the CPU 21 makes a determination with reference to the code scale table of FIG. For example, when the code for real-time coding is Imajor, it is determined whether or not the three sounds extracted in step S261 or S263 are “C, E, G” that are chord constituent sounds (CT). If this determination is YES, the CPU 21 moves the process to step S264, and if NO, moves the process to step S263.
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 CPU 21 extracts three sounds in descending order of the sound length by halving the bars. Thereafter, the process proceeds to step S262.

ステップS264で、CPU21は、小節内にコード以外のメロディ音があるか否かを判断する。具体的には、CPU21の処理対象となる小節内にステップS261又はステップS263で抽出した3音以外の音が存在し、かつ、図43のコードスケールテーブルを参照して当該音がコード構成音(CT)ではない場合に、当該音はコード以外のメロディ音となる。この判断がYESの場合、CPU21は、処理をステップS265に移し、NOの場合、処理をステップS270に移す。   In step S264, the CPU 21 determines whether or not there is a melody sound other than the chord in the measure. Specifically, a sound other than the three sounds extracted in step S261 or step S263 exists in the measure to be processed by the CPU 21, and the sound is a chord component sound (see FIG. 43). If not (CT), the sound is a melody sound other than chords. If this determination is YES, the CPU 21 moves the process to step S265, and if NO, moves the process to step S270.

ステップS265で、CPU21は、それらの音は装飾音を含むか否かを判断する。具体的には、CPU21は、装飾音データベース(図42)を参照して判断する。この判断がYESの場合、CPU21は、処理をステップS266に移し、NOの場合、処理をステップS267に移す。   In step S265, the CPU 21 determines whether or not these sounds include decoration sounds. Specifically, the CPU 21 makes a determination with reference to the decorative sound database (FIG. 42). If this determination is YES, the CPU 21 moves the process to step S266, and if NO, moves the process to step S267.

ここで、図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 CPU 21 omits the decoration sound and compares it with the code of the real-time coding result. Specifically, the CPU 21 reads the code with the real-time code stored in the RAM 23, and the sound of the measure to be processed without the decoration sound corresponds to each code in the code scale table of FIG. It is determined whether or not the sound (CT).

ステップS267で、CPU21は、リアルタイムコード付け結果のコードと比較する。具体的には、CPU21は、RAM23に格納されたリアルタイムコード付けされたコードを読み出して、処理対象の小節の音が、図43のコードスケールテーブルの各コードに対応するコード構成音(CT)であるか否かを判断する。   In step S267, the CPU 21 compares the code with the result of real-time coding. Specifically, the CPU 21 reads the real-time coded code stored in the RAM 23, and the sound of the bar to be processed is a chord constituent sound (CT) corresponding to each chord in the chord scale table of FIG. Judge whether there is.

ステップS268で、CPU21は、ステップS266及びS267での比較の結果が、マッチするか否か(ステップS266又はS267の判断がYES(マッチ)かNO(アンマッチ)か)を判断する。この判断がYESの場合、CPU21は、処理をステップS270に移し、NOの場合、処理をステップS269に移す。   In step S268, the CPU 21 determines whether or not the comparison results in steps S266 and S267 match (whether the determination in step S266 or S267 is YES (match) or NO (unmatch)). If this determination is YES, the CPU 21 moves the process to step S270, and if NO, moves the process to step S269.

ステップS269で、CPU21は、この支配的な音はコードとして成立するか否かを判断する。具体的には、CPU21は、図43のコードスケールテーブルを参照して、ステップS266又はS267で比較した音が、コード構成音(CT)であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS272に移し、NOの場合、処理をステップS270に移す。   In step S269, the CPU 21 determines whether or not this dominant sound is established as a chord. Specifically, the CPU 21 refers to the chord scale table in FIG. 43 and determines whether or not the sound compared in step S266 or S267 is a chord constituent sound (CT). If this determination is YES, the CPU 21 moves the process to step S272, and if NO, moves the process to step S270.

ステップS272で、CPU21は、コード修正フラグをONにする。具体的には、CPU21は、処理対象となった小節に対応づけてコード修正フラグをONにする。なお、コード修正フラグはRAM23の所定領域に存在する。これにより、後述するコード修正処理(図35)において、対象小節のコードを修正できる。   In step S272, the CPU 21 turns on the code correction flag. Specifically, the CPU 21 turns on the code correction flag in association with the measure to be processed. The code correction flag exists in a predetermined area of the RAM 23. Thereby, the code of the target measure can be corrected in the code correction process (FIG. 35) described later.

ステップS270で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、コード構成音検証処理を終了し、NOの場合、処理をステップS271に移す。   In step S270, the CPU 21 determines whether it is the last measure. If this determination is YES, the CPU 21 ends the chord composition sound verification process, and if NO, the process proceeds to step S271.

ステップS271で、CPU21は、次の小節をコード構成音検証の対象とし、ステップS261に処理を移す。   In step S271, the CPU 21 sets the next measure as the target of the chord composition sound verification, and moves the process to step S261.

図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 CPU 21 compares the chord progressions of the first bar and the (8N + 1) bar. Specifically, the chord data and the melody data as a result of real-time chording by a series of performances stored in the RAM 23 are read and compared. The initial value of N is 1.

ステップS282で、CPU21は、1小節目と(8N+1)小節目のコード進行が同一か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS296に移し、NOの場合、処理をステップS283に移す。   In step S282, the CPU 21 determines whether the chord progressions of the first bar and the (8N + 1) bar are the same. If this determination is YES, the CPU 21 moves the process to step S296, and if NO, moves the process to step S283.

ステップS283で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディリズムを比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S283, the CPU 21 compares melody rhythms in units of eight measures (1st to 8th measures and (8N + 1) to (8N + 8) measures). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS284で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディリズムがマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS285に移し、NOの場合、処理をステップS290に移す。   In step S284, the CPU 21 determines whether or not the melody rhythms in units of eight measures (1st to 8th measures and (8N + 1) to (8N + 8) measures) match. If this determination is YES, the CPU 21 moves the process to step S285, and if NO, moves the process to step S290.

ステップS285で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S285, the CPU 21 compares melody pitches in units of eight measures (measures 1 to 8 and measures (8N + 1) to (8N + 1) to (8N + 8)). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS286で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS287に移し、NOの場合、処理をステップS288に移す。   In step S286, the CPU 21 determines whether or not the melody pitches in units of eight measures (1st to 8th measures and (8N + 1) to (8N + 8) measures) match. If this determination is YES, the CPU 21 moves the process to step S287, and if NO, moves the process to step S288.

ステップS287で、CPU21は、該当する小節をフレーズ8型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S287, the CPU 21 sets the corresponding measure to the phrase 8 type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS288で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS289に移し、NOの場合、処理をステップS296に移す。   In step S288, the CPU 21 determines whether or not the melody pitches in units of eight measures (measures 1 to 8 and measures (8N + 1) to (8N + 1) to (8N + 8)) match 70% or more. If this determination is YES, the CPU 21 moves the process to step S289, and if NO, moves the process to step S296.

ステップS289で、CPU21は、該当する小節をフレーズ8β型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S289, the CPU 21 sets the corresponding measure to the phrase 8β type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS290で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディリズムが70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS291に移し、NOの場合、処理をステップS296に移す。   In step S290, the CPU 21 determines whether or not the melody rhythm in units of 8 bars (1st to 8th bars and (8N + 1) to (8N + 8) bars) matches 70% or more. If this determination is YES, the CPU 21 moves the process to step S291, and if NO, moves the process to step S296.

ステップS291で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S291, the CPU 21 compares the melody pitches in units of eight measures (measures 1 to 8 and measures (8N + 1) to (8N + 1) to (8N + 8)). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS292で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS293に移し、NOの場合、処理をステップS294に移す。   In step S292, the CPU 21 determines whether or not the melody pitches in the 8 bar units (1st to 8th bar and (8N + 1) to (8N + 8) bar) match. If this determination is YES, the CPU 21 moves the process to step S293, and if NO, moves the process to step S294.

ステップS293で、CPU21は、該当する小節をフレーズ8Rα型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S293, the CPU 21 sets the corresponding measure to the phrase 8Rα type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS294で、CPU21は、8小節単位の(1〜8小節目と(8N+1)〜(8N+8)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS295に移し、NOの場合、処理をステップS296に移す。   In step S294, the CPU 21 determines whether or not the melody pitches in units of 8 measures (1st to 8th measures and (8N + 1) to (8N + 8) measures) match 70% or more. If this determination is YES, the CPU 21 moves the process to step S295, and if NO, moves the process to step S296.

ステップS295で、CPU21は、該当する小節をフレーズ8Rβ型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S295, the CPU 21 sets the corresponding measure to the phrase 8Rβ type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS296で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS298に移し、NOの場合、処理をステップS297に移す。   In step S296, the CPU 21 determines whether or not the song has ended. If this determination is YES, the CPU 21 moves the process to step S298, and if NO, moves the process to step S297.

ステップS297で、CPU21は、Nを1増加させて、ステップS281に処理を移す。   In step S297, the CPU 21 increments N by 1, and moves the process to step S281.

ステップS298で、CPU21は、1小節目と(4N+1)小節目のコード進行を比較する。具体的には、RAM23に格納されたリアルタイムコード付けによるコードデータを読み出して比較する。ここで、Nの初期値は1である。   In step S298, the CPU 21 compares the chord progressions of the first bar and the (4N + 1) bar. Specifically, the code data by real-time coding stored in the RAM 23 is read and compared. Here, the initial value of N is 1.

ステップS299で、CPU21は、1小節目と(4N+1)小節目のコード進行が同一か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS313に移し、NOの場合、処理をステップS300に移す。   In step S299, the CPU 21 determines whether or not the chord progressions of the first bar and the (4N + 1) bar are the same. If this determination is YES, the CPU 21 moves the process to step S313, and if NO, moves the process to step S300.

ステップS300で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディリズムを比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S300, the CPU 21 compares melody rhythms in units of four measures (1st to 4th measures and (4N + 1) to (4N + 4) measures). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS301で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディリズムがマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS302に移し、NOの場合、処理をステップS307に移す。   In step S301, the CPU 21 determines whether or not the melody rhythms in units of four measures (1st to 4th measures and (4N + 1) to (4N + 4) measures) match. If this determination is YES, the CPU 21 moves the process to step S302, and if NO, moves the process to step S307.

ステップS302で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S302, the CPU 21 compares the melody pitches in units of four measures (1st to 4th measures and (4N + 1) to (4N + 4) measures). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS303で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS304に移し、NOの場合、処理をステップS305に移す。   In step S303, the CPU 21 determines whether or not the melody pitches in units of four measures (1st to 4th measures and (4N + 1) to (4N + 4) measures) match. If this determination is YES, the CPU 21 moves the process to step S304, and if NO, moves the process to step S305.

ステップS304で、CPU21は、該当する小節をフレーズ4型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S304, the CPU 21 sets the corresponding measure to the phrase 4 type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS305で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS306に移し、NOの場合、処理をステップS313に移す。   In step S <b> 305, the CPU 21 determines whether or not the melody pitches in units of four measures (1 to 4 measures and (4N + 1) to (4N + 4) measures) match 70% or more. If this determination is YES, the CPU 21 moves the process to step S306, and if NO, moves the process to step S313.

ステップS306で、CPU21は、該当する小節をフレーズ4β型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S306, the CPU 21 sets the corresponding measure to the phrase 4β type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS307で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディリズムが70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS308に移し、NOの場合、処理をステップS313に移す。   In step S307, the CPU 21 determines whether or not the melody rhythm of the four measures (1 to 4 measures and (4N + 1) to (4N + 4) measures) matches 70% or more. If this determination is YES, the CPU 21 moves the process to step S308, and if NO, moves the process to step S313.

ステップS308で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S308, the CPU 21 compares melody pitches in units of four measures (1st to 4th measures and (4N + 1) to (4N + 4) measures). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS309で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS310に移し、NOの場合、処理をステップS311に移す。   In step S309, the CPU 21 determines whether or not the melody pitches in units of four measures (1st to 4th measures and (4N + 1) to (4N + 4) measures) match. If this determination is YES, the CPU 21 moves the process to step S310, and if NO, moves the process to step S311.

ステップS310で、CPU21は、該当する小節をフレーズ4Rα型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S310, the CPU 21 sets the corresponding measure to the phrase 4Rα type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS311で、CPU21は、4小節単位の(1〜4小節目と(4N+1)〜(4N+4)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS312に移し、NOの場合、処理をステップS313に移す。   In step S <b> 311, the CPU 21 determines whether or not the melody pitches in units of four measures (1 to 4 measures and (4N + 1) to (4N + 4) measures) match 70% or more. If this determination is YES, the CPU 21 moves the process to step S312, and if NO, moves the process to step S313.

ステップS312で、CPU21は、該当する小節をフレーズ4Rβ型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S312, the CPU 21 sets the corresponding measure to the phrase 4Rβ type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS313で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS315に移し、NOの場合、処理をステップS314に移す。   In step S313, the CPU 21 determines whether or not the song has ended. If this determination is YES, the CPU 21 moves the process to step S315, and if NO, moves the process to step S314.

ステップS314で、CPU21は、Nを1増加させて、ステップS281に処理を移す。   In step S314, the CPU 21 increases N by 1 and moves the process to step S281.

ステップS315で、CPU21は、1小節目と(2N+1)小節目のコード進行を比較する。具体的には、RAM23に格納されたリアルタイムコード付けによるコードデータを読み出して比較する。ここで、Nの初期値は1である。   In step S315, the CPU 21 compares the chord progressions of the first bar and the (2N + 1) bar. Specifically, the code data by real-time coding stored in the RAM 23 is read and compared. Here, the initial value of N is 1.

ステップS316で、CPU21は、1小節目と(2N+1)小節目のコード進行が同一か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS330に移し、NOの場合、処理をステップS317に移す。   In step S316, the CPU 21 determines whether or not the chord progressions of the first bar and the (2N + 1) bar are the same. If this determination is YES, the CPU 21 moves the process to step S330, and if NO, moves the process to step S317.

ステップS317で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディリズムを比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S317, the CPU 21 compares the melody rhythms of the two measures (the measures 1 and 2 and the measures (2N + 1) to (2N + 2)). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS318で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディリズムがマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS319に移し、NOの場合、処理をステップS324に移す。   In step S318, the CPU 21 determines whether or not the melody rhythms in units of two measures (1st and 2nd measures and (2N + 1) to (2N + 2) measures) match. If this determination is YES, the CPU 21 moves the process to step S319, and if NO, moves the process to step S324.

ステップS319で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S319, the CPU 21 compares the melody pitches in units of two measures (the measures 1 and 2 and the measures (2N + 1) to (2N + 2)). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS320で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS321に移し、NOの場合、処理をステップS322に移す。   In step S320, the CPU 21 determines whether or not the melody pitches in the two measures (the first and second measures and the (2N + 1) to (2N + 2) measures) match. If this determination is YES, the CPU 21 moves the process to step S321, and if NO, moves the process to step S322.

ステップS321で、CPU21は、該当する小節をフレーズ2型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S321, the CPU 21 sets the corresponding measure to phrase 2 type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS322で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS323に移し、NOの場合、処理をステップS330に移す。   In step S322, the CPU 21 determines whether or not the melody pitches in the units of two measures (the measures 1 and 2 and the measures (2N + 1) to (2N + 2)) match 70% or more. If this determination is YES, the CPU 21 moves the process to step S323, and if NO, moves the process to step S330.

ステップS323で、CPU21は、該当する小節をフレーズ2β型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S323, the CPU 21 sets the corresponding measure to the phrase 2β type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS324で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディリズムが70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS325に移し、NOの場合、処理をステップS330に移す。   In step S324, the CPU 21 determines whether or not the melody rhythm in two measures (the first and second measures and the (2N + 1) to (2N + 2) measures) matches 70% or more. If this determination is YES, the CPU 21 moves the process to step S325, and if NO, moves the process to step S330.

ステップS325で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。   In step S325, the CPU 21 compares the melody pitches in units of two measures (the measures 1 and 2 and the measures (2N + 1) to (2N + 2)). More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison.

ステップS326で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS327に移し、NOの場合、処理をステップS328に移す。   In step S326, the CPU 21 determines whether or not the melody pitches in units of two measures (1st and 2nd measures and (2N + 1) to (2N + 2) measures) match. If this determination is YES, the CPU 21 moves the process to step S327, and if NO, moves the process to step S328.

ステップS327で、CPU21は、該当する小節をフレーズ2Rα型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S327, the CPU 21 sets the corresponding measure to the phrase 2Rα type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS328で、CPU21は、2小節単位の(1〜2小節目と(2N+1)〜(2N+2)小節目との)メロディ音高が70%以上マッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS329に移し、NOの場合、処理をステップS330に移す。   In step S328, the CPU 21 determines whether or not the melody pitches in the units of two measures (the measures 1 and 2 and the measures (2N + 1) to (2N + 2)) match 70% or more. If this determination is YES, the CPU 21 moves the process to step S329, and if NO, moves the process to step S330.

ステップS329で、CPU21は、該当する小節をフレーズ2Rβ型とする。具体的には、CPU21は、RAM23のフレーズ型領域に小節データと型データを格納する。   In step S329, the CPU 21 sets the corresponding measure to the phrase 2Rβ type. Specifically, the CPU 21 stores bar data and type data in the phrase type area of the RAM 23.

ステップS330で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS332に移し、NOの場合、処理をステップS331に移す。   In step S330, the CPU 21 determines whether or not the song has ended. If this determination is YES, the CPU 21 moves the process to step S332, and if NO, moves the process to step S331.

ステップS331で、CPU21は、Nを1増加させて、ステップS315に処理を移す。   In step S331, the CPU 21 increases N by 1 and moves the process to step S315.

ステップS332で、CPU21は、フレーズ型がひとつもないか否かを判断する。具体的には、CPU21は、RAM23のフレーズ型領域に型データの記録が全くないか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS333に移し、NOの場合、フレーズ区切り検証処理を終了する。   In step S332, the CPU 21 determines whether there is no phrase type. Specifically, the CPU 21 determines whether or not there is any type data recorded in the phrase type area of the RAM 23. If this determination is YES, the CPU 21 moves the process to step S333, and if NO, ends the phrase break verification process.

ステップS333で、CPU21は、1小節目と(N+1)小節目のメロディ音高を比較する。具体的には、RAM23に格納されたリアルタイムコード付けに利用されたメロディデータを使用して比較する。ここで、Nの初期値は1である。   In step S333, the CPU 21 compares the melody pitches of the first bar and the (N + 1) th bar. More specifically, the melody data used for real-time coding stored in the RAM 23 is used for comparison. Here, the initial value of N is 1.

ステップS334で、CPU21は、1小節目と(N+1)小節目のメロディ音高がマッチするか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS335に移し、NOの場合、処理をステップS336に移す。   In step S334, the CPU 21 determines whether or not the melody pitches of the first bar and the (N + 1) th bar match. If this determination is YES, the CPU 21 moves the process to step S335, and if NO, moves the process to step S336.

ステップS335で、CPU21は、該当する小節をフレーズX型とする。また、Xまでの小節数を記憶する。具体的には、CPU21は、RAM23のフレーズ型領域に小節数のデータと型データを格納する。   In step S335, the CPU 21 sets the corresponding measure to the phrase X type. Also, the number of bars up to X is stored. Specifically, the CPU 21 stores measure data and type data in the phrase type area of the RAM 23.

ステップS336で、CPU21は、最後の小節であるか否かを判断する。この判断がYESの場合、CPU21は、フレーズ区切り検証処理を終了し、NOの場合、処理をステップS337に移す。   In step S336, the CPU 21 determines whether it is the last measure. If this determination is YES, the CPU 21 ends the phrase delimitation verification process, and if NO, the process proceeds to step S337.

ステップS337で、CPU21は、Nを1増加させて、処理をステップS333に移す。   In step S337, the CPU 21 increases N by 1 and moves the process to step S333.

図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 CPU 21 compares the key with the real-time code with the key corrected in the key determination verification process (FIGS. 28 and 29).

ステップS342で、CPU21は、キー変更箇所が有るか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS343に移し、NOの場合、処理をステップS346に移す。   In step S342, the CPU 21 determines whether there is a key change portion. If this determination is YES, the CPU 21 moves the process to step S343, and if NO, moves the process to step S346.

ステップS343で、CPU21は、キーの変更箇所を新キー(キー判定検証処理(図28及び図29)で修正されたキー)でコード付けする。   In step S343, the CPU 21 codes the changed part of the key with a new key (key corrected in the key determination verification process (FIGS. 28 and 29)).

ステップS344で、CPU21は、キー確定保留箇所が有るか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS345に移し、NOの場合、処理をステップS346に移す。   In step S344, the CPU 21 determines whether or not there is a key confirmation suspension place. If this determination is YES, the CPU 21 moves the process to step S345, and if NO, moves the process to step S346.

ステップS346で、CPU21は、支配的な音によるコード修正指定箇所が有るか否かを判断する。具体的には、CPU21は、ステップS272(図30)で、コード修正フラグがONされた小節があるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS347に移し、NOの場合、処理をステップS350に移す。   In step S346, the CPU 21 determines whether or not there is a chord correction designation portion with dominant sound. Specifically, the CPU 21 determines in step S272 (FIG. 30) whether or not there is a measure for which the code correction flag is turned on. If this determination is YES, the CPU 21 moves the process to step S347, and if NO, moves the process to step S350.

ステップS347で、CPU21は、指定部分の最後の4小節がカデンツ判定表とあっているか否かを判断する。具体的には、CPU21は、コード修正フラグがONされた小節を含む4小節について、当該4小節が曲中か曲エンド部かに応じて、カデンツ判定テーブル(図40)の曲中又は曲エンド部を参照して、4小節のコード機能が、カデンツ判定テーブル(図40)のコード機能と一致するか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS377に移し、NOの場合、処理をステップS348に移す。   In step S347, the CPU 21 determines whether or not the last four bars of the designated portion are in agreement with the cadence determination table. Specifically, for the four bars including the bar for which the chord correction flag is turned on, the CPU 21 determines whether the four bars are in the song or the song end in the cadence determination table (FIG. 40) depending on whether the four measures are in the song or the song end part. Referring to the section, it is determined whether or not the four bar code function matches the code function of the cadence determination table (FIG. 40). If this determination is YES, the CPU 21 moves the process to step S377, and if NO, moves the process to step S348.

ステップS348で、CPU21は、キー確定保留範囲を特定し、その部分のメロディをキー判定し、キーを確定する。   In step S348, the CPU 21 specifies the key confirmation hold range, performs key determination on the melody of that part, and confirms the key.

ステップS349で、CPU21は、キーの変更箇所を新キーでコード付けする。その後、ステップS347に処理を移す。   In step S349, the CPU 21 codes a key change portion with a new key. Thereafter, the process proceeds to step S347.

ステップS377で、CPU21は、コード修正をする。具体的には、CPU21は、ステップS269で決定した、支配的な音に応じたコード構成音に対応したコードで、コード修正フラグがONにされた小節のコードを修正する。   In step S377, the CPU 21 corrects the code. Specifically, the CPU 21 corrects the chord of the bar for which the chord correction flag is turned on, using the chord corresponding to the chord constituting sound determined in step S269 and corresponding to the dominant sound.

ステップS269で、CPU21は、支配的な音はコードとして成立するか否かを判断する。具体的には、CPU21は、図43のコードスケールテーブルを参照して、ステップS266又はS267で比較した音が、コード構成音(CT)であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS272に移し、NOの場合、処理をステップS270に移す。   In step S269, the CPU 21 determines whether the dominant sound is established as a chord. Specifically, the CPU 21 refers to the chord scale table in FIG. 43 and determines whether or not the sound compared in step S266 or S267 is a chord constituent sound (CT). If this determination is YES, the CPU 21 moves the process to step S272, and if NO, moves the process to step S270.

ステップS350で、CPU21は、該当箇所のフレーズ区切りは、4(*)型(4型、4β型、4Rα型、又は4Rβ型)か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS351に移し、NOの場合、処理をステップS357に移す。   In step S350, the CPU 21 determines whether or not the phrase break at the corresponding location is 4 (*) type (4 type, 4β type, 4Rα type, or 4Rβ type). If this determination is YES, the CPU 21 moves the process to step S351, and if NO, moves the process to step S357.

ステップS351で、CPU21は、フレーズ区切りが4型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS352に移し、NOの場合、処理をステップS353に移す。   In step S351, the CPU 21 determines whether or not the phrase delimiter is type 4. If this determination is YES, the CPU 21 moves the process to step S352, and if NO, moves the process to step S353.

ステップ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 CPU 21 sets the code of that portion to be the same as that of the comparison source. In the case of Type 4, since the rhythm and pitch of the melody are the same as the comparison source, the chord is also the same. For example, when the 5th to 8th bars are of the 4th type, the CPU 21 makes the codes of the 5th to 8th bars the same as the codes of the 1st to 4th bars. In addition, as will be described later, if the 9th to 12th bars are any of 4β type, 4Rα type, and 4Rβ type, the code functions of the portions that are different between the 9th to 12th bar codes and the 1st to 4th bar codes Are the same, the chords of the different parts are the same as the chords of the first to fourth measures.

ステップS353で、CPU21は、違う部分のコードを比較する。この場合、4β型、4Rα型、4Rβ型のいずれかであるが、これらは、メロディ音高とメロディリズムのいずれか一方か両方が、比較元とそれぞれ30%未満異なるということなので、当該異なる部分のコードを比較する。例えば、9〜12小節目が、4β型、4Rα型、4Rβ型のいずれかであれば、9〜12小節目のコードと1〜4小節目のコードとを比較する。   In step S353, the CPU 21 compares different portions of code. In this case, it is either 4β type, 4Rα type, or 4Rβ type, which means that either one or both of the melody pitch and the melody rhythm differ from the comparison source by less than 30%. Compare the codes. For example, if the 9th to 12th measures are any of 4β type, 4Rα type, and 4Rβ type, the codes of the 9th to 12th measures are compared with the codes of the 1st to 4th measures.

ステップS354で、CPU21は、機能は同一であるか否かを判断する。具体的には、CPU21は、当該異なる部分のコードの機能が同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS352に移し、NOの場合、処理をステップS355に移す。   In step S354, the CPU 21 determines whether or not the functions are the same. Specifically, the CPU 21 determines whether or not the functions of the codes in the different parts are the same. If this determination is YES, the CPU 21 moves the process to step S352, and if NO, moves the process to step S355.

ステップS355で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS357に移し、NOの場合、処理をステップS356に移す。   In step S355, the CPU 21 determines whether or not it is the last measure. If this determination is YES, the CPU 21 moves the process to step S357, and if NO, moves the process to step S356.

ステップS356で、CPU21は、次の4小節へ進めて、ステップS351に処理を移す。   In step S356, the CPU 21 proceeds to the next four bars, and proceeds to step S351.

ステップS357で、CPU21は、該当箇所のフレーズ区切りは、8(*)型(8型、8β型、8Rα型、又は8Rβ型)か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS358に移し、NOの場合、処理をステップS364に移す。   In step S357, the CPU 21 determines whether or not the phrase break at the corresponding location is the 8 (*) type (8 type, 8β type, 8Rα type, or 8Rβ type). If this determination is YES, the CPU 21 moves the process to step S358, and if NO, moves the process to step S364.

ステップS358で、CPU21は、フレーズ区切りが8型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS359に移し、NOの場合、処理をステップS360に移す。   In step S358, the CPU 21 determines whether or not the phrase delimiter is 8-type. If this determination is YES, the CPU 21 moves the process to step S359, and if NO, moves the process to step S360.

ステップ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 CPU 21 sets the code of that portion to be the same as that of the comparison source. In the case of the 8 type, since the rhythm and pitch of the melody are the same as the comparison source, the chord is also the same. For example, when the 9th to 16th measures are 8 type, the CPU 21 makes the codes of the 9th to 16th measures the same as the codes of the 1st to 8th measures. As will be described later, when the 17th to 24th bars are any of 8β type, 8Rα type, and 8Rβ type, the code functions of the portions that are different between the codes of the 17th to 24th bars and the codes of the 1st to 8th bars If they are the same, the code of the different part is made the same as the code of the 1st to 8th measures.

ステップS360で、CPU21は、違う部分のコードを比較する。この場合、8β型、8Rα型、8Rβ型のいずれかであるが、これらは、メロディ音高とメロディリズムのいずれか一方か両方が、比較元とそれぞれ30%未満異なるということなので、当該異なる部分のコードを比較する。例えば、17〜24小節目が、8β型、8Rα型、8Rβ型のいずれかであれば、17〜24小節目のコードと1〜8小節目のコードとを比較する。   In step S360, the CPU 21 compares different portions of code. In this case, it is any of 8β type, 8Rα type, and 8Rβ type, which means that either one of both the melody pitch and the melody rhythm differs from the comparison source by less than 30%. Compare the codes. For example, if the 17-24th bar is any of the 8β type, the 8Rα type, and the 8Rβ type, the codes of the 17th to 24th bars are compared with the codes of the 1st to 8th bars.

ステップS361で、CPU21は、機能は同一であるか否かを判断する。具体的には、CPU21は、当該異なる部分のコードの機能が同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS359に移し、NOの場合、処理をステップS362に移す。   In step S361, the CPU 21 determines whether or not the functions are the same. Specifically, the CPU 21 determines whether or not the functions of the codes in the different parts are the same. If this determination is YES, the CPU 21 moves the process to step S359, and if NO, moves the process to step S362.

ステップS362で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS364に移し、NOの場合、処理をステップS363に移す。   In step S362, the CPU 21 determines whether it is the last measure. If this determination is YES, the CPU 21 moves the process to step S364, and if NO, moves the process to step S363.

ステップS363で、CPU21は、次の8小節へ進めて、ステップS358に処理を移す。   In step S363, the CPU 21 proceeds to the next eight bars, and proceeds to step S358.

ステップS364で、CPU21は、該当箇所のフレーズ区切りは、2(*)型(2型、2β型、2Rα型、又は2Rβ型)か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS365に移し、NOの場合、処理をステップS371に移す。   In step S364, the CPU 21 determines whether or not the phrase break at the corresponding location is 2 (*) type (type 2, 2β type, 2Rα type, or 2Rβ type). If this determination is YES, the CPU 21 moves the process to step S365, and if NO, moves the process to step S371.

ステップS365で、CPU21は、フレーズ区切りが2型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS366に移し、NOの場合、処理をステップS367に移す。   In step S365, the CPU 21 determines whether or not the phrase delimiter is type 2. If this determination is YES, the CPU 21 moves the process to step S366, and if NO, moves the process to step S367.

ステップ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 CPU 21 sets the code of the portion to be the same as that of the comparison source. In the case of type 2, the melody rhythm and pitch are the same as the comparison source, so the chords are also the same. For example, when the 3rd to 4th measures are of type 2, the CPU 21 makes the codes of the 3rd and 4th measures the same as the codes of the 1st and 2nd measures. As will be described later, if the 5th to 6th bars are either 2β type, 2Rα type, or 2Rβ type, the function of the code of the portion that is different between the 5th and 6th bar codes and the 1st and 2nd bar codes Are the same, the chords of the different parts are the same as the chords of the first and second measures.

ステップS367で、CPU21は、違う部分のコードを比較する。この場合、2β型、2Rα型、2Rβ型のいずれかであるが、これらは、メロディ音高とメロディリズムのいずれか一方か両方が、比較元とそれぞれ30%未満異なるということなので、当該異なる部分のコードを比較する。例えば、3〜4小節目が、2β型、2Rα型、2Rβ型のいずれかであれば、3〜4小節目のコードと1〜2小節目のコードとを比較する。   In step S367, the CPU 21 compares different portions of the code. In this case, it is either 2β type, 2Rα type, or 2Rβ type, which means that either one or both of the melody pitch and the melody rhythm differ from the comparison source by less than 30%. Compare the codes. For example, if the 3rd to 4th measures are 2β type, 2Rα type, or 2Rβ type, the codes of the 3rd and 4th measures are compared with the codes of the 1st and 2nd measures.

ステップS368で、CPU21は、機能は同一であるか否かを判断する。具体的には、CPU21は、当該異なる部分のコードの機能が同一であるか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS366に移し、NOの場合、処理をステップS369に移す。   In step S368, the CPU 21 determines whether or not the functions are the same. Specifically, the CPU 21 determines whether or not the functions of the codes in the different parts are the same. If this determination is YES, the CPU 21 moves the process to step S366, and if NO, moves the process to step S369.

ステップS369で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS371に移し、NOの場合、処理をステップS370に移す。   In step S369, the CPU 21 determines whether it is the last measure. If this determination is YES, the CPU 21 moves the process to step S371, and if NO, moves the process to step S370.

ステップS370で、CPU21は、次の2小節へ進めて、ステップS365に処理を移す。   In step S370, the CPU 21 proceeds to the next two measures, and proceeds to step S365.

ステップS371で、CPU21は、該当箇所のフレーズ区切りはX型か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS372に移し、NOの場合、処理をステップS376に移す。   In step S <b> 371, the CPU 21 determines whether or not the phrase break at the corresponding portion is X-type. If this determination is YES, the CPU 21 moves the process to step S372, and if NO, moves the process to step S376.

ステップS372で、CPU21は、開始位置を確認する。   In step S372, the CPU 21 confirms the start position.

ステップS373で、CPU21は、その部分のコードを比較元と同一とする。   In step S373, the CPU 21 sets the code of that portion to be the same as that of the comparison source.

ステップS374で、CPU21は、最後の小節か否かを判断する。この判断がYESの場合、CPU21は、処理をステップS376に移し、NOの場合、処理をステップS375に移す。   In step S374, the CPU 21 determines whether it is the last measure. If this determination is YES, the CPU 21 moves the process to step S376, and if NO, moves the process to step S375.

ステップS375で、CPU21は、次のX型へ進めて、ステップS372に処理を移す。   In step S375, the CPU 21 proceeds to the next X type, and proceeds to step S372.

ステップS376で、CPU21は、他にもフレーズ型記憶箇所が有るか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS350に移し、NOの場合、コード付け修正処理を終了する。   In step S376, the CPU 21 determines whether there are other phrase-type storage locations. If this determination is YES, the CPU 21 moves the process to step S350, and if NO, ends the coding correction process.

図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 CPU 21 confirms the scale of the corrected chord in the chord scale table (FIG. 43), and the melody corresponding to the corrected chord section (the melody input at the time of real-time chording) is corrected. Check whether the code scale of the selected code matches. Here, the chord scale is a group of sounds combining the scale note (SN) and the chord constituent sound (CT) as referred to in the chord scale table of FIG.
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 CPU 21 determines whether or not they match in step S381. If this determination is YES, the CPU 21 moves the process to step S388, and if NO, moves the process to step S383.

ステップS383で、CPU21は、スケール外音は装飾音か否かを判断する。具体的には、CPU21は、ステップS265(図30)と同様に装飾音データベース(図42)を参照して判断する。この判断がYESの場合、CPU21は、処理をステップS388に移し、NOの場合、処理をステップS384に移す。   In step S383, the CPU 21 determines whether the off-scale sound is a decoration sound. Specifically, the CPU 21 makes a determination with reference to the decorative sound database (FIG. 42) as in step S265 (FIG. 30). If this determination is YES, the CPU 21 moves the process to step S388, and if NO, moves the process to step S384.

ステップ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 CPU 21 refers to a rehabilitation database (not shown). For example, the key is Am (the constituent sounds of Am are “A, B, C, D, E, F, G”), and the melody is an upward type of melodic minor (A, B, C, D, E, In the case of F #, G #), since “F #, G #” is not a constituent sound of the key Am, the chord can be changed to Bm7 with respect to the sound of F #.
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 CPU 21 determines whether or not there is a match in the rehabilitation database. If this determination is YES, the CPU 21 moves the process to step S386, and if NO, moves the process to step S387.

ステップS386で、CPU21は、コード修正をする。具体的には、CPU21は、リハモデータベースに登録されているコードに修正する。   In step S386, the CPU 21 corrects the code. Specifically, the CPU 21 corrects the code to be registered in the rehabilitation database.

ステップS387で、CPU21は、不適合箇所を記録する。すなわち、マッチしなかった箇所をRAM23に記録する。   In step S387, the CPU 21 records the nonconforming portion. That is, the part which did not match is recorded on RAM23.

ステップS388で、CPU21は、最後のコードか否かを判断する。この判断がYESの場合、CPU21は、メロディとコードスケールの比較処理を終了し、NOの場合、処理をステップS389に移す。   In step S388, the CPU 21 determines whether it is the last code. If this determination is YES, the CPU 21 ends the melody and chord scale comparison process, and if the determination is NO, the process proceeds to step S389.

ステップS389で、CPU21は、次のコードへ進み、処理をステップS381へ移す。   In step S389, the CPU 21 proceeds to the next code, and proceeds to step S381.

図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 CPU 21 determines whether data reproduction by the Any key is being performed. If this determination is YES, the CPU 21 moves the process to step S402, and if NO, corrects the correction process by the user.

ステップS402で、CPU21は、Editスイッチ(図示せず)がオンか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS404に移し、NOの場合、処理をステップS403に移す。   In step S402, the CPU 21 determines whether an Edit switch (not shown) is on. If this determination is YES, the CPU 21 moves the process to step S404, and if NO, moves the process to step S403.

ステップS403で、CPU21は、コード優先データベース順にコード候補を出力する。具体的には、CPU21は、コード優先データベース(図44)に格納された順番で、コード候補を出力する。例えば、修正前のコードがIImであれば、1番目のコード候補として、「IIm7」を出力する。   In step S403, the CPU 21 outputs code candidates in the order of code priority database. Specifically, the CPU 21 outputs code candidates in the order stored in the code priority database (FIG. 44). For example, if the code before correction is IIm, “IIm7” is output as the first code candidate.

ステップS404で、CPU21は、OKスイッチ(図示せず)が押下されたか否かを判断する。この判断がYESの場合、CPU21は、処理をステップS405に移し、NOの場合、処理をステップS406に移す。   In step S404, the CPU 21 determines whether or not an OK switch (not shown) has been pressed. If this determination is YES, the CPU 21 moves the process to step S405, and if NO, moves the process to step S406.

ステップS405で、CPU21は、コードを修正し、処理をステップS407に移す。具体的には、CPU21は、ステップS403で出力されたコードでコード修正する。   In step S405, the CPU 21 corrects the code and moves the process to step S407. Specifically, the CPU 21 corrects the code with the code output in step S403.

ステップS406で、CPU21は、次候補を出力し、処理をステップS404に移す。例えば、現在出力されたコードが「IIm7」であれば、CPU21は、2番目のコード候補である「IV」を出力する。   In step S406, the CPU 21 outputs the next candidate, and the process proceeds to step S404. For example, if the currently output code is “IIm7”, the CPU 21 outputs “IV” which is the second code candidate.

ステップS407で、CPU21は、曲終了か否かを判断する。この判断がYESの場合、CPU21は、ユーザーによる修正処理を終了し、NOの場合、処理をステップS401に移す。   In step S407, the CPU 21 determines whether or not the song has ended. If this determination is YES, the CPU 21 ends the correction process by the user, and if NO, the process proceeds to step S401.

本実施の形態の電子楽器10は、曲のメロディを演奏する鍵盤11を有しており、CPU21は、演奏されているメロディの音高の履歴により、当該メロディに対してリアルタイムでコード付与を行い、メロディ演奏終了後、リアルタイムでコード付与されたコードをノンリアルタイムで修正する。
したがって、入力されたメロディに対してリアルタイムでコード付けを行った後、ノンリアルタイムでコードを修正することで、コード付けの精度をより高めることができる。
The electronic musical instrument 10 of the present embodiment has a keyboard 11 for playing a melody of a song, and the CPU 21 assigns a chord to the melody in real time based on the pitch history of the melody being played. After the melody performance is finished, the chord assigned in real time is corrected in non-real time.
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 CPU 21 verifies whether or not there is a sound in which a chord other than the chord given in the melody sound included therein exists for each predetermined section of the song. If you want to specify the predetermined section as a correction location,
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 CPU 21 verifies whether or not the key assigned to the predetermined section of the song matches the key determined based on the final sound of the melody in the predetermined section.
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 CPU 21 determines whether or not the scale of each corrected chord and the scale of the melody in the corresponding section match. correct.
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 CPU 21 assigns the pitch belonging to a predetermined beat in the song data, the pitch belonging to the beat immediately before the beat, and the chord assigned to the beat immediately before in the real-time coding. The chord to be given to a predetermined beat is determined based on the above.
Therefore, real-time coding can be performed quickly and accurately.

また、本実施の形態において、CPU21は、曲の小節ごとに、当該小節に含まれるメロディ音のうち、付与されたコードの構成音以外の他の音が存在するか否かを判別し、
他の音が存在すると判別された場合に、当該他の音が装飾音であるか否かを判別し、
装飾音と判別された場合にはこの装飾音を除いた音に基づくコードと前記小節に付与されたコードとを比較するとともに、装飾音と判別されない場合には前記他の音に基づくコードと前記小節に付与されたコードとを比較し、
両者のコードが一致しないと判断された場合に、前記小節の区間を修正箇所と指定する。
したがって、リアルタイムでコード付けの誤りの原因であった装飾音を除いて、支配的な音により確実にコードを修正することができる。
In the present embodiment, the CPU 21 determines, for each measure of the song, whether or not there is a sound other than the constituent sounds of the assigned chord among the melody sounds included in the measure,
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 CPU 21 determines, for each measure of the song, whether or not there is a sound other than the dominant sound among the melody sounds included in the measure. For each measure, three long sounds are extracted from the melody sounds included in the measure, and whether these three sounds are constituent sounds of the chord assigned to the measure, are determined as chord constituent sounds. In such a case, these three sounds are set to be dominant sounds.
Therefore, the dominant sound can be a chord constituent sound.

また、本実施の形態において、CPU21は、曲のメロディを所定の長さの複数のフレーズに区切る際に、曲を4小節毎、8小節毎及び2小節毎に区切る。
したがって、4小節単位、8小節単位、2小節単位等、音楽的に繰り返しの多い小節数を単位として、楽式の一致度を検証できる。
In the present embodiment, the CPU 21 divides the tune into every four bars, every eight bars, and every two bars when dividing the melody of the music into a plurality of phrases having a predetermined length.
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 CPU 21 compares the pitches of melody sounds and rhythm sounds between phrases as a musical expression, and each phrase is both a pitch and a rhythm sound. Are matched, one of the pitch and the rhythm sound is matched and the other is matched by a predetermined value or more, and the pitch and the rhythm sound are both sorted by a predetermined value or more.
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 CPU 21 assigns another chord in the section, thereby To determine whether the final part of 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 CPU 21 assigns another chord in the section, thereby To determine whether the final part of 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 CPU 21 divides the melody of the song into a plurality of phrases having a predetermined length, and then the chords assigned to the phrases classified when both the pitch and the rhythm sound match. 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 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 CPU 21 sets time information that defines the progress of the automatic accompaniment data being executed in the melody sequence that proceeds in a series of operations of the keyboard 11. In particular, based on beat information, the current melody sound CM related to the key pressed at the beginning of the current beat and the preceding melody related to the key pressed at the beginning of the previous beat, which is the previous beat Sound PM is determined. Further, the CPU 21 determines the current chord name CurCH based on the determined current melody sound information, the preceding melody sound information, and the preceding chord name PreCH which is the chord name in the previous beat (FIG. 5). Step S31) is executed. Further, when determining the melody sound, the CPU 21 determines the current melody sound CM and the preceding melody sound PM based on the number of beats in the measure.

すなわち、本実施の形態によれば、押鍵された拍の位置(時間的な位置)を考慮して現在メロディ音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 CPU 21 determines whether the current beat is the first beat, the third beat, or another beat. The melody sound information and the preceding melody sound information are determined. That is, the weight of the beat is taken into account by determining the current melody sound CM and the preceding melody sound PM based on the strong beat (first beat, third beat) and the weak beat (second beat, fourth beat). It becomes possible to do.

また、本実施の形態において、CPU21は、前拍の先頭以降の押鍵が、現在の拍まで延びている場合に、シンコペーションであると判断し、現在メロディ音CMを、現在の拍まで延びている押鍵に関するものに決定する。すなわち、拍頭の押鍵でなくとも、シンコペーションを構成する場合には、これを拍頭の押鍵と同様に取り扱うことができる。   In the present embodiment, the CPU 21 determines that the key depression after the head of the previous beat extends to the current beat and determines that it is a syncopation, and extends the current melody sound CM to the current beat. Decide on the keystrokes you have. That is, even if it is not a key depression, it can be handled in the same manner as a key depression when a syncopation is formed.

また、CPU21は、第1のドミナントモーション判定処理(図10)において、先行コード名PreCHがドミナントコードを示し、かつ、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。このように、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。   In addition, in the first dominant motion determination process (FIG. 10), the CPU 21 indicates a dominant code configuration in which the preceding chord name PreCH indicates a dominant chord and the current melody tone CM is predetermined from the preceding melody tone PM. When a transition from a sound to a constituent sound of a tonic code is indicated, a chord name corresponding to a tonic is given as the current chord name CurCH. In this way, when a dominant motion is clearly indicated from the melody sequence, the current chord name CurCH is used as a tonic to form an end in chord progression.

また、CPU21は、第2のドミナントモーション判定処理(図17)において、先行メロディ音PMから現在メロディ音CMが、予め定められた、ドミナントコードの構成音からトニックコードの構成音への移行を示す場合に、現在コード名CurCHとして、トニックに相当するコード名を与える。ここでは、先行コード名PreCHがドミナントコードではない場合でも、メロディシーケンスからドミナントモーションが明確に示される場合には、現在コード名CurCHをトニックとして、コード進行における終止を形成させる。   Further, in the second dominant motion determination process (FIG. 17), the CPU 21 indicates a transition from the preceding melody sound PM to the predetermined melody sound to the tonic code sound from the preceding melody sound PM. In this case, a code name corresponding to a tonic is given as the current code name CurCH. Here, even if the preceding chord name PreCH is not a dominant chord, if a dominant motion is clearly indicated from the melody sequence, the current chord name CurCH is used as a tonic to form an end in chord progression.

さらに、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 CPU 21 sets the preceding code name as the current code name CurCH. Give PreCH. Thereby, code retention can be realized.

また、本実施の形態においては、現在メロディ音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 CPU 21 refers to the first code table or the second code table according to the key pressing timing. This makes it possible to acquire different chord names according to beats. Also, by referring to the table, it is possible to determine the code name in real time.

さらに、本実施の形態においては、決定された先行メロディ音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 CPU 21 refers to the non-determined code table, and from the current melody sound CM, the preceding melody sound PM, and the preceding chord name PreCH, either an augment (aug) or a diminished (dim) It becomes possible to judge whether it should be code.

本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。   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 RAM 23 using the pitch difference as an offset. Just do it. In the process, it is possible to execute the process on a scale of “C” by subtracting the pitch name specified by the actually pressed key number by the offset.

以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記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 claim 1, further comprising:
[Appendix 3]
The non-real time code correcting means further includes
The key determination verification unit according to claim 2, further comprising: a key determination verification unit that verifies whether 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.
[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 supplementary note 1, further comprising correction means.
[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 1, which determines a code to be processed.
[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 claim 2, further comprising:
[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 6, further comprising: a chord constituent sound discriminating unit that discriminates the constituent sounds to be chord constituent sounds.
[Appendix 8]
The automatic code correction device according to supplementary note 2, wherein the phrase delimiter verification means divides the music into every four measures, every eight measures, and every two measures.
[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 claim 2, further comprising:
[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 claim 2, further comprising:
[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 supplementary note 10, comprising code generation means to be supplied.
[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 2, wherein the different portions of the code are the same.
[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 SYMBOLS 10 Electronic musical instrument 11 Keyboard 12, 13 Switch 14 Non real time coding correction switch 15 Display part 21 CPU 22 ROM 23 RAM 24 Sound system 25 Switch group 26 Sound source part 27 Audio circuit 28 Speaker

上記目的を達成するため、本発明の一態様の自動コード修正装置は、演奏手段による曲の演奏中において、逐次入力されるメロディに対して逐次コードを判定していくリアルタイムコード判定手段と、前記リアルタイムコード判定手段により判定された複数のコードと、前記複数のコードに対応するメロディの履歴とを記録する記録手段と、前記演奏手段による曲の演奏終了後、前記記録手段に記録されたメロディの履歴に基づいて複数のコードを判定するノンリアルタイムコード判定手段と、前記リアルタイムコード判定手段により判定された各コードと、前記ノンリアルタイムコード判定手段により判定された各コードとを比較し、前記比較結果に基づいて前記記録手段に記録されたコードを修正する第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:
前記第1の判別手段は、前記曲の小節毎に、当該小節に含まれるメロディ音のうち音長
の長い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.
前記フレーズ区切り検証手段は、前記曲を4小節毎、8小節毎及び2小節毎に区切る請
求項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.
JP2016226109A 2016-11-21 2016-11-21 Automatic code correction device, automatic code correction method and program thereof Active JP6555231B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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