(57)【特許請求の範囲】
【請求項１】
表示変更の情報を記憶する第１のエリア及び第２のエリアと、現在の表示状態を表わす情報を記憶する第３のエリアとを有する記憶手段と、
前記表示変更の情報が発生したときは前記第２のエリアに記憶されている前回の表示変更の情報を前記第１のエリアに転送して記憶し、当該転送の後に今回の表示変更の情報を前記第２のエリアに記憶する記憶制御手段と、
一定の周期ごとに前記第１のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定するとともに、変更されていない場合は、前記第２のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定する情報判定手段と、
前記情報判定手段により前記第１のエリアに記憶されている情報が変更されていると判定された場合は当該第１のエリアに記憶されている情報に応じて表示内容を変更するとともに、前記第２のエリアに記憶されている情報が変更されていると判定された場合は当該第２のエリアに記憶されている情報に応じて表示内容を変更する表示変更制御手段と、
前記表示変更制御手段により第１のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第1のエリアに記憶されている情報を前記第３のエリアに転送して記憶し、第２のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第２のエリアに記憶されている情報を前記第３のエリアに転送して記憶するとともに、この後前記第２のエリアに記憶されている情報を前記第１のエリアに転送して記憶する情報転送手段と、
を備えたことを特徴とする表示制御装置。
【請求項２】
前記記憶制御手段は、表示をオン状態にする表示変更の情報が発生したときに当該表示がすでにオン状態である場合には、前記第１のエリアに当該表示をオフ状態にする表示変更の情報を記憶することを特徴とする請求項１に記載の表示制御装置。
【請求項３】
表示変更の情報を記憶する第１のエリア及び第２のエリアと、現在の表示状態を表わす情報を記憶する第３のエリアとを有する記憶手段を検索して表示制御処理を行うコンピュータに、
前記表示変更の情報が発生したときは前記第２のエリアに記憶されている前回の表示変更の情報を前記第１のエリアに転送して記憶し、当該転送の後に今回の表示変更の情報を前記第２のエリアに記憶する記憶制御手順と、
一定の周期ごとに前記第１のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定するとともに、変更されていない場合は、前記第２のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定する情報判定手順と、
前記情報判定手順により前記第１のエリアに記憶されている情報が変更されていると判定された場合は当該第１のエリアに記憶されている情報に応じて表示内容を変更するとともに、前記第２のエリアに記憶されている情報が変更されていると判定された場合は当該第２のエリアに記憶されている情報に応じて表示内容を変更する表示変更制御手順と、
前記表示変更制御手順により第１のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第1のエリアに記憶されている情報を前記第３のエリアに転送して記憶し、第２のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第２のエリアに記憶されている情報を前記第３のエリアに転送して記憶するとともに、この後前記第２のエリアに記憶されている情報を前記第１のエリアに転送して記憶する情報転送手順と、
を実行させる表示変更処理のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、表示制御装置及表示制御処理のプログラムを記憶した記憶媒体に関する。
【０００２】
【従来の技術】
例えば、電子楽器のようにコンピュータの制御プログラムによって楽音を発生する装置においては、楽音発生処理とともに楽音発生に関する情報を表示する処理やその他の処理も行っている。すなわち、発生する楽音の音色、音量、発音数等の状態が変更された場合には、その変更に応じて現在表示している情報を新たな情報に変更する表示変更を行う。
このような電子楽器においては、音切れや雑音発生を極力回避しなければならないので、連続してあるいは同時に発生する種々のイベントの中で、発音のイベントを最優先に処理する必要がある。このため、表示変更処理については、発生する表示変更のイベントに即時応答して処理を行わず、フラグやレジスタ等にイベントの内容を一時的に保存して、一定時間ごとにそのフラグやレジスタの内容を周期的に読み出して、その内容に対応する処理を実行している。
【０００３】
【発明が解決しようとする課題】
しかしながら上記従来の技術においては、イベントに即時応答して表示変更処理を行わないため、下記のような課題を抱えていた。
第１の課題は、表示変更の情報を記憶するフラグの内容を読み出す１周期の間において、複数の表示変更があった場合には、その表示変更を認識できないことである。例えば、図１９に示すように、現在オフ状態の表示項目に対して、オン状態に変更するイベントが発生した後、周期Ｔごとに変更状態フラグを読み出す読出タイミングの前に、再びその表示項目をオフ状態に変更するイベントが発生した場合には、前回の読出タイミングと今回の読出タイミングとでフラグの内容がともにオフ状態であるので、表示内容（現在表示状態フラグ）は変更されない。
【０００４】
第２の課題は、表示変更の情報を記憶するフラグの内容を読み出す１周期の間において、現在の表示状態と同じ表示状態のイベントがあった場合には、その表示変更を認識できないことである。例えば、図２０に示すように、現在オン状態の表示項目に対して、さらにオン状態のイベントが発生した場合には、変更状態フラグ自体が後のオン状態のイベントを受け付けないので、表示内容（現在表示状態フラグ）は変更されない。このような状況としては、例えば、鍵盤装置又はＭＩＤＩインターフェースから入力された発音情報のイベントに対応して音符が表示されている場合に、この音符と同じ発音情報のイベントが次に入力される場合がある。このような場合に、後のオン状態のイベントが無視されて、表示に反映されないという不具合がある。
【０００５】
本発明は、上記第１の課題を解決するものであり、表示変更の情報を記憶するフラグの内容を読み出す１周期の間において、複数の表示変更があった場合でも、その表示変更を認識できるようにすることである。
また、本発明は、上記第２の課題を解決するものであり、表示変更の情報を記憶するフラグの内容を読み出す１周期の間において、現在の表示状態と同じ表示状態のイベントがあった場合でも、その表示変更を認識できるようにすることである。
【０００６】
【課題を解決するための手段】
上記第１の課題を解決するために、請求項１に記載の表示制御装置は、表示変更の情報を記憶する第１のエリア及び第２のエリアと、現在の表示状態を表わす情報を記憶する第３のエリアとを有する記憶手段と、前記表示変更の情報が発生したときは前記第２のエリアに記憶されている前回の表示変更の情報を前記第１のエリアに転送して記憶し、当該転送の後に今回の表示変更の情報を前記第２のエリアに記憶する記憶制御手段と、一定の周期ごとに前記第１のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定するとともに、変更されていない場合は、前記第２のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定する情報判定手段と、前記情報判定手段により前記第１のエリアに記憶されている情報が変更されていると判定された場合は当該第１のエリアに記憶されている情報に応じて表示内容を変更するとともに、前記第２のエリアに記憶されている情報が変更されていると判定された場合は当該第２のエリアに記憶されている情報に応じて表示内容を変更する表示変更制御手段と、前記表示変更制御手段により第１のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第1のエリアに記憶されている情報を前記第３のエリアに転送して記憶し、第２のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第２のエリアに記憶されている情報を前記第３のエリアに転送して記憶するとともに、この後前記第２のエリアに記憶されている情報を前記第１のエリアに転送して記憶する情報転送手段と、を備えた構成になっている。
【０００８】
また、請求項１の構成において、請求項２に記載の表示制御装置のように、前記記憶制御手段は、表示をオン状態にする表示変更の情報が発生したときに当該表示がすでにオン状態である場合には、前記第１のエリアに当該表示をオフ状態にする表示変更の情報を記憶する。
【０００９】
請求項３に記載の記憶媒体は、表示変更の情報を記憶する第１のエリア及び第２のエリアと、現在の表示状態を表わす情報を記憶する第３のエリアとを有する記憶手段を検索して表示制御処理を行うコンピュータに、前記表示変更の情報が発生したときは前記第２のエリアに記憶されている前回の表示変更の情報を前記第１のエリアに転送して記憶し、当該転送の後に今回の表示変更の情報を前記第２のエリアに記憶する記憶制御手順と、一定の周期ごとに前記第１のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定するとともに、変更されていない場合は、前記第２のエリアに記憶されている情報が前記第３のエリアに記憶されている情報と比較して変更されているか否かを判定する情報判定手順と、前記情報判定手順により前記第１のエリアに記憶されている情報が変更されていると判定された場合は当該第１のエリアに記憶されている情報に応じて表示内容を変更するとともに、前記第２のエリアに記憶されている情報が変更されていると判定された場合は当該第２のエリアに記憶されている情報に応じて表示内容を変更する表示変更制御手順と、前記表示変更制御手順により第１のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第1のエリアに記憶されている情報を前記第３のエリアに転送して記憶し、第２のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第２のエリアに記憶されている情報を前記第３のエリアに転送して記憶するとともに、この後前記第２のエリアに記憶されている情報を前記第１のエリアに転送して記憶する情報転送手順と、を実行させる表示変更処理のプログラムを記憶している。
【００１０】
請求項１又は請求項３に記載の表示制御装置によれば、表示変更の情報が発生したときは第２のエリアに記憶されている前回の表示変更の情報を第１のエリアに転送して記憶した後に、第２のエリアに発生した表示変更の情報を記憶することで、表示変更の情報の履歴と新たな表示変更の情報を２段構成で記憶する。そして、一定の周期ごとに第１のエリアに記憶されている情報が第３のエリアに記憶されている情報と比較して変更されているか否かを判定するとともに、変更されていない場合は、前記第２のエリアに記憶されている情報が第３のエリアに記憶されている情報と比較して変更されているか否かを判定し、第１のエリアに記憶されている情報が変更されていると判定された場合は当該第１のエリアに記憶されている情報に応じて表示内容を変更するとともに、第２のエリアに記憶されている情報が変更されていると判定された場合は当該第２のエリアに記憶されている情報に応じて表示内容を変更する。そして第１のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第1のエリアに記憶されている情報を第３のエリアに転送して記憶し、第２のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第２のエリアに記憶されている情報を前記第３のエリアに転送して記憶する。この後第２のエリアに記憶されている情報を第１のエリアに転送して記憶する。
【００１１】
【発明の実施の形態】
以下、本発明の表示制御装置の第１実施形態ないし第４実施形態について電子楽器を例に採って、図を参照しながら詳細に説明する。図１は、各実施形態における電子楽器のシステムを示すブロック図である。図において、ＣＰＵ１は、システムバス１１を介して下記に記述する各部との間で、コマンドやデータの授受を行ってこのシステムを制御する。システムバス１１には、システムＲＯＭ２、システムＲＡＭ３、音源装置４、鍵盤操作検出回路６、スイッチ検出回路７、表示回路８、ＭＩＤＩインターフェース９、及びＦＤＤ（フロッピー（登録商標）ディスクドライバ）が接続されている。
【００１２】
システムＲＯＭ２には、音源制御プログラム２ａ、音色データ２ｂ、シーケンサ制御プログラム２ｃ、表示制御プログラム２ｄ及びその他の制御プログラムやデータが格納されている。
システムＲＡＭ３はＣＰＵ１のワークエリアであり、ＣＰＵ１によって処理されるデータ、すなわち、音源制御データ３ａ、シーケンサ制御データ３ｂ、表示制御データ３ｃ及びその他のデータが一時的に記憶される。
音源装置４はサウンドシステム５に接続され、ＣＰＵ１の音源処理によって、楽音信号を生成して、Ａ／Ｄ変換回路、フィルタ、アンプ、スピーカ等（いずれも図示せず）からなるサウンドシステム５に供給して発音させる。
【００１３】
鍵盤操作検出回路６は鍵盤装置６Ａに接続され、ＣＰＵ１の鍵盤処理に応じて、各鍵の押鍵状態及び離鍵状態を検出してＣＰＵ１に入力する。
スイッチ操作検出回路７は複数のスイッチ７Ａに接続され、ＣＰＵ１のスイッチ処理に応じて各スイッチのオン・オフ状態を検出してＣＰＵ１に入力する。
表示回路８はＬＣＤ等の表示装置８Ａに接続され、ＣＰＵ１の表示処理に応じて供給される表示データを表示装置８Ａに出力して表示させる。
ＭＩＤＩインターフェース９は、専用線によって外部のＭＩＤＩ装置と接続され、ＣＰＵ１のＭＩＤＩ処理によってＭＩＤＩ形式の曲データを外部のＭＩＤＩ装置との間で送受信する。
ＦＤＤ１０は、ＣＰＵ１のＦＤＤ処理によって、装着されたフロッピーディスクから曲のシーケンスデータを読み出す。
【００１４】
次に、図１の電子楽器の動作について、ＣＰＵ１のフローチャート等を参照して説明する。図２は各実施形態に共通のメインフローである。このフローでは、所定のイニシャライズ処理（ステップＡ１）の後、以下のループ処理、すなわち、スイッチ処理（ステップＡ２）、鍵盤処理（ステップＡ３）、ＭＩＤＩ処理（ステップＡ４）、ＦＤＤ処理（ステップＡ５）、音源処理（ステップＡ６）、表示処理（ステップＡ７）、及びその他の処理（ステップＡ８）を繰り返し実行する。
【００１５】
図３は、メインフローの実行中におけるインタラプト処理であり、タイマインタラプトでは、タイマインタラプトが発生すると、レジスタＴＩＭＥの値をデクリメントして（ステップＢ１）、メインフローに戻る。イベントインタラプトでは、項目Ｎについてのイベントインタラプトが発生すると、項目Ｎに対応した表示変更のイベント処理を実行して（ステップＢ２）、メインフローに戻る。
【００１６】
図４は、メインフローにおけるステップＡ７の表示処理のフローであり、各実施形態に共通のものである。このフローでは、タイマインタラプトによってデクリメントされるＴＩＭＥの値が「０」に達したか否かを判別する（ステップＣ１）。この値が「０」に達していなければメインフローに戻るが、「０」に達したときは、表示変更周期処理を実行する（ステップＣ２）。そして、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットして（ステップＣ３）、メインフローに戻る。
【００１７】
次に第１実施形態について説明する。
図５は、ＣＰＵ１の内部メモリ又はシステムＲＡＭ３に設けられた表示制御データの記憶エリアであり、表示状態を記憶する３種類のフラグ（記憶エリア）を示している。すなわち、現在の表示状態を示す現在表示状態フラグ、並びに本発明の特徴である１次変更状態フラグ及び２次変更状態フラグである。各フラグは表示項目数に対応して複数系統設けられている。
【００１８】
図６は、図３のイベントインタラプト処理における表示変更のイベント処理のフローである。このフローでは、項目Ｎに対応する２次変更状態フラグの内容を項目Ｎに対応する１次変更状態フラグへコピーする（ステップＤ１）。次に、項目Ｎに対応する２次変更状態フラグを指定の状態すなわち発生イベントの状態（オン又はオフ）にセットする（ステップＤ２）。そして、メインフローに戻る。
【００１９】
図７は、図４におけるステップＣ２の表示変更周期処理のフローである。まず、項目Ｎに対する現在表示状態フラグと１次変更状態フラグの変更を検出する（ステップＥ１）。そして、変更があるか否かを判別する（ステップＥ２）。すなわち、現在表示状態フラグと１次変更状態フラグの内容が異なっているか否かを判別する。変更がある場合には、項目Ｎに対応する１次変更状態フラグの内容に応じて表示を変更する（ステップＥ３）。
次に、項目Ｎに対応する１次変更状態フラグの内容を、項目Ｎに対応する現在表示状態フラグへコピーする（ステップＥ４）。また、項目Ｎに対応する２次変更状態フラグの内容を項目Ｎに対応する１次変更状態フラグへコピーする（ステップＥ５）。そして、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００２０】
図７のステップＥ２において変更がない場合には、項目Ｎに対する現在表示状態フラグと２次変更状態フラグの変更を検出する（ステップＥ６）。そして、変更があるか否かを判別する（ステップＥ７）。すなわち、現在表示状態フラグと２次変更状態フラグの内容が異なっているか否かを判別する。変更がない場合には、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットするが、変更がある場合には、項目Ｎに対応する２次変更状態フラグの内容に応じて表示を変更する（ステップＥ８）。
次に、項目Ｎに対応する２次変更状態フラグの内容を、項目Ｎに対応する現在表示状態フラグへコピーする（ステップＥ９）。また、項目Ｎに対応する２次変更状態フラグの内容を項目Ｎに対応する１次変更状態フラグへコピーする（ステップＥ５）。そして、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００２１】
図８は、同じ表示変更周期Ｔ内において、項目Ｎについての表示をオン（指定「１」）にするイベントが発生し、その後にその表示をオフ（指定「０」）にするイベントが発生した場合の、各フラグの状態を表している。
表示をオンにするイベントが発生すると、図６のステップＤ１において、２次変更状態フラグの内容（この場合は「０」）を１次変更状態フラグへコピーする。この場合は１次変更状態フラグの内容はもともと「０」であるので、１次変更状態フラグの内容は変更されず「０」の状態を維持する。次に、図６のステップＤ２において、２次変更状態フラグの内容「０」を指定の状態「１」にセットする。したがって、表示をオンにするイベントが発生すると、２次変更状態フラグの内容が図に示すように、「０」から「１」に変更される。
【００２２】
次に、表示をオフにするイベントが発生すると、図６のステップＤ１において、２次変更状態フラグの内容「１」を１次変更状態フラグへコピーする。この場合は１次変更状態フラグの内容は「０」であるので、１次変更状態フラグの内容は「０」から「１」に変更される。次に、図６のステップＤ２において、２次変更状態フラグの内容「１」を指定の状態「０」にセットする。したがって、表示をオフにするイベントが発生すると、２次変更状態フラグの内容が図に示すように、「１」から「０」に変更される。
【００２３】
そして、図３のタイマインタラプト処理によって、ＴＩＭＥの値であるＴが「０」に達すると、図７の表示変更周期処理のステップＥ１に移行して、現在状態フラグと１次変更状態フラグの変更を検出する。この場合には、現在表示状態フラグは「０」であり１次変更状態フラグは「１」であるので、ステップＥ２で変更ありと判別され、ステップＥ３に移行して、１次変更状態フラグの内容「１」に表示を変更する。すなわち、表示をオフからオンに変更する。次に、ステップＥ４において、１次変更状態フラグの内容「１」を現在表示状態フラグにコピーし、ステップＥ５において２次変更状態フラグの内容「０」を、１次変更状態フラグにコピーする。したがって、図に示すように、現在表示状態フラグは「０」から「１」に変更され、１次変更状態フラグは「１」から「０」に変更される。
【００２４】
そして、次の表示変更周期Ｔが終了すると、再び図７の表示変更周期処理のステップＥ１に移行して、現在表示状態フラグと１次変更状態フラグの変更を検出する。この場合には、現在表示状態フラグは「１」であり１次変更状態フラグは「０」であるので、ステップＥ２で変更ありと判別され、ステップＥ３に移行して、１次変更状態フラグの内容「０」に表示を変更する。すなわち、表示をオンからオフに変更する。次に、ステップＥ４において、１次変更状態フラグの内容「０」を現在表示状態フラグにコピーし、ステップＥ５において２次変更状態フラグの内容「０」を、１次変更状態フラグにコピーする。この場合は１次変更状態フラグの内容は「０」であるので、１次変更状態フラグの内容は変更されず「０」の状態を維持する。したがって、図に示すように、現在表示状態フラグは「１」から「０」に変更される。
【００２５】
このように、上記第１実施形態によれば、表示変更のイベント（情報）が発生したときは２次変更状態フラグ（第２のエリア）に記憶されている前回の表示変更のイベントを１次変更状態フラグ（第１のエリア）に転送して記憶した後に、２次変更状態フラグに発生した表示変更のイベントを記憶することで、表示変更のイベントの履歴と新たな表示変更のイベントを２段構成で記憶する。そして、一定の周期ごとに１次変更状態フラグに記憶されているイベントを検索し、その検索結果に応じて２次変更状態フラグに記憶されているイベントを検索し、１次変更状態フラグ又は２次変更状態フラグに記憶されている情報の検索結果に応じて表示内容を変更する。
したがって、フラグの内容を読み出す１周期の間において、複数の表示変更のイベントが発生した場合でも、その表示変更を認識して表示変更の発生イベントを表示に反映することができる。
【００２６】
またこの場合において、情報転送手段であるＣＰＵ１は、表示内容を変更した場合には、２次変更状態フラグに記憶されている今回の表示変更の情報を１次変更状態フラグに転送して記憶するようにしたので、表示をオンにするイベントが発生した後に、その表示変更周期内において再び表示をオフにするイベントが発生した場合でも、後に発生したイベントを表示に反映することができる。
【００２７】
次に、第２実施形態について説明する。
図９は、鍵盤装置６Ａ又はＭＩＤＩインターフェース９から入力された発音情報のイベントに対して表示された音符を示している。この音符と同じ発音情報のイベントが次に入力される場合があるが、この第２実施形態は、このようなイベント発生に対応するものである。
【００２８】
図１０は、図３のイベントインタラプト処理の項目Ｎに対応する表示変更イベント発生処理のフローである。このフローでは、発生したイベントが表示をオンに変更するイベントであるか否かを判別する（ステップＦ１）。発生イベントが表示をオフにするイベントである場合には、第１実施形態の場合と同様に、項目Ｎに対応した２次変更状態フラグの内容を項目Ｎに対応する１次変更状態フラグへコピーする（ステップＦ２）。次に、項目Ｎに対応する２次変更状態フラグを指定の状態すなわち発生イベントの状態（オン又はオフ）にセットする（ステップＦ３）。そして、メインフローに戻る。
【００２９】
ステップＦ１において、発生したイベントが表示をオンに変更するイベントである場合には、項目Ｎに対応する１次変更状態フラグをオフすなわち「０」にセットする（ステップＦ４）。次に、項目Ｎに対応する２次変更状態フラグを指定の状態すなわち発生イベントの状態（オン又はオフ）にセットする（ステップＦ３）。そして、メインフローに戻る。
この第２実施形態における表示変更周期処理は、図７に示した第１実施形態と同じフローである。
【００３０】
図１１は、項目Ｎに対応する現在表示状態フラグが既にオン状態「１」である場合に、さらに同じ項目Ｎについて表示をオンにするイベントが発生した場合の、各フラグの状態を表している。表示をオンにするイベントが発生すると、図１０のステップＦ１からステップＦ４に移行して、１次変更状態フラグを「０」にセットする。また、ステップＦ３において、２次変更状態フラグを指定の状態「１」にセットする。したがって、図１１に示すように、１次変更状態フラグは「１」から「０」に変更され、２次変更フラグは「１」の状態をそのまま維持する。
【００３１】
次に、図３のタイマインタラプト処理によって、ＴＩＭＥの値であるＴが「０」に達すると、図７の表示変更周期処理のステップＥ１に移行して、現在状態フラグと１次変更状態フラグの変更を検出する。この場合には、現在表示状態フラグは「１」であり１次変更状態フラグは「０」であるので、ステップＥ２で変更ありと判別され、ステップＥ３に移行して、１次変更状態フラグの内容「０」に表示を変更する。すなわち、表示をオンからオフに変更する。次に、ステップＥ４において、１次変更状態フラグの内容「０」を現在表示状態フラグにコピーし、ステップＥ５において２次変更状態フラグの内容「１」を、１次変更状態フラグにコピーする。したがって、図に示すように、現在表示状態フラグは「１」から「０」に変更され、１次変更状態フラグは「０」から「１」に変更される。
【００３２】
そして、次の表示変更周期Ｔが終了すると、再び図７の表示変更周期処理のステップＥ１に移行して、１次変更状態フラグと１次変更状態フラグの変更を検出する。この場合には、現在表示状態フラグは「０」であり１次変更状態フラグは「１」であるので、ステップＥ２で変更ありと判別され、ステップＥ３に移行して、１次変更状態フラグの内容「１」に表示を変更する。すなわち、表示をオフからオンに変更する。次に、ステップＥ４において、１次変更状態フラグの内容「１」を現在表示状態フラグにコピーし、ステップＥ５において２次変更状態フラグの内容「１」を、１次変更状態フラグにコピーする。この場合は１次変更状態フラグの内容は「１」であるので、１次変更状態フラグの内容は変更されず「１」の状態を維持する。したがって、図に示すように、現在表示状態フラグは「０」から「１」に変更される。
【００３３】
このように、上記第２実施形態によれば、情報転送手段であるＣＰＵ１は、表示をオン状態にする表示変更のイベント（情報）が発生したときに、その表示がすでにオン状態である場合には、１次変更状態フラグに表示をオフ状態にする表示変更のイベントを記憶する。そして、一定の周期ごとに１次変更状態フラグに記憶されているイベントを検索し、その検索結果に応じて２次変更状態フラグに記憶されているイベントを検索し、１次変更状態フラグ又は２次変更状態フラグに記憶されている情報の検索結果に応じて表示内容を変更する。
したがって、フラグの内容を読み出す１周期の間において、表示がすでにオン状態になっている場合に、さらにオン状態にするイベントが発生したときでも、そのイベントを認識して表示変更の発生イベントを表示に反映することができる。
【００３４】
次に、第３実施形態について説明する。
図１２は、鍵盤装置６Ａ又はＭＩＤＩインターフェース９から入力された複数のチャンネルにおける発音情報の音量のイベントを示すレベル表示である。この第３実施形態では、発音開始時のベロシティ（音量：この場合、レベル０〜４）情報を表示し、表示変更周期処理で一律に減算処理をすることにより、擬似的に音量情報の表示を行う。
【００３５】
図１３は、システムＲＡＭ３の表示制御データ３ｃを示している。チャンネル数に対応した音量減衰情報レジスタは、チャンネル毎の音量減衰情報がセットされる。表示項目数に対応する現在表示状態レジスタには、現在表示されている音量レベルがセットされる。１次変更状態レジスタ及び２次変更状態レジスタには、変更された音量レベルがセットされる。
【００３６】
図１４は、図３のイベントインタラプト処理の項目Ｎに対応する表示変更イベント発生処理のフローである。この場合は、自然減衰量を１／４すなわち表示変更周期４回（４Ｔ）に「１」レベル減算し、消音減衰量を１／１すなわち表示変更周期１回（１Ｔ）に「１」レベル減算するように設定する。まず、音量の「０」レベルの指定があるか否かを判別し（ステップＧ１）、「０」レベルの指定がない場合には、項目Ｎに対応する１次変更状態レジスタを発生イベントの指定のレベル（０〜４）にセットする（ステップＧ２）。次に、項目Ｎに対応する２次変更状態レジスタを「０」レベルにセットする（ステップＧ３）。次に、チャンネルＭに対応する音量減衰情報レジスタの内容を音色に対応する自然減衰量にセットする（ステップＧ４）。また、減算処理の周期数を示すポインタｔを「４」にセットする（ステップＧ５）。そして、メインフローに戻る。
一方、ステップＧ１において「０」レベルの指定がある場合には、チャンネルＭに対応する音量減衰情報レジスタの内容を消音減衰量にセットする（ステップＧ６）。また、減算処理の周期数を示すポインタｔを「１」にセットする（ステップＧ７）。そして、メインフローに戻る。
【００３７】
図１５は、図４におけるステップＣ２の表示変更周期処理のフローである。まず、項目Ｎに対応する現在表示状態レジスタと、１次変更状態レジスタとの変更を検出する（ステップＨ１）。そして、変更があるか否かを判別する（ステップＨ２）。すなわち、１次変更状態レジスタにセットされているレベルが現在表示状態レジスタのレベルと異なっているか否かを判別する。変更がない場合には、項目Ｎに対応する現在表示状態レジスタと、２次変更状態レジスタとの変更を検出する（ステップＨ３）。そして、変更があるか否かを判別する（ステップＨ４）。変更がない場合には、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００３８】
図１５のステップＨ２において、変更がある場合には、１次変更状態レジスタにセットされているレベルが「０」レベルであるか否かを判別する（ステップＨ５）。「０」レベルでない場合には、１次変更状態レジスタのレベルに表示を変更する（ステップＨ６）。次に、現在表示状態レジスタに表示変更したレベルをセットする（ステップＨ７）。次に、２次変更状態レジスタのレベルを１次変更状態レジスタにコピーする（ステップＨ８）。そして、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００３９】
ステップＨ４において変更がある場合、すなわち２次変更状態レジスタにセットされているレベルが現在表示状態レジスタのレベルと異なっている場合には、２次変更状態レジスタにセットされているレベルが「０」レベルであるか否かを判別する（ステップＨ９）。「０」レベルでない場合には、２次変更状態レジスタのレベルに表示を変更する（ステップＨ１０）。次に、現在表示状態レジスタに表示変更したレベルをセットする（ステップＨ７）。次に、２次変更状態レジスタのレベルを１次変更状態レジスタにコピーする（ステップＨ８）。そして、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００４０】
ステップＨ５において１次変更状態レジスタの内容がレベル「０」である場合、又はステップＨ９において２次変更状態レジスタの内容がレベル「０」である場合には、ポインタｔが「０」であるか否かを判別する（ステップＨ１１）。すなわち、現在の周期が減算周期であるか否かを判別する。ｔが「１」以上である場合には減算周期ではないので、ｔの値をデクリメントして（ステップＨ１２）、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００４１】
ステップＨ１１において、ポインタｔが「０」である場合には、現在表示状態レジスタからチャンネルＭに対応する音量減衰情報レジスタの消音減衰量を減算したレベルに表示を変更する（ステップＨ１３）。そして、ｔの値を設定値「４」にセットする（ステップＨ１４）。次に、現在表示状態レジスタに表示変更したレベルをセットする（ステップＨ７）。次に、２次変更状態レジスタのレベルを１次変更状態レジスタにコピーする（ステップＨ８）。そして、図４のフローに戻り、ＴＩＭＥに次の変更周期処理までの時間Ｔをセットする。
【００４２】
図１６は、音量をレベル「４」にするイベントが発生した後、１２周期目と１３周期目との間で音量をレベル「０」にするイベントが発生したときの、各状態レジスタの内容を示している。
音量をレベル「４」にするイベントが発生すると、図１４のステップＧ１において「０」レベルの指定ではないと判別され、ステップＧ２において１次変更状態レジスタを指定のレベル「４」にセットする。次に、ステップＧ３において２次変更状態レジスタをレベル「０」にセットする。そして、ステップＧ４においてチャンネルＭに対応する音量減衰情報を音色に対応する自然減衰量をセットする。この場合の減衰量はレベル「１」である。次に、ステップＧ５において減算周期のポインタｔを「４」にセットする。
したがって、図１６に示すように、１次変更状態レジスタはレベル「０」からレベル「４」に変更され、２次変更状態レジスタはもともとのレベル「０」をそのまま維持する。
【００４３】
そして、図３のタイマインタラプト処理によって、ＴＩＭＥの値であるＴが「０」に達すると、図１５のステップＨ１において、現在表示状態レジスタの内容と１次変更状態レジスタの内容の変更を検出する。そして、ステップＨ２において、変更があるか否かを判別する。この場合は変更があるので、ステップＨ５に移行して１次変更状態レジスタの内容がレベル「０」であるか否かを判別する。１次変更状態レジスタの内容はレベル「４」であるので、ステップＨ９に移行して１次変更状態レジスタのレベル「４」に表示を変更する。
【００４４】
次に、ステップＨ７において、現在表示状態レジスタに表示変更したレベル「４」をセットする。また、ステップＨ８において、２次変更状態レジスタのレベル「０」を１次変更状態レジスタにコピーする。
したがって、図１６に示すように、最初の表示変更周期が終了したときは、現在表示状態レジスタの内容はレベル「０」からレベル「４」に変更され、１次変更状態レジスタの内容はレベル「４」からレベル「０」に変更される。
【００４５】
次の表示変更周期が終了したときは、現在表示状態レジスタの内容はレベル「４」であり、１次変更状態レジスタの内容はレベル「０」であるので、ステップＨ１、ステップＨ５、ステップＨ１１と移行する。このときｔの値は「４」であるので、ステップＨ１２に移行してこの値を「３」にデクリメントして、この
フローを終了する。
同様に、２番目及び３番目の表示変更周期が終了したときも、１次変更状態レジスタの内容はレベル「０」であるので、ステップＨ１、ステップＨ５、ステップＨ１１と移行する。このときｔの値は「３」、「２」、「１」とデクリメントされているのであるので、ステップＨ１２に移行してこの値を「２」、「１」、「０」にデクリメントして、このフローを終了する。
【００４６】
ところが、４番目の表示変更周期が終了したときは、１次変更状態レジスタの内容はレベル「０」であるので、ステップＨ１、ステップＨ５、ステップＨ１１と移行するが、ステップＨ１１においてｔの値が「０」と判別されるので、ステップＨ１３に移行して、現在表示状態レジスタからチャンネルＭの音量減衰情報であるレベル「１」を減算したレベルに表示を変更する。そして、ステップＨ１４においてｔに再び「４」をセットする。次に、ステップＨ７において、現在変更状態レジスタに表示変更したレベルをセットする。
【００４７】
この結果、図１６に示すように、現在表示状態レジスタの内容がレベル「４」にセットされたときから４周期が終了した時点において、現在表示状態レジスタの内容がレベル「３」に減衰される。
そして同様に、現在表示状態レジスタの内容がレベル「３」にセットされたときから４周期が終了した時点において、現在表示状態レジスタの内容がレベル「２」に減衰され、現在表示状態レジスタの内容がレベル「２」にセットされたときから４周期が終了した時点において、現在表示状態レジスタの内容がレベル「１」に減衰される。
【００４８】
ところが、現在表示状態レジスタの内容がレベル「１」に減衰される表示変更周期の前に、レベル「０」にするイベントが発生しているので、図１４のステップＧ１、ステップＧ６、ステップＧ７へと移行する。そして、ステップＧ７においてポインタｔに「１」がセットされる。
次に、図１５において現在表示状態レジスタの内容をレベル「１」に減衰する表示変更周期の次の表示変更周期においては、ステップＨ１１においてｔの値が「０」であると判別されるので、ステップＨ１３に移行して現在表示状態レジスタの内容であるレベル「１」をレベル「０」に減算する。
したがって、図１６に示すように、レベル「０」にするイベントが発生した後２周期目の表示変更周期においては、現在表示状態レジスタの内容が「０」になる。
このように、上記第３実施形態においては、変更状態レジスタを２段で構成することにより、音量に対する表示と実際の音量変化をより近づけることができる。
【００４９】
次に、第４実施形態について説明する。
この実施形態は、第４実施形態に変形例であり、同一のチャンネルに対して複数の発音処理が同時に行われる場合の表示制御である。この場合には、レベル「０」にするイベントが発音数分発生したときのみ、音量減衰情報を消音減衰量に変更することにより、より実際の音量変化に近づけるようにしている。
【００５０】
図１７は、この第４実施形態における表示制御データの構成を示している。この構成は、図１３に示した第３実施形態の表示制御データの構成にチャンネル発音数のレジスタが追加されたものである。
図１８は、表示変更イベント発生処理のフローである。まず、音量の「０」レベルの指定があるか否かを判別し（ステップＪ１）、「０」レベルの指定がない場合には、チャンネルＭに対応する発音数を「１」加算する（ステップＪ２）。次に、項目Ｎに対応する１次変更状態レジスタを発生イベントの指定のレベル（０〜４）にセットする（ステップＪ３）。次に、項目Ｎに対応する２次変更状態レジスタを「０」レベルにセットする（ステップＪ４）。次に、チャンネルＭに対応する音量減衰情報レジスタの内容を音色に対応する自然減衰量にセットする（ステップＪ５）。また、減算処理の周期数を示すポインタｔを「４」にセットする（ステップＪ６）。そして、メインフローに戻る。
【００５１】
一方、ステップＪ１において「０」レベルの指定がある場合には、チャンネルＭに対応するチャンネル発音数を「１」減算する（ステップＪ７）。そして、この減算によりチャンネルＭに対応するチャンネル発音数が「０」になったか否かを判別する（ステップＪ８）。チャンネル発音数が「１」以上である場合にはこのメインフローに戻るが、チャンネル発音数が「０」になったときは、音量減衰情報レジスタの内容を消音減衰量にセットする（ステップＪ９）。また、減算処理の周期数を示すポインタｔを「１」にセットする（ステップＪ１０）。そして、メインフローに戻る。
【００５２】
このように、上記第４実施形態においては、変更状態レジスタを２段で構成することにより、同一のチャンネルに対して複数の発音処理が同時に行われる場合でも、音量に対する表示と実際の音量変化をより近づけることができる。
【００５３】
なお、上記各実施形態においては、システムＲＯＭ２にあらかじめ記憶されている表示制御処理のプログラムをＣＰＵ１が実行する構成にしたが、このプログラムを汎用の記憶媒体であるフロッピーディスクに記憶して、図１のＦＤＤ１０によってそのフロッピーディスクを駆動させ、記憶されている表示制御処理のプログラムをＣＰＵ１が読み出して実行する構成にしてもよい。この場合には、記憶媒体の発明を提供する。
【００５４】
また、上記各実施形態においては、電子楽器に適用した表示制御装置及び表示制御処理のプログラムを記憶した記憶媒体について説明したが、本発明の適用可能な範囲は、電子楽器に限定されるものではない、任意に発生する表示変更のイベントに対して周期的に表示を変更する全ての機器において、このような特徴的な２段構成の記憶エリアを有する構成の発明を適用することによって、表示変更のイベントを記憶するフラグの内容を読み出す１周期の間において、複数の表示変更のイベントが発生した場合でも、その表示変更を認識できる。
【００５５】
【発明の効果】
本発明によれば、表示変更の情報が発生したときは第２のエリアに記憶されている前回の表示変更の情報を第１のエリアに転送して記憶した後に、第２のエリアに発生した表示変更の情報を記憶することで、表示変更の情報の履歴と新たな表示変更の情報を２段構成で記憶する。そして、一定の周期ごとに第１のエリアに記憶されている情報が第３のエリアに記憶されている情報と比較して変更されているか否かを判定するとともに、変更されていない場合は、前記第２のエリアに記憶されている情報が第３のエリアに記憶されている情報と比較して変更されているか否かを判定し、第１のエリアに記憶されている情報が変更されていると判定された場合は当該第１のエリアに記憶されている情報に応じて表示内容を変更するとともに、第２のエリアに記憶されている情報が変更されていると判定された場合は当該第２のエリアに記憶されている情報に応じて表示内容を変更する。そして第１のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第1のエリアに記憶されている情報を第３のエリアに転送して記憶し、第２のエリアに記憶されている情報に応じて表示内容を変更された場合は当該第２のエリアに記憶されている情報を前記第３のエリアに転送して記憶する。この後第２のエリアに記憶されている情報を第１のエリアに転送して記憶する。
したがって、表示変更のイベントを記憶するフラグの内容を読み出す１周期の間において、複数の表示変更のイベントが発生した場合でも、その表示変更を認識できる。
【図面の簡単な説明】
【図１】本発明の各実施形態における電子楽器のシステム構成を示すブロック図。
【図２】各実施形態の動作を示すＣＰＵのメインフローチャート。
【図３】各実施形態におけるタイマインタラプト処理及びイベントインタラプト処理のフローチャート。
【図４】図２における表示処理のフローチャート。
【図５】第１及び第２実施形態における表示制御データを示す図。
【図６】第１実施形態における表示変更イベント発生処理のフローチャート。
【図７】第１及び第２実施形態における表示変更周期処理のフローチャート。
【図８】第１実施形態における各フラグの状態を示す図。
【図９】第２実施形態における表示例を示す図。
【図１０】第２実施形態における表示変更イベント発生処理のフローチャート。
【図１１】第２実施形態における各フラグの状態を示す図。
【図１２】第３実施形態における表示例を示す図。
【図１３】第３実施形態における表示制御データを示す図。
【図１４】第３実施形態における表示変更イベント発生処理のフローチャート。
【図１５】第３及び第４実施形態における表示変更周期処理のフローチャート。
【図１６】第３実施形態における各フラグの状態を示す図。
【図１７】第４実施形態における表示制御データを示す図。
【図１８】第４実施形態における表示変更イベント発生処理のフローチャート。
【図１９】第１実施形態に対応する従来例の各フラグの状態を示す図。
【図２０】第２実施形態に対応する従来例の各フラグの状態を示す図。
【符号の説明】
１  ＣＰＵ
２  システムＲＯＭ
３  システムＲＡＭ
４  音源装置
５  サウンドシステム
６  鍵盤操作検出回路
６Ａ  鍵盤装置
７  スイッチ操作検出回路
７Ａ  スイッチ
８  表示回路
８Ａ  表示装置
９  ＭＩＤＩインターフェース
１０  ＦＤＤ
【図１】
0003945122.tif 000002
【図２】
0003945122.tif 000003
【図３】
0003945122.tif 000004
【図４】
0003945122.tif 000005
【図５】
0003945122.tif 000006
【図６】
0003945122.tif 000007
【図７】
0003945122.tif 000008
【図８】
0003945122.tif 000009
【図９】
0003945122.tif 000010
【図１０】
0003945122.tif 000011
【図１１】
0003945122.tif 000012
【図１２】
0003945122.tif 000013
【図１３】
0003945122.tif 000014
【図１４】
0003945122.tif 000015
【図１５】
0003945122.tif 000016
【図１６】
0003945122.tif 000017
【図１７】
0003945122.tif 000018
【図１８】
0003945122.tif 000019
【図１９】
0003945122.tif 000020
【図２０】
0003945122.tif 000021