JP2936872B2 - 楽音制御装置 - Google Patents
楽音制御装置Info
- Publication number
- JP2936872B2 JP2936872B2 JP4047087A JP4708792A JP2936872B2 JP 2936872 B2 JP2936872 B2 JP 2936872B2 JP 4047087 A JP4047087 A JP 4047087A JP 4708792 A JP4708792 A JP 4708792A JP 2936872 B2 JP2936872 B2 JP 2936872B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- processing
- request data
- task request
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/041—Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】本発明は、複数の演奏操作子の操
作に応答して楽音信号を発生する電子楽器に係り、特に
前記楽音信号の発生をコンピュータを用いて制御するよ
うにした電子楽器に関する。
作に応答して楽音信号を発生する電子楽器に係り、特に
前記楽音信号の発生をコンピュータを用いて制御するよ
うにした電子楽器に関する。
【0002】
【従来の技術】従来、この種の装置は、演奏操作子とし
ての鍵のスキャン処理、発音割り当て処理、パネルスイ
ッチのスキャン処理、効果を付与するための低周波信号
処理などの各処理を実行するプログラムを各処理毎にコ
ンピュータ内に記憶している。そして、このプログラム
においては、高速性を必要とする鍵のスキャン処理、発
音割り当て処理などを、高速性を要求されないパネルス
イッチのスキャン処理、低周波信号処理などに対して実
行頻度を高くするようにしている。
ての鍵のスキャン処理、発音割り当て処理、パネルスイ
ッチのスキャン処理、効果を付与するための低周波信号
処理などの各処理を実行するプログラムを各処理毎にコ
ンピュータ内に記憶している。そして、このプログラム
においては、高速性を必要とする鍵のスキャン処理、発
音割り当て処理などを、高速性を要求されないパネルス
イッチのスキャン処理、低周波信号処理などに対して実
行頻度を高くするようにしている。
【0003】
【発明が解決しようとする課題】しかし、上記従来の装
置にあっては、高速性を要求される処理の頻度を高くし
ているものの、高速性を要求されない処理は高速性を要
求される処理に対して何回かに1回は必ず実行されるの
で、多数の鍵が短い時間内に押離鍵された場合には鍵の
押離鍵に応答した楽音信号の発生開始または停止に遅れ
が生じてしまうという問題があった。また、パネルスイ
ッチの操作状態が変化していなかったり、効果の付与が
選択されていない場合でも、これらに係る不要な処理が
実行されてしまうという問題もあった。本発明は上記問
題に対処するためになされたもので、その目的は、コン
ピュータにおけるマルチタスク処理の概念を導入して、
高速性が要求される処理は必ず最優先で実行されるとと
もに、不要な処理は実行されないようにした電子楽器を
提供することにある。
置にあっては、高速性を要求される処理の頻度を高くし
ているものの、高速性を要求されない処理は高速性を要
求される処理に対して何回かに1回は必ず実行されるの
で、多数の鍵が短い時間内に押離鍵された場合には鍵の
押離鍵に応答した楽音信号の発生開始または停止に遅れ
が生じてしまうという問題があった。また、パネルスイ
ッチの操作状態が変化していなかったり、効果の付与が
選択されていない場合でも、これらに係る不要な処理が
実行されてしまうという問題もあった。本発明は上記問
題に対処するためになされたもので、その目的は、コン
ピュータにおけるマルチタスク処理の概念を導入して、
高速性が要求される処理は必ず最優先で実行されるとと
もに、不要な処理は実行されないようにした電子楽器を
提供することにある。
【0004】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に係る発明は、楽音の発生に関する複数種
類の処理をコンピュータを用いて実行するようにした楽
音制御装置において、前記複数種類の処理に対する各処
理要求を表すタスク要求データを記憶するためのタスク
要求データメモリと、前記複数種類の各処理の要求時に
同処理の要求を表すタスク要求データを前記タスク要求
データメモリに書き込むタスク要求データ書き込み手段
と、前記タスク要求データメモリに記憶されているタス
ク要求データにより表されている処理を所定の優先順位
で1つずつ指示するタスク指示手段と、前記複数種類の
処理をそれぞれ独立して時間を異ならせて実行するもの
で、前記タスク指示手段の指示に応答して各処理を実行
するとともに同各処理の実行毎に前記タスク要求データ
メモリに記憶されていて同実行される処理に対応したタ
スク要求データを消去する複数のタスク処理手段とを設
け、前記複数のタスク処理手段のうちの一部のタスク処
理手段は、前記タスク指示手段により指示された処理の
一部を実行した時点で前記タスク要求データの消去を行
わないで同処理を一旦終了し、前記タスク指示手段によ
る他の処理の指示にゆだねるようにしたことにある。 ま
た、請求項2に係る発明は、前記請求項1に係る発明に
おいて、前記複数のタスク処理手段による各処理の実行
毎のタスク要求データの消去を、前記タスク指示手段に
よる処理の指示時に同タスク要求データメモリ内の同処
理に対応したタスク要求データを消去することにより行
い、また前記一部のタスク処理手段による処理の一部を
実行した時点で前記タスク要求データの消去を行わない
で同処理を一旦終了することを、同一旦終了時に前記消
去したタスク要求データを前記タスク要求データメモリ
に再度書き込むことにより行うようにしたことにある。
また、請求項3に係る発明は、前記請求項1又は請求項
2に係る発明において、前記一部のタスク処理手段が、
楽音の発生を制御するための複数の演奏操作子の操作の
検出に関する処理であり、かつ同一部のタスク処理手段
によって一旦終了される一部の処理は、1つの演奏操作
子の操作の検出に関する処理であることにある。 また、
請求項4に係る発明は、前記請求項3に係る発明におい
て、タスク要求データ書き込み手段が、前記一部のタス
ク処理手段によって実行される処理に対するタスク要求
データの前記タスク要求データメモリへの書き込み頻度
を、他のタスク処理手段によって実行される処理に対す
るタスク要求データの前記タスク要求データメモリへの
書き込み頻度よりも高くしたことにある。
に、請求項1に係る発明は、楽音の発生に関する複数種
類の処理をコンピュータを用いて実行するようにした楽
音制御装置において、前記複数種類の処理に対する各処
理要求を表すタスク要求データを記憶するためのタスク
要求データメモリと、前記複数種類の各処理の要求時に
同処理の要求を表すタスク要求データを前記タスク要求
データメモリに書き込むタスク要求データ書き込み手段
と、前記タスク要求データメモリに記憶されているタス
ク要求データにより表されている処理を所定の優先順位
で1つずつ指示するタスク指示手段と、前記複数種類の
処理をそれぞれ独立して時間を異ならせて実行するもの
で、前記タスク指示手段の指示に応答して各処理を実行
するとともに同各処理の実行毎に前記タスク要求データ
メモリに記憶されていて同実行される処理に対応したタ
スク要求データを消去する複数のタスク処理手段とを設
け、前記複数のタスク処理手段のうちの一部のタスク処
理手段は、前記タスク指示手段により指示された処理の
一部を実行した時点で前記タスク要求データの消去を行
わないで同処理を一旦終了し、前記タスク指示手段によ
る他の処理の指示にゆだねるようにしたことにある。 ま
た、請求項2に係る発明は、前記請求項1に係る発明に
おいて、前記複数のタスク処理手段による各処理の実行
毎のタスク要求データの消去を、前記タスク指示手段に
よる処理の指示時に同タスク要求データメモリ内の同処
理に対応したタスク要求データを消去することにより行
い、また前記一部のタスク処理手段による処理の一部を
実行した時点で前記タスク要求データの消去を行わない
で同処理を一旦終了することを、同一旦終了時に前記消
去したタスク要求データを前記タスク要求データメモリ
に再度書き込むことにより行うようにしたことにある。
また、請求項3に係る発明は、前記請求項1又は請求項
2に係る発明において、前記一部のタスク処理手段が、
楽音の発生を制御するための複数の演奏操作子の操作の
検出に関する処理であり、かつ同一部のタスク処理手段
によって一旦終了される一部の処理は、1つの演奏操作
子の操作の検出に関する処理であることにある。 また、
請求項4に係る発明は、前記請求項3に係る発明におい
て、タスク要求データ書き込み手段が、前記一部のタス
ク処理手段によって実行される処理に対するタスク要求
データの前記タスク要求データメモリへの書き込み頻度
を、他のタスク処理手段によって実行される処理に対す
るタスク要求データの前記タスク要求データメモリへの
書き込み頻度よりも高くしたことにある。
【0005】
【発明の作用・効果】上記請求項1に係る発明において
は、タスク要求データ書き込み手段が、複数種類の各処
理の要求時に同処理の要求を表すタスク要求データをタ
スク要求データメモリに書き込むと、タスク指示手段
は、タスク要求データメモリに記憶されているタスク要
求データにより表されている処理を所定の優先順位で1
つずつ指示する。この1つずつの処理の指示に対して、
複数のタスク処理手段は、指示された各処理を順次実行
するとともに同各処理の実行毎にタスク要求データメモ
リに記憶されていて同実行された処理に対応したタスク
要求データを消去する。これにより、タスク指示手段に
より決められた優先順位にしたがって、複数の処理が順
次実行されていくので、多くの複雑な処理を行う楽音制
御装置においても、各処理を細かく分けて設計できるの
で、設計が楽になるとともに、追加処理などによる仕様
変更も容易になる。また、複数のタスク処理手段のうち
の一部のタスク処理手段は、前記タスク指示手段により
指示された処理の一部を実行した時点で前記タスク要求
データの消去を行わないで同処理を一旦終了し、前記タ
スク指示手段による他の処理の指示にゆだねるので、一
部の処理の途中で他の処理が実行されるようになるとと
もに、その後に、この一部のタスク処理手段による残り
の処理もタスク指示手段による優先順位にしたがって再
び実行される。また、これにより、一部のタスク処理手
段が多量な処理を実行する必要がある場合でも、この多
量の処理のためにコンピュータが連続して長時間占有さ
れて他の処理の実行が遅れることがなくなるので、多く
の処理を効率的かつ適度な優先順位をもたせて実行でき
るようになる。 また、上記請求項2に係る発明において
は、前記複数のタスク処理手段による各処理の実行毎の
タスク要求データの消去が、前記タスク指示手段による
処理の指示時に同タスク要求データメモリ内の同処理に
対応したタスク要求データを消去することにより行なわ
れ、また前記一部のタスク処理手段による処理の一部を
実行した時点で前記タスク要求データの消去を行わない
で同処理を一旦終了することが、同一旦終了時に前記消
去したタスク要求データを前記タスク要求データメモリ
に再度書き込むことにより行われる。したがって、この
請求項2に係る発 明によれば、タスク要求データの消去
及び前記処理の一旦終了時におけるタスク要求データの
消去の回避が簡単に行われる。 また、上記請求項3に係
る発明においては、複数の演奏操作子が同時に操作され
た場合であっても、この演奏操作子の操作の検出処理を
実行する前記一部のタスク処理手段は、全ての演奏操作
子の検出処理を終了するまでコンピュータを占有するこ
となく、1つの演奏操作子の操作の検出を実行した後
に、他のタスク処理手段による処理(例えば、演奏操作
子のチャンネル割当て、楽音信号形成回路への鍵データ
の出力など)が実行されるので、演奏操作子の操作によ
る少なくとも一部の楽音信号の発生が遅滞なく行われ
る。そして、前記一部のタスク処理手段による残りの演
奏操作子の検出処理も、タスク指示手段による優先順位
にしたがって、遅滞なく行うことが可能となるので、他
の演奏操作子による楽音信号の発生制御も遅滞なく行う
ことができる。これにより、この請求項3に係る発明に
よれば、楽音制御装置にマルチタスク処理を採用して
も、高速性が要求される演奏操作子の操作に応答した楽
音信号の発生を優先させることができ、楽音信号の発生
制御を演奏操作子の操作に対して応答性よくかつ的確に
行うことができるようになる。 また、上記請求項4に係
る発明においては、前記タスク要求データ書き込み手段
の作用により、演奏操作子の操作の検出処理を実行する
前記一部のタスク処理手段に対する処理要求の頻度が、
他のタスク処理手段(例えば、低周波信号の発生、発光
素子の点灯及び消灯など)に対する処理要求よりも高く
なる。これにより、この請求項4に係る発明によれば、
演奏操作子の操作に応答した楽音信号の発生を制御する
ための処理を高速応答性の要求されない他の処理より優
先させることができ、楽音信号の発生制御を演奏操作子
の操作に対して応答性よくかつ的確に行うことができる
ようになる。
は、タスク要求データ書き込み手段が、複数種類の各処
理の要求時に同処理の要求を表すタスク要求データをタ
スク要求データメモリに書き込むと、タスク指示手段
は、タスク要求データメモリに記憶されているタスク要
求データにより表されている処理を所定の優先順位で1
つずつ指示する。この1つずつの処理の指示に対して、
複数のタスク処理手段は、指示された各処理を順次実行
するとともに同各処理の実行毎にタスク要求データメモ
リに記憶されていて同実行された処理に対応したタスク
要求データを消去する。これにより、タスク指示手段に
より決められた優先順位にしたがって、複数の処理が順
次実行されていくので、多くの複雑な処理を行う楽音制
御装置においても、各処理を細かく分けて設計できるの
で、設計が楽になるとともに、追加処理などによる仕様
変更も容易になる。また、複数のタスク処理手段のうち
の一部のタスク処理手段は、前記タスク指示手段により
指示された処理の一部を実行した時点で前記タスク要求
データの消去を行わないで同処理を一旦終了し、前記タ
スク指示手段による他の処理の指示にゆだねるので、一
部の処理の途中で他の処理が実行されるようになるとと
もに、その後に、この一部のタスク処理手段による残り
の処理もタスク指示手段による優先順位にしたがって再
び実行される。また、これにより、一部のタスク処理手
段が多量な処理を実行する必要がある場合でも、この多
量の処理のためにコンピュータが連続して長時間占有さ
れて他の処理の実行が遅れることがなくなるので、多く
の処理を効率的かつ適度な優先順位をもたせて実行でき
るようになる。 また、上記請求項2に係る発明において
は、前記複数のタスク処理手段による各処理の実行毎の
タスク要求データの消去が、前記タスク指示手段による
処理の指示時に同タスク要求データメモリ内の同処理に
対応したタスク要求データを消去することにより行なわ
れ、また前記一部のタスク処理手段による処理の一部を
実行した時点で前記タスク要求データの消去を行わない
で同処理を一旦終了することが、同一旦終了時に前記消
去したタスク要求データを前記タスク要求データメモリ
に再度書き込むことにより行われる。したがって、この
請求項2に係る発 明によれば、タスク要求データの消去
及び前記処理の一旦終了時におけるタスク要求データの
消去の回避が簡単に行われる。 また、上記請求項3に係
る発明においては、複数の演奏操作子が同時に操作され
た場合であっても、この演奏操作子の操作の検出処理を
実行する前記一部のタスク処理手段は、全ての演奏操作
子の検出処理を終了するまでコンピュータを占有するこ
となく、1つの演奏操作子の操作の検出を実行した後
に、他のタスク処理手段による処理(例えば、演奏操作
子のチャンネル割当て、楽音信号形成回路への鍵データ
の出力など)が実行されるので、演奏操作子の操作によ
る少なくとも一部の楽音信号の発生が遅滞なく行われ
る。そして、前記一部のタスク処理手段による残りの演
奏操作子の検出処理も、タスク指示手段による優先順位
にしたがって、遅滞なく行うことが可能となるので、他
の演奏操作子による楽音信号の発生制御も遅滞なく行う
ことができる。これにより、この請求項3に係る発明に
よれば、楽音制御装置にマルチタスク処理を採用して
も、高速性が要求される演奏操作子の操作に応答した楽
音信号の発生を優先させることができ、楽音信号の発生
制御を演奏操作子の操作に対して応答性よくかつ的確に
行うことができるようになる。 また、上記請求項4に係
る発明においては、前記タスク要求データ書き込み手段
の作用により、演奏操作子の操作の検出処理を実行する
前記一部のタスク処理手段に対する処理要求の頻度が、
他のタスク処理手段(例えば、低周波信号の発生、発光
素子の点灯及び消灯など)に対する処理要求よりも高く
なる。これにより、この請求項4に係る発明によれば、
演奏操作子の操作に応答した楽音信号の発生を制御する
ための処理を高速応答性の要求されない他の処理より優
先させることができ、楽音信号の発生制御を演奏操作子
の操作に対して応答性よくかつ的確に行うことができる
ようになる。
【0006】
【実施例】以下、本発明の一実施例を図面を用いて説明
すると、図1は電子楽器の全体を概略的に示している。
すると、図1は電子楽器の全体を概略的に示している。
【0007】この電子楽器は鍵盤11および操作パネル
12を備えている。鍵盤11は楽音の音高を指定する複
数の鍵を備えており、各鍵の押離鍵および鍵タッチは鍵
スイッチ回路13内に各鍵に対応して設けた鍵スイッチ
および鍵タッチ検出器により検出される。操作パネル1
2は楽音の音色を選択する複数の音色選択操作子、楽音
に付与する効果を選択する複数の効果選択操作子などを
備えているとともに音色、効果などの選択状態を表示す
る複数の発光素子などを備えている。各選択操作子の操
作は操作子スイッチ回路14内に各操作子に対応して設
けた複数の操作子スイッチにより検出されるとともに、
各発光素子はドライブ回路15により点灯および消灯制
御される。鍵スイッチ回路13内の各鍵スイッチおよび
各鍵タッチ検出器はスキャニング回路16によりスキャ
ニングされ、操作子スイッチ回路14内の各操作子スイ
ッチはスキャニング回路17によりスキャニングされ
る。
12を備えている。鍵盤11は楽音の音高を指定する複
数の鍵を備えており、各鍵の押離鍵および鍵タッチは鍵
スイッチ回路13内に各鍵に対応して設けた鍵スイッチ
および鍵タッチ検出器により検出される。操作パネル1
2は楽音の音色を選択する複数の音色選択操作子、楽音
に付与する効果を選択する複数の効果選択操作子などを
備えているとともに音色、効果などの選択状態を表示す
る複数の発光素子などを備えている。各選択操作子の操
作は操作子スイッチ回路14内に各操作子に対応して設
けた複数の操作子スイッチにより検出されるとともに、
各発光素子はドライブ回路15により点灯および消灯制
御される。鍵スイッチ回路13内の各鍵スイッチおよび
各鍵タッチ検出器はスキャニング回路16によりスキャ
ニングされ、操作子スイッチ回路14内の各操作子スイ
ッチはスキャニング回路17によりスキャニングされ
る。
【0008】ドライブ回路15およびスキャニング回路
16,17はバス20に接続されており、同バス20に
は楽音信号発生回路31およびマイクロコンピュータ4
0が接続されている。楽音信号発生回路31は、鍵盤1
1の鍵数より少ない数の楽音信号形成チャンネルを有
し、各チャンネルは楽音信号をそれぞれ形成して出力す
る。この楽音信号発生回路31の出力端はアンプ32を
介してスピーカ33に接続されている。
16,17はバス20に接続されており、同バス20に
は楽音信号発生回路31およびマイクロコンピュータ4
0が接続されている。楽音信号発生回路31は、鍵盤1
1の鍵数より少ない数の楽音信号形成チャンネルを有
し、各チャンネルは楽音信号をそれぞれ形成して出力す
る。この楽音信号発生回路31の出力端はアンプ32を
介してスピーカ33に接続されている。
【0009】マイクロコンピュータ40はCPU41、
ROM42、RAM43およびタイマ44を備えてい
る。CPU41は図3〜11のフローチャートに対応し
たプログラムを実行し、ROM42は前記プログラムを
記憶している。RAM43は前記プログラムの実行に必
要な変数を記憶するもので、図2(A)に示すように、鍵
データバッファ43a、操作子データバッファ43b、
タスクデータエリア43cおよびその他の領域43dに
分割されている。タスクデータエリアは、図2(B)に詳
細に示すように、タスク要求フラグTASK(0)〜TASK(8)を
記憶する。この場合、各タスク要求フラグTASK(0)〜TAS
K(8)は、キータスク、キーオンタスク、キーオフタス
ク、アサインタスク、タイマタスク、キースキャンタス
ク、操作子スキャンタスク、低周波信号発生タスクおよ
び発光素子制御タスクに関する各処理の要求を”1”に
よりそれぞれ示し、同各処理の不要求を”0”によりそ
れぞれ示す。なお、これらの9個のタスクは例示的なも
のであり、実際には、その他の多数のタスクに関する処
理が実行される。タイマ44は所定時間(例えば、2.5m
s)毎にタイマインタラプト信号を発生する。
ROM42、RAM43およびタイマ44を備えてい
る。CPU41は図3〜11のフローチャートに対応し
たプログラムを実行し、ROM42は前記プログラムを
記憶している。RAM43は前記プログラムの実行に必
要な変数を記憶するもので、図2(A)に示すように、鍵
データバッファ43a、操作子データバッファ43b、
タスクデータエリア43cおよびその他の領域43dに
分割されている。タスクデータエリアは、図2(B)に詳
細に示すように、タスク要求フラグTASK(0)〜TASK(8)を
記憶する。この場合、各タスク要求フラグTASK(0)〜TAS
K(8)は、キータスク、キーオンタスク、キーオフタス
ク、アサインタスク、タイマタスク、キースキャンタス
ク、操作子スキャンタスク、低周波信号発生タスクおよ
び発光素子制御タスクに関する各処理の要求を”1”に
よりそれぞれ示し、同各処理の不要求を”0”によりそ
れぞれ示す。なお、これらの9個のタスクは例示的なも
のであり、実際には、その他の多数のタスクに関する処
理が実行される。タイマ44は所定時間(例えば、2.5m
s)毎にタイマインタラプト信号を発生する。
【0010】以下、上記のように構成した実施例の動作
を説明する。電源スイッチ(図示しない)が投入される
と、CPU41は図3のステップ100にて「メインプ
ログラム」の実行を開始し、ステップ101にて初期設
定処理を実行した後、ステップ102〜107からなる
循環処理を繰り返し実行する。
を説明する。電源スイッチ(図示しない)が投入される
と、CPU41は図3のステップ100にて「メインプ
ログラム」の実行を開始し、ステップ101にて初期設
定処理を実行した後、ステップ102〜107からなる
循環処理を繰り返し実行する。
【0011】この循環処理においては、ステップ102
にて変数iを「0」に設定した後、ステップ104,1
05の処理により、変数iを「0」からタスク数より
「1」だけ少ない所定値TMAX(本件実施例の場合
「8」)まで順次「1」ずつ増加させながら、ステップ
103〜105からなる循環処理を実行する。この循環
処理においては、ステップ103にて変数iにより指定
されるタスク要求フラグTASK(i) が”0”であるか否か
を判定する。この場合、タスク要求フラグTASK(i) が”
0”であれば、ステップ103にて「YES」と判定し
てプログラムをステップ104へ進め、ひきつづきステ
ップ103〜105からなる循環処理を実行し続ける。
また、タスク要求フラグTASK(i) が”1”であれば、ス
テップ103にて「NO」と判定して、プログラムをス
テップ106,107へ進める。ステップ106におい
てはタスク要求フラグTASK(i) が”0”に変更され、ス
テップ107においては変数iにより指定されるタスク
処理ルーチン(図4〜8,11)が実行される。このス
テップ107の処理後、ステップ102にて変数iをふ
たたび「0」に設定して、前記ステップ103〜105
からなる循環処理を実行する。
にて変数iを「0」に設定した後、ステップ104,1
05の処理により、変数iを「0」からタスク数より
「1」だけ少ない所定値TMAX(本件実施例の場合
「8」)まで順次「1」ずつ増加させながら、ステップ
103〜105からなる循環処理を実行する。この循環
処理においては、ステップ103にて変数iにより指定
されるタスク要求フラグTASK(i) が”0”であるか否か
を判定する。この場合、タスク要求フラグTASK(i) が”
0”であれば、ステップ103にて「YES」と判定し
てプログラムをステップ104へ進め、ひきつづきステ
ップ103〜105からなる循環処理を実行し続ける。
また、タスク要求フラグTASK(i) が”1”であれば、ス
テップ103にて「NO」と判定して、プログラムをス
テップ106,107へ進める。ステップ106におい
てはタスク要求フラグTASK(i) が”0”に変更され、ス
テップ107においては変数iにより指定されるタスク
処理ルーチン(図4〜8,11)が実行される。このス
テップ107の処理後、ステップ102にて変数iをふ
たたび「0」に設定して、前記ステップ103〜105
からなる循環処理を実行する。
【0012】この「メインプログラム」の実行中、鍵盤
11が押離鍵されると、これらの押離鍵は鍵スイッチ回
路13およびスキャニング回路16により検出され、C
PU41は図示しないプログラム処理により前記押離鍵
された鍵を表すキーコード、押離鍵を表すキーオンオフ
データ、押鍵された鍵のタッチを表す鍵タッチデータな
どの鍵データを鍵データバッファ43aに格納する。ま
た、操作パネル12の操作子が操作されると、CPU4
1は図示しないプログラム処理により操作された操作子
の状態を表す操作子データを操作子データバッファ43
bに格納する。なお、前記プログラム処理によらず、各
スキャニング回路16,17が前記キーデータおよび操
作子データを直接各バッファ43a,43bにそれぞれ
格納するようにしてもよい。
11が押離鍵されると、これらの押離鍵は鍵スイッチ回
路13およびスキャニング回路16により検出され、C
PU41は図示しないプログラム処理により前記押離鍵
された鍵を表すキーコード、押離鍵を表すキーオンオフ
データ、押鍵された鍵のタッチを表す鍵タッチデータな
どの鍵データを鍵データバッファ43aに格納する。ま
た、操作パネル12の操作子が操作されると、CPU4
1は図示しないプログラム処理により操作された操作子
の状態を表す操作子データを操作子データバッファ43
bに格納する。なお、前記プログラム処理によらず、各
スキャニング回路16,17が前記キーデータおよび操
作子データを直接各バッファ43a,43bにそれぞれ
格納するようにしてもよい。
【0013】また、前記「メインプログラム」の実行
中、タイマ44がタイマインタラプト信号を発生する
と、CPU41は図示しないプログラム処理によりタス
クデータエリア43c内のタスク要求フラグTASK(4)
を”0”から”1”に変更する。なお、この場合も、前
記プログラム処理によらず、タイマ44がタスク要求フ
ラグTASK(4) を直接的に”1”に変更するようにしても
よい。このようにして、タスク要求フラグTASK(4) が”
1”に設定されると、CPU41は前記図3のステップ
107にて変数i(=4)により指定されるタスク処理
すなわち「タイマタスク処理ルーチン」を実行する。
中、タイマ44がタイマインタラプト信号を発生する
と、CPU41は図示しないプログラム処理によりタス
クデータエリア43c内のタスク要求フラグTASK(4)
を”0”から”1”に変更する。なお、この場合も、前
記プログラム処理によらず、タイマ44がタスク要求フ
ラグTASK(4) を直接的に”1”に変更するようにしても
よい。このようにして、タスク要求フラグTASK(4) が”
1”に設定されると、CPU41は前記図3のステップ
107にて変数i(=4)により指定されるタスク処理
すなわち「タイマタスク処理ルーチン」を実行する。
【0014】CPU41はこの「タイマタスク処理ルー
チン」を図8のステップ300にて開始し、ステップ3
01にて実行回数データNE を所定の値に設定した後、
ステップ302〜320からなる循環処理を繰り返し実
行する。この場合、実行回数データNE は通常「1」に
設定される。また、他のタスク処理が頻繁に行われて、
この「タイマタスク処理ルーチン」が所定時間(例え
ば、2.5ms )毎に実行されなければ、同データNE を
「1」より大きな値に設定する。これにより、この「タ
イマタスク処理」を連続して2回以上実行させて、同処
理の平均頻度が前記所定時間毎に1回となるようにする
ことができる。前記循環処理においては、ステップ30
2にて実行回数データNE が「0」より大きいか否かを
判定する。この場合、この実行回数データNE は「1」
以上の値に設定されているので、ステップ302にて
「YES」と判定してプログラムをステップ303以降
へ進める。
チン」を図8のステップ300にて開始し、ステップ3
01にて実行回数データNE を所定の値に設定した後、
ステップ302〜320からなる循環処理を繰り返し実
行する。この場合、実行回数データNE は通常「1」に
設定される。また、他のタスク処理が頻繁に行われて、
この「タイマタスク処理ルーチン」が所定時間(例え
ば、2.5ms )毎に実行されなければ、同データNE を
「1」より大きな値に設定する。これにより、この「タ
イマタスク処理」を連続して2回以上実行させて、同処
理の平均頻度が前記所定時間毎に1回となるようにする
ことができる。前記循環処理においては、ステップ30
2にて実行回数データNE が「0」より大きいか否かを
判定する。この場合、この実行回数データNE は「1」
以上の値に設定されているので、ステップ302にて
「YES」と判定してプログラムをステップ303以降
へ進める。
【0015】ステップ303にて楽音信号発生回路41
の各楽音信号形成チャンネルを指定するための変数jを
「0」に初期設定した後、ステップ307,308の処
理により、変数jを「0」から楽音信号形成チャンネル
数CMAXまで「1」ずつ増加させながら、ステップ304
〜308からなる循環処理を繰り返し実行する。この循
環処理においては、ステップ304にて変数jによって
指定されるディレイ時間DT(j) から「1」を減算する。
そして、このディレイ時間DT(j) が「0」になると、ス
テップ305にて「YES」と判定し、ステップ306
にてキータスクを要求するためにタスク要求フラグTASK
(0) を”1”に設定するとともに、変数jをチャンネル
番号CHとして記憶する。
の各楽音信号形成チャンネルを指定するための変数jを
「0」に初期設定した後、ステップ307,308の処
理により、変数jを「0」から楽音信号形成チャンネル
数CMAXまで「1」ずつ増加させながら、ステップ304
〜308からなる循環処理を繰り返し実行する。この循
環処理においては、ステップ304にて変数jによって
指定されるディレイ時間DT(j) から「1」を減算する。
そして、このディレイ時間DT(j) が「0」になると、ス
テップ305にて「YES」と判定し、ステップ306
にてキータスクを要求するためにタスク要求フラグTASK
(0) を”1”に設定するとともに、変数jをチャンネル
番号CHとして記憶する。
【0016】次に、ステップ309にてスキャンフラグ
SCANが”1”であるか否かを判定する。このスキャンフ
ラグSCANは”1”により鍵スイッチのスキャンが必要で
あることを表し、”0”により同スキャンが不要である
ことを表す。この場合、このスキャンフラグSCANは”
1”に設定されている。これにより、ステップ309に
て「YES」と判定し、ステップ310にてスキャンフ
ラグSCANを”0”に変更し、ステップ311にてキース
キャンタスクを要求するためのタスク要求フラグTASK
(5) を”1”に設定する。
SCANが”1”であるか否かを判定する。このスキャンフ
ラグSCANは”1”により鍵スイッチのスキャンが必要で
あることを表し、”0”により同スキャンが不要である
ことを表す。この場合、このスキャンフラグSCANは”
1”に設定されている。これにより、ステップ309に
て「YES」と判定し、ステップ310にてスキャンフ
ラグSCANを”0”に変更し、ステップ311にてキース
キャンタスクを要求するためのタスク要求フラグTASK
(5) を”1”に設定する。
【0017】次に、ステップ312〜314の処理によ
り、この「タイマタスク処理ルーチン」を4回実行する
毎に1回だけステップ315の「第1タイミング処理」
を実行する。CPU41は、この「第1タイミング処
理」を図9のステップ330にて開始し、ステップ33
1にて低周波信号タイミングLFOTが「0」であるか否か
を判定する。この低周波信号タイミングLFOTは楽音信号
を変調するための低周波信号のサンプリング周期を決定
するもので、同タイミングLFOTが「0」であることは楽
音信号に低周波信号による変調を付与しないことを意味
する。低周波信号タイミングLFOTが「0」であれば、ス
テップ331にて「YES」と判定してプログラムをス
テップ335へ進める。
り、この「タイマタスク処理ルーチン」を4回実行する
毎に1回だけステップ315の「第1タイミング処理」
を実行する。CPU41は、この「第1タイミング処
理」を図9のステップ330にて開始し、ステップ33
1にて低周波信号タイミングLFOTが「0」であるか否か
を判定する。この低周波信号タイミングLFOTは楽音信号
を変調するための低周波信号のサンプリング周期を決定
するもので、同タイミングLFOTが「0」であることは楽
音信号に低周波信号による変調を付与しないことを意味
する。低周波信号タイミングLFOTが「0」であれば、ス
テップ331にて「YES」と判定してプログラムをス
テップ335へ進める。
【0018】低周波信号タイミングLFOTが「0」でなけ
れば、ステップ331にて「NO」と判定し、ステップ
332,333の処理により、同タイミングLFOTから
「1」を減算するとともに、同減算結果が「0」になる
毎に、ステップ334にて低周波信号発生タスクを要求
するためにタスク要求フラグTASK(7) を”1”に設定す
る。これにより、長い周期で低周波信号発生タスクが要
求される。この低周波信号発生タスクを処理するための
具体的なプログラムは示されていないが、同プログラム
においては低周波信号の1サンプリング値を形成して楽
音信号発生回路31へ出力するとともに、次のサンプリ
ング値の形成のために低周波信号タイミングLFOTをサン
プリング周期に対応した値に設定する。
れば、ステップ331にて「NO」と判定し、ステップ
332,333の処理により、同タイミングLFOTから
「1」を減算するとともに、同減算結果が「0」になる
毎に、ステップ334にて低周波信号発生タスクを要求
するためにタスク要求フラグTASK(7) を”1”に設定す
る。これにより、長い周期で低周波信号発生タスクが要
求される。この低周波信号発生タスクを処理するための
具体的なプログラムは示されていないが、同プログラム
においては低周波信号の1サンプリング値を形成して楽
音信号発生回路31へ出力するとともに、次のサンプリ
ング値の形成のために低周波信号タイミングLFOTをサン
プリング周期に対応した値に設定する。
【0019】これらのステップ331〜334の処理
後、ステップ335,336の処理により、操作子スキ
ャンタイミングSWTMから「1」を減算するとともに、同
減算結果が「0」になる毎に、ステップ337にて操作
子スイッチスキャンタスクを要求するためにタスク要求
フラグTASK(6) を”1”に設定する。これにより、操作
子スキャンタスクも長い周期で要求される。この操作子
スキャンタスクを処理するための具体的なプログラムも
示されていないが、同プログラムにおいては操作子デー
タバッファ43bに記憶されている操作子データを読み
出して、同データに応じて楽音信号の音色、音量、効果
付与などを制御するための制御データを楽音信号発生回
路31に出力するとともに、次の操作子スキャンタスク
の要求のために操作子スキャンタイミングSWTMを所定の
周期に対応した値に設定する。前記ステップ336,3
37の処理後、ステップ338にてその他の処理を実行
して、ステップ339にて「第1タイミング処理ルーチ
ン」の実行を終了する。
後、ステップ335,336の処理により、操作子スキ
ャンタイミングSWTMから「1」を減算するとともに、同
減算結果が「0」になる毎に、ステップ337にて操作
子スイッチスキャンタスクを要求するためにタスク要求
フラグTASK(6) を”1”に設定する。これにより、操作
子スキャンタスクも長い周期で要求される。この操作子
スキャンタスクを処理するための具体的なプログラムも
示されていないが、同プログラムにおいては操作子デー
タバッファ43bに記憶されている操作子データを読み
出して、同データに応じて楽音信号の音色、音量、効果
付与などを制御するための制御データを楽音信号発生回
路31に出力するとともに、次の操作子スキャンタスク
の要求のために操作子スキャンタイミングSWTMを所定の
周期に対応した値に設定する。前記ステップ336,3
37の処理後、ステップ338にてその他の処理を実行
して、ステップ339にて「第1タイミング処理ルーチ
ン」の実行を終了する。
【0020】ふたたび、図8のプログラムの説明に戻
り、前記ステップ312〜315の処理後、ステップ3
16〜318の処理により、この「タイマタスク処理ル
ーチン」を4回実行する毎に1回だけステップ319の
「第2タイミング処理」を実行する。CPU41は、こ
の「第2タイミング処理」を図10のステップ350に
て開始し、ステップ351にて発光素子タイミングLEDT
が「0」であるか否かを判定する。この発光素子タイミ
ングLEDTは操作パネル12上の発光素子の点灯および消
灯を制御するもので、同タイミングLEDTが「0」である
ことは発光素子の点灯および消灯を制御しないことを意
味する。発光素子タイミングLEDTが「0」であれば、ス
テップ351にて「YES」と判定してプログラムをス
テップ355へ進める。
り、前記ステップ312〜315の処理後、ステップ3
16〜318の処理により、この「タイマタスク処理ル
ーチン」を4回実行する毎に1回だけステップ319の
「第2タイミング処理」を実行する。CPU41は、こ
の「第2タイミング処理」を図10のステップ350に
て開始し、ステップ351にて発光素子タイミングLEDT
が「0」であるか否かを判定する。この発光素子タイミ
ングLEDTは操作パネル12上の発光素子の点灯および消
灯を制御するもので、同タイミングLEDTが「0」である
ことは発光素子の点灯および消灯を制御しないことを意
味する。発光素子タイミングLEDTが「0」であれば、ス
テップ351にて「YES」と判定してプログラムをス
テップ355へ進める。
【0021】発光素子タイミングLEDTが「0」でなけれ
ば、ステップ351にて「NO」と判定し、ステップ3
52,353の処理により、同タイミングLEDTから
「1」を減算するとともに、同減算結果が「0」になる
毎に、ステップ354にて発光素子の点灯および消灯を
制御する発光素子制御タスクを要求するためにタスク要
求フラグTASK(8) を”1”に設定する。これにより、長
い周期で発光素子制御タスクが要求される。この発光素
子制御タスクを処理するための具体的なプログラムも示
されていないが、同プログラムにおいては操作パネル1
2上の発光素子を点灯または消灯するための制御信号を
ドライブ回路15へ出力するとともに、次の発光素子制
御タスクの要求のために発光素子制御タイミングLEDTを
所定周期に対応した値に設定する。
ば、ステップ351にて「NO」と判定し、ステップ3
52,353の処理により、同タイミングLEDTから
「1」を減算するとともに、同減算結果が「0」になる
毎に、ステップ354にて発光素子の点灯および消灯を
制御する発光素子制御タスクを要求するためにタスク要
求フラグTASK(8) を”1”に設定する。これにより、長
い周期で発光素子制御タスクが要求される。この発光素
子制御タスクを処理するための具体的なプログラムも示
されていないが、同プログラムにおいては操作パネル1
2上の発光素子を点灯または消灯するための制御信号を
ドライブ回路15へ出力するとともに、次の発光素子制
御タスクの要求のために発光素子制御タイミングLEDTを
所定周期に対応した値に設定する。
【0022】前記ステップ351〜354の処理後、ス
テップ355にてその他の処理を実行して、ステップ3
56にて「第2タイミング処理ルーチン」の実行を終了
する。ふたたび、図8の「タイマタスク処理ルーチン」
の説明に戻ると、前記ステップ316〜319の処理
後、ステップ320にて実行回数NE から「1」を減算
して、プログラムをステップ302へ戻す。そして、こ
の実行回数NE が「0」を示していれば、ステップ30
2にて「NO」と判定して、ステップ321にてこの
「タイマタスク処理ルーチン」の実行を終了する。ま
た、実行回数NE が「0」でなければ、プログラムをス
テップ303以降へふたたび進める。
テップ355にてその他の処理を実行して、ステップ3
56にて「第2タイミング処理ルーチン」の実行を終了
する。ふたたび、図8の「タイマタスク処理ルーチン」
の説明に戻ると、前記ステップ316〜319の処理
後、ステップ320にて実行回数NE から「1」を減算
して、プログラムをステップ302へ戻す。そして、こ
の実行回数NE が「0」を示していれば、ステップ30
2にて「NO」と判定して、ステップ321にてこの
「タイマタスク処理ルーチン」の実行を終了する。ま
た、実行回数NE が「0」でなければ、プログラムをス
テップ303以降へふたたび進める。
【0023】一方、前述のようにしてタスク要求フラグ
TASK(5) が”1”に設定されている場合には、図3の
「メインプログラム」にて変数iが「5」になったと
き、ステップ103にて「NO」と判定し、ステップ1
06にてタスク要求フラグTASK(5) を”0”に設定し、
ステップ107にて「キースキャンタスク処理ルーチ
ン」を実行する。CPU41は図11のステップ400
にてこの「キースキャンタスク処理ルーチン」の実行を
開始し、ステップ401にて鍵データバッファ43a内
に鍵データがあるか否かを判定する。この場合、鍵デー
タバッファ43a内に鍵データがなければ、ステップ4
01にて「NO」と判定し、ステップ408にてキース
キャンフラグSCANを”1”に設定して、ステップ409
にてこの「キースキャンタスク処理ルーチン」の実行を
終了する。このようにして、キースキャンフラグSCAN
が”1”に設定されるので、キースキャンタスクの処理
は今後も実行される。
TASK(5) が”1”に設定されている場合には、図3の
「メインプログラム」にて変数iが「5」になったと
き、ステップ103にて「NO」と判定し、ステップ1
06にてタスク要求フラグTASK(5) を”0”に設定し、
ステップ107にて「キースキャンタスク処理ルーチ
ン」を実行する。CPU41は図11のステップ400
にてこの「キースキャンタスク処理ルーチン」の実行を
開始し、ステップ401にて鍵データバッファ43a内
に鍵データがあるか否かを判定する。この場合、鍵デー
タバッファ43a内に鍵データがなければ、ステップ4
01にて「NO」と判定し、ステップ408にてキース
キャンフラグSCANを”1”に設定して、ステップ409
にてこの「キースキャンタスク処理ルーチン」の実行を
終了する。このようにして、キースキャンフラグSCAN
が”1”に設定されるので、キースキャンタスクの処理
は今後も実行される。
【0024】また、鍵データバッファ43a内に鍵デー
タがあれば、ステップ401にて「YES」と判定し、
ステップ402にて同バッファ43a内に記憶されてい
る鍵データを読み込むと同時に同読み込んだデータを同
バッファ43aから消去し、ステップ403にて同読み
込んだ鍵データが押鍵に関するものか離鍵に関するもの
かを判定する。この場合、鍵データが押鍵に関するもの
であれば、ステップ403にて「YES」と判定し、ス
テップ404にてアサインタスクの要求のためにタスク
要求フラグTASK(3) を”1”に設定する。また、鍵デー
タが離鍵に関するものであれば、ステップ403にて
「NO」と判定し、ステップ405にてキーオフタスク
の要求のためにタスク要求フラグTASK(2) を”1”に設
定する。これらのステップ404,405の処理後、ス
テップ406にて鍵データバッファ43a内に他の鍵デ
ータがあるか否かを判定する。この場合、鍵データバッ
ファ43a内に他の鍵データがなければ、ステップ40
6にて「NO」と判定し、ステップ408にてキースキ
ャンフラグSCANを”1”に設定して、ステップ409に
てこの「キースキャンタスク処理ルーチン」の実行を終
了する。
タがあれば、ステップ401にて「YES」と判定し、
ステップ402にて同バッファ43a内に記憶されてい
る鍵データを読み込むと同時に同読み込んだデータを同
バッファ43aから消去し、ステップ403にて同読み
込んだ鍵データが押鍵に関するものか離鍵に関するもの
かを判定する。この場合、鍵データが押鍵に関するもの
であれば、ステップ403にて「YES」と判定し、ス
テップ404にてアサインタスクの要求のためにタスク
要求フラグTASK(3) を”1”に設定する。また、鍵デー
タが離鍵に関するものであれば、ステップ403にて
「NO」と判定し、ステップ405にてキーオフタスク
の要求のためにタスク要求フラグTASK(2) を”1”に設
定する。これらのステップ404,405の処理後、ス
テップ406にて鍵データバッファ43a内に他の鍵デ
ータがあるか否かを判定する。この場合、鍵データバッ
ファ43a内に他の鍵データがなければ、ステップ40
6にて「NO」と判定し、ステップ408にてキースキ
ャンフラグSCANを”1”に設定して、ステップ409に
てこの「キースキャンタスク処理ルーチン」の実行を終
了する。
【0025】一方、鍵データバッファ43a内に他の鍵
データがまだある場合には、ステップ406にて「YE
S」と判定し、ステップ407にてタスク要求フラグTA
SK(5) をふたたび”1”に設定して、ステップ409に
てこの「キースキャンタスク処理ルーチン」の実行を終
了する。この場合には、図3の「メインプログラム」に
て変数iがふたたび「5」になったとき、ステップ10
7にて前述した「キースキャン処理ルーチン」を実行す
る。
データがまだある場合には、ステップ406にて「YE
S」と判定し、ステップ407にてタスク要求フラグTA
SK(5) をふたたび”1”に設定して、ステップ409に
てこの「キースキャンタスク処理ルーチン」の実行を終
了する。この場合には、図3の「メインプログラム」に
て変数iがふたたび「5」になったとき、ステップ10
7にて前述した「キースキャン処理ルーチン」を実行す
る。
【0026】このようにして、タスク要求フラグTASK
(3) が”1”に設定されると、図3の「メインプログラ
ム」にて変数iが「3」になったとき、ステップ107
にて「アサインタスク処理ルーチン」が実行される。C
PU41は図7のステップ230にてこの「アサインタ
スク処理ルーチン」の実行を開始し、ステップ231に
て前記読み込んだ鍵データを割り当てる楽音信号形成チ
ャンネルを空きチャンネルの中から捜し出す。次に、ス
テップ232にてキーオンタスクの要求のためにタスク
要求フラグTASK(1) を”1”に設定して、ステップ23
3にてこの「アサインタスク処理ルーチン」の実行を終
了する。
(3) が”1”に設定されると、図3の「メインプログラ
ム」にて変数iが「3」になったとき、ステップ107
にて「アサインタスク処理ルーチン」が実行される。C
PU41は図7のステップ230にてこの「アサインタ
スク処理ルーチン」の実行を開始し、ステップ231に
て前記読み込んだ鍵データを割り当てる楽音信号形成チ
ャンネルを空きチャンネルの中から捜し出す。次に、ス
テップ232にてキーオンタスクの要求のためにタスク
要求フラグTASK(1) を”1”に設定して、ステップ23
3にてこの「アサインタスク処理ルーチン」の実行を終
了する。
【0027】また、前記のように、タスク要求フラグTA
SK(1) が”1”に設定されると、図3の「メインプロ
グラム」にて変数iが「1」になったとき、ステップ1
07にて「キーオンタスク処理ルーチン」が実行され
る。CPU41は図5のステップ210にてこの「キー
オンタスク処理ルーチン」の実行を開始し、ステップ2
11にて前記割り当てた楽音信号形成チャンネルを表す
値をチャンネル番号CHとして設定する。次に、ステップ
212にてチャンネル番号CHにより指定されるディレイ
時間DT(CH)を所定値DT0 に設定して、ステップ213に
てこの「キーオンタスク処理ルーチン」の実行を終了す
る。このディレイ時間DT(CH)は前述した図8の「タイマ
タスク処理ルーチン」のステップ304にて減算される
ものである。そして、このディレイ時間DT(CH)が「0」
になった時点で、前記ステップ306の処理により、タ
スク要求フラグTASK(0) が”1”に設定される。
SK(1) が”1”に設定されると、図3の「メインプロ
グラム」にて変数iが「1」になったとき、ステップ1
07にて「キーオンタスク処理ルーチン」が実行され
る。CPU41は図5のステップ210にてこの「キー
オンタスク処理ルーチン」の実行を開始し、ステップ2
11にて前記割り当てた楽音信号形成チャンネルを表す
値をチャンネル番号CHとして設定する。次に、ステップ
212にてチャンネル番号CHにより指定されるディレイ
時間DT(CH)を所定値DT0 に設定して、ステップ213に
てこの「キーオンタスク処理ルーチン」の実行を終了す
る。このディレイ時間DT(CH)は前述した図8の「タイマ
タスク処理ルーチン」のステップ304にて減算される
ものである。そして、このディレイ時間DT(CH)が「0」
になった時点で、前記ステップ306の処理により、タ
スク要求フラグTASK(0) が”1”に設定される。
【0028】この場合、図3の「メインプログラム」に
て変数iが「0」になったとき、ステップ107にて
「キータスク処理ルーチン」が実行される。CPU41
は図4のステップ200にてこの「キータスク処理ルー
チン」の実行を開始し、ステップ201にて今回ディレ
イ時間DT(CH)が「0」になったチャンネルCHに割り当て
られた鍵データを楽音信号発生回路31へ出力する。こ
の場合、鍵データは押鍵に関するものでなので、楽音信
号発生回路31は前記チャンネルCHにより指定された楽
音信号形成チャンネルにて鍵データにより指定される楽
音信号を発生する。これにより、鍵盤11にてある鍵が
押鍵された場合には、前記所定時間DT0 後に楽音信号が
発生される。もちろん、この所定時間DT0 を「1」に設
定しておけば、図8の「タイマタスク処理ルーチン」の
ステップ304〜306の処理により、楽音信号は押鍵
後すぐに発生される。
て変数iが「0」になったとき、ステップ107にて
「キータスク処理ルーチン」が実行される。CPU41
は図4のステップ200にてこの「キータスク処理ルー
チン」の実行を開始し、ステップ201にて今回ディレ
イ時間DT(CH)が「0」になったチャンネルCHに割り当て
られた鍵データを楽音信号発生回路31へ出力する。こ
の場合、鍵データは押鍵に関するものでなので、楽音信
号発生回路31は前記チャンネルCHにより指定された楽
音信号形成チャンネルにて鍵データにより指定される楽
音信号を発生する。これにより、鍵盤11にてある鍵が
押鍵された場合には、前記所定時間DT0 後に楽音信号が
発生される。もちろん、この所定時間DT0 を「1」に設
定しておけば、図8の「タイマタスク処理ルーチン」の
ステップ304〜306の処理により、楽音信号は押鍵
後すぐに発生される。
【0029】一方、上述の図11の「キースキャンタス
ク処理ルーチン」のステップ405にてタスク要求フラ
グTASK(2) が”1”に設定されている場合には、図3の
「メインプログラム」にて変数iが「2」になったと
き、ステップ107にて「キーオフタスク処理ルーチ
ン」が実行される。CPU41は図6のステップ220
にてこの「キーオフタスク処理ルーチン」の実行を開始
し、ステップ221にて前記読み込んだ鍵データが割り
当てられている楽音信号形成チャンネルを捜し出して、
同チャンネルを表す値をチャンネル番号CHとして設定す
る。次に、ステップ222にてチャンネル番号CHにより
指定されるディレイ時間DT(CH)を所定値DT1に設定し
て、ステップ223にてこの「キーオフタスク処理ルー
チン」の実行を終了する。このディレイ時間DT(CH)は、
前述のように、「タイマタスク処理ルーチン」にて減算
されて、同時間DT(CH)が「0」になった時点で、「キー
タスク処理ルーチン」が実行される。
ク処理ルーチン」のステップ405にてタスク要求フラ
グTASK(2) が”1”に設定されている場合には、図3の
「メインプログラム」にて変数iが「2」になったと
き、ステップ107にて「キーオフタスク処理ルーチ
ン」が実行される。CPU41は図6のステップ220
にてこの「キーオフタスク処理ルーチン」の実行を開始
し、ステップ221にて前記読み込んだ鍵データが割り
当てられている楽音信号形成チャンネルを捜し出して、
同チャンネルを表す値をチャンネル番号CHとして設定す
る。次に、ステップ222にてチャンネル番号CHにより
指定されるディレイ時間DT(CH)を所定値DT1に設定し
て、ステップ223にてこの「キーオフタスク処理ルー
チン」の実行を終了する。このディレイ時間DT(CH)は、
前述のように、「タイマタスク処理ルーチン」にて減算
されて、同時間DT(CH)が「0」になった時点で、「キー
タスク処理ルーチン」が実行される。
【0030】この場合も、図4のステップ201にて今
回ディレイ時間DT(CH)が「0」になったチャンネルCHに
割り当てられた鍵データが楽音信号発生回路31へ出力
される。しかし、鍵データは離鍵に関するものでなの
で、楽音信号発生回路31は前記チャンネルCHにより指
定された楽音信号形成チャンネルにおける楽音信号の発
生を停止する。これにより、鍵盤11にて押鍵中の鍵が
離鍵された場合には、前記所定時間DT1 後に楽音信号の
発生が停止される。もちろん、この所定時間DT1を
「1」に設定しておけば、図8の「タイマタスク処理ル
ーチン」のステップ304〜306の処理により、楽音
信号の発生は離鍵後すぐに停止する。
回ディレイ時間DT(CH)が「0」になったチャンネルCHに
割り当てられた鍵データが楽音信号発生回路31へ出力
される。しかし、鍵データは離鍵に関するものでなの
で、楽音信号発生回路31は前記チャンネルCHにより指
定された楽音信号形成チャンネルにおける楽音信号の発
生を停止する。これにより、鍵盤11にて押鍵中の鍵が
離鍵された場合には、前記所定時間DT1 後に楽音信号の
発生が停止される。もちろん、この所定時間DT1を
「1」に設定しておけば、図8の「タイマタスク処理ル
ーチン」のステップ304〜306の処理により、楽音
信号の発生は離鍵後すぐに停止する。
【0031】上記作動説明のように、上記実施例によれ
ば、鍵盤11および操作パネル12の操作状態と楽音信
号の発生制御状態とに応じていずれか一つまたは複数の
タスク要求フラグTASK(0)〜TASK(8)が”1”に設定さ
れ、図3の「メインプログラム」の実行により、前記”
1”に設定されたタスク要求フラグTASK(0)〜TASK(8)に
基づいて各タスクの処理がこの順に要求される。そし
て、この要求に応じて前記順で各タスク処理が実行され
て、楽音信号の発生が制御される。この場合、タスク要
求フラグTASK(0)〜TASK(8)は、キータスク、キーオンタ
スク、キーオフタスク、アサインタスク、タイマタス
ク、キースキャンタスク、操作子スキャンタスク、低周
波信号発生タスクおよび発光素子制御タスクの要求をこ
の順にそれぞれ表しているので、高速性を要求される鍵
盤11の押離鍵に応答した楽音信号の発生停止に関する
タスク処理の優先順位は高く設定され、かつ高速性を要
求されない操作パネル12上の各操作子の操作、低周波
信号発生処理および発光素子制御に関するタスク処理の
優先順位が低く設定される。したがって、多数の鍵が短
い時間内に押離鍵された場合にも該押離鍵に応答した楽
音信号の発生開始または停止に遅れが生じることがなく
なる。また、各タスクの要求がなされないときには、各
タスクに関するプログラム処理が実行さないので、不要
なプログラム処理が実行されてなくなって、マイクロコ
ンピュータ40による楽音信号の発生制御の効率が良好
となる。
ば、鍵盤11および操作パネル12の操作状態と楽音信
号の発生制御状態とに応じていずれか一つまたは複数の
タスク要求フラグTASK(0)〜TASK(8)が”1”に設定さ
れ、図3の「メインプログラム」の実行により、前記”
1”に設定されたタスク要求フラグTASK(0)〜TASK(8)に
基づいて各タスクの処理がこの順に要求される。そし
て、この要求に応じて前記順で各タスク処理が実行され
て、楽音信号の発生が制御される。この場合、タスク要
求フラグTASK(0)〜TASK(8)は、キータスク、キーオンタ
スク、キーオフタスク、アサインタスク、タイマタス
ク、キースキャンタスク、操作子スキャンタスク、低周
波信号発生タスクおよび発光素子制御タスクの要求をこ
の順にそれぞれ表しているので、高速性を要求される鍵
盤11の押離鍵に応答した楽音信号の発生停止に関する
タスク処理の優先順位は高く設定され、かつ高速性を要
求されない操作パネル12上の各操作子の操作、低周波
信号発生処理および発光素子制御に関するタスク処理の
優先順位が低く設定される。したがって、多数の鍵が短
い時間内に押離鍵された場合にも該押離鍵に応答した楽
音信号の発生開始または停止に遅れが生じることがなく
なる。また、各タスクの要求がなされないときには、各
タスクに関するプログラム処理が実行さないので、不要
なプログラム処理が実行されてなくなって、マイクロコ
ンピュータ40による楽音信号の発生制御の効率が良好
となる。
【0032】また、上記実施例によれば、図11の「キ
ースキャンタスク処理ルーチン」のステップ401〜4
05の処理後に、他の鍵データが鍵データバッファ43
a内に残っている場合には、ステップ406にて「YE
S」と判定してステップ405にてタスク要求フラグTA
SK(5) をふたたび”1”に設定する。これにより、この
「キースキャンタスク処理ルーチン」が続けて行われる
ようになるので、鍵盤11の押離鍵操作に伴う処理が遅
延することがなくなる。
ースキャンタスク処理ルーチン」のステップ401〜4
05の処理後に、他の鍵データが鍵データバッファ43
a内に残っている場合には、ステップ406にて「YE
S」と判定してステップ405にてタスク要求フラグTA
SK(5) をふたたび”1”に設定する。これにより、この
「キースキャンタスク処理ルーチン」が続けて行われる
ようになるので、鍵盤11の押離鍵操作に伴う処理が遅
延することがなくなる。
【図1】 本発明の一実施例を示す電子楽器のブロック
図である。
図である。
【図2】 (A)は図1のRAMのマップであり、(B)は
(A)のタスクデータエリア内に記憶されているデータの
フォーマット図である。
(A)のタスクデータエリア内に記憶されているデータの
フォーマット図である。
【図3】 図1のマイクロコンピュータにて実行される
「メインプログラム」のフローチャートである。
「メインプログラム」のフローチャートである。
【図4】 「キータスク処理ルーチン」の詳細フローチ
ャートである。
ャートである。
【図5】 「キーオンタスク処理ルーチン」の詳細フロ
ーチャートである。
ーチャートである。
【図6】 「キーオフタスク処理ルーチン」の詳細フロ
ーチャートである。
ーチャートである。
【図7】 「アサインタスク処理ルーチン」の詳細フロ
ーチャートである。
ーチャートである。
【図8】 「タイマタスク処理ルーチン」の詳細フロー
チャートである。
チャートである。
【図9】 図8の「第1タイミング処理ルーチン」の詳
細フローチャートである。
細フローチャートである。
【図10】 図8の「第2タイミング処理ルーチン」の
詳細フローチャートである。
詳細フローチャートである。
【図11】 「キースキャンタスク処理ルーチン」の詳
細フローチャートである。
細フローチャートである。
11…鍵盤、12…操作パネル、13…鍵スイッチ回
路、14…操作子スイッチ回路、16,17…スキャニ
ング回路、31…楽音信号発生回路、40…マイクロコ
ンピュータ、41…CPU、42…ROM、43…RA
M、43c…タスクデータエリア、44…タイマ。
路、14…操作子スイッチ回路、16,17…スキャニ
ング回路、31…楽音信号発生回路、40…マイクロコ
ンピュータ、41…CPU、42…ROM、43…RA
M、43c…タスクデータエリア、44…タイマ。
Claims (4)
- 【請求項1】 楽音の発生に関する複数種類の処理をコ
ンピュータを用いて実行するようにした楽音制御装置に
おいて、 前記複数種類の処理に対する各処理要求を表すタスク要
求データを記憶するためのタスク要求データメモリと、 前記複数種類の各処理の要求時に同処理の要求を表すタ
スク要求データを前記タスク要求データメモリに書き込
むタスク要求データ書き込み手段と、 前記タスク要求データメモリに記憶されているタスク要
求データにより表されている処理を所定の優先順位で1
つずつ指示するタスク指示手段と、 前記複数種類の処理をそれぞれ独立して時間を異ならせ
て実行するもので、前記タスク指示手段の指示に応答し
て各処理を実行するとともに同各処理の実行毎に前記タ
スク要求データメモリに記憶されていて同実行される処
理に対応したタスク要求データを消去する複数のタスク
処理手段とを設け、 前記複数のタスク処理手段のうちの一部のタスク処理手
段は、前記タスク指示手段により指示された処理の一部
を実行した時点で前記タスク要求データの消去を行わな
いで同処理を一旦終了し、前記タスク指示手段による他
の処理の指示にゆだねるようにしたことを特徴とする楽
音制御装置。 - 【請求項2】前記請求項1に記載の楽音制御装置におい
て、 前記複数のタスク処理手段による各処理の実行毎のタス
ク要求データの消去を、前記タスク指示手段による処理
の指示時に同タスク要求データメモリ内の同処理に対応
したタスク要求データを消去することにより行い、 また前記一部のタスク処理手段による処理の一部を実行
した時点で前記タスク要求データの消去を行わないで同
処理を一旦終了することを、同一旦終了時に前記消去し
たタスク要求データを前記タスク要求データメモリに再
度書き込むことにより行うものである楽音制御装置。 - 【請求項3】前記請求項1又は請求項2に記載の楽音制
御装置において、 前記一部のタスク処理手段は、楽音の発生を制御するた
めの複数の演奏操作子 の操作の検出に関する処理であ
り、 かつ同一部のタスク処理手段によって一旦終了される一
部の処理は、1つの演奏操作子の操作の検出に関する処
理である楽音制御装置。 - 【請求項4】前記請求項3に記載の楽音制御装置におい
て、 前記タスク要求データ書き込み手段は、前記一部のタス
ク処理手段によって実行される処理に対するタスク要求
データの前記タスク要求データメモリへの書き込み頻度
を、他のタスク処理手段によって実行される処理に対す
るタスク要求データの前記タスク要求データメモリへの
書き込み頻度よりも高くした楽音制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4047087A JP2936872B2 (ja) | 1992-03-04 | 1992-03-04 | 楽音制御装置 |
US08/025,698 US5481067A (en) | 1992-03-04 | 1993-03-03 | Electronic musical instrument under control of multiple task requirement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4047087A JP2936872B2 (ja) | 1992-03-04 | 1992-03-04 | 楽音制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05249956A JPH05249956A (ja) | 1993-09-28 |
JP2936872B2 true JP2936872B2 (ja) | 1999-08-23 |
Family
ID=12765401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4047087A Expired - Fee Related JP2936872B2 (ja) | 1992-03-04 | 1992-03-04 | 楽音制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5481067A (ja) |
JP (1) | JP2936872B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3095596B2 (ja) * | 1993-10-29 | 2000-10-03 | ヤマハ株式会社 | 電子楽器 |
JP3267106B2 (ja) * | 1995-07-05 | 2002-03-18 | ヤマハ株式会社 | 楽音波形生成方法 |
JP4720893B2 (ja) * | 2008-10-14 | 2011-07-13 | ヤマハ株式会社 | カラオケ装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5040448A (en) * | 1987-10-14 | 1991-08-20 | Casio Computer Co., Ltd. | Electronic musical instrument with user-programmable tone generator modules |
JPH0743591B2 (ja) * | 1988-03-08 | 1995-05-15 | ヤマハ株式会社 | 楽音発生制御装置 |
JPH04499A (ja) * | 1990-04-13 | 1992-01-06 | Roland Corp | 電子楽器 |
US5340938A (en) * | 1990-04-23 | 1994-08-23 | Casio Computer Co., Ltd. | Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels |
US5280129A (en) * | 1990-08-06 | 1994-01-18 | Roland Corporation | Assigning device which assigns new musical tones to tone-generating channels based upon a successive strike relation among the channels |
JP2896716B2 (ja) * | 1991-03-01 | 1999-05-31 | ヤマハ株式会社 | 自動演奏装置 |
-
1992
- 1992-03-04 JP JP4047087A patent/JP2936872B2/ja not_active Expired - Fee Related
-
1993
- 1993-03-03 US US08/025,698 patent/US5481067A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH05249956A (ja) | 1993-09-28 |
US5481067A (en) | 1996-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3637578B2 (ja) | 楽音生成方法 | |
KR920001424A (ko) | 악음 파형 발생장치 | |
JPH09325778A (ja) | 楽音発生方法 | |
JP2936872B2 (ja) | 楽音制御装置 | |
JPH08202361A (ja) | 電子楽器 | |
JPS5943758B2 (ja) | 電子楽器用アサイナ | |
JP3661556B2 (ja) | 楽音信号処理装置 | |
JPH04198994A (ja) | 電子楽器の楽音制御方法 | |
JP2773638B2 (ja) | 自動演奏装置 | |
JPS5929296A (ja) | 電子楽器のパラメ−タ設定装置 | |
JP3799711B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP3252177B2 (ja) | 電子楽器 | |
US11042380B2 (en) | Apparatus, method and computer program for processing instruction | |
JP2640267B2 (ja) | 電子楽器 | |
JP2574964B2 (ja) | 自動演奏装置 | |
JPH11126069A (ja) | 楽音生成方法 | |
JP3539480B2 (ja) | 楽音信号発生装置、楽音信号発生方法及び楽音信号を発生させるプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3050779B2 (ja) | 信号処理装置 | |
JP3278857B2 (ja) | 楽音形成装置 | |
JP3034398B2 (ja) | 電子楽器の制御装置 | |
JP2751386B2 (ja) | 電子楽器における楽音パラメータ編集方式 | |
JPH0127439B2 (ja) | ||
JPH0944160A (ja) | 楽音生成方法 | |
JP3627557B2 (ja) | 楽音発生装置及び方法 | |
JPH0128397B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080611 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |