JPH052392A - Electronic musical instrument allocation device - Google Patents
Electronic musical instrument allocation deviceInfo
- Publication number
- JPH052392A JPH052392A JP3194020A JP19402091A JPH052392A JP H052392 A JPH052392 A JP H052392A JP 3194020 A JP3194020 A JP 3194020A JP 19402091 A JP19402091 A JP 19402091A JP H052392 A JPH052392 A JP H052392A
- Authority
- JP
- Japan
- Prior art keywords
- tone generation
- task
- tone
- generation channel
- 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.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 本発明は、 楽音発生チャネルを選定して新
しい楽音を割当てる電子楽器の割当装置に関し、新しい
楽音を割当てる楽音発生チャネルの選定順位を予め定め
るに、演奏表現上における違和感を抑制することを目的
とする。
【構成】 発音状態にある楽音発生チャネルのうちから
連打関係にある楽音発生チャネルを検出する連打関係検
出手段、この連打関係検出手段により検出される連打関
係にある楽音発生チャネルに対して、所定の順位規準に
もとづく割当て順位にしたがって少なくとも前記発音状
態にある楽音発生チャネルのうちにおいては優先的に選
定されて新しい楽音が割当てられるように、前記所定の
順位規準における順位規準の対象となる内容を改竄する
改竄手段および、この改竄手段により改竄される順位規
準の対象内容のもとに楽音発生チャネルに対して前記所
定の順位規準にもとづく割当て順位により新しい楽音を
割当てる楽音発生チャネルの選定順位を予め定める順位
選定手段を具えるように構成する。
(57) [Summary] [Object] The present invention relates to an electronic musical instrument assigning apparatus for selecting a musical tone generating channel and assigning a new musical tone, and in order to predetermine the selection order of the musical tone generating channel to which a new musical tone is assigned, The purpose is to suppress discomfort. [Structure] A continuous hitting relation detecting means for detecting a musical sound generating channel in a continuous hitting relationship among the musical sound generating channels in a sounding state, and a predetermined tone for a musical sound generating channel in a continuous hitting relation detected by the continuous hitting relation detecting means. The contents subject to the rank criterion in the predetermined rank criterion are tampered with so that a new music tone is preferentially selected and assigned at least among the tone generation channels in the sounding state according to the allocation rank based on the rank criterion. The tampering means and the selection order of the tone generation channels to which new musical tones are assigned according to the assignment order based on the predetermined ranking criteria for the tone generation channels based on the contents of the ranking criteria tampered by the tampering means. It is configured to have a rank selection means.
Description
【0001】[0001]
【産業上の利用分野】本発明は、楽音発生チャネルを選
定して新しい楽音を割当てる電子楽器の割当装置に関
し、より詳しくは新しい楽音を割当てる楽音発生チャネ
ルの選定順位を予め定めるプリアサインの技術に関する
ものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic musical instrument allocating apparatus for selecting a musical tone generating channel and allocating a new musical tone, and more particularly to a pre-assigning technique for predetermining the selection order of musical tone generating channels for allocating a new musical tone. It is a thing.
【0002】[0002]
【従来の技術】従来、前述されたような電子楽器の割当
装置において、予め楽音発生チャネルの選定順位を定め
るに、次のように行っている。 押鍵により、言うな
ればノートオンによって早く楽音が割当てられた順位に
楽音発生チャネルの選定順位を定める。 割当てられ
た楽音のエンベロープレベルの低い順位に楽音発生チャ
ネルの選定順位を定める。2. Description of the Related Art Conventionally, in the above-mentioned electronic musical instrument allocating device, the order of selecting the tone generating channels is determined in advance as follows. By pressing a key, the selection order of the tone generation channels is set to the order in which the tone is quickly assigned by note-on. The selection order of the tone generation channels is determined in the order of the assigned musical tone envelope level.
【0003】[0003]
【発明が解決しようとする課題】ところで、連打楽音の
割当てに関しては、連打楽音間のマスキング効果を配慮
して、全て個々に楽音発生チャネルに対して連打におけ
る新たな楽音を割当てるのではなく、連打関係の楽音発
生チャネルの数を予め制限してその数の範囲内で連打に
おける新たな楽音を割当てるのが、次の理由により有要
である。With regard to the allocation of the continuous tone sounds, in consideration of the masking effect between the continuous tone sounds, all the new tone sounds in the continuous tone sounds are not individually allocated to the tone generation channels, but the continuous tone sounds are continuously allocated. It is important to limit the number of related tone generation channels in advance and to assign a new tone in the continuous hit within the range of the number for the following reason.
【0004】連打楽音を割当てる楽音発生チャネルの数
を制限しない場合には、連打関係になる楽音発生チャネ
ルにおいて発音される楽音が演奏表現に与える影響が比
較的に少ないにもかかわらず連打される新たな楽音を楽
音発生チャネルに割当てるために、前述の予め定められ
る選定順位にしたがって演奏表現上において有用な楽音
を発音している楽音発生チャネルに連打される新たな楽
音を割当てることになる。したがって、演奏表現上にお
いて有用な楽音の発音が、連打楽音によって次々に消さ
れるようになり、演奏表現上において違和感を生じる。If the number of tone generation channels to which the continuous tone is assigned is not limited, a new tone is repeatedly produced even though the tone generated in the tone generation channels having the continuous tone relationship has relatively little influence on the performance expression. In order to assign different musical tones to the musical tone generating channels, new musical tones to be continuously hit are assigned to the musical tone generating channels producing useful musical tones in the performance expression according to the above-mentioned predetermined selection order. Therefore, the pronunciation of musical tones that are useful in musical expression is erased one after another by the repeated musical tones, which causes a feeling of strangeness in musical expression.
【0005】しかしながら、連打楽音に用いる楽音発生
チャネルの数を単に制限しただけでは、連打楽音の割当
てが制限数に達すると、他に割当て可能な発音終了状態
にある楽音発生チャネルがある場合でも、連打楽音を既
に発音状態にある楽音発生チャネルに割当てることにな
るために、やはり演奏表現上において違和感を生じる。However, if the number of tone generation channels used for continuous tone sounds is simply limited, when the number of consecutive tone sounds assigned reaches the limited number, even if there are other tone generation channels in the sounding end state that can be assigned, Since the continuous-tapping musical tone is assigned to the musical tone generating channel that is already in the sounding state, a sense of incongruity is produced in the performance expression.
【0006】本発明は、このような事情を鑑みてなされ
たものであってその目的とするところは、新しい楽音を
割当てる楽音発生チャネルの選定順位を予め定めるに、
演奏表現上における違和感を抑制することができる電子
楽器の割当装置を提供しようとするものである。The present invention has been made in view of the above circumstances, and an object thereof is to preset a selection order of tone generation channels to which a new tone is assigned.
An object of the present invention is to provide an assigning device for an electronic musical instrument, which can suppress a feeling of strangeness in performance expression.
【0007】[0007]
【課題を解決するための手段】本発明による電子楽器の
割当装置は、前述された目的を達成するために、基本的
には、楽音発生チャネルを選定して新しい楽音を割当て
る電子楽器の割当装置において、(a) 発音状態にある楽
音発生チャネルのうちから連打関係にある楽音発生チャ
ネルを検出する連打関係検出手段、(b) この連打関係検
出手段により検出される連打関係にある楽音発生チャネ
ルにおける特定の楽音発生チャネルを除くその他の楽音
発生チャネルに対して、所定の順位規準にもとづく割当
て順位にしたがって少なくとも前記発音状態にある楽音
発生チャネルのうちにおいては優先的に選定されて新し
い楽音が割当てられるように、前記所定の順位規準にお
ける順位規準の対象となる内容を改竄する改竄手段およ
び(c) この改竄手段により改竄される順位規準の対象内
容のもとに楽音発生チャネルに対して前記所定の順位規
準にもとづく割当て順位により新しい楽音を割当てる楽
音発生チャネルの選定順位を予め定める順位選定手段を
具えることを特徴とするものである。In order to achieve the above-mentioned object, an electronic musical instrument allocating device according to the present invention is basically an electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone. In (a) a continuous hitting relation detecting means for detecting a musical sound generating channel having a continuous hitting relationship among the musical sound generating channels in a sounding state, (b) in a musical sound generating channel having a continuous hitting relation detected by the continuous hitting relation detecting means. A new musical tone is assigned to other musical tone generating channels other than the specific musical tone generating channel by preferentially selecting at least among the musical tone generating channels in the sound generation state according to the allocation order based on a predetermined order criterion. Falsification means for falsifying the contents subject to the ranking criteria in the predetermined ranking criteria, and (c) this falsification means The order selection means for predetermining the selection order of the tone generation channels for assigning new musical tones to the tone generation channels according to the assignment order based on the predetermined order criteria based on the contents of the order criteria to be altered. It is a feature.
【0008】[0008]
【作用】発音状態にある楽音発生チャネルのうちから検
出される連打関係にある楽音発生チャネルにおいて、例
えば急速減衰中、アタック中などの特定の楽音発生チャ
ネルを除くその他の楽音発生チャネルに対して、所定の
順位規準における順位規準の対象となる内容を改竄す
る。この改竄は、前述のその他の楽音発生チャネルが少
なくとも発音状態にある楽音発生チャネルのうちにおい
ては所定の順位規準にもとづく割当て順位にしたがって
優先的に選択されて新しい楽音が割当てられるようにす
る。この改竄される順位規準の対象内容のもとに、所定
の順位規準にもとづく割当て順位にしたがって楽音発生
チャネルに対して新しい楽音を割当てる選定順位を定め
る。In the tone generation channels in the continuous hitting relation detected from the tone generation channels in the sound generation state, for example, other tone generation channels except a certain tone generation channel during rapid decay, attack, etc. Falsify the contents subject to the ranking criteria in the prescribed ranking criteria. This alteration allows the new tone to be assigned by preferentially selecting the other tone generating channels described above at least among the tone generating channels in the sounding state according to the assignment order based on the predetermined order criterion. Based on the contents of the falsified rank criterion, a selection rank for allocating a new musical sound to a musical sound generation channel is determined according to an allocation rank based on a predetermined rank criterion.
【0009】なお、例えば所定の順位規準としては、次
のものがある。
1.順位規準の対象となる内容を楽音発生チャネルにお
ける楽音の発音量としてその発音量の小なる楽音発生チ
ャネルを優先させる。
2.順位規準の対象内容を楽音発生チャネルにおける楽
音のノートオンの発音状態およびノートオフの発音状態
を含む発音状態の態様として少なくともノートオフの発
音状態にある楽音発生チャネルをノートオンの発音状態
にある楽音発生チャネルより優先させる。
3.順位規準の対象内容を楽音発生チャネルにおける楽
音のノートオンの発音状態およびノートオフの発音状態
を含む発音状態の態様と、楽音発生チャネルにおける楽
音の発音量として、少なくともノートオフの発音状態に
ある楽音発生チャネルをノートオンの発音状態にある楽
音発生チャネルより優先させるとともに、少なくともそ
のノートオフの発音状態にある楽音発生チャネルにおい
ては楽音の発音量の小なる楽音発生チャネルを優先させ
る。
4.順位規準の対象内容を楽音発生チャネルにおける楽
音の発音状態および発音終了状態の態様として発音終了
状態にある楽音発生チャネルを発音状態にある楽音発生
チャネルより優先させる。
また、前記所定の順位規準は、前記順位規準の対象内容
にダンパーの発音状態およびまたはソステヌートの発音
状態の態様をも含む順位規準であっても良い。Note that, for example, the predetermined ranking criteria are as follows. 1. The contents subject to the order criterion are set as the sound generation amount of the musical sound in the musical sound generation channel, and the musical sound generation channel having the smaller generated sound amount is prioritized. 2. The content of the rank criterion is the tone generation state including the note-on tone generation state and the note-off tone generation state of the tone in the tone generation channel. At least the tone generation channel in the note-off state is in the note-on state. Give priority to the source channel. 3. The content of the rank criterion is a sounding state mode including a note-on sounding state and a note-off sounding state of a musical sound in the musical tone generating channel, and a musical sound at least in the note-off sounding state as the amount of musical sound generated in the musical tone generating channel. The tone generation channel is prioritized over the tone generation channel in the note-on tone generation state, and the tone generation channel in which the tone generation amount is low is given priority at least in the tone-off tone generation channel. 4. The target content of the ranking criterion is a mode of the tone generation state and tone generation end state of the tone in the tone generation channel, and the tone generation channel in the tone generation end state has priority over the tone generation channel in the tone generation state. Further, the predetermined rank criterion may be a rank criterion including the aspects of the sounding state of the damper and / or the sounding state of sostenuto in the contents of the rank criterion.
【0010】[0010]
【実施例】第1実施例
次に、本発明による電子楽器の割当装置を、減衰音系の
楽音を発生する電子楽器に適用した場合の具体的実施例
につき、図面を参照しつつ説明する。まず、図1におい
て、鍵盤部20は鍵盤および鍵操作検出回路より構成さ
れるとともに、鍵盤において操作された鍵を鍵操作検出
回路で検出し、この検出された鍵に対応するキーデータ
を生成してバス21を介してCPU22に割込みをかけ
る。また、操作子群23は音色の選択などを行う複数個
の操作子より構成されているとともに、ペダル群24は
ダンパーペダル、ソステヌートペダルなどより構成され
ている。さらに、ROM25にはCPU22の実行する
プログラム、各処理に必要なデータおよびテーブルなど
が予め記憶されているとともに、RAM26にはプログ
ラムを実行するに必要な各種レジスタなどを含むワーキ
ングエリアが設定されている。なお、タイマ27は、所
定時間間隔(1mSec )でCPU22にタイマ割込みを
かける。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment Next, a specific embodiment in which the electronic musical instrument assigning apparatus according to the present invention is applied to an electronic musical instrument which produces a musical sound of a damping tone system will be described with reference to the drawings. First, in FIG. 1, the keyboard unit 20 is composed of a keyboard and a key operation detection circuit, and a key operated on the keyboard is detected by the key operation detection circuit to generate key data corresponding to the detected key. Interrupts the CPU 22 via the bus 21. The operator group 23 is composed of a plurality of operators for selecting a tone color, and the pedal group 24 is composed of a damper pedal, a sostenuto pedal and the like. Further, the ROM 25 pre-stores programs executed by the CPU 22, data and tables necessary for each processing, and the RAM 26 has working areas including various registers necessary for executing the programs set therein. . The timer 27 issues a timer interrupt to the CPU 22 at a predetermined time interval (1 mSec).
【0011】CPU22は所定プログラムを実行し、鍵
盤部20からの割込みに応じて鍵盤部20からキーデー
タを受け取り、このキーデータをRAM26の対応する
レジスタに書き込む。また、タイマ27からのタイマ割
込みにもとづき所定時間間隔で操作子群23の操作設定
状態およびペダル群24の操作状態を各操作子検出回路
28およびペダル検出回路29を制御して検出し、操作
子データ、ペダルデータとしてRAM26の対応するレ
ジスタに書き込む。さらに、これら書き込まれたキーデ
ータなどにもとづき、所定プログラムを実行することに
より16個の楽音発生チャネルを有する楽音発生回路3
0を制御する。この楽音発生回路30は、CPU22の
制御のもとに所望の楽音信号を生成し、増幅器31を介
してスピーカ32に送り、楽音を発生させる。The CPU 22 executes a predetermined program, receives key data from the keyboard section 20 in response to an interrupt from the keyboard section 20, and writes this key data in a corresponding register of the RAM 26. Further, based on a timer interrupt from the timer 27, the operation setting state of the operator group 23 and the operation state of the pedal group 24 are detected by controlling the operator detecting circuit 28 and the pedal detecting circuit 29 at predetermined time intervals, and the operator is detected. The data and the pedal data are written in the corresponding registers of the RAM 26. Furthermore, a tone generation circuit 3 having 16 tone generation channels is executed by executing a predetermined program based on the written key data.
Control 0. The tone generation circuit 30 generates a desired tone signal under the control of the CPU 22 and sends it to the speaker 32 via the amplifier 31 to generate a tone.
【0012】楽音発生チャネルは、CPU22による楽
音発生の指示およびその際に与えられる楽音発生パラメ
ータにもとづき楽音信号を生成し、この生成される楽音
信号を時間経過に対応して推移させる。また、楽音発生
チャネルは、CPU22によって与えられる次に到達す
るエンベロープレベルを示す目標値と所定時間当りのエ
ンベロープレベルの変化量を示すレートとにもとづいて
エンベロープレベルを補間して滑らかなエンベロープを
発生させて楽音信号の振幅を制御するとともに、急速減
衰の指示によりエンベロープレベルを所定の急速減衰レ
ートにしたがって減衰させ、エンベロープレベルが
“0”になると楽音発生回路30に設けられている急速
減衰終了FIFOに楽音発生チャネル番号を積む。The tone generation channel generates a tone signal based on a tone generation instruction from the CPU 22 and a tone generation parameter given at that time, and changes the generated tone signal according to the passage of time. Further, the tone generation channel interpolates the envelope level based on the target value given by the CPU 22 indicating the envelope level to be reached next and the rate indicating the amount of change of the envelope level per a predetermined time to generate a smooth envelope. Control the amplitude of the musical tone signal, attenuate the envelope level in accordance with a predetermined rapid attenuation rate in response to a rapid attenuation instruction, and when the envelope level becomes “0”, the rapid attenuation end FIFO provided in the musical tone generation circuit 30 is controlled. Stack the tone generation channel numbers.
【0013】次に、RAM26の所定領域に設定されて
いるノートマップなどの各種マップについて、図2〜図
5を参照して説明する。なお、図2〜図5は、これらマ
ップの一部を示すものである。ノートマップ(図2)
“0”〜“127”によって楽音の音高を示すノート番
号に対応して、次のものが記憶される。Next, various maps such as a note map set in a predetermined area of the RAM 26 will be described with reference to FIGS. 2 to 5 show a part of these maps. The note map (FIG. 2) "0" to "127" stores the following in correspondence with the note number indicating the pitch of the musical tone.
【0014】(1) ノートステータス:ノートオンを
“1”でもって、ノートオフを“0”でもって示す。
(2) ソステヌートステータス:ソステヌートオンを
“1”でもって、ソステヌートオフを“0”でもって示
す。タスク管理マップ(図4)
“1”〜“7”によってタスクの種類を示すタスク番号
に対応して、次のものが記憶される。なお、タスク番号
は、“1”はキーデータ受信タスク、“2”はメインア
サイナタスク、“3”は発音タスク、“4”はプリアサ
イナタスク、“5”はエンベロープタスク、“6”はペ
ダルタスク、“7”は操作子タスクであり、番号が若い
ほど優先順位が高いタスクとなっている。(1) Note status: Note-on is indicated by "1" and note-off is indicated by "0". (2) Sostenuto status: Indicates sostenuto on by "1" and sostenuto off by "0". The task management map (FIG. 4) "1" to "7" stores the following items corresponding to the task numbers indicating the types of tasks. As for the task numbers, "1" is a key data receiving task, "2" is a main assigner task, "3" is a sounding task, "4" is a pre-assigner task, "5" is an envelope task, and "6" is The pedal task, “7”, is an operator task, and the lower the number, the higher the priority.
【0015】(1) タイマ処理要求フラグ:タイマ処理が
必要なことを“1”でもって示す。
(2) ステータス:タスクの状態がランであることを
“0”でもって、レディであることを“1”でもって、
ウェイトであることを“2”でもって示す。
(3) 待ちイベント値:ステータスがウェイトにおける待
ち中のイベントの種類を示す。(1) Timer processing request flag: "1" indicates that timer processing is required. (2) Status: "0" indicates that the task status is run, and "1" indicates that the task status is ready.
The weight is indicated by "2". (3) Waiting event value: Indicates the type of waiting event whose status is wait.
【0016】(4) イベント発生フラグ:タスクの各イベ
ント毎にイベントの発生を“1”でもって示す。楽音発生チャネル管理マップ(図5)
“0”〜“15”の番号により16個の楽音発生チャネ
ルを示す楽音発生チャネル番号に対応して、次のものが
記憶される。(4) Event occurrence flag: The occurrence of an event is indicated by "1" for each event of the task. Music tone generation channel management map (FIG. 5) The following are stored in correspondence with the tone generation channel numbers indicating 16 tone generation channels by numbers "0" to "15".
【0017】(1) 発音量:現在発音中の楽音の発音量を
“0000H”〜“FFFFH”でもって示す。
(2) トランケート禁止フラグ:新たな楽音の割当ての禁
止を“1”でもって示す。
(3) 急速減衰中フラグ:従前の楽音を急速減衰中である
ことを“1”でもって示す。(1) Sound Generation Amount: The sound generation amount of the musical sound currently being generated is indicated by "0000H" to "FFFFH". (2) Truncate prohibition flag: A prohibition of allocation of a new musical tone is indicated by "1". (3) Rapidly decaying flag: Indicates by "1" that the previous musical tone is being rapidly decayed.
【0018】(4) 処理待ちフラグ1:発音タスクにおけ
る第1処理の処理待ちを“1”でもって示す。
(5) 処理待ちフラグ2:発音タスクにおける第2処理の
処理待ちを“1”でもって示す。
(6) 処理待ちフラグ3:発音タスクにおける第3処理の
処理待ちを“1”でもって示す。(4) Processing wait flag 1: The processing wait of the first processing in the sounding task is indicated by "1". (5) Processing wait flag 2: The processing wait of the second processing in the sounding task is indicated by "1". (6) Processing wait flag 3: The processing wait of the third processing in the sounding task is indicated by "1".
【0019】(7) ノート番号:楽音の音高を示す。
(8) ベロシティ:楽音のベロシティを示す。
(9) 楽音発生パラメータ群:楽音発生に関する各種パラ
メータの値を示す。エンベロープ管理マップ(図3)
各楽音発生チャネルに対応して“0”〜“15”の番号
により16個のエンベロープチャネルを示すエンベロー
プチャネル番号に対応して、次のものが記憶される。(7) Note number: Indicates the pitch of a musical tone. (8) Velocity: Indicates the velocity of the musical sound. (9) Musical tone generation parameter group: Indicates the values of various parameters related to musical tone generation. Envelope management map (FIG. 3) The followings are stored corresponding to the envelope channel numbers indicating 16 envelope channels by numbers "0" to "15" corresponding to each tone generation channel.
【0020】(1) エンベロープレベル:エンベロープレ
ベルを“0000H”〜“FFFFH”でもって示す。
(2) 目標値:次に到達するべきエンベロープレベルを
“0000H”〜“FFFFH”でもって示す。
(3) レート:所定時間(5mSec )当たりのエンベロー
プレベルの変化量を示す。具体的には、正負を示す符号
ビットと絶対値を“0000H”〜“FFFFH”で示
すデータビットとより構成される。(1) Envelope level: The envelope level is indicated by "0000H" to "FFFFH". (2) Target value: The envelope level to be reached next is indicated by "0000H" to "FFFFH". (3) Rate: Indicates the amount of change in the envelope level per predetermined time (5 mSec). Specifically, it is composed of a sign bit indicating positive and negative and a data bit whose absolute value is represented by "0000H" to "FFFFH".
【0021】(4) フェーズ番号:現在のフェーズ番号
(楽音発生開始からの経過段階)を示す。
(5) トランケート禁止フェーズ番号:新たな楽音の割当
てを禁止する最終フェーズ番号を示す。
(6) エンベロープ生成パラメータ群:楽音のエンベロー
プ生成に関する各種パラメータの値を示す。(4) Phase number: Indicates the current phase number (elapsed stage from the start of tone generation). (5) Truncate prohibition phase number: Indicates the final phase number for which allocation of new musical tones is prohibited. (6) Envelope generation parameter group: Indicates the values of various parameters related to the generation of musical sound envelopes.
【0022】次に、前述のように構成される電子楽器の
基本的な動作について、図6〜図17に示されているフ
ローチャート図を参照しつつ説明する。なお、これら図
6〜図17のフローチャート図において用いられる各種
の変数としては、次のものがある。
NSTK 要求元タスク番号:モニタコールをしたタスクの
タスク番号を示す。Next, the basic operation of the electronic musical instrument constructed as described above will be described with reference to the flow charts shown in FIGS. Various variables used in the flowcharts of FIGS. 6 to 17 are as follows. NSTK request source task number: Indicates the task number of the task that made the monitor call.
【0023】NSET 要求元イベント値:モニタコールを
したタスクにおいて次に処理を行おうとするイベントの
種類を示す。
NDTK 要求先タスク番号:次に実行を予定するタスクの
タスク番号を示す。
NDET 要求先イベント値:次に実行を予定するタスクに
おいて処理を行おうとするイベントの種類を示す。NSET request source event value: Indicates the type of event to be processed next in the task that made the monitor call. NDTK request destination task number: Shows the task number of the next scheduled task. NDET Request destination event value: Indicates the type of event to be processed in the next scheduled task.
【0024】IEDF 初期設定完了フラグ:全てのタスク
における初期設定の完了を“1”でもって示す。
TCTN タイマ割込み処理対象番号:タイマ割込み処理対
象のタスク番号を示す。
TCNE N 第Nタスクタイマカウンタ値:タスク番号が
Nであるタスク用タイマカウンタの値を示す。IEDF initial setting completion flag: The completion of initial setting in all tasks is indicated by "1". TCTN Timer interrupt processing target number: Indicates the task number of the timer interrupt processing target. TCNE N Nth task timer counter value: Indicates the value of the timer counter for the task whose task number is N.
【0025】TCND N 第Nタスク時間間隔:タスク番
号がNであるタスクに対してタイマイベントを発行する
時間間隔を示す。
TCNE TCTN 第TCTNタスクタイマカウンタ値:タスク番
号がタイマ割込み処理対象番号TCTNであるタスク用タイ
マカウンタの値を示す。TCND TCTN 第TCTNタスク時間
間隔:タスク番号がタイマ割込み処理対象番号TCTNであ
るタスクに対してタイマイベントを発行する時間間隔を
示す。
〔キーデータ受信タスク〕NTNM ノート番号:ノートオ
ンメッセージおよび/またはノートオフメッセージにも
とづく演奏情報の音高を示す。TCND N Nth task time interval: indicates the time interval at which a timer event is issued to the task whose task number is N. TCNE TCTN Task timer counter value of TCTN: Indicates the value of the timer counter for the task whose task number is the timer interrupt processing target number TCTN. TCND TCTN Second TCTN task time interval: Indicates the time interval for issuing a timer event to the task whose task number is the timer interrupt processing target number TCTN. [Key data receiving task] NTNM note number: Indicates the pitch of performance information based on the note-on message and / or the note-off message.
【0026】NTST ノートステータス:ノートオンメッ
セージにもとづく演奏情報であることを“1”でもっ
て、ノートオフメッセージにもとづく演奏情報であるこ
とを“0”でもって示す。
NTVL ベロシティ:ノートオンメッセージにもとづく演
奏情報のベロシティを示す。
〔メインアサイナタスク〕MASS N 第Nアサイン順位
の楽音発生チャネル番号:アサイン順位が第Nアサイン
順位(N番目のアサイン順位)である楽音発生チャネル
の楽音チャネル番号を示す。NTST note status: Performance information based on a note-on message is indicated by "1" and performance information based on a note-off message is indicated by "0". NTVL velocity: Indicates the velocity of performance information based on the note-on message. [Main Assigner Task] MASS N Music tone generation channel number of Nth assigned order: Indicates the tone channel number of the tone generation channel whose assignment order is the Nth assigned order (Nth assigned order).
【0027】TASN 対象アサイン順位:アサイン対象の
アサイン順位番号を示す。
MAEF メインアサイナ処理中フラグ:メインアサイナタ
スクにおいて新たなアサイン処理を行ったことを“1”
でもって示す。
MASS TASN アサイン順位TASNの楽音発生チャネル番
号:アサイン順位が対象アサイン順位TASNである楽音発
生チャネルの楽音発生チャネル番号を示す。TASN Target Assignment Order: Indicates the assignment order number of the assignment target. MAEF Main assigner processing flag: “1” indicates that new assign processing was performed in the main assigner task
I will show you. MASS TASN Music tone generation channel number of assignment rank TASN: Indicates the tone generation channel number of the tone generation channel whose assignment rank is the target assignment rank TASN.
【0028】GACN 割当て可能楽音発生チャネル数:割
当てが可能な楽音発生チャネル数を示す。
〔発音タスク〕GCTN 発音処理対象楽音発生チャネル番
号:処理対象の楽音発生チャネル番号を示す。GACN Number of assignable tone generation channels: Indicates the number of assignable tone generation channels. [Sound generation task] GCTN Sound generation channel number for sound generation processing: Indicates the sound generation channel number for processing.
【0029】TDNF 急速減衰未了フラグ:いずれかの楽
音発生チャネルが急速減衰中であることを“1”でもっ
て示す。
〔プリアサイナタスク〕
GN 楽音発生チャネル番号
PLEV GN 楽音発生チャネル番号GNのプリアサイナ発音
量
N プリアサイン順位
PASS N 第Nプリアサイン順位楽音発生チャネル番号:
プリアサイン順位が第N順位である楽音発生チャネルの
楽音発生チャネル番号を示す。TDNF rapid decay incomplete flag: Indicates by "1" that any tone generation channel is undergoing rapid decay. [Pre-assigner task] GN Music tone generation channel number PLEV GN Music tone generation channel number GN pre-assigner pronunciation amount N Pre-assign rank PASS N Nth pre-assign rank Music tone generation channel number:
The tone generation channel number of the tone generation channel having the pre-assigned rank Nth is shown.
【0030】PACN プリアサイナ割当て可能楽音発生チ
ャネル数:プリアサイナタスクにおいて割当て可能な楽
音発生チャネル数を示す。
PCTN 連打処理対象番号
RSEF 連打検出フラグ:連打の検出を“1”でもって示
す。
SCTN 連打比較対象番号
PASS PCTN 連打処理対象番号PCTNの楽音発生チャネル
番号:プリアサイン順位が連打処理対象番号PCTNの楽音
発生チャネル番号を示す。PACN Number of assignable tone generation channels for pre-signer: Shows the number of assignable tone generation channels in the pre-assigner task. PCTN Repeated hit processing number RSEF Repeated hit detection flag: Indicates the continuous hit detection by "1". SCTN Continuous hit comparison target number PASS PCTN Continuous hit processing target number PCTN tone generation channel number: Indicates the tone generation channel number whose pre-assign order is PCTN consecutive hit processing number PCTN.
【0031】PLEV PCTN 連打処理対象番号PCTNのプリ
アサイナ発音量:楽音発生チャネル番号が連打処理対象
番号PCTNのプリアサイナ発音量を示す。
PASS SCTN 連打比較対象番号SCTNの楽音発生チャネル
番号:プリアサイン順位が連打比較対象番号SCTNの楽音
発生チャネル番号を示す。
PLEV SCTN 連打比較対象番号SCTNのプリアサイナ発音
量:楽音発生チャネル番号が連打比較対象番号SCTNのプ
リナサイナ発音量を示す。
〔エンベロープタスク〕
ECTN エンベロープ処理対象番号
ENNM エンベロープ処理対象ノート番号
〔ペダルタスク〕
DMPV ダンパー値
本実施例においては、各種タスク(キーデータ受信タス
ク、メインアサイナタスク、発音タスク、プリアサイナ
タスク、エンベロープタスク、ペダルタスク、操作子タ
スク)はマルチタスキングに処理が行われるとともに、
各タスク間の優先処理などはモニタプログラムにより行
われる。ここで、モニタプログラムとしてはリセットル
ーチン、イベント待ちモニタコールルーチン、イベント
発生モニタコールルーチン、タイマ割込み処理ルーチ
ン、キーデータ受信割込み処理ルーチンがある。PLEV PCTN Pre-assigner sound generation amount of continuous hit processing number PCTN: The tone generation channel number indicates the pre-assigner sound output amount of the continuous hit processing target number PCTN. PASS SCTN Tone generation channel number of consecutive hit comparison number SCTN: Indicates the tone generation channel number of pre-assigned rank consecutive hit comparison number SCTN. PLEV SCTN Pre-assigner sound volume of consecutive hit comparison target number SCTN: Indicates the pre-signer pronunciation amount of the tone generation channel number of consecutive hit comparison target number SCTN. [Envelope task] ECTN Envelope processing target number ENNM Envelope processing target number [Pedal task] DMPV damper value In this embodiment, various tasks (key data receiving task, main assigner task, sounding task, pre-assigner task, envelope task) , Pedal task, operator task) are processed in multitasking,
The monitor program performs priority processing between tasks. Here, the monitor program includes a reset routine, an event wait monitor call routine, an event occurrence monitor call routine, a timer interrupt processing routine, and a key data reception interrupt processing routine.
【0032】まず、モニタプログラムについて図6〜図
10に示されているフローチャート図を参照しつつ説明
する。リセットルーチン(図6)
電源の投入時などにおいてリセットがかかると実行され
るルーチンである。各ステップZA1、ZA2において
の処理は、次の通りである。First, the monitor program will be described with reference to the flow charts shown in FIGS. Reset Routine (FIG. 6) This routine is executed when a reset is applied when the power is turned on. The processing in each step ZA1 and ZA2 is as follows.
【0033】〔ZA1〕 タスク管理マップにおける全
てのタスク番号のステータスを“1:レディ”に設定
し、またタイマ処理要求フラグ、待ちイベント値および
イベント発生フラグを“0”に設定する。さらに、初期
設定完了フラグIEDFを“0:初期設定未完了”に設定す
るなどの初期設定を行う。
〔ZA2〕 要求元タスク番号NSTKを“1:キーデータ
受信タスク”に更新するとともに、タスク管理マップに
おけるタスク番号“1:キーデータ受信タスク”のステ
ータスを“0:ラン”に設定する。[ZA1] The statuses of all task numbers in the task management map are set to "1: ready", and the timer processing request flag, wait event value, and event occurrence flag are set to "0". Further, initial setting such as setting the initial setting completion flag IEDF to “0: incomplete initial setting” is performed. [ZA2] The request source task number NSTK is updated to "1: key data reception task", and the status of the task number "1: key data reception task" in the task management map is set to "0: run".
【0034】
〔ZA3〕 キーデータ受信タスクを実行する。イベント待ちモニタコールルーチン(図7)
実行中のタスクがイベント待ちモニタコールを行うと実
行されるルーチンである。各ステップZB1〜ZB5に
おいての処理は、次の通りである。
〔ZB1〕 タスク管理マップにおける要求元タスク番
号NSTKに対応するタスク番号について、要求元イベント
値NSETの2進数表現における“1”であるビットに対応
するイベント発生フラグのいずれかが“1:イベント発
生”であるか否かを判断する。この対応するイベント発
生フラグのいずれかが“1:イベント発生”である場合
には、イベント待ちモニタコールを行ったタスクに戻
る。[ZA3] The key data reception task is executed. Event wait monitor call routine (FIG. 7) This routine is executed when the task under execution makes an event wait monitor call. The processing in each step ZB1 to ZB5 is as follows. [ZB1] For the task number corresponding to the request source task number NSTK in the task management map, one of the event occurrence flags corresponding to the bit that is “1” in the binary representation of the request source event value NSET is “1: event occurrence”. It is determined whether or not it is ". If any of the corresponding event generation flags is "1: event generation", the process returns to the task that made the event wait monitor call.
【0035】なお、イベント発生フラグの判断に際し
て、例えば要求元イベント値NSETが“1”である場合に
は第1イベント発生フラグ、要求元イベント値NSETが
“2”である場合には第2イベント発生フラグ、要求元
イベント値NSETが“3”である場合には第1および第2
イベント発生フラグを判断する。
〔ZB2〕 ステップZB1における判断において、判
断対象のイベント発生フラグがいずれも“1”でなくて
イベントの発生を示していない場合には、タスク管理マ
ップにおける要求元タスク番号NSTKに対応するタスク番
号のステータスを“2:ウェイト”に設定するととも
に、待ちイベント値を要求元イベント値NSETとする。ま
た、処理の再開に備えて要求元タスクにおいて使用中の
レジスタなどの内容をスタック領域に退避するなどの中
断処理(以下、単に要求元タスクの中断処理と記する)
を行う。In determining the event occurrence flag, for example, the first event occurrence flag is set when the request source event value NSET is "1", and the second event is set when the request source event value NSET is "2". If the occurrence flag and the request source event value NSET are "3", the first and second
Determine the event occurrence flag. [ZB2] In the determination in step ZB1, when none of the determination target event occurrence flags is “1” and does not indicate the occurrence of an event, the task number corresponding to the request source task number NSTK in the task management map Set the status to "2: wait" and set the wait event value to the request source event value NSET. In addition, interruption processing such as saving the contents of registers in use in the request source task to the stack area in preparation for resumption of processing (hereinafter simply referred to as request source task interruption processing)
I do.
【0036】〔ZB3〕 タスク管理マップを調べて、
イベント待ちモニタコールを行なったタスクより優先順
位が低くかつ対応するステータスが“1:レディ”を示
す“レディ”タスクをタスク番号順に探す。このステー
タスが“1:レディ”を示す“レディ”タスクがない場
合には、要求元タスク番号NSTKをスリープを示す“8”
に設定してスリープする。なお、スリープからはタイマ
27または鍵操作検出回路からのハードウェア割込みに
もとづいて、後述するタイマ割込み処理ルーチン、また
はキーデータ受信割込み処理ルーチンが起動される。[ZB3] Check the task management map,
A "ready" task whose priority is lower than the task that made the event wait monitor call and the corresponding status indicates "1: ready" is searched for in the order of task numbers. If there is no "ready" task whose status is "1: ready", the request source task number NSTK is "8" indicating sleep.
Set to sleep. From the sleep, a timer interrupt processing routine or a key data reception interrupt processing routine, which will be described later, is activated based on a hardware interrupt from the timer 27 or the key operation detection circuit.
【0037】〔ZB4〕 ステップZB3において最優
先の“レディ”タスクを探し出すと、要求元タスク番号
NSTKをその最優先の“レディ”タスクのタスク番号に更
新するとともに、タスク管理マップにおけるその最優先
の“レディ”タスクのタスク番号のステータスを“0:
ラン”に設定する。
〔ZB5〕 要求元タスク番号NSTKに対応するタスクを
実行する。なお、タスクの実行に際しては、タスクの中
断処理においてスタック領域に退避したデータなどを元
のレジスタなどに戻すなどの再開処理(以下、単に再開
処理と記する)を行う。[ZB4] When the highest priority "ready" task is found in step ZB3, the request source task number
NSTK is updated to the task number of the highest priority "ready" task, and the status of the task number of the highest priority "ready" task in the task management map is "0:
Set to “Run”. [ZB5] Executes the task corresponding to the request source task number NSTK. When executing the task, restore the data saved in the stack area to the original registers in the task interrupt processing, etc. Restart processing (hereinafter, simply referred to as restart processing).
【0038】イベント発生モニタコールルーチン(図8)
実行中のタスクがイベント発生モニタコールを行うと実
行されるルーチンである。各ステップZC1〜ZC7お
いての処理は、次の通りである。
〔ZC1〕 タスク管理マップにおける要求先タスク番
号NDTKに対応するタスク番号について、要求先イベント
値NDETの2進数表現における“1”であるビットに対応
するイベント発生フラグを“1”に設定する。例えば、
要求先イベント値NDETが“1”である場合には第1イベ
ント発生フラグを、要求先イベント値NDETが“2”であ
る場合には第2イベント発生フラグを“1”に設定す
る。 Event Occurrence Monitor Call Routine (FIG. 8) This routine is executed when the task under execution makes an event occurrence monitor call. The processing in each step ZC1 to ZC7 is as follows. [ZC1] For the task number corresponding to the requested task number NDTK in the task management map, the event occurrence flag corresponding to the bit that is "1" in the binary representation of the requested event value NDET is set to "1". For example,
When the requested event value NDET is "1", the first event occurrence flag is set, and when the requested event value NDET is "2", the second event occurrence flag is set to "1".
【0039】〔ZC2〕 タスク管理マップにおける要
求先タスク番号NDTKに対応するタスク番号のステータス
が“2:ウェイト”でかつ待ちイベント値が要求先イベ
ント値NDETに対応しているか否かを判断する。このステ
ータスが“2:ウェイト”でなく、または待ちイベント
値が要求先イベント値NDETに対応しない場合には、この
モニタコールを行ったタスクに戻る。[ZC2] It is determined whether or not the status of the task number corresponding to the requested task number NDTK in the task management map is "2: wait" and the wait event value corresponds to the requested event value NDET. If the status is not “2: wait” or the wait event value does not correspond to the request destination event value NDET, the task that made this monitor call is returned to.
【0040】なお、待ちイベント値が要求先イベント値
NDETに対応しているか否かの判断は、待ちイベント値の
2進数表現における“1”であるビットに対応する要求
先イベント値NDETの2進数表現におけるビットのいずれ
かのビットが“1”であるか否かによって行う。例え
ば、待ちイベント値が“1”である場合には要求先イベ
ント値NDETの第1ビットが“1”、待ちイベント値が
“2”である場合には要求先イベント値NDETの第2ビッ
トが“1”、待ちイベント値が“3”である場合には要
求先イベント値NDETの第1または第2ビットが“1”で
あるときに対応していると判断する。The wait event value is the request destination event value.
Whether or not NDET is supported is determined by checking if any of the bits in the binary representation of the requested event value NDET corresponding to the bit that is "1" in the binary representation of the wait event value is "1". Depending on whether or not there is. For example, if the wait event value is "1", the first bit of the request destination event value NDET is "1", and if the wait event value is "2", the second bit of the request destination event value NDET is When the wait event value is "1" and the wait event value is "3", it is determined that the request destination event value NDET corresponds when the first or second bit is "1".
【0041】〔ZC3〕 ステップZC2における判断
において、判断対象のステータスが“2:ウェイト”で
かつ待ちイベント値が要求先イベント値NDETに対応する
場合には、このステータスを“1:レディ”に設定す
る。
〔ZC4〕 要求先タスク番号NDTKが要求元タスク番号
NSTK未満か否かにより要求先タスクの優先順位が要求元
タスクの優先順位より高いか否かを判断する。この要求
先タスク番号NDTKが要求元タスク番号NSTK未満でなくて
要求先タスクの優先順位が高くない場合には、当該モニ
タコールを行ったタスクに戻る。[ZC3] In the determination in step ZC2, when the status of the determination target is "2: wait" and the waiting event value corresponds to the requested event value NDET, this status is set to "1: ready". To do. [ZC4] Request destination task number NDTK is the request source task number
Whether or not the priority of the requested task is higher than that of the requested task is determined by whether or not it is less than NSTK. If the request-destination task number NDTK is not less than the request-source task number NSTK and the priority of the request-destination task is not high, the task that made the monitor call is returned to.
【0042】〔ZC5〕 ステップZC4における判断
において、要求先タスク番号NDTKが要求元タスク番号NS
TK未満で要求先タスクの優先順位が高い場合には、タス
ク管理マップにおける要求元タスク番号NSTKに対応する
タスク番号のステータスを“1:レディ”に設定すると
ともに、処理の再開に備えて要求元タスクの中断処理を
行う。[ZC5] In the determination at step ZC4, the request destination task number NDTK is the request source task number NS.
If the priority of the request destination task is less than TK and the priority of the request destination task is high, the status of the task number corresponding to the request source task number NSTK in the task management map is set to "1: ready" and the request source is prepared in preparation for restarting the processing. Performs task suspension processing.
【0043】〔ZC6〕 要求元タスク番号NSTKを要求
先タスク番号NDTKに更新するとともに、タスク管理マッ
プにおける要求先タスク番号NDTKに対応するタスク番号
のステータスを“0:ラン”に設定する。
〔ZC7〕 要求先タスク番号NDTKに対応するタスク番
号のタスクを実行する。なお、タスクの実行に際しては
そのタスクの再開処理を行う。[ZC6] The request source task number NSTK is updated to the request destination task number NDTK, and the status of the task number corresponding to the request destination task number NDTK in the task management map is set to "0: run". [ZC7] The task having the task number corresponding to the requested task number NDTK is executed. When executing a task, the task is restarted.
【0044】タイマ割込み処理ルーチン(図9)
タイマ27からタイマ割込みがかかると、まず各タスク
に対応するタイマカウンタを調べ、このタイマカウンタ
の値が“1”を超えている場合にはそのタイマカウンタ
の値を“1”だけデクリメントし、“1”を超えていな
い場合にはタスク管理マップにおける当該タスクのタス
ク番号の第1イベント発生フラグを“1:イベント発
生”に設定するとともに、このタスク番号のステータス
が“2:ウェイト”であるときにはそのステータスを
“1:レディ”に設定し、次に優先順位の高いタスクか
ら順次に、タスクを実行するべきか否かを判断して最初
に条件を満たすタスクを実行させるルーチンである。各
ステップZD1〜ZD16においての処理は、次の通り
である。 Timer Interrupt Processing Routine (FIG. 9) When a timer interrupt is issued from the timer 27, the timer counter corresponding to each task is checked first, and if the value of this timer counter exceeds "1", that timer counter is processed. The value of is decremented by "1", and if it does not exceed "1", the first event occurrence flag of the task number of the task in the task management map is set to "1: event occurrence" and this task number When the status of the task is "2: wait", the status is set to "1: ready", and the task with the next highest priority is judged sequentially to determine whether or not the task should be executed, and the condition is first set. It is a routine that executes the tasks to be satisfied. The processing in each of the steps ZD1 to ZD16 is as follows.
【0045】〔ZD1〕 初期設定完了フラグIEDFが
“1:初期設定完了”であるか否かを判断する。この初
期設定完了フラグIEDFが“1”でない場合には、全ての
タスクの初期設定がいまだ終了していないために、タイ
マ割込み処理を終了してタイマ割込み前の処理に戻り、
“1”である場合には後述する各タスクの初期設定を全
て終了しているために、次のステップZD2に進む。[ZD1] It is determined whether or not the initial setting completion flag IEDF is "1: initial setting completed". If the initialization completion flag IEDF is not "1", the initialization of all tasks has not been completed yet, so the timer interrupt processing is terminated and the processing before the timer interrupt is returned.
If the value is "1", the initial setting of each task, which will be described later, has been completed, and the process proceeds to the next step ZD2.
【0046】〔ZD2〕 タイマ割込み処理対象のタス
ク番号を示すタイマ割込み処理対象番号TCTNを“7”に
設定する。
〔ZD3〕 タスク管理マップにおけるタイマ割込み処
理対象番号TCTNに対応するタスク番号のタイマ処理要求
フラグが“1:要求有り”であるか否かを判断する。こ
のタイマ処理要求フラグが“1”でない場合には、ステ
ップZD8に進む。[ZD2] The timer interrupt processing target number TCTN indicating the task number of the timer interrupt processing target is set to "7". [ZD3] It is determined whether or not the timer process request flag of the task number corresponding to the timer interrupt process target number TCTN in the task management map is "1: request". If the timer processing request flag is not "1", the process proceeds to step ZD8.
【0047】〔ZD4〕 ステップZD3における判断
において、判断対象のタイマ処理要求フラグが“1:要
求有り”である場合には、第TCTNタスクタイマカウンタ
値TCNE TCTN が“1”を超えているか否かを判断する。
この第TCTNタスクタイマカウンタ値TCNE TCTN が“1”
を超えている場合には、ステップZD10に進む。
〔ZD5〕 ステップZD4における判断において、第
TCTNタスクタイマカウンタ値TCNE TCTN が“1”を超え
ていない場合には、まず第TCTNタスクタイマカウンタ値
TCNE TCTN に第TCTNタスク時間間隔TCND TCTN を加算し
て、この加算した値を新たな第TCTNタスクタイマカウン
タ値TCNE TCTN とする。次に、タスク管理マップにおけ
るタイマ割込み処理対象番号TCTNに対応するタスク番号
の第1イベント発生フラグを“1:イベント発生”に設
定する。[ZD4] If it is determined in step ZD3 that the timer processing request flag to be determined is “1: request”, it is determined whether the TCTN task timer counter value TCNE TCTN exceeds “1”. To judge.
This 1st TCTN task timer counter value TCNE TCTN is “1”
If it exceeds, the process proceeds to step ZD10. [ZD5] In the determination in step ZD4,
TCTN task timer counter value TCNE If TCTN does not exceed "1", first TCTN task timer counter value
The TCTN task time interval TCND TCTN is added to TCNE TCTN, and the added value is set as a new TCNE task timer counter value TCNE TCTN. Next, the first event generation flag of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is set to "1: event generation".
【0048】〔ZD6〕 タスク管理マップにおけるタ
イマ割込み処理対象番号TCTNに対応するタスク番号のス
テータスが“2:ウェイト”でかつそのタスク番号の待
ちイベント値の2進数表現における第1ビットが“1”
(例えば、待ちイベント値が“1”,“3”)であるか
否かを判断する。このステータスが“2:ウェイト”で
ないまたは待ちイベント値の2進数表現における第1ビ
ットが“1”でない場合には、ステップZD8に進む。[ZD6] The status of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is "2: wait", and the first bit in the binary representation of the wait event value of that task number is "1".
(For example, it is determined whether or not the wait event value is “1”, “3”). If the status is not "2: wait" or the first bit in the binary representation of the wait event value is not "1", the process proceeds to step ZD8.
【0049】〔ZD7〕 ステップZD6における判断
において、判断対象のステータスが“2:ウェイト”で
かつ判断対象の待ちイベント値の2進数表現における第
1ビットが“1”である場合には、タスク管理マップに
おけるタイマ割込み処理対象番号TCTNに対応するタスク
番号のステータスを“1:レディ”に設定する。
〔ZD8〕 タイマ割込み処理対象番号TCTNが“1”を
超えているか否かを判断する。このタイマ割込み処理対
象番号TCTNが“1”を超えていない場合には、イベント
発生フラグの設定処理が全て終了したために、ステップ
ZD11に進む。[ZD7] In the determination in step ZD6, when the status of the determination target is “2: wait” and the first bit in the binary representation of the wait event value of the determination target is “1”, task management Set the status of the task number corresponding to the timer interrupt processing target number TCTN in the map to "1: ready". [ZD8] It is determined whether the timer interrupt processing target number TCTN exceeds "1". If the timer interrupt processing target number TCTN does not exceed "1", the process of setting the event occurrence flag is completed, and the process proceeds to step ZD11.
【0050】〔ZD9〕 ステップZD8における判断
において、タイマ割込み処理対象番号TCTNが“1”を超
えている場合には、タイマ割込み処理対象番号TCTNを
“1”だけデクリメントしてステップZD3に戻る。
〔ZD10〕 ステップZD4における判断において、
第TCTNタスクタイマカウンタ値TCNE TCTN が“1”を超
えている場合には、第TCTNタスクタイマカウンタ値TCNE
TCTN を“1”だけデクリメントしてステップZD8に
進む。[ZD9] If it is determined in step ZD8 that the timer interrupt processing target number TCTN exceeds "1", the timer interrupt processing target number TCTN is decremented by "1" and the process returns to step ZD3. [ZD10] In the determination in step ZD4,
TCTN task timer counter value TCNE If TCTN exceeds “1”, TCTN task timer counter value TCNE
Decrement TCTN by "1" and proceed to step ZD8.
【0051】〔ZD11〕 タイマ割込み処理対象番号
TCTNが当該ルーチンにおいてはタイマ割込み発生前の処
理を示す要求元タスク番号NSTK未満であるか否かを判断
する。このタイマ割込み処理対象番号TCTNが要求元タス
ク番号NSTK未満でない場合には、タイマ割込み発生時に
実行していたタスクの優先順位が処理対象番号TCTNに対
応するタスクの優先順位より低くないために、タイマ割
込み処理を終了してそのタスクに戻る。[ZD11] Timer interrupt processing target number
It is determined whether TCTN is less than the request source task number NSTK indicating the processing before the timer interrupt is generated in this routine. If the timer interrupt processing target number TCTN is not less than the request source task number NSTK, the priority of the task being executed when the timer interrupt occurred is not lower than the priority of the task corresponding to the processing target number TCTN. Terminates interrupt processing and returns to the task.
【0052】〔ZD12〕 ステップZD11における
判断において、タイマ割込み処理対象番号TCTNが要求元
タスク番号NSTK未満である場合には、タスク管理マップ
におけるタイマ割込み処理対象番号TCTNに対応するタス
ク番号のステータスが“1:レディ”であるか否かを判
断する。このステータスが“1”でない場合には、ステ
ップZD16に進む。[ZD12] If it is determined in step ZD11 that the timer interrupt processing target number TCTN is less than the request source task number NSTK, the status of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is " 1: determine whether or not it is “ready”. If the status is not "1", the process proceeds to step ZD16.
【0053】〔ZD13〕 ステップZD12における
判断において、判断対象のステータスが“1:レディ”
である場合には、タスク管理マップにおける要求元タス
ク番号NSTKに対応するタスク番号のステータスを“1:
レディ”に設定するとともに、処理の再開に備えて要求
元タスク番号NSTKに対応するタスクの中断処理を行う。[ZD13] In the determination in step ZD12, the status of the determination target is "1: ready".
If it is, the status of the task number corresponding to the request source task number NSTK in the task management map is “1:
In addition to setting to "Ready", the task corresponding to the request source task number NSTK is interrupted in preparation for the resumption of processing.
【0054】〔ZD14〕 要求元タスク番号NSTKをタ
イマ割込み処理対象番号TCTNに更新するとともに、タス
ク管理マップにおけるタイマ割込み処理対象番号TCTNに
対応するタスク番号のステータスを“0:ラン”に設定
する。
〔ZD15〕 タイマイベントを発生する。言い換えれ
ば、タイマ割込み処理対象番号TCTNに対応するタスク番
号のタスクを実行する。なお、タスクの実行に際しては
そのタスクの再開処理を行う。[ZD14] The request source task number NSTK is updated to the timer interrupt processing target number TCTN, and the status of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is set to "0: run". [ZD15] A timer event is generated. In other words, the task with the task number corresponding to the timer interrupt processing target number TCTN is executed. When executing a task, the task is restarted.
【0055】〔ZD16〕 ステップZD12における
判断において、判断対象のステータスが“1:レディ”
でない場合には、タイマ割込み処理対象番号TCTNを
“1”だけインクリメントしてステップZD11に戻
る。キーデータ受信割込み処理ルーチン(図10)
鍵操作検出回路から割込みがかかると実行されてキーデ
ータ受信イベントを発生するルーチンである。各ステッ
プZE1〜ZE6おいての処理は、次の通りである。[ZD16] In the determination in step ZD12, the status of the determination target is “1: ready”.
If not, the timer interrupt processing target number TCTN is incremented by "1" and the process returns to step ZD11. Key data reception interrupt processing routine (FIG. 10) This routine is executed when a key operation detection circuit receives an interrupt to generate a key data reception event. The processing in each step ZE1 to ZE6 is as follows.
【0056】〔ZE1〕 初期設定完了フラグIEDFが
“1:完了”であるか否かを判断する。この初期設定完
了フラグIEDFが“1”でない場合には、全てのタスクの
初期設定がいまだ終了していないために、キーデータ受
信割込み処理を終了してキーデータ受信割込み発生前の
処理に戻る。
〔ZE2〕 ステップZE1における判断において初期
設定完了フラグIEDFが“1:完了”である場合には、タ
スク管理マップにおけるタスク番号“1:キーデータ受
信タスク”の第1イベント発生フラグを“1:発生”に
設定する。[ZE1] It is determined whether or not the initialization completion flag IEDF is "1: complete". If the initialization completion flag IEDF is not "1", the initialization of all the tasks has not been completed yet, so the key data reception interrupt process is terminated and the process returns to the process before the generation of the key data reception interrupt. [ZE2] If the initial setting completion flag IEDF is "1: complete" in the determination at step ZE1, the first event occurrence flag of the task number "1: key data reception task" in the task management map is "1: occurred". Set to ".
【0057】〔ZE3〕 タスク管理マップにおけるタ
スク番号“1:キーデータ受信タスク”のステータスが
“2:ウェイト”でかつ待ちイベント値が“1:キーデ
ータ受信イベント待ち”であるか否かを判断する。この
ステータスが“2:ウェイト”でない、または待ちイベ
ント値が“1:キーデータ受信イベント待ち”でない場
合には、キーデータ受信割込み処理を終了してキーデー
タ受信割込み発生前の処理に戻る。[ZE3] It is determined whether or not the status of the task number "1: key data reception task" in the task management map is "2: wait" and the wait event value is "1: wait for key data reception event". To do. If the status is not "2: wait" or the wait event value is not "1: wait for key data reception event", the key data reception interrupt process is terminated and the process returns to the process before the key data reception interrupt occurs.
【0058】〔ZE4〕 ステップZE3における判断
において、判断対象のステータスが“2”でかつ待ちイ
ベント値が“1”でキーデータ受信イベント待ちである
場合には、当該ルーチンにおいてキーデータ受信割込み
発生前の処理を示す要求元タスク番号NSTKが“8”未満
であるか否かを判断する。この要求元タスク番号NSTKが
“8”未満である場合にはタスク管理マップにおける要
求元タスク番号NSTKに対応するタスク番号のステータス
を“1:レディ”に設定するとともに、処理の再開に備
えてタイマ割込み発生前のタスクの中断処理を行う。な
お、“8”未満でない場合には格別の処理は不要であ
る。[ZE4] In the determination in step ZE3, when the status of the determination target is "2", the wait event value is "1" and the key data reception event is waiting, before the key data reception interrupt occurs in the routine. It is determined whether or not the request source task number NSTK indicating the processing of is less than “8”. If the request source task number NSTK is less than "8", the status of the task number corresponding to the request source task number NSTK in the task management map is set to "1: ready" and a timer is provided in preparation for restarting the process. Performs interrupt processing of the task before the interrupt occurred. If it is not less than "8", no special processing is required.
【0059】〔ZE5〕 要求元タスク番号NSTKをタス
ク番号“1:キーデータ受信タスク”に更新するととも
に、タスク管理マップにおけるタスク番号“1:キーデ
ータ受信タスク”のステータスを“0:ラン”に設定す
る。
〔ZE6〕 キーデータ受信イベントを発生する。言い
換えれば、キーデータ受信タスクを実行する。なお、タ
スクの実行に際してはキーデータ受信タスクの再開処理
を行う。[ZE5] The request source task number NSTK is updated to the task number "1: key data receiving task", and the status of the task number "1: key data receiving task" in the task management map is changed to "0: run". Set. [ZE6] Generate a key data reception event. In other words, the key data reception task is executed. When executing the task, the key data receiving task is restarted.
【0060】次に、各タスクをキーデータ受信タスク、
メインアサイナタスク、発音タスク、プリアサイナタス
ク、エンベロープタスク、ペダルタスク、操作子タスク
の順に説明する。なお、電源の投入時などにおいてリセ
ットがかかった後の各タスクでの最初の処理に際して
は、先頭のステップ、例えば次に説明するキーデータ受
信タスクではステップA1より開始する。また、あるタ
スクの処理を中断しその後処理を再開するに際しては、
このタスクにおける中断時の処理を継続するように中断
した処理を再開する。例えば、キーデータ受信タスクの
ステップA2でイベント待ちモニタコールをし、イベン
ト待ちモニタコールルーチンでの判断においてイベント
発生でなく中断処理を行った場合には、その後キーデー
タ受信割込みの発生によりキーデータ受信割込みルーチ
ンにおいて再開処理を行うと、ステップA2のイベント
待ちモニタコールに引き続くステップA3より処理を再
開する。Next, each task is a key data receiving task,
The main assigner task, the pronunciation task, the pre-assigner task, the envelope task, the pedal task, and the operator task will be described in this order. In addition, at the time of the first processing in each task after the reset is applied at the time of turning on the power, etc., it starts from the first step, for example, the key data receiving task described below from step A1. Also, when interrupting the processing of a certain task and restarting the processing after that,
The suspended process is restarted so that the process at the time of suspension in this task is continued. For example, if an event wait monitor call is made in step A2 of the key data reception task and interrupt processing is performed instead of an event occurrence in the judgment in the event wait monitor call routine, then key data reception interrupt occurs and the key data reception When the restart processing is performed in the interrupt routine, the processing is restarted from step A3 following the event waiting monitor call in step A2.
【0061】キーデータ受信タスク(図11)
キーデータ受信イベントが発生すると、鍵操作検出回路
からキーデータを読み込み、アサイン要求イベントを発
生するタスクである。各ステップA1〜A7においての
処理は、次の通りである。
〔A1〕 ノートマップをクリヤするとともに、当該キ
ーデータ受信タスクで占有する変数などを初期値に設定
する。 Key data receiving task (FIG. 11) When a key data receiving event occurs, the key data is read from the key operation detecting circuit and an assignment request event is generated. The processing in each of the steps A1 to A7 is as follows. [A1] Clear the note map and set variables and the like occupied by the key data receiving task to initial values.
【0062】〔A2〕 要求元イベント値NSETを“1”
に設定してイベント待ちモニタコールを行う。キーデー
タ受信イベントが発生すると、次のステップA3に進
む。
〔A3〕 タスク管理マップにおけるタスク番号“1:
キーデータ受信タスク”の第1イベント発生フラグと待
ちイベント値とを“0”に設定する。
〔A4〕 鍵操作検出回路からキーデータを読み込み、
このキーデータのノート番号、ノートステータスおよび
ノートベロシティを各対応するところのノート番号NTN
M、ノートステータスNTSTおよびベロシティNTVLとす
る。[A2] Request source event value NSET is set to "1"
Set to and make an event wait monitor call. When the key data reception event occurs, the process proceeds to the next step A3. [A3] Task number “1:” in the task management map
The first event occurrence flag and the wait event value of the "key data reception task" are set to "0". [A4] The key data is read from the key operation detection circuit,
The note number, note status and note velocity of this key data corresponds to the note number NTN
M, note status NTST and velocity NTVL.
【0063】〔A5〕 ノートステータスNTSTが“1:
押鍵”であるか否かを判断する。このノートステータス
NTSTが“1”でない場合には次のステップA6に進み、
“1”である場合にはステップA7に進む。
〔A6〕 離鍵処理
ノートマップにおけるノート番号NTNMに対応するノート
番号のノートステータスを“0”に設定し、ステップA
2に戻る。[A5] Note status NTST is "1:"
It is determined whether or not the key is pressed. This note status
If NTST is not "1", go to the next step A6,
If it is "1", the process proceeds to step A7. [A6] The note status of the note number corresponding to the note number NTNM in the key release processing note map is set to "0", and step A
Return to 2.
【0064】〔A7〕 押鍵処理
まず、ノートマップにおけるノート番号NTNMに対応する
ノート番号のノートステータスを“1”に設定する。次
に、アサイン要求イベントを発生する。言い換えれば、
要求先タスク番号NDTKを“2:メインアサイナタスク”
に、要求先イベント値NDETを“1”に設定してイベント
発生モニタコールを行う。そして、ステップA2に戻
る。[A7] Key Depressing Process First, the note status of the note number corresponding to the note number NTNM in the note map is set to "1". Next, an assign request event is generated. In other words,
Requested task number NDTK is "2: Main assigner task"
Then, the requested event value NDET is set to "1" and an event occurrence monitor call is made. Then, the process returns to step A2.
【0065】メインアサイナタスク(図12)
アサイン要求イベントが発生すると、後述するプリアサ
イナタスクで設定するアサイン順位にもとづいて、楽音
発生チャネル管理マップの所定の領域にノート番号NTNM
などを書き込み、発音要求イベントを発生するタスクで
ある。各ステップB1〜B7においての処理は、次の通
りである。When an assign request event occurs in the main assigner task (FIG. 12) , the note number NTNM is displayed in a predetermined area of the tone generation channel management map based on the assign order set in the pre-assigner task described later.
It is a task to write the etc. and generate a pronunciation request event. The processing in each of the steps B1 to B7 is as follows.
【0066】〔B1〕 楽音発生チャネル管理マップを
クリヤするとともに、このメインアサイナタスクで占有
する変数などを初期値に設定する。また、第Nアサイン
順位楽音発生チャネル番号MASS N (Nは0,1,…15)を
各対応する“N( =0,1,─15) ”に設定する。また、対
象アサイン順位TASNを“0”に、割当て可能楽音発生チ
ャネル数GACNを最大数の“16”に設定する。[B1] The tone generation channel management map is cleared and the variables occupied by the main assigner task are set to initial values. Further, the N-th assigned musical tone generation channel number MASS N (N is 0, 1, ... 15) is set to each corresponding “N (= 0,1, -15)”. Further, the target assign order TASN is set to "0", and the number of assignable tone generation channels GACN is set to "16" which is the maximum number.
【0067】〔B2〕 要求元イベント値NSETを“1”
に設定してイベント待ちモニタコールを行う。また、ア
サイン要求イベントが発生すると、次のステップB3に
進む。
〔B3〕 タスク管理マップにおけるタスク番号“2:
メインアサインタスク”の待ちイベント値と第1イベン
ト発生フラグとを“0”に設定する。[B2] The request source event value NSET is set to "1".
Set to and make an event wait monitor call. When an assign request event occurs, the process proceeds to the next step B3. [B3] Task number “2: in task management map”
The wait event value of the "main assign task" and the first event occurrence flag are set to "0".
【0068】〔B4〕 対象アサイン順位TASNが割当て
可能楽音発生チャネル数GACN未満であるか否かを判断す
る。この対象アサイン順位TASNが割当て可能楽音発生チ
ャネル数GACN未満でない場合には、割当てるべき楽音発
生チャネルが最早やないためにステップB2に戻る。
〔B5〕 ステップB4における判断において対象アサ
イン順位TASNが割当て可能楽音発生チャネル数GACN未満
である場合、楽音発生チャネル管理マップにおけるアサ
イン順位TASNの楽音発生チャネル番号MASS TASN に対応
する楽音発生チャネル番号の処理待ちフラグ1、処理待
ちフラグ2および処理待ちフラグ3を“1; 処理待ち
中”に、ノート番号をノート番号NTNMに、ノートステー
タスを“1”に、べロシティをベロシティNTVLに設定す
る。また、メインアサイナ処理中フラグMAEFを“1:メ
インアサイナ処理中”に設定する。[B4] It is determined whether or not the target assign order TASN is less than the number of allocatable tone generation channels GACN. If the target assignment order TASN is not less than the number of allocatable tone generation channels GACN, there is no more tone generation channel to be assigned anymore, and the process returns to step B2. [B5] If the target assignment order TASN is less than the number of assignable tone generation channels GACN in the determination in step B4, the processing of the tone generation channel number corresponding to the tone generation channel number MASS TASN of the assignment order TASN in the tone generation channel management map is processed. The waiting flag 1, the processing waiting flag 2 and the processing waiting flag 3 are set to "1; waiting for processing", the note number to the note number NTNM, the note status to "1" and the velocity to the velocity NTVL. Further, the main assigner processing flag MAEF is set to "1: main assigner processing".
【0069】〔B6〕 発音要求イベントを発生する。
言い換えれば、要求先タスク番号NDTKを“3:発音タス
ク”に、要求先イベント値NDETを“2”に設定してイベ
ント発生モニタコールを行う。
〔B7〕 対象アサイン順位TASNを“1”だけインクリ
メントしてステップB2に戻る。[B6] A sounding request event is generated.
In other words, the request generation task number NDTK is set to "3: sounding task" and the request destination event value NDET is set to "2" to make an event occurrence monitor call. [B7] The target assignment order TASN is incremented by "1" and the process returns to step B2.
【0070】発音タスク(図13(A)(B))
発音要求イベントが発生すると新たな楽音を発生する楽
音発生チャネルにおいて前の発音が終了していない場合
には急速減衰の開始を指示し(第1処理)、またノート
番号NTNMなどにもとづいて楽音発生に関するパラメータ
を演算して設定し(第2処理)、さらに発音が終了して
いた、または終了した場合には楽音発生チャネルに新た
な発音を指示する(第3処理)タスクである。各ステッ
プC1〜C27においての処理は、次の通りである。Sounding task (FIGS. 13 (A) and (B)) When a sounding request event occurs, a new sound is generated. If the previous sounding is not finished in the sound generation channel, the start of rapid attenuation is instructed ( (1st processing), based on the note number NTNM, etc., parameters for musical tone generation are calculated and set (2nd processing), and when the pronunciation is finished, or when finished, a new pronunciation is made to the musical tone generation channel. Is a task for instructing (third processing). The processing in steps C1 to C27 is as follows.
【0071】〔C1〕 当該タスクで占有する変数など
を初期値に設定するとともに、急速減衰を終了した楽音
発生チャネル番号を記憶する急速減衰終了FIFOをク
リヤするなどするとともに、楽音発生回路30を初期化
する。また、第3タスクタイマカウンタ値TCNE 3 と、
第3タスク時間間隔TCND 3 とを“0”に設定するとと
もに、タスク管理マップにおけるタスク番号“3:発音
タスク”のタイマ処理要求フラグを“1:要求有り”に
設定する。[C1] The variables occupied by the task are set to initial values, the rapid decay end FIFO for storing the tone generation channel number for which rapid decay is finished is cleared, and the tone generation circuit 30 is initialized. Turn into. Also, with the third task timer counter value TCNE 3,
The third task time interval TCND 3 is set to “0”, and the timer processing request flag of the task number “3: sounding task” in the task management map is set to “1: request”.
【0072】〔C2〕 要求元イベント値NSETを“2”
に設定してイベント待ちモニタコールを行う。なお、発
音要求イベントが発生すると、次のステップC3に進
む。
〔C3〕 まず、タスク管理マップにおけるタスク番号
“3:発音タスク”の待ちイベント値と第2イベント発
生フラグとを“0”に設定して、次に発音処理対象楽音
発生チャネル番号GCTNを“0”に設定する。[C2] Request source event value NSET is set to "2"
Set to and make an event wait monitor call. When a sound generation request event occurs, the process proceeds to the next step C3. [C3] First, the waiting event value of the task number “3: Sounding task” and the second event occurrence flag in the task management map are set to “0”, and then the tone generation target tone generation channel number GCTN is set to “0”. Set to ".
【0073】〔C4〕 楽音発生チャネル管理マップに
おける発音処理対象楽音発生チャネル番号GCTNに対応す
る楽音発生チャネル番号の処理待ちフラグ1が“1:処
理待ち中”であるか否かを判断する。この処理待ちフラ
グ1が“1”である場合には次のステップC5に進み、
“1”でなくて第1処理(ステップC5〜C7)が不要
である場合にはステップC8に進む。[C4] It is determined whether or not the processing wait flag 1 of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is "1: waiting for processing". If the processing wait flag 1 is "1", the process proceeds to the next step C5,
If it is not "1" and the first process (steps C5 to C7) is unnecessary, the process proceeds to step C8.
【0074】〔C5〕 エンベロープ管理マップにおけ
る発音処理対象楽音発生チャネル番号GCTNに対応するエ
ンベロープチャネル番号のエンベロープレベルが“0”
であるか否かを判断する。このエンベロープレベルが
“0”でない場合には次のステップC6に進み、“0”
で急速減衰処理が不要である場合にはステップC7に進
む。[C5] The envelope level of the envelope channel number corresponding to the tone generation channel number GCTN to be sounded in the envelope management map is "0".
Or not. If the envelope level is not "0", the process proceeds to the next step C6, and is "0".
If the rapid damping process is unnecessary in step C7, the process proceeds to step C7.
【0075】〔C6〕 楽音発生チャネル管理マップに
おける発音処理対象楽音発生チャネル番号GCTNに対応す
る楽音発生チャネル番号の急速減衰中フラグを“1; 急
速減衰中”に、発音量を急速減衰中を示す“FFFF
H" に設定するとともに、対応する楽音発生チャネルに
急速減衰を指示する。なお、急速減衰の指示に際しては
目標値を“0”に、レートを急速減衰用のレートに設定
して対応する楽音発生チャネルに転送する。[C6] The rapid decay flag of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is set to "1;"FFFF
Set to H "and instruct the corresponding tone generation channel to perform rapid attenuation. When instructing rapid attenuation, set the target value to" 0 "and set the rate to the rapid attenuation rate to generate the corresponding tone. Transfer to channel.
【0076】〔C7〕 楽音発生チャネル管理マップに
おける発音処理対象楽音発生チャネル番号GCTNに対応す
る楽音発生チャネル番号の処理待ちフラグ1を”0”に
設定する。
〔C8〕 発音処理対象楽音発生チャネル番号GCTNが
“15”未満であるか否かを判断する。この楽音処理対
象楽音発生チャネル番号GCTNが“15”未満である場合
には次のステップC9に進み、“15”未満でなくて全
ての楽音発生チャネルについて第1処理を終えている場
合にはステップC10に進む。[C7] The processing wait flag 1 of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is set to "0". [C8] It is determined whether the tone generation channel number GCTN to be sounded is less than "15". If the tone generation channel number GCTN subject to the tone processing is less than "15", the process proceeds to the next step C9. If the tone generation channel number GCTN is not less than "15" and the first process has been completed for all tone generation channels, the step is performed. Proceed to C10.
【0077】〔C9〕 発音処理対象楽音発生チャネル
番号GCTNを“1”だけインクリメントし、次の楽音発生
チャネルの処理の準備を行ってステップC4に戻る。
〔C10〕 発音処理対象楽音発生チャネル番号GCTNを
“0”に設定する。
〔C11〕 楽音発生チャネル管理マップにおける発音
処理対象楽音発生チャネル番号GCTNに対応する楽音発生
チャネル番号の処理待ちフラグ2が“1:処理待ち中”
であるか否かを判断する。この処理待ちフラグ2が
“1”である場合には次のステップC12に進み、
“1”でなくて第2処理(ステップC12)が不要であ
る場合にはステップC13に進む。[C9] The tone generation target tone generation channel number GCTN is incremented by "1" to prepare for the processing of the next tone generation channel, and the process returns to step C4. [C10] The tone generation channel number GCTN to be sounded is set to "0". [C11] The processing wait flag 2 of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is set to "1: waiting for processing".
Or not. If the processing wait flag 2 is "1", the process proceeds to the next step C12,
If it is not "1" and the second process (step C12) is unnecessary, the process proceeds to step C13.
【0078】〔C12〕 発音処理対象楽音発生チャネ
ル番号GCTNに対応する楽音発生チャネルの、楽音の発生
と楽音のエンベロープ生成とに関する各種パラメータの
値を、楽音発生チャネル管理マップにおける発音処理対
象楽音発生チャネル番号GCTNに対応する楽音発生チャネ
ル番号のノート番号、ベロシティおよび後述する操作子
データ受信タスクのステップG4において設定される音
色パラメータ群より演算して、これら演算された各種パ
ラメータの値を、楽音発生チャネル管理マップにおける
発音処理対象楽音発生チャネル番号GCTNに対応する楽音
発生チャネル番号の楽音発生パラメータ群およびエンベ
ロープ管理マップにおける発音処理対象楽音発生チャネ
ル番号GCTNに対応するエンベロープチャネル番号のエン
ベロープ生成パラメータ群の対応するパラメータに設定
する。同時に、処理待ちフラグ2を”0”に設定する。[C12] The values of various parameters relating to the generation of musical tones and the envelope generation of musical tones of the musical tone generation channel corresponding to the musical tone generation channel number GCTN to be sounded are set as the musical tone generation channels to be processed in the musical tone generation channel management map. The note number of the tone generation channel number corresponding to the number GCTN, the velocity, and the tone color parameter group set in step G4 of the operator data reception task described later are calculated, and the values of the various calculated parameters are calculated. Musical tone generation channel number of tone generation target tone generation channel number in management map and musical tone generation parameter group of tone generation target tone generation channel number in envelope management map and envelope generation parameter of envelope channel number corresponding to tone generation target tone generation channel number GCTN in management map Set of the corresponding parameter. At the same time, the processing wait flag 2 is set to "0".
【0079】〔C13〕 発音処理対象楽音発生チャネ
ル番号GCTNが“15”未満であるか否かを判断する。こ
の発音処理対象楽音発生チャネル番号GCTNが“15”未
満である場合には次のステップC14に進み、“15”
未満でない場合にはステップC15に進む。
〔C14〕 発音処理対象楽音発生チャネル番号GCTNを
“1”だけインクリメントしてステップC11に戻る。[C13] It is determined whether or not the tone generation target tone generation channel number GCTN is less than "15". If the tone generation channel number GCTN to be sounded is less than "15", the process proceeds to the next step C14, and is "15".
If it is not less than, it proceeds to step C15. [C14] The tone generation channel number GCTN to be sounded is incremented by "1" and the process returns to step C11.
【0080】〔C15〕 急速減衰未了フラグTDNFと発
音処理対象楽音発生チャネル番号GCTNとを“0”に設定
する。
〔C16〕 楽音発生チャネル管理マップにおける発音
処理対象楽音発生チャネル番号GCTNに対応する楽音発生
チャネル番号の処理待ちフラグ3が“1:処理待ち中”
であるか否かを判断する。この処理待ちフラグ3が
“1”である場合には次のステップC17に進み、
“1”でなくて第3処理(ステップC17,C18,C
21)が不要である場合にはステップC19に進む。[C15] The rapid decay unfinished flag TDNF and the tone generation target tone generation channel number GCTN are set to "0". [C16] The processing wait flag 3 of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is set to "1: waiting for processing".
Or not. When the processing wait flag 3 is "1", the process proceeds to the next step C17,
Not the "1" but the third process (steps C17, C18, C
If step 21) is unnecessary, the process proceeds to step C19.
【0081】〔C17〕 楽音発生チャネル管理マップ
における発音処理対象楽音発生チャネル番号GCTNに対応
する楽音発生チャネル番号の急速減衰中フラグが“1:
急速減衰中”であるか否かを判断する。この急速減衰中
フラグが“1”でない場合には次のステップC18に進
み、“1”である場合には割当てるべき楽音発生チャネ
ルにおける従前に割当てられていた楽音の発音がいまだ
終了していないために、ステップC21に進む。[C17] The rapid decay flag of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is "1:".
It is determined whether or not "during rapid decay". If the rapid decay flag is not "1", the process proceeds to the next step C18, and if "1", it is assigned before in the tone generation channel to be assigned. Since the pronunciation of the musical tone that has been played has not been finished yet, the process proceeds to step C21.
【0082】〔C18〕 エンベロープ管理マップにお
ける発音処理対象楽音発生チャネル番号GCTNに対応する
エンベロープチャネル番号のエンベロープ生成パラメー
タ群にもとづいて第1フェーズの目標値、レートおよび
トランケート禁止フェーズ番号を演算してそれらの値な
どにエンベロープ管理マップの目標値、レートおよびト
ランケート禁止フェーズ番号を設定するとともに、フェ
ーズ番号を“1”に、エンベロープレベルを“0”に設
定する。[C18] The target value of the first phase, the rate, and the truncation prohibition phase number are calculated and calculated based on the envelope generation parameter group of the envelope channel number corresponding to the tone generation channel number GCTN to be sounded in the envelope management map. The target value of the envelope management map, the rate and the truncation prohibition phase number are set to the value of, and the phase number is set to "1" and the envelope level is set to "0".
【0083】なお、楽音発生チャネル管理マップにおけ
る発音処理対象楽音発生チャネル番号GCTNに対応する楽
音発生チャネル番号の発音量を、エンベロープ生成パラ
メータ群に含まれるアタックレベルの上位15ビットに
“8000H”を加算した値に、トランケート禁止フラ
グを“1:トランケート禁止”に設定する。また、楽音
発生チャネル管理マップにおける発音処理対象楽音発生
チャネル番号GCTNに対応する楽音発生チャネル番号の楽
音発生パラメータ群とエンベロープ管理マップにおける
発音処理対象楽音発生チャネル番号GCTNに対応するエン
ベロープチャネル番号の目標値およびレートとを、楽音
発生回路30における発音処理対象楽音発生チャネル番
号GCTNに対応する楽音発生チャネルに転送する。また、
処理待ちフラグ3を“0”に設定するとともに、対応す
る楽音発生チャネルに楽音発生の開始を指示する。[8000] is added to the upper 15 bits of the attack level included in the envelope generation parameter group for the tone generation amount of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map. The truncation prohibition flag is set to "1: truncation prohibition" to the specified value. In addition, the tone generation parameter group of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map and the target value of the envelope channel number corresponding to the tone generation target tone generation channel number GCTN in the envelope management map And the rate are transferred to the tone generation channel corresponding to the tone generation target tone generation channel number GCTN in the tone generation circuit 30. Also,
The processing wait flag 3 is set to "0" and the corresponding tone generation channel is instructed to start tone generation.
【0084】〔C19〕 発音処理対象楽音発生チャネ
ル番号GCTNが“15”未満であるか否かを判断する。こ
の発音処理対象楽音発生チャネル番号GCTNが“15”未
満である場合には次のステップC20に進み、“15”
未満でない場合にはステップC22に進む。
〔C20〕 発音処理対象楽音発生チャネル番号GCTNを
“1”だけインクリメントしてステップC16に戻る。[C19] It is judged whether or not the tone generation target tone generation channel number GCTN is less than "15". When the tone generation channel number GCTN to be sounded is less than "15", the process proceeds to the next step C20, and is "15".
When it is not less than, it proceeds to step C22. [C20] The tone generation channel number GCTN to be sounded is incremented by "1" and the process returns to step C16.
【0085】〔C21〕 急速減衰未了フラグTDNFを
“1:未了”に設定してステップC19に進む。
〔C22〕 急速減衰未了フラグTDNFが“1:未了”で
あるか否かを判断する。この急速減衰未了フラグTDNFが
“1”である場合には次のステップC23に進み、
“1”でなく全ての発音処理が終了している場合にはス
テップC2に戻る。[C21] The rapid decay incomplete flag TDNF is set to "1: incomplete", and the process proceeds to step C19. [C22] It is determined whether or not the rapid decay incomplete flag TDNF is "1: incomplete". When the rapid decay incomplete flag TDNF is "1", the process proceeds to the next step C23,
If it is not "1" and all tone generation processing has been completed, the process returns to step C2.
【0086】〔C23〕 要求元イベント値NSETを
“3”に設定してイベント待ちモニタコールを行う。な
お、発音要求イベントまたは発音タスクに対するタイマ
イベントのいずれかが発生すると、次のステップC24に
進む。
〔C24〕 タスク管理マップにおけるタスク番号
“3:発音タスク”の第2イベント発生フラグが“1”
であるか否かを判断する。この第2イベント発生フラグ
が“1”でない場合には次のステップC25に進み、
“1”である場合には発音要求イベントの発生であるた
めに、ステップC3に戻る。[C23] The request source event value NSET is set to "3" and an event wait monitor call is performed. When either the sound generation request event or the timer event for the sound generation task occurs, the process proceeds to the next step C24. [C24] The second event occurrence flag of the task number "3: Sounding task" in the task management map is "1".
Or not. When the second event occurrence flag is not "1", the process proceeds to the next step C25,
If it is "1", it means that a sound generation request event has occurred, and therefore the process returns to step C3.
【0087】〔C25〕 タスク管理マップにおけるタ
スク番号“3:発音タスク”の第1イベント発生フラグ
が“1”であるタイマイベントの発生であるために、ま
ずタスク管理マップにおけるタスク番号“3:発音タス
ク”の待ちイベント値と第1イベント発生フラグとを
“0”に設定する。
〔C26〕 楽音発生回路30に設けられている急速減
衰終了FIFOが“空”であるか否か判断する。この急
速減衰終了FIFOが“空”である場合にはステップC
23に戻り、“空”でない場合には次のステップC27
に進む。。[C25] Since the timer event in which the first event occurrence flag of the task number "3: Sounding task" in the task management map is "1", the task number "3: Sounding" in the task management map is first generated. The wait event value of the task "and the first event occurrence flag are set to" 0 ". [C26] It is determined whether or not the rapid attenuation end FIFO provided in the musical sound generating circuit 30 is “empty”. If this rapid decay end FIFO is "empty", step C
23, and if it is not "empty", the next step C27
Proceed to. .
【0088】〔C27〕 急速減衰終了FIFOから急
速減衰処理によりエンベロープレベルが“0”になった
楽音発生チャネルの楽音発生チャネル番号を順次に降ろ
し、この降ろした楽音発生チャネル番号に対応する楽音
発生チャネル管理マップにおける楽音発生チャネル番号
の急速減衰中フラグを“0”に設定する。そして、ステ
ップC15に戻る。[C27] The tone generation channel numbers of the tone generation channels whose envelope levels have become “0” by the rapid decay process from the rapid decay end FIFO are sequentially lowered, and the tone generation channels corresponding to the lowered tone generation channel numbers The rapid decay flag of the tone generation channel number in the management map is set to "0". Then, the process returns to step C15.
【0089】プリアサイナタスク(図14)
プリアサイナタスクに対応するタイマイベントが発生す
ると実行を開始し、発音量にもとづいてアサイン順位を
更新するタスクである。各ステップD1〜D13におい
ての処理は、次の通りである。
〔D1〕 エンベロープ管理マップをクリヤするととも
に、このプリアサイナタスクで占有する変数などを初期
値に設定する。また、第4タスクタイマカウンタ値TCNE
4 を“5”に、第4タスク時間間隔TCND 4を“4”に
設定する。さらに、タスク管理マップにおけるタスク番
号“4:プリアサイナタスク”のタイマ処理要求フラグ
を“1:要求有り”に設定する。
〔D2〕 要求元イベント値NSETを“1”に設定してイ
ベント待ちモニタコールを行う。なお、プリアサイナタ
スクに対するタイマイベントが発生すると、次のステッ
プD3に進む。 Pre-assigner task (FIG. 14) This task starts execution when a timer event corresponding to the pre-assigner task occurs, and updates the assignment order based on the tone generation amount. The processing in each of the steps D1 to D13 is as follows. [D1] The envelope management map is cleared and the variables occupied by this pre-assigner task are set to initial values. Also, the fourth task timer counter value TCNE
4 is set to “5” and the fourth task time interval TCND 4 is set to “4”. Further, the timer processing request flag of the task number “4: pre-assigner task” in the task management map is set to “1: request”. [D2] The request source event value NSET is set to "1" and an event wait monitor call is made. When a timer event for the pre-assigner task occurs, the process proceeds to the next step D3.
【0090】〔D3〕 タスク管理マップにおけるタス
ク番号“4:プリアサイナタスク”の待ちイベント値と
第1イベント発生フラグとを“0”に設定する。
〔D4〕 第Nプリアサイン順位楽音発生チャネル番号
PASS N を各対応する“N( =0,1,・・・・15) ”に設定す
る。ここで、第Nプリアサイン順位楽音発生チャネル番
号PASS N は第Nプリアサイン順位の楽音発生チャネル
の楽音発生チャネル番号を示す。[D3] The wait event value of the task number "4: pre-assigner task" and the first event occurrence flag in the task management map are set to "0". [D4] N-th pre-assigned order tone generation channel number
Set PASS N to each corresponding "N (= 0,1, ... 15)". Here, the Nth preassigned tone generation channel number PASS N indicates the tone generation channel number of the Nth preassigned tone generation channel.
【0091】〔D5〕 メインアサイナ処理中フラグMA
EFを“0”に設定する。
〔D6〕 発音タスクのステップC6,C18で設定さ
れて後述するエンベロープタスクのステップE13など
において更新されるところの楽音発生チャネル管理マッ
プの各楽音発生チャネル番号の発音量を、楽音発生チャ
ネル番号GNのプリアサイナ発音量PLEV GN とするととも
に、発音量が“8000H" 未満である楽音発生チャネ
ル(言い換えれば、いわゆるADSR表現におけるアタ
ックを終了しておりかつ急速減衰中ではない楽音発生チ
ャネル)の数を調べて、プリアサイナ割当て可能楽音発
生チャネル数PACNとする。[D5] Main assigner processing flag MA
Set EF to “0”. [D6] The tone generation amount of each tone generation channel number of the tone generation channel management map, which is set in steps C6 and C18 of the tone generation task and is updated in step E13 of the envelope task to be described later, is set to the tone generation channel number GN. In addition to the pre-signer pronunciation volume PLEV GN, check the number of tone generation channels (in other words, the tone generation channels that have finished the attack in the so-called ADSR expression and are not in rapid decay) with the pronunciation amount less than “8000H”. , The number of musical sound generation channels that can be assigned to the pre-assigner is PACN.
【0092】〔D7〕 第Nプリアサイン順位楽音発生
チャネル番号PASS N を対応する楽音発生チャネル番号
GNのプリアサイナ発音量PLEV GN の小なる順に並べ換え
る。例えば、プリアサイナ発音量PLEV GN がPLEV 3 <
PLEV 5 <PLEV 2 ・・・の順であれば、第Nプリアサ
イン順位楽音発生チャネル番号PASS N はPASS 0 =
3、PASS 1 =5、PASS 2 =2・・・とする。[D7] Nth pre-assigned order tone generation channel number PASS N corresponds to the tone generation channel number
GN Pre-Assigner Sound volume PLEV GN is sorted in ascending order. For example, the pre-assigner pronunciation volume PLEV GN is PLEV 3 <
If PLEV 5 <PLEV 2 ... In that order, the Nth preassigned tone generation channel number PASS N is PASS 0 =
3, PASS 1 = 5, PASS 2 = 2 ...
【0093】〔D8〕 連打処理ルーチンを実行する。
この連打処理ルーチンの内容は、図15に示されている
フローチャート図により後に詳細に説明する。
〔D9〕 タスクロックをかける。言い換えれば、鍵操
作検出回路、タイマ回路27からの割込みを禁止する。
このタスクロックが解除されるまで他のタスクの実行は
禁止され、当該タスクの実行の継続は保証される。[D8] A continuous hit processing routine is executed.
The contents of this continuous hitting processing routine will be described later in detail with reference to the flow chart shown in FIG. [D9] Lock the task. In other words, the interrupt from the key operation detection circuit and the timer circuit 27 is prohibited.
Execution of other tasks is prohibited until the task lock is released, and the continuation of execution of the task is guaranteed.
【0094】〔D10〕 メインアサイナ処理中フラグ
MAEFが“0:非処理中”であるか否かを判断する。この
メインアサイナ処理フラグMAEFが“0”である場合には
ステップD12に進む。
〔D11〕 ステップD10の判断においてメインアサ
イナ処理中フラグMAEFが“0”でない場合、言い換えれ
ばステップD6〜D8の処理中に鍵盤部における新たな
鍵操作などにもとづく一連の処理によりメインアサイナ
タスクが実行されると、楽音発生チャネルの発音態様が
ステップD6の開始時と異なっているために、タスクロ
ックを解除して再設定をするべくステップD4に戻る。[D10] Main assigner processing flag
It is determined whether or not MAEF is “0: Not processing”. When the main assigner processing flag MAEF is "0", the process proceeds to step D12. [D11] If the main assigner processing flag MAEF is not "0" in the determination of step D10, in other words, the main assigner task is executed by a series of processing based on a new key operation on the keyboard during the processing of steps D6 to D8. Then, since the tone generation mode of the tone generation channel is different from that at the start of step D6, the process returns to step D4 to release the task lock and reset.
【0095】〔D12〕 まず、第Nプリアサイン順位
楽音発生チャネル番号PASS N を各対応する第Nアサイ
ン順位楽音発生チャネル番号MASS N とするとともに、
対象アサイン順位TASNを“0”に設定する。また、プリ
アサイナ割当て可能楽音発生チャネル数PACNを割当て可
能楽音発生チャネル数GACNとする。
〔D13〕 タスクロックを解除してステップD2に戻
る。なお、タスクロック中に発生した割込みはタスクロ
ック解除後に実行される。[D12] First, the N-th pre-assigned tone generation channel number PASS N is set as the corresponding N-th assigned tone generation channel number MASS N, and
Set the target assignment order TASN to "0". Also, the number PACN of musical tone generation channels that can be assigned by pre-assigner is the number GACN of musical tone generation channels that can be assigned. [D13] The task lock is released and the process returns to step D2. An interrupt that occurs during task lock is executed after task lock is released.
【0096】連打処理ルーチン(図15)
楽音発生チャネル番号GNのプリアサイナ発音量PLEV GN
の小さい楽音発生チャネルから順に連打関係を調べ、連
打である場合には楽音発生チャネル番号GNのプリアサイ
ナ発音量PLEV GN を1/10に減少させて再設定するル
ーチンである。各ステップD801〜D814において
の処理は、次の通りである。Repeated Stroke Processing Routine (FIG. 15) Pre-Assigner Sound Generation Level PLEV GN for Musical Sound Generation Channel Number GN
Is a routine for checking the continuous hitting relationship in order from the tone generation channel having the smallest number, and in the case of repeated hits, reduces the pre-assigner tone generation amount PLEV GN of the tone generation channel number GN to 1/10 and resets it. The processing in steps D801 to D814 is as follows.
【0097】〔D801〕 連打処理対象番号PCTNおよ
び連打検出フラグRSEFを“0”に設定する。
〔D802〕 連打処理対象番号PCTNがプリアサイナ割
当て可能楽音発生チャネル数PACNを超えているか否か、
または“15”であるか否かを判断する。この連打処理
対象番号PCTNがプリアサイナ割当て可能楽音発生チャネ
ル数PACNを超えているまたは“15”である場合には割
当て可能な楽音発生チャネル全てまたは最終チャネルを
除く楽音発生チャネルについての連打検出が終了したた
めにステップD813に進み、超えていなくてかつ“1
5”でない場合には次のステップD803に進む。[D801] The consecutive hit processing target number PCTN and the consecutive hit detection flag RSEF are set to "0". [D802] Whether or not the continuous hit processing target number PCTN exceeds the number of musical sound generation channels PACN that can be assigned to the pre-assigner,
Alternatively, it is determined whether or not it is "15". If this continuous hit processing target number PCTN exceeds the number of pre-assigner allocatable tone generation channels PACN or is "15", consecutive hit detection for all allocatable tone generation channels or all tone generation channels except the last channel has been detected. To step D813, and if not exceeded and "1
If it is not 5 ", the process proceeds to the next step D803.
【0098】〔D803〕 連打処理対象番号PCTNの楽
音発生チャネル番号のプリアサイナ発音量PLEV PASS PC
TN が“0”を超えているか否かを判断する。このプリ
アサイナ発音量PLEV PASS PCTN が“0”を超えていな
い場合には次のステップD804に進み、“0”を超え
ている場合にはステップD805に進む。
〔D804〕 連打処理対象番号PCTNを“1”だけイン
クリメントして、ステップD802に戻る。[D803] Pre-assigner amount of tone generation channel number of continuous tone processing target number PCTN PLEV PASS PC
Judge whether TN exceeds “0”. When this pre-assigner tone generation amount PLEV PASS PCTN does not exceed "0", the process proceeds to the next step D804, and when it exceeds "0", the process proceeds to step D805. [D804] The continuous hit processing target number PCTN is incremented by "1", and the process returns to step D802.
【0099】〔D805〕 連打比較対象番号SCTNを連
打処理対象番号PCTNに“1”を加算した値に設定する。
〔D806〕 楽音発生チャネル管理マップにおける連
打処理対象番号PCTNの楽音発生チャネル番号PASS PCTN
に対応する楽音発生チャネル番号のノート番号と連打比
較対象番号SCTNの楽音発生チャネル番号PASS SCTN に対
応する楽音発生チャネル番号のノート番号とが同じであ
るか否かを判断する。これらノート番号が同じでない場
合には次のステップD807に進み、同じである場合に
はステップD809に進む。[D805] The consecutive hit comparison target number SCTN is set to a value obtained by adding "1" to the consecutive hit processing subject number PCTN. [D806] Tone generation channel number of consecutive hit processing target number PCTN in tone generation channel management map PASS PCTN
It is determined whether the note number of the tone generation channel number corresponding to and the tone generation channel number of the consecutive hit comparison number SCTN are the same as the note number of the tone generation channel number corresponding to PASS SCTN. If these note numbers are not the same, the process proceeds to the next step D807, and if they are the same, the process proceeds to step D809.
【0100】〔D807〕 連打比較対象番号SCTNが
“15”未満であるか否かを判断する。この連打比較対
象番号SCTNが“15”未満である場合には次のステップ
D808に、“15”未満でない場合にはステップD8
04に進む。
〔D808〕 連打比較対象番号SCTNを“1”だけイン
クリメントしてステップD806に戻る。[D807] It is determined whether the consecutive hit comparison target number SCTN is less than "15". If the continuous hit comparison target number SCTN is less than "15", the process proceeds to the next step D808. If it is not less than "15", step D8.
Go to 04. [D808] The consecutive hit comparison target number SCTN is incremented by "1" and the process returns to step D806.
【0101】〔D809〕 楽音発生チャネル管理マッ
プにおける連打比較対象番号SCTNの楽音発生チャネル番
号PASS SCTN に対応する楽音発生チャネル番号の急速減
衰中フラグが“1:急速減衰中”であるか否かを判断す
る。この急速減衰中フラグが“1”で急速減衰中である
場合には連打とみなすのは不適当なのでステップD80
4に戻り、“1”でない場合には次のステップD810
に進む。[D809] Whether or not the rapid decay flag of the tone generation channel number corresponding to the tone generation channel number PASS SCTN of the consecutive hit comparison number SCTN in the tone generation channel management map is “1: rapid decay” to decide. If the rapid decay flag is "1" and rapid decay is in progress, it is inappropriate to consider it as a continuous hit, so step D80.
4. If it is not "1", the next step D810
Proceed to.
【0102】〔D810〕 連打比較対象番号SCTNの楽
音発生チャネル番号のプリアサイナ発音量PLEV PASS SC
TN が“8000H”未満であるか否かを、言い換えれ
ばアタックを終了しているか否かを判断する。このプリ
アサイナ発音量PLEV PASS SCTN が“8000H”未満
でない場合にはアタック中なので次のステップD811
に進み、未満である場合にはアタックを終了しているた
めにステップD812に進む。[D810] Pre-assigner sound output amount of tone generation channel number of continuous hit comparison number SCTN PLEV PASS SC
It is determined whether TN is less than “8000H”, in other words, whether the attack is finished. If this pre-assigner pronunciation amount PLEV PASS SCTN is not less than "8000H", it means that the attack is in progress and the next step D811.
If it is less than this, the attack has ended, so the process proceeds to step D812.
【0103】〔D811〕 連打処理対象番号PCTNの楽
音発生チャネル番号のプリアサイナ発音量PLEV PASS PC
TN が、連打比較対象番号SCTNの楽音発生チャネル番号
PASSSCTN のプリアサイナ発音量PLEV PASS SCTN から
“8000H”を減じた値未満であるか否かを、言い換
えれば連打処理対象番号PCTNの楽音発生チャネル番号PA
SS PCTN の楽音発生チャネルのエンベロープレベルが、
連打比較対象番号SCTNの楽音発生チャネル番号PASS SCT
N の楽音発生チャネルのアタックレベル未満であるか否
かを判断する。このエンベロープレベルがそのアタック
レベル未満である場合には次のステップD812に進
み、未満でない場合には連打処理対象番号PCTNの楽音発
生チャネル番号PASS PCTN のプリアサイナ発音量PLEV P
ASS PCTNを変更するのは不適当なのでステップD807
に進む。[D811] Pre-assigner sound output amount of tone generation channel number of continuous hit processing number PCTN PLEV PASS PC
TN is the tone generation channel number of consecutive hit comparison number SCTN
PASSSCTN Pre-Assigner Sound Volume PLEV PASS SCTN Whether it is less than the value obtained by subtracting "8000H". In other words, the tone generation channel number PA of the continuous hit processing number PCTN.
The envelope level of the tone generation channel of SS PCTN is
Repeated tone comparison target number SCTN tone generation channel number PASS SCT
It is determined whether or not it is lower than the attack level of the N tone generation channels. If the envelope level is less than the attack level, the process proceeds to the next step D812, and if it is not less than the attack level, the tone generation channel number PASS PCTN pre-assigner pronunciation amount PLEV P of the continuous hit processing number PCTN.
It is inappropriate to change ASS PCTN, so step D807
Proceed to.
【0104】〔D812〕 まず、連打検出フラグRSEF
を“1:連打検出”に設定する。次に、連打処理対象番
号PCTNの楽音発生チャネル番号のプリアサイナ発音量PL
EV PASS PCTN をその値の1/10に減少させるように
変更する。なお、発音の終了している楽音発生チャネル
のアサイン順位を、連打処理によりプリアサイナ発音量
を変更した楽音発生チャネルのアサイン順位よりも優先
するために、変更後のプリアサイナ発音量が“1”未満
ならばその値を所定値(本実施例では“1”)にする。
そして、ステップD804に戻る。[D812] First, repeated hit detection flag RSEF
Is set to “1: continuous hit detection”. Next, the pre-assigner pronunciation amount PL of the tone generation channel number of the continuous hit processing target number PCTN
Change EV PASS PCTN to reduce it to 1/10 of its value. If the pre-assigner pronunciation amount after the change is less than "1" in order to give priority to the assignment order of the tone generation channels whose pronunciation has ended, over the assignment order of the tone generation channels whose pre-assigner pronunciation amount has been changed by repeated hit processing. For example, the value is set to a predetermined value (“1” in this embodiment).
Then, the process returns to step D804.
【0105】〔D813〕 連打検出フラグRSEFが
“1:連打検出”であるか否かを判断する。この連打検
出フラグRSEFが“1”でない場合には連打は検出しなか
ったために、当該ルーチンを終了してステップD9に戻
り、“1”で連打検出である場合には次のステップD8
14に進む。
〔D814〕 ステップD7と同様な処理を行う。この
処理を終了すると当該ルーチンを終了し、ステップD9
に戻る。[D813] It is determined whether the continuous hit detection flag RSEF is "1: continuous hit detection". If the consecutive hit detection flag RSEF is not "1", the consecutive hit is not detected. Therefore, the routine is ended and the process returns to step D9. If the consecutive hit detection is "1", the next step D8 is performed.
Proceed to 14. [D814] The same process as step D7 is performed. When this process ends, the routine ends and step D9
Return to.
【0106】なお、ステップD812において連打であ
ればプリアサイナ発音レベルPLEV PASS PCTN をその値
の1/10に変更したが、音色、音高などに応じて係数
を変更したり、あるいはプリアサイナ発音量を“1”な
どの所定値としても良い。また、プリアサイナ発音量が
“1”未満の場合に設定する所定値を音色などに応じて
変更しても良い。In step D812, if the continuous hits are made, the pre-assigner sounding level PLEV PASS PCTN is changed to 1/10 of the value, but the coefficient is changed according to the tone color, pitch, or the pre-signer sounding amount is set to " It may be a predetermined value such as 1 ″. Further, the predetermined value set when the pre-assigner sound output is less than "1" may be changed according to the tone color or the like.
【0107】また、ステップD814において、プリア
サイナ発音量が“1”未満の楽音発生チャネル相互間の
順位をエンベロープレベルにもとづいて並べ換えても良
い。要するに、アサイン順位をエンベロープレベルに関
連するプリアサイナ発音量にもとづき設定するが、連打
に関してはプリアサイナ発音量を変更して評価する。な
お、急速減衰中の楽音発生チャネルは連打比較対象から
除き、また連打関係にある楽音発生チャネルのなかで発
音量が最大の楽音発生チャネルおよび比較対象の楽音発
生チャネルがアタック中でかつそのアタックレベルより
大きなエンベロープレベルの楽音発生チャネルについて
はプリアサイナ発音量を変更しない。In step D814, the order of the tone generation channels whose pre-assigner tone generation amount is less than "1" may be rearranged based on the envelope level. In short, the assigning order is set based on the pre-assigner pronunciation amount related to the envelope level, but for continuous hits, the pre-assigner pronunciation amount is changed and evaluated. Note that the tone generation channel that is rapidly decaying is excluded from the continuous hit comparison target, and the tone generation channel with the largest sound output among the tone generation channels that are in the continuous hit relationship and the comparison target tone generation channel are both under attack and their attack level. For a tone generation channel with a larger envelope level, the pre-assigner tone generation amount is not changed.
【0108】エンベロープタスク(図16)
当該タスクに対するタイマイベントが発生すると実行を
開始し、各エンベロープチャネルのエンベロープレベル
および発音量を順次に更新するとともに、ノートステー
タス、ソステヌートステータス、ダンパー値およびエン
ベロープ生成パラメータにもとづいて新たな目標値およ
びレートを演算し、楽音発生回路30の楽音発生チャネ
ルへの転送を行うタスクである。各ステップE1〜E1
4においての処理は、次の通りである。 Envelope task (FIG. 16) Execution starts when a timer event for the task occurs, and the envelope level and sound level of each envelope channel are updated in sequence, and note status, sostenuto status, damper value, and envelope generation parameter are also set. This is a task of calculating a new target value and rate based on the above, and transferring the new target value and rate to the tone generation channel of the tone generation circuit 30. Steps E1 to E1
The processing in 4 is as follows.
【0109】〔E1〕 当該タスクで占有する変数など
を初期値に設定する。また、第5タスクタイマカウンタ
値TCNE 5 を“4”に、第5タスク時間間隔TCND 5 を
“4”に設定する。さらに、タスク管理マップにおける
タスク番号“5:エンベロープタスク”のタイマ処理要
求フラグを“1:要求有り”に設定する。
〔E2〕 要求元イベント値NSETを“1”に設定してイ
ベント待ちモニタコールを行う。なお、エンベロープタ
スクタイマイベントが発生すると、次のステップE3に
進む。[E1] The variables occupied by the task are set to initial values. Further, the fifth task timer counter value TCNE 5 is set to “4” and the fifth task time interval TCND 5 is set to “4”. Further, the timer processing request flag of the task number “5: envelope task” in the task management map is set to “1: request”. [E2] Set the request source event value NSET to "1" and make an event wait monitor call. When the envelope task timer event occurs, the process proceeds to the next step E3.
【0110】〔E3〕 タスク管理マップにおけるタス
ク番号“5:エンベロープタスク”の待ちイベント値と
第1イベント発生フラグとを“0”に設定するととも
に、エンベロープ処理対象番号ECTNを“0”に設定す
る。
〔E4〕 タスクロックをかける。
〔E5〕 楽音発生チャネル管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応する楽音発生チャネル番
号の急速減衰中フラグが“1:急速減衰中”であるか否
かを判断する。この急速減衰中フラグが“1”でない場
合には次のステップE6に進み、“1”である場合には
当該タスクによるエンベロープ処理は不要なために、ス
テップE14に進む。[E3] The waiting event value of the task number "5: envelope task" and the first event occurrence flag in the task management map are set to "0", and the envelope processing target number ECTN is set to "0". . [E4] Lock the task. [E5] It is determined whether or not the rapid attenuation flag of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "1: rapid attenuation in progress". If the flag during rapid decay is not "1", the process proceeds to the next step E6. If the flag is "1", the envelope process by the task is unnecessary, and the process proceeds to step E14.
【0111】〔E6〕 エンベロープ管理マップにおけ
るエンベロープ処理対象番号ECTNに対応するエンベロー
プチャネル番号の目標値が“0”であり、かつそのエン
ベロープレベルが“0”であるか否かを判断する。この
目標値が“0”でかつエンベロープレベルが“0”であ
る場合には発音を終了しているために、楽音発生チャネ
ル管理マップにおけるエンベロープ処理対象番号ECTNに
対応する楽音発生チャネル番号の発音量を“0”に、ト
ランケート禁止フラグを“0”に設定してステップE1
4に進み、いずれかが“0”でない場合には次のステッ
プE7に進む。[E6] It is determined whether the target value of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map is "0" and the envelope level is "0". When the target value is "0" and the envelope level is "0", the sound generation has ended, so the sound generation amount of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map. Is set to "0" and the truncation prohibition flag is set to "0", and step E1 is set.
4. If either of them is not "0", proceed to the next step E7.
【0112】〔E7〕 エンベロープ管理マップにおけ
るエンベロープ処理対象番号ECTNに対応するエンベロー
プチャネル番号のエンベロープレベルとレートとを加算
して新たなエンベロープレベルとし、フェーズ番号を
“1”だけインクリメントするとともに、楽音発生チャ
ネル管理マップにおけるエンベロープ処理対象番号ECTN
に対応する楽音発生チャネル番号のノート番号を読み出
してエンベロープ処理対象ノート番号ENNMとする。[E7] The envelope level and rate of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map are added to form a new envelope level, and the phase number is incremented by "1" and a musical tone is generated. Envelope processing number ECTN in channel management map
The note number of the tone generation channel number corresponding to is read out and set as the note number ENNM to be envelope-processed.
【0113】〔E8〕 ノートマップにおけるエンベロ
ープ処理対象ノート番号ENNMに対応するノート番号のノ
ートステータスが“1:押鍵”であるか否かを判断す
る。このノートステータスが“1”でない場合には次の
ステップE9に、“1”である場合にはステップE11
に進む。
〔E9〕 ノートマップにおけるエンベロープ処理対象
ノート番号ENNMに対応するノート番号のソステヌートス
テータスが“1:ソステヌートオン”であるか否かを判
断する。このソステヌートステータスが“1”である場
合にはステップE11に進む。[E8] It is determined whether or not the note status of the note number corresponding to the envelope processing target note number ENNM in the note map is "1: key depression". If the note status is not "1", go to the next step E9, and if it is "1", go to step E11.
Proceed to. [E9] It is determined whether the sostenuto status of the note number corresponding to the envelope processing target note number ENNM in the note map is “1: sostenuto on”. If the sostenuto status is "1", the process proceeds to step E11.
【0114】〔E10〕 ステップE9の判断において
ソステヌートステータスが“1”でない場合には、既に
離鍵していてかつ後述するペダルタスクのステップF4
において説明するようにソステヌートペダルが踏み下げ
られていないかまたはソステヌートペダルが踏み下げら
れていても踏み下げ時にすでに離鍵していたために、離
鍵に対応するエンベロープ処理を行う。言い換えれば、
エンベロープ管理マップにおけるエンベロープ処理対象
番号ECTNに対応するエンベロープチャネル番号の目標値
およびレートなどをダンパー値DMPVおよびエンベロープ
生成パラメータなどにもとづき演算して更新するととも
に、目標値およびレートを楽音発生回路30の対応する
楽音発生チャネルに転送する。また、処理を終了すると
ステップE12に進む。[E10] If the sostenuto status is not "1" in the judgment of step E9, the key has already been released, and the step F4 of the pedal task described later is performed.
As will be described in Section 1, the sostenuto pedal is not depressed, or even if the sostenuto pedal is depressed, the key has already been released at the time of depression, so the envelope processing corresponding to the key release is performed. In other words,
The target value and rate of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map is calculated and updated based on the damper value DMPV and the envelope generation parameter, and the target value and rate are handled by the tone generation circuit 30. Transfer to the tone generation channel. When the process is completed, the process proceeds to step E12.
【0115】〔E11〕 ステップE8の判断において
ノートステータスが“1:押鍵”であるか、またはステ
ップE9の判断においてソステヌートステータスが
“1:ソステヌートオン”である場合には、いまだ押鍵
中であるか、または離鍵していてもソステヌートペダル
が踏み下げられておりかつ踏み下げ時に押鍵中であった
ために、押鍵中に対応するエンベロープ処理を行う。言
い換えれば、エンベロープ管理マップにおけるエンベロ
ープ処理対象番号ECTNに対応するエンベロープチャネル
番号の目標値およびレートなどを最大値としたダンパー
値およびエンベロープ生成パラメータなどにもとづき演
算して更新するとともに、目標値およびレートを楽音発
生回路30の対応する楽音発生チャネルに転送する。[E11] If the note status is "1: key depression" in the judgment of step E8, or if the sostenuto status is "1: sostenuto on" in the judgment of step E9, the key is still being depressed. If there is, or even if the key is released, the sostenuto pedal is depressed and the key is being depressed at the time of depression, so the envelope process corresponding to the key depression is performed. In other words, the target value and rate are calculated and updated based on the damper value and the envelope generation parameter that have the maximum value of the target value and rate of the envelope channel number corresponding to the envelope processing number ECTN in the envelope management map. It is transferred to the corresponding tone generation channel of the tone generation circuit 30.
【0116】〔E12〕 エンベロープ管理マップにお
けるエンベロープ処理対象番号ECTNに対応するエンベロ
ープチャネル番号のフェーズ番号が、トランケート禁止
フェーズ番号を超えているか否かを判断する。このフェ
ーズ番号がトランケート禁止フェーズ番号を超えていな
い場合には、ステップE14に進み、発音量を更新しな
い。また、このフェーズ番号がトランケート禁止フェー
ズ番号を超えている場合にはステップE13に進んで発
音量を更新する。[E12] It is determined whether or not the phase number of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map exceeds the truncation prohibited phase number. If this phase number does not exceed the truncate prohibition phase number, the process proceeds to step E14, and the tone generation amount is not updated. If the phase number exceeds the truncate prohibition phase number, the process proceeds to step E13 to update the tone generation amount.
【0117】〔E13〕 楽音発生チャネル管理マップ
におけるエンベロープ処理対象番号ECTNに対応する楽音
発生チャネル番号の発音量をエンベロープレベルの上位
15ビットに更新するとともに、楽音発生チャネル管理
マップにおけるエンベロープ処理対象番号ECTNに対応す
る楽音発生チャネル番号のトランケート禁止フラグを
“0”に設定する。[E13] The tone generation amount of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is updated to the upper 15 bits of the envelope level, and the envelope processing target number ECTN in the tone generation channel management map. The truncation prohibition flag of the tone generation channel number corresponding to is set to "0".
【0118】〔E14〕 タスクロックを解除する。
〔E15〕 エンベロープ処理対象番号ECTNが“15”
未満であるか否かを判断する。このエンベロープ処理対
象番号ECTNが“15”未満でない場合には、ステップE
2に戻る。
〔E16〕 エンベロープ処理対象番号ECTNを“1”だ
けインクリメントしてステップE4に戻る。[E14] The task lock is released. [E15] Envelope processing target number ECTN is "15"
It is determined whether it is less than. If the envelope processing target number ECTN is not less than "15", step E
Return to 2. [E16] The envelope processing target number ECTN is incremented by "1" and the process returns to step E4.
【0119】ペダルタスク
当該タスクに対するタイマイベントが発生すると実行を
開始して、ダンパーペダル、ソステヌートペダルなどの
ペダルの設定状態を検出するタスクである。なお、公知
技術であるために要点のみを説明する。各ステップF1
〜F4においての処理は、次の通りである。 Pedal task This is a task that starts execution when a timer event for the task occurs and detects the setting state of a pedal such as a damper pedal or a sostenuto pedal. Since this is a known technique, only the essential points will be described. Each step F1
The processing from F4 to F4 is as follows.
【0120】〔F1〕 まず、新たなペダルの設定状態
をペダル毎に記憶する新ペダルマップと、前回のペダル
の設定状態をペダル毎に記憶する旧ペダルマップと、当
該タスクで占有する変数などとを初期値に設定する。次
に、第6タスクタイマカウンタ値TCNE 6 を“11”
に、第6タスク時間間隔TCND 6 を“9”に設定する。
さらに、タスク管理マップにおけるタスク番号“6:ペ
ダルタスク”のタイマ処理要求フラグを“1”に設定す
る。[F1] First, a new pedal map that stores the new pedal setting state for each pedal, an old pedal map that stores the previous pedal setting state for each pedal, variables that are occupied by the task, etc. Is set to the initial value. Next, set the sixth task timer counter value TCNE 6 to “11”.
Then, the sixth task time interval TCND 6 is set to “9”.
Further, the timer processing request flag of the task number “6: Pedal task” in the task management map is set to “1”.
【0121】〔F2〕 要求元イベント値NSETを“1”
に設定して、イベント待ちモニタコールを行う。なお、
ペダルタスクタイマイベントが発生すると、次のステッ
プF3に進む。
〔F3〕 タスク管理マップにおけるタスク番号“6:
ペダルタスク”の待ちイベント値と第1イベント発生フ
ラグとを“0”に設定する。[F2] Request source event value NSET is set to "1".
Set to and make an event wait monitor call. In addition,
When a pedal task timer event occurs, the process proceeds to the next step F3. [F3] Task number “6: in task management map”
The waiting event value of the "pedal task" and the first event occurrence flag are set to "0".
【0122】〔F4〕 公知技術にもとづいて各ペダル
を所定順次に走査して設定状態を読み込み、設定状態に
変化があったか否かを判断して変化があれば対応する処
理を行う。例えば、ダンパーペダルの設定状態が変化し
ていれば、新たなダンパーの踏込み量をダンパー値DMPV
とする。また、ソステヌートペダルが踏み下げられる
と、ノートマップにおける各ノート番号のソステヌート
ステータスを対応するノートステータスと同じになるよ
うに更新する。さらに、ソステヌートペダルが戻される
と、ノートマップにおける各ノート番号のソステヌート
ステータスを“0”に設定する。なお、変化がない場
合、または対応する処理を終了した場合にはステップF
2に戻る。[F4] Based on the known technique, each pedal is scanned in a predetermined sequence to read the setting state, and it is determined whether or not the setting state has changed, and if there is a change, a corresponding process is performed. For example, if the setting state of the damper pedal has changed, the depression amount of the new damper is set to the damper value DMPV.
And When the sostenuto pedal is depressed, the sostenuto status of each note number in the note map is updated to be the same as the corresponding note status. Further, when the sostenuto pedal is returned, the sostenuto status of each note number in the note map is set to "0". If there is no change or if the corresponding process is completed, step F
Return to 2.
【0123】操作子タスク(図17)
当該タスクに対するタイマイベントが発生すると実行を
開始して、音色の選択あるいは音色に関するパラメータ
の設定などを行う操作子群23の設定状態を検出するタ
スクである。なお、公知技術であるために要点のみを説
明する。各ステップG1〜G4においての処理は、次の
通りである。 Manipulator task (FIG. 17) This task starts execution when a timer event for the task occurs, and detects the setting state of the manipulator group 23 for selecting a tone color or setting parameters relating to a tone color. Since this is a known technique, only the essential points will be described. The processing in each step G1 to G4 is as follows.
【0124】〔G1〕 まず、新たな操作子の設定状態
を操作子毎に記憶する新操作子マップと、前回の操作子
の設定状態を操作子毎に記憶する旧操作子マップと、操
作子の操作に対応して設定される各種パラメータと、こ
の操作子タスクで占有する変数などとを初期値に設定す
る。次に、第7タスクタイマカウンタ値TCNE 7 を“1
2”に、第7タスク時間間隔TCND 7 を“9”に設定す
る。さらに、タスク管理マップにおけるタスク番号
“7:操作子タスク”のタイマ処理要求フラグを“1”
に設定する。[G1] First, a new manipulator map that stores a new manipulator setting state for each manipulator, an old manipulator map that stores a previous manipulator setting state for each manipulator, and a manipulator The various parameters set corresponding to the operation of and the variables occupied by this operator task are set to initial values. Next, set the seventh task timer counter value TCNE 7 to "1.
The second task time interval TCND 7 is set to “9” in 2 ”. Further, the timer processing request flag of the task number“ 7: operator task ”in the task management map is set to“ 1 ”.
Set to.
【0125】〔G2〕 要求元イベント値NSETを“1”
に設定するとともに、初期設定完了フラグを“1”に設
定してイベント待ちモニタコールを行う。なお、操作子
タスクタイマイベントが発生すると、次のステップG3
に進む。
〔G3〕 タスク管理マップにおけるタスク番号“7:
操作子タスク”の待ちイベント値と第1イベント発生フ
ラグとを“0”に設定する。[G2] The request source event value NSET is set to "1".
And the initial setting completion flag is set to "1" and an event wait monitor call is made. When an operator task timer event occurs, the next step G3
Proceed to. [G3] Task number “7: in task management map”
The wait event value of the "operator task" and the first event occurrence flag are set to "0".
【0126】〔G4〕 公知技術にもとづいて各操作子
を所定順次に走査して設定状態を読み込み、設定状態に
変化があったか否かを判断して変化があれば対応する処
理を行う。例えば、音色番号を変更した場合には音色パ
ラメータ群を変更する。なお、変化がない場合、または
対応する処理を終了した場合にはステップG2に戻る。[G4] Based on a known technique, each operator is scanned in a predetermined sequence to read the setting state, it is determined whether or not the setting state has changed, and if there is a change, a corresponding process is performed. For example, when the tone color number is changed, the tone color parameter group is changed. When there is no change or when the corresponding process is completed, the process returns to step G2.
【0127】次に、以上に説明した本実施例の全体的な
動作について説明する。
(1) 初期設定
電源を投入すると、モニタプログラムのリセットルーチ
ンZAによる処理後に(ステップZA1〜ZA3)、キ
ーデータ受信タスク(ルーチンA)、メインアサイナタ
スク(ルーチンB)、発音タスク(ルーチンC)、プリ
アサイナタスク(ルーチンD)、エンベロープタスク
(ルーチンE)、ペダルタスク(ルーチンF)および操
作子タスク(ルーチンG)の初期設定処理がタスク優先
順位にしたがって順次に行われる(ステップA1,A
2、ステップB1,B2、ステップC1,C2、ステッ
プD1,D2、ステップE1,E2、ステップF1,F
2、ステップG1,G2)。
(2) 受信キーデータによる発音処理
鍵盤の鍵を操作し鍵操作検出回路から割込みがかかる
と、モニタプログラムのキーデータ受信割込み処理ルー
チンZEが開始される。Next, the overall operation of this embodiment described above will be described. (1) When the initialization power is turned on, after the processing by the monitor program reset routine ZA (steps ZA1 to ZA3), the key data receiving task (routine A), the main assigner task (routine B), the sounding task (routine C) , Pre-assigner task (routine D), envelope task (routine E), pedal task (routine F) and manipulator task (routine G) are initialized in sequence according to task priority (steps A1, A).
2, steps B1 and B2, steps C1 and C2, steps D1 and D2, steps E1 and E2, steps F1 and F
2, steps G1, G2). (2) Sound Generation Processing by Received Key Data When a key on the keyboard is operated and an interrupt occurs from the key operation detection circuit, the key data reception interrupt processing routine ZE of the monitor program is started.
【0128】(2の1) キーデータ受信割込み処理ル
ーチンZEにおいては、キーデータ受信イベント待ちの
状態にあるために(ステップZE1,ZE3)、タスク
管理マップにおけるタスク番号“1:キーデータ受信タ
スク”のステータスを“0:ラン”に設定する(ステッ
プZE5)。次に、キーデータ受信タスクを実行して
(ステップA2〜A7)、キーデータを鍵操作検出回路
から読み込み、このキーデータにもとづいてノートマッ
プを更新するとともに、ノートオンであればイベント発
生モニタコールを行う(ステップA7)。(1 of 2) Since the key data reception interrupt processing routine ZE is in the state of waiting for the key data reception event (steps ZE1, ZE3), the task number "1: key data reception task" in the task management map The status of is set to "0: run" (step ZE5). Next, the key data reception task is executed (steps A2 to A7), the key data is read from the key operation detection circuit, and the note map is updated based on this key data. Is performed (step A7).
【0129】(2の2) モニタプログラムのイベント
発生モニタコールルーチンZCにおいて、タスク管理マ
ップにおけるタスク番号“2:メインアサイナタスク”
の第1イベント発生フラグを“1”に設定するとともに
(ステップZC1)、ステータスを“1:レディ”に設
定する(ステップZC2,ZC3)。なお、キーデータ
受信タスクはタスク優先順位がメインアサイナタスクの
タスク優先順位より高いために、キーデータ受信タスク
を再び開始して(ステップZC4)、このキーデータ受
信タスクにおいてイベント待ちモニタコールを行う(ス
テップA2)。(2-2) In the event generation monitor call routine ZC of the monitor program, the task number "2: Main assigner task" in the task management map
The first event occurrence flag is set to "1" (step ZC1) and the status is set to "1: ready" (steps ZC2 and ZC3). Since the task priority of the key data reception task is higher than the task priority of the main assigner task, the key data reception task is restarted (step ZC4), and an event wait monitor call is made in this key data reception task. (Step A2).
【0130】(2の3) モニタプログラムのイベント
待ちモニタコールルーチンZBにおいて、キーデータ受
信イベントが発生しているか否かを調べる(ステップZ
B1)。この調べた結果、次のキーデータ受信イベント
がまだ発生していないために、タスク管理マップにおけ
るタスク番号“1:キーデータ受信タスク”のステータ
スを“2:ウェイト”に設定して(ステップZB2)、
タスク管理マップを調べる(ステップZB3)。このタ
スク管理マップを調べた結果、ステータスが“1:レデ
ィ”である最優先タスクのタスク番号が“2:メインア
サイナタスク”であるために、このタスク番号“2:メ
インアサイナタスク”のステータスを“0:ラン”に設
定して(ステップZB4)、メインアサイナタスクを実
行させる(ステップZB5)。このメインアサイナタス
クにおいては、ノート番号NTNMなどを楽音発生チャネル
管理マップに書き込む(ステップB2〜B5)。次に、
イベント発生モニタコールを行う(ステップB6)。(2-3) In the event waiting monitor call routine ZB of the monitor program, it is checked whether or not a key data reception event has occurred (step Z).
B1). As a result of this examination, since the next key data reception event has not occurred yet, the status of the task number "1: key data reception task" in the task management map is set to "2: wait" (step ZB2). ,
Examine the task management map (step ZB3). As a result of checking this task management map, since the task number of the highest priority task whose status is "1: ready" is "2: main assigner task", this task number "2: main assigner task" The status is set to "0: run" (step ZB4), and the main assigner task is executed (step ZB5). In this main assigner task, note numbers NTNM and the like are written in the tone generation channel management map (steps B2 to B5). next,
An event occurrence monitor call is made (step B6).
【0131】(2の4) モニタプログラムのイベント
発生モニタコールルーチンZCにおいて、タスク管理マ
ップにおけるタスク番号“3:発音タスク”の第2イベ
ント発生フラグを“1”に設定するとともに、ステータ
スを“1:レディ”に設定する。なお、メインアサイナ
タスクのタスク優先順位が発音タスクのタスク優先順位
より高いために、メインアサイナタスクを再び開始し
て、このメインアサイナタスクにおいて対象アサイン順
位を“1”だけインクリメントして次のアサイン順位に
更新し(ステップB7)、イベント待ちモニタコールを
行う(ステップB2)。(2-4) In the event generation monitor call routine ZC of the monitor program, the second event generation flag of the task number "3: sounding task" in the task management map is set to "1" and the status is set to "1". : Ready ”. Since the task priority of the main assigner task is higher than the task priority of the pronunciation task, the main assigner task is restarted and the target assign order is incremented by "1" in this main assigner task. (Step B7), and an event waiting monitor call is made (step B2).
【0132】(2の5) モニタプログラムのイベント
待ちモニタコールルーチンZBにおいてアサイン要求イ
ベントが発生しているか否かを調べる。この調べた結
果、次のアサイン要求イベントがまだ発生していないた
めに、タスク管理マップにおけるタスク番号“2:メイ
ンアサイナタスク”のステータスを“2:ウェイト”に
設定してタスク管理マップを調べる。このタスク管理マ
ップを調べた結果、ステータスが“1:レディ”である
最優先タスクのタスク番号が“3:発音タスク”である
ために、タスク番号“3:発音タスク”のステータスを
“0:ラン”に設定して、発音タスクを実行させる。こ
の発音タスクにおいては、楽音発生チャネル管理マップ
に書き込まれたノート番号NTNMなどにもとづき楽音発生
に関する各種パラメータを演算して設定し、発音の開始
を指示する(ステップC2〜C 27)。次に、イベン
ト待ちモニタコールを行う(ステップC2)。(2-5) It is checked whether or not an assign request event has occurred in the event wait monitor call routine ZB of the monitor program. As a result of this examination, since the next assignment request event has not yet occurred, the task number in the task management map "2: Main assigner task" is set to "2: Wait" and the task management map is examined. . As a result of checking this task management map, the task number of the task number "3: sounding task" is "0: because the task number of the highest priority task whose status is" 1: ready "is" 3: sounding task ". Set to "Run" to perform the pronunciation task. In this tone generation task, various parameters relating to tone generation are calculated and set based on the note number NTNM written in the tone generation channel management map, and the start of tone generation is instructed (steps C2-C27). Next, an event wait monitor call is made (step C2).
【0133】(2の6) モニタプログラムのイベント
待ちモニタコールルーチンZBにおいて発音要求イベン
トが発生しているか否かを調べる。この調べた結果、次
の発音要求イベントがまだ発生していないために、タス
ク管理マップにおけるタスク番号“3:発音タスク”の
ステータスを“2:ウェイト”に設定してタスク管理マ
ップを調べる。このタスク管理マップを調べた結果、全
てのタスク番号のステータスが“2:ウェイト”である
場合にはスリープする。
(3) プリアサイナタスク(ルーチンD)は対応する
タイマイベントが発生すると、楽音発生チャネル管理マ
ップの発音量にもとづいてアサイン順位を更新する(ス
テップD2〜D13)。次に、イベント待ちモニタコー
ルを行う(ステップD2)。
(4) エンベロープタスク(ルーチンE)は対応する
タイマイベントが発生すると、ノートステータス、ペダ
ルのデータ、楽音発生チャネル管理マップおよびエンベ
ロープ管理マップにもとづいて楽音発生チャネル管理マ
ップの発音量およびエンベロープ管理マップのエンベロ
ープレベルなどを更新などする(ステップE2〜E1
6)。次に、イベント待ちモニタコールを行う(ステッ
プE2)。(2-6) It is checked in the event waiting monitor call routine ZB of the monitor program whether a sound generation request event has occurred. As a result of this examination, since the next pronunciation request event has not yet occurred, the task number “3: Sound task” in the task management map is set to “2: Wait” and the task management map is examined. As a result of checking this task management map, if the statuses of all task numbers are "2: wait", the task sleeps. (3) When the corresponding timer event occurs, the pre-signer task (routine D) updates the assignment order based on the tone generation amount of the tone generation channel management map (steps D2 to D13). Next, an event wait monitor call is made (step D2). (4) When the corresponding timer event occurs, the envelope task (routine E) generates the tone generation amount and envelope management map of the tone generation channel management map based on the note status, pedal data, tone generation channel management map and envelope management map. Update the envelope level etc. (steps E2-E1)
6). Next, an event wait monitor call is made (step E2).
【0134】以上に説明したように本実施例において
は、新たな楽音を割当てる楽音発生チャネルを、発音割
当てのために急速減衰中の楽音発生チャネルおよび発音
開始から所定時間経過していないいわゆるアタック中の
楽音発生チャネルを除いた楽音発生チャネルから選定し
ている。なお、選定対象の楽音発生チャネルについては
評価発音量にもとづいて割当て順位を設定しているとと
もに、評価発音量はエンベロープレベルにもとづく発音
量を連打関係にもとづいて変更している。また、連打関
係は発音状態にある楽音発生チャネル(発音量が“0”
の発音を終了している楽音発生チャネルを除いた楽音発
生チャネル)から発音割当てのために急速減衰中の楽音
発生チャネルを除いた楽音発生チャネルのうちで判断し
ている。As described above, in the present embodiment, the tone generation channel to which a new tone is assigned is the tone generation channel which is being rapidly attenuated to assign the tone generation, and the so-called attack during which a predetermined time has not passed from the start of tone generation. It is selected from the tone generation channels excluding the tone generation channels. It should be noted that the musical tone generation channels to be selected are assigned an order of assignment based on the evaluation sound output, and the evaluation sound output is changed based on the envelope level based on the continuous hitting relationship. In addition, the continuous hitting relationship is related to the tone generation channel in the sounding state
Of the tone generation channels excluding the tone generation channels whose pronunciation has ended) are excluded from the tone generation channels excluding the tone generation channels that are undergoing rapid decay for sound allocation.
【0135】連打関係にもとづく評価発音量の変更は、
次のように処理を行っている。前記発音状態にある楽
音発生チャネルから発音割当てのために急速減衰中の楽
音発生チャネルを除いた楽音発生チャネルのうちで発音
量が最大でなくかつ発音開始から所定時間経過したいわ
ゆるアタックを終了した楽音発生チャネルの評価発音量
を変更する。なお、アタック中の楽音発生チャネルの発
音量としてはアタックレベルを用いている。発音量が
“0”の発音を終了している楽音発生チャネルについて
は、すでに最小の評価発音量なので変更しても効果がな
いために、評価発音量を変更しない。前記発音状態に
ある楽音発生チャネルから発音割当てのために急速減衰
中の楽音発生チャネルを除いた楽音発生チャネルのうち
で発音量が最大の楽音発生チャネルは、発音を継続する
必要があるために評価発音量を変更しない。発音割当
てのために急速減衰中の楽音発生チャネルおよび発音開
始から所定時間経過していないいわゆるアタック中の楽
音発生チャネルについては、新たな楽音を割当てる選定
対象から除いているために評価発音量を変更しない。To change the evaluation pronunciation amount based on the continuous hitting relation,
The processing is performed as follows. Among the tone generation channels excluding the tone generation channels that are rapidly decaying for tone allocation from the tone generation channels in the sound generation state, the tone generation amount that is not the maximum and the so-called attack ends after a predetermined time has elapsed from the start of the tone generation Change the evaluation pronunciation amount of the generation channel. Note that the attack level is used as the tone generation amount of the tone generation channel during the attack. The tone generation channel for which the tone generation amount of "0" has ended is not changed because the tone generation channel that has already finished the tone generation has the smallest estimated tone generation amount, so the tone generation amount is not changed. Of the tone generation channels that are in the pronunciation state, the tone generation channels with the maximum pronunciation amount among the tone generation channels excluding the tone generation channels that are undergoing rapid decay for sound assignment are evaluated because it is necessary to continue the tone generation. Do not change the pronunciation amount. The tone generation channel that is rapidly decaying for sound allocation and the tone generation channel that is under attack for a certain time after the start of sound generation are excluded from the selection targets to which new musical sounds are assigned, so the evaluation sound amount is changed. do not do.
【0136】なお、前記発音状態にある楽音発生チャネ
ルから発音割当てのために急速減衰中の楽音発生チャネ
ルおよびアタック中の楽音発生チャネルを除いた楽音発
生チャネルのうちで発音量が最大でない楽音発生チャネ
ルの評価発音量を変更するようにしても良い。また、よ
り新しい発音を優先させる場合には前記発音状態にある
楽音発生チャネルのうちで発音量が最大でない楽音発生
チャネルの評価発音量を変更するようにしても良いとと
もに、発音割当てのために急速減衰中の楽音発生チャネ
ルの発音量としては割当てられる予定の楽音のアタック
レベルを用いると良い。It should be noted that, of the tone generation channels in the tone generation state, the tone generation channels whose tone generation amount is not the maximum among the tone generation channels excluding the tone generation channel that is being rapidly attenuated for attack assignment and the tone generation channel that is being attacked. The evaluation pronunciation amount of may be changed. Further, in the case of giving priority to a newer pronunciation, it is possible to change the evaluation pronunciation amount of the tone generation channel whose tone generation amount is not the maximum among the tone generation channels in the above-mentioned tone generation state, and it is possible to change the evaluation tone amount quickly for the assignment of the tone generation. An attack level of a musical tone to be assigned may be used as the tone generation amount of the musical tone generating channel being attenuated.
【0137】また、発音割当てのために急速減衰中の楽
音発生チャネルおよびまたは発音開始から所定時間経過
していないいわゆるアタック中の楽音発生チャネルを処
理対象に含め、そのような楽音発生チャネルであっても
発音量が最大でない楽音発生チャネルについては評価発
音量を変更するようにしても良い。または、最新に割当
てられた楽音発生チャネル以外の楽音発生チャネルの評
価発音量を変更するようにしても良い。また、必要なら
ば複数個の楽音発生チャネルの発音量を変更しないよう
にしても良い。Further, the musical tone generating channel which is rapidly decaying for the purpose of assigning the musical tone and / or the musical tone generating channel which is so-called attack in which a predetermined time has not passed from the start of the musical tone generation is included in the processing target. Alternatively, the evaluation sound generation amount may be changed for the tone generation channel whose sound generation amount is not the maximum. Alternatively, the evaluation sound generation amount of a tone generation channel other than the latest assigned tone generation channel may be changed. Further, if necessary, the tone generation amounts of a plurality of tone generation channels may not be changed.
【0138】さらに、連打関係にもとづいてアサイン順
位を直接に変更しても良い。例えば、ステップD8にお
いて、連打処理対象番号PCTNの楽音発生チャネル番号PA
SS PCTN を、プリアサイナ発音量PLEV GN が“0”の次
のプリアサイン順位の第Nプリアサイン順位楽音発生チ
ャネル番号PASS N となるように並べ換える。または、
そのように並べ換えたプリアサイン順位の第Nプリアサ
イン順位楽音発生チャネル番号PASS N の次のプリアサ
イン順位の第Nプリアサイン順位楽音発生チャネル番号
PASS N となるように並べ換えても良い。Furthermore, the assignment order may be directly changed based on the continuous hitting relationship. For example, in step D8, the tone generation channel number PA of the continuous hit processing number PCTN
The SS PCTNs are rearranged so that the pre-assigner pronunciation amount PLEV GN becomes the Nth pre-assigned musical tone generation channel number PASS N of the next pre-assigned rank. Or
The N-th pre-assigned musical tone generation channel number of the pre-assigned order thus rearranged The N-th pre-assigned musical tone generation channel number of the pre-assigned order next to PASS N
You may rearrange so that it becomes PASS N.
【0139】言い換えれば、PLEV 3 =“0”で、PLEV
3<PLEV 5 <PLEV 2 <PLEV 7<PLEV 9 ・・・であ
って、PLEV 9 <“8000H”であれば、まずステッ
プD7までの処理においてPASS 0 =3、PASS 1 =
5、PASS 2 =2、PASS 3=7、PASS 4 =9・・・と
なる。ここで、楽音発生チャネル番号が“2”および
“9”の楽音発生チャネルに各連打関係の楽音発生チャ
ネルがあれば、次のように並べ換える。PASS 0 =3、
PASS 1 =9、PASS 2 =2、PASS 3 =5、PASS 4
=7・・・、またはPASS 0 =3、PASS 1 =2、PASS
2 =9、PASS 3 =5、PASS 4=7・・・となる。In other words, if PLEV 3 = “0”, then PLEV
If 3 <PLEV 5 <PLEV 2 <PLEV 7 <PLEV 9 ... And PLEV 9 <“8000H”, then PASS 0 = 3 and PASS 1 = in the processing up to step D7.
5, PASS 2 = 2, PASS 3 = 7, PASS 4 = 9 ... Here, if the tone generation channels with tone generation channel numbers “2” and “9” have tone generation channels related to each continuous hit, they are rearranged as follows. PASS 0 = 3,
PASS 1 = 9, PASS 2 = 2, PASS 3 = 5, PASS 4
= 7 ..., or PASS 0 = 3, PASS 1 = 2, PASS
2 = 9, PASS 3 = 5, PASS 4 = 7 ...
【0140】さらに、アタック中および急速減衰中の楽
音発生チャネルへの割当てを禁止しないで割当てるよう
にしても良い。言い換えれば、ステップB4の対象アサ
イン順位TASNが割当て可能楽音発生チャネル数GACNより
大きくなると割当てを禁止する処理を削除する。なお、
対象アサイン順位TASNが“15”を越えた場合には割当
てを禁止する、または対象アサイン順位TASNを“0”に
戻すか、アサイン順位を再設定するようにしても良い。
この場合に、アタック中の楽音発生チャネルのアサイン
順位はアタックを終了した楽音発生チャネルより後順位
となり、急速減衰中の楽音発生チャネルのアタック順位
はアタック中の楽音発生チャネルよりも後順位になる。Further, it may be possible to perform allocation without prohibiting the allocation to the tone generation channels during the attack and the rapid decay. In other words, when the target assignment order TASN in step B4 becomes larger than the allocatable tone generation channel number GACN, the process of prohibiting the allotment is deleted. In addition,
When the target assign order TASN exceeds "15", the allocation may be prohibited, or the target assign order TASN may be returned to "0" or the assign order may be reset.
In this case, the assigning order of the tone generation channel under attack is lower than that of the tone generation channel that has finished the attack, and the attack order of the tone generation channel during rapid decay is lower than that of the attacking tone generation channel.
【0141】さらにまた、発音量が所定レベル以下の楽
音発生チャネルのアサイン順位を、押鍵順、楽音発生チ
ャネル順、所定レベル以下になった順などに設定するよ
うにして発音量にもとづくアサイン順位の設定処理を簡
略化しても良い。この場合においては、発音量が所定レ
ベル以下の評価発音量を変更しなくても良い。また、処
理の簡略化のためにプリアサイン処理対象とする楽音発
生チャネルを限定しても良い。例えば、公知の技術によ
り押鍵順を管理し、プリアサイナタスクにおいては最新
の押鍵から所定数個の古い押鍵に対応する楽音発生チャ
ネルについてはプリアサインの処理対象から除外すると
ともに、トランケートを禁止する。なお、本実施例にお
いては発音量をエンベロープレベルによったが、エンベ
ロープレベルに適当な重み付け処理をしたり、楽音発生
チャネルから発生している楽音信号の振幅レベルより検
出したエンベロープレベルによったり、疑似エンベロー
プレベル、特開平1−169496号公報などで提案し
た残存発音量、あるいは発音継続時間(発音を終了する
までの時間)などによっても良い。Furthermore, the assigning order of the tone generation channels whose tone generation amount is below a predetermined level is set in the order of key depression, the tone generation channel sequence, the order below the predetermined level, etc. The setting process may be simplified. In this case, it is not necessary to change the evaluation sound generation amount whose sound generation amount is equal to or lower than a predetermined level. Further, for simplification of the processing, the musical tone generation channels targeted for the pre-assignment processing may be limited. For example, the key press order is managed by a known technique, and in the pre-assigner task, the tone generation channels corresponding to a predetermined number of old key presses from the latest key press are excluded from the pre-assign processing target and the truncation is performed. Ban. In the present embodiment, the tone generation amount depends on the envelope level, but the envelope level is appropriately weighted, or the envelope level detected from the amplitude level of the tone signal generated from the tone generation channel is used. It may be based on the pseudo envelope level, the remaining tone generation amount proposed in Japanese Patent Laid-Open No. 1-1649496, or the tone generation duration (time until the tone generation ends).
【0142】本実施例においては、同一音高であれば連
打関係にあると判断したが、一つの楽音を複数個の部分
音などで構成する場合には、同一音高でかつ同種の部分
音などであれば連打関係にあると判断しても良い。本実
施例においては、アサイン順位を連打関係にもとづいて
変更したが、他の楽音との間のマスキングにもとづいて
変更しても良い。〈変形例1〉プリアサイナタスクにお
ける連打処理の変形例について、次に説明する。In the present embodiment, it has been determined that there is a continuous hitting relationship if the pitches are the same, but if one musical tone is composed of a plurality of partial sounds, etc., the partial pitches of the same pitch and of the same kind are used. If so, it may be determined that they have a continuous hitting relationship. In the present embodiment, the assignment order is changed based on the continuous hitting relationship, but it may be changed based on masking with other musical tones. <Modification 1> A modification of the continuous hitting process in the pre-assigner task will be described below.
【0143】まず、本変形例において使用する変数を説
明する。
PCNN 連打処理対象ノート番号
SCNN 連打処理対象ノート番号
楽音発生チャネル管理マップに、(10)押鍵順位のエリア
を追加する。なお、このエリアは対応する楽音発生チャ
ネル番号の押鍵順位を“0〜15”でもって示し、最も
古い押鍵順位を“0”でもって示す。First, the variables used in this modification will be described. PCNN consecutive note processing target note number SCNN consecutive note processing target note number Add the area of (10) key pressing order to the tone generation channel management map. In this area, the key depression order of the corresponding tone generation channel number is indicated by "0 to 15" and the oldest key depression order is indicated by "0".
【0144】ノートマップに、(3) 優先楽音発生チャネ
ル番号のエリアを追加する。なお、このエリアは、対応
するノート番号の楽音を優先して発音する楽音発生チャ
ネル番号を示す。メインアサイナタスクのステップB1
における楽音発生チャネル管理マップの初期設定に際し
ては、各楽音発生チャネルの押鍵順位を対応する楽音発
生チャネル番号に設定する。例えば、楽音発生チャネル
番号が“1”の楽音発生チャネルの押鍵順位を“1”に
設定する。The area of (3) priority tone generation channel number is added to the note map. It should be noted that this area indicates the tone generation channel number in which the tone of the corresponding note number is preferentially sounded. Step B1 of the main assigner task
In the initial setting of the tone generation channel management map in, the key pressing order of each tone generation channel is set to the corresponding tone generation channel number. For example, the key depression order of the tone generation channel having the tone generation channel number "1" is set to "1".
【0145】発音タスクのステップC12の処理に、次
の処理を追加する。
〔C12〕 楽音発生チャネル管理マップにおける発音
処理対象楽音発生チャネル番号GCTNに対応する楽音発生
チャネル番号の押鍵順位以上の押鍵順位を、次のように
更新する。発音処理対象楽音発生チャネル番号GCTNに対
応する楽音発生チャネル番号の押鍵順位より大きな押鍵
順位を“1”だけデクリメントするとともに、発音処理
対象楽音発生チャネル番号GCTNに対応する楽音発生チャ
ネル番号の押鍵順位を“15”に設定する。例えば、押
鍵順位が“5”の楽音発生チャネルに新たな楽音を割当
てると、押鍵順位が“6”〜“15”の楽音発生チャネ
ルの押鍵順位は“5”〜“14”に設定され、新たな楽
音が割当てられた楽音発生チャネルの押鍵順位は“1
5”に設定される。The following processing is added to the processing of step C12 of the sounding task. [C12] The key pressing order of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is updated as follows. The tone generation channel number GCTN corresponding to the tone generation target tone generation channel number is decremented by "1" and the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN is depressed. Set the key rank to "15". For example, when a new musical tone is assigned to the tone generation channel having the key depression order of "5", the key depression order of the tone generation channels having the key depression order of "6" to "15" is set to "5" to "14". And the key depression order of the tone generation channel to which a new tone is assigned is "1".
It is set to 5 ".
【0146】プリアサイナタスクにおいては、ステップ
D7において第N順位楽音発生チャネル番号の並べ換え
処理に代えて次に説明する連打処理を行うとともに、ス
テップD8において前述の変更前のステップD7の第N
順位楽音発生チャネル番号の並べ換え処理を行う。連打処理ルーチン(図18)
プリアサイナ発音量の小なるものから順に連打関係を調
べ、連打であればプリアサイナ発音量を1/10に減少
させて再設定するルーチンである。各ステップD701
〜D719においての処理は、次の通りである。In the pre-assigner task, the continuous hitting process described below is performed in place of the rearrangement process of the N-th tone generation sound channel numbers in step D7, and the N-th step in step D7 before the change is performed in step D8.
Performs rearrangement processing of the order tone generation channel numbers. Sequential Strike Processing Routine (FIG. 18) This is a routine for checking the consecutive striking relationship in order from the smallest pre-assigner sound production amount, and in the case of consecutive striking, reducing the pre-assigner sound production amount to 1/10 and resetting. Each step D701
The processing in D719 is as follows.
【0147】〔D701〕 連打処理対象番号PCTNを
“15”に設定し、次のステップD702に進む。
〔D702〕 楽音発生チャネル管理マップにおける連
打処理対象番号PCTNに対応する楽音発生チャネル番号の
急速減衰中フラグが“1:急速減衰中”であるか否かを
判断する。この急速減衰中フラグが“1”である場合に
はステップD708に進み、“1”でない場合には次の
ステップD703に進む。[D701] The continuous hit processing target number PCTN is set to "15", and the flow advances to the next step D702. [D702] It is determined whether or not the rapid decay flag of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is "1: rapid decay in progress". If the rapid decay flag is "1", the process proceeds to step D708, and if it is not "1", the process proceeds to step D703.
【0148】〔D703〕 まず、楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のノ−ト番号を連打処理対象ノ−ト番
号PCNNとし、押鍵順位を連打処理対象押鍵順位PCPNとす
る。次に、ノートマップにおける連打処理対象ノ−ト番
号PCNNに対応するノ−ト番号の優先楽音発生チャネル番
号を連打比較対象番号SCTNとして、次のステップD70
4に進む。[D703] First, the note number of the tone generation channel number corresponding to the consecutive-stroke processing target number PCTN in the tone-generation channel management map is set as the consecutive-stroke processing target note number PCNN, and the key pressing order is set as the consecutive-stroke processing target depression. The key rank is PCPN. Next, the priority tone generation channel number of the note number corresponding to the note number PCNN for the consecutive hit processing in the note map is set as the consecutive hit comparison target number SCTN, and the following step D70 is performed.
Go to 4.
【0149】〔D704〕 連打処理対象番号PCTNと連
打比較対象番号SCTNとが同じであるか否かを判断する。
これら連打処理対象番号PCTNおよび連打比較対象番号SC
TNが同じである場合にはステップD708に進み、同じ
でない場合には次のステップD705に進む。
〔D705〕 連打比較対象番号SCTNのノ−ト番号を連
打比較対象ノ−ト番号SCNNとする。[D704] It is determined whether the consecutive hit processing target number PCTN and the consecutive hit comparison target number SCTN are the same.
These consecutive hit processing numbers PCTN and consecutive hit comparison number SC
If the TNs are the same, the process proceeds to step D708, and if they are not the same, the process proceeds to the next step D705. [D705] The note number of the consecutive hit comparison target number SCTN is set as the consecutive hit comparison target note number SCNN.
【0150】〔D706〕 連打処理対象ノ−ト番号PC
NNと連打比較対象ノ−ト番号SCNNが同じであるか否かを
判断する。これら連打処理対象ノ−ト番号PCNNおよび連
打比較対象ノ−ト番号SCNNが同じである場合にはステッ
プD710に進み、同じでない場合には次のステップD
707に進む。
〔D707〕 ノートマップにおける連打処理対象ノ−
ト番号PCNNに対応するノ−ト番号の優先楽音発生チャネ
ル番号を連打処理対象番号PCTNに更新する。[D706] Note number PC for continuous hit processing
It is determined whether the NN and the consecutive hit comparison target note number SCNN are the same. If the consecutive hit processing target note number PCNN and the consecutive hit comparison target note number SCNN are the same, the process proceeds to step D710. If they are not the same, the next step D is performed.
Proceed to 707. [D707] Target of continuous hit processing in note map
The priority tone generation channel number of the note number corresponding to the note number PCNN is updated to the continuous hit processing target number PCTN.
【0151】〔D708〕 連打処理対象番号PCTNを
“1”だけデクリメントする。
〔D709〕 連打処理対象番号PCTNが“0”以上であ
るか否かを判断する。この連打処理対象番号PCTNが
“0”以上である場合にはステップD702に戻り、
“0”以上でない場合には連打処理ルーチンを終了して
ステップD8に進む。
〔D710〕 連打比較対象番号SCTNの急速減衰中フラ
グが“1:急速減衰中”であるか否かを判断する。この
急速減衰中フラグが“1”である場合にはステップD7
07に戻り、“1”でない場合には次のステップD71
1に進む。[D708] The continuous hit processing target number PCTN is decremented by "1". [D709] It is determined whether or not the continuous hit processing target number PCTN is "0" or more. If the continuous hit processing target number PCTN is "0" or more, the process returns to step D702,
If it is not "0" or more, the continuous hit processing routine is ended and the process proceeds to step D8. [D710] It is determined whether or not the rapid-decaying flag of the consecutive hit comparison target number SCTN is "1: rapid-decaying". If the rapid decay flag is "1", step D7
Returning to 07, if not "1", the next step D71
Go to 1.
【0152】〔D711〕 連打処理対象番号PCTNのプ
リアサイナ発音量PLEV PCTN が“8000H”未満、言
い換えれば楽音発生チャネル番号が連打処理対象番号PC
TNの楽音発生チャネルがアタックを終了しているか否か
を判断する。このプリアサイナ発音量PLEV PCTN が“8
000H”未満でアタックを終了している場合にはステ
ップD716に進み、“8000H”未満でない場合に
は次のステップD712に進む。[D711] The pre-assigner tone generation amount PLEV PCTN of the continuous hit processing target number PCTN is less than “8000H”, in other words, the tone generation channel number is the continuous hit processing target number PC.
Determine whether the tone generation channel of TN has finished the attack. This pre-assigner pronunciation volume PLEV PCTN is “8
If the attack is completed in less than 000H ", the process proceeds to step D716, and if it is not less than" 8000H ", the process proceeds to next step D712.
【0153】〔D712〕 連打比較対象番号SCTNのプ
リアサイナ発音量PLEV SCTN が“8000H”未満、言
い換えれば楽音発生チャネル番号が連打比較対象番号SC
TNの楽音発生チャネルがアタックを終了しているか否か
を判断する。このプリアサイナ発音量PLEV SCTN が“8
000H”未満でアタックを終了している場合にはステ
ップD714に進み、“8000H”未満でない場合に
は次のステップD713に進む。[D712] The pre-assigner sound generation amount PLEV SCTN of the continuous hit comparison target number SCTN is less than “8000H”, in other words, the tone generation channel number is the continuous hit comparison target number SC.
Determine whether the tone generation channel of TN has finished the attack. This pre-assigner pronunciation volume PLEV SCTN is "8".
If the attack is completed with less than 000H ", the process proceeds to step D714, and if it is not less than" 8000H ", the process proceeds to next step D713.
【0154】〔D713〕 楽音発生チャネル管理マッ
プにおける連打処理対象番号PCTNに対応する楽音発生チ
ャネル番号の押鍵順位が、連打比較対象番号SCTNに対応
する楽音発生チャネル番号の押鍵順位より大であるか否
かを判断する。この連打処理対象番号PCTNに対応する押
鍵順位が大である場合にはステップD707に戻り、連
打処理対象番号PCTNに対応する押鍵順位が大でない場合
にはステップD708に戻る。[D713] The key-depression order of the tone-generation channel number corresponding to the consecutive-stroke processing target number PCTN in the tone-generation channel management map is higher than the key-depression order of the tone generation channel number corresponding to the consecutive-stroke comparison target number SCTN. Determine whether or not. If the key depression order corresponding to the continuous hit processing target number PCTN is high, the process returns to step D707, and if the key depression order corresponding to the continuous hit processing target number PCTN is not high, the process returns to step D708.
【0155】〔D714、D715〕 連打比較対象番
号SCTNのプリアサイナ発音量PLEV SCTN が“0”である
か否かを判断する。このプリアサイナ発音量PLEV SCTN
が“0”である場合には格別の処理を行わずにステップ
D707に進み、“0”でない場合には連打比較対象番
号SCTNのプリアサイナ発音量PLEV SCTN を“10”で除
した値に“1”を加算した値に更新し、ステップD70
7に進む。[D714, D715] It is determined whether or not the pre-assigner tone generation amount PLEV SCTN of the consecutive hit comparison target number SCTN is "0". This pre-assigner pronunciation volume PLEV SCTN
If it is "0", no special processing is performed and the process proceeds to step D707. If it is not "0", the value obtained by dividing the pre-assigner pronunciation amount PLEV SCTN of the consecutive hit comparison target number SCTN by "10" is "1". Is updated to the value obtained by adding
Proceed to 7.
【0156】〔D716〕 連打比較対象番号SCTNのプ
リアサイナ発音量PLEV SCTN が“8000H”未満、言
い換えれば楽音発生チャネル番号が連打比較対象番号SC
TNの楽音発生チャネルがアタックを終了しているか否か
を判断する。このプリアサイナ発音量PLEV SCTN が“8
000H”未満でアタックを終了している場合には次の
ステップD717に進み、“8000H”未満でない場
合にはステップD718に進む。[D716] The pre-assigner sound production amount PLEV SCTN of the consecutive hit comparison target number SCTN is less than "8000H", in other words, the tone generation channel number is the consecutive hit comparison target number SC.
Determine whether the tone generation channel of TN has finished the attack. This pre-assigner pronunciation volume PLEV SCTN is "8".
If the attack is completed with less than 000H ", the process proceeds to the next step D717, and if it is not less than" 8000H ", the process proceeds with step D718.
【0157】〔D717〕 連打処理対象番号PCTNのプ
リアサイナ発音量PLEV PCTN が連打比較対象番号SCTNの
プリアサイナ発音量PLEV SCTN より大であるか否かを判
断する。この連打処理対象番号PCTNのプリアサイナ発音
量PLEV PCTN が大である場合にはステップD714に進
み、大でない場合には次のステップD718に進む。
〔D718、D719〕 連打処理対象番号PCTNのプリ
アサイナ発音量PLEV PCTN が“0”であるか否かを判断
する。このプリアサイナ発音量PLEV PCTN が“0”であ
る場合には格別の処理を行わずにステップD708に進
み、“0”でない場合には、連打処理対象番号PCTNのプ
リアサイナ発音量PLEV PCTN を“10”で除した値に
“1”を加算した値に更新し、ステップD708に進
む。[D717] It is determined whether or not the pre-assigner pronunciation amount PLEV PCTN of the consecutive hit processing target number PCTN is greater than the pre-assigner tone production amount PLEV SCTN of the consecutive hit comparison target number SCTN. If the pre-assigner tone production amount PLEV PCTN of the continuous hit processing target number PCTN is large, the process proceeds to step D714, and if it is not large, the process proceeds to step D718. [D718, D719] It is determined whether or not the pre-assigner tone generation amount PLEV PCTN of the continuous hit processing target number PCTN is "0". If this pre-assigner pronunciation amount PLEV PCTN is "0", no special processing is performed and the process proceeds to step D708. If it is not "0", the pre-assigner pronunciation amount PLEV PCTN of the continuous hit processing target number PCTN is set to "10". It is updated to the value obtained by adding "1" to the value divided by, and the process proceeds to step D708.
【0158】なお、連打処理対象および連打比較対象の
楽音発生チャネルがともにアタック中である場合には、
ステップD713において押鍵順位を比較したが、押鍵
順位にかえてアタックレベルを比較するようにしても良
い。言い換えれば、ステップD717と同様な判断処理
を行い、連打処理対象番号PCTNのプリアサイナ発音量PL
EV PCTN が大である場合にはステップD707に進み、
大でない場合にはステップD708に進む。第2実施例
次に、本発明による電子楽器の割当装置を、持続音系の
楽音を発生する電子楽器に適用した場合の具体的実施例
につき、図面を参照しつつ説明する。If both the tone generation channels subject to the consecutive hit processing and the consecutive hit comparison target are under attack,
Although the key depression order is compared in step D713, the attack level may be compared instead of the key depression order. In other words, the same judgment processing as in step D717 is performed, and the pre-assigner pronunciation amount PL of the continuous hit processing target number PCTN is set.
If EV PCTN is large, proceed to Step D707,
If not, the process proceeds to step D708. Second Embodiment Next, a specific embodiment in which the electronic musical instrument allocating apparatus according to the present invention is applied to an electronic musical instrument that generates a continuous tone type musical sound will be described with reference to the drawings.
【0159】第1実施例との相違点
〇 楽音発生チャネル管理マップを、次のように変更す
る。
・次のエリアを削除する。
(1) 発音量
・次のエリアを追加する。Differences from the First Embodiment The tone generation channel management map is changed as follows. -Delete the following areas. (1) Pronunciation volume ・ The following areas are added.
【0160】(10)ノートステータス
(11)押鍵順位:押鍵順位を“0〜15”でもって示し、
最も古い押鍵順位を“0”でもって示す。
(12)ステージ番号:プリアサイン処理における処理段階
を“0〜5”でもって示し、発音終了を“0”、離鍵済
みでかつホールドオフを“1”、離鍵済でかつダンパー
オンを“2" 、離鍵済みでかつソステヌートオンを
“3”、押鍵中でかつトランケート禁止解除を“4”、
押鍵中でかつトランケート禁止中を“5”でもって示
す。ここで、ホールドオフはダンパーオフでかつソステ
ヌートオフを示す。(10) Note status (11) Key pressing order: The key pressing order is indicated by "0 to 15",
The oldest key depression order is indicated by "0". (12) Stage number: The processing stage in the pre-assign process is indicated by "0 to 5", the sound generation end is "0", the key is released and the holdoff is "1", the key is released and the damper on is "". 2 ", the key is released and sostenuto is on" 3 ", the key is being depressed and the truncation prohibition release is" 4 ",
"5" indicates that the key is being pressed and truncation is prohibited. Here, hold-off indicates damper off and sostenuto off.
【0161】(13)プリアサイン順位:プリアサイン順位
を“0〜15”でもって示し、最も早い順位を“0”で
もって示す。
(14)ステージ内のプリアサイン順位:各処理段階におけ
るプリアサイン順位を“1〜16”でもって示し、最も
早い順位を“1”でもって示す。
(15)連打フラグ:連打である場合を“1”でもって示
す。
〇 プリアサイン処理FIFOを設ける。
〇 本実施例において追加して用いられる各種の変数と
しては、次のものがある。(13) Pre-assigned rank: The pre-assigned rank is indicated by "0 to 15" and the earliest rank is indicated by "0". (14) Pre-assignment rank in the stage: The pre-assignment rank in each processing stage is indicated by "1 to 16", and the earliest rank is indicated by "1". (15) Repeated hit flag: Indicates the continuous hit with "1". -Provide a pre-assignment processing FIFO. The various variables additionally used in this embodiment are as follows.
【0162】CRQF プリアサイン処理要求フラグ:発音
タスクにおけるプリアサイン処理要求を“1”でもって
示す。
PEXM 処理モード:処理モードを“1〜4”でもって示
し、押鍵を“1”、アタック処理を“2”、離鍵を
“3”、発音終了を“4”でもって示す。
POAS 旧プリアサイン順位
PNAS 新プリアサイン順位
POSN 旧ステージ番号
PNSN 新ステージ番号
PDSN 下位ステータス番号
POSA ステージ内の旧プリアサイン順位
PNSA ステージ内の新プリアサイン順位
PSAM POSN ステージ番号POSNのステージ内の最大プリ
アサイン順位
PSRM POSN ステージ番号POSNのステージ内の最大連打
順位
PSAM PNSN ステージ番号PNSNのステージ内の最大プリ
アサイン順位
PSRM PNSN ステージ番号PNSNのステージ内の最大連打
順位
PSAM PDSN ステージ番号PDSNのステージ内の最大プリ
アサイン順位
PNTN プリアサイナノート番号
ERQF プリアサイン処理要求フラグ:エンベロープタス
クにおけるプリアサイン処理要求を“1”でもって示
す。
〇 次のようにキーデータ受信タスクのステップA6を
変更するとともに、ステップA8を追加する。CRQF pre-assignment processing request flag: A pre-assignment processing request in the sounding task is indicated by "1". PEXM processing mode: The processing mode is indicated by "1 to 4", key depression is indicated by "1", attack processing is indicated by "2", key release is indicated by "3", and sounding end is indicated by "4". POAS Old pre-assigned rank PNAS New pre-assigned rank POSN Old stage number PNSN New stage number PDSN Lower status number POSA Old pre-assigned rank in stage PNSA New pre-assigned rank in stage PSAM POSN Stage number Maximum pre-assigned in POSN stage Rank PSRM POSN Stage number Maximum number of consecutive hits in the stage of POSN PSAM PNSN Stage number Maximum pre-assignment within the stage of PNSN Rank PSRM PNSN Stage number Maximum number of consecutive strikes within the stage of PNSN PSAM PDSN Stage number Maximum pre-assignment within the stage of PDSN Order PNTN Presigner note number ERQF Preassign processing request flag: Indicates the preassign processing request in the envelope task with "1". ○ Step A6 of the key data reception task is changed and step A8 is added as follows.
【0163】〔A6〕 まず、ノートマップにおけるノ
ート番号NTNMに対応するノート番号のノートステータス
を“0”に設定する。次に、楽音発生チャネル管理マッ
プのノート番号がノート番号NTNMでかつノートステータ
スが“1”である楽音発生チャネル番号を押鍵順位の小
なる順に探し、押鍵順位の最も小なる楽音発生チャネル
番号のノートステータスを“0”に設定するとともに、
プリアサイン処理FIFOに離鍵処理を示す“3”およ
び楽音発生チャネル番号を順次に積み込んでステップA
8に進む。[A6] First, the note status of the note number corresponding to the note number NTNM in the note map is set to "0". Next, the tone generation channel management map is searched for a tone generation channel number whose note number is the note number NTNM and whose note status is "1", in order of decreasing key depression order, and the tone generation channel number with the lowest key depression order is searched. Set the note status of "0" and
"3" indicating the key release processing and the tone generation channel number are sequentially loaded into the pre-assign processing FIFO and step A is executed.
Go to 8.
【0164】〔A8〕プリアサイン要求イベントを発生
する。言い換えれば、要求先タスク番号NDTKを“4:プ
リアサイナタスク”に、要求先イベント値NDETを“1”
に設定してイベント発生モニタコールを行う。そして、
ステップA2に戻る。
〇 メインアサイナタスクの処理を一部変更する。
ステップB1に、次の処理を追加する。[A8] A pre-assignment request event is generated. In other words, the request destination task number NDTK is “4: pre-assigner task” and the request destination event value NDET is “1”.
Set to and make an event occurrence monitor call. And
Return to step A2. * Partially change the processing of the main assigner task. The following process is added to step B1.
【0165】〔B1〕 楽音発生チャネル管理マップに
おける各楽音発生チャネル番号のプリアサイン順位およ
び押鍵順位を各対応する楽音発生チャネル番号に設定す
る。ステップB5に、次の処理を追加する。
〔B5〕 プリアサイン処理FIFOに押鍵処理を示す
“1”および楽音発生チャネル番号を順次に積み込む。
〇 発音タスクの処理の一部を、次のように変更する。[B1] The pre-assign order and key pressing order of each tone generation channel number in the tone generation channel management map are set to the corresponding tone generation channel numbers. The following processing is added to step B5. [B5] "1" indicating the key depression process and the tone generation channel number are sequentially loaded into the pre-assign process FIFO. * Part of the processing of the pronunciation task is changed as follows.
【0166】ステップC3に、次の処理を追加する。プ
リアサイン処理要求フラグCRQFを“1”に設定する。ス
テップC5を、次のように変更する。
〔C5〕 楽音発生チャネル管理マップにおける発音処
理対象楽音発生チャネル番号GCTNに対応する楽音発生チ
ャネル番号のステージ番号が“0”であるか否かを判断
する。このステージ番号が“0”でない場合には次のス
テップC6に進み、“0”で急速減衰処理が不要である
場合にはステップC7に進む。The following processing is added to step C3. The pre-assign processing request flag CRQF is set to "1". Step C5 is changed as follows. [C5] It is determined whether or not the stage number of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is "0". If the stage number is not "0", the process proceeds to the next step C6, and if "0" does not require the rapid damping process, the process proceeds to step C7.
【0167】ステップC6、C12における発音量の設
定処理を削除する。ステップC12に、次の処理を追加
する。楽音発生チャネル管理マップにおける発音処理対
象楽音発生チャネル番号GCTNに対応する楽音発生チャネ
ル番号の押鍵順位以上の押鍵順位を、次のように更新す
る。The tone generation amount setting processing in steps C6 and C12 is deleted. The following process is added to step C12. The key-depression order of the tone-generation channel number corresponding to the tone-generation channel number GCTN to be sounded in the tone-generation channel management map is updated as follows.
【0168】発音処理対象楽音発生チャネル番号GCTNに
対応する楽音発生チャネル番号の押鍵順位より大きな押
鍵順位を“1”だけデクリメントするとともに、発音処
理対象楽音発生チャネル番号GCTNに対応する楽音発生チ
ャネル番号の押鍵順位を“15”に設定する。例えば、
押鍵順位が“5”の楽音発生チャネルに新たな楽音を割
当てると、押鍵順位が“6”〜“15”の楽音発生チャ
ネルの押鍵順位は“5”〜“14”に更新され、新たな
楽音が割当てられた楽音発生チャネルの押鍵順位は“1
5”に更新される。The tone generation channel corresponding to the tone generation target tone generation channel number GCTN is decremented by "1", and the tone generation channel corresponding to the tone generation target tone generation channel number GCTN is decremented by "1". Set the key depression order of numbers to "15". For example,
When a new musical tone is assigned to the tone generation channel having the key depression order of "5", the key depression order of the tone generation channels having the key depression order of "6" to "15" is updated to "5" to "14", The key depression order of the tone generation channel to which a new tone is assigned is "1".
Updated to 5 ".
【0169】ステップC22の処理に先立ち、次の処理
を行う。
〔C22p〕 プリアサイン処理要求フラグCRQFが
“1”であるか否かを判断する。このプリアサイン処理
要求フラグCRQFが“1”である場合には次のステップC
22qに進み、“1”でない場合にはステップC22に
進む。
〔C22q〕 プリアサイン要求イベントを発生する。
言い換えれば、要求先タスク番号NDTKを“4:プリアサ
イナタスク”に、要求先イベント値NDETを“1”に設定
してイベント発生モニタコールを行う。また、プリアサ
イン処理要求フラグCRQFを“0”に設定してステップC
22に進む。
〇 プリアサイナタスクを、次のように変更する。(図
19)
〔D1〕 エンベロープ管理マップおよびプリアサイン
処理FIFOをクリヤするとともに、このプリアサイナ
タスクで占有する変数などを初期値に設定する。なお、
変数などの初期設定に際し、プリアサイナ割当て可能楽
音発生チャネル数PACNおよびステージ番号“0”のステ
ージ内の最大プリアサイン順位PSAM 0を“16”に、そ
の他の変数を“0”に設定する。The following processing is performed prior to the processing of step C22. [C22p] It is determined whether the pre-assignment processing request flag CRQF is "1". When this pre-assignment processing request flag CRQF is "1", the next step C
22q, and if it is not "1", proceed to step C22. [C22q] Generate a pre-sign request event.
In other words, the request generation task number NDTK is set to "4: pre-assigner task" and the request destination event value NDET is set to "1" to make an event occurrence monitor call. In addition, the pre-assignment processing request flag CRQF is set to "0" and step C
Proceed to 22. * Change the pre-signer task as follows. (FIG. 19) [D1] The envelope management map and pre-assign processing FIFO are cleared, and at the same time, variables and the like occupied by this pre-assigner task are set to initial values. In addition,
At the time of initial setting of variables and the like, the number of pre-assigner assignable tone generation channels PACN and the maximum pre-assignment order PSAM 0 within the stage of stage number “0” are set to “16” and other variables are set to “0”.
【0170】〔D2〕 要求元イベント値NSETを“3
1”に設定してイベント待ちモニタコールを行う。な
お、プリアサイン要求イベントが発生すると、次のステ
ップD3に進む。
〔D3〕 タスク管理マップにおけるタスク番号“4:
プリアサイナタスク”の待ちイベント値を“0”に設定
する。[D2] The request source event value NSET is set to "3".
When the pre-assignment request event occurs, the process proceeds to the next step D3. [D3] Task number "4: in task management map"
Set the wait event value of "pre-signer task" to "0".
【0171】〔D4〕、〔D5〕 第1イベント発生フ
ラグが“1”であるか否かを判断し、この第1イベント
発生フラグが“1”である場合には更新処理1を行う。
この更新処理1の内容は後に詳細に説明する。
〔D6〕、〔D7〕 第2イベント発生フラグが“1”
であるか否かを判断し、この第2イベント発生フラグが
“1”である場合には更新処理2を行う。この更新処理
2の内容は後に説明する。[D4], [D5] It is judged whether or not the first event occurrence flag is "1", and if the first event occurrence flag is "1", the updating process 1 is performed.
The contents of this update process 1 will be described later in detail. [D6], [D7] Second event occurrence flag is "1"
If the second event occurrence flag is "1", the update process 2 is performed. The contents of this update processing 2 will be described later.
【0172】〔D8〕、〔D9〕 第3イベント発生フ
ラグが“1”であるか否かを判断し、この第3イベント
発生フラグが“1”である場合には更新処理3を行う。
この更新処理3の内容は後に詳細に説明する。
〔D10〕、〔D11〕 第4イベント発生フラグが
“1”であるか否かを判断し、この第4イベント発生フ
ラグが“1”である場合には更新処理4を行う。この更
新処理4の内容は後に詳細に説明する。[D8], [D9] It is determined whether or not the third event occurrence flag is "1", and if the third event occurrence flag is "1", the updating process 3 is performed.
The contents of this update processing 3 will be described later in detail. [D10], [D11] It is determined whether or not the fourth event occurrence flag is "1", and if the fourth event occurrence flag is "1", the update process 4 is performed. The contents of this update processing 4 will be described later in detail.
【0173】〔D12〕、〔D13〕 第5イベント発
生フラグが“1”であるか否かを判断し、この第5イベ
ント発生フラグが“1”である場合には更新処理5を行
う。この更新処理5の内容は後に詳細に説明する。
〔D14〕 タスクロックをかける。
〔D15〕 メインアサイナ処理中フラグMAEFが“0”
であるか否かを判断する。このメインアサイナ処理中フ
ラグMAEFが“0”である場合には次のステップD16に
進み、“0”でない場合にはステップD17に進む。[D12], [D13] It is determined whether or not the fifth event occurrence flag is "1", and if the fifth event occurrence flag is "1", the updating process 5 is performed. The contents of the update process 5 will be described later in detail. [D14] Lock the task. [D15] Main assigner processing flag MAEF is "0".
Or not. When the main assigner processing flag MAEF is "0", the process proceeds to the next step D16, and when it is not "0", the process proceeds to step D17.
【0174】〔D16〕 まず、順次に楽音発生チャネ
ル管理マップにおける楽音発生チャネル番号とプリアサ
イン順位とにもとづいて第Nアサイン順位楽音発生チャ
ネル番号MASS N を設定する。例えば、楽音発生チャネ
ル番号“0”のプリアサイン順位が“5”であれば第5
アサイン順位楽音発生チャネル番号MASS 5 を“0”に
設定する。次に、対象アサイン順位TASNを“0”に設定
し、プリアサイナ割当て可能楽音発生チャネル数PACNを
割当て可能楽音発生チャネル数GACNとする。さらに、タ
スクロックを解除してステップD2に戻る。[D16] First, the N-th assigned musical tone generation channel number MASS N is sequentially set based on the musical tone generation channel number and the pre-assignment ranking in the musical tone generation channel management map. For example, if the pre-assigned rank of the tone generation channel number “0” is “5”, the fifth
Assign order Music tone generation channel number Set MASS 5 to "0". Next, the target assign order TASN is set to "0", and the preassigner allocatable tone generation channel number PACN is set as the allocatable tone generation channel number GACN. Further, the task lock is released and the process returns to step D2.
【0175】〔D17〕 タスクロックを解除してステ
ップD5に戻る。更新処理1ルーチン
押鍵、アタック終了、離鍵または発音終了にもとづくプ
リアサイン順位を更新するルーチンである。
〔D51〕 まず、タスク管理マップにおけるタスク番
号“4:プリアサイナタスク”の第1イベント発生フラ
グを“0”に設定する。次に、メインアサイナ処理中フ
ラグMAEFを“0”に設定する。[D17] The task lock is released and the process returns to step D5. Update Processing 1 Routine This routine updates the pre-assignment order based on key depression, attack end, key release, or sound end. [D51] First, the first event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the main assigner processing flag MAEF is set to "0".
【0176】〔D52〕 プリアサイン処理FIFOか
らデータを降ろして処理モードPEXMとする。
〔D53〕 処理モードPEXMを判断する。この処理モー
ドPEXMが“1”である場合には次のステップD54に、
“2”である場合にはステップD55に、“3”である
場合にはステップD56に、“4”である場合にはステ
ップD57に進む。[D52] Data is unloaded from the pre-assign processing FIFO to set it as the processing mode PEXM. [D53] The processing mode PEXM is determined. When this processing mode PEXM is "1", the next step D54 is executed.
If it is "2", the process proceeds to step D55, if it is "3", the process proceeds to step D56, and if it is "4", the process proceeds to step D57.
【0177】〔D54〕 更新処理11を行う。この処
理の内容は、図20を参照して後に詳細に説明する。そ
して、ステップD58に進む。
〔D55〕 更新処理12を行う。この処理の内容は後
に詳細に説明する。そして、ステップD58に進む。
〔D56〕 更新処理13を行う。この処理の内容は後
に詳細に説明する。そして、ステップD58に進む。[D54] The update process 11 is performed. Details of this processing will be described later with reference to FIG. Then, the process proceeds to step D58. [D55] The update process 12 is performed. The details of this process will be described later. Then, the process proceeds to step D58. [D56] The update process 13 is performed. The details of this process will be described later. Then, the process proceeds to step D58.
【0178】〔D57〕 更新処理14を行う。この処
理の内容は後に詳細に説明する。そして、ステップD5
8に進む。
〔D58〕 プリアサイン処理FIFOが“空”である
か否かを判断する。このプリアサイン処理FIFOが
“空”である場合には当該ルーチンを終了してプリアサ
イナタスクのステップD6に進み、“空”でない場合に
はステップD52に戻る。[D57] The updating process 14 is performed. The details of this process will be described later. And step D5
Go to 8. [D58] It is determined whether or not the pre-assign processing FIFO is "empty". If the pre-assign processing FIFO is "empty", the routine is terminated and the process proceeds to step D6 of the pre-assigner task. If it is not "empty", the process returns to step D52.
【0179】更新処理11ルーチン(図21)
押鍵によりあらたに発音を開始した楽音発生チャネルの
プリアサイン順位を更新するルーチンである。
〔D5401〕 まず、新ステージ番号PNSNを“5”に
設定する。次に、プリアサイン処理FIFOからデータ
を降ろして楽音発生チャネル番号GNとする。 Update Processing 11 Routine (FIG. 21) This routine updates the pre-assignment order of the tone generation channel whose sound is newly started by pressing a key. [D5401] First, the new stage number PNSN is set to "5". Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN.
【0180】〔D5402〕 連打処理を行う。この処
理の内容は、図21を参照して後に詳細に説明する。
〔D5403〕 楽音発生チャネル管理マップにおける
楽音発生チャネル番号GNに対応する楽音発生チャネル番
号のステージ番号を旧ステージ番号POSNとし、ステージ
内のプリアサイン順位をステージ内の旧プリアサイン順
位POSAとし、プリアサイン順位を旧プリアサイン順位PO
ASとする。[D5402] Continuous hit processing is performed. The contents of this processing will be described later in detail with reference to FIG. [D5403] The stage number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is the old stage number POSN, and the pre-assignment order within the stage is the old pre-assignment order POSA within the stage. Previous pre-assigned rank PO
AS.
【0181】〔D5404〕 旧ステージ番号POSNが
“5”でかつ旧プリアサイン順位POASが“15”である
か否かを判断する。この旧ステージ番号POSNが“5”で
ないまたは旧プリアサイン順位POASが“15”でない場
合には次のステップD5405に進み、“5”でかつ
“15”である場合には当該ルーチンを終了してステッ
プD58に進む。[D5404] It is determined whether the old stage number POSN is "5" and the old preassigned order POAS is "15". If the old stage number POSN is not "5" or the old pre-assigned order POAS is not "15", the process proceeds to the next Step D5405, and if it is "5" and "15", the routine is ended. Proceed to Step D58.
【0182】〔D5405〕、〔D5406〕 旧ステ
ージ番号POSNが“5”であるか否かを判断する。このス
テージ番号が“5”でない場合にはプリアサイナ割当て
可能楽音発生チャネル数PACNを“1”だけデクリメント
する。
〔D5407〕 まず、楽音発生チャネル管理マップに
おけるステージ番号が旧ステージ番号POSNでかつステー
ジ内のプリアサイン順位がステージ内の旧プリアサイン
順位POASに“1”を加算した値からステージ番号POSNの
ステージ内の最大プリアサイン順位PSAM POSN までのス
テップ内の各プリアサイン順位を“1”ずつデクリメン
トする。次に、ステージ番号POSNのステージ内の最大プ
リアサイン順位PSAM POSN を“1”だけデクリメントす
る。[D5405], [D5406] It is determined whether or not the old stage number POSN is "5". If the stage number is not "5", the number of pre-assigner allocatable musical tone generation channels PACN is decremented by "1". [D5407] First, the stage number in the tone generation channel management map is the old stage number POSN, and the preassignment order within the stage is the value obtained by adding "1" to the old preassignment order POAS within the stage. Decrement each pre-assigned rank within a step up to PSAM POSN by "1". Next, the maximum pre-assignment order PSAM POSN in the stage with the stage number POSN is decremented by "1".
【0183】〔D5408〕、〔D5409〕 楽音発
生チャネル管理マップにおける楽音発生チャネル番号GN
に対応する楽音発生チャネル番号の連打フラグが“1”
であるか否かを判断し、この連打フラグが“1”である
場合にはステージ番号POSNのステージ内の最大連打順位
PSRM POSN を“1”だけデクリメントする。
〔D5410〕 新プリアサイン順位PNASを“15”に
設定するとともに、ステージ番号PNSNのステージ内の最
大プリアサイン順位PSAMPNSN に“1”を加算した値を
ステージ内の新プリアサイン順位PNSAとする。[D5408], [D5409] Musical tone generation channel number GN in the musical tone generation channel management map
The continuous hit flag of the tone generation channel number corresponding to is "1"
If the continuous hit flag is "1", the maximum consecutive hit order within the stage with the stage number POSN is determined.
Decrement the PSRM POSN by "1". [D5410] The new preassigned rank PNASA is set to "15", and the value obtained by adding "1" to the maximum preassigned rank PSAMPNSN in the stage of the stage number PNSN is set as the new preassigned rank PNSA in the stage.
【0184】〔D5411〕 ステージ番号PNSNのステ
ージ内の最大プリアサイン順位PSAMPNSN を“1”だけ
インクリメントするとともに、楽音発生チャネル管理マ
ップにおけるプリアサイン順位が旧プリアサイン順位PO
ASに“1”を加算した値から新プリアサイン順位PNASま
での各プリアサイン順位を“1”ずつデクリメントす
る。[D5411] The maximum pre-assignment order PSAMPNSN in the stage of the stage number PNSN is incremented by "1", and the pre-assignment order in the tone generation channel management map is the old pre-assignment order PO.
Decrement each pre-assigned rank from the value obtained by adding "1" to AS to the new pre-assigned rank PNAS by "1".
【0185】〔D5412〕 楽音発生チャネル管理マ
ップにおける楽音発生チャネル番号GNに対応する楽音発
生チャネル番号のステージ番号を新ステージ番号PNSN
に、ステージ内プリアサイン順位をステージ内の新プリ
アサイン順位PNSAに、プリアサイン順位を新プリアサイ
ン順位PNASに、連打フラグを“0”に設定し、当該ルー
チンを終了してステップD58に進む。[D5412] The stage number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is changed to the new stage number PNSN.
Then, the pre-assignment rank in the stage is set to the new pre-assignment rank PNSA in the stage, the pre-assignment rank is set to the new pre-assignment rank PNAS, and the continuous hit flag is set to "0". Then, the routine is finished and the process proceeds to step D58.
【0186】連打処理ルーチン(図21)
〔D540201〕 まず、楽音発生チャネル管理マッ
プにおける楽音発生チャネル番号GNに対応する楽音発生
チャネル番号のノート番号をプリアサイナノート番号PN
TNとする。次に、連打処理対象番号PCTNを“0”に設定
する。 Continuous Strike Processing Routine (FIG. 21) [D540201] First, the note number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is set to the pre-assigner note number PN.
TN. Next, the continuous hit processing target number PCTN is set to "0".
【0187】〔D540202〕 連打処理対象番号PC
TNが楽音発生チャネル番号GNと同じであるか否かを判断
する。この連打処理対象番号PCTNが楽音発生チャネル番
号GNと同じでない場合には次のステップD540203
に進み、同じである場合にはステップD540206に
進む。
〔D540203〕 楽音発生チャネル管理マップにお
ける連打処理対象番号PCTNに対応する楽音発生チャネル
番号の連打フラグが“1”であるか否かを判断する。こ
の連打フラグが“1”でない場合には次のステップD5
40204に進み、“1”である場合にはステップD5
40206に進む。[D540202] Target PC for continuous hit processing
It is determined whether TN is the same as the tone generation channel number GN. If the continuous hit processing number PCTN is not the same as the tone generation channel number GN, the next step D540203
If it is the same, go to Step D540206. [D540203] It is determined whether or not the continuous hit flag of the musical sound generation channel number corresponding to the continuous hit processing target number PCTN in the musical sound generation channel management map is "1". If the continuous hit flag is not "1", the next step D5
40204, and if it is "1", step D5
Proceed to 40206.
【0188】〔D540204〕 楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のノート番号がプリアサイナノート番
号PNTNと同じであるか否かを判断する。この楽音発生チ
ャネル番号のノート番号がプリアサイナノート番号PNTN
と同じである場合には次のステップD540205に進
み、同じでない場合にはステップD540206に進
む。[D540204] It is determined whether or not the note number of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is the same as the pre-assigner note number PNTN. The note number of this tone generation channel number is the pre-assigner note number PNTN.
If it is not the same, the process proceeds to the next step D540205, and if it is not the same, the process proceeds to step D540206.
【0189】〔D540205〕 楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のステージ番号が“0”であるか否か
を判断する。このステージ番号が“0”である場合には
次のステップD540206に進み、“0”でない場合
にはステップD540208に進む。
〔D540206〕、〔D540207〕 連打処理対
象番号PCTNが“15”未満であるか否かを判断する。こ
の連打処理対象番号PCTNが“15”未満である場合には
連打処理対象番号PCTNを“1”だけインクリメントして
ステップD540202に戻り、“15”未満でない場
合には当該ルーチンを終了してステップD5403に進
む。[D540205] It is determined whether or not the stage number of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is “0”. If the stage number is "0", the flow proceeds to the next step D540206, and if it is not "0", the flow proceeds to step D540208. [D540206], [D540207] It is determined whether or not the continuous hit processing target number PCTN is less than “15”. If the consecutive hit processing target number PCTN is less than "15", the consecutive hit processing target number PCTN is incremented by "1" and the process returns to step D540202. If it is not less than "15", the routine is finished and step D5403. Proceed to.
【0190】〔D540208〕 楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号の連打フラグを“1”に設定する。
〔D540209〕 楽音発生チャネル管理マップにお
ける連打処理対象番号PCTNに対応する楽音発生チャネル
番号のステージ番号が“5”であるか否かを判断する。
この判断対象のステージ番号が“5”でない場合には次
のステップD540210に進み、“5”である場合に
はステップD540206に進む。[D540208] The continuous hit flag of the musical sound generation channel number corresponding to the continuous hit processing target number PCTN in the musical sound generation channel management map is set to "1". [D540209] It is determined whether or not the stage number of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is “5”.
If the stage number to be judged is not "5", the procedure goes to the next step D540210, and if it is "5", the procedure goes to step D540206.
【0191】〔D540210〕 楽音発生チャネル管
理マップのプリアサイン順位などを、次のようにして更
新する。 楽音発生チャネル管理マップにおける連打
処理対象番号PCTNに対応する楽音発生チャネル番号のス
テージ番号を旧ステージ番号POSNおよび新ステージ番号
PNSNとし、ステージ内のプリアサイン順位をステージ内
の旧プリアサイン順位POSAとし、プリアサイン順位を旧
プリアサイン順位POASとする。[D540210] The pre-assignment order of the tone generation channel management map is updated as follows. The stage number of the tone generation channel number corresponding to the consecutive hit processing number PCTN in the tone generation channel management map is the old stage number POSN and the new stage number.
Let PNSN be the pre-assignment rank in the stage be the old pre-assignment rank POSA in the stage, and the pre-assignment rank be the old pre-assignment rank POAS.
【0192】 ステージ番号PNSNのステージ内の最大
連打順位PSRM PNSN が“0”を超えているか否かを判断
する。このステージ内の最大連打順位PSRM PNSN が
“0”を超えている場合にはに進み、“0”を超えて
いない場合にはに進む。 まず、ステージ番号PNSN
のステージ内の最大連打順位PSRM PNSN をステージ内の
新プリアサイン順位PNSAとする。次に、楽音発生チャネ
ル管理マップにおけるステージ番号が新ステージ番号PN
SNでかつステージ内のプリアサイン順位がステージ内の
新プリアサイン順位PNSAである楽音発生チャネル番号の
プリアサイン順位に“1”を加算した値を新プリアサイ
ン順位PNASとする。さらに、ステージ内の新プリアサイ
ン順位PNSAに“1”を加算した値をステージ内の新プリ
アサイン順位PNSAとする。そして、に進む。It is determined whether or not the maximum consecutive hitting order PSRM PNSN in the stage with the stage number PNSN exceeds “0”. Proceed to if the maximum consecutive batting order PSRM PNSN in this stage exceeds "0", and proceed to if it does not exceed "0". First, the stage number PNSN
The maximum consecutive batting order PSRM PNSN in the stage will be the new pre-assigned order PNSA in the stage. Next, the stage number in the tone generation channel management map is the new stage number PN.
A value obtained by adding "1" to the pre-assigned rank of the tone generation channel number that is SN and the pre-assigned rank within the stage is the new pre-assigned rank PNSA within the stage is defined as the new pre-assigned rank PNAS. Further, the value obtained by adding “1” to the new pre-assignment rank PNSA in the stage is set as the new pre-assignment rank PNSA in the stage. Then proceed to.
【0193】まず、ステージ内の新プリアサイン順位
PNSAを“1”に設定する。次に、楽音発生チャネル管理
マップにおけるステージ番号が新ステージ番号PNSNでか
つステージ内のプリアサイン順位がステージ内の新プリ
アサイン順位PASAのプリアサイン順位を新プリアサイン
順位PNASとする。そして、に進む。楽音発生チャネ
ル管理マップにおけるステージ番号が新ステージ番号PN
SNでかつステージ内のプリアサイン順位がステージ内の
新プリアサイン順位PNSAからステージ内の旧プリアサイ
ン順位POSAより“1”を減算した値までのステージ内の
各プリアサイン順位を“1”ずつインクリメントする。First, the new pre-assignment ranking within the stage
Set PNSA to "1". Next, the stage number in the tone generation channel management map is the new stage number PNSN, and the pre-assignment order within the stage is the new pre-assign order PASA within the stage as the new pre-assign order PNAS. Then proceed to. The stage number in the tone generation channel management map is the new stage number PN
SN and the pre-assignment rank in the stage is incremented by "1" for each pre-assignment rank in the stage up to the value obtained by subtracting "1" from the old pre-assignment rank POSA in the stage from the new pre-assignment rank in the stage PNSA To do.
【0194】楽音発生チャネル管理マップにおけるプ
リアサイン順位が新プリアサイン順位PNASから旧プリア
サイン順位POASより“1”を減算した値までの各プリア
サイン順位を“1”ずつインクリメントする。楽音発
生チャネル管理マップにおける連打処理対象番号PCTNの
ステージ内のプリアサイン順位をステージ内の新プリア
サイン順位PNSAに、プリアサイン順位を新プリアサイン
順位PNASに設定する。Each pre-assignment rank in the tone generation channel management map is incremented by "1" from the new pre-assignment rank PNAS to the value obtained by subtracting "1" from the old pre-assignment rank POAS. The pre-assignment order within the stage of the continuous hit processing number PCTN in the tone generation channel management map is set to the new pre-assignment order PNSA in the stage, and the pre-assignment order is set to the new pre-assignment order PNAS.
【0195】ステージ番号PNSNのステージ内の最大連
打順位PSRM PNSN を“1”だけインクリメントしてステ
ップD540206に進む。更新処理12ルーチン(図22)
アタックを終了した楽音発生チャネルのプリアサイン順
位を更新するルーチンである。The maximum consecutive hitting order PSRM PNSN in the stage of the stage number PNSN is incremented by "1" and the process proceeds to step D540206. Update processing 12 routine (FIG. 22) This routine updates the pre-assignment rank of the tone generation channel for which the attack has been completed.
【0196】〔D5501〕 まず、新ステージ番号PN
SNおよび下位ステージ番号PDSNを“4”に設定する。次
に、プリアサイン処理FIFOからデータを降ろして楽
音発生チャネル番号GNとする。
〔D5502〕 更新処理11ルーチンのステップD5
403と同様の処理を行う。[D5501] First, the new stage number PN
Set SN and lower stage number PDSN to "4". Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN. [D5502] Step D5 of update processing 11 routine
The same processing as 403 is performed.
【0197】〔D5503〕 旧ステージ番号POSNが新
ステージ番号PNSNを超えているか否かを判断する。この
旧ステージ番号POSNが新ステージ番号PNSNを超えている
場合には次のステップD5504に進み、超えていない
場合には当該ルーチンを終了してステップD58に進
む。
〔D5504〕 プリアサイナ割当て可能楽音発生チャ
ネル数PACNを“1”だけインクリメントする。[D5503] It is determined whether the old stage number POSN exceeds the new stage number PNSN. If this old stage number POSN exceeds the new stage number PNSN, the routine proceeds to the next Step D5504, and if it does not exceed this routine, the routine is ended and the routine proceeds to Step D58. [D5504] The number of tone generation channels PACN that can be assigned to the pre-signer is incremented by "1".
【0198】〔D5505〕 更新処理11ルーチンの
ステップD5407と同様の処理を行う。
〔D5506〕 更新処理11ルーチンのステップD5
408と同様の判断処理を行う。この判断対象の連打フ
ラグが“1”でない場合には次のステップD5507に
進み、“1”である場合にはステップD5514に進
む。[D5505] The same process as step D5407 of the update process 11 routine is performed. [D5506] Step D5 of update processing 11 routine
The same determination processing as 408 is performed. If the continuous hit flag to be judged is not "1", the procedure goes to the next step D5507, and if it is "1", the procedure goes to step D5514.
【0199】〔D5507〕 ステージ番号PDSNのステ
ージ内の最大プリアサイン順位PSAMPDSN が“0”を超
えているか否かを判断する。このステージ内の最大プリ
アサイン順位PSAM PDSN が“0”を超えている場合には
次のステップD5508に進み、“0”を超えていない
場合にはステップD5511に進む。
〔D5508〕 まず、ステージ番号PDSNのステージ内
の最大プリアサイン順位PSAM PDSN をステージ内の新プ
リアサイン順位PNSAとする。次に、楽音発生チャネル管
理マップにおけるステージ番号が下位ステージ番号PDSN
でかつステージ内のプリアサイン順位がステージ内の新
プリアサイン順位PNSAである楽音発生チャネル番号のプ
リアサイン順位に“1”を加算した値を新プリアサイン
順位PNASとする。さらに、ステージ番号PNSNのステージ
内の最大プリアサイン順位PSAM PNSN に“1”を加算し
た値をステージ内のプリアサイン順位PNSAとする。[D5507] It is determined whether the maximum preassigned order PSAMPDSN in the stage of the stage number PDSN exceeds “0”. If the maximum pre-assigned rank PSAM PDSN in this stage exceeds "0", the flow advances to step D5508, and if it does not exceed "0", the flow advances to step D5511. [D5508] First, the maximum pre-assignment order PSAM PDSN in the stage with the stage number PDSN is set as the new pre-assignment order PNSA in the stage. Next, the stage number in the tone generation channel management map is the lower stage number PDSN.
A value obtained by adding "1" to the pre-assignment order of the tone generation channel number whose pre-assignment order in the stage is the new pre-assignment order PNSA in the stage is defined as the new pre-assignment order PNAS. Further, the value obtained by adding "1" to the maximum pre-assignment order PSAM PNSN in the stage of the stage number PNSN is set as the pre-assignment order PNSA in the stage.
【0200】〔D5509〕 ステージ番号PNSNのステ
ージ内の最大プリアサイン順位PSAMPNSN を“1”だけ
インクリメントするとともに、楽音発生チャネル管理マ
ップにおけるプリアサイン順位が新プリアサイン順位PN
ASから旧プリアサイン順位POASより“1”を減算した値
までの各プリアサイン順位を“1”ずつインクリメント
する。[D5509] The maximum pre-assignment order PSAMPNSN in the stage of the stage number PNSN is incremented by "1", and the pre-assignment order in the tone generation channel management map is the new pre-assignment order PN.
Increment each pre-assigned rank from "AS" to the value obtained by subtracting "1" from the old pre-assigned rank POAS by "1".
【0201】〔D5510〕 更新処理11ルーチンの
ステップD5412と同様の処理を行う。但し、連打フ
ラグの変更は行わない。
〔D5511〕 下位ステージ番号PDSNが“0”を超え
ているか否かを判断する。この下位ステージ番号PDSNが
“0”を超えている場合にはステップD5513に進
み、“0”を超えていない場合には次のステップD55
12に進む。[D5510] The same process as step D5412 of the update process 11 routine is performed. However, the continuous hit flag is not changed. [D5511] It is determined whether or not the lower stage number PDSN exceeds “0”. If the lower stage number PDSN exceeds "0", the process proceeds to step D5513, and if it does not exceed "0", the next step D55.
Proceed to 12.
【0202】〔D5512〕 新プリアサイン順位PNAS
を“0”に、ステージ内の新プリアサイン順位PNSAを
“1”に設定する。
〔D5513〕 下位ステージ番号PDSNから“1”減算
した値を下位ステージ番号PDSNとしてステップD550
7に戻る。
〔D5514〕 ステージ番号PNSNのステージ内の最大
連打順位PSRM PNSN が“0”を超えているか否かを判断
する。このステージ内の最大連打順位PSRM PNSN が
“0”を超えている場合には次のステップD5515に
進み、“0”を超えていない場合にはステップD550
7に進む。[D5512] New preassigned rank PNAS
Is set to “0”, and the new pre-assigned rank PNSA in the stage is set to “1”. [D5513] The value obtained by subtracting “1” from the lower stage number PDSN is set as the lower stage number PDSN, and the step D550 is performed.
Return to 7. [D5514] It is determined whether or not the maximum consecutive batting order PSRM PNSN in the stage with the stage number PNSN exceeds "0". If the maximum consecutive batting order PSRM PNSN in this stage exceeds "0", the flow proceeds to the next Step D5515, and if it does not exceed "0", Step D550.
Proceed to 7.
【0203】〔D5515〕 まず、ステージ番号PNSN
のステージ内の最大連打順位PSRM PNSN をステージ内の
新プリアサイン順位PNSAとする。次に、楽音発生チャネ
ル管理マップにおけるステージ番号が新ステージ番号PN
SAでかつステージ内のプリアサイン順位がステージ内の
新プリアサイン順位PNSAである楽音発生チャネル番号の
プリアサイン順位に“1”を加算した値を新プリアサイ
ン順位PNASとする。さらに、ステージ番号PNSNのステー
ジ最大連打順位PSRM PNSN およびステージ内の新プリア
サイン順位PNSAを“1”ずつインクリメントする。ステ
ップD5509に進む。[D5515] First, the stage number PNSN.
The maximum consecutive batting order PSRM PNSN in the stage will be the new pre-assigned order PNSA in the stage. Next, the stage number in the tone generation channel management map is the new stage number PN.
The value that is "1" is added to the pre-assigned rank of the tone generation channel number that is SA and the pre-assigned rank in the stage is the new pre-assigned rank PNSA in the stage, and is defined as the new pre-assigned rank PNAS. Furthermore, the stage maximum consecutive hitting order PSRM PNSN of the stage number PNSN and the new pre-assignment order PNSA in the stage are incremented by "1". Proceeds to Step D5509.
【0204】更新処理13ルーチン
更新処理12ルーチンに準じた処理により離鍵した楽音
発生チャネルのプリアサイン順位を更新するルーチンで
ある。次に、更新処理12ルーチンとの相違点を説明す
る。
〔D5601〕 まず、新ステータス番号PNSNを“3”
に設定する。次に、プリアサイン処理FIFOからデー
タを降ろして楽音発生チャネル番号GNとする。 Update Processing 13 Routine This routine updates the pre-assignment order of the tone generation channel released by the processing according to the update processing 12 routine. Next, differences from the update processing 12 routine will be described. [D5601] First, set the new status number PNSN to "3".
Set to. Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN.
【0205】〔D5604〕 旧ステージ番号POSNが
“5”であるか否かを判断し、この旧ステージ番号POSN
が“5”である場合にのみプリアサイン割当て可能楽音
発生チャネル数PACNを“1”だけインクリメントする。
ステップD5606の処理に先立ちステップD5606
P〜D5606Uの処理を行う。[D5604] It is determined whether or not the old stage number POSN is "5", and this old stage number POSN
Only when the value is "5", the number PACN of musical tone generation channels that can be preassigned is incremented by "1".
Prior to the processing of step D5606, step D5606
The processing of P to D5606U is performed.
【0206】〔D5606P〕 楽音発生チャネル管理
マップにおける楽音発生チャネル番号GNに対応する楽音
発生チャネル番号のノート番号をプリアサイナノート番
号PNTNとする。
〔D5606Q〕 ノートマップにおけるプリアサイナ
ノート番号PNTNに対応するノート番号のソステヌートス
テータスが“0”であるか否かを判断する。このステー
タスステータスが“0”である場合には次のステップD
5606Rに進み、“0”でない場合にはステップD5
606Uに進む。[D5606P] The note number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is set as the pre-assigner note number PNTN. [D5606Q] It is determined whether the sostenuto status of the note number corresponding to the pre-assigner note number PNTN in the note map is "0". If this status is "0", the next step D
Proceed to 5606R, and if not "0", step D5
Proceed to 606U.
【0207】〔D5606R〕 ダンパーフラグDMPFが
“0”であるか否かを判断する。このダンパーフラグDM
PFが“0”である場合には次のステップD5606Sに
進み、“0”でない場合にはステップD5606Tに進
む。
〔D5606S〕 新ステージ番号PNSNおよび下位ステ
ージ番号PDSNを“1”に設定してステップD5606に
進む。[D5606R] It is determined whether the damper flag DMPF is "0". This damper flag DM
When PF is "0", the flow proceeds to the next step D5606S, and when it is not "0", the flow proceeds to step D5606T. [D5606S] The new stage number PNSN and the lower stage number PDSN are set to "1", and the flow advances to step D5606.
【0208】〔D5606T〕 新ステージ番号PNSNお
よび下位ステージ番号PDSNを“2”に設定してステップ
D5606に進む。
〔D5606U〕 新ステージ番号PNSNおよび下位ステ
ージ番号PDSNを“3”に設定してステップD5606に
進む。
次の処理をステップD5614の処理に先立ち行う。[D5606T] The new stage number PNSN and the lower stage number PDSN are set to "2", and the flow advances to step D5606. [D5606U] The new stage number PNSN and the lower stage number PDSN are set to "3", and the flow advances to step D5606. The following process is performed prior to the process of step D5614.
【0209】〔D5614P〕 旧ステージ番号POSNが
“5”であるか否かを判断し、この旧ステージ番号POSN
が“5”でない場合にはステージ番号POSNのステージ内
の最大連打順位PSRM POSN を“1”だけデクリメントす
る。更新処理14ルーチン
更新処理12ルーチンに準じた処理により発音終了した
楽音発生チャネルのプリアサイン順位を更新する。次
に、更新処理12ルーチンとの相違点を説明する。[D5614P] It is determined whether or not the old stage number POSN is "5", and this old stage number POSN
If is not "5", the maximum consecutive batting order PSRM POSN in the stage with the stage number POSN is decremented by "1". Update Process 14 Routine By the process according to the update process 12 routine, the pre-assignment rank of the tone generation channel whose sound generation is completed is updated. Next, differences from the update processing 12 routine will be described.
【0210】〔D5701〕 まず、新ステージ番号PN
SNおよび下位ステージ番号PDSNを“0”に設定する。次
に、プリアサイン処理FIFOからデータを降ろして楽
音発生チャネル番号GNとする。
〔D5704〕 旧ステージ番号POSNが“5”であるか
否かを判断し、この旧ステージ番号POSNが“5”である
場合にのみプリアサイン割当て可能楽音発生チャネル数
PACNを“1”だけインクリメントする。[D5701] First, the new stage number PN
Set SN and lower stage number PDSN to "0". Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN. [D5704] It is determined whether or not the old stage number POSN is "5", and only when this old stage number POSN is "5", the number of musical tone generation channels that can be preassigned can be assigned.
Increment PACN by "1".
【0211】ステップD5714、D5715の処理を
削除し、次の処理を代わりに行う。〔D5714〕 旧
ステージ番号POSNが“5”であるか否かを判断し、この
旧ステージ番号POSNが“5”でない場合にはステージ番
号POSNのステージ内の最大連打順位PSRM POSN を“1”
だけデクリメントする。ステップD5710においては
更新処理11ルーチンのステップD5412と同様の処
理を行う。The processing of steps D5714 and D5715 is deleted and the following processing is performed instead. [D5714] It is determined whether or not the old stage number POSN is "5", and if the old stage number POSN is not "5", the maximum consecutive hitting order PSRM POSN in the stage of the stage number POSN is "1".
Only decrement. In step D5710, the same processing as step D5412 of the update processing 11 routine is performed.
【0212】更新処理2ルーチン
ソステヌートペダルの操作により離鍵済みでかつソステ
ヌートオンとなった楽音発生チャネルのプリアサイン順
位を更新するルーチンである。
〔D71〕 まず、タスク管理マップにおけるタスク番
号“4 :プリアサイナタスク”の第2イベント発生フラ
グを“0”に設定する。次に、旧ステージ番号POSNおよ
びステージ内の旧プリアサイン順位POSAを“1”に、新
ステージ番号PNSNおよび下位ステージ番号PDSNを“3”
に設定する。 Update Process 2 Routine This routine is for updating the pre-assignment order of the tone generation channels which have been released by the operation of the sostenuto pedal and which have been turned on sostenuto. [D71] First, the second event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old stage number POSN and the old pre-assignment order POSA within the stage are set to "1", the new stage number PNSN and the lower stage number PDSN are set to "3".
Set to.
【0213】〔D72〕 ステージ内の旧プリアサイン
順位POSAがステージ番号POSNのステージ内の最大プリア
サイン順位PSAM POSN を超えているか否かを判断し、超
えていない場合には次のステップD73に進み、超えて
いる場合には当該ルーチンを終了してステップD8に進
む。
〔D73〕 楽音発生チャネル管理マップにおけるステ
ージ番号が旧ステージ番号POSNでかつステージ内のプリ
アサイン順位がステージ内の旧プリアサイン順位POSAで
ある楽音発生チャネル番号を楽音発生チャネル番号GNと
し、ノート番号をプリアサイナノート番号PNTNとする。[D72] It is determined whether or not the old pre-assigned rank POSA in the stage exceeds the maximum pre-assigned rank PSAM POSN in the stage of the stage number POSN. If not, the process proceeds to the next step D73. If so, the routine is terminated and the process proceeds to step D8. [D73] The tone generation channel number GN is the tone generation channel number GN whose stage number in the tone generation channel management map is the old stage number POSN and whose preassignment order within the stage is the old preassignment order POSA within the stage. Pre-signer note number PNTN.
【0214】〔D74〕 ノートマップにおけるプリア
サイナノート番号PNTNに対応するノート番号のソステヌ
ートステータスが“1”であるか否かを判断する。この
ソステヌートステータスが“1”である場合には次のス
テップD75に進み、“1”でない場合にはステージ内
の旧プリアサイン順位POSAを“1”だけインクリメント
してステップD72に戻る。[D74] It is determined whether or not the sostenuto status of the note number corresponding to the pre-assigner note number PNTN in the note map is "1". If the sostenuto status is "1", the process proceeds to the next step D75. If it is not "1", the old pre-assignment order POSA in the stage is incremented by "1" and the process returns to step D72.
【0215】〔D75〕 楽音発生チャネル管理マップ
における楽音発生チャネル番号GNに対応する楽音発生チ
ャネル番号のプリアサイン順位を旧プリアサイン順位PO
ASとする。
〔D76〕 更新処理13ルーチンのステップD560
5〜D5615に準じた処理を行う。但し、ステップD
5606P〜D5606Uの処理は行わない。また、ス
テップD5609においては更新処理11ルーチンのス
テップD5411と同様の処理を行う。この処理を終了
するとステップD72に戻る。[D75] The pre-assignment order of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is changed to the old pre-assignment order PO.
AS. [D76] Step D560 of the update processing 13 routine
5 to D5615 is performed. However, step D
The processing of 5606P to D5606U is not performed. In step D5609, the same processing as step D5411 of the update processing 11 routine is performed. When this process ends, the process returns to step D72.
【0216】更新処理3ルーチン
ソステヌートペダルの操作により離鍵済みでかつホール
ドオフとなった楽音発生チャネルのプリアサイン順位を
更新するルーチンである。
〔D91〕 まず、タスク管理マップにおけるタスク番
号“4:プリアサイナタスク”の第3イベント発生フラ
グを“0”に設定する。次に、旧ステータス番号POSNを
“3”に、ステータス内の旧プリアサイン順位POSAを
“1”に設定する。 Update Processing 3 Routine This routine updates the pre-assignment order of the tone generation channels that have been released and held off by operating the sostenuto pedal. [D91] First, the third event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old status number POSN is set to "3" and the old pre-assignment order POSA in the status is set to "1".
【0217】〔D92〕 ダンパーフラグDMPFが“1”
であるか否かを判断する。このダンパーフラグDMPFが
“1”である場合には次のステップD93に進み、
“1”でない場合にはステップD94に進む。
〔D93〕 新ステージ番号PNSNおよび下位ステージ番
号PDSNを“2”に設定してステップD95に進む。[D92] The damper flag DMPF is "1".
Or not. If the damper flag DMPF is "1", the process proceeds to the next step D93,
If it is not "1", the process proceeds to step D94. [D93] The new stage number PNSN and the lower stage number PDSN are set to "2" and the process proceeds to step D95.
【0218】〔D94〕 新ステージ番号PNSNおよび下
位ステータス番号PDSNを“1”に設定してステップD9
5に進む。
〔D95〕 ステージ番号POSNのステージ内の最大プリ
アサイン順位PSAM POSN が“0”を超えているか否かを
判断する。このステージ内の最大プリアサイン順位PSAM
POSN が“0”を超えている場合には次のステップD9
6に進み、“0”を超えていない場合には当該ルーチン
を終了してステップD10に進む。[D94] The new stage number PNSN and the lower status number PDSN are set to "1" and step D9 is executed.
Go to 5. [D95] It is determined whether or not the maximum preassigned order PSAM POSN in the stage with the stage number POSN exceeds "0". Maximum pre-assigned rank PSAM within this stage
If POSN exceeds "0", the next step D9
6, the routine is terminated when "0" is not exceeded, and the process proceeds to step D10.
【0219】〔D96〕 楽音発生チャネル管理マップ
におけるステージ番号が旧ステージ番号POSNでかつステ
ージ内のプリアサイン順位が“1”である楽音発生チャ
ネル番号のプリアサイン順位を旧プリアサイン順位POAS
とする。
〔D97〕 更新処理13ルーチンのステップD560
5〜D5615に準じた処理を行う。但し、ステップD
5606P〜5606Uの処理は行わない。この処理を
終了するとステップD95に戻る。[D96] The preassignment order of the tone generation channel numbers whose stage number in the tone generation channel management map is the old stage number POSN and the preassignment order in the stage is "1" is the old preassignment order POAS.
And [D97] Step D560 of update routine 13 routine
5 to D5615 is performed. However, step D
The processing of 5606P to 5606U is not performed. When this process ends, the process returns to step D95.
【0220】更新処理4ルーチン
ダンパーペダルの操作により離鍵済でかつダンパーオン
となった楽音発生チャネルのプリアサイン順位を更新す
るルーチンである。〔D111〕 まず、タスク管理マ
ップにおけるタスク番号“4:プリアサイ
ナタスク”の第4イベント発生フラグを“0”に設定す
る。次に、旧ステージ番号POSNおよびステージ内の旧プ
リアサイン順位POSAを“1”に、新ステージ番号PNSNお
よび下位ステージ番号PDSNを“2”に設定する。 Update Process 4 Routine This routine updates the pre-assignment order of the tone generation channels whose keys have been released and the dampers are turned on by operating the damper pedal. [D111] First, the fourth event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old stage number POSN and the old pre-assignment order POSA in the stage are set to "1", and the new stage number PNSN and the lower stage number PDSN are set to "2".
【0221】〔D112〕 更新処理2ルーチンのステ
ップD72と同様の判断処理を行う。なお、ステージ内
の旧プリアサイン順位POSAがステージ番号POSNのステー
ジ内の最大プリアサイン順位PSAM POSN を超えていない
場合には次のステップD113に進み、超えている場合
には当該ルーチンを終了してステップD12に進む。
〔D113〕 更新処理2ルーチンのステップD73と
同様の処理を行う。[D112] The same determination process as in step D72 of the update process 2 routine is performed. If the old pre-assigned rank POSA in the stage does not exceed the maximum pre-assigned rank PSAM POSN in the stage with the stage number POSN, the process proceeds to the next step D113, and if it exceeds, the routine is terminated. Go to step D12. [D113] The same process as step D73 of the update process 2 routine is performed.
【0222】〔D114〕 更新処理2ルーチンのステ
ップD72と同様の判断処理を行う。なお、ソステヌー
トステータスが“0”である場合には次のステップD1
15に進み、“0”でない場合にはステージ内の旧プリ
アサイン順位POSAを“1”だけインクリメントしてステ
ップD112に戻る。
〔D115〕 更新処理2ルーチンのステップD75と
同様の処理を行う。[D114] The determination process similar to step D72 of the update process 2 routine is performed. If the sostenuto status is "0", the next step D1
If it is not "0", the old pre-assignment order POSA in the stage is incremented by "1" and the process returns to step D112. [D115] The same process as step D75 of the update process 2 routine is performed.
【0223】〔D116〕 更新処理2ルーチンのステ
ップD76と同様の処理を行う。この処理を終了すると
ステップD112に戻る。更新処理5ルーチン
ダンパーペダルの操作により離鍵済みでかつホールドオ
フとなった楽音発生チャネルのプリアサイン順位を更新
するルーチンである。[D116] The same process as step D76 of the update process 2 routine is performed. When this process ends, the process returns to step D112. Update Processing 5 Routine This routine updates the pre-assignment order of the tone generation channels that have been released and held off by operating the damper pedal.
【0224】〔D131〕 まず、タスク管理マップに
おけるタスク番号“4:プリアサイナタスク”の第5イ
ベント発生フラグを“0”に設定する。次に、旧ステー
ジ番号POSNを“2”に、ステージ内の旧プリアサイン順
位POSA、新ステージ番号PNSNおよび下位ステージ番号PD
SNを“1”に設定する。
〔D132〕 更新処理3ルーチンのステップD95と
同様の判断処理を行う。ステージ番号POSNのステージ内
の最大プリアサイン順位PSAM POSN が“0”を超えてい
る場合には次のステップD133に進み、“0”を超え
ていない場合には当該ルーチンを終了してステップD1
4に進む。[D131] First, the fifth event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old stage number POSN is set to "2", the old pre-assigned order POSA in the stage, the new stage number PNSN and the lower stage number PD.
Set SN to "1". [D132] The same determination process as in step D95 of the update process 3 routine is performed. If the maximum preassigned order PSAM POSN in the stage with the stage number POSN exceeds "0", the process proceeds to the next step D133, and if it does not exceed "0", the routine is terminated and step D1.
Go to 4.
【0225】〔D133〕 更新処理3ルーチンのステ
ップD96と同様の処理を行う。
〔D134〕 更新処理3ルーチンのステップD97と
同様の処理を行う。この処理を終了するとステップD1
32に戻る。
〇 エンベロープタスクの処理の一部を、次のように変
更する。
ステップE1に、次の処理を追加する。[D133] The same processing as step D96 of the update processing 3 routine is performed. [D134] The same process as step D97 of the update process 3 routine is performed. When this process ends, step D1
Return to 32. * Part of the processing of the envelope task is changed as follows. The following process is added to step E1.
【0226】〔E1〕 プリアサイン処理要求フラグER
QFを“0”に設定する。ステップE5p を追加し、ステ
ップE4を終了するとステップE5p に進む。
〔E5p〕 楽音発生チャネル管理マップにおけるエン
ベロープ処理対象番号ECTNに対応する楽音発生チャネル
番号のステージ番号が“0”であるか否かを判断する。
このステージ番号が“0”である場合にはステップE1
4に進み、“0”でない場合にはステップE5に進む。[E1] Pre-sign processing request flag ER
Set QF to "0". When step E5p is added and step E4 is completed, the process proceeds to step E5p. [E5p] It is determined whether or not the stage number of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "0".
If this stage number is "0", step E1
4. If it is not "0", go to step E5.
【0227】次のようにステップE5を変更するととも
に、ステップE5aを追加する。
〔E5〕 楽音発生チャネル管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応する楽音発生チャネル番
号のノートステータスが“0”でかつエンベロープ管理
マップにおけるエンベロープ処理対象番号ECTNに対応す
るエンベロープチャネル番号の目標値およびエンベロー
プレベルが“0”であるか否かを判断する。いずれもが
“0”である場合にはステップE5aに進み、いずれか
が“0”でない場合にはステップE6に進む。The step E5 is changed and the step E5a is added as follows. [E5] The target value and the envelope of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map when the note status of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is “0” It is determined whether or not the level is "0". If both are "0", the process proceeds to step E5a, and if neither is "0", the process proceeds to step E6.
【0228】〔E5a〕 プリアサイン処理要求フラグ
ERZFを“1”に設定するととともに、プリアサイン処理
FIFOに発音終了処理を示す“4”およびエンベロー
プ処理対象番号ECTNを順次に積み込んでステップE14
に進む。次のようにステップE8、E9を変更する。
〔E8〕 楽音発生チャネル管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応する楽音発生チャネル番
号のノートステータスが“1”であるか否かを判断す
る。このノートステータスが“1”でない場合には次の
ステップE9に進み、“1”である場合にはステップE
11に進む。[E5a] Pre-sign processing request flag
ERZF is set to "1" and "4" indicating the tone generation end processing and the envelope processing target number ECTN are sequentially loaded in the pre-assign processing FIFO, and step E14 is executed.
Proceed to. Steps E8 and E9 are changed as follows. [E8] It is determined whether or not the note status of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "1". If the note status is not "1", the process proceeds to the next step E9, and if it is "1", the step E is performed.
Proceed to 11.
【0229】〔E9〕 ダンパーフラグDMPFまたはノー
トマップにおけるエンベロープ処理対象ノート番号ENNM
に対応するノート番号のソステヌートステータスが
“1”であるか否かを判断する。いずれかが“1”であ
る場合にはステップE11aに進み、いずれもが“1”
でない場合にはステップE10に進む。次のようにステ
ップE10、E11の処理の一部およびステップE13
を変更するとともに、ステップE11a、E12pを追
加する。[E9] Envelope processing target note number ENNM in damper flag DMPF or note map
It is determined whether the sostenuto status of the note number corresponding to is "1". If either is "1", the process proceeds to step E11a, and both are "1".
If not, the process proceeds to step E10. Part of the processing of steps E10 and E11 and step E13 as follows:
Is changed and steps E11a and E12p are added.
【0230】ステップE10における目標値、レートな
どの更新に際してダンパー値DMPVにはもとづかなく、ま
た処理を終了するとステップE12pに進む。ステップ
E11における目標値、レートなどの更新に際してダン
パー値にはもとづかなく、また処理を終了するとステッ
プE12pに進む。
〔E11a〕 エンベロープ管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応するエンベロープチャネ
ル番号のレートを“0”に更新するとともに、目標値お
よびレートを楽音発生回路30に転送する。また、処理
を終了するとステップE12pに進む。When updating the target value, rate, etc. in step E10, the damper value DMPV is not based, and when the process is completed, the process proceeds to step E12p. When updating the target value, rate, etc. in step E11, it is not based on the damper value, and when the process is completed, the process proceeds to step E12p. [E11a] The rate of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map is updated to "0", and the target value and rate are transferred to the tone generation circuit 30. When the processing is completed, the process proceeds to step E12p.
【0231】〔E12p〕 楽音発生チャネル管理マッ
プにおけるエンベロープ処理対象番号ECTNに対応する楽
音発生チャネル番号のトランケート禁止フラグが“0”
であるか否かを判断する。このトランケート禁止フラグ
が“0”である場合にはステップE14に進み、“0”
でない場合にはステップE12に進む。
〔E13〕 楽音発生チャネル管理マップにおけるエン
ベロープ処理対象番号ECTNに対応する楽音発生チャネル
番号のトランケート禁止フラグを“0”に設定し、プリ
アサイン処理要求フラグERQFを“1”に設定するととも
に、プリアサイン処理FIFOにアタック終了処理を示
す“2”およびエンベロープ処理対象番号ECTNを順次に
積み込む。[E12p] The truncation prohibition flag of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "0".
Or not. If the truncation prohibition flag is "0", the process proceeds to step E14, where "0" is set.
If not, the process proceeds to step E12. [E13] Set the truncation prohibition flag of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map to "0", set the preassign processing request flag ERQF to "1", and perform preassignment. "2" indicating the attack end processing and the envelope processing target number ECTN are sequentially loaded in the processing FIFO.
【0232】ステップE17、E18を追加し、ステッ
プE15においてエンベロープ処理対象番号ECTNが“1
5”でない場合にはステップE17に進む。
〔E17〕 プリアサイン処理要求フラグERQFが“1”
であるか否かを判断する。このプリアサイン処理要求フ
ラグERQFが“1”である場合にはステップE18に進
み、“1”でない場合にはステップE2に戻る。Steps E17 and E18 are added, and the envelope processing target number ECTN is "1" at step E15.
If it is not 5 ", the process proceeds to step E17. [E17] The pre-assign process request flag ERQF is" 1 ".
Or not. If the pre-assignment processing request flag ERQF is "1", the process proceeds to step E18, and if it is not "1", the process returns to step E2.
【0233】〔E18〕 プリアサイン要求イベントを
発生する。言い換えれば、要求先タスク番号NDTKを
“4:プリアサイナタスク”に、要求先イベント値NDET
を“1”に設定してイベント発生モニタコールを行う。
また、プリアサイン処理要求フラグERQFを“0”に設定
してステップE2に戻る。
〇 次のようにペダルタスクのステップF4の処理の一
部を変更する。[E18] A pre-sign request event is generated. In other words, the request destination task number NDTK is set to “4: pre-assigner task” and the request destination event value NDET.
Is set to "1" and an event occurrence monitor call is made.
Further, the pre-assign processing request flag ERQF is set to "0" and the process returns to step E2. * Part of the processing of step F4 of the pedal task is changed as follows.
【0234】ダンパーペダルが踏下げられるとダンパー
フラグDMPFを“1”に設定し、戻されるとダンパーフラ
グDMPFを“0”に設定する。ソステヌートステータスの
更新およびまたはダンパーフラグの設定が終了するとプ
リアサイン要求イベントを発生する。言い換えれば、要
求先タスク番号NDTKを“4:プリアサイナタスク”に、
要求先イベント値NDETをソステヌートペダルが踏下げら
れると“2”に、戻されると“3”に、ダンパーペダル
が踏下げられると“4”に、戻されると“5”に設定し
てイベント発生モニタコールを行う。When the damper pedal is depressed, the damper flag DMPF is set to "1", and when it is returned, the damper flag DMPF is set to "0". When the sostenuto status is updated and / or the damper flag is set, a pre-assignment request event is generated. In other words, the requested task number NDTK is changed to “4: Pre-assigner task”,
The requested event value NDET is set to "2" when the sostenuto pedal is depressed, "3" when it is returned, to "4" when the damper pedal is depressed, and to "5" when it is returned. Make a monitor call.
【0235】以上に説明したように本実施例において
は、新たな楽音を割当てる楽音発生チャネルを、発音割
当てのために急速減衰中の楽音発生チャネルおよび発音
開始から所定時間経過していないいわゆるアタック中の
楽音発生チャネルを除いた楽音発生チャネルから選定し
ている。なお、選定対象の楽音発生チャネルについては
発音終了、離鍵済みでかつホールドオフ、離鍵済みでか
つダンパーオン、離鍵済みでかつソステヌートオン、押
鍵中の順に割当て順位を設定している。また、同じ状
態、例えば離鍵済みでかつホールドオフの状態において
は連打関係がある楽音発生チャネルを連打関係がない楽
音発生チャネルより早い割当て順位としている。そし
て、新たな楽音が楽音発生チャネルに割当てられるとそ
の楽音と連打関係にある楽音発生チャネルのアサイン順
位を同じ状態のより早いアサイン順位に変更している。
例えば、離鍵済みでかつホールドオフである場合には、
離鍵済みでかつホールドオフでかつ連打関係にない楽音
発生チャネルより早いアサイン順位に変更するようにし
ている。また、押鍵中の楽音が離鍵するなどその状態が
変化した場合には連打関係の有無に応じた順位に変更し
ている。例えば、ペダルが踏込まれていない状態で離鍵
すると、連打関係がある場合には離鍵済みでかつホール
ドオフでかつ連打関係にある楽音発生チャネルの最も遅
い楽音発生チャネルの順位の次の順位に変更し、連打関
係がない場合には離鍵済みでかつホールドオフの楽音発
生チャネルの最も遅い楽音発生チャネルの順位の次の順
位に変更している。As described above, in the present embodiment, the tone generation channel to which a new tone is assigned is the tone generation channel which is being rapidly attenuated for assigning the tone generation, and the so-called attack during which a predetermined time has not passed from the start of tone generation. It is selected from the tone generation channels excluding the tone generation channels. For the musical tone generation channels to be selected, the assignment order is set in the order of sound generation, key release and hold-off, key release and damper on, key release and sostenuto on, and key pressing. Further, in the same state, for example, in the state where the keys are released and the hold-off state is set, the tone generation channels having a continuous hitting relationship are assigned earlier than the tone generation channels having no continuous hitting relationship. Then, when a new musical tone is assigned to the musical tone generating channel, the assigning order of the musical tone generating channel having a continuous hitting relationship with the musical tone is changed to an earlier assigning order in the same state.
For example, if the key is released and the hold-off is
The keys are released, held off, and assigned earlier than the tone generation channels that are not related to repeated hits. Further, when the tone changes while the key is being depressed, such as when the tone is released, the order is changed according to whether or not there is a continuous hitting relationship. For example, if the key is released without the pedal being depressed, and if there is a continuous hitting relationship, it will be placed next to the order of the slowest tone generation channel that has been released, is held off, and is in the continuous hitting relationship. If there is no continuous hitting relationship, the key is released and the order is changed to the next order of the order of the slowest tone generation channel of the tone generation channels of hold-off.
【0236】本実施例においても必要ならば、発音割当
てのために急速減衰中の楽音発生チャネルおよび発音開
始から所定時間経過していないいわゆるアタック中の楽
音発生チャネルを選定対象に含めたり連打処理対象に含
めても良い。また、離鍵済みの楽音発生チャネルについ
て第1実施例の処理に準じた処理を行っても良い。ま
た、メインアサイナ処理中フラグMAEFをステップA6、
ステップE5、E13およびステップF4においてダン
パーまたはソステヌートペダルの操作を検出すると
“1”に設定するようにしても良い。さらに、連打処理
ルーチンのステップD540208における連打フラグ
の設定に際し、処理対象の楽音発生チャネルが押鍵中で
かつそのエンベロープレベルが新たに割当てられた楽音
発生チャネルのアタックレベルより大である場合などに
は連打フラグの設定を行わないようにしても良い。Also in the present embodiment, if necessary, the tone generation channel that is rapidly decaying for the assignment of the tone generation and the tone generation channel that is so-called attack in which a predetermined time has not elapsed from the start of the tone generation are included in the selection target or the continuous hit processing target. May be included in. Further, processing similar to the processing of the first embodiment may be performed on the tone-generating channel for which the key has been released. In addition, the main assigner processing flag MAEF is set to step A6,
It may be set to "1" when the operation of the damper or the sostenuto pedal is detected in steps E5, E13 and step F4. Furthermore, when setting the continuous hit flag in step D540208 of the continuous hit processing routine, if the tone generation channel to be processed is key-pressing and its envelope level is higher than the attack level of the newly assigned tone generation channel, etc. The continuous hit flag may not be set.
【0237】なお、連打関係にもとづくアサイン順位の
変更に際してより下位(早い)の状態に変更するように
しても良い。例えば、押鍵中の楽音発生チャネルを離鍵
済みでかつソステヌートオンとみなして処理を行うよう
にしても良い。具体的には、ステップD540210に
おいて、次のように処理を行う。で新ステージ番号PN
SNおよび下位ステージ番号PDSNを、楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のステージ番号より“1”を減算した
値に設定する。以降に換えてステップD5507〜5
513と同様に行う。It should be noted that when changing the assignment order based on the continuous hitting relationship, it may be changed to a lower (earlier) state. For example, the processing may be performed assuming that the tone generation channel during key depression has been released and is sostenuto-on. Specifically, in Step D540210, processing is performed as follows. With new stage number PN
The SN and the lower stage number PDSN are set to values obtained by subtracting "1" from the stage number of the tone generation channel number corresponding to the repeated hit processing target number PCTN in the tone generation channel management map. Subsequent steps D5507-5
Same as 513.
【0238】または、押鍵中の楽音発生チャネルを離鍵
済みでかつホールドオフと見なして処理を行うようにし
ても良い。さらには、発音終了の次の順位に変更するよ
うにしても良い。例えば、発音終了、連打、離鍵済みで
かつホールドオフ、...の順番とする。または、アサ
イン順位を押鍵順とする場合には押鍵順位をより早い順
位に変更しても良い。発音終了、連打、連打でない順と
し各状態においては押鍵順とする。なお、発音終了にお
いては楽音発生チャネル番号順などとしても良い。Alternatively, the tone generation channel during key depression may be regarded as the key-released channel and the hold-off process. Further, the rank may be changed to the next rank after the end of sound generation. For example, end of pronunciation, repeated hits, key release, hold-off ,. . . Order. Alternatively, when the assigning order is the key pressing order, the key pressing order may be changed to an earlier order. The order is the key press order in each state. It should be noted that at the end of sound generation, the order of channel numbers for generating musical sounds may be used.
【0239】第1、第2実施例においては、既に割当て
られた楽音相互の連打関係にもとづいてアサイン順位を
変更したが、新たな楽音との連打関係にもとづくように
しても良い。例えば、メインアサイナタスクのステップ
B5の処理に先立ちプリアサイナタスクと同様な処理を
実行する。この際に、新たな楽音を連打比較対象用とし
て仮想的に設けた“17”番目の楽音発生チャネルに割
当てられたものとし、次にその仮想的に設けた“17”
番目の楽音発生チャネルを含めて連打処理を行う。な
お、この場合にプリアサイナタスクを削除しても良い。In the first and second embodiments, the assigning order is changed based on the already-assigned continuous hitting relationships of musical tones, but it may be changed based on the continuous hitting relationship with a new musical sound. For example, the same process as the pre-assigner task is executed prior to the process of step B5 of the main assigner task. At this time, it is assumed that a new musical tone is assigned to the "17" th tone generating channel virtually provided for the continuous hit comparison target, and then the virtually provided "17"
Repeated hit processing including the second tone generation channel. In this case, the pre-assigner task may be deleted.
【0240】また、メインアサイナタスクにおいて新音
との連打関係を判断してプリアサイナタスクで設定した
アサイン順位を変更するなどしても良い。この処理の具
体例を、次の変形例2、変形例3において説明する。
<変形例2>次のようにして本変形例においては新たな
楽音が割当てられる。アサイン順位の割当て対象の楽音
発生チャネルが発音を終了している場合には割当て対象
の楽音発生チャネルに割当てるとともに、割当て対象の
楽音発生チャネルが発音を終了していない場合において
は割当て可能な楽音発生チャネルであってかつ新たなノ
ートオンと連打関係の楽音発生チャネルがあるときには
その楽音発生チャネルに割当てる。また、新たなノート
オンと連打関係にあってかつ割当て可能な楽音発生チャ
ネルがないときには、割当て対象の楽音発生チャネルに
割当てる。Further, the main assigner task may change the assignment order set in the pre-assigner task by judging the continuous hit relationship with a new sound. Specific examples of this processing will be described in the following modified examples 2 and 3. <Modification 2> In this modification, a new musical sound is assigned as follows. If the tone generation channel to which the assignment order is assigned has finished sounding, it is assigned to the tone generation channel to be assigned, and if the tone generation channel to be assigned has not finished pronunciation, allocatable tone generation If there is a tone generation channel that is a channel and is related to a new note-on, the tone generation channel is assigned to that tone generation channel. If there is no tone generation channel that can be assigned because it has a continuous hit relationship with a new note-on, it is assigned to the tone generation channel to be assigned.
【0241】次に、第1実施例に適用した場合について
説明する。メインアサインタスクのステップB5の処理
に先立って、次のような処理を行う。
〔B5p〕 ステップB4における判断において対象ア
サイン順位TASNが割当て可能楽音発生チャネル数GACN未
満である場合; 楽音発生チャネル管理マップにおけ
るアサイン順位TASNの楽音発生チャネル番号MASS TASN
に対応する楽音発生チャネル番号の発音量が“0”を超
えているか否かを判断する。この発音量が“0”を超え
ている場合には次のに進み、“0”を超えていない場
合、言い換えれば発音を終了している場合には次のステ
ップB5に進む。 ノート番号がノート番号NTNMと同
じ楽音発生チャネルをアサイン順位順に、アサイン順位
が対象アサイン順位TASNから割当て可能楽音発生チャネ
ル数GACNより“1”を減じた値までのアサイン順位TASN
の楽音発生チャネル番号MASS TASNに対応する楽音発生
チャネルより探す。具体的には、アサイン順位順に、楽
音発生チャネル管理マップにおけるアサイン順位が対象
アサイン順位TASNから割当て可能楽音発生チャネル数GA
CNより“1”を減じた値までのアサイン順位TASNの楽音
発生チャネル番号MASS TASN に対応する楽音発生チャネ
ル番号のノート番号とノート番号NTNMとを比較して、こ
れらノート番号が一致する楽音発生チャネルがある場合
にはアサイン順位をその楽音発生チャネルが割当て対象
順位となるように並べ換える。Next, the case of application to the first embodiment will be described. Prior to the processing of step B5 of the main assign task, the following processing is performed. [B5p] When the target assignment order TASN is less than the number of allocatable tone generation channels GACN in the judgment in step B4; the tone generation channel number MASS TASN of the assignment order TASN in the tone generation channel management map
It is determined whether or not the tone generation amount of the tone generation channel number corresponding to is over "0". When the sound generation amount exceeds "0", the process proceeds to the next step, and when it does not exceed "0", in other words, when the sound generation is completed, the process proceeds to the next step B5. The tone generation channels with the same note number as the note number NTNM are assigned in order of assignment order, and the assignment order is the target assignment order TASN. Number of assignable tone generation channels GACN minus the assignment order TASN up to a value TASN
Search from the tone generation channel corresponding to the tone generation channel number MASS TASN of. Specifically, the assignment order in the tone generation channel management map is assigned from the target assignment order TASN.
The tone generation channel number of the assign order TASN up to a value obtained by subtracting “1” from CN. The tone generation channel number of the tone generation channel number corresponding to MASS TASN is compared with the note number NTNM, and the tone generation channel of which these note numbers match. If there is, the assignment order is rearranged so that the tone generation channel becomes the assignment target order.
【0242】要するに、ノート番号が最初に一致した楽
音発生チャネルのアサイン順位を対象アサイン順位TASN
とするとともに、対象アサイン順位TASNからノート番号
が最初に一致した楽音発生チャネルのアサイン順位より
“1”を減じた値までのアサイン順位TASNの楽音発生チ
ャネル番号MASS TASN に対応する楽音発生チャネル番号
のアサイン順位をそれぞれ“1”ずつインクリメントす
る。例えば、TASNが“0”、GACNが“10”、MASS 0
=5、MASS 1 =7、MASS 2 =8、MASS 3=9でアサ
イン順位が“3”(MASS 3 ) の楽音発生チャネルのノー
ト番号がノート番号NTNMと同じである場合には、MASS 0
=9、MASS 1 =5、MASS 2 =7、MASS 3 =8と
なる。そして、処理を終了すると、ステップB5に進
む。[0242] In short, the assignment order of the tone generation channel whose note number first matches is the target assignment order TASN.
In addition, the tone generation channel number corresponding to the tone generation channel number MASS TASN of the assignment sequence TASN up to a value obtained by subtracting “1” from the assignment order of the tone generation channel whose note number first matches the target assignment sequence TASN. The assignment order is incremented by "1". For example, TASN is “0”, GACN is “10”, MASS 0
= 5, MASS 1 = 7, MASS 2 = 8, MASS 3 = 9 and the note number of the tone generation channel whose assignment order is "3" (MASS 3) is the same as the note number NTNM, MASS 0
= 9, MASS 1 = 5, MASS 2 = 7, MASS 3 = 8. When the processing is completed, the process proceeds to step B5.
【0243】なお、ノート番号がノート番号NTNMと同じ
楽音発生チャネルがない場合には、ステップB5に進
む。同様に、第2実施例においても本変形例は適宜変更
して適用できる。
<変形例3>次のようにして本変形例においては新たな
楽音が割当てられる。 アサイン順位の割当て対象の楽
音発生チャネルが発音を終了している場合には割当て対
象の楽音発生チャネルに割当てるとともに、割当て対象
の楽音発生チャネルが発音を終了していない場合におい
ては割当て対象の楽音発生チャネルが新たなノートオン
と連打関係にあるときには割当て対象の楽音発生チャネ
ルに割当てる。また、割当て対象の楽音発生チャネルが
発音を終了していない場合において、割当て可能な新た
なノートオンと連打関係となる楽音発生チャネルがある
ときには、この割当て可能な新たなノートオンと連打関
係の楽音発生チャネルの発音量を仮想的に1/10と
し、次にその仮想的な発音量が連打関係にもとづく補正
を行った割当て対象の楽音発生チャネルの発音量より小
さくなるときにはその連打関係にある楽音発生チャネル
に割当てる。なお、割当て可能な新たなノートオンと連
打関係にある楽音発生チャネルがない場合または連打関
係の楽音発生チャネルの仮想的な発音量が連打関係にも
とづく補正を行った割当て対象の楽音発生チャネルの発
音量より小さくならないときには割当て対象の楽音発生
チャネルに割当てる。If there is no tone generation channel having the same note number as the note number NTNM, the process proceeds to step B5. Similarly, the present modification can be applied to the second embodiment with appropriate modifications. <Modification 3> In this modification, a new musical sound is assigned as follows. If the tone generation channel to which the assignment order is assigned has finished sounding, it will be assigned to the tone generation channel to be assigned, and if the tone generation channel to be assigned has not finished sounding, the tone generation to be assigned will occur. When the channel has a continuous hitting relationship with a new note-on, it is assigned to the tone generation channel to be assigned. In addition, when the tone generation channel to be assigned has not finished sounding, if there is a tone generation channel that can be repeatedly assigned to a new note-on that can be assigned, this new assignable note-on and tone-related tone When the tone generation amount of the generation channel is virtually reduced to 1/10, and then the virtual tone generation amount becomes smaller than the tone generation amount of the musical tone generation channel to be assigned, which is corrected based on the consecutive hit relation, the musical tone in the consecutive hit relation Assign to a generation channel. If there is no tone generation channel that has a continuous hitting relationship with a new note-on that can be assigned, or if the virtual sound generation amount of the tone generation channel that has a continuous hitting effect is corrected based on the repeated hitting sound, the pronunciation of the tone generation channel to be assigned is corrected. If it does not become smaller than the amount, it is assigned to the tone generation channel to be assigned.
【0244】次に、第1実施例に適用した場合について
説明する。変形例2におけるB5pのの処理を、次の
ように変更する。 対象アサイン順位TASNの楽音発生
チャネルが新たなノートオンの楽音と連打関係にあるか
否かを判断する。具体的には、楽音発生チャネル管理マ
ップにおけるアサイン順位TASNの楽音発生チャネル番号
MASS TASN に対応する楽音発生チャネル番号のノート番
号とノート番号NTNMとが同じであるか否かを判断する。
これらノート番号が同じである場合にはステップB5に
進み、同じでない場合には次のに進む。 楽音発生
チャネル管理マップにおけるアサイン順位TASNの楽音発
生チャネル番号MASS TASN に対応する楽音発生チャネル
番号の発音量を評価発音量とする。 対象アサイン順
位TASNの楽音発生チャネルが対象アサイン順位TASNの次
のアサイン順位から割当て可能楽音発生チャネル数GACN
より“1"を減じた値までのアサイン順位TASNの楽音発生
チャネル番号MASS TASN に対応する楽音発生チャネルの
いずれかと連打関係にあるか否かを判断する。具体的に
は、楽音発生チャネル管理マップにおけるアサイン順位
TASNの楽音発生チャネル番号MASS TASN に対応する楽音
発生チャネル番号のノート番号と対象アサイン順位TASN
の次のアサイン順位から割当て可能楽音発生チャネル数
GACNより“1"を減じた値までのアサイン順位TASNの楽音
発生チャネル番号MASS TASN に対応する楽音発生チャネ
ル番号のノート番号のいずれかと同じであるか否かを判
断して、このノート番号がいずれかのノート番号と同じ
である場合には評価発音量を1/10にし、いずれのノ
ート番号とも同じでない場合には変更しない。そして、
処理を終了すると次のに進む。 ノート番号がノー
ト番号NTNMと同じ楽音発生チャネルをアサイン順位順
に、その発音量が評価発音量の10倍未満であってかつ
アサイン順位が対象アサイン順位TASNの次のアサイン順
位から割当て可能楽音発生チャネル数GACNより“1"を減
じた値までのアサイン順位TASNの楽音発生チャネル番号
MASS TASN に対応する楽音発生チャネルより探す。具体
的には、アサイン順位順に、楽音発生チャネル管理マッ
プにおけるアサイン順位が対象アサイン順位TASNの次の
アサイン順位から割当て可能楽音発生チャネル数GACNよ
り“1"を減じた値までのアサイン順位TASNの楽音発生チ
ャネル番号MASSTASN に対応する楽音発生チャネル番号
のノート番号がノート番号NTNMと同じであってかつ発音
量が評価発音量の10倍未満であるか否かを判断する。
このノート番号がノート番号NTNMと同じであってかつ発
音量が評価発音量の10倍未満である楽音発生チャネル
がある場合にはアサイン順位をその楽音発生チャネルが
割当て対象順位となるように並べ換え、またそのノート
番号がノート番号NTNMと同じであってかつ発音量が評価
発音量の10倍未満である楽音発生チャネルがない場合
には並べ換えない。そして、処理を終了するとステップ
B5に進む。
<変形例4>次のようにして本変形例においては新たな
楽音が割当てられる。 アサイン順位の割当て対象の楽
音発生チャネルが発音を終了している場合には割当て対
象の楽音発生チャネルに割当てるとともに、割当て対象
の楽音発生チャネルが発音を終了していない場合におい
ては割当て対象の楽音発生チャネルが新たなノートオン
と連打関係にあるときには割当て対象の楽音発生チャネ
ルに割当てる。また、割当て対象の楽音発生チャネルが
発音を終了していない場合において、割当て可能な新た
なノートオンと連打関係となる楽音発生チャネルがある
ときには、この割当て可能な新たなノートオンと連打関
係の楽音発生チャネルのアサイン順位を仮想的に設定
し、次にその仮想的なアサイン順位が割当て対象のアサ
イン順位より小さくなるときにはその連打関係にある楽
音発生チャネルに割当てる。Next, the case applied to the first embodiment will be described. The process of B5p in Modification 2 is changed as follows. It is determined whether the tone generation channel of the target assign order TASN has a continuous hitting relationship with a new note-on tone. Specifically, the tone generation channel number of TASN assigned in the tone generation channel management map.
It is determined whether or not the note number of the tone generation channel number corresponding to MASS TASN and the note number NTNM are the same.
If these note numbers are the same, the process proceeds to step B5, and if they are not the same, the process proceeds to the next. The tone generation amount of the tone generation channel number corresponding to the tone generation channel number MASS TASN of the assignment order TASN in the tone generation channel management map is used as the evaluation tone generation amount. Number of tone generation channels that can be assigned from the next assignment order of the target assignment order TASN.
By subtracting "1", it is determined whether or not there is a continuous hitting relationship with any of the tone generation channels corresponding to the tone generation channel number MASS TASN of the assignment order TASN. Specifically, the assignment order in the tone generation channel management map
TASN tone generation channel number MASS Note number of tone generation channel number corresponding to TASN and target assignment order TASN
Number of channels that can be assigned from the next assignment order of
The tone generation channel number of the assignment order TASN up to the value obtained by subtracting “1” from GACN It is determined whether or not this note number is the same as any of the note number of the tone generation channel number corresponding to MASS TASN. If it is the same as that note number, the evaluation sound production amount is set to 1/10, and if it is not the same as any note number, it is not changed. And
When the processing is completed, the process proceeds to the next. The tone generation channels whose note numbers are the same as the note number NTNM are assigned in order of assignment, and the number of tone generation channels that can be assigned from the assignment order next to the assignment order TASN whose pronunciation amount is less than 10 times the evaluation pronunciation amount and the assignment order is the target The tone generation channel number of the assignment order TASN up to the value obtained by subtracting "1" from GACN
Search from the tone generation channel corresponding to MASS TASN. Specifically, the assignment order in the tone generation channel management map is assigned in the order of assignment order. The number of assignable tone generation channels from the assignment order next to the assignment order TASN. It is determined whether or not the note number of the tone generation channel number corresponding to the generation channel number MASSTASN is the same as the note number NTNM and the tone generation amount is less than 10 times the evaluation tone generation amount.
When there is a tone generation channel whose note number is the same as the note number NTNM and whose pronunciation amount is less than 10 times the evaluation tone amount, the assignment order is rearranged so that the tone generation channel becomes the assignment target order, If the note number is the same as the note number NTNM and there is no tone generation channel whose tone generation amount is less than 10 times the evaluated tone generation amount, no rearrangement is performed. When the processing is completed, the process proceeds to step B5. <Modification 4> In this modification, a new musical sound is assigned as follows. If the tone generation channel to which the assignment order is assigned has finished sounding, it will be assigned to the tone generation channel to be assigned, and if the tone generation channel to be assigned has not finished sounding, the tone generation to be assigned will occur. When the channel has a continuous hitting relationship with a new note-on, it is assigned to the tone generation channel to be assigned. In addition, when the tone generation channel to be assigned has not finished sounding, if there is a tone generation channel that can be repeatedly assigned to a new note-on that can be assigned, this new assignable note-on and tone-related tone The assignment order of the generation channels is virtually set, and when the virtual assignment order becomes smaller than the assignment order of the assignment target, it is assigned to the tone generation channel having the continuous hitting relationship.
【0245】なお、割当て可能な新たなノートオンと連
打関係にある楽音発生チャネルがない場合または連打関
係の楽音発生チャネルの仮想的なアサイン順位が割当て
対象のアサイン順位より小さくならないときには割当て
対象の楽音発生チャネルに割当てる。次に、第2実施例
に適用した場合について説明する。If there is no tone generation channel in continuous hitting relation with a new note-on that can be assigned, or if the virtual assignment order of the tone generation channel in continuous hitting is not lower than the assignment order of assignment target tone Assign to a generation channel. Next, the case of application to the second embodiment will be described.
【0246】メインアサイナタスクのステップB5の処
理に先立って、次のような処理を行う。
〔B5p〕 ステップB4における判断において対象ア
サイン順位TASNが割当て可能楽音発生チャネル数GACN未
満である場合; 楽音発生チャネル管理マップにおけ
るアサイン順位TASNの楽音発生チャネル番号MASS TASN
に対応する楽音発生チャネル番号のステージ番号が
“0”を超えているか否かを判断する。このステージ番
号が“0”を超えている場合には次のに進み、“0”
を超えていない場合、言い換えれば発音を終了している
場合には次のステップB5に進む。 対象アサイン順
位TASNの楽音発生チャネルが新たなノートオンの楽音と
連打関係にあるか否かを判断する。具体的には、楽音発
生チャネル管理マップにおけるアサイン順位TASNの楽音
発生チャネル番号MASS TASN に対応する楽音発生チャネ
ル番号のノート番号とノート番号NTNMとが同じであるか
否かを判断する。これらノート番号が同じである場合に
はステップB5に進み、同じでない場合には次のに進
む。 楽音発生チャネル管理マップにおけるアサイン
順位TASNの楽音発生チャネル番号MASS TASN に対応する
楽音発生チャネル番号の連打フラグが“1”であるか否
かを判断する。この連打フラグが“1”である場合には
ステップB5に進み、“1”でない場合には次のに進
む。 ノート番号がノート番号NTNMとが同じ楽音発生
チャネルをアサイン順位順に、アサイン順位が対象アサ
イン順位TASNの次のアサイン順位から割当て可能楽音発
生チャネル数GACNより“1"を減じた値までのアサイン順
位TASNの楽音発生チャネル番号MASS TASN に対応する楽
音発生チャネルより探す。具体的には、アサイン順位順
に、楽音発生チャネル管理マップにおけるアサイン順位
が対象アサイン順位TASNの次のアサイン順位から割当て
可能楽音発生チャネル数GACNより“1"を減じた値までの
アサイン順位TASNの楽音発生チャネル番号MASS TASN に
対応する楽音発生チャネル番号のノート番号がノート番
号NTNMと同じであるか否かを判断する。このノート番号
がノート番号NTNMと同じである楽音発生チャネルがある
場合には次のに進み、同じでない場合にはステップB
5に進む。 まず、ノート番号がノート番号NTNMとが
同じである楽音発生チャネルのアサイン順位を更新処理
ルーチン11の連打処理に準じた処理によって仮想的に
変更する。言い換えれば、新たなノートオンにもとづく
アサイン順位の更新があった場合の新たなアサイン順位
を求め、次にその仮想的なアサイン順位が対象アサイン
順位TASNより小さいか否かを判断する。この仮想的なア
サイン順位が対象アサイン順位TASNより小さい場合には
アサイン順位その楽音発生チャネルが割当て対象順位と
なるように並べ換え、小さくない場合には並べ換えな
い。そして、処理を終了するとステップB5に進む。Prior to the processing of step B5 of the main assigner task, the following processing is performed. [B5p] When the target assignment order TASN is less than the number of allocatable tone generation channels GACN in the judgment in step B4; the tone generation channel number MASS TASN of the assignment order TASN in the tone generation channel management map
It is determined whether or not the stage number of the tone generation channel number corresponding to is above "0". If this stage number exceeds "0", proceed to the next step, "0"
If it does not exceed, in other words, if the sounding has ended, the process proceeds to the next step B5. It is determined whether the tone generation channel of the target assign order TASN has a continuous hitting relationship with a new note-on tone. Specifically, it is determined whether the note number of the tone generation channel number corresponding to the tone generation channel number MASS TASN of the assignment order TASN in the tone generation channel management map is the same as the note number NTNM. If these note numbers are the same, the process proceeds to step B5, and if they are not the same, the process proceeds to the next. It is determined whether the continuous hit flag of the tone generation channel number corresponding to the tone generation channel number MASS TASN of the assignment order TASN in the tone generation channel management map is "1". If the continuous hit flag is "1", the process proceeds to step B5, and if it is not "1", the process proceeds to the next. Note number is the same as note number NTNM The tone generation channels are assigned in order of assignment order, and the assignment order is the target assignment order TASN. Search from the tone generation channel corresponding to the tone generation channel number MASS TASN of. Specifically, the assignment order in the tone generation channel management map is assigned in the order of assignment order. The number of assignable tone generation channels from the assignment order next to the assignment order TASN. Determines whether the note number of the tone generation channel number corresponding to the generation channel number MASS TASN is the same as the note number NTNM. If there is a tone generation channel whose note number is the same as the note number NTNM, proceed to the next step, otherwise step B
Go to 5. First, the assignment order of the tone generation channel having the same note number as the note number NTNM is virtually changed by a process similar to the continuous hitting process of the update processing routine 11. In other words, a new assignment order is obtained when the assignment order is updated based on a new note-on, and then it is determined whether or not the virtual assignment order is smaller than the target assignment order TASN. When the virtual assignment order is lower than the target assignment order TASN, the assignment order is rearranged so that the tone generation channel is the allocation target order, and when it is not lower, the rearrangement is not performed. When the processing is completed, the process proceeds to step B5.
【0247】なお、各実施例、変形例において、実質的
に発音を終了しているとみなせる発音量以下の楽音発生
チャネルを発音を終了している楽音発生チャネルと同様
に処理を行っても良い。また、複数個の連打が発生した
場合よりアサイン順位を早くするようにしても良い。例
えば、同一音高の楽音発生チャネルが3チャネルある場
合に、第1実施例においては最も発音量の低い楽音発生
チャネルのプリアサイナ発音量を1/100に変更し、
次に発音量の低い楽音発生チャネルのプリアサイナ発音
量を1/10に変更する。また、第2実施例においては
最も早いアサイン順位の楽音発生チャネルについてはそ
の状態をより下位の状態に変更し、次に発音量の低い楽
音発生チャネルについては同じ状態のより早いアサイン
順位に変更する。In each of the embodiments and the modified examples, the tone generation channels whose sound generation amount is equal to or less than the tone generation channel which can be regarded as the tone generation is substantially finished may be processed in the same manner as the tone generation channels whose tone generation is ended. . Also, the assignment order may be made earlier than when a plurality of consecutive hits occur. For example, when there are three tone generation channels with the same pitch, in the first embodiment, the pre-assigner tone generation amount of the tone generation channel with the lowest tone amount is changed to 1/100,
Next, the pre-assigner sound generation amount of the tone generation channel having the lower sound generation amount is changed to 1/10. Further, in the second embodiment, the state of the tone generation channel having the earliest assignment order is changed to a lower state, and the tone generation channel having the next lower sounding amount is changed to the earlier assignment order of the same state. .
【0248】なお、トランケート禁止フェーズ番号をア
タックを終了するフェーズ番号としたが、発音開始直後
の演奏表現に大きな影響を与える期間がさらに長い場合
などする場合にはその期間に応じて変更しても良い。例
えば、ディケイ期間を含める。また、マルチティンバ電
子楽器に適用しても良い。この場合に、連打関係の判断
条件に同一パートであることを含めるが必要なら関連す
るパートを含めても良い。Although the truncate prohibition phase number is the phase number at which the attack ends, it may be changed according to the period when the period that has a great influence on the performance expression immediately after the start of sounding is longer. good. For example, include a decay period. Further, it may be applied to a multitimba electronic musical instrument. In this case, the judgment condition of the continuous hitting relation includes that it is the same part, but if necessary, the related part may be included.
【0249】第1、第2実施例においては、マルチタス
ク処理による例を示したが、シングルタスク処理により
実施しても良い。この際に、例えばタイマ割込みなどの
割込みにもとづいてプリアサイナタスクにおける処理と
同様の処理を実行しても、あるいはメインルーチンでの
キーデータを楽音発生チャネルに割当てる処理に際しプ
リアサイナタスクにおける処理と同様の処理を行っても
良い。In the first and second embodiments, an example of multitask processing is shown, but single task processing may be used. At this time, for example, even if the same processing as the processing in the pre-assigner task is executed based on an interrupt such as a timer interrupt, or the processing in the main routine in which the key data is assigned to the tone generation channel is the same as the processing in the pre-assigner task. May be processed.
【0250】また、第1、第2実施例のメインアサイナ
タスクのステップB5におけるキーデータを楽音発生チ
ャネルに割当てる処理において、まず発音の終了してい
る、言い換えれば空いている楽音発生チャネルに割当
て、空いている楽音発生チャネルがなければ連打関係の
楽音発生チャネルを探して割当て、連打関係の楽音発生
チャネルもなければ例えば評価発音量順に割当てるよう
にしても良い。また、空いている楽音発生チャネルがな
い場合には連打関係の楽音発生チャネルの評価発音量を
変更後において、評価発音量にもとづいて割当てるよう
にしても良い。なお、連打処理に際しては、新たなキー
データにもとづく楽音を含めると良い。また、まず発音
を終了している楽音発生チャネルに加えて実質的に発音
を終了しているとみなせる発音量以下の楽音発生チャネ
ルに割当てるようにしても良い。In the process of assigning the key data to the tone generation channel in step B5 of the main assigner task of the first and second embodiments, first, the tone generation is finished, in other words, the tone generation channel is vacant. Alternatively, if there is no vacant tone generation channel, a tone generation channel related to repeated hits may be searched for and assigned, and if there is no tone generation channel related to repeated strikes, for example, they may be assigned in the order of evaluation sound generation amount. Further, if there is no free tone generation channel, the evaluation tone generation amount of the continuous tone-related tone generation channel may be changed and then assigned based on the evaluation tone generation amount. It should be noted that it is preferable to include a musical tone based on new key data in the repeated hitting process. Further, first, in addition to the tone generation channels for which sound generation has ended, it may be assigned to tone generation channels whose sound generation amount is equal to or less than that at which sound generation can be considered substantially ended.
【0251】本発明は、鍵盤部を有する電子楽器に加え
て、鍵盤部を有しない他の電子楽器、例えば自動演奏装
置などより受信する演奏情報にもとづいて楽音を発生す
るいわゆる楽音発生装置、あるいは自動リズムなどにも
適用できる。なお、自動リズムに適用する場合には連打
関係の判断を同一音色などであることによって行う。The present invention, in addition to an electronic musical instrument having a keyboard section, a so-called musical tone generating apparatus for generating musical tones based on performance information received from another electronic musical instrument having no keyboard section, for example, an automatic musical instrument, or It can also be applied to automatic rhythms. In addition, when applied to an automatic rhythm, the determination of the continuous hitting relation is made based on the same tone color or the like.
【0252】[0252]
【発明の効果】以上に説明したように、本発明によれ
ば、新しい楽音を割当てる楽音発生チャネルの選定順位
を予め定めるに、全体的に見て発音状態にない楽音発生
チャネル、次に発音状態の連打関係にある楽音発生チャ
ネルとなるようになり、演奏表現上における違和感を抑
制することができる。As described above, according to the present invention, in order to predetermine the selection order of the tone generation channels to which new musical tones are assigned, the tone generation channels which are not in a sounding state as a whole It becomes a tone generation channel having a continuous hitting relationship, and it is possible to suppress a feeling of strangeness in performance expression.
【図1】本発明による電子楽器の割当装置の第1実施例
の概略ブロック図である。FIG. 1 is a schematic block diagram of a first embodiment of an electronic musical instrument assigning device according to the present invention.
【図2】同第1実施例のノートマップの構成図である。FIG. 2 is a configuration diagram of a note map of the first embodiment.
【図3】同第1実施例のエンベロープ管理マップの構成
図である。FIG. 3 is a configuration diagram of an envelope management map of the first embodiment.
【図4】同第1実施例のタスク管理マップの構成図であ
る。FIG. 4 is a configuration diagram of a task management map of the first embodiment.
【図5】同第1実施例の楽音発生チャネル管理マップの
構成図である。FIG. 5 is a configuration diagram of a tone generation channel management map of the first embodiment.
【図6】同第1実施例のリセットルーチンのフローチャ
ート図である。FIG. 6 is a flowchart of a reset routine of the first embodiment.
【図7】同第1実施例のイベント待ちモニタコールルー
チンのフローチャート図である。FIG. 7 is a flowchart of an event wait monitor call routine according to the first embodiment.
【図8】同第1実施例のイベント発生モニタコールルー
チンのフローチャート図である。FIG. 8 is a flowchart of an event occurrence monitor call routine of the first embodiment.
【図9】同第1実施例のタイマ割込み処理ルーチンのフ
ローチャート図である。FIG. 9 is a flowchart of a timer interrupt processing routine of the first embodiment.
【図10】同第1実施例のキーデータ受信割込み処理ル
ーチンのフローチャート図である。FIG. 10 is a flowchart of a key data reception interrupt processing routine of the first embodiment.
【図11】同第1実施例のキーデータ受信タスクのフロ
ーチャート図である。FIG. 11 is a flow chart diagram of a key data receiving task of the first embodiment.
【図12】同第1実施例のメインアサイナタスクのフロ
ーチャート図である。FIG. 12 is a flow chart diagram of a main assigner task of the first embodiment.
【図13】同第1実施例の発音タスクのフローチャート
図である。FIG. 13 is a flow chart diagram of a pronunciation task of the first embodiment.
【図14】同第1実施例のプリアサイナタスクのフロー
チャート図である。FIG. 14 is a flowchart of the pre-assigner task of the first embodiment.
【図15】同第1実施例の連打処理ルーチンのフローチ
ャート図である。FIG. 15 is a flowchart of a continuous hitting processing routine according to the first embodiment.
【図16】同第1実施例のエンベロープタスクのフロー
チャート図である。FIG. 16 is a flowchart diagram of an envelope task according to the first embodiment.
【図17】同第1実施例の操作子タスクのフローチャー
ト図である。FIG. 17 is a flowchart of an operator task according to the first embodiment.
【図18】変形例を説明するための連打処理ルーチンの
フローチャート図である。FIG. 18 is a flowchart of a repeated hitting processing routine for explaining a modified example.
【図19】本発明による電子楽器の割当装置の第2実施
例のプリアサイナタスクのフローチャート図である。FIG. 19 is a flowchart of the pre-assigner task of the second embodiment of the electronic musical instrument assigning device according to the present invention.
【図20】本発明による電子楽器の割当装置の第2実施
例の更新処理11ルーチンのフローチャート図である。FIG. 20 is a flow chart diagram of an update processing 11 routine of the second embodiment of the electronic musical instrument allocating apparatus according to the present invention.
【図21】本発明による電子楽器の割当装置の第2実施
例の連打処理ルーチンのフローチャート図である。FIG. 21 is a flowchart of a continuous hitting processing routine of the second embodiment of the electronic musical instrument assigning device according to the present invention.
【図22】同第2実施例の更新処理12ルーチンのフロ
ーチャート図である。FIG. 22 is a flowchart of an update processing 12 routine of the second embodiment.
20 鍵盤部 21 バス 22 CPU 23 操作子群 24 ペダル群 25 ROM 26 RAM 27 タイマ 28 操作子検出回路 29 ペダル検出回路 30 楽音発生回路 31 増幅器 32 スピーカ 20 keyboard 21 bus 22 CPU 23 Control group 24 pedals 25 ROM 26 RAM 27 timer 28 Operator detection circuit 29 Pedal detection circuit 30 tone generation circuit 31 amplifier 32 speakers
─────────────────────────────────────────────────────
─────────────────────────────────────────────────── ───
【手続補正書】[Procedure amendment]
【提出日】平成3年11月6日[Submission date] November 6, 1991
【手続補正1】[Procedure Amendment 1]
【補正対象書類名】明細書[Document name to be amended] Statement
【補正対象項目名】全文[Correction target item name] Full text
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【書類名】 明細書[Document name] Statement
【発明の名称】 電子楽器の割当装置Patent application title: Electronic musical instrument assigning device
【特許請求の範囲】[Claims]
【発明の詳細な説明】Detailed Description of the Invention
【0001】[0001]
【産業上の利用分野】本発明は、楽音発生チャネルを選
定して新しい楽音を割当てる電子楽器の割当装置に関
し、より詳しくは連打における新たな楽音を割当てる技
術に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic musical instrument allocating apparatus for selecting a musical tone generating channel and allocating a new musical tone, and more particularly to a technique for allocating a new musical tone in a continuous hit.
【0002】[0002]
【従来の技術】従来、前述されたような電子楽器の割当
装置において、例えば新しい楽音を割当てる楽音発生チ
ャネルの選定順位を予め定めるに際しては、次のように
行っている。 押鍵により、言うなればノートオンに
よって早く楽音が割当てられた順位に楽音発生チャネル
の選定順位を定める。 割当てられた楽音のエンベロ
ープレベルの低い順位に楽音発生チャネルの選定順位を
定める。2. Description of the Related Art Conventionally, in the above-mentioned electronic musical instrument allocating device, the following is performed in order to preset the selection order of the tone generation channels to which new musical tones are assigned. By pressing a key, the selection order of the tone generation channels is set to the order in which the tone is quickly assigned by note-on. The selection order of the tone generation channels is determined in the order of the assigned musical tone envelope level.
【0003】[0003]
【発明が解決しようとする課題】ところで、連打楽音の
割当てに関しては、連打楽音間のマスキング効果を配慮
して、全て個々に楽音発生チャネルに対して連打におけ
る新たな楽音を割当てるのではなく、連打関係の楽音発
生チャネルの数を予め制限してその数の範囲内で連打に
おける新たな楽音を割当てるのが、次の理由により有要
である。With regard to the allocation of the continuous tone sounds, in consideration of the masking effect between the continuous tone sounds, all the new tone sounds in the continuous tone sounds are not individually allocated to the tone generation channels, but the continuous tone sounds are continuously allocated. It is important to limit the number of related tone generation channels in advance and to assign a new tone in the continuous hit within the range of the number for the following reason.
【0004】連打楽音を割当てる楽音発生チャネルの数
を制限しない場合には、連打関係になる楽音発生チャネ
ルにおいて発音される楽音が演奏表現に与える影響が比
較的に少ないにもかかわらず連打される新たな楽音を楽
音発生チャネルに割当てるために、前述の予め定められ
る選定順位にしたがって演奏表現上において有用な楽音
を発音している楽音発生チャネルに連打される新たな楽
音を割当てることになる。したがって、演奏表現上にお
いて有用な楽音の発音が、連打楽音によって次々に消さ
れるようになり、演奏表現上において違和感を生じる。If the number of tone generation channels to which the continuous tone is assigned is not limited, a new tone is repeatedly produced even though the tone generated in the tone generation channels having the continuous tone relationship has relatively little influence on the performance expression. In order to assign different musical tones to the musical tone generating channels, new musical tones to be continuously hit are assigned to the musical tone generating channels producing useful musical tones in the performance expression according to the above-mentioned predetermined selection order. Therefore, the pronunciation of musical tones that are useful in musical expression is erased one after another by the repeated musical tones, which causes a feeling of strangeness in musical expression.
【0005】しかしながら、連打楽音に用いる楽音発生
チャネルの数を単に制限しただけでは、連打楽音の割当
てが制限数に達すると、他に割当て可能な発音終了状態
にある楽音発生チャネルがある場合でも、連打楽音を既
に発音状態にある楽音発生チャネルに割当てることにな
るために、やはり演奏表現上において違和感を生じる。However, if the number of tone generation channels used for continuous tone sounds is simply limited, when the number of consecutive tone sounds assigned reaches the limited number, even if there are other tone generation channels in the sounding end state that can be assigned, Since the continuous-tapping musical tone is assigned to the musical tone generating channel that is already in the sounding state, a sense of incongruity is produced in the performance expression.
【0006】本発明は、このような事情を鑑みてなされ
たものであってその目的とするところは、新しい楽音を
割当てる楽音発生チャネルの選定順位を予め定めるに、
更に一般的には連打における新しい楽音を割当てる楽音
発生チャネルを定めるに、演奏表現上における違和感を
抑制することができる電子楽器の割当装置を提供しよう
とするものである。The present invention has been made in view of the above circumstances, and an object thereof is to preset a selection order of tone generation channels to which a new tone is assigned.
More generally, it is an object of the present invention to provide an electronic musical instrument allocating device capable of suppressing a sense of discomfort in musical performance expression in order to determine a musical tone generating channel to which a new musical tone is to be assigned in continuous tapping.
【0007】[0007]
【課題を解決するための手段】第1の本発明による電子
楽器の割当装置は、前述された目的を達成するために、
基本的には、楽音発生チャネルを選定して新しい楽音を
割当てる電子楽器の割当装置において、(a) 発音状態に
ある楽音発生チャネルのうちから連打関係にある楽音発
生チャネルを検出する連打関係検出手段、(b) この連打
関係検出手段により検出される連打関係にある楽音発生
チャネルに対して、所定の順位規準にもとづく割当て順
位にしたがって少なくとも前記発音状態にある楽音発生
チャネルのうちにおいては優先的に選定されて新しい楽
音が割当てられるように、前記所定の順位規準における
順位規準の対象となる内容を改竄する改竄手段および
(c) この改竄手段により改竄される順位規準の対象内容
のもとに楽音発生チャネルに対して前記所定の順位規準
にもとづく割当て順位により新しい楽音を割当てる楽音
発生チャネルの選定順位を予め定める順位選定手段を具
えることを特徴とするものである。In order to achieve the above-mentioned object, an electronic musical instrument assigning device according to a first aspect of the present invention is provided.
Basically, in an electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone, (a) a continuous hitting relation detecting means for detecting a musical tone generating channel having a continuous hitting relation among the musical tone generating channels in a sounding state. , (B) priority is given to at least one of the tone generation channels in the sounding state according to the assignment order based on a predetermined order criterion, with respect to the tone generation channels having the consecutive hit relation detected by the consecutive hit relation detecting means. Falsification means for falsifying the content subject to the rank criterion in the predetermined rank criterion so that a new musical sound is selected and assigned;
(c) Selection of a predetermined order for selecting a tone generation channel to which a new tone is to be assigned by the assignment order based on the above-mentioned predetermined order criterion for the tone generation channel based on the contents of the order criterion that is altered by this alteration means It is characterized by comprising means.
【0008】[0008]
【作用】発音状態にある楽音発生チャネルのうちから検
出される連打関係にある楽音発生チャネルに対して、所
定の順位規準における順位規準の対象となる内容を改竄
する。この改竄は、少なくとも発音状態にある楽音発生
チャネルのうちにおいては所定の順位規準にもとづく割
当て順位にしたがって優先的に選択されて新しい楽音が
割当てられるようにする。この改竄される順位規準の対
象内容のもとに、所定の順位規準にもとづく割当て順位
にしたがって楽音発生チャネルに対して新しい楽音を割
当てる選定順位を予め定める。With respect to the tone generation channels in the continuous hitting relationship detected from the tone generation channels in the sound generation state, the contents subject to the ranking criterion in the predetermined ranking criterion are tampered with. This tampering is performed so that at least a tone generation channel that is in a sound generation state is preferentially selected according to an assignment order based on a predetermined order criterion and a new tone is assigned. Based on the target contents of the falsified rank criterion, a selection rank for allocating a new musical sound to a musical tone generation channel is determined in advance according to the allocation rank based on a predetermined rank criterion.
【0009】[0009]
【課題を解決するための手段】第2の本発明による電子
楽器の割当装置は、前述された目的を達成するために、
基本的には、楽音発生チャネルを選定して新しい楽音を
割当てる電子楽器の割当装置において、(a) 発音状態に
ある楽音発生チャネルのうちから連打関係にある楽音発
生チャネルを検出する連打関係検出手段、(b) この連打
関係検出手段により検出される連打関係にある楽音発生
チャネルに対して、所定の順位規準にもとづく割当て順
位にしたがって少なくとも前記発音状態にある楽音発生
チャネルのうちにおいては優先的に選定されて新しい楽
音が割当てられるように、前記所定の順位規準における
順位規準の対象となる内容を改竄する改竄手段および
(c) この改竄手段により改竄される順位規準の対象内容
のもとに前記所定の順位規準にもとづき楽音発生チャネ
ルを選定して新しい楽音を割当てるチャネル選定手段を
具えることを特徴とするものである。In order to achieve the above-mentioned object, an electronic musical instrument allocating device according to a second aspect of the present invention comprises:
Basically, in an electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone, (a) a continuous hitting relation detecting means for detecting a musical tone generating channel having a continuous hitting relation among the musical tone generating channels in a sounding state. , (B) priority is given to at least one of the tone generation channels in the sounding state according to the assignment order based on a predetermined order criterion, with respect to the tone generation channels having the consecutive hit relation detected by the consecutive hit relation detecting means. Falsification means for falsifying the content subject to the rank criterion in the predetermined rank criterion so that a new musical sound is selected and assigned;
(c) It is characterized by comprising a channel selection means for selecting a tone generation channel based on the contents of the rank criterion to be tampered by this tampering means and assigning a new music tone based on the predetermined rank criterion. is there.
【0010】[0010]
【作用】発音状態にある楽音発生チャネルのうちから検
出される連打関係にある楽音発生チャネルに対して、所
定の順位規準における順位規準の対象となる内容を改竄
する。この改竄は、少なくとも発音状態にある楽音発生
チャネルのうちにおいては所定の順位規準にもとづく割
当て順位にしたがって優先的に選択されて新しい楽音が
割当てられるようにする。この改竄される順位規準の対
象内容のもとに、所定の順位規準にもとづき楽音発生チ
ャネルを選定して新しい楽音を割当てる。With respect to the tone generation channels in the continuous hitting relationship detected from the tone generation channels in the sound generation state, the contents subject to the ranking criterion in the predetermined ranking criterion are tampered with. This tampering is performed so that at least a tone generation channel that is in a sound generation state is preferentially selected according to an assignment order based on a predetermined order criterion and a new tone is assigned. Based on the contents of the falsified rank criterion, a tone generation channel is selected based on a predetermined rank criterion and a new tone is assigned.
【0011】[0011]
【課題を解決するための手段】第3の本発明による電子
楽器の割当装置は、前述された目的を達成するために、
基本的には、楽音発生チャネルを選定して新しい楽音を
割当てる電子楽器の割当装置において、(a) 発音状態に
ある楽音発生チャネルのうちから連打関係にある楽音発
生チャネルを検出する連打関係検出手段、(b) この連打
関係検出手段により検出される連打関係にある楽音発生
チャネルに対して、所定の順位規準にもとづく割当て順
位にしたがって前記発音状態にある楽音発生チャネルの
うちにおいては優先的に選定されて新しい楽音が割当て
られるように、前記所定の順位規準における順位規準の
対象となる内容を改竄する改竄手段および(c) まず発音
終了状態の楽音発生チャネルがある場合にはその発音終
了状態にある楽音発生チャネルを、次に発音終了状態の
楽音発生チャネルがなくて全ての楽音発生チャネルが発
音状態にある場合には前記改竄手段により改竄される順
位規準の対象内容のもとに前記所定の順位規準にもとづ
き楽音発生チャネルを優先して選定して新しい楽音を割
当てるチャネル選定手段を具えることを特徴とするもの
である。In order to achieve the above-mentioned object, an electronic musical instrument assigning device according to a third aspect of the present invention is provided.
Basically, in an electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone, (a) a continuous hitting relation detecting means for detecting a musical tone generating channel having a continuous hitting relation among the musical tone generating channels in a sounding state. , (B) With respect to the tone generation channels having the consecutive hitting relation detected by the consecutive hitting relation detecting means, the tone generation channels in the sounding state are preferentially selected according to the allocation order based on a predetermined order criterion. Falsification means for falsifying the contents subject to the rank criterion in the predetermined rank criterion so that a new musical sound is assigned and (c) first, if there is a tone generation channel in the pronunciation end state, the tone generation end state is set. If there is no musical tone generation channel next to a certain musical tone generation channel and all musical tone generation channels are It is characterized by comprising channel selection means for preferentially selecting a tone generation channel based on the predetermined order criterion based on the contents of the order criterion altered by the alteration means and assigning a new tone. is there.
【0012】[0012]
【作用】発音状態にある楽音発生チャネルのうちから検
出される連打関係にある楽音発生チャネルに対して、所
定の順位規準における順位規準の対象となる内容を改竄
する。この改竄は、発音状態にある楽音発生チャネルの
うちにおいては所定の順位規準にもとづく割当て順位に
したがって優先的に選択されて新しい楽音が割当てられ
るようにする。こうして、まず発音終了状態の楽音発生
チャネルがある場合にはその発音終了状態にある楽音発
生チャネルを選定して新しい楽音を割当てる。次に、発
音終了状態の楽音発生チャネルがなくて全ての楽音発生
チャネルが発音状態にある場合には、前述の改竄される
順位規準の対象内容のもとに、所定の順位規準にもとづ
き楽音発生チャネルを選定して新しい楽音を割当てる。With respect to the tone generation channels in the continuous hitting relationship detected from the tone generation channels in the sound generation state, the contents subject to the ranking criterion in the predetermined ranking criterion are tampered with. This tampering allows a new tone to be assigned by preferentially selecting one of the tone generation channels in the sounding state according to the assignment order based on a predetermined order criterion. Thus, if there is a tone generation channel in the tone generation end state, the tone generation channel in the tone generation end state is selected and a new tone is assigned. Next, if there is no tone generation channel in the tone generation end state and all tone generation channels are in the tone generation state, the tone generation is performed based on the predetermined ranking criterion based on the contents of the falsified ranking criterion described above. Select a channel and assign a new tone.
【0013】[0013]
【課題を解決するための手段】第4の本発明による電子
楽器の割当装置は、前述された目的を達成するために、
基本的には、楽音発生チャネルを選定して新しい楽音を
割当てる電子楽器の割当装置において、(a) 発音状態に
ある楽音発生チャネルのうちから連打関係にある楽音発
生チャネルを検出する連打関係検出手段、(b) この連打
関係検出手段により検出される連打関係にある楽音発生
チャネルに対して、所定の順位規準にもとづく割当て順
位にしたがって前記発音状態にある楽音発生チャネルの
うちにおいては優先的に選定されて新しい楽音が割当て
られるように、前記所定の順位規準における順位規準の
対象となる内容を改竄する改竄手段および(c) 新しい楽
音を割当てる楽音発生チャネルの予め定められる選定順
位にもとづく割当て対象の楽音発生チャネルが発音終了
状態にある場合にはその発音終了状態にある楽音発生チ
ャネルを、次にその割当て対象の楽音発生チャネルが発
音終了状態にない場合には前記改竄手段により改竄され
る順位基準の対象内容のもとに前記所定の順位基準にも
とづき楽音発生チャネルを優先して選定して新しい楽音
を割当てるチャネル選定手段を具えることを特徴とする
ものである。In order to achieve the above-mentioned object, an electronic musical instrument assigning apparatus according to a fourth aspect of the present invention is provided.
Basically, in an electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone, (a) a continuous hitting relation detecting means for detecting a musical tone generating channel having a continuous hitting relation among the musical tone generating channels in a sounding state. , (B) With respect to the tone generation channels having the consecutive hitting relation detected by the consecutive hitting relation detecting means, the tone generation channels in the sounding state are preferentially selected according to the allocation order based on a predetermined order criterion. Tampering means for tampering with the contents subject to the rank criterion in the above-mentioned predetermined rank criteria so that a new music sound is assigned, and (c) an assignment target based on a predetermined selection order of the tone generation channel to which the new music tone is assigned. If the tone generation channel is in the tone end state, the tone generation channel in the tone end state is If the target tone generation channel is not in the tone generation end state, the tone generation channel is preferentially selected based on the predetermined rank criterion based on the target content of the rank criterion that is tampered with by the tampering means, and a new music tone is selected. It is characterized in that it comprises a channel selection means for allocating.
【0014】[0014]
【作用】発音状態にある楽音発生チャネルのうちから検
出される連打関係にある楽音発生チャネルに対して、所
定の順位規準における順位規準の対象となる内容を改竄
する。この改竄は、発音状態にある楽音発生チャネルの
うちにおいては所定の順位規準にもとづく割当て順位に
したがって優先的に選択されて新しい楽音が割当てられ
るようにする。こうして、新しい楽音を割当てる楽音発
生チャネルの予め定められる選定順位にもとづく割当て
対象の楽音発生チャネルが発音終了状態にある場合には
その発音終了状態にある楽音発生チャネルを選定して新
しい楽音を割当てる。次に、この割当て対象の楽音発生
チャネルが発音終了状態にない場合には、前述の改竄さ
れる順位規準の対象内容のもとに、所定の順位規準にも
とづき楽音発生チャネルを選定して新しい楽音を割当て
る。With respect to the tone generation channels in the continuous hitting relationship detected from the tone generation channels in the sound generation state, the contents subject to the ranking criterion in the predetermined ranking criterion are tampered with. This tampering allows a new tone to be assigned by preferentially selecting one of the tone generation channels in the sounding state according to the assignment order based on a predetermined order criterion. In this way, when the tone generation channel to be assigned based on the predetermined selection order of tone generation channels to which a new tone is assigned is in the tone generation end state, the tone generation channel in the tone generation end state is selected and a new tone is assigned. Next, if the tone generation channel to be assigned is not in the tone generation end state, the tone generation channel is selected based on the predetermined rank criterion based on the contents of the falsified rank criterion described above, and a new music tone generation channel is selected. Assign
【0015】なお、例えば所定の順位規準としては、次
のものがある。
1.順位規準の対象となる内容を楽音発生チャネルにお
ける楽音の発音量としてその発音量の小なる楽音発生チ
ャネルを優先させる。
2.順位規準の対象内容を楽音発生チャネルにおける楽
音のノートオンの発音状態およびノートオフの発音状態
を含む発音状態の態様として少なくともノートオフの発
音状態にある楽音発生チャネルをノートオンの発音状態
にある楽音発生チャネルより優先させる。
3.順位規準の対象内容を楽音発生チャネルにおける楽
音のノートオンの発音状態およびノートオフの発音状態
を含む発音状態の態様と、楽音発生チャネルにおける楽
音の発音量として、少なくともノートオフの発音状態に
ある楽音発生チャネルをノートオンの発音状態にある楽
音発生チャネルより優先させるとともに、少なくともそ
のノートオフの発音状態にある楽音発生チャネルにおい
ては楽音の発音量の小なる楽音発生チャネルを優先させ
る。
4.順位規準の対象内容を楽音発生チャネルにおける楽
音の発音状態および発音終了状態の態様として発音終了
状態にある楽音発生チャネルを発音状態にある楽音発生
チャネルより優先させる。Note that, for example, the predetermined ranking criteria are as follows. 1. The contents subject to the order criterion are set as the sound generation amount of the musical sound in the musical sound generation channel, and the musical sound generation channel having the smaller generated sound amount is prioritized. 2. The content of the rank criterion is the tone generation state including the note-on tone generation state and the note-off tone generation state of the tone in the tone generation channel. At least the tone generation channel in the note-off state is in the note-on state. Give priority to the source channel. 3. The content of the rank criterion is a sounding state mode including a note-on sounding state and a note-off sounding state of a musical sound in the musical tone generating channel, and a musical sound at least in the note-off sounding state as the amount of musical sound generated in the musical tone generating channel. The tone generation channel is prioritized over the tone generation channel in the note-on tone generation state, and the tone generation channel in which the tone generation amount is low is given priority at least in the tone-off tone generation channel. 4. The target content of the ranking criterion is a mode of the tone generation state and tone generation end state of the tone in the tone generation channel, and the tone generation channel in the tone generation end state has priority over the tone generation channel in the tone generation state.
【0016】なお、前記所定の順位規準は、前記順位規
準の対象内容にダンパーの発音状態およびまたはソステ
ヌートの発音状態の態様をも含む順位規準であっても良
い。一方、他の本発明による電子楽器の割当装置は、前
述された目的を達成するために、楽音発生チャネルを選
定して新しい楽音を割当てる電子楽器の割当装置におい
て、(a) 発音状態にある楽音発生チャネルのうちから連
打関係にある楽音発生チャネルを検出する連打関係検出
手段および(b) この連打関係検出手段により検出される
連打関係にある楽音発生チャネルを、連打関係にない楽
音発生チャネルよりも先に、また発音終了状態にある楽
音発生チャネルよりも後に選定して新しい楽音を割当て
るチャネル選定手段を具えることを特徴とするものであ
る。The predetermined rank criterion may be a rank criterion that includes the aspects of the sounding state of the damper and / or the sounding state of sostenuto in the contents of the rank criterion. On the other hand, another electronic musical instrument allocating device according to the present invention is, in order to achieve the above-mentioned object, an electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone, wherein: A continuous hitting relation detecting means for detecting a musical sound generating channel having a continuous hitting relationship from among the generating channels, and (b) a musical sound generating channel having a continuous hitting relationship detected by the continuous hitting relation detecting means, rather than a musical sound generating channel having no continuous hitting relationship. It is characterized in that it further comprises channel selecting means for selecting a musical tone generating channel which is in the sound generation end state and for allocating a new musical tone.
【0017】さらに、(a) 発音状態にある楽音発生チャ
ネルのうちから連打関係にある楽音発生チャネルを検出
する連打関係検出手段および(b) まず発音終了状態の楽
音発生チャネルがある場合にはその発音終了状態にある
楽音発生チャネルを、次に発音終了状態の楽音発生チャ
ネルがなくて全ての楽音発生チャネルが発音状態にある
場合には前記連打関係検出手段により検出される楽音発
生チャネルを優先して選定して新しい楽音を割当てるチ
ャネル選定手段を具えることを特徴とするものである。Further, (a) a continuous hitting relation detecting means for detecting a musical sound generating channel having a continuous hitting relationship among the musical sound generating channels in a sounding state, and (b) first, if there is a musical sound generating channel in a sounding end state, When there is no tone generation channel in the tone generation end state and all tone generation channels are in the tone generation state next, the tone generation channel in the tone generation end state is prioritized to the tone generation channel detected by the continuous hitting relationship detecting means. It is characterized by comprising a channel selection means for selecting and assigning a new musical sound.
【0018】加えて、(a) 発音状態にある楽音発生チャ
ネルのうちから連打関係にある楽音発生チャネルを検出
する連打関係検出手段および(b) 新しい楽音を割当てる
楽音発生チャネルの予め定められる選定順位にもとづく
割当て対象の楽音発生チャネルが発音終了状態にある場
合にはその発音終了状態にある楽音発生チャネルを、次
にその割当て対象の楽音発生チャネルが発音終了状態に
ない場合には前記連打関係検出手段により検出される楽
音発生チャネルを優先して選定して新しい楽音を割当て
るチャネル選定手段を具えることを特徴とするものであ
る。In addition, (a) a continuous hitting relation detecting means for detecting a musical sound generating channel having a continuous hitting relationship among the musical sound generating channels in a sounding state, and (b) a predetermined selection order of the musical sound generating channels to which a new musical sound is assigned. If the tone generation channel to be allocated based on the tone generation channel is in the tone generation end state, the tone generation channel in the tone generation end state is detected next, and if the tone sound generation channel to be assigned is not in the tone generation end state, the continuous hit relationship detection is performed. The present invention is characterized by comprising channel selection means for preferentially selecting a tone generation channel detected by the means and assigning a new tone.
【0019】[0019]
【実施例】第1実施例
次に、本発明による電子楽器の割当装置を、減衰音系の
楽音を発生する電子楽器に適用した場合の具体的実施例
につき、図面を参照しつつ説明する。まず、図1におい
て、鍵盤部20は鍵盤および鍵操作検出回路より構成さ
れるとともに、鍵盤において操作された鍵を鍵操作検出
回路で検出し、この検出された鍵に対応するキーデータ
を生成してバス21を介してCPU22に割込みをかけ
る。また、操作子群23は音色の選択などを行う複数個
の操作子より構成されているとともに、ペダル群24は
ダンパーペダル、ソステヌートペダルなどより構成され
ている。さらに、ROM25にはCPU22の実行する
プログラム、各処理に必要なデータおよびテーブルなど
が予め記憶されているとともに、RAM26にはプログ
ラムを実行するに必要な各種レジスタなどを含むワーキ
ングエリアが設定されている。なお、タイマ27は、所
定時間間隔(1mSec )でCPU22にタイマ割込みを
かける。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment Next, a specific embodiment in which the electronic musical instrument assigning apparatus according to the present invention is applied to an electronic musical instrument which produces a musical sound of a damping tone system will be described with reference to the drawings. First, in FIG. 1, the keyboard unit 20 is composed of a keyboard and a key operation detection circuit, and a key operated on the keyboard is detected by the key operation detection circuit to generate key data corresponding to the detected key. Interrupts the CPU 22 via the bus 21. The operator group 23 is composed of a plurality of operators for selecting a tone color, and the pedal group 24 is composed of a damper pedal, a sostenuto pedal and the like. Further, the ROM 25 pre-stores programs executed by the CPU 22, data and tables necessary for each processing, and the RAM 26 has working areas including various registers necessary for executing the programs set therein. . The timer 27 issues a timer interrupt to the CPU 22 at a predetermined time interval (1 mSec).
【0020】CPU22は所定プログラムを実行し、鍵
盤部20からの割込みに応じて鍵盤部20からキーデー
タを受け取り、このキーデータをRAM26の対応する
レジスタに書き込む。また、タイマ27からのタイマ割
込みにもとづき所定時間間隔で操作子群23の操作設定
状態およびペダル群24の操作状態を各操作子検出回路
28およびペダル検出回路29を制御して検出し、操作
子データ、ペダルデータとしてRAM26の対応するレ
ジスタに書き込む。さらに、これら書き込まれたキーデ
ータなどにもとづき、所定プログラムを実行することに
より16個の楽音発生チャネルを有する楽音発生回路3
0を制御する。この楽音発生回路30は、CPU22の
制御のもとに所望の楽音信号を生成し、増幅器31を介
してスピーカ32に送り、楽音を発生させる。The CPU 22 executes a predetermined program, receives key data from the keyboard section 20 in response to an interrupt from the keyboard section 20, and writes this key data in a corresponding register of the RAM 26. Further, based on a timer interrupt from the timer 27, the operation setting state of the operator group 23 and the operation state of the pedal group 24 are detected by controlling the operator detecting circuit 28 and the pedal detecting circuit 29 at predetermined time intervals, and the operator is detected. The data and the pedal data are written in the corresponding registers of the RAM 26. Furthermore, a tone generation circuit 3 having 16 tone generation channels is executed by executing a predetermined program based on the written key data.
Control 0. The tone generation circuit 30 generates a desired tone signal under the control of the CPU 22 and sends it to the speaker 32 via the amplifier 31 to generate a tone.
【0021】楽音発生チャネルは、CPU22による楽
音発生の指示およびその際に与えられる楽音発生パラメ
ータにもとづき楽音信号を生成し、この生成される楽音
信号を時間経過に対応して推移させる。また、楽音発生
チャネルは、CPU22によって与えられる次に到達す
るエンベロープレベルを示す目標値と所定時間当りのエ
ンベロープレベルの変化量を示すレートとにもとづいて
エンベロープレベルを補間して滑らかなエンベロープを
発生させて楽音信号の振幅を制御するとともに、急速減
衰の指示によりエンベロープレベルを所定の急速減衰レ
ートにしたがって減衰させ、エンベロープレベルが
“0”になると楽音発生回路30に設けられている急速
減衰終了FIFOに楽音発生チャネル番号を積む。The musical tone generation channel generates a musical tone signal based on a musical tone generation instruction from the CPU 22 and a musical tone generation parameter given at that time, and changes the generated musical tone signal according to the passage of time. Further, the tone generation channel interpolates the envelope level based on the target value given by the CPU 22 indicating the envelope level to be reached next and the rate indicating the amount of change of the envelope level per a predetermined time to generate a smooth envelope. Control the amplitude of the musical tone signal, attenuate the envelope level in accordance with a predetermined rapid attenuation rate in response to a rapid attenuation instruction, and when the envelope level becomes “0”, the rapid attenuation end FIFO provided in the musical tone generation circuit 30 is controlled. Stack the tone generation channel numbers.
【0022】次に、RAM26の所定領域に設定されて
いるノートマップなどの各種マップについて、図2〜図
5を参照して説明する。なお、図2〜図5は、これらマ
ップの一部を示すものである。ノートマップ(図2)
“0”〜“127”によって楽音の音高を示すノート番
号に対応して、次のものが記憶される。Next, various maps such as a note map set in a predetermined area of the RAM 26 will be described with reference to FIGS. 2 to 5 show a part of these maps. The note map (FIG. 2) "0" to "127" stores the following in correspondence with the note number indicating the pitch of the musical tone.
【0023】(1) ノートステータス:ノートオンを
“1”でもって、ノートオフを“0”でもって示す。
(2) ソステヌートステータス:ソステヌートオンを
“1”でもって、ソステヌートオフを“0”でもって示
す。タスク管理マップ(図4)
“1”〜“7”によってタスクの種類を示すタスク番号
に対応して、次のものが記憶される。なお、タスク番号
は、“1”はキーデータ受信タスク、“2”はメインア
サイナタスク、“3”は発音タスク、“4”はプリアサ
イナタスク、“5”はエンベロープタスク、“6”はペ
ダルタスク、“7”は操作子タスクであり、番号が若い
ほど優先順位が高いタスクとなっている。(1) Note status: Note on is indicated by "1" and note off is indicated by "0". (2) Sostenuto status: Indicates sostenuto on by "1" and sostenuto off by "0". The task management map (FIG. 4) "1" to "7" stores the following items corresponding to the task numbers indicating the types of tasks. As for the task numbers, "1" is a key data receiving task, "2" is a main assigner task, "3" is a sounding task, "4" is a pre-assigner task, "5" is an envelope task, and "6" is The pedal task, “7”, is an operator task, and the lower the number, the higher the priority.
【0024】(1) タイマ処理要求フラグ:タイマ処理が
必要なことを“1”でもって示す。
(2) ステータス:タスクの状態がランであることを
“0”でもって、レディであることを“1”でもって、
ウェイトであることを“2”でもって示す。
(3) 待ちイベント値:ステータスがウェイトにおける待
ち中のイベントの種類を示す。(1) Timer processing request flag: "1" indicates that timer processing is required. (2) Status: "0" indicates that the task status is run, and "1" indicates that the task status is ready.
The weight is indicated by "2". (3) Waiting event value: Indicates the type of waiting event whose status is wait.
【0025】(4) イベント発生フラグ:タスクの各イベ
ント毎にイベントの発生を“1”でもって示す。楽音発生チャネル管理マップ(図5)
“0”〜“15”の番号により16個の楽音発生チャネ
ルを示す楽音発生チャネル番号に対応して、次のものが
記憶される。(4) Event occurrence flag: The occurrence of an event is indicated by "1" for each event of the task. Music tone generation channel management map (FIG. 5) The following are stored in correspondence with the tone generation channel numbers indicating 16 tone generation channels by numbers "0" to "15".
【0026】(1) 発音量:現在発音中の楽音の発音量を
“0000H”〜“FFFFH”でもって示す。
(2) トランケート禁止フラグ:新たな楽音の割当ての禁
止を“1”でもって示す。
(3) 急速減衰中フラグ:従前の楽音を急速減衰中である
ことを“1”でもって示す。(1) Sound Generation Amount: The sound generation amount of the tone currently being sounded is indicated by "0000H" to "FFFFH". (2) Truncate prohibition flag: A prohibition of allocation of a new musical tone is indicated by "1". (3) Rapidly decaying flag: Indicates by "1" that the previous musical tone is being rapidly decayed.
【0027】(4) 処理待ちフラグ1:発音タスクにおけ
る第1処理の処理待ちを“1”でもって示す。
(5) 処理待ちフラグ2:発音タスクにおける第2処理の
処理待ちを“1”でもって示す。
(6) 処理待ちフラグ3:発音タスクにおける第3処理の
処理待ちを“1”でもって示す。(4) Processing wait flag 1: The processing wait of the first processing in the sounding task is indicated by "1". (5) Processing wait flag 2: The processing wait of the second processing in the sounding task is indicated by "1". (6) Processing wait flag 3: The processing wait of the third processing in the sounding task is indicated by "1".
【0028】(7) ノート番号:楽音の音高を示す。
(8) ベロシティ:楽音のベロシティを示す。
(9) 楽音発生パラメータ群:楽音発生に関する各種パラ
メータの値を示す。エンベロープ管理マップ(図3)
各楽音発生チャネルに対応して“0”〜“15”の番号
により16個のエンベロープチャネルを示すエンベロー
プチャネル番号に対応して、次のものが記憶される。(7) Note number: Indicates the pitch of a musical tone. (8) Velocity: Indicates the velocity of the musical sound. (9) Musical tone generation parameter group: Indicates the values of various parameters related to musical tone generation. Envelope management map (FIG. 3) The followings are stored corresponding to the envelope channel numbers indicating 16 envelope channels by numbers "0" to "15" corresponding to each tone generation channel.
【0029】(1) エンベロープレベル:エンベロープレ
ベルを“0000H”〜“FFFFH”でもって示す。
(2) 目標値:次に到達するべきエンベロープレベルを
“0000H”〜“FFFFH”でもって示す。
(3) レート:所定時間(5mSec )当たりのエンベロー
プレベルの変化量を示す。具体的には、正負を示す符号
ビットと絶対値を“0000H”〜“FFFFH”で示
すデータビットとより構成される。(1) Envelope level: The envelope level is indicated by "0000H" to "FFFFH". (2) Target value: The envelope level to be reached next is indicated by "0000H" to "FFFFH". (3) Rate: Indicates the amount of change in the envelope level per predetermined time (5 mSec). Specifically, it is composed of a sign bit indicating positive and negative and a data bit whose absolute value is represented by "0000H" to "FFFFH".
【0030】(4) フェーズ番号:現在のフェーズ番号
(楽音発生開始からの経過段階)を示す。
(5) トランケート禁止フェーズ番号:新たな楽音の割当
てを禁止する最終フェーズ番号を示す。
(6) エンベロープ生成パラメータ群:楽音のエンベロー
プ生成に関する各種パラメータの値を示す。(4) Phase number: Indicates the current phase number (elapsed stage from the start of tone generation). (5) Truncate prohibition phase number: Indicates the final phase number for which allocation of new musical tones is prohibited. (6) Envelope generation parameter group: Indicates the values of various parameters related to the generation of musical sound envelopes.
【0031】次に、前述のように構成される電子楽器の
基本的な動作について、図6〜図17に示されているフ
ローチャート図を参照しつつ説明する。なお、これら図
6〜図17のフローチャート図において用いられる各種
の変数としては、次のものがある。NSTK 要求元タスク
番号:モニタコールをしたタスクのタスク番号を示す。Next, the basic operation of the electronic musical instrument constructed as described above will be described with reference to the flow charts shown in FIGS. Various variables used in the flowcharts of FIGS. 6 to 17 are as follows. NSTK request source task number: Indicates the task number of the task that made the monitor call.
【0032】NSET 要求元イベント値:モニタコールを
したタスクにおいて次に処理を行おうとするイベントの
種類を示す。
NDTK 要求先タスク番号:次に実行を予定するタスクの
タスク番号を示す。
NDET 要求先イベント値:次に実行を予定するタスクに
おいて処理を行おうとするイベントの種類を示す。NSET request source event value: Indicates the type of event to be processed next in the task that made the monitor call. NDTK request destination task number: Shows the task number of the next scheduled task. NDET Request destination event value: Indicates the type of event to be processed in the next scheduled task.
【0033】IEDF 初期設定完了フラグ:全てのタスク
における初期設定の完了を“1”でもって示す。
TCTN タイマ割込み処理対象番号:タイマ割込み処理対
象のタスク番号を示す。
TCNE〔N 〕 第Nタスクタイマカウンタ値:タスク番号
がNであるタスク用タイマカウンタの値を示す。IEDF initialization completion flag: Completion of initialization in all tasks is indicated by "1". TCTN Timer interrupt processing target number: Indicates the task number of the timer interrupt processing target. TCNE [N] Nth task timer counter value: Indicates the value of the timer counter for the task whose task number is N.
【0034】TCND〔N 〕 第Nタスク時間間隔:タスク
番号がNであるタスクに対してタイマイベントを発行す
る時間間隔を示す。
TCNE〔TCTN〕 第TCTNタスクタイマカウンタ値:タスク
番号がタイマ割込み処理対象番号TCTNであるタスク用タ
イマカウンタの値を示す。
TCND〔TCTN〕 第TCTNタスク時間間隔:タスク番号がタ
イマ割込み処理対象番号TCTNであるタスクに対してタイ
マイベントを発行する時間間隔を示す。
〔キーデータ受信タスク〕
NTNM ノート番号:ノートオンメッセージおよび/また
はノートオフメッセージにもとづく演奏情報の音高を示
す。TCND [N] Nth task time interval: indicates the time interval for issuing a timer event to the task with the task number N. TCNE [TCTN] TCTN task timer counter value: Shows the value of the task timer counter whose task number is the timer interrupt processing target number TCTN. TCND [TCTN] TCTN task time interval: Indicates the time interval for issuing a timer event to the task whose task number is the timer interrupt processing target number TCTN. [Key data receiving task] NTNM note number: Indicates the pitch of performance information based on the note-on message and / or the note-off message.
【0035】NTST ノートステータス:ノートオンメッ
セージにもとづく演奏情報であることを“1”でもっ
て、ノートオフメッセージにもとづく演奏情報であるこ
とを“0”でもって示す。
NTVL ベロシティ:ノートオンメッセージにもとづく演
奏情報のベロシティを示す。
〔メインアサイナタスク〕
MASS〔N 〕 第Nアサイン順位の楽音発生チャネル番
号:アサイン順位が第Nアサイン順位(N番目のアサイ
ン順位)である楽音発生チャネルの楽音チャネル番号を
示す。NTST note status: Performance information based on the note-on message is indicated by "1", and performance information based on the note-off message is indicated by "0". NTVL velocity: Indicates the velocity of performance information based on the note-on message. [Main Assigner Task] MASS [N] Musical tone generation channel number of Nth assigned order: Indicates the tone channel number of the musical tone generation channel whose assigned order is the Nth assigned order (Nth assigned order).
【0036】TASN 対象アサイン順位:アサイン対象の
アサイン順位番号を示す。
MAEF メインアサイナ処理中フラグ:メインアサイナタ
スクにおいて新たなアサイン処理を行ったことを“1”
でもって示す。
MASS〔TASN〕 アサイン順位TASNの楽音発生チャネル番
号:アサイン順位が対象アサイン順位TASNである楽音発
生チャネルの楽音発生チャネル番号を示す。TASN Target Assign Order: Indicates the assign order number of the assign target. MAEF Main assigner processing flag: “1” indicates that new assign processing was performed in the main assigner task
I will show you. MASS [TASN] Music tone generation channel number of assignment order TASN: Indicates the tone generation channel number of the tone generation channel whose assignment order is the target assignment order TASN.
【0037】GACN 割当て可能楽音発生チャネル数:割
当てが可能な楽音発生チャネル数を示す。
〔発音タスク〕
GCTN 発音処理対象楽音発生チャネル番号:処理対象の
楽音発生チャネル番号を示す。GACN Number of assignable tone generation channels: Shows the number of assignable tone generation channels. [Sounding task] GCTN Sound generation channel number for sound generation processing: Indicates the sound generation channel number for processing.
【0038】TDNF 急速減衰未了フラグ:いずれかの楽
音発生チャネルが急速減衰中であることを“1”でもっ
て示す。
〔プリアサイナタスク〕
GN 楽音発生チャネル番号
PLEV〔GN〕 楽音発生チャネル番号GNのプリアサイナ発
音量
N プリアサイン順位
PASS〔N 〕 第Nプリアサイン順位楽音発生チャネル番
号:プリアサイン順位が第N順位である楽音発生チャネ
ルの楽音発生チャネル番号を示す。TDNF rapid attenuation incomplete flag: Indicates by "1" that one of the tone generation channels is undergoing rapid attenuation. [Pre-assigner task] GN Music tone generation channel number PLEV [GN] Music tone generation channel number GN pre-assigner pronunciation amount N Pre-assigned rank PASS [N] Nth pre-assigned rank Music tone generation channel number: Pre-assigned rank is N-th rank The tone generation channel number of the tone generation channel is shown.
【0039】PACN プリアサイナ割当て可能楽音発生チ
ャネル数:プリアサイナタスクにおいて割当て可能な楽
音発生チャネル数を示す。
PCTN 連打処理対象番号
RSEF 連打検出フラグ:連打の検出を“1”でもって示
す。
SCTN 連打比較対象番号
PASS〔PCTN〕 連打処理対象番号PCTNの楽音発生チャネ
ル番号:プリアサイン順位が連打処理対象番号PCTNの楽
音発生チャネル番号を示す。PACN Number of assignable tone generation channels of pre-signer: Indicates the number of assignable tone generation channels in the pre-assigner task. PCTN Repeated hit processing number RSEF Repeated hit detection flag: Indicates the continuous hit detection by "1". SCTN consecutive hit comparison target number PASS [PCTN] Tone generation channel number of consecutive hit processing number PCTN: Indicates the tone generation channel number of the consecutive hit processing target number PCTN.
【0040】PLEV〔PCTN〕 連打処理対象番号PCTNのプ
リアサイナ発音量:楽音発生チャネル番号が連打処理対
象番号PCTNのプリアサイナ発音量を示す。
PASS〔SCTN〕 連打比較対象番号SCTNの楽音発生チャネ
ル番号:プリアサイン順位が連打比較対象番号SCTNの楽
音発生チャネル番号を示す。
PLEV〔SCTN〕 連打比較対象番号SCTNのプリアサイナ発
音量:楽音発生チャネル番号が連打比較対象番号SCTNの
プリナサイナ発音量を示す。
〔エンベロープタスク〕
ECTN エンベロープ処理対象番号
ENNM エンベロープ処理対象ノート番号
〔ペダルタスク〕
DMPV ダンパー値
本実施例においては、各種タスク(キーデータ受信タス
ク、メインアサイナタスク、発音タスク、プリアサイナ
タスク、エンベロープタスク、ペダルタスク、操作子タ
スク)はマルチタスキングに処理が行われるとともに、
各タスク間の優先処理などはモニタプログラムにより行
われる。ここで、モニタプログラムとしてはリセットル
ーチン、イベント待ちモニタコールルーチン、イベント
発生モニタコールルーチン、タイマ割込み処理ルーチ
ン、キーデータ受信割込み処理ルーチンがある。PLEV [PCTN] Pre-Assigner Sound Generation Amount of Continuous Hitting Processing Number PCTN: The tone generation channel number indicates the pre-assigner sound output amount of the consecutive hitting processing number PCTN. PASS [SCTN] Tone generation channel number of consecutive hit comparison number SCTN: Indicates the tone generation channel number of pre-assigned rank consecutive hit comparison number SCTN. PLEV [SCTN] Pre-assigner sound output amount of consecutive hit comparison target number SCTN: Indicates the pre-signer sound output amount of the tone generation channel number of consecutive hit comparison target number SCTN. [Envelope task] ECTN Envelope processing target number ENNM Envelope processing target number [Pedal task] DMPV damper value In this embodiment, various tasks (key data receiving task, main assigner task, sounding task, pre-assigner task, envelope task) , Pedal task, operator task) are processed in multitasking,
The monitor program performs priority processing between tasks. Here, the monitor program includes a reset routine, an event wait monitor call routine, an event occurrence monitor call routine, a timer interrupt processing routine, and a key data reception interrupt processing routine.
【0041】まず、モニタプログラムについて図6〜図
10に示されているフローチャート図を参照しつつ説明
する。リセットルーチン(図6)
電源の投入時などにおいてリセットがかかると実行され
るルーチンである。各ステップZA1〜ZA3において
の処理は、次の通りである。First, the monitor program will be described with reference to the flow charts shown in FIGS. Reset Routine (FIG. 6) This routine is executed when a reset is applied when the power is turned on. The processing in each step ZA1 to ZA3 is as follows.
【0042】〔ZA1〕 タスク管理マップにおける全
てのタスク番号のステータスを“1:レディ”に設定
し、またタイマ処理要求フラグ、待ちイベント値および
イベント発生フラグを“0”に設定する。さらに、初期
設定完了フラグIEDFを“0:初期設定未完了”に設定す
るなどの初期設定を行う。
〔ZA2〕 要求元タスク番号NSTKを“1:キーデータ
受信タスク”に更新するとともに、タスク管理マップに
おけるタスク番号“1:キーデータ受信タスク”のステ
ータスを“0:ラン”に設定する。[ZA1] The statuses of all task numbers in the task management map are set to "1: ready", and the timer processing request flag, the wait event value, and the event occurrence flag are set to "0". Further, initial setting such as setting the initial setting completion flag IEDF to “0: incomplete initial setting” is performed. [ZA2] The request source task number NSTK is updated to "1: key data reception task", and the status of the task number "1: key data reception task" in the task management map is set to "0: run".
【0043】〔ZA3〕 キーデータ受信タスクを実行
する。イベント待ちモニタコールルーチン(図7)
実行中のタスクがイベント待ちモニタコールを行うと実
行されるルーチンである。各ステップZB1〜ZB5に
おいての処理は、次の通りである。
〔ZB1〕 タスク管理マップにおける要求元タスク番
号NSTKに対応するタスク番号について、要求元イベント
値NSETの2進数表現における“1”であるビットに対応
するイベント発生フラグのいずれかが“1:イベント発
生”であるか否かを判断する。この対応するイベント発
生フラグのいずれかが“1:イベント発生”である場合
には、イベント待ちモニタコールを行ったタスクに戻
る。[ZA3] The key data reception task is executed. Event wait monitor call routine (FIG. 7) This routine is executed when the task under execution makes an event wait monitor call. The processing in each step ZB1 to ZB5 is as follows. [ZB1] For the task number corresponding to the request source task number NSTK in the task management map, one of the event occurrence flags corresponding to the bit that is “1” in the binary representation of the request source event value NSET is “1: event occurrence”. It is determined whether or not it is ". If any of the corresponding event generation flags is "1: event generation", the process returns to the task that made the event wait monitor call.
【0044】なお、イベント発生フラグの判断に際し
て、例えば要求元イベント値NSETが“1”である場合に
は第1イベント発生フラグ、要求元イベント値NSETが
“2”である場合には第2イベント発生フラグ、要求元
イベント値NSETが“3”である場合には第1および第2
イベント発生フラグを判断する。
〔ZB2〕 ステップZB1における判断において、判
断対象のイベント発生フラグがいずれも“1”でなくて
イベントの発生を示していない場合には、タスク管理マ
ップにおける要求元タスク番号NSTKに対応するタスク番
号のステータスを“2:ウェイト”に設定するととも
に、待ちイベント値を要求元イベント値NSETとする。ま
た、処理の再開に備えて要求元タスクにおいて使用中の
レジスタなどの内容をスタック領域に退避するなどの中
断処理(以下、単に要求元タスクの中断処理と記する)
を行う。In determining the event occurrence flag, for example, the first event occurrence flag is set when the request source event value NSET is "1", and the second event is set when the request source event value NSET is "2". If the occurrence flag and the request source event value NSET are "3", the first and second
Determine the event occurrence flag. [ZB2] In the determination in step ZB1, when none of the determination target event occurrence flags is “1” and does not indicate the occurrence of an event, the task number corresponding to the request source task number NSTK in the task management map Set the status to "2: wait" and set the wait event value to the request source event value NSET. In addition, interruption processing such as saving the contents of registers in use in the request source task to the stack area in preparation for resumption of processing (hereinafter simply referred to as request source task interruption processing)
I do.
【0045】〔ZB3〕 タスク管理マップを調べて、
イベント待ちモニタコールを行なったタスクより優先順
位が低くかつ対応するステータスが“1:レディ”を示
す“レディ”タスクをタスク番号順に探す。このステー
タスが“1:レディ”を示す“レディ”タスクがない場
合には、要求元タスク番号NSTKをスリープを示す“8”
に設定してスリープする。なお、スリープからはタイマ
27または鍵操作検出回路からのハードウェア割込みに
もとづいて、後述するタイマ割込み処理ルーチン、また
はキーデータ受信割込み処理ルーチンが起動される。[ZB3] Check the task management map,
A "ready" task whose priority is lower than the task that made the event wait monitor call and the corresponding status indicates "1: ready" is searched for in the order of task numbers. If there is no "ready" task whose status is "1: ready", the request source task number NSTK is "8" indicating sleep.
Set to sleep. From the sleep, a timer interrupt processing routine or a key data reception interrupt processing routine, which will be described later, is activated based on a hardware interrupt from the timer 27 or the key operation detection circuit.
【0046】〔ZB4〕 ステップZB3において最優
先の“レディ”タスクを探し出すと、要求元タスク番号
NSTKをその最優先の“レディ”タスクのタスク番号に更
新するとともに、タスク管理マップにおけるその最優先
の“レディ”タスクのタスク番号のステータスを“0:
ラン”に設定する。
〔ZB5〕 要求元タスク番号NSTKに対応するタスクを
実行する。なお、タスクの実行に際しては、タスクの中
断処理においてスタック領域に退避したデータなどを元
のレジスタなどに戻すなどの再開処理(以下、単に再開
処理と記する)を行う。[ZB4] When the highest priority "ready" task is found in step ZB3, the request source task number
NSTK is updated to the task number of the highest priority "ready" task, and the status of the task number of the highest priority "ready" task in the task management map is "0:
Set to “Run”. [ZB5] Executes the task corresponding to the request source task number NSTK. When executing the task, restore the data saved in the stack area to the original registers in the task interrupt processing, etc. Restart processing (hereinafter, simply referred to as restart processing).
【0047】イベント発生モニタコールルーチン(図
8)
実行中のタスクがイベント発生モニタコールを行うと実
行されるルーチンである。各ステップZC1〜ZC7お
いての処理は、次の通りである。
〔ZC1〕 タスク管理マップにおける要求先タスク番
号NDTKに対応するタスク番号について、要求先イベント
値NDETの2進数表現における“1”であるビットに対応
するイベント発生フラグを“1”に設定する。例えば、
要求先イベント値NDETが“1”である場合には第1イベ
ント発生フラグを、要求先イベント値NDETが“2”であ
る場合には第2イベント発生フラグを“1”に設定す
る。 Event occurrence monitor call routine (Fig.
8) This routine is executed when the task under execution makes an event occurrence monitor call. The processing in each step ZC1 to ZC7 is as follows. [ZC1] For the task number corresponding to the requested task number NDTK in the task management map, the event occurrence flag corresponding to the bit that is "1" in the binary representation of the requested event value NDET is set to "1". For example,
When the requested event value NDET is "1", the first event occurrence flag is set, and when the requested event value NDET is "2", the second event occurrence flag is set to "1".
【0048】〔ZC2〕 タスク管理マップにおける要
求先タスク番号NDTKに対応するタスク番号のステータス
が“2:ウェイト”でかつ待ちイベント値が要求先イベ
ント値NDETに対応しているか否かを判断する。このステ
ータスが“2:ウェイト”でなく、または待ちイベント
値が要求先イベント値NDETに対応しない場合には、この
モニタコールを行ったタスクに戻る。[ZC2] It is determined whether or not the status of the task number corresponding to the requested task number NDTK in the task management map is "2: wait" and the wait event value corresponds to the requested event value NDET. If the status is not “2: wait” or the wait event value does not correspond to the request destination event value NDET, the task that made this monitor call is returned to.
【0049】なお、待ちイベント値が要求先イベント値
NDETに対応しているか否かの判断は、待ちイベント値の
2進数表現における“1”であるビットに対応する要求
先イベント値NDETの2進数表現におけるビットのいずれ
かのビットが“1”であるか否かによって行う。例え
ば、待ちイベント値が“1”である場合には要求先イベ
ント値NDETの第1ビットが“1”、待ちイベント値が
“2”である場合には要求先イベント値NDETの第2ビッ
トが“1”、待ちイベント値が“3”である場合には要
求先イベント値NDETの第1または第2ビットが“1”で
あるときに対応していると判断する。The wait event value is the request destination event value.
Whether or not NDET is supported is determined by checking if any of the bits in the binary representation of the requested event value NDET corresponding to the bit that is "1" in the binary representation of the wait event value is "1". Depending on whether or not there is. For example, if the wait event value is "1", the first bit of the request destination event value NDET is "1", and if the wait event value is "2", the second bit of the request destination event value NDET is When the wait event value is "1" and the wait event value is "3", it is determined that the request destination event value NDET corresponds when the first or second bit is "1".
【0050】〔ZC3〕 ステップZC2における判断
において、判断対象のステータスが“2:ウェイト”で
かつ待ちイベント値が要求先イベント値NDETに対応する
場合には、このステータスを“1:レディ”に設定す
る。
〔ZC4〕 要求先タスク番号NDTKが要求元タスク番号
NSTK未満か否かにより要求先タスクの優先順位が要求元
タスクの優先順位より高いか否かを判断する。この要求
先タスク番号NDTKが要求元タスク番号NSTK未満でなくて
要求先タスクの優先順位が高くない場合には、当該モニ
タコールを行ったタスクに戻る。[ZC3] In the determination in step ZC2, when the status of the determination target is "2: wait" and the waiting event value corresponds to the requested event value NDET, this status is set to "1: ready". To do. [ZC4] Request destination task number NDTK is the request source task number
Whether or not the priority of the requested task is higher than that of the requested task is determined by whether or not it is less than NSTK. If the request-destination task number NDTK is not less than the request-source task number NSTK and the priority of the request-destination task is not high, the task that made the monitor call is returned to.
【0051】〔ZC5〕 ステップZC4における判断
において、要求先タスク番号NDTKが要求元タスク番号NS
TK未満で要求先タスクの優先順位が高い場合には、タス
ク管理マップにおける要求元タスク番号NSTKに対応する
タスク番号のステータスを“1:レディ”に設定すると
ともに、処理の再開に備えて要求元タスクの中断処理を
行う。[ZC5] In the determination at step ZC4, the request destination task number NDTK is the request source task number NS.
If the priority of the request destination task is less than TK and the priority of the request destination task is high, the status of the task number corresponding to the request source task number NSTK in the task management map is set to "1: ready" and the request source is prepared in preparation for restarting the processing. Performs task suspension processing.
【0052】〔ZC6〕 要求元タスク番号NSTKを要求
先タスク番号NDTKに更新するとともに、タスク管理マッ
プにおける要求先タスク番号NDTKに対応するタスク番号
のステータスを“0:ラン”に設定する。
〔ZC7〕 要求先タスク番号NDTKに対応するタスク番
号のタスクを実行する。なお、タスクの実行に際しては
そのタスクの再開処理を行う。[ZC6] The request source task number NSTK is updated to the request destination task number NDTK, and the status of the task number corresponding to the request destination task number NDTK in the task management map is set to "0: run". [ZC7] The task having the task number corresponding to the requested task number NDTK is executed. When executing a task, the task is restarted.
【0053】タイマ割込み処理ルーチン(図9)
タイマ27からタイマ割込みがかかると、まず各タスク
に対応するタイマカウンタを調べ、このタイマカウンタ
の値が“1”を超えている場合にはそのタイマカウンタ
の値を“1”だけデクリメントし、“1”を超えていな
い場合にはタスク管理マップにおける当該タスクのタス
ク番号の第1イベント発生フラグを“1:イベント発
生”に設定するとともに、このタスク番号のステータス
が“2:ウェイト”であるときにはそのステータスを
“1:レディ”に設定し、次に優先順位の高いタスクか
ら順次に、タスクを実行するべきか否かを判断して最初
に条件を満たすタスクを実行させるルーチンである。各
ステップZD1〜ZD16においての処理は、次の通り
である。 Timer Interrupt Processing Routine (FIG. 9) When a timer interrupt is issued from the timer 27, the timer counter corresponding to each task is checked first, and if the value of this timer counter exceeds "1", that timer counter is processed. The value of is decremented by "1", and if it does not exceed "1", the first event occurrence flag of the task number of the task in the task management map is set to "1: event occurrence" and this task number When the status of the task is "2: wait", the status is set to "1: ready", and the task with the next highest priority is judged sequentially to determine whether or not the task should be executed, and the condition is first set. It is a routine that executes the tasks to be satisfied. The processing in each of the steps ZD1 to ZD16 is as follows.
【0054】〔ZD1〕 初期設定完了フラグIEDFが
“1:初期設定完了”であるか否かを判断する。この初
期設定完了フラグIEDFが“1”でない場合には、全ての
タスクの初期設定がいまだ終了していないために、タイ
マ割込み処理を終了してタイマ割込み前の処理に戻り、
“1”である場合には後述する各タスクの初期設定を全
て終了しているために、次のステップZD2に進む。[ZD1] It is determined whether or not the initial setting completion flag IEDF is "1: initial setting completed". If the initialization completion flag IEDF is not "1", the initialization of all tasks has not been completed yet, so the timer interrupt processing is terminated and the processing before the timer interrupt is returned.
If the value is "1", the initial setting of each task, which will be described later, has been completed, and the process proceeds to the next step ZD2.
【0055】〔ZD2〕 タイマ割込み処理対象のタス
ク番号を示すタイマ割込み処理対象番号TCTNを“7”に
設定する。
〔ZD3〕 タスク管理マップにおけるタイマ割込み処
理対象番号TCTNに対応するタスク番号のタイマ処理要求
フラグが“1:要求有り”であるか否かを判断する。こ
のタイマ処理要求フラグが“1”でない場合には、ステ
ップZD8に進む。[ZD2] The timer interrupt processing target number TCTN indicating the task number of the timer interrupt processing target is set to "7". [ZD3] It is determined whether or not the timer process request flag of the task number corresponding to the timer interrupt process target number TCTN in the task management map is "1: request". If the timer processing request flag is not "1", the process proceeds to step ZD8.
【0056】〔ZD4〕 ステップZD3における判断
において、判断対象のタイマ処理要求フラグが“1:要
求有り”である場合には、第TCTNタスクタイマカウンタ
値TCNE〔TCTN〕が“1”を超えているか否かを判断す
る。この第TCTNタスクタイマカウンタ値TCNE〔TCTN〕が
“1”を超えている場合には、ステップZD10に進
む。[ZD4] If it is determined in step ZD3 that the timer processing request flag to be determined is "1: request", does the TCTN task timer counter value TCNE [TCTN] exceed "1"? Determine whether or not. When the TCTN task timer counter value TCNE [TCTN] exceeds "1", the process proceeds to step ZD10.
【0057】〔ZD5〕 ステップZD4における判断
において、第TCTNタスクタイマカウンタ値TCNE〔TCTN〕
が“1”を超えていない場合には、まず第TCTNタスクタ
イマカウンタ値TCNE〔TCTN〕に第TCTNタスク時間間隔TC
ND〔TCTN〕を加算して、この加算した値を新たな第TCTN
タスクタイマカウンタ値TCNE〔TCTN〕とする。次に、タ
スク管理マップにおけるタイマ割込み処理対象番号TCTN
に対応するタスク番号の第1イベント発生フラグを
“1:イベント発生”に設定する。[ZD5] In the determination at step ZD4, the TCTN task timer counter value TCNE [TCTN]
If the value does not exceed “1”, first, the TCTN task timer counter value TCNE [TCTN] is set to the TCTN task time interval TC.
ND [TCTN] is added, and this added value is used as a new TCTN.
Set the task timer counter value TCNE [TCTN]. Next, the timer interrupt processing target number TCTN in the task management map
The first event occurrence flag of the task number corresponding to is set to "1: event occurrence".
【0058】〔ZD6〕 タスク管理マップにおけるタ
イマ割込み処理対象番号TCTNに対応するタスク番号のス
テータスが“2:ウェイト”でかつそのタスク番号の待
ちイベント値の2進数表現における第1ビットが“1”
(例えば、待ちイベント値が“1”,“3”)であるか
否かを判断する。このステータスが“2:ウェイト”で
ないまたは待ちイベント値の2進数表現における第1ビ
ットが“1”でない場合には、ステップZD8に進む。[ZD6] The status of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is "2: wait", and the first bit in the binary representation of the wait event value of the task number is "1".
(For example, it is determined whether or not the wait event value is “1”, “3”). If the status is not "2: wait" or the first bit in the binary representation of the wait event value is not "1", the process proceeds to step ZD8.
【0059】〔ZD7〕 ステップZD6における判断
において、判断対象のステータスが“2:ウェイト”で
かつ判断対象の待ちイベント値の2進数表現における第
1ビットが“1”である場合には、タスク管理マップに
おけるタイマ割込み処理対象番号TCTNに対応するタスク
番号のステータスを“1:レディ”に設定する。
〔ZD8〕 タイマ割込み処理対象番号TCTNが“1”を
超えているか否かを判断する。このタイマ割込み処理対
象番号TCTNが“1”を超えていない場合には、イベント
発生フラグの設定処理が全て終了したために、ステップ
ZD11に進む。[ZD7] In the determination in step ZD6, when the status of the determination target is “2: wait” and the first bit in the binary representation of the wait event value of the determination target is “1”, task management Set the status of the task number corresponding to the timer interrupt processing target number TCTN in the map to "1: ready". [ZD8] It is determined whether the timer interrupt processing target number TCTN exceeds "1". If the timer interrupt processing target number TCTN does not exceed "1", the process of setting the event occurrence flag is completed, and the process proceeds to step ZD11.
【0060】〔ZD9〕 ステップZD8における判断
において、タイマ割込み処理対象番号TCTNが“1”を超
えている場合には、タイマ割込み処理対象番号TCTNを
“1”だけデクリメントしてステップZD3に戻る。
〔ZD10〕 ステップZD4における判断において、
第TCTNタスクタイマカウンタ値TCNE〔TCTN〕が“1”を
超えている場合には、第TCTNタスクタイマカウンタ値TC
NE〔TCTN〕を“1”だけデクリメントしてステップZD
8に進む。[ZD9] If the timer interrupt processing target number TCTN exceeds "1" in the determination in step ZD8, the timer interrupt processing target number TCTN is decremented by "1" and the process returns to step ZD3. [ZD10] In the determination in step ZD4,
If the TCTN task timer counter value TCNE [TCTN] exceeds "1", the TCTN task timer counter value TC
Decrement NE [TCTN] by "1" and step ZD
Go to 8.
【0061】〔ZD11〕 タイマ割込み処理対象番号
TCTNが当該ルーチンにおいてはタイマ割込み発生前の処
理を示す要求元タスク番号NSTK未満であるか否かを判断
する。このタイマ割込み処理対象番号TCTNが要求元タス
ク番号NSTK未満でない場合には、タイマ割込み発生時に
実行していたタスクの優先順位が処理対象番号TCTNに対
応するタスクの優先順位より低くないために、タイマ割
込み処理を終了してそのタスクに戻る。[ZD11] Timer interrupt processing target number
It is determined whether TCTN is less than the request source task number NSTK indicating the processing before the timer interrupt is generated in this routine. If the timer interrupt processing target number TCTN is not less than the request source task number NSTK, the priority of the task being executed when the timer interrupt occurred is not lower than the priority of the task corresponding to the processing target number TCTN. Terminates interrupt processing and returns to the task.
【0062】〔ZD12〕 ステップZD11における
判断において、タイマ割込み処理対象番号TCTNが要求元
タスク番号NSTK未満である場合には、タスク管理マップ
におけるタイマ割込み処理対象番号TCTNに対応するタス
ク番号のステータスが“1:レディ”であるか否かを判
断する。このステータスが“1”でない場合には、ステ
ップZD16に進む。[ZD12] If it is determined in step ZD11 that the timer interrupt processing target number TCTN is less than the request source task number NSTK, the status of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is " 1: determine whether or not it is “ready”. If the status is not "1", the process proceeds to step ZD16.
【0063】〔ZD13〕 ステップZD12における
判断において、判断対象のステータスが“1:レディ”
である場合には、タスク管理マップにおける要求元タス
ク番号NSTKに対応するタスク番号のステータスを“1:
レディ”に設定するとともに、処理の再開に備えて要求
元タスク番号NSTKに対応するタスクの中断処理を行う。[ZD13] In the determination in step ZD12, the status of the determination target is "1: ready".
If it is, the status of the task number corresponding to the request source task number NSTK in the task management map is “1:
In addition to setting to "Ready", the task corresponding to the request source task number NSTK is interrupted in preparation for the resumption of processing.
【0064】〔ZD14〕 要求元タスク番号NSTKをタ
イマ割込み処理対象番号TCTNに更新するとともに、タス
ク管理マップにおけるタイマ割込み処理対象番号TCTNに
対応するタスク番号のステータスを“0:ラン”に設定
する。
〔ZD15〕 タイマイベントを発生する。言い換えれ
ば、タイマ割込み処理対象番号TCTNに対応するタスク番
号のタスクを実行する。なお、タスクの実行に際しては
そのタスクの再開処理を行う。[ZD14] The request source task number NSTK is updated to the timer interrupt processing target number TCTN, and the status of the task number corresponding to the timer interrupt processing target number TCTN in the task management map is set to "0: run". [ZD15] A timer event is generated. In other words, the task with the task number corresponding to the timer interrupt processing target number TCTN is executed. When executing a task, the task is restarted.
【0065】〔ZD16〕 ステップZD12における
判断において、判断対象のステータスが“1:レディ”
でない場合には、タイマ割込み処理対象番号TCTNを
“1”だけインクリメントしてステップZD11に戻
る。キーデータ受信割込み処理ルーチン(図10)
鍵操作検出回路から割込みがかかると実行されてキーデ
ータ受信イベントを発生するルーチンである。各ステッ
プZE1〜ZE6おいての処理は、次の通りである。[ZD16] In the determination in step ZD12, the status of the determination target is "1: ready".
If not, the timer interrupt processing target number TCTN is incremented by "1" and the process returns to step ZD11. Key data reception interrupt processing routine (FIG. 10) This routine is executed when a key operation detection circuit receives an interrupt to generate a key data reception event. The processing in each step ZE1 to ZE6 is as follows.
【0066】〔ZE1〕 初期設定完了フラグIEDFが
“1:完了”であるか否かを判断する。この初期設定完
了フラグIEDFが“1”でない場合には、全てのタスクの
初期設定がいまだ終了していないために、キーデータ受
信割込み処理を終了してキーデータ受信割込み発生前の
処理に戻る。
〔ZE2〕 ステップZE1における判断において初期
設定完了フラグIEDFが“1:完了”である場合には、タ
スク管理マップにおけるタスク番号“1:キーデータ受
信タスク”の第1イベント発生フラグを“1:発生”に
設定する。[ZE1] It is determined whether or not the initial setting completion flag IEDF is "1: complete". If the initialization completion flag IEDF is not "1", the initialization of all the tasks has not been completed yet, so the key data reception interrupt process is terminated and the process returns to the process before the generation of the key data reception interrupt. [ZE2] If the initial setting completion flag IEDF is "1: complete" in the determination at step ZE1, the first event occurrence flag of the task number "1: key data reception task" in the task management map is "1: occurred". Set to ".
【0067】〔ZE3〕 タスク管理マップにおけるタ
スク番号“1:キーデータ受信タスク”のステータスが
“2:ウェイト”でかつ待ちイベント値が“1:キーデ
ータ受信イベント待ち”であるか否かを判断する。この
ステータスが“2:ウェイト”でない、または待ちイベ
ント値が“1:キーデータ受信イベント待ち”でない場
合には、キーデータ受信割込み処理を終了してキーデー
タ受信割込み発生前の処理に戻る。[ZE3] It is determined whether or not the status of the task number "1: key data reception task" in the task management map is "2: wait" and the wait event value is "1: wait for key data reception event". To do. If the status is not "2: wait" or the wait event value is not "1: wait for key data reception event", the key data reception interrupt process is terminated and the process returns to the process before the key data reception interrupt occurs.
【0068】〔ZE4〕 ステップZE3における判断
において、判断対象のステータスが“2”でかつ待ちイ
ベント値が“1”でキーデータ受信イベント待ちである
場合には、当該ルーチンにおいてキーデータ受信割込み
発生前の処理を示す要求元タスク番号NSTKが“8”未満
であるか否かを判断する。この要求元タスク番号NSTKが
“8”未満である場合にはタスク管理マップにおける要
求元タスク番号NSTKに対応するタスク番号のステータス
を“1:レディ”に設定するとともに、処理の再開に備
えてタイマ割込み発生前のタスクの中断処理を行う。な
お、“8”未満でない場合には格別の処理は不要であ
る。[ZE4] In the determination in step ZE3, when the status of the determination target is "2", the wait event value is "1" and the key data reception event is waiting, before the key data reception interrupt is generated in the routine. It is determined whether or not the request source task number NSTK indicating the processing of is less than “8”. If the request source task number NSTK is less than "8", the status of the task number corresponding to the request source task number NSTK in the task management map is set to "1: ready" and a timer is provided in preparation for restarting the process. Performs interrupt processing of the task before the interrupt occurred. If it is not less than "8", no special processing is required.
【0069】〔ZE5〕 要求元タスク番号NSTKをタス
ク番号“1:キーデータ受信タスク”に更新するととも
に、タスク管理マップにおけるタスク番号“1:キーデ
ータ受信タスク”のステータスを“0:ラン”に設定す
る。〔ZE6〕 キーデータ受信イベントを発生する。
言い換えれば、キーデータ受信タスクを実行する。な
お、タスクの実行に際してはキーデータ受信タスクの再
開処理を行う。[ZE5] The request source task number NSTK is updated to the task number "1: key data receiving task", and the status of the task number "1: key data receiving task" in the task management map is changed to "0: run". Set. [ZE6] Generate a key data reception event.
In other words, the key data reception task is executed. When executing the task, the key data receiving task is restarted.
【0070】次に、各タスクをキーデータ受信タスク、
メインアサイナタスク、発音タスク、プリアサイナタス
ク、エンベロープタスク、ペダルタスク、操作子タスク
の順に説明する。なお、電源の投入時などにおいてリセ
ットがかかった後の各タスクでの最初の処理に際して
は、先頭のステップ、例えば次に説明するキーデータ受
信タスクではステップA1より開始する。また、あるタ
スクの処理を中断しその後処理を再開するに際しては、
このタスクにおける中断時の処理を継続するように中断
した処理を再開する。例えば、キーデータ受信タスクの
ステップA2でイベント待ちモニタコールをし、イベン
ト待ちモニタコールルーチンでの判断においてイベント
発生でなく中断処理を行った場合には、その後キーデー
タ受信割込みの発生によりキーデータ受信割込みルーチ
ンにおいて再開処理を行うと、ステップA2のイベント
待ちモニタコールに引き続くステップA3より処理を再
開する。Next, each task is a key data receiving task,
The main assigner task, the pronunciation task, the pre-assigner task, the envelope task, the pedal task, and the operator task will be described in this order. In addition, at the time of the first processing in each task after the reset is applied at the time of turning on the power, etc., it starts from the first step, for example, the key data receiving task described below from step A1. Also, when interrupting the processing of a certain task and restarting the processing after that,
The suspended process is restarted so that the process at the time of suspension in this task is continued. For example, if an event wait monitor call is made in step A2 of the key data reception task and interrupt processing is performed instead of an event occurrence in the judgment in the event wait monitor call routine, then key data reception interrupt occurs and the key data reception When the restart processing is performed in the interrupt routine, the processing is restarted from step A3 following the event waiting monitor call in step A2.
【0071】キーデータ受信タスク(図11)
キーデータ受信イベントが発生すると、鍵操作検出回路
からキーデータを読み込み、アサイン要求イベントを発
生するタスクである。各ステップA1〜A7においての
処理は、次の通りである。
〔A1〕 ノートマップをクリヤするとともに、当該キ
ーデータ受信タスクで占有する変数などを初期値に設定
する。 Key data receiving task (FIG. 11) When a key data receiving event occurs, the key data is read from the key operation detecting circuit and an assignment request event is generated. The processing in each of the steps A1 to A7 is as follows. [A1] Clear the note map and set variables and the like occupied by the key data receiving task to initial values.
【0072】〔A2〕 要求元イベント値NSETを“1”
に設定してイベント待ちモニタコールを行う。キーデー
タ受信イベントが発生すると、次のステップA3に進
む。
〔A3〕 タスク管理マップにおけるタスク番号“1:
キーデータ受信タスク”の第1イベント発生フラグを
“0”に、待ちイベント値を“0”に設定する。
〔A4〕 鍵操作検出回路からキーデータを読み込み、
このキーデータのノート番号、ノートステータスおよび
ノートベロシティを各対応するところのノート番号NTN
M、ノートステータスNTSTおよびベロシティNTVLとす
る。[A2] Request source event value NSET is set to "1"
Set to and make an event wait monitor call. When the key data reception event occurs, the process proceeds to the next step A3. [A3] Task number “1:” in the task management map
The first event occurrence flag of the "key data reception task" is set to "0" and the wait event value is set to "0." [A4] The key data is read from the key operation detection circuit,
The note number, note status and note velocity of this key data corresponds to the note number NTN
M, note status NTST and velocity NTVL.
【0073】〔A5〕 ノートステータスNTSTが“1:
押鍵”であるか否かを判断する。このノートステータス
NTSTが“1”でない場合には次のステップA6に進み、
“1”である場合にはステップA7に進む。
〔A6〕 離鍵処理
ノートマップにおけるノート番号NTNMに対応するノート
番号のノートステータスを“0”に設定し、ステップA
2に戻る。[A5] Note status NTST is "1:"
It is determined whether or not the key is pressed. This note status
If NTST is not "1", go to the next step A6,
If it is "1", the process proceeds to step A7. [A6] The note status of the note number corresponding to the note number NTNM in the key release processing note map is set to "0", and step A
Return to 2.
【0074】〔A7〕 押鍵処理
まず、ノートマップにおけるノート番号NTNMに対応する
ノート番号のノートステータスを“1”に設定する。次
に、アサイン要求イベントを発生する。言い換えれば、
要求先タスク番号NDTKを“2:メインアサイナタスク”
に、要求先イベント値NDETを“1”に設定してイベント
発生モニタコールを行う。そして、ステップA2に戻
る。[A7] Key Depressing Process First, the note status of the note number corresponding to the note number NTNM in the note map is set to "1". Next, an assign request event is generated. In other words,
Requested task number NDTK is "2: Main assigner task"
Then, the requested event value NDET is set to "1" and an event occurrence monitor call is made. Then, the process returns to step A2.
【0075】メインアサイナタスク(図12)
アサイン要求イベントが発生すると、後述するプリアサ
イナタスクで設定するアサイン順位にもとづいて、楽音
発生チャネル管理マップの所定の領域にノート番号NTNM
などを書き込み、発音要求イベントを発生するタスクで
ある。各ステップB1〜B7においての処理は、次の通
りである。When an assign request event occurs in the main assigner task (FIG. 12) , the note number NTNM is displayed in a predetermined area of the tone generation channel management map based on the assign order set in the pre-assigner task described later.
It is a task to write the etc. and generate a pronunciation request event. The processing in each of the steps B1 to B7 is as follows.
【0076】〔B1〕 楽音発生チャネル管理マップを
クリヤするとともに、このメインアサイナタスクで占有
する変数などを初期値に設定する。また、第Nアサイン
順位楽音発生チャネル番号MASS〔N 〕(Nは0,1,…15)
を各対応する“N( =0,1,─15) ”に設定する。また、
対象アサイン順位TASNを“0”に、割当て可能楽音発生
チャネル数GACNを最大数の“16”に設定する。[B1] The tone generation channel management map is cleared and the variables occupied by this main assigner task are set to initial values. Also, the N-th assigned musical tone generation channel number MASS [N] (N is 0, 1, ... 15)
To each corresponding "N (= 0,1, -15)". Also,
The target assign order TASN is set to "0", and the number of allocatable tone generation channels GACN is set to "16" which is the maximum number.
【0077】〔B2〕 要求元イベント値NSETを“1”
に設定してイベント待ちモニタコールを行う。また、ア
サイン要求イベントが発生すると、次のステップB3に
進む。
〔B3〕 タスク管理マップにおけるタスク番号“2:
メインアサインタスク”の待ちイベント値を“0”に、
第1イベント発生フラグを“0”に設定する。[B2] Request source event value NSET is set to "1".
Set to and make an event wait monitor call. When an assign request event occurs, the process proceeds to the next step B3. [B3] Task number “2: in task management map”
Set the wait event value of "main assigned task" to "0",
The first event occurrence flag is set to "0".
【0078】〔B4〕 対象アサイン順位TASNが割当て
可能楽音発生チャネル数GACN未満であるか否かを判断す
る。この対象アサイン順位TASNが割当て可能楽音発生チ
ャネル数GACN未満でない場合には、割当てるべき楽音発
生チャネルが最早やないためにステップB2に戻る。
〔B5〕 ステップB4における判断において対象アサ
イン順位TASNが割当て可能楽音発生チャネル数GACN未満
である場合、楽音発生チャネル管理マップにおけるアサ
イン順位TASNの楽音発生チャネル番号MASS〔TASN〕に対
応する楽音発生チャネル番号の処理待ちフラグ1、処理
待ちフラグ2および処理待ちフラグ3を“1; 処理待ち
中”に、ノート番号をノート番号NTNMに、ノートステー
タスを“1”に、べロシティをベロシティNTVLに設定す
る。また、メインアサイナ処理中フラグMAEFを“1:メ
インアサイナ処理中”に設定する。[B4] It is determined whether or not the target assign order TASN is less than the number of allocatable tone generation channels GACN. If the target assignment order TASN is not less than the number of allocatable tone generation channels GACN, there is no more tone generation channel to be assigned anymore, and the process returns to step B2. [B5] If the target assignment order TASN is less than the number of assignable tone generation channels GACN in the determination in step B4, the tone generation channel number corresponding to the tone generation channel number MASS [TASN] of the assignment order TASN in the tone generation channel management map The processing wait flag 1, the processing wait flag 2, and the processing wait flag 3 are set to "1; waiting for processing", the note number to the note number NTNM, the note status to "1", and the velocity to the velocity NTVL. Further, the main assigner processing flag MAEF is set to "1: main assigner processing".
【0079】〔B6〕 発音要求イベントを発生する。
言い換えれば、要求先タスク番号NDTKを“3:発音タス
ク”に、要求先イベント値NDETを“2”に設定してイベ
ント発生モニタコールを行う。
〔B7〕 対象アサイン順位TASNを“1”だけインクリ
メントしてステップB2に戻る。[B6] A sounding request event is generated.
In other words, the request generation task number NDTK is set to "3: sounding task" and the request destination event value NDET is set to "2" to make an event occurrence monitor call. [B7] The target assignment order TASN is incremented by "1" and the process returns to step B2.
【0080】発音タスク(図13(A)(B))
発音要求イベントが発生すると新たな楽音を発生する楽
音発生チャネルにおいて前の発音が終了していない場合
には急速減衰の開始を指示し(第1処理)、またノート
番号NTNMなどにもとづいて楽音発生に関するパラメータ
を演算して設定し(第2処理)、さらに発音が終了して
いた、または終了した場合には楽音発生チャネルに新た
な発音を指示する(第3処理)タスクである。各ステッ
プC1〜C27においての処理は、次の通りである。Sounding task (FIGS. 13 (A) and (B)) A new sound is generated when a sound generation request event occurs. If the previous sound generation is not finished in the sound generation channel, the start of rapid attenuation is instructed ( (1st processing), based on the note number NTNM, etc., parameters for musical tone generation are calculated and set (2nd processing), and when the pronunciation is finished, or when finished, a new pronunciation is made to the musical tone generation channel. Is a task for instructing (third processing). The processing in steps C1 to C27 is as follows.
【0081】〔C1〕 当該タスクで占有する変数など
を初期値に設定するとともに、急速減衰を終了した楽音
発生チャネル番号を記憶する急速減衰終了FIFOをク
リヤするなどするとともに、楽音発生回路30を初期化
する。また、第3タスクタイマカウンタ値TCNE〔3〕
と、第3タスク時間間隔TCND〔3〕とを“0”に設定す
るとともに、タスク管理マップにおけるタスク番号
“3:発音タスク”のタイマ処理要求フラグを“1:要
求有り”に設定する。[C1] The variables occupied by the task are set to initial values, the rapid decay end FIFO storing the tone generation channel number for which rapid decay is terminated is cleared, and the tone generation circuit 30 is initialized. Turn into. Also, the third task timer counter value TCNE [3]
And the third task time interval TCND [3] are set to "0", and the timer processing request flag of the task number "3: sounding task" in the task management map is set to "1: request".
【0082】〔C2〕 要求元イベント値NSETを“2”
に設定してイベント待ちモニタコールを行う。なお、発
音要求イベントが発生すると、次のステップC3に進
む。
〔C3〕 まず、タスク管理マップにおけるタスク番号
“3:発音タスク”の待ちイベント値を“0”に、第2
イベント発生フラグを“0”に設定して、次に発音処理
対象楽音発生チャネル番号GCTNを“0”に設定する。[C2] Request source event value NSET is set to "2"
Set to and make an event wait monitor call. When a sound generation request event occurs, the process proceeds to the next step C3. [C3] First, the wait event value of the task number "3: sounding task" in the task management map is set to "0", and the second
The event generation flag is set to "0", and then the tone generation target tone generation channel number GCTN is set to "0".
【0083】〔C4〕 楽音発生チャネル管理マップに
おける発音処理対象楽音発生チャネル番号GCTNに対応す
る楽音発生チャネル番号の処理待ちフラグ1が“1:処
理待ち中”であるか否かを判断する。この処理待ちフラ
グ1が“1”である場合には次のステップC5に進み、
“1”でなくて第1処理(ステップC5〜C7)が不要
である場合にはステップC8に進む。[C4] It is determined whether or not the processing wait flag 1 of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is "1: waiting for processing". If the processing wait flag 1 is "1", the process proceeds to the next step C5,
If it is not "1" and the first process (steps C5 to C7) is unnecessary, the process proceeds to step C8.
【0084】〔C5〕 エンベロープ管理マップにおけ
る発音処理対象楽音発生チャネル番号GCTNに対応するエ
ンベロープチャネル番号のエンベロープレベルが“0”
であるか否かを判断する。このエンベロープレベルが
“0”でない場合には次のステップC6に進み、“0”
で急速減衰処理が不要である場合にはステップC7に進
む。[C5] The envelope level of the envelope channel number corresponding to the tone generation channel number GCTN to be sounded in the envelope management map is "0".
Or not. If the envelope level is not "0", the process proceeds to the next step C6, and is "0".
If the rapid damping process is unnecessary in step C7, the process proceeds to step C7.
【0085】〔C6〕 楽音発生チャネル管理マップに
おける発音処理対象楽音発生チャネル番号GCTNに対応す
る楽音発生チャネル番号の急速減衰中フラグを“1; 急
速減衰中”に、発音量を急速減衰中を示す“FFFF
H" に設定するとともに、対応する楽音発生チャネルに
急速減衰を指示する。なお、急速減衰の指示に際しては
目標値を“0”に、レートを急速減衰用のレートに設定
して対応する楽音発生チャネルに転送する。[C6] The rapid decay flag of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is set to "1;"FFFF
Set to H "and instruct the corresponding tone generation channel to perform rapid attenuation. When instructing rapid attenuation, set the target value to" 0 "and set the rate to the rapid attenuation rate to generate the corresponding tone. Transfer to channel.
【0086】〔C7〕 楽音発生チャネル管理マップに
おける発音処理対象楽音発生チャネル番号GCTNに対応す
る楽音発生チャネル番号の処理待ちフラグ1を“0”に
設定する。
〔C8〕 発音処理対象楽音発生チャネル番号GCTNが
“15”未満であるか否かを判断する。この楽音処理対
象楽音発生チャネル番号GCTNが“15”未満である場合
には次のステップC9に進み、“15”未満でなくて全
ての楽音発生チャネルについて第1処理を終えている場
合にはステップC10に進む。[C7] The processing wait flag 1 of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map is set to "0". [C8] It is determined whether the tone generation channel number GCTN to be sounded is less than "15". If the tone generation channel number GCTN subject to the tone processing is less than "15", the process proceeds to the next step C9. If the tone generation channel number GCTN is not less than "15" and the first process has been completed for all tone generation channels, the step is performed. Proceed to C10.
【0087】〔C9〕 発音処理対象楽音発生チャネル
番号GCTNを“1”だけインクリメントし、次の楽音発生
チャネルの処理の準備を行ってステップC4に戻る。
〔C10〕 発音処理対象楽音発生チャネル番号GCTNを
“0”に設定する。
〔C11〕 楽音発生チャネル管理マップにおける発音
処理対象楽音発生チャネル番号GCTNに対応する楽音発生
チャネル番号の処理待ちフラグ2が“1:処理待ち中”
であるか否かを判断する。この処理待ちフラグ2が
“1”である場合には次のステップC12に進み、
“1”でなくて第2処理(ステップC12)が不要であ
る場合にはステップC13に進む。[C9] The tone generation target tone generation channel number GCTN is incremented by "1" to prepare for the processing of the next tone generation channel, and the process returns to step C4. [C10] The tone generation channel number GCTN to be sounded is set to "0". [C11] The processing wait flag 2 of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is set to "1: waiting for processing".
Or not. If the processing wait flag 2 is "1", the process proceeds to the next step C12,
If it is not "1" and the second process (step C12) is unnecessary, the process proceeds to step C13.
【0088】〔C12〕 発音処理対象楽音発生チャネ
ル番号GCTNに対応する楽音発生チャネルの、楽音の発生
と楽音のエンベロープ生成とに関する各種パラメータの
値を、楽音発生チャネル管理マップにおける発音処理対
象楽音発生チャネル番号GCTNに対応する楽音発生チャネ
ル番号のノート番号、ベロシティおよび後述する操作子
データ受信タスクのステップG4において設定される音
色パラメータ群より演算して、これら演算された各種パ
ラメータの値を、楽音発生チャネル管理マップにおける
発音処理対象楽音発生チャネル番号GCTNに対応する楽音
発生チャネル番号の楽音発生パラメータ群およびエンベ
ロープ管理マップにおける発音処理対象楽音発生チャネ
ル番号GCTNに対応するエンベロープチャネル番号のエン
ベロープ生成パラメータ群の対応するパラメータに設定
する。同時に、処理待ちフラグ2を“0”に設定する。[C12] The tone generation target tone generation channel in the tone generation channel management map is set to the values of various parameters relating to the tone generation and tone envelope generation of the tone generation channel corresponding to the tone generation target tone generation channel number GCTN. The note number of the tone generation channel number corresponding to the number GCTN, the velocity, and the tone color parameter group set in step G4 of the operator data reception task described later are calculated, and the values of the various calculated parameters are calculated. Musical tone generation channel number of tone generation target tone generation channel number in management map and musical tone generation parameter group of tone generation target tone generation channel number in envelope management map and envelope generation parameter of envelope channel number corresponding to tone generation target tone generation channel number GCTN in management map Set of the corresponding parameter. At the same time, the processing wait flag 2 is set to "0".
【0089】〔C13〕 発音処理対象楽音発生チャネ
ル番号GCTNが“15”未満であるか否かを判断する。こ
の発音処理対象楽音発生チャネル番号GCTNが“15”未
満である場合には次のステップC14に進み、“15”
未満でない場合にはステップC15に進む。
〔C14〕 発音処理対象楽音発生チャネル番号GCTNを
“1”だけインクリメントしてステップC11に戻る。[C13] It is determined whether or not the tone generation target tone generation channel number GCTN is less than "15". If the tone generation channel number GCTN to be sounded is less than "15", the process proceeds to the next step C14, and is "15".
If it is not less than, it proceeds to step C15. [C14] The tone generation channel number GCTN to be sounded is incremented by "1" and the process returns to step C11.
【0090】〔C15〕 急速減衰未了フラグTDNFを
“0”に、発音処理対象楽音発生チャネル番号GCTNを
“0”に設定する。
〔C16〕 楽音発生チャネル管理マップにおける発音
処理対象楽音発生チャネル番号GCTNに対応する楽音発生
チャネル番号の処理待ちフラグ3が“1:処理待ち中”
であるか否かを判断する。この処理待ちフラグ3が
“1”である場合には次のステップC17に進み、
“1”でなくて第3処理(ステップC17,C18,C
21)が不要である場合にはステップC19に進む。[C15] The rapid decay incomplete flag TDNF is set to "0", and the tone generation target tone generation channel number GCTN is set to "0". [C16] The processing wait flag 3 of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is set to "1: waiting for processing".
Or not. When the processing wait flag 3 is "1", the process proceeds to the next step C17,
Not the "1" but the third process (steps C17, C18, C
If step 21) is unnecessary, the process proceeds to step C19.
【0091】〔C17〕 楽音発生チャネル管理マップ
における発音処理対象楽音発生チャネル番号GCTNに対応
する楽音発生チャネル番号の急速減衰中フラグが“1:
急速減衰中”であるか否かを判断する。この急速減衰中
フラグが“1”でない場合には次のステップC18に進
み、“1”である場合には割当てるべき楽音発生チャネ
ルにおける従前に割当てられていた楽音の発音がいまだ
終了していないために、ステップC21に進む。[C17] The rapid decay flag of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is "1:".
It is determined whether or not "during rapid decay". If the rapid decay flag is not "1", the process proceeds to the next step C18, and if "1", it is assigned before in the tone generation channel to be assigned. Since the pronunciation of the musical tone that has been played has not been finished yet, the process proceeds to step C21.
【0092】〔C18〕 エンベロープ管理マップにお
ける発音処理対象楽音発生チャネル番号GCTNに対応する
エンベロープチャネル番号のエンベロープ生成パラメー
タ群にもとづいて第1フェーズの目標値、レートおよび
トランケート禁止フェーズ番号を演算してそれらの値な
どにエンベロープ管理マップの目標値、レートおよびト
ランケート禁止フェーズ番号を設定するとともに、フェ
ーズ番号を“1”に、エンベロープレベルを“0”に設
定する。[C18] The target value of the first phase, the rate, and the truncation prohibition phase number are calculated and calculated based on the envelope generation parameter group of the envelope channel number corresponding to the tone generation channel number GCTN to be sounded in the envelope management map. The target value of the envelope management map, the rate and the truncation prohibition phase number are set to the value of, and the phase number is set to "1" and the envelope level is set to "0".
【0093】なお、楽音発生チャネル管理マップにおけ
る発音処理対象楽音発生チャネル番号GCTNに対応する楽
音発生チャネル番号の発音量を、エンベロープ生成パラ
メータ群に含まれるアタックレベルの上位15ビットに
“8000H”を加算した値に、トランケート禁止フラ
グを“1:トランケート禁止”に設定する。また、楽音
発生チャネル管理マップにおける発音処理対象楽音発生
チャネル番号GCTNに対応する楽音発生チャネル番号の楽
音発生パラメータ群とエンベロープ管理マップにおける
発音処理対象楽音発生チャネル番号GCTNに対応するエン
ベロープチャネル番号の目標値およびレートとを、楽音
発生回路30における発音処理対象楽音発生チャネル番
号GCTNに対応する楽音発生チャネルに転送する。また、
処理待ちフラグ3を“0”に設定するとともに、対応す
る楽音発生チャネルに楽音発生の開始を指示する。Incidentally, "8000H" is added to the upper 15 bits of the attack level included in the envelope generation parameter group, for the pronunciation amount of the tone generation channel number corresponding to the tone generation channel number GCTN to be processed in the tone generation channel management map. The truncation prohibition flag is set to "1: truncation prohibition" to the specified value. In addition, the tone generation parameter group of the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN in the tone generation channel management map and the target value of the envelope channel number corresponding to the tone generation target tone generation channel number GCTN in the envelope management map And the rate are transferred to the tone generation channel corresponding to the tone generation target tone generation channel number GCTN in the tone generation circuit 30. Also,
The processing wait flag 3 is set to "0" and the corresponding tone generation channel is instructed to start tone generation.
【0094】〔C19〕 発音処理対象楽音発生チャネ
ル番号GCTNが“15”未満であるか否かを判断する。こ
の発音処理対象楽音発生チャネル番号GCTNが“15”未
満である場合には次のステップC20に進み、“15”
未満でない場合にはステップC22に進む。
〔C20〕 発音処理対象楽音発生チャネル番号GCTNを
“1”だけインクリメントしてステップC16に戻る。[C19] It is determined whether or not the tone generation target tone generation channel number GCTN is less than "15". When the tone generation channel number GCTN to be sounded is less than "15", the process proceeds to the next step C20, and is "15".
When it is not less than, it proceeds to step C22. [C20] The tone generation channel number GCTN to be sounded is incremented by "1" and the process returns to step C16.
【0095】〔C21〕 急速減衰未了フラグTDNFを
“1:未了”に設定してステップC19に進む。
〔C22〕 急速減衰未了フラグTDNFが“1:未了”で
あるか否かを判断する。この急速減衰未了フラグTDNFが
“1”である場合には次のステップC23に進み、
“1”でなく全ての発音処理が終了している場合にはス
テップC2に戻る。[C21] The rapid damping incomplete flag TDNF is set to "1: incomplete", and the process proceeds to step C19. [C22] It is determined whether or not the rapid decay incomplete flag TDNF is "1: incomplete". When the rapid decay incomplete flag TDNF is "1", the process proceeds to the next step C23,
If it is not "1" and all tone generation processing has been completed, the process returns to step C2.
【0096】〔C23〕 要求元イベント値NSETを
“3”に設定してイベント待ちモニタコールを行う。な
お、発音要求イベントまたは発音タスクに対するタイマ
イベントのいずれかが発生すると、次のステップC24に
進む。
〔C24〕 タスク管理マップにおけるタスク番号
“3:発音タスク”の第2イベント発生フラグが“1”
であるか否かを判断する。この第2イベント発生フラグ
が“1”でない場合には次のステップC25に進み、
“1”である場合には発音要求イベントの発生であるた
めに、ステップC3に戻る。[C23] The request source event value NSET is set to "3" and an event wait monitor call is made. When either the sound generation request event or the timer event for the sound generation task occurs, the process proceeds to the next step C24. [C24] The second event occurrence flag of the task number "3: Sounding task" in the task management map is "1".
Or not. When the second event occurrence flag is not "1", the process proceeds to the next step C25,
If it is "1", it means that a sound generation request event has occurred, and therefore the process returns to step C3.
【0097】〔C25〕 タスク管理マップにおけるタ
スク番号“3:発音タスク”の第1イベント発生フラグ
が“1”であるタイマイベントの発生であるために、タ
スク管理マップにおけるタスク番号“3:発音タスク”
の待ちイベント値を“0”に、第1イベント発生フラグ
を“0”に設定する。
〔C26〕 楽音発生回路30に設けられている急速減
衰終了FIFOが“空”であるか否か判断する。この急
速減衰終了FIFOが“空”である場合にはステップC
23に戻り、“空”でない場合には次のステップC27
に進む。。[C25] Since the timer event in which the first event occurrence flag of the task number “3: Sounding task” in the task management map is “1”, the task number “3: Sounding task” in the task management map is generated. ”
The wait event value of 1 is set to "0", and the first event occurrence flag is set to "0". [C26] It is determined whether or not the rapid attenuation end FIFO provided in the musical sound generating circuit 30 is “empty”. If this rapid decay end FIFO is "empty", step C
23, and if it is not "empty", the next step C27
Proceed to. .
【0098】〔C27〕 急速減衰終了FIFOから急
速減衰処理によりエンベロープレベルが“0”になった
楽音発生チャネルの楽音発生チャネル番号を順次に降ろ
し、この降ろした楽音発生チャネル番号に対応する楽音
発生チャネル管理マップにおける楽音発生チャネル番号
の急速減衰中フラグを“0”に設定する。そして、ステ
ップC15に戻る。[C27] The tone generation channel numbers of the tone generation channels whose envelope levels have become "0" by the rapid decay processing from the rapid decay end FIFO are sequentially lowered, and the tone generation channels corresponding to the lowered tone generation channel numbers are sequentially dropped. The rapid decay flag of the tone generation channel number in the management map is set to "0". Then, the process returns to step C15.
【0099】プリアサイナタスク(図14)
プリアサイナタスクに対応するタイマイベントが発生す
ると実行を開始し、発音量にもとづいてアサイン順位を
更新するタスクである。各ステップD1〜D13におい
ての処理は、次の通りである。
〔D1〕 エンベロープ管理マップをクリヤするととも
に、このプリアサイナタスクで占有する変数などを初期
値に設定する。また、第4タスクタイマカウンタ値TCNE
〔4〕を“5”に、第4タスク時間間隔TCND〔4〕を
“4”に設定する。さらに、タスク管理マップにおける
タスク番号“4:プリアサイナタスク”のタイマ処理要
求フラグを“1:要求有り”に設定する。 Pre-assigner task (FIG. 14) This task starts execution when a timer event corresponding to the pre-assigner task occurs, and updates the assignment order based on the tone generation amount. The processing in each of the steps D1 to D13 is as follows. [D1] The envelope management map is cleared and the variables occupied by this pre-assigner task are set to initial values. Also, the fourth task timer counter value TCNE
[4] is set to "5" and the fourth task time interval TCND [4] is set to "4". Further, the timer processing request flag of the task number “4: pre-assigner task” in the task management map is set to “1: request”.
【0100】〔D2〕 要求元イベント値NSETを“1”
に設定してイベント待ちモニタコールを行う。なお、プ
リアサイナタスクに対するタイマイベントが発生する
と、次のステップD3に進む。
〔D3〕 タスク管理マップにおけるタスク番号“4:
プリアサイナタスク”の待ちイベント値を“0”に、第
1イベント発生フラグを“0”に設定する。[D2] Request source event value NSET is set to "1"
Set to and make an event wait monitor call. When a timer event for the pre-assigner task occurs, the process proceeds to the next step D3. [D3] Task number “4: in task management map”
The wait event value of the "pre-signer task" is set to "0" and the first event occurrence flag is set to "0".
【0101】〔D4〕 第Nプリアサイン順位楽音発生
チャネル番号PASS〔N 〕を各対応する“N( =0,1,・・・・
15) ”に設定する。ここで、第Nプリアサイン順位楽音
発生チャネル番号PASS〔N 〕は第Nプリアサイン順位の
楽音発生チャネルの楽音発生チャネル番号を示す。
〔D5〕 メインアサイナ処理中フラグMAEFを“0”に
設定する。[D4] The N-th pre-assigned order musical tone generation channel number PASS [N] is assigned to each corresponding "N (= 0,1, ...
15) ”is set here, where the Nth preassigned tone generation channel number PASS [N] indicates the tone generation channel number of the Nth preassigned tone generation channel. [D5] Main assigner processing flag MAEF is set. Set to "0".
【0102】〔D6〕 発音タスクのステップC6,C
18で設定されて後述するエンベロープタスクのステッ
プE13などにおいて更新されるところの楽音発生チャ
ネル管理マップの各楽音発生チャネル番号の発音量を、
楽音発生チャネル番号GNのプリアサイナ発音量PLEV〔G
N〕とするとともに、発音量が“8000H" 未満であ
る楽音発生チャネル(言い換えれば、いわゆるADSR
表現におけるアタックを終了しておりかつ急速減衰中で
はない楽音発生チャネル)の数を調べて、プリアサイナ
割当て可能楽音発生チャネル数PACNとする。[D6] Steps C6 and C of the sounding task
The tone generation amount of each tone generation channel number in the tone generation channel management map set in step 18 and updated in step E13 of the envelope task described later,
Tone generation channel number GN pre-assigner sound volume PLEV (G
N] and a tone generation channel whose tone generation amount is less than “8000H” (in other words, so-called ADSR
The number of musical tone generation channels that have completed the attack in the expression and are not being rapidly attenuated) is determined as the number of musical tone generation channels PACN that can be assigned to the pre-assigner.
【0103】〔D7〕 第Nプリアサイン順位楽音発生
チャネル番号PASS〔N 〕を対応する楽音発生チャネル番
号GNのプリアサイナ発音量PLEV〔GN〕の小なる順に並べ
換える。例えば、プリアサイナ発音量PLEV〔GN〕がPLEV
〔3〕<PLEV〔5〕<PLEV〔2〕・・・の順であれば、
第Nプリアサイン順位楽音発生チャネル番号PASS〔N〕
はPASS[D7] The N-th pre-assigned order tone generation channel number PASS [N] is rearranged in ascending order of the pre-assigner tone generation amount PLEV [GN] of the corresponding tone generation channel number GN. For example, the pre-assigner pronunciation volume PLEV [GN] is PLEV.
If [3] <PLEV [5] <PLEV [2] ...
Nth pre-assigned priority sound generation channel number PASS [N]
Is PASS
〔0〕=3、PASS〔1〕=5、PASS〔2〕=2・
・・とする。[0] = 3, PASS [1] = 5, PASS [2] = 2.
・ ・
【0104】〔D8〕 連打処理ルーチンを実行する。
この連打処理ルーチンの内容は、図15に示されている
フローチャート図により後に詳細に説明する。
〔D9〕 タスクロックをかける。言い換えれば、鍵操
作検出回路、タイマ回路27からの割込みを禁止する。
このタスクロックが解除されるまで他のタスクの実行は
禁止され、当該タスクの実行の継続は保証される。[D8] The continuous hit processing routine is executed.
The contents of this continuous hitting processing routine will be described later in detail with reference to the flow chart shown in FIG. [D9] Lock the task. In other words, the interrupt from the key operation detection circuit and the timer circuit 27 is prohibited.
Execution of other tasks is prohibited until the task lock is released, and the continuation of execution of the task is guaranteed.
【0105】〔D10〕 メインアサイナ処理中フラグ
MAEFが“0:非処理中”であるか否かを判断する。この
メインアサイナ処理フラグMAEFが“0”である場合には
ステップD12に進む。
〔D11〕 ステップD10の判断においてメインアサ
イナ処理中フラグMAEFが“0”でない場合、言い換えれ
ばステップD6〜D8の処理中に鍵盤部における新たな
鍵操作などにもとづく一連の処理によりメインアサイナ
タスクが実行されると、楽音発生チャネルの発音態様が
ステップD6の開始時と異なっているために、タスクロ
ックを解除して再設定をするべくステップD4に戻る。[D10] Main assigner processing flag
It is determined whether or not MAEF is “0: Not processing”. When the main assigner processing flag MAEF is "0", the process proceeds to step D12. [D11] If the main assigner processing flag MAEF is not "0" in the determination of step D10, in other words, the main assigner task is executed by a series of processing based on a new key operation on the keyboard during the processing of steps D6 to D8. Then, since the tone generation mode of the tone generation channel is different from that at the start of step D6, the process returns to step D4 to release the task lock and reset.
【0106】〔D12〕 まず、第Nプリアサイン順位
楽音発生チャネル番号PASS〔N 〕を各対応する第Nアサ
イン順位楽音発生チャネル番号MASS〔N 〕とするととも
に、対象アサイン順位TASNを“0”に設定する。また、
プリアサイナ割当て可能楽音発生チャネル数PACNを割当
て可能楽音発生チャネル数GACNとする。
〔D13〕 タスクロックを解除してステップD2に戻
る。なお、タスクロック中に発生した割込みはタスクロ
ック解除後に実行される。[D12] First, the N-th pre-assigned musical tone generation channel number PASS [N] is set to the corresponding N-th assigned musical tone generation channel number MASS [N], and the target assignment sequence TASN is set to "0". Set. Also,
The number of musical sound generation channels that can be assigned to pre-signer PACN is the number of musical sound generation channels that can be assigned to GACN. [D13] The task lock is released and the process returns to step D2. An interrupt that occurs during task lock is executed after task lock is released.
【0107】連打処理ルーチン(図15)
楽音発生チャネル番号GNのプリアサイナ発音量PLEV〔G
N〕の小さい楽音発生チャネルから順に連打関係を調
べ、連打である場合には楽音発生チャネル番号GNのプリ
アサイナ発音量PLEV〔GN〕を1/10に減少させて再設
定するルーチンである。各ステップD801〜D814
においての処理は、次の通りである。Repeated Stroke Processing Routine (FIG. 15) Pre-Assigner Sound Volume PLEV [G of Musical Sound Generation Channel Number GN
This is a routine for checking the consecutive hitting relationship in order from the tone generation channel having the smallest N], and in the case of consecutive hits, reducing the pre-assigner tone generation amount PLEV [GN] of the tone generation channel number GN to 1/10 and resetting. Each step D801 to D814
The processing in is as follows.
【0108】〔D801〕 連打処理対象番号PCTNおよ
び連打検出フラグRSEFを“0”に設定する。
〔D802〕 連打処理対象番号PCTNがプリアサイナ割
当て可能楽音発生チャネル数PACNを超えているか否か、
または“15”であるか否かを判断する。この連打処理
対象番号PCTNがプリアサイナ割当て可能楽音発生チャネ
ル数PACNを超えているまたは“15”である場合には割
当て可能な楽音発生チャネル全てまたは最終チャネルを
除く楽音発生チャネルについての連打検出が終了したた
めにステップD813に進み、超えていなくてかつ“1
5”でない場合には次のステップD803に進む。[D801] The consecutive hit processing target number PCTN and the consecutive hit detection flag RSEF are set to "0". [D802] Whether or not the continuous hit processing target number PCTN exceeds the number of musical sound generation channels PACN that can be assigned to the pre-assigner,
Alternatively, it is determined whether or not it is "15". If this continuous hit processing target number PCTN exceeds the number of pre-assigner allocatable tone generation channels PACN or is "15", consecutive hit detection for all allocatable tone generation channels or all tone generation channels except the last channel has been detected. To step D813, and if not exceeded and "1
If it is not 5 ", the process proceeds to the next step D803.
【0109】〔D803〕 連打処理対象番号PCTNの楽
音発生チャネル番号のプリアサイナ発音量PLEV〔PASS
〔PCTN〕〕が“0”を超えているか否かを判断する。こ
のプリアサイナ発音量PLEV〔PASS〔PCTN〕〕が“0”を
超えていない場合には次のステップD804に進み、
“0”を超えている場合にはステップD805に進む。
〔D804〕 連打処理対象番号PCTNを“1”だけイン
クリメントして、ステップD802に戻る。[D803] Pre-assigner sound output amount PLEV [PASS of tone generation channel number of continuous hit processing number PCTN
It is determined whether [PCTN]] exceeds “0”. When this pre-assigner pronunciation amount PLEV [PASS [PCTN]] does not exceed "0", the process proceeds to the next step D804,
If it exceeds "0", the process proceeds to step D805. [D804] The continuous hit processing target number PCTN is incremented by "1", and the process returns to step D802.
【0110】〔D805〕 連打比較対象番号SCTNを連
打処理対象番号PCTNに“1”を加算した値に設定する。
〔D806〕 楽音発生チャネル管理マップにおける連
打処理対象番号PCTNの楽音発生チャネル番号PASS〔PCT
N〕に対応する楽音発生チャネル番号のノート番号と連
打比較対象番号SCTNの楽音発生チャネル番号PASS〔SCT
N〕に対応する楽音発生チャネル番号のノート番号とが
同じであるか否かを判断する。これらノート番号が同じ
でない場合には次のステップD807に進み、同じであ
る場合にはステップD809に進む。[D805] The consecutive hit comparison target number SCTN is set to a value obtained by adding "1" to the consecutive hit processing target number PCTN. [D806] Music tone generation channel number PASS [PCT of the tone generation processing target number PCTN in the tone generation channel management map
N] the tone generation channel number of the tone generation channel number and the tone generation channel number of the consecutive comparison target number SCTN PASS [SCT
[N] and whether or not the tone generation channel number corresponding to the note number is the same. If these note numbers are not the same, the process proceeds to the next step D807, and if they are the same, the process proceeds to step D809.
【0111】〔D807〕 連打比較対象番号SCTNが
“15”未満であるか否かを判断する。この連打比較対
象番号SCTNが“15”未満である場合には次のステップ
D808に、“15”未満でない場合にはステップD8
04に進む。
〔D808〕 連打比較対象番号SCTNを“1”だけイン
クリメントしてステップD806に戻る。[D807] It is determined whether the consecutive hit comparison target number SCTN is less than "15". If the continuous hit comparison target number SCTN is less than "15", the process proceeds to the next step D808. If it is not less than "15", step D8.
Go to 04. [D808] The consecutive hit comparison target number SCTN is incremented by "1" and the process returns to step D806.
【0112】〔D809〕 楽音発生チャネル管理マッ
プにおける連打比較対象番号SCTNの楽音発生チャネル番
号PASS〔SCTN〕に対応する楽音発生チャネル番号の急速
減衰中フラグが“1:急速減衰中”であるか否かを判断
する。この急速減衰中フラグが“1”で急速減衰中であ
る場合には連打とみなすのは不適当なのでステップD8
04に戻り、“1”でない場合には次のステップD81
0に進む。[D809] Whether or not the rapid decay flag of the tone generation channel number corresponding to the tone generation channel number PASS [SCTN] of the consecutive hit comparison number SCTN in the tone generation channel management map is "1: rapid decay" To judge. If the rapid decay flag is "1" and the rapid decay is in progress, it is inappropriate to consider it as a continuous hit, so step D8.
04, and if it is not "1", the next step D81
Go to 0.
【0113】〔D810〕 連打比較対象番号SCTNの楽
音発生チャネル番号のプリアサイナ発音量PLEV〔PASS
〔SCTN〕〕が“8000H”未満であるか否かを、言い
換えればアタックを終了しているか否かを判断する。こ
のプリアサイナ発音量PLEV〔PASS〔SCTN〕〕が“800
0H”未満でない場合にはアタック中なので次のステッ
プD811に進み、未満である場合にはアタックを終了
しているためにステップD812に進む。[D810] Pre-assigner sound output amount PLEV [PASS of tone generation channel number of consecutive hit comparison number SCTN
It is determined whether [SCTN]] is less than “8000H”, in other words, whether the attack is finished. This pre-assigner pronunciation level PLEV [PASS [SCTN]] is "800
If it is not less than 0H ", it means that the attack is in progress, so the routine proceeds to the next step D811.
【0114】〔D811〕 連打処理対象番号PCTNの楽
音発生チャネル番号のプリアサイナ発音量PLEV〔PASS
〔PCTN〕〕が、連打比較対象番号SCTNの楽音発生チャネ
ル番号PASS〔SCTN〕のプリアサイナ発音量PLEV〔PASS
〔SCTN〕〕から“8000H”を減じた値未満であるか
否かを、言い換えれば連打処理対象番号PCTNの楽音発生
チャネル番号PASS〔PCTN〕の楽音発生チャネルのエンベ
ロープレベルが、連打比較対象番号SCTNの楽音発生チャ
ネル番号PASS〔SCTN〕の楽音発生チャネルのアタックレ
ベル未満であるか否かを判断する。このエンベロープレ
ベルがそのアタックレベル未満である場合には次のステ
ップD812に進み、未満でない場合には連打処理対象
番号PCTNの楽音発生チャネル番号PASS〔PCTN〕のプリア
サイナ発音量PLEV〔PASS〔PCTN〕〕を変更するのは不適
当なのでステップD807に進む。[D811] Pre-assigner sound output amount PLEV [PASS of tone generation channel number of continuous hit processing number PCTN
[PCTN] is the tone generation channel number PASS [SCTN] of the consecutive hit comparison target number SCTN.
Whether it is less than the value obtained by subtracting “8000H” from [SCTN], in other words, the envelope level of the tone generation channel of the tone generation channel number PASS [PCTN] of the consecutive hit processing number PCTN is the consecutive hit comparison target number SCTN. It is determined whether or not the attack level is lower than the attack level of the tone generation channel of the tone generation channel number PASS [SCTN]. If the envelope level is less than the attack level, the process proceeds to the next step D812, and if it is not less than the attack level, the tone generation channel number PASS [PCTN] pre-assigner sound amount PLEV [PASS [PCTN]] of the continuous hit processing target number PCTN. Since it is inappropriate to change the, the process proceeds to step D807.
【0115】〔D812〕 まず、連打検出フラグRSEF
を“1:連打検出”に設定する。次に、連打処理対象番
号PCTNの楽音発生チャネル番号のプリアサイナ発音量PL
EV〔PASS〔PCTN〕〕をその値の1/10に減少させるよ
うに変更する。なお、発音の終了している楽音発生チャ
ネルのアサイン順位を、連打処理によりプリアサイナ発
音量を変更した楽音発生チャネルのアサイン順位よりも
優先するために、変更後のプリアサイナ発音量が“1”
未満ならばその値を所定値(本実施例では“1”)にす
る。そして、ステップD804に戻る。[D812] First, the repeated hit detection flag RSEF
Is set to “1: continuous hit detection”. Next, the pre-assigner pronunciation amount PL of the tone generation channel number of the continuous hit processing target number PCTN
Change EV [PASS [PCTN]] to reduce it to 1/10 of its value. In order to give priority to the assignment order of the musical tone generation channels whose pronunciation has ended, over the assigned order of the musical tone generation channels whose pre-assigner pronunciation amount has been changed by the repeated hit processing, the changed pre-assigner pronunciation amount is "1".
If it is less than that, the value is set to a predetermined value (“1” in this embodiment). Then, the process returns to step D804.
【0116】〔D813〕 連打検出フラグRSEFが
“1:連打検出”であるか否かを判断する。この連打検
出フラグRSEFが“1”でない場合には連打は検出しなか
ったために、当該ルーチンを終了してステップD9に戻
り、“1”で連打検出である場合には次のステップD8
14に進む。
〔D814〕 ステップD7と同様な処理を行う。この
処理を終了すると当該ルーチンを終了し、ステップD9
に戻る。[D813] It is determined whether or not the consecutive hit detection flag RSEF is "1: consecutive hit detection". If the consecutive hit detection flag RSEF is not "1", the consecutive hit is not detected. Therefore, the routine is ended and the process returns to step D9. If the consecutive hit detection is "1", the next step D8 is performed.
Proceed to 14. [D814] The same process as step D7 is performed. When this process ends, the routine ends and step D9
Return to.
【0117】なお、ステップD812において連打であ
ればプリアサイナ発音レベルPLEV〔PASS〔PCTN〕〕をそ
の値の1/10に変更したが、音色、音高などに応じて
係数を変更したり、あるいはプリアサイナ発音量を
“1”などの所定値としても良い。また、プリアサイナ
発音量が“1”未満の場合に設定する所定値を音色など
に応じて変更しても良い。[0117] In step D812, the pre-assigner sounding level PLEV [PASS [PCTN]] is changed to 1/10 of the value if it is repeated hits. However, the coefficient is changed according to the tone color, pitch, or the pre-assigner. The pronunciation amount may be a predetermined value such as "1". Further, the predetermined value set when the pre-assigner sound output is less than "1" may be changed according to the tone color or the like.
【0118】また、ステップD814において、プリア
サイナ発音量が“1”未満の楽音発生チャネル相互間の
順位をエンベロープレベルにもとづいて並べ換えても良
い。要するに、アサイン順位をエンベロープレベルに関
連するプリアサイナ発音量にもとづき設定するが、連打
に関してはプリアサイナ発音量を変更して評価する。な
お、急速減衰中の楽音発生チャネルは連打比較対象から
除き、また連打関係にある楽音発生チャネルのなかで発
音量が最大の楽音発生チャネルおよび比較対象の楽音発
生チャネルがアタック中でかつそのアタックレベルより
大きなエンベロープレベルの楽音発生チャネルについて
はプリアサイナ発音量を変更しない。In step D814, the order of the tone generation channels whose pre-assigner tone generation amount is less than "1" may be rearranged based on the envelope level. In short, the assigning order is set based on the pre-assigner pronunciation amount related to the envelope level, but for continuous hits, the pre-assigner pronunciation amount is changed and evaluated. Note that the tone generation channel that is rapidly decaying is excluded from the continuous hit comparison target, and the tone generation channel with the largest sound output among the tone generation channels that are in the continuous hit relationship and the comparison target tone generation channel are both under attack and their attack level. For a tone generation channel with a larger envelope level, the pre-assigner tone generation amount is not changed.
【0119】エンベロープタスク(図16)
当該タスクに対するタイマイベントが発生すると実行を
開始し、各エンベロープチャネルのエンベロープレベル
および発音量を順次に更新するとともに、ノートステー
タス、ソステヌートステータス、ダンパー値およびエン
ベロープ生成パラメータにもとづいて新たな目標値およ
びレートを演算し、楽音発生回路30の楽音発生チャネ
ルへの転送を行うタスクである。各ステップE1〜E1
4においての処理は、次の通りである。 Envelope task (FIG. 16) Execution starts when a timer event for the task occurs, and the envelope level and sound amount of each envelope channel are updated in sequence, and note status, sostenuto status, damper value, and envelope generation parameter are also set. This is a task of calculating a new target value and rate based on the above, and transferring the new target value and rate to the tone generation channel of the tone generation circuit 30. Steps E1 to E1
The processing in 4 is as follows.
【0120】〔E1〕 当該タスクで占有する変数など
を初期値に設定する。また、第5タスクタイマカウンタ
値TCNE〔5〕を“4”に、第5タスク時間間隔TCND
〔5〕を“4”に設定する。さらに、タスク管理マップ
におけるタスク番号“5:エンベロープタスク”のタイ
マ処理要求フラグを“1:要求有り”に設定する。
〔E2〕 要求元イベント値NSETを“1”に設定してイ
ベント待ちモニタコールを行う。なお、エンベロープタ
スクタイマイベントが発生すると、次のステップE3に
進む。[E1] The variables occupied by the task are set to initial values. Also, the fifth task timer counter value TCNE [5] is set to "4", and the fifth task time interval TCND
Set [5] to "4". Further, the timer processing request flag of the task number “5: envelope task” in the task management map is set to “1: request”. [E2] Set the request source event value NSET to "1" and make an event wait monitor call. When the envelope task timer event occurs, the process proceeds to the next step E3.
【0121】〔E3〕 タスク管理マップにおけるタス
ク番号“5:エンベロープタスク”の待ちイベント値を
“0”に、第1イベント発生フラグを“0”に設定する
とともに、エンベロープ処理対象番号ECTNを“0”に設
定する。
〔E4〕 タスクロックをかける。
〔E5〕 楽音発生チャネル管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応する楽音発生チャネル番
号の急速減衰中フラグが“1:急速減衰中”であるか否
かを判断する。この急速減衰中フラグが“1”でない場
合には次のステップE6に進み、“1”である場合には
当該タスクによるエンベロープ処理は不要なために、ス
テップE14に進む。[E3] The wait event value of the task number "5: envelope task" in the task management map is set to "0", the first event occurrence flag is set to "0", and the envelope processing target number ECTN is set to "0". Set to ". [E4] Lock the task. [E5] It is determined whether or not the rapid attenuation flag of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "1: rapid attenuation in progress". If the flag during rapid decay is not "1", the process proceeds to the next step E6. If the flag is "1", the envelope process by the task is unnecessary, and the process proceeds to step E14.
【0122】〔E6〕 エンベロープ管理マップにおけ
るエンベロープ処理対象番号ECTNに対応するエンベロー
プチャネル番号の目標値が“0”であり、かつそのエン
ベロープレベルが“0”であるか否かを判断する。この
目標値が“0”でかつエンベロープレベルが“0”であ
る場合には発音を終了しているために、楽音発生チャネ
ル管理マップにおけるエンベロープ処理対象番号ECTNに
対応する楽音発生チャネル番号の発音量を“0”に、ト
ランケート禁止フラグを“0”に設定してステップE1
4に進み、いずれかが“0”でない場合には次のステッ
プE7に進む。[E6] It is determined whether the target value of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map is "0" and the envelope level is "0". When the target value is "0" and the envelope level is "0", the sound generation has ended, so the sound generation amount of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map. Is set to "0" and the truncation prohibition flag is set to "0", and step E1 is set.
4. If either of them is not "0", proceed to the next step E7.
【0123】〔E7〕 エンベロープ管理マップにおけ
るエンベロープ処理対象番号ECTNに対応するエンベロー
プチャネル番号のエンベロープレベルとレートとを加算
して新たなエンベロープレベルとし、フェーズ番号を
“1”だけインクリメントするとともに、楽音発生チャ
ネル管理マップにおけるエンベロープ処理対象番号ECTN
に対応する楽音発生チャネル番号のノート番号を読み出
してエンベロープ処理対象ノート番号ENNMとする。[E7] The envelope level of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map and the rate are added to form a new envelope level, the phase number is incremented by "1", and a tone is generated. Envelope processing number ECTN in channel management map
The note number of the tone generation channel number corresponding to is read out and set as the note number ENNM to be envelope-processed.
【0124】〔E8〕 ノートマップにおけるエンベロ
ープ処理対象ノート番号ENNMに対応するノート番号のノ
ートステータスが“1:押鍵”であるか否かを判断す
る。このノートステータスが“1”でない場合には次の
ステップE9に、“1”である場合にはステップE11
に進む。
〔E9〕 ノートマップにおけるエンベロープ処理対象
ノート番号ENNMに対応するノート番号のソステヌートス
テータスが“1:ソステヌートオン”であるか否かを判
断する。このソステヌートステータスが“1”である場
合にはステップE11に進む。[E8] It is determined whether or not the note status of the note number corresponding to the envelope processing target note number ENNM in the note map is "1: key depression". If the note status is not "1", go to the next step E9, and if it is "1", go to step E11.
Proceed to. [E9] It is determined whether the sostenuto status of the note number corresponding to the envelope processing target note number ENNM in the note map is “1: sostenuto on”. If the sostenuto status is "1", the process proceeds to step E11.
【0125】〔E10〕 ステップE9の判断において
ソステヌートステータスが“1”でない場合には、既に
離鍵していてかつ後述するペダルタスクのステップF4
において説明するようにソステヌートペダルが踏み下げ
られていないかまたはソステヌートペダルが踏み下げら
れていても踏み下げ時にすでに離鍵していたために、離
鍵に対応するエンベロープ処理を行う。言い換えれば、
エンベロープ管理マップにおけるエンベロープ処理対象
番号ECTNに対応するエンベロープチャネル番号の目標値
およびレートなどをダンパー値DMPVおよびエンベロープ
生成パラメータなどにもとづき演算して更新するととも
に、目標値およびレートを楽音発生回路30の対応する
楽音発生チャネルに転送する。また、処理を終了すると
ステップE12に進む。[E10] If the sostenuto status is not "1" in the judgment at step E9, the key has already been released and the step F4 of the pedal task described later is performed.
As will be described in Section 1, the sostenuto pedal is not depressed, or even if the sostenuto pedal is depressed, the key has already been released at the time of depression, so the envelope processing corresponding to the key release is performed. In other words,
The target value and rate of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map is calculated and updated based on the damper value DMPV and the envelope generation parameter, and the target value and rate are handled by the tone generation circuit 30. Transfer to the tone generation channel. When the process is completed, the process proceeds to step E12.
【0126】〔E11〕 ステップE8の判断において
ノートステータスが“1:押鍵”であるか、またはステ
ップE9の判断においてソステヌートステータスが
“1:ソステヌートオン”である場合には、いまだ押鍵
中であるか、または離鍵していてもソステヌートペダル
が踏み下げられておりかつ踏み下げ時に押鍵中であった
ために、押鍵中に対応するエンベロープ処理を行う。言
い換えれば、エンベロープ管理マップにおけるエンベロ
ープ処理対象番号ECTNに対応するエンベロープチャネル
番号の目標値およびレートなどを最大値としたダンパー
値およびエンベロープ生成パラメータなどにもとづき演
算して更新するとともに、目標値およびレートを楽音発
生回路30の対応する楽音発生チャネルに転送する。[E11] If the note status is "1: key depression" in the judgment of step E8, or if the sostenuto status is "1: sostenuto on" in the judgment of step E9, the key is still being depressed. If there is, or even if the key is released, the sostenuto pedal is depressed and the key is being depressed at the time of depression, so the envelope process corresponding to the key depression is performed. In other words, the target value and rate are calculated and updated based on the damper value and the envelope generation parameter that have the maximum value of the target value and rate of the envelope channel number corresponding to the envelope processing number ECTN in the envelope management map. It is transferred to the corresponding tone generation channel of the tone generation circuit 30.
【0127】〔E12〕 エンベロープ管理マップにお
けるエンベロープ処理対象番号ECTNに対応するエンベロ
ープチャネル番号のフェーズ番号が、トランケート禁止
フェーズ番号を超えているか否かを判断する。このフェ
ーズ番号がトランケート禁止フェーズ番号を超えていな
い場合には、ステップE14に進み、発音量を更新しな
い。また、このフェーズ番号がトランケート禁止フェー
ズ番号を超えている場合にはステップE13に進んで発
音量を更新する。[E12] It is determined whether or not the phase number of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map exceeds the truncation prohibited phase number. If this phase number does not exceed the truncate prohibition phase number, the process proceeds to step E14, and the tone generation amount is not updated. If the phase number exceeds the truncate prohibition phase number, the process proceeds to step E13 to update the tone generation amount.
【0128】〔E13〕 楽音発生チャネル管理マップ
におけるエンベロープ処理対象番号ECTNに対応する楽音
発生チャネル番号の発音量をエンベロープレベルの上位
15ビットに更新するとともに、楽音発生チャネル管理
マップにおけるエンベロープ処理対象番号ECTNに対応す
る楽音発生チャネル番号のトランケート禁止フラグを
“0”に設定する。[E13] The tone generation amount of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is updated to the upper 15 bits of the envelope level, and the envelope processing target number ECTN in the tone generation channel management map. The truncation prohibition flag of the tone generation channel number corresponding to is set to "0".
【0129】〔E14〕 タスクロックを解除する。
〔E15〕 エンベロープ処理対象番号ECTNが“15”
未満であるか否かを判断する。このエンベロープ処理対
象番号ECTNが“15”未満でない場合には、ステップE
2に戻る。
〔E16〕 エンベロープ処理対象番号ECTNを“1”だ
けインクリメントしてステップE4に戻る。[E14] The task lock is released. [E15] Envelope processing target number ECTN is "15"
It is determined whether it is less than. If the envelope processing target number ECTN is not less than "15", step E
Return to 2. [E16] The envelope processing target number ECTN is incremented by "1" and the process returns to step E4.
【0130】ペダルタスク
当該タスクに対するタイマイベントが発生すると実行を
開始して、ダンパーペダル、ソステヌートペダルなどの
ペダルの設定状態を検出するタスクである。なお、公知
技術であるために要点のみを説明する。各ステップF1
〜F4においての処理は、次の通りである。 Pedal task This task starts execution when a timer event for the task occurs and detects the setting state of a pedal such as a damper pedal or a sostenuto pedal. Since this is a known technique, only the essential points will be described. Each step F1
The processing from F4 to F4 is as follows.
【0131】〔F1〕 まず、新たなペダルの設定状態
をペダル毎に記憶する新ペダルマップと、前回のペダル
の設定状態をペダル毎に記憶する旧ペダルマップと、当
該タスクで占有する変数などとを初期値に設定する。次
に、第6タスクタイマカウンタ値TCNE〔6〕を“11”
に、第6タスク時間間隔TCND〔6〕を“9”に設定す
る。さらに、タスク管理マップにおけるタスク番号
“6:ペダルタスク”のタイマ処理要求フラグを“1”
に設定する。[F1] First, a new pedal map that stores the new pedal setting state for each pedal, an old pedal map that stores the previous pedal setting state for each pedal, variables that are occupied by the task, etc. Is set to the initial value. Next, set the sixth task timer counter value TCNE [6] to "11".
Then, the sixth task time interval TCND [6] is set to "9". Further, the timer processing request flag of the task number “6: Pedal task” in the task management map is set to “1”.
Set to.
【0132】〔F2〕 要求元イベント値NSETを“1”
に設定して、イベント待ちモニタコールを行う。なお、
ペダルタスクタイマイベントが発生すると、次のステッ
プF3に進む。
〔F3〕 タスク管理マップにおけるタスク番号“6:
ペダルタスク”の待ちイベント値を“0”に、第1イベ
ント発生フラグを“0”に設定する。[F2] Request source event value NSET is set to "1".
Set to and make an event wait monitor call. In addition,
When a pedal task timer event occurs, the process proceeds to the next step F3. [F3] Task number “6: in task management map”
The wait event value of the "pedal task" is set to "0" and the first event occurrence flag is set to "0".
【0133】〔F4〕 公知技術にもとづいて各ペダル
を所定順次に走査して設定状態を読み込み、設定状態に
変化があったか否かを判断して変化があれば対応する処
理を行う。例えば、ダンパーペダルの設定状態が変化し
ていれば、新たなダンパーの踏込み量をダンパー値DMPV
とする。また、ソステヌートペダルが踏み下げられる
と、ノートマップにおける各ノート番号のソステヌート
ステータスを対応するノートステータスと同じになるよ
うに更新する。さらに、ソステヌートペダルが戻される
と、ノートマップにおける各ノート番号のソステヌート
ステータスを“0”に設定する。なお、変化がない場
合、または対応する処理を終了した場合にはステップF
2に戻る。[F4] Based on a known technique, each pedal is scanned in a predetermined sequence to read the setting state, it is judged whether or not there is a change in the setting state, and if there is a change, a corresponding process is performed. For example, if the setting state of the damper pedal has changed, the depression amount of the new damper is set to the damper value DMPV.
And When the sostenuto pedal is depressed, the sostenuto status of each note number in the note map is updated to be the same as the corresponding note status. Further, when the sostenuto pedal is returned, the sostenuto status of each note number in the note map is set to "0". If there is no change or if the corresponding process is completed, step F
Return to 2.
【0134】操作子タスク(図17)
当該タスクに対するタイマイベントが発生すると実行を
開始して、音色の選択あるいは音色に関するパラメータ
の設定などを行う操作子群23の設定状態を検出するタ
スクである。なお、公知技術であるために要点のみを説
明する。各ステップG1〜G4においての処理は、次の
通りである。 Manipulator task (FIG. 17) This task starts execution when a timer event for the task occurs and detects the setting state of the manipulator group 23 for selecting a tone color or setting parameters relating to a tone color. Since this is a known technique, only the essential points will be described. The processing in each step G1 to G4 is as follows.
【0135】〔G1〕 まず、新たな操作子の設定状態
を操作子毎に記憶する新操作子マップと、前回の操作子
の設定状態を操作子毎に記憶する旧操作子マップと、操
作子の操作に対応して設定される各種パラメータと、こ
の操作子タスクで占有する変数などとを初期値に設定す
る。次に、第7タスクタイマカウンタ値TCNE〔7〕を
“12”に、第7タスク時間間隔TCND〔7〕を“9”に
設定する。さらに、タスク管理マップにおけるタスク番
号“7:操作子タスク”のタイマ処理要求フラグを
“1”に設定する。[G1] First, a new operator map that stores the new operator setting state for each operator, an old operator map that stores the previous operator setting state for each operator, and an operator The various parameters set corresponding to the operation of and the variables occupied by this operator task are set to initial values. Next, the seventh task timer counter value TCNE [7] is set to "12" and the seventh task time interval TCND [7] is set to "9". Further, the timer processing request flag of the task number “7: operator task” in the task management map is set to “1”.
【0136】〔G2〕 要求元イベント値NSETを“1”
に設定するとともに、初期設定完了フラグを“1”に設
定してイベント待ちモニタコールを行う。なお、操作子
タスクタイマイベントが発生すると、次のステップG3
に進む。
〔G3〕 タスク管理マップにおけるタスク番号“7:
操作子タスク”の待ちイベント値を“0”に、第1イベ
ント発生フラグを“0”に設定する。[G2] Request source event value NSET is set to "1".
And the initial setting completion flag is set to "1" and an event wait monitor call is made. When an operator task timer event occurs, the next step G3
Proceed to. [G3] Task number “7: in task management map”
The wait event value of the "operator task" is set to "0", and the first event occurrence flag is set to "0".
【0137】〔G4〕 公知技術にもとづいて各操作子
を所定順次に走査して設定状態を読み込み、設定状態に
変化があったか否かを判断して変化があれば対応する処
理を行う。例えば、音色番号を変更した場合には音色パ
ラメータ群を変更する。なお、変化がない場合、または
対応する処理を終了した場合にはステップG2に戻る。[G4] Based on a known technique, each operator is scanned in a predetermined sequence to read the setting state, it is judged whether or not the setting state has changed, and if there is a change, a corresponding process is performed. For example, when the tone color number is changed, the tone color parameter group is changed. When there is no change or when the corresponding process is completed, the process returns to step G2.
【0138】次に、以上に説明した本実施例の全体的な
動作について説明する。
(1) 初期設定
電源を投入すると、モニタプログラムのリセットルーチ
ンZAによる処理後に(ステップZA1〜ZA3)、キ
ーデータ受信タスク(ルーチンA)、メインアサイナタ
スク(ルーチンB)、発音タスク(ルーチンC)、プリ
アサイナタスク(ルーチンD)、エンベロープタスク
(ルーチンE)、ペダルタスク(ルーチンF)および操
作子タスク(ルーチンG)の初期設定処理がタスク優先
順位にしたがって順次に行われる(ステップA1,A
2、ステップB1,B2、ステップC1,C2、ステッ
プD1,D2、ステップE1,E2、ステップF1,F
2、ステップG1,G2)。
(2) 受信キーデータによる発音処理
鍵盤の鍵を操作し鍵操作検出回路から割込みがかかる
と、モニタプログラムのキーデータ受信割込み処理ルー
チンZEが開始される。Next, the overall operation of the above-described embodiment will be described. (1) When the initialization power is turned on, after the processing by the monitor program reset routine ZA (steps ZA1 to ZA3), the key data receiving task (routine A), the main assigner task (routine B), the sounding task (routine C) , Pre-assigner task (routine D), envelope task (routine E), pedal task (routine F) and manipulator task (routine G) are initialized in sequence according to task priority (steps A1, A).
2, steps B1 and B2, steps C1 and C2, steps D1 and D2, steps E1 and E2, steps F1 and F
2, steps G1, G2). (2) Sound Generation Processing by Received Key Data When a key on the keyboard is operated and an interrupt occurs from the key operation detection circuit, the key data reception interrupt processing routine ZE of the monitor program is started.
【0139】(2の1) キーデータ受信割込み処理ル
ーチンZEにおいては、キーデータ受信イベント待ちの
状態にあるために(ステップZE1,ZE3)、タスク
管理マップにおけるタスク番号“1:キーデータ受信タ
スク”のステータスを“0:ラン”に設定する(ステッ
プZE5)。次に、キーデータ受信タスクを実行して
(ステップA2〜A7)、キーデータを鍵操作検出回路
から読み込み、このキーデータにもとづいてノートマッ
プを更新するとともに、ノートオンであればイベント発
生モニタコールを行う(ステップA7)。(1 of 2) Since the key data reception interrupt processing routine ZE is in the state of waiting for the key data reception event (steps ZE1 and ZE3), the task number "1: key data reception task" in the task management map The status of is set to "0: run" (step ZE5). Next, the key data reception task is executed (steps A2 to A7), the key data is read from the key operation detection circuit, and the note map is updated based on this key data. Is performed (step A7).
【0140】(2の2) モニタプログラムのイベント
発生モニタコールルーチンZCにおいて、タスク管理マ
ップにおけるタスク番号“2:メインアサイナタスク”
の第1イベント発生フラグを“1”に設定するとともに
(ステップZC1)、ステータスを“1:レディ”に設
定する(ステップZC2,ZC3)。なお、キーデータ
受信タスクはタスク優先順位がメインアサイナタスクの
タスク優先順位より高いために、キーデータ受信タスク
を再び開始して(ステップZC4)、このキーデータ受
信タスクにおいてイベント待ちモニタコールを行う(ス
テップA2)。(2-2) In the event generation monitor call routine ZC of the monitor program, the task number "2: Main assigner task" in the task management map
The first event occurrence flag is set to "1" (step ZC1) and the status is set to "1: ready" (steps ZC2 and ZC3). Since the task priority of the key data reception task is higher than the task priority of the main assigner task, the key data reception task is restarted (step ZC4), and an event wait monitor call is made in this key data reception task. (Step A2).
【0141】(2の3) モニタプログラムのイベント
待ちモニタコールルーチンZBにおいて、キーデータ受
信イベントが発生しているか否かを調べる(ステップZ
B1)。この調べた結果、次のキーデータ受信イベント
がまだ発生していないために、タスク管理マップにおけ
るタスク番号“1:キーデータ受信タスク”のステータ
スを“2:ウェイト”に設定して(ステップZB2)、
タスク管理マップを調べる(ステップZB3)。このタ
スク管理マップを調べた結果、ステータスが“1:レデ
ィ”である最優先タスクのタスク番号が“2:メインア
サイナタスク”であるために、このタスク番号“2:メ
インアサイナタスク”のステータスを“0:ラン”に設
定して(ステップZB4)、メインアサイナタスクを実
行させる(ステップZB5)。このメインアサイナタス
クにおいては、ノート番号NTNMなどを楽音発生チャネル
管理マップに書き込む(ステップB2〜B5)。次に、
イベント発生モニタコールを行う(ステップB6)。(2-3) In the event waiting monitor call routine ZB of the monitor program, it is checked whether a key data reception event has occurred (step Z).
B1). As a result of this examination, since the next key data reception event has not occurred yet, the status of the task number "1: key data reception task" in the task management map is set to "2: wait" (step ZB2). ,
Examine the task management map (step ZB3). As a result of checking this task management map, since the task number of the highest priority task whose status is "1: ready" is "2: main assigner task", this task number "2: main assigner task" The status is set to "0: run" (step ZB4), and the main assigner task is executed (step ZB5). In this main assigner task, note numbers NTNM and the like are written in the tone generation channel management map (steps B2 to B5). next,
An event occurrence monitor call is made (step B6).
【0142】(2の4) モニタプログラムのイベント
発生モニタコールルーチンZCにおいて、タスク管理マ
ップにおけるタスク番号“3:発音タスク”の第2イベ
ント発生フラグを“1”に設定するとともに、ステータ
スを“1:レディ”に設定する。なお、メインアサイナ
タスクのタスク優先順位が発音タスクのタスク優先順位
より高いために、メインアサイナタスクを再び開始し
て、このメインアサイナタスクにおいて対象アサイン順
位を“1”だけインクリメントして次のアサイン順位に
更新し(ステップB7)、イベント待ちモニタコールを
行う(ステップB2)。(2-4) In the event generation monitor call routine ZC of the monitor program, the second event generation flag of the task number "3: sounding task" in the task management map is set to "1" and the status is set to "1". : Ready ”. Since the task priority of the main assigner task is higher than the task priority of the pronunciation task, the main assigner task is restarted and the target assign order is incremented by "1" in this main assigner task. (Step B7), and an event waiting monitor call is made (step B2).
【0143】(2の5) モニタプログラムのイベント
待ちモニタコールルーチンZBにおいてアサイン要求イ
ベントが発生しているか否かを調べる。この調べた結
果、次のアサイン要求イベントがまだ発生していないた
めに、タスク管理マップにおけるタスク番号“2:メイ
ンアサイナタスク”のステータスを“2:ウェイト”に
設定してタスク管理マップを調べる。このタスク管理マ
ップを調べた結果、ステータスが“1:レディ”である
最優先タスクのタスク番号が“3:発音タスク”である
ために、タスク番号“3:発音タスク”のステータスを
“0:ラン”に設定して、発音タスクを実行させる。こ
の発音タスクにおいては、楽音発生チャネル管理マップ
に書き込まれたノート番号NTNMなどにもとづき楽音発生
に関する各種パラメータを演算して設定し、発音の開始
を指示する(ステップC2〜C 27)。次に、イベン
ト待ちモニタコールを行う(ステップC2)。(2-5) It is checked whether or not an assign request event has occurred in the event wait monitor call routine ZB of the monitor program. As a result of this examination, since the next assignment request event has not yet occurred, the task number in the task management map "2: Main assigner task" is set to "2: Wait" and the task management map is examined. . As a result of checking this task management map, the task number of the task number "3: sounding task" is "0: because the task number of the highest priority task whose status is" 1: ready "is" 3: sounding task ". Set to "Run" to perform the pronunciation task. In this tone generation task, various parameters relating to tone generation are calculated and set based on the note number NTNM written in the tone generation channel management map, and the start of tone generation is instructed (steps C2-C27). Next, an event wait monitor call is made (step C2).
【0144】(2の6) モニタプログラムのイベント
待ちモニタコールルーチンZBにおいて発音要求イベン
トが発生しているか否かを調べる。この調べた結果、次
の発音要求イベントがまだ発生していないために、タス
ク管理マップにおけるタスク番号“3:発音タスク”の
ステータスを“2:ウェイト”に設定してタスク管理マ
ップを調べる。このタスク管理マップを調べた結果、全
てのタスク番号のステータスが“2:ウェイト”である
場合にはスリープする。
(3) プリアサイナタスク(ルーチンD)は対応する
タイマイベントが発生すると、楽音発生チャネル管理マ
ップの発音量にもとづいてアサイン順位を更新する(ス
テップD2〜D13)。次に、イベント待ちモニタコー
ルを行う(ステップD2)。
(4) エンベロープタスク(ルーチンE)は対応する
タイマイベントが発生すると、ノートステータス、ペダ
ルのデータ、楽音発生チャネル管理マップおよびエンベ
ロープ管理マップにもとづいて楽音発生チャネル管理マ
ップの発音量およびエンベロープ管理マップのエンベロ
ープレベルなどを更新などする(ステップE2〜E1
6)。次に、イベント待ちモニタコールを行う(ステッ
プE2)。(2-6) It is checked in the event waiting monitor call routine ZB of the monitor program whether a tone generation request event has occurred. As a result of this examination, since the next pronunciation request event has not yet occurred, the task number “3: Sound task” in the task management map is set to “2: Wait” and the task management map is examined. As a result of checking this task management map, if the statuses of all task numbers are "2: wait", the task sleeps. (3) When the corresponding timer event occurs, the pre-signer task (routine D) updates the assignment order based on the tone generation amount of the tone generation channel management map (steps D2 to D13). Next, an event wait monitor call is made (step D2). (4) When the corresponding timer event occurs, the envelope task (routine E) generates the tone generation amount and envelope management map of the tone generation channel management map based on the note status, pedal data, tone generation channel management map and envelope management map. Update the envelope level etc. (steps E2-E1)
6). Next, an event wait monitor call is made (step E2).
【0145】以上に説明したように本実施例において
は、新たな楽音を割当てる楽音発生チャネルを、発音割
当てのために急速減衰中の楽音発生チャネルおよび発音
開始から所定時間経過していないいわゆるアタック中の
楽音発生チャネルを除いた楽音発生チャネルから選定し
ている。なお、選定対象の楽音発生チャネルについては
評価発音量にもとづいて割当て順位を設定しているとと
もに、評価発音量はエンベロープレベルにもとづく発音
量を連打関係にもとづいて変更している。また、連打関
係は発音状態にある楽音発生チャネル(発音量が“0”
の発音を終了している楽音発生チャネルを除いた楽音発
生チャネル)から発音割当てのために急速減衰中の楽音
発生チャネルを除いた楽音発生チャネルのうちで判断し
ている。As described above, in the present embodiment, the tone generation channel to which a new tone is assigned is the tone generation channel which is being rapidly attenuated for assigning the tone generation, and the so-called attack during which a predetermined time has not elapsed from the start of tone generation. It is selected from the tone generation channels excluding the tone generation channels. It should be noted that the musical tone generation channels to be selected are assigned an order of assignment based on the evaluation sound output, and the evaluation sound output is changed based on the envelope level based on the continuous hitting relationship. In addition, the continuous hitting relationship is related to the tone generation channel in the sounding state
Of the tone generation channels excluding the tone generation channels whose pronunciation has ended) are excluded from the tone generation channels excluding the tone generation channels that are undergoing rapid decay for sound allocation.
【0146】連打関係にもとづく評価発音量の変更は、
次のように処理を行っている。前記発音状態にある楽
音発生チャネルから発音割当てのために急速減衰中の楽
音発生チャネルを除いた楽音発生チャネルのうちで発音
量が最大でなくかつ発音開始から所定時間経過したいわ
ゆるアタックを終了した楽音発生チャネルの評価発音量
を変更する。なお、アタック中の楽音発生チャネルの発
音量としてはアタックレベルを用いている。発音量が
“0”の発音を終了している楽音発生チャネルについて
は、すでに最小の評価発音量なので変更しても効果がな
いために、評価発音量を変更しない。前記発音状態に
ある楽音発生チャネルから発音割当てのために急速減衰
中の楽音発生チャネルを除いた楽音発生チャネルのうち
で発音量が最大の楽音発生チャネルは、発音を継続する
必要があるために評価発音量を変更しない。発音割当
てのために急速減衰中の楽音発生チャネルおよび発音開
始から所定時間経過していないいわゆるアタック中の楽
音発生チャネルについては、新たな楽音を割当てる選定
対象から除いているために評価発音量を変更しない。The change of the evaluation pronunciation amount based on the continuous hitting relation is
The processing is performed as follows. Among the tone generation channels excluding the tone generation channels that are rapidly decaying for tone allocation from the tone generation channels in the sound generation state, the tone generation amount that is not the maximum and the so-called attack ends after a predetermined time has elapsed from the start of the tone generation Change the evaluation pronunciation amount of the generation channel. Note that the attack level is used as the tone generation amount of the tone generation channel during the attack. The tone generation channel for which the tone generation amount of "0" has ended is not changed because the tone generation channel that has already finished the tone generation has the smallest estimated tone generation amount, so the tone generation amount is not changed. Of the tone generation channels that are in the pronunciation state, the tone generation channels with the maximum pronunciation amount among the tone generation channels excluding the tone generation channels that are undergoing rapid decay for sound assignment are evaluated because it is necessary to continue the tone generation. Do not change the pronunciation amount. The tone generation channel that is rapidly decaying for sound allocation and the tone generation channel that is under attack for a certain time after the start of sound generation are excluded from the selection targets to which new musical sounds are assigned, so the evaluation sound amount is changed. do not do.
【0147】なお、前記発音状態にある楽音発生チャネ
ルから発音割当てのために急速減衰中の楽音発生チャネ
ルおよびアタック中の楽音発生チャネルを除いた楽音発
生チャネルのうちで発音量が最大でない楽音発生チャネ
ルの評価発音量を変更するようにしても良い。また、よ
り新しい発音を優先させる場合には前記発音状態にある
楽音発生チャネルのうちで発音量が最大でない楽音発生
チャネルの評価発音量を変更するようにしても良いとと
もに、発音割当てのために急速減衰中の楽音発生チャネ
ルの発音量としては割当てられる予定の楽音のアタック
レベルを用いると良い。It should be noted that, of the tone generation channels in the tone generation state, the tone generation channels excluding the tone generation channel which is being rapidly attenuated and the tone generation channel being attacked for assigning the tone generation and whose tone generation amount is not the maximum are generated. The evaluation pronunciation amount of may be changed. Further, in the case of giving priority to a newer pronunciation, it is possible to change the evaluation pronunciation amount of the tone generation channel whose tone generation amount is not the maximum among the tone generation channels in the above-mentioned tone generation state, and it is possible to change the evaluation tone amount quickly for the assignment of the tone generation. An attack level of a musical tone to be assigned may be used as the tone generation amount of the musical tone generating channel being attenuated.
【0148】また、発音割当てのために急速減衰中の楽
音発生チャネルおよびまたは発音開始から所定時間経過
していないいわゆるアタック中の楽音発生チャネルを処
理対象に含め、そのような楽音発生チャネルであっても
発音量が最大でない楽音発生チャネルについては評価発
音量を変更するようにしても良い。または、最新に割当
てられた楽音発生チャネル以外の楽音発生チャネルの評
価発音量を変更するようにしても良い。また、必要なら
ば複数個の楽音発生チャネルの発音量を変更しないよう
にしても良い。Further, the tone generation channel that is rapidly decaying for the assignment of the tone generation and / or the tone generation channel that is a so-called attack in which a predetermined time has not elapsed from the start of tone generation are included in the processing targets, Alternatively, the evaluation sound generation amount may be changed for the tone generation channel whose sound generation amount is not the maximum. Alternatively, the evaluation sound generation amount of a tone generation channel other than the latest assigned tone generation channel may be changed. Further, if necessary, the tone generation amounts of a plurality of tone generation channels may not be changed.
【0149】さらに、連打関係にもとづいてアサイン順
位を直接に変更しても良い。例えば、ステップD8にお
いて、連打処理対象番号PCTNの楽音発生チャネル番号PA
SS〔PCTN〕を、プリアサイナ発音量PLEV〔GN〕が“0”
の次のプリアサイン順位の第Nプリアサイン順位楽音発
生チャネル番号PASS〔N 〕となるように並べ換える。ま
たは、そのように並べ換えたプリアサイン順位の第Nプ
リアサイン順位楽音発生チャネル番号PASS〔N 〕の次の
プリアサイン順位の第Nプリアサイン順位楽音発生チャ
ネル番号PASS〔N 〕となるように並べ換えても良い。Furthermore, the assignment order may be directly changed based on the continuous hitting relationship. For example, in step D8, the tone generation channel number PA of the continuous hit processing number PCTN
SS [PCTN], the pre-assigner pronunciation amount PLEV [GN] is "0"
Then, the rearrangement is performed so that it is the Nth preassigned tone generation channel number PASS [N] of the next preassigned order. Alternatively, the rearrangement is performed so that the N-th pre-assigned musical tone generation channel number PASS [N] of the pre-assigned rearranged order is the N-th pre-assigned musical tone generation channel number PASS [N] of the next pre-assigned ranking. Is also good.
【0150】言い換えれば、PLEV〔3〕=“0”で、PL
EV〔3〕<PLEV〔5〕<PLEV〔2〕<PLEV〔7〕<PLEV
In other words, PLEV [3] = “0”, PL
EV [3] <PLEV [5] <PLEV [2] <PLEV [7] <PLEV
〔9〕・・・であって、PLEV[9] ... and PLEV
〔9〕<“8000H”で
あれば、まずステップD7までの処理においてPASS
[9] <“8000H”, first pass in step D7
〔0〕=3、PASS〔1〕=5、PASS〔2〕=2、PASS
〔3〕=7、PASS〔4〕=9・・・となる。ここで、楽
音発生チャネル番号が“2”および“9”の楽音発生チ
ャネルに各連打関係の楽音発生チャネルがあれば、次の
ように並べ換える。PASS[0] = 3, PASS [1] = 5, PASS [2] = 2, PASS
[3] = 7, PASS [4] = 9 ... Here, if the tone generation channels with tone generation channel numbers “2” and “9” have tone generation channels related to each continuous hit, they are rearranged as follows. PASS
〔0〕=3、PASS〔1〕=9、
PASS〔2〕=2、PASS〔3〕=5、PASS〔4〕=7・・
・、またはPASS[0] = 3, PASS [1] = 9,
PASS [2] = 2, PASS [3] = 5, PASS [4] = 7 ...
., Or PASS
〔0〕=3、PASS〔1〕=2、PASS
〔2〕=9、PASS〔3〕=5、PASS〔4〕=7・・・と
なる。[0] = 3, PASS [1] = 2, PASS
[2] = 9, PASS [3] = 5, PASS [4] = 7.
【0151】さらに、アタック中および急速減衰中の楽
音発生チャネルへの割当てを禁止しないで割当てるよう
にしても良い。言い換えれば、ステップB4の対象アサ
イン順位TASNが割当て可能楽音発生チャネル数GACNより
大きくなると割当てを禁止する処理を削除する。なお、
対象アサイン順位TASNが“15”を越えた場合には割当
てを禁止する、または対象アサイン順位TASNを“0”に
戻すか、アサイン順位を再設定するようにしても良い。
この場合に、アタック中の楽音発生チャネルのアサイン
順位はアタックを終了した楽音発生チャネルより後順位
となり、急速減衰中の楽音発生チャネルのアタック順位
はアタック中の楽音発生チャネルよりも後順位になる。Further, it may be possible to perform allocation without prohibiting the allocation to the tone generation channels during the attack and the rapid decay. In other words, when the target assignment order TASN in step B4 becomes larger than the allocatable tone generation channel number GACN, the process of prohibiting the allotment is deleted. In addition,
When the target assign order TASN exceeds "15", the allocation may be prohibited, or the target assign order TASN may be returned to "0" or the assign order may be reset.
In this case, the assigning order of the tone generation channel under attack is lower than that of the tone generation channel that has finished the attack, and the attack order of the tone generation channel during rapid decay is lower than that of the attacking tone generation channel.
【0152】さらにまた、発音量が所定レベル以下の楽
音発生チャネルのアサイン順位を、押鍵順、楽音発生チ
ャネル順、所定レベル以下になった順などに設定するよ
うにして発音量にもとづくアサイン順位の設定処理を簡
略化しても良い。この場合においては、発音量が所定レ
ベル以下の評価発音量を変更しなくても良い。また、処
理の簡略化のためにプリアサイン処理対象とする楽音発
生チャネルを限定しても良い。例えば、公知の技術によ
り押鍵順を管理し、プリアサイナタスクにおいては最新
の押鍵から所定数個の古い押鍵に対応する楽音発生チャ
ネルについてはプリアサインの処理対象から除外すると
ともに、トランケートを禁止する。なお、本実施例にお
いては発音量をエンベロープレベルによったが、エンベ
ロープレベルに適当な重み付け処理をしたり、楽音発生
チャネルから発生している楽音信号の振幅レベルより検
出したエンベロープレベルによったり、疑似エンベロー
プレベル、特開平1−169496号公報などで提案し
た残存発音量、あるいは発音継続時間(発音を終了する
までの時間)などによっても良い。Furthermore, the assigning order of the tone generation channels whose sound production level is below a predetermined level is set in the key pressing order, the tone generation channel order, the order below the predetermined level, etc. The setting process may be simplified. In this case, it is not necessary to change the evaluation sound generation amount whose sound generation amount is equal to or lower than a predetermined level. Further, for simplification of the processing, the musical tone generation channels targeted for the pre-assignment processing may be limited. For example, the key press order is managed by a known technique, and in the pre-assigner task, the tone generation channels corresponding to a predetermined number of old key presses from the latest key press are excluded from the pre-assign processing target and the truncation is performed. Ban. In the present embodiment, the tone generation amount depends on the envelope level, but the envelope level is appropriately weighted, or the envelope level detected from the amplitude level of the tone signal generated from the tone generation channel is used. It may be based on the pseudo envelope level, the remaining tone generation amount proposed in Japanese Patent Laid-Open No. 1-1649496, or the tone generation duration (time until the tone generation ends).
【0153】本実施例においては、同一音高であれば連
打関係にあると判断したが、一つの楽音を複数個の部分
音などで構成する場合には、同一音高でかつ同種の部分
音などであれば連打関係にあると判断しても良い。本実
施例においては、アサイン順位を連打関係にもとづいて
変更したが、他の楽音との間のマスキングにもとづいて
変更しても良い。〈変形例1〉プリアサイナタスクにお
ける連打処理の変形例について、次に説明する。In the present embodiment, it has been determined that there is a continuous hitting relationship if the pitches are the same, but if one musical tone is composed of a plurality of partial sounds and the like, the partial pitches of the same pitch and of the same kind are used. If so, it may be determined that they have a continuous hitting relationship. In the present embodiment, the assignment order is changed based on the continuous hitting relationship, but it may be changed based on masking with other musical tones. <Modification 1> A modification of the continuous hitting process in the pre-assigner task will be described below.
【0154】まず、本変形例において使用する変数を説
明する。
PCNN 連打処理対象ノート番号
SCNN 連打処理対象ノート番号
楽音発生チャネル管理マップに、(10)押鍵順位のエリア
を追加する。なお、このエリアは対応する楽音発生チャ
ネル番号の押鍵順位を“0〜15”でもって示し、最も
古い押鍵順位を“0”でもって示す。First, the variables used in this modification will be described. PCNN consecutive note processing target note number SCNN consecutive note processing target note number Add the area of (10) key pressing order to the tone generation channel management map. In this area, the key depression order of the corresponding tone generation channel number is indicated by "0 to 15" and the oldest key depression order is indicated by "0".
【0155】ノートマップに、(3) 優先楽音発生チャネ
ル番号のエリアを追加する。なお、このエリアは、対応
するノート番号の楽音を優先して発音する楽音発生チャ
ネル番号を示す。メインアサイナタスクのステップB1
における楽音発生チャネル管理マップの初期設定に際し
ては、各楽音発生チャネルの押鍵順位を対応する楽音発
生チャネル番号に設定する。例えば、楽音発生チャネル
番号が“1”の楽音発生チャネルの押鍵順位を“1”に
設定する。The area of (3) priority tone generation channel number is added to the note map. It should be noted that this area indicates the tone generation channel number in which the tone of the corresponding note number is preferentially sounded. Step B1 of the main assigner task
In the initial setting of the tone generation channel management map in, the key pressing order of each tone generation channel is set to the corresponding tone generation channel number. For example, the key depression order of the tone generation channel having the tone generation channel number "1" is set to "1".
【0156】発音タスクのステップC12の処理に、次
の処理を追加する。
〔C12〕 楽音発生チャネル管理マップにおける発音
処理対象楽音発生チャネル番号GCTNに対応する楽音発生
チャネル番号の押鍵順位以上の押鍵順位を、次のように
更新する。発音処理対象楽音発生チャネル番号GCTNに対
応する楽音発生チャネル番号の押鍵順位より大きな押鍵
順位を“1”だけデクリメントするとともに、発音処理
対象楽音発生チャネル番号GCTNに対応する楽音発生チャ
ネル番号の押鍵順位を“15”に設定する。例えば、押
鍵順位が“5”の楽音発生チャネルに新たな楽音を割当
てると、押鍵順位が“6”〜“15”の楽音発生チャネ
ルの押鍵順位は“5”〜“14”に設定され、新たな楽
音が割当てられた楽音発生チャネルの押鍵順位は“1
5”に設定される。The following processing is added to the processing of step C12 of the sounding task. [C12] The key pressing order of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is updated as follows. The tone generation channel number GCTN corresponding to the tone generation target tone generation channel number is decremented by "1" and the tone generation channel number corresponding to the tone generation target tone generation channel number GCTN is depressed. Set the key rank to "15". For example, when a new musical tone is assigned to the tone generation channel having the key depression order of "5", the key depression order of the tone generation channels having the key depression order of "6" to "15" is set to "5" to "14". And the key depression order of the tone generation channel to which a new tone is assigned is "1".
It is set to 5 ".
【0157】プリアサイナタスクにおいては、ステップ
D7において第N順位楽音発生チャネル番号の並べ換え
処理に代えて次に説明する連打処理を行うとともに、ス
テップD8において前述の変更前のステップD7の第N
順位楽音発生チャネル番号の並べ換え処理を行う。連打処理ルーチン(図18)
プリアサイナ発音量の小なるものから順に連打関係を調
べ、連打であればプリアサイナ発音量を1/10に減少
させて再設定するルーチンである。各ステップD701
〜D719においての処理は、次の通りである。In the pre-assigner task, the consecutive hitting process described below is performed in place of the rearrangement process of the Nth tone generation channel numbers in step D7, and the Nth of step D7 before the change is performed in step D8.
Performs rearrangement processing of the order tone generation channel numbers. Sequential Strike Processing Routine (FIG. 18) This is a routine for checking the consecutive striking relationship in order from the smallest pre-assigner sound production amount, and in the case of consecutive striking, reducing the pre-assigner sound production amount to 1/10 and resetting. Each step D701
The processing in D719 is as follows.
【0158】〔D701〕 連打処理対象番号PCTNを
“15”に設定し、次のステップD702に進む。
〔D702〕 楽音発生チャネル管理マップにおける連
打処理対象番号PCTNに対応する楽音発生チャネル番号の
急速減衰中フラグが“1:急速減衰中”であるか否かを
判断する。この急速減衰中フラグが“1”である場合に
はステップD708に進み、“1”でない場合には次の
ステップD703に進む。[D701] The continuous hit processing target number PCTN is set to "15", and the flow advances to the next step D702. [D702] It is determined whether or not the rapid decay flag of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is "1: rapid decay in progress". If the rapid decay flag is "1", the process proceeds to step D708, and if it is not "1", the process proceeds to step D703.
【0159】〔D703〕 まず、楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のノート番号を連打処理対象ノート番
号PCNNとし、押鍵順位を連打処理対象押鍵順位PCPNとす
る。次に、ノートマップにおける連打処理対象ノート番
号PCNNに対応するノート番号の優先楽音発生チャネル番
号を連打比較対象番号SCTNとして、次のステップD70
4に進む。[D703] First, the note number of the tone generation channel number corresponding to the tone generation processing target number PCTN in the tone generation channel management map is set as the note generation target note number PCNN, and the key pressing order is set as the continuous processing target key pressing order PCPN. To do. Next, the priority tone generation channel number of the note number corresponding to the note number PCNN to be repeatedly hit in the note map is set as the consecutive hit comparison number SCTN, and the next step D70 is performed.
Go to 4.
【0160】〔D704〕 連打処理対象番号PCTNと連
打比較対象番号SCTNとが同じであるか否かを判断する。
これら連打処理対象番号PCTNおよび連打比較対象番号SC
TNが同じである場合にはステップD708に進み、同じ
でない場合には次のステップD705に進む。
〔D705〕 連打比較対象番号SCTNのノート番号を連
打比較対象ノート番号SCNNとする。[D704] It is determined whether or not the consecutive hit processing target number PCTN and the consecutive hit comparison target number SCTN are the same.
These consecutive hit processing numbers PCTN and consecutive hit comparison number SC
If the TNs are the same, the process proceeds to step D708, and if they are not the same, the process proceeds to the next step D705. [D705] The note number of the consecutive hit comparison target number SCTN is set as the consecutive hit comparison target note number SCNN.
【0161】〔D706〕 連打処理対象ノート番号PC
NNと連打比較対象ノート番号SCNNが同じであるか否かを
判断する。これら連打処理対象ノート番号PCNNおよび連
打比較対象ノート番号SCNNが同じである場合にはステッ
プD710に進み、同じでない場合には次のステップD
707に進む。
〔D707〕 ノートマップにおける連打処理対象ノー
ト番号PCNNに対応するノート番号の優先楽音発生チャネ
ル番号を連打処理対象番号PCTNに更新する。[D706] Note number PC for continuous hit processing
It is determined whether or not the NN and the consecutive hit comparison note number SCNN are the same. If the note number PCNN for consecutive hit processing and the note number SCNN for consecutive hit comparison are the same, the process proceeds to step D710. If they are not the same, the next step D is performed.
Proceed to 707. [D707] The priority tone generation channel number of the note number corresponding to the note number PCNN for the continuous hit processing in the note map is updated to the continuous hit processing target number PCTN.
【0162】〔D708〕 連打処理対象番号PCTNを
“1”だけデクリメントする。
〔D709〕 連打処理対象番号PCTNが“0”以上であ
るか否かを判断する。この連打処理対象番号PCTNが
“0”以上である場合にはステップD702に戻り、
“0”以上でない場合には連打処理ルーチンを終了して
ステップD8に進む。
〔D710〕 連打比較対象番号SCTNの急速減衰中フラ
グが“1:急速減衰中”であるか否かを判断する。この
急速減衰中フラグが“1”である場合にはステップD7
07に戻り、“1”でない場合には次のステップD71
1に進む。[D708] The continuous hit processing target number PCTN is decremented by "1". [D709] It is determined whether or not the continuous hit processing target number PCTN is "0" or more. If the continuous hit processing target number PCTN is "0" or more, the process returns to step D702,
If it is not "0" or more, the continuous hit processing routine is ended and the process proceeds to step D8. [D710] It is determined whether or not the rapid-decaying flag of the consecutive hit comparison target number SCTN is "1: rapid-decaying". If the rapid decay flag is "1", step D7
Returning to 07, if not "1", the next step D71
Go to 1.
【0163】〔D711〕 連打処理対象番号PCTNのプ
リアサイナ発音量PLEV〔PCTN〕が“8000H”未満、
言い換えれば楽音発生チャネル番号が連打処理対象番号
PCTNの楽音発生チャネルがアタックを終了しているか否
かを判断する。このプリアサイナ発音量PLEV〔PCTN〕が
“8000H”未満でアタックを終了している場合には
ステップD716に進み、“8000H”未満でない場
合には次のステップD712に進む。[D711] The pre-assigner pronunciation amount PLEV [PCTN] of the continuous hit processing target number PCTN is less than "8000H",
In other words, the tone generation channel number is the target number for continuous hit processing.
Determine whether the musical tone generation channel of PCTN has finished the attack. If the pre-assigner tone generation amount PLEV [PCTN] is less than "8000H" to end the attack, the process proceeds to step D716, and if it is not less than "8000H", the process proceeds to step D712.
【0164】〔D712〕 連打比較対象番号SCTNのプ
リアサイナ発音量PLEV〔SCTN〕が“8000H”未満、
言い換えれば楽音発生チャネル番号が連打比較対象番号
SCTNの楽音発生チャネルがアタックを終了しているか否
かを判断する。このプリアサイナ発音量PLEV〔SCTN〕が
“8000H”未満でアタックを終了している場合には
ステップD714に進み、“8000H”未満でない場
合には次のステップD713に進む。[D712] The pre-assigner pronunciation amount PLEV [SCTN] of the consecutive hit comparison target number SCTN is less than "8000H",
In other words, the tone generation channel number is the consecutive hit comparison number.
Determine whether the tone generation channel of SCTN has finished the attack. If the pre-assigner tone generation amount PLEV [SCTN] is less than "8000H" and the attack is completed, the process proceeds to step D714, and if it is not less than "8000H", the process proceeds to step D713.
【0165】〔D713〕 楽音発生チャネル管理マッ
プにおける連打処理対象番号PCTNに対応する楽音発生チ
ャネル番号の押鍵順位が、連打比較対象番号SCTNに対応
する楽音発生チャネル番号の押鍵順位より大であるか否
かを判断する。この連打処理対象番号PCTNに対応する押
鍵順位が大である場合にはステップD707に戻り、連
打処理対象番号PCTNに対応する押鍵順位が大でない場合
にはステップD708に戻る。[D713] The key-depression order of the tone-generation channel number corresponding to the consecutive-stroke processing target number PCTN in the tone-generation channel management map is higher than the key-depression order of the tone generation channel number corresponding to the consecutive-stroke comparison target number SCTN. Determine whether or not. If the key depression order corresponding to the continuous hit processing target number PCTN is high, the process returns to step D707, and if the key depression order corresponding to the continuous hit processing target number PCTN is not high, the process returns to step D708.
【0166】〔D714、D715〕 連打比較対象番
号SCTNのプリアサイナ発音量PLEV〔SCTN〕が“0”であ
るか否かを判断する。このプリアサイナ発音量PLEV〔SC
TN〕が“0”である場合には格別の処理を行わずにステ
ップD707に進み、“0”でない場合には連打比較対
象番号SCTNのプリアサイナ発音量PLEV〔SCTN〕を“1
0”で除した値に“1”を加算した値に更新し、ステッ
プD707に進む。[D714, D715] It is determined whether or not the pre-assigner tone generation amount PLEV [SCTN] of the continuous hit comparison target number SCTN is "0". This pre-assigner pronunciation amount PLEV [SC
If TN] is "0", no special processing is performed and the process proceeds to step D707. If it is not "0", the pre-assigner pronunciation amount PLEV [SCTN] of the continuous hit comparison target number SCTN is set to "1".
It is updated to a value obtained by adding "1" to the value divided by "0", and the process proceeds to step D707.
【0167】〔D716〕 連打比較対象番号SCTNのプ
リアサイナ発音量PLEV〔SCTN〕が“8000H”未満、
言い換えれば楽音発生チャネル番号が連打比較対象番号
SCTNの楽音発生チャネルがアタックを終了しているか否
かを判断する。このプリアサイナ発音量PLEV〔SCTN〕が
“8000H”未満でアタックを終了している場合には
次のステップD717に進み、“8000H”未満でな
い場合にはステップD718に進む。[D716] The pre-assigner pronunciation amount PLEV [SCTN] of the consecutive hit comparison target number SCTN is less than "8000H",
In other words, the tone generation channel number is the consecutive hit comparison number.
Determine whether the tone generation channel of SCTN has finished the attack. If the pre-assigner tone generation amount PLEV [SCTN] is less than "8000H" and the attack is completed, the process proceeds to the next step D717, and if it is not less than "8000H", the process proceeds to step D718.
【0168】〔D717〕 連打処理対象番号PCTNのプ
リアサイナ発音量PLEV〔PCTN〕が連打比較対象番号SCTN
のプリアサイナ発音量PLEV〔SCTN〕より大であるか否か
を判断する。この連打処理対象番号PCTNのプリアサイナ
発音量PLEV〔PCTN〕が大である場合にはステップD71
4に進み、大でない場合には次のステップD718に進
む。[D717] The pre-assigner pronunciation amount PLEV [PCTN] of the continuous hit processing target number PCTN is the continuous hit comparison target number SCTN.
It is determined whether or not it is larger than the pre-assigner pronunciation amount PLEV [SCTN]. If the pre-assigner pronunciation amount PLEV [PCTN] of the continuous hit processing target number PCTN is large, step D71.
4 and if not, proceed to the next Step D718.
【0169】〔D718、D719〕 連打処理対象番
号PCTNのプリアサイナ発音量PLEV〔PCTN〕が“0”であ
るか否かを判断する。このプリアサイナ発音量PLEV〔PC
TN〕が“0”である場合には格別の処理を行わずにステ
ップD708に進み、“0”でない場合には、連打処理
対象番号PCTNのプリアサイナ発音量PLEV〔PCTN〕を“1
0”で除した値に“1”を加算した値に更新し、ステッ
プD708に進む。[D718, D719] It is determined whether or not the pre-assigner tone generation amount PLEV [PCTN] of the continuous hit processing target number PCTN is "0". This pre-assigner pronunciation amount PLEV [PC
If TN] is "0", no special process is performed and the process proceeds to step D708. If it is not "0", the pre-assigner pronunciation amount PLEV [PCTN] of the continuous hit processing target number PCTN is set to "1".
It is updated to a value obtained by adding "1" to the value divided by "0", and the process proceeds to step D708.
【0170】なお、連打処理対象および連打比較対象の
楽音発生チャネルがともにアタック中である場合には、
ステップD713において押鍵順位を比較したが、押鍵
順位にかえてアタックレベルを比較するようにしても良
い。言い換えれば、ステップD717と同様な判断処理
を行い、連打処理対象番号PCTNのプリアサイナ発音量PL
EV〔PCTN〕が大である場合にはステップD707に進
み、大でない場合にはステップD708に進む。第2実施例
次に、本発明による電子楽器の割当装置を、持続音系の
楽音を発生する電子楽器に適用した場合の具体的実施例
につき、図面を参照しつつ説明する。If both the tone generation channels subject to the consecutive hit processing and the consecutive hit comparison target are in attack,
Although the key depression order is compared in step D713, the attack level may be compared instead of the key depression order. In other words, the same judgment processing as in step D717 is performed, and the pre-assigner pronunciation amount PL of the continuous hit processing target number PCTN is set.
If EV [PCTN] is large, the process proceeds to step D707, and if it is not large, the process proceeds to step D708. Second Embodiment Next, a specific embodiment in which the electronic musical instrument allocating apparatus according to the present invention is applied to an electronic musical instrument that generates a continuous tone type musical sound will be described with reference to the drawings.
【0171】第1実施例との相違点
〇 楽音発生チャネル管理マップを、次のように変更す
る。
・次のエリアを削除する。
(1) 発音量
・次のエリアを追加する。Differences from the first embodiment: The tone generation channel management map is changed as follows. -Delete the following areas. (1) Pronunciation volume ・ The following areas are added.
【0172】(10)ノートステータス
(11)押鍵順位:押鍵順位を“0〜15”でもって示し、
最も古い押鍵順位を“0”でもって示す。
(12)ステージ番号:プリアサイン処理における処理段階
を“0〜5”でもって示し、発音終了を“0”、離鍵済
みでかつホールドオフを“1”、離鍵済でかつダンパー
オンを“2" 、離鍵済みでかつソステヌートオンを
“3”、押鍵中でかつトランケート禁止解除を“4”、
押鍵中でかつトランケート禁止中を“5”でもって示
す。ここで、ホールドオフはダンパーオフでかつソステ
ヌートオフを示す。(10) Note status (11) Key pressing order: The key pressing order is indicated by "0 to 15",
The oldest key depression order is indicated by "0". (12) Stage number: The processing stage in the pre-assign process is indicated by "0 to 5", the sound generation end is "0", the key is released and the holdoff is "1", the key is released and the damper on is "". 2 ", the key is released and sostenuto is on" 3 ", the key is being depressed and the truncation prohibition release is" 4 ",
"5" indicates that the key is being pressed and truncation is prohibited. Here, hold-off indicates damper off and sostenuto off.
【0173】(13)プリアサイン順位:プリアサイン順位
を“0〜15”でもって示し、最も早い順位を“0”で
もって示す。
(14)ステージ内のプリアサイン順位:各処理段階におけ
るプリアサイン順位を“1〜16”でもって示し、最も
早い順位を“1”でもって示す。
(15)連打フラグ:連打である場合を“1”でもって示
す。
〇 プリアサイン処理FIFOを設ける。
〇 本実施例において追加して用いられる各種の変数と
しては、次のものがある。(13) Preassigned rank: The preassigned rank is indicated by "0 to 15", and the earliest rank is indicated by "0". (14) Pre-assignment rank in the stage: The pre-assignment rank in each processing stage is indicated by "1 to 16", and the earliest rank is indicated by "1". (15) Repeated hit flag: Indicates the continuous hit with "1". -Provide a pre-assignment processing FIFO. The various variables additionally used in this embodiment are as follows.
【0174】CRQF プリアサイン処理要求フラグ:発音
タスクにおけるプリアサイン処理要求を“1”でもって
示す。
PEXM 処理モード:処理モードを“1〜4”でもって示
し、押鍵を“1”、アタック処理を“2”、離鍵を
“3”、発音終了を“4”でもって示す。
POAS 旧プリアサイン順位
PNAS 新プリアサイン順位
POSN 旧ステージ番号
PNSN 新ステージ番号
PDSN 下位ステータス番号
POSA ステージ内の旧プリアサイン順位
PNSA ステージ内の新プリアサイン順位
PSAM〔POSN〕 ステージ番号POSNのステージ内の最大プ
リアサイン順位
PSRM〔POSN〕 ステージ番号POSNのステージ内の最大連
打順位
PSAM〔PNSN〕 ステージ番号PNSNのステージ内の最大プ
リアサイン順位
PSRM〔PNSN〕 ステージ番号PNSNのステージ内の最大連
打順位
PSAM〔PDSN〕 ステージ番号PDSNのステージ内の最大プ
リアサイン順位
PNTN プリアサイナノート番号
ERQF プリアサイン処理要求フラグ:エンベロープタス
クにおけるプリアサイン処理要求を“1”でもって示
す。
〇 次のようにキーデータ受信タスクのステップA6を
変更するとともに、ステップA8を追加する。CRQF pre-assignment processing request flag: Indicates a pre-assignment processing request in the sounding task with "1". PEXM processing mode: The processing mode is indicated by "1 to 4", key depression is indicated by "1", attack processing is indicated by "2", key release is indicated by "3", and sounding end is indicated by "4". POAS Old pre-assigned rank PNAS New pre-assigned rank POSN Old stage number PNSN New stage number PDSN Lower status number POSA Old pre-assigned rank in stage PNSA New pre-assigned rank in stage PSAM (POSN) Stage number Maximum in POSN stage Pre-assigned rank PSRM [POSN] Maximum number of consecutive hits in the stage of POSN [PNSN] Maximum pre-assigned ranking PSRM [PNSN] in the stage of stage number PNSN Maximum pre-assignment order within the stage of stage number PDSN PNTN Pre-signer note number ERQF Pre-assignment processing request flag: Indicates "1" for pre-assignment processing request in the envelope task. ○ Step A6 of the key data reception task is changed and step A8 is added as follows.
【0175】〔A6〕 まず、ノートマップにおけるノ
ート番号NTNMに対応するノート番号のノートステータス
を“0”に設定する。次に、楽音発生チャネル管理マッ
プのノート番号がノート番号NTNMでかつノートステータ
スが“1”である楽音発生チャネル番号を押鍵順位の小
なる順に探し、押鍵順位の最も小なる楽音発生チャネル
番号のノートステータスを“0”に設定するとともに、
プリアサイン処理FIFOに離鍵処理を示す“3”およ
び楽音発生チャネル番号を順次に積み込んでステップA
8に進む。[A6] First, the note status of the note number corresponding to the note number NTNM in the note map is set to "0". Next, the tone generation channel management map is searched for a tone generation channel number whose note number is the note number NTNM and whose note status is "1", in order of decreasing key depression order, and the tone generation channel number with the lowest key depression order is searched. Set the note status of "0" and
"3" indicating the key release processing and the tone generation channel number are sequentially loaded into the pre-assign processing FIFO and step A is executed.
Go to 8.
【0176】〔A8〕プリアサイン要求イベントを発生
する。言い換えれば、要求先タスク番号NDTKを“4:プ
リアサイナタスク”に、要求先イベント値NDETを“1”
に設定してイベント発生モニタコールを行う。そして、
ステップA2に戻る。
〇 メインアサイナタスクの処理を一部変更する。
ステップB1に、次の処理を追加する。[A8] Generate a pre-assignment request event. In other words, the request destination task number NDTK is “4: pre-assigner task” and the request destination event value NDET is “1”.
Set to and make an event occurrence monitor call. And
Return to step A2. * Partially change the processing of the main assigner task. The following process is added to step B1.
【0177】〔B1〕 楽音発生チャネル管理マップに
おける各楽音発生チャネル番号のプリアサイン順位およ
び押鍵順位を各対応する楽音発生チャネル番号に設定す
る。ステップB5に、次の処理を追加する。
〔B5〕 プリアサイン処理FIFOに押鍵処理を示す
“1”および楽音発生チャネル番号を順次に積み込む。
〇 発音タスクの処理の一部を、次のように変更する。[B1] The pre-assign order and key-press order of each tone generation channel number in the tone generation channel management map are set to each corresponding tone generation channel number. The following processing is added to step B5. [B5] "1" indicating the key depression process and the tone generation channel number are sequentially loaded into the pre-assign process FIFO. * Part of the processing of the pronunciation task is changed as follows.
【0178】ステップC3に、次の処理を追加する。プ
リアサイン処理要求フラグCRQFを“1”に設定する。ス
テップC5を、次のように変更する。
〔C5〕 楽音発生チャネル管理マップにおける発音処
理対象楽音発生チャネル番号GCTNに対応する楽音発生チ
ャネル番号のステージ番号が“0”であるか否かを判断
する。このステージ番号が“0”でない場合には次のス
テップC6に進み、“0”で急速減衰処理が不要である
場合にはステップC7に進む。The following processing is added to step C3. The pre-assign processing request flag CRQF is set to "1". Step C5 is changed as follows. [C5] It is determined whether or not the stage number of the tone generation channel number corresponding to the tone generation channel number GCTN to be sounded in the tone generation channel management map is "0". If the stage number is not "0", the process proceeds to the next step C6, and if "0" does not require the rapid damping process, the process proceeds to step C7.
【0179】ステップC6、C12における発音量の設
定処理を削除する。ステップC12に、次の処理を追加
する。楽音発生チャネル管理マップにおける発音処理対
象楽音発生チャネル番号GCTNに対応する楽音発生チャネ
ル番号の押鍵順位以上の押鍵順位を、次のように更新す
る。The tone amount setting process in steps C6 and C12 is deleted. The following process is added to step C12. The key-depression order of the tone-generation channel number corresponding to the tone-generation channel number GCTN to be sounded in the tone-generation channel management map is updated as follows.
【0180】発音処理対象楽音発生チャネル番号GCTNに
対応する楽音発生チャネル番号の押鍵順位より大きな押
鍵順位を“1”だけデクリメントするとともに、発音処
理対象楽音発生チャネル番号GCTNに対応する楽音発生チ
ャネル番号の押鍵順位を“15”に設定する。例えば、
押鍵順位が“5”の楽音発生チャネルに新たな楽音を割
当てると、押鍵順位が“6”〜“15”の楽音発生チャ
ネルの押鍵順位は“5”〜“14”に更新され、新たな
楽音が割当てられた楽音発生チャネルの押鍵順位は“1
5”に更新される。The tone generation channel corresponding to the tone generation target tone generation channel number GCTN is decremented by "1", and the tone generation channel corresponding to the tone generation target tone generation channel number GCTN is decremented by "1". Set the key depression order of numbers to "15". For example,
When a new musical tone is assigned to the tone generation channel having the key depression order of "5", the key depression order of the tone generation channels having the key depression order of "6" to "15" is updated to "5" to "14", The key depression order of the tone generation channel to which a new tone is assigned is "1".
Updated to 5 ".
【0181】ステップC22の処理に先立ち、次の処理
を行う。
〔C22p〕 プリアサイン処理要求フラグCRQFが
“1”であるか否かを判断する。このプリアサイン処理
要求フラグCRQFが“1”である場合には次のステップC
22qに進み、“1”でない場合にはステップC22に
進む。
〔C22q〕 プリアサイン要求イベントを発生する。
言い換えれば、要求先タスク番号NDTKを“4:プリアサ
イナタスク”に、要求先イベント値NDETを“1”に設定
してイベント発生モニタコールを行う。また、プリアサ
イン処理要求フラグCRQFを“0”に設定してステップC
22に進む。
〇 プリアサイナタスクを、次のように変更する。(図
19)
〔D1〕 エンベロープ管理マップおよびプリアサイン
処理FIFOをクリヤするとともに、このプリアサイナ
タスクで占有する変数などを初期値に設定する。なお、
変数などの初期設定に際し、プリアサイナ割当て可能楽
音発生チャネル数PACNおよびステージ番号“0”のステ
ージ内の最大プリアサイン順位PSAM[0]を“16”に、
その他の変数を“0”に設定する。The following processing is performed prior to the processing of step C22. [C22p] It is determined whether the pre-assignment processing request flag CRQF is "1". When this pre-assignment processing request flag CRQF is "1", the next step C
22q, and if it is not "1", proceed to step C22. [C22q] Generate a pre-sign request event.
In other words, the request generation task number NDTK is set to "4: pre-assigner task" and the request destination event value NDET is set to "1" to make an event occurrence monitor call. In addition, the pre-assignment processing request flag CRQF is set to "0" and step C
Proceed to 22. * Change the pre-signer task as follows. (FIG. 19) [D1] The envelope management map and pre-assign processing FIFO are cleared, and at the same time, variables and the like occupied by this pre-assigner task are set to initial values. In addition,
At the time of initial setting of variables, etc., the number of musical sound generation channels that can be assigned to pre-assigners PACN and the maximum pre-assignment order PSAM [0] in the stage of stage number "0" are set to "16"
Set other variables to "0".
【0182】〔D2〕 要求元イベント値NSETを“3
1”に設定してイベント待ちモニタコールを行う。な
お、プリアサイン要求イベントが発生すると、次のステ
ップD3に進む。
〔D3〕 タスク管理マップにおけるタスク番号“4:
プリアサイナタスク”の待ちイベント値を“0”に設定
する。[D2] The request source event value NSET is set to "3".
When the pre-assignment request event occurs, the process proceeds to the next step D3. [D3] Task number "4: in task management map"
Set the wait event value of "pre-signer task" to "0".
【0183】〔D4〕、〔D5〕 第1イベント発生フ
ラグが“1”であるか否かを判断し、この第1イベント
発生フラグが“1”である場合には更新処理1を行う。
この更新処理1の内容は後に詳細に説明する。
〔D6〕、〔D7〕 第2イベント発生フラグが“1”
であるか否かを判断し、この第2イベント発生フラグが
“1”である場合には更新処理2を行う。この更新処理
2の内容は後に説明する。[D4], [D5] It is judged whether or not the first event occurrence flag is "1", and if the first event occurrence flag is "1", the updating process 1 is performed.
The contents of this update process 1 will be described later in detail. [D6], [D7] Second event occurrence flag is "1"
If the second event occurrence flag is "1", the update process 2 is performed. The contents of this update processing 2 will be described later.
【0184】〔D8〕、〔D9〕 第3イベント発生フ
ラグが“1”であるか否かを判断し、この第3イベント
発生フラグが“1”である場合には更新処理3を行う。
この更新処理3の内容は後に詳細に説明する。
〔D10〕、〔D11〕 第4イベント発生フラグが
“1”であるか否かを判断し、この第4イベント発生フ
ラグが“1”である場合には更新処理4を行う。この更
新処理4の内容は後に詳細に説明する。[D8], [D9] It is determined whether or not the third event occurrence flag is "1", and if the third event occurrence flag is "1", the updating process 3 is performed.
The contents of this update processing 3 will be described later in detail. [D10], [D11] It is determined whether or not the fourth event occurrence flag is "1", and if the fourth event occurrence flag is "1", the update process 4 is performed. The contents of this update processing 4 will be described later in detail.
【0185】〔D12〕、〔D13〕 第5イベント発
生フラグが“1”であるか否かを判断し、この第5イベ
ント発生フラグが“1”である場合には更新処理5を行
う。この更新処理5の内容は後に詳細に説明する。
〔D14〕 タスクロックをかける。
〔D15〕 メインアサイナ処理中フラグMAEFが“0”
であるか否かを判断する。このメインアサイナ処理中フ
ラグMAEFが“0”である場合には次のステップD16に
進み、“0”でない場合にはステップD17に進む。[D12], [D13] It is judged whether or not the fifth event occurrence flag is "1", and if the fifth event occurrence flag is "1", the updating process 5 is executed. The contents of the update process 5 will be described later in detail. [D14] Lock the task. [D15] Main assigner processing flag MAEF is "0".
Or not. When the main assigner processing flag MAEF is "0", the process proceeds to the next step D16, and when it is not "0", the process proceeds to step D17.
【0186】〔D16〕 まず、順次に楽音発生チャネ
ル管理マップにおける楽音発生チャネル番号とプリアサ
イン順位とにもとづいて第Nアサイン順位楽音発生チャ
ネル番号MASS〔N 〕を設定する。例えば、楽音発生チャ
ネル番号“0”のプリアサイン順位が“5”であれば第
5アサイン順位楽音発生チャネル番号MASS〔5〕を
“0”に設定する。次に、対象アサイン順位TASNを
“0”に設定し、プリアサイナ割当て可能楽音発生チャ
ネル数PACNを割当て可能楽音発生チャネル数GACNとす
る。さらに、タスクロックを解除してステップD2に戻
る。[D16] First, the N-th assigned musical tone generation channel number MASS [N] is sequentially set on the basis of the musical tone generation channel number and the pre-assignment ranking in the musical tone generation channel management map. For example, if the pre-assigned rank of the tone generation channel number "0" is "5", the fifth assigned tone generation channel number MASS [5] is set to "0". Next, the target assign order TASN is set to "0", and the preassigner allocatable tone generation channel number PACN is set as the allocatable tone generation channel number GACN. Further, the task lock is released and the process returns to step D2.
【0187】〔D17〕 タスクロックを解除してステ
ップD5に戻る。更新処理1ルーチン
押鍵、アタック終了、離鍵または発音終了にもとづくプ
リアサイン順位を更新するルーチンである。
〔D51〕 まず、タスク管理マップにおけるタスク番
号“4:プリアサイナタスク”の第1イベント発生フラ
グを“0”に設定する。次に、メインアサイナ処理中フ
ラグMAEFを“0”に設定する。[D17] The task lock is released and the process returns to step D5. Update Processing 1 Routine This routine updates the pre-assignment order based on key depression, attack end, key release, or sound end. [D51] First, the first event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the main assigner processing flag MAEF is set to "0".
【0188】〔D52〕 プリアサイン処理FIFOか
らデータを降ろして処理モードPEXMとする。
〔D53〕 処理モードPEXMを判断する。この処理モー
ドPEXMが“1”である場合には次のステップD54に、
“2”である場合にはステップD55に、“3”である
場合にはステップD56に、“4”である場合にはステ
ップD57に進む。[D52] The data is unloaded from the pre-assign processing FIFO and set to the processing mode PEXM. [D53] The processing mode PEXM is determined. When this processing mode PEXM is "1", the next step D54 is executed.
If it is "2", the process proceeds to step D55, if it is "3", the process proceeds to step D56, and if it is "4", the process proceeds to step D57.
【0189】〔D54〕 更新処理11を行う。この処
理の内容は、図20を参照して後に詳細に説明する。そ
して、ステップD58に進む。
〔D55〕 更新処理12を行う。この処理の内容は後
に詳細に説明する。そして、ステップD58に進む。
〔D56〕 更新処理13を行う。この処理の内容は後
に詳細に説明する。そして、ステップD58に進む。[D54] The update process 11 is performed. Details of this processing will be described later with reference to FIG. Then, the process proceeds to step D58. [D55] The update process 12 is performed. The details of this process will be described later. Then, the process proceeds to step D58. [D56] The update process 13 is performed. The details of this process will be described later. Then, the process proceeds to step D58.
【0190】〔D57〕 更新処理14を行う。この処
理の内容は後に詳細に説明する。そして、ステップD5
8に進む。
〔D58〕 プリアサイン処理FIFOが“空”である
か否かを判断する。このプリアサイン処理FIFOが
“空”である場合には当該ルーチンを終了してプリアサ
イナタスクのステップD6に進み、“空”でない場合に
はステップD52に戻る。[D57] The update process 14 is performed. The details of this process will be described later. And step D5
Go to 8. [D58] It is determined whether or not the pre-assign processing FIFO is "empty". If the pre-assign processing FIFO is "empty", the routine is terminated and the process proceeds to step D6 of the pre-assigner task. If it is not "empty", the process returns to step D52.
【0191】更新処理11ルーチン(図21)
押鍵によりあらたに発音を開始した楽音発生チャネルの
プリアサイン順位を更新するルーチンである。
〔D5401〕 まず、新ステージ番号PNSNを“5”に
設定する。次に、プリアサイン処理FIFOからデータ
を降ろして楽音発生チャネル番号GNとする。 Update Processing 11 Routine (FIG. 21) This routine updates the pre-assignment order of the tone generation channel whose sound has been newly started by pressing a key. [D5401] First, the new stage number PNSN is set to "5". Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN.
【0192】〔D5402〕 連打処理を行う。この処
理の内容は、図21を参照して後に詳細に説明する。
〔D5403〕 楽音発生チャネル管理マップにおける
楽音発生チャネル番号GNに対応する楽音発生チャネル番
号のステージ番号を旧ステージ番号POSNとし、ステージ
内のプリアサイン順位をステージ内の旧プリアサイン順
位POSAとし、プリアサイン順位を旧プリアサイン順位PO
ASとする。[D5402] Continuous hit processing is performed. The contents of this processing will be described later in detail with reference to FIG. [D5403] The stage number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is the old stage number POSN, and the pre-assignment order within the stage is the old pre-assignment order POSA within the stage. Previous pre-assigned rank PO
AS.
【0193】〔D5404〕 旧ステージ番号POSNが
“5”でかつ旧プリアサイン順位POASが“15”である
か否かを判断する。この旧ステージ番号POSNが“5”で
ないまたは旧プリアサイン順位POASが“15”でない場
合には次のステップD5405に進み、“5”でかつ
“15”である場合には当該ルーチンを終了してステッ
プD58に進む。[D5404] It is determined whether or not the old stage number POSN is "5" and the old preassigned order POAS is "15". If the old stage number POSN is not "5" or the old pre-assigned order POAS is not "15", the process proceeds to the next Step D5405, and if it is "5" and "15", the routine is ended. Proceed to Step D58.
【0194】〔D5405〕、〔D5406〕 旧ステ
ージ番号POSNが“5”であるか否かを判断する。このス
テージ番号が“5”でない場合にはプリアサイナ割当て
可能楽音発生チャネル数PACNを“1”だけデクリメント
する。
〔D5407〕 まず、楽音発生チャネル管理マップに
おけるステージ番号が旧ステージ番号POSNでかつステー
ジ内のプリアサイン順位がステージ内の旧プリアサイン
順位POASに“1”を加算した値からステージ番号POSNの
ステージ内の最大プリアサイン順位PSAM〔POSN〕までの
ステップ内の各プリアサイン順位を“1”ずつデクリメ
ントする。次に、ステージ番号POSNのステージ内の最大
プリアサイン順位PSAM〔POSN〕を“1”だけデクリメン
トする。[D5405], [D5406] It is determined whether or not the old stage number POSN is "5". If the stage number is not "5", the number of pre-assigner allocatable musical tone generation channels PACN is decremented by "1". [D5407] First, the stage number in the tone generation channel management map is the old stage number POSN, and the preassignment order within the stage is the value obtained by adding "1" to the old preassignment order POAS within the stage. Decrement each pre-assigned rank within the steps up to the maximum pre-assigned rank PSAM [POSN] of "1". Then, the maximum pre-assignment order PSAM [POSN] in the stage with the stage number POSN is decremented by "1".
【0195】〔D5408〕、〔D5409〕 楽音発
生チャネル管理マップにおける楽音発生チャネル番号GN
に対応する楽音発生チャネル番号の連打フラグが“1”
であるか否かを判断し、この連打フラグが“1”である
場合にはステージ番号POSNのステージ内の最大連打順位
PSRM〔POSN〕を“1”だけデクリメントする。
〔D5410〕 新プリアサイン順位PNASを“15”に
設定するとともに、ステージ番号PNSNのステージ内の最
大プリアサイン順位PSAM〔PNSN〕に“1”を加算した値
をステージ内の新プリアサイン順位PNSAとする。[D5408], [D5409] Musical tone generation channel number GN in the musical tone generation channel management map
The continuous hit flag of the tone generation channel number corresponding to is "1"
If the continuous hit flag is "1", the maximum consecutive hit order within the stage with the stage number POSN is determined.
Decrement PSRM [POSN] by "1". [D5410] The new pre-assignment rank PNAS is set to "15", and the value obtained by adding "1" to the maximum pre-assignment rank PSAM [PNSN] in the stage of the stage number PNSN is set as the new pre-assignment rank PNSA in the stage. To do.
【0196】〔D5411〕 ステージ番号PNSNのステ
ージ内の最大プリアサイン順位PSAM〔PNSN〕を“1”だ
けインクリメントするとともに、楽音発生チャネル管理
マップにおけるプリアサイン順位が旧プリアサイン順位
POASに“1”を加算した値から新プリアサイン順位PNAS
までの各プリアサイン順位を“1”ずつデクリメントす
る。[D5411] The maximum pre-assign order PSAM [PNSN] in the stage of the stage number PNSN is incremented by "1", and the pre-assign order in the tone generation channel management map is the old pre-assign order.
New pre-assigned rank PNAS from the value obtained by adding "1" to POAS
Decrement each pre-assigned ranking up to "1".
【0197】〔D5412〕 楽音発生チャネル管理マ
ップにおける楽音発生チャネル番号GNに対応する楽音発
生チャネル番号のステージ番号を新ステージ番号PNSN
に、ステージ内プリアサイン順位をステージ内の新プリ
アサイン順位PNSAに、プリアサイン順位を新プリアサイ
ン順位PNASに、連打フラグを“0”に設定し、当該ルー
チンを終了してステップD58に進む。[D5412] The stage number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is changed to the new stage number PNSN.
Then, the pre-assignment rank in the stage is set to the new pre-assignment rank PNSA in the stage, the pre-assignment rank is set to the new pre-assignment rank PNAS, and the continuous hit flag is set to "0". Then, the routine is finished and the process proceeds to step D58.
【0198】連打処理ルーチン(図21)
〔D540201〕 まず、楽音発生チャネル管理マッ
プにおける楽音発生チャネル番号GNに対応する楽音発生
チャネル番号のノート番号をプリアサイナノート番号PN
TNとする。次に、連打処理対象番号PCTNを“0”に設定
する。
〔D540202〕 連打処理対象番号PCTNが楽音発生
チャネル番号GNと同じであるか否かを判断する。この連
打処理対象番号PCTNが楽音発生チャネル番号GNと同じで
ない場合には次のステップD540203に進み、同じ
である場合にはステップD540206に進む。 Continuous Strike Processing Routine (FIG. 21) [D540201] First, the note number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is changed to the pre-assigner note number PN.
TN. Next, the continuous hit processing target number PCTN is set to "0". [D540202] It is determined whether the continuous hit processing target number PCTN is the same as the tone generation channel number GN. If the continuous hit processing target number PCTN is not the same as the tone generation channel number GN, the process proceeds to the next step D540203, and if it is the same, the process proceeds to step D540206.
【0199】〔D540203〕 楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号の連打フラグが“1”であるか否かを
判断する。この連打フラグが“1”でない場合には次の
ステップD540204に進み、“1”である場合には
ステップD540206に進む。
〔D540204〕 楽音発生チャネル管理マップにお
ける連打処理対象番号PCTNに対応する楽音発生チャネル
番号のノート番号がプリアサイナノート番号PNTNと同じ
であるか否かを判断する。この楽音発生チャネル番号の
ノート番号がプリアサイナノート番号PNTNと同じである
場合には次のステップD540205に進み、同じでな
い場合にはステップD540206に進む。[D540203] It is determined whether or not the continuous hit flag of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is "1". If this continuous hit flag is not "1", the flow advances to step D540204, and if it is "1", the flow advances to step D540206. [D540204] It is determined whether or not the note number of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is the same as the pre-assigner note number PNTN. If the note number of this tone generation channel number is the same as the pre-assigner note number PNTN, the flow advances to step D540205, and if not, the flow advances to step D540206.
【0200】〔D540205〕 楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のステージ番号が“0”であるか否か
を判断する。このステージ番号が“0”である場合には
次のステップD540206に進み、“0”でない場合
にはステップD540208に進む。
〔D540206〕、〔D540207〕 連打処理対
象番号PCTNが“15”未満であるか否かを判断する。こ
の連打処理対象番号PCTNが“15”未満である場合には
連打処理対象番号PCTNを“1”だけインクリメントして
ステップD540202に戻り、“15”未満でない場
合には当該ルーチンを終了してステップD5403に進
む。[D540205] It is determined whether or not the stage number of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is “0”. If the stage number is "0", the flow proceeds to the next step D540206, and if it is not "0", the flow proceeds to step D540208. [D540206], [D540207] It is determined whether or not the continuous hit processing target number PCTN is less than “15”. If the consecutive hit processing target number PCTN is less than "15", the consecutive hit processing target number PCTN is incremented by "1" and the process returns to step D540202. If it is not less than "15", the routine is finished and step D5403. Proceed to.
【0201】〔D540208〕 楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号の連打フラグを“1”に設定する。
〔D540209〕 楽音発生チャネル管理マップにお
ける連打処理対象番号PCTNに対応する楽音発生チャネル
番号のステージ番号が“5”であるか否かを判断する。
この判断対象のステージ番号が“5”でない場合には次
のステップD540210に進み、“5”である場合に
はステップD540206に進む。[D540208] The continuous hit flag of the musical sound generation channel number corresponding to the continuous hit processing target number PCTN in the musical sound generation channel management map is set to "1". [D540209] It is determined whether or not the stage number of the tone generation channel number corresponding to the continuous hit processing target number PCTN in the tone generation channel management map is “5”.
If the stage number to be judged is not "5", the procedure goes to the next step D540210, and if it is "5", the procedure goes to step D540206.
【0202】〔D540210〕 楽音発生チャネル管
理マップのプリアサイン順位などを、次のようにして更
新する。 楽音発生チャネル管理マップにおける連打
処理対象番号PCTNに対応する楽音発生チャネル番号のス
テージ番号を旧ステージ番号POSNおよび新ステージ番号
PNSNとし、ステージ内のプリアサイン順位をステージ内
の旧プリアサイン順位POSAとし、プリアサイン順位を旧
プリアサイン順位POASとする。[D540210] The pre-assignment rank of the tone generation channel management map is updated as follows. The stage number of the tone generation channel number corresponding to the consecutive hit processing number PCTN in the tone generation channel management map is the old stage number POSN and the new stage number.
Let PNSN be the pre-assignment rank in the stage be the old pre-assignment rank POSA in the stage, and the pre-assignment rank be the old pre-assignment rank POAS.
【0203】 ステージ番号PNSNのステージ内の最大
連打順位PSRM〔PNSN〕が“0”を超えているか否かを判
断する。このステージ内の最大連打順位PSRM〔PNSN〕が
“0”を超えている場合にはに進み、“0”を超えて
いない場合にはに進む。 まず、ステージ番号PNSN
のステージ内の最大連打順位PSRM〔PNSN〕をステージ内
の新プリアサイン順位PNSAとする。次に、楽音発生チャ
ネル管理マップにおけるステージ番号が新ステージ番号
PNSNでかつステージ内のプリアサイン順位がステージ内
の新プリアサイン順位PNSAである楽音発生チャネル番号
のプリアサイン順位に“1”を加算した値を新プリアサ
イン順位PNASとする。さらに、ステージ内の新プリアサ
イン順位PNSAに“1”を加算した値をステージ内の新プ
リアサイン順位PNSAとする。そして、に進む。It is determined whether or not the maximum consecutive hitting order PSRM [PNSN] in the stage with the stage number PNSN exceeds “0”. If the maximum consecutive batting order PSRM [PNSN] in this stage exceeds "0", proceed to, and if it does not exceed "0", proceed to. First, the stage number PNSN
The maximum consecutive batting order PSRM [PNSN] in the stage will be the new pre-assigned order PNSA in the stage. Next, the stage number in the tone generation channel management map is the new stage number.
The value obtained by adding "1" to the pre-assigned rank of the tone generation channel number that is the PNSN and the pre-assigned rank within the stage is the new pre-assigned rank PNSA within the stage is defined as the new pre-assigned rank PNAS. Further, the value obtained by adding “1” to the new pre-assignment rank PNSA in the stage is set as the new pre-assignment rank PNSA in the stage. Then proceed to.
【0204】まず、ステージ内の新プリアサイン順位
PNSAを“1”に設定する。次に、楽音発生チャネル管理
マップにおけるステージ番号が新ステージ番号PNSNでか
つステージ内のプリアサイン順位がステージ内の新プリ
アサイン順位PASAのプリアサイン順位を新プリアサイン
順位PNASとする。そして、に進む。楽音発生チャネ
ル管理マップにおけるステージ番号が新ステージ番号PN
SNでかつステージ内のプリアサイン順位がステージ内の
新プリアサイン順位PNSAからステージ内の旧プリアサイ
ン順位POSAより“1”を減算した値までのステージ内の
各プリアサイン順位を“1”ずつインクリメントする。First, the new pre-assignment ranking within the stage
Set PNSA to "1". Next, the stage number in the tone generation channel management map is the new stage number PNSN, and the pre-assignment order within the stage is the new pre-assign order PASA within the stage as the new pre-assign order PNAS. Then proceed to. The stage number in the tone generation channel management map is the new stage number PN
SN and the pre-assignment rank in the stage is incremented by "1" for each pre-assignment rank in the stage up to the value obtained by subtracting "1" from the old pre-assignment rank POSA in the stage from the new pre-assignment rank in the stage PNSA To do.
【0205】楽音発生チャネル管理マップにおけるプ
リアサイン順位が新プリアサイン順位PNASから旧プリア
サイン順位POASより“1”を減算した値までの各プリア
サイン順位を“1”ずつインクリメントする。楽音発
生チャネル管理マップにおける連打処理対象番号PCTNの
ステージ内のプリアサイン順位をステージ内の新プリア
サイン順位PNSAに、プリアサイン順位を新プリアサイン
順位PNASに設定する。Each pre-assignment rank in the musical sound generation channel management map is incremented by "1" from the new pre-assignment rank PNAS to a value obtained by subtracting "1" from the old pre-assignment rank POAS. The pre-assignment order within the stage of the continuous hit processing number PCTN in the tone generation channel management map is set to the new pre-assignment order PNSA in the stage, and the pre-assignment order is set to the new pre-assignment order PNAS.
【0206】ステージ番号PNSNのステージ内の最大連
打順位PSRM〔PNSN〕を“1”だけインクリメントしてス
テップD540206に進む。更新処理12ルーチン(図22)
アタックを終了した楽音発生チャネルのプリアサイン順
位を更新するルーチンである。The maximum consecutive hitting order PSRM [PNSN] in the stage of the stage number PNSN is incremented by "1" and the process proceeds to step D540206. Update processing 12 routine (FIG. 22) This routine updates the pre-assignment rank of the tone generation channel for which the attack has been completed.
【0207】〔D5501〕 まず、新ステージ番号PN
SNおよび下位ステージ番号PDSNを“4”に設定する。次
に、プリアサイン処理FIFOからデータを降ろして楽
音発生チャネル番号GNとする。
〔D5502〕 更新処理11ルーチンのステップD5
403と同様の処理を行う。[D5501] First, the new stage number PN
Set SN and lower stage number PDSN to "4". Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN. [D5502] Step D5 of update processing 11 routine
The same processing as 403 is performed.
【0208】〔D5503〕 旧ステージ番号POSNが新
ステージ番号PNSNを超えているか否かを判断する。この
旧ステージ番号POSNが新ステージ番号PNSNを超えている
場合には次のステップD5504に進み、超えていない
場合には当該ルーチンを終了してステップD58に進
む。
〔D5504〕 プリアサイナ割当て可能楽音発生チャ
ネル数PACNを“1”だけインクリメントする。[D5503] It is determined whether the old stage number POSN exceeds the new stage number PNSN. If this old stage number POSN exceeds the new stage number PNSN, the routine proceeds to the next Step D5504, and if it does not exceed this routine, the routine is ended and the routine proceeds to Step D58. [D5504] The number of tone generation channels PACN that can be assigned to the pre-signer is incremented by "1".
【0209】〔D5505〕 更新処理11ルーチンの
ステップD5407と同様の処理を行う。
〔D5506〕 更新処理11ルーチンのステップD5
408と同様の判断処理を行う。この判断対象の連打フ
ラグが“1”でない場合には次のステップD5507に
進み、“1”である場合にはステップD5514に進
む。[D5505] The same process as step D5407 of the update process 11 routine is performed. [D5506] Step D5 of update processing 11 routine
The same determination processing as 408 is performed. If the continuous hit flag to be judged is not "1", the procedure goes to the next step D5507, and if it is "1", the procedure goes to step D5514.
【0210】〔D5507〕 ステージ番号PDSNのステ
ージ内の最大プリアサイン順位PSAM〔PDSN〕が“0”を
超えているか否かを判断する。このステージ内の最大プ
リアサイン順位PSAM〔PDSN〕が“0”を超えている場合
には次のステップD5508に進み、“0”を超えてい
ない場合にはステップD5511に進む。
〔D5508〕 まず、ステージ番号PDSNのステージ内
の最大プリアサイン順位PSAM〔PDSN〕をステージ内の新
プリアサイン順位PNSAとする。次に、楽音発生チャネル
管理マップにおけるステージ番号が下位ステージ番号PD
SNでかつステージ内のプリアサイン順位がステージ内の
新プリアサイン順位PNSAである楽音発生チャネル番号の
プリアサイン順位に“1”を加算した値を新プリアサイ
ン順位PNASとする。さらに、ステージ番号PNSNのステー
ジ内の最大プリアサイン順位PSAM〔PNSN〕に“1”を加
算した値をステージ内のプリアサイン順位PNSAとする。[D5507] It is determined whether or not the maximum preassigned order PSAM [PDSN] in the stage with the stage number PDSN exceeds "0". If the maximum pre-assignment order PSAM [PDSN] in this stage exceeds "0", the flow advances to step D5508, and if it does not exceed "0", the flow advances to step D5511. [D5508] First, the maximum pre-assignment order PSAM [PDSN] in the stage with the stage number PDSN is set as the new pre-assignment order PNSA in the stage. Next, the stage number in the tone generation channel management map is the lower stage number PD.
A value obtained by adding "1" to the pre-assigned rank of the tone generation channel number that is SN and the pre-assigned rank within the stage is the new pre-assigned rank PNSA within the stage is defined as the new pre-assigned rank PNAS. Further, a value obtained by adding “1” to the maximum pre-assignment order PSAM [PNSN] in the stage of the stage number PNSN is set as the pre-assignment order PNSA in the stage.
【0211】〔D5509〕 ステージ番号PNSNのステ
ージ内の最大プリアサイン順位PSAM〔PNSN〕を“1”だ
けインクリメントするとともに、楽音発生チャネル管理
マップにおけるプリアサイン順位が新プリアサイン順位
PNASから旧プリアサイン順位POASより“1”を減算した
値までの各プリアサイン順位を“1”ずつインクリメン
トする。[D5509] The maximum pre-assignment rank PSAM [PNSN] in the stage of the stage number PNSN is incremented by "1" and the pre-assignment rank in the tone generation channel management map is the new pre-assignment rank.
Increment each pre-assigned rank from PNAS up to the value obtained by subtracting "1" from the old pre-assigned rank POAS by "1".
【0212】〔D5510〕 更新処理11ルーチンの
ステップD5412と同様の処理を行う。但し、連打フ
ラグの変更は行わない。
〔D5511〕 下位ステージ番号PDSNが“0”を超え
ているか否かを判断する。この下位ステージ番号PDSNが
“0”を超えている場合にはステップD5513に進
み、“0”を超えていない場合には次のステップD55
12に進む。[D5510] The same processing as step D5412 of the update processing 11 routine is performed. However, the continuous hit flag is not changed. [D5511] It is determined whether or not the lower stage number PDSN exceeds “0”. If the lower stage number PDSN exceeds "0", the process proceeds to step D5513, and if it does not exceed "0", the next step D55.
Proceed to 12.
【0213】〔D5512〕 新プリアサイン順位PNAS
を“0”に、ステージ内の新プリアサイン順位PNSAを
“1”に設定する。
〔D5513〕 下位ステージ番号PDSNから“1”減算
した値を下位ステージ番号PDSNとしてステップD550
7に戻る。
〔D5514〕 ステージ番号PNSNのステージ内の最大
連打順位PSRM〔PNSN〕が“0”を超えているか否かを判
断する。このステージ内の最大連打順位PSRM〔PNSN〕が
“0”を超えている場合には次のステップD5515に
進み、“0”を超えていない場合にはステップD550
7に進む。[D5512] New pre-assigned rank PNAS
Is set to “0”, and the new pre-assigned rank PNSA in the stage is set to “1”. [D5513] The value obtained by subtracting “1” from the lower stage number PDSN is set as the lower stage number PDSN, and the step D550 is performed.
Return to 7. [D5514] It is determined whether or not the maximum consecutive batting order PSRM [PNSN] in the stage with the stage number PNSN exceeds "0". If the maximum consecutive batting order PSRM [PNSN] in this stage exceeds "0", the flow proceeds to the next Step D5515, and if it does not exceed "0", Step D550.
Proceed to 7.
【0214】〔D5515〕 まず、ステージ番号PNSN
のステージ内の最大連打順位PSRM〔PNSN〕をステージ内
の新プリアサイン順位PNSAとする。次に、楽音発生チャ
ネル管理マップにおけるステージ番号が新ステージ番号
PNSAでかつステージ内のプリアサイン順位がステージ内
の新プリアサイン順位PNSAである楽音発生チャネル番号
のプリアサイン順位に“1”を加算した値を新プリアサ
イン順位PNASとする。さらに、ステージ番号PNSNのステ
ージ最大連打順位PSRM〔PNSN〕およびステージ内の新プ
リアサイン順位PNSAを“1”ずつインクリメントする。
ステップD5509に進む。[D5515] First, the stage number PNSN.
The maximum consecutive batting order PSRM [PNSN] in the stage will be the new pre-assigned order PNSA in the stage. Next, the stage number in the tone generation channel management map is the new stage number.
A value obtained by adding "1" to the pre-assigned rank of the tone generation channel number that is PNSA and the pre-assigned rank within the stage is the new pre-assigned rank within the stage PNSA is defined as the new pre-assigned rank PNAS. Further, the stage maximum consecutive hitting order PSRM [PNSN] of the stage number PNSN and the new pre-assigned order PNSA in the stage are incremented by "1".
Proceeds to Step D5509.
【0215】更新処理13ルーチン
更新処理12ルーチンに準じた処理により離鍵した楽音
発生チャネルのプリアサイン順位を更新するルーチンで
ある。次に、更新処理12ルーチンとの相違点を説明す
る。
〔D5601〕 まず、新ステータス番号PNSNを“3”
に設定する。次に、プリアサイン処理FIFOからデー
タを降ろして楽音発生チャネル番号GNとする。 Update Processing 13 Routine This routine updates the pre-assignment rank of the tone generation channel released by the processing according to the update processing 12 routine. Next, differences from the update processing 12 routine will be described. [D5601] First, set the new status number PNSN to "3".
Set to. Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN.
【0216】〔D5604〕 旧ステージ番号POSNが
“5”であるか否かを判断し、この旧ステージ番号POSN
が“5”である場合にのみプリアサイン割当て可能楽音
発生チャネル数PACNを“1”だけインクリメントする。
ステップD5606の処理に先立ちステップD5606
P〜D5606Uの処理を行う。[D5604] It is determined whether or not the old stage number POSN is "5", and this old stage number POSN
Only when the value is "5", the number PACN of musical tone generation channels that can be preassigned is incremented by "1".
Prior to the processing of step D5606, step D5606
The processing of P to D5606U is performed.
【0217】〔D5606P〕 楽音発生チャネル管理
マップにおける楽音発生チャネル番号GNに対応する楽音
発生チャネル番号のノート番号をプリアサイナノート番
号PNTNとする。
〔D5606Q〕 ノートマップにおけるプリアサイナ
ノート番号PNTNに対応するノート番号のソステヌートス
テータスが“0”であるか否かを判断する。このステー
タスステータスが“0”である場合には次のステップD
5606Rに進み、“0”でない場合にはステップD5
606Uに進む。[D5606P] The note number of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is set as the pre-assigner note number PNTN. [D5606Q] It is determined whether the sostenuto status of the note number corresponding to the pre-assigner note number PNTN in the note map is "0". If this status is "0", the next step D
Proceed to 5606R, and if not "0", step D5
Proceed to 606U.
【0218】〔D5606R〕 ダンパーフラグDMPFが
“0”であるか否かを判断する。このダンパーフラグDM
PFが“0”である場合には次のステップD5606Sに
進み、“0”でない場合にはステップD5606Tに進
む。
〔D5606S〕 新ステージ番号PNSNおよび下位ステ
ージ番号PDSNを“1”に設定してステップD5606に
進む。[D5606R] It is determined whether the damper flag DMPF is "0". This damper flag DM
When PF is "0", the flow proceeds to the next step D5606S, and when it is not "0", the flow proceeds to step D5606T. [D5606S] The new stage number PNSN and the lower stage number PDSN are set to "1", and the flow advances to step D5606.
【0219】〔D5606T〕 新ステージ番号PNSNお
よび下位ステージ番号PDSNを“2”に設定してステップ
D5606に進む。
〔D5606U〕 新ステージ番号PNSNおよび下位ステ
ージ番号PDSNを“3”に設定してステップD5606に
進む。次の処理をステップD5614の処理に先立ち行
う。[D5606T] The new stage number PNSN and the lower stage number PDSN are set to "2", and the flow advances to step D5606. [D5606U] The new stage number PNSN and the lower stage number PDSN are set to "3", and the flow advances to step D5606. The following process is performed prior to the process of step D5614.
【0220】〔D5614P〕 旧ステージ番号POSNが
“5”であるか否かを判断し、この旧ステージ番号POSN
が“5”でない場合にはステージ番号POSNのステージ内
の最大連打順位PSRM〔POSN〕を“1”だけデクリメント
する。更新処理14ルーチン
更新処理12ルーチンに準じた処理により発音終了した
楽音発生チャネルのプリアサイン順位を更新する。次
に、更新処理12ルーチンとの相違点を説明する。[D5614P] It is determined whether or not the old stage number POSN is "5", and this old stage number POSN
If is not "5", the maximum consecutive batting order PSRM [POSN] in the stage with the stage number POSN is decremented by "1". Update Process 14 Routine By the process according to the update process 12 routine, the pre-assignment rank of the tone generation channel whose sound generation is completed is updated. Next, differences from the update processing 12 routine will be described.
【0221】〔D5701〕 まず、新ステージ番号PN
SNおよび下位ステージ番号PDSNを“0”に設定する。次
に、プリアサイン処理FIFOからデータを降ろして楽
音発生チャネル番号GNとする。
〔D5704〕 旧ステージ番号POSNが“5”であるか
否かを判断し、この旧ステージ番号POSNが“5”である
場合にのみプリアサイン割当て可能楽音発生チャネル数
PACNを“1”だけインクリメントする。[D5701] First, the new stage number PN
Set SN and lower stage number PDSN to "0". Next, the data is downloaded from the pre-assign processing FIFO to obtain the tone generation channel number GN. [D5704] It is determined whether or not the old stage number POSN is "5", and only when this old stage number POSN is "5", the number of musical tone generation channels that can be preassigned can be assigned.
Increment PACN by "1".
【0222】ステップD5714、D5715の処理を
削除し、次の処理を代わりに行う。
〔D5714〕 旧ステージ番号POSNが“5”であるか
否かを判断し、この旧ステージ番号POSNが“5”でない
場合にはステージ番号POSNのステージ内の最大連打順位
PSRM〔POSN〕を“1”だけデクリメントする。ステップ
D5710においては更新処理11ルーチンのステップ
D5412と同様の処理を行う。The processing of steps D5714 and D5715 is deleted, and the following processing is performed instead. [D5714] It is determined whether or not the old stage number POSN is "5". If the old stage number POSN is not "5", the maximum consecutive hit order in the stage of the stage number POSN
Decrement PSRM [POSN] by "1". In step D5710, the same processing as step D5412 of the update processing 11 routine is performed.
【0223】更新処理2ルーチン
ソステヌートペダルの操作により離鍵済みでかつソステ
ヌートオンとなった楽音発生チャネルのプリアサイン順
位を更新するルーチンである。
〔D71〕 まず、タスク管理マップにおけるタスク番
号“4 :プリアサイナタスク”の第2イベント発生フラ
グを“0”に設定する。次に、旧ステージ番号POSNおよ
びステージ内の旧プリアサイン順位POSAを“1”に、新
ステージ番号PNSNおよび下位ステージ番号PDSNを“3”
に設定する。 Update Process 2 Routine This routine updates the pre-assignment order of the tone generation channels that have been released by the operation of the sostenuto pedal and turned on sostenuto. [D71] First, the second event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old stage number POSN and the old pre-assignment order POSA within the stage are set to "1", the new stage number PNSN and the lower stage number PDSN are set to "3".
Set to.
【0224】〔D72〕 ステージ内の旧プリアサイン
順位POSAがステージ番号POSNのステージ内の最大プリア
サイン順位PSAM〔POSN〕を超えているか否かを判断し、
超えていない場合には次のステップD73に進み、超え
ている場合には当該ルーチンを終了してステップD8に
進む。
〔D73〕 楽音発生チャネル管理マップにおけるステ
ージ番号が旧ステージ番号POSNでかつステージ内のプリ
アサイン順位がステージ内の旧プリアサイン順位POSAで
ある楽音発生チャネル番号を楽音発生チャネル番号GNと
し、ノート番号をプリアサイナノート番号PNTNとする。[D72] It is determined whether or not the old pre-assign order POSA in the stage exceeds the maximum pre-assign order PSAM [POSN] in the stage of the stage number POSN.
If not exceeded, the process proceeds to the next step D73, and if exceeded, the routine is terminated and the process proceeds to step D8. [D73] The tone generation channel number GN is the tone generation channel number GN whose stage number in the tone generation channel management map is the old stage number POSN and whose preassignment order within the stage is the old preassignment order POSA within the stage. Pre-signer note number PNTN.
【0225】〔D74〕 ノートマップにおけるプリア
サイナノート番号PNTNに対応するノート番号のソステヌ
ートステータスが“1”であるか否かを判断する。この
ソステヌートステータスが“1”である場合には次のス
テップD75に進み、“1”でない場合にはステージ内
の旧プリアサイン順位POSAを“1”だけインクリメント
してステップD72に戻る。[D74] It is determined whether or not the sostenuto status of the note number corresponding to the pre-assigner note number PNTN in the note map is "1". If the sostenuto status is "1", the process proceeds to the next step D75. If it is not "1", the old pre-assignment order POSA in the stage is incremented by "1" and the process returns to step D72.
【0226】〔D75〕 楽音発生チャネル管理マップ
における楽音発生チャネル番号GNに対応する楽音発生チ
ャネル番号のプリアサイン順位を旧プリアサイン順位PO
ASとする。
〔D76〕 更新処理13ルーチンのステップD560
5〜D5615に準じた処理を行う。但し、ステップD
5606P〜D5606Uの処理は行わない。また、ス
テップD5609においては更新処理11ルーチンのス
テップD5411と同様の処理を行う。この処理を終了
するとステップD72に戻る。[D75] The pre-assignment order PO of the tone generation channel number corresponding to the tone generation channel number GN in the tone generation channel management map is changed to the old pre-assignment order PO.
AS. [D76] Step D560 of the update processing 13 routine
5 to D5615 is performed. However, step D
The processing of 5606P to D5606U is not performed. In step D5609, the same processing as step D5411 of the update processing 11 routine is performed. When this process ends, the process returns to step D72.
【0227】更新処理3ルーチン
ソステヌートペダルの操作により離鍵済みでかつホール
ドオフとなった楽音発生チャネルのプリアサイン順位を
更新するルーチンである。
〔D91〕 まず、タスク管理マップにおけるタスク番
号“4:プリアサイナタスク”の第3イベント発生フラ
グを“0”に設定する。次に、旧ステータス番号POSNを
“3”に、ステータス内の旧プリアサイン順位POSAを
“1”に設定する。 Update Process 3 Routine This routine updates the pre-assignment order of the tone generation channels that have been released and held off by the operation of the sostenuto pedal. [D91] First, the third event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old status number POSN is set to "3" and the old pre-assignment order POSA in the status is set to "1".
【0228】〔D92〕 ダンパーフラグDMPFが“1”
であるか否かを判断する。このダンパーフラグDMPFが
“1”である場合には次のステップD93に進み、
“1”でない場合にはステップD94に進む。
〔D93〕 新ステージ番号PNSNおよび下位ステージ番
号PDSNを“2”に設定してステップD95に進む。[D92] The damper flag DMPF is "1".
Or not. If the damper flag DMPF is "1", the process proceeds to the next step D93,
If it is not "1", the process proceeds to step D94. [D93] The new stage number PNSN and the lower stage number PDSN are set to "2" and the process proceeds to step D95.
【0229】〔D94〕 新ステージ番号PNSNおよび下
位ステータス番号PDSNを“1”に設定してステップD9
5に進む。
〔D95〕 ステージ番号POSNのステージ内の最大プリ
アサイン順位PSAM〔POSN〕が“0”を超えているか否か
を判断する。このステージ内の最大プリアサイン順位PS
AM〔POSN〕が“0”を超えている場合には次のステップ
D96に進み、“0”を超えていない場合には当該ルー
チンを終了してステップD10に進む。[D94] The new stage number PNSN and the lower status number PDSN are set to "1" and step D9 is executed.
Go to 5. [D95] It is determined whether or not the maximum preassigned order PSAM [POSN] in the stage with the stage number POSN exceeds "0". Maximum pre-assignment rank PS in this stage
When AM [POSN] exceeds "0", the process proceeds to the next step D96, and when AM [POSN] does not exceed "0", the routine is finished and the process proceeds to step D10.
【0230】〔D96〕 楽音発生チャネル管理マップ
におけるステージ番号が旧ステージ番号POSNでかつステ
ージ内のプリアサイン順位が“1”である楽音発生チャ
ネル番号のプリアサイン順位を旧プリアサイン順位POAS
とする。
〔D97〕 更新処理13ルーチンのステップD560
5〜D5615に準じた処理を行う。但し、ステップD
5606P〜5606Uの処理は行わない。この処理を
終了するとステップD95に戻る。[D96] The preassignment order of the tone generation channel numbers having the old stage number POSN in the tone generation channel management map and the preassignment order of "1" in the stage is the old preassigned order POAS.
And [D97] Step D560 of update routine 13 routine
5 to D5615 is performed. However, step D
The processing of 5606P to 5606U is not performed. When this process ends, the process returns to step D95.
【0231】更新処理4ルーチン
ダンパーペダルの操作により離鍵済でかつダンパーオン
となった楽音発生チャネルのプリアサイン順位を更新す
るルーチンである。
〔D111〕 まず、タスク管理マップにおけるタスク
番号“4:プリアサイナタスク”の第4イベント発生フ
ラグを“0”に設定する。次に、旧ステージ番号POSNお
よびステージ内の旧プリアサイン順位POSAを“1”に、
新ステージ番号PNSNおよび下位ステージ番号PDSNを
“2”に設定する。 Update Processing 4 Routine This routine updates the pre-assignment order of the tone generation channels whose keys have been released and the dampers have been turned on by operating the damper pedal. [D111] First, the fourth event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, set the old stage number POSN and the old pre-assignment order POSA in the stage to "1",
Set the new stage number PNSN and lower stage number PDSN to "2".
【0232】〔D112〕 更新処理2ルーチンのステ
ップD72と同様の判断処理を行う。なお、ステージ内
の旧プリアサイン順位POSAがステージ番号POSNのステー
ジ内の最大プリアサイン順位PSAM〔POSN〕を超えていな
い場合には次のステップD113に進み、超えている場
合には当該ルーチンを終了してステップD12に進む。[D112] The determination process similar to step D72 of the update process 2 routine is performed. If the old pre-assigned rank POSA in the stage does not exceed the maximum pre-assigned rank PSAM [POSN] in the stage with the stage number POSN, the process proceeds to the next step D113, and if it exceeds, the routine ends. Then, the process proceeds to step D12.
【0233】〔D113〕 更新処理2ルーチンのステ
ップD73と同様の処理を行う。
〔D114〕 更新処理2ルーチンのステップD72と
同様の判断処理を行う。なお、ソステヌートステータス
が“0”である場合には次のステップD115に進み、
“0”でない場合にはステージ内の旧プリアサイン順位
POSAを“1”だけインクリメントしてステップD112
に戻る。[D113] The same process as step D73 of the update process 2 routine is performed. [D114] The same determination process as in step D72 of the update process 2 routine is performed. If the sostenuto status is "0", the process proceeds to the next step D115,
If not "0", the old pre-assigned rank in the stage
Increment POSA by "1" and step D112
Return to.
【0234】〔D115〕 更新処理2ルーチンのステ
ップD75と同様の処理を行う。
〔D116〕 更新処理2ルーチンのステップD76と
同様の処理を行う。この処理を終了するとステップD1
12に戻る。更新処理5ルーチン
ダンパーペダルの操作により離鍵済みでかつホールドオ
フとなった楽音発生チャネルのプリアサイン順位を更新
するルーチンである。[D115] The same process as step D75 of the update process 2 routine is performed. [D116] The same process as step D76 of the update process 2 routine is performed. When this process ends, step D1
Return to 12. Update Processing 5 Routine This routine updates the pre-assignment order of the tone generation channels that have been released and held off by operating the damper pedal.
【0235】〔D131〕 まず、タスク管理マップに
おけるタスク番号“4:プリアサイナタスク”の第5イ
ベント発生フラグを“0”に設定する。次に、旧ステー
ジ番号POSNを“2”に、ステージ内の旧プリアサイン順
位POSA、新ステージ番号PNSNおよび下位ステージ番号PD
SNを“1”に設定する。
〔D132〕 更新処理3ルーチンのステップD95と
同様の判断処理を行う。ステージ番号POSNのステージ内
の最大プリアサイン順位PSAM〔POSN〕が“0”を超えて
いる場合には次のステップD133に進み、“0”を超
えていない場合には当該ルーチンを終了してステップD
14に進む。[D131] First, the fifth event occurrence flag of the task number "4: pre-assigner task" in the task management map is set to "0". Next, the old stage number POSN is set to "2", the old pre-assigned order POSA in the stage, the new stage number PNSN and the lower stage number PD.
Set SN to "1". [D132] The same determination process as in step D95 of the update process 3 routine is performed. If the maximum pre-assigned rank PSAM [POSN] in the stage with the stage number POSN exceeds "0", proceed to the next step D133. If it does not exceed "0", terminate the routine and step. D
Proceed to 14.
【0236】〔D133〕 更新処理3ルーチンのステ
ップD96と同様の処理を行う。
〔D134〕 更新処理3ルーチンのステップD97と
同様の処理を行う。この処理を終了するとステップD1
32に戻る。
〇 エンベロープタスクの処理の一部を、次のように変
更する。
ステップE1に、次の処理を追加する。[D133] The same process as step D96 of the update process 3 routine is performed. [D134] The same process as step D97 of the update process 3 routine is performed. When this process ends, step D1
Return to 32. * Part of the processing of the envelope task is changed as follows. The following process is added to step E1.
【0237】〔E1〕 プリアサイン処理要求フラグER
QFを“0”に設定する。ステップE6p を追加し、ステ
ップE5を終了するとステップE6p に進む。
〔E6p〕 楽音発生チャネル管理マップにおけるエン
ベロープ処理対象番号ECTNに対応する楽音発生チャネル
番号のステージ番号が“0”であるか否かを判断する。
このステージ番号が“0”である場合にはステップE1
4に進み、“0”でない場合にはステップE6に進む。[E1] Pre-sign processing request flag ER
Set QF to "0". When step E6p is added and step E5 is completed, the process proceeds to step E6p. [E6p] It is determined whether the stage number of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "0".
If this stage number is "0", step E1
4. If it is not "0", go to step E6.
【0238】次のようにステップE6を変更するととも
に、ステップE6aを追加する。
〔E6〕 楽音発生チャネル管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応する楽音発生チャネル番
号のノートステータスが“0”でかつエンベロープ管理
マップにおけるエンベロープ処理対象番号ECTNに対応す
るエンベロープチャネル番号の目標値およびエンベロー
プレベルが“0”であるか否かを判断する。いずれもが
“0”である場合にはステップE6aに進み、いずれか
が“0”でない場合にはステップE7に進む。The step E6 is changed and the step E6a is added as follows. [E6] The target value and envelope of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map when the note status of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is “0” It is determined whether or not the level is "0". If both are "0", the process proceeds to step E6a, and if neither is "0", the process proceeds to step E7.
【0239】〔E6a〕 プリアサイン処理要求フラグ
ERZFを“1”に設定するととともに、プリアサイン処理
FIFOに発音終了処理を示す“4”およびエンベロー
プ処理対象番号ECTNを順次に積み込んで、楽音発生チャ
ネル管理マップにおけるエンベロープ処理対象番号ECTN
に対応する楽音発生チャネル番号のトランケート禁止フ
ラグを“0”に設定してステップE14に進む。[E6a] Presign processing request flag
When ERZF is set to "1", "4" indicating the end of tone generation processing and the envelope processing target number ECTN are sequentially loaded in the pre-assign processing FIFO, and the envelope processing target number ECTN in the tone generation channel management map is loaded.
The truncation prohibition flag of the tone generation channel number corresponding to is set to "0" and the process proceeds to step E14.
【0240】次のようにステップE8、E9を変更す
る。
〔E8〕 楽音発生チャネル管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応する楽音発生チャネル番
号のノートステータスが“1”であるか否かを判断す
る。このノートステータスが“1”でない場合には次の
ステップE9に進み、“1”である場合にはステップE
11に進む。Steps E8 and E9 are changed as follows. [E8] It is determined whether or not the note status of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "1". If the note status is not "1", the process proceeds to the next step E9, and if it is "1", the step E is performed.
Proceed to 11.
【0241】〔E9〕 ダンパーフラグDMPFまたはノー
トマップにおけるエンベロープ処理対象ノート番号ENNM
に対応するノート番号のソステヌートステータスが
“1”であるか否かを判断する。いずれかが“1”であ
る場合にはステップE11aに進み、いずれもが“1”
でない場合にはステップE10に進む。次のようにステ
ップE10、E11の処理の一部およびステップE13
を変更するとともに、ステップE11a、E12pを追
加する。[E9] Envelope processing target note number ENNM in damper flag DMPF or note map
It is determined whether the sostenuto status of the note number corresponding to is "1". If either is "1", the process proceeds to step E11a, and both are "1".
If not, the process proceeds to step E10. Part of the processing of steps E10 and E11 and step E13 as follows:
Is changed and steps E11a and E12p are added.
【0242】ステップE10における目標値、レートな
どの更新に際してダンパー値DMPVにはもとづかなく、ま
た処理を終了するとステップE12pに進む。ステップ
E11における目標値、レートなどの更新に際してダン
パー値にはもとづかなく、また処理を終了するとステッ
プE12pに進む。
〔E11a〕 エンベロープ管理マップにおけるエンベ
ロープ処理対象番号ECTNに対応するエンベロープチャネ
ル番号のレートを“0”に更新するとともに、目標値お
よびレートを楽音発生回路30に転送する。また、処理
を終了するとステップE12pに進む。When updating the target value, rate, etc. in step E10, it is not based on the damper value DMPV, and when the process is completed, the process proceeds to step E12p. When updating the target value, rate, etc. in step E11, it is not based on the damper value, and when the process is completed, the process proceeds to step E12p. [E11a] The rate of the envelope channel number corresponding to the envelope processing target number ECTN in the envelope management map is updated to "0", and the target value and rate are transferred to the tone generation circuit 30. When the processing is completed, the process proceeds to step E12p.
【0243】〔E12p〕 楽音発生チャネル管理マッ
プにおけるエンベロープ処理対象番号ECTNに対応する楽
音発生チャネル番号のトランケート禁止フラグが“0”
であるか否かを判断する。このトランケート禁止フラグ
が“0”である場合にはステップE14に進み、“0”
でない場合にはステップE12に進む。
〔E13〕 楽音発生チャネル管理マップにおけるエン
ベロープ処理対象番号ECTNに対応する楽音発生チャネル
番号のトランケート禁止フラグを“0”に設定し、プリ
アサイン処理要求フラグERQFを“1”に設定するととも
に、プリアサイン処理FIFOにアタック終了処理を示
す“2”およびエンベロープ処理対象番号ECTNを順次に
積み込む。[E12p] The truncation prohibition flag of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map is "0".
Or not. If the truncation prohibition flag is "0", the process proceeds to step E14, where "0" is set.
If not, the process proceeds to step E12. [E13] Set the truncation prohibition flag of the tone generation channel number corresponding to the envelope processing target number ECTN in the tone generation channel management map to "0", set the preassign processing request flag ERQF to "1", and perform preassignment. "2" indicating the attack end processing and the envelope processing target number ECTN are sequentially loaded in the processing FIFO.
【0244】ステップE17、E18を追加し、ステッ
プE15においてエンベロープ処理対象番号ECTNが“1
5”未満でない場合にはステップE17に進む。
〔E17〕 プリアサイン処理要求フラグERQFが“1”
であるか否かを判断する。このプリアサイン処理要求フ
ラグERQFが“1”である場合にはステップE18に進
み、“1”でない場合にはステップE2に戻る。Steps E17 and E18 are added, and the envelope processing target number ECTN is "1" at step E15.
If it is not less than 5 ", the process proceeds to step E17. [E17] The preassign process request flag ERQF is" 1 ".
Or not. If the pre-assignment processing request flag ERQF is "1", the process proceeds to step E18, and if it is not "1", the process returns to step E2.
【0245】〔E18〕 プリアサイン要求イベントを
発生する。言い換えれば、要求先タスク番号NDTKを
“4:プリアサイナタスク”に、要求先イベント値NDET
を“1”に設定してイベント発生モニタコールを行う。
また、プリアサイン処理要求フラグERQFを“0”に設定
してステップE2に戻る。
〇 次のようにペダルタスクのステップF4の処理の一
部を変更する。[E18] A pre-sign request event is generated. In other words, the request destination task number NDTK is set to “4: pre-assigner task” and the request destination event value NDET.
Is set to "1" and an event occurrence monitor call is made.
Further, the pre-assign processing request flag ERQF is set to "0" and the process returns to step E2. * Part of the processing of step F4 of the pedal task is changed as follows.
【0246】ダンパーペダルが踏下げられるとダンパー
フラグDMPFを“1”に設定し、戻されるとダンパーフラ
グDMPFを“0”に設定する。ソステヌートステータスの
更新およびまたはダンパーフラグの設定が終了するとプ
リアサイン要求イベントを発生する。言い換えれば、要
求先タスク番号NDTKを“4:プリアサイナタスク”に、
要求先イベント値NDETをソステヌートペダルが踏下げら
れると“2”に、戻されると“3”に、ダンパーペダル
が踏下げられると“4”に、戻されると“5”に設定し
てイベント発生モニタコールを行う。When the damper pedal is stepped on, the damper flag DMPF is set to "1", and when it is returned, the damper flag DMPF is set to "0". When the sostenuto status is updated and / or the damper flag is set, a pre-assignment request event is generated. In other words, the requested task number NDTK is changed to “4: Pre-assigner task”,
The requested event value NDET is set to "2" when the sostenuto pedal is depressed, "3" when it is returned, to "4" when the damper pedal is depressed, and to "5" when it is returned. Make a monitor call.
【0247】以上に説明したように本実施例において
は、新たな楽音を割当てる楽音発生チャネルを、発音割
当てのために急速減衰中の楽音発生チャネルおよび発音
開始から所定時間経過していないいわゆるアタック中の
楽音発生チャネルを除いた楽音発生チャネルから選定し
ている。なお、選定対象の楽音発生チャネルについては
発音終了、離鍵済みでかつホールドオフ、離鍵済みでか
つダンパーオン、離鍵済みでかつソステヌートオン、押
鍵中の順に割当て順位を設定している。また、同じ状
態、例えば離鍵済みでかつホールドオフの状態において
は連打関係がある楽音発生チャネルを連打関係がない楽
音発生チャネルより早い割当て順位としている。そし
て、新たな楽音が楽音発生チャネルに割当てられるとそ
の楽音と連打関係にある楽音発生チャネルのアサイン順
位を同じ状態のより早いアサイン順位に変更している。
例えば、離鍵済みでかつホールドオフである場合には、
離鍵済みでかつホールドオフでかつ連打関係にない楽音
発生チャネルより早いアサイン順位に変更するようにし
ている。また、押鍵中の楽音が離鍵するなどその状態が
変化した場合には連打関係の有無に応じた順位に変更し
ている。例えば、ペダルが踏込まれていない状態で離鍵
すると、連打関係がある場合には離鍵済みでかつホール
ドオフでかつ連打関係にある楽音発生チャネルの最も遅
い楽音発生チャネルの順位の次の順位に変更し、連打関
係がない場合には離鍵済みでかつホールドオフの楽音発
生チャネルの最も遅い楽音発生チャネルの順位の次の順
位に変更している。As described above, in the present embodiment, the tone generation channel to which a new tone is assigned is the tone generation channel which is being rapidly attenuated for assigning the tone generation, and the so-called attack during which a predetermined time has not elapsed from the start of tone generation. It is selected from the tone generation channels excluding the tone generation channels. For the musical tone generation channels to be selected, the assignment order is set in the order of sound generation, key release and hold-off, key release and damper on, key release and sostenuto on, and key pressing. Further, in the same state, for example, in the state where the keys are released and the hold-off state is set, the tone generation channels having a continuous hitting relationship are assigned earlier than the tone generation channels having no continuous hitting relationship. Then, when a new musical tone is assigned to the musical tone generating channel, the assigning order of the musical tone generating channel having a continuous hitting relationship with the musical tone is changed to an earlier assigning order in the same state.
For example, if the key is released and the hold-off is
The keys are released, held off, and assigned earlier than the tone generation channels that are not related to repeated hits. Further, when the tone changes while the key is being depressed, such as when the tone is released, the order is changed according to whether or not there is a continuous hitting relationship. For example, if the key is released without the pedal being depressed, and if there is a continuous hitting relationship, it will be placed next to the order of the slowest tone generation channel that has been released, is held off, and is in the continuous hitting relationship. If there is no continuous hitting relationship, the key is released and the order is changed to the next order of the order of the slowest tone generation channel of the tone generation channels of hold-off.
【0248】本実施例においても必要ならば、発音割当
てのために急速減衰中の楽音発生チャネルおよび発音開
始から所定時間経過していないいわゆるアタック中の楽
音発生チャネルを選定対象に含めたり連打処理対象に含
めても良い。また、離鍵済みの楽音発生チャネルについ
て第1実施例の処理に準じた処理を行っても良い。ま
た、メインアサイナ処理中フラグMAEFをステップA6、
ステップE6、E13およびステップF4においてダン
パーまたはソステヌートペダルの操作を検出すると
“1”に設定するようにしても良い。さらに、連打処理
ルーチンのステップD540208における連打フラグ
の設定に際し、処理対象の楽音発生チャネルが押鍵中で
かつそのエンベロープレベルが新たに割当てられた楽音
発生チャネルのアタックレベルより大である場合などに
は連打フラグの設定を行わないようにしても良い。Also in this embodiment, if necessary, a tone generation channel that is rapidly decaying for sound assignment and a so-called attack tone generation channel that has not passed a predetermined time from the start of sound generation are included in the selection target or the continuous hit processing target. May be included in. Further, processing similar to the processing of the first embodiment may be performed on the tone-generating channel for which the key has been released. In addition, the main assigner processing flag MAEF is set to step A6,
It may be set to "1" when the operation of the damper or the sostenuto pedal is detected in steps E6, E13 and step F4. Furthermore, when setting the continuous hit flag in step D540208 of the continuous hit processing routine, if the tone generation channel to be processed is key-pressing and its envelope level is higher than the attack level of the newly assigned tone generation channel, etc. The continuous hit flag may not be set.
【0249】なお、連打関係にもとづくアサイン順位の
変更に際してより下位(早い)の状態に変更するように
しても良い。例えば、押鍵中の楽音発生チャネルを離鍵
済みでかつソステヌートオンとみなして処理を行うよう
にしても良い。具体的には、ステップD540210に
おいて、次のように処理を行う。で新ステージ番号PN
SNおよび下位ステージ番号PDSNを、楽音発生チャネル管
理マップにおける連打処理対象番号PCTNに対応する楽音
発生チャネル番号のステージ番号より“1”を減算した
値に設定する。以降に換えてステップD5507〜5
513と同様に行う。When changing the assignment order based on the continuous hitting relationship, it may be changed to a lower (earlier) state. For example, the processing may be performed assuming that the tone generation channel during key depression has been released and is sostenuto-on. Specifically, in Step D540210, processing is performed as follows. With new stage number PN
The SN and the lower stage number PDSN are set to values obtained by subtracting "1" from the stage number of the tone generation channel number corresponding to the repeated hit processing target number PCTN in the tone generation channel management map. Subsequent steps D5507-5
Same as 513.
【0250】または、押鍵中の楽音発生チャネルを離鍵
済みでかつホールドオフと見なして処理を行うようにし
ても良い。さらには、発音終了の次の順位に変更するよ
うにしても良い。例えば、発音終了、連打、離鍵済みで
かつホールドオフ、...の順番とする。または、アサ
イン順位を押鍵順とする場合には押鍵順位をより早い順
位に変更しても良い。発音終了、連打、連打でない順と
し各状態においては押鍵順とする。なお、発音終了にお
いては楽音発生チャネル番号順などとしても良い。Alternatively, the tone generation channel during key depression may be regarded as already released and held off. Further, the rank may be changed to the next rank after the end of sound generation. For example, end of pronunciation, repeated hits, key release, hold-off ,. . . Order. Alternatively, when the assigning order is the key pressing order, the key pressing order may be changed to an earlier order. The order is the key press order in each state. It should be noted that at the end of sound generation, the order of channel numbers for generating musical sounds may be used.
【0251】第1、第2実施例においては、既に割当て
られた楽音相互の連打関係にもとづいてアサイン順位を
変更したが、新たな楽音との連打関係にもとづくように
しても良い。例えば、メインアサイナタスクのステップ
B5の処理に先立ちプリアサイナタスクと同様な処理を
実行する。この際に、新たな楽音を連打比較対象用とし
て仮想的に設けた“17”番目の楽音発生チャネルに割
当てられたものとし、次にその仮想的に設けた“17”
番目の楽音発生チャネルを含めて連打処理を行う。な
お、この場合にプリアサイナタスクを削除しても良い。In the first and second embodiments, the assigning order is changed based on the already-assigned continuous hitting relationship between musical tones, but it may be changed based on the continuous hitting relationship with a new musical tone. For example, the same process as the pre-assigner task is executed prior to the process of step B5 of the main assigner task. At this time, it is assumed that a new musical tone is assigned to the "17" th tone generating channel virtually provided for the continuous hit comparison target, and then the virtually provided "17"
Repeated hit processing including the second tone generation channel. In this case, the pre-assigner task may be deleted.
【0252】また、メインアサイナタスクにおいて新音
との連打関係を判断してプリアサイナタスクで設定した
アサイン順位を変更するなどしても良い。この処理の具
体例を、次の変形例2、変形例3において説明する。
<変形例2>次のようにして本変形例においては新たな
楽音が割当てられる。 アサイン順位の割当て対象の楽
音発生チャネルが発音を終了している場合には割当て対
象の楽音発生チャネルに割当てるとともに、割当て対象
の楽音発生チャネルが発音を終了していない場合におい
ては割当て可能な楽音発生チャネルであってかつ新たな
ノートオンと連打関係の楽音発生チャネルがあるときに
はその楽音発生チャネルに割当てる。また、新たなノー
トオンと連打関係にあってかつ割当て可能な楽音発生チ
ャネルがないときには、割当て対象の楽音発生チャネル
に割当てる。Further, the main assigner task may change the assignment order set in the pre-assigner task by judging the continuous hit relationship with a new sound. Specific examples of this processing will be described in the following modified examples 2 and 3. <Modification 2> In this modification, a new musical sound is assigned as follows. If the tone generation channel to which the assignment order is assigned has finished sounding, it is assigned to the tone generation channel to be assigned, and if the tone generation channel to be assigned has not finished pronunciation, allocatable tone generation If there is a tone generation channel that is a channel and is related to a new note-on, the tone generation channel is assigned to that tone generation channel. If there is no tone generation channel that can be assigned because it has a continuous hit relationship with a new note-on, it is assigned to the tone generation channel to be assigned.
【0253】次に、第1実施例に適用した場合について
説明する。メインアサインタスクのステップB5の処理
に先立って、次のような処理を行う。
〔B5p〕 ステップB4における判断において対象ア
サイン順位TASNが割当て可能楽音発生チャネル数GACN未
満である場合; 楽音発生チャネル管理マップにおけ
るアサイン順位TASNの楽音発生チャネル番号MASS〔TAS
N〕に対応する楽音発生チャネル番号の発音量が“0”
を超えているか否かを判断する。この発音量が“0”を
超えている場合には次のに進み、“0”を超えていな
い場合、言い換えれば発音を終了している場合には次の
ステップB5に進む。 ノート番号がノート番号NTNM
と同じ楽音発生チャネルをアサイン順位順に、アサイン
順位が対象アサイン順位TASNから割当て可能楽音発生チ
ャネル数GACNより“1”を減じた値までのアサイン順位
TASNの楽音発生チャネル番号MASS〔TASN〕に対応する楽
音発生チャネルより探す。具体的には、アサイン順位順
に、楽音発生チャネル管理マップにおけるアサイン順位
が対象アサイン順位TASNから割当て可能楽音発生チャネ
ル数GACNより“1”を減じた値までのアサイン順位TASN
の楽音発生チャネル番号MASS〔TASN〕に対応する楽音発
生チャネル番号のノート番号とノート番号NTNMとを比較
して、これらノート番号が一致する楽音発生チャネルが
ある場合にはアサイン順位をその楽音発生チャネルが割
当て対象順位となるように並べ換える。Next, the case of application to the first embodiment will be described. Prior to the processing of step B5 of the main assign task, the following processing is performed. [B5p] When the target assignment order TASN is less than the number of allocatable tone generation channels GACN in the judgment in step B4; the tone generation channel number MASS [TAS of the assignment order TASN in the tone generation channel management map MASS [TAS
N], the sound volume of the tone generation channel number is “0”
Judgment is made. When the sound generation amount exceeds "0", the process proceeds to the next step, and when it does not exceed "0", in other words, when the sound generation is completed, the process proceeds to the next step B5. The note number is the note number NTNM
The same tone generation channels as the above are assigned in the order of assignment order, and the assignment order is the target assignment order TASN The number of assignable tone generation channels The assign order up to GACN minus "1"
Search from the tone generation channel corresponding to the TASN tone generation channel number MASS [TASN]. Specifically, the assignment order in the tone generation channel management map is the assignment order TASN from the target assignment order TASN to the assignable number of tone generation channels GACN minus "1" in the order of assignment order.
Tone generation channel number of MASS [TASN], the note number of the tone generation channel number corresponding to the note number and the note number NTNM are compared, and if there is a tone generation channel whose note number matches, the assign order is assigned to that tone generation channel. Are rearranged so that becomes the allocation target rank.
【0254】要するに、ノート番号が最初に一致した楽
音発生チャネルのアサイン順位を対象アサイン順位TASN
とするとともに、対象アサイン順位TASNからノート番号
が最初に一致した楽音発生チャネルのアサイン順位より
“1”を減じた値までのアサイン順位TASNの楽音発生チ
ャネル番号MASS〔TASN〕に対応する楽音発生チャネル番
号のアサイン順位をそれぞれ“1”ずつインクリメント
する。例えば、TASNが“0”、GACNが“10”、MASS
In short, the assignment order of the tone generation channel whose note number first matches is the target assignment order TASN
In addition, the tone generation channel corresponding to the tone generation channel number MASS [TASN] of the assignment order TASN up to a value obtained by subtracting “1” from the assignment order of the tone generation channel whose note number first matches the target assignment order TASN. The number assignment order is incremented by "1". For example, TASN is “0”, GACN is “10”, MASS
〔0〕=5、MASS〔1〕=7、MASS〔2〕=8、MASS
〔3〕=9でアサイン順位が“3”(MASS〔3〕) の楽
音発生チャネルのノート番号がノート番号NTNMと同じで
ある場合には、MASS[0] = 5, MASS [1] = 7, MASS [2] = 8, MASS
If [3] = 9 and the note number of the tone generation channel whose assignment order is “3” (MASS [3]) is the same as the note number NTNM, MASS
〔0〕=9、MASS〔1〕=5、MASS
〔2〕=7、MASS〔3〕=8となる。そして、処理を終
了すると、ステップB5に進む。[0] = 9, MASS [1] = 5, MASS
[2] = 7 and MASS [3] = 8. When the processing is completed, the process proceeds to step B5.
【0255】なお、ノート番号がノート番号NTNMと同じ
楽音発生チャネルがない場合には、ステップB5に進
む。同様に、第2実施例においても本変形例は適宜変更
して適用できる。
<変形例3>次のようにして本変形例においては新たな
楽音が割当てられる。 アサイン順位の割当て対象の楽
音発生チャネルが発音を終了している場合には割当て対
象の楽音発生チャネルに割当てるとともに、割当て対象
の楽音発生チャネルが発音を終了していない場合におい
ては割当て対象の楽音発生チャネルが新たなノートオン
と連打関係にあるときには割当て対象の楽音発生チャネ
ルに割当てる。また、割当て対象の楽音発生チャネルが
発音を終了していない場合において、割当て可能な新た
なノートオンと連打関係となる楽音発生チャネルがある
ときには、この割当て可能な新たなノートオンと連打関
係の楽音発生チャネルの発音量を仮想的に1/10と
し、次にその仮想的な発音量が連打関係にもとづく補正
を行った割当て対象の楽音発生チャネルの発音量より小
さくなるときにはその連打関係にある楽音発生チャネル
に割当てる。なお、割当て可能な新たなノートオンと連
打関係にある楽音発生チャネルがない場合または連打関
係の楽音発生チャネルの仮想的な発音量が連打関係にも
とづく補正を行った割当て対象の楽音発生チャネルの発
音量より小さくならないときには割当て対象の楽音発生
チャネルに割当てる。If there is no tone generation channel having the same note number as the note number NTNM, the process proceeds to step B5. Similarly, the present modification can be applied to the second embodiment with appropriate modifications. <Modification 3> In this modification, a new musical sound is assigned as follows. If the tone generation channel to which the assignment order is assigned has finished sounding, it will be assigned to the tone generation channel to be assigned, and if the tone generation channel to be assigned has not finished sounding, the tone generation to be assigned will occur. When the channel has a continuous hitting relationship with a new note-on, it is assigned to the tone generation channel to be assigned. In addition, when the tone generation channel to be assigned has not finished sounding, if there is a tone generation channel that can be repeatedly assigned to a new note-on that can be assigned, this new assignable note-on and tone-related tone When the tone generation amount of the generation channel is virtually reduced to 1/10, and then the virtual tone generation amount becomes smaller than the tone generation amount of the musical tone generation channel to be assigned, which is corrected based on the consecutive hit relation, the musical tone in the consecutive hit relation Assign to a generation channel. If there is no tone generation channel that has a continuous hitting relationship with a new note-on that can be assigned, or if the virtual sound generation amount of the tone generation channel that has a continuous hitting effect is corrected based on the repeated hitting sound, the pronunciation of the tone generation channel to be assigned is corrected. If it does not become smaller than the amount, it is assigned to the tone generation channel to be assigned.
【0256】次に、第1実施例に適用した場合について
説明する。変形例2におけるB5pのの処理を、次の
ように変更する。 対象アサイン順位TASNの楽音発生
チャネルが新たなノートオンの楽音と連打関係にあるか
否かを判断する。具体的には、楽音発生チャネル管理マ
ップにおけるアサイン順位TASNの楽音発生チャネル番号
MASS〔TASN〕に対応する楽音発生チャネル番号のノート
番号とノート番号NTNMとが同じであるか否かを判断す
る。これらノート番号が同じである場合にはステップB
5に進み、同じでない場合には次のに進む。 楽音
発生チャネル管理マップにおけるアサイン順位TASNの楽
音発生チャネル番号MASS〔TASN〕に対応する楽音発生チ
ャネル番号の発音量を評価発音量とする。 対象アサ
イン順位TASNの楽音発生チャネルが対象アサイン順位TA
SNの次のアサイン順位から割当て可能楽音発生チャネル
数GACNより“1"を減じた値までのアサイン順位TASNの楽
音発生チャネル番号MASS〔TASN〕に対応する楽音発生チ
ャネルのいずれかと連打関係にあるか否かを判断する。
具体的には、楽音発生チャネル管理マップにおけるアサ
イン順位TASNの楽音発生チャネル番号MASS〔TASN〕に対
応する楽音発生チャネル番号のノート番号と対象アサイ
ン順位TASNの次のアサイン順位から割当て可能楽音発生
チャネル数GACNより“1"を減じた値までのアサイン順位
TASNの楽音発生チャネル番号MASS〔TASN〕に対応する楽
音発生チャネル番号のノート番号のいずれかと同じであ
るか否かを判断して、このノート番号がいずれかのノー
ト番号と同じである場合には評価発音量を1/10に
し、いずれのノート番号とも同じでない場合には変更し
ない。そして、処理を終了すると次のに進む。 ノ
ート番号がノート番号NTNMと同じ楽音発生チャネルをア
サイン順位順に、その発音量が評価発音量の10倍未満
であってかつアサイン順位が対象アサイン順位TASNの次
のアサイン順位から割当て可能楽音発生チャネル数GACN
より“1"を減じた値までのアサイン順位TASNの楽音発生
チャネル番号MASS〔TASN〕に対応する楽音発生チャネル
より探す。具体的には、アサイン順位順に、楽音発生チ
ャネル管理マップにおけるアサイン順位が対象アサイン
順位TASNの次のアサイン順位から割当て可能楽音発生チ
ャネル数GACNより“1"を減じた値までのアサイン順位TA
SNの楽音発生チャネル番号MASS〔TASN〕に対応する楽音
発生チャネル番号のノート番号がノート番号NTNMと同じ
であってかつ発音量が評価発音量の10倍未満であるか
否かを判断する。このノート番号がノート番号NTNMと同
じであってかつ発音量が評価発音量の10倍未満である
楽音発生チャネルがある場合にはアサイン順位をその楽
音発生チャネルが割当て対象順位となるように並べ換
え、またそのノート番号がノート番号NTNMと同じであっ
てかつ発音量が評価発音量の10倍未満である楽音発生
チャネルがない場合には並べ換えない。そして、処理を
終了するとステップB5に進む。
<変形例4>次のようにして本変形例においては新たな
楽音が割当てられる。 アサイン順位の割当て対象の楽
音発生チャネルが発音を終了している場合には割当て対
象の楽音発生チャネルに割当てるとともに、割当て対象
の楽音発生チャネルが発音を終了していない場合におい
ては割当て対象の楽音発生チャネルが新たなノートオン
と連打関係にあるときには割当て対象の楽音発生チャネ
ルに割当てる。また、割当て対象の楽音発生チャネルが
発音を終了していない場合において、割当て可能な新た
なノートオンと連打関係となる楽音発生チャネルがある
ときには、この割当て可能な新たなノートオンと連打関
係の楽音発生チャネルのアサイン順位を仮想的に設定
し、次にその仮想的なアサイン順位が割当て対象のアサ
イン順位より小さくなるときにはその連打関係にある楽
音発生チャネルに割当てる。Next, the case of application to the first embodiment will be described. The process of B5p in Modification 2 is changed as follows. It is determined whether the tone generation channel of the target assign order TASN has a continuous hitting relationship with a new note-on tone. Specifically, the tone generation channel number of TASN assigned in the tone generation channel management map.
It is determined whether the note number of the tone generation channel number corresponding to MASS [TASN] and the note number NTNM are the same. If these note numbers are the same, step B
5. If not the same, proceed to the next. The tone generation amount of the tone generation channel number corresponding to the tone generation channel number MASS [TASN] of the assignment order TASN in the tone generation channel management map is set as the evaluation tone generation amount. Target assignment order TASN musical tone generation channels are targeted assignment order TA
Number of assignable tone generation channels from the next assignment order of SN Up to a value obtained by subtracting “1” from GACN Is there a continuous hitting relationship with any tone generation channel corresponding to the tone generation channel number MASS [TASN] of the assignment order TASN? Determine whether or not.
Specifically, the number of musical tone generation channels that can be assigned from the note number of the musical tone generation channel number corresponding to the assignment tone TASN in the musical tone generation channel management map and the assignment number next to the target assignment sequence TASN. Assignment order up to GACN minus "1"
If the note number is the same as any of the note numbers of the tone generation channel number corresponding to the tone generation channel number MASS [TASN] of TASN, The evaluation pronunciation amount is set to 1/10, and if no note number is the same, no change is made. Then, when the processing is completed, the process proceeds to the next step. The number of tone generation channels that can be assigned from the next assignment order of the assignment order TASN whose note number is the same as that of the note number NTNM, in the order of assignment order, and the pronunciation level of which is less than 10 times the evaluation pronunciation level GACN
Search for the tone generation channel corresponding to the tone generation channel number MASS [TASN] of the assignment order TASN up to the value obtained by subtracting "1". Specifically, the assignment order in the tone generation channel management map is in the order of assignment order. The assignment order TA from the next assignment order of the assignment order TASN to the assignable number of tone generation channels GACN minus "1" TA
It is determined whether or not the note number of the tone generation channel number corresponding to the tone generation channel number MASS [TASN] of the SN is the same as the note number NTNM and the tone generation amount is less than 10 times the evaluation tone generation amount. When there is a tone generation channel whose note number is the same as the note number NTNM and whose pronunciation amount is less than 10 times the evaluation tone amount, the assignment order is rearranged so that the tone generation channel becomes the assignment target order, If the note number is the same as the note number NTNM and there is no tone generation channel whose tone generation amount is less than 10 times the evaluated tone generation amount, no rearrangement is performed. When the processing is completed, the process proceeds to step B5. <Modification 4> In this modification, a new musical sound is assigned as follows. If the tone generation channel to which the assignment order is assigned has finished sounding, it will be assigned to the tone generation channel to be assigned, and if the tone generation channel to be assigned has not finished sounding, the tone generation to be assigned will occur. When the channel has a continuous hitting relationship with a new note-on, it is assigned to the tone generation channel to be assigned. In addition, when the tone generation channel to be assigned has not finished sounding, if there is a tone generation channel that can be repeatedly assigned to a new note-on that can be assigned, this new assignable note-on and tone-related tone The assignment order of the generation channels is virtually set, and when the virtual assignment order becomes smaller than the assignment order of the assignment target, it is assigned to the tone generation channel having the continuous hitting relationship.
【0257】なお、割当て可能な新たなノートオンと連
打関係にある楽音発生チャネルがない場合または連打関
係の楽音発生チャネルの仮想的なアサイン順位が割当て
対象のアサイン順位より小さくならないときには割当て
対象の楽音発生チャネルに割当てる。次に、第2実施例
に適用した場合について説明する。If there is no tone generation channel that is in continuous hitting relation with a new note-on that can be assigned, or if the virtual assignment order of the tone generation channel that is in continuous hitting is not smaller than the assignment order of assignment target, the assignment target tone is set. Assign to a generation channel. Next, the case of application to the second embodiment will be described.
【0258】メインアサイナタスクのステップB5の処
理に先立って、次のような処理を行う。
〔B5p〕 ステップB4における判断において対象ア
サイン順位TASNが割当て可能楽音発生チャネル数GACN未
満である場合; 楽音発生チャネル管理マップにおけ
るアサイン順位TASNの楽音発生チャネル番号MASS[TASN]
に対応する楽音発生チャネル番号のステージ番号が
“0”を超えているか否かを判断する。このステージ番
号が“0”を超えている場合には次のに進み、“0”
を超えていない場合、言い換えれば発音を終了している
場合には次のステップB5に進む。 対象アサイン順
位TASNの楽音発生チャネルが新たなノートオンの楽音と
連打関係にあるか否かを判断する。具体的には、楽音発
生チャネル管理マップにおけるアサイン順位TASNの楽音
発生チャネル番号MASS〔TASN〕に対応する楽音発生チャ
ネル番号のノート番号とノート番号NTNMとが同じである
か否かを判断する。これらノート番号が同じである場合
にはステップB5に進み、同じでない場合には次のに
進む。 楽音発生チャネル管理マップにおけるアサイ
ン順位TASNの楽音発生チャネル番号MASS〔TASN〕に対応
する楽音発生チャネル番号の連打フラグが“1”である
か否かを判断する。この連打フラグが“1”である場合
にはステップB5に進み、“1”でない場合には次の
に進む。 ノート番号がノート番号NTNMとが同じ楽音
発生チャネルをアサイン順位順に、アサイン順位が対象
アサイン順位TASNの次のアサイン順位から割当て可能楽
音発生チャネル数GACNより“1"を減じた値までのアサイ
ン順位TASNの楽音発生チャネル番号MASS〔TASN〕に対応
する楽音発生チャネルより探す。具体的には、アサイン
順位順に、楽音発生チャネル管理マップにおけるアサイ
ン順位が対象アサイン順位TASNの次のアサイン順位から
割当て可能楽音発生チャネル数GACNより“1"を減じた値
までのアサイン順位TASNの楽音発生チャネル番号MASS
〔TASN〕に対応する楽音発生チャネル番号のノート番号
がノート番号NTNMと同じであるか否かを判断する。この
ノート番号がノート番号NTNMと同じである楽音発生チャ
ネルがある場合には次のに進み、同じでない場合には
ステップB5に進む。 まず、ノート番号がノート番
号NTNMとが同じである楽音発生チャネルのアサイン順位
を更新処理ルーチン11の連打処理に準じた処理によっ
て仮想的に変更する。言い換えれば、新たなノートオン
にもとづくアサイン順位の更新があった場合の新たなア
サイン順位を求め、次にその仮想的なアサイン順位が対
象アサイン順位TASNより小さいか否かを判断する。この
仮想的なアサイン順位が対象アサイン順位TASNより小さ
い場合にはアサイン順位その楽音発生チャネルが割当て
対象順位となるように並べ換え、小さくない場合には並
べ換えない。そして、処理を終了するとステップB5に
進む。Prior to the processing of step B5 of the main assigner task, the following processing is performed. [B5p] When the target assignment order TASN is less than the number of assignable tone generation channels GACN in the determination in step B4; the tone generation channel number MASS [TASN] of the assignment order TASN in the tone generation channel management map
It is determined whether or not the stage number of the tone generation channel number corresponding to is above "0". If this stage number exceeds "0", proceed to the next step, "0"
If it does not exceed, in other words, if the sounding has ended, the process proceeds to the next step B5. It is determined whether the tone generation channel of the target assign order TASN has a continuous hitting relationship with a new note-on tone. Specifically, it is determined whether or not the note number and the note number NTNM of the tone generation channel number corresponding to the tone generation channel number MASS [TASN] of the assign order TASN in the tone generation channel management map are the same. If these note numbers are the same, the process proceeds to step B5, and if they are not the same, the process proceeds to the next. It is determined whether or not the continuous hit flag of the tone generation channel number corresponding to the tone generation channel number MASS [TASN] of the assignment order TASN in the tone generation channel management map is "1". If the continuous hit flag is "1", the process proceeds to step B5, and if it is not "1", the process proceeds to the next. Note number is the same as note number NTNM The tone generation channels are assigned in order of assignment order, and the assignment order is the target assignment order TASN The number of assignable tone generation channels from the next assign order TASN Search from the tone generation channel corresponding to the tone generation channel number MASS [TASN] of. Specifically, the assignment order in the tone generation channel management map is assigned in the order of assignment order. The number of assignable tone generation channels from the assignment order next to the assignment order TASN. Generation channel number MASS
It is determined whether the note number of the tone generation channel number corresponding to [TASN] is the same as the note number NTNM. If there is a tone generation channel whose note number is the same as the note number NTNM, the process proceeds to the next step, and if not, the process proceeds to step B5. First, the assignment order of the tone generation channel having the same note number as the note number NTNM is virtually changed by a process similar to the continuous hitting process of the update processing routine 11. In other words, a new assignment order is obtained when the assignment order is updated based on a new note-on, and then it is determined whether or not the virtual assignment order is smaller than the target assignment order TASN. When the virtual assignment order is lower than the target assignment order TASN, the assignment order is rearranged so that the tone generation channel is the allocation target order, and when it is not lower, the rearrangement is not performed. When the processing is completed, the process proceeds to step B5.
【0259】なお、各実施例、変形例において、実質的
に発音を終了しているとみなせる発音量以下の楽音発生
チャネルを発音を終了している楽音発生チャネルと同様
に処理を行っても良い。また、複数個の連打が発生した
場合よりアサイン順位を早くするようにしても良い。例
えば、同一音高の楽音発生チャネルが3チャネルある場
合に、第1実施例においては最も発音量の低い楽音発生
チャネルのプリアサイナ発音量を1/100に変更し、
次に発音量の低い楽音発生チャネルのプリアサイナ発音
量を1/10に変更する。また、第2実施例においては
最も早いアサイン順位の楽音発生チャネルについてはそ
の状態をより下位の状態に変更し、次に発音量の低い楽
音発生チャネルについては同じ状態のより早いアサイン
順位に変更する。In each of the embodiments and the modified examples, the tone generation channels whose sound generation amount is equal to or less than the tone generation channel which can be regarded as the tone generation is substantially finished may be processed in the same manner as the tone generation channels whose tone generation is ended. . Also, the assignment order may be made earlier than when a plurality of consecutive hits occur. For example, when there are three tone generation channels with the same pitch, in the first embodiment, the pre-assigner tone generation amount of the tone generation channel with the lowest tone amount is changed to 1/100,
Next, the pre-assigner sound generation amount of the tone generation channel having the lower sound generation amount is changed to 1/10. Further, in the second embodiment, the state of the tone generation channel having the earliest assignment order is changed to a lower state, and the tone generation channel having the next lower sounding amount is changed to the earlier assignment order of the same state. .
【0260】なお、トランケート禁止フェーズ番号をア
タックを終了するフェーズ番号としたが、発音開始直後
の演奏表現に大きな影響を与える期間がさらに長い場合
などする場合にはその期間に応じて変更しても良い。例
えば、ディケイ期間を含める。また、マルチティンバ電
子楽器に適用しても良い。この場合に、連打関係の判断
条件に同一パートであることを含めるが必要なら関連す
るパートを含めても良い。Although the truncation prohibition phase number is the phase number at which the attack ends, it may be changed according to the period when the period that greatly affects the performance expression immediately after the start of sounding is longer. good. For example, include a decay period. Further, it may be applied to a multitimba electronic musical instrument. In this case, the judgment condition of the continuous hitting relation includes that it is the same part, but if necessary, the related part may be included.
【0261】第1、第2実施例においては、マルチタス
ク処理による例を示したが、シングルタスク処理により
実施しても良い。この際に、例えばタイマ割込みなどの
割込みにもとづいてプリアサイナタスクにおける処理と
同様の処理を実行しても、あるいはメインルーチンでの
キーデータを楽音発生チャネルに割当てる処理に際しプ
リアサイナタスクにおける処理と同様の処理を行っても
良い。In the first and second embodiments, an example of multitask processing is shown, but single task processing may be used. At this time, for example, even if the same processing as the processing in the pre-assigner task is executed based on an interrupt such as a timer interrupt, or the processing in the main routine in which the key data is assigned to the tone generation channel is the same as the processing in the pre-assigner task. May be processed.
【0262】また、第1、第2実施例のメインアサイナ
タスクのステップB5におけるキーデータを楽音発生チ
ャネルに割当てる処理において、まず発音の終了してい
る、言い換えれば空いている楽音発生チャネルに割当
て、空いている楽音発生チャネルがなければ連打関係の
楽音発生チャネルを探して割当て、連打関係の楽音発生
チャネルもなければ例えば評価発音量順に割当てるよう
にしても良い。また、空いている楽音発生チャネルがな
い場合には連打関係の楽音発生チャネルの評価発音量を
変更後において、評価発音量にもとづいて割当てるよう
にしても良い。なお、連打処理に際しては、新たなキー
データにもとづく楽音を含めると良い。また、まず発音
を終了している楽音発生チャネルに加えて実質的に発音
を終了しているとみなせる発音量以下の楽音発生チャネ
ルに割当てるようにしても良い。In the process of assigning the key data to the tone generation channel in the step B5 of the main assigner task of the first and second embodiments, first, the tone generation is finished, in other words, the tone generation channel is vacant. Alternatively, if there is no vacant tone generation channel, a tone generation channel related to repeated hits may be searched for and assigned, and if there is no tone generation channel related to repeated strikes, for example, they may be assigned in the order of evaluation sound generation amount. Further, if there is no free tone generation channel, the evaluation tone generation amount of the continuous tone-related tone generation channel may be changed and then assigned based on the evaluation tone generation amount. It should be noted that it is preferable to include a musical tone based on new key data in the repeated hitting process. Further, first, in addition to the tone generation channels for which sound generation has ended, it may be assigned to tone generation channels whose sound generation amount is equal to or less than that at which sound generation can be considered substantially ended.
【0263】本発明は、鍵盤部を有する電子楽器に加え
て、鍵盤部を有しない他の電子楽器、例えば自動演奏装
置などより受信する演奏情報にもとづいて楽音を発生す
るいわゆる楽音発生装置、あるいは自動リズムなどにも
適用できる。なお、自動リズムに適用する場合には連打
関係の判断を同一音色などであることによって行う。The present invention, in addition to an electronic musical instrument having a keyboard section, a so-called musical tone generating apparatus for generating musical tones based on performance information received from another electronic musical instrument having no keyboard section, for example, an automatic musical instrument. It can also be applied to automatic rhythms. In addition, when applied to an automatic rhythm, the determination of the continuous hitting relation is made based on the same tone color or the like.
【0264】[0264]
【発明の効果】以上に説明したように、本発明によれ
ば、新しい楽音を割当てる楽音発生チャネルの選定順位
を予め定めるに、全体的に見て発音状態にない楽音発生
チャネル、次に発音状態の連打関係にある楽音発生チャ
ネルとなるようになり、演奏表現上における違和感を抑
制することができる。As described above, according to the present invention, in order to predetermine the selection order of the tone generation channels to which new musical tones are assigned, the tone generation channels which are not in a sounding state as a whole It becomes a tone generation channel having a continuous hitting relationship, and it is possible to suppress a feeling of strangeness in performance expression.
【図面の簡単な説明】[Brief description of drawings]
【図1】本発明による電子楽器の割当装置の第1実施例
の概略ブロック図である。FIG. 1 is a schematic block diagram of a first embodiment of an electronic musical instrument assigning device according to the present invention.
【図2】同第1実施例のノートマップの構成図である。FIG. 2 is a configuration diagram of a note map of the first embodiment.
【図3】同第1実施例のエンベロープ管理マップの構成
図である。FIG. 3 is a configuration diagram of an envelope management map of the first embodiment.
【図4】同第1実施例のタスク管理マップの構成図であ
る。FIG. 4 is a configuration diagram of a task management map of the first embodiment.
【図5】同第1実施例の楽音発生チャネル管理マップの
構成図である。FIG. 5 is a configuration diagram of a tone generation channel management map of the first embodiment.
【図6】同第1実施例のリセットルーチンのフローチャ
ート図である。FIG. 6 is a flowchart of a reset routine of the first embodiment.
【図7】同第1実施例のイベント待ちモニタコールルー
チンのフローチャート図である。FIG. 7 is a flowchart of an event wait monitor call routine according to the first embodiment.
【図8】同第1実施例のイベント発生モニタコールルー
チンのフローチャート図である。FIG. 8 is a flowchart of an event occurrence monitor call routine of the first embodiment.
【図9】同第1実施例のタイマ割込み処理ルーチンのフ
ローチャート図である。FIG. 9 is a flowchart of a timer interrupt processing routine of the first embodiment.
【図10】同第1実施例のキーデータ受信割込み処理ル
ーチンのフローチャート図である。FIG. 10 is a flowchart of a key data reception interrupt processing routine of the first embodiment.
【図11】同第1実施例のキーデータ受信タスクのフロ
ーチャート図である。FIG. 11 is a flow chart diagram of a key data receiving task of the first embodiment.
【図12】同第1実施例のメインアサイナタスクのフロ
ーチャート図である。FIG. 12 is a flow chart diagram of a main assigner task of the first embodiment.
【図13】同第1実施例の発音タスクのフローチャート
図である。FIG. 13 is a flow chart diagram of a pronunciation task of the first embodiment.
【図14】同第1実施例のプリアサイナタスクのフロー
チャート図である。FIG. 14 is a flowchart of the pre-assigner task of the first embodiment.
【図15】同第1実施例の連打処理ルーチンのフローチ
ャート図である。FIG. 15 is a flowchart of a continuous hitting processing routine according to the first embodiment.
【図16】同第1実施例のエンベロープタスクのフロー
チャート図である。FIG. 16 is a flowchart diagram of an envelope task according to the first embodiment.
【図17】同第1実施例の操作子タスクのフローチャー
ト図である。FIG. 17 is a flowchart of an operator task according to the first embodiment.
【図18】変形例を説明するための連打処理ルーチンの
フローチャート図である。FIG. 18 is a flowchart of a repeated hitting processing routine for explaining a modified example.
【図19】本発明による電子楽器の割当装置の第2実施
例のプリアサイナタスクのフローチャート図である。FIG. 19 is a flowchart of the pre-assigner task of the second embodiment of the electronic musical instrument assigning device according to the present invention.
【図20】本発明による電子楽器の割当装置の第2実施
例の更新処理11ルーチンのフローチャート図である。FIG. 20 is a flow chart diagram of an update processing 11 routine of the second embodiment of the electronic musical instrument allocating apparatus according to the present invention.
【図21】本発明による電子楽器の割当装置の第2実施
例の連打処理ルーチンのフローチャート図である。FIG. 21 is a flowchart of a continuous hitting processing routine of the second embodiment of the electronic musical instrument assigning device according to the present invention.
【図22】同第2実施例の更新処理12ルーチンのフロ
ーチャート図である。FIG. 22 is a flowchart of an update processing 12 routine of the second embodiment.
【符号の説明】
20 鍵盤部
21 バス
22 CPU
23 操作子群
24 ペダル群
25 ROM
26 RAM
27 タイマ
28 操作子検出回路
29 ペダル検出回路
30 楽音発生回路
31 増幅器
32 スピーカ
─────────────────────────────────────────────────────
[Explanation of symbols] 20 Keyboard 21 Bus 22 CPU 23 Operator group 24 Pedal group 25 ROM 26 RAM 27 Timer 28 Operator detection circuit 29 Pedal detection circuit 30 Music tone generation circuit 31 Amplifier 32 Speaker ───────── ─────────────────────────────────────────────
【手続補正書】[Procedure amendment]
【提出日】平成3年11月6日[Submission date] November 6, 1991
【手続補正1】[Procedure Amendment 1]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図6[Name of item to be corrected] Figure 6
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図6】 [Figure 6]
【手続補正2】[Procedure Amendment 2]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図7[Name of item to be corrected] Figure 7
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図7】 [Figure 7]
【手続補正3】[Procedure 3]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図8[Correction target item name] Figure 8
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図8】 [Figure 8]
【手続補正4】[Procedure amendment 4]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図9[Correction target item name] Figure 9
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図9】 [Figure 9]
【手続補正5】[Procedure Amendment 5]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図10[Name of item to be corrected] Fig. 10
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図10】 [Figure 10]
【手続補正6】[Procedure correction 6]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図11[Name of item to be corrected] Fig. 11
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図11】 FIG. 11
【手続補正7】[Procedure Amendment 7]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図13[Name of item to be corrected] Fig. 13
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図13】 [Fig. 13]
【手続補正8】[Procedure Amendment 8]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図18[Name of item to be corrected] Fig. 18
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図18】 FIG. 18
Claims (8)
を割当てる電子楽器の割当装置において、(a) 発音状態
にある楽音発生チャネルのうちから連打関係にある楽音
発生チャネルを検出する連打関係検出手段、(b) この連
打関係検出手段により検出される連打関係にある楽音発
生チャネルにおける特定の楽音発生チャネルを除くその
他の楽音発生チャネルに対して、所定の順位規準にもと
づく割当て順位にしたがって少なくとも前記発音状態に
ある楽音発生チャネルのうちにおいては優先的に選定さ
れて新しい楽音が割当てられるように、前記所定の順位
規準における順位規準の対象となる内容を改竄する改竄
手段および(C) この改竄手段により改竄される順位規準
の対象内容のもとに楽音発生チャネルに対して前記所定
の順位規準にもとづく割当て順位により新しい楽音を割
当てる楽音発生チャネルの選定順位を予め定める順位選
定手段を具えることを特徴とする電子楽器の割当装置。1. An electronic musical instrument allocating device for selecting a musical tone generating channel and allocating a new musical tone, wherein: (a) a continuous hitting relation detecting means for detecting a musical tone generating channel having a continuous hitting relation among the musical tone generating channels in a sounding state. , (B) For at least the tone generation channels other than the specific tone generation channels in the tone generation channels having the consecutive hit relation detected by the consecutive hit relation detecting means, at least the above-mentioned pronunciation according to the assignment order based on a predetermined order criterion. Falsification means for falsifying the contents subject to the rank criterion in the predetermined rank criterion and (C) by this falsification means so that a new music sound is preferentially selected and assigned among the tone generation channels in the state. Based on the contents of the falsified ranking criterion, the tone generation channels are assigned to the channels based on the predetermined ranking criterion. An electronic musical instrument allocating device, comprising: an order selecting means for predetermining a selection order of a tone generation channel for allocating a new musical sound according to a hit order.
対象となる内容を楽音発生チャネルにおける楽音の発音
量としてその発音量の小なる楽音発生チャネルを優先さ
せる順位規準であることを特徴とする請求項1に記載の
電子楽器の割当装置。2. The predetermined rank criterion is a rank criterion in which the content subject to the rank criterion is used as a sound output amount of a musical sound in the musical sound generating channel, and a musical sound generating channel having a small sound generating amount is prioritized. The electronic musical instrument allocating device according to claim 1.
対象内容を楽音発生チャネルにおける楽音のノートオン
の発音状態およびノートオフの発音状態を含む発音状態
の態様として少なくともノートオフの発音状態にある楽
音発生チャネルをノートオンの発音状態にある楽音発生
チャネルより優先させる順位規準であることを特徴とす
る請求項1に記載の電子楽器の割当装置。3. The predetermined rank criterion sets at least a note-off sound state as a sounding state mode including a note-on sounding state and a note-off sounding state of a musical sound in a musical tone generating channel. 2. The electronic musical instrument allocating device according to claim 1, wherein the musical tone generating channel is a priority criterion for giving priority to a certain musical tone generating channel over a musical tone generating channel in a note-on state.
対象内容を楽音発生チャネルにおける楽音のノートオン
の発音状態およびノートオフの発音状態を含む発音状態
の態様と、楽音発生チャネルにおける楽音の発音量とし
て、少なくともノートオフの発音状態にある楽音発生チ
ャネルをノートオンの発音状態にある楽音発生チャネル
より優先させるとともに、少なくともそのノートオフの
発音状態にある楽音発生チャネルにおいては楽音の発音
量の小なる楽音発生チャネルを優先させる順位規準であ
ることを特徴とする請求項1に記載の電子楽器の割当装
置。4. The predetermined rank criterion is a mode of a sound generation state including a note-on sound generation state and a note-off sound generation state of a musical sound in a musical tone generation channel, and a content of the musical tone generation channel in the musical tone generation channel. At least the tone generation channel in the note-off state is prioritized over the tone generation channel in the note-on state, and at least the tone generation channel in the note-off state is 2. The electronic musical instrument allocating apparatus according to claim 1, wherein the electronic musical instrument allocating device is a ranking criterion that prioritizes smaller musical tone generating channels.
対象内容を楽音発生チャネルにおける楽音の発音状態お
よび発音終了状態の態様として発音終了状態にある楽音
発生チャネルを発音状態にある楽音発生チャネルより優
先させる順位規準であることを特徴とする請求項1に記
載の電子楽器の割当装置。5. A predetermined tone criterion is a tone generation channel in which a tone generation channel in a tone generation state is in a tone generation state, in which the contents of the rank criterion are defined as tone generation states and tone end states of a tone in a tone generation channel. 2. The electronic musical instrument allocating device according to claim 1, wherein the electronic musical instrument allocating device is a priority standard.
減衰中、アタック中およびまたは全ての楽音発生チャネ
ルのうちで最大発音量の発音状態にある楽音発生チャネ
ルであることを特徴とする請求項1乃至5のうちのいず
れかに記載の電子楽器の割当装置。6. The specific tone generation channel is a tone generation channel that is in a sounding state of maximum sounding amount among rapid tone decay, attack and / or all tone generation channels. The electronic musical instrument assigning device according to any one of 1 to 5.
オフの発音状態は、押鍵に関する発音状態および離鍵に
関する発音状態であることを特徴とする請求項4に記載
の電子楽器の割当装置。7. The electronic musical instrument assigning apparatus according to claim 4, wherein the note-on sounding state and the note-off sounding state are a sounding state regarding key depression and a sounding state regarding key release.
対象内容にダンパーの発音状態およびまたはソステヌー
トの発音状態の態様をも含む順位規準であることを特徴
とする請求項3に記載の電子楽器の割当装置。8. The electronic device according to claim 3, wherein the predetermined rank criterion is a rank criterion that includes a sounding state of a damper and / or a sounding state of sostenuto in the contents of the rank criterion. Instrument assignment device.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3194020A JPH052392A (en) | 1990-08-06 | 1991-08-02 | Electronic musical instrument allocation device |
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2-208654 | 1990-08-06 | ||
| JP20865490 | 1990-08-06 | ||
| JP2-223301 | 1990-08-24 | ||
| JP22330190 | 1990-08-24 | ||
| JP9128591 | 1991-03-29 | ||
| JP3-91285 | 1991-03-29 | ||
| JP3194020A JPH052392A (en) | 1990-08-06 | 1991-08-02 | Electronic musical instrument allocation device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH052392A true JPH052392A (en) | 1993-01-08 |
Family
ID=27467894
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3194020A Pending JPH052392A (en) | 1990-08-06 | 1991-08-02 | Electronic musical instrument allocation device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH052392A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008096529A (en) * | 2006-10-06 | 2008-04-24 | Kawai Musical Instr Mfg Co Ltd | Electronic keyboard instrument |
| JP2008096526A (en) * | 2006-10-06 | 2008-04-24 | Kawai Musical Instr Mfg Co Ltd | Electronic keyboard instrument |
-
1991
- 1991-08-02 JP JP3194020A patent/JPH052392A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008096529A (en) * | 2006-10-06 | 2008-04-24 | Kawai Musical Instr Mfg Co Ltd | Electronic keyboard instrument |
| JP2008096526A (en) * | 2006-10-06 | 2008-04-24 | Kawai Musical Instr Mfg Co Ltd | Electronic keyboard instrument |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR950002946B1 (en) | Sound generation control device | |
| US5280129A (en) | Assigning device which assigns new musical tones to tone-generating channels based upon a successive strike relation among the channels | |
| JPH052392A (en) | Electronic musical instrument allocation device | |
| US5159144A (en) | Electronic musical instrument employing tone generator selection based on integrated residual envelope volume | |
| JP2500489B2 (en) | Electronic musical instrument | |
| JP2525853B2 (en) | Continuous hit processing device for electronic musical instruments | |
| JP3694172B2 (en) | Reverberation resonance apparatus and reverberation resonance method | |
| JP3117482B2 (en) | Electronic musical instrument assigner | |
| JPH0535271A (en) | Electronic musical instrument assigner | |
| JPH056181A (en) | Continuous hit processing device for electronic musical instruments | |
| JPH0619474A (en) | Assignor of electronic musical instrument | |
| JP2002297138A (en) | Music sound generating apparatus and music sound generating program | |
| JP3152198B2 (en) | Music sound generation method and music sound generation device | |
| JPH05158477A (en) | Electronic musical instrument assigner | |
| JPH04218097A (en) | Assigner of multitimbre electronic musical instrument | |
| JPH05150784A (en) | Assigner for electronic musical instrument | |
| JPH05134668A (en) | Multitainba electronic musical instrument assigner | |
| JP3530600B2 (en) | Frequency characteristic control apparatus and frequency characteristic control method for musical tone signal | |
| JP3419563B2 (en) | Tone signal level control device | |
| JP3646611B2 (en) | Music generator | |
| JPH04499A (en) | Electronic musical instrument | |
| JPH07109558B2 (en) | Electronic musical instrument | |
| JPH05150783A (en) | Assigner for electronic musical instrument | |
| JP2715795B2 (en) | Musical sound synthesizer having pronunciation assigning means | |
| JP2002366147A (en) | Electronic musical instrument |