JP2713107B2 - Automatic performance device - Google Patents

Automatic performance device

Info

Publication number
JP2713107B2
JP2713107B2 JP5194238A JP19423893A JP2713107B2 JP 2713107 B2 JP2713107 B2 JP 2713107B2 JP 5194238 A JP5194238 A JP 5194238A JP 19423893 A JP19423893 A JP 19423893A JP 2713107 B2 JP2713107 B2 JP 2713107B2
Authority
JP
Japan
Prior art keywords
data
automatic performance
performance data
output
note
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 - Lifetime
Application number
JP5194238A
Other languages
Japanese (ja)
Other versions
JPH0749684A (en
Inventor
昌夫 近藤
裕樹 中薗
真一 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP5194238A priority Critical patent/JP2713107B2/en
Publication of JPH0749684A publication Critical patent/JPH0749684A/en
Application granted granted Critical
Publication of JP2713107B2 publication Critical patent/JP2713107B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】この発明は電子楽器における自動
演奏装置に関し、詳しくは、多量の演奏データを処理す
る際の処理の遅れを防止することのできる自動演奏装置
に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an automatic performance device for an electronic musical instrument, and more particularly, to an automatic performance device capable of preventing a delay in processing a large amount of performance data.

【0002】[0002]

【従来の技術】近年、自動演奏装置においては単純な演
奏データ(ノートオンデータ、ノートオフデータ)のみ
ならず、様々な制御データ(たとえば音色チェンジデー
タ、音量変更データ、ピッチ変更データ等)も演奏デー
タの中に含ませ、表現力の高い演奏をさせることができ
るようになっている。これらの制御データは、各制御デ
ータが発生すべきタイミングを示すタイミングデータと
共に自動演奏データメモリに記憶されている。また、複
数の演奏データ記憶トラックを有し、これら複数の記憶
トラックに記憶されている演奏データを並行して再生す
ることができるようになっている。
2. Description of the Related Art In recent years, in an automatic performance apparatus, not only simple performance data (note-on data, note-off data) but also various control data (for example, tone change data, volume change data, pitch change data, etc.) are played. It can be included in the data so that it can be played with high expressive power. These control data are stored in the automatic performance data memory together with timing data indicating the timing at which each control data should be generated. In addition, a plurality of performance data storage tracks are provided, and the performance data stored in the plurality of storage tracks can be reproduced in parallel.

【0003】[0003]

【発明が解決しようとする課題】従来の自動演奏装置は
メモリに記憶されているデータを時間経過にしたがって
順次読み出し、読み出した時点で直ちに音源へ出力する
ようにしているので、同じタイミングに多数のデータが
記憶されていると、その処理に多くの時間がかかり、楽
音の発音タイミングが遅れてしまうおそれがあった。こ
の問題は、複数の記憶トラックについて同一タイミング
(例えば小節先頭)に制御データが集中している場合に
顕著に現れてしまう。
In a conventional automatic performance device, data stored in a memory is sequentially read out with the passage of time, and immediately output to a sound source at the time of reading out. If the data is stored, the processing takes a lot of time, and there is a possibility that the sounding timing of the musical sound may be delayed. This problem appears remarkably when control data is concentrated at the same timing (for example, at the beginning of a bar) for a plurality of storage tracks.

【0004】[0004]

【課題を解決するための手段】上記の課題を解決するた
めに、本発明においては、複数の記憶トラック毎に、ノ
ートオンデータを含む第1の種類の自動演奏データと、
前記第1の種類の自動演奏データに基づいて発生される
楽音の態様を制御するための第2の種類の自動演奏デー
タであって、該第2の種類の自動演奏データが読み出さ
れた後、前記ノートオンデータが読み出された時点で前
記制御が有効となるものとを、時間経過にしたがって記
憶した記憶手段と、複数の記憶トラックに記憶されてい
る前記第1及び第2の種類の自動演奏データを、並行し
て、時間経過にしたがって順次読み出す読み出し手段
と、前記複数の記憶トラックからそれぞれ第1の種類の
自動演奏データが読み出されたとき、該第1の種類の自
動演奏データを直ちに音源へ出力する第1の出力手段
と、前記複数の記憶トラックからそれぞれ第2の種類の
自動演奏データが読み出されたとき、該第2の種類の自
動演奏データを音源へ出力せずにバッファへと格納し、
この第2の種類の自動演奏データが読み出されてから、
第1の出力手段によって、対応する記憶トラックの後続
するノートオンデータが出力されるまでの間に、前記バ
ッファに格納されている前記第2の種類の自動演奏デー
タを音源へ出力することにより第2の種類の自動演奏デ
ータの出力を遅延させる第2の出力手段とを備えたこと
を特徴とする。
In order to solve the above-mentioned problems, according to the present invention, a first type of automatic performance data including note-on data is provided for each of a plurality of storage tracks.
A second type of automatic performance data for controlling an aspect of a tone generated based on the first type of automatic performance data, wherein the second type of automatic performance data is read out; A storage means for storing, as time elapses, the control that becomes effective when the note-on data is read, and a first and a second type of the first and second types stored in a plurality of storage tracks. Reading means for automatically reading out the automatic performance data in parallel with time, and when the first type of automatic performance data is read from each of the plurality of storage tracks, the first type of automatic performance data First output means for immediately outputting the second type of automatic performance data to the sound source when the second type of automatic performance data is read out from each of the plurality of storage tracks. Stores to the buffer without force,
After the second type of automatic performance data is read,
By outputting the second type of automatic performance data stored in the buffer to a sound source until the subsequent note-on data of the corresponding storage track is output by the first output means, Second output means for delaying the output of the two types of automatic performance data.

【0005】[0005]

【作用】第1の種類の自動演奏データは、読み出された
時点で直ちに音源へ出力されるが、第2の種類の自動演
奏データは、読み出された時点では出力されず、一旦バ
ッファに格納された後、後続するノートオンデータが発
生するまでの間に音源へ出力される。たとえば第1の記
憶トラックと第2の記憶トラックがあり、小節先頭にお
いて、各記憶トラックにつき、それぞれ10個の制御デ
ータが記憶されていたとする。すなわち、小節先頭にお
いては、合計20個の制御データが記憶されており、こ
れらが同時に読み出される。そして、第1の記憶トラッ
クについては、小節先頭の10個の制御データに引き続
いて、ノートオンデータが同一タイミング(すなわち小
節先頭)に記憶されており、第2の記憶トラックについ
ては、小節先頭の10個の制御データに引き続いて、ノ
ートオンデータが所定時間(例えば4分音符長)だけ経
過したタイミングに記憶されていたとする。小節先頭の
タイミングにおいては、第1の記憶トラックから読み出
された10個の制御データおよびノートオンデータが音
源へと出力され、第2の記憶トラックから読み出された
10個の制御データはこの時点では音源へ出力されな
い。一方、第2のトラックから読み出された10個の制
御データは、その後、所定時間経過した時点でノートオ
ンデータが読み出されるまでの間に音源へと出力され
る。このため、同時に読み出された20個の制御データ
は、10個の制御データと10個の制御データに分かれ
て別々のタイミングに音源へと出力され、処理が分散さ
れる。
The first type of automatic performance data is output to the sound source immediately when it is read out, but the second type of automatic performance data is not output at the time of readout, but is temporarily stored in a buffer. After being stored, it is output to the sound source until the subsequent note-on data is generated. For example, it is assumed that there are a first storage track and a second storage track, and 10 control data are stored for each storage track at the beginning of a bar. That is, at the beginning of the bar, a total of 20 control data are stored, and these are read out simultaneously. For the first storage track, note-on data is stored at the same timing (that is, at the beginning of the bar) following the ten control data at the beginning of the bar, and for the second storage track, at the beginning of the bar. It is assumed that the note-on data is stored at a timing after a lapse of a predetermined time (for example, a quarter note length) following the ten pieces of control data. At the beginning of the bar, the ten control data and note-on data read from the first storage track are output to the sound source, and the ten control data read from the second storage track are At this point, it is not output to the sound source. On the other hand, the ten pieces of control data read from the second track are thereafter output to the sound source until the note-on data is read when a predetermined time has elapsed. For this reason, the 20 pieces of control data read simultaneously are divided into 10 pieces of control data and 10 pieces of control data, which are output to the sound source at different timings, thereby dispersing the processing.

【0006】[0006]

【実施例】以下、図面を参照して、本発明の実施例を詳
細に説明する。図1は実施例におけるハード構成のブロ
ック図である。CPU1は装置全体の動作を制御するも
のであり、ROM2に記憶された制御プログラムにした
がって処理を実行する。また、CPU1と各部とはバス
3を介して接続されており、各種データの送受が行われ
る。ROM2には制御プログラムのほかにオートベース
コード等の自動演奏データが予め記憶されている。RA
M4はCPUによる処理時において発生する各種データ
を一時的に記憶するバッファ、レジスタ、フラグ等の領
域が設けられている。タイマ5はCPU1に対して割り
込み信号を供給するもので、テンポに応じた可変周期で
割り込み信号を発生する。割り込み信号の発生周期は、
たとえば4分音符当り24回信号が発生する周期、即ち
96分音符毎の周期である。CPU1は、この割り込み
信号の発生に従ってROM2に記憶された自動演奏デー
タの読み出し処理を実行する。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a block diagram of a hardware configuration in the embodiment. The CPU 1 controls the operation of the entire apparatus, and executes processing according to a control program stored in the ROM 2. Further, the CPU 1 and each unit are connected via a bus 3, and various types of data are transmitted and received. In the ROM 2, in addition to the control program, automatic performance data such as an auto base code is stored in advance. RA
M4 is provided with areas such as buffers, registers, and flags for temporarily storing various data generated during processing by the CPU. The timer 5 supplies an interrupt signal to the CPU 1, and generates an interrupt signal at a variable cycle according to the tempo. The generation cycle of the interrupt signal is
For example, a cycle in which a signal is generated 24 times per quarter note, that is, a cycle every 96th note. The CPU 1 executes a reading process of the automatic performance data stored in the ROM 2 according to the generation of the interrupt signal.

【0007】鍵盤6は多数(たとえば61個)の鍵やピ
ッチベンドホイール、モジュレーションホイール等の演
奏操作子を有するものであり、演奏者によって操作され
ると、その操作を鍵盤検出回路7が検出し、バス3を介
してCPU1へ操作情報が出力される。CPU1は、鍵
操作情報にもとづいてノートオン、ノートオフ等のノー
トデータを作成するとともに、ピッチベンドホイール等
の操作情報にもとづいて楽音制御データを作成し、バス
3を介して音源回路8へ出力する。音源回路8において
は供給されたノートデータ、楽音制御データにもとづい
て楽音波形信号を形成する。音源回路の方式としては、
周知の波形メモリ読み出し方式、FM方式や物理モデル
シミュレーション方式等が用いられる。また、この音源
回路は複数のMIDIチャンネルを有し、各チャンネル
毎独立した音色で楽音を発生させることが可能である。
音源回路8において形成された楽音波形信号はサウンド
システム9へ供給され、楽音が発生される。10はパネ
ルスイッチであり、自動演奏のスタート/ストップ指
示、音色選択等各種機能を指定するための多数のスイッ
チを有する。これらスイッチの操作は、スイッチ検出回
路11によって検出され、操作情報がバス3を介してC
PU1へ供給される。CPU1は供給されたスイッチ情
報に従って各種機能を実行する。12は表示回路であ
り、各種データを表示する。
The keyboard 6 has a large number (for example, 61) of keys and performance operators such as a pitch bend wheel and a modulation wheel. When operated by a player, a keyboard detection circuit 7 detects the operation. Operation information is output to the CPU 1 via the bus 3. The CPU 1 creates note data such as note-on and note-off based on key operation information, creates tone control data based on operation information such as a pitch bend wheel, and outputs the tone control data to the tone generator circuit 8 via the bus 3. . The tone generator 8 forms a tone waveform signal based on the supplied note data and tone control data. As a method of the sound source circuit,
A well-known waveform memory reading method, an FM method, a physical model simulation method, and the like are used. Further, this tone generator circuit has a plurality of MIDI channels, and can generate musical tones with independent tone colors for each channel.
The tone waveform signal formed in the tone generator 8 is supplied to a sound system 9 to generate a tone. Reference numeral 10 denotes a panel switch, which has a number of switches for designating various functions such as a start / stop instruction for automatic performance and tone color selection. The operation of these switches is detected by the switch detection circuit 11, and the operation information is transmitted to the C via the bus 3.
It is supplied to PU1. The CPU 1 executes various functions according to the supplied switch information. A display circuit 12 displays various data.

【0008】図2はROM2に記憶された自動演奏デー
タのデータフォーマットを示したものである。この自動
演奏データはたとえばオートベースコード演奏に用いら
れるものであり、複数パート(たとえばコードバッキン
グパート、ベースパート、ドラムパート等)に対応した
複数トラック(実施例においては16トラック)の演奏
データからなり、各トラックが音源におけるMIDIチ
ャンネルの何れかに対応し、トラック毎異なる音色での
演奏が可能である。16トラックすべて異なるMIDI
チャンネルに対応させて、すべてのトラックの音色を異
ならせてもよいし、複数のトラックを同じMIDIチャ
ンネルとしてもよい。各トラックの自動演奏データの先
頭には音色の切り換えを示すプログラムチェンジデー
タ、楽音の音高の変更量を示すピッチベンドデータ、楽
音の音量を制御するボリュームデータ、同じく音量を制
御するエクスプレッションデータ、楽音の変調量を制御
するためのモジュレーションデータ、音像の定位位置を
示すパンポットデータ、リバーブの深さを制御するリバ
ーブデプス等の楽音制御データが記憶されている。これ
ら楽音制御データに続いて実際の時間経過にしたがった
自動演奏データが記憶されている。自動演奏データはな
んらかの状態の変化を示すイベントデータ(たとえばノ
ートオンの発生、ノートオフの発生、ピッチベンド値の
変化、プログラムチェンジの発生等)とそのイベントデ
ータの発生タイミングとを組にして記録されており、ま
ずタイミングデータ、その後イベントデータといった順
序でデータが記録されている。1つのタイミングに複数
のイベントが同時発生する場合は、イベントデータを連
続させて記録する。本実施例においてはタイミングデー
タは各イベントの間隔を表すデータで記述されている。
自動演奏データの最後にはデータの終わりを示すエンド
データが記憶されている。この自動演奏データはたとえ
ば2小節分のデータであって、エンドデータが読み出さ
れた時、演奏データの先頭に戻るようにして、2小節分
の演奏データを繰り返し読み出してオートベースコード
演奏をするようにしている。なお、説明を簡単にするた
め、この2小節分の演奏データを繰り返し読み出して演
奏するだけの例を示すが、通常のオートベースコード演
奏のようにイントロ演奏データ、フィルイン演奏デー
タ、エンディング演奏データ等も記憶させ、曲の進行に
従って切り換えるようにしてもいいことはいうまでもな
い。
FIG. 2 shows the data format of the automatic performance data stored in the ROM 2. The automatic performance data is used for, for example, an auto bass chord performance, and includes performance data of a plurality of tracks (16 tracks in the embodiment) corresponding to a plurality of parts (for example, a chord backing part, a bass part, a drum part, etc.). Each track corresponds to one of the MIDI channels in the sound source, and it is possible to perform with different timbres for each track. MIDI different for all 16 tracks
The tone of all the tracks may be made different depending on the channel, or a plurality of tracks may be made the same MIDI channel. At the beginning of the automatic performance data of each track, program change data indicating the change of tone, pitch bend data indicating the amount of pitch change of the tone, volume data for controlling the volume of the tone, expression data for controlling the volume of the tone, Modulation data for controlling the modulation amount, panpot data indicating the localization position of the sound image, and tone control data such as reverb depth for controlling the reverb depth are stored. Subsequent to these musical tone control data, automatic performance data according to the lapse of actual time is stored. The automatic performance data is recorded as a set of event data (for example, occurrence of note-on, occurrence of note-off, change of pitch bend value, occurrence of a program change, etc.) indicating a change in state, and the generation timing of the event data. In this case, data is recorded in the order of timing data, and then event data. When a plurality of events occur simultaneously at one timing, event data is recorded continuously. In the present embodiment, the timing data is described as data representing the interval between events.
At the end of the automatic performance data, end data indicating the end of the data is stored. The automatic performance data is, for example, data for two measures. When the end data is read, the performance data for two measures is repeatedly read so as to return to the beginning of the performance data to perform an auto bass chord. Like that. For the sake of simplicity, an example in which the performance data for two measures is repeatedly read out and played is shown, but intro performance data, fill-in performance data, ending performance data, etc., as in a normal auto bass chord performance. Needless to say, it is also possible to memorize the information and switch it according to the progress of the music.

【0009】このような自動演奏データがトラック1か
らトラック16まで、16トラック分記憶されており、
この16トラック分の自動演奏データが実質的に並行し
て読み出されることによって、複数パートの演奏が実行
される。本発明においては、自動演奏データを読み出し
て音源回路8へ出力する際に、読み出してすぐに音源回
路8へ出力するイベントデータと、すぐには出力しない
イベントデータとに区別して扱うようにしている。即
ち、ノートオン、ノートオフ、ピッチベンド等、リアル
タイムの発音に関するデータについては読み出してすぐ
に出力するが、プログラムチェンジ、パンポット、リバ
ーブデプス等の、これらが読み出された後の次のノート
オンからそのデータが有効となるような種類のデータに
ついてはすぐには出力せず、次のノートオンイベントが
発生するときにデータの出力を行うようにしている。こ
のようにすることによって、各トラックの先頭に記憶さ
れている多数の楽音制御データを、演奏データの読み出
し開始時、或いは繰り返し読み出し時にすべてまとめて
音源回路8へ出力することによる処理時間のかかり過ぎ
を防止することができる。即ち、各トラック毎に最初の
ノートオンデータの発生タイミングが異なることが多い
ため、最初のノートオンデータの発生タイミングにおい
て楽音制御データの出力を行うようにすれば、各トラッ
クの先頭に存在する多量の楽音制御データを音源回路8
へ出力するタイミングを分散させることができ、その結
果、1つのタイミングに多量のデータが音源回路8へ出
力されることによる遅れ(もたり)を防ぐことができる
ようになる。なお、ピッチベンドやボリューム、エクス
プレッション等のリアルタイム性を要求されるデータは
本来ならば発生タイミングにおいて音源回路8へ出力さ
れるべきであるが、本実施例においては自動演奏の開始
時に限り、これらのデータも最初のノートオンデータの
発生タイミングまで出力しないようにしている。なぜな
ら、これらのデータは発生中の楽音に対して有効な楽音
制御データであり、最初のノートオンが発生する前はこ
れらの制御データを出力しても無意味だからである。
[0009] Such automatic performance data is stored for 16 tracks from track 1 to track 16.
By reading the automatic performance data for 16 tracks substantially in parallel, the performance of a plurality of parts is executed. In the present invention, when the automatic performance data is read out and output to the tone generator circuit 8, event data which is read out and immediately output to the tone generator circuit 8 is separately handled from event data which is not immediately output. . That is, data relating to real-time sound generation, such as note-on, note-off, pitch bend, etc., is read out and output immediately, but program change, panpot, reverb depth, etc., from the next note-on after these are read out The type of data for which the data becomes valid is not output immediately, but is output when the next note-on event occurs. In this way, it takes too much processing time to output a large number of musical tone control data stored at the beginning of each track to the tone generator circuit 8 all at once at the start of performance data reading or at the time of repeated reading. Can be prevented. That is, since the generation timing of the first note-on data is often different for each track, if the tone control data is output at the generation timing of the first note-on data, a large amount of data existing at the head of each track is generated. Tone control data from the tone generator circuit 8
Can be dispersed, and as a result, it is possible to prevent a delay due to a large amount of data being output to the tone generator 8 at one timing. Note that data that requires real-time properties such as pitch bend, volume, and expression should be output to the tone generator circuit 8 at the generation timing, but in the present embodiment, these data are only available at the start of automatic performance. Is not output until the first note-on data is generated. This is because these data are effective tone control data for the tone being generated, and it is meaningless to output these control data before the first note-on occurs.

【0010】次に図3から図7を参照して本発明におけ
るCPU1の処理のフローチャートを説明する。図3は
メインルーチンを示している。まず、図示しない電源ス
イッチを投入すると、ステップS1のイニシャライズ処
理を実行し、各種レジスタやフラグ等の初期化を行う。
続いてステップS2へ進み、鍵盤処理を実行する。ここ
では鍵盤検出回路7から出力される鍵盤6の操作情報に
応じて楽音の発音、消音に関する処理を行う。また、オ
ートベースコード演奏の実行中には、鍵盤の所定の領域
を和音指定領域とし、この領域内で押鍵された鍵盤の組
み合わせによって和音が決定され、オートベースコード
の和音指定に利用される。
Next, a flow chart of the processing of the CPU 1 according to the present invention will be described with reference to FIGS. FIG. 3 shows the main routine. First, when a power switch (not shown) is turned on, an initialization process in step S1 is executed, and various registers and flags are initialized.
Then, the process proceeds to a step S2 to execute a keyboard process. Here, processing relating to tone generation and silence of musical tones is performed in accordance with operation information of the keyboard 6 output from the keyboard detection circuit 7. Further, during execution of the auto bass chord performance, a predetermined area of the keyboard is designated as a chord designation area, and a chord is determined by a combination of keys depressed in this area and used for designation of a chord of the auto bass chord. .

【0011】次にステップS3へ進み、スイッチ検出回
路11からのスイッチ操作情報にもとづくパネルスイッ
チ処理を行う。この詳細な処理は後述する図5にて説明
する。続いてステップS4の自動演奏処理へ進み、自動
演奏データの読み出し処理を行う。この自動演奏処理の
詳細は後述する図6及び7にて説明する。次にステップ
S5の表示関連の処理等のその他の処理を実行して、再
びステップS2の鍵盤処理へ進み、以上のステップS2
からS5を繰り返し実行する。
Next, the process proceeds to step S3, where a panel switch process is performed based on the switch operation information from the switch detection circuit 11. This detailed process will be described later with reference to FIG. Subsequently, the process proceeds to an automatic performance process of step S4, and a process of reading out automatic performance data is performed. Details of this automatic performance processing will be described later with reference to FIGS. Next, other processing such as the display-related processing in step S5 is executed, and the process again proceeds to the keyboard processing in step S2.
To S5 are repeatedly executed.

【0012】次に、図5を参照してステップS3のパネ
ルスイッチ処理の詳細を説明する。ステップS11にお
いてパネルスイッチ10上のスタート/ストップスイッ
チ(図示せず)がオンされたか否かを判断し、オンされ
た場合はステップS12以降の処理を実行し、オンされ
ていない場合はステップS24へ進み、その他のスイッ
チの処理を実行する。ステップS12ではランフラグR
UNが1か否かが判断され、0であれば自動演奏(オー
ドベースコード演奏)を開始させるためステップS13
からステップS21の処理を実行し、1であれば実行中
の自動演奏を停止するため、ステップS22へ進みラン
フラグRUNをクリアし、ステップS23へ進んで音源
回路の自動演奏データが割り当てられる全MIDIチャ
ンネルへオールノートオフデータを出力して発音中の全
楽音を消音させる。初めてスタート/ストップスイッチ
が操作されたときは自動演奏を開始させるための操作な
のでステップS12の判断はNOとなる。そしてステッ
プS13へ進み、カウンタiを1にセットする。このカ
ウンタiは1から16の各トラック番号を示すものであ
る。続いてステップS14へ進み、トラックiの先頭デ
ータを読み出す。最初はカウンタiの値が1であるの
で、トラック1のデータが読み出される。前述したよう
に、各トラックの先頭には各種楽音制御データが記憶さ
れており、ステップS14の処理では、この楽音制御デ
ータの1つが読み出されるようになる。次にステップS
15へ進み、読み出した楽音制御データをバッファBi
へ書き込む。このバッファBiに関しては詳しくは後述
するが、リアルタイム性が要求されない楽音制御データ
を記憶するためのバッファである。次にステップS16
へ進んでトラックiの次のデータを読み出し、ステップ
S17でそのデータがタイミングデータか否かを判断す
る。この結果、NOと判断された場合は再びステップS
15へ戻って上記の処理を繰り返す。このようにして各
トラックの先頭に記憶されている複数の楽音制御データ
を順次読み出してバッファBiへ格納していく。そし
て、すべての楽音制御データが読み出されると、その次
にはタイミングデータが記憶されているので、ステップ
S17における判断はYESとなり、ステップS18へ
進んで読み出したタイミングデータをタイムレジスタT
IMEiへ格納する。そしてステップS19へ進み、カ
ウンタiの値が16か否かを判断し、16でなければス
テップS20へ進んでカウンタiの値をインクリメント
し、再びステップS14以降の処理を実行する。2回目
にステップS14へ進んだときには、ステップS20に
おいてカウンタiの値がインクリメントされて2になっ
ているので、ステップS14以降の処理ではトラック2
のデータが読み出されるようになる。これらの処理をカ
ウンタiの値が16になるまで、即ちトラック1からト
ラック16の全てのトラックの読み出しが終わるまで繰
り返すと、ステップS19においてNOと判断され、ス
テップS21へ進んでランフラグRUNを1にセットし
て、ステップS24のその他のスイッチ処理へ進む。ス
テップS24の処理が終わると、元のメインルーチンへ
戻る。このようにして、スタート/ストップスイッチに
より自動演奏のスタートが指示されると、各トラックの
先頭に記憶されている楽音制御データが読み出されて、
各トラックに対応するバッファBiへ読み出された楽音
制御データが格納される。この時点では、楽音制御デー
タの種類に係わらず、直ちには出力しないデータを格納
するバッファBiへ格納する。
Next, the details of the panel switch processing in step S3 will be described with reference to FIG. In step S11, it is determined whether or not a start / stop switch (not shown) on the panel switch 10 has been turned on. If the switch has been turned on, the process from step S12 is executed. If not, the process proceeds to step S24. Proceed to execute other switch processing. In step S12, the run flag R
It is determined whether UN is 1 or not. If it is 0, an automatic performance (auto bass chord performance) is started in step S13.
From step S21. If the value is 1, the program proceeds to step S22 to clear the run flag RUN to stop the running automatic performance. Then, the procedure proceeds to step S23, in which all the MIDI channels to which the automatic performance data of the tone generator circuit are allocated. Outputs all note-off data to mute all musical tones being sounded. When the start / stop switch is operated for the first time, since the operation is for starting the automatic performance, the determination in step S12 is NO. Then, the process proceeds to step S13, where the counter i is set to 1. This counter i indicates each track number from 1 to 16. Subsequently, the process proceeds to step S14, where the head data of the track i is read. At first, since the value of the counter i is 1, the data of the track 1 is read. As described above, various tone control data are stored at the beginning of each track, and one of the tone control data is read out in the process of step S14. Next, step S
15 to store the read tone control data in the buffer Bi.
Write to The buffer Bi will be described later in detail, but is a buffer for storing tone control data that does not require real-time processing. Next, step S16
Then, the next data of the track i is read, and it is determined in step S17 whether the data is timing data. As a result, if NO is determined, the process returns to step S
Returning to step 15, the above processing is repeated. In this way, a plurality of tone control data stored at the head of each track is sequentially read out and stored in the buffer Bi. When all the tone control data has been read out, the timing data is stored next. Therefore, the determination in step S17 is YES, and the flow advances to step S18 to store the read out timing data in the time register T.
Store in IMEi. Then, the process proceeds to step S19, where it is determined whether the value of the counter i is 16. If not, the process proceeds to step S20, where the value of the counter i is incremented, and the processes after step S14 are executed again. When the process proceeds to step S14 for the second time, the value of the counter i is incremented to 2 in step S20.
Is read. When these processes are repeated until the value of the counter i becomes 16, that is, until reading of all the tracks from the track 1 to the track 16 is completed, NO is determined in the step S19, and the process proceeds to the step S21 to set the run flag RUN to 1. After setting, the process proceeds to the other switch process in step S24. Upon completion of the process in the step S24, the process returns to the original main routine. Thus, when the start of the automatic performance is instructed by the start / stop switch, the tone control data stored at the head of each track is read out,
The read tone control data is stored in the buffer Bi corresponding to each track. At this point, regardless of the type of the tone control data, the tone control data is stored in the buffer Bi for storing data that is not immediately output.

【0013】次に、図4を参照して、タイマ5から割り
込み信号が発生する毎に実行されるタイマ割り込み処理
を説明する。ステップS6においては、メインルーチン
において自動演奏処理を実行すべきタイミングになった
ことを示す処理フラグを1にセットしてリターンする。
メインルーチンではステップS2からステップS5の処
理が高速で繰り返し実行されており、自動演奏の処理は
そのうちの数回に1回のみ実行すればよく、その1回の
タイミングを指示するのがこの処理フラグである。タイ
マ割り込みの周期は設定されたテンポに応じて変化する
ので、自動演奏処理の実行頻度もテンポに応じて変化す
るようになる。
Next, referring to FIG. 4, a description will be given of a timer interrupt process executed each time an interrupt signal is generated from the timer 5. In step S6, a processing flag indicating that it is time to execute the automatic performance processing in the main routine is set to 1, and the routine returns.
In the main routine, the processing from step S2 to step S5 is repeatedly executed at a high speed, and the automatic performance processing only needs to be executed once every several times, and the processing flag indicates the timing of one time. It is. Since the timer interrupt cycle changes according to the set tempo, the execution frequency of the automatic performance process also changes according to the tempo.

【0014】次に図6と図7を用いて、ステップS4の
自動演奏処理の詳細を説明する。まずステップS31に
おいて処理フラグが1であるか否かが判断され、1であ
れば自動演奏処理を実行すべき時であるので、ステップ
S32以降の処理へ進む。処理フラグが0であれば、自
動演奏処理を実行すべきときではないため、そのままメ
インルーチンへ戻る。ステップS32では、カウンタi
の値を1にセットし、ステップS33へ進む。ステップ
S33ではタイムレジスタTIMEiの値が0であるか
否かを判断し、0でなければステップS34へ進んでタ
イムレジスタTIMEiの値をデクリメントする。一方
ステップS33でタイムレジスタTIMEiの値が0で
あると判断されたときは、タイミングデータが示す時間
が経過し、イベントデータを読み出すタイミングに達し
たことになり、ステップS37へ進んでトラックiのデ
ータを読み出す。そしてステップS38において、読み
出したデータがグループAに属するイベントか、グルー
プBに属するイベントかを判断する。グループAとはイ
ベントデータが読み出されたら直ちに音源回路へ出力し
なければならないものであり、グループBとは次のキー
オンデータが読み出されるまで出力しなくてもよいもの
である。例を挙げるとグループAに属するイベントとし
ては、ノートオン、ノートオフ、ピッチベンド、ボリュ
ーム、エクスプレッション、アフタタッチ、モジュレー
ション等であり、グループBに属するイベントとして
は、プログラムチェンジ、パンポット、リバーブデプス
等である。グループAのイベントはステップS39にお
いてバッファAiへ格納され、グループBのイベントは
ステップS40においてバッファBiへ格納される。そ
して、バッファAiのデータはこの後のステップS47
で必ず音源回路8へ出力される。バッファBiのデータ
は、バッファAi中にノートオンデータが存在するとき
のみ、ステップS46において音源回路8へ出力され、
それ以外の時は出力されない。
Next, the details of the automatic performance process in step S4 will be described with reference to FIGS. First, in step S31, it is determined whether or not the processing flag is 1, and if it is 1, it means that the automatic performance processing is to be executed, so that the processing proceeds to step S32 and thereafter. If the processing flag is 0, it is not the time to execute the automatic performance processing, and the process returns to the main routine. In step S32, the counter i
Is set to 1 and the process proceeds to step S33. In step S33, it is determined whether or not the value of the time register TIMEi is 0. If not, the process proceeds to step S34 to decrement the value of the time register TIMEi. On the other hand, if it is determined in step S33 that the value of the time register TIMEi is 0, it means that the time indicated by the timing data has elapsed and it is time to read out the event data. Is read. In step S38, it is determined whether the read data is an event belonging to group A or an event belonging to group B. The group A must be output to the tone generator immediately after the event data is read, and the group B is not to be output until the next key-on data is read. For example, events belonging to group A include note-on, note-off, pitch bend, volume, expression, aftertouch, modulation, and the like, and events belonging to group B include program change, panpot, reverb depth, and the like. is there. The event of group A is stored in the buffer Ai in step S39, and the event of group B is stored in the buffer Bi in step S40. Then, the data in the buffer Ai is stored in the subsequent step S47.
Is always output to the tone generator 8. The data in the buffer Bi is output to the tone generator circuit 8 in step S46 only when note-on data exists in the buffer Ai,
It is not output otherwise.

【0015】ステップS39、S40の処理の後、ステ
ップS41へ進み、トラックiの次のデータを読み出
す。ステップS42では読み出したデータがタイミング
データか否かを判断し、タイミングデータであればステ
ップS43へ進んでタイミングデータをタイムレジスタ
TIMEiへ格納してステップS35へ進む。タイミン
グデータでなければ、再びステップS38へ進み、上記
の処理を繰り返す。そしてこれらの処理の後、ステップ
S35へ進んでカウンタiの値が16であるか否かを判
断し、16でなければステップS36でカウンタiをイ
ンクリメントして再びステップS33へ進み、次のトラ
ックのデータの読み出しが行われる。このようにして、
各トラックの自動演奏データの読み出し処理が実行され
る。ステップS35においてカウンタiの値が16であ
ると判断されたときは、ステップS44へ進む。なお、
上記説明では省いたが、上記ステップ37の処理におい
てエンドデータが読み出された時はトラックの先頭へ再
び戻り、読み出しを繰り返すようにする。このとき、ト
ラックの先頭には複数の楽音制御データが記憶されてい
るのでこのデータが読み出されるが、読み出されたデー
タと現在設定されている状態が同一である場合は、ステ
ップS39、或いはステップS40においてイベントは
書き込まない。なぜなら、同じ状態ならば新たに楽音制
御イベントデータを音源回路8へ出力してもなんら変化
がなく、ただ処理時間が無駄になるだけだからである。
After the processing of steps S39 and S40, the process proceeds to step S41, and the next data of track i is read. In step S42, it is determined whether or not the read data is timing data. If the data is timing data, the flow advances to step S43 to store the timing data in the time register TIMEi, and then to step S35. If it is not the timing data, the process proceeds to step S38 again, and the above processing is repeated. After these processes, the process proceeds to step S35 to determine whether or not the value of the counter i is 16. If the value of the counter i is not 16, the counter i is incremented in step S36, and the process again proceeds to step S33 to return to the next track. Data reading is performed. In this way,
A reading process of the automatic performance data of each track is executed. When it is determined in step S35 that the value of the counter i is 16, the process proceeds to step S44. In addition,
Although omitted in the above description, when the end data is read in the process of step 37, the process returns to the beginning of the track again and the reading is repeated. At this time, since a plurality of musical tone control data is stored at the beginning of the track, this data is read. If the read data and the currently set state are the same, step S39 or step S39 is executed. No event is written in S40. This is because, in the same state, even if new tone control event data is output to the tone generator circuit 8, there is no change, and only the processing time is wasted.

【0016】このように1から16の各トラックのデー
タが読みだされ、バッファA、或いはBに格納された
ら、これら格納されたデータを音源回路8へ出力する処
理を実行する。ステップS44ではカウンタiを再び1
にセットし、ステップS45へ進んでバッファAi中に
ノートオンイベントが存在するか否かを判断する。ノー
トオンイベントが存在する場合はステップS46へ進ん
でバッファBiに格納されている全データを音源回路8
の、トラックiに対応しているMIDIチャンネルへ出
力する。この処理の後、或いはステップS45において
NOと判断した場合はステップS47でバッファAiに
格納されている全データを音源回路8の、トラックiに
対応しているMIDIチャンネルへ出力する。このと
き、ノートオン、ノートオフイベントデータはその時指
定されている和音に応じて音高変換されて音源回路8へ
出力される。このようにして、グループAのイベントは
読み出されたら直ちに音源回路8へ出力され、グループ
Bのイベントは次のノートオンイベントがあるまで出力
されないようになる。続いてステップS48へ進んでカ
ウンタiの値が16か否か判断し、16でなければステ
ップS49でカウンタiの値をインクリメントして再び
ステップS45へ進む。このようにして、トラック1か
らトラック16までのイベントデータを音源回路8へ出
力する。一方、カウンタiの値が16であれば、ステッ
プS50へ進み、処理フラグをリセットしてメインルー
チンへ戻る。
When the data of each of the tracks 1 to 16 is read out and stored in the buffer A or B, a process of outputting the stored data to the tone generator circuit 8 is executed. In step S44, the counter i is set to 1 again.
And proceeds to step S45 to determine whether or not a note-on event exists in the buffer Ai. If there is a note-on event, the flow advances to step S46 to transfer all data stored in the buffer Bi to the tone generator circuit 8.
To the MIDI channel corresponding to track i. After this process, or if the determination is NO in step S45, all data stored in the buffer Ai is output to the MIDI channel of the tone generator circuit 8 corresponding to the track i in step S47. At this time, note-on and note-off event data are pitch-converted according to the chord specified at that time and output to the tone generator 8. In this way, the event of group A is output to the tone generator 8 immediately after being read, and the event of group B is not output until the next note-on event. Subsequently, the process proceeds to step S48 to determine whether or not the value of the counter i is 16, and if not, the value of the counter i is incremented in step S49 and the process again proceeds to step S45. Thus, the event data from track 1 to track 16 is output to the tone generator 8. On the other hand, if the value of the counter i is 16, the process proceeds to step S50, the processing flag is reset, and the process returns to the main routine.

【0017】なお、実施例においてはグループBのイベ
ントは次のノートオンの発生タイミングで全て音源回路
8へ出力するようにしているが、タイミングデータの有
無を判断しそれがなかった場合に、そのときの処理量が
所定値を越えているかを判断し、越えていればこのタイ
ミングでグループBのイベントを音源回路8へ出力しな
いままグループAのイベントを音源回路8へ出力するよ
うにし、越えてなければ次のノートオンイベントを待た
ずに、所定量のグループBのイベントを音源回路8へ出
力するようにしてもよい。そして、次のノートオンイベ
ントが発生したときにまだ出力されていないグループB
のイベントがあるかを判断し、ある場合にはその時点で
まとめて出力するようにすればよい。また、自動演奏デ
ータ中に含まれるデータの種類は、実施例のものに限定
されない。また、自動演奏データのフォーマットも、ど
のようなものであってもよい。実施例では1つの電子楽
器内で自動演奏データを読み出し、音源回路へ出力する
例を示したが、外部音源装置へ読み出したデータをMI
DIデータとして出力するようなものであってもよい。
実施例においては自動演奏データは予めROMに記憶さ
れたオートベースコード演奏データであったが、オート
ベースコード演奏に限らず、ユーザが任意に作成した自
動演奏データであってもよい。
In the embodiment, all the events of group B are output to the tone generator circuit 8 at the next note-on occurrence timing. However, it is determined whether or not there is timing data. It is determined whether the processing amount at this time exceeds a predetermined value. If the processing amount exceeds the predetermined value, the event of group A is output to the tone generator circuit 8 without outputting the event of group B to the tone generator circuit 8 at this timing. Otherwise, a predetermined amount of group B events may be output to the tone generator 8 without waiting for the next note-on event. Group B that has not yet been output when the next note-on event occurs
It is determined whether or not there is an event, and if there is, an event may be output collectively at that time. Further, the type of data included in the automatic performance data is not limited to that of the embodiment. The format of the automatic performance data may be any format. In the embodiment, an example in which the automatic performance data is read in one electronic musical instrument and output to the tone generator circuit has been described.
The data may be output as DI data.
In the embodiment, the automatic performance data is the auto-base chord performance data stored in the ROM in advance. However, the automatic performance data is not limited to the auto-base chord performance, and may be the automatic performance data arbitrarily created by the user.

【0018】[0018]

【発明の効果】以上説明したように、本発明において
は、複数の記憶トラックからそれぞれ第2の種類の自動
演奏データが読み出されたとき、該第2の種類の自動演
奏データを音源へ出力せずにバッファへと格納し、この
第2の種類の自動演奏データが読み出されてから、第1
の出力手段によって、対応する記憶トラックの後続する
ノートオンデータが出力されるまでの間に、前記バッフ
ァに格納されている前記第2の種類の自動演奏データを
音源へ出力することにより第2の種類の自動演奏データ
の出力を遅延させるようにしたので、多量のデータが複
数の記憶トラックについて同時に発生する時でも処理が
分散され、遅れを防止することができる。
As described above, according to the present invention, when the second type of automatic performance data is read from each of the plurality of storage tracks, the second type of automatic performance data is output to the sound source. The second type of automatic performance data is read out and stored in a buffer.
By outputting the second type of automatic performance data stored in the buffer to the sound source until the subsequent note-on data of the corresponding storage track is output by the output means of (2), Since the output of the type of automatic performance data is delayed, the processing is dispersed even when a large amount of data is simultaneously generated for a plurality of storage tracks, and the delay can be prevented.

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

【図1】 本発明の実施例におけるハード構成のブロッ
ク図である。
FIG. 1 is a block diagram of a hardware configuration according to an embodiment of the present invention.

【図2】 本発明の実施例における自動演奏データの記
憶フォーマットである。
FIG. 2 is a storage format of automatic performance data in an embodiment of the present invention.

【図3】 本発明の実施例におけるメインルーチンのフ
ローチャートである。
FIG. 3 is a flowchart of a main routine in the embodiment of the present invention.

【図4】 本発明の実施例におけるタイマ割り込み処理
のフローチャートである。
FIG. 4 is a flowchart of a timer interrupt process according to the embodiment of the present invention.

【図5】 本発明の実施例におけるパネルスイッチ処理
のフローチャートである。
FIG. 5 is a flowchart of a panel switch process according to the embodiment of the present invention.

【図6】 本発明の実施例における自動演奏処理のフロ
ーチャートである。
FIG. 6 is a flowchart of an automatic performance process in the embodiment of the present invention.

【図7】 本発明の実施例における自動演奏処理のフロ
ーチャートである。
FIG. 7 is a flowchart of an automatic performance process in the embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1…CPU、2…ROM、4…RAM、5…タイマ、8
…音源回路、10…パネルスイッチ
1 CPU, 2 ROM, 4 RAM, 5 timer, 8
... Sound generator circuit, 10 ... Panel switch

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数の記憶トラック毎に、ノートオンデー
タを含む第1の種類の自動演奏データと、前記第1の種
類の自動演奏データに基づいて発生される楽音の態様を
制御するための第2の種類の自動演奏データであって、
該第2の種類の自動演奏データが読み出された後、前記
ノートオンデータが読み出された時点で前記制御が有効
となるものとを、時間経過にしたがって記憶した記憶手
段と、 複数の記憶トラックに記憶されている前記第1及び第2
の種類の自動演奏データを、並行して、時間経過にした
がって順次読み出す読み出し手段と、 前記複数の記憶トラックからそれぞれ第1の種類の自動
演奏データが読み出されたとき、該第1の種類の自動演
奏データを直ちに音源へ出力する第1の出力手段と、 前記複数の記憶トラックからそれぞれ第2の種類の自動
演奏データが読み出されたとき、該第2の種類の自動演
奏データを音源へ出力せずにバッファへと格納し、この
第2の種類の自動演奏データが読み出されてから、第1
の出力手段によって、対応する記憶トラックの後続する
ノートオンデータが出力されるまでの間に、前記バッフ
ァに格納されている前記第2の種類の自動演奏データを
音源へ出力することにより第2の種類の自動演奏データ
の出力を遅延させる第2の出力手段と、 を備えたことを特徴とする自動演奏装置。
1. A first type of automatic performance data including note-on data for each of a plurality of storage tracks, and a mode of a musical tone generated based on the first type of automatic performance data. A second type of automatic performance data,
After the second type of automatic performance data has been read out, a storage means for storing, as time elapses, the control which becomes effective when the note-on data is read out, The first and the second stored in the track
Reading means for automatically reading out the first kind of automatic performance data in parallel with the passage of time; and reading out the first kind of automatic performance data from the plurality of storage tracks, respectively. First output means for immediately outputting the automatic performance data to a sound source; and when the second type of automatic performance data is read from each of the plurality of storage tracks, the second type of automatic performance data is output to the sound source. The data is stored in the buffer without being output, and after the second type of automatic performance data is read, the first
By outputting the second type of automatic performance data stored in the buffer to the sound source until the subsequent note-on data of the corresponding storage track is output by the output means of (2), And a second output means for delaying the output of the type of automatic performance data.
JP5194238A 1993-07-09 1993-07-09 Automatic performance device Expired - Lifetime JP2713107B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5194238A JP2713107B2 (en) 1993-07-09 1993-07-09 Automatic performance device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5194238A JP2713107B2 (en) 1993-07-09 1993-07-09 Automatic performance device

Publications (2)

Publication Number Publication Date
JPH0749684A JPH0749684A (en) 1995-02-21
JP2713107B2 true JP2713107B2 (en) 1998-02-16

Family

ID=16321282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5194238A Expired - Lifetime JP2713107B2 (en) 1993-07-09 1993-07-09 Automatic performance device

Country Status (1)

Country Link
JP (1) JP2713107B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3267106B2 (en) * 1995-07-05 2002-03-18 ヤマハ株式会社 Musical tone waveform generation method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2625800B2 (en) * 1988-01-06 1997-07-02 ヤマハ株式会社 Automatic performance device

Also Published As

Publication number Publication date
JPH0749684A (en) 1995-02-21

Similar Documents

Publication Publication Date Title
US4981066A (en) Electronic musical instrument capable of editing chord performance style
JP2896716B2 (en) Automatic performance device
US5902948A (en) Performance instructing apparatus
US5369216A (en) Electronic musical instrument having composing function
US6066793A (en) Device and method for executing control to shift tone-generation start timing at predetermined beat
JP3239411B2 (en) Electronic musical instrument with automatic performance function
JP2000206968A (en) Electronic instrument setting controller
JPH1069273A (en) Playing instruction device
JP2631722B2 (en) Automatic performance device
JP2713107B2 (en) Automatic performance device
JP2768233B2 (en) Electronic musical instrument
US5942711A (en) Roll-sound performance device and method
JP2625800B2 (en) Automatic performance device
JPH10268866A (en) Automatic musical performance control device
JP2570562B2 (en) Automatic performance device and automatic accompaniment device
JP2555569B2 (en) Electronic musical instrument
JPH0631977B2 (en) Electronic musical instrument
JP3210582B2 (en) Automatic performance device and electronic musical instrument equipped with the automatic performance device
JP4214845B2 (en) Automatic arpeggio device and computer program applied to the device
JP2643277B2 (en) Automatic performance device
JP2556040B2 (en) Automatic playing device
JP3120487B2 (en) Electronic musical instrument with automatic accompaniment function
JP3407563B2 (en) Automatic performance device and automatic performance method
JP2564811B2 (en) Performance recorder
JP2962077B2 (en) Electronic musical instrument

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20071031

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081031

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091031

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20101031

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20101031

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 16

EXPY Cancellation because of completion of term