JP2002132262A - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JP2002132262A
JP2002132262A JP2000322560A JP2000322560A JP2002132262A JP 2002132262 A JP2002132262 A JP 2002132262A JP 2000322560 A JP2000322560 A JP 2000322560A JP 2000322560 A JP2000322560 A JP 2000322560A JP 2002132262 A JP2002132262 A JP 2002132262A
Authority
JP
Japan
Prior art keywords
address
effect
warnings
musical
warning
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
Application number
JP2000322560A
Other languages
English (en)
Inventor
Takeshi Terao
健 寺尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2000322560A priority Critical patent/JP2002132262A/ja
Publication of JP2002132262A publication Critical patent/JP2002132262A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 どの程度エラーが発生し易い状態になってい
るかをユーザに報知でき、しかもCPU負荷率を適正に
保つよう自律的に制御する電子楽器を実現する。 【解決手段】 負荷状況に応じてリングバッファを巡回
歩進する速度が変化する書き込みアドレスWADおよび
警告アドレスKADと、サンプリング周期毎にリングバ
ッファを巡回歩進する読み出しアドレスRADとの関係
をモニタし、読み出しアドレスRADが書き込みアドレ
スWADと警告アドレスKADとの間に入り込む毎に警
告回数を計数し、一定期間中に計数された警告回数を表
示部3に表示したり、その警告回数に応じて発音チャン
ネル数を減らしたり、実行指定されているエフェクトの
種類を減らす他、実行中のノーマルエフェクトを、CP
U4の負荷を軽減するライトエフェクトに変更する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPU負荷増加に
応じてどの程度エラーが発生し易い状態になっているか
をユーザに報知したり、CPU負荷率を適正に保つよう
自律的に制御する電子楽器に関する。
【0002】
【従来の技術】従来より、楽音形成に必要な波形演算プ
ログラムをCPU(あるいはDSP)にロードして実行
させることにより所望の音源方式で楽音波形を発生させ
たり、あるいは生成した楽音波形に所望の効果を付与す
るようにした電子楽器が知られている。このようにソフ
トウェア処理にて楽器機能を具現する電子楽器では、時
分割動作する波形演算プログラムの数が多いほどCPU
(あるいはDSP)の負荷が増大し、1サンプリング周
期以内に楽音波形を算出し終えないと、発音遅れ、音切
れあるいはノイズ発生等のエラーを招致する要因となり
得る。
【0003】その為、従来では、CPU(あるいはDS
P)が生成した楽音波形サンプルを一定時間分貯めてお
く出力バッファを設けておき、CPU(あるいはDS
P)の突発的な負荷増加が生じた場合に、この出力バッ
ファに既に書き込んでおいた楽音波形サンプルを読み出
すことで上述したエラーの発生を回避している。つま
り、具体的には出力バッファの書き込みアドレスWAD
を読み出しアドレスRADより所定サンプリング周期分
先行させ、その先行した所定サンプリング周期分の期間
がマージンとなってCPU(あるいはDSP)の突発的
な負荷増加による処理遅延を吸収するようになってい
る。
【0004】
【発明が解決しようとする課題】ところで、突発的な負
荷増加による処理遅延は、上述したように出力バッファ
の書き込みアドレスWADを読み出しアドレスRADよ
り所定サンプリング周期分先行させて生じるマージンで
吸収できるものの、過負荷が継続する状況、例えば複数
種のエフェクト(効果)を同時付与する場合などには対
処できない。このような場合には、例えば付与するエフ
ェクトの種類を減らす等、時分割動作する波形演算プロ
グラムの数を減らして、実行中にある全ての波形演算プ
ログラムの処理が1サンプリング周期以内に収まるよう
にしなければならない。
【0005】しかしながら、従来の電子楽器では、時分
割動作する波形演算プログラムの数をどの程度削減すれ
ばエラー発生を防げるか、換言すれば、どの程度エラー
が発生し易い状態になっているかを把握することがユー
ザには判らない、という問題がある。また、従来の電子
楽器にあっては、過負荷が継続するような状況におい
て、CPU負荷率を適正に保つよう自律的に制御するこ
とも出来ない、という問題もある。そこで本発明は、こ
のような事情に鑑みてなされたもので、発音遅れ、音切
れあるいはノイズ発生等のエラーを事前に回避する上、
どの程度エラーが発生し易い状態になっているかをユー
ザに報知でき、しかもCPU負荷率を適正に保つよう自
律的に制御することができる電子楽器を提供することを
目的としている。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の発明では、楽音波形を発生する楽
音発生手段と、この楽音発生手段が発生した楽音波形を
所定サンプル数分一時記憶するバッファ手段と、前記バ
ッファ手段を巡回歩進する速度が前記楽音発生手段の負
荷状況に応じて変化する書き込みアドレスおよび警告ア
ドレスと、サンプリング周期毎に前記バッファ手段を巡
回歩進する読み出しアドレスとの関係をモニタし、読み
出しアドレスが書き込みアドレスと警告アドレスとの間
に入り込む毎に警告回数を計数する計数手段と、この計
数手段が一定期間中に計数した警告回数を表示する表示
手段とを具備することを特徴とする。
【0007】請求項2に記載の発明では、楽音波形を発
生する複数の発音チャンネルを備えた楽音発生手段と、
この楽音発生手段が発生した楽音波形を所定サンプル数
分一時記憶するバッファ手段と、前記バッファ手段を巡
回歩進する速度が前記楽音発生手段の負荷状況に応じて
変化する書き込みアドレスおよび警告アドレスと、サン
プリング周期毎に前記バッファ手段を巡回歩進する読み
出しアドレスとの関係をモニタし、読み出しアドレスが
書き込みアドレスと警告アドレスとの間に入り込む毎に
警告回数を計数する計数手段と、この計数手段が一定期
間中に計数した警告回数に応じて、前記楽音発生手段で
稼働する発音チャンネル数を減らす負荷制御手段と、こ
の負荷制御手段によって減らされた発音チャンネル数を
表示する表示手段とを具備することを特徴とする。
【0008】請求項3に記載の発明では、楽音波形を発
生する一方、発生した楽音波形に複数種のエフェクトを
付与する楽音発生手段と、この楽音発生手段が発生した
楽音波形を所定サンプル数分一時記憶するバッファ手段
と、前記バッファ手段を巡回歩進する速度が前記楽音発
生手段の負荷状況に応じて変化する書き込みアドレスお
よび警告アドレスと、サンプリング周期毎に前記バッフ
ァ手段を巡回歩進する読み出しアドレスとの関係をモニ
タし、読み出しアドレスが書き込みアドレスと警告アド
レスとの間に入り込む毎に警告回数を計数する計数手段
と、この計数手段が一定期間中に計数した警告回数に応
じて、前記楽音発生手段で稼働するエフェクト数を減ら
す負荷制御手段と、この負荷制御手段によって減らされ
たエフェクト数を表示する表示手段とを具備することを
特徴とする。
【0009】請求項4に記載の発明では、楽音波形を発
生する一方、発生した楽音波形に第1のエフェクトもし
くは第1のエフェクトより負荷軽減し得る第2のエフェ
クトのいずれかを付与する楽音発生手段と、この楽音発
生手段が発生した楽音波形を所定サンプル数分一時記憶
するバッファ手段と、前記バッファ手段を巡回歩進する
速度が前記楽音発生手段の負荷状況に応じて変化する書
き込みアドレスおよび警告アドレスと、サンプリング周
期毎に前記バッファ手段を巡回歩進する読み出しアドレ
スとの関係をモニタし、読み出しアドレスが書き込みア
ドレスと警告アドレスとの間に入り込む毎に警告回数を
計数する計数手段と、この計数手段が一定期間中に計数
した警告回数に応じて、前記楽音発生手段で複数が稼働
中にある前記第1のエフェクトの内、いずれかを前記第
2のエフェクトに変更する負荷制御手段と、この負荷制
御手段によって変更されたエフェクト種類を表示する表
示手段とを具備することを特徴とする。
【0010】請求項5に記載の発明では、複数の発音チ
ャンネルを備えて楽音波形を発生する一方、発生した楽
音波形に第1のエフェクトを付与したり、第1のエフェ
クトより負荷軽減し得る第2のエフェクトを付与する楽
音発生手段と、この楽音発生手段が発生した楽音波形を
所定サンプル数分一時記憶するバッファ手段と、前記バ
ッファ手段を巡回歩進する速度が前記楽音発生手段の負
荷状況に応じて変化する書き込みアドレスおよび警告ア
ドレスと、サンプリング周期毎に前記バッファ手段を巡
回歩進する読み出しアドレスとの関係をモニタし、読み
出しアドレスが書き込みアドレスと警告アドレスとの間
に入り込む毎に警告回数を計数する計数手段と、この計
数手段が一定期間中に計数した警告回数を表示する表示
手段と、前記計数手段が一定期間中に計数した警告回数
に応じて、前記楽音発生手段で稼働する発音チャンネル
数やエフェクト数を減らす他、稼働中の第1のエフェク
トを第2のエフェクトに変更する負荷軽減策のいずれか
を自律的に実行する負荷制御手段を具備することを特徴
とする。
【0011】本発明では、負荷状況に応じてバッファ手
段を巡回歩進する速度が変化する書き込みアドレスおよ
び警告アドレスと、サンプリング周期毎にバッファ手段
を巡回歩進する読み出しアドレスとの関係をモニタし、
読み出しアドレスが書き込みアドレスと警告アドレスと
の間に入り込む毎に警告回数を計数し、一定期間中に計
数された警告回数を表示したり、一定期間中に計数され
た警告回数に応じて発音チャンネル数やエフェクト数を
減らす他、稼働中の第1のエフェクトを第2のエフェク
トに変更するので、発音遅れ、音切れあるいはノイズ発
生等のエラーを事前に回避する上、どの程度エラーが発
生し易い状態になっているかをユーザに報知でき、しか
も負荷率を適正に保つよう自律的に制御することが可能
になっている。
【0012】
【発明の実施の形態】以下、本発明の実施の一形態によ
る電子楽器を実施例として図面を参照して説明する。 A.第1実施例 (1)構成 図1は、第1実施例による電子楽器の構成を示すブロッ
ク図である。この図において、1は押離鍵操作に応じた
キーオン/キーオフイベント、ノートナンバおよび押鍵
速度(強度)に対応したベロシティ等の演奏情報を発生
する鍵盤である。2は電源スイッチや発生楽音の音色を
指定する音色スイッチの他、エフェクト(効果)を設定
する際に操作される効果設定スイッチあるいはこの効果
設定スイッチのオン操作後に、付与するエフェクトの種
類を指定する効果指定スイッチ等、楽器パネル(不図
示)に配設される各種スイッチを備えるパネルスイッチ
であり、各スイッチ操作に対応した各種スイッチイベン
トを発生する。3はLCDパネルおよびドライバから構
成される表示部であり、後述するCPU4から供給され
る表示制御信号に従って各種の設定値、動作モードある
いは後述する警告回数等を表示する。
【0013】CPU4は、パネルスイッチ2から供給さ
れるスイッチイベントに応じて楽器各部を制御する一
方、音源やエフェクタとして動作する。すなわち、鍵盤
1から供給される演奏情報に応じて生成した楽音パラメ
ータに基づき、後述するRAM6の波形メモリ領域から
読み出した指定音色の波形データを上記楽音パラメータ
に基づき修飾して楽音波形Wを生成すると共に、その生
成した楽音波形Wに設定された種類のエフェクトを付与
してサウンドシテム7に出力する。5はCPU4にロー
ドされる各種の制御プログラムおよび波形処理プログラ
ムを記憶するROMである。なお、ここで言う各種の制
御プログラムおよび波形処理プログラムとは、CPU4
の音源機能やエフェクタ機能を具現するものを指す。
【0014】RAM6はワーク領域、波形メモリ領域お
よびリングバッファ領域とから構成される。ワーク領域
はCPU4の作業領域として用いられ、各種のレジスタ
やフラグデータが一時記憶される。波形メモリ領域に
は、各種音色の波形データが記憶される。リングバッフ
ァ領域は、CPU4の出力バッファとして用いられる領
域であり、当該CPU4が生成した楽音波形Wを一時記
憶する一方、ここから読み出される楽音波形Wを次段の
サウンドシテム7に出力する。サウンドシテム7は、C
PU4から出力される楽音波形WをD/A変換した後、
ノイズ除去を目的としたフィルタリングを施してスピー
カSPから放音する。
【0015】(2)動作 次に、図2〜図13を参照して上記構成による第1実施
例の動作について説明する。以下では、最初に動作概要
としてメインルーチンの動作について述べた後、このメ
インルーチンからコールされる各種処理の詳細を順番に
説明する。 (a)メインルーチンの動作 上記構成による第1実施例に電源が投入されると、CP
U4は図2に示すメインルーチンを実行し、ステップS
a1に処理を進め、各種レジスタやフラグデータをゼロ
リセットしたり、初期値セットするイニシャライズ処理
を行う。イニシャライズ処理が完了すると、次のステッ
プSa2に進み、パネルスイッチ2が発生するスイッチ
イベントに応じた処理、例えば、効果設定スイッチが操
作された場合には、効果指定スイッチの操作に対応した
種類のエフェクトを付与する。
【0016】次いで、ステップSa3に進むと、CPU
4は鍵盤1の押離鍵操作に応じて発音指示あるいは消音
指示を発生する鍵盤処理を実行する。続いて、ステップ
Sa4では、上記鍵盤処理にて発音指示された楽音波形
を生成すると共に、生成した楽音波形に対し、上記ステ
ップSa2にて設定されたエフェクトを付与する生成処
理を実行する。そして、ステップSa5では、上記ステ
ップSa4の生成処理にて発生する楽音波形(波形サン
プル)を、RAM6に設けられたリングバッファに書き
込むバッファ書込み処理を行う。なお、リングバッファ
に書き込まれた楽音波形(波形サンプル)は、後述する
第1インタラプト処理にてサンプリング周期毎に読み出
されて楽音波形Wとしてサウンドシステム7に供給され
る。
【0017】次に、ステップSa6では、リングバッフ
ァに対する書き込み/読み出し状態をモニタし、後述す
る警告条件を満たした場合にCPU4が過負荷状態に陥
った警告回数をカウントする警告検出処理を実行する。
続いて、ステップSa7では、上記ステップSa6にて
カウントされた警告回数を表示する一方、現在実行中の
エフェクト種類を表示する表示処理を行う。次いで、ス
テップSa8では、例えば押離鍵操作に応じて発生する
演奏情報をMIDI出力する等の、その他の処理を実行
してから上述したステップSa2に処理を戻す。これ以
後、電源スイッチがオフされる迄、ステップSa2〜S
a8を繰り返し実行する。
【0018】(b)イニシャライズ処理の動作 次に、図3を参照してイニシャライズ処理の動作につい
て説明する。上述したメインルーチンのステップSa1
を介してイニシャライズ処理が実行されると、CPU4
は図3のステップSb1に処理を進め、レジスタWAD
にリングバッファの書き込み開始アドレスとして「α」
をセットする。続いてステップSb2では、レジスタR
ADにリングバッファの読み出し開始アドレスとして
「0」をセットする。次いで、ステップSb3では、レ
ジスタKADに警告アドレス値として「β」をセットす
る。
【0019】なお、以後の説明において、レジスタWA
Dの値を書き込みアドレスWAD、レジスタRADの値
を読み出しアドレスRAD、レジスタKADの値を警告
アドレスKADと記す。また、初期設定された書き込み
アドレスWADと警告アドレスKADとはα>βの関係
にある。CPU4の負荷増大により書き込みアドレスW
ADの歩進が遅滞し、これにより読み出しアドレスRA
Dが警告アドレスKADを超えた場合に、後述する警告
検出処理および第2インタラプタ処理にてその回数がカ
ウントされる。
【0020】さて、こうしてリングバッファの書き込み
アドレスWAD、読み出しアドレスRADおよび警告ア
ドレスKADが初期設定されると、CPU4はステップ
Sb4に処理を進め、レジスタWをゼロリセットする。
このレジスタWとは、上述したように、読み出しアドレ
スRADが警告アドレスKADを超えた場合にカウント
される警告回数を保持するレジスタ(カウンタ)であ
る。次いで、ステップSb5ではレジスタNに最大チャ
ンネル数(同時発音可能な発音チャンネル数)をストア
し、続くステップSb6ではレジスタMに同時に付与可
能な最大エフェクト数をストアする。そして、ステップ
Sb7ではレジスタWHをゼロリセットし、この後に本
ルーチンを完了する。なお、レジスタWHとは、一定期
間内に検出した警告回数を保持するレジスタである。
【0021】(c)スイッチ処理の動作(効果設定スイ
ッチ処理) 次に、図4〜図5を参照してスイッチ処理の動作につい
て説明する。上述したメインルーチンのステップSa2
を介してスイッチ処理が実行されると、CPU4は図4
のステップSc1〜Sc2にて効果設定スイッチ処理や
その他のスイッチ処理を実行する。ステップSc1を介
して効果設定スイッチ処理が実行されると、CPU4は
図5に示すステップSc3に進み、効果設定スイッチが
オン操作されたか否かを判断する。効果設定スイッチが
オン操作された場合には判断結果が「YES」となり、
ステップSc4に処理を進め、スイッチフラグSFの値
を反転する。スイッチフラグSFは「1」の時にオン状
態を表し、「0」の時にオフ状態を表す。つまり、効果
設定スイッチはオン操作される毎に、交互にオン状態も
しくはオフ状態に設定される所謂トグルスイッチなの
で、オン操作毎にスイッチフラグSFの値を反転する。
【0022】次いで、ステップSc5では、スイッチフ
ラグSFの値が「1」、すなわち、効果設定スイッチが
オン状態に設定されているかどうかを判断する。ここ
で、スイッチフラグSFの値が「0」であれば、オフ状
態に設定されているので、判断結果は「NO」となり、
何も処理せずに本ルーチンを完了させるが、スイッチフ
ラグSFの値が「1」となるオン状態に設定されている
場合には、判断結果が「YES」となり、次のステップ
Sc6に処理を進め、効果指定スイッチがオン操作され
たか否かを判断する。
【0023】効果設定スイッチのオン操作に続いて、付
与するエフェクトの種類を指定すべく効果指定スイッチ
がオン操作されると、ここでの判断結果は「YES」と
なり、指定されたエフェクトの種類を表す効果番号をレ
ジスタm(以後、効果番号mと記す)にストアする。そ
して、ステップSc8では、指定された効果番号mに対
応するエフェクトフラグEF(m)を反転する。このエ
フェクトフラグEFとは、各エフェクトの種類に対応し
て設けられ、その値が「1」の場合に指定状態を、
「0」の場合に非指定状態を表す。従って、上記ステッ
プSb6〜Sb7では、効果指定スイッチがオン操作さ
れたエフェクトについて、対応するエフェクトフラグE
F(m)が「1」にセットされるようになっている。
【0024】(d)鍵盤処理の動作 次に、図6を参照して鍵盤処理の動作について説明す
る。上述したメインルーチンのステップSa3を介して
鍵盤処理が実行されると、CPU4は図6のステップS
d1に処理を進め、鍵盤1における鍵変化の有無を判断
する。ここで、押離鍵操作がなされず、鍵変化が生じな
い場合には何も処理せずに本ルーチンを完了させるが、
押鍵に応じてオンイベントが発生した場合にはステップ
Sd2〜Sd7を実行し、一方、離鍵に応じてオフイベ
ントが発生した場合にはステップSd8〜Sd13を実
行する。以下、押鍵された場合と離鍵された場合とに分
けて動作説明を進める。
【0025】押鍵された場合 押鍵操作に応じてオンイベントが発生すると、ステップ
Sd2に処理を進め、発音チャンネル番号nをゼロリセ
ットする。次いで、ステップSd3では、発音チャンネ
ル番号nに対応した発音フラグCH(n)が「1」、つ
まり、発音中であるか否かを判断する。発音中であれ
ば、判断結果が「YES」となり、次のステップSd4
に進み、発音されていない空きチャンネルを探すべく発
音チャンネル番号nを1インクリメントして歩進させ
る。そして、ステップSd5では、歩進した発音チャン
ネル番号nがレジスタNに格納される最大チャンネル数
を超えたか、つまり、全発音チャンネルについて空きチ
ャンネルを探し終えたかどうかを判断する。
【0026】空きチャンネルを探している最中であれ
ば、判断結果は「NO」となり、再びステップSd3に
処理を戻し、歩進した発音チャンネル番号nが空きチャ
ンネルであるかどうかを判断する。そして、発音フラグ
CH(n)が「0」となる空きチャンネルを見つける
と、ここでの判断結果が「NO」となり、ステップSd
6に処理を進め、押鍵操作された鍵の楽音をその空きチ
ャンネルにアサインすべく発音フラグCH(n)を
「1」にセットし、続くステップSd7では押鍵操作さ
れた鍵のノートナンバをレジスタNOTE(n)にスト
アする。これにより、押鍵された鍵の楽音が空きチャン
ネルに発音割り当てされる。なお、本実施例の場合、説
明の簡略化を図る為、空きチャンネルが見つからなけれ
ばステップSd5の判断結果が「YES」となり、この
ルーチンを完了させるようにしているが、実際には周知
のトランケート処理にて発音割り当てするようになって
いる。
【0027】離鍵された場合 離鍵操作に応じてオフイベントが発生すると、ステップ
Sd8に処理を進め、発音チャンネル番号nをゼロリセ
ットする。次いで、ステップSd9では、発音チャンネ
ル番号nに対応した発音フラグCH(n)が「1」、つ
まり、発音中であるか否かを判断する。ここで、消音状
態であると、判断結果は「NO」となり、ステップSd
12に進み、発音チャンネル番号nを1インクリメント
して歩進させ、続くステップSd13では歩進した発音
チャンネル番号nが最大チャンネル数Nを超えたか、つ
まり、全発音チャンネルについて消音すべき発音チャン
ネルを探し終えたかどうかを判断する。
【0028】そして、消音すべき発音チャンネルを探し
ている最中であれば、判断結果は「NO」となり、上述
したステップSd9に処理を戻し、歩進した発音チャン
ネル番号nについて発音中であるかどうかを判断する。
そして、発音中であると、判断結果が「YES」とな
り、ステップSd10に進む。ステップSd10では、
レジスタNOTE(n)に格納されるノートナンバと離
鍵された鍵のノートナンバとが一致するか、つまり、離
鍵された鍵の楽音であるか否かを判断する。離鍵された
鍵の楽音でなければ、判断結果が「NO」となり、上述
のステップSd12に進むが、離鍵された鍵の楽音であ
ると、判断結果は「YES」となり、ステップSd11
に進み、該当する発音フラグCH(n)を「0」にセッ
トして消音させる。
【0029】(e)生成処理の動作 次に、図7を参照して生成処理の動作について説明す
る。前述したメインルーチンのステップSa4(図2参
照)を介して生成処理が実行されると、CPU4は図7
のステップSe1,Se2にてレジスタWAVEおよび
発音チャンネル番号nをゼロリセットする。なお、レジ
スタWAVEとは、楽音波形サンプルを保持するレジス
タである。こうして、レジスタWAVEおよび発音チャ
ンネル番号nがゼロリセットされると、CPU4はステ
ップSd3〜Se6の処理にて各発音チャンネル毎の楽
音波形サンプルを累算した楽音波形Wを発生する。
【0030】すなわち、ステップSe3では、RAM6
の波形メモリ領域から読み出した波形データを演奏情報
に応じて修飾してなる楽音波形サンプルを、発音チャン
ネル番号(n)に対応したレジスタWAVE(n)にス
トアする。次いで、ステップSe4では、レジスタWA
VE(n)の内容を累算し、続くステップSe5では発
音チャンネル番号nを歩進する。そして、ステップSe
6では歩進した発音チャンネル番号nが最大チャンネル
数Nを超えたかどうか、つまり、各発音チャンネル毎に
生成される楽音波形サンプルを累算し終えたかどうかを
判断する。波形累算の途中であれば、判断結果は「N
O」となり、再びステップSe3に処理を戻すが、波形
累算が完了して楽音波形Wが生成されると、判断結果は
「YES」となり、ステップSe7に進む。
【0031】この後、CPU4はステップSe7〜Se
11を経て、前述した効果設定スイッチ処理(図5参
照)にて実行指定されたエフェクトを楽音波形Wに付与
する。すなわち、まずステップSe7では効果番号mを
ゼロリセットし、続くステップSe8では、効果番号m
に対応するエフェクトフラグEF(m)の値が「1」、
つまり実行指定されているエフェクトであるかどうかを
判断する。実行指定されていないエフェクトであれば、
判断結果は「NO」となり、後述するステップSe10
に進むが、実行指定されているエフェクトであると、判
断結果が「YES」となり、次のステップSe9に処理
を進め、効果番号mに対応した種類のエフェクトを楽音
波形Wに付与する。
【0032】次いで、ステップSe10では効果番号m
を1インクリメントして歩進させ、続くステップSe1
1では歩進した効果番号mが最大エフェクト数Mを超え
たか、つまり、実行指定されている全てのエフェクトを
付与し終えたかどうかを判断する。付与し終えていなけ
れば、判断結果は「NO」となり、再びステップSe8
に処理を戻す。一方、付与し終えると、判断結果が「Y
ES」となり、本ルーチンを完了させて前述したメイン
ルーチンに処理を戻す。
【0033】(f)バッファ書込み処理の動作 次に、図8を参照してバッファ書込み処理の動作につい
て説明する。前述したメインルーチンのステップSa5
(図2参照)を介してバッファ書込み処理が実行される
と、CPU4は図8のステップSf1に進み、書き込み
アドレスWADを1インクリメントして歩進させる。次
に、ステップSf2では、歩進した書き込みアドレスW
ADがバッファ終端に達したかどうかを判断する。バッ
ファ終端に達していなければ、判断結果は「NO」とな
り、ステップSf4に進むが、バッファ終端に達してい
ると、判断結果が「YES」となり、ステップSf3に
て書き込みアドレスWADをバッファ始端に戻すべくゼ
ロリセットしてからステップSf4に進む。
【0034】そして、ステップSf4では、レジスタW
AVEに格納される楽音波形Wを、この書き込みアドレ
スWADに従ってリングバッファの格納エリアOUT
(WAD)にストアする。次いで、ステップSf5に進
むと、リングバッファへの波形書き込みに応じて、警告
アドレスKADを1インクリメントして歩進させる。続
いて、ステップSf6では、歩進した警告アドレスKA
Dがバッファ終端に達したかどうかを判断する。バッフ
ァ終端に達していなければ、判断結果は「NO」とな
り、本ルーチンを完了させる。一方、バッファ終端に達
していれば、判断結果が「YES」となり、ステップS
f7に進み、警告アドレスKADをバッファ始端に戻す
べくゼロリセットしてから本ルーチンを完了させる。
【0035】(g)第1インタラプト処理の動作 次に、図9を参照して第1インタラプト処理の動作につ
いて説明する。サンプリング周期毎に第1インタラプト
処理が割込み実行されると、CPU4は図9に示すステ
ップSg1に処理を進め、読み出しアドレスRADを1
インクリメントして歩進させる。続いて、ステップSg
2では、歩進した読み出しアドレスRADがバッファ終
端に達したかどうかを判断する。バッファ終端に達して
いなければ、判断結果は「NO」となり、後述するステ
ップSg4に処理を進めるが、バッファ終端に達してい
れば、判断結果が「YES」となり、ステップSf3に
進み、読み出しアドレスRADをバッファ始端に戻すべ
くゼロリセットしてからステップSg4に処理を進め
る。そして、ステップSg4では、読み出しアドレスR
ADに応じてリングバッファの格納エリアOUT(RA
D)から楽音波形Wを読み出してサウンドシステム7に
出力する。
【0036】(h)警告検出処理の動作 次に、図10を参照して警告検出処理の動作について説
明する。前述したメインルーチンのステップSa6(図
2参照)を介して警告検出処理が実行されると、CPU
4は図10のステップSh1に進み、警告アドレスKA
Dが読み出しアドレスRADより大きいか否かを判断す
る。警告アドレスKADが読み出しアドレスRADより
大きいと、判断結果は「YES」となり、次のステップ
Sh2に処理を進め、警告アドレスKAD、読み出しア
ドレスRADおよび書き込みアドレスWADが、KAD
>WADであって、しかもWAD>RADの関係にある
かどうかを判断する。
【0037】つまり、書き込みアドレスWADがバッフ
ァ始端側に、警告アドレスKADがバッファ終端側にそ
れぞれアドレッシングされている時に、読み出しアドレ
スRADが書き込みアドレスWADと警告アドレスKA
Dとの間に入り込み、KAD>WAD>RADの関係に
あるかどうかを判断する。そして、このKAD>WAD
>RADの関係になければ、判断結果は「NO」とな
り、本ルーチンを完了させるが、上記関係にあると、判
断結果が「YES」となり、ステップSh3に進む。ス
テップSh3では、読み出しアドレスRADが警告アド
レスKADを超えたのに対応して警告回数をカウントす
るレジスタWの値を1インクリメントして歩進した後、
本ルーチンを完了させる。
【0038】一方、上述したステップSh1の判断結果
が「NO」の場合、すなわち、読み出しアドレスRAD
が警告アドレスKADより大きいと、ステップSh4に
進み、WAD>RADもしくはKAD>WADの関係に
あるか否かを判断する。つまり、読み出しアドレスRA
Dが警告アドレスKADを超える、RAD>KAD>W
ADあるいはWAD>RAD>KADのいずれかの関係
にあるかどうかを判断する。そして、いずれの関係にも
合致しなければ、判断結果は「NO」となり、本ルーチ
ンを完了させるが、いずれかの関係にあると、判断結果
が「YES」となり、ステップSh3に進み、警告回数
をカウントするレジスタWの値を1インクリメントして
歩進した後、本ルーチンを完了させる。
【0039】このように、警告検出処理では、CPU4
の負荷状況に応じて巡回歩進する速度が変化する書き込
みアドレスWADおよび警告アドレスKADと、サンプ
リング周期毎に巡回歩進する読み出しアドレスRADと
の関係をモニタしており、読み出しアドレスRADが書
き込みアドレスWADと警告アドレスKADとの間に入
り込む毎に警告回数をカウントするようになっている。
【0040】(i)第2インタラプト処理の動作 次に、図11を参照し、タイマ割込みにて実行される第
2インタラプト処理の動作について説明する。タイマク
ロックが発生すると、CPU4は図11に示すステップ
Si1に処理を進め、タイマクロックをカウントするレ
ジスタTを歩進し、続くステップSi2ではレジスタT
に格納されるタイマクロック累算値がリセット値Rに達
したか否かを判断する。リセット値Rに達していなけれ
ば、判断結果が「NO」となり、本ルーチンを完了させ
る。
【0041】一方、タイマクロック累算値がリセット値
Rに達すると、判断結果は「YES」となり、ステップ
Si3に進む。ステップSi3では、レジスタWに格納
される警告回数をレジスタWHにストアする。次いで、
ステップSi4では、レジスタT,Wをそれぞれゼロリ
セットして本ルーチンを完了する。このように、第2イ
ンタラプト処理では、タイマクロック累算値がリセット
値Rに達するまでの所定期間内に、前述した警告検出処
理にてカウントした警告回数をレジスタWHにストアす
るようになっている。
【0042】(j)表示処理の動作 次に、図12を参照して表示処理の動作について説明す
る。前述したメインルーチンのステップSa7(図2参
照)を介して表示処理が実行されると、CPU4は図1
2に示すステップSj1に進み、上述した第2インタラ
プト処理にてレジスタWHにストアされた警告回数を表
示部3に表示する。これにより、ユーザはどの程度エラ
ーが発生し易い状態になっているかを把握し得るように
なる訳である。こうして、CPU4の負荷状態に対応し
た警告回数が表示されると、CPU4はステップSj2
〜Sj8にて現在実行中のエフェクト種類を表示部3に
表示する。
【0043】すなわち、ステップSj2では、効果番号
mをゼロリセットし、続くステップSj3では、効果番
号mに対応するエフェクトフラグEF(m)の値が
「1」、つまり実行指定されているエフェクトであるか
どうかを判断する。実行指定されていないエフェクトで
あると、判断結果は「NO」となり、ステップSj4に
進み、効果番号mに対応した種類のエフェクト名を消灯
(非表示)した後、ステップSj6に処理を進める。
【0044】一方、実行指定されているエフェクトであ
れば、判断結果が「YES」となり、ステップSj5に
処理を進め、効果番号mに対応した種類のエフェクト名
を表示する。次いで、ステップSj6では、効果番号m
を1インクリメントして歩進させ、続くステップSj7
では歩進した効果番号mが最大エフェクト数Mを超えた
か否かを判断する。効果番号mが最大エフェクト数Mを
超える迄、ここでの判断結果は「NO」となり、ステッ
プSj3〜Sj7を繰り返し、効果番号mが最大エフェ
クト数Mを超えた時に判断結果が「YES」となり、本
ルーチンを完了させる。
【0045】以上のように、第1実施例によれば、CP
U4の負荷状況に応じてリングバッファを巡回歩進する
速度が変化する書き込みアドレスWADおよび警告アド
レスKADと、サンプリング周期毎にリングバッファを
巡回歩進する読み出しアドレスRADとの関係をモニタ
し、読み出しアドレスRADが書き込みアドレスWAD
と警告アドレスKADとの間に入り込む毎に警告回数を
カウントし、一定期間中にカウントされた警告回数を表
示部3に表示してユーザに報知するようにしたので、ど
の程度エラーが発生し易い状態になっているかを把握す
ることが可能になっている。
【0046】B.第2実施例 第2実施例の構成は、上述した第1実施例と同一なの
で、その説明については省略する。第2実施例が上述し
た第1実施例と相違する点は、第1実施例では一定期間
中にカウントされた警告回数を表示するのに対し、第2
実施例では一定期間中にカウントされた警告回数に応じ
て発音チャンネル数Nを減らしてCPU4の負荷を下げ
るようにしたことにある。したがって、以下では、そう
した動作を具現する第2実施例による「イニシャライズ
処理」、「第2インタラプタ処理」および「表示処理」
について説明する。なお、これ以外の処理は上述した第
1実施例と共通する為、その説明を省略する。
【0047】(a)イニシャライズ処理の動作 図13を参照して第2実施例によるイニシャライズ処理
の動作について説明する。第1実施例と同様に、メイン
ルーチンのステップSa1を介してイニシャライズ処理
が実行されると、CPU4は図13のステップSk1〜
Sk3を経てリングバッファの書き込み開始アドレスW
ADを「α」、読み出し開始アドレスRADを「0」、
警告アドレスKADを「β」にセットする。こうしてリ
ングバッファの書き込みアドレスWAD、読み出しアド
レスRADおよび警告アドレスKADが初期設定される
と、CPU4はステップSk4に処理を進め、レジスタ
Wをゼロリセットする。次いで、ステップSk5ではレ
ジスタNに最大チャンネル数(同時発音可能な発音チャ
ンネル数)をストアし、続くステップSk6ではレジス
タMに同時に付与可能な最大エフェクト数をストアす
る。
【0048】(b)第2インタラプタ処理の動作 次に、図14を参照して第2実施例による第2インタラ
プト処理の動作について説明する。タイマクロックが発
生すると、CPU4は図14に示すステップSm1に処
理を進め、タイマクロックをカウントするレジスタTを
歩進し、続くステップSm2ではレジスタTに格納され
るタイマクロック累算値がリセット値Rに達したか否か
を判断する。リセット値Rに達していなければ、判断結
果が「NO」となり、本ルーチンを完了させる。
【0049】一方、タイマクロック累算値がリセット値
Rに達すると、判断結果は「YES」となり、ステップ
Sm3に進む。ステップSm3では、予め警告回数に対
応したCPU負荷率が記憶されたデータテーブルTAB
LEからレジスタWに格納される警告回数に対応する負
荷率TABLE(W)を読み出し、これを最大チャンネ
ル数Nに乗算することによって、CPU負荷率を適正に
保つ発音チャンネル数Nを算出する。この後、ステップ
Sm4に進み、レジスタT,Wをそれぞれゼロリセット
して本ルーチンを完了する。このように、第2実施例に
よる第2インタラプト処理では、タイマクロック累算値
がリセット値Rに達するまでの所定期間内にカウントさ
れた警告回数に基づきCPU負荷率を適正に保つ発音チ
ャンネル数Nを算出するようになっている。
【0050】(c)表示処理の動作 次に、図15を参照して第2実施例による表示処理の動
作について説明する。前述した第1の実施形態と同様、
メインルーチンのステップSa7(図2参照)を介して
表示処理が実行されると、CPU4は図15に示すステ
ップSn1に進み、上述した第2実施例による第2イン
タラプト処理にてレジスタNにストアされたCPU負荷
率を適正に保つ発音チャンネル数を表示部3に表示す
る。これにより、ユーザはどの程度エラーが発生し易い
状態になっているかを把握し得る。こうして、CPU負
荷率を適正に保つ発音チャンネル数Nが表示されると、
さらにCPU4はステップSn2〜Sn8にて現在実行
中のエフェクト種類を表示部3に表示する。
【0051】すなわち、ステップSn2では、効果番号
mをゼロリセットし、続くステップSn3では、効果番
号mに対応するエフェクトフラグEF(m)の値が
「1」、つまり実行指定されているエフェクトであるか
どうかを判断する。実行指定されていないエフェクトで
あると、判断結果は「NO」となり、ステップSn4に
進み、効果番号mに対応した種類のエフェクト名を消去
した後、ステップSn6に処理を進める。
【0052】一方、実行指定されているエフェクトであ
れば、判断結果が「YES」となり、ステップSn5に
処理を進め、効果番号mに対応した種類のエフェクト名
を表示する。次いで、ステップSn6では、効果番号m
を1インクリメントして歩進させ、続くステップSn7
では歩進した効果番号mが最大エフェクト数Mを超えた
か否かを判断する。そして、効果番号mが最大エフェク
ト数Mを超える迄、ここでの判断結果は「NO」とな
り、ステップSn3〜Sn7を繰り返し、効果番号mが
最大エフェクト数Mを超えた時に判断結果が「YES」
となり、本ルーチンを完了させる。
【0053】以上のように、第2実施例によれば、CP
U4の負荷状況に応じてリングバッファを巡回歩進する
速度が変化する書き込みアドレスWADおよび警告アド
レスKADと、サンプリング周期毎にリングバッファを
巡回歩進する読み出しアドレスRADとの関係をモニタ
し、読み出しアドレスRADが書き込みアドレスWAD
と警告アドレスKADとの間に入り込む毎に警告回数を
カウントし、一定期間中にカウントされた警告回数に応
じて減らされた発音チャンネル数Nを表示部3に表示す
るので、CPU負荷率を適正に保つことが出来るうえ、
どの程度エラーが発生し易い状態になっているかをユー
ザに報知することが可能になる。
【0054】C.第3実施例 次に、第3実施例について説明する。第3実施例が上述
した第2実施例と相違する点は、第2実施例では一定期
間中にカウントされた警告回数に応じて発音チャンネル
数Nを減らしてCPU4の負荷を下げるようにしたのに
対し、第3実施例では一定期間中にカウントされた警告
回数に応じてエフェクト数Mを減らしてCPU4の負荷
を下げるようにしたことにある。以下では、そうした動
作を具現する第3実施例による「第2インタラプタ処
理」について説明する。なお、これ以外の処理は上述し
た第1および第2実施例と共通するので、その説明を省
略する。
【0055】第3実施例による第2インタラプト処理で
は、タイマクロックの発生に応じてCPU4が図16に
示すステップSo1に処理を進め、タイマクロックをカ
ウントするレジスタTを歩進し、続くステップSo2で
はレジスタTに格納されるタイマクロック累算値がリセ
ット値Rに達したか否かを判断する。リセット値Rに達
していなければ、判断結果が「NO」となり、本ルーチ
ンを完了させる。一方、タイマクロック累算値がリセッ
ト値Rに達すると、判断結果は「YES」となり、ステ
ップSo3に進む。ステップSo3では、予め警告回数
に対応したCPU負荷率が記憶されたデータテーブルT
ABLEからレジスタWに格納される警告回数に対応す
る負荷率TABLE(W)を読み出し、これを最大エフ
ェクト数Mに乗算することによって、CPU負荷率を適
正に保つエフェクト数Mを算出する。この後、ステップ
So4に進み、レジスタT,Wをそれぞれゼロリセット
して本ルーチンを完了する。
【0056】このように、第3実施例による第2インタ
ラプト処理では、タイマクロック累算値がリセット値R
に達するまでの所定期間内にカウントされた警告回数に
基づきCPU負荷率を適正に保つエフェクト数Mを算出
するようになっている。そして、算出されたエフェクト
数Mは前述した第2実施例と同様、表示処理によって表
示部3に表示される。
【0057】したがって、第3実施例によれば、CPU
4の負荷状況に応じてリングバッファを巡回歩進する速
度が変化する書き込みアドレスWADおよび警告アドレ
スKADと、サンプリング周期毎にリングバッファを巡
回歩進する読み出しアドレスRADとの関係をモニタ
し、読み出しアドレスRADが書き込みアドレスWAD
と警告アドレスKADとの間に入り込む毎に警告回数を
カウントし、一定期間中にカウントされた警告回数に応
じて減らされたエフェクト数Mを表示部3に表示するの
で、CPU負荷率を適正に保つことが出来、しかもどの
程度エラーが発生し易い状態になっているかをユーザに
報知することが可能になっている。
【0058】D.第4実施例 次に、第4実施例について説明する。第4実施例の構成
は、前述した第1の実施形態と同一なので、その説明に
ついては省略する。第4実施例が前述した第1実施例と
相違する点は、第1実施例では一定期間中にカウントさ
れた警告回数を表示するようにしたのに対し、第4実施
例では一定期間中にカウントされた警告回数に応じて、
実行中にあるエフェクト(後述のノーマルエフェクト)
を、CPU4の負荷を軽減するライトエフェクト(後述
する)に変更することにある。以下では、そうした動作
を具現する第4実施例による「イニシャライズ処理」、
「第2インタラプタ処理」、「生成処理」および「表示
処理」について説明する。なお、これ以外の処理は第1
実施例と共通する為、その説明を省略する。
【0059】(a)イニシャライズ処理の動作 図17を参照して第4実施例によるイニシャライズ処理
の動作について説明する。第1実施例と同様、メインル
ーチンのステップSa1を介してイニシャライズ処理が
実行されると、CPU4は図17のステップSp1〜S
p3を経てリングバッファの書き込み開始アドレスWA
Dを「α」、読み出し開始アドレスRADを「0」、警
告アドレスKADを「β」にセットする。こうしてリン
グバッファの書き込みアドレスWAD、読み出しアドレ
スRADおよび警告アドレスKADが初期設定される
と、CPU4はステップSp4に処理を進め、レジスタ
Wをゼロリセットする。次いで、ステップSp5〜Sp
7では、レジスタN,MおよびNMにそれぞれ最大チャ
ンネル数(同時発音可能な発音チャンネル数)、最大エ
フェクト数およびノーマルエフェクト数をストアする。
【0060】なお、レジスタMにストアされる最大エフ
ェクト数とは、同時付与可能なノーマルエフェクトの数
とライトエフェクトの数との総和を指す。また、ここで
言うノーマルエフェクトとライトエフェクトとは、例え
ばリバーブの場合、遅延段数が通常段数のものをノーマ
ルエフェクト、通常段数より少ないものをライトエフェ
クトと称している。つまり、ライトエフェクトはCPU
4に与える負荷がノーマルエフェクトより小さいものを
指している。
【0061】(b)生成処理の動作 次に、図18〜図19を参照して第4実施例による生成
処理の動作について説明する。前述したメインルーチン
のステップSa4(図2参照)を介して生成処理が実行
されると、CPU4は図18のステップSq1〜Sq2
にてレジスタWAVEおよび発音チャンネル番号nをゼ
ロリセットする。なお、レジスタWAVEとは、楽音波
形サンプルを保持するレジスタである。こうして、レジ
スタWAVEおよび発音チャンネル番号nがゼロリセッ
トされると、CPU4はステップSq3〜Sq6の処理
にて各発音チャンネル毎の楽音波形サンプルを累算した
楽音波形Wを発生する。
【0062】すなわち、ステップSq3では、RAM6
の波形メモリ領域から読み出した波形データを演奏情報
に応じて修飾してなる楽音波形サンプルを、発音チャン
ネル番号(n)に対応したレジスタWAVE(n)にス
トアする。次いで、ステップSq4では、レジスタWA
VE(n)の内容を累算し、続くステップSq5では発
音チャンネル番号nを歩進する。そして、ステップSq
6では歩進した発音チャンネル番号nが最大チャンネル
数Nを超えたかどうか、つまり、各発音チャンネル毎に
生成される楽音波形サンプルを累算し終えたかどうかを
判断する。波形累算の途中であれば、判断結果は「N
O」となり、再びステップSq3に処理を戻すが、波形
累算が完了して楽音波形Wが生成されると、判断結果は
「YES」となり、ステップSq7に進む。
【0063】この後、CPU4はステップSq7〜Sq
16を経て、前述した効果設定スイッチ処理(図5参
照)にて実行指定されたエフェクトを、ノーマルエフェ
クトあるいはライトエフェクトとして楽音波形Wに付与
する。すなわち、ステップSq7では効果番号mをゼロ
リセットし、続くステップSq8では、効果番号mに対
応するエフェクトフラグEF(m)の値が「1」、つま
り実行指定されているエフェクトであるかどうかを判断
する。実行指定されていないエフェクトであれば、判断
結果は「NO」となり、後述するステップSq12(図
19参照)に進むが、実行指定されているエフェクトで
あると、判断結果が「YES」となり、次のステップS
q9に処理を進める。
【0064】ステップSq9では、フラグNEFが
「0」、つまり、ノーマルエフェクトを付与するのかを
どうかを判断する。ここで、フラグNEFが「0」であ
ると、ノーマルエフェクトを付与する旨を表すので、判
断結果が「YES」となり、ステップSq10に進み、
効果番号mに対応した種類のエフェクトをノーマルエフ
ェクトとして楽音波形Wに付与する。一方、フラグNE
Fが「1」であれば、上記ステップSq9の判断結果は
「NO」となり、ステップSq11に進み、効果番号m
に対応した種類のエフェクトをライトエフェクトとして
楽音波形Wに付与する。
【0065】そして、図19に図示するステップSq1
2に進み、効果番号mを1インクリメントして歩進さ
せ、続くステップSq13では歩進した効果番号mがノ
ーマルエフェクト数NMを超えたかどうかを判断する。
ここで、歩進した効果番号mがノーマルエフェクト数N
Mを超えていなければ、判断結果は「NO」となり、後
述するステップSq15に処理を進めるが、ノーマルエ
フェクト数NMを超えた場合には判断結果が「YES」
となり、ステップSq14に進み、フラグNEFを
「1」にセットする。次いで、ステップSq15に進む
と、効果番号mが最大エフェクト数Mを超えたか否か、
つまり、実行指定されている全てのエフェクトを付与し
終えたかどうかを判断する。付与し終えていなければ、
判断結果は「NO」となり、再び図18のステップSq
8に処理を戻す。
【0066】このように、ステップSq8〜Sq15で
は、効果設定スイッチ処理(図5参照)にて実行指定さ
れたエフェクトの内、ノーマルエフェクト数NM分には
ノーマルエフェクトを付与し、その数NMを超えて最大
エフェクト数M分のものについてはライトエフェクトを
付与するようになっている。こうして楽音波形Wにノー
マルエフェクトおよびライトエフェクトを付与し終える
と、上述したステップSq15の判断結果が「YES」
となり、ステップSq16に進み、フラグNEFをゼロ
リセットしてから本ルーチンを完了する。
【0067】(c)第2インタラプタ処理の動作 次に、図20を参照して第4実施例による第2インタラ
プト処理の動作について説明する。タイマクロックが発
生すると、CPU4は図20に示すステップSr1に処
理を進め、タイマクロックをカウントするレジスタTを
歩進し、続くステップSr2ではレジスタTに格納され
るタイマクロック累算値がリセット値Rに達したか否か
を判断する。リセット値Rに達していなければ、判断結
果が「NO」となり、本ルーチンを完了させる。
【0068】一方、タイマクロック累算値がリセット値
Rに達すると、判断結果は「YES」となり、ステップ
Sr3に進む。ステップSr3では、予め警告回数に対
応したCPU負荷率が記憶されたデータテーブルTAB
LEからレジスタWに格納される警告回数に対応する負
荷率TABLE(W)を読み出し、これを最大エフェク
ト数Mに乗算することによって、CPU負荷率を適正に
保つノーマルエフェクト数NMを算出する。この後、ス
テップSr4に進み、レジスタT,Wをそれぞれゼロリ
セットして本ルーチンを完了する。
【0069】このように、第4実施例による第2インタ
ラプト処理では、タイマクロック累算値がリセット値R
に達するまでの所定期間内にカウントされた警告回数に
基づきCPU負荷率を適正に保つノーマルエフェクト数
NMを算出するようになっている。つまり、換言する
と、実行中にあるノーマルエフェクトを、CPU4の負
荷を軽減するライトエフェクトに変更している。
【0070】(d)表示処理の動作 次に、図21を参照して第4実施例による表示処理の動
作について説明する。前述した第1実施例と同様、メイ
ンルーチンのステップSa7(図2参照)を介して表示
処理が実行されると、CPU4は図21に示すステップ
Ss1に進み、効果番号mをゼロリセットする。続い
て、ステップSs2では、効果番号mが最大エフェクト
数M以下であるか否かを判断する。効果番号mが最大エ
フェクト数M以下であると、判断結果は「YES」とな
り、次のステップSs3に処理を進め、効果番号mに対
応するエフェクトフラグEF(m)の値が「1」、つま
り実行指定されているエフェクトであるかどうかを判断
する。
【0071】実行指定されているエフェクトであると、
その判断結果は「YES」となり、ステップSs4に処
理を進め、効果番号mがノーマルエフェクト数NM以下
であるか否かを判断する。効果番号mがノーマルエフェ
クト数NM以下であると、判断結果は「YES」とな
り、ステップSs5に処理を進め、効果番号mに対応し
た種類のエフェクト名を通常の形態で表示し、これによ
り効果番号mのエフェクトがノーマルエフェクトとして
動作中であることをユーザに報知する。
【0072】一方、効果番号mがノーマルエフェクト数
NMを超えた場合には、判断結果が「NO」となり、ス
テップSs6に処理を進め、効果番号mに対応した種類
のエフェクト名を通常とは異なる別形態(例えば、表示
色を異ならせたり点滅表示する等)で表示し、これによ
り効果番号mのエフェクトがライトエフェクトとして動
作中であることをユーザに報知する。
【0073】次いで、ステップSs7では、効果番号m
を1インクリメントして歩進させ、続くステップSs8
では歩進した効果番号mが最大エフェクト数Mを超えた
か否かを判断する。効果番号mが最大エフェクト数Mを
超えていなければ、判断結果は「NO」となり、再びス
テップSs2に処理を戻し、上述した過程を繰り返す。
そして、その過程で歩進された効果番号mが最大エフェ
クト数Mを超えた場合、もしくは歩進された効果番号m
に対応するエフェクトが実行指定されていない場合に
は、上述したステップSs2もしくはステップSs3の
判断結果が「NO」となり、ステップSs9に進み、効
果番号mに対応した種類のエフェクト名を消灯(非表
示)する。この後、ステップSs7に進み、効果番号M
を歩進し、この歩進した効果番号mが最大エフェクト数
Mを超えると、ステップSs8の判断結果が「YES」
となり、本ルーチンを完了させる。
【0074】このように、第4実施例によれば、CPU
4の負荷状況に応じてリングバッファを巡回歩進する速
度が変化する書き込みアドレスWADおよび警告アドレ
スKADと、サンプリング周期毎にリングバッファを巡
回歩進する読み出しアドレスRADとの関係をモニタ
し、読み出しアドレスRADが書き込みアドレスWAD
と警告アドレスKADとの間に入り込む毎に警告回数を
カウントし、一定期間中にカウントされた警告回数に応
じて、実行中のノーマルエフェクトを、CPU4の負荷
を軽減するライトエフェクトに変更すると共に、その状
況を表示部3に表示するので、CPU負荷率を適正に保
つことが出来、しかもどの程度エラーが発生し易い状態
になっているかをユーザに報知することが可能になって
いる。
【0075】以上説明したように、本発明の第1〜第4
実施例では、CPU4の負荷状況に応じてリングバッフ
ァを巡回歩進する速度が変化する書き込みアドレスWA
Dおよび警告アドレスKADと、サンプリング周期毎に
リングバッファを巡回歩進する読み出しアドレスRAD
との関係をモニタし、読み出しアドレスRADが書き込
みアドレスWADと警告アドレスKADとの間に入り込
む毎に警告回数をカウントし、一定期間中にカウントさ
れた警告回数を表示部3に表示したり、一定期間中にカ
ウントされた警告回数に応じて発音チャンネル数を減ら
したり、実行指定されているエフェクトの種類を減らす
他、実行中のノーマルエフェクトを、CPU4の負荷を
軽減するライトエフェクトに変更するので、発音遅れ、
音切れあるいはノイズ発生等のエラーを事前に回避でき
るうえ、どの程度エラーが発生し易い状態になっている
かをユーザに報知することが可能になっている。
【0076】なお、上述した第1〜第4実施例を組合せ
ることも可能である。すなわち、一定期間中にカウント
された警告回数を表示部3に表示しながら、その警告回
数に応じて発音チャンネル数や実行指定されているエフ
ェクトの種類を減らしたり、実行中のノーマルエフェク
トをライトエフェクトに変更する。こうした制御を行う
際には、予め警告回数に対応させた負荷軽減策の優先順
位を定め、その優先順位に従って、例えば警告回数がそ
れほど多くない場合には単に実行中のノーマルエフェク
トをライトエフェクトに変更させるだけにとどめ、警告
回数が増えるに連れて発音チャンネル数を減らしたり、
発音チャンネル数およびエフェクト数の両者を減らすよ
うにすれば、自律的にCPU4の負荷を軽減させること
が可能になる。
【0077】
【発明の効果】請求項1に記載の発明によれば、負荷状
況に応じてバッファ手段を巡回歩進する速度が変化する
書き込みアドレスおよび警告アドレスと、サンプリング
周期毎にバッファ手段を巡回歩進する読み出しアドレス
との関係をモニタし、読み出しアドレスが書き込みアド
レスと警告アドレスとの間に入り込む毎に警告回数を計
数し、一定期間中に計数された警告回数を表示するの
で、どの程度エラーが発生し易い状態になっているかを
ユーザに報知することができ、このようにすることで発
音遅れ、音切れあるいはノイズ発生等のエラーを事前に
回避することができる。請求項2に記載の発明では、負
荷状況に応じてバッファ手段を巡回歩進する速度が変化
する書き込みアドレスおよび警告アドレスと、サンプリ
ング周期毎にバッファ手段を巡回歩進する読み出しアド
レスとの関係をモニタし、読み出しアドレスが書き込み
アドレスと警告アドレスとの間に入り込む毎に警告回数
を計数し、一定期間中に計数された警告回数に応じて、
楽音発生手段で稼働する発音チャンネル数を減らすと共
に、減らされた発音チャンネル数を表示するので、発音
遅れ、音切れあるいはノイズ発生等のエラーを事前に回
避する上、どの程度エラーが発生し易い状態になってい
るかをユーザに報知でき、しかも負荷率を適正に保つよ
う自律的に制御することができる。請求項3に記載の発
明によれば、負荷状況に応じてバッファ手段を巡回歩進
する速度が変化する書き込みアドレスおよび警告アドレ
スと、サンプリング周期毎にバッファ手段を巡回歩進す
る読み出しアドレスとの関係をモニタし、読み出しアド
レスが書き込みアドレスと警告アドレスとの間に入り込
む毎に警告回数を計数し、一定期間中に計数された警告
回数に応じて、楽音発生手段で稼働するエフェクト数を
減らすと共に、減らされたエフェクト数を表示するの
で、発音遅れ、音切れあるいはノイズ発生等のエラーを
事前に回避する上、どの程度エラーが発生し易い状態に
なっているかをユーザに報知でき、しかも負荷率を適正
に保つよう自律的に制御することができる。請求項4に
記載の発明によれば、負荷状況に応じてバッファ手段を
巡回歩進する速度が変化する書き込みアドレスおよび警
告アドレスと、サンプリング周期毎にバッファ手段を巡
回歩進する読み出しアドレスとの関係をモニタし、読み
出しアドレスが書き込みアドレスと警告アドレスとの間
に入り込む毎に警告回数を計数し、一定期間中に計数さ
れた警告回数に応じて、楽音発生手段で複数が稼働中に
ある第1のエフェクトの内、いずれかを負荷軽減し得る
第2のエフェクトに変更し、変更されたエフェクト種類
を表示するので、発音遅れ、音切れあるいはノイズ発生
等のエラーを事前に回避する上、どの程度エラーが発生
し易い状態になっているかをユーザに報知でき、しかも
負荷率を適正に保つよう自律的に制御することができ
る。請求項5に記載の発明によれば、負荷状況に応じて
バッファ手段を巡回歩進する速度が変化する書き込みア
ドレスおよび警告アドレスと、サンプリング周期毎にバ
ッファ手段を巡回歩進する読み出しアドレスとの関係を
モニタし、読み出しアドレスが書き込みアドレスと警告
アドレスとの間に入り込む毎に警告回数を計数し、一定
期間中に計数された警告回数を表示すると共に、その警
告回数に応じて、楽音発生手段で稼働する発音チャンネ
ル数やエフェクト数を減らす他、稼働中の第1のエフェ
クトを第2のエフェクトに変更する負荷軽減策のいずれ
かを自律的に実行するので、発音遅れ、音切れあるいは
ノイズ発生等のエラーを事前に回避する上、どの程度エ
ラーが発生し易い状態になっているかをユーザに報知で
き、しかも負荷率を適正に保つよう自律的に制御するこ
とができる。
【図面の簡単な説明】
【図1】第1実施例の構成を示すブロック図である。
【図2】第1実施例によるメインルーチンの動作を示す
フローチャートである。
【図3】第1実施例によるイニシャライズ処理の動作を
示すフローチャートである。
【図4】第1実施例によるスイッチ処理の動作を示すフ
ローチャートである。
【図5】第1実施例による効果設定スイッチ処理の動作
を示すフローチャートである。
【図6】第1実施例による鍵盤処理の動作を示すフロー
チャートである。
【図7】第1実施例による生成処理の動作を示すフロー
チャートである。
【図8】第1実施例によるバッファ書込み処理の動作を
示すフローチャートである。
【図9】第1実施例による第1インタラプタ処理の動作
を示すフローチャートである。
【図10】第1実施例による警告検出処理の動作を示す
フローチャートである。
【図11】第1実施例による第2インタラプタ処理の動
作を示すフローチャートである。
【図12】第1実施例による表示処理の動作を示すフロ
ーチャートである。
【図13】第2実施例によるイニシャライズ処理の動作
を示すフローチャートである。
【図14】第2実施例による第2インタラプタ処理の動
作を示すフローチャートである。
【図15】第2実施例による表示処理の動作を示すフロ
ーチャートである。
【図16】第3実施例による第2インタラプタ処理の動
作を示すフローチャートである。
【図17】第4実施例によるイニシャライズ処理の動作
を示すフローチャートである。
【図18】第4実施例による生成処理の動作を示すフロ
ーチャートである。
【図19】第4実施例による生成処理の動作を示すフロ
ーチャートである。
【図20】第4実施例による第2インタラプタ処理の動
作を示すフローチャートである。
【図21】第4実施例による表示処理の動作を示すフロ
ーチャートである。
【符号の説明】
1 鍵盤 2 パネルスイッチ 3 表示部 4 CPU 5 ROM 6 RAM 7 サウンドシテム

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 楽音波形を発生する楽音発生手段と、 この楽音発生手段が発生した楽音波形を所定サンプル数
    分一時記憶するバッファ手段と、 前記バッファ手段を巡回歩進する速度が前記楽音発生手
    段の負荷状況に応じて変化する書き込みアドレスおよび
    警告アドレスと、サンプリング周期毎に前記バッファ手
    段を巡回歩進する読み出しアドレスとの関係をモニタ
    し、読み出しアドレスが書き込みアドレスと警告アドレ
    スとの間に入り込む毎に警告回数を計数する計数手段
    と、 この計数手段が一定期間中に計数した警告回数を表示す
    る表示手段とを具備することを特徴とする電子楽器。
  2. 【請求項2】 楽音波形を発生する複数の発音チャンネ
    ルを備えた楽音発生手段と、 この楽音発生手段が発生した楽音波形を所定サンプル数
    分一時記憶するバッファ手段と、 前記バッファ手段を巡回歩進する速度が前記楽音発生手
    段の負荷状況に応じて変化する書き込みアドレスおよび
    警告アドレスと、サンプリング周期毎に前記バッファ手
    段を巡回歩進する読み出しアドレスとの関係をモニタ
    し、読み出しアドレスが書き込みアドレスと警告アドレ
    スとの間に入り込む毎に警告回数を計数する計数手段
    と、 この計数手段が一定期間中に計数した警告回数に応じ
    て、前記楽音発生手段で稼働する発音チャンネル数を減
    らす負荷制御手段と、 この負荷制御手段によって減らされた発音チャンネル数
    を表示する表示手段とを具備することを特徴とする電子
    楽器。
  3. 【請求項3】 楽音波形を発生する一方、発生した楽音
    波形に複数種のエフェクトを付与する楽音発生手段と、 この楽音発生手段が発生した楽音波形を所定サンプル数
    分一時記憶するバッファ手段と、 前記バッファ手段を巡回歩進する速度が前記楽音発生手
    段の負荷状況に応じて変化する書き込みアドレスおよび
    警告アドレスと、サンプリング周期毎に前記バッファ手
    段を巡回歩進する読み出しアドレスとの関係をモニタ
    し、読み出しアドレスが書き込みアドレスと警告アドレ
    スとの間に入り込む毎に警告回数を計数する計数手段
    と、 この計数手段が一定期間中に計数した警告回数に応じ
    て、前記楽音発生手段で稼働するエフェクト数を減らす
    負荷制御手段と、 この負荷制御手段によって減らされたエフェクト数を表
    示する表示手段とを具備することを特徴とする電子楽
    器。
  4. 【請求項4】 楽音波形を発生する一方、発生した楽音
    波形に第1のエフェクトもしくは第1のエフェクトより
    負荷軽減し得る第2のエフェクトのいずれかを付与する
    楽音発生手段と、 この楽音発生手段が発生した楽音波形を所定サンプル数
    分一時記憶するバッファ手段と、 前記バッファ手段を巡回歩進する速度が前記楽音発生手
    段の負荷状況に応じて変化する書き込みアドレスおよび
    警告アドレスと、サンプリング周期毎に前記バッファ手
    段を巡回歩進する読み出しアドレスとの関係をモニタ
    し、読み出しアドレスが書き込みアドレスと警告アドレ
    スとの間に入り込む毎に警告回数を計数する計数手段
    と、 この計数手段が一定期間中に計数した警告回数に応じ
    て、前記楽音発生手段で複数が稼働中にある前記第1の
    エフェクトの内、いずれかを前記第2のエフェクトに変
    更する負荷制御手段と、 この負荷制御手段によって変更されたエフェクト種類を
    表示する表示手段とを具備することを特徴とする電子楽
    器。
  5. 【請求項5】 複数の発音チャンネルを備えて楽音波形
    を発生する一方、発生した楽音波形に第1のエフェクト
    を付与したり、第1のエフェクトより負荷軽減し得る第
    2のエフェクトを付与する楽音発生手段と、 この楽音発生手段が発生した楽音波形を所定サンプル数
    分一時記憶するバッファ手段と、 前記バッファ手段を巡回歩進する速度が前記楽音発生手
    段の負荷状況に応じて変化する書き込みアドレスおよび
    警告アドレスと、サンプリング周期毎に前記バッファ手
    段を巡回歩進する読み出しアドレスとの関係をモニタ
    し、読み出しアドレスが書き込みアドレスと警告アドレ
    スとの間に入り込む毎に警告回数を計数する計数手段
    と、 この計数手段が一定期間中に計数した警告回数を表示す
    る表示手段と、 前記計数手段が一定期間中に計数した警告回数に応じ
    て、前記楽音発生手段で稼働する発音チャンネル数やエ
    フェクト数を減らす他、稼働中の第1のエフェクトを第
    2のエフェクトに変更する負荷軽減策のいずれかを自律
    的に実行する負荷制御手段とを具備することを特徴とす
    る電子楽器。
JP2000322560A 2000-10-23 2000-10-23 電子楽器 Pending JP2002132262A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000322560A JP2002132262A (ja) 2000-10-23 2000-10-23 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000322560A JP2002132262A (ja) 2000-10-23 2000-10-23 電子楽器

Publications (1)

Publication Number Publication Date
JP2002132262A true JP2002132262A (ja) 2002-05-09

Family

ID=18800418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000322560A Pending JP2002132262A (ja) 2000-10-23 2000-10-23 電子楽器

Country Status (1)

Country Link
JP (1) JP2002132262A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005137897A (ja) * 2003-10-17 2005-06-02 Heiwa Corp 遊技機
JP2009025498A (ja) * 2007-07-18 2009-02-05 Yamaha Corp 波形生成装置
JP2012053185A (ja) * 2010-08-31 2012-03-15 Yamaha Corp 電子音楽装置及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005137897A (ja) * 2003-10-17 2005-06-02 Heiwa Corp 遊技機
JP2009025498A (ja) * 2007-07-18 2009-02-05 Yamaha Corp 波形生成装置
JP4544278B2 (ja) * 2007-07-18 2010-09-15 ヤマハ株式会社 波形生成システム
US8106286B2 (en) 2007-07-18 2012-01-31 Yamaha Corporation Waveform generating apparatus
JP2012053185A (ja) * 2010-08-31 2012-03-15 Yamaha Corp 電子音楽装置及びプログラム

Similar Documents

Publication Publication Date Title
JP3671545B2 (ja) 電子楽器
JP2924745B2 (ja) 楽音発生装置及び方法
JP2003330464A (ja) 自動演奏装置および自動演奏方法
JP2002132262A (ja) 電子楽器
US5714704A (en) Musical tone-generating method and apparatus and waveform-storing method and apparatus
US5014586A (en) Chord setting apparatus and electronic wind instrument using the same
JP2002140067A (ja) 電子楽器および電子楽器のレジストレーション方法
JP5115800B2 (ja) 低周波発振装置および低周波発振処理プログラム
JP2008015315A (ja) 楽音発生装置および楽音発生処理プログラム
US6646194B2 (en) Method and apparatus for waveform reproduction
JP3567293B2 (ja) 発音チャンネル割当装置
JP5246473B2 (ja) 楽音発生装置および楽音発生処理プログラム
JP2531424B2 (ja) 自動伴奏装置
JP4492680B2 (ja) 楽音発生装置
JP2001282243A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JP3723973B2 (ja) 音源装置
JP3603638B2 (ja) 楽音発生方法
JP3627557B2 (ja) 楽音発生装置及び方法
JP2008097022A (ja) 楽音発生装置
JP2004279750A (ja) 楽音発生装置および楽音発生プログラム
JP2578327B2 (ja) 自動演奏装置
JP3603849B2 (ja) 楽音発生方法
JP3329030B2 (ja) 楽音信号発生装置
JP3533764B2 (ja) 自動伴奏装置
JP2001282241A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体