JPH11175058A - Automatic playing device - Google Patents

Automatic playing device

Info

Publication number
JPH11175058A
JPH11175058A JP9336995A JP33699597A JPH11175058A JP H11175058 A JPH11175058 A JP H11175058A JP 9336995 A JP9336995 A JP 9336995A JP 33699597 A JP33699597 A JP 33699597A JP H11175058 A JPH11175058 A JP H11175058A
Authority
JP
Japan
Prior art keywords
data
task
instruction
automatic performance
processing
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.)
Abandoned
Application number
JP9336995A
Other languages
Japanese (ja)
Inventor
Hiroyuki Sasaki
博之 佐々木
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 JP9336995A priority Critical patent/JPH11175058A/en
Publication of JPH11175058A publication Critical patent/JPH11175058A/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

PROBLEM TO BE SOLVED: To facilitate representation by other media matching automatic playing as well as the automatic playing. SOLUTION: Instruction data constituting automatic playing data in an automatic playing data memory 106 are classified roughly into scenario control data, event data, and task management data. The event data include two kinds of data, i.e., data regarding the generation of a musical sound and data regarding a display of an image. A CPU 101 processes the automatic playing data consisting of those instruction data by executing a program in a ROM 102. Consequently, control commands are outputted to a sound source system 107 and data of images to be displayed are sent to a display device 105. Consequently, the generation of the musical sound and the display of images are performed only by processing the automatic playing data.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、自動演奏と画像表
示とを実現するための技術に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for realizing automatic performance and image display.

【0002】[0002]

【従来の技術および発明が解決しようとする課題】現在
では、電子楽器等の楽音生成装置には様々な機能が搭載
されるようになっている。その機能の一つである自動演
奏機能(自動演奏装置)は、楽音生成装置に広く搭載さ
れている。今日、その自動演奏機能(自動演奏装置)
は、電子楽器等だけでなく、アコースティックピアノ等
の自然楽器に搭載されることも増えている。
2. Description of the Related Art At present, various functions are mounted on a musical sound generator such as an electronic musical instrument. An automatic performance function (automatic performance device), which is one of the functions, is widely mounted in a musical sound generation device. Today, its automatic performance function (automatic performance device)
Is increasingly mounted not only on electronic musical instruments, but also on natural musical instruments such as acoustic pianos.

【0003】自動演奏機能(自動演奏装置)による自動
演奏は、自動演奏の内容を指定するデータ(自動演奏デ
ータ)に従って楽音を発音させていくことで行われる。
その自動演奏データは、ノートオンやノートオフ、プロ
グラムチェンジといった各種イベントの内容を表すイベ
ントデータにそれを処理すべきタイミングを表す(指定
する)時間データを付加し、そのデータ対を処理させる
べき順序に従って並べた形で構成されている。
[0003] Automatic performance by an automatic performance function (automatic performance device) is performed by generating musical tones in accordance with data (automatic performance data) designating the contents of the automatic performance.
The automatic performance data is added to event data representing the contents of various events such as note-on, note-off, and program change, with time data representing (designating) the timing at which the data is to be processed, and the order in which the data pair is processed. It is arranged in the form according to.

【0004】従来の自動演奏データは、上記のように構
成され、従来の自動演奏装置(自動演奏機能)は、その
自動演奏データを先頭から順次処理していくことで自動
演奏を行っていた。
Conventional automatic performance data is configured as described above, and a conventional automatic performance device (automatic performance function) performs automatic performance by sequentially processing the automatic performance data from the head.

【0005】従来の自動演奏装置のなかには、自動演奏
以外の機能が搭載されたものがある。次に押鍵すべき鍵
を順次ユーザに音とは異なるメディアを使って通知して
いく機能(ナビゲーション機能)はその一つである。
[0005] Some conventional automatic performance devices are equipped with functions other than automatic performance. A function (navigation function) of sequentially notifying the user of a key to be pressed next using a medium different from a sound is one of them.

【0006】そのナビゲーション機能等の機能は、基本
的に、イベントデータの処理に合わせて、予め設定され
ている他の処理を行うことで実現させていた。このた
め、そのような機能は、イベントデータの処理タイミン
グを基準として動作するだけであり、自動演奏データ毎
にそれの演奏内容に合った動作や処理を行うようなこと
はできないという問題点があった。
[0006] The functions such as the navigation function are basically realized by performing other preset processing in accordance with the processing of the event data. For this reason, such a function only operates based on the processing timing of the event data, and there is a problem in that it is not possible to perform an operation or processing that matches the performance content of each automatic performance data. Was.

【0007】自動演奏データには、曲の全体を自動演奏
するためのデータだけでなく、単に伴奏といった曲の一
部分のパートだけを自動演奏するためのデータもある。
その内容は様々である。また、曲にはテンポやリズムと
いった音楽要素もある。これらのように、演奏で考慮す
べき事柄は多い。そのため、自動演奏データに合う他の
メディア上での処理内容を予め予想しておくことも非常
に困難であると考えられる。
The automatic performance data includes not only data for automatically performing the entire music, but also data for automatically performing only a part of the music such as accompaniment.
Its content varies. A song also has musical elements such as tempo and rhythm. As you can see, there are many things to consider when performing. For this reason, it is considered very difficult to predict in advance the processing content on other media that matches the automatic performance data.

【0008】本発明の課題は、自動演奏とともに、それ
に合った他のメディアでの表現を容易に行えるようにす
ることにある。
An object of the present invention is to make it possible to easily perform not only automatic performance but also expression on other media suitable for the automatic performance.

【0009】[0009]

【課題を解決するための手段】本発明の第1の態様の自
動演奏装置は、楽音の発音に関わる処理内容を指定する
第1の命令データ群、及び楽音とは異なるメディアに関
わる処理内容を指定する第2の命令データ群を少なくと
も用いて作成された命令データ列を自動演奏データとし
て記憶した記憶媒体と、記憶手段から命令データを読み
出し、該読み出した命令データに応じて、楽音の発音に
関わる処理、或いは楽音とは異なるメディアに関わる処
理を少なくとも実行する自動演奏手段と、を具備する。
According to a first aspect of the present invention, there is provided an automatic performance device for storing a first instruction data group for designating processing contents relating to tone generation of musical tones, and processing contents relating to media different from musical tones. A storage medium storing, as automatic performance data, a command data sequence created using at least the designated second command data group; and reading the command data from the storage means, and generating a tone according to the read command data. Automatic performance means for executing at least processing relating to media different from musical sounds.

【0010】本発明の第2の態様の自動演奏装置は、上
記の構成に加えて、演奏操作子群に対してユーザが行っ
た操作の内容を検出する検出手段を更に具備し、自動演
奏手段は、検出手段が検出した操作内容を記憶手段から
読み出した命令データの処理に反映させる。
An automatic performance device according to a second aspect of the present invention further comprises, in addition to the above configuration, detection means for detecting the content of an operation performed by a user on a performance operator group. Reflects the operation content detected by the detection means in the processing of the instruction data read from the storage means.

【0011】なお、上記の構成において、自動演奏手段
は、検出手段によって演奏操作子群中の定められた演奏
操作子の操作が検出されている間、該定められた演奏操
作子から特定される自動演奏データ中の命令データ列の
処理を継続して行う、ことが望ましい。
In the above arrangement, the automatic performance means is specified from the predetermined performance operator while the detection means detects the operation of the predetermined performance operator in the performance operator group. It is desirable to continuously process the instruction data string in the automatic performance data.

【0012】また、自動演奏手段は、検出手段によって
演奏操作子群中の定められた演奏操作子の操作が検出さ
れてから該操作の終了が検出された以後所定時間が経過
するまでの間、該定められた演奏操作子から特定される
自動演奏データ中の命令データ列の処理を継続して行
う、ことが望ましい。
[0012] The automatic performance means is provided for a period of time from when the detection means detects an operation of a predetermined performance operator in the performance operator group to when a predetermined time elapses after the end of the operation is detected. It is desirable that the processing of the instruction data string in the automatic performance data specified from the determined performance operator is continuously performed.

【0013】本発明の第1の態様の記録媒体は、上記自
動演奏装置が読み取り可能な自動演奏データを記録した
記録媒体であって、楽音の発音に関わる処理内容を指定
する第1の命令データ群、及び楽音とは異なるメディア
に関わる処理内容を指定する第2の命令データ群を少な
くとも用いて作成された命令データ列を自動演奏データ
として記録している。
[0013] A recording medium according to a first aspect of the present invention is a recording medium on which automatic performance data readable by the automatic performance device is recorded, wherein first instruction data for specifying processing contents related to tone generation of musical tones. An instruction data sequence created using at least a second instruction data group that specifies processing contents relating to a group and a medium different from a musical tone is recorded as automatic performance data.

【0014】本発明の第2の態様の記録媒体は、上記第
1の態様の記録媒体に記録された自動演奏データを処理
するためのプログラムを記録した記録媒体であって、第
1の命令データ群が指定する内容の処理を行い、楽音を
発音させる機能と、第2の命令データ群が指定する内容
の処理を行い、前記楽音とは異なるメディアを介して情
報を出力させる機能と、を実現させるプログラムを記録
している。
A recording medium according to a second aspect of the present invention is a recording medium storing a program for processing the automatic performance data recorded on the recording medium according to the first aspect, wherein the first instruction data Implements the function of processing the content specified by the group and generating a tone, and the function of processing the content specified by the second instruction data group and outputting information via a medium different from the tone. The program to be recorded is recorded.

【0015】本発明では、楽音の発音用の命令データ群
と、楽音とは異なるメディア用の命令データ群とを別個
に用意し、それらの命令データ群を用いて自動演奏デー
タを作成できるようになっている。それにより、2つの
メディアでの情報の供給は、自動演奏データの作成段階
で独立、且つ任意に指定(設定)される。
According to the present invention, a command data group for generating a musical tone and a command data group for a medium different from a musical tone are separately prepared, and automatic performance data can be created using the command data group. Has become. As a result, the supply of information on the two media is independently (arbitrarily) designated (set) at the stage of creating the automatic performance data.

【0016】本発明では、自動演奏データを構成する命
令データに応じて、楽音の発音に関わる処理、或いは楽
音とは異なるメディアに関わる処理を行う。それによ
り、自動演奏データを処理するだけで、楽音の発音、或
いは楽音とは異なるメディアで情報が出力される。
According to the present invention, processing relating to the tone generation of musical tones or processing relating to media different from musical tones is performed in accordance with command data constituting automatic performance data. As a result, by simply processing the automatic performance data, information is output on a tone different from the tone of the musical tone or on a medium different from the musical tone.

【0017】[0017]

【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態につき詳細に説明する。図1は、本実施
の形態による自動演奏装置を搭載した電子楽器の構成図
である。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a configuration diagram of an electronic musical instrument equipped with the automatic performance device according to the present embodiment.

【0018】その電子楽器は、図1に示すように、楽器
全体の制御を行うCPU101と、そのCPU101に
直接アクセスされるROM102、及びRAM103
と、ユーザによって操作される鍵盤104と、CPU1
01から送られた画像データを表示する表示装置105
と、自動演奏データを格納した自動演奏データメモリ
(以降、データメモリと略す)106と、CPU101
の指示に従って楽音を発音する音源システム107と、
特には図示しない各種スイッチ、及びそれらの操作状態
を検出する回路からなるスイッチ群108と、を備えて
構成されている。
As shown in FIG. 1, the electronic musical instrument has a CPU 101 for controlling the entire musical instrument, a ROM 102 and a RAM 103 directly accessed by the CPU 101.
And a keyboard 104 operated by a user and a CPU 1
Display device 105 for displaying the image data sent from 01
An automatic performance data memory (hereinafter, abbreviated as data memory) 106 storing automatic performance data;
A sound source system 107 for producing musical tones according to the instructions of
In particular, it is configured to include various switches (not shown) and a switch group 108 including a circuit for detecting an operation state thereof.

【0019】以上の構成において、その動作を説明す
る。不図示の電源がオンされると、CPU101はRO
M102に格納されたプログラムを読み出して実行する
ことにより、楽器全体の制御を開始する。その後は、R
AM103を作業用に使用しながら、鍵盤104やスイ
ッチ群108から受け取った操作情報に応じた各部の制
御を行う。
The operation of the above configuration will be described. When a power supply (not shown) is turned on, the CPU 101
By reading and executing the program stored in M102, control of the entire musical instrument is started. After that, R
While using the AM 103 for work, each unit is controlled according to operation information received from the keyboard 104 and the switch group 108.

【0020】その鍵盤104は、例えば各鍵を走査して
操作状態が変化した鍵を検出し、操作状態が変化した鍵
を表す情報(鍵番号)、及びその操作状態の変化を表す
情報、更には、押鍵時の速さ(ベロシティ値)を表す情
報を操作情報としてCPU101に送る。それらの操作
情報は、例えばMIDIデータの形でCPU101に送
る。押鍵時の速さは、設定に応じて検出して送る。その
MIDIデータを操作情報として受け取ったCPU10
1は、それを直ちに音源システム107に送る。それに
より、ユーザの鍵盤104への操作に応じて楽音の発音
や消音等の指示をリアルタイムに音源システム107に
対して行う。
The keyboard 104, for example, scans each key to detect a key whose operation state has changed, and information (key number) indicating the key whose operation state has changed, information indicating the change of the operation state, Sends information representing the speed (velocity value) at the time of key depression to the CPU 101 as operation information. The operation information is sent to the CPU 101 in the form of, for example, MIDI data. The key pressing speed is detected and transmitted according to the setting. CPU 10 receiving the MIDI data as operation information
1 sends it to the sound source system 107 immediately. As a result, in accordance with the user's operation on the keyboard 104, an instruction such as tone generation or silence is issued to the sound source system 107 in real time.

【0021】その音源システム107は、例えば音源L
SI、A/Dコンバータ、アンプ、及びスピーカから構
成されたものである。音源LSIは、CPU101から
送られたMIDIデータに従ってデジタルの波形データ
を出力し、A/Dコンバータがそれをアナログのオーデ
ィオ信号に変換する。そのオーディオ信号がアンプで増
幅された後、スピーカに入力されることで、音源システ
ム107は楽音を放音させる。
The sound source system 107 includes, for example, a sound source L
It comprises an SI, an A / D converter, an amplifier, and a speaker. The sound source LSI outputs digital waveform data in accordance with the MIDI data sent from the CPU 101, and the A / D converter converts the data into an analog audio signal. The audio signal is amplified by an amplifier and then input to a speaker, so that the tone generator system 107 emits a musical sound.

【0022】スイッチ群108を構成する各種スイッチ
としては、楽音の音色や自動演奏の楽曲等を選択するた
めの複数のスイッチ、各種のモードを選択するためのモ
ードスイッチ等がある。それらのスイッチの操作状態、
或いは操作の有無は、それの検出用回路によって検出さ
れ、その検出結果が操作情報としてCPU101に送ら
れる。
The various switches constituting the switch group 108 include a plurality of switches for selecting a timbre of a musical tone and a musical piece for automatic performance, a mode switch for selecting various modes, and the like. The operating state of those switches,
Alternatively, the presence or absence of the operation is detected by the detection circuit, and the detection result is sent to the CPU 101 as operation information.

【0023】CPU101は、その操作情報をスイッチ
群108から受け取ると、その内容に応じて各部の設定
を変更する。その設定の変更は、スイッチ群108から
受け取った操作情報に応じて、例えばRAM103に設
定内容別に保持させた各種変数の値の書き換えを行うと
ともに、その書き換えに合わせて生成したコマンドを、
設定変更の対象(例えば音源システム107)に送出す
ることで行う。それにより、ユーザがスイッチ群108
を介して楽音の音色やモード、自動演奏させる楽曲の指
定(選択)等を行えるようにしている。
When the CPU 101 receives the operation information from the switch group 108, it changes the setting of each section according to the contents. In order to change the setting, in accordance with the operation information received from the switch group 108, for example, the values of various variables held in the RAM 103 for each setting content are rewritten, and a command generated in accordance with the rewriting is generated.
This is performed by sending the setting change target (for example, the sound source system 107). As a result, the user can set the switch group 108
The user can specify (select) a tone color and mode of a musical tone, a music to be automatically played, and the like.

【0024】自動演奏データは、上記したように、デー
タメモリ(自動演奏データメモリ)105に格納されて
いる。そのデータメモリ106は、例えばICカードメ
モリであり、メーカ等から電子楽器に予め搭載させた形
で、或いは商品として供給されるものである。
The automatic performance data is stored in the data memory (automatic performance data memory) 105 as described above. The data memory 106 is, for example, an IC card memory, and is supplied from a manufacturer or the like in a form in which it is mounted on an electronic musical instrument in advance or as a commercial product.

【0025】そのデータメモリ106に格納された自動
演奏データ(楽曲)には、それぞれ、異なる番号が割り
当てられている。ユーザはスイッチ群108を介してそ
の番号を入力することで自動演奏させるデータ(楽曲)
を指定(選曲)する。CPU101は、その入力された
番号を、RAM103に保持させている選曲された楽曲
を管理するための変数(以降、選曲用変数と呼ぶ)に代
入する。その変数によって特定される楽曲の自動演奏
は、スイッチ群108を構成するスイッチの一つである
スタート/ストップスイッチ(図示せず)が操作される
と開始させ、自動演奏中にそのスイッチが再度操作され
るとそれを終了させる。
The automatic performance data (songs) stored in the data memory 106 are assigned different numbers. The user inputs the number through the switch group 108 to automatically play the data (music)
(Tune selection). The CPU 101 assigns the input number to a variable for managing the selected music stored in the RAM 103 (hereinafter, referred to as a music selection variable). The automatic performance of the music specified by the variable is started when a start / stop switch (not shown) which is one of the switches constituting the switch group 108 is operated, and the switch is operated again during the automatic performance. When done, end it.

【0026】図2は、表示装置105の画面を説明する
図である。その表示装置105は、例えばLCDであ
り、図2に示すように、表示装置105の画面201の
下方には、鍵盤104を上方から見た上面図が印刷面2
02として配置されている。
FIG. 2 is a view for explaining the screen of the display device 105. The display device 105 is, for example, an LCD. As shown in FIG. 2, below the screen 201 of the display device 105, a top view of the keyboard 104 as viewed from above is a printing surface 2.
02.

【0027】CPU101は、ユーザがスイッチ群10
8を介して所定のモード(ここでは、便宜的に表示モー
ドと呼ぶ)を設定していた場合、ユーザが現在押鍵して
いる鍵と対応する印刷面202上の位置に、その押鍵時
の速さ(ベロシティ値)に応じた長さの棒を表示させる
ことにより、鍵盤104の操作状態を表示させる。CP
U101は、それ以外には、状況に応じて、現在設定さ
れている内容や、ユーザへの指示等も画面201に表示
させる。
The CPU 101 allows the user to operate the switch group 10
If a predetermined mode (herein, referred to as a display mode for convenience) is set via the key 8, the key is pressed at a position on the printing surface 202 corresponding to the key currently pressed by the user. The operation state of the keyboard 104 is displayed by displaying a bar having a length corresponding to the speed (velocity value) of the keyboard 104. CP
U101 also displays the currently set contents, instructions to the user, and the like on the screen 201 according to the situation.

【0028】CPU101は、画面201上への画像の
表示を、表示装置105の特には図示しないメモリ内
に、表示させるべき画像のビットマップパターンを書き
込むことで行う。ビットマップパターンの画像データ、
或いはそれを生成するためのデータは、ROM102に
格納されている。特に詳細な説明は省略するが、CPU
101は、そのデータをROM102から読み出してR
AM103に格納し、必要に応じてRAM103を作業
に用いてビットマップパターンの画像データを生成す
る。
The CPU 101 displays an image on the screen 201 by writing a bitmap pattern of an image to be displayed in a memory (not shown) of the display device 105. Bitmap pattern image data,
Alternatively, data for generating the data is stored in the ROM 102. Although a detailed description is omitted, the CPU
101 reads the data from the ROM 102 and
The image data is stored in the AM 103, and the image data of the bitmap pattern is generated by using the RAM 103 for work as needed.

【0029】CPU101は、ユーザがスイッチ群10
8を介して指定した楽曲の自動演奏を以下のようにして
行う。データメモリ106に格納されている自動演奏デ
ータは、機能的な視点から、イベントデータ、シナリオ
制御データ、及びタスク管理データに大別される。シナ
リオ制御データは、主に自動演奏の進行を制御するため
の命令データであり、タスク管理データは、少なくとも
一つのイベントデータ、或いはシナリオ制御データから
構成されたデータ列(命令セット:タスク)単位の実行
を制御するための命令データである。自動演奏を実現す
るCPU101の動作の理解を容易とするために、始め
にそれらのデータのなかで主なものを種別に分けて説明
する。 (1)イベントデータ イベントデータは、イベントの種類を示す識別子兼命令
コードに、そのイベントの内容を示す少なくとも1つの
データが付加されて構成される。それら命令コード、そ
れに付加されたデータは、“,”で区切られて記述さ
れ、格納される際にはそれらは全て1バイトのデータと
して格納される。命令コードに付加させるべきデータ数
は、命令コードによって異なっている。しかし、本実施
の形態では、1命令データ当たり4バイトとしている。
“,”で区切られた欄の位置は、各欄のデータは1バイ
トに対応していることから、以降はバイト数で表現する
ことにする。これらのことがらは、シナリオ制御デー
タ、及びタスク管理データにおいても同様である。
The CPU 101 allows the user to operate the switch group 10
The automatic performance of the music designated through the step 8 is performed as follows. The automatic performance data stored in the data memory 106 is roughly classified into event data, scenario control data, and task management data from a functional viewpoint. The scenario control data is mainly instruction data for controlling the progress of the automatic performance, and the task management data is at least one event data or a data string (instruction set: task) composed of scenario control data. Instruction data for controlling execution. In order to facilitate the understanding of the operation of the CPU 101 for realizing the automatic performance, the main data among the data will be described by classifying them first. (1) Event data The event data is configured by adding at least one data indicating the content of the event to an identifier / instruction code indicating the type of the event. These instruction codes and the data added thereto are described by being delimited by “,”, and when they are stored, they are all stored as 1-byte data. The number of data to be added to the instruction code differs depending on the instruction code. However, in the present embodiment, four bytes are used for one instruction data.
Since the data in each column corresponds to one byte, the positions of the columns delimited by “,” will be represented by the number of bytes. The same applies to the scenario control data and the task management data.

【0030】また、イベントデータでは、2バイト目以
降のデータを数値等で必ずしも記述する必要はない。数
値等の換わりに、数値等を代入させたレジスタ(変数)
の名称を記述することができる。数値を記述する場合に
は、レジスタ名と区別するためにその先頭に“#”を付
加する。また、簡単な数式、例えばabc(レジスタ
名)−def(レジスタ名)といった数式を記述するこ
ともできる。これは、他においても同様である。 ・noteon,音高データ,タッチレスポンスデータ 命令コードnoteonは、2バイト目の音高データで
指定された音高の楽音を、3バイト目のタッチレスポン
スデータで指定された音量で発音させる命令コードであ
る。3バイト目のタッチレスポンスデータは、省略が可
能である。それが省略された場合には、デフォルト値で
楽音は発音される。 ・noteoff,音高データ 命令コードnoteoffは、2バイト目の音高データ
で指定された音高の楽音の消音を指示する命令コードで
ある。 ・tonechange,音色番号 命令コードtonechangeは、楽音を発音させる
音色を2バイト目の音色番号で指定された音色に変更さ
せる命令コードである。従って、この命令コードを持つ
命令データを処理した後は、その音色番号で指定された
音色で楽音は発音される。なお、命令コードtonec
hangeを有する命令データを処理していない場合に
は、予め定められた音色、例えばユーザが選択(指定)
した音色で楽音は発音される。 ・controlchange,コントロールナンバ
ー,数値データ 命令コードcontrolchangeは、2バイト目
のコントロールナンバーで指定される操作対象(ブレス
・タイプやメイン・ボリューム、エクスプレッション
等)の設定値を、3バイト目の数値データに従って変更
する命令コードである。 ・chordon,音高データ,コード種データ,タッ
チレスポンスデータ 命令コードchordonは、3バイト目のコード種デ
ータで指定されるコードを、2バイト目の音高データで
指定された音高を根音として発音させる命令コードであ
る。コードの種類別に数値を割り当てており、3バイト
目のコード種名は数値で入力するようになっている。4
バイト目のタッチレスポンスデータは、省略が可能であ
る。それが省略された場合には、デフォルト値でコード
は発音される。 ・chordoff,音高データ,コード種データ 2バイト目の音高データは根音指定用である。命令コー
ドchordoffは、2バイト目の音高データ、及び
3バイト目のコード種データで特定されるコードの発音
を終了させる命令コードである。 ・displayona,音高データ,タッチレスポン
スデータ 命令コードdisplayonaは、2バイト目の音高
データ、及び3バイト目のタッチレスポンスデータに応
じた画像を表示させる命令コードである。 ・displayoffa,音高データ 命令コードdisplayoffaは、2バイト目の音
高データで特定される画像を消去させる命令コードであ
る。 ・displayonb,音高データ,コード種デー
タ,タッチレスポンスデータ 2バイト目の音高データは根音指定用である。命令コー
ドdisplayonbは、2バイト目の音高データ、
3バイト目のコード種データ、及び4バイト目のタッチ
レスポンスデータで特定される画像を表示させる命令コ
ードである。4バイト目のタッチレスポンスデータは省
略が可能である。それが省略された場合には、タッチレ
スポンスデータはデフォルト値となる。 ・displayoffb,音高データ,コード種デー
タ 命令コードdisplayoffbは、2バイト目の音
高データ(根音を表すデータである)、及び3バイト目
のコード種データで特定される表示中の画像を消去させ
る命令コードである。
In the event data, it is not always necessary to describe the data after the second byte with numerical values or the like. Registers (variables) in which numerical values, etc. are assigned instead of numerical values, etc.
Can be described. When a numerical value is described, "#" is added to the head of the numerical value to distinguish it from the register name. Further, a simple mathematical expression such as abc (register name) -def (register name) can be described. This is the same in other cases.・ Noteon, pitch data, touch response data The instruction code noteon is an instruction code for generating a musical tone having a pitch specified by the pitch data of the second byte at a volume specified by the touch response data of the third byte. is there. The third byte of the touch response data can be omitted. If it is omitted, the tone will be pronounced with the default value. Noteoff, pitch data The instruction code noteoff is an instruction code for instructing the silence of the musical tone having the pitch specified by the pitch data in the second byte. Tonechange, timbre number The instruction code tonechange is an instruction code for changing the timbre for producing a musical tone to the timbre specified by the timbre number in the second byte. Therefore, after processing the instruction data having this instruction code, the musical tone is generated in the tone specified by the tone number. The instruction code "tonec"
In the case where the instruction data having “change” is not processed, a predetermined timbre, for example, selected (specified) by the user
The musical tone is pronounced with the selected tone. • controlchange, control number, and numerical data The instruction code controlchange changes the set value of the operation target (breath type, main volume, expression, etc.) specified by the control number in the second byte according to the numerical data in the third byte Instruction code. Chordon, pitch data, code type data, touch response data The instruction code chordon is a code specified by the code type data of the third byte, with the pitch specified by the pitch data of the second byte as the root tone. Instruction code to sound. Numerical values are assigned to each code type, and the code type name in the third byte is entered as a numerical value. 4
The byte of the touch response data can be omitted. If it is omitted, the chord will be pronounced with the default value. Chordoff, pitch data, chord type data The pitch data in the second byte is for root designation. The instruction code chordoff is an instruction code for terminating the sound of the code specified by the pitch data of the second byte and the code type data of the third byte. Displayona, pitch data, touch response data Command code displayona is a command code for displaying an image corresponding to the pitch data of the second byte and the touch response data of the third byte. Displayoffa, pitch data The instruction code displayoffa is an instruction code for deleting the image specified by the pitch data in the second byte. -Displayonb, pitch data, chord type data, touch response data The pitch data in the second byte is for specifying the root note. The instruction code displayonb is pitch data of the second byte,
This is an instruction code for displaying an image specified by the code type data of the third byte and the touch response data of the fourth byte. The fourth byte touch response data can be omitted. If it is omitted, the touch response data has a default value. • displayoffb, pitch data, code type data The instruction code displayoffb deletes the image being displayed specified by the pitch data of the second byte (data representing the root note) and the code type data of the third byte. This is the instruction code to be executed.

【0031】このように、イベントデータとして、楽音
の発音に関わるデータの他に、音とは異なるメディア
(ここでは視覚的知覚メディア)に関わるデータが用意
されている。それにより、自動演奏データを処理するだ
けで、複数のメディアで情報をユーザに伝達させること
ができるようになっている。 (2)シナリオ制御データ シナリオ制御データは、そのデータがシナリオ制御デー
タであることを示す識別子scenarioが1バイト
目(先頭)に記述され、2バイト目以降にその処理内容
が記述される構成となっている。2バイト目には命令コ
ード、3バイト目以降には、その命令コードに従った処
理を行ううえで使用されるデータが記述される。そのた
め、シナリオ制御データでは、2バイト目以降の記述だ
けに着目して説明する。 ・mov,レジスタ名,レジスタ名或いは数値 命令コードmovは、3バイト目に記述されたレジスタ
(変数)に、4バイト目に記述されたレジスタ(変数)
の内容、或いは数値を代入する命令コードである。 ・add,レジスタ名,レジスタ名或いは数値 命令コードaddは、3バイト目に記述されたレジスタ
(変数)の内容に、4バイト目に記述されたレジスタ
(変数)の内容、或いは数値を加算し、その加算結果を
3バイト目に記述されたレジスタに代入させる命令コー
ドである。 ・sub,レジスタ名、レジスタ名或いは数値 命令コードsubは、3バイト目に記述されたレジスタ
(変数)の内容から、4バイト目に記述されたレジスタ
(変数)の内容、或いは数値を減算し、その減算結果を
3バイト目に記述されたレジスタに代入させる命令コー
ドである。 ・and,レジスタ名,レジスタ名或いは数値 命令コードandは、3バイト目に記述されたレジスタ
(変数)の内容と、4バイト目に記述されたレジスタ
(変数)の内容、或いは数値との論理積を演算し、その
演算結果を3バイト目に記述されたレジスタに代入させ
る命令コードである。 ・adc,レジスタ名,レジスタ名或いは数値 命令コードadcは、3バイト目に記述されたレジスタ
(変数)の内容に、4バイト目に記述されたレジスタ
(変数)の内容或いは数値、更にはそれらを加算するこ
とで得られるキャリーの値を加算し、その加算結果を3
バイト目に記述されたレジスタに代入させる命令コード
である。 ・sbc,レジスタ名,レジスタ名或いは数値 命令コードsbcは、3バイト目に記述されたレジスタ
(変数)の内容に、4バイト目に記述されたレジスタ
(変数)の内容或いは数値、更にはそれらを減算するこ
とで得られるキャリーの値を減算し、その減算結果を3
バイト目に記述されたレジスタに代入させる命令コード
である。 ・orr,レジスタ名,レジスタ名或いは数値 命令コードorrは、3バイト目に記述されたレジスタ
(変数)の内容と、4バイト目に記述されたレジスタ
(変数)の内容或いは数値との論理和を演算し、その演
算結果を3バイト目に記述のレジスタに代入させる命令
コードである。 ・xor,レジスタ名,レジスタ名或いは数値 命令コードxorは、3バイト目に記述されたレジスタ
(変数)の内容と、4バイト目に記述されたレジスタ
(変数)内容或いは数値との排他的論理和を演算し、そ
の演算結果を3バイト目に記述のレジスタに代入させる
命令コードである。 ・inc,レジスタ名 命令コードincは、3バイト目に記述されたレジスタ
(変数)の内容をインクリメントさせる命令コードであ
る。 ・tst,レジスタ名,レジスタ名或いは数値 命令コードtstは、3バイト目に記述されたレジスタ
(変数)の内容と、4バイト目に記述されたレジスタ
(変数)の内容或いは数値との論理積を演算し、その演
算結果をフラグ(キャリーフラグ或いはゼロフラグ)の
みに反映させる命令コードである。 ・cmp,レジスタ名,レジスタ名或いは数値 命令コードcmpは、3バイト目に記述されたレジスタ
(変数)の内容から、4バイト目に記述されたレジスタ
(変数)の内容或いは数値を減算し、その減算結果をフ
ラグ(キャリーフラグ或いはゼロフラグ)のみに反映さ
せる命令コードである。 ・jmp,オフセットアドレス(ラベル名) 命令コードjmpは、現在処理中の命令データを示すア
ドレス(タスクアドレス)の値に、3バイト目のオフセ
ットアドレスの値を無条件に加算させる命令コードであ
る。本実施の形態では、そのジャンプ先のアドレスの指
定を容易とするために、ジャンプ先の指定用の見出し
(以降、ラベルと呼ぶ)を使用できるようにしている。
それにより、オフセットアドレスにはジャンプ先のラベ
ル名を記述できるようにしている。そのため、この命令
コードjmpを有する命令データを実行(処理)する
と、タスクアドレスの値はジャンプ先として指定された
ラベルのアドレスの値に変更される。
As described above, as event data, in addition to data relating to the sound generation of musical tones, data relating to media different from sounds (here, visual perceptual media) are prepared. As a result, information can be transmitted to the user through a plurality of media simply by processing the automatic performance data. (2) Scenario control data The scenario control data has a configuration in which an identifier scenario indicating that the data is scenario control data is described in the first byte (head), and the processing content is described in the second and subsequent bytes. ing. An instruction code is described in the second byte, and data used in performing processing according to the instruction code is described in the third and subsequent bytes. Therefore, the scenario control data will be described focusing on the description of the second and subsequent bytes only. Mov, register name, register name or numerical value The instruction code mov is the register (variable) described in the third byte and the register (variable) described in the fourth byte
Or an instruction code for substituting a numerical value. Add, register name, register name or numerical value The instruction code add is obtained by adding the contents of the register (variable) described in the fourth byte or the numerical value to the contents of the register (variable) described in the third byte, This is an instruction code for substituting the addition result into the register described in the third byte. Sub, register name, register name or numerical value The instruction code sub subtracts the contents of the register (variable) described in the fourth byte or the numerical value from the contents of the register (variable) described in the third byte, This is an instruction code for substituting the result of the subtraction into the register described in the third byte. • and, register name, register name or numeric value The instruction code and is the logical product of the register (variable) content described in the third byte and the register (variable) content or numeric value described in the fourth byte Is operated, and the operation result is assigned to the register described in the third byte. • adc, register name, register name or numeric value The instruction code adc is the content of the register (variable) described in the third byte, the content or numerical value of the register (variable) described in the fourth byte, and furthermore, The carry value obtained by the addition is added, and the addition result is 3
This is an instruction code to be assigned to the register described in the byte. • sbc, register name, register name or numerical value The instruction code sbc is the contents of the register (variable) described in the third byte, the contents or numerical value of the register (variable) described in the fourth byte, and furthermore, The value of the carry obtained by the subtraction is subtracted, and the result of the subtraction is 3
This is an instruction code to be assigned to the register described in the byte. • orr, register name, register name or numeric value The instruction code orr is the logical sum of the register (variable) content described in the third byte and the register (variable) content or numeric value described in the fourth byte. This is an instruction code for performing an operation and assigning the operation result to the register described in the third byte. Xor, register name, register name or numerical value The instruction code xor is an exclusive OR of the contents of the register (variable) described in the third byte and the contents of the register (variable) described in the fourth byte or the numerical value Is operated, and the operation result is assigned to the register described in the third byte. • inc, register name The instruction code inc is an instruction code for incrementing the contents of the register (variable) described in the third byte. • tst, register name, register name or numeric value The instruction code tst is the logical product of the register (variable) content described in the third byte and the register (variable) content or numeric value described in the fourth byte. This is an instruction code that performs a calculation and reflects the calculation result only on a flag (carry flag or zero flag). · Cmp, register name, register name or numerical value The instruction code cmp subtracts the content or numerical value of the register (variable) described in the fourth byte from the content of the register (variable) described in the third byte, This instruction code reflects the subtraction result only on the flag (carry flag or zero flag). Jmp, offset address (label name) The instruction code jmp is an instruction code for unconditionally adding the value of the third byte offset address to the value of the address (task address) indicating the instruction data currently being processed. In the present embodiment, in order to facilitate designation of the jump destination address, a jump destination designation heading (hereinafter, referred to as a label) can be used.
Thus, the label name of the jump destination can be described in the offset address. Therefore, when the instruction data having the instruction code jmp is executed (processed), the value of the task address is changed to the value of the address of the label specified as the jump destination.

【0032】なお、そのラベルには他の機能は割り当て
ていないことから、タスクアドレスの変更後に最初に処
理される命令データは実質的にはジャンプ先に指定され
たラベルの次に位置する命令データということになる。
そのことから、ラベルは、タスク、或いはそれ以外の命
令セットの区切りを表す整理用として用いることが可能
である。 ・jz,オフセットアドレス(ラベル名) 命令コードjzは、ゼロフラグが“1”の場合に、3バ
イト目のオフセットアドレス(ここではラベル名)で指
定されるアドレスの値にタスクアドレスの値を変更(ジ
ャンプ)させる命令コードである。ゼロフラグの値は、
直前に実行された演算の結果が0の場合に“1”とな
る。 ・jnz、オフセットアドレス(ラベル名) 命令コードjnzは、ゼロフラグが“0”の場合に、3
バイト目のオフセットアドレス(ここではラベル名)で
指定されるアドレスの値にタスクアドレスの値を変更
(ジャンプ)させる命令コードである。ゼロフラグの値
は、直前に実行された演算の結果が0でなかった場合に
“0”となる。 ・jc,オフセットアドレス(ラベル名) 命令コードjcは、キャリーフラグが“1”の場合に、
3バイト目のオフセットアドレス(ここではラベル名)
で指定されるアドレスの値にタスクアドレスの値を変更
(ジャンプ)させる命令コードである。キャリーフラグ
の値は、直前に実行した加算において桁上りが発生した
場合、或いは減算においてボローが発生した場合に
“1”になる。 ・jnc,オフセットアドレス(ラベル名) 命令コードjncは、キャリーフラグが“0”の場合
に、3バイト目のオフセットアドレス(ここではラベル
名)で指定されるアドレスの値にタスクアドレスの値を
変更(ジャンプ)させる命令コードである。キャリーフ
ラグの値は、直前に実行した加算において桁上りが発生
しなかった場合、或いは減算においてボローが発生しな
かった場合に“0”になる。 ・makernd,レジスタ名 命令コードmakerndは、乱数を発生させ、その乱
数値を3バイト目で指定されたレジスタに代入させる命
令コードである。 ・wait,レジスタ名或いは数値 命令コードWaitは、3バイト目に記述されたレジス
タの内容、或いは数値で指定された時間だけ処理を中断
(待機)させる命令コードである。 ・waitnz,レジスタ名 命令コードwaitnzは、3バイト目に記述されたレ
ジスタの内容が“0”以外となるまで待機、即ちタスク
の処理の進行を一時的に中断させる命令コードである。 ・table,レコード数,レジスタ名 命令コードtableを有する命令データには、それに
続けて、3バイト目のレコード数で指定された数のテー
ブルの要素(レコード)が付加され、それらで一つの命
令データセットを形成する。そのレコードは、2バイト
で構成され、1バイト目に分岐条件に相当する数値或い
はレジスタ名、2バイト目にオフセットアドレス(ラベ
ル名)が格納される。命令コードtableを有する命
令データの処理は、その3バイト目で指定されたレジス
タの値と分岐条件が一致するレコードを検索し、その検
索したレコードの2バイト目のオフセットアドレス(ラ
ベル名)で指定されるアドレスの値にタスクアドレスを
変更することで行われる。分岐条件が一致するレコード
を検索できなかった場合には、最後のレコードの直後に
位置する命令データが次に処理される。 ・writet,(レジスタ名),レジスタ名 本実施の形態では、ユーザが演奏操作子群(鍵盤10
4)に対して行った操作の内容を特定するための情報と
して、その操作が行われたタイミングを表す情報(時間
データ)、その操作が押鍵(ノートオン)か否かを表す
情報(操作種別データ)、その操作が行われた鍵を表す
情報(音高データ)の3つを取得するようにしている。
それらの情報は、それぞれ、異なる専用の領域に格納さ
せている。命令コードwritetは、時間データ格納
用に用意された領域(以降、時間データ領域と呼ぶ)内
の3バイト目に記述されたレジスタの内容、或いは数値
で指定されるアドレスに、4バイト目に記述されたレジ
スタの内容を時間データとして格納させる命令コードで
ある。 ・writee,(レジスタ名),レジスタ名 命令コードwriteeは、音高データ格納用に用意さ
れた領域(以降、音高データ領域と呼ぶ)内の3バイト
目に記述されたレジスタの内容、或いは数値で指定され
るアドレスに、4バイト目に記述されたレジスタの内容
を音高データとして格納させる命令コードである。 ・writek,(レジスタ名),レジスタ名 命令コードwritekは、操作種別データ格納用に用
意された領域(以降、操作種別データ領域と呼ぶ)内の
3バイト目に記述されたレジスタの内容、或いは数値で
指定されるアドレスに、4バイト目に記述されたレジス
タの内容を操作種別データとして格納させる命令コード
である。 ・readt,(レジスタ名),レジスタ名 命令コードreadtは、タイミング情報領域内の3バ
イト目に記述されたレジスタの内容、或いは数値で指定
されるアドレスの時間データを読み出し、それを4バイ
ト目に記述されたレジスタに代入させる命令コードであ
る。 ・reade,(レジスタ名),レジスタ名 命令コードreadeは、音高情報領域内の3バイト目
に記述されたレジスタの内容、或いは数値で指定される
アドレスの音高データを読み出し、それを4バイト目に
記述されたレジスタに代入させる命令コードである。 ・readk,(レジスタ名),レジスタ名 命令コードreadeは、操作種別情報領域内の3バイ
ト目に記述されたレジスタの内容、或いは数値で指定さ
れるアドレスの操作種別データを読み出し、それを4バ
イト目に記述されたレジスタに代入させる命令コードで
ある。 ・writect,(レジスタ名),レジスタ名 本実施の形態では、ユーザがコード進行を任意に設定す
るといったことを可能とするために、コードに関する各
種情報を各々専用の領域に格納するようにしている。そ
れらの情報として、コードの種類を表す情報(コード種
データ)、根音を表す情報(音高データ)、発音開始か
消音かを表す情報(操作種別データ)、及び操作種別デ
ータで表されるイベントのタイミングを表す情報(時間
データ)の4種類を格納できるようにしている。命令コ
ードwritectは、コードの時間データ格納用に用
意された領域(以降、コード用時間データ領域と呼ぶ)
内の3バイト目に記述されたレジスタの内容、或いは数
値で指定されるアドレスに、4バイト目に記述されたレ
ジスタの内容を時間データとして格納させる命令コード
である。 ・writecn,(レジスタ名),レジスタ名 命令コードwritecnは、コード種データ格納用に
用意された領域(以降、コード種データ領域と呼ぶ)内
の3バイト目に記述されたレジスタの内容、或いは数値
で指定されるアドレスに、4バイト目に記述されたレジ
スタの内容をコード種データとして格納させる命令コー
ドである。 ・writecr,(レジスタ名),レジスタ名 命令コードwritecrは、コードの根音を表す音高
データの格納用に用意された領域(以降、コード用音高
データ領域と呼ぶ)内の3バイト目に記述されたレジス
タの内容、或いは数値で指定されるアドレスに、4バイ
ト目に記述されたレジスタの内容を音高データとして格
納させる命令コードである。 ・writeck,(レジスタ名),レジスタ名 命令コードwriteckは、コードの操作種別データ
格納用に用意された領域(以降、コード用操作種別デー
タ領域と呼ぶ)内の3バイト目に記述されたレジスタの
内容、或いは数値で指定されるアドレスに、4バイト目
に記述されたレジスタの内容をコードの操作種別データ
として格納させる命令コードである。 ・readct,(レジスタ名),レジスタ名 命令コードreadctは、コード用時間データ領域内
の3バイト目に記述されたレジスタの内容、或いは数値
で指定されるアドレスの時間データを読み出し、それを
4バイト目に記述されたレジスタに代入させる命令コー
ドである。 ・readcn,(レジスタ名),レジスタ名 命令コードreadcnは、コード種データ領域内の3
バイト目に記述されたレジスタの内容、或いは数値で指
定されるアドレスのコード種データを読み出し、それを
4バイト目に記述されたレジスタに代入させる命令コー
ドである。 ・readcr,(レジスタ名),レジスタ名 命令コードreadcrは、コード用音高データ領域内
の3バイト目に記述されたレジスタの内容、或いは数値
で指定されるアドレスの音高データを読み出し、それを
4バイト目に記述されたレジスタに代入させる命令コー
ドである。 ・readck,(レジスタ名),レジスタ名 命令コードreadckは、コード用操作種別データ領
域内の3バイト目に記述されたレジスタの内容、或いは
数値で指定されるアドレスの操作種別データを読み出
し、それを4バイト目に記述されたレジスタに代入させ
る命令コードである。 ・freechord 上記したように、ユーザが演奏操作子群(鍵盤104)
に対して行った操作内容を特定するための各種データ
は、時間データ領域、音高データ領域、及び操作種別デ
ータ領域に格納される。命令コードfreechord
は、それらの領域に格納されたデータを基に、ユーザが
行った演奏に合わせて発音させるコードを決定する命令
コードである。本実施の形態では、決定したコードを表
すデータとして、根音を表す音高データ、及びコード種
データを生成し、それらをコード用音高データ領域、及
びコード種データ領域に各々格納させるようにしてい
る。 ・特定用途に用いられるレジスタ レジスタkeyには、ユーザが演奏操作子群(ここでは
鍵盤104)を操作することで直前に発生したイベント
の内容を表す値が自動的に代入される。具体的には、そ
の操作がノートオン(押鍵)であれば“1”、ノートオ
フ(離鍵)であれば“−1”、操作状態が変化していな
ければ“0”が各々代入される。レジスタnoteに
は、そのイベントが発生した鍵の鍵番号(音高データ)
が代入される。レジスタvelには、タッチレスポンス
機能が搭載されている場合に、押鍵時の速さを示す値
(タッチレスポンスデータ)が代入される。
Since no other function is assigned to the label, the instruction data processed first after the task address is changed is substantially the instruction data located next to the label specified as the jump destination. It turns out that.
Therefore, the label can be used for organizing a task or other instruction set. • jz, offset address (label name) When the zero flag is “1”, the instruction code zz changes the task address value to the address value specified by the third byte offset address (here, the label name) ( This is the instruction code to jump. The value of the zero flag is
It becomes “1” when the result of the immediately preceding operation is 0. • jnz, offset address (label name) The instruction code jnz is 3 when the zero flag is “0”.
This is an instruction code for changing (jumping) the value of the task address to the value of the address specified by the byte offset address (here, the label name). The value of the zero flag becomes “0” when the result of the immediately preceding operation is not “0”. • jc, offset address (label name) The instruction code jc is obtained when the carry flag is “1”.
Offset address of the third byte (label name here)
Is an instruction code for changing (jumping) the value of the task address to the value of the address specified by. The value of the carry flag becomes “1” when a carry occurs in the immediately preceding addition or when a borrow occurs in the subtraction. • jnc, offset address (label name) The instruction code jnc changes the task address value to the address value specified by the third byte offset address (here, label name) when the carry flag is “0”. (Jump) instruction code. The value of the carry flag becomes “0” when no carry has occurred in the immediately preceding addition or when no borrow has occurred in the subtraction. Makernd, register name The instruction code makernd is an instruction code for generating a random number and substituting the random number value into the register specified by the third byte. Wait, Register Name or Numerical Value The instruction code Wait is an instruction code for suspending (waiting) processing for the time specified by the contents of the register described in the third byte or a numerical value. Waitnz, register name The instruction code waitnz is an instruction code for waiting until the contents of the register described in the third byte become other than “0”, that is, for temporarily suspending the progress of task processing. Table, number of records, register name Instruction data having an instruction code table is followed by a number of table elements (records) specified by the number of records in the third byte, and one instruction data Form a set. The record is composed of two bytes, and the first byte stores a numerical value or a register name corresponding to a branch condition, and the second byte stores an offset address (label name). The processing of the instruction data having the instruction code “table” is performed by searching for a record whose branch condition matches the value of the register specified by the third byte, and by specifying the offset address (label name) of the second byte of the searched record. This is done by changing the task address to the value of the address to be performed. If a record that matches the branch condition cannot be retrieved, the instruction data located immediately after the last record is processed next. Write, (register name), register name In this embodiment, the user sets the performance operator group (keyboard 10
4) As information for specifying the content of the operation performed on the information, information indicating the timing at which the operation was performed (time data), and information indicating whether the operation was a key press (note on) (operation Type data) and information (pitch data) indicating the key on which the operation was performed are acquired.
These pieces of information are stored in different dedicated areas. The instruction code write is described in the contents of a register described in the third byte in an area prepared for storing time data (hereinafter referred to as a time data area), or in an address specified by a numerical value in a fourth byte. This is an instruction code for storing the contents of the registered register as time data. Write, (register name), register name The instruction code writee is the content of a register described in the third byte in an area prepared for storing pitch data (hereinafter referred to as a pitch data area), or a numerical value. Is an instruction code for storing the contents of the register described in the fourth byte as pitch data at the address specified by. Writek, (register name), register name The instruction code writek is the content of the register described in the third byte in the area prepared for storing the operation type data (hereinafter, referred to as an operation type data area), or a numerical value. Is an instruction code for storing the contents of the register described in the fourth byte as operation type data at the address specified by. • readt, (register name), register name The instruction code readt reads the contents of the register described in the third byte in the timing information area or the time data of the address specified by the numerical value, and reads it in the fourth byte. Instruction code to be assigned to the described register. Read, (register name), register name The instruction code read reads the contents of the register described in the third byte in the pitch information area or the pitch data at the address specified by the numerical value, and writes it in 4 bytes. Instruction code to be assigned to the register described in the eye. • readk, (register name), register name The instruction code read reads out the contents of the register described in the third byte in the operation type information area or the operation type data of the address specified by the numerical value, and writes it in 4 bytes. Instruction code to be assigned to the register described in the eye. Write, (register name), register name In this embodiment, in order to allow the user to arbitrarily set the chord progression, various kinds of information on the code are stored in dedicated areas. . As such information, it is represented by information representing a chord type (chord type data), information representing a root note (pitch data), information representing whether to start or mute a sound (operation type data), and operation type data. Four types of information (time data) representing the timing of an event can be stored. The instruction code write is an area prepared for storing code time data (hereinafter, referred to as a code time data area).
Is an instruction code for storing the contents of the register described in the fourth byte as time data in the contents of the register described in the third byte or the address specified by the numerical value. Writecn, (register name), register name The instruction code writecn is the content of the register described in the third byte in the area prepared for storing the code type data (hereinafter referred to as the code type data area), or a numerical value. Is an instruction code for storing the contents of the register described in the fourth byte as code type data at the address specified by. Writecr, (register name), register name The instruction code writecr is the third byte in the area prepared for storing the pitch data representing the root of the code (hereinafter referred to as the chord pitch data area). This is an instruction code for storing the contents of the register described in the fourth byte as pitch data in the contents of the described register or at an address specified by a numerical value. · Writeeck, (register name), register name The instruction code writeeck is the code of the register described in the third byte in the area prepared for storing the code operation type data (hereinafter referred to as the code operation type data area). This is an instruction code for storing the content of the register described in the fourth byte as the operation type data of the code at the address specified by the content or the numerical value. • readct, (register name), register name The instruction code readct reads the contents of the register described in the third byte in the code time data area or the time data of the address specified by the numerical value, and reads it out in 4 bytes. Instruction code to be assigned to the register described in the eye. • readcn, (register name), register name The instruction code readcn is 3 in the code type data area.
This is an instruction code for reading out the contents of the register described in the byte or the code type data at the address specified by the numerical value and assigning it to the register described in the fourth byte. Readcr, (register name), register name The instruction code readcr reads the contents of the register described in the third byte in the code pitch data area, or the pitch data at the address specified by the numerical value, and reads it. This is an instruction code to be assigned to the register described in the fourth byte. • readck, (register name), register name The instruction code readck reads the contents of the register described in the third byte in the code operation type data area or the operation type data at the address specified by the numerical value, and reads it. This is an instruction code to be assigned to the register described in the fourth byte. Freechord As described above, the user sets the performance operation group (keyboard 104).
Various data for specifying the content of the operation performed on the data are stored in the time data area, the pitch data area, and the operation type data area. Instruction code freechord
Is an instruction code for determining a code to sound according to the performance performed by the user based on the data stored in those areas. In the present embodiment, pitch data representing a root note and chord type data are generated as data representing the determined chord, and these are stored in the chord pitch data area and the chord type data area, respectively. ing. A register used for a specific application A value representing the content of an event that has occurred immediately before the user operates the performance operator group (here, the keyboard 104) is automatically substituted into the register key. Specifically, "1" is assigned if the operation is note-on (key depression), "-1" if the operation is note-off (key release), and "0" if the operation state is not changed. You. The register note has a key number (pitch data) of the key in which the event has occurred.
Is substituted. When the touch response function is mounted, a value indicating the key pressing speed (touch response data) is assigned to the register vel.

【0033】コード関連としては、以下のレジスタが用
いられる。レジスタchordには、ユーザが演奏操作
子群を操作してコードを指定したか否か、即ちコードを
検出したか否かを示す値が代入される。コードを検出す
れば“1”、それを検出しなければ“0”が各々代入さ
れる。レジスタchdnoには、検出したユーザが指定
のコードを表す値(コード種データ)が代入される。レ
ジスタrtnoには、そのコードの根音を表す音高デー
タ(鍵番号)が代入される。
The following registers are used as codes. The register chord is assigned a value indicating whether or not the user has operated the performance operator group to specify a chord, that is, whether or not a chord has been detected. If a code is detected, "1" is substituted, and if not, "0" is substituted. A value (code type data) representing a code specified by the detected user is assigned to the register chdno. The pitch data (key number) representing the root note of the chord is assigned to the register rtno.

【0034】上記以外には、自動演奏の進行を管理する
ために、レジスタtimerに時間の経過を表す値が代
入される。その値は、例えばCPU101が備えたタイ
マの値、或いは所定時間間隔毎に随時更新される値であ
る。データ格納用の領域の大きさ(格納可能なデータ
数)を示す値はレジスタendに代入される。本実施の
形態では、各領域の大きさを同じにしている。そのた
め、レジスタendの値は固定である。 (3)タスク管理データ タスク管理データは、そのデータ(命令)がタスク管理
データであることを示す識別子taskが1バイト目
(先頭)に記述され、2バイト目以降にその処理内容が
記述される構成となっている。具体的には、2バイト目
には命令コード、3バイト目にはその命令コードに従っ
て処理されるタスクの命令セットを特定する情報(ここ
では主にラベル名)が記述される。そのようなことか
ら、タスク管理データにおいても、上記シナリオ制御デ
ータと同様に、2バイト目以降の記述だけに着目して説
明する。 ・newtask,オフセットアドレス(ラベル名) 命令コードnewtaskは、3バイト目に記述のオフ
セットアドレス(ラベル名)以降の命令データ列を一つ
のタスクとして生成(起動)させる命令コードである。
この命令コードnewtaskを持つ命令データを処理
すると、3バイト目で指定されたタスクの状態は実行中
であることを示すALIVEとなる。なお、タスクの名
称には、それの命令データ列の指定に使われたラベル名
を用いることにする。 ・killtask,オフセットアドレス(ラベル名) 命令コードkilltaskは、3バイト目に記述のオ
フセットアドレス(ラベル名)で特定されるタスクの処
理を終了(消滅)させる命令コードである。この命令コ
ードkilltaskを格納した命令データを実行する
と、3バイト目で指定されたタスクの状態は実行中でな
いことを示すDEADとなる。 ・keyboardtask,最低音の音高データ,最
高音の音高データ 命令コードkeyboardtaskは、3バイト目で
指定の最低音と4バイト目で指定の最高音とで指定され
る範囲を、演奏操作子(鍵盤104)への操作が有効な
範囲として設定する命令コードである。その有効範囲
は、タスク別に設定される。
In addition to the above, in order to manage the progress of the automatic performance, a value indicating the passage of time is substituted into the register timer. The value is, for example, a timer value provided in the CPU 101 or a value that is updated as needed at predetermined time intervals. A value indicating the size of the data storage area (the number of storable data) is assigned to the register end. In the present embodiment, the size of each region is the same. Therefore, the value of the register end is fixed. (3) Task Management Data In the task management data, an identifier "task" indicating that the data (instruction) is the task management data is described in the first byte (head), and the processing content is described in the second and subsequent bytes. It has a configuration. Specifically, an instruction code is described in the second byte, and information (here, mainly a label name) for specifying an instruction set of a task to be processed according to the instruction code is described in the third byte. For this reason, in the task management data, as in the case of the above-described scenario control data, the description will focus on only the description of the second and subsequent bytes. • newtask, offset address (label name) The instruction code newtask is an instruction code for generating (starting) an instruction data string after the offset address (label name) described in the third byte as one task.
When the instruction data having the instruction code newtask is processed, the status of the task specified by the third byte becomes ALIVE indicating that the task is being executed. Note that the name of the task is the label name used to specify the instruction data string. Killtask, offset address (label name) The instruction code killtask is an instruction code for terminating (eliminating) the processing of the task specified by the offset address (label name) described in the third byte. When the instruction data storing the instruction code killtask is executed, the state of the task specified by the third byte becomes DEAD indicating that the task is not being executed. Keyboardtask, pitch data of the lowest note, pitch data of the highest note The instruction code keyboardtask specifies the range specified by the lowest note specified in the third byte and the highest note specified in the fourth byte as a performance operator ( This is an instruction code to be set as an effective range for an operation on the keyboard 104). The effective range is set for each task.

【0035】データメモリ106に格納されている自動
演奏データは、上記のような命令コードを格納した命令
データ列として構成されている。CPU101は、スタ
ート/ストップスイッチをユーザが操作することで自動
演奏データの処理を開始し、その後は、起動させたタス
クのなかで処理対象とするタスクをサイクリックに順次
切り換えていくことで、各タスクを並行して処理する。
タスクの切り換えは、具体的には以下のようにして行っ
ている。
The automatic performance data stored in the data memory 106 is configured as a command data string storing the above-described command codes. The CPU 101 starts the processing of the automatic performance data by operating the start / stop switch by the user, and after that, by sequentially switching the tasks to be processed among the activated tasks, each of the tasks is sequentially switched. Process tasks in parallel.
The task switching is specifically performed as follows.

【0036】CPU101は、起動させたタスクの処理
を行ううえで必要な情報、具体的にはタスクの状態、そ
のタスクで次に処理する命令データのアドレス(タスク
アドレス)、その命令データを処理するタイミングを表
す時刻(タスク時間)、及びそのタスクで有効となって
いる鍵域を特定するスプリット開始値とスプリット終了
値等の処理管理情報を各タスク毎にまとめて保持する。
ここでは、そのタスク毎に保持した処理管理情報の集合
体をタスクテーブルと呼ぶことにする。図3は、自動演
奏データを処理することで生成されるタスクテーブル例
を説明する図である。
The CPU 101 processes information necessary for processing the started task, specifically, the state of the task, the address of the next instruction data to be processed by the task (task address), and processes the instruction data. Processing management information such as a time indicating a timing (task time) and a split start value and a split end value for specifying a key area valid for the task are collectively held for each task.
Here, an aggregate of the process management information held for each task is called a task table. FIG. 3 is a diagram illustrating an example of a task table generated by processing automatic performance data.

【0037】タスク状態には、上記したDEAD、AL
IVEの他に、SLEEPがある。そのSLEEPと
は、タスクが待機中であることを示す状態である。例え
ばシナリオ制御データの一つである命令データscen
ario,waitnz,key(ユーザが演奏操作子
群を次に操作するまで待つ命令データ)といったその処
理が完了する時刻(タイミング)が特定できない命令デ
ータを処理した場合に設定される。タスク時間は、例え
ばシナリオ制御データの一つである命令データscen
ario,wait,レジスタ名といったその処理が完
了する時刻(タイミング)が特定できる命令データを処
理した場合に更新される。
The task states include the DEAD and AL described above.
In addition to IVE, there is SLEEP. The SLEEP is a state indicating that the task is waiting. For example, instruction data scen which is one of the scenario control data
The time is set when an instruction data such as ario, waitnz, and key (instruction data to wait for the user to operate the performance operator group next) cannot be identified. The task time is, for example, instruction data scen which is one of the scenario control data.
It is updated when processing instruction data, such as ario, wait, and register name, which can specify the time (timing) at which the processing is completed.

【0038】上記タスクテーブルには、新たにタスクを
起動する度に、そのタスクの処理管理情報を格納するた
めの領域(レコード:以降、タスク領域と呼ぶ)を追加
させる。それにより、全タスクに関する情報をタスクテ
ーブルに格納させている。
Each time a new task is started, an area (record: hereinafter referred to as a task area) for storing processing management information of the task is added to the task table. Thereby, information on all tasks is stored in the task table.

【0039】タスクテーブル中の各タスク領域には、そ
の先頭に、それに対応するタスクに割り当てた番号が格
納される。その番号には、図3に示すように、先頭に
“T”を付けて示してある。図中のタスク指示レジスタ
TGは、その番号でタスクテーブル中のタスク領域を指
定するレジスタである。そのレジスタTGの値によって
指定されるタスク領域に処理管理情報が格納されている
タスクが現在の処理対象である。
At the head of each task area in the task table, a number assigned to the corresponding task is stored. As shown in FIG. 3, the numbers are prefixed with "T". The task instruction register TG in the figure is a register that specifies a task area in the task table by its number. The task whose processing management information is stored in the task area specified by the value of the register TG is the current processing target.

【0040】CPU101は、タスク指示レジスタTG
の値をサイクリックに、図3のタスクテーブル例では、
T0→T1→T2→T3→T0の順序で順次更新する。
その更新によって新たに指定されたタスクの処理は、タ
スク状態やタスク時間等からそれを行うべきか否か判定
し、その判定結果に従って行う。このとき、そのタスク
の処理を行うべきではないと判定すると、タスク指示レ
ジスタTGを更新して次のタスクに移行する。そうでな
ければ、そのタスクの処理を、タスク状態をALIVE
からDEAD或いはSLEEPに変更する迄、或いは、
タスク時間に現在時刻よりも後の時刻を設定する迄継続
して行う。そのようにして、CPU101は、処理対象
とするタスクをサイクリックに順次切り換えながら、各
タスクを並行して処理する。
The CPU 101 sets the task instruction register TG
Cyclically the value of
Update is sequentially performed in the order of T0 → T1 → T2 → T3 → T0.
The processing of the task newly specified by the update is determined based on the task state, the task time, and the like, and whether to perform the task is performed according to the determination result. At this time, if it is determined that the processing of the task should not be performed, the task instruction register TG is updated, and the process proceeds to the next task. Otherwise, the processing of the task is set to ALIVE.
Until changing to DEAD or SLEEP, or
The task is continued until a time later than the current time is set in the task time. In this way, the CPU 101 processes each task in parallel while cyclically switching the task to be processed.

【0041】なお、上記タスクテーブルの各欄のデータ
は、実際には例えばその欄の数に合わせて用意した配列
変数に保持される。それらの配列変数において、タスク
指示レジスタTGの値は配列変数中の一つの要素を特定
するための引数として用いられる。
The data in each column of the task table is actually stored in, for example, array variables prepared according to the number of the columns. In these array variables, the value of the task instruction register TG is used as an argument for specifying one element in the array variable.

【0042】図4は、自動演奏処理の動作フローチャー
トである。この図4を参照して、上記した各種命令デー
タから構成される自動演奏データを処理するCPU10
1の動作について詳細に説明する。
FIG. 4 is an operation flowchart of the automatic performance process. Referring to FIG. 4, CPU 10 for processing the automatic performance data composed of the various instruction data described above.
The operation 1 will be described in detail.

【0043】なお、その自動演奏処理は、自動演奏の実
現に関わる処理動作のみを抽出してその流れを表したも
のであり、CPU101が、ROM102に格納されて
いるプログラムを実行することで実現される。その実行
は、例えばユーザがスイッチ群108のモードスイッチ
を操作して自動演奏が行えるモード(自動演奏モード)
を設定した後、スイッチ群108のスタート/ストップ
スイッチを操作することで開始される。
The automatic performance process is a process in which only the processing operations related to the realization of the automatic performance are extracted and the flow is shown. The CPU 101 executes the program stored in the ROM 102 to realize the automatic performance process. You. The execution is performed, for example, by a mode in which the user can operate the mode switches of the switch group 108 to perform an automatic performance (automatic performance mode).
Is set, the operation is started by operating the start / stop switch of the switch group 108.

【0044】先ず、ステップ401では、選曲用変数に
よって指定されている自動演奏データを対象としたタス
クの初期化を行う。その初期化では、タスクテーブルの
作成や、各種変数(レジスタ)への初期値の代入などが
行われる。より具体的には、ユーザが指定した自動演奏
データの処理の開始に合わせて、その先頭に命令データ
が位置するタスク(起動タスク或いは最上位タスク)の
タスク領域(第1番目の領域)をタスクテーブルに設
け、タスク状態にはALIVEを設定する。各種変数と
しては、タスク指示レジスタTG、レジスタtimer
に0を各々代入する。そのような初期化を行った後、ス
テップ402に移行する。なお、レジスタtimerの
値は、特に詳細な説明は省略するが、例えばCPU10
1が備えたタイマのカウントアップに応じて随時更新さ
れるようになっている。
First, in step 401, a task for automatic performance data specified by a song selection variable is initialized. In the initialization, a task table is created, and initial values are assigned to various variables (registers). More specifically, the task area (first area) of the task (startup task or top-level task) in which the instruction data is located at the beginning of the task area is set at the start of the processing of the automatic performance data specified by the user. It is provided in the table and ALIVE is set in the task state. Various variables include a task instruction register TG and a register timer
Are respectively substituted with 0. After performing such initialization, the process proceeds to step 402. Although the value of the register timer is not described in detail,
1 is updated at any time in accordance with the count-up of the timer provided in 1.

【0045】ステップ402では、タスク指示レジスタ
TGの値が0か否か判定する。その値が0であった場
合、その判定はYESとなってステップ403に移行す
る。そうでない場合には、その判定はNOとなってステ
ップ404に移行する。タスク指示レジスタTGは、タ
スクテーブルに処理管理情報が格納されているタスクを
サイクリックに指示する。そのため、タスク指示レジス
タTGの値は、全てのタスクを一通り処理対象とした後
に再び0となる。
In step 402, it is determined whether the value of the task instruction register TG is 0. If the value is 0, the determination is YES and the process moves to step 403. Otherwise, the determination is no and the process moves to step 404. The task instruction register TG cyclically instructs a task whose processing management information is stored in the task table. Therefore, the value of the task instruction register TG becomes 0 again after all the tasks have been processed as one.

【0046】ステップ403では、鍵盤104に各鍵の
走査を行わせ、その走査結果である操作情報を受け取
る。続くステップ404では、その操作情報を解析し
て、状態が変化した鍵、その変化の内容を判定する。そ
の操作情報がMIDIデータの形で受け取ったのであれ
ば、1バイト目(ステータスバイト)の上位4ビットか
ら鍵の状態が変化した内容、2バイト目からその鍵の音
高を各々特定する。
In step 403, the keyboard 104 is caused to scan each key, and operation information as a result of the scanning is received. In the following step 404, the operation information is analyzed to determine the key whose status has changed and the content of the change. If the operation information is received in the form of MIDI data, the contents of the change of the key state from the upper four bits of the first byte (status byte) are specified from the second byte, respectively.

【0047】上記解析を行った結果、状態が変化した鍵
が存在していなかった場合、ステップ405でレジスタ
keyに0を代入した後、ステップ410に移行する。
新たに押鍵された鍵を検出した場合には、ステップ40
6でレジスタkeyに1、レジスタnoteにその鍵に
割り当てた番号(鍵番号)を各々代入した後、ステップ
407に移行する。
As a result of the above analysis, if there is no key whose state has changed, 0 is assigned to the register key in step 405, and the process proceeds to step 410.
If a newly pressed key is detected, step 40
In step 6, 1 is assigned to the register key, and the number (key number) assigned to the key is assigned to the register note, and the process proceeds to step 407.

【0048】そのステップ407では、新たに押鍵され
た鍵の鍵番号、及び既に押鍵されている鍵の鍵番号の組
み合わせから、鍵盤104を介した指定内容を検出する
解析を行い、その結果コードを新たに検出したか否か判
定する。新たに押鍵された鍵によってコードが指定され
た場合、その判定はYESとなってステップ408に移
行する。そうでない場合には、その判定はNOとなって
ステップ410に移行する。ステップ408では、新た
にコードを検出したことから、レジスタchordに
1、レジスタrtnoにコードを指定する鍵のなかで最
低音の鍵の鍵番号、レジスタchdnoに検出したコー
ドを表す番号を各々代入する。それが終了した後、ステ
ップ410に移行する。
In step 407, analysis is performed to detect the specified content via the keyboard 104 from the combination of the key number of the newly depressed key and the key number of the already depressed key. It is determined whether a code has been newly detected. If the code is designated by the newly pressed key, the determination is YES and the process moves to step 408. Otherwise, the determination is no and the process moves to step 410. In step 408, since a new code is detected, 1 is substituted into the register chord, the key number of the lowest tone key among the keys specifying the code in the register rtno, and the number representing the detected code are substituted into the register chdno. . After that, the process proceeds to step 410.

【0049】コードの指定方法には、コードの構成音を
全て指定させる方法の他に、それよりも簡単にコードを
指定させる方法もある。ここでは、混乱を避けるため
に、本実施の形態では後者の方法だけを採用しているこ
とにする。本実施の形態で採用したその方法では、予め
設定された鍵域中の鍵を一つだけ押鍵すればメジャーコ
ード、二つ押鍵すればマイナーコード、三つ押鍵すれば
7thコード、四つ以上押鍵すれば7thマイナーコー
ドが指定されたとして検出する。根音(ルート)は、そ
のようにして押鍵された鍵のなかでの最低音である。
As a method of designating a chord, there is a method of designating all chords, or a method of designating a chord more simply. Here, in order to avoid confusion, the present embodiment adopts only the latter method. According to the method adopted in the present embodiment, a major code is obtained by pressing only one key in a preset key range, a minor code is obtained by pressing two keys, a 7th code is obtained by pressing three keys, If more than one key is pressed, it is detected that the 7th minor code has been designated. The root (root) is the lowest note of the keys thus depressed.

【0050】一方、ステップ404で離鍵された鍵を検
出したと判定した場合には、ステップ409に移行す
る、そのステップ409でレジスタkeyに−1、レジ
スタnoteにその鍵の番号を各々代入すると、次にス
テップ408に移行する。そのようにして、鍵盤104
に対してユーザが行った操作の内容を示す値(情報)
が、レジスタkeyやnote、chord、rtn
o、更にはchdnoに、その操作内容に応じて代入さ
れる。
On the other hand, if it is determined in step 404 that the released key has been detected, the flow shifts to step 409. In step 409, -1 is assigned to the register key and the key number is assigned to the register note. Then, the process proceeds to step 408. In that way, the keyboard 104
(Information) indicating the content of the operation performed by the user on the
Is a register key, note, chord, rtn
o, and further substituted into chdno according to the contents of the operation.

【0051】ステップ410では、現在処理対象として
いるタスクの状態を判定する。タスク指示レジスタTG
が指示するタスク領域のタスク状態がDEADであった
場合、ステップ419に移行する。それ以外の状態、即
ちALIVE、或いはSLEEPであった場合には、ス
テップ411に移行する。
In step 410, the status of the task currently being processed is determined. Task instruction register TG
If the task state of the task area specified by the is "DEAD", the process proceeds to step 419. If the status is other than that, that is, ALIVE or SLEEP, the process proceeds to step 411.

【0052】ステップ411では、起動中のタスクの処
理を進行させる状況となっているか否か判定する。タス
ク時間で指定された時刻が現在時刻(レジスタtime
rの値)より後、或いはSLEEP状態を解除すべき
(SLEEPからALIVEにする)条件が満たされて
いない場合、その判定はNOとなってステップ419に
移行する。そうでない場合には、即ちタスクの処理を進
行させる状況となっている場合には、その判定はYES
となってステップ412に移行する。なお、例えば命令
データscenario,waitnz,keyを処理
することでSLEEP状態に移行したのであれば、レジ
スタkeyに0以外の値が代入されることでSLEEP
状態を解除すべき条件が満たされることになる。
In step 411, it is determined whether or not the processing of the running task proceeds. The time specified by the task time is the current time (register time
After (value of r), or when the condition to release the SLEEP state (change from SLEEP to ALIVE) is not satisfied, the determination is NO and the process proceeds to step 419. If not, that is, if it is a situation where the processing of the task proceeds, the determination is YES.
And the process proceeds to step 412. Note that, for example, if a transition to the SLEEP state is made by processing the instruction data scenario, waitnz, and key, a value other than 0 is substituted into the register key, and the SLEEP state is obtained.
The condition for releasing the state is satisfied.

【0053】ステップ412では、タスクアドレスが指
定する命令データをデータメモリ106から読み出す。
続くステップ413では、その読み出した命令データの
種類の判別を行う。
At step 412, the instruction data specified by the task address is read from the data memory 106.
In the following step 413, the type of the read instruction data is determined.

【0054】その命令データがイベントデータ(図中で
は演奏データ)であった場合、ステップ414の演奏デ
ータ処理を実行した後、ステップ417に移行する。そ
の命令データがシナリオ制御データ、即ち1バイト目に
識別子scenarioが格納されていた場合には、ス
テップ415のシナリオ制御データ処理を実行した後、
ステップ417に移行する。その命令データがタスク管
理データ、即ち1バイト目に識別子taskが格納され
ていた場合には、ステップ416のタスク管理処理を実
行した後にステップ417に移行する。そのようにし
て、ステップ412で読み出した命令データの種類に応
じた処理が行われる。それらの処理の詳細については後
述する。
If the instruction data is event data (performance data in the figure), the process goes to step 417 after performing the performance data processing in step 414. If the instruction data is scenario control data, that is, if the identifier scenario is stored in the first byte, after executing the scenario control data processing of step 415,
Move to step 417. If the instruction data is task management data, that is, if the identifier “task” is stored in the first byte, the process proceeds to step 417 after executing the task management process of step 416. In this way, a process corresponding to the type of the instruction data read in step 412 is performed. Details of these processes will be described later.

【0055】ステップ417では、タスクアドレスの値
に4を加算する更新を行う。その4の加算は、上記した
ように、本実施の形態では各命令データの格納に4バイ
トを割り当てているためである。それが終了すると、ス
テップ418に移行する。
In step 417, an update for adding 4 to the value of the task address is performed. The addition of 4 is because, as described above, in this embodiment, 4 bytes are allocated for storing each instruction data. Upon completion, the process moves to step 418.

【0056】ステップ418では、タスク状態がALI
VEか否か判定する。ステップ415のシナリオ制御デ
ータ処理、或いはステップ416のタスク管理データ処
理を実行した結果、タスク状態をSLEEP、或いはD
EADに変更した場合、その判定はNOとなってステッ
プ419に移行する。そうでない場合には、その判定は
YESとなってステップ411に戻る。
At step 418, the task status is set to ALI.
It is determined whether or not VE. As a result of executing the scenario control data processing of step 415 or the task management data processing of step 416, the task state is changed to SLEEP or D.
If it has been changed to EAD, the determination is no and the process moves to step 419. Otherwise, the determination is yes and the process returns to step 411.

【0057】このようにして、ステップ411〜418
で形成される処理ループは、タスク状態をALIVEか
らSLEEP或いはDEADに変更するまで、或いはタ
スク時間を現在時刻(レジスタtimerの値)よりも
後に設定するまで繰り返し実行される。
In this way, steps 411 to 418
Is repeatedly executed until the task state is changed from ALIVE to SLEEP or DEAD, or until the task time is set after the current time (the value of the register timer).

【0058】一方、ステップ418或いは411の判定
がNO、或いはステップ410でのタスク状態の判定が
DEADであった場合に移行するステップ419では、
現タスクの処理はそれ以上進行させることができないこ
とから、処理対象を次のタスクに移行させる。その移行
は、タスク指示レジスタTGの値をインクリメントする
ことで行われる。それが終了すると、ステップ402に
戻る。
On the other hand, when the determination in step 418 or 411 is NO, or when the determination of the task state in step 410 is DEAD, the process proceeds to step 419, where
Since the processing of the current task cannot proceed any further, the processing target is shifted to the next task. The transition is performed by incrementing the value of the task instruction register TG. Upon completion, the process returns to step 402.

【0059】このように、自動演奏処理では、タスク状
態やタスク時間等を常に監視することで、タスク指示レ
ジスタTGで指定されるタスクの処理の進行、更には処
理対象とするタスクの切り換えを行っている。
As described above, in the automatic performance processing, the task status, the task time, and the like are constantly monitored, so that the processing of the task specified by the task instruction register TG progresses and the task to be processed is switched. ing.

【0060】次に、上記自動演奏処理中で実行される各
種サブルーチン処理について、図5〜図9に示す動作フ
ローチャートを参照して詳細に説明する。図5は、上記
ステップ414として実行される演奏データ処理の動作
フローチャートである。始めに、この図3を参照して、
演奏データ処理について詳細に説明する。
Next, various subroutine processes executed during the automatic performance process will be described in detail with reference to the operation flowcharts shown in FIGS. FIG. 5 is an operation flowchart of the performance data processing executed as step 414. First, referring to FIG.
The performance data processing will be described in detail.

【0061】その演奏データ処理は、命令コードnot
eonやnoteoffといった楽音の発音、或いはそ
の条件の指定に直接的に関わる命令コードを有する命令
データや、命令コードdisplayonaやdisp
layoffaといった画像の表示に関わる命令コード
を有する命令データを処理するために行われる。その命
令コードには多くの種類がある。そのため、図3には、
使われる頻度が高い命令コードのみに着目してその処理
の流れを抽出して表している。図4に示す自動演奏処理
からは、ステップ412で読み出した命令データが引数
として渡される。
The performance data processing is performed by using the instruction code not.
instruction data having an instruction code directly related to the generation of a musical tone such as eon or noteoff or the specification of the condition, or instruction codes displayona or disp
This is performed in order to process command data having a command code related to display of an image, such as a rayoffa. There are many types of instruction codes. Therefore, FIG.
The flow of the processing is extracted and shown by focusing only on the instruction code that is frequently used. The command data read in step 412 is passed as an argument from the automatic performance processing shown in FIG.

【0062】先ず、ステップ501では、図4に示す自
動演奏処理から渡された命令データの分類を行う。ステ
ップ501に続くステップ502以降は、その分類結果
に応じて処理が行われる。
First, in step 501, the instruction data passed from the automatic performance processing shown in FIG. 4 is classified. From step 502 following step 501, processing is performed according to the classification result.

【0063】そのステップ502では、その命令データ
中の命令コードがnoteonか否か判定する。その命
令コードがnoteonであった場合、その判定はYE
Sとなってステップ503に移行する。そうでない場合
には、その判定はNOとなってステップ504に移行す
る。
In step 502, it is determined whether or not the instruction code in the instruction data is "noteon". If the instruction code is "noteon", the determination is YE
In S, the process proceeds to step 503. Otherwise, the determination is no and the process moves to step 504.

【0064】ステップ503では、命令データ中の音高
データ、タッチレスポンスデータで指定された楽音の発
音開始を指示する制御コマンド(例えばMIDIデー
タ)を生成し、それを音源システム107に送る処理を
行う。それが終了した後、一連の処理を終了する。な
お、タッチレスポンスデータは省略が可能であることか
ら、命令データ中にタッチレスポンスデータが無い場合
には、それのデフォルト値を用いて制御コマンドは生成
される。
In step 503, a control command (for example, MIDI data) for instructing the start of sounding of the musical tone specified by the pitch data and the touch response data in the command data is generated and transmitted to the tone generator system 107. . After the end, a series of processing ends. Since the touch response data can be omitted, if there is no touch response data in the command data, the control command is generated using its default value.

【0065】一方、ステップ504では、命令データ中
の命令コードがnoteoffか否か判定する。その命
令コードがnoteoffであった場合、その判定はY
ESとなってステップ505に移行する。そうでない場
合には、その判定はNOとなってステップ506に移行
する。
On the other hand, in step 504, it is determined whether or not the instruction code in the instruction data is noteoff. If the instruction code is noteoff, the determination is Y
It becomes ES and moves to step 505. Otherwise, the determination is no and the process moves to step 506.

【0066】ステップ505では、命令データ中の音高
データで指定された楽音の消音を指示する制御コマンド
(MIDIデータ)を生成し、それを音源システム10
7に送る処理を行う。それが終了した後、一連の処理を
終了する。
In step 505, a control command (MIDI data) for instructing the silence of the musical tone specified by the pitch data in the instruction data is generated, and the control command is generated.
7 is performed. After the end, a series of processing ends.

【0067】ステップ506では、命令データ中の命令
コードがtonechangeか否か判定する。その命
令コードがtonechangeであった場合、その判
定はYESとなってステップ507に移行する。そうで
ない場合には、その判定はNOとなってステップ508
に移行する。
At step 506, it is determined whether or not the instruction code in the instruction data is tonechange. If the instruction code is tonechange, the determination is YES and the process moves to step 507. Otherwise, the determination is no and step 508
Move to

【0068】ステップ508では、命令データ中の命令
コードがchordonか否か判定する。その命令コー
ドがchordonであった場合、その判定はYESと
なってステップ509に移行する。そうでない場合に
は、その判定はNOとなってステップ510に移行す
る。
At step 508, it is determined whether or not the instruction code in the instruction data is chordon. If the instruction code is chordon, the determination is YES and the process moves to step 509. Otherwise, the determination is no and the process moves to step 510.

【0069】ステップ509では、命令データ中の音高
データ、コード種データ、及びタッチレスポンスデータ
で指定されたコードの発音開始を指示する制御コマンド
(例えばMIDIデータ)を生成し、それを音源システ
ム107に送る処理を行う。その制御コマンドは、ルー
トの音高データ、及びコード種データから特定されるコ
ードの構成音毎にそれぞれ生成されて音源システム10
7に送られる。それが終了した後、一連の処理を終了す
る。なお、タッチレスポンスデータは省略が可能である
ことから、命令データ中にタッチレスポンスデータが無
い場合には、それのデフォルト値を用いて各構成音の制
御コマンドは生成される。
In step 509, a control command (for example, MIDI data) for instructing the start of sounding of the chord specified by the pitch data, chord type data, and touch response data in the instruction data is generated, and the control command is generated. Perform processing to send to. The control command is generated for each of the constituent sounds of the chord specified from the pitch data of the root and the chord type data, and the sound source system 10
7 After the end, a series of processing ends. Since the touch response data can be omitted, if there is no touch response data in the command data, a control command for each component sound is generated using its default value.

【0070】ステップ510では、命令データ中の命令
コードがchordoffか否か判定する。その命令コ
ードがchordoffであった場合、その判定はYE
Sとなってステップ511に移行する。そうでない場合
には、その判定はNOとなって図6のステップ512に
移行する。
At step 510, it is determined whether or not the instruction code in the instruction data is chordoff. If the instruction code is chordoff, the determination is YE
In S, the process proceeds to step 511. Otherwise, the determination is no and the process moves to step 512 in FIG.

【0071】ステップ511では、命令データ中の音高
データ、及びコード種データで指定されたコードの発音
終了を指示する制御コマンド(例えばMIDIデータ)
を生成し、それを音源システム107に送る処理を行
う。その制御コマンドは、ルートの音高データ、及びコ
ード種データから特定されるコードの構成音毎にそれぞ
れ生成されて音源システム107に送られる。それが終
了した後、一連の処理を終了する。
In step 511, a control command (for example, MIDI data) for instructing the end of sound generation of a chord specified by pitch data and chord type data in the instruction data.
Is generated and transmitted to the sound source system 107. The control command is generated for each of the constituent sounds of the chord specified from the pitch data of the root and the chord type data, and sent to the sound source system 107. After the end, a series of processing ends.

【0072】図6のステップ512では、命令データ中
の命令コードがdisplayonaか否か判定する。
その命令コードがdisplayonaであった場合、
その判定はYESとなってステップ513に移行する。
そうでない場合には、その判定はNOとなってステップ
514に移行する。
At step 512 in FIG. 6, it is determined whether or not the instruction code in the instruction data is displayona.
If the instruction code is displayona,
The determination is YES and the process moves to step 513.
Otherwise, the determination is no and the process moves to step 514.

【0073】ステップ513では、命令データ中の音高
データ、及びタッチレスポンスデータで指定される画像
のデータを音高データから特定される表示装置105の
メモリ内の領域に書き込む処理を行う。それにより、そ
の画像を画面201上に表示させる。それが終了した
後、一連の処理を終了する。なお、上記画像データは、
ROM102に格納された画像データを読み出すこと
で、或いは読み出した画像データを更に加工することで
取得されるデータである。
In step 513, a process of writing the pitch data in the command data and the image data specified by the touch response data to an area in the memory of the display device 105 specified from the pitch data is performed. Thus, the image is displayed on the screen 201. After the end, a series of processing ends. The above image data is
The data is obtained by reading the image data stored in the ROM 102 or by further processing the read image data.

【0074】ステップ514では、命令データ中の命令
コードがdisplayoffaか否か判定する。その
命令コードがdisplayoffaであった場合、そ
の判定はYESとなってステップ515に移行する。そ
うでない場合には、その判定はNOとなってステップ5
16に移行する。
At step 514, it is determined whether or not the instruction code in the instruction data is displayoffa. If the instruction code is displayoffa, the determination is YES and the process moves to step 515. Otherwise, the determination is no and step 5
Move to 16.

【0075】ステップ515では、命令データ中の音高
データから特定される画像を画面201上から消去させ
る処理を行う。それが終了した後、一連の処理を終了す
る。なお、その画像の消去は、例えば表示装置105の
メモリ内に格納されているその画像のデータを消去する
ことで行われる。
At step 515, a process for deleting the image specified from the pitch data in the command data from the screen 201 is performed. After the end, a series of processing ends. The deletion of the image is performed by deleting the data of the image stored in the memory of the display device 105, for example.

【0076】ステップ516では、命令データ中の命令
コードがdisplayonbか否か判定する。その命
令コードがdisplayonbであった場合、その判
定はYESとなってステップ517に移行する。そうで
ない場合には、その判定はNOとなってステップ518
に移行する。
At step 516, it is determined whether or not the instruction code in the instruction data is displayonb. If the instruction code is displayonb, the determination is YES and the process moves to step 517. Otherwise, the determination is no and step 518
Move to

【0077】ステップ517では、命令データ中の音高
データ、コード種データ、及びタッチレスポンスデータ
で指定される画像のデータを、音高データ及びコード種
データから特定される表示装置105のメモリ内の領域
に書き込む処理を行う。それにより、その画像を画面2
01上に表示させる。それが終了した後、一連の処理を
終了する。なお、上記画像データは、ROM102に格
納された画像データを読み出し、それを更に加工するこ
とで生成される。
At step 517, the pitch data, the code type data, and the image data specified by the touch response data in the instruction data are stored in the memory of the display device 105 specified by the pitch data and the code type data. Perform the process of writing to the area. As a result, the image is displayed on screen 2
01 is displayed. After the end, a series of processing ends. The image data is generated by reading the image data stored in the ROM 102 and further processing the image data.

【0078】ステップ518では、命令データ中の命令
コードがdisplayoffbか否か判定する。その
命令コードがdisplayoffbであった場合、そ
の判定はYESとなってステップ519に移行する。そ
うでない場合には、その判定はNOとなって一連の処理
を終了する。
At step 518, it is determined whether or not the instruction code in the instruction data is displayoffb. If the instruction code is displayoffb, the determination is YES and the process moves to step 519. Otherwise, the determination is NO and the series of processing ends.

【0079】ステップ519では、命令データ中の音高
データ、及びコード種データから特定される画像を画面
201上から消去させる処理を行う。それが終了した
後、一連の処理を終了する。なお、その画像の消去は、
表示装置105のメモリ内に格納されているその画像の
データを消去することで行われる。
In step 519, a process for deleting the image specified by the pitch data and the code type data in the instruction data from the screen 201 is performed. After the end, a series of processing ends. In addition, the deletion of the image
This is performed by deleting the data of the image stored in the memory of the display device 105.

【0080】このように、演奏データ処理では、イベン
トデータに分類した命令データを処理することで、楽音
を音源システム107から発音させたり、画像を表示装
置105に表示させる。そのため、自動演奏データを処
理した場合には、音声と画像という2つのメディアの情
報がユーザに伝達されることになる。また、それによっ
て、自動演奏に合った画像をその進行に合わせて表示さ
せたりすることが、自動演奏データを作成するだけで行
うことができる。そのため、自動演奏とともに、それに
合った他のメディアでの表現も容易に行えるようにな
る。
As described above, in the performance data processing, the tone data is generated from the tone generator system 107 and the image is displayed on the display device 105 by processing the instruction data classified as the event data. Therefore, when the automatic performance data is processed, information of two media, that is, sound and image, is transmitted to the user. In addition, an image suitable for the automatic performance can be displayed in accordance with the progress of the automatic performance only by creating the automatic performance data. For this reason, it is possible to easily perform not only the automatic performance but also the expression in another medium suitable for the automatic performance.

【0081】図7、及び図8は、上記ステップ415と
して実行されるシナリオ制御データ処理の動作フローチ
ャートである。次に、それら図7及び図8を参照して、
シナリオ制御データ処理について詳細に説明する。
FIG. 7 and FIG. 8 are operation flowcharts of the scenario control data processing executed as step 415. Next, referring to FIGS. 7 and 8,
The scenario control data processing will be described in detail.

【0082】そのシナリオ制御データ処理は、識別子s
cenarioが1バイト目(先頭)に格納されたシナ
リオ制御データを処理するために行われる。その命令コ
ードには多くの種類がある。そのため、図7及び図8に
は、使用頻度が高い命令コードのみに着目してその処理
の流れを抽出して表している。図4に示す自動演奏処理
からは、ステップ412で読み出した命令データが引数
として渡される。
The scenario control data processing is performed using the identifier s
Cenario is performed to process the scenario control data stored in the first byte (head). There are many types of instruction codes. For this reason, FIG. 7 and FIG. 8 show the processing flow extracted and focused on only the instruction code that is frequently used. The command data read in step 412 is passed as an argument from the automatic performance processing shown in FIG.

【0083】先ず、ステップ701では、図4に示す自
動演奏処理から渡された命令データの分類を行う。ステ
ップ701に続くステップ702以降は、その分類結果
に応じて処理が行われる。
First, in step 701, the instruction data passed from the automatic performance processing shown in FIG. 4 is classified. After step 702 following step 701, processing is performed according to the classification result.

【0084】そのステップ702では、命令データ中の
命令コードがmov、add、sub、cmp、an
d、orr、或いはinc等のレジスタを用いた演算に
関わる命令コードか否か判定する。その命令コードがそ
れらのような演算に関わる命令コードであった場合、そ
の判定はYESとなってステップ703に移行する。そ
うでない場合には、その判定はNOとなってステップ7
04に移行する。
In step 702, the instruction code in the instruction data is mov, add, sub, cmp, an
It is determined whether or not the instruction code is related to an operation using a register such as d, orr, or inc. If the instruction code is an instruction code relating to such an operation, the determination is YES and the process moves to step 703. Otherwise, the determination is no and step 7
Move to 04.

【0085】ステップ703では、その命令コードに従
って、命令データ中で指定されたレジスタや数値を用い
た演算を行う。それにより、レジスタの内容の更新や代
入が行われ、更には、命令コードによってはキャリーフ
ラグ、或いはゼロフラグに演算結果に応じた値が代入さ
れる。その後に一連の処理が終了する。
In step 703, an operation is performed using a register or a numerical value specified in the instruction data according to the instruction code. As a result, the contents of the register are updated or substituted, and further, depending on the instruction code, a value corresponding to the operation result is substituted into the carry flag or the zero flag. Thereafter, a series of processing ends.

【0086】ステップ704では、命令データ中の命令
コードがjmp、jz、jnz、jc、jnc、或いは
table等の命令データの処理をジャンプさせる命令
コードか否か判定する。その命令コードがそれらのよう
な命令コードであった場合、その判定はYESとなって
ステップ705に移行する。そうでない場合には、その
判定はNOとなってステップ706に移行する。
At step 704, it is determined whether or not the instruction code in the instruction data is an instruction code for jumping the processing of instruction data such as jmp, jz, jnz, jc, jnc, or table. If the instruction code is such an instruction code, the determination is YES and the process moves to step 705. Otherwise, the determination is no and the process moves to step 706.

【0087】ステップ705では、その命令コードに従
った処理を行うべき条件が満たされているか否か判定し
て、その判定結果に応じたタスクアドレスの変更を行
う。このとき、その条件が満たされていると判定する
と、命令データ中のオフセットアドレス(ラベル名)で
指定されるアドレスの値にタスクアドレスの値を変更
し、そうでないと判定すると、タスクアドレスは変更し
ない。タスクアドレスは、シナリオ制御データ処理を終
了した後、図4に示す自動演奏処理中のステップ417
で更新される。従って、タスクアドレスを変更しなかっ
た場合、処理を終えた命令データのすぐ後ろに位置する
命令データが次に処理される。タスクアドレスを変更し
た場合には、指定されたラベルの次に位置する命令デー
タが次に処理されることになる。
At step 705, it is determined whether or not the condition for performing the processing according to the instruction code is satisfied, and the task address is changed according to the determination result. At this time, if it is determined that the condition is satisfied, the task address value is changed to the address value specified by the offset address (label name) in the instruction data, and if not, the task address is changed. do not do. After completing the scenario control data processing, the task address is stored in step 417 during the automatic performance processing shown in FIG.
Will be updated. Therefore, if the task address is not changed, the instruction data located immediately after the processed instruction data is processed next. When the task address is changed, the instruction data located next to the designated label is processed next.

【0088】ステップ706では、命令データ中の命令
コードがwait、waitnz等の次の命令データを
処理するまでに時間を必要とする命令コードが否か判定
する。その命令コードがそれらのような命令コードであ
った場合、その判定はYESとなってステップ707に
移行する。そうでない場合には、その判定はNOとなっ
てステップ708に移行する。
At step 706, it is determined whether or not the instruction code in the instruction data requires time to process the next instruction data such as wait, waitnz, or the like. If the instruction code is such an instruction code, the determination is YES and the process moves to step 707. Otherwise, the determination is no and the process moves to step 708.

【0089】ステップ707では、命令コードの種類に
応じて、タスク状態、或いはタスク時間を設定する処理
を行う。具体的には、命令コードがwaitnzであっ
た場合、ユーザの鍵盤104への操作待ちであることか
ら、タスク状態をSLEEPに設定する。命令コードが
waitであった場合には、命令データ中の3バイト目
に格納された名称のレジスタの内容或いは数値をレジス
タtimerの値に加算することで次の命令データを処
理する時間(時刻)を算出し、それをタスク時間として
設定する。それが終了した後、一連の処理を終了する。
このステップ707を実行すると、図4に示す自動演奏
処理中のステップ418、或いは411の判定がNOと
なることから、処理対象とするタスクが切り換えられる
ことになる。
In step 707, a process for setting a task state or a task time according to the type of the instruction code is performed. Specifically, if the instruction code is waitnz, the task state is set to SLEEP because the user is waiting for an operation on the keyboard 104. If the instruction code is "wait", the time (time) at which the next instruction data is processed by adding the register contents or the numerical value of the name stored in the third byte of the instruction data to the value of the register timer. Is calculated and set as the task time. After the end, a series of processing ends.
When this step 707 is executed, the determination of step 418 or 411 during the automatic performance processing shown in FIG. 4 becomes NO, so that the task to be processed is switched.

【0090】ステップ708では、命令データ中の命令
コードがreade、readt、或いはreadkの
鍵別の操作内容を表すデータを読み出す命令コードか否
か判定する。その命令コードがそれらのような命令コー
ドであった場合、その判定はYESとなってステップ7
09に移行する。そうでない場合には、その判定はNO
となって図8のステップ710に移行する。
In step 708, it is determined whether or not the instruction code in the instruction data is an instruction code for reading data representing the operation content for each key of read, readt, or readk. If the instruction code is such an instruction code, the determination is YES and step 7
Move to 09. Otherwise, the determination is no
The process then proceeds to step 710 in FIG.

【0091】ステップ709では、命令コードから読み
出すべきデータの種類(領域)を特定し、その領域の命
令データ中の3バイト目のデータで指定されたアドレス
からデータを読み出し、その読み出したデータを4バイ
ト目で指定されたレジスタに代入することが行われる。
そのようなレジスタへの代入を行った後、一連の処理を
終了させる。
At step 709, the type (area) of the data to be read is specified from the instruction code, the data is read from the address specified by the third byte data in the instruction data in that area, and the read data is read The assignment to the register specified by the byte is performed.
After such assignment to the register, a series of processing is terminated.

【0092】図8のステップ710では、命令データ中
の命令コードがwritee、writet、或いはw
ritekの鍵別の操作内容を表すデータを書き込む命
令コードか否か判定する。その命令コードがそれらのよ
うな命令コードであった場合、その判定はYESとなっ
てステップ711に移行する。そうでない場合には、そ
の判定はNOとなってステップ712に移行する。
In step 710 of FIG. 8, the instruction code in the instruction data is write, write, or w.
It is determined whether or not the instruction code is for writing data representing the operation content for each key of the rightek. If the instruction code is such an instruction code, the determination is YES and the process moves to step 711. Otherwise, the determination is no and the process moves to step 712.

【0093】ステップ711では、命令コードから書き
込むべきデータの種類(領域)を特定し、その領域内の
命令データ中の3バイト目のデータで指定されたアドレ
スに、4バイト目で指定されたレジスタのデータを書き
込む。そのようなデータの書き込みを行った後、一連の
処理を終了させる。
At step 711, the type (area) of the data to be written is specified from the instruction code, and the address specified by the third byte data in the instruction data in the area is set to the register specified by the fourth byte. Write the data of After writing such data, a series of processing is terminated.

【0094】ステップ712では、命令データ中の命令
コードがreadcn、readcr、readct、
或いはreadckのコード別の操作内容を表すデータ
を読み出す命令コードか否か判定する。その命令コード
がそれらのような命令コードであった場合、その判定は
YESとなってステップ713に移行する。そうでない
場合には、その判定はNOとなってステップ714に移
行する。
At step 712, the instruction code in the instruction data is readcn, readcr, readct,
Alternatively, it is determined whether or not the instruction code is for reading data representing the operation content for each code of readck. If the instruction code is such an instruction code, the determination is YES and the process moves to step 713. Otherwise, the determination is no and the process moves to step 714.

【0095】ステップ713では、命令コードから読み
出すべきデータの種類(領域)を特定し、その領域の命
令データ中の3バイト目のデータで指定されたアドレス
からデータを読み出し、その読み出したデータを4バイ
ト目で指定されたレジスタに代入することが行われる。
そのようなレジスタへの代入を行った後、一連の処理を
終了させる。
In step 713, the type (area) of the data to be read is specified from the instruction code, the data is read from the address specified by the third byte data in the instruction data in the area, The assignment to the register specified by the byte is performed.
After such assignment to the register, a series of processing is terminated.

【0096】ステップ714では、命令データ中の命令
コードがwritcn、writcr、writec
t、或いはwriteckのコード別の操作内容を表す
データを書き込む命令コードか否か判定する。その命令
コードがそれらのような命令コードであった場合、その
判定はYESとなってステップ715に移行する。そう
でない場合には、その判定はNOとなってステップ71
6に移行する。
At step 714, the instruction code in the instruction data is writecn, writecr, writetec
It is determined whether or not the instruction code is for writing data representing the operation content for each t or writeck code. If the instruction code is such an instruction code, the determination is YES and the process moves to step 715. Otherwise, the determination is no and step 71
Move to 6.

【0097】ステップ715では、命令コードから書き
込むべきデータの種類(領域)を特定し、その領域内の
命令データ中の3バイト目のデータで指定されたアドレ
スに、4バイト目で指定されたレジスタのデータを書き
込む。そのようなデータの書き込みを行った後、一連の
処理を終了させる。
At step 715, the type (area) of the data to be written is specified from the instruction code, and the address specified by the third byte data in the instruction data in the area is the register specified by the fourth byte. Write the data of After writing such data, a series of processing is terminated.

【0098】ステップ716では、命令データ中の命令
コードがfreechordか否か判定する。その命令
コードがfreechordであった場合、その判定は
YESとなってステップ717に移行する。そうでない
場合には、その判定はNOとなって一連の処理が終了す
る。
At step 716, it is determined whether or not the instruction code in the instruction data is freecode. If the instruction code is freeword, the determination is YES and the process moves to step 717. Otherwise, the determination is NO and the series of processing ends.

【0099】ユーザが鍵盤104を操作した内容を表す
データは、時間データ領域、音高データ領域、及び操作
種別データ領域に格納される。ステップ717では、そ
れらの領域に格納されたデータを基に、ユーザが行った
演奏に合わせて発音させるコードを決定し、そのコード
を表すデータとして、ルートを表す音高データ(鍵番
号)、及びコード種データをコード用音高データ領域、
及びコード種データ領域に各々格納する。それが終了し
た後、一連の処理が終了する。
Data representing the contents of the operation of the keyboard 104 by the user is stored in a time data area, a pitch data area, and an operation type data area. In step 717, based on the data stored in those areas, a chord to be sounded in accordance with the performance performed by the user is determined, and pitch data (key number) representing a root, Chord type data for chord pitch data area,
And in the code type data area. After that, a series of processing ends.

【0100】なお、本実施の形態において、コードを表
すデータとしてルートを表す音高データとコード種デー
タだけを生成するのは、それらのコードは指定された時
間だけ発音させることを前提としているためである。コ
ードの決定方法についての詳細な説明は省略するが、そ
の参考文献としては特公平2−7480号公報がある。
In the present embodiment, only the pitch data representing the root and the chord type data are generated as the data representing the chords, since these chords are supposed to sound for a designated time. It is. Although a detailed description of the method for determining the code is omitted, Japanese Patent Publication No. 2-7480 is a reference document.

【0101】図9は、図4の自動演奏処理中でステップ
416として実行されるタスク管理データ処理の動作フ
ローチャートである。次に、その図9を参照して、タス
ク管理データ処理について詳細に説明する。
FIG. 9 is an operation flowchart of the task management data processing executed as step 416 during the automatic performance processing of FIG. Next, the task management data processing will be described in detail with reference to FIG.

【0102】そのタスク管理データ処理は、識別子ta
skが1バイト目(先頭)に格納されたシナリオ制御デ
ータを処理するために行われる。図4に示す自動演奏処
理からは、ステップ412で読み出した命令データが引
数として渡される。
The task management data processing is performed by using the identifier ta
sk is performed to process the scenario control data stored in the first byte (head). The command data read in step 412 is passed as an argument from the automatic performance processing shown in FIG.

【0103】先ず、ステップ901では、図4に示す自
動演奏処理から渡された命令データの分類を行う。ステ
ップ901に続くステップ902以降は、その分類結果
に応じて処理が行われる。
First, in step 901, the instruction data passed from the automatic performance processing shown in FIG. 4 is classified. From step 902 following step 901, processing is performed according to the classification result.

【0104】そのステップ902では、命令データ中の
命令コードがnewtaskか否か判定する。その命令
コードがnewtaskであった場合、その判定はYE
Sとなってステップ903に移行する。そうでない場合
には、その判定はNOとなってステップ904に移行す
る。
At step 902, it is determined whether or not the instruction code in the instruction data is newtask. If the instruction code is newtask, the determination is YE
In S, the process proceeds to step 903. Otherwise, the determination is no and the process moves to step 904.

【0105】命令コードnewtaskは、新たなタス
クを生成(起動)させる命令コードである。そのため、
ステップ903では、命令データ中の3バイト目で指定
されたタスクを生成する処理を行う。具体的には、タス
クテーブルにそのタスクのタスク領域が確保されていな
ければその領域を新たに確保し、タスク領域を新たに確
保したのであればそれに合わせてタスク指示レジスタT
Gの値域を変更し、タスク領域に対しては、タスク状態
にはALIVE、タスクアドレスには命令データ中の3
バイト目に記述されたラベル(オフセットアドレス)の
アドレスの値を各々設定する。タスクテーブルにそのタ
スクのタスク領域が既に確保されていれば、タスク状態
をDEADからALIVEに変更し、タスクアドレスに
はそのラベルのアドレスの値を設定する。その後、ステ
ップ904に移行する。
The instruction code newtask is an instruction code for generating (starting) a new task. for that reason,
In step 903, a process for generating a task specified by the third byte in the instruction data is performed. Specifically, if a task area for the task is not secured in the task table, the task area is newly secured. If a task area is newly secured, the task instruction register T is set accordingly.
The value range of G is changed. For the task area, ALIVE is set in the task state and 3 in the instruction data is set in the task address.
The address value of the label (offset address) described in the byte is set. If the task area of the task is already secured in the task table, the task state is changed from DEAD to ALIVE, and the value of the address of the label is set in the task address. Thereafter, the process proceeds to step 904.

【0106】ステップ904では、命令データ中の命令
コードがkilltaskか否か判定する。その命令コ
ードがkilltaskであった場合、その判定はYE
Sとなってステップ905に移行する。そうでない場合
には、その判定はNOとなってステップ906に移行す
る。
At step 904, it is determined whether or not the instruction code in the instruction data is killtask. If the instruction code is killtask, the determination is YE
In S, the process proceeds to step 905. Otherwise, the determination is no and the process moves to step 906.

【0107】命令コードkilltaskは、起動中の
タスクを終了(消滅)させる命令コードである。そのた
め、ステップ605では、命令データ中の3バイト目で
指定されたタスクを終了させる処理を行う。具体的に
は、タスクテーブルのタスク指示レジスタTGが指定す
るタスク領域のタスク状態にDEADを設定する。それ
を行った後、ステップ906に移行する。
The instruction code killtask is an instruction code for terminating (eliminating) the running task. Therefore, in step 605, processing for terminating the task specified by the third byte in the instruction data is performed. Specifically, DEAD is set to the task state of the task area specified by the task instruction register TG of the task table. After that, the process proceeds to step 906.

【0108】ステップ906では、命令データ中の命令
コードがkeyboardtaskか否か判定する。そ
の命令コードがkeyboardtaskであった場
合、その判定はYESとなってステップ907に移行す
る。そうでない場合には、その判定はNOとなって一連
の処理を終了する。
At step 906, it is determined whether or not the instruction code in the instruction data is keyboardtask. If the instruction code is keyboardtask, the determination is YES and the process moves to step 907. Otherwise, the determination is NO and the series of processing ends.

【0109】命令コードkeyboardtaskは、
タスクで有効とする鍵域を設定させる命令コードであ
る。そのため、ステップ907では、命令データ中の3
バイト目で指定の最低音と4バイト目で指定の最高音と
で指定される範囲を、演奏操作子(鍵盤104)への操
作が有効な範囲として設定する。最低音を指定する鍵番
号はスプリット開始値として、最高音を指定する鍵番号
はスプリット終了値としてタスクテーブルに格納される
(図3参照)。それを行った後、一連の処理を終了す
る。
The instruction code keyboardtask is:
This is an instruction code for setting a key range to be valid in a task. Therefore, in step 907, 3 in the instruction data
The range specified by the lowest note specified by the byte and the highest note specified by the fourth byte is set as the range in which the operation on the performance operator (keyboard 104) is effective. The key number specifying the lowest note is stored in the task table as the split start value, and the key number specifying the highest note is stored in the task table as the split end value (see FIG. 3). After doing so, a series of processing ends.

【0110】上述した各種処理を行うことで、CPU1
01は自動演奏データを処理する。次に、実際の自動演
奏データを幾つか例にとり、それをCPU101が処理
することで実現される自動演奏の内容について、それを
構成する命令データ列に沿って具体的に説明する。な
お、それらの自動演奏データは、それぞれ、異なる領域
に分けて図1に示すデータメモリ106に格納されたも
のである。
By performing the various processes described above, the CPU 1
01 processes the automatic performance data. Next, taking some actual automatic performance data as an example, the contents of the automatic performance realized by processing the data by the CPU 101 will be specifically described along the instruction data string constituting the automatic performance data. The automatic performance data is stored in the data memory 106 shown in FIG. 1 while being divided into different areas.

【0111】図10は、1番目の自動演奏データ(以
降、第1の自動演奏データと呼ぶ)例を示す図である。
この図10を参照して、始めに第1の自動演奏データを
処理することで実現される自動演奏の内容について説明
する。
FIG. 10 is a diagram showing an example of first automatic performance data (hereinafter, referred to as first automatic performance data).
With reference to FIG. 10, the contents of the automatic performance realized by processing the first automatic performance data will be described first.

【0112】その第1の自動演奏データの処理を開始す
ると、ラベルtask0に続く命令データ列を起動タス
ク(最上位タスク:図3参照)としてタスクテーブルが
作成される。その起動タスクのタスク領域はT0であ
り、そのタスク状態にはALIVEが格納される。この
時点では他のタスク領域は存在していない。その一方で
は、タスク指示レジスタTG、及び現在時刻を表す値を
保持するレジスタtimerにはそれぞれ0が代入され
る。ここまでの処理は、図4に示す自動演奏処理中のス
テップ401として行われる。
When the processing of the first automatic performance data is started, a task table is created with the instruction data string following the label task0 as a start task (top task: see FIG. 3). The task area of the activated task is T0, and ALIVE is stored in the task state. At this point, no other task area exists. On the other hand, 0 is assigned to the task instruction register TG and the register timer holding the value indicating the current time, respectively. The processing so far is performed as step 401 in the automatic performance processing shown in FIG.

【0113】ラベルtask0に続く命令データtas
k,newtask,task1の処理は、タスクテー
ブルにタスク1用のタスク領域T1を確保し、そのタス
ク領域T1のタスク状態にはALIVE、タスクアドレ
スにはラベルtask1のアドレス(オフセットアドレ
ス)の値を各々設定することで行われる。その次の命令
データtask,killtask,task0の処理
は、それに対応するタスク領域T0のタスク状態をAL
IVEからDEADに変更することで行われる。それに
より、図4中のステップ418の判定がNOとなること
から、ステップ419でタスク指示レジスタTGの値は
インクリメントされて0から1になり、処理対象とする
タスクは起動タスクからタスクtask1に切り換わ
る。
Instruction data tas following label task0
In the processing of k, newtask, and task1, a task area T1 for task 1 is secured in the task table, ALIVE is set as the task state of the task area T1, and the address (offset address) of the label task1 is set as the task address. It is done by setting. The processing of the next instruction data task, killtask, and task0 sets the task state of the corresponding task area T0 to AL.
This is performed by changing from IVE to DEAD. As a result, the determination in step 418 in FIG. 4 becomes NO, so in step 419, the value of the task instruction register TG is incremented from 0 to 1, and the task to be processed is switched from the starting task to task task1. Be replaced.

【0114】タスクtask1では、ラベルtask1
に続く命令データscenario,waitnz,c
hordが最初に処理される。それを処理(図4中のス
テップ415で処理される)すると、鍵盤104上でユ
ーザがコードを指定する操作待ちとなることから、タス
クテーブルのタスク領域T1のタスク状態はALIVE
からSLEEPに変更される。その後は、図4中のステ
ップ418の判定がNOとなることから、次のタスクに
処理対象が移行することになる。
In the task task1, the label task1
Instruction data scenario, waitnz, c following
hor is processed first. When this is processed (processed in step 415 in FIG. 4), the user waits for an operation of designating a code on the keyboard 104, so that the task state of the task area T1 in the task table is ALIVE.
Is changed to SLEEP. Thereafter, since the determination in step 418 in FIG. 4 is NO, the processing target shifts to the next task.

【0115】ユーザが鍵盤104上の鍵を押鍵してコー
ドを指定すると、図4中のステップ408が実行され、
レジスタchordにはコードが検出されたことを表す
値である1が代入され、レジスタrtnoには根音の鍵
番号、レジスタchdnoにはユーザが指定したコード
種を表す値が各々代入される。そのため、SLEEP状
態は解除されてALIVEに戻される。それによってス
テップ410の判定はYESとなり、ラベルlabel
1以降の命令データ列の処理が再開されることになる。
When the user presses a key on the keyboard 104 to specify a code, step 408 in FIG. 4 is executed, and
The register chord is assigned a value of 1 indicating that a code has been detected, the register rtno is assigned a key number of the root note, and the register chdno is assigned a value representing a chord type specified by the user. Therefore, the SLEEP state is released and returned to ALIVE. As a result, the determination in step 410 becomes YES, and the label label
The processing of the instruction data string after 1 is restarted.

【0116】ラベルlabel1に続く命令データsc
enario,mov,rno,rtno、scena
rio,mov,chno,chdnoを処理すること
で、レジスタrtnoの値はレジスタrnoに、レジス
タchdnoの値はレジスタchnoに各々代入され
る。
The instruction data sc following the label label1
enario, mov, rno, rtno, scena
By processing rio, mov, chno, and chdno, the value of the register rtno is assigned to the register rno, and the value of the register chdno is assigned to the register chno.

【0117】それらの命令データを処理した後には、命
令データchordon,rno,chno、disp
layonb,rno,chnoが処理される。それら
を処理することで、ユーザが指定したコードが発音さ
れ、それの構成音が表示装置105の画面201に表示
される。なお、それらの命令データは、図4中のステッ
プ411〜418で形成される処理ループを実行する度
に、ステップ414で処理される。
After processing these instruction data, the instruction data chordon, rno, chno, disp
The layers, rno, and chno are processed. By processing them, the chord specified by the user is pronounced, and the constituent sounds thereof are displayed on the screen 201 of the display device 105. The instruction data is processed in step 414 every time the processing loop formed in steps 411 to 418 in FIG. 4 is executed.

【0118】命令データdisplayonb,rn
o,chnoの次には、命令データscenario,
waitnz,chordが位置している。そのため、
ユーザが指定したコードの構成音を画面201に表示さ
せた後は、その命令データが処理されて、ユーザが次の
コードを指定するまでの間、タスク状態はSLEEPと
なる。
Instruction data displayonb, rn
After o and chno, instruction data scenario,
waitnz, chord are located. for that reason,
After the component sound of the chord specified by the user is displayed on the screen 201, the instruction data is processed and the task state is SLEEP until the user specifies the next chord.

【0119】ユーザが鍵盤104上の鍵を押鍵して新た
にコードを指定すると、図4中のステップ408が実行
され、ステップ410の判定はDEADではなくなる。
それにより、命令データchordoff,rno,c
hno、displayoffb,rno,chnoが
処理される。それらの命令データが処理されることで、
現在発音中のコードは消音され、それの構成音の表示が
画面201から消去されることになる。その後は、命令
データscenario,jmp,label1が処理
され、タスクアドレスはラベルlabel1のアドレス
の値に変更される。
When the user depresses a key on the keyboard 104 and newly designates a code, step 408 in FIG. 4 is executed, and the determination in step 410 is not DEAD.
Thereby, the instruction data chordoff, rno, c
hno, displayoffb, rno, and chno are processed. By processing those instruction data,
The currently sounding chord is muted, and the display of its constituent sounds is erased from the screen 201. After that, the instruction data scenario, jmp, and label1 are processed, and the task address is changed to the value of the address of the label label1.

【0120】第1の自動演奏データの命令データ列は、
上記のようになっている。従って、それを処理すると、
ユーザがはじめてコードを指定した時に自動演奏として
のコードの発音を開始させ、その発音させるコードを、
ユーザが新たにコードを指定する度に変更させるという
動作が実現される。表示装置105の画面201上で
は、コードの発音に合わせて、それの構成音のベロシテ
ィ値が表示されることになる。
The instruction data string of the first automatic performance data is:
It is as described above. So, when we process it,
When the user specifies a chord for the first time, the chord is started to be played as an automatic performance, and the chord to be played is
An operation of changing the code each time the user newly specifies the code is realized. On the screen 201 of the display device 105, the velocity values of the constituent sounds of the chord are displayed according to the pronunciation of the chord.

【0121】図11、及び図12は、2番目の自動演奏
データ(以降、第2の自動演奏データと呼ぶ)例を示す
図である。これらの図11、及び図12を参照して、次
に第2の自動演奏データを処理することで実現される自
動演奏の内容について説明する。
FIGS. 11 and 12 are diagrams showing examples of the second automatic performance data (hereinafter, referred to as second automatic performance data). Next, the contents of the automatic performance realized by processing the second automatic performance data will be described with reference to FIGS.

【0122】この第2の自動演奏データは、ユーザの演
奏に合ったコードを決定し、それをユーザの演奏と合奏
させるためのデータである。ここでは、ユーザに同じ演
奏を2回繰り返し行わせることで、1回目の演奏ではコ
ード決定用のデータを取得し、2回目の演奏では決定し
たコードを発音させるようにしている。
The second automatic performance data is data for determining a chord suitable for the performance of the user and for playing it with the performance of the user. Here, the same performance is repeatedly performed twice by the user, so that chord determination data is acquired in the first performance and the determined chord is emitted in the second performance.

【0123】その第2の自動演奏データの処理では、ラ
ベルtask0に続く命令データ列を起動タスク(最上
位タスク:図3参照)としてタスクテーブルが作成され
る。その起動タスクのタスク領域はT0であり、そのタ
スク状態にはALIVEが格納される。その一方では、
タスク指示レジスタTG、及び現在時刻を表す値を保持
するレジスタtimerにはそれぞれ0が代入される。
In the processing of the second automatic performance data, a task table is created using the instruction data string following the label task0 as the start task (the highest task: see FIG. 3). The task area of the activated task is T0, and ALIVE is stored in the task state. On the other hand,
0 is assigned to the task instruction register TG and the register timer that holds the value indicating the current time.

【0124】ラベルtask0に続く命令データtas
k,newtask,task1の処理は、タスクテー
ブルにタスク1用のタスク領域T1を確保し、そのタス
ク領域T1のタスク状態にはALIVE、タスクアドレ
スにはラベルtask1のアドレス(オフセットアドレ
ス)の値を各々設定することで行われる。その次の命令
データtask,killtask,task0の処理
は、それに対応するタスク領域T0のタスク状態をAL
IVEからDEADに変更することで行われる。それに
より、図4中のステップ418の判定がNOとなること
から、ステップ419でタスク指示レジスタTGの値は
インクリメントされて0から1になり、処理対象となる
タスクは起動タスクからタスクtask1に切り換わ
る。
Instruction data tas following label task0
In the processing of k, newtask, and task1, a task area T1 for task 1 is secured in the task table, ALIVE is set as the task state of the task area T1, and the address (offset address) of the label task1 is set as the task address. It is done by setting. The processing of the next instruction data task, killtask, and task0 sets the task state of the corresponding task area T0 to AL.
This is performed by changing from IVE to DEAD. As a result, the determination in step 418 in FIG. 4 is NO, and the value of the task instruction register TG is incremented from 0 to 1 in step 419, and the task to be processed is switched from the starting task to the task task1. Be replaced.

【0125】タスクtask1では、ラベルtask1
に続く命令データtask,keyboardtas
k,#25,#87が最初に処理される。それを処理す
ることで、タスクテーブル中でタスクtask1用に確
保されたタスク領域のスプリット開始値には25、スプ
リット終了値には87がそれぞれ代入される。それによ
り、タスクtask1は、鍵番号が25〜87の鍵を有
効鍵域としてラベルlabel1以降の命令データ列が
処理されることになる。
In the task task1, the label task1
Instruction data task, keyboardtas following
k, # 25 and # 87 are processed first. By processing this, 25 is assigned to the split start value and 87 is assigned to the split end value of the task area reserved for task task1 in the task table. As a result, the task task1 processes the instruction data string after the label label1 using the keys having the key numbers 25 to 87 as an effective key area.

【0126】ラベルlabel1以降では、先ず、命令
データscenario,waitnz,keyが処理
される。このときには、タスクtask1での有効鍵域
が上記のようにして設定されている。そのため、それを
処理した場合には、有効鍵域内の鍵が操作されるまで、
タスク状態はSLEEPに設定されることになる。
At and after the label label1, the instruction data scenario, waitnz, and key are processed first. At this time, the effective key area for task task1 is set as described above. Therefore, when it is processed, until a key in the valid key area is operated,
The task state will be set to SLEEP.

【0127】ユーザが有効鍵域の鍵を操作すると、タス
ク状態はSLEEPからALIVEに変更され、命令デ
ータscenario,cmp,#−1,keyが処理
される。その後には、命令データscenario,j
z,label2が処理される。そのため、ユーザの操
作が押鍵であった場合には、タスクアドレスはラベルl
abel2のアドレスの値に変更される。その操作が離
鍵であった場合には、命令データtask,killt
ask,task2、task,newtask,ta
sk2が処理される。それにより、タスクtask2
は、その命令データ列の処理を最初から繰り返すことに
なる。
When the user operates a key in the valid key area, the task state is changed from SLEEP to ALIVE, and the instruction data scenario, cmp, # -1, and key are processed. After that, the instruction data scenario, j
z, label2 are processed. Therefore, if the user operation is a key press, the task address is labeled l
abel2 is changed to the value of the address. If the operation is a key release, the instruction data task, killt
ask, task2, task, newtask, ta
sk2 is processed. Thereby, task task2
Will repeat the processing of the instruction data string from the beginning.

【0128】ラベルlabel2以降の命令データsc
enario,mov,ctime,timer、sc
enario,mov,time,ctime、sce
nario,sub,time,ftime、scen
ario,mov,ftime,ctimeは、ユーザ
の操作間隔を算出するための命令データ列である。その
命令データ列を処理することで、レジスタtimeには
操作間隔を表す値(時間データ)、レジスタftime
には現時点の時刻を表す値が各々代入されることにな
る。
The instruction data sc after the label label2
enario, mov, ctime, timer, sc
enario, mov, time, ctime, sce
nario, sub, time, ftime, scen
“ario”, “mov”, “ftime”, and “ctime” are instruction data strings for calculating a user operation interval. By processing the instruction data string, a value (time data) indicating the operation interval is stored in the register time, and the register ftime
Is substituted with a value representing the current time.

【0129】それに続く命令データscenario,
writet,(rad),time、scenari
o,writee,(rad),note、scena
rio,writek,(rad),keyは、ユーザ
が行った操作内容を表すデータを保存するための処理で
ある。その命令データ列を処理することで、レジスタt
imeに代入された時間データ、レジスタnoteに代
入された音高データ、及びレジスタkeyに代入された
操作種別データが、それぞれ、対応する領域内のレジス
タradの値で指定されるアドレスに書き込まれる。
The instruction data scenario,
writet, (rad), time, scenari
o, writee, (rad), note, scena
The rio, write, (rad), and key are processes for storing data representing the content of the operation performed by the user. By processing the instruction data string, the register t
The time data assigned to im, the pitch data assigned to the register note, and the operation type data assigned to the register key are respectively written to the addresses specified by the value of the register rad in the corresponding area.

【0130】その後は、命令データ列scenari
o,inc,rad、scenario,cmp,ra
d,end、scenario,jnz,label
1、scenario,mov,rad,#0、sce
nario,jmp,label1が処理される。その
命令データ列を処理すると、レジスタradの値はデー
タ領域内のアドレスを指定するように更新され、タスク
アドレスはラベルlabel2のアドレスの値に変更さ
れる。
Thereafter, the instruction data string scenari
o, inc, rad, scenario, cmp, ra
d, end, scenario, jnz, label
1, scenario, mov, rad, # 0, sce
nario, jmp and label1 are processed. When the instruction data string is processed, the value of the register rad is updated so as to specify an address in the data area, and the task address is changed to the value of the address of the label label2.

【0131】タスクtask2では、最初に命令データ
scenario,wait,#n1(n1は、ある定
められた時間を表す数値である)が処理される。そのタ
スクtask2は、タスクtask1において、ユーザ
が離鍵を行う度に消滅させられ、その後直ちに生成され
る。このため、タスクtask2では、ユーザが最後に
離鍵を行ってからn1で指定された時間だけ離鍵を行わ
なかった場合、それに続く命令データtask,kil
ltask,task1、scenario,free
chord、task,newtask,play、t
ask,killtask,task2が処理されるこ
とになる。
In task task2, first, instruction data scenario, wait, # n1 (n1 is a numerical value representing a predetermined time) is processed. The task task2 is deleted every time the user releases the key in the task task1, and is generated immediately thereafter. For this reason, in the task task2, if the user does not release the key for the time specified by n1 since the last release of the key, the instruction data task,
ltask, task1, scenario, free
chord, task, newtask, play, t
Ask, killtask, and task2 will be processed.

【0132】それらの命令データを処理することで、タ
スクtask1及びtask2は消滅し、タスクtas
k1で保存したデータから、そのデータを得た際のユー
ザの演奏に合わせて発音させるべきコードが決定され、
タスクplayが生成される。それにより、ユーザの2
回目の演奏に合わせてコードを発音させる準備が完了す
ることになる。
By processing these instruction data, tasks task1 and task2 disappear, and tasks task1 and task2 disappear.
From the data stored in k1, a chord to be sounded in accordance with the performance of the user when the data is obtained is determined,
A task play is generated. As a result, the user 2
The preparation for sounding the chord in time with the second performance is completed.

【0133】タスクplayでは、始めに命令データs
cenario,waitnz,keyが処理される。
タスクplayは、タスクtask2によって生成され
る。そのため、ラベルlabel3の命令データ列は、
ユーザが最後に離鍵してから所定時間(n1に対応する
時間)が経過した後、鍵盤104への操作を再開するこ
とで処理されることになる。
In the task play, first, the instruction data s
Cenario, waitnz, and key are processed.
Task play is generated by task task2. Therefore, the instruction data string of label label3 is
After a predetermined time (time corresponding to n1) has elapsed since the user last released the key, processing is performed by restarting the operation on the keyboard 104.

【0134】ラベルlabel3以降では、始めに命令
データscenario,readcn,(pad),
chno、scenario,readcr,(pa
d),rnoが処理される。それにより、コード種デー
タ領域、及びコード用音高データ領域のレジスタpad
によって指定されたアドレスのデータが読み出され、コ
ード種データはレジスタchnoに、ルートの音高デー
タはレジスタrnoにそれぞれ代入される。
After the label label3, the instruction data scenario, readcn, (pad),
chno, scenario, readcr, (pa
d), rno is processed. Thereby, the register pad of the chord type data area and the chord pitch data area
The data at the address specified by the above is read out, the chord type data is assigned to the register chno, and the pitch data of the root are assigned to the register rno.

【0135】それらの命令データを処理した後には、命
令データchordon,rno,chno、disp
layonb,rno,chnoが処理される。それら
を処理することで、ユーザが指定したコードが発音さ
れ、それの構成音が表示装置105の画面201に表示
される。
After processing the instruction data, the instruction data chordon, rno, chno, disp
The layers, rno, and chno are processed. By processing them, the chord specified by the user is pronounced, and the constituent sounds thereof are displayed on the screen 201 of the display device 105.

【0136】命令データdisplayonb,rn
o,chnoの次には、命令データscenario,
wait,#n2が処理され、その後に、命令データc
hordoff,rno,chno、displayo
ffb,rno,chnoが処理される。従って、コー
ドの発音は、発音を開始してからn2で表される時間だ
け経過すると消音され、その表示も同様に、表示されて
からn2で表される時間だけ経過すると画面201上か
ら消去される。
Instruction data displayonb, rn
After o and chno, instruction data scenario,
wait, # n2 are processed, and thereafter, the instruction data c
handoff, rno, chno, display
ffb, rno, and chno are processed. Accordingly, the sound of the chord is muted when the time represented by n2 elapses after the sound is started, and the display thereof is similarly erased from the screen 201 when the time represented by n2 elapses after being displayed. You.

【0137】その後には、命令データscenari
o,wait,#n3が処理され、それに続いて命令デ
ータ列scenario,inc,pad、scena
rio,cmp,end,pad、scenario,
jnc,label3、scenario,mov,p
ad,#0、scenario,jmp,label3
が処理される。そのため、コードの表示を消去した後、
n3で表される時間が経過すると、レジスタpadの値
はコード用データ領域内のアドレスを指定するように更
新され、タスクアドレスはラベルlabel3のアドレ
スの値に変更されることになる。
Thereafter, the instruction data scenari
o, wait, and # n3 are processed, followed by instruction data strings scenario, inc, pad, and scena
rio, cmp, end, pad, scenario,
jnc, label3, scenario, mov, p
ad, # 0, scenario, jmp, label3
Is processed. So after clearing the code,
When the time represented by n3 elapses, the value of the register pad is updated so as to specify an address in the code data area, and the task address is changed to the value of the address of the label label3.

【0138】図13は、3番目の自動演奏データ(以
降、第3の自動演奏データと呼ぶ)例を示す図である。
図13を参照して、次に第3の自動演奏データを処理す
ることで実現される自動演奏の内容について説明する。
FIG. 13 is a diagram showing an example of third automatic performance data (hereinafter, referred to as third automatic performance data).
Next, with reference to FIG. 13, the contents of the automatic performance realized by processing the third automatic performance data will be described.

【0139】この第3の自動演奏データは、ユーザがコ
ードを指定すると、そのコードのルートに当たる鍵が離
鍵されるまでの間、指定されたコードを発音させるため
のデータである。
The third automatic performance data is data for, when a user designates a chord, sounding the designated chord until the key corresponding to the root of the chord is released.

【0140】第3の自動演奏データの処理では、始めに
ラベルtask0に続く命令データ列を起動タスク(最
上位タスク:図3参照)としてタスクテーブルが作成さ
れる。その起動タスクのタスク領域はT0であり、その
タスク状態にはALIVEが格納される。この時点では
他のタスク領域は存在していない。その一方では、タス
ク指示レジスタTG、及び現在時刻を表す値を保持する
レジスタtimerにはそれぞれ0が代入される。
In the processing of the third automatic performance data, first, a task table is created with the instruction data string following the label task0 as the start task (the highest task: see FIG. 3). The task area of the activated task is T0, and ALIVE is stored in the task state. At this point, no other task area exists. On the other hand, 0 is assigned to the task instruction register TG and the register timer holding the value indicating the current time, respectively.

【0141】ラベルtask0に続く命令データtas
k,newtask,task1の処理は、タスクテー
ブルにタスク1用のタスク領域T1を確保し、そのタス
ク領域T1のタスク状態にはALIVE、タスクアドレ
スにはラベルtask1のアドレス(オフセットアドレ
ス)の値を各々設定することで行われる。その次の命令
データtask,killtask,task0の処理
は、それに対応するタスク領域T0のタスク状態をAL
IVEからDEADに変更することで行われる。それに
より、図4中のステップ418の判定がNOとなること
から、ステップ419でタスク指示レジスタTGの値は
インクリメントされて0から1になり、処理対象となる
タスクは起動タスクからタスクtask1に切り換わ
る。
Instruction data tas following label task0
In the processing of k, newtask, and task1, a task area T1 for task 1 is secured in the task table, ALIVE is set as the task state of the task area T1, and the address (offset address) of the label task1 is set as the task address. It is done by setting. The processing of the next instruction data task, killtask, and task0 sets the task state of the corresponding task area T0 to AL.
This is performed by changing from IVE to DEAD. As a result, the determination in step 418 in FIG. 4 is NO, and the value of the task instruction register TG is incremented from 0 to 1 in step 419, and the task to be processed is switched from the starting task to the task task1. Be replaced.

【0142】そのタスクtask1では、始めに命令デ
ータscenario,waitnz,chordが処
理される。その命令データを処理することで、タスク状
態はALIVEからSLEEPに変更され、ユーザがコ
ードを指定するまでの間、それ以降の命令データ列の処
理は中断される。
In the task task1, first, instruction data scenario, waitnz, and chord are processed. By processing the instruction data, the task state is changed from ALIVE to SLEEP, and further processing of the instruction data string is suspended until the user specifies a code.

【0143】ユーザがコードを指定すると、タスク状態
はSLEEPからALIVEに変更され、命令データt
ask,newtask,kanshi、task,n
ewtask,play、task,killtas
k,task1が処理される。それにより、タスクta
sk1は消滅し、タスクkanshi、playが新た
に生成される。
When the user specifies the code, the task state changes from SLEEP to ALIVE, and the instruction data t
ask, newtask, kanshi, task, n
ewtask, play, task, killtas
k and task1 are processed. Thereby, the task ta
sk1 disappears, and tasks kanshi and play are newly generated.

【0144】タスクkanshiは、ユーザが指定した
コードのルートに当たる鍵の離鍵を監視するためのタス
クである。そのタスクでは、始めに命令データscen
ario,mov,rno,rtno、scenari
o,mov,chno,chdnoが処理される。それ
らの命令データを処理した結果、レジスタrnoにはル
ートの鍵番号が代入され、レジスタchnoにはコード
の番号(コード種データ)が代入される。その後、ラベ
ルlabel1以降の命令データ列の処理に移行する。
The task kanshi is a task for monitoring the release of a key corresponding to the root of the code specified by the user. In that task, first, instruction data scen
ario, mov, rno, rtno, scenari
o, mov, chno, chdno are processed. As a result of processing the instruction data, the root key number is assigned to the register rno, and the code number (code type data) is assigned to the register chno. Thereafter, the processing shifts to the processing of the instruction data string after the label label1.

【0145】ラベルlabel1移行では、始めに命令
データscenario,waitnz,keyが処理
される。それにより、タスク状態はSLEEPとなって
ユーザの操作待ちとなる。その後、ユーザが操作する
と、次に命令データscenario,cmp,rn
o,noteが処理され、続けて命令データscena
rio,jnz,label1が処理される。
In the transition to the label label1, first, the instruction data scenario, waitnz, and key are processed. As a result, the task state becomes SLEEP and waits for a user operation. Thereafter, when the user operates, the instruction data scenario, cmp, rn
o and note are processed, and then instruction data scena
rio, jnz, and label1 are processed.

【0146】このとき、ゼロフラグの値は、ユーザがル
ートに当たる鍵を操作した場合に1となる。その操作内
容は、ルートを指定した後であるため、当然離鍵であ
る。このため、指定したコードのルートに当たる鍵をユ
ーザが離鍵させた場合、命令データscenario,
jnz,label1以降の命令データが処理される。
そうでない場合には、タスクアドレスはラベルlabe
l1のアドレスの値に変更される。
At this time, the value of the zero flag becomes 1 when the user operates the key corresponding to the root. Since the content of the operation is after the route is specified, the key is naturally released. Therefore, when the user releases the key corresponding to the root of the designated code, the instruction data scenario,
Instruction data after jnz, label1 is processed.
Otherwise, the task address is labeled label
It is changed to the value of the address of l1.

【0147】上記のようにしてルートに当たる鍵の離鍵
を検出した後は、命令データscenario,mo
v,pf,#1を処理することで、レジスタpfに1が
代入される。その後は、命令データtask,newt
ask,task1、task,killtask,k
anshiが処理される。それにより、タスクtask
1は生成され、タスクkanshiは消滅する。
After detecting the key release corresponding to the root as described above, the instruction data scenario, mo
By processing v, pf, and # 1, 1 is assigned to the register pf. After that, the instruction data task, newt
ask, task1, task, killtask, k
Anshi is processed. Thereby, the task task
1 is generated, and the task kanshi disappears.

【0148】タスクplayでは、始めに命令データc
hordon,rno,chno、displayon
b,rno,chnoが処理される。それらを処理する
ことで、ユーザが指定したコードが発音され、それの構
成音が表示装置105の画面201に表示される。
In the task play, first, the instruction data c
Hordon, rno, chno, displayon
b, rno and chno are processed. By processing them, the chord specified by the user is pronounced, and the constituent sounds thereof are displayed on the screen 201 of the display device 105.

【0149】命令データdisplayonb,rn
o,chnoの次には、命令データscenario,
waitnz,pfが処理される。レジスタpfには、
上記したように、ルートに当たる鍵が離鍵された場合に
0ではない値が代入される。従って、ルートに当たる鍵
が離鍵されると、タスク状態はSLEEPからALIV
Eに変更されて、それ以降の命令データが処理されるこ
とになる。
Instruction data displayonb, rn
After o and chno, instruction data scenario,
waitnz, pf is processed. Register pf contains
As described above, when the key corresponding to the route is released, a value other than 0 is substituted. Therefore, when the key corresponding to the root is released, the task state changes from SLEEP to ALIV.
The instruction data is changed to E, and the subsequent instruction data is processed.

【0150】それ以降では、先ず、命令データscen
ario,mov,pf,#0が処理される。それによ
り、レジスタpfには0が代入される。続いて、命令デ
ータchordoff,rno,chno、displ
ayoffb,rno,chnoが処理される。それに
より、コードは消音され、表示装置201の画面201
上からは、コードの構成音の表示が消去されることにな
る。その後、命令データtask,killtask,
playが処理され、タスクplay自体も消滅する。
Thereafter, first, the instruction data scen
ario, mov, pf, # 0 are processed. Thereby, 0 is assigned to the register pf. Subsequently, instruction data chordoff, rno, chno, displ
ayoffb, rno, chno are processed. Thereby, the chord is muted and the screen 201 of the display device 201 is turned off.
From above, the display of the constituent sounds of the chord is erased. Then, the instruction data task, killtask,
The play is processed, and the task itself disappears.

【0151】タスクplayが消滅した後は、タスクt
ask1のみが起動中となっている。そのため、ユーザ
が新たにコードを指定すると、タスクplayが生成さ
れて、直ちにコードの発音、及び表示が行われることに
なる。
After the task play has disappeared, the task t
Only ask1 is running. Therefore, when the user newly designates a chord, a task play is generated, and the chord is sounded and displayed immediately.

【0152】図14〜図16は、4番目の自動演奏デー
タ(以降、第4の自動演奏データと呼ぶ)例を示す図で
ある。図14〜図16を参照して、次に第4の自動演奏
データを処理することで実現される自動演奏の内容につ
いて説明する。
FIGS. 14 to 16 are diagrams showing examples of fourth automatic performance data (hereinafter, referred to as fourth automatic performance data). Next, the contents of the automatic performance realized by processing the fourth automatic performance data will be described with reference to FIGS.

【0153】第4の自動演奏データは、ユーザがコード
を指定することで自動演奏を開始すると、そのコードを
指定してから、その指定に用いた鍵を離鍵した後更に所
定時間(図14中のn1がその時間を指定する値であ
る)経過するまでの間、コードを指定してから経過した
時間に応じて内容を変更しながら自動演奏を行い、その
所定時間が経過すると、自動演奏を終了させて初期状態
に戻す動作を実現するためのデータである。自動演奏用
のタスクとしては、タスクpattern1〜3を用意
している。自動演奏の内容の変更は、それらのなかで生
成させるタスクを切り換えていくことで行っている。な
お、コードの指定に用いた鍵の離鍵の判定は、ここでも
上記第3の自動演奏データと同様に、コードのルートに
当たる鍵の離鍵の有無によって行っている。
When the user starts an automatic performance by designating a code, the fourth automatic performance data designates the code and then releases the key used for the designation for a further predetermined time (FIG. 14). Until the time elapses, the automatic performance is performed while changing the content according to the elapsed time after the chord is specified. For realizing the operation of terminating the process and returning to the initial state. Tasks pattern1 to 3 are prepared as tasks for automatic performance. The content of the automatic performance is changed by switching the tasks to be generated among them. Here, the determination of the release of the key used for designating the chord is made based on the presence or absence of the release of the key corresponding to the root of the chord, similarly to the third automatic performance data.

【0154】第4の自動演奏データの処理では、始めに
ラベルtask0に続く命令データ列を起動タスク(最
上位タスク:図3参照)としてタスクテーブルが作成さ
れる。その起動タスクのタスク領域はT0であり、その
タスク状態にはALIVEが格納される。この時点では
他のタスク領域は存在していない。その一方では、タス
ク指示レジスタTG、及び現在時刻を表す値を保持する
レジスタtimerにはそれぞれ0が代入される。
In the processing of the fourth automatic performance data, a task table is created by using the instruction data string following the label task0 as the start task (the highest task: see FIG. 3). The task area of the activated task is T0, and ALIVE is stored in the task state. At this point, no other task area exists. On the other hand, 0 is assigned to the task instruction register TG and the register timer holding the value indicating the current time, respectively.

【0155】ラベルtask0に続く命令データtas
k,newtask,task1の処理は、タスクテー
ブルにタスク1用のタスク領域T1を確保し、そのタス
ク領域T1のタスク状態にはALIVE、タスクアドレ
スにはラベルtask1のアドレス(オフセットアドレ
ス)の値を各々設定することで行われる。その次の命令
データtask,killtask,task0の処理
は、それに対応するタスク領域T0のタスク状態をAL
IVEからDEADに変更することで行われる。それに
より、図4中のステップ418の判定がNOとなること
から、ステップ419でタスク指示レジスタTGの値は
インクリメントされて0から1になり、処理対象となる
タスクは起動タスクからタスクtask1に切り換わ
る。
Instruction data tas following label task0
In the processing of k, newtask, and task1, a task area T1 for task 1 is secured in the task table, ALIVE is set as the task state of the task area T1, and the address (offset address) of the label task1 is set as the task address. It is done by setting. The processing of the next instruction data task, killtask, and task0 sets the task state of the corresponding task area T0 to AL.
This is performed by changing from IVE to DEAD. As a result, the determination in step 418 in FIG. 4 is NO, and the value of the task instruction register TG is incremented from 0 to 1 in step 419, and the task to be processed is switched from the starting task to the task task1. Be replaced.

【0156】そのタスクtask1では、始めに命令デ
ータscenario,waitnz,chordが処
理される。その命令データを処理することで、タスク状
態はALIVEからSLEEPに変更され、ユーザがコ
ードを指定するまでの間、それ以降の命令データ列の処
理は中断される。
In the task task1, first, the instruction data scenario, waitnz, and chord are processed. By processing the instruction data, the task state is changed from ALIVE to SLEEP, and further processing of the instruction data string is suspended until the user specifies a code.

【0157】ユーザがコードを指定すると、タスク状態
はSLEEPからALIVEに変更され、次に命令デー
タscenario,cmp,#0,ftime、sc
enario,jc,label2が処理される。
When the user specifies the code, the task state is changed from SLEEP to ALIVE, and then the instruction data scenario, cmp, # 0, ftime, sc
enario, jc, label2 are processed.

【0158】後述するように、レジスタftimeに
は、指定したコードのルートに当たる鍵をユーザが離鍵
した時刻(正確にはそれを表す値)が代入される。その
初期値は0である。そのため、ユーザが第4の自動演奏
データの処理の開始を指示した後、始めてコードを指定
した場合、キャリーフラグの値は1となる。従って、そ
の場合には、タスクアドレスはラベルlabel2のア
ドレスの値に変更されることになる。
As will be described later, the time at which the user releases the key corresponding to the root of the designated code (more precisely, a value representing the key) is substituted into the register ftime. Its initial value is 0. Therefore, when the user designates the chord for the first time after instructing the start of the processing of the fourth automatic performance data, the value of the carry flag becomes 1. Therefore, in that case, the task address is changed to the value of the address of the label label2.

【0159】そうでない場合には、ラベルlabel1
以降の命令データtask,newtask,kans
hi、タスク,newtask,change、タス
ク,newtask,pattern1、task,k
illtask,task1が処理される。それによ
り、タスクkanshi、change、及びpatt
ern1が生成され、タスクtask1は消滅される。
If not, the label label1
Subsequent instruction data task, newtask, kans
hi, task, newtask, change, task, newtask, pattern1, task, k
illtask and task1 are processed. Thereby, tasks kanshi, change, and patt
ern1 is generated, and the task task1 is extinguished.

【0160】一方、ラベルlabel2以降では、先
ず、命令データscenario,mov,ctim
e,timer、scenario,mov,tim
e,ctime、scenario,sub,tim
e,ftimeが処理される。レジスタftimeに
は、指定されたコードのルートに当たる鍵が離鍵された
時刻を表す値が代入されている。そのため、それらの命
令データ列を処理することで、レジスタtimeには離
鍵されてから経過した時間を表す値が代入される。
On the other hand, after the label label2, first, the instruction data scenario, mov, ctim
e, timer, scenario, mov, tim
e, ctime, scenario, sub, tim
e and ftime are processed. In the register ftime, a value indicating the time at which the key corresponding to the root of the designated code is released is substituted. Therefore, by processing these instruction data strings, a value representing the time that has elapsed since the key was released is assigned to the register time.

【0161】その後は、命令データscenario,
cmp,#n1,time、scenario,jc,
label1が処理される。このとき、キャリーフラグ
は、レジスタtimeの値がn1よりも大きい場合に1
となる。そのため、そうであった場合、即ちルートに当
たる鍵の離鍵からn1で指定された時間が経過した場
合、タスクアドレスはラベルlabel1のアドレスの
値に変更され、上記命令データ列が処理されることにな
る。そうでない場合には、命令データtask,new
task,kanshi、task,killtas
k,task1が処理される。その結果、タスクkan
shiが生成され、タスクtask1は消滅する。
Thereafter, the instruction data scenario,
cmp, # n1, time, scenario, jc,
label1 is processed. At this time, the carry flag becomes 1 when the value of the register time is larger than n1.
Becomes Therefore, if this is the case, that is, if the time specified by n1 has elapsed from the release of the key corresponding to the root, the task address is changed to the value of the address of the label label1, and the instruction data string is processed. Become. Otherwise, the instruction data task, new
task, kanshi, task, killtas
k and task1 are processed. As a result, task kan
shi is generated, and task task1 disappears.

【0162】タスクkanshiは、第3の自動演奏デ
ータにおいて、タスクkanshiのところで説明した
ように、ユーザが指定したコードのルートに当たる鍵の
離鍵を監視して、それに対処するためのタスクである。
The task kanshi is a task for monitoring the release of the key corresponding to the root of the chord specified by the user in the third automatic performance data, as described for the task kanshi, and coping with it.

【0163】タスクkannshiでは、始めに命令デ
ータscenario,mov,rno,rtno、s
cenario,mov,chno,chdnoが処理
される。それらの命令データを処理することで、レジス
タrnoにはルートの鍵番号、レジスタchnoにはコ
ード種を表す値がそれぞれ代入される。その後、ラベル
label3以降の命令データ列の処理に移行する。
In the task kannshi, first, instruction data scenario, mov, rno, rtno, s
Cenario, mov, chno, chdno are processed. By processing the instruction data, a root key number is assigned to a register rno, and a value representing a code type is assigned to a register chno. Thereafter, the processing shifts to the processing of the instruction data string after the label label3.

【0164】ラベルlabel3以降では、はじめに命
令データscenario,waitenz,keyが
処理される。そのため、タスク状態は、ユーザが何らか
の操作を鍵盤104に対して行うまでの間SLEEPと
なる。
After the label 3, the instruction data scenario, waitenz, and key are processed first. Therefore, the task state is SLEEP until the user performs any operation on the keyboard 104.

【0165】その命令データに続く命令データscen
ario,cmp,rno,note、scenari
o,jnz,label3は、操作が行われた鍵がルー
トに当たる鍵でなかった場合に、タスクアドレスをラベ
ルlabel3のアドレスの値に変更するための命令デ
ータである。そうでなかった場合には、即ちルートに当
たる鍵が操作された場合には、それ以降の命令データが
処理される。
Instruction data scen following the instruction data
ario, cmp, rno, note, scenari
o, jnz, and label3 are instruction data for changing the task address to the address value of the label label3 when the operated key is not the key corresponding to the root. Otherwise, that is, when the key corresponding to the root is operated, the subsequent instruction data is processed.

【0166】ルートに当たる鍵が離鍵された後には、命
令データscenario,mov,ftime,ti
mer、task,newtask,limit、ta
sk,newask,task1、task,kill
task,kanshiが処理される。それらの命令デ
ータを処理することで、レジスタftimeにはルート
に当たる鍵が離鍵された時刻を表す値が代入され、タス
クlimit、及びtask1が生成され、タスクka
nshiが消滅される。
After the key corresponding to the root is released, the instruction data scenario, mov, ftime, ti
mer, task, newtask, limit, ta
sk, newtask, task1, task, kill
task and kanshi are processed. By processing the instruction data, a value indicating the time at which the key corresponding to the root is released is substituted into the register ftime, a task limit and a task1 are generated, and the task ka is generated.
nshi is extinguished.

【0167】タスクchangeでは、始めに命令デー
タscenario,wait,#n2が処理され、そ
の後に命令データtask,killtask,pat
tern1、task,newtask,patter
n2が処理される。
In the task change, the instruction data scenario, wait, # n2 is processed first, and thereafter, the instruction data task, killtask, pat
turn1, task, newtask, pattern
n2 is processed.

【0168】タスクchangeは、ユーザが自動演奏
を開始させるコードを指定した場合にタスクtask1
でタスクpattern1とともに生成される。従っ
て、タスクpattern1は、それが生成されてから
n2で指定された時間が経過すると消滅し、それ以後は
換わってタスクpattern2が生成され、それによ
る自動演奏が行われることになる。
The task change is performed when the user specifies a code for starting the automatic performance.
Is generated together with the task pattern1. Therefore, the task pattern1 disappears when the time specified by n2 elapses since the task pattern1 was generated, and thereafter, the task pattern2 is generated instead, and the automatic performance is performed based on the task pattern2.

【0169】このようにして、タスクchangeでは
ユーザがコードを指定してから経過した時間に応じてタ
スクの消滅、生成を行うことにより、タスクpatte
rn1による自動演奏からタスクpattern2によ
る自動演奏へ、タスクpattern2による自動演奏
からタスクpattern3による自動演奏へと自動演
奏の内容を切り換える。コードを指定してからn2+n
3で指定される時間が経過した後には、タスクpatt
ern3による自動演奏を行わせる。命令データsce
nario,wait,#n4は、タスクchange
の命令データ列をここで実質的に終わらせるための命令
データである。そのために、n4の実際の値は非常に大
きな値としている。
As described above, in the task change, the task is deleted and generated in accordance with the time elapsed since the user specified the code.
The content of the automatic performance is switched from the automatic performance by rn1 to the automatic performance by task pattern2, and from the automatic performance by task pattern2 to the automatic performance by task pattern3. After specifying the code, n2 + n
After the time specified in Step 3 has elapsed, the task patt
The automatic performance by ern3 is performed. Instruction data sce
nario, wait, # n4 is the task change
Is the instruction data for substantially ending the instruction data sequence of FIG. Therefore, the actual value of n4 is set to a very large value.

【0170】タスクlimitでは、始めに命令データ
scenario,wait,#n1が処理される。そ
の後には、命令データtask,killtask,p
attern1、task,killtask,pat
tern2、task,killtask,patte
rn3、task,killtask,change、
task,killtask,limitが処理され
る。
In the task limit, first, instruction data scenario, wait, # n1 is processed. Thereafter, the instruction data task, killtask, p
pattern1, task, killtask, pat
turn2, task, killtask, patte
rn3, task, killtask, change,
task, killtask, and limit are processed.

【0171】タスクlimitは、ルートに当たる鍵が
離鍵されるとタスクkannshiで生成される。その
ため、ルートに当たる鍵が離鍵されてからn1で指定さ
れる時間が経過すると、タスクtask1だけを残して
他のタスクは全て消滅させられることになる。
The task "limit" is generated by the task "kannshi" when the key corresponding to the root is released. Therefore, when the time specified by n1 elapses after the key corresponding to the root is released, all other tasks except the task task1 are deleted.

【0172】なお、タスクtask1とlimitで
は、経過した時間を判定するために同じ値(n1)を用
いている。しかし、タスクの実行順序としては、tas
k1→kannshi→limit→task1という
順序関係となる。そのため、n1で指定された時間が経
過した後のタスクtask1によるタスクの生成は、タ
スクlimitでタスクの消滅が行われた後になる。従
って、同じ値を用いてもそれらのタスク間で処理上の不
具合は発生しない。
Note that the tasks task1 and limit use the same value (n1) to determine the elapsed time. However, the task execution order is tas
The order relationship is k1 → kanshi → limit → task1. Therefore, the generation of the task by the task task1 after the lapse of the time specified by n1 is after the disappearance of the task by the task limit. Therefore, even if the same value is used, no problem occurs in processing between those tasks.

【0173】このように、上記した命令コードを持つ命
令データを組み合わせて作成された第1〜第4の自動演
奏データを処理すると、楽音の発音と画像の表示が並行
して行われることになる。そのため、ユーザは聴覚と視
覚の2つのメディアで情報を受け取ることになる。
As described above, when the first to fourth automatic performance data created by combining the instruction data having the instruction codes described above are processed, the tone generation and the image display are performed in parallel. . As a result, the user receives information through two media, auditory and visual.

【0174】2つのメディアでの情報の供給は、各メデ
ィア(楽音と画像)用のイベントデータをそれぞれ別個
に用意することで行えるようにしている。そのため、各
メディアでの情報の供給を独立、且つ任意に指定するこ
とができる。それにより、自動演奏の進行に合わせてど
のような画像をどのようなタイミングで表示させるかを
任意に指定(設定)することができる。また、自動演奏
データ毎に、その演奏内容に合った画像を表示させると
いったことが容易に指定(設定)することができる。
Information can be supplied to two media by separately preparing event data for each media (musical sound and image). Therefore, it is possible to independently and arbitrarily specify information supply in each medium. Thus, it is possible to arbitrarily designate (set) what kind of image is to be displayed and at what timing according to the progress of the automatic performance. Further, for each automatic performance data, it is possible to easily designate (set) to display an image suitable for the performance content.

【0175】なお、本実施の形態では、データメモリ1
06に格納された自動演奏データだけを処理するように
しているが、ユーザが自動演奏データを作成するための
機能を付加し、その機能によって作成された自動演奏デ
ータを処理できるようにしても良い。
In this embodiment, the data memory 1
Although only the automatic performance data stored in the automatic performance data 06 is processed, a function for generating the automatic performance data by the user may be added so that the automatic performance data generated by the function can be processed. .

【0176】また、画像の表示では、本実施の形態では
発音させる楽音(鍵)のベロシティだけを表示するよう
にしているが、これに限定されるものではない。演奏内
容に合った静止画等を幾つか用意しておき、そのなかか
ら表示させる静止画を選択するようにしても良い。自動
演奏データ毎に画像(例えば静止画群)を用意して、自
動演奏データ毎に異なる画像を切り換えて表示するよう
にしても良い。更には、楽音の発音と画像の表示に加え
て、例えば鍵盤104の各鍵を動作させられる(そのた
めのデータ(命令データ群)を用意する)ようにしても
良い。これらのように、様々な変形が可能である。
In the image display, only the velocity of the musical sound (key) to be generated is displayed in the present embodiment, but the present invention is not limited to this. It is also possible to prepare several still images or the like that match the performance content, and select a still image to be displayed from among them. An image (for example, a group of still images) may be prepared for each automatic performance data, and a different image may be switched and displayed for each automatic performance data. Further, in addition to the generation of musical sounds and the display of images, for example, each key of the keyboard 104 may be operated (data (command data group) for the keys is prepared). As described above, various modifications are possible.

【0177】画像を表示するために、本実施の形態では
電子楽器が表示装置105を搭載しているが、表示装置
105は必ずしも搭載させなくとも良い。例えばテレビ
等に画像を表示させる機能だけを搭載しても良い。これ
は、楽音の発音においても同様であり、音源システム1
07は必ずしも搭載しなくても良い。
In this embodiment, the electronic musical instrument has the display device 105 for displaying an image. However, the display device 105 does not necessarily have to be mounted. For example, only a function of displaying an image on a television or the like may be provided. The same applies to the generation of musical tones.
07 need not necessarily be mounted.

【0178】また、本実施の形態は、電子楽器に本発明
を適用したものであるが、本発明が適用(搭載)できる
のは電子楽器等の楽音生成装置に限定されるものではな
い。例えばパーソナルコンピュータ(以降、パソコンと
略す)にも本発明を適用(搭載)させることができる。
In the present embodiment, the present invention is applied to an electronic musical instrument. However, the present invention can be applied (installed) to a musical sound generator such as an electronic musical instrument. For example, the present invention can be applied (mounted) to a personal computer (hereinafter abbreviated as a personal computer).

【0179】現在のパソコンの多くは、マルチメディア
パソコンとして販売されており、ディスプレイの他に、
楽音を発音させるサウンド機能も標準的に搭載されてい
る。そのため、パソコンでは、上記したような自動演奏
データを処理するためのプログラムをロードし、更にM
IDIデータの送受信機能(演奏操作子群の操作内容を
検出するための機能や楽音を発音させるための機能とな
る)等を搭載させることで本発明を実現(搭載)させる
ことができる。そのプログラムは、フロッピーディスク
やCD−ROM、或いはROMカードといった記録媒体
に記録して配布しても良く、或いは何らかの通信手段を
介して配信するようにしても良い。
Most of the current personal computers are sold as multimedia personal computers.
A sound function for producing musical sounds is also included as standard. Therefore, the personal computer loads a program for processing the automatic performance data as described above,
The present invention can be realized (installed) by mounting an IDI data transmission / reception function (a function for detecting the operation content of the performance operator group or a function for generating a musical tone) and the like. The program may be recorded on a recording medium such as a floppy disk, CD-ROM, or ROM card and distributed, or may be distributed via some communication means.

【0180】[0180]

【発明の効果】以上説明したように本発明では、楽音の
発音用の命令データ群と、楽音とは異なるメディア用の
命令データ群とを別個に用意し、それらの命令データ群
を用いて自動演奏データを作成できるようになってい
る。そのため、2つのメディアでの情報の供給を、自動
演奏データの作成段階で独立、且つ任意に指定(設定)
することができる。
As described above, according to the present invention, a command data group for tone generation of a musical tone and a command data group for media different from a musical tone are separately prepared, and the command data group is automatically used by using the command data group. Performance data can be created. Therefore, the supply of information on the two media is independently and arbitrarily specified (set) at the stage of creating the automatic performance data.
can do.

【0181】また、本発明では、自動演奏データを構成
する命令データに応じて、楽音の発音に関わる処理、或
いは楽音とは異なるメディアに関わる処理を行う。その
ため、自動演奏データを処理するだけで、楽音の発音、
或いは楽音とは異なるメディアで情報を出力させること
ができる。
Further, according to the present invention, processing relating to the generation of musical tones or processing relating to media different from musical tones is performed in accordance with command data constituting automatic performance data. Therefore, by simply processing the automatic performance data,
Alternatively, the information can be output on a medium different from the musical sound.

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

【図1】本実施の形態による自動演奏装置を搭載した電
子楽器の構成図である。
FIG. 1 is a configuration diagram of an electronic musical instrument equipped with an automatic performance device according to the present embodiment.

【図2】表示装置の画面を説明する図である。FIG. 2 is a diagram illustrating a screen of a display device.

【図3】タスクテーブル例を説明する図である。FIG. 3 is a diagram illustrating an example of a task table.

【図4】自動演奏処理の動作フローチャートである。FIG. 4 is an operation flowchart of an automatic performance process.

【図5】演奏データ処理の動作フローチャートである。FIG. 5 is an operation flowchart of performance data processing.

【図6】演奏データ処理の動作フローチャートである
(続き)。
FIG. 6 is an operation flowchart of performance data processing (continued).

【図7】シナリオ制御データ処理の動作フローチャート
である。
FIG. 7 is an operation flowchart of a scenario control data process.

【図8】シナリオ制御データ処理の動作フローチャート
である(続き)。
FIG. 8 is an operation flowchart of a scenario control data process (continued).

【図9】タスク管理データ処理の動作フローチャートで
ある。
FIG. 9 is an operation flowchart of task management data processing.

【図10】自動演奏データ例を示す図である。FIG. 10 is a diagram showing an example of automatic performance data.

【図11】自動演奏データ例を示す図である(その
2)。
FIG. 11 is a diagram showing an example of automatic performance data (part 2).

【図12】自動演奏データ例を示す図である(その2:
続き)。
FIG. 12 is a diagram showing an example of automatic performance data (part 2:
Continued).

【図13】自動演奏データ例を示す図である(その
3)。
FIG. 13 is a diagram showing an example of automatic performance data (part 3).

【図14】自動演奏データ例を示す図である(その
4)。
FIG. 14 is a diagram showing an example of automatic performance data (part 4).

【図15】自動演奏データ例を示す図である(その4:
続き1)。
FIG. 15 is a diagram showing an example of automatic performance data (part 4:
Continue 1).

【図16】自動演奏データ例を示す図である(その4:
続き2)。
FIG. 16 is a diagram showing an example of automatic performance data (part 4:
Continue 2).

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

101 CPU 102 ROM 103 RAM 104 鍵盤 105 表示装置 106 自動演奏データメモリ 107 音源システム 108 スイッチ群 101 CPU 102 ROM 103 RAM 104 Keyboard 105 Display 106 Automatic performance data memory 107 Sound source system 108 Switch group

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 楽音の発音に関わる処理内容を指定する
第1の命令データ群、及び楽音とは異なるメディアに関
わる処理内容を指定する第2の命令データ群を少なくと
も用いて作成された命令データ列を自動演奏データとし
て記憶した記憶媒体と、 前記記憶手段から命令データを読み出し、該読み出した
命令データに応じて、楽音の発音に関わる処理、或いは
楽音とは異なるメディアに関わる処理を少なくとも実行
する自動演奏手段と、 を具備したことを特徴とする自動演奏装置。
1. Instruction data created using at least a first instruction data group that specifies processing content related to tone generation of a musical tone and a second instruction data group that specifies processing content related to a medium different from a musical tone. Instruction data is read from the storage medium in which the columns are stored as the automatic performance data, and at least processing related to the generation of musical tones or processing related to media different from the musical tones is executed in accordance with the read instruction data. An automatic performance device comprising: automatic performance means.
【請求項2】 演奏操作子群に対してユーザが行った操
作の内容を検出する検出手段を更に具備し、 前記自動演奏手段は、前記検出手段が検出した操作内容
を前記記憶手段から読み出した命令データの処理に反映
させる、 ことを特徴とする請求項1記載の自動演奏装置。
2. The apparatus according to claim 1, further comprising a detection unit configured to detect a content of an operation performed by the user on the performance operation unit, wherein the automatic performance unit reads out the operation content detected by the detection unit from the storage unit. 2. The automatic performance device according to claim 1, wherein the automatic performance device is reflected in processing of the command data.
【請求項3】 前記自動演奏手段は、前記検出手段によ
って前記演奏操作子群中の定められた演奏操作子の操作
が検出されている間、該定められた演奏操作子から特定
される前記自動演奏データ中の命令データ列の処理を継
続して行う、 ことを特徴とする請求項2記載の自動演奏装置。
3. The automatic performance means specified by the predetermined performance operator while the detection means detects an operation of a predetermined performance operator in the performance operator group. 3. The automatic performance device according to claim 2, wherein the processing of the instruction data string in the performance data is continuously performed.
【請求項4】 前記自動演奏手段は、前記検出手段によ
って前記演奏操作子群中の定められた演奏操作子の操作
が検出されてから該操作の終了が検出された以後所定時
間が経過するまでの間、該定められた演奏操作子から特
定される前記自動演奏データ中の命令データ列の処理を
継続して行う、 ことを特徴とする請求項2記載の自動演奏装置。
4. The automatic performance means from when the detection means detects an operation of a predetermined performance operator in the performance operator group to when a predetermined time elapses after the end of the operation is detected. 3. The automatic performance apparatus according to claim 2, wherein the processing of the instruction data string in the automatic performance data specified by the predetermined performance operator is continuously performed during the period.
【請求項5】 請求項1記載の自動演奏装置が読み取り
可能な自動演奏データを記録した記録媒体であって、 楽音の発音に関わる処理内容を指定する第1の命令デー
タ群、及び楽音とは異なるメディアに関わる処理内容を
指定する第2の命令データ群を少なくとも用いて作成さ
れた命令データ列を前記自動演奏データとして記録した
前記自動演奏装置読み取り可能な記録媒体。
5. A recording medium on which automatic performance data readable by the automatic performance device according to claim 1 is recorded, wherein the first instruction data group for specifying processing contents related to the generation of musical tones, and the musical tones are: A recording medium readable by the automatic performance device, which records, as the automatic performance data, an instruction data sequence created using at least a second instruction data group that specifies processing contents relating to different media.
【請求項6】 請求項5記載の記録媒体に記録された自
動演奏データを処理するためのプログラムを記録した記
録媒体であって、 前記第1の命令データ群が指定する内容の処理を行い、
楽音を発音させる機能と、 前記第2の命令データ群が指定する内容の処理を行い、
前記楽音とは異なるメディアを介して情報を出力させる
機能と、 を実現させるプログラムを記録した自動演奏装置読み取
り可能な記録媒体。
6. A recording medium on which a program for processing automatic performance data recorded on the recording medium according to claim 5 is recorded, wherein a process specified by the first command data group is performed,
Performing a function of generating a musical tone, and processing of contents specified by the second instruction data group;
A function of outputting information through a medium different from the musical sound; and a recording medium readable by an automatic performance device that records a program for realizing the function.
JP9336995A 1997-12-08 1997-12-08 Automatic playing device Abandoned JPH11175058A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9336995A JPH11175058A (en) 1997-12-08 1997-12-08 Automatic playing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9336995A JPH11175058A (en) 1997-12-08 1997-12-08 Automatic playing device

Publications (1)

Publication Number Publication Date
JPH11175058A true JPH11175058A (en) 1999-07-02

Family

ID=18304502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9336995A Abandoned JPH11175058A (en) 1997-12-08 1997-12-08 Automatic playing device

Country Status (1)

Country Link
JP (1) JPH11175058A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022075704A (en) * 2017-11-30 2022-05-18 カシオ計算機株式会社 Information processing unit, information processing method, information processing program and electronic musical instrument

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022075704A (en) * 2017-11-30 2022-05-18 カシオ計算機株式会社 Information processing unit, information processing method, information processing program and electronic musical instrument

Similar Documents

Publication Publication Date Title
JPS6157640B2 (en)
JP5228315B2 (en) Program for realizing automatic accompaniment generation apparatus and automatic accompaniment generation method
JPH11175058A (en) Automatic playing device
JP4096952B2 (en) Music generator
JP3192579B2 (en) Automatic performance device and automatic performance method
JPH11143463A (en) Automatic performing device
JP3052875B2 (en) Sequence data editing method and sequencer
JP2643277B2 (en) Automatic performance device
JP2001013964A (en) Playing device and recording medium therefor
JP3970114B2 (en) Electronic musical instrument, automatic accompaniment method, computer program, and computer-readable recording medium
JP2641851B2 (en) Automatic performance device
JP4873307B2 (en) Program for realizing automatic accompaniment generation apparatus and automatic accompaniment generation method
JP2001318669A (en) Musical score display device and recording medium
JPH10254467A (en) Lyrics display device, recording medium which stores lyrics display control program and lyrics display method
JP2518340B2 (en) Automatic playing device
JP3169535B2 (en) Automatic performance device and automatic performance method
JP2518341B2 (en) Automatic playing device
JP2513014B2 (en) Electronic musical instrument automatic performance device
JP3521789B2 (en) Performance setting data selection device
JP3150580B2 (en) Automatic performance device and automatic performance method
JP3837994B2 (en) Musical score data conversion apparatus and recording medium
JP2621276B2 (en) Automatic performance device
JP2000250533A (en) Harmony type display device
JP2003108123A (en) Electronic musical instrument
JP3788396B2 (en) Electronic music apparatus and computer program for electronic music apparatus

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20041213