(57)【要約】【課題】  ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与できる低周波発振装置を実現する。【解決手段】  ＬＦＯ波形発生器６３は、Ａ区間およびＢ区間に区分けされるＬＦＯ波形の各区間毎の波形形状を決めてから、パラメータＤｕｔｙにより波形一周期全体に占める波形Ａ区間の割合を定め、さらにＡ区間におけるＬＦＯ波高値のランダム変化幅およびＢ区間におけるＬＦＯ波高値のランダム変化幅を制限して得られるＬＦＯ波形を発生する。こうしたＬＦＯ波形に応じて、発生楽音の音高、音色および音量を変調して効果付与する為、ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与することが出来、より表現力の高いＬＦＯ効果を奏する。【選択図】  図３
2006058595.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２の波形区間毎の波形を指定すると共に、両波形区間に占める前記第１の波形区間の割合および前記第１および第２の波形区間毎の波高値変化幅を指定する指定手段と、
前記指定手段により指定された前記第１および第２の波形区間毎の波形を指定された割合に応じて合成した連続波形の波高値を、前記第１および第２の波形区間毎に指定された変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生手段と、
前記ＬＦＯ波形発生手段が発生するＬＦＯ波形に応じて、発生楽音を変調して効果付与する効果付与手段と
を具備することを特徴とする低周波発振装置。
【請求項２】
第１および第２の波形区間毎の波形を指定する波形指定手段と、
前記第１および第２の波形区間に占める前記第１の波形区間の割合を指定する割合指定手段と、
前記第１および第２の波形区間毎の波高値変化幅を指定する変化幅指定手段と、
前記波形指定手段により指定された前記第１および第２の波形区間毎の波形を、前記割合指定手段が指定した割合に応じて合成した周期波形であって、その周期波形の波高値を前記変化幅指定手段が指定する前記第１および第２の波形区間毎の変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生手段と、
前記ＬＦＯ波形発生手段が発生するＬＦＯ波形に応じて、発生楽音の音高、音色および音量を個別に変調して効果付与する効果付与手段と
を具備することを特徴とする低周波発振装置。
【請求項３】
第１および第２の波形区間毎の波形を指定すると共に、両波形区間に占める前記第１の波形区間の割合および前記第１および第２の波形区間毎の波高値変化幅を指定する指定処理と、
前記指定処理にて指定された前記第１および第２の波形区間毎の波形を指定された割合に応じて合成した連続波形の波高値を、前記第１および第２の波形区間毎に指定された変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生処理と、
前記ＬＦＯ波形発生処理にて生成されるＬＦＯ波形に応じて、発生楽音を変調して効果付与する効果付与処理と
をコンピュータで実行させることを特徴とする低周波発振処理プログラム。
【請求項４】
第１および第２の波形区間毎の波形を指定する波形指定処理と、
前記第１および第２の波形区間に占める前記第１の波形区間の割合を指定する割合指定処理と、
前記第１および第２の波形区間毎の波高値変化幅を指定する変化幅指定処理と、
前記波形指定処理にて指定された前記第１および第２の波形区間毎の波形を、前記割合指定処理にて指定された割合に応じて合成した周期波形であって、その周期波形の波高値を前記変化幅指定処理にて指定された前記第１および第２の波形区間毎の変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生処理と、
前記ＬＦＯ波形発生処理にて生成されたＬＦＯ波形に応じて、発生楽音の音高、音色および音量を個別に変調して効果付与する効果付与処理と
をコンピュータで実行させることを特徴とする低周波発振処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器の音源に用いて好適な低周波発振装置および低周波発振処理プログラムに関する。
【背景技術】
【０００２】
周知のように、電子楽器では、音高、音色、音量などの楽音要素を、低周波信号で周期的に変調して発生楽音を修飾する低周波発振装置を音源に備える場合が多い。この種の装置として、例えば特許文献１には、押鍵に応じて、低周波信号の発振周波数や、その低周波信号で音高の周波数を変調させる変調度を、ランダムに変化させて効果付与する低周波発振装置が開示されている。
【０００３】
【特許文献１】特開平１１−８５１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の装置は、低周波信号の発振周期毎にランダムな波形レベルを発生させるため、予期し得ない極端な変化の効果を付与させるのに好適であるものの、ユーザが意図する効果を付与することができない、という問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与することができる低周波発振装置および低周波発振処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の発明では、第１および第２の波形区間毎の波形を指定すると共に、両波形区間に占める前記第１の波形区間の割合および前記第１および第２の波形区間毎の波高値変化幅を指定する指定手段と、前記指定手段により指定された前記第１および第２の波形区間毎の波形を指定された割合に応じて合成した連続波形の波高値を、前記第１および第２の波形区間毎に指定された変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生手段と、前記ＬＦＯ波形発生手段が発生するＬＦＯ波形に応じて、発生楽音を変調して効果付与する効果付与手段とを具備することを特徴とする。
【０００６】
請求項２に記載の発明では、第１および第２の波形区間毎の波形を指定する波形指定手段と、前記第１および第２の波形区間に占める前記第１の波形区間の割合を指定する割合指定手段と、前記第１および第２の波形区間毎の波高値変化幅を指定する変化幅指定手段と、前記波形指定手段により指定された前記第１および第２の波形区間毎の波形を、前記割合指定手段が指定した割合に応じて合成した周期波形であって、その周期波形の波高値を前記変化幅指定手段が指定する前記第１および第２の波形区間毎の変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生手段と、前記ＬＦＯ波形発生手段が発生するＬＦＯ波形に応じて、発生楽音の音高、音色および音量を個別に変調して効果付与する効果付与手段とを具備することを特徴とする。
【０００７】
請求項３に記載の発明では、第１および第２の波形区間毎の波形を指定すると共に、両波形区間に占める前記第１の波形区間の割合および前記第１および第２の波形区間毎の波高値変化幅を指定する指定処理と、前記指定処理にて指定された前記第１および第２の波形区間毎の波形を指定された割合に応じて合成した連続波形の波高値を、前記第１および第２の波形区間毎に指定された変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生処理と、前記ＬＦＯ波形発生処理にて生成されるＬＦＯ波形に応じて、発生楽音を変調して効果付与する効果付与処理とをコンピュータで実行させることを特徴とする。
【０００８】
請求項４に記載の発明では、第１および第２の波形区間毎の波形を指定する波形指定処理と、前記第１および第２の波形区間に占める前記第１の波形区間の割合を指定する割合指定処理と、前記第１および第２の波形区間毎の波高値変化幅を指定する変化幅指定処理と、前記波形指定処理にて指定された前記第１および第２の波形区間毎の波形を、前記割合指定処理にて指定された割合に応じて合成した周期波形であって、その周期波形の波高値を前記変化幅指定処理にて指定された前記第１および第２の波形区間毎の変化幅内でランダムに変化させたＬＦＯ波形を発生するＬＦＯ波形発生処理と、前記ＬＦＯ波形発生処理にて生成されたＬＦＯ波形に応じて、発生楽音の音高、音色および音量を個別に変調して効果付与する効果付与処理とをコンピュータで実行させることを特徴とする。
【発明の効果】
【０００９】
請求項１、３に記載の発明によれば、第１および第２の波形区間毎の波形を指定すると共に、両波形区間に占める第１の波形区間の割合および第１および第２の波形区間毎の波高値変化幅を指定すると、第１および第２の波形区間の波形を指定された割合に応じて合成した連続波形の波高値を、第１および第２の波形区間毎に指定された変化幅内でランダムに変化させたＬＦＯ波形を発生し、発生したＬＦＯ波形に応じて発生楽音を変調して効果付与するので、ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与することが出来、より表現力の高いＬＦＯ効果を奏することが出来る。
【００１０】
請求項２、４に記載の発明によれば、第１および第２の波形区間毎の波形を指定し、第１および第２の波形区間に占める第１の波形区間の割合を指定し、第１および第２の波形区間毎の波高値変化幅を指定すると、第１および第２の波形区間毎の波形を指定された割合に応じて合成した周期波形であって、その周期波形の波高値を、第１および第２の波形区間毎に指定された変化幅内でランダムに変化させたＬＦＯ波形を発生し、発生したＬＦＯ波形に応じて、発生楽音の音高、音色および音量を個別に変調して効果付与するから、ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与することが出来、より表現力の高いＬＦＯ効果を奏することが出来る。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
（１）全体構成
図１は、本発明の実施の一形態である電子楽器１０の全体構成を示すブロック図である。電子楽器１０は、鍵盤１、操作部２、ＣＰＵ３、ＲＯＭ４、ＲＡＭ５、音源６、Ｄ／Ａ変換器７およびサウンドシステム８を備える。鍵盤１は、押離鍵操作（演奏操作）に応じたキーオン／キーオフ信号および鍵番号（あるいはノートナンバ）、ベロシティ等からなる演奏情報を発生する。操作部２は、楽器パネルに配設される各種スイッチを備え、スイッチ操作に応じたスイッチイベントを発生する。この操作部２に配設される主要なスイッチとして、波形選択スイッチ、同期モード選択スイッチおよびプレイスイッチ等が有り、これらスイッチ操作に対応した処理動作については追って詳述する。
【００１２】
ＣＰＵ３は、操作部２のスイッチ操作に応じて発生するスイッチイベントに基づき楽器各部の動作状態を設定したり、鍵盤１から供給される演奏情報に応じたコマンド（例えば、発音指示コマンドや消音指示コマンド等）を生成し、これを後述するＲＡＭ５に記憶されるパラメータと共に音源６に送出して楽音形成させる。本発明の要旨に係わるＣＰＵ３の処理動作については追って述べる。ＲＯＭ４は、上記ＣＰＵ３にロードされる各種制御プログラムや制御データ等を記憶する。ここで言う各種制御プログラムとは、後述するメインルーチンおよびスイッチ処理を含む。
【００１３】
ＲＡＭ５は、ＣＰＵ３のワークエリアとして用いられ、各種レジスタ・フラグデータを一時記憶する。ここで、図２を参照してＲＡＭ５に一時記憶される主要レジスタの内容を説明する。この図において、レジスタＤｕｔｙは、後述するＬＦＯ波形発生器６３（図３参照）が発生するＬＦＯ波形一周期全体に占める波形Ａ区間の割合を指定するパラメータを保持する。レジスタＷＦ＿Ａは、ＬＦＯ波形中のＡ区間を形成する波形テーブルを指定するパラメータ（波形番号）を保持する。レジスタＲＭｉｎ＿Ａは、ＬＦＯ波形中のＡ区間における乱数最小値を保持する。レジスタＲＭａｘ＿Ａは、ＬＦＯ波形中のＡ区間における乱数最大値を保持する。レジスタＷＦ＿Ｂは、ＬＦＯ波形中のＢ区間を形成する波形テーブルを指定するパラメータを保持する。レジスタＲＭｉｎ＿Ｂは、ＬＦＯ波形中のＢ区間における乱数最小値を保持する。レジスタＲＭａｘ＿Ｂは、ＬＦＯ波形中のＢ区間における乱数最大値を保持する。
【００１４】
フラグＳｙｎｃＭｏｄｅは、「１」の場合に拍同期モードを表し、「０」の場合に非拍同期モードを表す。レジスタＲａｔｅは、ＬＦＯ波形の読み出し位相レートを保持する。レジスタＢｅａｔは、ＬＦＯ波形を拍同期で発生させる際の拍数を保持する。レジスタＰＤは、後述の係数乗算器６４（図３参照）に与えるピッチ変調度を保持する。レジスタＦＤは、後述の係数乗算器６５（図３参照）に与えるフィルタ変調度を保持する。レジスタＡＤは、後述の係数乗算器６６（図３参照）に与える音量変調度を保持する。以上説明したレジスタＤｕｔｙ〜ＡＤの各内容は、ユーザ設定されるパラメータである。
【００１５】
レジスタＷＴ＿Ａは、上記レジスタＷＦ＿Ａで指定される波形テーブルの先頭アドレスを保持する。レジスタＷＴＳ＿Ａは、上記レジスタＷＦ＿Ａで指定される波形テーブルのサイズを保持する。レジスタＷＴ＿Ｂは、上記レジスタＷＦ＿Ｂで指定される波形テーブルの先頭アドレスを保持する。レジスタＷＴＳ＿Ｂは、上記レジスタＷＦ＿Ｂで指定される波形テーブルのサイズを保持する。レジスタＰＰは、ＬＦＯ波形の読み出し位相位置を保持する。フラグＳは乱数値設定処理フラグであり、意図するところについては追って述べる。レジスタＲは、乱数値を保持する。クロックカウンタＣＣは、タイマクロックのカウント値を保持する。レジスタＣＣ＿ＭＡＸは、１小節長分に相当するクロックカウント値を保持する。フラグＰｌａｙは、「０」の場合に演奏停止を、「１」の場合に演奏中を表すフラグである。
【００１６】
次に、再び図１を参照して実施形態の構成について説明を進める。図１において、音源６は、周知の波形メモリ読み出し方式にて構成され、自己の内部メモリに記憶する波形データの内、ＣＰＵ３から供給されるパラメータにて指定される音色の波形データを読み出し、読み出した波形データについてＣＰＵ３から供給される演奏情報に応じて波形修飾を施して楽音データを発生する。また、音源６では、ＣＰＵ３から供給されるＬＦＯ発生用のパラメータに応じて生成したＬＦＯ波形により楽音データの音高、音色および音量を変調して効果付加する。Ｄ／Ａ変換器７は、音源６から出力される楽音データをアナログ形式の楽音信号に変換して出力する。サウンドシステム８は、Ｄ／Ａ変換器７が出力する楽音信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカから発音させる。
【００１７】
（２）音源６の構成
次に、図３を参照して音源６の構成について説明する。音源６は周知のＤＳＰから構成される。したがって、図３はそのＤＳＰにおいて実行されるマイクロプログラムの各機能をハードウェアイメージとして捉らえた機能ブロックを図示している。
図３に図示するように、音源６は、発音チャンネルに対応して複数系統設けられる波形発生器６７、フィルタ６８、増幅器６９およびミキサ７０を備える。波形発生器６７は、周知の波形メモリ読み出し方式で構成され、ＣＰＵ３から供給される発音コマンドに従い、指定音色の波形データを指定音高で再生する一方、係数乗算器６４から供給されるピッチ変調信号に応じて再生音高を周波数変調する。係数乗算器６４は、後述するＬＦＯ波形発生器６３から供給されるＬＦＯ波形に、ＣＰＵ３から与えられるピッチ変調度ＰＤを乗算してピッチ変調信号を発生する。
【００１８】
フィルタ６８は、周知のＤＣＦ（デジタル制御フィルタ）から構成され、係数乗算器６５から供給されるカットオフ周波数変調信号に応じて、カットオフ周波数を変調してローパス特性を変化させ、これにより波形発生器６７が出力する波形データに音色変化を与える。係数乗算器６５は、後述するＬＦＯ波形発生器６３から供給されるＬＦＯ波形に、ＣＰＵ３から与えられるフィルタ変調度ＦＤを乗算してカットオフ周波数変調信号を発生する。
【００１９】
増幅器６９は、係数乗算器６６から供給される音量変調信号に応じて増幅率を可変制御してフィルタ６８が出力する波形データに音量変化を与える。係数乗算器６６は、後述するＬＦＯ波形発生器６３から供給されるＬＦＯ波形に、ＣＰＵ３から与えられる音量変調度ＡＤを乗算して音量変調信号を発生する。ミキサ７０は、発音チャンネルに対応した各増幅器６９の出力を合成する。
【００２０】
ＬＦＯ波形発生器６３は、図４に図示するように、波形一周期をＡ区間およびＢ区間に区分けしたＬＦＯ波形を発生する。つまり、ＬＦＯ波形発生器６３は、これら波形区間Ａ，Ｂにアサインする各種波形テーブルを備え、ユーザ設定される波形番号ＷＦ＿Ａ（Ａ区間），ＷＦ＿Ｂ（Ｂ区間）で指定される波形形状の波形テーブルを参照して波形発生する。
【００２１】
波形番号ＷＦ＿Ａ（ＷＦ＿Ｂ）は、「０」〜「３」の４種類の波形形状を指定する。図５に波形番号ＷＦ＿Ａ（ＷＦ＿Ｂ）と波形形状との対応関係を図示する。「０」の場合には図５（ａ）に図示する「三角波」、「１」の場合には図５（ｂ）に図示する「鋸波上り」、「２」の場合には図５（ｃ）に図示する「鋸波下り」、「３」の場合には図５（ｄ）に図示する「矩形波」の各波形テーブルをそれぞれ指定する。したがって、図４のＬＦＯ波形は、波形Ａ区間に「鋸波下り（図５（ｃ））」を、波形Ｂ区間に「三角波（図５（ａ））」をアサインした一例を図示している。
【００２２】
ＬＦＯ波形発生器６３では、こうした波形Ａ，Ｂ区間の割合をデューティ比で定義する。具体的には、ユーザ設定されるパラメータＤｕｔｙの値によって波形一周期全体に占める波形Ａ区間の割合を指定する。例えば、波形Ａ，Ｂ区間に「矩形波」を割り当て、かつパラメータＤｕｔｙが「０．６」であると、図６に図示する一例のように、デューティ比６０％のＬＦＯ波形となる。
【００２３】
また、ＬＦＯ波形発生器６３は、１６ビット長の乱数テーブルから読み出される乱数Ｒ（０〜６５５３５）と、波形区間毎に設定される乱数最大値ＲＭａｘ、乱数最小値ＲＭｉｎとから、ＲＭｉｎ＋Ｒ（ＲＭａｘ−ＲＭｉｎ）／６５５３５を算出し、これに得られるランダム値でＬＦＯ波形レベルをランダム変化させる。なお、波形Ａ区間の乱数最大値ＲＭａｘ＿Ａ、乱数最小値ＲＭｉｎ＿Ａおよび波形Ｂ区間の乱数最大値ＲＭａｘ＿Ｂ、乱数最小値ＲＭｉｎ＿Ｂは、ユーザ設定される値となる。
【００２４】
このように、ＬＦＯ波形発生器６３では、波形番号ＷＦ＿Ａ、ＷＦ＿Ｂにて波形Ａ、Ｂ各区間の波形形状を定め、パラメータＤｕｔｙにより波形一周期全体に占める波形Ａ区間の割合を定め、さらに乱数最大値ＲＭａｘ＿Ａ、乱数最小値ＲＭｉｎ＿Ａおよび乱数最大値ＲＭａｘ＿Ｂ、乱数最小値ＲＭｉｎ＿Ｂに応じてＬＦＯ波形レベルのランダム変化する波高値幅を制限することで、ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与するＬＦＯ波形を生成し得るようになっている。
【００２５】
例えば、パラメータＤｕｔｙを「０．５」、波形Ａ区間の波形番号ＷＦ＿Ａを「０（三角波）」、乱数最大値ＲＭａｘ＿Ａおよび乱数最小値ＲＭｉｎ＿Ａを「０」、波形Ｂ区間の波形番号ＷＦ＿Ｂを「３（矩形波）」、乱数最大値ＲＭａｘ＿Ｂを「１．０」、乱数最小値ＲＭｉｎ＿Ｂを「−１．０」とした場合には、図７に図示するように、波形Ａ区間が波形レベル「０」となり、波形Ｂ区間は波形レベルが「−１．０」〜「１．０」の範囲でランダムに変化するＬＦＯ波形となる。
【００２６】
さらに、例えばパラメータＤｕｔｙを「０．２５」、波形Ａ区間の波形番号ＷＦ＿Ａを「２（鋸波下り）」、乱数最大値ＲＭａｘ＿Ａを「−０．５」、乱数最小値ＲＭｉｎ＿Ａを「−１．０」、波形Ｂ区間の波形番号ＷＦ＿Ｂを「０（三角波）」、乱数最大値ＲＭａｘ＿Ｂを「０．５」、乱数最小値ＲＭｉｎ＿Ｂを「−０．５」とした場合には、図８に図示するように、波形Ａ区間では波形レベル「−１．０」〜「−０．５」の範囲でランダムに変化する鋸波下り波形となり、一方、波形Ｂ区間では、波形レベルが「−０．５」〜「０．５」の範囲でランダムに変化する三角波形を備えたＬＦＯ波形が生成される。
【００２７】
ＬＦＯ波形発生器６３は、図３に図示するように、ビートクロック発生器６１および位相発生器６２の出力に応じてＬＦＯ波形を発生する。位相発生器６２は、ＣＰＵ３から供給されるフラグＳｙｎｃＭｏｄｅに従って位相位置ＰＰを発生する。フラグＳｙｎｃＭｏｄｅは、「１」の場合に拍同期モードを表し、「０」の場合に非拍同期モードを表す。
【００２８】
フラグＳｙｎｃＭｏｄｅが「０」の非拍同期モードの場合、位相発生器６２は、レジスタＲａｔｅに格納されるＬＦＯ波形の読み出し位相レートに対応した位相増分を前回の位相位置ＰＰに累算して現在の位相位置ＰＰを算出し、算出した現在の位相位置ＰＰに従ってＬＦＯ波形読み出しを進行させる。なお、位相増分を累算した位相位置ＰＰが「１」を超えた場合には、「１」を減算し、それを現在のＬＦＯ波形の読み出し位相位置ＰＰに設定する。
【００２９】
フラグＳｙｎｃＭｏｄｅが「１」の拍同期モードの場合、位相発生器６２は、ビートクロック発生器６１のビート出力に同期して位相位置ＰＰを発生する。ビートクロック発生器６１は、ユーザ指定の拍数Ｂｅａｔに対応したタイミングでビートクロックを出力する。
例えば、最小単位時間であるタイマクロックを累算するタイマカウントＣＣが「９６クロック」をカウントした期間を「１拍」と定義した場合、ユーザ指定の拍数ｂｅａｔが４拍であると、タイマカウントＣＣが「３８４クロック」をカウントする毎にビートクロックを出力する。
【００３０】
Ｂ．動作
次に、上記構成による実施の形態の動作を説明する。以下では、図９〜図１０を参照してＣＰＵ３の動作を説明した後、図１１〜図１２を参照して音源６の動作を説明する。
【００３１】
（１）ＣＰＵ３の動作  
＜メインルーチンの動作＞  
上記構成による電子楽器１０をパワーオンすると、ＣＰＵ３は図９に示すメインルーチンを実行し、ステップＳＡ１に処理を進め、ＲＡＭ５に格納される各種レジスタ／フラグ類をリセットしたり、初期値セットする他、音源６に対して各種レジスタ・フラグを初期化するよう指示するイニシャライズを実行する。そして、イニシャライズが完了すると、ステップＳＡ２に処理を進め、操作部２におけるスイッチ操作に対応したスイッチ処理を行う。後述するように、スイッチ処理では、音源６のＬＦＯ波形発生器６３に与える各種パラメータを設定する。そして、ステップＳＡ３では、鍵盤１の押離鍵操作で発生する演奏情報に応じた発音／消音コマンドを音源６に送出する鍵盤処理を実行する。続いて、ステップＳＡ４では、例えばユーザ指定の曲データを再生して自動演奏する等の、その他の処理を実行した後、上記ステップＳＡ２に処理を戻し、以後、パワーオフされる迄、ステップＳＡ２〜ＳＡ４を繰り返す。
【００３２】
＜スイッチ処理の動作＞
次に、図１０を参照してスイッチ処理の動作について説明する。上述したメインルーチンのステップＳＡ２を介して本処理が実行されると、ＣＰＵ３は操作されるスイッチ種に対応した処理を実行する。以下では、音源６のＬＦＯ波形発生器６３に主要なパラメータを設定するスイッチ操作が行われた場合の各動作を述べる。
【００３３】
ａ．Ａ区間波形選択スイッチ操作
Ａ区間波形選択スイッチ操作が行われると、ステップＳＢ１の判断結果が「ＹＥＳ」になり、ステップＳＢ２に進む。ステップＳＢ２では、ＬＦＯ波形のＡ区間にアサインする波形テーブルを指定する選択波形番号をレジスタＷＦ＿Ａにストアすると共に、その指定された波形テーブルの先頭アドレスおよびテーブルサイズを、レジスタＷＴ＿Ａ、レジスタＷＴＳ＿Ａにそれぞれストアする。
【００３４】
ｂ．Ｂ区間波形選択スイッチ操作
Ｂ区間波形選択スイッチ操作が行われると、ステップＳＢ３の判断結果が「ＹＥＳ」になり、ステップＳＢ４に進む。ステップＳＢ４では、ＬＦＯ波形のＢ区間にアサインする波形テーブルを指定する選択波形番号をレジスタＷＦ＿Ｂにストアすると共に、その指定された波形テーブルの先頭アドレスおよびテーブルサイズを、レジスタＷＴ＿Ｂ、レジスタＷＴＳ＿Ｂにそれぞれストアする。
【００３５】
ｃ．同期モード選択スイッチ操作
同期モード選択スイッチ操作が行われると、ステップＳＢ５の判断結果が「ＹＥＳ」になり、ステップＳＢ６に進み、フラグＳｙｎｃＭｏｄｅを反転させると共に、ＬＦＯ波形の読み出し位相位置を保持するレジスタＰＰをゼロリセットし、さらに乱数値設定処理フラグＳに「１」をセットする。
【００３６】
ｄ．プレイスイッチ操作
プレイスイッチ操作が行われると、ステップＳＢ７の判断結果が「ＹＥＳ」になり、ステップＳＢ８に進み、演奏停止／演奏中を表すフラグＰｌａｙを反転させると共に、クロックカウンタＣＣをゼロリセットする。
【００３７】
そして、この後、ステップＳＢ９に進み、例えばＬＦＯ波形一周期全体に占める波形Ａ区間の割合を指定するパラメータＤｕｔｙや、ＬＦＯ波形Ａ区間の乱数最大値ＲＭａｘ＿Ａ、乱数最小値ＲＭｉｎ＿ＡおよびＬＦＯ波形Ｂ区間の乱数最大値ＲＭａｘ＿Ｂ、乱数最小値ＲＭｉｎ＿Ｂを設定する、その他のスイッチ処理を実行してから本処理を完了させる。
【００３８】
（２）音源６の動作  
次に、図１１〜図１２を参照して音源６の動作を説明する。音源６では、前述のビートクロック発生器６１の機能を具現する拍タイマ処理と、前述のＬＦＯ波形発生器６３の機能を具現するＬＦＯタイマ処理とを実行する。以下、拍タイマ処理およびＬＦＯタイマ処理の各動作を述べる。
【００３９】
＜拍タイマ処理の動作＞  
音源６では一定周期毎に本処理をタイマ割込みにて実行し、割込み実行タイミングになると、図１１に図示するステップＳＣ１に進み、タイマクロックをカウントするクロックカウンタＣＣをインクリメントして歩進させ、続くステップＳＣ２では、クロックカウンタＣＣの累算値がレジスタＣＣ＿ＭＡＸより大きいか否かを判断する。ここで、レジスタＣＣ＿ＭＡＸには、１小節長分に相当するクロックカウント値が保持されている。したがって、このステップＳＣ２では、１小節経過したかどうかを判断している。１小節経過すると、判断結果は「ＹＥＳ」になり、ステップＳＣ３に進み、クロックカウンタＣＣをゼロリセットする。一方、１小節経過していなければ、上記ステップＳＣ２の判断結果が「ＮＯ」になり、本処理を完了させる。
このように、拍タイマ処理では、１小節経過するまでタイマ割込み実行タイミング毎にクロックカウンタＣＣを歩進させてタイマクロックを累算し、１小節経過する毎にクロックカウンタＣＣをゼロリセットするようになっている。
【００４０】
＜ＬＦＯタイマ処理の動作＞  
音源６では一定周期毎に本処理をタイマ割込みにて実行し、割込み実行タイミングになると、図１２に図示するステップＳＤ１に進み、フラグＳｙｎｃＭｏｄｅが「１」で、かつフラグＰｌａｙが「１」であるか、すなわち自動演奏に同期してＬＦＯ波形を発生させる拍同期モードに設定されており、かつ現在演奏中であるかどうかを判断する。
【００４１】
拍同期モードに設定されていない場合、つまり非拍同期モードである場合か、または現在演奏中でない場合は、判断結果は「ＮＯ」になり、ステップＳＤ２に進む。ステップＳＤ２では、レジスタＲａｔｅに格納されるＬＦＯ波形の読み出し位相レートに対応した位相増分をテーブルＤＰ［Ｒａｔｅ］から読み出してレジスタＰＰに加算する。位相増分が加算されたレジスタＰＰの値（ＬＦＯ波形の読み出し位相位置）が「１」を超えた場合には、レジスタＰＰから「１」を減算した値を、現在のＬＦＯ波形の読み出し位相位置としてレジスタＰＰにストアする。
【００４２】
一方、自動演奏に同期してＬＦＯ波形を発生させる拍同期モードであり、かつ現在演奏中であると、上記ステップＳＤ１の判断結果が「ＹＥＳ」になり、ステップＳＤ３に進む。ステップＳＤ３では、（（ＣＣ／（９６×Ｂｅａｔ））の剰余）／（９６×Ｂｅａｔ）にて算出される値を、現在のＬＦＯ波形の読み出し位相位置としてレジスタＰＰにストアする。なお、上記式におけるＣＣは拍タイマ処理にてカウントされるクロックカウンタＣＣの値、ＢｅａｔはＬＦＯ波形を拍同期で発生させる際の拍数であり、レジスタＢｅａｔにユーザ設定される値である。
【００４３】
次いで、ステップＳＤ４では、位相位置ＰＰがレジスタＤｕｔｙの値より大きいか否か、つまり、位相位置ＰＰがＢ区間であるかどうかを判断する。以下、位相位置ＰＰがＡ区間内にある場合の処理と、Ｂ区間内にある場合の処理とに分けて動作説明を進める。
【００４４】
ａ．位相位置ＰＰがＡ区間内にある場合  
位相位置ＰＰがＡ区間内にあると、上記ステップＳＤ４の判断結果は「ＮＯ」になり、ステップＳＤ５に進む。ステップＳＤ５では、フラグＳが「０」であるか否かを判断する。初期設定時、フラグＳは「１」なので、最初のパスであると、ここでの判断結果は「ＮＯ」になり、ステップＳＤ６に進む。なお、次回以降のパスでは、後述するように、ステップＳＤ６にてフラグＳがゼロリセットされる為、ステップＳＤ５の判断結果は「ＹＥＳ」になり、ステップＳＤ７に進むようになる。
【００４５】
さて、最初のパスで実行されるステップＳＤ６では、フラグＳをゼロリセットする一方、１６ビット長の乱数テーブルから読み出した乱数値をレジスタＲにストアする。さらに、波形Ａ区間においてユーザ設定された乱数最大値ＲＭａｘ＿Ａおよび乱数最小値ＲＭｉｎ＿Ａに基づき、ＲＭｉｎ＿Ａ＋（Ｒ／６５５３５）×（ＲＭａｘ＿Ａ−ＲＭｉｎ＿Ａ）なる式で調整されたランダム値をレジスタＲにストアした後、乱数テーブル読み出しポインタを更新する。
【００４６】
次いで、ステップＳＤ７では、ＬＦＯ波形のＡ区間にアサインされた波形テーブルの先頭アドレス（ＷＴ＿Ａ）、テーブルサイズ（ＷＴＳ＿Ａ）、位相位置ＰＰおよびＤｕｔｙに基づき、ＬＦＯ波形のＡ区間にアサインされた波形テーブルから位相位置ＰＰに対応する波形値ＷＴ＿Ａ［ＷＴＳ＿Ａ×ＰＰ／Ｄｕｔｙ］を読み出し、それにレジスタＲのランダム値を乗算してＬＦＯ波形値ｖを算出する。なお、ここで言うレジスタＲのランダム値とは、上記ステップＳＤ６にて乱数最大値ＲＭａｘ＿Ａおよび乱数最小値ＲＭｉｎ＿Ａに応じて調整された乱数値Ｒを指す。
【００４７】
この後、ステップＳＤ８に進み、レジスタＰＤにストアされたピッチ変調度、レジスタＦＤにストアされたフィルタ変調度およびレジスタＡＤにストアされた音量変調度に、それぞれＬＦＯ波形値ｖを乗算してピッチ変調信号ＰＭ、カットオフ周波数変調信号ＦＭおよび音量変調信号ＡＭを発生する。ピッチ変調信号ＰＭ、カットオフ周波数変調信号ＦＭおよび音量変調信号ＡＭは、前述の係数乗算器６４〜６６の各出力に相当し、それぞれ波形発生器６７、フィルタ６８および増幅器６９に送出して本処理を終える。
【００４８】
ｂ．位相位置ＰＰがＢ区間内にある場合  
位相位置ＰＰがＢ区間内にあると、上述したステップＳＤ４の判断結果が「ＹＥＳ」となり、ステップＳＤ９に進む。ステップＳＤ９では、フラグＳが「１」であるか否かを判断する。前述した波形Ａ区間の処理を終えた時点でフラグＳはゼロリセットされているので、最初のパスは判断結果が「ＮＯ」になり、ステップＳＤ１０に進む。なお、次回以降のパスでは、後述するように、ステップＳＤ１０にてフラグＳが「１」にセットされる為、ステップＳＤ９の判断結果は「ＹＥＳ」になり、ステップＳＤ１１に進むようになる。
【００４９】
さて、最初のパスで実行されるステップＳＤ１０では、フラグＳに「１」をセットする一方、１６ビット長の乱数テーブルから読み出した乱数値をレジスタＲにストアする。さらに、波形Ｂ区間においてユーザ設定された乱数最大値ＲＭａｘ＿Ｂおよび乱数最小値ＲＭｉｎ＿Ｂに基づき、ＲＭｉｎ＿Ｂ＋（Ｒ／６５５３５）×（ＲＭａｘ＿Ｂ−ＲＭｉｎ＿Ｂ）なる式で調整されたランダム値をレジスタＲにストアした後、乱数テーブル読み出しポインタを更新する。
【００５０】
次いで、ステップＳＤ１１では、ＬＦＯ波形のＢ区間にアサインされた波形テーブルの先頭アドレス（ＷＴ＿Ｂ）、テーブルサイズ（ＷＴＳ＿Ｂ）、位相位置ＰＰおよびＤｕｔｙに基づき、ＬＦＯ波形のＢ区間にアサインされた波形テーブルから位相位置ＰＰに対応する波形値ＷＴ＿Ｂ［ＷＴＳ＿Ｂ×（ＰＰ−Ｄｕｔｙ）／（１−Ｄｕｔｙ）］を読み出し、それにレジスタＲのランダム値を乗算してＬＦＯ波形値ｖを算出する。なお、ここで言うレジスタＲのランダム値とは、上記ステップＳＤ１０にて乱数最大値ＲＭａｘ＿Ｂおよび乱数最小値ＲＭｉｎ＿Ｂに応じて調整された乱数値Ｒを指す。
【００５１】
この後、ステップＳＤ８に進み、レジスタＰＤにストアされたピッチ変調度、レジスタＦＤにストアされたフィルタ変調度およびレジスタＡＤにストアされた音量変調度に、それぞれＬＦＯ波形値ｖを乗算してピッチ変調信号ＰＭ、カットオフ周波数変調信号ＦＭおよび音量変調信号ＡＭを発生する。ピッチ変調信号ＰＭ、カットオフ周波数変調信号ＦＭおよび音量変調信号ＡＭは、前述の係数乗算器６４〜６６の各出力に相当し、それぞれ波形発生器６７、フィルタ６８および増幅器６９に送出して本処理を終える。
【００５２】
以上説明したように、本実施の形態では、Ａ区間およびＢ区間に区分けされるＬＦＯ波形の各区間毎の波形形状を決めてから、パラメータＤｕｔｙにより波形一周期全体に占める波形Ａ区間の割合を定め、さらにＡ区間におけるＬＦＯ波高値のランダム変化幅およびＢ区間におけるＬＦＯ波高値のランダム変化幅を制限して得られるＬＦＯ波形に応じて、発生楽音の音高、音色および音量を変調して効果付与するようにしたので、ある程度ユーザが意図した効果を付与しつつ、予期し得ない極端な変化の効果も付与することが出来、より表現力の高いＬＦＯ効果を奏することが可能になっている。
【図面の簡単な説明】
【００５３】
【図１】本発明による実施の一形態の全体構成を示すブロック図である。
【図２】ＲＡＭ５に格納される主要レジスタ・フラグデータの構成を示す図である。
【図３】音源６の構成を示すブロック図である。
【図４】ＬＦＯ波形のＡ区間およびＢ区間を説明するための波形例を示す図である。
【図５】波形番号ＷＦ＿Ａ（ＷＦ＿Ｂ）に対応した波形形状を示す図である。
【図６】デューティ比６０％のＬＦＯ波形の一例を示す図である。
【図７】ＬＦＯ波形生成の一例を示す図である。
【図８】ＬＦＯ波形生成の一例を示す図である。
【図９】ＣＰＵ３が実行するメインルーチンの動作を示すフローチャートである。
【図１０】ＣＰＵ３が実行するスイッチ処理の動作を示すフローチャートである。
【図１１】音源６が実行する拍タイマ処理の動作を示すフローチャートである。
【図１２】音源６が実行するＬＦＯタイマ処理の動作を示すフローチャートである。
【符号の説明】
【００５４】
１  鍵盤
２  操作部
３  ＣＰＵ
４  ＲＯＭ
５  ＲＡＭ
６  音源
７  Ｄ／Ａ変換器
８  サウンドシステム
１０  電子楽器
６１  ビートクロック発生器
６２  位相発生器
６３  ＬＦＯ波形発生器
６４〜６６  係数乗算器
６７  波形発生器
６８  フィルタ
６９  増幅器
７０  ミキサ
【図１】
2006058595.tif 000003
【図２】
2006058595.tif 000004
【図３】
2006058595.tif 000005
【図４】
2006058595.tif 000006
【図５】
2006058595.tif 000007
【図６】
2006058595.tif 000008
【図７】
2006058595.tif 000009
【図８】
2006058595.tif 000010
【図９】
2006058595.tif 000011
【図１０】
2006058595.tif 000012
【図１１】
2006058595.tif 000013
【図１２】
2006058595.tif 000014