JP5696435B2 - Code detection apparatus and program - Google Patents
Code detection apparatus and program Download PDFInfo
- Publication number
- JP5696435B2 JP5696435B2 JP2010245736A JP2010245736A JP5696435B2 JP 5696435 B2 JP5696435 B2 JP 5696435B2 JP 2010245736 A JP2010245736 A JP 2010245736A JP 2010245736 A JP2010245736 A JP 2010245736A JP 5696435 B2 JP5696435 B2 JP 5696435B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- chord
- detection
- candidate
- point
- 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
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
この発明は、ユーザによる両手弾きなどの自由な演奏に対してコード(chord:和音)検出を行うことができるコード検出システムに関する。 The present invention relates to a chord detection system that can perform chord detection on a free performance such as playing both hands by a user.
従来より、演奏操作よりコードを検出する機能を持つ電子音楽装置が知られている。例えば、特許文献1に開示された自動伴奏装置では、コード検出タイミングでユーザ演奏音をサーチし、予め記憶しているコードパターンとのマッチングを行い、2音しか押鍵がない場合は分数コードが指定され2音のうちどちらかをルート(root:根音)とみなし、所定のルールに基づき分数コードを決定し、決定したコードに基づいた自動伴奏を行う。
Conventionally, an electronic music apparatus having a function of detecting a chord by a performance operation is known. For example, in the automatic accompaniment device disclosed in
しかしながら、従来のコード検出技術では、ユーザの演奏でコードの構成音が揃ったときにコードが検出されるので、検出タイミングでユーザは正確に鍵盤でコード構成音を押鍵しなければならない。検出して欲しいコードになるように押鍵する必要があるので、両手弾きなどの自由な演奏には向いていない。また、決まった算出方法でコードのパターンマッチングやルートの決定を行うので、検出されるコードが単調になる可能性がある。 However, in the conventional chord detection technique, chords are detected when chord constituent sounds are arranged by the user's performance. Therefore, the user must press the chord constituent sounds with the keyboard accurately at the detection timing. Since it is necessary to press the key so that it becomes the chord you want to detect, it is not suitable for free performances such as playing both hands. Further, since code pattern matching and route determination are performed by a predetermined calculation method, the detected code may become monotonous.
この発明は、このような事情に鑑み、両手弾きなどの自由なユーザ演奏に対して適切なコードを検出することができるコード検出システムを提供することを目的とする。 An object of this invention is to provide the chord detection system which can detect an appropriate chord with respect to free user performances, such as playing both hands, in view of such a situation.
この発明の主たる特徴に従うと、演奏データを取得する演奏データ取得手段 (5;P12-P13)と、調情報 (Key)を取得する調情報取得手段 (P15)と、所定のコード検出タイミング(T1-T3:P2)にてコード検出を指示する (P14=YES)コード検出指示手段(P2,P14)と、コード検出指示手段(P2,P14)によりコード検出が指示されたときに (P14=YES)、調情報取得手段 (P15)により取得された調情報 (Key)を元に候補コード(ChordList:個々の候補コードはDegreeNameで表わされる)を抽出する候補コード抽出手段 (P16)と、コード検出指示手段(P2,P14)によりコード検出が指示されたときに (P14=YES)、演奏データ取得手段 (5;P12-P13)により取得された演奏データから、コード検出タイミング(T1-T3:P2)に有効とみなされる音高情報 (NoteList:Note)を抽出する音高情報抽出手段[P13(N1-N6),P17(C5)]と、コード検出指示手段(P2,P14)によりコード検出が指示されたときに (P14=YES)、候補コード抽出手段 (P16)により抽出された各候補コード(DegreeName)について、音高情報抽出手段[P13(N1-N6),P17(C5)]により抽出された各音高情報(Note)の当該各候補コード(DegreeName)における役割(ルート、3度音、5度音、…)を識別し[C6(図10、図11)]、識別された役割(ルート、3度音、5度音、…)に応じて音楽的な重要度を示すポイントを抽出する(C7)役割識別及びポイント抽出手段[P17(C6-C7)]と、コード検出指示手段(P2,P14)によりコード検出が指示されたときに (P14=YES)、候補コード抽出手段 (P16)により抽出された候補コード(DegreeName)毎に、音高情報抽出手段[P13(N1-N6),P17(C5)]により抽出された全音高情報(NoteList)につき、役割識別及びポイント抽出手段[P17(C6-C7)]により抽出されたポイントを合計して当該各候補コード(DegreeName)のポイント合計値(合計ポイント)を取得するポイント合計値取得手段[P17(C7-C8=YES)]と、コード検出指示手段(P2,P14)によりコード検出が指示されたときに (P14=YES)、ポイント合計値取得手段[P17(C7-C8=YES)]により取得された各候補コード(DegreeName)のポイント合計値(合計ポイント)を元に、候補コード抽出手段 (P16)により抽出された候補コード(ChordList:DegreeName)から1つのコード (Chord)を検出するコード検出手段 [P17(C9-C14)]とを具備するコード検出装置〔請求項1〕、並びに、演奏データを取得する演奏データ取得ステップ (P12-P13)と、調情報 (Key)を取得する調情報取得ステップ (P15)と、所定のコード検出タイミング(T1-T3:P2)にてコード検出を指示する (P14=YES)コード検出指示ステップ(P2,P14)と、コード検出指示ステップ(P2,P14)でコード検出が指示されたときに (P14=YES)、調情報取得ステップ (P15)で取得された調情報 (Key)を元に候補コード(ChordList:個々の候補コードはDegreeNameで表わされる)を抽出する候補コード抽出ステップ (P16)と、コード検出指示ステップ(P2,P14)でコード検出が指示されたときに (P14=YES)、演奏データ取得ステップ (P12-P13)で取得された演奏データから、コード検出タイミング(T1-T3:P2)に有効とみなされる音高情報 (NoteList:Note)を抽出する音高情報抽出ステップ[P13(N1-N6),P17(C5)]と、コード検出指示ステップ(P2,P14)でコード検出が指示されたときに (P14=YES)、候補コード抽出ステップ (P16)で抽出された各候補コード(DegreeName)について、音高情報抽出ステップ[P13(N1-N6),P17(C5)]で抽出された各音高情報(Note)の当該各候補コード(DegreeName)における役割(ルート、3度音、5度音、…)を識別し[C6(図10、図11)]、識別された役割(ルート、3度音、5度音、…)に応じて音楽的な重要度を示すポイントを抽出する(C7)役割識別及びポイント抽出ステップ[P17(C6-C7)]と、コード検出指示ステップ(P2,P14)でコード検出が指示されたときに (P14=YES)、候補コード抽出ステップ (P16)で抽出された候補コード(DegreeName)毎に、音高情報抽出ステップ[P13(N1-N6),P17(C5)]で抽出された全音高情報(NoteList)につき、役割識別及びポイント抽出ステップ[P17(C6-C7)]で抽出されたポイントを合計して当該各候補コード(DegreeName)のポイント合計値(合計ポイント)を取得するポイント合計値取得ステップ[P17(C7-C8=YES)]と、コード検出指示ステップ(P2,P14)でコード検出が指示されたときに (P14=YES)、ポイント合計値取得ステップ[P17(C7-C8=YES)]で取得された各候補コード(DegreeName)のポイント合計値(合計ポイント)を元に、候補コード抽出ステップ (P16)で抽出された候補コード(ChordList:DegreeName)から1つのコード (Chord)を検出するコード検出ステップ [P17(C9-C14)]とから成る手順をコンピュータ(コード検出装置)に実行させるコード検出プログラム〔請求項3〕が提供される。なお、括弧書きは、理解の便のために付記した実施例の参照記号や用語、箇所等を表わし、以下においても同様である。 According to the main features of the present invention, performance data acquisition means (5; P12-P13) for acquiring performance data, key information acquisition means (P15) for acquiring key information (Key), and a predetermined chord detection timing (T1 -T3: P2) Instructs code detection (P14 = YES) When code detection is instructed by the code detection instruction means (P2, P14) and code detection instruction means (P2, P14) (P14 = YES ), Candidate code extraction means (P16) for extracting candidate codes (ChordList: each candidate code is represented by DegreeName) based on the key information (Key) acquired by the key information acquisition means (P15), and code detection When chord detection is instructed by the instruction means (P2, P14) (P14 = YES), the chord detection timing (T1-T3: P2) is determined from the performance data acquired by the performance data acquisition means (5; P12-P13). ) Pitch information extraction means [P13 (N1-N6), P17 (C5)] for extracting pitch information (NoteList: Note) considered to be valid, and chord detection instruction When the chord detection is instructed by the means (P2, P14) (P14 = YES), for each candidate code (DegreeName) extracted by the candidate code extracting means (P16), the pitch information extracting means [P13 (N1- N6), P17 (C5)] identifies the role (root, third tone, fifth tone,...) In each candidate code (DegreeName) of each pitch information (Note) extracted by [C6 (FIG. 10 , FIG. 11)], extracting points indicating musical importance according to the identified roles (root, third tone, fifth tone,...) (C7) role identification and point extraction means [P17 (C6 -C7)] and when code detection is instructed by the code detection instruction means (P2, P14) (P14 = YES), for each candidate code (DegreeName) extracted by the candidate code extraction means (P16) For all pitch information (NoteList) extracted by the high information extraction means [P13 (N1-N6), P17 (C5)], the points extracted by the role identification and point extraction means [P17 (C6-C7)] are totaled The code is detected by the point total value acquisition means [P17 (C7-C8 = YES)] for acquiring the point total value (total points) of each candidate code (DegreeName) and the code detection instruction means (P2, P14). When instructed (P14 = YES), based on the point total value (total points) of each candidate code (DegreeName) acquired by the point total value acquisition means [P17 (C7-C8 = YES)], the candidate code A code detection device comprising code detection means [P17 (C9-C14)] for detecting one code (Chord) from the candidate codes (ChordList: DegreeName) extracted by the extraction means (P16); In addition, a performance data acquisition step (P12-P13) for acquiring performance data, a key information acquisition step (P15) for acquiring key information (Key), and a chord at a predetermined chord detection timing (T1-T3: P2) Detection instruction (P14 = YES) Code detection instruction step (P2, P14) and code detection instruction step (P2, P14) ) When code detection is instructed (P14 = YES), candidate codes based on the key information (Key) acquired in the key information acquisition step (P15) (ChordList: each candidate code is represented by DegreeName) When the chord detection is instructed in the candidate chord extraction step (P16) and chord detection instructing steps (P2, P14) (P14 = YES), the performance data acquired in the performance data acquisition step (P12-P13) Pitch information extraction step [P13 (N1-N6), P17 (C5)] to extract pitch information (NoteList: Note) that is considered valid at the chord detection timing (T1-T3: P2) from the data, When chord detection is instructed in the detection instruction step (P2, P14) (P14 = YES), the pitch information extraction step [P13 (P13 (YES)] is performed for each candidate code (DegreeName) extracted in the candidate code extraction step (P16). N1-N6), P17 (C5)] of each pitch information (Note) in each candidate code (DegreeName) 5th note, etc.) [C6 (Fig. 10, Fig. 11)], and points indicating musical importance according to the identified roles (root, 3rd tone, 5th tone, ...) (C7) role identification and point extraction step [P17 (C6-C7)] to be extracted, and when code detection is instructed in the code detection instruction step (P2, P14) (P14 = YES), candidate code extraction step ( For each candidate code (DegreeName) extracted in (P16), for each pitch information (NoteList) extracted in the pitch information extraction step [P13 (N1-N6), P17 (C5)], a role identification and point extraction step Point total value acquisition step [P17 (C7-C8 = YES)] for acquiring the point total value (total points) of each candidate code (DegreeName) by summing the points extracted in [P17 (C6-C7)] When code detection is instructed in the code detection instruction step (P2, P14) (P14 = YES), each point acquired in the point total value acquisition step [P17 (C7-C8 = YES)] Code detection step for detecting one code (Chord) from the candidate code (ChordList: DegreeName) extracted in the candidate code extraction step (P16) based on the point total value (total points) of the complementary code (DegreeName) [P17 (C9-C14)] is provided. A code detection program (Claim 3) for causing a computer (code detection device) to execute the procedure is provided. Note that the parentheses indicate reference symbols, terms, parts, and the like of the examples added for convenience of understanding, and the same applies to the following.
この発明によるコード検出装置は、さらに、複数のコード(DegreeName)の夫々につい
て優先度をポイントで示す優先ポイント (Prior)を記憶する優先ポイント記憶手段(PT)を具備し、コード検出手段 [P17(C9-C14)]は、ポイント合計値取得手段[P17(C7-C8=YES)]により候補コード(DegreeName)毎にポイント合計値(合計ポイント)を取得した際に、更に、優先ポイント記憶手段(PT)から、各候補コード(DegreeName)に対応するコードの優先ポイント (Prior)を取得し、取得された優先ポイント (Prior)を各候補コード(DegreeName)のポイント合計値(合計ポイント)に加算し(C9)、加算されたポイント合計値(総計ポイント)を元にコード検出を行う (C10-C14)〔請求項2〕ように構成することができる。
The code detection device according to the present invention further includes priority point storage means (PT) for storing a priority point (Prior) indicating the priority in points for each of a plurality of codes (DegreeName), and the code detection means [P17 ( C9-C14)], when the point total value (total points) is acquired for each candidate code (DegreeName) by the point total value acquisition means [P17 (C7-C8 = YES)], the priority point storage means ( The priority point (Prior) of the code corresponding to each candidate code (DegreeName) is acquired from (PT), and the obtained priority point (Prior) is added to the point total value (total point) of each candidate code (DegreeName). (C9) Code detection is performed based on the added point total value (total points). (C10-C14) [Claim 2]
この発明の主たる特徴によるコード検出システムでは(請求項1,3)、例えば、所定小節毎或いは所定拍毎というような所定の音楽タイミングを基準にして、コード検出を行うタイミング即ちコード検出タイミング (T1-T3)を設定して(6;P2)、両手弾きなどの演奏操作(押鍵)に基づく演奏データを取得し (5;P11-P12)、調情報 (Key)を取得すると (P15)、設定したコード検出タイミング (T1-T3)にてコード検出が指示されたときに (P14=YES)、以下の処理を行う。まず、取得した調情報 (Key)を元に候補コード(ChordList:個々の候補コードはDegreeNameで表わされる)を抽出し (P16)、取得した演奏データから、コード検出タイミング (T1-T3)に有効とみなされる音高情報 (NoteList:Note)を抽出する[P13(N1-N6),P17(C5)]。次いで、抽出した各候補コード(DegreeName)について、各音高情報(Note)の当該各候補コード(DegreeName)における役割を識別し[C6(図10、図11)]、識別した役割に応じて音楽的な重要度を示すポイント (point)を抽出する(C7)。つまり、コード検出タイミング (T1-T3)において、各演奏音(押鍵音:Note)が、各候補コード(ChordList)における、どの構成音(ルート、3度音、5度音、…)、どのテンションノート、ア
ヴォイドノートであるのかなど、各演奏音(Note)が演じている音楽的な役割を識別し[C6(図10、図11)]、識別したこれらの役割(各構成音<ルート、3度音、5度音、…>、テンションノート、アヴォイドノートなど)毎の音楽的な重要度に基づくポイント値を取得する(C7)。更に、抽出した候補コード(DegreeName)毎に、抽出した全音高情報(NoteList)について、抽出したポイントを合計する(C7)。即ち、候補コード(ChordList)毎 に全演奏音(NoteList)に対するポイント値(重要度)を合計して、当該各候補コード(DegreeName)のポイント合計値を求める(C7)。そして、このようにして求めた各候補コード(DegreeName)のポイント合計値(合計ポイント)を元に、抽出した候補コード (ChordList)から最適なコード (Chord)を検出する (C14)。さらに、検出されたコード (Chord)を元にして自動伴奏データを生成させることができる (P18)。
In the chord detection system according to the main feature of the present invention (
このように、この発明では、小節或いは拍タイミング等に相当するコード検出タイミング (T1-T3)で、両手弾き等の演奏データ (NoteList:Note)に基づくコード検出が指示されると (P14=YES)、該コード検出タイミング (T1-T3)で入力された各演奏音(Note)の候補コード(ChordList:DegreeName)における音楽的な役割〔候補コード(DegreeName)の、どの構成音<ルート、3度音、5度音、…>、どのテンションノート、アヴォイドノートであるのか等〕を識別し[C6(図10、図11)]、識別した役割(構成音<ルート、3度音、5度音、…>、テンションノート、アヴォイドノート等)毎の音楽的な重要度に基づくポイント値を取得して候補コード(DegreeName)毎に全押鍵音(NoteList)に対するポイント値(重要度)を合計して、各候補コード(DegreeName)の合計ポイントを求め(C7)、合計ポイントの一番高い候補コードを最適な所望のコード (Chord)として選出する (C14)ようにしている。 As described above, in the present invention, when chord detection based on performance data (NoteList: Note) such as double-handed playing is instructed at chord detection timing (T1-T3) corresponding to measure or beat timing (P14 = YES) ), Musical role in the candidate code (ChordList: DegreeName) of each performance sound (Note) input at the chord detection timing (T1-T3) [which constituent sound of the candidate code (DegreeName) <root, three times Sound, 5th note, ...>, which tension note, which is the void note, etc.] [C6 (Fig. 10, Fig. 11)], and the identified role (component sound <root, 3rd tone, 5th tone, …>, Tension notes, void notes, etc.) to obtain point values based on musical importance and sum the point values (importance) for all keystroke sounds (NoteList) for each candidate code (DegreeName) Find the total points for each candidate code (DegreeName) (C7) The highest candidate code is selected as the optimum desired chord (C14) (C14).
従って、この発明によれば、両手弾きなどの自由なユーザ演奏に対して適切なコードを検出し、ユーザは演奏に専念しながら適切なコードによる自動伴奏を得ることができる。また、使用可能なコードの中から、ユーザの演奏音を元に、コード構成音などの役割の音楽的意味をポイント値で考慮して適切なコードを検出するので、音楽的で演奏音に適合したコードを得ることができる。さらに、従来技術では、あるコードに対し特定のテンション音が演奏されているときには(例えば、CMajに対してD♯など)そのコードは検出されないように制御することがあったが、この発明では、コード検出時の演奏音1つ1つの各候補コードにおけるハーモニー構成の役割の重要度を識別し、それを元にコードを決定するので、単純に演奏音の組み合わせだけでコードの検出を禁止することはなく、演奏音の音楽的な役割を識別することによって適切なコードを検出することができる。 Therefore, according to the present invention, an appropriate chord can be detected for a free user performance such as playing both hands, and the user can obtain an automatic accompaniment with an appropriate chord while devoting himself to the performance. Also, from the available chords, based on the user's playing sound, the musical meaning of the role such as chord constituent sounds is considered with the point value to detect the appropriate chord, so it fits musically and playing sound Code can be obtained. Further, in the prior art, when a specific tension sound is played for a certain chord (for example, D # for CMaj), the chord is sometimes controlled not to be detected. The importance of the role of harmony structure in each candidate sound at the time of chord detection is identified, and the chord is determined based on it. Therefore, it is prohibited to detect chords simply by combining performance sounds. Rather, an appropriate chord can be detected by identifying the musical role of the performance sound.
この発明によるコード検出装置においては、複数のコード(DegreeName)の夫々について優先度をポイントで示す優先ポイント (Prior)を予め用意しておき(PT)、コード検出の際は [P17(C9-C14)]、各候補コード(DegreeName)に対応する優先ポイント (Prior)を取得し、各候補コード(DegreeName)のポイント合計値(合計ポイント)に加算し(C9)、加算したポイント合計値(総計ポイント)を元にコード検出を行う(C10-C14)ように構成される(請求項2)。つまり、前述のように、各候補コード(DegreeName)における全押鍵音(NoteList)の役割に対応して求めたポイント合計値(合計ポイント)に、更に、コードの優先度を示す優先ポイント (Prior)を加えた結果(総計ポイント)について、ポイント値の一番高い候補コードを求め、最適コード (Chord)として選出する。
従って、この発明によれば、ユーザ演奏に対して更に適切なコードを検出することができる。
In the code detection device according to the present invention, a priority point (Prior) indicating the priority in points for each of a plurality of codes (DegreeName) is prepared in advance (PT), and [P17 (C9-C14 )], The priority point (Prior) corresponding to each candidate code (DegreeName) is acquired, added to the point total value (total points) of each candidate code (DegreeName) (C9), and the total point value (total points) ) To perform code detection (C10-C14) (claim 2). In other words, as described above, the priority point (Prior) indicating the priority of the chord is further added to the point total value (total point) obtained corresponding to the role of all key-press sounds (NoteList) in each candidate code (DegreeName). ) Is added (total points), the candidate code with the highest point value is obtained and selected as the optimum code (Chord).
Therefore, according to the present invention, it is possible to detect a chord more appropriate for the user performance.
〔システム構成の概要〕
図1は、この発明の一実施例によるコード検出装置のハードウエア構成例を示す。この発明の一実施例によるコード検出装置は、電子的な音楽情報処理機能を有する一種のコンピュータであり、電子楽器の形で具現化することができる。このコード検出装置は、図1のように、中央処理装置(CPU)1、ランダムアクセスメモリ(RAM)2、読出専用メモリ(ROM)3、外部記憶装置4、演奏情報取得部(演奏情報入力部ともいう)5、その他操作子部6、表示部7、音源8、自動伴奏装置9、通信インターフェース(I/F)10などを備え、これらの要素1〜10はバス11を介して接続される。
[Overview of system configuration]
FIG. 1 shows a hardware configuration example of a code detection apparatus according to an embodiment of the present invention. A chord detection apparatus according to an embodiment of the present invention is a kind of computer having an electronic music information processing function, and can be embodied in the form of an electronic musical instrument. As shown in FIG. 1, the chord detection device includes a central processing unit (CPU) 1, a random access memory (RAM) 2, a read only memory (ROM) 3, an
CPU1は、RAM2及びROM3と共にデータ処理部を構成しており、タイマ12によるクロックを利用して、自動伴奏併用演奏処理プログラムを含む所定の制御プログラムに従い種々の音楽情報処理を実行し、RAM2は、これらの処理に際して必要な各種データを一時記憶するためのワーク領域として用いられる。例えば、自動伴奏併用演奏処理を実行する自動伴奏併用演奏モード時には、タイマ12は、CPU1の制御の下、コードの検出や適用のために設定された種々の設定時間を計時し、RAM2には、コードの検出や適用に必要な各種レジスタ( NoteList,ChordList,Chord,sTime,eTime,Key,ResultListなど)が設けられる。また、ROM3には、これらの処理を実行するために、各種制御プログラムや必要な各種制御データが予め記憶される。
The
外部記憶装置4は、HD(ハードディスク)、FD(フレキシブルディスク)、CD(コンパクトディスク)、DVD(デジタル多目的ディスク)、フラッシュメモリ等の半導体メモリなどの記憶媒体と、その駆動装置を含む。制御プログラムや、ディグリーネーム別ポイントテーブル(PT)、各種ルールなどの制御データ、種々の曲データ等、任意の情報を任意の記憶媒体に記憶することができる。また、記憶媒体は、着脱可能であってもよいし、このコード検出装置に内蔵されていてもよく、着脱可能な記録媒体にはUSBメモリが含まれる。
The
演奏情報取得部5は、鍵盤などの演奏操作子と、演奏操作子の操作を検出し検出内容に対応する演奏操作情報をデータ処理部(1〜3)に導入する演奏操作検出回路とにより構成される。その他操作子部6は、キースイッチ等のその他の操作子(設定操作子)と、これら操作子の操作を検出して対応する操作情報をデータ処理部に導入する設定操作検出回路とにより構成される。データ処理部(1〜3)は、演奏情報取得部5及びその他操作子部6からの操作情報に基づきコード検出装置各部を制御し、例えば、演奏操作部5からの演奏操作入力に対応する演奏データを音源8に送ったり、その他操作子部6中のモード設定ボタンの操作により自動伴奏併用演奏モードで動作させたりすることができる。
The performance
表示部7は、演奏や設定に必要な各種情報を表示するLCD等のディスプレイや、操作部5〜6中のスイッチ類に併設した内蔵ランプ等を備え、これらの表示・点灯内容をデータ処理部からの指令で制御し、演奏操作や設定操作などに関する表示援助を行う。
The
音源8は、音源部やDSPを有し、演奏情報取得部5の演奏操作情報から得られる演奏データに基づいて、或いは、記憶装置4から読み出される曲データに基づいて、楽音信号を生成すると共にこの楽音信号に所定の効果を付与する。音源8に接続されるサウンドシステム13は、D/A変換部やアンプ、スピーカ等を備え、音源8から出力される楽音信号に基づく楽音を発生する。自動伴奏装置9は、自動伴奏併用演奏モードにおいて、タイマ12からのテンポクロックで自動伴奏のテンポが設定され、このテンポクロックに従って、データ処理部(1〜3)から提供されるコードに対応した伴奏スタイルデータに基づく自動伴奏音を生成する。
The
通信I/F10は、MIDI等の音楽用有線I/F、USB等の汎用ネットワークI/F或いは無線Lan等の汎用近距離無線I/F等を含み、外部電子音楽装置MMと交信することができる。例えば、外部電子音楽装置MMからMIDI形式の曲データを取得し、記憶装置4に記憶しておくことができる。
The communication I /
〔コード検出タイミング〕
この発明の一実施例によるコード検出装置では、自動伴奏併用演奏処理により、所定の小節或いは拍タイミングで、演奏情報取得部5から入力される演奏データに基づいてコードが検出され、検出されたコードが自動的に自動伴奏に適用される。図2は、この発明の一実施例によるコード検出タイミングのイメージ例を示している。
[Code detection timing]
In the chord detection apparatus according to one embodiment of the present invention, the chord is detected based on the performance data input from the performance
図2(a)は、コード検出基準位置の例であり、横軸は、右方向に時間が進行する時間軸を示す。◎で示されるコード検出基準位置T2は、演奏データに対してユーザ操作により予め設定された所定の小節或いは拍タイミングなどの音楽的なタイミングであり、ユーザにとっては、コードの検出乃至適用を指示するタイミングの目安となる。この例では、1小節=4拍の演奏データに対し、1拍目及び3拍目がコード検出基準位置T2に設定されている。これに対して、図2(b)は、コード検出タイミングの例であり、右矢印の方向に時間が進行する時間軸(横軸)のスケールは、図2(a)よりも拡大されている。 FIG. 2A is an example of the code detection reference position, and the horizontal axis indicates a time axis in which time advances in the right direction. The chord detection reference position T2 indicated by ◎ is a musical timing such as a predetermined bar or beat timing preset by a user operation with respect to the performance data, and instructs the user to detect or apply chords. It becomes a standard of timing. In this example, the first beat and the third beat are set as the chord detection reference position T2 for the performance data of one measure = 4 beats. On the other hand, FIG. 2B is an example of the code detection timing, and the scale of the time axis (horizontal axis) in which the time advances in the direction of the right arrow is larger than that in FIG. .
コード検出タイミングは、コード検出基準位置T2より所定時間前のコード検出タイミング開始位置(時間)T1で開始し、同位置T2より所定時間後のコード検出タイミング終了位置(時間)T3で終了する。このように、コード検出を行うタイミングT1〜T3は、所定の拍位置T2を基準に前後にそれぞれ時間幅T1〜T2,T2〜T3を設定したものであり、各時間幅の値は、この例では、T1〜T2=250ms、T2〜T3=50msである。ここで、コード検出タイミング(時間幅)T1〜T3の間に両手弾きなどの演奏操作(押鍵)に応じて演奏データ(ノートイベント)を入力すると、コード検出タイミング終了時間T3でコード検出が指示され、入力された演奏データ(ノートイベント)及びその時点の調を元にしてコード検出が行われる。 The code detection timing starts at a code detection timing start position (time) T1 a predetermined time before the code detection reference position T2, and ends at a code detection timing end position (time) T3 after a predetermined time from the position T2. As described above, the timings T1 to T3 for performing the chord detection are obtained by setting the time widths T1 to T2 and T2 to T3 before and after the predetermined beat position T2, respectively. Then, T1 to T2 = 250 ms and T2 to T3 = 50 ms. Here, when performance data (note event) is input in response to a performance operation (key depression) such as playing both hands during the chord detection timing (time width) T1 to T3, chord detection is instructed at the chord detection timing end time T3. Then, chord detection is performed based on the input performance data (note event) and the key at that time.
このコード検出装置では、時間幅T1〜T3内に発音している演奏データがコード検出の対象となり、時間T3で、対象の演奏データを構成する各演奏音(ノートイベント、音符データ)の音高を調べ、ディグリーネーム別ポイントテーブル(PT)を参照することにより、そのときに設定されている調においてコードになり得る候補コードを抽出し、抽出した候補コード毎に識別した各演奏音の役割に応じた音楽的なポイント(重要度)を求める。そして、候補コード各音ポイントを合計し、合計ポイントが一番高い候補コードを最適なコードとして検出する。また、このようにして時間T3でコードを検出すると同時に、検出したコードは、自動伴奏に適用されると共に、コード検出結果リストに順次追記されていく。 In this chord detection device, performance data sounded within the time interval T1 to T3 is a target of chord detection, and the pitch of each performance sound (note event, note data) constituting the target performance data at time T3. By referring to the point table (PT) by degree name, candidate chords that can be chords in the key set at that time are extracted, and the role of each performance sound identified for each extracted candidate chord is extracted. Find the corresponding musical point (importance). Then, the sound points of the candidate codes are summed, and the candidate code with the highest total point is detected as the optimum code. Further, at the same time as detecting the chord at time T3 in this way, the detected chord is applied to the automatic accompaniment and is sequentially added to the chord detection result list.
この場合、対象時間幅T1〜T3内の演奏データからは、装飾音やミスタッチと推測される音符データを取り除いてからコード検出を行うようにすると、更に精度が上がる。また、コード検出時に利用される調情報については、演奏前にユーザにより指定されたものであってもよいし、演奏に沿って随時検出されたものを活用するようにしてもよい。後者の場合、調の検出は従来技術で行われればよい。 In this case, if the chord detection is performed after removing the ornamental sound or the note data that is presumed to be mistouched from the performance data within the target time width T1 to T3, the accuracy is further improved. Further, the key information used at the time of detecting the chord may be specified by the user before the performance, or may be used at any time along the performance. In the latter case, the key may be detected by the conventional technique.
また、自動伴奏併用演奏処理中、コード検出タイミング開始位置T1、コード検出タイミング終了位置T3、演奏データ(ノートイベント)、調情報、候補コード、検出されたコード、コード検出結果リストは、それぞれ、RAM2内のレジスタ:sTime,eTime,NoteList,Key,ChordList,Chord,ResultListに格納され、各レジスタ名は、格納されている情報の内容を示すのにも用いられる。なお、コードが検出される毎に、そのときの調情報 (Key)を、検出されたコード (Chord)に対応付けてコード検出結果リスト(ResultList)に記憶しておくことが好ましい。
During the automatic accompaniment performance process, the chord detection timing start position T1, chord detection timing end position T3, performance data (note event), key information, candidate chord, detected chord, chord detection result list are stored in the
なお、コード検出基準位置は、この例のような拍位置だけでなく、テンポや拍子によっては、小節位置(例えば、2小節毎など)とすることができる。また、基準位置前後の時間幅T1〜T2,T2〜T3については、この例ではms単位で設定しているが、音符長や拍数、クロック数などで設定してもよい。 The chord detection reference position is not limited to the beat position as in this example, but can be a bar position (for example, every two bars) depending on the tempo and time signature. Further, the time widths T1 to T2 and T2 to T3 before and after the reference position are set in units of ms in this example, but may be set in terms of the note length, the number of beats, the number of clocks, or the like.
〔ディグリーネーム別ポイントテーブル〕
このコード検出装置では、コード検出時に各候補コードに対応したポイントを求めるのにディグリーネーム別ポイントテーブル(コード別ポイントテーブルともいう)が用いられる。図3は、この発明の一実施例によるディグリーネーム別ポイントテーブルの一例を示す。このディグリーネーム別ポイントテーブルPTは、候補コードとなり得る全てのコードに関して、各ノート(r,3,5,…)のポイントを得るためのノートポイントテーブル(第5〜11列)と、コード自体の優先ポイント (Prior)を得るための優先ポイントテーブル(第4列)とが、Major調とminor調別に1つのテーブルに纏められ、さらに、コードの機能とダイアトニック・スケール・コードかどうかの情報(第2,3列)が付加されている点に特徴がある。図3のディグリーネーム別ポイントテーブル(Major調)PTは、Major調(長調)で候補コードとなり得る全てのコードに関するテーブルであり、minor調(短調)についても同様のテーブルが用意される(図示せず)。
[Point table by degree name]
In this code detection apparatus, a point table for each degree name (also referred to as a code-specific point table) is used to obtain points corresponding to each candidate code at the time of code detection. FIG. 3 shows an example of a point table by degree name according to one embodiment of the present invention. The degree name-specific point table PT includes a note point table (
図3において、第1列(第1欄)は、ディグリーネーム別ポイントテーブルPTに用意されたディグリーネーム情報(DegreeName)〔コード情報ともいい、以下の説明では、単にディグリーネームと呼ぶ〕を示し、図示以外にも多数のディグリーネームがある。各ディグリーネーム(DegreeName)は、調の主音(トニック)を基準とした度数〔根音(ルート)の音階度数。例:I,II, III,IV,V,…〕とコードタイプ〔例:記号無し(メジャー),m(マイナー),7,6,Maj7(メジャー7),m6(マイナー6),m7(マイナー7),add9(9th付加メジャー),…〕との組み合わせでコードを表わしている。なお、図中の「b」は、「♭」(フラット)を表わし、後述する図10、図12及び図13についても同様である。 In FIG. 3, the first column (first column) indicates degree name information (DegreeName) (also referred to as code information, which is simply referred to as a degree name in the following description) prepared in the degree name-specific point table PT. There are many degree names other than those shown. Each degree name (DegreeName) is a frequency based on the key of the key (tonic) [the frequency of the root (root). Example: I, II, III, IV, V, ...] and code type [Example: No symbol (major), m (minor), 7, 6, Maj7 (major 7), m6 (minor 6), m7 (minor) 7), add9 (9th added major),... In the figure, “b” represents “♭” (flat), and the same applies to FIGS. 10, 12, and 13 described later.
ディグリーネーム別ポイントテーブルPTには、第1列(第1欄)の各ディグリーネーム(DegreeName)に対応して第2列(第2欄)以下の諸情報が記録されている。第2列のダイアトニック情報は、各ディグリーネーム(DegreeName)で表わされるコードがダイアトニック・スケール・コードである(○)か否(×)かを表わし、第3列の機能情報は、当該ディグリーネーム(DegreeName)の機能が、トニック(T)、サブドミナント(S)、ドミナント(D)、サブドミナント・マイナー(SM)の何れであるかを表わす。また、第4列の優先ポイント情報 (Prior)は、当該ディグリーネーム(DegreeName)自体の優先度をポイント値で表わし、コード優先ポイント或いはディグリーネーム優先ポイントとも呼ばれる。これに対して、第5〜11列は、コードを特徴付けるノート(役割:r,3,5,…)毎に音楽的な重要度を表わすノートポイント情報が設定されたノートポイントテーブル部を構成している。 In the degree name point table PT, various information in the second column (second column) and below is recorded corresponding to each degree name (DegreeName) in the first column (first column). The diatonic information in the second column indicates whether the code represented by each degree name (DegreeName) is a diatonic scale code (○) or not (×), and the function information in the third column is the degree information This indicates whether the function of the name (DegreeName) is tonic (T), subdominant (S), dominant (D), or subdominant minor (SM). The priority point information (Prior) in the fourth column represents the priority of the degree name (DegreeName) itself as a point value, and is also called a code priority point or a degree name priority point. On the other hand, the fifth to eleventh columns constitute a note point table section in which note point information representing musical importance is set for each note (role: r, 3, 5,...) Characterizing the chord. ing.
まず、第5〜9列各欄のポイント情報は、当該コードを構成するコード構成音の各ノート(役割)に対する音楽的な重要度をポイント値で表わしている。具体的には、第5列のルートポイント情報は、当該コード構成音のルート(根音)<略号“r”>に対応するポイントを示し、第6列の3度ポイント情報は、当該コード構成音の3度音<略号“3”>に対応するポイントを示し、第7列の5度ポイント情報は、当該コード構成音の5度音<略号“5”>に対応するポイントを示し、第8列の4声目ポイント情報は、当該コード構成音中でルート(根音)に対し長6度 (6th)、短7度 (7th)又は長7度(Maj7th)の4声目音<略号“4”>に対応するポイントを示し、第9列のオルタード系ポイント情報は、当該コード構成音中でルート(根音)に対し減5度(♭5th)又は増5度(♯5th)の5度変化音(オルタード系コードトーン)<略号“a”>に対応するポイントを示す。 First, the point information in each column of the fifth to ninth columns represents the musical importance of each chord constituent sound constituting the chord as a point value. Specifically, the route point information in the fifth column indicates a point corresponding to the root (root note) of the chord constituent sound <abbreviation “r”>, and the third-degree point information in the sixth column indicates the chord constituent The 5th point information in the seventh column indicates the point corresponding to the 5th tone <abbreviation “5”> of the chord constituent sound, The fourth voice point information in the 8th column is the fourth voice of the 6th (6th), 7th (7th), or 7th (Maj7th) long voice <abbreviation for the root The point corresponding to “4”> indicates the alternative point information in the ninth column, which is 5 degrees (♭ 5th) or 5 degrees (# 5th) less than the root (root sound) in the chord constituent sound. Points corresponding to the fifth-degree changing sound (alternate chord tone) <abbreviation "a"> are shown.
そして、第10列のテンションノートポイント情報は、当該コードの基本的な和音構成の上部に置かれた非和声音で緊張感を与えるテンションノート<略号“t”>に対する音楽的な重要度をポイント値で表わし、第11列(最右欄)のその他ポイント情報は、当該コード・サウンドの構成上除外されるべきアヴォイドノートなどコード構成音にもテンションノートにも相当しないその他ノートに対する音楽的な重要度をポイント値で表わす。 The tension note point information in the 10th column points to the musical importance of the tension note <abbreviation “t”> that gives a sense of tension with a non-harmonic sound placed above the basic chord structure of the chord. The other point information in the 11th column (the rightmost column) is a musical importance for other notes that do not correspond to chord constituent sounds or tension notes, such as the void note that should be excluded in the structure of the chord sound. Is represented by a point value.
このノートポイントテーブル部(第5〜11列)では、コード構成音の中でも特にルートの役割を持つ演奏音(押鍵音、音高情報)は、重要度が高いと評価され高めのポイントが設定される。また、構成音の中でもコードタイプ決定に大きく関わる3度や7度(4声目)の役割を持つ演奏音も重要とみなされる。一方、コードの中で不協和を生じるような役割(その他)の演奏音に対しては、重要度が低くなり、ポイントも低めに設定される。
In this note point table section (
このコード検出装置では、コード検出の際は、検出対象となる演奏データが入力された時の調 (Key)に応じて、候補とすべきコード (ChordList)が抽出される。例えば、予め所定の調で使用可能なコードの種類の組み合わせをいくつか記憶しておき、コード検出時に所望の組み合わせを選び、選ばれた組み合わせに該当するコードを候補コード (ChordList)として抽出する。また、図3に示されるタイプのディグリーネーム別ポイントテーブルPTでは、ポイント情報(第4〜11列)だけでなく、第2、3列に示すように、各コードのディグリーネーム(DegreeName:第1列)についてダイアトニック・スケール・コードかどうかを表わすダイアトニック情報や機能は何であるかを表わす機能情報が追加されているので、ディグリーネーム別ポイントテーブルPTを利用してその追加情報を参照することにより、候補となるコード (ChordList)を抽出することができる。 In this chord detection device, when chord detection is performed, chords (ChordList) to be candidates are extracted according to the key (Key) when performance data to be detected is input. For example, some combinations of types of codes that can be used in a predetermined key are stored in advance, a desired combination is selected at the time of code detection, and codes corresponding to the selected combination are extracted as candidate codes (ChordList). In addition, in the point table PT by degree name shown in FIG. 3, not only the point information (4th to 11th columns) but also the degree name (DegreeName: 1st) of each code as shown in the 2nd and 3rd columns. Since function information indicating what is a diatonic scale code or function is added to the column), refer to the additional information using the degree name point table PT. Thus, a candidate code (ChordList) can be extracted.
例えば、その時の調のダイアトニック・スケール・コード(第2列情報=「○」)に該当するコード(DegreeName)を全て候補コード (ChordList)として抽出するようにしてもよい。或いは、2回目以降のコード検出の場合には、前回検出されたコード (Chord)の機能(第3列情報)を調べ、例えば、ドミナント(D)であれば次はトニック(T)に進む、というように、前回検出されたコード (Chord)から音楽的に次に進むことが可能なコード(DegreeName)を候補コード (ChordList)として抽出するようにしてもよい。なお、このような追加情報については、ディグリーネーム別ポイントテーブルPTに含ませず、テーブルPTとは別の参照テーブルを用意しておくようにしてもよい。 For example, all the codes (DegreeName) corresponding to the diatonic scale code (second column information = “◯”) of the key at that time may be extracted as candidate codes (ChordList). Alternatively, in the case of code detection after the second time, the function (third column information) of the previously detected code (Chord) is examined. For example, if it is a dominant (D), the process proceeds to a tonic (T). Thus, a chord (DegreeName) that can be musically advanced from the previously detected chord (Chord) may be extracted as a candidate chord (ChordList). Note that such additional information may not be included in the degree name-specific point table PT, and a reference table different from the table PT may be prepared.
候補コード (ChordList)が抽出されると、対象の演奏データ(NoteList)に含まれる各演奏音(押鍵音、Note)が、抽出された候補コード (ChordList)において、どのような役割を演じているのか(どの構成音か、テンションノートか、或いは、アヴォイドノートか)を識別し、ディグリーネーム別ポイントテーブルPTから、識別した役割(各構成音、テンションノート、アヴォイドノート)に対応するポイントを取得する。そして、候補コード毎に全演奏音(NoteList)に対するポイント(重要度)を合計し、更に、候補コード自体の優先ポイント (Prior)を加えて総計ポイントを求めた結果、総計ポイントの一番高い候補コードを選出し、これが対象の演奏データに最適なコード (Chord)であると決定する。 Once the candidate chord (ChordList) is extracted, what role each performance sound (key press sound, Note) included in the target performance data (NoteList) plays in the extracted candidate chord (ChordList) (Which component sound, tension note, or void note) is identified, and points corresponding to the identified roles (each component sound, tension note, and void note) are acquired from the degree name point table PT. Then, the points (importance) for all performance sounds (NoteList) are summed for each candidate chord, and the total points are calculated by adding the priority points (Prior) of the candidate chords themselves. Select a chord and determine that this is the best chord for the target performance data.
以上のように、この発明の一実施例によるコード検出システムでは、ユーザによる両手弾きなどの演奏操作に基づく演奏データ(NoteList)が入力されると、所定小節毎或いは所定拍毎などのコード検出タイミングT1〜T3にて、その時の調 (Key)に応じて候補コード (ChordList)を抽出する。次いで、各候補コード (ChordList)について、入力された演奏データ(NoteList)の各演奏音(Note)が、どのような音〔ルート (r)、3度 (3)、5度 (5)、4声目 (4)、オルタード系 (a)などのコード構成音、テンションノート (t)、アヴォイドノート等〕の役割をしているのかを識別する。さらに、識別した役割の音楽的重要度を示すポイントをディグリーネーム別ポイントテーブルPTから取得し、候補コード毎に、全演奏音(NoteList)につき取得したポイントを合計して合計ポイントを求め、求められた合計ポイントに更に候補コード自体の優先ポイント (Prior)を加えて総計ポイントを得る。そして、得られた総計ポイントが最高の候補コードを最適のコード (Chord)とする。 As described above, in the chord detection system according to one embodiment of the present invention, when performance data (NoteList) based on a performance operation such as double-handed playing by a user is input, chord detection timing for every predetermined bar or every predetermined beat. At T1 to T3, a candidate code (ChordList) is extracted according to the key (Key) at that time. Next, for each candidate chord (ChordList), each performance sound (Note) of the input performance data (NoteList) is what sound [root (r), 3rd (3), 5th (5), 4 (4), chord composing sounds such as alter (a), tension notes (t), and void notes). Furthermore, points indicating the musical importance of the identified roles are obtained from the degree name point table PT, and the total points obtained for all performance sounds (NoteList) are obtained for each candidate code to obtain the total points. The total points are obtained by adding the priority point (Prior) of the candidate code itself to the total points. Then, the candidate code with the highest total points obtained is set as the optimum code (Chord).
〔自動伴奏併用演奏処理フロー例〕
図4〜図6は、この発明の一実施例による自動伴奏併用演奏処理の動作例を表わすフローチャートである。このコード検出装置では、電子楽器として通常の演奏モードで動作しているときに操作子6中の自動伴奏併用演奏モード設定ボタンを操作することにより、自動伴奏併用演奏モードに入って自動伴奏併用演奏処理が実行され、自動伴奏を使った演奏を行うことができる。自動伴奏併用演奏処理がスタートすると、CPU1は、最初のステップP1で、表示部7のディスプレイに演奏条件設定画面を表示し、ユーザ操作に応じて、演奏テンポ、拍子、伴奏スタイルの選択、ボリューム、演奏音色など、演奏開始前の演奏条件を設定する。
[Example of automatic accompaniment performance processing flow]
4 to 6 are flowcharts showing an example of the operation of the automatic accompaniment performance processing according to one embodiment of the present invention. In this chord detection apparatus, the automatic accompaniment combined performance mode setting button in the
次のステップP2では、コード検出条件設定画面をディスプレイに表示し、ユーザ操作に応じて、コード検出タイミングT1〜T3や、コード検出に関係する各種ルール、例えば、調の取得方法、コード候補の抽出方法、ディグリーネーム別ポイントテーブルPT、コード優先ポイント (Prior)、ボトムノートポイントなどを設定する。ここで、ルール中のボトムノートポイントは、コード検出対象の演奏データ(NoteList)の中で最低音高の演奏音が候補コードのルート(根音)の場合に加算されるポイントである。つまり、コード検出時の演奏音の最低音が候補コードのルートに当たるときに更にボトムノートポイントを加えるようにすると、例えば、C6とAm7のような同じ構成音のコードを区別することができる。このボトムノートポイントは、例えば、20ポイントなどの固定値であってもよいし、コードタイプ別に設定されていてもよい。ユーザにより編集設定が可能であってもよい。 In the next step P2, a chord detection condition setting screen is displayed on the display, and in accordance with a user operation, chord detection timings T1 to T3 and various rules related to chord detection, for example, key acquisition method, chord candidate extraction Set method, degree name-specific point table PT, code priority point (Prior), bottom note point, etc. Here, the bottom note point in the rule is a point that is added when the performance sound with the lowest pitch is the root of the candidate chord in the performance data (NoteList) to be detected. That is, if the bottom note point is further added when the lowest note of the performance sound at the time of chord detection hits the root of the candidate chord, for example, chords of the same constituent sound such as C6 and Am7 can be distinguished. This bottom note point may be a fixed value such as 20 points, or may be set for each chord type. Editing settings may be possible by the user.
各種ルールの設定例を説明すると、調の取得については、予めユーザが指定しておく方法、演奏時に操作子6中の調指定操作子を操作して指定する方法、ユーザの演奏に沿って随時検出された調を利用する方法(具体的な調検出方法の指定を含む)などがある。コード候補については、調のダイアトニック・スケール・コードのみを抽出する方法、調で使用可能なコードを全て抽出する方法、調で使用可能なコードのうち構成音が対象演奏データ(NoteList)中の1音以上あるコードを抽出する方法などがある。ディグリーネーム別ポイントテーブルについては、複数種類のテーブルから所望の種類を選択したり、テーブル中のポイント値を編集するなどの設定動作がある。コード優先ポイント (Prior)やボトムノートポイントについては、ディグリーネーム別ポイントテーブルに設定されていない場合、これらのポイントが設定されたコード優先ポイントテーブル(ディグリーネーム優先ポイントテーブルともいう)等の制御データに従って設定する。
An example of setting various rules will be described. For key acquisition, a method specified in advance by the user, a method specified by operating the key specifying operator in the
続くステップP3では、ディグリーネーム別ポイントテーブルPTを読み込む。ここで、ディグリーネーム別ポイントテーブルPTが、図3のように、コード優先ポイントテーブルと一体化されたテーブルではない場合、別設されたコード優先ポイントテーブルも読み込む。次のステップP4(図5)では、コードの検出や適用に用いられるRAM2内の各種レジスタを初期化する。これらのレジスタには、NoteList,ChordList,Chord,sTime(コード検出タイミング開始位置),eTime(コード検出タイミング終了位置), Key,ResultListなどがある。
In subsequent step P3, the point table PT by degree name is read. Here, if the degree name point table PT is not a table integrated with the code priority point table as shown in FIG. 3, the code priority point table provided separately is also read. In the next step P4 (FIG. 5), various registers in the
ステップP1〜P4の処理により演奏前の準備が整うと、ステップP5で、ステップP2で設定されたコード検出タイミングT1〜T3の内容から、最初のコード検出タイミング開始位置 (sTime)及びコード検出タイミング終了位置 (eTime)を算出し、それぞれ、対応する開始及び終了位置レジスタ:sTime,eTimeに格納し、ステップP6に進む。図2の例では、 sTime=基準位置となる拍の250ms前、 eTime=基準位置となる拍の50ms後に定められる。但し、開始位置レジスタ:sTimeに格納されるコード検出タイミング開始位置 (sTime)は、最初に限り、最初のコード検出基準位置T2が設定される。 When the preparations before the performance are completed by the processes of Steps P1 to P4, the first chord detection timing start position (sTime) and the chord detection timing end are determined from the contents of the chord detection timings T1 to T3 set in Step P2 in Step P5. The position (eTime) is calculated and stored in the corresponding start and end position registers: sTime and eTime, respectively, and the process proceeds to Step P6. In the example of FIG. 2, sTime = 250 ms before the beat as the reference position and eTime = 50 ms after the beat as the reference position. However, only the first code detection timing start position (sTime) stored in the start position register: sTime is set to the first code detection reference position T2.
ステップP6では、自動伴奏を使わない通常の演奏モードに戻るか否かをユーザに打診し、通常演奏モード復帰ボタンが操作され通常演奏モードに戻ると判定したときは(P6=YES)、この自動伴奏併用演奏モードを終了し、元の通常演奏モードに戻る。一方、続行ボタンが操作されてこの自動伴奏併用演奏モードを続行すると判定したときは(P6=NO)、ステップP7に進んで、自動伴奏開始ボタンの操作による自動伴奏のスタートの指示が受け付けられたか否かを判定し、自動伴奏スタートの指示がないときは(P7=NO)、ステップP6に戻る。また、ステップP6で自動伴奏スタートの指示を受け付けると(P7=YES)、ステップP8でタイマ12を起動し、ステップP8に進む。
In Step P6, the user is asked whether or not to return to the normal performance mode without using the automatic accompaniment, and when it is determined that the normal performance mode return button is operated to return to the normal performance mode (P6 = YES), this automatic End the accompaniment performance mode and return to the original normal performance mode. On the other hand, when it is determined that the automatic accompaniment performance mode is to be continued by operating the continue button (P6 = NO), the process proceeds to step P7, and an instruction to start automatic accompaniment by operating the automatic accompaniment start button has been accepted. If no automatic accompaniment start instruction is given (P7 = NO), the process returns to step P6. Further, when an instruction to start automatic accompaniment is received at step P6 (P7 = YES), the
ステップP9では、自動伴奏停止ボタンの操作による自動伴奏ストップの指示を受け付けたか否かを判定し、自動伴奏ストップの指示があったときは(P9=YES)、ステップP10でタイマ12を停止し、さらに、ステップP11に進んで、伴奏スタイルなどの演奏条件やコード検出タイミングなどのコード検出条件について設定変更を行うか否かをユーザに打診する。そして、設定変更ボタンが操作され設定変更を行うと判定したときは(P11=YES)、ステップP1(図4)に戻り、ステップP1〜P5で必要な設定や算出を行った後、ステップP6に戻る。一方、設定変更を行わない場合には(P11=NO)、直ちに、ステップP6に戻る。
In Step P9, it is determined whether or not an automatic accompaniment stop instruction by operating the automatic accompaniment stop button has been accepted. When an automatic accompaniment stop instruction is received (P9 = YES), the
ステップP9で自動伴奏ストップ指示の受付けがないときには(P9=NO)、ステップP12に進んで、演奏操作に基づくノートイベントを受け付けた否かを判定する。ここで、ノートイベントを受け付けたときは(P12=YES)、ステップP13でノートイベント処理(図7参照)を行った後ステップP14(図6)に進む。ノートイベント処理では、コード検出タイミングT1〜T3の間に発生したノートイベントをコード検出対象の演奏データとして演奏データレジスタ:NoteListに記録する。また、ノートイベントを受け付けなかったときは(P12=NO)、直ちにステップP14に進む。 When the automatic accompaniment stop instruction is not accepted in step P9 (P9 = NO), the process proceeds to step P12 to determine whether or not a note event based on the performance operation has been accepted. When a note event is accepted (P12 = YES), note event processing (see FIG. 7) is performed in step P13, and then the process proceeds to step P14 (FIG. 6). In the note event processing, note events that occur between chord detection timings T1 to T3 are recorded in the performance data register: NoteList as performance data to be chord detected. If no note event is accepted (P12 = NO), the process immediately proceeds to step P14.
ステップP14では、コード検出タイミングか否か即ち終了時点 eTimeに到達したか否かを判定し、時点 eTimeに到達したときは(P14=YES)、先ず、ステップP15で、調情報を取得して調レジスタ:Keyに格納する。次のステップP16では、ステップP2で設定された抽出方法に従って調情報 Keyに対応するコード候補を抽出し、候補コードレジスタ:ChordListに格納して、ステップP17に進み、コード検出処理(図8〜図9参照)を実行する。コード検出処理では、対象の演奏データ(NoteList)及び抽出したコード候補 (ChordList)から所望のコード Chordを検出し、次のステップP18で、検出したコード Chordを自動伴奏装置9に出力する。そして、ステップP19にて、このコード Chordをコード検出結果レジスタ:ResultListの末尾に追加し、ステップP20に進む。つまり、コードが検出される毎に、そのときの調情報を、検出されたコードに対応付けて記憶しておく。なお、コード Chordがない場合即ちコード検出処理で所望コード Chordを検出することができなかった場合は、ステップP17からステップP20に進む。
In step P14, it is determined whether or not the code detection timing is reached, that is, whether or not the end time eTime has been reached. When the time eTime has been reached (P14 = YES), first, in step P15, key information is acquired and adjusted. Store in register: Key. In the next step P16, code candidates corresponding to the key information key are extracted in accordance with the extraction method set in step P2, stored in the candidate code register: ChordList, and the process proceeds to step P17 to execute code detection processing (FIGS. 8 to 8). 9). In the chord detection process, a desired chord Chord is detected from the target performance data (NoteList) and the extracted chord candidate (ChordList), and the detected chord Chord is output to the
ステップP20では、コード検出タイミングの設定内容より、次のコード検出タイミング開始及び終了位置 (sTime,eTime)を算出して夫々のレジスタ:sTime,eTimeを更新し、続くステップP21で、演奏データ及びコード候補レジスタ:NoteList,ChordListを初期化する。そして、ステップP14で終了時点 eTimeに到達していないと判定したとき(P14=NO)或いはステップP21の処理の後は、ステップP9(図5)に戻る。 In step P20, the start and end positions (sTime, eTime) of the next chord detection timing are calculated from the set contents of chord detection timing, and the respective registers: sTime, eTime are updated. In step P21, the performance data and chord are updated. Candidate registers: NoteList and ChordList are initialized. Then, when it is determined in step P14 that the end time eTime has not been reached (P14 = NO) or after the process of step P21, the process returns to step P9 (FIG. 5).
<ノートイベント処理フロー例>
図7は、自動伴奏併用演奏処理のステップP13(図5)で行われるノートイベント処理の動作例を表わすフローチャートである。CPU1は、まず、ステップN1で、現在、タイマ12はコード検出タイミング( sTime〜 eTimeの間)を示しているか否かを判定し、コード検出タイミングの範囲にあれば(N1=YES)、ステップN2で、ステップP12(図5)で受け付けたノートイベントがノートオンであるか否かを判定する。ここで、ノートオンであれば(N2=YES)、ステップN3で、当該ノートイベントに従った発音処理を音源8に行わせ、次のステップN4で、ノートオンされたノートイベント情報を演奏データレジスタ:NoteListに追加する。一方、ノートオフであれば(N2=NO)、ステップN5で当該ノートイベントによる楽音の消音処理を行わせ、ステップN6で、ノートオフされたノートイベント情報を同レジスタ:NoteListから削除する。
<Note event processing flow example>
FIG. 7 is a flowchart showing an operation example of the note event process performed in step P13 (FIG. 5) of the automatic accompaniment performance process. First, in step N1, the
また、コード検出タイミング( sTime〜 eTime)でないときは(N1=NO)、ステップN7に進み、ステップP11(図4)で受け付けたノートイベントがノートオンであるか否かを判定し、ノートオンであれば(N7=YES)、ステップN8で、音源8に発音処理を行わせ、ノートオフであれば(N7=NO)、消音処理を行わせる。そして、ステップN4,N6,N8,N9の処理の後は、このノートイベント処理を終了し、自動伴奏併用演奏処理のステップP14(図6)にリターンする。
If it is not the chord detection timing (sTime to eTime) (N1 = NO), the process proceeds to step N7, where it is determined whether the note event received in step P11 (FIG. 4) is note-on. If there is (N7 = YES), in step N8, the
<コード検出処理フロー例>
図8〜図9は、自動伴奏併用演奏処理のステップP17(図6)で行われるコード検出処理の動作例を表わすフローチャートである。CPU1は、最初のステップC1で、演奏データレジスタ:NoteListが空(データ無し)の状態であるか否かを判定し、空でなければ(C1=NO)ステップC2で、コード候補レジスタ:ChordListが空状態であるか否かを判定し、空でなければ(C2=NO)ステップC3に進む。また、演奏データレジスタ:NoteListが空のとき(C2=YES)或いはコード候補レジスタ:ChordListが空のときは(C2=YES)、自動伴奏併用演奏処理のステップP18(図6)にリターンする。
<Example of code detection processing flow>
8 to 9 are flowcharts showing an example of the chord detection process performed in step P17 (FIG. 6) of the automatic accompaniment performance process. In the first step C1, the
ステップC3では、コード候補レジスタ:ChordListの先頭から順に(2個目以降は次の)候補コードを1つ対象にしてディグリーネームに変換し、これをディグリーネームレジスタ(コード情報レジスタともいう):DegreeNameに格納し、次のステップC4で、ポイント値レジスタ:pointに値「0」を置数する。続くステップC5(図9)では、演奏データレジスタ:NoteListの先頭から順に(2個目以降は次の)ノートイベント情報を1つ対象にしてその音高情報を抽出し、これを演奏音レジスタ:Noteに格納し、ステップC6に進む。 In step C3, one candidate code is converted into a degree name in order from the top of the code candidate register: ChordList (the second and subsequent codes), and this is converted to a degree name register (also referred to as a code information register): DegreeName In the next step C4, the value “0” is entered in the point value register: point. In the subsequent step C5 (FIG. 9), pitch information is extracted from the performance data register: NoteList in order from the top of the note list (the second and subsequent items are the next), and this is extracted as the performance sound register: Store in the Note and proceed to Step C6.
ステップC6では、ディグリーネームDegreeNameが示すコードにおける演奏音Noteの役割を抽出する役割抽出処理(図10〜図11参照)を実行する。次のステップC7では、ディグリーネーム別ポイントテーブルPTを参照して、ステップC6で抽出した「DegreeNameのコードにおける役割」に対応したポイントを取得し、ポイント値 pointに加算し、ステップC8に進む。なお、この役割は、ディグリーネーム別ポイントテーブルPTの仕様次第では、テンションノートの種類で更に細かく分けることもできる(図12〜図13参照)。 In step C6, role extraction processing (see FIGS. 10 to 11) for extracting the role of the performance sound Note in the chord indicated by the degree name DegreeName is executed. In the next step C7, referring to the degree name point table PT, the point corresponding to the “role in the code of DegreeName” extracted in step C6 is acquired, added to the point value point, and the process proceeds to step C8. Note that this role can be further divided according to the type of tension note depending on the specification of the degree name point table PT (see FIGS. 12 to 13).
ステップC8では、演奏音レジスタ:Noteは、演奏データレジスタ:NoteList中の最後のノートイベント情報の音高情報を示しているか否かを判定し、最後のノートイベント音高情報でないときは(C8=NO)、ステップC5に戻り、演奏データNoteList中の次のノートイベント情報を対象にしてステップC5〜C7の処理を繰り返す。そして、演奏データNoteList中の最後のノートイベント音高情報についてステップC5〜C7の処理を行うと(C8=YES)、ステップC9に進む。 In step C8, it is determined whether or not the performance sound register: Note indicates the pitch information of the last note event information in the performance data register: NoteList. If it is not the last note event pitch information (C8 = NO), returning to step C5, the processes of steps C5 to C7 are repeated for the next note event information in the performance data NoteList. And if the process of step C5-C7 is performed about the last note event pitch information in performance data NoteList (C8 = YES), it will progress to step C9.
ステップC9では、ディグリーネーム別ポイントテーブルPTを参照して、ディグリーネームDegreeNameが示すコードに対応した優先ポイント (Prior)を取得しポイント値 pointに加算する。次のステップC10では、演奏データNoteList中で最低音となるノートイベント情報の音高情報(最低音高の演奏音)が、ディグリーネームDegreeNameが示すコードのルートに相当しているか否かを判定し、ルートに相当しているときは(C10=YES)、ステップC11で、ボトムノートポイント(例えば、20ポイント)を取得し、ポイント値 pointに加算する。ステップC10でルートに相当していないと判定したとき(C10=NO)或いはステップC11の処理の後は、ステップC12に進み、ポイント値 pointを、ディグリーネームDegreeNameが示す全候補コード ChordList中の候補コードに対応付けて記憶する。 In step C9, referring to the degree name point table PT, a priority point (Prior) corresponding to the code indicated by the degree name DegreeName is acquired and added to the point value point. In the next step C10, it is determined whether or not the pitch information of the note event information that is the lowest note in the performance data NoteList (the performance tone of the lowest pitch) corresponds to the root of the chord indicated by the degree name DegreeName. When it corresponds to the route (C10 = YES), a bottom note point (for example, 20 points) is acquired in step C11 and added to the point value point. When it is determined in step C10 that it does not correspond to the route (C10 = NO) or after the processing of step C11, the process proceeds to step C12, and the candidate values in the chordList are all candidate codes indicated by the degree name DegreeName. Is stored in association with.
次のステップC13では、ディグリーネームDegreeNameが示すコードが全候補コード ChordList中の最後のコードであるか否かを判定し、最後のコードでないときは(C13=NO)ステップC3に戻り、全候補コード ChordList中の次の候補コードを対象にしてステップC3〜C12の処理を繰り返す。そして、最後の候補コードについてステップC5〜C7の処理を行うと(C13=YES)、ステップC14に進み、全候補コード ChordList中の各候補コードに対応付けて記憶したポイント値 pointが最高の候補コードを1つ検出し、コードレジスタ:Chordに格納し、ステップC14の処理を終えると、このコード検出処理を終了し、自動伴奏併用演奏処理のステップP18(図6)にリターンする。 In the next step C13, it is determined whether or not the code indicated by the degree name DegreeName is the last code in all candidate codes ChordList. If it is not the last code (C13 = NO), the process returns to step C3 to return to all candidate codes. Steps C3 to C12 are repeated for the next candidate code in the ChordList. Then, when the processes of steps C5 to C7 are performed on the last candidate code (C13 = YES), the process proceeds to step C14, and the candidate code having the highest point value point stored in association with each candidate code in all candidate codes ChordList Is stored in the chord register: Chord. When the process of step C14 is completed, the chord detection process is terminated, and the process returns to step P18 (FIG. 6) of the automatic accompaniment performance process.
なお、ステップC14で候補コードの中から1つのコードを決定する際、ポイント値 pointが最高の候補コードが複数ある場合(ポイントが同点で並んだ場合)、適宜の方法でどれか1つに決定する。例えば、最低音とルートが一致するコード、検出回数の少ないコード、或いは、検出回数の多いコード等、優先して選択すべきコードの特徴を定めた優先ルールを用意し、ステップP2で設定するように設計しておくことが好ましい。 When determining one code from among the candidate codes in step C14, if there are a plurality of candidate codes having the highest point value point (when the points are arranged at the same point), one is determined by an appropriate method. To do. For example, a priority rule that defines the characteristics of a code to be selected with priority, such as a chord whose lowest tone matches the route, a code with a small number of detections, or a code with a large number of detections, is prepared and set in step P2. It is preferable to design in advance.
<役割抽出処理フロー>
図10〜図11は、コード検出処理のステップC6(図9)で行われるコード検出処理の動作例を表わすフローチャートである。CPU1は、最初のステップF1で、調情報 Keyの主音(トニック)及びディグリーネームDegreeNameから、コードのルート、3度及び5度〔マイナー7thフラット5th[m7(♭5)]及びオーギュメント[aug]以外〕にあたる音名を取得し、RAM2内の“ルート”レジスタ、“3度”レジスタ及び“5度”レジスタに格納する。ここで、ルート、3度及び5度の音は、コードタイプに応じて主音からの半音距離数が決まっており、例えば、 Key=CMajor調、DegreeName=IVMaj7の場合、“ルート”=F(ファ)、“3度”=A(ラ)、“5度”=C(ド)となる。
<Role extraction process flow>
10 to 11 are flowcharts showing an example of the code detection process performed in step C6 (FIG. 9) of the code detection process. In the first step F1, the
次のステップF2では、演奏音情報Noteの音名が“ルート”レジスタの値に等しいか否かを判定し、“ルート”レジスタの値であれば(F2=YES)、ステップF3で、演奏音情報Noteの役割を「ルート」に決定し、そうでなければ(F2=NO)ステップF4に進む。ステップF4では、演奏音情報Noteの音名は“3度”レジスタの値に等しいか否かを判定し、“3度”レジスタの値であれば(F4=YES)、ステップF5で、演奏音情報Noteの役割を「3度」に決定し、そうでなければ(F4=NO)ステップF6に進む。ステップF6では、演奏音情報Noteの音名が“5度”レジスタの値に等しいか否かを判定し、“5度”レジスタの値であれば(F6=YES)、ステップF7で、演奏音情報Noteの役割を「5度」に決定し、そうでなければ(F6=NO)ステップF8に進む。また、ステップF3,F5,F7の処理を終えると、この役割抽出処理を終了してコード検出処理のステップC7(図9)にリターンする。 In the next step F2, it is determined whether or not the pitch name of the performance sound information Note is equal to the value of the “root” register. If it is the value of the “root” register (F2 = YES), the performance sound is determined in step F3. The role of the information note is determined to be “root”, otherwise (F2 = NO), the process proceeds to step F4. In step F4, it is determined whether or not the pitch name of the performance sound information Note is equal to the value of the “three times” register. If it is the value of the “three times” register (F4 = YES), the performance sound is determined in step F5. The role of the information note is determined to be “three times”, otherwise (F4 = NO), the process proceeds to step F6. In step F6, it is determined whether or not the note name of the performance sound information Note is equal to the value of the “5th” register. If it is the value of the “5th” register (F6 = YES), the performance sound is determined in step F7. The role of the information Note is determined to be “5 degrees”, otherwise (F6 = NO), the process proceeds to Step F8. When the processes of steps F3, F5, and F7 are completed, the role extraction process is terminated and the process returns to step C7 (FIG. 9) of the code detection process.
ステップF8では、ディグリーネームDegreeNameのコードタイプが「m7(♭5)」(マイナー7フラット5)であるか否かを判定する。ここで、コードタイプが「m7(♭5)」であれば(F8=YES)、ステップF9に進んで、演奏音情報Noteの音名が“ルート”レジスタの音名に対し減5度(♭5th)であるか否かを判定し、減5度であれば(F9=YES)、ステップF10で演奏音情報Noteの役割を「オルタード系」に決定する。一方、コードタイプが「m7(♭5)」でなければ(F8=NO)、ステップF11に進んで、ディグリーネームDegreeNameのコードタイプが「aug」(オーギュメント)であるか否かを判定する。ここで、コードタイプが「aug」であれば(F11=YES)、ステップF12に進み、演奏音情報Noteの音名が“ルート”レジスタの音名に対し増5度(♯5th)であるか否かを判定し、増5度であれば(F12=YES)、ステップF10で演奏音情報Noteの役割を「オルタード系」に決定する。そして、ステップF10の処理を終えると、この役割抽出処理を終了してコード検出処理のステップC7(図9)にリターンする。 In step F8, it is determined whether or not the code type of the degree name DegreeName is “m7 (♭ 5)” (minor 7 flat 5). If the chord type is “m7 (♭ 5)” (F8 = YES), the process proceeds to step F9, where the note name of the performance note information Note is reduced by 5 degrees (♭) with respect to the note name in the “root” register. 5th), and if it is a decrease of 5 degrees (F9 = YES), the role of the performance sound information Note is determined to be “alternate” in step F10. On the other hand, if the code type is not “m7 (♭ 5)” (F8 = NO), the process proceeds to step F11 to determine whether the code type of the degree name DegreeName is “aug” (an augment). If the chord type is “aug” (F11 = YES), the process proceeds to step F12, and whether the note name of the performance sound information Note is increased by 5 degrees (# 5th) with respect to the note name of the “root” register. If NO in step F10 (F12 = YES), the role of the performance sound information Note is determined to be "alternate" in step F10. When the process of step F10 is completed, the role extraction process is terminated and the process returns to step C7 (FIG. 9) of the code detection process.
ステップF11で、コードタイプが「aug」ではないと判定したときは(F11=NO)、ステップF13(図13)に進み、ディグリーネームDegreeNameのコードタイプが、「6」、「6sus4」(6サスペンデッド4)又は「m6」(マイナー6)であるか否かを判定する。ここで、コードタイプが、「6」、「6sus4」及び「m6」の何れかであれば(F13=YES)、ステップF14に進んで、演奏音情報Noteの音名が“ルート”レジスタの音名に対し長6度(6th)であるか否かを判定し、長6度であれば(F14=YES)、ステップF15で、演奏音情報Noteの役割を「4声目」に決定する。一方、ステップF13で、コードタイプが、「6」、「6sus4」及び「m6」の何れでもないと判定したときは(F13=NO)、ステップF16に進み、ディグリーネームDegreeNameのコードタイプが、「IMaj7」(1度・メジャー7)や「IVmMaj7」(4度・マイナーメジャー7)などのMaj7(メジャー7)系であるか否かを判定する。ここで、コードタイプがMaj7系であれば(F16=YES)、ステップF17に進んで、演奏音情報Noteの音名が“ルート”レジスタの音名に対し長7度(Maj7th)であるか否かを判定し、長7度であれば(F17=YES)、ステップF15で演奏音情報Noteの役割を「4声目」に決定する。また、ステップF16でコードタイプがMaj7系でないと判定したときは(F16=NO)、ステップF18に進み、ディグリーネームDegreeNameのコードタイプが、「IIm7」(2度・マイナー7)、「V7」(5度・セブン)、「 VII7sus4」(7度・セブンサスペンデッド4)などのm7(マイナー7)系乃至7(セブン)系であるか否かを判定する。ここで、コードタイプがm7系乃至7th系であれば(F18=YES)、ステップF19に進み、演奏音情報Noteの音名が“ルート”レジスタの音名に対し短7度(7th)であるか否かを判定し、短7度であれば(F19=YES)、ステップF15で、演奏音情報Noteの役割を「4声目」に決定する。そして、ステップF10の処理を終えると、この役割抽出処理を終了してコード検出処理のステップC7(図9)にリターンする。 When it is determined in step F11 that the code type is not “aug” (F11 = NO), the process proceeds to step F13 (FIG. 13), and the code type of the degree name DegreeName is “6”, “6sus4” (6 suspended). 4) or “m6” (minor 6). Here, if the chord type is any of “6”, “6sus4”, and “m6” (F13 = YES), the process proceeds to step F14, and the note name of the performance sound information Note is the sound of the “root” register. It is determined whether or not the name is 6 degrees (6th), and if it is 6 degrees (F14 = YES), the role of the performance sound information Note is determined to be “fourth voice” in step F15. On the other hand, when it is determined in step F13 that the code type is neither “6”, “6sus4”, or “m6” (F13 = NO), the process proceeds to step F16, and the code type of the degree name DegreeName is “ It is determined whether or not it is a Maj7 (major 7) system such as “IMaj7” (1 degree / major 7) and “IVmMaj7” (4 degrees / minor major 7). Here, if the chord type is Maj7 type (F16 = YES), the process proceeds to step F17, and whether or not the pitch name of the performance sound information Note is 7 degrees (Maj7th) long with respect to the pitch name of the “root” register. If it is 7 degrees long (F17 = YES), the role of the performance sound information Note is determined to be “fourth voice” in step F15. If it is determined in step F16 that the code type is not Maj7 (F16 = NO), the process proceeds to step F18, and the code type of the degree name DegreeName is “IIm7” (twice / minor 7), “V7” ( It is determined whether it is an m7 (minor 7) system to a 7 (seven) system such as “5 degrees / Seven)” and “VII7sus4” (7 degrees / Seven Suspended 4). Here, if the chord type is the m7 system to the 7th system (F18 = YES), the process proceeds to step F19, and the pitch name of the performance sound information Note is 7 degrees (7th) shorter than the pitch name of the “root” register. In step F15, the role of the performance sound information Note is determined to be “fourth voice” if it is short 7 degrees (F19 = YES). When the process of step F10 is completed, the role extraction process is terminated and the process returns to step C7 (FIG. 9) of the code detection process.
ステップF9で減5度でないと判定したとき(F9=NO)、ステップF12で増5度でないと判定したとき(F12=NO)、ステップF14で長6度でないと判定したとき(F14=NO)、ステップF17で長7度でないと判定したとき(F17=NO)、ステップF18でコードタイプがm7系でも7系でもないと判定したとき(F18=NO)、或いは、ステップF19で短7度でないと判定したときは(F19=NO)、ステップF20に進み、演奏音情報Noteの音名が、現在の調 KeyにおけるディグリーネームDegreeNameのコードに対しテンションノートであるか否かを判定する。ここで、テンションノートは、コードタイプに応じて根音からの半音距離数が決まっており(ルートに対しては、♭9th,9th,♯9th,11th,♯11th,♭13th,13thの何れか1〜3)、例えば、 Key=CMajor調、DegreeName=IVMaj7の場合、G(ソ)、B(シ)、D(レ)の音である。ここで、テンションノートであれば(F20=YES)、ステップF21で、演奏音情報Noteの役割を「テンションノート」に決定し、そうでなければ(F20=NO)、ステップF22で演奏音情報Noteの役割を「その他」に決定する。そして、ステップF21,F22の処理を終えると、この役割抽出処理を終了してコード検出処理のステップC7(図9)にリターンする。 When it is determined in step F9 that it is not a decrease of 5 degrees (F9 = NO), when it is determined that it is not an increase of 5 degrees in step F12 (F12 = NO), and when it is determined that the length is not 6 degrees in step F14 (F14 = NO) When it is determined at step F17 that it is not 7 degrees long (F17 = NO), when it is determined at step F18 that the code type is neither m7 system nor 7 system (F18 = NO), or it is not short 7 degrees at step F19. (F19 = NO), the process proceeds to step F20, where it is determined whether or not the pitch name of the performance sound information Note is a tension note with respect to the chord of the degree name DegreeName in the current key. Here, the tension note has a semitone distance number from the root sound depending on the chord type (for the root, any of ♭ 9th, 9th, # 9th, 11th, # 11th, ♭ 13th, 13th) 1-3), for example, when Key = CMajor and DegreeName = IVMaj7, the sound is G (So), B (Sh), and D (Le). If it is a tension note (F20 = YES), the role of the performance sound information Note is determined as “tension note” in step F21. Otherwise (F20 = NO), the performance sound information Note is determined in step F22. The role of “Other” is determined. When the processes of steps F21 and F22 are completed, the role extraction process is terminated and the process returns to step C7 (FIG. 9) of the code detection process.
〔ディグリーネーム別ポイントテーブル(2)〕
図3で説明したディグリーネーム別ポイントテーブルPTは、候補となり得るコード毎に、対応するディグリーネームに基づいた構成音、テンションノート、アヴォイドノートなどのノートの役割に対する重要度を示すノートポイントを設定したものであるが、ノートポイントをさらに詳細に設定することができる。図12〜図13は、この発明の一実施例によるディグリーネーム別ポイントテーブルの別の例を示す。このディグリーネーム別ポイントテーブルでは、第1〜5列には、図3のテーブルと同様の情報が設定されるが、第6〜22列には、第5列のRoot(ルート)に対し図示の通りの音程(m3rd,3rd,4th,…,13th)を示す音の役割に対応するポイント(重要度)が設定されると共に、第5〜22列のルートを含む各音には、コードを特徴付けるノート(役割)を表わす役割情報が付記され、図12〜図13では、ノートポイント表示枠に次のように表示されている:
表示枠左上の記号“r”は、コード構成音のルートを表わし、記号“3”は、コード構成音の3度音を表わし、記号“5”は、コード構成音の5度音を表わし、記号“4”は、コード構成音の4声目音〔6th,7th,Maj7th〕を表わし、記号“a”は、コード構成音中のオルタード系コードトーン〔♭5th,♯5th(aug5th)〕を表わし、記号“t”は、テンションノートを表わす。また、表示枠全体に斜線を施したものは、異名同音(記譜上は異なるが鍵盤上は同一の音)による不使用を表わし、記号や斜線のないものは、「その他」の音(アヴォイドノートなど)を表わす。
[Point table by degree name (2)]
The degree name point table PT described in FIG. 3 is a table in which note points indicating the importance of the role of notes such as constituent notes, tension notes, and void notes based on the corresponding degree names are set for each possible chord. However, note points can be set in more detail. 12 to 13 show other examples of degree name point tables according to an embodiment of the present invention. In this degree name-specific point table, the same information as the table of FIG. 3 is set in the first to fifth columns, but the sixth to twenty-second columns are shown for the Root in the fifth column. Points (importance) corresponding to the role of the sound indicating the pitch of the street (m3rd, 3rd, 4th, ..., 13th) are set, and each sound including the root in the 5th to 22nd columns is characterized by a chord Role information representing a note (role) is added and displayed in the note point display frame as follows in FIGS.
The symbol “r” at the upper left of the display frame represents the root of the chord component sound, the symbol “3” represents the third tone of the chord component tone, the symbol “5” represents the fifth tone of the chord component sound, The symbol “4” represents the fourth voice of the chord constituent sound [6th, 7th, Maj7th], and the symbol “a” represents the altered chord tone [♭ 5th, # 5th (aug5th)] in the chord constituent sound. The symbol “t” represents a tension note. In addition, if the entire display frame is shaded, it indicates that it is not used due to a different name and the same name (same on the keyboard but different on the keyboard). Etc.).
このようなディグリーネーム別ポイントテーブルPTを用いると、各演奏音(音高情報)に対しコードにおける役割とポイントを同時に得ることができる。また、コード構成音だけでなく、テンションノートについても、その種類毎にポイントを設定することができ、高い精度でコード検出を行うことが可能になる。 By using such a degree name point table PT, it is possible to simultaneously obtain the role and point in the chord for each performance sound (pitch information). Also, not only chord constituent sounds but also tension notes can be set for each type, and chord detection can be performed with high accuracy.
〔種々の実施態様〕
以上、図面を参照しつつこの発明の好適な実施の一形態について説明したが、これは単なる一例であり、この発明は、発明の精神を逸脱しない範囲で種々の変更が可能である。例えば、コード検出を行うタイミングについては、テンポや使用する伴奏スタイルによって決まっていてもよいし、ユーザが設定できるようになっていてもよい。また、スイッチなどの特定の操作子が操作されたタイミングでもよいし、所定の拍タイミング+操作子操作タイミングでもよい。テンポの変化を検出したときに例えば2拍毎から1拍毎に変更してもよい。また、実施例のように、対象演奏データの入力を受け付けるための時間幅(T1〜T3)を設けてもよい。
[Various Embodiments]
The preferred embodiment of the present invention has been described above with reference to the drawings. However, this is merely an example, and the present invention can be variously modified without departing from the spirit of the invention. For example, the chord detection timing may be determined by the tempo and the accompaniment style to be used, or may be set by the user. Further, it may be a timing when a specific operation element such as a switch is operated, or may be a predetermined beat timing + an operation element operation timing. For example, when a change in tempo is detected, it may be changed from every 2 beats to every 1 beat. Further, as in the embodiment, a time width (T1 to T3) for receiving input of target performance data may be provided.
実施例では、候補となり得る全てのコード毎にノートポイントを設定したディグリーネーム別ポイントテーブル(PT)を用いているが、複数種類のディグリーネーム別ポイントテーブルを用意しておき、演奏前や演奏中にユーザ操作で所望種類のポイントテーブルを選択することができるようにしてもよい。また、ユーザにより編集や作成が可能であってもよい。
また、ノートポイントテーブルとは別に、候補コードに対応するディグリーネーム自体の優先度を示すコード優先ポイント(ディグリーネーム優先ポイント)を設定したコード優先ポイントテーブル(ディグリーネーム優先ポイントテーブル)を設けることができ、この場合も、同様に、複数種類のコード優先ポイントテーブルを用意して選択可能としたり、ユーザによるテーブルの編集や作成を可能としてもよい。
また、実施例のようにコードのディグリーネーム毎の表であってもよいし、ノートポイントテーブルについてはコードタイプ別の表であってもよい。
In the embodiment, a point table for each degree name (PT) in which note points are set for every chord that can be a candidate is used. In addition, a desired type of point table may be selected by a user operation. Moreover, editing and creation may be possible by the user.
In addition to the note point table, a code priority point table (degree name priority point table) in which a code priority point (degree name priority point) indicating the priority of the degree name itself corresponding to the candidate code is set can be provided. In this case, similarly, a plurality of types of code priority point tables may be prepared and selectable, or the table may be edited or created by the user.
Further, a table for each degree name of the chord as in the embodiment may be used, and the note point table may be a table for each chord type.
実施例では、押鍵音の候補コードにおける役割を、コード構成音、テンションノート、アヴォイドノートなど、細かく識別しているが、例えば、コード構成音か構成音でないかの2通りの役割を識別するようにしてもよい。 In the embodiment, the role of the key-pressing sound in the candidate chord is finely discriminated such as chord constituent sound, tension note, and void note. For example, two roles of chord constituent sound or non-constituent sound are identified. It may be.
実施例では、演奏データに合わせて、検出したコードに基づき自動伴奏を生成するようにしているが、検出したコードに基づきハーモニー音を生成するようにしてもよい。或いは、検出したコードの情報を順次表示画面上に表示するという活用法も考えられる。
検出したコードを記憶する際、演奏の開始以降に検出した全てのコードをリスト形式などで記憶しておいてもよいし、最新のコード1つもしくは任意の個数を記憶し、検出毎に更新してもよい。また、検出されたコードは、コードネームを記憶してもよいし、その時点での調情報と対応付けたディグリーネームで記憶してもよい。コードネームとディグリーネームを両方記憶しておいてもよい。
In the embodiment, the automatic accompaniment is generated based on the detected chord according to the performance data, but a harmony sound may be generated based on the detected chord. Or the utilization method of displaying the information of the detected code | cord | chord on a display screen sequentially is also considered.
When storing the detected chords, all the chords detected after the start of the performance may be stored in a list format or the like, or the latest chord or an arbitrary number may be stored and updated for each detection. May be. The detected code may store a code name, or a degree name associated with the key information at that time. Both the code name and the degree name may be stored.
実施例では、入力される演奏データは、ユーザによるリアルタイム演奏データを想定しているが、例えば、録音された演奏データを先読みせずに順次再生しながらコードを検出するような使い方も考えられる。或いは、外部に接続した楽器などの装置から演奏データが入力されてもよい。
また、演奏データの入力手段(演奏操作子)は鍵盤だけでなく、例えば、ギターなどの弦楽器タイプでもよい。ユーザの演奏入力音がオーディオ信号の場合、遅くとも各コード検出タイミングにおいて、候補コードからコードを1つ選出するために演奏データを参照するまでに少なくとも発音タイミング情報と音高情報を持つ音符情報に変換できていればよい。
In the embodiment, the performance data to be input is assumed to be real-time performance data by the user. However, for example, a method of detecting chords while sequentially reproducing recorded performance data without prefetching is also conceivable. Alternatively, performance data may be input from a device such as a musical instrument connected to the outside.
The performance data input means (performance operator) is not limited to a keyboard, and may be a stringed instrument type such as a guitar. When the user's performance input sound is an audio signal, at least at each chord detection timing, it is converted into note information having at least sounding timing information and pitch information before referencing performance data to select one chord from candidate chords It only has to be done.
T1〜T3 コード検出タイミング〔T1=開始 (sTime)、T3=終了 (eTime)〕、
T2 コード検出基準位置、
PT ディグリーネーム別ポイントテーブル。
T1-T3 code detection timing [T1 = start (sTime), T3 = end (eTime)],
T2 code detection reference position,
Point table by PT degree name.
Claims (3)
調情報を取得する調情報取得手段と、
所定のコード検出タイミングにてコード検出を指示するコード検出指示手段と、
前記コード検出指示手段によりコード検出が指示されたときに、前記調情報取得手段により取得された調情報を元に候補コードを抽出する候補コード抽出手段と、
前記コード検出指示手段によりコード検出が指示されたときに、前記演奏データ取得手段により取得された演奏データから、前記コード検出タイミングに有効とみなされる音高情報を抽出する音高情報抽出手段と、
前記コード検出指示手段によりコード検出が指示されたときに、前記候補コード抽出手段により抽出された各候補コードについて、前記音高情報抽出手段により抽出された各音高情報の当該各候補コードにおける役割を識別し、識別された役割に応じて音楽的な重要度を示すポイントを抽出する役割識別及びポイント抽出手段と、
前記コード検出指示手段によりコード検出が指示されたときに、前記候補コード抽出手段により抽出された候補コード毎に、前記音高情報抽出手段により抽出された全音高情報につき、前記役割識別及びポイント抽出手段により抽出されたポイントを合計して当該各候補コードのポイント合計値を取得するポイント合計値取得手段と、
前記コード検出指示手段によりコード検出が指示されたときに、前記ポイント合計値取得手段により取得された各候補コードのポイント合計値を元に、前記候補コード抽出手段により抽出された候補コードから1つのコードを検出するコード検出手段と
を具備することを特徴とするコード検出装置。 Performance data acquisition means for acquiring performance data;
Key information acquisition means for acquiring key information;
Code detection instruction means for instructing code detection at a predetermined code detection timing;
Candidate code extraction means for extracting a candidate code based on the key information acquired by the key information acquisition means when code detection is instructed by the code detection instruction means;
Pitch information extraction means for extracting pitch information considered valid at the chord detection timing from the performance data acquired by the performance data acquisition means when the chord detection is instructed by the chord detection instruction means;
The role of each pitch information extracted by the pitch information extracting means in each candidate code for each candidate code extracted by the candidate code extracting means when code detection is instructed by the chord detection instructing means Role identifying and point extracting means for extracting points indicating musical importance according to the identified roles;
When chord detection is instructed by the chord detection instructing means, the role identification and point extraction are performed for all pitch information extracted by the pitch information extracting means for each candidate code extracted by the candidate chord extracting means. Point total value acquisition means for acquiring the point total value of each candidate code by summing the points extracted by the means;
When code detection is instructed by the code detection instruction means, one of the candidate codes extracted by the candidate code extraction means based on the point total value of each candidate code acquired by the point total value acquisition means A code detection device comprising code detection means for detecting a code.
複数のコードの夫々について優先度をポイントで示す優先ポイントを記憶する優先ポイント記憶手段
を具備し、
前記コード検出手段は、前記ポイント合計値取得手段により候補コード毎にポイント合計値を取得した際に、更に、前記優先ポイント記憶手段から、各候補コードに対応するコードの優先ポイントを取得し、取得された優先ポイントを各候補コードのポイント合計値に加算し、加算されたポイント合計値を元にコード検出を行う
ことを特徴とする請求項1に記載のコード検出装置。 further,
Priority point storage means for storing a priority point indicating the priority in points for each of a plurality of codes,
The code detecting means, when the point total value is obtained for each candidate code by the point total value obtaining means, further obtains and obtains a priority point of a code corresponding to each candidate code from the priority point storage means The code detection apparatus according to claim 1, wherein the priority point thus added is added to the point total value of each candidate code, and code detection is performed based on the added point total value.
調情報を取得する調情報取得ステップと、
所定のコード検出タイミングにてコード検出を指示するコード検出指示ステップと、
前記コード検出指示ステップでコード検出が指示されたときに、前記調情報取得ステップで取得された調情報を元に候補コードを抽出する候補コード抽出ステップと、
前記コード検出指示ステップでコード検出が指示されたときに、前記演奏データ取得ステップで取得された演奏データから、前記コード検出タイミングに有効とみなされる音高情報を抽出する音高情報抽出ステップと、
前記コード検出指示ステップでコード検出が指示されたときに、前記候補コード抽出ステップで抽出された各候補コードについて、前記音高情報抽出ステップで抽出された各音高情報の当該各候補コードにおける役割を識別し、識別された役割に応じて音楽的な重要度を示すポイントを抽出する役割識別及びポイント抽出ステップと、
前記コード検出指示ステップでコード検出が指示されたときに、前記候補コード抽出ステップで抽出された候補コード毎に、前記音高情報抽出ステップで抽出された全音高情報につき、前記役割識別及びポイント抽出ステップで抽出されたポイントを合計して当該各候補コードのポイント合計値を取得するポイント合計値取得ステップと、
前記コード検出指示ステップでコード検出が指示されたときに、前記ポイント合計値取得ステップで取得された各候補コードのポイント合計値を元に、前記候補コード抽出ステップで抽出された候補コードから1つのコードを検出するコード検出ステップと
から成る手順をコンピュータに実行させるコード検出プログラム。 A performance data acquisition step for acquiring performance data;
Key information acquisition step for acquiring key information;
A code detection instruction step for instructing code detection at a predetermined code detection timing;
A candidate code extraction step of extracting a candidate code based on the key information acquired in the key information acquisition step when code detection is instructed in the code detection instruction step;
When pitch detection is instructed in the chord detection instruction step, pitch information extraction step for extracting pitch information regarded as valid at the chord detection timing from the performance data acquired in the performance data acquisition step;
Role of each pitch information extracted in the pitch information extraction step in each candidate code for each candidate code extracted in the candidate code extraction step when code detection is instructed in the chord detection instruction step A role identification and point extraction step for extracting points indicating musical importance according to the identified roles;
When chord detection is instructed in the chord detection instructing step, the role identification and point extraction are performed for all pitch information extracted in the pitch information extracting step for each candidate code extracted in the candidate chord extracting step. A point total value acquisition step of totaling the points extracted in the step to acquire the point total value of each candidate code;
When code detection is instructed in the code detection instruction step, one of the candidate codes extracted in the candidate code extraction step is selected based on the point total value of each candidate code acquired in the point total value acquisition step. A code detection program for causing a computer to execute a procedure comprising a code detection step for detecting a code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010245736A JP5696435B2 (en) | 2010-11-01 | 2010-11-01 | Code detection apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010245736A JP5696435B2 (en) | 2010-11-01 | 2010-11-01 | Code detection apparatus and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015022861A Division JP5825449B2 (en) | 2015-02-09 | 2015-02-09 | Code detection device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012098480A JP2012098480A (en) | 2012-05-24 |
JP5696435B2 true JP5696435B2 (en) | 2015-04-08 |
Family
ID=46390454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010245736A Expired - Fee Related JP5696435B2 (en) | 2010-11-01 | 2010-11-01 | Code detection apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5696435B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2772904B1 (en) | 2013-02-27 | 2017-03-29 | Yamaha Corporation | Apparatus and method for detecting music chords and generation of accompaniment. |
JP6500869B2 (en) | 2016-09-28 | 2019-04-17 | カシオ計算機株式会社 | Code analysis apparatus, method, and program |
JP6500870B2 (en) | 2016-09-28 | 2019-04-17 | カシオ計算機株式会社 | Code analysis apparatus, method, and program |
JP7425558B2 (en) * | 2019-08-07 | 2024-01-31 | 株式会社河合楽器製作所 | Code detection device and code detection program |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5887593A (en) * | 1981-11-20 | 1983-05-25 | リコーエレメックス株式会社 | Chord adding apparatus |
IT1255446B (en) * | 1991-02-25 | 1995-10-31 | Roland Europ Spa | APPARATUS FOR THE RECOGNITION OF CHORDS AND RELATED APPARATUS FOR THE AUTOMATIC EXECUTION OF MUSICAL ACCOMPANIMENT |
JP2768233B2 (en) * | 1993-08-26 | 1998-06-25 | ヤマハ株式会社 | Electronic musical instrument |
US6057502A (en) * | 1999-03-30 | 2000-05-02 | Yamaha Corporation | Apparatus and method for recognizing musical chords |
JP2005173490A (en) * | 2003-12-15 | 2005-06-30 | Yamaha Corp | Code progress data generating system and program |
-
2010
- 2010-11-01 JP JP2010245736A patent/JP5696435B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012098480A (en) | 2012-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9117432B2 (en) | Apparatus and method for detecting chord | |
US8324493B2 (en) | Electronic musical instrument and recording medium | |
US20130305907A1 (en) | Accompaniment data generating apparatus | |
JP5605040B2 (en) | Electronic musical instruments | |
JP5293710B2 (en) | Key judgment device and key judgment program | |
JP5040927B2 (en) | Performance learning apparatus and program | |
JP5696435B2 (en) | Code detection apparatus and program | |
JP6977741B2 (en) | Information processing equipment, information processing methods, performance data display systems, and programs | |
JP5061926B2 (en) | Electronic music apparatus and performance data editing display program | |
JP2008089975A (en) | Electronic musical instrument | |
JP5825449B2 (en) | Code detection device | |
JP4670686B2 (en) | Code display device and program | |
JP2007163710A (en) | Musical performance assisting device and program | |
JP5909967B2 (en) | Key judgment device, key judgment method and key judgment program | |
JP5703693B2 (en) | Code detection apparatus and program | |
JP2010117419A (en) | Electronic musical instrument | |
JP4735969B2 (en) | Accompaniment display device and program | |
JP6554826B2 (en) | Music data retrieval apparatus and music data retrieval program | |
JP3632487B2 (en) | Chord detection device for electronic musical instruments | |
JP7425558B2 (en) | Code detection device and code detection program | |
JP6658785B2 (en) | Automatic accompaniment method and automatic accompaniment device | |
JP2018146716A (en) | Training device, training program, and training method | |
JP5564921B2 (en) | Electronic musical instruments | |
JP2007072387A (en) | Music performance assisting device and program | |
JP2016191855A (en) | Genre selection device, genre selection method, program and electronic musical instrument |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130920 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140520 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140717 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20141215 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141218 |
|
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: 20150113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150126 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5696435 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |