JP2995772B2 - Music part generator - Google Patents

Music part generator

Info

Publication number
JP2995772B2
JP2995772B2 JP1341508A JP34150889A JP2995772B2 JP 2995772 B2 JP2995772 B2 JP 2995772B2 JP 1341508 A JP1341508 A JP 1341508A JP 34150889 A JP34150889 A JP 34150889A JP 2995772 B2 JP2995772 B2 JP 2995772B2
Authority
JP
Japan
Prior art keywords
melody
rhythm
sub
time
chord
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
JP1341508A
Other languages
Japanese (ja)
Other versions
JPH03203789A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP1341508A priority Critical patent/JP2995772B2/en
Priority to US07/588,050 priority patent/US5235125A/en
Publication of JPH03203789A publication Critical patent/JPH03203789A/en
Priority to US08/007,119 priority patent/US5331112A/en
Application granted granted Critical
Publication of JP2995772B2 publication Critical patent/JP2995772B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] この発明は音楽装置に関し、特に楽曲の主旋律に付加
される副旋律を自動的に生成する楽曲パート生成装置に
関する。
Description: TECHNICAL FIELD [0001] The present invention relates to a music apparatus, and more particularly to a music part generation apparatus that automatically generates a sub melody added to a main melody of a music piece.

[従来技術とその問題点] カウンタメロディ、オブリガード、ベースライン、ア
ルペジオ等の伴奏ラインないし副旋律を自動的に生成す
る自動伴奏装置は既知である。この種の自動伴奏装置は
電子楽器に一機能として組み込まれてきており、代表的
にはメロディ鍵盤からメロディ(主旋律)を演奏入力
し、伴奏鍵盤からコード進行を指定入力すると、内部で
副旋律が生成され、音源を通して主旋律の楽音とともに
副旋律の楽音が出力されるようになっている。
[Prior art and its problems] There is known an automatic accompaniment apparatus for automatically generating an accompaniment line or a sub-melody such as a counter melody, an obligato, a base line, an arpeggio, and the like. This type of automatic accompaniment device has been incorporated into electronic musical instruments as a function. Typically, when a melody (main melody) is input from a melody keyboard and a chord progression is designated and input from an accompaniment keyboard, a sub melody is internally generated. The generated musical sound is output through the sound source along with the musical sound of the main melody along with the musical sound of the sub melody.

副旋律の生成に関して、従来技術は装置内部の、副旋
律の基礎となるパターン(伴奏パターンと呼ばれてい
る)を有している。基本的に、伴奏パターンは時間(水
平、リズム、音長)の成分、即ちリズムパターンと、音
高(垂直)の成分、即ちピッチパターンとから構成され
る。多くの場合、自動伴奏装置の入力装置から指定され
るリズム別に、伴奏パターンが用意されており、したが
って、いったんリズムが指定されると、伴奏のリズムパ
ターン(音長列)は固定され、主旋律の如何によって自
動的に変化せず、自動伴奏について機械的な印象を与え
る要因となっている。
With respect to the generation of the sub melody, the prior art has a pattern (referred to as an accompaniment pattern) inside the device, which is the basis of the sub melody. Basically, an accompaniment pattern is composed of a time (horizontal, rhythm, pitch) component, ie, a rhythm pattern, and a pitch (vertical) component, ie, a pitch pattern. In many cases, accompaniment patterns are prepared for each rhythm specified from the input device of the automatic accompaniment device. Therefore, once a rhythm is specified, the rhythm pattern (length sequence) of the accompaniment is fixed, and the main melody of the main melody is fixed. It does not change automatically depending on how it is, and is a factor that gives a mechanical impression about automatic accompaniment.

[発明の目的] したがって、この発明の目的は、コード進行のみなら
ず主旋律の変化に応じてリズムや音高が変化するような
副旋律を生成可能な楽曲パート生成装置を提供すること
である。更に、この発明の目的は、主旋律の演奏のタイ
ミングのずれ等を補償した副旋律を生成可能な楽曲パー
ト生成装置を提供することである。
[Object of the Invention] Accordingly, an object of the present invention is to provide a music part generation device capable of generating a sub melody whose rhythm and pitch change in accordance with a change in the main melody as well as a chord progression. It is a further object of the present invention to provide a music part generation device capable of generating a sub melody that compensates for a shift in timing of the performance of the main melody.

[発明の構成、作用] この発明によれば、楽曲の主旋律の情報を付与する主
旋律付与手段と、上記楽曲のコード進行の情報を付与す
るコード進行付与手段と、上記主旋律に付加する副旋律
を生成する副旋律生成手段と、を備え、上記副旋律生成
手段は、(A)上記主旋律の情報をリズム量子化するリ
ズム量子化手段と、(B)リズム量子化された主旋律の
情報のなかで現時点に対し所定の時間差をもつ時点にお
ける主旋律リズムを副旋律の現時点におけるリズムとし
て決定する副旋律リズム決定手段と、(C)リズム量子
化された主旋律の情報のなかで現時点に対し上記所定の
時間差をもつ時点における主旋律音高と上記コード進行
における現コードの情報とに基づき副旋律の現時点にお
ける音高を決定する副旋律音高決定手段と、を有する、
ことを特徴とする楽曲パート生成装置が提供される。
According to the present invention, a main melody providing means for providing information on a main melody of a music piece, a chord progression providing means for providing information on a chord progression of the music piece, and a sub melody added to the main melody. A sub melody generating means for generating the melody, wherein the sub melody generating means comprises: (A) a rhythm quantizing means for rhythm quantizing the information of the main melody; and (B) a rhythm quantized main melody information. A sub-melody rhythm determining means for determining the main melody rhythm at a time point having a predetermined time difference from the current time as the current rhythm of the sub melody; and (C) the predetermined time difference from the current time in the rhythm-quantized main melody information Sub-melody pitch determining means for determining the current pitch of the sub-melody based on the main melody pitch at the point in time and the information of the current chord in the chord progression. ,
A music part generation device is provided.

この構成によれば、主旋律のリズムを時間的にシフト
することで副旋律のリズムが得られるので、副旋律の内
容を主旋律に依存させて多様に変化させることができ
る。更に、副旋律のリズムとなるのは、主旋律のリズム
をそのまま反復させたものではなく、主旋律のリズムを
リズム量子化手段によって量子化したものであり、した
がって、主旋律の演奏に好ましくない演奏タイミングの
ずれが含まれる場合にも、それが副旋律上に現われない
ようにすることができる。
According to this configuration, the rhythm of the main melody can be obtained by shifting the rhythm of the main melody in time, so that the contents of the sub melody can be changed variously depending on the main melody. Furthermore, the rhythm of the sub melody is not the rhythm of the main melody as it is, but the rhythm of the main melody quantized by the rhythm quantizing means. Even when a deviation is included, it can be prevented from appearing on the secondary melody.

更に、副旋律の現音高を現時点から所定の時間差をも
つ時点における主旋律音高とコード進行の現コードとに
基づいて定めているので、副旋律のメロディをコード進
行と主旋律の変化に応じて多様に変化させることができ
る。
Further, since the current pitch of the secondary melody is determined based on the pitch of the primary melody at the time having a predetermined time difference from the current time and the current chord of the chord progression, the melody of the secondary melody is changed according to the chord progression and the change of the main melody. Various changes can be made.

上記の構成に加え、主旋律付与手段からの主旋律の情
報をリズム量子化することなく楽音として出力するとと
もに副旋律生成手段からの副旋律の情報を楽音として出
力する楽音出力手段を設けるることができる。この場
合、主旋律の方は演奏タイミングが意図的にずれている
ような場合でもそのまま楽音として演奏出力されるのに
対し、副旋律の方はリズム量子化された形式で演奏出力
されるので、主旋律リズムと副旋律リズムとの間に微妙
な差のあるリアルな音楽を提供することができる。
In addition to the above configuration, it is possible to provide a tone output unit that outputs information of the main melody from the main melody providing unit as a musical tone without rhythm quantization and outputs information of the sub melody from the sub melody generating unit as a musical tone. . In this case, the main melody is output as a musical tone even when the performance timing is intentionally shifted, whereas the sub melody is output in a rhythm-quantized form. It is possible to provide realistic music with a slight difference between the rhythm and the sub melody rhythm.

[実施例] 以下、図面を参照してこの発明の実施例を説明する。Embodiment An embodiment of the present invention will be described below with reference to the drawings.

概要を述べると、本実施例は鍵盤タイプの電子楽器に
組み込まれており、メロディ鍵盤から主旋律(メロデ
ィ)の演奏情報が入力され、音源を通してリアルタイム
でその楽音が演奏出力される。一方、伴奏鍵盤からコー
ド進行の情報が入力され、その入力プロセスにおいて逐
次、指定されるコードが検出される。副旋律はそのリズ
ムが過去のメロディのリズムによって生成される。ここ
に、副旋律のリズムは、過去(後述するフローでは1小
節前)の主旋律のリズムをそのまま反復するのではな
く、主旋律のリズム情報(音価情報)を量子化して生成
される。このリズム量子化機能はそれがない場合に生じ
る単純な繰り返しによるリズムの不自然さを解消するの
に役立つ。また副旋律のピッチラインは、現音高を1小
節前のメロディ音高に一番近い現コードのコード構成音
とすることによって生成される。生成された副旋律も音
源を通して楽音として出力され、カノン的な演奏効果が
実現される。
In brief, the present embodiment is incorporated in a keyboard-type electronic musical instrument, in which performance information of a main melody (melody) is input from a melody keyboard, and the musical tone is output in real time through a sound source. On the other hand, chord progression information is input from the accompaniment keyboard, and a designated chord is detected sequentially in the input process. In the sub melody, the rhythm is generated by the rhythm of the past melody. Here, the rhythm of the sub melody is generated by quantizing the rhythm information (sound value information) of the main melody, instead of repeating the rhythm of the main melody in the past (one bar before in the flow described later). This rhythm quantization function helps to eliminate the unnatural rhythm caused by simple repetition that would otherwise occur. The pitch line of the sub melody is generated by setting the current pitch to be the chord component sound of the current chord closest to the melody pitch one bar before. The generated secondary melody is also output as a musical tone through the sound source, and a canon-like performance effect is realized.

第1図に本実施例に係る電子楽器1の全体構成を示
す。鍵盤2はこの実施例のために、主旋律(メロディ)
を入力するための メロディ鍵盤と逐次コードを指定し
てコード進行を入力するための伴奏鍵盤とに分割されて
いる。これは一段の鍵盤を鍵域によって分割するか、2
段の鍵盤のそれぞれをメロディ鍵盤と伴奏鍵盤とに割り
当てることで実現される。RAM3はCPU4の作業領域として
使用され、各種の変数が一時記憶される。ROM5にはプロ
グラムやコード構成音テーブル等が置かれる。音源6は
CPU4からの制御の下に楽音を発生する。後述するよう
に、この実施例の動作において、音源6を通してメロデ
ィ鍵盤からのメロディ演奏に係る楽音とともにこの実施
例に従って自動生成された副旋律演奏に係る楽音が生成
され、出力される。
FIG. 1 shows the overall configuration of an electronic musical instrument 1 according to the present embodiment. The key 2 is a main melody for this embodiment.
It is divided into a melody keyboard for inputting a chord and an accompaniment keyboard for inputting a chord progression by designating a sequential chord. This can be done by dividing a single key by range,
This is realized by assigning each of the keys of the row to a melody keyboard and an accompaniment keyboard. The RAM 3 is used as a work area of the CPU 4, and various variables are temporarily stored. The ROM 5 stores programs, code configuration sound tables, and the like. Sound source 6
Generates music under the control of CPU4. As will be described later, in the operation of this embodiment, along with the musical tone relating to the melody performance from the melody keyboard through the sound source 6, a musical tone relating to the sub-melody performance automatically generated according to this embodiment is generated and output.

第2図に実施例の動作においてCPU4により参照され、
使用される主な変数のリストを示している。Tは現在時
刻を表わす変数である。詳細には時刻変数Tは1小節を
複数のタイムスロット(例えば96のタイムスロット)に
分けた場合のタイムスロット、即ち、小節内のタイミン
グを表現する。CRは現在コードの根音を表現する変数で
あり、CTは現在コードのタイプを表現する変数であり、
この両変数CRとCTにより、現コードが表わされる。この
現在コードの情報(CR、CT)は伴奏鍵盤から新しいコー
ドが指定される都度、更新されるようになっている。EL
は現在の副旋律の音高を表わす変数ないしレジスタであ
る。MD0[ ]はメロディ音データを格納する配列であ
り、ここでは現在から1小節前までのメロディ情報を格
納するために、小節の分解能96に等しい要素から構成さ
れ、CPU4により、小節の先頭の音高が配列MD0[ ]の
先頭に位置し、小節の最後の音高が配列MD0[ ]の最
後に位置するように配列への記憶処理が小節の分解能を
単位としてサイクリックに行われる。MD1[ ]はメロ
ディ音格納配列MD0[ ]に含まれる音価情報をリズム
量子化したメロディデータを記憶する配列である。CKT
[ ]はコード構成音テーブルであり、その具体例が第
4図に示される。
FIG. 2 is referred to by the CPU 4 in the operation of the embodiment,
Shows a list of the main variables used. T is a variable representing the current time. Specifically, the time variable T represents a time slot when one bar is divided into a plurality of time slots (for example, 96 time slots), that is, a timing in a bar. CR is a variable expressing the root of the current chord, CT is a variable expressing the type of the current chord,
The current code is represented by these two variables CR and CT. The current chord information (CR, CT) is updated each time a new chord is designated from the accompaniment keyboard. EL
Is a variable or register that represents the pitch of the current secondary melody. MD0 [] is an array for storing the melody sound data. Here, in order to store the melody information from the present to the previous bar, it is composed of elements equal to the resolution 96 of the bar. The storage processing in the array is performed cyclically in units of the bar resolution so that the pitch is located at the beginning of the array MD0 [] and the last pitch of the bar is located at the end of the array MD0 []. MD1 [] is an array for storing melody data obtained by rhythm-quantizing the sound value information included in the melody sound storage array MD0 []. CKT
[] Is a chord constituent sound table, a specific example of which is shown in FIG.

第2図には各変数のタイプも示されている。現在時刻
Tは変数のタイプが整数である。現在コードタイプCTは
変数のタイプがコードタイプとなっており、その他の変
数はメロディタイプの変数となっている。ここにいうコ
ードタイプとメロディタイプの変数の意味は第3図に定
義される通りである。即ち、メロディタイプの変数は数
値“−1"がoff、すなわち音の無い状態を表わし、数値
“0"が音高C2を表わし、以下、半音上るごとに1だけイ
ンクリメントする数値で各々の音高C#2、D2、D#2
……を表現している。
FIG. 2 also shows the type of each variable. The current time T has an integer variable type. At present, the code type CT has a variable type as a code type, and the other variables are melody type variables. The meanings of the chord type and melody type variables are as defined in FIG. That is, the melody type variable is such that the numerical value “−1” indicates off, that is, no sound, the numerical value “0” indicates the pitch C2, and thereafter, each pitch is incremented by 1 every semitone. C # 2, D2, D # 2
…… is expressed.

一方、コードタイプの変数は数値“0"が例えばメジャ
ー(maj)のコードタイプ、“1"がマイナー(min)のコ
ードタイプ、“2"がマイナーセブン(min7)のコードタ
イプ、“3"がメジャーセブン(maj7)のコードタイプと
いうように、数値ごとに異なるコードタイプを表現する
ことができる。第4図のコード構成音テーブルCKT
[ ]はこのコードタイプの変数の値を引数の1つとす
る配列であり、特に、ここでは、形式上、各コードは4
つの構成音から成るものとして各コードのために4つの
連続する配列要素(記憶エリア)を確保し、実際の構成
音数に合わせて、配列要素の内容を調整し、例えば3つ
の構成音をもつコードに対しては、4つの配列要素の1
つをoff(数値“−1")にマスクしている。第4図にお
いて、配列要素の内容は第3図の定義に従うと、例えば
“0"はC2の音高、4はE2の音高、“7"はG2の音高とな
る。実際には、“0"以上の数値はコード根音からの音高
の差(音程)を表現していると考える方がわかりやす
い。例えば、0、4、7は夫々、コード根音(と等しい
高さの音)、コード根音から長3度上の音、コード根音
から完全5度上の音を表わし、したがって、メジャーの
コードを構成する。具体的(絶対的)なコード構成音の
音高表現は、コードの根音の絶対値が与えられたとき
に、この根音の絶対値(例えばD2を表わす数値2)をコ
ード構成音テーブルの各コードの音程データ(メジャー
であれば、0、4、7)に加えることによって得られ
る。
On the other hand, for the code type variables, the numerical value “0” is, for example, a major (maj) code type, “1” is a minor (min) code type, “2” is a minor seven (min7) code type, and “3” is Different chord types can be represented for each numerical value, such as major seven (maj7) chord types. Chord composition sound table CKT of FIG.
[] Is an array in which the value of a variable of this code type is one of the arguments.
Four consecutive array elements (storage areas) are reserved for each chord as being composed of three constituent sounds, and the contents of the array elements are adjusted according to the actual number of constituent sounds. For the code, one of the four array elements
One is masked to off (numerical value “−1”). In FIG. 4, for example, "0" is the pitch of C2, 4 is the pitch of E2, and "7" is the pitch of G2 according to the definition of FIG. Actually, it is easier to understand that a numerical value equal to or greater than "0" represents a pitch difference (pitch) from the chord root. For example, 0, 4, and 7 respectively represent a chord root (a note of the same pitch), a major third above the chord root, and a full fifth above the chord root, and thus the major Configure the code. A specific (absolute) pitch expression of a chord constituent sound is such that when an absolute value of a root note of a chord is given, the absolute value of this root note (for example, a numerical value 2 representing D2) is stored in a chord constituent sound table. It is obtained by adding to the pitch data of each chord (0, 4, 7 if major).

第5図は実施例の動作のメインルーチンを示す。メイ
ンルーチンでは鍵盤2からの鍵情報を検出する鍵処理5
−1と音源6を制御する音源処理5−2を行う。ただ
し、音源処理5−2で行う発音と消音の対象はメロディ
鍵盤からの鍵情報したがった主旋律であり副旋律に対す
る発音と消音の処理は第6図に示す時間インタラプトル
ーチンのなかで行っている。
FIG. 5 shows a main routine of the operation of the embodiment. In the main routine, key processing 5 for detecting key information from the keyboard 2
-1 and the sound source processing 5-2 for controlling the sound source 6 is performed. However, the target of sound generation and mute performed in the sound source processing 5-2 is the main melody according to the key information from the melody keyboard, and the sound generation and mute processing for the sub melody is performed in the time interrupt routine shown in FIG.

第6図の時間インタラプトルーチンは本装置の音楽時
間分解能、例えば、96分の1小節ごとに起動される。最
初に現在時刻Tをインクリメントし(6−1)、その値
が95を超えて1小節が経過したことが示されたときには
Tから96を引く(6−2、6−3)。そして、この時点
で、1小節分のメロディ格納配列MD0[ ]のリズム情
報を量子化し(6−4)、その結果をリズム量子化メロ
ディ格納配列MD1[ ]に写し取る(6−5)。結果と
して、配列MD1[ ]の内容は、メロディ格納配列MD0
[ ]をリズム量子化した1小節前のメロディ情報を含
むことになる。次に、6−6で現コードを伴奏鍵盤から
の鍵情報から検出するコード処理を行う。続いて6−7
で副旋律処理を行い、6−8でメロディの記憶処理を行
う。
The time interrupt routine of FIG. 6 is started at the music time resolution of the present apparatus, for example, every 1/96 bar. First, the current time T is incremented (6-1), and when it is indicated that one bar has elapsed since the value has exceeded 95, 96 is subtracted from T (6-2, 6-3). At this point, the rhythm information of the melody storage array MD0 [] for one measure is quantized (6-4), and the result is copied to the rhythm quantization melody storage array MD1 [] (6-5). As a result, the contents of the array MD1 [] are stored in the melody storage array MD0.
This includes the melody information one bar before the rhythm of [] is quantized. Next, in step 6-6, a chord process for detecting the current chord from key information from the accompaniment keyboard is performed. Then 6-7
Performs the sub melody processing, and performs the melody storage processing in 6-8.

コード処理6−6の詳細は第7図に示すようになって
おり、伴奏鍵盤の押鍵からコードのタイプと根音を周知
の仕方で判定し(7−1)、その結果をタイプCTと根音
CRにストアする(7−2)ことで行われる。
The details of the chord processing 6-6 are as shown in FIG. 7. The chord type and the root note are determined in a well-known manner from the key depression of the accompaniment keyboard (7-1). Root
This is performed by storing in the CR (7-2).

また、メロディ記憶処理6−8では第9図に示すよう
に、メロディ鍵盤で押鍵されている音(ノート)を現在
時刻Tのメロディ格納配列要素MD0[T]にストアする
(9−1)。
In the melody storage processing 6-8, as shown in FIG. 9, the sound (note) pressed on the melody keyboard is stored in the melody storage array element MD0 [T] at the current time T (9-1). .

第8図は副旋律処理6−6のフローチャートであり、
8−1で1小節前のリズム量子化メロディ配列要素MD1
[T]がoffかどうかを判別し、offであれば副旋律音を
消音し(8−2)、そうでなければ副旋律発音処理(8
−3)を行う。ここに、8−1で参照される配列要素MD
1[ ]には、リズム量子化処理が施された1小節前の
メロディ音データが記憶されている。したがって、8−
2、8−3に示すようにこのメロディ音データが音の無
い状態を示しているときに副旋律消音処理を行い、音の
有る状態のときに副旋律発音処理を行うことにより、副
旋律のリズムをリズムが量子化された形式で1小節遅れ
でメロディのリズムに追従させることができる。
FIG. 8 is a flowchart of the sub melody processing 6-6,
8-1 rhythm quantization melody array element MD1 one bar before
It is determined whether or not [T] is off. If it is off, the sub melody tone is muted (8-2).
Perform -3). Here, the array element MD referenced in 8-1
1 [] stores the melody sound data of one bar before subjected to the rhythm quantization processing. Therefore, 8-
As shown in 2, 8-3, when the melody sound data indicates a state without sound, a sub melody mute process is performed, and when a melody sound data exists, a sub melody sounding process is performed. The rhythm can be made to follow the melody rhythm with a delay of one measure in a form in which the rhythm is quantized.

副旋律発音処理8−3の詳細は第10図に示される。ま
ず、10−1で現コードの指定の有無を判別する。CR=of
fならば、コード指定なしなのでなにもしない。指定あ
りのときは、10−2、10−3、10−4の副旋律用コード
構成音検索処理ループにおいて、該当するコード構成音
を見つけ出す。ここではリズム量子化された配列MD
[ ]から取った1小節前のメロディ音高MD1[T]に
最も近いコード構成音を現在の副旋律音高とする論理を
採用している。そのため、10−2、10−4に示すよう
に、1小節前のメロディ音高MD1[T]を半音ずつ下げ
ながら、逐次、それ(変数iで示されている)がコード
構成音かどうかを10−3でチェックしている。候補音高
iがコード構成音かどうかの検査は第11図のフローに従
って行われる。コード構成音テーブル(第4図)におい
て、各コードの構成音は形式上、4つの連続する配列要
素に置かれている。従って、現在のコードのタイプCTに
4を乗じることで、コード構成音テーブル上で、現コー
ドのタイプのコードの最初のコード構成音が置かれる位
置Aが計算される(11−1)。相対位置jを0から4ま
で動かす間において(11−2〜11−7)、逐次、コード
構成音の音高CKT[A+j]に現コードの根音の高さCR
を加えたものにmod12をとることで、そのコード構成音
の音高クラス×1(CからBの1つ)を求め(11−
3)、同様にして、音高候補iの音高クラス×2を求め
(11−4)、この2つの音高クラスの比較を行い(11−
5)、一致すれば、音高候補iを1小節前のメロディ音
高に一番近いコード構成音として認めてフローを抜け、
不一致ならば相対位置jを次の位置に移動させる(11−
6)。
Details of the sub melody pronunciation processing 8-3 are shown in FIG. First, it is determined at 10-1 whether or not the current code is specified. CR = of
If f, do nothing because no code is specified. If specified, the corresponding chord constituent sound is found in the sub-melody chord constituent sound search processing loop of 10-2, 10-3, and 10-4. Here is the rhythm quantized array MD
A logic is adopted in which the chord constituent sound closest to the melody pitch MD1 [T] one bar before, taken from [], is used as the current sub-melody pitch. Therefore, as shown in 10-2 and 10-4, the melody pitch MD1 [T] one measure before is lowered by a semitone, and it is sequentially determined whether or not it (shown by the variable i) is a chord constituent sound. Checked in 10-3. A check as to whether or not the candidate pitch i is a chord constituent sound is performed according to the flow of FIG. In the chord constituent sound table (FIG. 4), the constituent sounds of each chord are formally arranged in four consecutive array elements. Therefore, by multiplying the current chord type CT by 4, a position A where the first chord constituent sound of the chord of the current chord type is placed on the chord constituent sound table is calculated (11-1). While moving the relative position j from 0 to 4 (11-2 to 11-7), the pitch CKT [A + j] of the chord constituent sound is successively changed to the root pitch CR of the current chord.
The pitch class of the constituent sound of the chord × 1 (one from C to B) is obtained by taking mod12 to the sum of (11−
3) Similarly, the pitch class × 2 of the pitch candidate i is obtained (11-4), and the two pitch classes are compared (11-).
5) If they match, the pitch candidate i is recognized as the chord constituent sound closest to the melody pitch one measure before, and the flow exits.
If they do not match, the relative position j is moved to the next position (11-
6).

第10図に戻り、リズム量子化された1小節前のメロデ
ィ音高MD[T]に最も近いコード構成音iが検出される
と、10−5で、それが前回の副旋律の音高ELと同一かど
うか調べられる。同一ならばなにもせずにフローに抜け
る。これにより同一音の再発音を防止する。一方、異な
るときには10−6でこの音高iをもつ副旋律音を発音し
(10−6)、この音高iを現在の副旋律音高ELとして記
憶する(10−7)。
Returning to FIG. 10, when the chord component sound i closest to the melody pitch MD [T] one bar before the rhythm quantization is detected, the pitch EL of the previous sub-melody is detected at 10-5. Is checked for the same as If they are the same, exit to the flow without doing anything. This prevents re-sounding of the same sound. On the other hand, if different, a sub-melody tone having this pitch i is pronounced at 10-6 (10-6), and this pitch i is stored as the current sub-melody pitch EL (10-7).

リズム量子化処理6−4の詳細を第12図に示す。この
処理の目的は、副旋律のためにメロディ格納配列MD0
[ ]に記憶されるメロディ情報のリズムを量子化する
ことである。このために、1小節のなかで、複数の所定
の離散的な音楽時刻でのみ、副旋律のノートオンを発生
可能とし、離散的な時刻からはずれたメロディのノート
オンを適当な離散的時刻に変更(量子化)している。こ
こでは、離散的な音楽時刻として、1小節を8等分する
位置を採用しており、メロディ格納配列MD0[ ]から
検出した実際の時刻を最も近い離散的時刻に量子化して
いる。第12図のフローに従うと、まず12−1で、実際の
演奏から得たメロディの配列MD0[ ]に対するアドレ
スポインタiを配列の先頭“0"に初期化する。そして、
ポインタiを0〜clk(=96、1小節メロディ格納配列M
D0[ ]のサイズ)だけ動かしながら(12−15、12−1
6)、ポインタiの示すメロディ格納配列MD0[i]がof
fではなく、ある音高を示し(12−2)、ポインタiが
配列MD0[ ]の2番目以降を指していて(12−3)、M
D0[i]の音高が1つ前のメロディ格納配列要素MD0
[i−1]のデータと異なる音高を示していること(12
−4)を条件として、メロディ格納配列MD0[ ]上に
おけるノートオンの時刻iを検出する。ノートオンを検
出したときには、12−5に示すように、離散時刻の間隔
l(=clk/8)と、検出したノートオン時刻iとこの時
刻iより1つ前の離散時刻との間の時間のずれa1(=im
odl)と、1つ前の離散時刻P1(=i−al)と、1つ後
の離散時刻P2(=P1+l)とを算出する。そして、時間
のずれa1と離散時刻間隔lの半分(l/2)との大小を比
較する(12−6)。a1<l/2のときは、ノートオンの時
刻を1つ手前の離散時刻P1に変更する(量子化)する。
このために、検出ノートオン時刻iをjレジスタに移し
(12−7)、j=P1〜iの間(12−8、12−10)にある
メロディ配列要素に、検出したノートオンの音高データ
MDO[i]を書き込む(12−9)。a1≧l/2のときはノー
トオンの時刻を1つ後の離散時刻P2に変更する。このた
め、検出ノートオン時刻iをjレジスタに移し(12−1
1)、j=i〜P2−1の間(12−12、12−14)にあるメ
ロディ配列要素に全てoffを書き込む。
FIG. 12 shows details of the rhythm quantization process 6-4. The purpose of this processing is to add the melody storage array MD0
This is to quantize the rhythm of the melody information stored in []. For this reason, note-on of the sub melody can be generated only at a plurality of predetermined discrete music times within one bar, and the note-on of the melody deviating from the discrete time is changed to an appropriate discrete time. It has been changed (quantized). Here, a position where one measure is equally divided is adopted as the discrete music time, and the actual time detected from the melody storage array MD0 [] is quantized to the closest discrete time. According to the flow of FIG. 12, first, at 12-1, the address pointer i for the melody array MD0 [] obtained from the actual performance is initialized to the head "0" of the array. And
Pointer i is set to 0 to clk (= 96, 1 bar melody storage array M
(D0 [] size) (12-15, 12-1)
6) The melody storage array MD0 [i] indicated by the pointer i is of
Instead of f, it indicates a certain pitch (12-2), and the pointer i points to the second and subsequent rows of the array MD0 [] (12-3).
Melody storage array element MD0 where the pitch of D0 [i] is one before
A pitch different from the data of [i-1] is indicated (12
-4), the note-on time i on the melody storage array MD0 [] is detected. When a note-on is detected, as shown in 12-5, a discrete time interval 1 (= clk / 8) and a time between the detected note-on time i and the discrete time immediately before this time i Deviation a1 (= im
odl), the previous discrete time P1 (= i-al), and the next discrete time P2 (= P1 + 1) are calculated. Then, the magnitude of the time lag a1 and the half (l / 2) of the discrete time interval l are compared (12-6). If a1 <l / 2, the note-on time is changed to the immediately preceding discrete time P1 (quantization).
For this purpose, the detected note-on time i is transferred to the j register (12-7), and the pitch of the detected note-on is added to the melody array element between j = P1 to i (12-8, 12-10). data
Write MDO [i] (12-9). When a1 ≧ l / 2, the note-on time is changed to the next discrete time P2. For this reason, the detected note-on time i is moved to the j register (12-1).
1) Write off to all melody array elements between j = i and P2-1 (12-12, 12-14).

このようにして、実際の演奏によるメロディデータを
記憶するメロディ配列MD0[ ]上において、各ノート
オンのタイミングが、最寄の離散時刻に量子化される。
上述したように、リズム量子化されたメロディデータは
配列MD1[ ]に移され(6−5)、この配列MD1[ ]
をデータを参照して副旋律処理6−7が行われる。結果
として、生成される副旋律のリズムはリズムを量子化し
たメロディのリズムから1小節遅れたものとなり、微妙
なリズムコントラストの付いたカノン的効果が得られ
る。
In this way, on the melody array MD0 [] that stores the melody data of the actual performance, the timing of each note-on is quantized to the nearest discrete time.
As described above, the melody data subjected to the rhythm quantization is transferred to the array MD1 [] (6-5), and this array MD1 []
The sub melody processing 6-7 is performed with reference to the data. As a result, the generated rhythm of the sub melody is one bar behind the rhythm of the melody obtained by quantizing the rhythm, and a Canon effect having a subtle rhythm contrast is obtained.

[変形例] 以上で実施例の説明を終えるが、この発明の範囲内で
種々の変形、変更が容易である。
[Modifications] Although the description of the embodiments has been finished above, various modifications and changes are easy within the scope of the present invention.

例えば、上記実施例のリズム量子化では、検出したノ
ートオンの時刻のみを変更し、ノートオフの時刻は変更
していないが、ノートオンとノートオフの両方の時刻を
変更して、ノートの持続時間が維持されるように処理を
行ってもよい。その例を第13図〜第19図に示す。概要を
述べると、この処理は、例えば、1小節の半分(例えば
2拍)の時間が経過するごとに行われる。最初に、メロ
ディ配列MD[ ]の先頭(現在から例えば1小節前のデ
ータ)から2拍あるいは2拍プラス8分のところまでに
あるノートオン時刻を検出して、配列X[ ]を作成す
る。配列X[ ]はj=0mod3のアドレスに配列MD
[ ]から検出したノートオン時刻、その次のアドレス
j(=1mod3)にノートオンの持続時間、次のアドレス
j(=2mod3)にノートナンバー(音高)を記憶する。
第14図において、メロディ配列MD[ ]に対するポイン
タiはlast位置から、メロディ配列MD[ ]の3拍目の
頭の要素がオフのときには、3拍目の頭の位置まで動か
される。この間に、ノートオンが検出される都度、その
時刻Kが記憶され、その持続時間TIMEが計測され、結果
がXバッファ(X[j]=ノートオン時刻、X[j+
1]=持続時間、X[j+2]=ノートナンバーにスト
アされる。3拍目の頭がオンのときは、1/8延長検査に
おいて更に、メロディ配列MD[ ]を検索して、最後の
ノートがノートオフに変化する位置を捜し、見つかった
場合に最後のノート確定(FC=0)として検索を打ち切
る。また、3拍目の頭から8分まで検索を続けてもノー
トオフに変化しなかった場合は、最後のノートの持続時
間が未確定(FC=1)として探索を打ち切る。この未確
定のときには、2拍後に起動される次のX配列作成のパ
スで、未確定ノートに対する初期時間surplusをTIMEに
初期化して、更に、そのノートの持続時間を計測する。
X配列作成の後、配列MD[ ]の内容は2拍分、前方に
移動して、次のX配列作成に備える。くりこし処理(第
16図)では現2拍の区間に前区間からの最後のノート
(持続時間が確定したノート)の残りがある場合に、そ
の残りの時間NEXT[1]だけ、配列MD1[ ]に最後ノ
ートの音高データNEXT[2]を格納している。オンタイ
ム変更(第17図)では、配列X[ ]における各検出ノ
ートオン時刻を実施例の場合と同様にして最寄りの離散
的時刻(P1かP2)に変更している。surplus計算(第18
図)では、オンタイムを変更した配列X[ ]の最後の
ノートに関するノートオン時刻X[j]と持続時間X
[j+1]とを取り出し、持続時間を現区間における部
分(X[j+1]に戻される)と次の区間における部分
とに分ける。最後のノートに関する持続時間が確定して
いる場合(FC=0)は次のパスでのくりこし処理のため
のデータ(フラグNEF=1、NEXT[1]=次の区間にお
けるノートの残りの時間surplus、NEXT[2]=そのノ
ートナンバーX[j+2])が作成される。最後のノー
トに関する持続時間が未確定の場合(FC=1)はsurplu
sの値が次の区間のX配列作成で参照される。配列MD1
[ ]作成では、配列X[ ]の内容に従って、ノート
オン時刻X[j]からその持続時間X[j+1]の分だ
け、配列MD1[ ]にノートナンバーX[j+2]を書
き込む。このようにして、演奏に係るノートの持続時間
を維持しつつ、その変化のタイミングを量子化すること
ができる。
For example, in the rhythm quantization of the above embodiment, only the detected note-on time is changed, and the note-off time is not changed. Processing may be performed so that time is maintained. Examples are shown in FIG. 13 to FIG. In brief, this process is performed, for example, every time half a bar (for example, two beats) elapses. First, a note-on time at two beats or two beats plus eight minutes from the beginning of the melody array MD [] (for example, data one bar before the current time) is detected, and an array X [] is created. Array X [] is an array MD at the address of j = 0mod3
The note-on time detected from [], the note-on duration at the next address j (= 1mod3), and the note number (pitch) at the next address j (= 2mod3) are stored.
In FIG. 14, the pointer i to the melody array MD [] is moved from the last position to the head position of the third beat when the head element of the third beat of the melody array MD [] is off. During this time, every time a note-on is detected, the time K is stored, the duration TIME is measured, and the result is stored in an X buffer (X [j] = note-on time, X [j +
1] = duration, X [j + 2] = note number. When the head of the third beat is on, the melody array MD [] is searched further in the 1/8 extension test to find the position where the last note changes to note-off, and if found, the last note is confirmed. The search is terminated as (FC = 0). If the note-off does not change even if the search is continued for eight minutes from the beginning of the third beat, the search is terminated because the duration of the last note is indefinite (FC = 1). When this is not determined, the initial time surplus for the undetermined note is initialized to TIME, and the duration of the note is measured in the next X array creation pass started two beats later.
After the X array is created, the contents of the array MD [] are moved forward by two beats to prepare for the next X array. Carry-over processing (No.
In Fig. 16), if the last note from the previous section (the note whose duration has been determined) remains in the current two-beat section, only the remaining time NEXT [1] is added to the array MD1 []. The pitch data NEXT [2] is stored. In the on-time change (FIG. 17), each detected note-on time in array X [] is changed to the nearest discrete time (P1 or P2) as in the embodiment. surplus calculation (18th
In the figure, note-on time X [j] and duration X for the last note of array X [] with changed on-time
[J + 1] is extracted, and the duration is divided into a part in the current section (returned to X [j + 1]) and a part in the next section. If the duration of the last note is determined (FC = 0), the data for the repetition processing in the next pass (flag NEF = 1, NEXT [1] = the remaining time of the note in the next section surplus , NEXT [2] = the note number X [j + 2]). Surplu if the duration of the last note is uncertain (FC = 1)
The value of s is referred to when creating an X array in the next section. Array MD1
In [] creation, note number X [j + 2] is written to array MD1 [] from note-on time X [j] for the duration X [j + 1] according to the contents of array X []. In this way, the timing of the change can be quantized while maintaining the duration of the note related to the performance.

また、実施例で示されたリズム量子化のための離散時
刻や、どの離散時刻に検出ノートオフ時刻を変更するか
の規則は単なる例示であり、例えば、離散時刻は、物理
的に等分な間隔をもたなくてもよく、背景となるリズム
に合うような不均等な間隔でもよく、検出ノートオフか
ら物理的に最も近い離散時刻に必ずしも変更しなくても
よい(例えば、12−6でl/2の代りにk・l(使用者の
くせ等に合わせて0<k<1の適当な値をもつ)を使用
してもよい)。
Further, the discrete time for rhythm quantization and the rule for changing the detected note-off time to which discrete time shown in the embodiment are merely examples. For example, the discrete time is physically equal. There may be no intervals, non-uniform intervals that match the background rhythm, and it is not always necessary to change to the discrete time physically closest to the detected note-off (for example, 12-6). Instead of l / 2, k · l (having an appropriate value of 0 <k <1 according to the user's habit) may be used.

また、メロディと副旋律の音楽時間差も1小節には限
られず、他の任意の適当な時間差を使用してもよい。
Also, the music time difference between the melody and the sub melody is not limited to one bar, and any other appropriate time difference may be used.

[発明の効果] 以上、詳細に述べたように、この発明によれば、主旋
律のリズムを量子化し、リズム量子化した主旋律リズム
を時間的にシフトしたものを副旋律リズムとするととも
に、現時点からの所定の時間差をもつ時点における主旋
律音高とコード進行の現時点におけるコードの情報とに
基づいて副旋律の現音高を定めることで副旋律を生成し
ているので、副旋律の内容が主旋律の内容とコード進行
の内容に応じて変化し、かつ、主旋律リズムと副旋律の
リズムの間に微妙な差があるリアルな音楽を提供するこ
とができる。
[Effects of the Invention] As described above in detail, according to the present invention, the rhythm of the main melody is quantized, a time-shifted version of the rhythm-quantized main melody is defined as a sub-melody rhythm, The secondary melody is generated by determining the current pitch of the secondary melody based on the pitch of the primary melody at the point in time having the predetermined time difference and the information of the chord at the present time of the chord progression. It is possible to provide real music which changes according to the content and the content of the chord progression, and has a subtle difference between the rhythm of the main melody and the rhythm of the sub melody.

【図面の簡単な説明】[Brief description of the drawings]

第1図はこの発明の実施例に係る副旋律生成機能を組み
込んだ電子楽器の全体構成図、 第2図は実施例で使用する主な変数(レジスタ)のリス
トを示す図、 第3図は変数のデータフォーマットを示す図、 第4図はコード構成音テーブルを例示する図、 第5図は実施例のメインルーチンを示すフローチャー
ト、 第6図は実施例の時間インタラプトルーチンを示すフロ
ーチャート、 第7図はコード処理のフローチャート、 第8図は副旋律処理のフローチャート、 第9図はメロディ記憶処理のフローチャート、 第10図は副旋律発音処理のフローチャート、 第11図はコード構成音検査のフローチャート 第12図はリズム量子化のフローチャートである。 第13図、第14図、第15図、第16図、第17図、第18図、第
19図は変形例に係るリズム量子化のフローチャートであ
る。 2……鍵盤、3……RAM、4……CPU、5……ROM、MD0
[ ]……メロディ音格納配列、MD1[ ]……1区間
前のリズム量子化したメロディ配列。
FIG. 1 is an overall configuration diagram of an electronic musical instrument incorporating a sub melody generating function according to an embodiment of the present invention, FIG. 2 is a diagram showing a list of main variables (registers) used in the embodiment, and FIG. FIG. 4 is a diagram illustrating a data format of variables, FIG. 4 is a diagram illustrating a chord configuration sound table, FIG. 5 is a flowchart illustrating a main routine of the embodiment, FIG. 6 is a flowchart illustrating a time interrupt routine of the embodiment, FIG. Fig. 8 is a flowchart of the chord processing, Fig. 8 is a flowchart of the sub melody processing, Fig. 9 is a flowchart of the melody storage processing, Fig. 10 is a flowchart of the sub melody sounding processing, and Fig. 11 is a flowchart of the chord constituent sound inspection. The figure is a flowchart of rhythm quantization. FIG. 13, FIG. 14, FIG. 15, FIG. 16, FIG. 17, FIG. 18, FIG.
FIG. 19 is a flowchart of rhythm quantization according to a modification. 2 ... key, 3 ... RAM, 4 ... CPU, 5 ... ROM, MD0
[]: Melody sound storage array, MD1 []: Rhythm quantized melody array one section before.

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭56−123599(JP,A) 特開 昭59−116696(JP,A) 特開 平2−173697(JP,A) 実開 平3−5200(JP,U) 実開 昭60−169695(JP,U) (58)調査した分野(Int.Cl.6,DB名) G10H 1/00 101 - 102 G10H 1/18 - 1/30 G10H 1/36 - 1/46 ──────────────────────────────────────────────────続 き Continuation of the front page (56) References JP-A-56-123599 (JP, A) JP-A-59-116696 (JP, A) JP-A-2-173697 (JP, A) 5200 (JP, U) Actual opening 60-169695 (JP, U) (58) Fields investigated (Int. Cl. 6 , DB name) G10H 1/00 101-102 G10H 1/18-1/30 G10H 1 / 36-1/46

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】楽曲の主旋律の情報を付与する主旋律付与
手段と、 上記楽曲のコード進行の情報を付与するコード進行付与
手段と、 上記主旋律に付加する副旋律を生成する副旋律生成手段
と、 を備え、 上記副旋律生成手段は、 (A)上記主旋律の情報をリズム量子化するリズム量子
化手段と、 (B)リズム量子化された主旋律の情報のなかで現時点
に対し所定の時間差をもつ時点における主旋律リズムを
副旋律の現時点におけるリズムとして決定する副旋律リ
ズム決定手段と、 (C)リズム量子化された主旋律の情報のなかで現時点
に対し上記所定の時間差をもつ時点における主旋律音高
と上記コード進行における現コードの情報とに基づき副
旋律の現時点における音高を決定する副旋律音高決定手
段と、 を有する、 ことを特徴とする楽曲パート生成装置。
A main melody providing means for providing information on a main melody of a music, a chord progression providing means for providing information on a chord progression of the music, a sub melody generating means for generating a sub melody added to the main melody, Wherein the sub melody generating means comprises: (A) a rhythm quantizing means for rhythm quantizing the information of the main melody; and (B) a predetermined time difference from the current time in the rhythm quantized information of the main melody. A sub-melody rhythm determining means for determining the main melody rhythm at the time point as the current rhythm of the sub-melody; and (C) the main melody pitch at the time point having the above-mentioned predetermined time difference from the current time in the rhythm-quantized main melody information. Sub-melody pitch determining means for determining the current pitch of the sub-melody based on the information of the current chord in the chord progression. Part generating device.
【請求項2】請求項1記載の楽曲パート生成装置におい
て、上記主旋律付与手段からの主旋律の情報を楽音とし
て出力するとともに上記副旋律生成手段からの副旋律の
情報を楽音として出力する楽音出力手段を更に有するこ
とを特徴とする楽曲パート生成装置。
2. A music part generating device according to claim 1, wherein said main melody providing means outputs main melody information from said main melody providing means as a musical tone and outputs the sub melody information from said sub melody generating means as a musical tone. A music part generation device, further comprising:
JP1341508A 1989-09-29 1989-12-30 Music part generator Expired - Fee Related JP2995772B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP1341508A JP2995772B2 (en) 1989-12-30 1989-12-30 Music part generator
US07/588,050 US5235125A (en) 1989-09-29 1990-09-25 Apparatus for cross-correlating additional musical part with principal part through time
US08/007,119 US5331112A (en) 1989-09-29 1993-01-21 Apparatus for cross-correlating additional musical part to principal part through time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1341508A JP2995772B2 (en) 1989-12-30 1989-12-30 Music part generator

Publications (2)

Publication Number Publication Date
JPH03203789A JPH03203789A (en) 1991-09-05
JP2995772B2 true JP2995772B2 (en) 1999-12-27

Family

ID=18346608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1341508A Expired - Fee Related JP2995772B2 (en) 1989-09-29 1989-12-30 Music part generator

Country Status (1)

Country Link
JP (1) JP2995772B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7143863B2 (en) * 2018-02-14 2022-09-29 ヤマハ株式会社 Acoustic parameter adjustment device, acoustic parameter adjustment method, and acoustic parameter adjustment program
CN111739491B (en) * 2020-05-06 2023-03-21 华南理工大学 Method for automatically editing and allocating accompaniment chord

Also Published As

Publication number Publication date
JPH03203789A (en) 1991-09-05

Similar Documents

Publication Publication Date Title
US5003860A (en) Automatic accompaniment apparatus
US20100307320A1 (en) flexible music composition engine
US6294720B1 (en) Apparatus and method for creating melody and rhythm by extracting characteristic features from given motif
US6175072B1 (en) Automatic music composing apparatus and method
CN113689835A (en) Automatic music generation
US6486390B2 (en) Apparatus and method for creating melody data having forward-syncopated rhythm pattern
JP2995772B2 (en) Music part generator
JP3724347B2 (en) Automatic composition apparatus and method, and storage medium
JP2956867B2 (en) Automatic accompaniment device
JPH0769698B2 (en) Automatic accompaniment device
JP3019343B2 (en) Music part generator
JP2787723B2 (en) Music part generator
JP2929498B2 (en) Electronic musical instrument
JP2925638B2 (en) Electronic musical instrument
JP2995771B2 (en) Music part generator
JP2689614B2 (en) Electronic musical instrument
JPH04157499A (en) Automatic rhythm creation device
JP2552002B2 (en) Electronic instrument tone color setting method
JP2972362B2 (en) Musical control information processing device, musical control information processing method, performance pattern selection device, and performance pattern selection method
JP3427413B2 (en) Automatic arrangement device
JP2007248880A (en) Musical performance controller and program
JPH03269493A (en) Electronic musical instrument
JPH0527762A (en) Electronic musical instrument
JP2596121B2 (en) Electronic musical instrument
JPH08314462A (en) Electronic musical instrument

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071029

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081029

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081029

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091029

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees