JP5712702B2 - Code detection apparatus and program for realizing code detection method - Google Patents

Code detection apparatus and program for realizing code detection method Download PDF

Info

Publication number
JP5712702B2
JP5712702B2 JP2011055294A JP2011055294A JP5712702B2 JP 5712702 B2 JP5712702 B2 JP 5712702B2 JP 2011055294 A JP2011055294 A JP 2011055294A JP 2011055294 A JP2011055294 A JP 2011055294A JP 5712702 B2 JP5712702 B2 JP 5712702B2
Authority
JP
Japan
Prior art keywords
code
chord
detection
data
information
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.)
Expired - Fee Related
Application number
JP2011055294A
Other languages
Japanese (ja)
Other versions
JP2012189943A (en
Inventor
成淑 原
成淑 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2011055294A priority Critical patent/JP5712702B2/en
Publication of JP2012189943A publication Critical patent/JP2012189943A/en
Application granted granted Critical
Publication of JP5712702B2 publication Critical patent/JP5712702B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、入力された演奏データに対して音楽的なつながりのあるコード(和音)を検出するコード検出装置およびコード検出方法を実現するためのプログラムに関する。   The present invention relates to a chord detection apparatus and chord detection method for detecting chords (chords) that are musically connected to inputted performance data.

入力された演奏データに対して音楽的なつながりのあるコードを検出するコード検出装置は、従来から知られている。   2. Description of the Related Art Chord detection devices that detect chords that are musically connected to input performance data are conventionally known.

このようなコード検出装置として、音符のシーケンスを示す演奏データを入力して記憶した後、当該演奏データを所定の区間に分割し、予め多数のコード進行を記憶したコード進行データベースから、上記分割された所定区間の演奏データに適合するコード進行を抽出するようにしたものがある(たとえば、特許文献1参照)。   As such a chord detection device, after the performance data indicating the sequence of notes is inputted and stored, the performance data is divided into predetermined sections, and the above-mentioned division is performed from a chord progression database in which a large number of chord progressions are stored in advance. In addition, there is one that extracts chord progressions that match the performance data of a predetermined section (see, for example, Patent Document 1).

特開2001−142462号公報JP 2001-142462 A

しかし、上記従来のコード検出装置では、コード進行を抽出するために参照する演奏データは予め入力されたものであるので、演奏データ中の音符の流れをその前後あるいは広い範囲で見ることで、当該演奏データ(を構成する音符)と音楽的につながりのよいコード進行を抽出することができるものの、コード進行を抽出するための参照対象として、たとえばリアルタイム演奏によって入力中の演奏データを採用し、この入力中の演奏データと音楽的につながりのよいコード進行を抽出しようとすると、次に入力される演奏音がどの音か分からないため、前記コード進行データベースから抽出したコード進行が入力中の演奏データと適合しないことがある。   However, in the above-described conventional chord detection device, the performance data referred to extract the chord progression is input in advance, so that by looking at the flow of notes in the performance data before and after or in a wide range, Although it is possible to extract chord progressions that are musically connected to the performance data (notes that make up the performance data), the performance data being input by, for example, real-time performance is adopted as a reference object for extracting chord progressions. If an attempt is made to extract a chord progression that is musically connected to the performance data being input, it is unknown which sound will be input next, so the chord progression extracted from the chord progression database is being input. And may not fit.

また、入力中の演奏データを参照して、コード進行データベースからいずれかのコード進行を抽出する場合、あるタイミングで検出したコード、つまり、あるタイミングで入力された演奏データから検出したコードから始まるコード進行をコード進行データベースから抽出することになるが、コードの出力タイミングが来る度に、このようにして抽出されたコード進行の(を形成する)コードを順次出力して行くことで、コードを検出する場合、検出されたコードは、コード進行としては成立するとしても、入力中の演奏データとは調和しないことがある。さらにこの場合、コード進行データベースに記憶されている、あるコードから始まるコード進行をそのまま使用することになるので、検出されたコードによって生成されるコード進行のパターンの種類が少なくなって、同じコード進行が出現し易くなり、その結果、ユーザが飽きてしまう可能性がある。   Also, when extracting any chord progression from the chord progression database with reference to the performance data being input, a chord detected at a certain timing, that is, a chord starting from a chord detected from the performance data input at a certain timing The progress is extracted from the chord progression database, but each time the chord output timing comes, the chord progression extracted in this way is sequentially output to detect the chord. In this case, the detected chord may be inconsistent with the performance data being input even though it is established as chord progression. Furthermore, in this case, since the chord progression starting from a certain chord stored in the chord progression database is used as it is, the types of chord progression patterns generated by the detected chords are reduced, and the same chord progression Is likely to appear, and as a result, the user may get bored.

本発明は、この点に着目してなされたものであり、入力された演奏データ、特にリアルタイム入力された演奏データに対して音楽的なつながりのある、バラエティに富んだコードを検出することが可能となるコード検出装置およびコード検出方法を実現するためのプログラムを提供することを目的とする。   The present invention has been made paying attention to this point, and can detect a variety of chords that are musically connected to input performance data, particularly performance data input in real time. An object of the present invention is to provide a program for realizing the code detection device and the code detection method.

上記目的を達成するため、請求項1に記載のコード検出装置は、演奏データを入力する入力手段と、演奏曲の調情報を取得する取得手段と、コードの検出タイミングを検知する検知手段と、前記検知手段によってコードの検出タイミングが検知されたときに、前記取得手段によって取得された調情報に基づいて複数のコード候補を抽出し、該抽出した複数のコード候補から、前記入力手段によって入力された演奏データに基づいてコードを1つ選出する第1の選出手段と、前記第1の選出手段によって選出されたコードを含むコード進行の解決先となり得る解決先コードを抽出する抽出手段と、前記抽出手段によって抽出された解決先コードに至るまでに前記検知手段によって検知される1乃至複数のコードの検出タイミングのそれぞれについて、前記取得された調情報に基づいて、前記選出されたコードに続くコード候補を複数抽出し、該抽出した複数のコード候補から1乃至複数のコード候補群を生成する生成手段と、前記検知手段によってコードの検出タイミングが検知されたときには、前記生成手段によって生成されたコード候補群うち、当該検出タイミングに対応するコード候補群から、前記入力された演奏データに基づいてコードを1つ選出する第2の選出手段とを有することを特徴とする。 In order to achieve the above object, the chord detection apparatus according to claim 1 includes an input means for inputting performance data, an acquisition means for acquiring key information of the performance tune, a detection means for detecting a chord detection timing, When the detection timing of the code is detected by the detection means, a plurality of code candidates are extracted based on the key information acquired by the acquisition means, and input from the extracted plurality of code candidates by the input means a first selecting means for selecting one code based on the performance data, extraction means for extracting a solution destination code that may be chord progression solve destination including elected encoded by said first selecting means, each of the detection timing of one or a plurality of codes are detected by the detection means before reaching the resolution destination code extracted by said extraction means Nitsu Te, a generation unit based on the acquired key information, the elected out several extract the subsequent code candidates in the code, to produce a plurality of code candidate or al 1 or more code candidates that the extracted, when the detection timing of the code is detected by the pre-Symbol detection means, among the code candidates generated by said generating means, from the code candidates corresponding to the detected timing, the code based on the performance data that has been said input And a second selecting means for selecting one.

請求項2に記載のコード検出装置は、請求項1のコード検出装置において、前記生成手段によって複数のコード候補群が生成された場合において、前記第2の選出手段によって選出されたコードの次に進むコードとしてつながりに無理のあるコード候補が、当該選出されたコードの検出タイミングより後の検出タイミングに対応するコード候補群内にあるときに、当該無理のあるコード候補を削除する削除手段をさらに有することを特徴とする。 The code detection device according to claim 2 is the code detection device according to claim 1, wherein, when a plurality of code candidate groups are generated by the generation unit, the code selected by the second selection unit is next. proceeds reasonably code that is a candidate to lead the code, when in encoding candidate group corresponding to the detection timing after the detection timing of the selected code, the deletion means to delete the code candidate with the unreasonable Furthermore, it is characterized by having.

請求項3に記載のコード検出装置は、請求項1または2のコード検出装置において、前記生成手段がコード候補群を生成する際に、該コード候補群を構成する複数のコード候補の1つ前に寄り道可能なコード候補を1乃至複数抽出して当該コード候補群に追加する寄り道コード候補追加手段をさらに有することを特徴とする。   The code detection device according to claim 3 is the code detection device according to claim 1 or 2, wherein when the generation unit generates the code candidate group, the code detection device is one before the plurality of code candidates constituting the code candidate group. Further, the present invention is characterized by further comprising a detour code candidate adding means for extracting one or a plurality of code candidates that can be detoured and adding to the code candidate group.

請求項4に記載のコード検出装置は、請求項1〜3のコード検出装置において、前記第2の選出手段によって選出されたコードが前記解決先コードである場合にはさらに、当該選出されたコードがエクステンデッド・ドミナントの始点となり得るかどうかを判定し、その判定の結果、当該選出されたコードがエクステンデッド・ドミナントの始点となり得るときには、前記検知手段が次のコードの検出タイミングを検知したことに応じて、前記第1の選出手段が抽出する複数のコード候補に、エクステンデッド・ドミナントとなるコード候補も1乃至複数抽出して追加するエクステンデッド・ドミナント候補追加手段をさらに有することを特徴とする。   The code detection device according to claim 4 is the code detection device according to any one of claims 1 to 3, wherein the selected code is further selected when the code selected by the second selection means is the solution destination code. Is determined to be the start point of the extended dominant, and if the selected code can be the start point of the extended dominant as a result of the determination, the detection means detects the detection timing of the next code. The first selecting means further includes an extended dominant candidate adding means for extracting one or a plurality of code candidates to be extended dominants and adding them to a plurality of code candidates extracted by the first selection means.

請求項5に記載のコード検出装置は、請求項4のコード検出装置において、前記第2の選出手段によって選出されたコードが前記解決先コードではなく、エクステンデッド・ドミナントのコードである場合には、前記生成手段は、当該コードの検出タイミングの次の検出タイミングに対応するコード候補群には、少なくとも、前記選出されたエクステンデッド・ドミナントのコードに続くエクステンデッド・ドミナントのコード候補1乃至複数と、当該選出されたコードが解決するコード候補1乃至複数を抽出して含ませることを特徴とする。   The code detection device according to claim 5 is the code detection device according to claim 4, wherein the code selected by the second selection means is not the solution destination code but an extended dominant code. The generation means includes at least one extended dominant code candidate subsequent to the selected extended dominant code in the code candidate group corresponding to the detection timing next to the detection timing of the code, and the selection In this case, one or more code candidates to be solved by the generated code are extracted and included.

上記目的を達成するため、請求項6に記載のプログラムは、請求項1と同様の技術的思想によって実現できる。   In order to achieve the above object, the program according to claim 6 can be realized by the same technical idea as that of claim 1.

請求項1または6に記載の発明によれば、コードの検出タイミングが検知されると、取得された調情報に基づいて複数のコード候補が抽出され、該抽出された複数のコード候補から、入力された演奏データに基づいてコードが1つ選出され、該選出されたコードを含むコード進行の解決先となり得る解決先コードが抽出され、該抽出された解決先コードに至るまでに前記検知される1乃至複数のコードの検出タイミングのそれぞれについて、前記取得された調情報に基づいて、前記選出されたコードに続くコード候補が複数抽出され、該抽出された複数のコード候補から1乃至複数のコード候補群が生成され、コードの検出タイミングが検知されたときには、前記生成されたコード候補群うち、当該検出タイミングに対応するコード候補群から、前記入力された演奏データに基づいてコードが1つ選出されるので、つまり、選出されたコードから解決先コードに至るまでの経過コードも選出(検出)されるので、バラエティに富んだコードを検出することが可能となる。そしてコードの検出は、入力された演奏データに基づいてなされているので、検出されたコードは、当該演奏データに対して音楽的なつながりのあるものとなる。 According to the first or sixth aspect of the invention, when the code detection timing is detected, a plurality of code candidates are extracted based on the acquired key information, and input from the extracted plurality of code candidates. One chord is selected on the basis of the selected performance data, a solution-destination chord that can be a solution to a chord progression including the selected chord is extracted, and the detection is performed until the extracted solution-destination chord is reached. About 1 to respective detection timings of the plurality of codes, based on the obtained key information, the selected code followed code candidate is issued multiple extraction, a plurality of code candidate or al 1 issued extract a plurality of code candidates is generated, when the detection timing of the code is detected, among the generated code candidates, code candidates corresponding to the detection timing Since one chord is selected based on the inputted performance data, that is, a progress code from the selected chord to the solution destination chord is also selected (detected), so a variety of chords Can be detected. Since the chord is detected based on the input performance data, the detected chord has a musical connection to the performance data.

請求項2に記載の発明によれば、前記生成手段によって複数のコード候補群が生成された場合において、前記選出されたコードの次に進むコードとしてつながりに無理のあるコード候補が、当該選出されたコードの検出タイミングより後の検出タイミングに対応するコード候補群内にあるときに、当該無理のあるコード候補が削除されるので、当該選出されたコードに続くコードとして、つながりに無理のないコードを検出することができる。 According to the second aspect of the present invention, when a plurality of code candidate groups are generated by the generation unit, a code candidate that is impossible to connect as a code that advances next to the selected code is selected. code when in the corresponding code candidate group to the detection timing after the detection timing of, the code candidate with the irrational is deleted, as the code that follows to the selected code, reasonable in connection The code can be detected.

請求項3に記載の発明によれば、コード候補群を構成する複数のコード候補の1つ前に寄り道可能なコード候補が1乃至複数抽出されて当該コード候補群に追加されるので、さらにバラエティに富んだコードを検出することが可能となる。   According to the third aspect of the present invention, one or more code candidates that can be detoured are extracted and added to the code candidate group immediately before the plurality of code candidates constituting the code candidate group. It is possible to detect codes rich in.

請求項4に記載の発明によれば、前記選出されたコードが前記解決先コードであり、かつエクステンデッド・ドミナントの始点となり得るものであるときには、エクステンデッド・ドミナントとなるコード候補も1乃至複数抽出されて追加されるので、さらにバラエティに富んだコードを検出することが可能となる。   According to the fourth aspect of the present invention, when the selected code is the solution-destination code and can be the starting point of the extended dominant, one or more code candidates to be the extended dominant are also extracted. Therefore, a variety of codes can be detected.

請求項5に記載の発明によれば、前記選出されたコードが前記解決先コードではなく、エクステンデッド・ドミナントのコードである場合には、当該コードの検出タイミングの次の検出タイミングに対応するコード候補群には、少なくとも、前記選出されたエクステンデッド・ドミナントのコードに続くエクステンデッド・ドミナントのコード候補1乃至複数と、当該選出されたコードが解決するコード候補1乃至複数が抽出されて含まれるので、さらにバラエティに富んだコードを検出することが可能となる。   According to the fifth aspect of the present invention, when the selected code is not the resolution target code but an extended dominant code, a code candidate corresponding to a detection timing next to the detection timing of the code The group includes at least extracted candidate codes 1 to plural of the extended dominant following the selected extended dominant code and code candidates 1 to plural to be resolved by the selected code. A variety of codes can be detected.

本発明の一実施の形態に係るコード検出装置を適用した電子楽器の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the electronic musical instrument to which the chord detection apparatus which concerns on one embodiment of this invention is applied. コード検出タイミングの設定例を示す図である。It is a figure which shows the example of a setting of a code detection timing. メジャ調におけるコードの機能とディグリーネームの対応表の一例を示す図である。It is a figure which shows an example of the correspondence table of the code | cord | chord function and degree name in a measure. マイナ調におけるコードの機能とディグリーネームの対応表の一例を示す図である。It is a figure which shows an example of the correspondence table of the function of the code | cord | chord in a minor tone, and a degree name. コードデータのデータフォーマットの一例を示す図である。It is a figure which shows an example of the data format of code data. 図1の電子楽器、特にCPUが実行する、自動伴奏を使った演奏処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the performance process using an automatic accompaniment which the electronic musical instrument of FIG. 1, especially CPU performs. 図5Aの自動伴奏を使った演奏処理の続きの手順を示すフローチャートである。It is a flowchart which shows the procedure of the continuation of the performance process using the automatic accompaniment of FIG. 5A. 図5A中のノートイベント処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the note event process in FIG. 5A. 図5B中のコード検出処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the code | cord | chord detection process in FIG. 5B. 図7中の基本コード候補抽出処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the basic code candidate extraction process in FIG. 図8Aの基本コード候補抽出処理の続きの手順を示すフローチャートである。It is a flowchart which shows the procedure of the continuation of the basic code candidate extraction process of FIG. 8A. 図8B中の次に進むことのできる機能を持つディグリーネーム候補の抽出処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the extraction process of the degree name candidate with the function which can advance to the next in FIG. 8B. 図9Aの抽出処理の続きの手順を示すフローチャートである。It is a flowchart which shows the procedure of the continuation of the extraction process of FIG. 9A. 図7中の追加コード候補抽出処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the additional code candidate extraction process in FIG. 図7中のコード進行形成用コード検出処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the code detection process for chord progression formation in FIG. 図11Aのコード進行形成用コード検出処理の続きの手順を示すフローチャートである。It is a flowchart which shows the procedure of the continuation of the chord detection process code detection process of FIG. 11A. 図11Aのコード進行形成用コード検出処理の続きの手順を示すフローチャートである。It is a flowchart which shows the procedure of the continuation of the chord detection process code detection process of FIG. 11A. 図11A中の割り込み型の次に進むコード候補の抽出処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the extraction process of the code candidate which advances to the interruption type in FIG. 11A. 図12Aの抽出処理の続きの手順を示すフローチャートである。It is a flowchart which shows the procedure of the continuation of the extraction process of FIG. 12A.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は、本発明の一実施の形態に係るコード検出装置を適用した電子楽器の概略構成を示すブロック図である。   FIG. 1 is a block diagram showing a schematic configuration of an electronic musical instrument to which a chord detection device according to an embodiment of the present invention is applied.

同図に示すように、本実施の形態の電子楽器は、ユーザの演奏操作に応じて音高情報を含む演奏データを入力する鍵盤を含む演奏操作子1と、各種情報を入力するための複数のスイッチやロータリエンコーダを含む設定操作子2と、演奏操作子1の操作状態を検出する検出回路3と、設定操作子2の操作状態を検出する検出回路4と、装置全体の制御を司るCPU5と、該CPU5が実行する制御プログラムや各種テーブルデータ等を記憶するROM6と、演奏データ、各種入力情報および演算結果等を一時的に記憶するRAM7と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ8と、後述するようにCPU5が供給するコード情報に基づいて演奏データ(伴奏音を発生させるためのもの)を生成する自動伴奏装置9と、各種情報等を表示する、たとえばLCD(liquid crystal display)およびLED(light emitting diode)等を備えた表示装置10と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する記憶装置11と、外部MIDI(musical instrument digital interface)機器等の外部機器100を接続し、この外部機器100とデータの送受信を行う通信インターフェース(I/F)12と、演奏操作子1から入力された演奏データや、前記自動伴奏装置9によって生成された演奏データ等を楽音信号に変換する音源回路13と、該音源回路13からの楽音信号に各種効果を付与するための効果回路14と、該効果回路14からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム15とにより構成されている。   As shown in the figure, the electronic musical instrument of the present embodiment includes a performance operator 1 including a keyboard for inputting performance data including pitch information in accordance with a user's performance operation, and a plurality of information for inputting various information. A setting operation element 2 including a switch and a rotary encoder, a detection circuit 3 for detecting an operation state of the performance operation element 1, a detection circuit 4 for detecting an operation state of the setting operation element 2, and a CPU 5 for controlling the entire apparatus. A ROM 6 for storing a control program executed by the CPU 5 and various table data, a RAM 7 for temporarily storing performance data, various input information, calculation results, and the like, and clocking interrupt times and various times in timer interrupt processing. And an automatic accompaniment device 9 for generating performance data (for generating accompaniment sounds) based on chord information supplied by the CPU 5 as will be described later. Display device 10 for displaying various information, for example, LCD (liquid crystal display) and LED (light emitting diode), etc., and storage for storing various application programs including the control program, various music data, various data, etc. The device 11 is connected to an external device 100 such as an external MIDI (musical instrument digital interface) device, and a communication interface (I / F) 12 for transmitting / receiving data to / from the external device 100 and the performance operator 1 are input. A sound source circuit 13 for converting performance data, performance data generated by the automatic accompaniment device 9 and the like into a musical sound signal, an effect circuit 14 for applying various effects to the musical sound signal from the sound source circuit 13, and the effect Converts the musical sound signal from the circuit 14 into sound, for example, a DAC (digital-to-analog converter), an amplifier, a speaker It is constituted by a sound system 15 and the like.

上記構成要素3〜14は、バス16を介して相互に接続され、CPU5および自動伴奏装置9にはタイマ8が接続され、通信I/F12には外部機器100が接続され、音源回路13には効果回路14が接続され、効果回路14にはサウンドシステム15が接続されている。   The above components 3 to 14 are connected to each other via a bus 16, the timer 5 is connected to the CPU 5 and the automatic accompaniment device 9, the external device 100 is connected to the communication I / F 12, and the sound source circuit 13 is connected to the sound source circuit 13. An effect circuit 14 is connected, and a sound system 15 is connected to the effect circuit 14.

自動伴奏装置9は、たとえば、ROM6に予め記憶されたシーケンサソフトウェアをCPU5に実行させることによって実現され、前述のように、供給されたコード情報に基づいて演奏データを生成し、生成した演奏データを音源回路13に供給することで、伴奏音を発生させる。また、自動伴奏装置9は、たとえば、ROM6に予め記憶された各種伴奏スタイルデータからユーザが選択したいずれかの伴奏スタイルデータを再生して、演奏データを生成する機能も備えている。この機能を営むときに、自動伴奏装置9は、タイマ8から供給される時間情報に基づいて伴奏スタイルデータを再生する。なお、本発明の特徴は、自動伴奏装置9の構成や作用にある訳ではないので、自動伴奏装置9の構成や作用についてのこれ以上の説明は行わない。   The automatic accompaniment device 9 is realized, for example, by causing the CPU 5 to execute sequencer software stored in advance in the ROM 6. As described above, the automatic accompaniment device 9 generates performance data based on the supplied chord information, and generates the generated performance data. By supplying the sound source circuit 13, an accompaniment sound is generated. The automatic accompaniment device 9 also has a function of generating performance data by reproducing any of the accompaniment style data selected by the user from various accompaniment style data stored in advance in the ROM 6, for example. When performing this function, the automatic accompaniment device 9 reproduces the accompaniment style data based on the time information supplied from the timer 8. Since the features of the present invention are not in the configuration and operation of the automatic accompaniment device 9, further description of the configuration and operation of the automatic accompaniment device 9 will not be given.

記憶装置11は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(digital versatile disc)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は駆動装置から着脱可能であってもよいし、記憶装置11自体が本実施の形態の電子楽器から着脱可能であってもよい。あるいは、記憶媒体も記憶装置11も着脱不可能であってもよい。なお記憶装置11(の記憶媒体)には、前述のように、CPU5が実行する制御プログラムも記憶でき、ROM6に制御プログラムが記憶されていない場合には、この記憶装置11に制御プログラムを記憶させておき、それをRAM7に読み込むことにより、ROM6に制御プログラムを記憶している場合と同様の動作をCPU5にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。   The storage device 11 is, for example, a storage medium such as a flexible disk (FD), a hard disk (HD), a CD-ROM, a DVD (digital versatile disc), a magneto-optical disk (MO), and a semiconductor memory, and its driving device. The storage medium may be detachable from the drive device, or the storage device 11 itself may be detachable from the electronic musical instrument of the present embodiment. Alternatively, neither the storage medium nor the storage device 11 may be detachable. As described above, the storage device 11 (the storage medium) can also store the control program executed by the CPU 5. If the control program is not stored in the ROM 6, the control program is stored in the storage device 11. By reading it into the RAM 7, it is possible to cause the CPU 5 to perform the same operation as when the control program is stored in the ROM 6. In this way, control programs can be easily added and upgraded.

通信I/F12には、図示例では外部機器100が接続されているが、これに限られず、たとえばLAN(local area network)やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、記憶装置11に上記各プログラムや各種パラメータが記憶されていなければ、通信I/F12はサーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子楽器は、通信I/F12および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介して電子楽器へと配信し、電子楽器が通信I/F12を介して、これらプログラムやパラメータを受信して記憶装置11に蓄積することにより、ダウンロードが完了する。   Although the external device 100 is connected to the communication I / F 12 in the illustrated example, the present invention is not limited to this. For example, a server computer is connected via a communication network such as a LAN (local area network), the Internet, or a telephone line. You may make it do. In this case, if the above programs and various parameters are not stored in the storage device 11, the communication I / F 12 is used for downloading the programs and parameters from the server computer. The electronic musical instrument serving as a client transmits a command for requesting downloading of a program and parameters to the server computer via the communication I / F 12 and the communication network. Upon receiving this command, the server computer distributes the requested program or parameter to the electronic musical instrument via the communication network, and the electronic musical instrument receives the program or parameter via the communication I / F 12 and stores it. 11 completes the download.

なお、本実施の形態の電子楽器は、上述の構成から分かるように電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ上に構築してもよい。   The electronic musical instrument of the present embodiment is constructed on an electronic keyboard instrument as can be seen from the above configuration, but is not limited to this, and is constructed on a general-purpose personal computer to which a keyboard is externally connected. May be.

以上のように構成された電子楽器が実行する制御処理を、まず図2〜図4を参照してその概要を説明し、次に図5〜図10を参照して詳細に説明する。   A control process executed by the electronic musical instrument configured as described above will be described first with reference to FIGS. 2 to 4 and then in detail with reference to FIGS.

図2は、コード検出タイミングの設定例を示す図であり、同図には、演奏曲として4/4拍子の曲を選択し、1拍目と3拍目をコード検出基準位置に設定し、そのコード検出基準位置の250ms前から50ms後までの期間をコード検出タイミングに設定する例が示されている。なお図示例では、1拍目にはコード検出タイミングが描かれていないが、これは、どちらか一方の拍位置にコード検出タイミングを描いておけば、他方の拍位置にも同様にコード検出タイミングが設定されていることが容易に分かるからである。また、詳細は後述するが、コード検出タイミングをどの位置にどれくらいの時間幅で、どれくらいの個数(あるいは、どれくらいの頻度で)設定するかは、ユーザが自由に選択できるようになっている。   FIG. 2 is a diagram showing an example of setting chord detection timing. In the figure, 4/4 time tunes are selected as performance songs, the first and third beats are set as chord detection reference positions, An example is shown in which a period from 250 ms before to 50 ms after the code detection reference position is set as the code detection timing. In the illustrated example, the chord detection timing is not drawn for the first beat, but if the chord detection timing is drawn for one of the beat positions, the chord detection timing is similarly applied to the other beat position. This is because it is easy to see that is set. Although details will be described later, the user can freely select the code detection timing at which position, how much time width, and how many (or how often) the code detection timing is set.

本実施の形態の電子楽器は、ユーザが前記鍵盤を用いて演奏することで、リアルタイム入力された演奏データをそのまま前記音源回路13に供給して発音するとともに、リアルタイム入力された演奏データに対して音楽的なつながりのあるコードを検出して前記自動伴奏装置9に供給することにより、伴奏音も発音するようにしている。前記コード検出タイミングの期間(時間幅)は、コードを検出するために参照する演奏データを入力する期間である。つまり、コード検出タイミングの期間内に入力された演奏データのみが、伴奏音を発音するためのコードを検出する際に参照される。コードの検出は、まず、
(A)基本コード候補抽出処理
(B)追加コード候補抽出処理
の2種類の抽出処理によって、検出候補となるコード候補を抽出する。
In the electronic musical instrument of the present embodiment, when a user performs using the keyboard, the performance data input in real time is supplied to the tone generator circuit 13 as it is for sound generation, and the performance data input in real time is generated. By detecting a chord with musical connection and supplying it to the automatic accompaniment device 9, the accompaniment sound is also pronounced. The chord detection timing period (time width) is a period during which performance data to be referenced for detecting chords is input. That is, only performance data input within the chord detection timing period is referred to when detecting a chord for generating an accompaniment sound. The code detection starts with
(A) Basic code candidate extraction processing (B) Additional code candidate extraction processing is used to extract code candidates as detection candidates.

上記(A)の抽出処理では、図3A(メジャ調の場合)および図3B(マイナ調の場合)のコードの機能とディグリーネームの対応表のうち、現在の調に対応する方を参照し、前回検出されたコードの機能から次に進むことのできる機能をすべて抽出する。そして、同対応表を参照して、抽出した機能を持つディグリーネームをダイアトニック・スケール・コードに属するものも、ダイアトニック・スケール・コード以外に属するものもすべて抽出する。さらに、抽出した各ディグリーネームにそれぞれ対応するコードネームを現在の調に基づいて検出し、検出した各コードネームと、該各コードネームにそれぞれ対応するディグリーネームとを含むコードデータを生成して、前記RAM7に確保したコードリストCList(図示せず)に登録する。ただし、所定の条件が満たされた場合、ダイアトニック・スケール・コードに属するものを抽出しないことがあるが、ここでは、これ以上説明しない。   In the extraction process of (A) above, the code function and degree name correspondence table in FIG. 3A (in the case of major tone) and FIG. 3B (in the case of minor tone) is referred to the one corresponding to the current tone, Extract all functions that can proceed to the next detected code function. Then, referring to the correspondence table, all the names having the extracted functions belonging to the diatonic scale code and those belonging to other than the diatonic scale code are extracted. Further, the code name corresponding to each extracted degree name is detected based on the current key, and code data including each detected code name and the degree name corresponding to each code name is generated, It is registered in a code list CList (not shown) secured in the RAM 7. However, when a predetermined condition is satisfied, a sample belonging to the diatonic scale code may not be extracted, but will not be further described here.

図4は、コードデータのデータフォーマットの一例を示す図であり、図示例では、コードデータは、コードネーム、ディグリーネームおよび情報データによって構成され、情報データは、解決先コード情報、このコード(解決先コード)に至るまでのディグリー情報(以下、「ディグリー情報」と略して言う)およびフラグ情報によって構成されている。ただし、情報データは常に、上記3種類の情報によって構成されることを意味しない。つまり、コードデータによっては、解決先コード情報はあるが、フラグ情報がないもの、解決先コード情報はないが、フラグ情報があるもの、解決先コード情報およびフラグ情報共にないものがある。しかし、解決先コード情報がある場合には、ディグリー情報も常にあり、解決先コード情報がない場合には、ディグリー情報も常にない。上記(A)の抽出処理によってコードリストCListに登録されるコードデータはいずれも、情報データを含んでいない。なお、解決先コード情報、ディグリー情報およびフラグ情報の意味内容については、次の上記(B)の抽出処理の説明の中で説明する。   FIG. 4 is a diagram illustrating an example of the data format of the code data. In the illustrated example, the code data includes a code name, a degree name, and information data, and the information data includes resolution code information, this code (solution Degree information (hereinafter abbreviated as “degree information”) and flag information up to the first code). However, it does not mean that the information data is always composed of the three types of information. That is, depending on the code data, there is resolution destination code information but no flag information, there is no resolution destination code information, but there is flag information, and there is neither resolution destination code information nor flag information. However, when there is solution destination code information, there is always degree information, and when there is no solution destination code information, there is always no degree information. None of the code data registered in the code list CList by the extraction process (A) includes information data. The meaning contents of the solution code information, the degree information, and the flag information will be described in the following description of the extraction process (B).

上記(B)の抽出処理は、
(B1)割り込み型コード進行を形成するためのコード候補の抽出処理
(B2)エクステンデッド型コード進行を形成するためのコード候補の抽出処理
によって構成されている。そして、上記割り込み型コード進行とは、本実施の形態では、
(B1a)メジャ系セカンダリードミナント/ツーファイブ → ダイアトニック・スケール・コードのうちの所定のコード(メジャ系解決先コード)
(B1b)マイナ系セカンダリードミナント/ツーファイブ → ダイアトニック・スケール・コードのうちの所定のコード(マイナ系解決先コード)
(B1c)ダブルドミナント → ダイアトニック・スケール・コードのうちのドミナント7th系のコード(ドミナント7th系解決先コード)
であり、上記エクステンデッド型コード進行とは、本実施の形態では、
(B2a)エクステンデッド・ドミナント → ダイアトニック・スケール・コード
(B2b)エクステンデッド・ドミナント → エクステンデッド・ドミナント →ダイアトニック・スケール・コード
である。
The extraction process (B) above is
(B1) Chord candidate extraction process for forming an interrupted chord progression (B2) Chord candidate extraction process for forming an extended chord progression. And in the present embodiment, the interrupt type chord progression is
(B1a) Major secondary dominant / two-five → Predetermined code of diatonic scale code (major system solution target code)
(B1b) Minor secondary dominant / two-five → Predetermined code of diatonic scale code (minor resolution target code)
(B1c) Double dominant → Diatonic scale code dominant 7th code (dominant 7th system solution code)
In the present embodiment, the extended chord progression is
(B2a) Extended dominant → diatonic scale code (B2b) Extended dominant → extended dominant → diatonic scale code.

上記(B1)の抽出処理では、まず、前記(A)の抽出処理によってコードリストCListに登録されたコードデータから、上記(B1a)のメジャ系解決先コードとなるもの、上記(B1b)のマイナ系解決先コードとなるもの、および、上記(B1c)のドミナント7th系解決先コードとなるものをそれぞれ抽出する。ここで、解決先コードとは、安定的なコード進行、つまり上記(A)の抽出処理によって抽出されるコードデータを繋げて行くことによって形成される、骨格となるコード進行(以下、「骨格コード進行」という)に異質なコード進行(つまり、上記割り込み型コード進行)を割り込ませた場合に、この異質なコード進行に調和しながら再度安定化させるコードをいう。   In the extraction process of (B1), first, the code data registered in the code list CList by the extraction process of (A) becomes the major system solution target code of (B1a), the minor of (B1b) The system solution destination code and the (B1c) dominant 7th system solution code are extracted. Here, the solution destination code is a stable chord progression, that is, a chord progression to be a skeleton formed by connecting chord data extracted by the extraction process (A) (hereinafter referred to as “skeleton chord”). When a different chord progression (that is, the above-mentioned interrupted chord progression) is interrupted, the chord is stabilized again in harmony with this extraordinary chord progression.

次に、抽出された各解決先コードにそれぞれ進行する割り込み型コード進行の始点となる各コードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに「解決先コード情報」、「ディグリー情報」および「フラグ情報」を記憶したものを生成し、コードリストCListに追加する。ここで、「解決先コード情報」とは、当該コードデータに対する解決先コードの情報であり、「解決先コード情報」には、本実施の形態では「解決先コードのルートの度数」が記憶される。「ディグリー情報」とは、解決先コードに至るまでのディグリーネームの推移(コード進行)を示す情報であり、「ディグリー情報」には、本実施の形態では「第1のディグリーネーム of 第2のディグリーネーム of 解決先コードのルートの度数」(ただし、「第2のディグリーネーム」がない場合もある)が記憶される。「フラグ情報」とは、当該コードデータの種類を示すものであり、「フラグ情報」には、割り込み型コード進行を形成するためのコードであることを示す「割り込み」が記憶される。   Next, each code that is the starting point of the interrupt type code progression that proceeds to each extracted solution destination code is detected, and each of the code data includes a code name and a degree name corresponding to each detected code, The code data information data storing “resolution code information”, “degree information” and “flag information” is generated and added to the code list CList. Here, the “resolved code information” is information of the resolved code for the code data, and “resolved code information” stores “the frequency of the root of the resolved code” in the present embodiment. The The “degree information” is information indicating the transition of the degree name (code progression) up to the solution destination code. In the present embodiment, the “degree information” is “first degree name of the second degree”. "Degree name of the frequency of the route of the solution code" (however, there may be no "second degree name") is stored. “Flag information” indicates the type of the code data, and “Flag information” stores “interrupt” indicating a code for forming an interrupt type code progression.

前記(B2)の抽出処理では、前記エクステンデッド型コード進行の始点となる各コードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに「フラグ情報」を記憶したものを生成し、コードリストCListに追加する。このとき「フラグ情報」には、検出したコードの種類に応じて、「エクステンデッドV7/V7sus4」または「エクステンデッド♭II7」のいずれかが記憶される。   In the extraction process of (B2), each chord that is a starting point of the extended chord progression is detected, and each chord data includes a chord name and a degree name corresponding to each chord detected, and information on each chord data Data in which “flag information” is stored is generated and added to the code list CList. At this time, either “Extended V7 / V7sus4” or “Extended ♭ II7” is stored in the “flag information” according to the type of the detected code.

なお、(B)の抽出処理が実行されると、(B1)の抽出処理は常に実行されるが、(B2)の抽出処理は、所定の条件が満たされた場合(後述するEP(extended plus)フラグがセット状態の場合)に実行される。どの場合にEPフラグをセット/リセットするかについては、制御処理の詳細で後述する。   When the extraction process of (B) is executed, the extraction process of (B1) is always executed, but the extraction process of (B2) is performed when a predetermined condition is satisfied (EP (extended plus described later) ) When the flag is set). In which case the EP flag is set / reset will be described later in detail of the control process.

このようにしてコードリストCListに登録されたコードデータの中から、入力された演奏データに基づいてコードデータを1つ選出し、選出したコードデータを前記RAM7に確保した検出コードChord(図示せず)に記憶する。   Thus, one chord data is selected from the chord data registered in the chord list CList based on the input performance data, and the chord data thus selected is detected code Chord (not shown) secured in the RAM 7. ).

検出コードChordが、前記(A)の抽出処理によって抽出された基本コードであれば、次のコード検出タイミングでも、(A)および(B)の抽出処理が実行されるが、検出コードChordが、前記(B)の抽出処理によって抽出された追加コードであれば、次のコード検出タイミングでは、
(C)コード進行形成用コード検出処理
が実行される。
If the detection code Chord is a basic code extracted by the extraction process of (A), the extraction process of (A) and (B) is executed at the next code detection timing, but the detection code Chord is If it is an additional code extracted by the extraction process of (B), at the next code detection timing,
(C) The chord progression forming chord detection process is executed.

この(C)コード進行形成用コード検出処理では、RAM7に確保したスタートコードSChord(図示せず)に記憶されている前回検出されたコードデータを始点とし、当該コードデータの種類(当該コードデータの情報データ内のフラグ情報が「割り込み」か「エクステンデッドV7/V7sus4」あるいは「エクステンデッド♭II7」か)に応じて、割り込み型コード進行またはエクステンデッド型コード進行のいずれか一方を形成するためのコードデータを1つ選出し、選出したコードデータを検出コードChordに記憶する。   In this (C) code progression formation code detection process, the code data detected last time stored in the start code SChord (not shown) secured in the RAM 7 is used as the start point, and the type of the code data (the code data Depending on whether the flag information in the information data is “Interrupt”, “Extended V7 / V7sus4” or “Extended ♭ II7”), the code data to form either interrupt type code progression or extended type code progression One is selected, and the selected code data is stored in the detection code Chord.

この(C)コード進行形成用コード検出処理は、その後、割り込み型コード進行またはエクステンデッド型コード進行の終点となるコードデータが検出されるまで継続して実行され、当該終点となるコードデータが検出されると、検出コードChordの情報データ内のフラグ情報が「End」に設定される。これにより、次のコード検出タイミングでは、再度(A)および(B)の抽出処理が実行されるようになる。   This (C) chord progression forming chord detection process is subsequently executed until the chord data serving as the end point of the interrupt chord progression or the extended chord progression is detected, and the chord data serving as the end point is detected. Then, the flag information in the information data of the detection code Chord is set to “End”. Thereby, at the next code detection timing, the extraction processes (A) and (B) are executed again.

なお、割り込み型コード進行を形成するためのコードデータの検出中には、「寄り道」となるコードデータ(情報データ内のフラグ情報に「寄り道」が記憶されたもの)も検出可能に構成されている。   During the detection of the code data for forming the interrupt type chord progression, the code data that becomes the “detour” (the “departure” is stored in the flag information in the information data) can also be detected. Yes.

また、各コード検出タイミングで検出された検出コードChordは、自動伴奏装置9に出力されて発音される。   In addition, the detection code Chord detected at each chord detection timing is output to the automatic accompaniment device 9 and pronounced.

前記(A)および(B)の抽出処理または前記(C)の検出処理を開始してから1つのコードを選出して自動伴奏装置9に出力するまでのコード検出処理(後述する「制御処理の詳細」では、「(5)コードの検出タイミング時処理」に相当する)は、図2の例では、1拍目と3拍目に実行されるが、より厳密には、当該各拍のコード検出タイミングの期間の末尾、つまり時間T3に実行の開始が指示される。これは、コード検出処理で参照する演奏データの検出期間をコード検出タイミングの全期間、つまり期間T1〜T3としているからである。   The chord detection process (from “control process” to be described later) from the start of the extraction process of (A) and (B) or the detection process of (C) until a single chord is selected and output to the automatic accompaniment device 9 In the “detail”, “corresponding to (5) chord detection timing processing” is executed on the first beat and the third beat in the example of FIG. 2, but more strictly, the chord of each beat The start of execution is instructed at the end of the detection timing period, that is, at time T3. This is because the performance data detection period referred to in the chord detection process is the entire period of the chord detection timing, that is, the periods T1 to T3.

このように本実施の形態の電子楽器では、次に進行するコードとして、音楽的なつながりのあるコード候補を抽出し、抽出したコード候補の中から、リアルタイム入力された演奏データと調和するコードを検出するようにしたので、リアルタイム演奏に対して音楽的なつながりのあるコードを検出することができる。そして、検出されたコードは常に、リアルタイム入力された演奏データと調和している。   As described above, in the electronic musical instrument of the present embodiment, chord candidates that are musically connected are extracted as chords to proceed next, and chords that match the performance data input in real time are extracted from the extracted chord candidates. Since it has been detected, it is possible to detect chords that are musically connected to real-time performances. The detected chord is always in harmony with the performance data inputted in real time.

調性音楽で使用される全コード進行には、トニックからドミナントなどの機能的進行とクリシェなどの非機能的進行に分類される骨格コード進行以外に、骨格コード進行に割り込むコード進行(たとえば、セカンダリードミナントやそのツーファイブ、エクステンデッド・ドミナント)がある。この骨格に割り込む形のコード進行は、ある時点のコードに対して次に進むことができるコードという観点では候補を挙げることができない。その理由は、ある解決先コードに至るまでに経過するコードが割り込む形になるからである。本実施の形態では、骨格コード進行を形成するためのコード候補を複数抽出しているときに、その複数のコード候補から解決先コードとなり得るものを抽出し、抽出した各解決先コードに解決するコード候補および当該各解決先コードに解決するまでに経過するコード候補を検出して、コード候補に追加するようにしたので、調性音楽で使用される全コード進行のうち、骨格コード進行に割り込む形のコード進行となるコード候補の追加およびコードの検出が可能になる。   All chord progressions used in tonal music include chord progressions that interrupt skeletal chord progressions (for example, secondary progressions), in addition to skeletal chord progressions that are classified as functional progressions such as tonic to dominant and non-functional progressions such as cliche. Dominant and its two-five, extended dominant). The chord progression that interrupts the skeleton cannot be a candidate from the viewpoint of a chord that can proceed to a chord at a certain point in time. The reason is that a code that passes until reaching a certain solution destination code is interrupted. In the present embodiment, when a plurality of chord candidates for forming a skeleton chord progression are extracted, a chord that can be a solution-destination code is extracted from the plurality of chord candidates and resolved to each extracted solution-destination code. Since chord candidates and chord candidates that have passed until they are resolved to the respective chords are detected and added to the chord candidates, out of all chord progressions used in tonal music, interrupt the skeletal chord progression It is possible to add chord candidates and detect chords that form chord progressions.

あるコード検出タイミングで抽出されたコード候補のいずれかに解決するコード(候補)が検出された場合、その次のコード検出タイミングでは、直前のコード検出タイミングで検出されたコードが解決するコードかその代理コードが検出される可能性が極めて高い。本実施の形態では、検出される可能性が極めて高いコード候補を余さず挙げるようにしたので、コード進行データベースを用いる従来の方法より柔軟でバラエティに富んだコード進行を生成することができる。また本実施の形態では、解決先のコード検出に至るまでに複数のコードを経過する可能性を持たせているので、一層バラエティに富んだコード進行を生成することができる。   When a code (candidate) that resolves to one of the code candidates extracted at a certain code detection timing is detected, at the next code detection timing, the code that was detected at the immediately preceding code detection timing is resolved or the code The possibility that a surrogate code is detected is extremely high. In the present embodiment, chord candidates that are very likely to be detected are all listed, so that chord progressions that are more flexible and variety than conventional methods using chord progression databases can be generated. Further, in the present embodiment, since there is a possibility that a plurality of chords will elapse until the solution chord is detected, it is possible to generate a more varied chord progression.

さらに本実施の形態では、セカンダリードミナントからの解決やツーファイブ進行、さらにそこからのドミナント7thコードの連続など、演奏途中に現れ、どこまで続くか定まらないようなコード進行を検出することができる。   Furthermore, in the present embodiment, it is possible to detect chord progressions that appear during the performance, such as solutions from secondary dominants, two-five progressions, and continuation of dominant 7th chords from there, and it is not determined how long they will continue.

また本実施の形態では、骨格コード進行を形成するためのコードデータの検出処理と、骨格コード進行に割り込む形のコード進行を形成するためのコードデータの検出処理とを独立に行うようにしているので、骨格コード進行に割り込む形のコード進行の始まりになるコードが検出されると、後者の検出処理でのみコードデータの検出を行うことで、その後に当該割り込む形のコード進行が続くようにコードデータの検出を制御することが可能となる。これにより、入力された演奏データが同じであっても、どちらの検出処理を用いてコードデータの検出を行ったかに応じて、検出されるコードデータが変わる可能性がある。その結果、音楽的なつながりを考慮しつつ、単調でないコード進行を得ることができる。   Further, in the present embodiment, the chord data detection process for forming the skeleton chord progression and the chord data detection process for forming the chord progression interrupting the skeleton chord progression are performed independently. Therefore, when a chord that begins the chord progression that interrupts the skeleton chord progression is detected, the chord data is detected only in the latter detection process, so that the chord progression of the interrupting chord continues thereafter. Data detection can be controlled. Thereby, even if the inputted performance data is the same, the detected chord data may change depending on which detection process is used to detect the chord data. As a result, it is possible to obtain a chord progression that is not monotonous while considering musical connections.

さらに上記両検出処理は、演奏の流れに応じて自動的にいずれかの検出処理に切り替えられるので、ユーザはコードを検出させるために意識した演奏をしなくてもよく、自由な演奏に専念することができる。   Furthermore, since both the detection processes are automatically switched to one of the detection processes according to the performance flow, the user does not have to perform a conscious performance in order to detect chords, but concentrates on a free performance. be able to.

また本実施の形態では、エクステンデッド・ドミナント(V7/V7sus4の連続/♭II7の連続)に進む可能性も考慮され、さらに、骨格に割り込むコード進行内で次に進む可能性のあるコードの1つ前に寄り道するかもしれないコード候補も抽出されるようになっている。これにより、骨格コード進行に割り込む形のコード進行が発生した際に、その後起こる可能性のあるより多くのコード進行に対応することができるようになっている。   Also, in this embodiment, the possibility of proceeding to an extended dominant (continuous V7 / V7sus4 / continuous II7) is also considered, and one of the chords that may advance to the next in the chord progression that interrupts the skeleton. Code candidates that may detour before are also extracted. As a result, when a chord progression that interrupts the skeletal chord progression occurs, it is possible to deal with more chord progressions that may occur thereafter.

次に、この制御処理を詳細に説明する。   Next, this control process will be described in detail.

図5Aおよび図5Bは、本実施の形態の電子楽器、特にCPU5が実行する、自動伴奏を使った演奏処理の手順を示すフローチャートである。本実施の形態の電子楽器では、ユーザが演奏操作子1を用いてリアルタイム演奏する際の演奏モードとして、自動伴奏装置9を作動させずに、演奏操作子1を用いて入力された演奏データに応じた楽音を発音させる第1の演奏モードと、自動伴奏装置9を作動させて、演奏操作子1を用いて入力された演奏データに応じた楽音とともに、自動伴奏装置9によって生成された演奏データに応じた楽音(伴奏音)も発音させる第2の演奏モードの2種類の演奏モードを備えている。通常の演奏モード、つまり、本実施の形態の電子楽器の電源をオンしたときに最初に選択される演奏モードは、第1の演奏モードであるので、第2の演奏モードに移行するには、ユーザによる所定の移行指示が必要となる。上記「自動伴奏を使った演奏処理」は、この移行指示がなされたときに起動される処理である。なお本実施の形態では、本発明の特徴を「自動伴奏を使った演奏処理」内にすべて盛り込み、この「自動伴奏を使った演奏処理」を用いて本発明の特徴を説明するようにしたので、「自動伴奏を使わない演奏処理」についての説明は行わない。したがって、以下「自動伴奏を使った演奏処理」を「演奏処理」と略して言う。ただし、本発明の特徴を「自動伴奏を使わない演奏処理」内にすべて盛り込み、この「自動伴奏を使わない演奏処理」を用いて本発明の特徴を説明することもできる(この場合には、伴奏音は発生しない)ので、「自動伴奏を使った演奏処理」を用いて本発明の特徴を説明したのは、便宜上のことに過ぎない。   5A and 5B are flowcharts showing a procedure of performance processing using automatic accompaniment executed by the electronic musical instrument of the present embodiment, particularly the CPU 5. In the electronic musical instrument according to the present embodiment, the performance data input using the performance operator 1 without operating the automatic accompaniment device 9 is used as a performance mode when the user performs a real-time performance using the performance operator 1. The performance data generated by the automatic accompaniment device 9 together with the musical performance corresponding to the performance data input using the performance operator 1 by operating the automatic accompaniment device 9 by generating the first performance mode for generating the corresponding musical sound. There are two types of performance modes: a second performance mode that also generates musical sounds (accompaniment sounds) according to the sound. The normal performance mode, that is, the performance mode that is selected first when the electronic musical instrument of the present embodiment is turned on is the first performance mode, so to shift to the second performance mode, A predetermined transition instruction from the user is required. The “performance process using automatic accompaniment” is a process that is started when this transition instruction is issued. In this embodiment, all the features of the present invention are included in the “performance processing using automatic accompaniment”, and the features of the present invention are explained using this “performance processing using automatic accompaniment”. , “Performance processing without automatic accompaniment” will not be described. Therefore, “performance processing using automatic accompaniment” is hereinafter abbreviated as “performance processing”. However, all the features of the present invention are included in the “performance processing that does not use automatic accompaniment”, and the features of the present invention can be described using this “performance processing that does not use automatic accompaniment” (in this case, Since no accompaniment sound is generated), the feature of the present invention has been described using “performance processing using automatic accompaniment” for convenience only.

本演奏処理は、主として、
(1)起動時処理(ステップS1〜S4)
(2)自動伴奏のスタート時処理(ステップS7)
(3)自動伴奏のストップ時処理(ステップS9)
(4)ノートイベント処理(ステップS12)
(5)コードの検出タイミング時処理(図5BのステップS14〜S19)
によって構成されている。
This performance process is mainly
(1) Start-up processing (steps S1 to S4)
(2) Automatic accompaniment start process (step S7)
(3) Automatic accompaniment stop process (step S9)
(4) Note event processing (step S12)
(5) Processing at code detection timing (steps S14 to S19 in FIG. 5B)
It is constituted by.

本演奏処理が起動されると、前記(1)の起動時処理が1回実行された後、自動伴奏のスタート指示があるまで待機状態となり(ステップS6→S5→S6)、自動伴奏のスタート指示があると、前記(2)の自動伴奏のスタート時処理が実行され、これに続いて、前記(4)および(5)の各処理が適宜実行される。そして(4)および(5)の各処理は、自動伴奏のストップ指示があるまで(ステップS8)、あるいは第1の演奏モードに戻る指示があるまで(ステップS5)、適宜繰り返し実行される。なお、自動伴奏のストップ指示があると、前記(3)の自動伴奏のストップ時処理が実行された後、伴奏スタイルなどの設定変更があったかどうか判定され(ステップS10)、設定変更があったときには、前記(1)の起動時処理に戻る一方、設定変更がなかったときには、前記待機状態に戻る。また、第1の演奏モードに戻る指示があると、本演奏処理は終了する(ステップS5→終了)。   When the performance process is started, after the start-up process of (1) is executed once, it enters a standby state until an automatic accompaniment start instruction is issued (steps S6 → S5 → S6), and an automatic accompaniment start instruction is issued. If there is, the automatic accompaniment start process of (2) is executed, and subsequently, the processes of (4) and (5) are executed as appropriate. The processes (4) and (5) are repeatedly executed as appropriate until an instruction to stop automatic accompaniment (step S8) or an instruction to return to the first performance mode (step S5). If there is an automatic accompaniment stop instruction, it is determined whether the accompaniment style or the like has been changed after the automatic accompaniment stop process (3) has been executed (step S10). On the other hand, the process returns to the start-up process of (1) above, but returns to the standby state when there is no setting change. If there is an instruction to return to the first performance mode, the performance process ends (step S5 → end).

前記(1)の起動時処理は、
(11)演奏開始前の設定処理(ステップS1)
(12)コード検出タイミングおよび各種ルールの設定処理(ステップS2)
(13)初期化処理(ステップS3)
(14)コード検出タイミングの始点および終点の算出設定処理(ステップS4)
によって構成されている。
The startup process of (1) is as follows.
(11) Setting process before start of performance (step S1)
(12) Code detection timing and various rule setting processing (step S2)
(13) Initialization process (step S3)
(14) Calculation setting process of start point and end point of code detection timing (step S4)
It is constituted by.

この(1)起動時処理に処理が進むと、まずCPU5は、前記(11)の演奏開始前の設定処理を実行する。この(11)演奏開始前の設定処理では、CPU5は、演奏テンポ、拍子、伴奏スタイル、ボリューム値および演奏音色などの各項目の設定を行う。各項目は、ユーザに設定すべき値あるいは種類を問い合わせ、これに応じてユーザが入力あるいは選択した値あるいは種類を設定するようにしてもよいし、デフォルト設定されたもの、あるいは前回設定されたものをそのまま、あるいは一部変更して設定するようにしてもよい。   When the process proceeds to the (1) start-up process, the CPU 5 first executes the setting process before the start of the performance (11). In the setting process before the start of the performance (11), the CPU 5 sets items such as the performance tempo, time signature, accompaniment style, volume value, and performance tone color. Each item inquires about the value or type to be set by the user, and the value or type input or selected by the user may be set accordingly, or it may be set by default or previously set May be set as they are or with some changes.

次にCPU5は、処理を前記(12)のコード検出タイミングおよび各種ルールの設定処理に進める。この(12)コード検出タイミングおよび各種ルールの設定処理では、CPU5は、コード検出タイミングの設定ルールと、それ以外の各種ルールを設定する。   Next, the CPU 5 advances the processing to (12) code detection timing and various rule setting processing. In this (12) code detection timing and various rule setting processing, the CPU 5 sets a code detection timing setting rule and other various rules.

コード検出タイミングの設定ルールとは、具体的には、コードを検出するタイミングとして、時間幅を設けるのか、あるいは時間幅を設けずに時点とするのか、また、時間幅を設けるのであれば、どの時点を基準位置として、その前後にどのくらいの時間幅を設けるのか、あるいは時点とするのであれば、どの時点とするのかということである。時間幅を設ける例としては、前記図2で示したように、2拍毎に(4/4拍子が選択された場合には、たとえば1拍目と3拍目)拍位置をコード検出基準位置として、250ms前から50ms後までの期間とすることが挙げられる。図示例では、時間幅を設定する単位として“ms”を採用したが、もちろんこれに限らず、音符長であってもよい。また、コード検出基準位置は2拍毎の拍位置に限らず、1拍毎の拍位置であってもよいし、テンポが変化したときに、たとえば2拍毎から1拍毎に変動するようにしてもよいし、拍に限らず、小節毎の所定位置(たとえば、先頭位置)であってもよい。さらに、コード検出基準位置をどこに設定するかは、テンポ値や伴奏スタイルによって決まっていてもよい。一方、時点の例としては、時間幅を設ける場合で例示した各種コード検出基準位置、つまり、所定拍毎の拍位置や小節毎の所定位置、あるいは、ユーザが、たとえば前記設定操作子2に含まれる所定の操作子を操作した時点や、所定の拍内で、ユーザが所定の操作子を操作した時点などが考えられる。なお本実施の形態では、コード検出タイミングの設定ルールとして、前記図2の例で示したルールが選択設定されているものとする。   Specifically, the code detection timing setting rule is whether a time width is provided as a timing for detecting a code, whether a time width is provided without a time width, or if a time width is provided. With the time point as a reference position, how much time width is provided before and after that, or if it is time point, what time point is set. As an example of providing the time width, as shown in FIG. 2, the beat detection position is the chord detection reference position every two beats (for example, the first and third beats when 4/4 time is selected). As a period from 250 ms before to 50 ms later. In the illustrated example, “ms” is adopted as a unit for setting the time width, but it is not limited to this, and may be a note length. In addition, the chord detection reference position is not limited to a beat position every two beats, and may be a beat position for every beat. When the tempo changes, for example, the chord detection reference position changes from every two beats to every beat. Alternatively, the position is not limited to a beat, and may be a predetermined position (for example, the start position) for each measure. Further, where to set the chord detection reference position may be determined by the tempo value and the accompaniment style. On the other hand, as an example of the time point, various code detection reference positions exemplified in the case of providing a time width, that is, a beat position for each predetermined beat, a predetermined position for each measure, or a user is included in the setting operator 2, for example. It is conceivable that the predetermined operating element is operated or the user operates the predetermined operating element within a predetermined beat. In this embodiment, it is assumed that the rule shown in the example of FIG. 2 is selected and set as the code detection timing setting rule.

各種ルールとしては、(R1)調情報の検出ルールや(R2)コードの選出ルールなどを挙げることができる。   Examples of the various rules include (R1) tone information detection rules and (R2) chord selection rules.

上記(R1)の調情報の検出ルールとしては、たとえば、演奏前にユーザに調情報を問い合わせ、これに応じてユーザが入力した調情報を検出(取得)するというルールや、ユーザの演奏操作に応じて入力された演奏データを解析して、随時調情報を検出するというルールなどが考えられる。なお本実施の形態では、調情報は、主音名+メジャ/マイナによって表現したものを入力あるいは検出するものとする。また、演奏データを解析して調情報を検出する方法は、公知のものを用いればよい。そして、調情報を随時検出する方法を採用した場合には、コードが選出される度に(後述する図7のステップS47等を参照)、そのとき検出された調情報を当該選出されたコードに対応付けて記憶しておくとよい。   As the detection rule of the key information (R1), for example, a rule that the key information is inquired to the user before the performance and the key information input by the user is detected (acquired) in response thereto, or the user's performance operation is used. There may be a rule of analyzing performance data input in response to detecting key information at any time. In the present embodiment, it is assumed that the key information is input or detected as the main note name + measure / minor. As a method for analyzing performance data and detecting key information, a known method may be used. When a method for detecting key information at any time is adopted, every time a chord is selected (see step S47 in FIG. 7 to be described later), the key information detected at that time is used as the selected chord. It is good to store it in association.

前記(R2)のコードの選出ルールとしては、たとえば、
(R2a)各コードに予め優先順位を付けておき(たとえば、ダイアトニック・スケール・コードのトニックコードを上位にするなど)、候補コードのうち、最上位のコードを選出するというルール
(R2b)参照対象の演奏データの全ての音名と候補コードの各コードの構成音との一致度合い(完全一致、3音以上が一致、2音が一致など)が最も高いコードを選出するというルール
などを挙げることができる。また、候補コードの各コードの根音が参照対象の演奏データに含まれることを追加条件にしてもよい。
As a rule for selecting the code of (R2), for example,
(R2a) Prioritize each code in advance (for example, the tonic code of the diatonic scale code is made higher), and the rule (R2b) of selecting the highest code among the candidate codes is referred (R2b) A rule that selects the chord with the highest degree of match (complete match, match 3 or more, 2 match, etc.) between all note names of the target performance data and the constituent sounds of the candidate chords. be able to. Further, an additional condition may be that the root of each chord of the candidate chord is included in the performance data to be referenced.

また、(12)コード検出タイミングおよび各種ルールの設定処理では、メジャ調でのドミナント(D)→サブドミナント・マイナ(SM)進行(インターラプテッド・ケーデンス)を通常時も許可するかどうかも設定できるようになっている。ここで、「通常時も許可」とは、前記(A)の基本コード候補抽出処理時でも、メジャ調においてインターラプテッド・ケーデンスとなるコード進行(を形成するコード機能を有するディグリーネーム)の抽出を許可することを意味する。そして、「通常時も許可」が設定された場合には、前記図3Aのメジャ調におけるコードの機能とディグリーネームの対応表中、機能が「D:ドミナント」である「次に進む事の出来る機能」に“SM”が追加されて、「次に進む事の出来る機能」は“T”,“D”および“SM”の3種類となる一方、「通常時は不許可」が設定された場合には、当該「次に進む事の出来る機能」には“SM”が追加されずに、“T”および“D”の2種類となる。図3Aの当該「次に進む事の出来る機能」中、“SM”がカッコ書きで示されているのは、“SM”が機能として選択される場合と選択されない場合の両方があり得るからである。本実施の形態では、図3Aの対応表は前記ROM6に予め記憶されており、必要なときに読み出して参照するようにしているが、「通常時も許可」が設定されたかどうかで、対応表のうちの一部データ(“SM”)を採用するかどうかを判断するのは面倒なので、「通常時も許可」が設定された場合の対応表と「通常時は不許可」が設定された場合の対応表を予め別々に作成して記憶しておき、必要に応じて必要な方を読み出して参照すればよい。   Also, (12) In the chord detection timing and various rule setting processing, it is also set whether or not the dominant (D) → subdominant minor (SM) progression (interrupted cadence) is allowed in normal mode. It can be done. Here, “Allow at normal time” means extraction of a chord progression (a degree name having a chord function that forms an interrupted cadence in a major tone) even during the basic chord candidate extraction process of (A). Means to allow. If “Allow at normal time” is set, the function is “D: dominant” in the correspondence table of chord functions and degree names in the major tone of FIG. "SM" is added to "Function", and "Telefunction that can proceed to next" has three types of "T", "D", and "SM", while "Unauthorized during normal use" is set In this case, “SM” is not added to the “function that can proceed to the next”, and there are two types of “T” and “D”. In FIG. 3A, “SM” is shown in parentheses because “SM” can be selected as a function and not selected as a function. is there. In the present embodiment, the correspondence table in FIG. 3A is stored in advance in the ROM 6 and is read out and referred to when necessary, but the correspondence table depends on whether “Allow normal” is set. It is cumbersome to decide whether or not to use some data ("SM"), so the correspondence table when "Allow at normal time" is set and "Not allowed at normal time" are set A correspondence table for each case may be created and stored separately in advance, and the necessary one may be read and referenced as necessary.

なお、(12)コード検出タイミングおよび各種ルールの設定処理でも、前記(11)演奏開始前の設定処理と同様に、各ルールは、ユーザに設定すべきルール内容を問い合わせ、これに応じてユーザが入力あるいは選択した内容を設定するようにしてもよいし、デフォルト設定されたものあるいは前回設定されたものをそのまま、あるいは一部変更して設定するようにしてもよい。   In the setting process of (12) chord detection timing and various rules, each rule inquires about the contents of the rule to be set by the user, and the user responds accordingly. The input or selected content may be set, or the default setting or the previous setting may be set as it is or after being partially changed.

次にCPU5は、処理を前記(13)の初期化処理に進める。この(13)初期化処理では、CPU5は、前記RAM7上に確保した次の各領域および各フラグを初期化する。すなわち、
ノートイベントリストNList:コード検出タイミングの期間内に入力されたノートオンイベントに対応するノートイベント情報(音高+入力タイミング)を登録するリストである;
コード検出タイミングの始点sTime:コード検出タイミングの始点を記憶しておく領域である;
コード検出タイミングの終点eTime:コード検出タイミングの終点を記憶しておく領域である;
調情報Key:前記設定された調検出ルールに従って検出された調情報を記憶しておく領域である;
コードリストCList:検出対象となるコードデータの候補を登録するリストである;
検出コードChord:ノートイベントリストNListに登録されたノートイベント情報に基づいてコードリストCListから選出した1つのコードデータを検出コードとして記憶しておく領域である;
スタートコードSChord:前記骨格コード進行の生成中に、当該骨格コード進行に割り込ませる前記割り込み型コード進行またはエクステンデッド型コード進行を生成する場合があり、その場合に、当該割り込み型コード進行またはエクステンデッド型コード進行のスタート(始点)となるコードデータを記憶しておく領域である;
次コードリストNCList:割り込み型コード進行を生成しているときに、現在の検出コードChordから次に進行するコードデータの候補を登録するリストである;
出力結果リストRList:調情報Keyおよび検出コードChordを登録するリストである;
前回のディグリーネームLDN:前回の検出コードChordが持つディグリーネームを記憶しておく領域である;
前回の機能LF:前回の検出コードChordに対応する機能を記憶しておく領域である;
の各領域をクリアするとともに、
通常コード検出フラグ:通常コード(本実施の形態では、骨格コード進行を形成するコードデータ)が検出されたときにセット(“1”)され、通常コード以外のコードが検出されたときにリセット(“0”)されるフラグである;
EPフラグ:前記(B)の追加コード候補抽出処理で、エクステンデッド・ドミナントとなるコードデータの候補を抽出して、コードリストCListに追加するときにセットされ、当該コードデータの候補を抽出しないときにリセットされるフラグである;
の前者のフラグをセットし、後者のフラグをリセットする。
Next, the CPU 5 advances the process to the initialization process (13). In this (13) initialization process, the CPU 5 initializes each next area and each flag secured on the RAM 7. That is,
Note event list NList: a list for registering note event information (pitch + input timing) corresponding to a note-on event input within the chord detection timing period;
Code detection timing start point sTime: an area for storing the code detection timing start point;
Code detection timing end point eTime: an area for storing the code detection timing end point;
Key information Key: an area for storing key information detected according to the set key detection rule;
Code list CList: a list for registering code data candidates to be detected;
Detection code Chord: an area for storing one code data selected from the code list CList based on the note event information registered in the note event list NList as a detection code;
Start code SChord: In some cases, during generation of the skeleton code progression, the interrupt type chord progression or extended type chord progression that interrupts the skeleton chord chord progression is generated. In this case, the interrupt type chord progression or extended chord progression is generated. An area for storing chord data that will be the start (start point) of progress;
Next code list NCList: This is a list for registering candidates of code data to proceed next from the current detection code Chord when generating an interrupt type code progression;
Output result list RList: a list for registering key information Key and detection code Chord;
Previous degree name LDN: an area for storing the degree name of the previous detection code Chord;
Previous function LF: an area for storing a function corresponding to the previous detection code Chord;
While clearing each area of
Normal code detection flag: set (“1”) when a normal code (in this embodiment, code data forming a skeleton code progression) is detected, and reset when a code other than a normal code is detected ( The flag to be “0”);
EP flag: This is set when the code data candidate to be an extended dominant is extracted and added to the code list CList in the additional code candidate extraction process of (B), and when the code data candidate is not extracted. The flag to be reset;
Set the former flag and reset the latter flag.

次にCPU5は、処理を前記(14)のコード検出タイミングの始点および終点の算出設定処理に進める。この(14)コード検出タイミングの始点および終点の算出設定処理では、CPU5は、前記設定されたコード検出タイミングの設定ルールに従って、最初のコード検出タイミングの始点および終点を算出し、算出した始点を前記始点sTimeに記憶(設定)するとともに、算出した終点を前記終点eTimeに記憶(設定)する。ただし本実施の形態では、コード検出タイミングとして、曲の先頭拍の拍位置をコード検出基準位置に取るとともに、その拍位置からさらに250ms前をコード検出タイミングの始点に取るのに対して、曲は先頭拍から開始されるので、曲の開始時に、その開始位置より前の位置を算出して、始点sTimeに設定するのは無意味である。したがって、この場合、始点sTimeには先頭拍の拍位置、つまりコード検出基準位置を設定することが好ましい。しかしこの場合に、原則通り、先頭拍の拍位置より250ms前の位置を算出して、始点sTimeに設定したとしても、設定された始点より後の時刻から制御処理が開始されるだけであって、その後の制御処理に問題が生じることはない。   Next, the CPU 5 advances the processing to the calculation setting processing of the start point and end point of the code detection timing (14). In this (14) code detection timing start point and end point calculation setting process, the CPU 5 calculates the start point and end point of the first code detection timing in accordance with the set code detection timing setting rule, and the calculated start point is The start point sTime is stored (set), and the calculated end point is stored (set) in the end point eTime. However, in this embodiment, as the chord detection timing, the beat position of the first beat of the song is taken as the chord detection reference position, and 250 ms before the beat position is taken as the start point of the chord detection timing. Since it starts from the first beat, it is meaningless to calculate the position before the start position and set it as the start point sTime when the music starts. Therefore, in this case, it is preferable to set the beat position of the first beat, that is, the chord detection reference position, as the start point sTime. However, in this case, as a rule, even if the position 250 ms before the beat position of the first beat is calculated and set as the start point sTime, the control process is only started from the time after the set start point. Then, no problem occurs in the subsequent control processing.

このようにして(1)起動時処理が1回実行されると、CPU5は、ユーザによる自動伴奏のスタート指示を待ち、自動伴奏のスタート指示がなされると、処理を前記(2)の自動伴奏のスタート時処理に進める(ステップS6→S7)。この(2)自動伴奏のスタート時処理では、CPU5は、前記タイマ8を起動して、タイマ8による計時を開始する。タイマ8の計時時間は、前述のように前記自動伴奏装置9にも供給され、さらに本演奏処理では、前述のように自動伴奏装置9は作動状態であるので、伴奏スタイルデータが選択設定されていれば、自動伴奏装置9は、本演奏処理とは独立して、タイマ8から供給された計時時間(時間情報)に基づいてその伴奏スタイルデータを再生する。   Thus, (1) when the start-up process is executed once, the CPU 5 waits for an automatic accompaniment start instruction from the user, and when an automatic accompaniment start instruction is given, the process proceeds to the automatic accompaniment of (2). The process proceeds to the start process (steps S6 → S7). In this (2) automatic accompaniment start process, the CPU 5 starts the timer 8 and starts the time measurement by the timer 8. The time measured by the timer 8 is also supplied to the automatic accompaniment device 9 as described above. Further, in this performance processing, the automatic accompaniment device 9 is in the operating state as described above, and therefore the accompaniment style data is selected and set. Then, the automatic accompaniment apparatus 9 reproduces the accompaniment style data based on the time measured (time information) supplied from the timer 8 independently of the performance process.

そしてCPU5は、ユーザによって自動伴奏のストップ指示がなされるまで、ノートオンイベントが受け付けられたときには、前記(4)のノートイベント処理を実行し(ステップS8→S11→S12)、タイマ8によって前記コード検出タイミング(の終点eTime)が計時されたときには、前記(5)のコードの検出タイミング時処理を実行する(図5BのステップS13→S14)。   When the note-on event is accepted until the user instructs to stop the automatic accompaniment, the CPU 5 executes the note event process (4) (steps S8 → S11 → S12), and the timer 8 When the detection timing (the end point eTime) is counted, the code detection timing processing (5) is executed (steps S13 to S14 in FIG. 5B).

一方、ユーザによって自動伴奏のストップ指示がなされると、CPU5は、処理を前記(3)の自動伴奏のストップ時処理に進める(ステップS8→S9)。この(3)自動伴奏のストップ時処理では、CPU5は、タイマ8を停止する。これにより当然ながら、自動伴奏装置9による前記伴奏スタイルデータの再生は停止する。   On the other hand, when an automatic accompaniment stop instruction is given by the user, the CPU 5 advances the process to the automatic accompaniment stop process of (3) (steps S8 → S9). In this (3) automatic accompaniment stop process, the CPU 5 stops the timer 8. Accordingly, naturally, the reproduction of the accompaniment style data by the automatic accompaniment device 9 is stopped.

図6は、前記(4)のノートイベント処理の詳細な手順を示すフローチャートである。   FIG. 6 is a flowchart showing a detailed procedure of the note event processing (4).

同図に示すように、本ノートイベント処理は、
(41)タイマ8がコード検出タイミング期間内の時間、つまり前記始点sTimeから前記終点eTimeまでの間の時間を計時しているときに
(41a)ノートオンイベントが受け付けられた場合の処理(ステップS33,S34)
(41b)ノートオフイベントが受け付けられた場合の処理(ステップS35,S36)
(42)タイマ8がコード検出タイミング期間外の時間を計時しているときに
(42a)ノートオンイベントが受け付けられた場合の処理(ステップS38)
(42b)ノートオフイベントが受け付けられた場合の処理(ステップS39)
によって構成されている。
As shown in the figure, this note event processing
(41) When the timer 8 is measuring the time within the code detection timing period, that is, the time from the start point sTime to the end point eTime (41a) Processing when a note-on event is received (step S33) , S34)
(41b) Processing when a note-off event is received (steps S35 and S36)
(42) When the timer 8 is measuring a time outside the code detection timing period (42a) Processing when a note-on event is received (step S38)
(42b) Processing when a note-off event is received (step S39)
It is constituted by.

そして、上記(41a)の処理は、上記(42a)の処理、つまり、受け付けられたノートオンイベントを前記音源回路13に出力することでなされる発音処理に、当該ノートオンイベントに対応するノートイベント情報(音高+入力タイミング)を前記ノートイベントリストNListに追加する処理を加えて構成され、上記(41b)の処理は、上記(42b)の処理、つまり、受け付けられたノートオフイベントを音源回路13に出力することでなされる消音処理に、当該ノートオフイベントに対応するノートイベント情報を前記ノートイベントリストNListから削除する処理を加えて構成されている。   The processing of (41a) is the same as the processing of (42a), that is, the note event corresponding to the note-on event in the sound generation processing performed by outputting the received note-on event to the tone generator circuit 13. The processing of adding information (pitch + input timing) to the note event list NList is added, and the processing of (41b) is the processing of (42b), that is, the received note-off event is a tone generator circuit. 13 is added with a process of deleting the note event information corresponding to the note-off event from the note event list NList in addition to the mute process performed by outputting to the note 13.

前記(5)のコードの検出タイミング時処理では、まずCPU5は、コード検出処理を実行する(ステップS14)。コード検出処理の詳細は、図7のフローチャートに基づいて後述するが、コード検出処理が実行されると、1つのコードデータが検出(選出)されて、前記検出コードChordに記憶される。次にCPU5は、検出コードChordからコードネームを読み出して前記自動伴奏装置9に出力する(ステップS15)。   In the code detection timing processing (5), first, the CPU 5 executes code detection processing (step S14). Details of the code detection process will be described later based on the flowchart of FIG. 7. When the code detection process is executed, one code data is detected (selected) and stored in the detection code Chord. Next, the CPU 5 reads out the code name from the detection code Chord and outputs it to the automatic accompaniment device 9 (step S15).

さらにCPU5は、通常コード検出フラグがセット状態であれば、調情報Keyと検出コードChordを出力結果リストRListの末尾に追加し(ステップS16→S17)、コード検出タイミングの設定内容(設定ルール)に基づいて、次のコード検出期間の始点および終点を算出して、それぞれ始点sTimeおよび終点eTimeを更新し(ステップS18)、ノートイベントリストNListを初期化(クリア)する(ステップS19)。なお、通常コード検出フラグがリセット状態であれば、CPU5は、ステップS17をスキップして次のステップS18に処理を進める。通常コード検出フラグがリセット状態とは、前述のように、割り込み型コード進行またはエクステンデッド型コード進行を生成している状態であることを意味する。そして、割り込み型コード進行またはエクステンデッド型コード進行を形成するためのコードデータ(および調情報)は、出力結果リストRListには追加登録しないようにしているので、この場合には、CPU5は当該ステップS17の追加登録処理を実行しないようにしている。   Further, if the normal code detection flag is set, the CPU 5 adds the key information and the detection code Chord to the end of the output result list RList (step S16 → S17), and sets the code detection timing setting contents (setting rule). Based on this, the start point and end point of the next chord detection period are calculated, the start point sTime and the end point eTime are updated (step S18), and the note event list NList is initialized (cleared) (step S19). If the normal code detection flag is in the reset state, the CPU 5 skips step S17 and proceeds to the next step S18. When the normal code detection flag is in the reset state, as described above, it means that the interrupt type code progress or the extended type code progress is being generated. The chord data (and key information) for forming the interrupt type chord progression or the extended chord progression is not additionally registered in the output result list RList. In this case, the CPU 5 performs step S17. The additional registration process is not executed.

図7は、前記ステップS14のコード検出処理の詳細な手順を示すフローチャートである。   FIG. 7 is a flowchart showing a detailed procedure of the code detection process in step S14.

本コード検出処理は、主として、
(51)通常コード検出処理(ステップS42〜S48)
(52)非通常コード検出処理への移行処理(ステップS50〜S52)
(53)非通常コード検出処理(ステップS53,S56〜S58)
(54)通常コード検出処理への移行処理(ステップS55)
によって構成され、上記(51)通常コード検出処理には、前記(A)基本コード候補抽出処理および前記(B)追加コード候補抽出処理が含まれ、上記(53)非通常コード検出処理には、前記(C)コード進行形成用コード検出処理が含まれている。
This code detection process mainly consists of
(51) Normal code detection processing (steps S42 to S48)
(52) Transition process to non-ordinary code detection process (steps S50 to S52)
(53) Unusual code detection processing (steps S53, S56 to S58)
(54) Transition process to normal code detection process (step S55)
The (51) normal code detection process includes the (A) basic code candidate extraction process and the (B) additional code candidate extraction process, and the (53) non-normal code detection process includes The (C) chord progression forming chord detection process is included.

そして、通常コード検出に関する処理系列、つまり上記(51)および(52)の処理系列は、通常コード検出フラグがセット状態のときに実行され(ステップS41→S42)、非通常コード検出に関する処理系列、つまり上記(53)および(54)の処理系列は、通常コード検出フラグがリセット状態のときに実行される(ステップS41→S53)。   The processing sequence related to normal code detection, that is, the processing sequence of (51) and (52) above is executed when the normal code detection flag is set (step S41 → S42), That is, the processing sequence of (53) and (54) is executed when the normal code detection flag is in the reset state (steps S41 → S53).

前記(51)通常コード検出処理では、まずCPU5は、前記(12)のコード検出タイミングおよび各種ルールの設定処理によって設定された調検出ルールに従って、調情報を取得し(ステップS42)、取得した調情報を前記調情報Keyに記憶し(ステップS43)、さらに前記コードリストCListを初期化(クリア)する(ステップS44)。   In the (51) normal code detection process, first, the CPU 5 acquires key information according to the key detection rule set by the code detection timing and the various rule setting process of (12) (step S42), and acquires the acquired key code. Information is stored in the key information Key (step S43), and the code list CList is initialized (cleared) (step S44).

次にCPU5は、前記(A)基本コード候補抽出処理(その詳細は、図8Aおよび図8Bを用いて後述)を実行する(ステップS45)とともに、前記(B)追加コード候補抽出処理(その詳細は、図10を用いて後述)を実行する(ステップS46)。この両抽出処理が実行されると、コードリストCListには、骨格コード進行を形成するための複数のコード候補および非骨格コード進行(割り込み型コード進行およびエクステンデッド型コード進行)の始点となる複数のコード候補が登録される。   Next, the CPU 5 executes the (A) basic code candidate extraction process (details will be described later with reference to FIGS. 8A and 8B) (step S45) and the (B) additional code candidate extraction process (details thereof). Executes (described later using FIG. 10) (step S46). When both the extraction processes are executed, the chord list CList includes a plurality of chord candidates for forming a skeleton chord progression and a plurality of start points of non-skeletal chord progressions (interrupt type chord progression and extended chord progression). Code candidates are registered.

そしてCPU5は、ノートイベントリストNListとコードリストCListに基づいて、より具体的には、ノートイベントリストNListに登録されているノートイベント情報(の音高)を参照し、コードリストCListに登録されている複数のコード候補(コードデータ)からコードデータを1つ選出し(ステップS47)、選出したコードデータを検出コードChordに記憶する(ステップS48)。なお、上記ステップS47での「コードの選出」は、前記(12)のコード検出タイミングおよび各種ルールの設定処理で設定した前記(R2)コードの選出ルール、つまり本実施の形態では、前記(R2a)または(R2b)のいずれかに従って行われる。この事情は、上記ステップS47に限らず、ステップS47と同様の処理を行う他のステップ、たとえば後述する図11AのステップS126,S145およびS150等についても同様である。   Then, based on the note event list NList and the chord list CList, the CPU 5 refers to the note event information (pitch) registered in the note event list NList, and is registered in the chord list CList. One code data is selected from a plurality of code candidates (code data) (step S47), and the selected code data is stored in the detection code Chord (step S48). Note that “code selection” in step S47 is the (R2) code selection rule set in the code detection timing and various rule setting processing in (12), that is, in the present embodiment, (R2a ) Or (R2b). This situation is not limited to the above step S47, but also applies to other steps that perform the same processing as step S47, for example, steps S126, S145, and S150 in FIG.

次にCPU5は、検出コードChordの情報データ内にフラグ情報があるかどうかを判別する(ステップS49)。フラグ情報がある場合、フラグ情報には「割り込み」、「エクステンデッドV7/V7sus4」、「エクステンデッド♭II7」、「寄り道」および「End」のうちのいずれかが記憶されているが、処理がステップS49に進んだときに、検出コードChordの情報データ内にフラグ情報があった場合、そのフラグ情報は、「割り込み」、「エクステンデッドV7/V7sus4」および「エクステンデッド♭II7」のうちのいずれかであり、「寄り道」または「End」であることはない。これは、「寄り道」および「End」の設定は、前記非通常コード検出に関する処理系列でのみ、より具体的には、前記(53)非通常コード検出処理に含まれる前記(C)コード進行形成用コード検出処理でのみなされ、この処理系列から前記通常コード検出に関する処理系列に移行した後は、「寄り道」および「End」の設定がなされることはないからである。   Next, the CPU 5 determines whether or not there is flag information in the information data of the detection code Chord (step S49). If there is flag information, one of “interrupt”, “extended V7 / V7sus4”, “extended ♭ II7”, “detour”, and “End” is stored in the flag information, but the process is step S49. When there is flag information in the information data of the detection code Chord when proceeding to, the flag information is one of “interrupt”, “extended V7 / V7sus4” and “extended ♭ II7” There is no “detour” or “End”. This is because the setting of “detour” and “End” is set only in the processing sequence related to the abnormal code detection, more specifically, (C) chord progression formation included in the (53) abnormal code detection processing. This is because the “detour” and “End” are not set after the transition to the processing sequence related to the normal code detection from this processing sequence.

前記ステップS49の判別の結果、検出コードChordの情報データ内にフラグ情報があったときには、CPU5は、処理を前記(52)の非通常コード検出処理への移行処理を実行する(ステップS49→S50)一方、検出コードChordの情報データ内にフラグ情報がなかったときには、CPU5は、当該移行処理を実行せずに、本コード検出処理を終了する(ステップS49→リターン)。   As a result of the determination in the step S49, when there is flag information in the information data of the detection code Chord, the CPU 5 executes the process of shifting to the non-normal code detection process of (52) (steps S49 → S50). On the other hand, when there is no flag information in the information data of the detection code Chord, the CPU 5 ends this code detection process without executing the transition process (step S49 → return).

(52)非通常コード検出処理への移行処理では、CPU5は、通常コード検出フラグをリセットし(ステップS50)、スタートコードSChordを初期化(クリア)した上で、検出コードChordの各情報をスタートコードSChordに記憶させ(ステップS51)、さらにコードリストCListおよび次コードリストNCListを共に初期化(クリア)する(ステップS52)。   (52) In the transition process to the non-ordinary code detection process, the CPU 5 resets the normal code detection flag (step S50), initializes (clears) the start code SChord, and starts each information of the detection code Chord. The code is stored in the code SWord (step S51), and the code list CList and the next code list NCList are both initialized (cleared) (step S52).

前記(53)非通常コード検出処理では、まずCPU5は、コード進行形成用コード検出処理を実行する(ステップS53)。コード進行形成用コード検出処理が実行されると、1つのコードデータが選出されて、検出コードChordに記憶される。次にCPU5は、検出コードChordの情報データ内のフラグ情報が「End」であるかどうか判別する(ステップS54)。非通常コード検出に関する処理系列では、基本的には、非骨格コード進行を形成するためのコードデータを検出しているが、いつかは骨格コード進行を形成するためのコードデータの検出に戻る必要がある。フラグ情報が「End」であるコードデータは、非骨格コード進行の終点となるコードデータである。つまり、ステップS54の判別は、非骨格コード進行を形成するためのコードデータの検出を終了させるかどうかを判別している。この判別の結果、非骨格コード進行を形成するためのコードデータの検出を継続させるとき(フラグ情報≠「End」)には、CPU5は、当該フラグ情報が「エクステンデッドV7/V7sus4」または「エクステンデッド♭II7」のいずれかに該当するかを判別する(ステップS56)。このステップS56の判別は、非骨格コード進行として、前記エクステンデッド型コード進行または前記割り込み型コード進行のいずれを生成するかを判別する。この判別の結果、エクステンデッド型コード進行を生成するときには、CPU5は、スタートコードSChordに検出コードChordの各情報を記憶する(ステップS57)とともに、コードリストCListを初期化する(ステップS58)一方、割り込み型コード進行を生成するときには、CPU5は、本コード検出処理を直ちに終了する(ステップS56→リターン)。   In the non-ordinary chord detection process (53), first, the CPU 5 executes a chord progression forming chord detection process (step S53). When the chord progression forming chord detection process is executed, one chord data is selected and stored in the chord code Chord. Next, the CPU 5 determines whether or not the flag information in the information data of the detection code Chord is “End” (step S54). In the processing sequence related to non-ordinary chord detection, the chord data for forming the non-skeletal chord progression is basically detected. However, it is necessary to return to the chord data detection for forming the skeletal chord progression. is there. The chord data whose flag information is “End” is chord data that is the end point of the non-skeletal chord progression. That is, the determination in step S54 determines whether or not the detection of the chord data for forming the non-skeletal chord progression is to be terminated. As a result of this determination, when the detection of the chord data for forming the non-skeletal chord progression is continued (flag information ≠ “End”), the CPU 5 determines that the flag information is “Extended V7 / V7sus4” or “Extended It is determined whether it falls under any of “II7” (step S56). In the determination in step S56, it is determined whether to generate the extended chord progression or the interrupt chord progression as the non-skeleton chord progression. As a result of this determination, when generating an extended chord progression, the CPU 5 stores each piece of information of the detection code Chord in the start code SChord (step S57) and initializes the chord list CList (step S58). When generating the type code progression, the CPU 5 immediately ends the code detection process (step S56 → return).

前記ステップS54の判別の結果、非骨格コード進行を形成するためのコードデータの検出を終了させるとき(フラグ情報=「End」)には、CPU5は、処理を前記(54)の通常コード検出処理への移行処理に進め、通常コード検出フラグをセットする(ステップS55)。   As a result of the determination in step S54, when the detection of the chord data for forming the non-skeletal chord progression is to be ended (flag information = “End”), the CPU 5 performs the normal chord detection process of (54). The normal code detection flag is set (step S55).

図8Aおよび図8Bは、前記ステップS45の基本コード候補抽出処理の詳細な手順を示すフローチャートである。   8A and 8B are flowcharts showing the detailed procedure of the basic code candidate extraction process in step S45.

本基本コード候補抽出処理は、主として、
(61)起動時処理(ステップS61〜S63)
(62)次の(63)の抽出処理の前処理(ステップS64〜S72)
(63)次に進むことのできる機能を持つディグリーネーム候補の抽出処理(図8BのステップS75)
によって構成されている。
This basic code candidate extraction process mainly includes
(61) Start-up processing (steps S61 to S63)
(62) Preprocessing of next extraction processing (63) (steps S64 to S72)
(63) Degree name candidate extraction process having a function capable of proceeding to the next step (step S75 in FIG. 8B)
It is constituted by.

本基本コード候補抽出処理が起動されると、まずCPU5は、処理を前記(61)の起動時処理に進める。この(61)起動時処理では、CPU5は、
(61a)ノートイベントリストNListが空である場合、つまり、ノートイベントリストNListにノートイベント情報が1個も記録されていない場合:本基本コード候補抽出処理を直ちに終了する(ステップS61→リターン);
(61b)ノートイベントリストNListが空でない場合:かつ
(61b1)出力結果リストRListが空である場合:ノートイベントリストNListに記録されたノートイベント情報と調情報Keyに基づいて初回コードのディグリーネームとコードネームを検出し、検出したディグリーネームとコードネームを含むコードデータを生成してコードリストCListに登録した後、本基本コード候補抽出処理を終了する(ステップS61→S62→S63→リターン);
(61b2)出力結果リストRListが空でない場合:前記(62)の前処理に進む(ステップS61→S62→S64)。
When this basic code candidate extraction process is activated, the CPU 5 first proceeds to the activation process (61). In this (61) startup process, the CPU 5
(61a) When the note event list NList is empty, that is, when no note event information is recorded in the note event list NList: the basic code candidate extraction process is immediately terminated (step S61 → return);
(61b) When the note event list NList is not empty: and (61b1) When the output result list RList is empty: The degree name of the initial code based on the note event information and the key information Key recorded in the note event list NList The code name is detected, code data including the detected degree name and code name is generated and registered in the code list CList, and then the basic code candidate extraction process is terminated (steps S61 → S62 → S63 → return);
(61b2) When the output result list RList is not empty: The process proceeds to the preprocessing of (62) (steps S61 → S62 → S64).

なお前記(61b1)の処理において、初回コードのディグリーネームとコードネームの検出は、従来の方法によって行えばよい。またこの場合、参照する前回のコードがまだ記憶されていないので、たとえば、調の主音をルートとしたメジャ調かマイナ調のトニックコードを参照すべき基準コードとしてもよい。   In the process (61b1), the degree name and code name of the initial code may be detected by a conventional method. In this case, since the previous chord to be referred to is not yet stored, for example, a major chord or minor tone tonic chord having a key main tone as a root may be used as a reference code.

前記(62)の前処理では、CPU5は、トニック禁止フラグ、サブドミナント禁止フラグおよびドミナント禁止フラグのセット/リセットを行う。具体的には、
(62a)出力結果リストRListに4個以上のコードデータが登録されており、末尾から4個、つまり最新に登録されたものから遡って4個がすべて、ダイアトニック・スケール・コードのトニック(T)に該当するかどうか判定し(ステップS64)、
当該4個のコードデータがすべて、ダイアトニック・スケール・コードのトニックに該当する場合:トニック禁止フラグをセット(“1”)(ステップS65);
当該4個のコードデータのうち、少なくとも1個が、ダイアトニック・スケール・コードのトニックに該当しない場合:トニック禁止フラグをリセット(“0”)(ステップS66);
(62b)出力結果リストRListに2個以上のコードデータが登録されており、末尾から2個がすべて、ダイアトニック・スケール・コードのサブドミナント(S)に該当するかどうか判定し(ステップS67)、
当該2個のコードデータがすべて、ダイアトニック・スケール・コードのサブドミナントに該当する場合:サブドミナント禁止フラグをセット(ステップS68);
当該2個のコードデータのうち、少なくとも1個が、ダイアトニック・スケール・コードのサブドミナントに該当しない場合:サブドミナント禁止フラグをリセット(ステップS69);
(62c)出力結果リストRListに2個以上のコードデータが登録されており、末尾から2個がすべて、ダイアトニック・スケール・コードのドミナント(D)に該当するかどうか判定し(ステップS70)、
当該2個のコードデータがすべて、ダイアトニック・スケール・コードのドミナントに該当する場合:ドミナント禁止フラグをセット(ステップS71);
当該2個のコードデータのうち、少なくとも1個が、ダイアトニック・スケール・コードのドミナントに該当しない場合:ドミナント禁止フラグをリセット(ステップS72)。
In the preprocessing (62), the CPU 5 sets / resets the tonic prohibition flag, the subdominant prohibition flag, and the dominant prohibition flag. In particular,
(62a) Four or more pieces of code data are registered in the output result list RList, and all four pieces from the end, that is, four pieces retroactively from the most recently registered one, are tonics of diatonic scale codes (T ) (Step S64),
When all of the four code data correspond to diatonic scale code tonics: a tonic prohibition flag is set (“1”) (step S65);
If at least one of the four pieces of code data does not correspond to the tonic of the diatonic scale code: reset the tonic prohibition flag (“0”) (step S66);
(62b) It is determined whether or not two or more code data are registered in the output result list RList, and all the two from the end correspond to the subdominant (S) of the diatonic scale code (step S67). ,
When all the two code data correspond to the subdominant of the diatonic scale code: set the subdominant prohibition flag (step S68);
If at least one of the two pieces of code data does not correspond to the subdominant of the diatonic scale code: reset the subdominant prohibition flag (step S69);
(62c) It is determined whether two or more pieces of code data are registered in the output result list RList, and all the two pieces from the end correspond to the dominant (D) of the diatonic scale code (step S70).
When all of the two code data correspond to the dominant of the diatonic scale code: set the dominant prohibition flag (step S71);
If at least one of the two pieces of code data does not correspond to the dominant of the diatonic scale code: reset the dominant prohibition flag (step S72).

上記3種類の禁止フラグをそれぞれセットする場合は、対応する機能を持つダイアトニック・スケール・コードが所定個続いて選出されて発音される(前記図5BのステップS15およびS17を参照)場合に相当する。つまり、各禁止フラグは、対応する機能を持つダイアトニック・スケール・コードが所定個続いて選出されないように制限する機能を営んでいる(後述する図9AのステップS83,S87、および図9BのステップS91を参照)。このような禁止フラグを設けたことにより、単調なコード選出およびその発音を抑制することができる。なお、同じ機能を持つダイアトニック・スケール・コードが何個続いたときに、同じ機能を持つ新たなダイアトニック・スケール・コードの選出を禁止するかの上記例示した個数は、あくまでも例示に過ぎず、複数個であれば2個と4個に限られない。   When the above three types of prohibition flags are respectively set, it corresponds to a case where a predetermined number of diatonic scale codes having corresponding functions are selected and sounded (see steps S15 and S17 in FIG. 5B). To do. That is, each prohibition flag has a function of restricting a predetermined number of diatonic scale codes having a corresponding function from being successively selected (steps S83 and S87 in FIG. 9A described later, and steps in FIG. 9B). (See S91). By providing such a prohibition flag, monotonous chord selection and its pronunciation can be suppressed. In addition, the above-mentioned number of examples of prohibiting selection of a new diatonic scale code having the same function when the number of diatonic scale codes having the same function continues is merely an example. If it is plural, it is not limited to two and four.

さらにCPU5は、出力結果リストRListの末尾のコードデータを参照し、前回コードのディグリーネームとその機能を取得し(図8BのステップS73)、取得したディグリーネームを前回のディグリーネームLDNに記憶するとともに、取得した機能を前回の機能LFに記憶する(ステップS74)。   Further, the CPU 5 refers to the code data at the end of the output result list RList, acquires the degree name and function of the previous code (step S73 in FIG. 8B), and stores the acquired degree name in the previous degree name LDN. The acquired function is stored in the previous function LF (step S74).

次にCPU5は、処理を前記(63)の次に進むことのできる機能を持つディグリーネーム候補の抽出処理に進める(ステップS75)。   Next, the CPU 5 proceeds to a degree name candidate extraction process having a function capable of proceeding after the process (63) (step S75).

図9Aおよび図9Bは、この(63)次に進むことのできる機能を持つディグリーネーム候補の抽出処理の詳細な手順を示すフローチャートである。   FIG. 9A and FIG. 9B are flowcharts showing the detailed procedure of extraction processing of degree name candidates having the function that can proceed to (63) next.

同図A,Bに示すように本抽出処理では、まずCPU5は、前回の機能LFおよび調情報Keyに基づいて、次に進むことのできる機能を全て抽出する(ステップS81)。このとき、前記図3A(調情報Keyがメジャ調の場合)または図3B(調情報Keyがマイナ調の場合)のいずれかのコードの機能とディグリーネームの対応表を参照して、次に進むことのできる機能を全て抽出する。たとえば、前回の機能LFがトニック(T)であり、調情報Keyがメジャ調である場合には、CPU5は、次に進むことのできる機能として、トニック(T)、サブドミナント(S)、ドミナント(D)およびサブドミナント・マイナ(SM)を抽出する。また、前回の機能LFがドミナント(D)であり、調情報Keyがメジャ調である場合には、さらに、メジャ調でのドミナント(D)→サブドミナント・マイナ(SM)進行(インターラプテッド・ケーデンス)を通常時も許可するかどうかに応じて、CPU5は、次に進むことのできる機能として、トニック(T)、ドミナント(D)およびサブドミナント・マイナ(SM)(「通常時も許可」の設定時)と、トニック(T)およびドミナント(D)(「通常時は不許可」の設定時)のいずれかを抽出する。   As shown in FIGS. A and B, in this extraction process, the CPU 5 first extracts all the functions that can proceed to the next based on the previous function LF and key information Key (step S81). At this time, referring to the correspondence table between the code functions and degree names shown in FIG. 3A (when the key information key is major) or FIG. 3B (when the key information key is minor), the process proceeds to the next. Extract all possible functions. For example, if the previous function LF is a tonic (T) and the key information Key is a major key, the CPU 5 can select the tonic (T), subdominant (S), dominant (D) and subdominant minor (SM) are extracted. Further, when the previous function LF is dominant (D) and the key information Key is major, the major dominant (D) → subdominant minor (SM) progression (interrupted Depending on whether or not to allow cadence at normal times, the CPU 5 can select tonic (T), dominant (D), and subdominant minor (SM) ("Allow at normal time") as functions that can proceed to the next. ) And tonic (T) and dominant (D) (when “normally disallowed” is set) are extracted.

次にCPU5は、抽出した機能とその機能に対応する禁止フラグのセット状態に応じて、次のように場合分けし、各場合に対応する処理を実行する。すなわち、
(63a)抽出した機能にトニックがあり、かつ
トニック禁止フラグの値=0(リセット状態)の場合:ダイアトニック・スケール・コードのトニックに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(ステップS84)とともに、ダイアトニック・スケール・コード以外のトニックに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(ステップS85);
トニック禁止フラグの値=1(セット状態)の場合:上記ステップS84の処理をスキップして、上記ステップS85の処理のみを行う;
(63b)抽出した機能にサブドミナントがあり、かつ
サブドミナント禁止フラグの値=0の場合:ダイアトニック・スケール・コードのサブドミナントに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(ステップS88)とともに、ダイアトニック・スケール・コード以外のサブドミナントに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(ステップS89);
サブドミナント禁止フラグの値=1の場合:上記ステップS88の処理をスキップして、上記ステップS89の処理のみを行う;
(63c)抽出した機能にドミナントがあり、かつ
ドミナント禁止フラグの値=0の場合:ダイアトニック・スケール・コードのドミナントに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(図9BのステップS92)とともに、ダイアトニック・スケール・コード以外のドミナントに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(ステップS93);
ドミナント禁止フラグの値=1の場合:上記ステップS92の処理をスキップして、上記ステップS93の処理のみを行う;
(63d)抽出した機能にサブドミナント・マイナがある場合:サブドミナント・マイナに該当するディグリーネームの中で、調情報Keyに合うものをすべて抽出し、そのすべてのディグリーネームのそれぞれについて各コードネームを検出し、前記抽出した各ディグリーネームと前記検出した各コードネームをそれぞれ含む各コードデータを生成して、コードリストCListに登録する(ステップS95)。
Next, the CPU 5 divides the case as follows according to the extracted function and the set state of the prohibition flag corresponding to the function, and executes processing corresponding to each case. That is,
(63a) If the extracted function has a tonic and the tonic prohibition flag value is 0 (reset state): The degree name corresponding to the key information is selected from the degree names corresponding to the tonic of the diatonic scale code. All code names are extracted for each of the degree names, code data including the extracted degree names and the detected code names are generated and registered in the code list CList ( Along with step S84), all of the degree names corresponding to the key information Key among the degree names corresponding to tonics other than the diatonic scale code are extracted, and each chord name is detected for each of the degree names. Each extracted degree name and the detected Each code data including each code name is generated and registered in the code list CList (step S85);
When the value of the tonic prohibition flag = 1 (set state): the process of step S84 is skipped and only the process of step S85 is performed;
(63b) When the extracted function has a subdominant and the subdominant prohibition flag value is 0: all of the degree names corresponding to the subdominant of the diatonic scale code that match the key information key Extract, detect each code name for each of the degree names, generate code data including the extracted degree names and the detected code names, respectively, and register them in the code list CList (step) In S88), all the degree names corresponding to the key information key among the degree names corresponding to the subdominants other than the diatonic scale code are extracted, and each code name is detected for each of the degree names. Each degree name extracted and previous Each code data including each detected code name is generated and registered in the code list CList (step S89);
When the value of the subdominant prohibition flag = 1: The process of step S88 is skipped and only the process of step S89 is performed;
(63c) If the extracted function has a dominant and the dominant prohibition flag value = 0, all of the degree names corresponding to the dominant of the diatonic scale code that match the key information key are extracted, Each code name is detected for each of all the degree names, and each piece of code data including each extracted degree name and each detected code name is generated and registered in the code list CList (step of FIG. 9B). In step S92), all the degree names corresponding to the key information key among the degree names corresponding to the dominants other than the diatonic scale code are extracted, and the respective code names are detected for each of the degree names. Each detected degree name and the detected Each code data including each code name is generated and registered in the code list CList (step S93);
When the value of the dominant prohibition flag = 1: The process of step S92 is skipped and only the process of step S93 is performed;
(63d) When there is a sub-dominant minor in the extracted function: From among the degree names corresponding to the sub-dominant minor, all those that match the key information Key are extracted, and each code name for each of all the degree names And each piece of code data including the extracted degree name and the detected code name is generated and registered in the code list CList (step S95).

なお、抽出した機能にトニック、サブドミナント、ドミナントまたはサブドミナント・マイナがない場合には、それぞれ以下の(63a)〜(63d)の各処理はなされない。   If the extracted function does not include tonic, subdominant, dominant, or subdominant minor, the following processes (63a) to (63d) are not performed.

また、ステップS84,S85,S88,S89,S92,S93およびS95における各コードネームの検出は、対応するディグリーネームを調情報Keyに基づいてコードネームに展開することによって行う。具体的には、この展開は、調情報の主音をI度としてディグリーネームの度数からルートを算出することによって行う。これにより、たとえば、ディグリーネーム“IIm7”を調情報「Fメジャ」によって展開すると、コードネーム“Gm7”が得られる。   The detection of each code name in steps S84, S85, S88, S89, S92, S93 and S95 is performed by expanding the corresponding degree name into a code name based on the key information Key. Specifically, this development is performed by calculating a route from the degree name degree with the main tone of the key information as I degree. Thereby, for example, when the degree name “IIm7” is expanded by the key information “F measure”, the code name “Gm7” is obtained.

なお図3Aの対応表中、「機能」が“S:サブドミナント”の「ダイアトニック・スケール・コード以外」に属する“#IVm7(♭5)”には“-S”が付けられている。この“-S”は、“#IVm7(♭5)”を「サブドミナント(S)」として扱うことを意味している。“#IVm7(♭5)”は、通常「トニック(T)」として扱うが、本実施の形態では「サブドミナント(S)」としても扱うようにしている。したがって、前記ステップS81の処理によって「サブドミナント(S)」が抽出されたときに、調情報Keyが「メジャ調」であれば、“#IVm7(♭5)”も抽出される。ただしこの場合、「サブドミナント(S)」とともに「トニック(T)」も抽出されると、“#IVm7(♭5)”は、「サブドミナント(S)」に属するものと、「トニック(T)」に属するものの両方が抽出されることになる。このとき、本実施の形態では「トニック(T)」に属するものを優先的に抽出するようにしているが、もちろんこれに限らず、「サブドミナント(S)」に属するものを優先的に抽出するようにしてもよい。そしてこの場合、抽出された“#IVm7(♭5)”が「サブドミナント(S)」または「トニック(T)」のいずれに属するかを特定する情報を付けるようにした方が好ましい。   In the correspondence table of FIG. 3A, “-S” is added to “# IVm7 (♭ 5)” belonging to “other than diatonic scale code” with “S: subdominant” in “function”. This “-S” means that “# IVm7 (♭ 5)” is treated as “subdominant (S)”. “# IVm7 (♭ 5)” is normally handled as “Tonic (T)”, but is also handled as “Subdominant (S)” in the present embodiment. Therefore, when “subdominant (S)” is extracted by the process of step S81, if the key information is “major key”, “# IVm7 (♭ 5)” is also extracted. However, in this case, if “Tonic (T)” is extracted together with “Subdominant (S)”, “# IVm7 (♭ 5)” is considered to belong to “Subdominant (S)” and “Tonic (T)”. ) ”Will be extracted. At this time, in the present embodiment, those belonging to “Tonic (T)” are preferentially extracted, but of course this is not limiting, and those belonging to “Subdominant (S)” are preferentially extracted. You may make it do. In this case, it is preferable to add information specifying whether the extracted “# IVm7 (♭ 5)” belongs to “subdominant (S)” or “tonic (T)”.

図10は、前記ステップS46の追加コード候補抽出処理の詳細な手順を示すフローチャートである。   FIG. 10 is a flowchart showing a detailed procedure of the additional code candidate extraction process in step S46.

本追加コード候補抽出処理が起動されると、まずCPU5は、調情報Keyを参照し、コードリストCListに登録されているコードデータのうち、ダイアトニック・スケール・コードのMaj7,6,add9,Maj,sus4に該当するコードデータであって、メジャ調のI度とマイナ調の♭III度を除いたものをメジャ系解決先コードとして抽出する(ステップS101)。この結果、調情報Keyがメジャ調であれば、IVMaj7,IV6,IVadd9,IVの各コードが抽出され、調情報Keyがマイナ調であれば、♭VIMaj7,♭VI6,♭VIadd9,♭VIの各コードが抽出される。   When the additional code candidate extraction process is started, the CPU 5 first refers to the key information Key, and among the code data registered in the code list CList, the Maj7, 6, add9, Maj of the diatonic scale code , Sus4, excluding the major I degree and the minor マ イ III degree, is extracted as a major solution target code (step S101). As a result, if the key information Key is a key, IVMaj7, IV6, IVadd9 and IV codes are extracted. If the key information Key is a minor key, ♭ VIMaj7, ♭ VI6, ♭ VIadd9 and ♭ VI The code is extracted.

次にCPU5は、メジャ系セカンダリードミナントとそのツーファイブ候補の追加処理を実行する(ステップS102)。この追加処理(その詳細は図示せず)では、CPU5は、
(71)前記抽出した全メジャ系解決先コードの各ルートをI度とみなし、それらに対しV7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「V7 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(メジャ系に解決するドミナント候補の追加);
(72)上記(71)で追加した各コードデータの情報データ内の解決先コード情報として記憶されている解決先コードのルートに対してIIm7およびIIm7(♭5)となる各コードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「IIm7/IIm7(♭5) of V7/V7sus4 of 解決先コードのルートの度数」(“IIm7/IIm7(♭5)”は、“IV/IVm”の代理コードである)を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(メジャ系に解決するツーファイブ候補の追加);
(73)前記抽出した全メジャ系解決先コードの各ルートをI度とみなし、それらに対しV7sus4となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「V7sus4 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(メジャ系に解決するドミナント候補の追加);
(74)前記抽出した全メジャ系解決先コードの各ルートをI度とみなし、それらに対し♭II7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「♭II7 of 解決先コードのルートの度数」(“♭II7”は、“V7”の代理コードである)を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(メジャ系に解決するセカンダリードミナント候補の追加);
(75)上記(74)で追加した各コードデータのルートをV度とみなし、それらに対しIIm7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「IIm7 of ♭II7 of 解決先コードのルートの度数」(=解決先コードのルートの度数をI度とみなしたときの♭VIm7)を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(メジャ系に解決するツーファイブ候補の追加);
の各処理を実行する。
Next, the CPU 5 executes processing for adding a major secondary dominant and its two-five candidates (step S102). In this additional processing (the details are not shown), the CPU 5
(71) Consider each route of the extracted all major system solution destination codes as I degree, detect a code that becomes V7 against them, and code data including a code name and a degree name corresponding to each detected code In the information data of each code data, “Solution code root” is set as “Solution code information”, “V7 of the frequency of the root of solution code” is set as “Flag information” as “Degree information” Generate what stores “interrupt” and add it to the code list CList (add a dominant candidate that resolves to a major system);
(72) Detect each code that becomes IIm7 and IIm7 (♭ 5) with respect to the root of the solution code stored as the solution code information in the information data of each code data added in (71) above, Code data that includes a code name and a degree name corresponding to each detected code. In the information data of each code data, “Solution code root” as “Solution code” and “Degree information” “IIm7 / IIm7 (♭ 5) of V7 / V7sus4 of resolution code root frequency” (“IIm7 / IIm7 (♭ 5)” is a proxy code of “IV / IVm”) and “flag information” Is generated and added to the code list CList (addition of two-five candidates to be resolved to the major system);
(73) Each route of the extracted all major solution destination codes is regarded as an I degree, code corresponding to V7sus4 is detected for them, and code data each including a code name and a degree name corresponding to each detected code Then, in the information data of each code data, “Solution code root” as “Solution code information”, “V7sus4 of the frequency of root of solution code” as “Degree information” and “Flag information” Generate what stores “interrupt” and add it to the code list CList (add a dominant candidate that resolves to a major system);
(74) Consider each route of the extracted all major system solution destination codes as I degree, detect the code that becomes ♭ II7 against them, and code data each including a code name and a degree name corresponding to each detected code In the information data of each code data, “Resolution Destination Code Information” is “Resolution Destination Code Route” and “Degree Information” is “♭ II7 of Frequency of Destination Code Route” (“♭ II7” Is a proxy code of “V7”) and generates “flag information” storing “interrupt”, and adds it to the code list CList (addition of secondary dominant candidates to be resolved to the major system);
(75) The route of each code data added in the above (74) is regarded as V degrees, code corresponding to IIm7 is detected for them, and code data including a code name and a degree name corresponding to each detected code In the information data of each code data, “Resolution Destination Code Information” as “Resolution Destination Code Route” and “Degree Information” as “IIm7 of ♭ II7 of Resolution Destination Code Route Frequency” (= Resolution Destination) Generate ♭ VIm7 when the frequency of the root of the code is regarded as I degree and store “interrupt” as “flag information” and add it to the code list CList (addition of two-five candidates to be resolved to the major system) );
Each process is executed.

たとえば、解決先コードが“FMaj7”である場合には、前記(71)の処理によって“FMaj7”に対するV7として“C7”が、前記(72)の処理によって“FMaj7”に対するIIm7とIIm7(♭5)として“Gm7”と“Gm7(♭5)”が、前記(73)の処理によって“FMaj7”に対するV7sus4として“C7sus4”が、前記(74)の処理によって“FMaj7”に対する♭II7として“G♭7”が、前記(75)の処理によって“FMaj7”に対して♭II7となる“G♭7”の“G♭”をV度とみなしたときのIIm7として“D♭m7”が、それぞれ検出される。   For example, when the solution destination code is “FMaj7”, “C7” is obtained as V7 for “FMaj7” by the process of (71), and IIm7 and IIm7 (♭ 5) for “FMaj7” by the process of (72). ) As “Gm7” and “Gm7 (♭ 5)”, V7sus4 as “V7sus4” for “FMaj7” by the processing of (73), and “G ♭ 7” as ♭ II7 for “FMaj7” by the processing of (74). 7 ”is detected as“ Dm7 ”as IIm7 when“ G ♭ ”of“ G ♭ 7 ”which becomes ♭ II7 with respect to“ FMaj7 ”by the processing of (75) above is regarded as V degree. Is done.

次にCPU5は、調情報Keyを参照し、コードリストCListに登録されているコードデータのうち、フラグ情報が「なし」であり、かつダイアトニック・スケール・コードのm7,m6,mMaj,madd9に該当するコードデータであって、マイナ調のI度とV度を除いたものをマイナ系解決先コードとして抽出する(ステップS103)。この結果、調情報Keyがメジャ調であれば、IIm7,IIIm7,VIm7の各コードが抽出され、調情報Keyがマイナ調であれば、IIm7,IVm7,IVm6の各コードが抽出される。   Next, the CPU 5 refers to the key information Key, and among the code data registered in the code list CList, the flag information is “None”, and the diatonic scale code m7, m6, mMaj, madd9 Corresponding code data excluding minor I degree and V degree is extracted as a minor system solution destination code (step S103). As a result, if the key information Key is a major key, codes IIm7, IIIm7, and VIm7 are extracted, and if the key information Key is a minor key, codes IIm7, IVm7, and IVm6 are extracted.

次にCPU5は、マイナ系セカンダリードミナントとそのツーファイブ候補の追加処理を実行する(ステップS104)。この追加処理(その詳細は図示せず)では、CPU5は、
(81)前記抽出した全マイナ系解決先コードの各ルートをI度とみなし、それらに対しV7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「V7 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(マイナ系に解決するドミナント候補の追加);
(82)上記(81)で追加した各コードデータの情報データ内の解決先コード情報として記憶されている解決先コードのルートに対してIIm7およびIIm7(♭5)となる各コードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「IIm7/IIm7(♭5) of V7/V7sus4 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(マイナ系に解決するツーファイブ候補の追加);
(83)前記抽出した全マイナ系解決先コードの各ルートをI度とみなし、それらに対しV7sus4となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「V7sus4 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(マイナ系に解決するドミナント候補の追加);
(84)前記抽出した全マイナ系解決先コードの各ルートをI度とみなし、それらに対し♭II7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「♭II7 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(マイナ系に解決するセカンダリードミナント候補の追加);
(85)上記(84)で追加した各コードデータのルートをV度とみなし、それらに対しIIm7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「IIm7 of ♭II7 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加(マイナ系に解決するツーファイブ候補の追加);
の各処理を実行する。
Next, the CPU 5 executes a process of adding a minor secondary dominant and its two-five candidate (step S104). In this additional processing (the details are not shown), the CPU 5
(81) Code routes including code names and degree names corresponding to the detected codes, respectively, in which each route of the extracted all minor solution destination codes is regarded as an I degree, and a code that becomes V7 is detected. In the information data of each code data, “Solution code root” is set as “Solution code information”, “V7 of the frequency of the root of solution code” is set as “Flag information” as “Degree information” Generate what stores “interrupt” and add it to the code list CList (add a dominant candidate that resolves to a minor system);
(82) Detect each code that becomes IIm7 and IIm7 (♭ 5) with respect to the root of the solution code stored as the solution code information in the information data of each code data added in (81) above, Code data that includes a code name and a degree name corresponding to each detected code. In the information data of each code data, “Solution code root” as “Solution code” and “Degree information” Generate "IIm7 / IIm7 (♭ 5) of V7 / V7sus4 of frequency of solution code root" with "interrupt" stored as "flag information" and add to code list CList (resolve to minor system) Add two-five candidates);
(83) Consider each route of the extracted all minor system-solved codes as I degree, detect codes that become V7sus4 against them, and code data that includes code names and degree names corresponding to the detected codes, respectively Then, in the information data of each code data, “Solution code root” as “Solution code information”, “V7sus4 of the frequency of root of solution code” as “Degree information” and “Flag information” Generate what stores “interrupt” and add it to the code list CList (add a dominant candidate that resolves to a minor system);
(84) Code data including the code name and the degree name corresponding to each detected code, regarding each route of the extracted all minor system solution destination codes as I degree, detecting the code that becomes ♭ II7 against them In the information data of each code data, “Resolution Destination Code Information” is “Resolution Destination Code Route”, “Degree Information” is “♭ II7 of Frequency of Destination Code Route”, “Flag Information” ”And“ Interrupt ”stored therein, and added to the code list CList (addition of secondary dominant candidates to be resolved to the minor system);
(85) The route of each code data added in the above (84) is regarded as V degrees, code corresponding to IIm7 is detected with respect to them, and code data each including a code name and a degree name corresponding to each detected code Then, in the information data of each code data, “Resolution Destination Code Information” as “Resolution Destination Code Route”, “Degree Information” as “IIm7 of ♭ II7 of Resolution Destination Code Route Frequency”, “Flag Generate information that stores “interrupt” as “information”, and add it to the code list CList (add two-five candidates to be resolved to the minor system);
Each process is executed.

たとえば、解決先コードが“Dm7”である場合には、前記(81)の処理によって“Dm7”に対するV7として“A7”が、前記(82)の処理によって“Dm7”に対するIIm7とIIm7(♭5)として“Em7”と“Em7(♭5)”が、前記(83)の処理によって“Dm7”に対するV7sus4として“A7sus4”が、前記(84)の処理によって“Dm7”に対する♭II7として“E♭7”が、前記(85)の処理によって“Dm7”に対して♭II7となる“E♭7”の“E♭”をV度とみなしたときのIIm7として“B♭m7”が、それぞれ検出される。   For example, when the solution destination code is “Dm7”, “A7” is obtained as V7 for “Dm7” by the process (81), and IIm7 and IIm7 (♭ 5) for “Dm7” by the process (82). ) As “Em7” and “Em7 (♭ 5)”, “A7sus4” as V7sus4 for “Dm7” by the processing of (83), and “E ♭ as ♭ II7 for“ Dm7 ”by the processing of (84). “B ♭ m7” is detected as IIm7 when “E ♭” of “E ♭ 7”, which becomes ♭ II7 with respect to “Dm7” by the process of (85) above, is regarded as V degrees. Is done.

次にCPU5は、調情報Keyを参照し、コードリストCListに登録されているコードデータのうち、フラグ情報が「なし」であり、かつダイアトニック・スケール・コードのドミナント7th系のコードデータをドミナント7th系解決先コードとして抽出する(ステップS105)。この結果、調情報Keyがメジャ調であれば、V7,V7sus4の各コードが抽出され、調情報Keyがマイナ調であれば、V7,V7sus4,♭VII7,♭VII7sus4(IV7)の各コードが抽出される。   Next, the CPU 5 refers to the key information Key, and among the code data registered in the code list CList, the flag information is “none” and the dominant 7th code data of the diatonic scale code is dominant. It is extracted as a 7th system solution destination code (step S105). As a result, if the key information Key is a major key, the V7 and V7sus4 chords are extracted. If the key information Key is a minor key, the V7, V7sus4, ♭ VII7, and ♭ VII7sus4 (IV7) chords are extracted. Is done.

次にCPU5は、ダブルドミナント候補の追加処理を実行する(ステップS106)。この追加処理(その詳細は図示せず)では、CPU5は、
(91)前記抽出した全ドミナント7th系解決先コードの各ルートをI度とみなし、それらに対しV7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「V7 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加;
(92)前記抽出した全ドミナント7th系解決先コードの各ルートをI度とみなし、それらに対しV7sus4となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「V7sus4 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加;
(93)前記抽出した全ドミナント7th系解決先コードの各ルートをI度とみなし、それらに対し♭II7となるコードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「解決先コード情報」として「解決先コードのルート」を、「ディグリー情報」として「♭II7 of 解決先コードのルートの度数」を、「フラグ情報」として「割り込み」を記憶したものを生成し、コードリストCListに追加;
の各処理を実行する。
Next, the CPU 5 executes a double dominant candidate addition process (step S106). In this additional processing (the details are not shown), the CPU 5
(91) Considering each route of the extracted all dominant 7th system solution-destination codes as I degrees, detecting a code that becomes V7 against them, code data including a code name and a degree name corresponding to each detected code In the information data of each code data, “Resolution Destination Code Route” as “Resolution Destination Code Information”, “V7 of Resolution Destination Code Route Frequency” as “Degree Information”, “Flag Information” As the "interrupt" stored and added to the code list CList;
(92) Consider each route of the extracted all dominant 7th system solution destination codes as I degree, detect code that becomes V7sus4 against them, and code data including code name and degree name corresponding to each detected code In the information data of each code data, “Resolution Destination Code Information” is “Resolution Destination Code Route”, “Degree Information” is “V7sus4 of Frequency of Resolution Destination Code Route”, “Flag Information” As the "interrupt" stored and added to the code list CList;
(93) Considering each route of the extracted all dominant 7th system solution-destination codes as I degrees, detects codes that are ♭ II7 against them, and each includes a code name and a degree name corresponding to each detected code In the information data of each code data, “Resolution Destination Code Information” is “Resolution Destination Code Route”, “Degree Information” is “♭ II7 of Frequency of Destination Code Route”, “Flag Generate information that stores “interrupt” as “information” and add it to the code list CList;
Each process is executed.

たとえば、解決先コードが“G7”である場合には、前記(91)の処理によって“G7”に対するV7として“D7”が、前記(92)の処理によって“G7”に対するV7sus4として“D7sus4”が、前記(93)の処理によって“G7”に対する♭II7として“A♭7”が、それぞれ検出される。   For example, when the solution destination code is “G7”, “D7” is obtained as V7 for “G7” by the process (91), and “D7sus4” is obtained as V7sus4 for “G7” by the process (92). In the process of (93), “A“ 7 ”is detected as“ ♭ 7 ”for“ G7 ”.

次にCPU5は、前記EPフラグのセット/リセット状態を判別し(ステップS107)、セット状態であれば、エクステンデッド・ドミナント候補の追加処理を実行する(ステップS108)とともに、EPフラグをリセットした(ステップS109)後、ステップS110に進む一方、リセット状態であれば、ステップS108およびS109をスキップしてステップS110に進む。   Next, the CPU 5 determines the set / reset state of the EP flag (step S107). If the EP flag is in the set state, the CPU 5 executes an extended dominant candidate addition process (step S108) and resets the EP flag (step S107). After S109), the process proceeds to step S110. On the other hand, if it is in the reset state, the process skips steps S108 and S109 and proceeds to step S110.

エクステンデッド・ドミナント候補の追加処理(その詳細は図示せず)では、CPU5は、
(101)前回のディグリーネームLDNのルート音名の完全4度上の音名をルートに持つ(コードタイプが)7コードと7sus4コードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「フラグ情報」として「エクステンデッドV7/V7sus4」を記憶したものを生成し、コードリストCListに追加;
(102)前回のディグリーネームLDNのルート音名の1半音下の音名をルートに持つ7コードを検出し、検出したコードに対応するコードネームおよびディグリーネームを含むコードデータであって、その情報データに、「フラグ情報」として「エクステンデッド♭II7」を記憶したものを生成し、コードリストCListに追加;
の各処理を実行する。
In the extended dominant candidate addition process (the details are not shown), the CPU 5
(101) Detect 7 chords and 7sus4 chords (chord type) that have a pitch that is four times higher than the root pitch name of the previous degree name LDN in the root, and the chord name and degree name corresponding to each chord detected Each of the code data including “extended V7 / V7sus4” as “flag information” is added to the code list CList;
(102) Code data including a chord name and a degree name corresponding to the detected chord detected by detecting 7 chords having a pitch that is one semitone below the root pitch name of the previous degree name LDN. Generate data that stores “Extended ♭ II7” as “flag information” and add it to the code list CList;
Each process is executed.

前記ステップS110では、CPU5は、コードリストCListに登録されているコードデータのうち、コードネーム(ディグリーネーム)が重複したものがあれば、その情報データ内のフラグ情報が「割り込み」、「エクステンデッドV7」または「エクステンデッド♭II7」のいずれかであるコードデータをコードリストCListから削除する。   In step S110, if there is a duplicate code name (degree name) in the code data registered in the code list CList, the CPU 5 sets the flag information in the information data to “interrupt”, “extended V7”. ”Or“ Extended ♭ II7 ”is deleted from the code list CList.

図11A〜図11Cは、前記図7のステップS53のコード進行形成用コード検出処理の詳細な手順を示すフローチャートである。   11A to 11C are flowcharts showing the detailed procedure of the chord progression forming chord detection process in step S53 of FIG.

本コード進行形成用コード検出処理では、CPU5は、スタートコードSChordの情報データ内のフラグ情報が「割り込み」のときに、前記割り込み型コード進行を形成するためのコードデータを検出し(ステップS121→S122)、当該フラグ情報が「エクステンデッドV7/V7sus4」または「エクステンデッド♭II7」のときに、前記エクステンデッド型コード進行を形成するためのコードデータを検出する(ステップS121→図11BのS153)。   In this code progression forming code detection process, the CPU 5 detects code data for forming the interrupt type chord progression when the flag information in the information data of the start code SChord is “interrupt” (step S121 → S122) When the flag information is “Extended V7 / V7sus4” or “Extended ♭ II7”, the chord data for forming the extended chord progression is detected (Step S121 → S153 in FIG. 11B).

割り込み型コード進行を形成するためのコードデータの検出処理(以下、「割り込み型コード進行形成用コード検出処理」という)では、まずCPU5は、スタートコードSChordの次に進むコード候補であって、割り込み型コード進行となるもの(以下、「次の割り込み型コード候補」という)を抽出して、当該次の割り込み型コード候補に対応するコードデータをコードリストCListに登録する(ステップS122→S123)。   In the code data detection process for forming an interrupt type code progression (hereinafter referred to as “interrupt type code progress formation code detection process”), first, the CPU 5 is a code candidate that proceeds next to the start code SChord. The type code progression (hereinafter referred to as “next interrupt type code candidate”) is extracted, and the code data corresponding to the next interrupt type code candidate is registered in the code list CList (steps S122 → S123).

図12Aおよび図12Bは、次の割り込み型コード候補の抽出処理の詳細な手順を示すフローチャートである。   FIG. 12A and FIG. 12B are flowcharts showing the detailed procedure of the next interrupt code candidate extraction process.

本次の割り込み型コード候補の抽出処理では、CPU5は、次の処理を実行する。すなわち、
(111)スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定のIIm7またはIIm7(♭5)が検出されている場合:
(111a)スタートコードSChordのルート音名に対し完全4度上の音名をルートとする7コードのコードネームおよびディグリーネームを含むコードデータを生成して、コードリストCListに登録し(ステップS171→S172);
(111b)スタートコードSChordのルート音名に対し完全4度上の音名をルートとする7sus4コードのコードネームおよびディグリーネームを含むコードデータを生成して、コードリストCListに登録し(ステップS173);
(111c)スタートコードSChordのルート音名に♭を付けた(ルート音名を変えずに半音下げる)音名のコードネームおよびディグリーネームを含むコードデータを生成して、コードリストCListに登録した(ステップS174)後、本抽出処理を終了(リターン);
(112)スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定のV7またはV7sus4が検出されている場合:
(112a)スタートコードSChordのルート音名に対し完全4度上の音名をルートとするダイアトニック・スケール・コードを、調情報Keyに応じてすべて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS175→S176);
(112b)上記(112a)の登録処理によって登録されたコードデータの機能と同じ機能を持つコードを、ダイアトニック・スケール・コードとダイアトニック・スケール・コード以外のコードから調情報Keyに応じて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS177);
(112c)スタートコードSChordの情報データ内の解決先コード情報(のルートの度数)がVI度であり、かつ調情報Keyがメジャ調であるときには、VIMaj7,IV6,IVadd9,IVに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS178);
(112d)スタートコードSChordのルート音名に対し完全4度上の音名をルートとする7コードおよび7sus4コードの各コードネームおよび各ディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「フラグ情報」として「エクステンデッドV7/V7sus4」を記憶したものを生成し、コードリストCListに登録し(ステップS179);
(112e)スタートコードSChordのルート音名に対し半音下の音名をルートとする7コードのコードネームおよびディグリーネームを含むコードデータであって、情報データに、「フラグ情報」として「エクステンデッド♭II7」を記憶したものを生成し、コードリストCListに登録した(ステップS180)後、本抽出処理を終了(リターン);
(113)スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定の♭II7が検出されている場合:
(113a)スタートコードSChordのルート音名に対し短2度下の音名をルートとするダイアトニック・スケール・コードを、調情報Keyに応じてすべて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS181→S182);
(113b)上記(113a)の登録処理によって登録されたコードデータの機能と同じ機能を持つコードを、ダイアトニック・スケール・コードとダイアトニック・スケール・コード以外のコードから調情報Keyに応じて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS183);
(113c)前記(112d)の抽出処理と同様の処理を実行し(ステップS179);
(113d)前記(112e)の抽出処理と同様の処理を実行した(ステップS180)後、本抽出処理を終了(リターン);
(114)スタートコードSChordとして、V7/V7sus4コードへ解決する予定のV7/V7sus4が検出されている場合:
(114a)スタートコードSChordのルート音名に対し完全4度上の音名をルートとする7コードおよびV7sus4(V度のみ)コードの各コードネームおよび各ディグリーネームをそれぞれ含むコードデータを生成し、コードリストCListに登録し(図12BのステップS184→S185);
(114b)上記(114a)の登録処理によって登録されたコードデータの機能と同じ機能を持つコードを、ダイアトニック・スケール・コードとダイアトニック・スケール・コード以外のコードから調情報Keyに応じて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS186);
(114c)スタートコードSChordのルート音名と同じルートを持つm7(=IIm7 of V7)コードおよびIIm7(♭5)(=IIm7(♭5) of V7)コードの各コードネームおよび各ディグリーネームをそれぞれ含むコードデータであって、情報データに、「フラグ情報」として「寄り道」を記憶したものを生成し、コードリストCListに登録した(ステップS187)後、本抽出処理を終了(リターン);
(115)スタートコードSChordとして、V7/V7sus4コードへ解決する予定の♭II7が検出されている場合:
(115a)スタートコードSChordのルート音名に対し短2度下の音名をルートとする7コードおよびV7sus4(V度のみ)コードの各コードネームおよび各ディグリーネームをそれぞれ含むコードデータを生成し、コードリストCListに登録し(ステップS188→S189);
(115b)上記(115a)の登録処理によって登録されたコードデータの機能と同じ機能を持つコードを、ダイアトニック・スケール・コードとダイアトニック・スケール・コード以外のコードから調情報Keyに応じて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録し(ステップS190);
(115c)スタートコードSChordのルート音名に対し短2度下の音名からさらに完全4度下の音名をルートに持つm7(=IIm7 of V7)コードおよびIIm7(♭5)(=IIm7(♭5) of V7)コードの各コードネームおよび各ディグリーネームをそれぞれ含むコードデータであって、情報データに、「フラグ情報」として「寄り道」を記憶したものを生成し、コードリストCListに登録した(ステップS191)後、本抽出処理を終了(リターン);
の各処理を実行する。なお、コードリストCListに登録するためにコードデータを生成する際に、フラグ情報について言及していないステップ、具体的には、ステップS172〜S174,S176〜S178,S182,S183では、コードデータにはフラグ情報は設定されないものとする。
In the next interruption type code extraction process, the CPU 5 executes the following process. That is,
(111) When IIm7 or IIm7 (♭ 5) scheduled to be resolved to a major system solution destination code or a minor system solution destination code is detected as the start code SChord:
(111a) Generate chord data including a chord name and a degree name of 7 chords whose root is a pitch name four times higher than the root pitch name of the start code SChord, and register it in the chord list CList (step S171 → S172);
(111b) Generate chord data including a chord name and a degree name of a 7sus4 chord whose root is a pitch four times higher than the root chord name of the start code SChord, and register it in the chord list CList (step S173) ;
(111c) The chord data including the chord name and degree name of the pitch name with the ♭ added to the root pitch name of the start code SChord (lowering the semitone without changing the root pitch name) is generated and registered in the chord list CList ( After step S174), the extraction process is terminated (return);
(112) When V7 or V7sus4 scheduled to be resolved to the major system solution destination code or the minor system solution destination code is detected as the start code SChord:
(112a) Detects all diatonic scale chords whose root is a pitch name four times higher than the root pitch name of the start code SChord according to the key information Key, and the chord name corresponding to each detected chord And code data including the degree names are registered and registered in the code list CList (steps S175 → S176);
(112b) A code having the same function as that of the code data registered by the registration process of (112a) is detected from the diatonic scale code and a code other than the diatonic scale code according to the key information Key. Then, code data each including a code name and a degree name corresponding to each detected code is generated and registered in the code list CList (step S177);
(112c) The code name corresponding to VIMaj7, IV6, IVadd9, IV when the solution code information (the frequency of the route thereof) in the information data of the start code SChord is VI degrees and the key information Key is major. And code data including each degree name are generated and registered in the code list CList (step S178);
(112d) Code data including code names and degree names of 7 chords and 7sus4 chords whose roots are completely four times higher than the root pitch name of the start code SChord, and each chord data information A data in which “extended V7 / V7sus4” is stored as “flag information” is generated and registered in the code list CList (step S179);
(112e) Code data including a chord name and a degree name of 7 chords whose root is a pitch name that is a semitone below the root pitch name of the start code SChord, and the information data includes “extended ♭ II7” as “flag information” Is stored in the code list CList (step S180), and then the extraction process is terminated (return);
(113) When ♭ II7 scheduled to be resolved to the major system solution destination code or the minor system solution destination code is detected as the start code SChord:
(113a) All of the diatonic scale chords whose root is the pitch name that is a second lower than the root pitch name of the start code SChord is detected according to the key information Key, and the chord name corresponding to each detected chord Code data including the degree name and the degree name are registered in the code list CList (steps S181 → S182);
(113b) A code having the same function as the function of the code data registered by the registration process of (113a) is detected from the diatonic scale code and a code other than the diatonic scale code according to the key information Key. Code data including a code name and a degree name corresponding to each detected code are generated and registered in the code list CList (step S183);
(113c) A process similar to the extraction process of (112d) is executed (step S179);
(113d) After performing the same processing as the extraction processing of (112e) (step S180), the extraction processing is terminated (return);
(114) When V7 / V7sus4 scheduled to be resolved to V7 / V7sus4 code is detected as start code SChord:
(114a) Generate chord data including each chord name and each degree name of 7 chords and V7sus4 (V degree only) chords whose roots are pitches four times higher than the root pitch name of the start code SChord Registered in the code list CList (steps S184 to S185 in FIG. 12B);
(114b) A code having the same function as that of the code data registered by the registration process of (114a) is detected from the diatonic scale code and a code other than the diatonic scale code according to the key information Key. Then, code data each including a code name and a degree name corresponding to each detected code is generated and registered in the code list CList (step S186);
(114c) The m7 (= IIm7 of V7) chord and IIm7 (♭ 5) (= IIm7 (♭ 5) of V7) chord names and degree names that have the same root note name as the start chord SChord Code data including “departure” as “flag information” is generated in the information data and registered in the code list CList (step S187), and then the extraction process is terminated (return);
(115) When ♭ II7 scheduled to be resolved to V7 / V7sus4 code is detected as start code SChord:
(115a) Generate chord data including each chord name and each degree name of 7 chords and V7sus4 (V degree only) chords rooted at a pitch that is a second lower than the root chord name of the start code SChord, Registered in the code list CList (steps S188 → S189);
(115b) A code having the same function as that of the code data registered by the registration process of (115a) is detected from the diatonic scale code and a code other than the diatonic scale code according to the key information Key. Code data including a code name and a degree name corresponding to each detected code are generated and registered in the code list CList (step S190);
(115c) The m7 (= IIm7 of V7) chord and IIm7 (♭ 5) (= IIm7 (= IIm7 ( ♭ 5) of V7) Code data including each code name and each degree name of the code, in which information data is stored as “flag information” and “detour” is generated and registered in the code list CList After (step S191), this extraction process is terminated (return);
Each process is executed. Note that when generating code data for registration in the code list CList, steps that do not mention flag information, specifically, steps S172 to S174, S176 to S178, S182, and S183, It is assumed that flag information is not set.

図11Aに戻り、次にCPU5は、スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定のIIm7またはIIm7(♭5)が検出されている場合には、スタートコードSChordの次の次に進むコード候補であって、割り込み型コード進行となるもの(以下、「次の次の割り込み型コード候補」という)を抽出して、当該次の次の割り込み型コード候補に対応するコードデータを前記次コードリストNCListに登録する(ステップS124→S125)。   Returning to FIG. 11A, the CPU 5 next detects the start code SChord as IIm7 or IIm7 (♭ 5) to be resolved to the major system solution destination code or the minor system solution destination code as the start code SChord. Extract the next next code candidate that will be an interrupt type code (hereinafter referred to as “next next interrupt type code candidate”) and correspond to the next next interrupt type code candidate Code data to be registered is registered in the next code list NCList (steps S124 → S125).

次の次の割り込み型コード候補の抽出処理(その詳細は図示せず)では、CPU5は、次の処理を実行する。すなわち、
(121)スタートコードSChordの情報データ内の解決先コード情報から解決先コードを検出し(検出したコードのルートの度数によっては、複数の異なるタイプのものがある。たとえば、抽出したコードのルートの度数がIV度の場合、解決先コードとしてはIVMaj7,IV,IV6,IVadd9が検出される)、検出した各解決先コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、次コードリストNCListに登録し;
(122)上記(121)の登録処理によって登録されたコードデータの機能と同じ機能を持つコードを、ダイアトニック・スケール・コードとダイアトニック・スケール・コード以外のコードから調情報Keyに応じて検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、次コードリストNCListに登録し;
(123)スタートコードSChordのルート音名に対し完全4度上の音名のさらに完全4度上の音名をルートとする7コードおよび7sus4コードの各コードネームおよび各ディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「フラグ情報」として「エクステンデッドV7/V7sus4」を記憶したものを生成し、次コードリストNCListに登録し;
(124)スタートコードSChordのルート音名に♭を付けた音名のさらに1半音下の音名をルートとする7コードのコードネームおよびディグリーネームを含むコードデータであって、情報データに、「フラグ情報」として「エクステンデッド♭II7」を記憶したものを生成し、次コードリストNCListに登録;
の各処理を実行する。
In the next process for extracting the next interrupt type code candidate (details thereof are not shown), the CPU 5 executes the following process. That is,
(121) The resolution code is detected from the resolution code information in the information data of the start code SChord (there are a plurality of different types depending on the frequency of the detected code route. If the frequency is IV degrees, IVMaj7, IV, IV6, and IVadd9 are detected as the solution destination codes), and the code data including the code name and the degree name corresponding to each detected solution destination code is generated, and the next Register in the code list NCList;
(122) A code having the same function as the function of the code data registered by the registration process of (121) is detected from the diatonic scale code and codes other than the diatonic scale code according to the key information Key. Code data including a code name and a degree name corresponding to each detected code are generated and registered in the next code list NCList;
(123) Chord data including 7 chord names and 7sus4 chord chord names and degree names, respectively, rooted at a pitch name that is four degrees higher than the fourth complete pitch name with respect to the root pitch name of the start code SChord In the information data of each code data, “flag information” storing “extended V7 / V7sus4” is generated and registered in the next code list NCList;
(124) Code data including a chord name and a degree name of 7 chords whose root is the pitch name one semitone below the pitch name with a コ ー ド added to the root pitch name of the start code SChord, “Extension ♭ II7” stored as “flag information” is generated and registered in the next code list NCList;
Each process is executed.

次にCPU5は、前記ステップS47およびS48と同様にして、ノートイベントリストNListとコードリストCListに基づいて、コードデータを1つ選出し(ステップS126)、選出したコードデータを検出コードChordに記憶する(ステップS127)。   Next, the CPU 5 selects one piece of code data based on the note event list NList and the code list CList (step S126), and stores the selected code data in the detection code Chord in the same manner as in the steps S47 and S48. (Step S127).

そしてCPU5は、検出コードChordに応じて次の処理を実行する。すなわち、
(131)検出コードChordが前記(111a)または(111b)の登録処理によってコードリストCListに登録されたものである場合:次コードリストNCListから、情報データ内のフラグ情報が「エクステンデッド♭II7」であるコードデータを削除した(ステップS128→S132)後、ステップS131に移行;
(132)検出コードChordが前記(111c)の登録処理によってコードリストCListに登録されたものである場合:次コードリストNCListから、情報データ内のフラグ情報が「エクステンデッドV7/V7sus4」であるコードデータを削除した(ステップS128→S129→S130)後、ステップS131に移行;
(133)上記(131)および(132)のいずれの場合にも該当しない場合:何もせずにステップS131に移行;
のいずれかの処理を実行する。
Then, the CPU 5 executes the following process according to the detection code Chord. That is,
(131) When the detection code Chord is registered in the code list CList by the registration processing of (111a) or (111b): From the next code list NCList, the flag information in the information data is “Extended ♭ II7”. After deleting certain code data (step S128 → S132), the process proceeds to step S131;
(132) When the detection code Chord is registered in the code list CList by the registration process of (111c): From the next code list NCList, code data whose flag information in the information data is “Extended V7 / V7sus4” Is deleted (step S128 → S129 → S130), and then the process proceeds to step S131;
(133) If none of the above cases (131) and (132) applies: Move to step S131 without doing anything;
Execute one of the processes.

ステップS131では、CPU5は、コードリストCListを初期化(クリア)した後、次コードリストNCList内のすべてのコードデータをコードリストCListに記憶させる。そしてCPU5は、本コード進行形成用コード検出処理を終了させる(リターン)。   In step S131, the CPU 5 initializes (clears) the code list CList, and then stores all the code data in the next code list NCList in the code list CList. Then, the CPU 5 ends the chord progression forming chord detection process (return).

上記(131)および(132)の削除処理では、検出コードChordの次に進むコードデータとして、つながりに無理のあるコード候補を削除するようにしている。   In the deletion processes (131) and (132) described above, code candidates that are impossible to connect are deleted as code data that follows the detection code Chord.

次に本コード進行形成用コード検出処理が起動された場合、スタートコードSChordの情報データ内のフラグ情報は「割り込み」であり、かつコードリストCListには1つ以上のコードデータが登録されているので、処理はステップS144に進む。   Next, when this code progression forming code detection process is activated, the flag information in the information data of the start code SChord is “interrupt”, and one or more code data is registered in the code list CList. Therefore, the process proceeds to step S144.

ステップS144では、検出コードChordの情報データ内のフラグ情報が「寄り道」であるかどうかを判別し、「寄り道」でなければ、CPU5は、前記ステップS126およびS127と同様にして、ノートイベントリストNListとコードリストCListに基づいて、コードデータを1つ選出し(ステップS150)、選出したコードデータを検出コードChordに記憶する(ステップS151)。そしてCPU5は、この検出コードChordの情報データ内のフラグ情報が「なし」であれば、割り込み型コード進行形成用コード検出処理を終了させるために、当該フラグ情報を「End」に設定した(ステップS152→S149)後、本コード進行形成用コード検出処理を終了する(リターン)一方、当該フラグ情報が「なし」でなければ、割り込み型コード進行形成用コード検出処理を継続させるために、何もせずに本コード進行形成用コード検出処理を終了する(ステップS152→リターン)。   In step S144, it is determined whether or not the flag information in the information data of the detection code Chord is “detour”. If it is not “departure”, the CPU 5 performs the note event list NList in the same manner as in steps S126 and S127. Based on the code list CList, one code data is selected (step S150), and the selected code data is stored in the detection code Chord (step S151). Then, if the flag information in the information data of the detection code Chord is “none”, the CPU 5 sets the flag information to “End” in order to end the interrupt type chord progression formation code detection process (step After S152 → S149), the chord progression forming code detection process is terminated (return). On the other hand, if the flag information is not “None”, nothing is performed to continue the interrupt chord progression forming code detection process. The chord progression forming chord detection process is terminated (step S152 → return).

一方、ステップS144の判別の結果、検出コードChordの情報データ内のフラグ情報が「寄り道」であれば、CPU5は、前記ステップS126およびS127と同様にして、ノートイベントリストNListとコードリストCListに基づいて、コードデータを1つ選出し(ステップS145)、選出したコードデータを検出コードChordに記憶する(ステップS146)。そしてCPU5は、この検出コードChord(のコードタイプ)が7コードまたは7sus4コードに該当すれば、前記EPフラグをセットし(ステップS147→S148)、検出コードChordの情報データ内のフラグ情報を「End」に設定した(ステップS149)後、本コード進行形成用コード検出処理を終了する(リターン)一方、この検出コードChordが7コードまたは7sus4コードに該当しなければ、ステップS148をスキップして、処理を前記ステップS149に進める。   On the other hand, as a result of the determination in step S144, if the flag information in the information data of the detection code Chord is “detour”, the CPU 5 is based on the note event list NList and the code list CList similarly to steps S126 and S127. Then, one piece of code data is selected (step S145), and the selected code data is stored in the detection code Chord (step S146). If the detection code Chord (code type) corresponds to 7 code or 7sus4 code, the CPU 5 sets the EP flag (step S147 → S148), and sets the flag information in the information data of the detection code Chord to “End”. (Step S149), the chord progression forming code detection process is terminated (Return). On the other hand, if the detection code Chord does not correspond to the 7 code or 7sus4 code, the process skips Step S148 and performs the process. Advances to step S149.

前記ステップS124で、スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定のIIm7またはIIm7(♭5)が検出されていない場合には、CPU5は、前記ステップS126およびS127と同様にして、ノートイベントリストNListとコードリストCListに基づいて、コードデータを1つ選出し(図11CのステップS133)、選出したコードデータを検出コードChordに記憶する(ステップS134)。そしてCPU5は、次の処理を実行する。すなわち、
(141)スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定のV7またはV7sus4または♭II7が検出されている場合:
(141a)検出コードChordの情報データ内のフラグ情報が「なし」の場合:検出コードChordの情報データ内のフラグ情報を「End」に設定(ステップS136→S137→S138);
(141b)検出コードChordの情報データ内のフラグ情報が「なし」でない場合:本コード進行形成用コード検出処理を終了(ステップS136→S137→リターン);
(142)スタートコードSChordとして、メジャ系解決先コードまたはマイナ系解決先コードへ解決する予定のV7またはV7sus4または♭II7が検出されていない場合:
(142a)検出コードChordの情報データ内のフラグ情報が「なし」の場合:
(142a1)検出コードChordが7コードまたは7sus4コードに該当する場合:EPフラグをセットした(ステップS136→S139→S140→S141)後、検出コードChordの情報データ内のフラグ情報を「End」に設定(ステップS138);
(142a2)検出コードChordが7コードまたは7sus4コードに該当しない場合:検出コードChordの情報データ内のフラグ情報を「End」に設定(ステップS136→S139→S140→S138);
(142b)検出コードChordの情報データ内のフラグ情報が「なし」でない場合:コードリストCListから、情報データ内のフラグ情報が「寄り道」であるコードデータを削除(ステップS136→S139→S142);
(142b1)コードリストCListが空の場合:検出コードChordの情報データ内のフラグ情報を「End」に設定(ステップS143→S138);
(142b2)コードリストCListが空でない場合:本コード進行形成用コード検出処理を終了(ステップS143→リターン);
の各処理を実行する。
In step S124, if IIm7 or IIm7 (♭ 5) scheduled to be resolved to the major system solution destination code or the minor system solution destination code is not detected as the start code SChord, the CPU 5 proceeds to steps S126 and S127. Similarly, one chord data is selected based on the note event list NList and the chord list CList (step S133 in FIG. 11C), and the selected chord data is stored in the detection code Chord (step S134). Then, the CPU 5 executes the following process. That is,
(141) When V7, V7sus4, or ♭ II7, which is scheduled to be resolved to a major system solution destination code or a minor system solution destination code, is detected as the start code SChord:
(141a) When the flag information in the information data of the detection code Chord is “None”: The flag information in the information data of the detection code Chord is set to “End” (Steps S136 → S137 → S138);
(141b) When the flag information in the information data of the detection code Chord is not “None”: The chord progression formation code detection process is terminated (Steps S136 → S137 → Return);
(142) When V7 or V7sus4 or ♭ II7 scheduled to be resolved to a major system solution destination code or a minor system solution destination code is not detected as the start code SChord:
(142a) When the flag information in the information data of the detection code Chord is “None”:
(142a1) When the detection code Chord corresponds to 7 code or 7sus4 code: After setting the EP flag (step S136 → S139 → S140 → S141), the flag information in the information data of the detection code Chord is set to “End” (Step S138);
(142a2) When the detection code Chord does not correspond to the 7 code or the 7sus4 code: The flag information in the information data of the detection code Chord is set to “End” (steps S136 → S139 → S140 → S138);
(142b) When the flag information in the information data of the detection code Chord is not “None”: Delete the code data in which the flag information in the information data is “detour” from the code list CList (steps S136 → S139 → S142);
(142b1) When the code list CList is empty: flag information in the information data of the detection code Chord is set to “End” (steps S143 → S138);
(142b2) If the chord list CList is not empty: the chord progression forming chord detection process is terminated (step S143 → return);
Each process is executed.

処理が前記ステップS124から前記ステップS133に進む場合は、スタートコードSChordの次に進むコード、つまり検出コードChordとして検出されるものは、割り込み型コード進行の終点となるコードまたは「寄り道」となるコードまたはエクステンデッド型コード進行を形成するためのコードのいずれかである。そして、検出コードChordが割り込み型コード進行の終点となるコードの場合が、前記(141a)および(142a)の場合であり、検出コードChordが「寄り道」となるコードの場合が、前記(142b)の場合であり、検出コードChordがエクステンデッド型コード進行を形成するためのコードの場合が、前記(141b)の場合である。   When the process proceeds from the step S124 to the step S133, the code that proceeds next to the start code SChord, that is, the code that is detected as the detection code Chord is the code that becomes the end point of the interruption type chord progression or the code that becomes the “detour” Or any of the chords for forming an extended chord progression. The cases where the detection code Chord is the end point of the interruption type chord progression are the cases (141a) and (142a), and the case where the detection code Chord is the “detour” is (142b). This is the case (141b) where the detection code Chord is a code for forming an extended chord progression.

前記図11AのステップS121で、スタートコードSChordの情報データ内のフラグ情報が「エクステンデッドV7/V7sus4」または「エクステンデッド♭II7」のときには、CPU5は、前述のようにエクステンデッド型コード進行を形成するためのコードデータを検出する。   In step S121 of FIG. 11A, when the flag information in the information data of the start code SChord is “Extended V7 / V7sus4” or “Extended ♭ II7”, the CPU 5 forms the extended chord progression as described above. Detect code data.

エクステンデッド型コード進行を形成するためのコードデータの検出処理(以下、「エクステンデッド型コード進行形成用コード検出処理」という)では、まずCPU5は、スタートコードSChordの次に進むコード候補であって、エクステンデッド型コード進行となるもの(以下、「次のエクステンデッド型コード候補」という)を抽出して、当該次のエクステンデッド型コード候補に対応するコードデータをコードリストCListに登録する、次のエクステンデッド型コード候補の抽出処理を実行する(図11BのステップS153)。   In the chord data detection process for forming the extended chord progression (hereinafter referred to as “extended chord progression forming chord detection process”), first, the CPU 5 is a chord candidate that proceeds next to the start code SChord. The next extended type code candidate that extracts the type code progression (hereinafter referred to as “next extended type code candidate”) and registers the code data corresponding to the next extended type code candidate in the code list CList Is extracted (step S153 in FIG. 11B).

この次のエクステンデッド型コード候補の抽出処理(その詳細は図示せず)では、CPU5は、
(151)スタートコードSChordのルート音名の完全4度上の音名をルートに持つ7コードと7sus4コードを検出し、検出した各コードに対応するコードネームおよびディグリーネームをそれぞれ含むコードデータであって、各コードデータの情報データに、「フラグ情報」として「エクステンデッドV7/V7sus4」を記憶したものを生成し、コードリストCListに追加(ただし、コードリストCList中に、同じコードネーム(ディグリーネーム)のコードデータが既に登録されていれば、追加登録しない);
(152)スタートコードSChordのルート音名の1半音下の音名をルートに持つ7コードを検出し、検出したコードに対応するコードネームおよびディグリーネームを含むコードデータであって、その情報データに、「フラグ情報」として「エクステンデッド♭II7」を記憶したものを生成し、コードリストCListに追加(ただし、コードリストCList中に、同じコードネーム(ディグリーネーム)のコードデータが既に登録されていれば、追加登録しない);
の各処理を実行する。
In the next extended code candidate extraction process (details not shown), the CPU 5
(151) The chord data including the chord name and the degree name corresponding to each detected chord are detected as 7 chords and 7sus 4 chords having roots that are four times higher than the root pitch name of the start code SChord. Then, the information data of each code data is generated by storing “extended V7 / V7sus4” as “flag information” and added to the code list CList (however, the same code name (degree name) in the code list CList) If the code data of is already registered, it will not be added));
(152) Code data including a chord name and a degree name corresponding to the detected chord are detected, and the chord data includes a chord name that is one semitone below the root pitch name of the start code SChord. , Generating “extension ♭ II7” as “flag information” and adding it to the code list CList (provided that code data of the same code name (degree name) is already registered in the code list CList) , No additional registration);
Each process is executed.

次にCPU5は、ステップS154において、
(161)スタートコードSChordの情報データ内のフラグ情報が「エクステンデッドV7/V7sus4」の場合:スタートコードSChordのルート音名に対し完全4度上の音名をルートとするMaj7,6,add9,m7,m6,mMaj7,madd9のコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録;
(162)スタートコードSChordの情報データ内のフラグ情報が「エクステンデッド♭II7」の場合:スタートコードSChordのルート音名に対し1半音下の音名をルートとするMaj7,6,add9,m7,m6,mMaj7,madd9のコードネームおよびディグリーネームをそれぞれ含むコードデータを生成して、コードリストCListに登録;
のいずれかの処理を実行する。
Next, in step S154, the CPU 5
(161) When the flag information in the information data of the start code SChord is “Extended V7 / V7sus4”: Maj7, 6, add9, m7 having the pitch name four times higher than the root pitch name of the start code SChord as the root , M6, mMaj7, madd9 code data including the degree name and the degree name are generated and registered in the code list CList;
(162) When the flag information in the information data of the start code SChord is “Extended ♭ II7”: Maj7, 6, add9, m7, m6 having a pitch one semitone below the root pitch name of the start code SChord as a root , Generate code data including code names and degree names of mMaj7 and madd9 and register them in the code list CList;
Execute one of the processes.

次にCPU5は、ノートイベントリストNListとコードリストCListとさらに使用可能なすべてのコードに基づいて、コードデータを1つ選出し(ステップS155)、選出したコードデータを検出コードChordに記憶する(ステップS156)。ここで、使用可能なすべてのコードとは、すべての調のダイアトニック・スケールの各構成音名を(使用可能な)ディグリーネームの度数に代入して得られるすべてのコードを意味する。   Next, the CPU 5 selects one piece of code data based on the note event list NList, the code list CList, and all available codes (step S155), and stores the selected code data in the detection code Chord (step S155). S156). Here, all the chords that can be used mean all chords obtained by substituting the component names of all key diatonic scales into the degrees of the (usable) degree names.

そしてCPU5は、検出コードChordの情報データ内のフラグ情報が「なし」かどうかを判別する(ステップS157)。この判別では、検出コードChordがエクステンデッド型コード進行の終点となるコードかどうかを判別し、当該フラグ情報が「なし」でないとき、つまり「エクステンデッドV7/V7sus4」または「エクステンデッド♭II7」のときには、エクステンデッド型コード進行形成用コード検出処理が続くので、エクステンデッド・ドミナントが続いて検出されることになる。上記ステップS157の判別の結果、当該フラグ情報が「なし」でないときには、CPU5は、本コード進行形成用コード検出処理を直ちに終了する(ステップS157→リターン)一方、当該フラグ情報が「なし」のときには、CPU5は、次の処理を実行する。すなわち、
(171)スタートコードSChordの情報データ内のフラグ情報が「エクステンデッドV7/V7sus4」の場合:
(171a)検出コードChordはスタートコードSChordに対しルートが完全4度上の音名のMaj7/6/add9/m7/m6/mMaj7/madd9のいずれかのコードに該当する場合:
(171a1)検出コードChordとその異名同音コードまで含めたコードネームの中で調情報Keyで扱うことができるコードネームがある場合:調情報Keyで扱うことができると判断されたコードネームとディグリーネームを含むコードデータを生成して、検出コードChordに記憶(ステップS161);
(171a2)検出コードChordとその異名同音コードまで含めたコードネームの中で調情報Keyで扱うことができるコードネームがない場合:転調と判断して、前記図7のステップS42と同様にして、新しい調情報を取得し(ステップS165)、前記ステップS43と同様にして、取得した調情報を調情報Keyに記憶し(ステップS166)、検出コードChordに含まれるコードネームとディグリーネームを調情報Keyに合わせた上で、検出コードChordに記憶(ステップS167);
(171b)検出コードChordはスタートコードSChordに対しルートが完全4度上の音名のMaj7/6/add9/m7/m6/mMaj7/madd9のいずれかのコードに該当しない場合:
(171b1)検出コードChordは調情報Keyで扱うことができるコードである場合:上記(171a1)の処理に移行;
(171b2)検出コードChordは調情報Keyで扱うことができるコードでない場合:上記(171a2)の処理に移行;
(172)スタートコードSChordの情報データ内のフラグ情報が「エクステンデッドV7/V7sus4」でない場合:
(172a)検出コードChordはスタートコードSChordに対しルートが1半音下の音名のMaj7/6/add9/m7/m6/mMaj7/madd9のいずれかのコードに該当する場合:上記(171a1)または(171a2)のいずれかの処理に移行;
(172b)検出コードChordはスタートコードSChordに対しルートが1半音下の音名のMaj7/6/add9/m7/m6/mMaj7/madd9のいずれかのコードに該当しない場合:上記(171b1)または(171b2)のいずれかの処理に移行;
のいずれかの処理を実行する。
Then, the CPU 5 determines whether or not the flag information in the information data of the detection code Chord is “none” (step S157). In this determination, it is determined whether or not the detection code Chord is an end code of the extended chord progression. Since the chord detection process for forming the type chord progression continues, the extended dominant is subsequently detected. If the flag information is not “none” as a result of the determination in step S157, the CPU 5 immediately ends the chord progression forming code detection process (step S157 → return), whereas if the flag information is “none”. The CPU 5 executes the following processing. That is,
(171) When the flag information in the information data of the start code SChord is “Extended V7 / V7sus4”:
(171a) When the detection code Chord corresponds to one of the codes of Maj7 / 6 / add9 / m7 / m6 / mMaj7 / madd9 whose pitch is completely four times higher than the start code SChord:
(171a1) When there is a code name that can be handled by the key information Key among the code names including the detected code Chord and its synonym code: Code name and degree name determined to be handled by the key information Key Is generated and stored in the detection code Chord (step S161);
(171a2) If there is no code name that can be handled by the key information Key among the code names including the detection code Chord and its synonym / sound code: It is determined as a key modulation and the same as step S42 in FIG. New key information is acquired (step S165), and the acquired key information is stored in key information Key as in step S43 (step S166), and the code name and degree name included in the detection code Chord are set to key information Key. And stored in the detection code Chord (step S167);
(171b) When the detection code Chord does not correspond to any of the codes of Maj7 / 6 / add9 / m7 / m6 / mMaj7 / madd9 whose pitch is completely four times higher than the start code SChord:
(171b1) When the detection code Chord is a code that can be handled by the key information Key: The process proceeds to the above (171a1);
(171b2) When the detection code Chord is not a code that can be handled by the key information Key: the process proceeds to the above (171a2);
(172) When the flag information in the information data of the start code SChord is not “Extended V7 / V7sus4”:
(172a) When the detection code Chord corresponds to one of the codes of Maj7 / 6 / add9 / m7 / m6 / mMaj7 / madd9 whose pitch is one semitone below the start code SChord: (171a1) or ( 171a2)
(172b) When the detection code Chord does not correspond to any of the codes of Maj7 / 6 / add9 / m7 / m6 / mMaj7 / madd9 whose pitch is one semitone below the start code SChord: (171b1) or ( 171b2)
Execute one of the processes.

上記(171a1),(171a2),(171b1)および(171b2)の各処理における判別の際に使用する調情報Keyは、前記図7のステップS42およびS43で取得されて記憶されたものである。つまり、調情報Keyは基本的に、前記(51)通常コード検出処理で取得され、前記(53)非通常コード検出処理では取得されない。上記(171a2)の処理で調を取得しているのは、検出コードChordが調情報Keyで扱うことができず、転調と判断されるからである。   The key information Key used in the determination in the processes (171a1), (171a2), (171b1), and (171b2) is acquired and stored in steps S42 and S43 of FIG. That is, the key information Key is basically acquired in the (51) normal code detection process, and is not acquired in the (53) non-normal code detection process. The reason why the key is acquired in the process (171a2) is that the detection code Chord cannot be handled by the key information Key, and is determined to be a key modulation.

次にCPU5は、検出コードChordの情報データ内のフラグ情報を「End」に設定した(ステップS162)後、本コード進行形成用コード検出処理を終了する。   Next, after setting the flag information in the information data of the detection code Chord to “End” (step S162), the CPU 5 ends the chord progression forming code detection process.

なお本実施の形態では、検出コードChordは、発音に用いられた(前記図5BのステップS15参照)後、通常コード検出フラグがセット状態であれば、調情報Keyとともに出力結果リストRListに追加登録される(ステップS17参照)が、通常コード検出フラグの状態に拘わらず、調情報Keyとともに出力結果リストRListに追加登録されるようにしてもよい。出力結果リストRListに追加登録される検出コードChord(と調情報Key)の個数については言及していないが、本実施の形態では、出力結果リストRListの初期化は、前記図5AのステップS3でのみなされるので、自動伴奏がスタートした以降は、自動伴奏がストップしたときに、設定変更があった場合にのみなされる。つまり、出力結果リストRListの初期化は、自動伴奏を使った演奏処理が起動されている間、特別な場合を除いてなされないので、自動伴奏がスタートした以降に検出されたコードデータのほとんどは、登録されている。このようしたのは、説明を簡略化するために過ぎず、最新に検出されたコードデータを任意の所定個数、記憶するようにし、新たなコードデータが検出される度に更新するようにしてもよい。また、検出されたコードデータを登録する場合、本実施の形態では、検出コードChordをそのまま、調情報Keyと一緒に登録するようにしたが、これに限らず、コードネームのみを登録するようにしてもよいし、その時点での調情報と対応付けたディグリーネームを登録するようにしてもよい。さらに、コードネームとディグリーネームの両方、つまり図4のコードデータから情報データを除いたものを記憶するようにしてもよい。なお、検出したコードがコードネームしか登録されていない場合には、次回以降のコード検出時に参照する際には、その都度、調情報を用いてディグリーネームに展開するようにしてもよい。   In the present embodiment, the detection code Chord is additionally registered in the output result list RList together with the key information if the normal code detection flag is set after being used for sound generation (see step S15 in FIG. 5B). (See step S17), but may be additionally registered in the output result list RList together with the key information Key regardless of the state of the normal code detection flag. Although the number of detection codes Chord (and key information Key) additionally registered in the output result list RList is not mentioned, in the present embodiment, initialization of the output result list RList is performed in step S3 of FIG. 5A. Therefore, after the automatic accompaniment is started, it is performed only when the setting is changed when the automatic accompaniment is stopped. In other words, the initialization of the output result list RList is not performed except for a special case while the performance processing using the automatic accompaniment is activated, so most of the chord data detected after the automatic accompaniment is started. Registered. This is only for the sake of simplification of description, and an arbitrary predetermined number of code data detected at the latest may be stored, and updated whenever new code data is detected. Good. Further, in the case of registering detected code data, in this embodiment, the detection code Chord is registered as it is together with the key information Key. However, the present invention is not limited to this, and only the code name is registered. Alternatively, a degree name associated with the key information at that time may be registered. Further, both the code name and the degree name, that is, the code data of FIG. 4 excluding the information data may be stored. If only the code name is registered as the detected code, it may be expanded to the degree name using the key information each time it is referred to when detecting the next code.

本実施の形態では、解決先コードとして抽出される条件として、ダイアトニック・スケール・コードであることを採用したが、ダイアトニック・スケール・コード以外のコードも解決先コードとして抽出されるようにしてもよい。その場合、解決先コードがさらに多様化し、さらに多様なコード進行が生成されることになる。   In this embodiment, the condition to be extracted as the solution destination code is the diatonic scale code, but the code other than the diatonic scale code is also extracted as the solution destination code. Also good. In this case, the solution destination codes are further diversified, and further various chord progressions are generated.

また解決先コード情報は、本実施の形態では、調の主音に対する解決先コードの根音の度数とし、解決先コードを調から可能な限り全て割り出すようにしたが、これに限らず、解決先コードのディグリーネームを予め全て記憶するようにしておいてもよい。さらに、コードデータの情報データ内の「ディグリー情報」を解決先コードの割り出しに使うようにしてもよい。「ディグリー情報」は、本実施の形態では、フラグ情報が「割り込み」のときのみ記憶されているが、コードデータを新規に生成する毎に適切な情報を記憶するようにしてもよい。「解決先コード情報」や「ディグリー情報」は、本実施の形態では、コードデータ毎に持たせるようにしているが、リストで管理するなどして必要なときに参照する仕組みにしてもよい。   Further, in the present embodiment, the solution destination code information is the frequency of the root of the solution destination code with respect to the key of the key, and all the solution destination codes are calculated from the key as much as possible. All the degree names of codes may be stored in advance. Further, “degree information” in the information data of the code data may be used for determining the solution destination code. In the present embodiment, “degree information” is stored only when the flag information is “interrupt”, but appropriate information may be stored every time code data is newly generated. In the present embodiment, “solution destination code information” and “degree information” are provided for each code data, but may be managed in a list and referred to when necessary.

入力される演奏データは、本実施の形態では、ユーザがリアルタイム演奏することで発生する演奏データを想定しているが、これに限らず、たとえば、録音された演奏データを先読みせずに順次再生したものを入力してもよい。また本実施の形態では、ユーザがリアルタイム演奏する際に利用する演奏操作子として、鍵盤を採用したが、これに限らず、たとえばギターなどの弦楽器タイプでもよい。入力される演奏データがオーディオ信号の場合、遅くとも各コード検出タイミングにおいて候補コードからコードを1つ選出するために演奏データを参照するまでに、少なくとも発音タイミング情報と音高情報を持つ音符情報に変換できていればよい。   In the present embodiment, the input performance data is assumed to be performance data generated by a user performing a real-time performance. However, the present invention is not limited to this. For example, recorded performance data is sequentially reproduced without prefetching. You may enter what you did. In this embodiment, a keyboard is used as a performance operator used when a user performs a real-time performance. However, the keyboard is not limited to this, and may be a stringed instrument type such as a guitar. If the performance data to be input is an audio signal, it is converted into note information having at least sounding timing information and pitch information before reference to the performance data in order to select one chord from the candidate chords at each chord detection timing at the latest. It only has to be done.

コード候補や次のコード候補の情報の持ち方は、本実施の形態で採用したフォーマットのものに限らない。また、コード候補の抽出方法やコード候補からの選出方法についての処理の順番やまとめ方も、本実施の形態で採用したものに限らない。   The method of holding the information of the code candidate and the next code candidate is not limited to the format adopted in the present embodiment. Further, the order of processing and the way of summarizing the code candidate extraction method and the code candidate selection method are not limited to those employed in the present embodiment.

通常コード検出時に抽出されるコード候補群のうち、解決先となり得るコード候補に解決するコード候補や、解決先となり得るコード候補への解決に至るまでに経過するコードに該当するコード候補には、本実施の形態では、フラグを立てて他のコード候補と識別できるようにしているが、これに限らず、たとえばリストを2種類用意するなど、別の方法で識別するようにしてもよい。本実施の形態では、通常コード検出においてフラグ付きのコード候補が検出された場合、独特なコード進行が始まるとみなし、次に続くコード検出タイミングからは独特なコード進行を生成するコード検出方法でコード検出を行うようにしている。独特なコード進行には、セカンダリードミナントからの解決やセカンダリードミナントのツーファイブ進行、さらにドミナント7thコードの連続などがある。コード進行の長さは、本実施の形態では、決まっていないが、制限するようにしてもよい。   Among code candidate groups extracted at the time of normal code detection, code candidates that resolve to code candidates that can be a solution destination, and code candidates that correspond to codes that elapse until reaching a code candidate that can be a solution destination, In this embodiment, a flag is set so that it can be identified from other code candidates. However, the present invention is not limited to this. For example, two types of lists may be prepared, and identification may be performed by another method. In the present embodiment, when a chord candidate with a flag is detected in normal chord detection, it is considered that a unique chord progression starts, and chord detection is performed by a chord detection method that generates a unique chord progression from the next chord detection timing. Detection is performed. Unique chord progressions include resolving from secondary dominant, secondary dominant two-five progression, and a series of dominant 7th chords. The chord progression length is not determined in this embodiment, but may be limited.

なお本実施の形態では、入力された演奏データに対して音楽的なつながりのあるコードを検出し、検出したコードに基づいて自動伴奏を行うようにしたが、これに限らず、検出したコードに基づいて、入力された演奏データに対するハーモニー音を生成するようにしてもよい。   In this embodiment, chords that are musically connected to input performance data are detected and automatic accompaniment is performed based on the detected chords. However, the present invention is not limited to this. Based on the input performance data, a harmony sound may be generated.

また本実施の形態では、参照対象の演奏データについて何の処理も施さず、入力されたものをそのまま使うようにしたが、これに限らず、入力された演奏データから装飾音やミスタッチと推測される音符データを取り除いた後、コード検出を行うようにすると、コード検出の精度がさらに向上する。   Further, in the present embodiment, no processing is performed on the performance data to be referred to, and the input data is used as it is. However, the present invention is not limited to this. If the chord detection is performed after removing the note data, the chord detection accuracy is further improved.

さらに本実施の形態では、図3の各調におけるコードの機能とディグリーネームの対応表に記載のコードの種類は、たとえばROM6内に予め設定されて記憶されているが、任意に追加登録できるかどうかには言及していなかった。任意に追加登録できるようになっていた方が好ましいが、追加登録できないようになっていてもよい。   Further, in this embodiment, the types of codes described in the correspondence table between the function of the code and the degree name in each key of FIG. 3 are stored in advance in the ROM 6, for example. I didn't mention how. Although it is preferable that additional registration can be arbitrarily performed, additional registration may not be performed.

また本実施の形態では、次の次のコード候補群を抽出するケースとして、解決予定先コードへのセカンダリードミナントとそのツーファイブの進行を例に挙げて説明したが、さらにその次のコード候補群を抽出するケースも考えられる。たとえば、上記進行にエクステンデッド・ドミナントを併用した進行、具体的には、E7(エクステンデッド・ドミナント)→ A7(V7 of II)→ Dm7(解決先IIm7)を抽出することも考えられる。このコード進行の場合、エクステンデッド・ドミナント(E7)とセカンダリードミナント(A7)をそれぞれツーファイブ化することができ、
Bm7(♭5)(= IIm7(♭5) of Extended)→ E7(= Extended)→ Em7(♭5)(= IIm7(♭5) of Secondary)→ A7(= V7 of II)→ Dm7(= IIm7)
となる。エクステンデッド・ドミナントとそのツーファイブを考えて行くと、さらに続く候補群を前もって抽出することができる。
Further, in the present embodiment, as a case of extracting the next next code candidate group, the secondary dominant to the solution target code and the progress of the two-five are described as an example, but the next code candidate group is further described. The case of extracting For example, it is conceivable to extract the above-mentioned progression using the extended dominant together, specifically, E7 (Extended Dominant) → A7 (V7 of II) → Dm7 (Solution IIm7). For this chord progression, the Extended Dominant (E7) and Secondary Dominant (A7) can each be two-five,
Bm7 (♭ 5) (= IIm7 (♭ 5) of Extended) → E7 (= Extended) → Em7 (♭ 5) (= IIm7 (♭ 5) of Secondary) → A7 (= V7 of II) → Dm7 (= IIm7 )
It becomes. Considering the extended dominant and its two-five, it is possible to extract further candidate groups in advance.

なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。   A program in which a storage medium storing software program codes for realizing the functions of the above-described embodiments is supplied to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus is stored in the storage medium. It goes without saying that the object of the present invention can also be achieved by reading and executing the code.

この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。   In this case, the program code itself read from the storage medium realizes the novel function of the present invention, and the program code and the storage medium storing the program code constitute the present invention.

プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。   As a storage medium for supplying the program code, for example, a flexible disk, hard disk, magneto-optical disk, CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD + RW, magnetic A tape, a non-volatile memory card, a ROM, or the like can be used. Further, the program code may be supplied from a server computer via a communication network.

また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。   Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also the OS running on the computer based on the instruction of the program code performs the actual processing. It goes without saying that a case where the functions of the above-described embodiment are realized by performing part or all of the above and the processing thereof is included.

さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。   Further, after the program code read from the storage medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.

1…演奏操作子(入力手段),5…CPU(取得手段、検知手段、第1の選出手段、第2の選出手段、抽出手段、生成手段、削除手段、寄り道コード候補追加手段、エクステンデッド・ドミナント候補追加手段) DESCRIPTION OF SYMBOLS 1 ... Performance operator (input means), 5 ... CPU (acquisition means, detection means, 1st selection means, 2nd selection means, extraction means, generation means, deletion means, detour code candidate addition means, extended dominant Candidate addition means)

Claims (6)

演奏データを入力する入力手段と、
演奏曲の調情報を取得する取得手段と、
コードの検出タイミングを検知する検知手段と、
前記検知手段によってコードの検出タイミングが検知されたときに、前記取得手段によって取得された調情報に基づいて複数のコード候補を抽出し、該抽出した複数のコード候補から、前記入力手段によって入力された演奏データに基づいてコードを1つ選出する第1の選出手段と、
前記第1の選出手段によって選出されたコードを含むコード進行の解決先となり得る解決先コードを抽出する抽出手段と、
前記抽出手段によって抽出された解決先コードに至るまでに前記検知手段によって検知される1乃至複数のコードの検出タイミングのそれぞれについて、前記取得された調情報に基づいて、前記選出されたコードに続くコード候補を複数抽出し、該抽出した複数のコード候補から1乃至複数のコード候補群を生成する生成手段と
記検知手段によってコードの検出タイミングが検知されたときには、前記生成手段によって生成されたコード候補群うち、当該検出タイミングに対応するコード候補群から、前記入力された演奏データに基づいてコードを1つ選出する第2の選出手段と
を有することを特徴とするコード検出装置。
Input means for inputting performance data;
Acquisition means for acquiring key information of a performance song;
Detection means for detecting the detection timing of the code;
When the detection timing of the code is detected by the detection means, a plurality of code candidates are extracted based on the key information acquired by the acquisition means, and input from the extracted plurality of code candidates by the input means First selecting means for selecting one chord based on the performance data,
Extracting means for extracting a solution destination code that may be chord progression solve destination including code selected by said first selecting means,
Following the selected code based on the acquired key information for each of the detection timings of one or more codes detected by the detection means until reaching the solution destination code extracted by the extraction means code candidate out multiple extraction, a generating means for generating a plurality of code candidate or al 1 or more code candidates that the extracted,
When the detection timing of the code is detected by the pre-Symbol detection means, among the code candidates generated by said generating means, from the code candidates corresponding to the detected timing, the code based on the performance data that has been said input A code detection apparatus comprising: second selection means for selecting one.
前記生成手段によって複数のコード候補群が生成された場合において、前記第2の選出手段によって選出されたコードの次に進むコードとしてつながりに無理のあるコード候補が、当該選出されたコードの検出タイミングより後の検出タイミングに対応するコード候補群内にあるときに、当該無理のあるコード候補を削除する削除手段をさらに有することを特徴とする請求項1に記載のコード検出装置。 When a plurality of code candidate groups are generated by the generation unit, a code candidate that is impossible to connect as a code that proceeds next to the code selected by the second selection unit is detected timing of the selected code when in the code candidate group corresponding to the detection timing after more code detection apparatus according to claim 1, further comprising a deleting means to delete the code candidate with the unreasonable. 前記生成手段がコード候補群を生成する際に、該コード候補群を構成する複数のコード候補の1つ前に寄り道可能なコード候補を1乃至複数抽出して当該コード候補群に追加する寄り道コード候補追加手段をさらに有することを特徴とする請求項1または2に記載のコード検出装置。   When the generating means generates a code candidate group, one or more code candidates that can be detoured before one of the plurality of code candidates constituting the code candidate group are extracted and added to the code candidate group The code detection device according to claim 1, further comprising candidate addition means. 前記第2の選出手段によって選出されたコードが前記解決先コードである場合にはさらに、当該選出されたコードがエクステンデッド・ドミナントの始点となり得るかどうかを判定し、その判定の結果、当該選出されたコードがエクステンデッド・ドミナントの始点となり得るときには、前記検知手段が次のコードの検出タイミングを検知したことに応じて、前記第1の選出手段が抽出する複数のコード候補に、エクステンデッド・ドミナントとなるコード候補も1乃至複数抽出して追加するエクステンデッド・ドミナント候補追加手段をさらに有することを特徴とする請求項1〜3のいずれかに記載のコード検出装置。   When the code selected by the second selection means is the solution-destination code, it is further determined whether or not the selected code can be the starting point of the extended dominant, and as a result of the determination, the selected code is selected. When the detected code can become the starting point of the extended dominant, the plurality of code candidates extracted by the first selection means become the extended dominant according to the detection means detecting the detection timing of the next code. The code detection apparatus according to claim 1, further comprising an extended dominant candidate addition unit that extracts one or more code candidates and adds them. 前記第2の選出手段によって選出されたコードが前記解決先コードではなく、エクステンデッド・ドミナントのコードである場合には、前記生成手段は、当該コードの検出タイミングの次の検出タイミングに対応するコード候補群には、少なくとも、前記選出されたエクステンデッド・ドミナントのコードに続くエクステンデッド・ドミナントのコード候補1乃至複数と、当該選出されたコードが解決するコード候補1乃至複数を抽出して含ませることを特徴とする請求項4に記載のコード検出装置。   When the code selected by the second selection means is not the resolution target code but an extended dominant code, the generation means generates a code candidate corresponding to a detection timing next to the detection timing of the code The group includes at least extracted code candidates 1 to plural of the extended dominant following the selected extended dominant code and code candidates 1 to plural to be solved by the selected code. The code detection device according to claim 4. 演奏データを入力する入力手順と、
演奏曲の調情報を取得する取得手順と、
コードの検出タイミングを検知する検知手順と、
前記検知手順によってコードの検出タイミングが検知されたときに、前記取得手順によって取得された調情報に基づいて複数のコード候補を抽出し、該抽出した複数のコード候補から、前記入力手順によって入力された演奏データに基づいてコードを1つ選出する第1の選出手順と、
前記第1の選出手順によって選出されたコードを含むコード進行の解決先となり得る解決先コードを抽出する抽出手順と、
前記抽出手順によって抽出された解決先コードに至るまでに前記検知手順によって検知される1乃至複数のコードの検出タイミングのそれぞれについて、前記取得された調情報に基づいて、前記選出されたコードに続くコード候補を複数抽出し、該抽出した複数のコード候補から1乃至複数のコード候補群を生成する生成手順と
記検知手順によってコードの検出タイミングが検知されたときには、前記生成手順によって生成されたコード候補群うち、当該検出タイミングに対応するコード候補群から、前記入力された演奏データに基づいてコードを1つ選出する第2の選出手順と
をコンピュータに実行させるためのプログラム。
Input procedure for inputting performance data,
An acquisition procedure for acquiring key information of a performance song;
A detection procedure for detecting the detection timing of the code;
When the detection timing of the code is detected by the detection procedure, a plurality of code candidates are extracted based on the key information acquired by the acquisition procedure, and input from the extracted plurality of code candidates by the input procedure A first selection procedure for selecting one chord based on the recorded performance data;
An extraction procedure for extracting the resolved destination code that may be resolved destination chord progression including code selected by said first selection procedure,
Following the selected code based on the acquired key information for each of the detection timings of one or more codes detected by the detection procedure up to the solution destination code extracted by the extraction procedure code candidate out multiple extraction, a generating step of generating a plurality of code candidate or al 1 or more code candidates that the extracted,
When the detection timing of the code is detected by the pre-Symbol detection procedure is out of code candidates generated by the generating procedure, the code candidates corresponding to the detected timing, the code based on the performance data that has been said input A program for causing a computer to execute a second selection procedure for selecting one.
JP2011055294A 2011-03-14 2011-03-14 Code detection apparatus and program for realizing code detection method Expired - Fee Related JP5712702B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011055294A JP5712702B2 (en) 2011-03-14 2011-03-14 Code detection apparatus and program for realizing code detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011055294A JP5712702B2 (en) 2011-03-14 2011-03-14 Code detection apparatus and program for realizing code detection method

Publications (2)

Publication Number Publication Date
JP2012189943A JP2012189943A (en) 2012-10-04
JP5712702B2 true JP5712702B2 (en) 2015-05-07

Family

ID=47083134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011055294A Expired - Fee Related JP5712702B2 (en) 2011-03-14 2011-03-14 Code detection apparatus and program for realizing code detection method

Country Status (1)

Country Link
JP (1) JP5712702B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2768233B2 (en) * 1993-08-26 1998-06-25 ヤマハ株式会社 Electronic musical instrument
JP3567701B2 (en) * 1997-10-21 2004-09-22 ヤマハ株式会社 Chord detection method and chord detection device for detecting chords from musical tone data, and recording medium recording a chord detection program
JP3666577B2 (en) * 2000-07-18 2005-06-29 ヤマハ株式会社 Chord progression correction device, chord progression correction method, and computer-readable recording medium recording a program applied to the device

Also Published As

Publication number Publication date
JP2012189943A (en) 2012-10-04

Similar Documents

Publication Publication Date Title
EP2772904B1 (en) Apparatus and method for detecting music chords and generation of accompaniment.
JP3557917B2 (en) Automatic composer and storage medium
JP5659648B2 (en) Code detection apparatus and program for realizing code detection method
JP3484986B2 (en) Automatic composition device, automatic composition method, and storage medium
JP6295583B2 (en) Music data generating apparatus and program for realizing music data generating method
JP5472261B2 (en) Automatic adjustment determination apparatus, automatic adjustment determination method and program thereof
JP5712702B2 (en) Code detection apparatus and program for realizing code detection method
JP5742321B2 (en) Code detection apparatus and program for realizing code detection method
JP5712701B2 (en) Code detection apparatus and program for realizing code detection method
JP2012098480A (en) Chord detection device and program
JP2016161900A (en) Music data search device and music data search program
JP6554826B2 (en) Music data retrieval apparatus and music data retrieval program
JP6604307B2 (en) Code detection apparatus, code detection program, and code detection method
JP6525034B2 (en) Code progression information generation apparatus and program for realizing code progression information generation method
JP5822187B2 (en) Code detection apparatus and program for causing computer to execute code detection
Muñoz-Lago et al. SymPlot: A web-tool to visualise symbolic musical data
JP6047867B2 (en) Automatic code correction device, automatic code correction method and program thereof
JPH05346781A (en) Key detecting device and automatic music arranging device
JP3163654B2 (en) Automatic accompaniment device
JP6555231B2 (en) Automatic code correction device, automatic code correction method and program thereof
JP3978277B2 (en) Automatic accompaniment device
JP3800947B2 (en) Performance data processing apparatus and method, and storage medium
Turner Beethoven's motivations for the revision of the overture Leonore no. 2: a contextual, critical and analytical study
JP3163653B2 (en) Tonality judgment device
JP2004013170A (en) Automatic composition system, automatic composition method, and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150223

R151 Written notification of patent or utility model registration

Ref document number: 5712702

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees