(57)【要約】【課題】ノイズ低減や音量制御を行う際の乗算処理の回数を削減して楽音発生の高速処理を実現することにより、音切れなどの不具合が発生しないようにする。【解決手段】ノイズゲート閉補間手段８２は、入力される波形データの振幅が所定のスレッシュレベル以下である場合には、その波形データに対する乗算器８７の乗算係数を補間しつつ最小値０まで変化するように設定し、ボリュームアップ／ノイズゲート開共通補間手段８４は、入力される波形データの振幅がスレッシュレベルを超える場合には、その波形データに対する乗算器８７の乗算係数を補間しつつ最大値１まで変化するように設定する。ボリュームダウン補間手段８３およびボリュームアップ／ノイズゲート開共通補間手段８４は、それぞれ入力される波形データの振幅に対する乗算器８７の乗算係数を補間しつつ目的値まで変化するように設定する。【選択図】        図２
2005043399.tif 000002
【特許請求の範囲】
【請求項１】
入力信号の振幅が所定の閾値以下である場合には、乗算係数を所定のリリースレートで補間しつつ最小値まで変化するように設定する第１の設定手段と、
前記入力信号の振幅が前記閾値を超える場合には、前記乗算係数を所定のアタックレートで補間しつつ最大値まで変化するように設定する第２の設定手段と、
前記乗算係数を所定のリリースレートおよび所定のアタックレートで補間しつつ目的値まで変化するように設定する第３の設定手段と、
前記第１の設定手段、前記第２の設定手段および前記第３の設定手段により設定された乗算係数を前記入力信号に乗算する乗算手段と、
を備えた音量制御装置。
【請求項２】
前記第１の設定手段および前記第３の設定手段は、それぞれ独立したリリースレートで変化するように前記乗算係数を設定することを特徴とする請求項１記載の音量制御装置。
【請求項３】
入力信号の振幅が所定の閾値以下である場合には、乗算係数を所定のリリースレートで補間しつつ最小値まで変化するように設定する第１のステップと、
前記入力信号の振幅が前記閾値を超える場合には、前記乗算係数を所定のアタックレートで補間しつつ最大値まで変化するように設定する第２のステップと、
前記乗算係数を所定のリリースレートおよび所定のアタックレートで補間しつつ目的値まで変化するように設定する第３のステップと、
前記第１のステップ、前記第２のステップおよび前記第３のステップにより設定された乗算係数を前記入力信号に乗算する第４のステップと、
を実行する音量制御処理のプログラム。
【請求項４】
前記第１のステップおよび前記第３のステップは、それぞれ独立したリリースレートで変化するように前記乗算係数を設定することを特徴とする請求項３記載の音量制御処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音量制御装置および音量制御処理のプログラムに関し、特に、ノイズ除去機能を具備した電子楽器などの楽音発生装置における音量制御装置および音量制御処理のプログラムに関する。
【０００２】
【従来の技術】
従来、音声処理においてノイズを除去するノイズゲート装置に関する提案がある。この提案では、音声信号を増幅するヘッドアンプと、前記ヘッドアンプの増幅度を決定するゲイン設定操作子と、前記ゲイン設定操作子により定められた設定値を閾値に変換するパラメータ変換手段と、前記閾値以下の振幅を持つ信号成分を除去するノイズゲートとを備え、前記ゲイン設定操作子による前記ヘッドアンプの増幅度変化に応じて前記ノイズゲートの閾値を変化させるように構成される。このような構成により、ヘッドアンプの増幅度が大きい時には入力換算雑音以下の信号を遮断するように動作し、増幅度が小さい時には予め設定されたノイズ除去閾値で音声を遮断するノイズゲート装置として動作させることができ、操作時の煩雑さの低減、操作の簡易化を図ることができる（特許文献１参照）。
【０００３】
このようなノイズゲート装置によって、前段（例えば、音源部）から入力される信号の波形データを遮断したり又は遮断を解除して波形データを次段（例えば、Ｄ／Ａコンバータ）に出力する際、すなわち、ノイズゲート開からノイズゲート閉に切換えたり又はノイズゲート閉からノイズゲート開に切換える際には、その切換え時に発生するノイズを防止することが必要である。このため、波形データを遮断する際にはそのレベルを徐々に下げてゼロまで減衰させる補間処理、および、遮断を停止する際には徐々にレベルを上げて波形データの入力レベルに達するような補間処理を行う。そのために、ノイズゲートと音量制御用の電子ボリュームが用いられている。
【０００４】
図９は、ノイズゲートと電子ボリュームとを用いた従来の音量制御装置の構成を示すブロック図である。ノイズゲート２０は、乗算器２１および電子出力ボリューム補正手段２２で構成されている。電子出力ボリューム補正手段２２内には、波形データへの乗算係数の現在値をストアするレジスタであるＶｏ＿ｎｏｗ、および、波形データへの乗算係数の設定値をストアするレジスタであるＶｏ＿ｓｅｔが設けられている。
【０００５】
電子ボリューム３０は、乗算器３１、ノイズゲート開閉判定手段３２、ノイズゲート閉補間手段３３、ノイズゲート開補間手段３４、および開閉スイッチ３５で構成されている。ノイズゲート開閉判定手段３２内には、ノイズゲートを閉めるスレッシュレベルを設定するレジスタであるＴｈｒ＿ｌｖｌ、スレッシュレベル以下の波形データが何回連続したかを記録するレジスタであるＵ＿ｔｈ＿ｔｉｍｅ、ノイズゲートを閉めることを決定するＵ＿ｔｈ＿ｔｉｍｅの連続回数をストアするレジスタであるＨｌｄ＿ｔｉｍｅが設けられている。
【０００６】
ノイズゲート閉補間手段３３には、ノイズゲートを閉にする際に、どれだけのリリースレートで乗算係数を落としていくかを設定するレジスタであるＮｇ＿ｒｒｔが設けられている。ノイズゲート開補間手段３４内には、ノイズゲートを開にする際に、どれだけのアタックレートで乗算係数を上げていくかを設定するレジスタであるＮｇ＿ａｒｔが設けられている。また、ノイズゲート閉補間手段３３およびノイズゲート開補間手段３４で共通に利用するレジスタとして、現在の乗算係数をストアするＮｇ＿ｎｏｗが電子ボリューム３０内に設けられている。
【０００７】
次に、この音量制御装置の動作について説明する。図１０は、一定時間ごとに実行するタイマインタラプト処理のフローチャートである。まず、電子出力ボリューム補間処理を行って（ステップＳＧ１）、波形データにＶｏ＿ｎｏｗのデータを乗算する（ステップＳＧ２）。次に、ノイズゲート開閉判定処理を行う（ステップＳＧ３）。そして、ノイズゲートが閉であるか否かを判別する（ステップＳＧ４）。ノイズゲートが閉である場合には、ノイズゲート閉補間処理を行い（ステップＳＧ５）、ノイズゲートが開である場合には、ノイズゲート開補間処理を行う（ステップＳＧ６）。ノイズゲート閉補間処理又はノイズゲート開補間処理を行った後は、波形データにＮｇ＿ｎｏｗのデータを乗算する（ステップＳＧ７）。そして、このフローチャートを終了する。
【０００８】
図１１は、図１０のタイマインタラプト処理におけるステップＳＧ３のノイズゲート開閉判定処理のフローチャートである。まず、出力波高値の絶対値を取得する（ステップＳＨ１）。次に、その出力波高値はスレッシュレベル設定値Ｔｈｒ＿ｌｖｌを超えているか否かを判別する（ステップＳＨ２）。超えていない場合には、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅをインクリメントする（ステップＳＨ３）。この場合において、桁溢れが発生しないように計算桁の最大値でリミットをかける。
【０００９】
次に、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅはホールドタイムＨｌｄ＿ｔｉｍｅの設定値を超えているか否かを判別する（ステップＳＨ４）。一方、ステップＳＨ２において、出力波高値がスレッシュレベル設定値Ｔｈｒ＿ｌｖｌを超えている場合には、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅを０にクリアする（ステップＳＨ５）。Ｕ＿ｔｈ＿ｔｉｍｅを０にクリアした後、又は、ステップＳＨ４において、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがホールドタイムＨｌｄ＿ｔｉｍｅの設定値を超えていない場合には、ノイズゲートを開にするか、又は開の状態を維持する（ステップＳＨ６）。一方、ステップＳＨ４において、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがホールドタイムＨｌｄ＿ｔｉｍｅの設定値を超えている場合には、ノイズゲートを閉にする（ステップＳＨ７）。ステップＳＨ６又はステップＳＨ７において、ノイズゲートを開又は閉にした後は、このフローチャートを終了して図１０のフローチャートに戻る。
【００１０】
図１２は、図１０のタイマインタラプト処理におけるステップＳＧ５のノイズゲート閉補間処理のフローチャートである。この処理では、現在の乗算係数であるＮｇ＿ｎｏｗの値からリリースレートＮｇ＿ｒｒｔの値を減算し（ステップＳＪ１）、Ｎｇ＿ｎｏｗの値が０より小さくなったか否かを判別する（ステップＳＪ２）。Ｎｇ＿ｎｏｗの値が０より小さくなった場合には、Ｎｇ＿ｎｏｗの値を０に設定する（ステップＳＪ３）。Ｎｇ＿ｎｏｗの値を０に設定した後、又は、ステップＳＪ２において、Ｎｇ＿ｎｏｗの値が０以上である場合には、このフローチャートを終了して、図１０のフローチャートに戻る。
【００１１】
図１３は、図１０のタイマインタラプト処理におけるステップＳＧ６のノイズゲート開補間処理のフローチャートである。この処理では、現在の乗算係数であるＮｇ＿ｎｏｗの値にアタックレートＮｇ＿ａｒｔの値を加算し（ステップＳＫ１）、Ｎｇ＿ｎｏｗの値が１より大きくなったか否かを判別する（ステップＳＫ２）。Ｎｇ＿ｎｏｗの値が１より大きくなった場合には、Ｎｇ＿ｎｏｗの値を１に設定する（ステップＳＫ３）。Ｎｇ＿ｎｏｗの値を１に設定した後、又は、ステップＳＫ２において、Ｎｇ＿ｎｏｗの値が１以下である場合には、このフローチャートを終了して、図１０のフローチャートに戻る。
【００１２】
図１４は、電子ボリューム２０の補間の推移を表す図である。この図において、乗算係数の設定値Ｖｏ＿ｓｅｔが変化したときには、乗算係数の現在値Ｖｏ＿ｎｏｗはＶｏ＿ｓｅｔに達するまで所定の割合で変化する。
【００１３】
図１５は、ノイズゲート３０の補間の推移を表す図である。電子ボリューム２０からノイズゲート３０に入力される波形データの波高値（絶対値）がＴｈｒ＿ｌｖｌのスレッシュレベルに対して図１５の上側に示すように変化した場合には、ノイズゲート乗算係数は図１５の下側に示すように変化する。
【００１４】
すなわち、波形データの波高値がＴｈｒ＿ｌｖｌより小さくなったときは、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがＨｌｄ＿ｔｉｍｅの設定値を超えるまではノイズゲートは開の状態を維持し、Ｈｌｄ＿ｔｉｍｅの設定値を超えたときから、ノイズゲートは閉に変化する。そして、ノイズゲート乗算係数Ｎｇ＿ｎｏｗはＮｇ＿ｒｒｔのリリースレートで次第に小さくなり、０になる。
【００１５】
その後、波形データの波高値がＴｈｒ＿ｌｖｌより大きくなったときは、ノイズゲートはすぐに開に変化し、ノイズゲート乗算係数は電子ボリューム２０と同じＮｇ＿ａｒｔのアタックレートで次第に大きくなる。そして、再び波形データの波高値がＴｈｒ＿ｌｖｌより小さくなったときは、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがＨｌｄ＿ｔｉｍｅの設定値を超えるまではノイズゲートは開の状態を維持し、Ｈｌｄ＿ｔｉｍｅの設定値を超えたときから、ノイズゲートは閉に変化する。そして、ノイズゲート乗算係数はＮｇ＿ｒｒｔのリリースレートで次第に小さくなる。さらにその後、波形データの波高値がＴｈｒ＿ｌｖｌより大きくなったときは、ノイズゲートはすぐに開に変化し、ノイズゲート乗算係数はＮｇ＿ａｒｔのアタックレートで次第に大きくなる。
【００１６】
【特許文献１】
特開２００３−５２０９６号公報（段落番号「００１２」、「００１３」）
【００１７】
【発明が解決しようとする課題】
しかしながら、従来の技術における音量制御装置においては、ノイズゲートと電子ボリュームとは別個のハードウェアで構成され、それぞれに乗算器を備えた構成になっている。あるいは、ＤＳＰなどのプログラムで同じ乗算器を時分割で使用する構成になっている。いずれの構成においても、１つのチャンネルに対して２回の乗算処理を行うことになる。通常は、左右の２チャンネルからなるステレオの楽音信号を発生するので、４回の乗算処理を行う必要があった。この結果、乗算処理のために高速処理が要求される楽音発生に支障をきたす原因となり、音切れが生じるおそれがあるという課題があった。また、ノイズゲートと電子ボリュームとが同じリリースレートで楽音信号の振幅制御がされるので、音量制御の自由度が制限されるという課題があった。
【００１８】
本発明は、このような従来の課題を解決するものであり、ノイズ低減や音量制御を行う際の乗算処理の回数を削減して楽音発生の高速処理を実現することにより、音切れなどの不具合が発生しないようにするとともに、ノイズ低減処理と音量減衰処理とを独立させることにより、音量制御の自由度を大きくできる音量制御装置および音量制御処理のプログラムを提供することを目的とする。
【００１９】
【課題を解決するための手段】
請求項１に記載の音量制御装置（実施形態においては、図１のノイズゲート／電子ボリューム８に相当する）は、入力信号の振幅が所定の閾値（実施形態においては、Ｔｈｒ＿ｌｖｌに相当する）以下である場合には、乗算係数（実施形態においては、Ｖｏ＿ｎｏｗに相当する）を所定のリリースレート（実施形態においては、Ｎｇ＿ｒｒｔに相当する）で補間しつつ最小値（実施形態においては、０に相当する）まで変化するように設定する第１の設定手段（実施形態においては、図２のノイズゲート閉補間手段８２に相当する）と、入力信号の振幅が閾値を超える場合には、乗算係数を所定のアタックレート（実施形態においては、ＶｏＮｇ＿ａｒｔに相当する）で補間しつつ最大値（実施形態においては、１に相当する）まで変化するように設定する第２の設定手段（実施形態においては、図２のボリュームアップ／ノイズゲート開共通補間手段８４に相当する）と、乗算係数を所定のリリースレート（実施形態においては、Ｖｏ＿ｒｒｔに相当する）および所定のアタックレート（実施形態においては、ＶｏＮｇ＿ａｒｔに相当する）で補間しつつ目的値（実施形態においては、Ｖｏ＿ｓｅｔに相当する）まで変化するように設定する第３の設定手段（実施形態においては、図２のボリュームダウン補間手段８３、ボリュームアップ／ノイズゲート開共通補間手段８４に相当する）と、第１の設定手段、第２の設定手段および第３の設定手段により設定された乗算係数を入力信号に乗算する乗算手段（実施形態においては、図２の乗算器８７に相当する）とを備えた構成になっている。
【００２０】
この場合において、請求項２に記載したように、第１の設定手段および第３の設定手段は、それぞれ独立したリリースレートで変化するように乗算係数を設定するような構成にしてもよい。
【００２１】
請求項３に記載の音量制御処理のプログラムは、入力信号の振幅が所定の閾値（実施形態においては、Ｔｈｒ＿ｌｖｌに相当する）以下である場合には、乗算係数（実施形態においては、Ｖｏ＿ｎｏｗに相当する）を所定のリリースレート（実施形態においては、Ｎｇ＿ｒｒｔに相当する）で補間しつつ最小値（実施形態においては、０に相当する）まで変化するように設定する第１のステップ（実施形態においては、図６のノイズゲート閉補間処理のフローチャートに相当する）と、入力信号の振幅が閾値を超える場合には、乗算係数を所定のアタックレート（実施形態においては、ＶｏＮｇ＿ａｒｔに相当する）で補間しつつ最大値（実施形態においては、１に相当する）まで変化するように設定する第２のステップ（実施形態においては、図８のボリュームアップ／ノイズゲート開共通補間処理のフローチャートに相当する）と、乗算係数を所定のリリースレート（実施形態においては、Ｖｏ＿ｒｒｔに相当する）および所定のアタックレート（実施形態においては、ＶｏＮｇ＿ａｒｔに相当する）で補間しつつ目的値（実施形態においては、Ｖｏ＿ｓｅｔに相当する）まで変化するように設定する第３のステップ（実施形態においては、図７のボリュームダウン補間処理および図８のボリュームアップ／ノイズゲート開共通補間処理のフローチャートに相当する）と、第１のステップ、第２のステップおよび第３のステップにより設定された乗算係数を入力信号に乗算する第４のステップ（実施形態においては、図４のタイマインタラプト処理のステップＳＢ７の処理に相当する）とを実行する。
【００２２】
この場合において、請求項４に記載したように、第１のステップおよび第３のステップは、それぞれ独立したリリースレートで変化するように乗算係数を設定するような構成にしてもよい。
【００２３】
【発明の実施の形態】
以下、本発明による音量制御装置の実施形態について、電子鍵盤楽器を例に採って図を参照して説明する。
図１は、実施形態における電子鍵盤楽器の構成を示すブロック図である。この図において、ＣＰＵ１は、システムバスを介して、プログラムメモリ２、ワークメモリ３、スイッチ４、鍵盤５、音源部６、ノイズゲート／電子ボリューム８に接続されており、これら各部との間でコマンドおよびデータを授受しながら、この電子鍵盤楽器全体を制御する。
【００２４】
プログラムメモリ２は、ＣＰＵ１によって実行される音量制御処理のプログラムやそのプログラムの起動時の初期データなどをあらかじめ記憶している。ワークメモリ３は、スイッチ４や鍵盤５から入力されるコマンドやデータおよびＣＰＵ１によって処理されるデータを一時的に記憶するとともに、自動演奏の曲データを記憶するエリアを備えている。スイッチ４は、自動演奏のスタート／ストップスイッチ、曲選択スイッチ、レッスンモードスイッチ、音色スイッチなどで構成されている。鍵盤５は、演奏操作に応じて鍵番号すなわち音高およびベロシティを入力する。
【００２５】
音源部６は、楽音波形メモリ７に接続されており、ＣＰＵ１からの発音コマンドおよび楽音データに応じて、対応する波形データを楽音波形メモリ７から読み出して、ノイズゲート／電子ボリューム８に出力する。ノイズゲート／電子ボリューム８は、その波形データを処理してＤ／Ａコンバータ９に出力する。Ｄ／Ａコンバータ９は、その波形データをアナログ信号に変換して、アナログフィルタ１０、アンプ１１を介してスピーカ１２から発音させる。
【００２６】
図２は、１つのチャンネルにおけるノイズゲート／電子ボリューム８の内部構成を示すブロック図である。この図に示すように、ノイズゲート／電子ボリューム８は、ノイズゲート開閉判定手段および現在値と設定値とを比較する比較手段からなる判定／比較手段８１、ノイズゲート閉補間手段８２、ボリュームダウン補間手段８３、ボリュームアップ／ノイズゲート開共通補間手段８４、スイッチ８５および８６、乗算器８７で構成されている。
【００２７】
判定／比較手段８１内には、ノイズゲートを閉めるスレッシュレベルを設定するレジスタであるＴｈｒ＿ｌｖｌ、スレッシュレベル以下の信号が何回連続したかを記録するレジスタであるＵ＿ｔｈ＿ｔｉｍｅ、ノイズゲートを閉めることを決定するＵ＿ｔｈ＿ｔｉｍｅの連続回数をストアするレジスタであるＨｌｄ＿ｔｉｍｅが設けられている。ノイズゲート閉補間手段８２内には、ノイズゲートを閉にする際に、どれだけのリリースレートで乗算係数を落としていくかを設定するレジスタであるＮｇ＿ｒｒｔが設けられている。ボリュームダウン補間手段８３内には、波形データの振幅を減衰する際に、どれだけのリリースレートで乗算係数を落としていくかを設定するレジスタであるＶｏ＿ｒｒｔが設けられている。ボリュームアップ／ノイズゲート開共通補間手段８４内には、波形データの振幅を増幅する際、又は、ノイズゲートを開にする際に、どれだけのアタックレートで乗算係数を上げていくかを設定するレジスタであるＶｏＮｇ＿ａｒｔが設けられている。
【００２８】
スイッチ８６は、判定／比較手段８１からの切替信号ｄｅｃ＿ｆｌｇの値（１又は０）に応じて、ボリュームダウン補間手段８３又はボリュームアップ／ノイズゲート開共通補間手段８４のいずれか一方から出力される乗算係数を選択する。スイッチ８５は、判定／比較手段８１からの切替信号に応じて、スイッチ８６の出力の乗算係数又はノイズゲート閉補間手段８２からの乗算係数のいずれか一方を選択して、乗算器８７に出力する。乗算器８７は、音源部６から出力される波形データにスイッチ８５から出力される乗算係数Ｖｏ＿ｎｏｗを乗算して、Ｄ／Ａコンバータ９に出力する。
【００２９】
また、判定／比較手段８１、ノイズゲート閉補間手段８２、ボリュームダウン補間手段８３、およびボリュームアップ／ノイズゲート開共通補間手段８４で共通に利用するレジスタとして、現在の乗算係数をストアするＶｏ＿ｎｏｗおよび乗算係数の最終的な到達値をストアするレジスタであるＶｏ＿ｓｅｔがノイズゲート／電子ボリューム８内に設けられている。
【００３０】
次に、図１の電子鍵盤楽器の動作について、ＣＰＵ１によって実行されるフローチャートを参照して説明する。
図３は、メインルーチンのフローチャートであり、初期化処理を行って（ステップＳＡ１）、スイッチ４のオン／オフを検出して対応する処理を行うスイッチ処理（ステップＳＡ２）、鍵盤５の演奏操作に応じた処理を行う鍵盤処理（ステップＳＡ３）、その他の処理（ステップＳＡ４）を繰り返し行う。
【００３１】
図４は、一定時間ごとに実行されるタイマインタラプト処理のフローチャートである。最初にノイズゲート開閉判定処理を行う（ステップＳＢ１）。なお、この処理には現在値設定比較処理が含まれる。ステップＳＢ１の処理の結果、ノイズゲート閉であるか否かを判別する（ステップＳＢ２）。ノイズゲート閉である場合には、スイッチ８５はノイズゲート閉補間手段８２の乗算係数を選択し、ノイズゲート閉補間処理を行う（ステップＳＢ３）。
【００３２】
一方、ノイズゲート開である場合には、スイッチ８５はスイッチ８６の出力の乗算係数を選択する。したがって、この場合にはスイッチ８６の状態を判定する必要があるので、ｄｅｃ＿ｆｌｇが１であるか０であるかを判別する（ステップＳＢ４）。ｄｅｃ＿ｆｌｇが１である場合には、スイッチ８６はボリュームダウン補間手段８３からの乗算係数を選択し、ボリュームダウン補間処理を行う（ステップＳＢ５）。これに対して、ｄｅｃ＿ｆｌｇが０である場合には、スイッチ８６はボリュームアップ／ノイズゲート開共通補間手段８４からの乗算係数を選択し、ボリュームアップ／ノイズゲート開共通補間処理を行う（ステップＳＢ６）。
【００３３】
ステップＳＢ３、ステップＳＢ５、又はステップＳＢ６における補間処理を行った後は、それぞれＮｇ＿ｒｒｔ、Ｖｏ＿ｒｒｔ、ＶｏＮｇ＿ａｒｔのレートで補間した乗算係数の現在値Ｖｏ＿ｎｏｗを波形データに乗算する（ステップＳＢ７）。そして、図３のメインルーチンに戻る。
【００３４】
図５は、図４のタイマインタラプト処理におけるステップＳＢ１のノイズゲート開閉判定処理のフローチャートである。まず、出力波高値の絶対値を取得する（ステップＳＣ１）。次に、その出力波高値はスレッシュレベル設定値Ｔｈｒ＿ｌｖｌを超えているか否かを判別する（ステップＳＣ２）。超えていない場合には、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅをインクリメントする（ステップＳＣ３）。この場合において、桁溢れが発生しないように計算桁の最大値でリミットをかける。
【００３５】
次に、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがホールドタイムＨｌｄ＿ｔｉｍｅの設定値を超えているか否かを判別する（ステップＳＣ４）。一方、ステップＳＣ２において、出力波高値がスレッシュレベル設定値Ｔｈｒ＿ｌｖｌを超えていない場合には、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅを０にクリアする（ステップＳＣ５）。Ｕ＿ｔｈ＿ｔｉｍｅを０にクリアした後、又は、ステップＳＣ４において、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがホールドタイムＨｌｄ＿ｔｉｍｅの設定値を超えていない場合には、ノイズゲートを開にするか、又は開の状態を維持する（ステップＳＣ６）。
【００３６】
次に、乗算係数の現在値Ｖｏ＿ｎｏｗは乗算係数の設定値Ｖｏ＿ｓｅｔより小さいか否かを判別する（ステップＳＣ７）。Ｖｏ＿ｎｏｗがＶｏ＿ｓｅｔ以上である場合には、ｄｅｃ＿ｆｌｇを１にセットする（ステップＳＣ８）。一方、Ｖｏ＿ｎｏｗがＶｏ＿ｓｅｔより小さい場合には、ｄｅｃ＿ｆｌｇを０にセットする（ステップＳＣ９）。ステップＳＣ４において、アンダースレッシュレベル回数Ｕ＿ｔｈ＿ｔｉｍｅがホールドタイムＨｌｄ＿ｔｉｍｅの設定値を超えている場合には、ノイズゲートを閉にする（ステップＳＣ１０）。ステップＳＣ８若しくはステップＳＣ９においてｄｅｃ＿ｆｌｇを１若しくは０にセットした後、又は、ステップＳＣ１０において、ノイズゲートを閉にした後は、このフローチャートを終了して図４のフローチャートに戻る。
【００３７】
図６は、図４のタイマインタラプト処理におけるステップＳＢ３のノイズゲート閉補間処理のフローチャートである。この処理では、現在の乗算係数であるＶｏ＿ｎｏｗの値からリリースレートＮｇ＿ｒｒｔの値を減算し（ステップＳＤ１）、Ｖｏ＿ｎｏｗの値が０より小さくなったか否かを判別する（ステップＳＤ２）。Ｖｏ＿ｎｏｗの値が０より小さくなった場合には、Ｖｏ＿ｎｏｗの値を０に設定する（ステップＳＤ３）。Ｖｏ＿ｎｏｗの値を０に設定した後、又は、ステップＳＤ２において、Ｖｏ＿ｎｏｗの値が０以上である場合には、このフローチャートを終了して、図４のフローチャートに戻る。
【００３８】
図７は、図４のタイマインタラプト処理におけるステップＳＢ５のボリュームダウン補間処理のフローチャートである。この処理では、現在の乗算係数であるＶｏ＿ｎｏｗの値からＶｏ＿ｒｒｔの値を減算し（ステップＳＥ１）、Ｖｏ＿ｎｏｗの値がＶｏ＿ｓｅｔより小さくなったか否かを判別する（ステップＳＥ２）。Ｖｏ＿ｎｏｗの値がＶｏ＿ｓｅｔより小さくなった場合には、Ｖｏ＿ｎｏｗの値をＶｏ＿ｓｅｔに設定する（ステップＳＥ３）。Ｖｏ＿ｎｏｗの値をＶｏ＿ｓｅｔに設定した後、又は、ステップＳＥ２において、Ｖｏ＿ｎｏｗの値がＶｏ＿ｓｅｔの値以上である場合には、このフローチャートを終了して、図４のフローチャートに戻る。
【００３９】
図８は、図４のタイマインタラプト処理におけるステップＳＢ６のボリュームアップ／ノイズゲート開共通補間処理のフローチャートである。この処理では、現在の乗算係数であるＶｏ＿ｎｏｗの値にアタックレートＶｏＮｇ＿ａｒｔの値を加算し（ステップＳＦ１）、Ｖｏ＿ｎｏｗの値がＶｏ＿ｓｅｔより大きくなったか否かを判別する（ステップＳＦ２）。Ｖｏ＿ｎｏｗの値がＶｏ＿ｓｅｔより大きくなった場合には、Ｖｏ＿ｎｏｗの値をＶｏ＿ｓｅｔに設定する（ステップＳＦ３）。Ｖｏ＿ｎｏｗの値をＶｏ＿ｓｅｔに設定した後、又は、ステップＳＦ２において、Ｖｏ＿ｎｏｗの値がＶｏ＿ｓｅｔの値以下である場合には、このフローチャートを終了して、図４のフローチャートに戻る。
【００４０】
以上のように、この実施形態によれば、図２のノイズゲート／電子ボリューム８において、ノイズゲート閉補間手段８２は、入力される波形データの振幅が所定のスレッシュレベル以下である場合には、その波形データを乗算処理によるリリースレートで補間しつつ遮断し、ボリュームアップ／ノイズゲート開共通補間手段８４は、入力される波形データの振幅がスレッシュレベルを超える場合には、その波形データを乗算処理によるアタックレートで補間しつつ遮断解除する。
【００４１】
また、ボリュームダウン補間手段８３およびボリュームアップ／ノイズゲート開共通補間手段８４は、それぞれ入力される波形データの振幅を乗算処理によるリリースレートおよびアタックレートで補間しつつ制御する。この場合において、乗算器８７は、ノイズゲート閉補間手段８２、ボリュームダウン補間手段８３およびボリュームアップ／ノイズゲート開共通補間手段８４における乗算処理を１回で実行する。
したがって、ノイズ低減や音量制御を行う際の乗算処理の回数を削減して楽音発生の高速処理を実現することにより、音切れなどの不具合が発生しないようにできる。
【００４２】
なお、上記実施形態においては、１チャンネルの波形データを制御するノイズゲート／電子ボリュームの動作について説明したが、左右２チャンネルの場合やそれ以上のチャンネル数で楽音を発生する場合は、より一層の高速処理が要求されるので、ノイズ低減や音量制御を行う際の乗算処理の回数を削減することにより、著しい効果を上げることが可能になる。
【００４３】
また、この場合において、ノイズゲート閉補間手段８２およびボリュームダウン補間手段８３は、それぞれ独立したリリースレートで補間しつつ波形データを制御する。
したがって、ノイズ低減処理と音量減衰処理とを独立させることにより、音量制御の自由度を大きくできる。
【００４４】
また、上記実施形態においては、プログラムメモリ２にあらかじめ記憶された音量制御処理のプログラムをＣＰＵ１が実行する音量制御装置について説明したが、ＦＤ（フレキシブルディスク）やＣＤ−ＲＯＭなどの外部記憶媒体を駆動するドライバを設けて、その外部記憶媒体から音量制御処理のプログラムをインストールする構成にしてもよい。あるいは、インターネットなどのネットワークに接続できる通信インタフェースを設けて、ネットワークを介して外部のサーバなどの装置から、音量制御処理のプログラムをダウンロードしてインストールする構成にしてもよい。このような構成によれば、プログラムの発明を実現できる。
【００４５】
すなわち、そのプログラムは、入力信号の振幅が所定の閾値以下である場合には、乗算係数を所定のリリースレートで補間しつつ最小値まで変化するように設定する第１のステップと、入力信号の振幅が閾値を超える場合には、乗算係数を所定のアタックレートで補間しつつ最大値まで変化するように設定する第２のステップと、乗算係数を所定のリリースレートおよび所定のアタックレートで補間しつつ目的値まで変化するように設定する第３のステップと、第１のステップ、第２のステップおよび第３のステップにより設定された乗算係数を入力信号に乗算する第４のステップとを実行する。
この場合において、第１のステップおよび第３のステップは、それぞれ独立したリリースレートで補間しつつ乗算係数を設定する。
【００４６】
したがって、上記実施形態の場合と同様に、ノイズ低減や音量制御を行う際の乗算処理の回数を削減して楽音発生の高速処理を実現することにより、音切れなどの不具合が発生しないようにできるとともに、ノイズ低減処理と音量減衰処理とを独立させることにより、音量制御の自由度を大きくできる。
【００４７】
【発明の効果】
本発明の音量制御装置によれば、入力信号の振幅が所定の閾値以下である場合には、乗算係数を所定のリリースレートで補間しつつ最小値まで変化するように設定する第１の設定手段と、入力信号の振幅が閾値を超える場合には、乗算係数を所定のアタックレートで補間しつつ最大値まで変化するように設定する第２の設定手段と、乗算係数を所定のリリースレートおよび所定のアタックレートで補間しつつ目的値まで変化するように設定する第３の設定手段と、第１の設定手段、第２の設定手段および第３の設定手段により設定された乗算係数を入力信号に乗算する乗算手段とを備えた構成にしたので、ノイズ低減や音量制御を行う際の乗算処理の回数を削減して楽音発生の高速処理を実現することにより、音切れなどの不具合が発生しないようにできるという効果が得られる。
【００４８】
さらにこの場合において、第１の設定手段および第３の設定手段は、それぞれ独立したリリースレートで変化するように乗算係数を設定するように構成したので、ノイズ低減処理と音量減衰処理とを独立させることにより、音量制御の自由度を大きくできるという効果が得られる。
【００４９】
また、本発明の音量制御処理のプログラムによれば、入力信号の振幅が所定の閾値以下である場合には、乗算係数を所定のリリースレートで補間しつつ最小値まで変化するように設定する第１のステップと、入力信号の振幅が閾値を超える場合には、乗算係数を所定のアタックレートで補間しつつ最大値まで変化するように設定する第２のステップと、乗算係数を所定のリリースレートおよび所定のアタックレートで補間しつつ目的値まで変化するように設定する第３のステップと、第１のステップ、第２のステップおよび第３のステップにより設定された乗算係数を入力信号に乗算する第４のステップとを実行する構成にしたので、ノイズ低減や音量制御を行う際の乗算処理の回数を削減して楽音発生の高速処理を実現することにより、音切れなどの不具合が発生しないようにできるという効果が得られる。
【００５０】
さらにこの場合において、第１のステップおよび第３のステップは、それぞれ独立したリリースレートで変化するように乗算係数を設定するように構成したので、ノイズ低減処理と音量減衰処理とを独立させることにより、音量制御の自由度を大きくできるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施形態における電子鍵盤楽器の構成を示すブロック図。
【図２】図１におけるノイズゲート／電子ボリュームの内部構成を示すブロック図。
【図３】図１のＣＰＵによって実行される本発明の実施形態における音量制御処理のメインフローチャート。
【図４】一定時間ごとに実行される本発明の実施形態におけるタイマインタラプト処理のフローチャート。
【図５】図４のタイマインタラプト処理におけるノイズゲート開閉判定処理のフローチャート。
【図６】図４のタイマインタラプト処理におけるノイズゲート閉補間処理のフローチャート。
【図７】図４のタイマインタラプト処理におけるボリュームダウン補間処理のフローチャート。
【図８】図４のタイマインタラプト処理におけるボリュームアップ／ノイズゲート開共通補間処理のフローチャート。
【図９】従来の音量制御装置の構成を示すブロック図。
【図１０】一定時間ごとに実行される従来の音量制御処理におけるタイマインタラプト処理のフローチャート。
【図１１】図１０のタイマインタラプト処理におけるノイズゲート開閉判定処理のフローチャート。
【図１２】図１０のタイマインタラプト処理におけるノイズゲート閉補間処理のフローチャート。
【図１３】図１０のタイマインタラプト処理におけるノイズゲート開補間処理のフローチャート。
【図１４】図９の従来の音量制御装置における電子ボリュームの補間の推移を表す図。
【図１５】図９の従来の音量制御装置におけるノイズゲートの補間の推移を表す図。
【符号の説明】
１  ＣＰＵ
２  プログラムメモリ
３  ワークメモリ
４  スイッチ
５  鍵盤
６  音源部
７  楽音波形メモリ
８  ノイズゲート／電子ボリューム
９  Ｄ／Ａコンバータ
１０  アナログフィルタ
１１  アンプ
１２  スピーカ
【図１】
2005043399.tif 000003
【図２】
2005043399.tif 000004
【図３】
2005043399.tif 000005
【図４】
2005043399.tif 000006
【図５】
2005043399.tif 000007
【図６】
2005043399.tif 000008
【図７】
2005043399.tif 000009
【図８】
2005043399.tif 000010
【図９】
2005043399.tif 000011
【図１０】
2005043399.tif 000012
【図１１】
2005043399.tif 000013
【図１２】
2005043399.tif 000014
【図１３】
2005043399.tif 000015
【図１４】
2005043399.tif 000016
【図１５】
2005043399.tif 000017