(57)【要約】【課題】係数テーブルの肥大化、回路規模増大や処理速度低下を招くことなく周波数特性を連続的に変化させ得るフィルタ装置を実現する。【解決手段】定常時にはフィルタ部１２から出力される係数切り替え前の波形データをリングバッファ１４ｂに蓄積しつつ、それを波形Ｎ周期（Ｎは整数）分遅延させた波形データを読み出して出力する。フィルタ係数切り替え後はリングバッファ１４ｂから読み出す係数切り替え前の波形データを、係数切り替え後のフィルタ部１２が出力する波形データにクロスフェードさせる。クロスフェード完了時にリングバッファ１４ｂの蓄積内容を更新させる間はフィルタ部１２が出力する係数切り替え後の波形データを出力し、更新完了後はリングバッファ１４ｂで遅延させた係数切り替え後の波形データを読み出して出力する。【選択図】  図５
2005012728.tif 000002
【特許請求の範囲】
【請求項１】
与えられたフィルタ係数に応じて周波数特性が変化するフィルタ手段を備えたフィルタ装置において、
前記フィルタ手段から出力されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力手段と、
フィルタ係数切り替え後、前記遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形を、前記フィルタ手段から出力されるフィルタ係数切り替え後の波形にクロスフェードさせるよう波高値補間して出力する補間手段と、
前記補間手段による波高値補間が完了した時、前記遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ手段から出力されるフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を選択して出力させる出力選択手段と
を具備することを特徴とするフィルタ装置。
【請求項２】
与えられたフィルタ係数に応じて周波数特性が変化するフィルタ手段を備えたフィルタ装置において、
前記フィルタ手段から出力されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力手段と、
フィルタ係数切り替え後、前記遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形と、前記フィルタ手段から出力されるフィルタ係数切り替え後の波形とのレベル差に応じて最適な補間演算形態を選択し、選択した補間演算形態でフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に非線形補間して出力する補間手段と、
前記補間手段による補間が完了した時、前記遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ手段から出力されるフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を選択して出力させる出力選択手段と
を具備することを特徴とするフィルタ装置。
【請求項３】
与えられたフィルタ係数に応じて周波数特性が変化するフィルタ処理ステップを含むフィルタ処理プログラムにおいて、
前記フィルタ処理ステップにて生成されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力ステップと、
フィルタ係数切り替え後、前記遅延出力ステップが遅延出力するフィルタ係数切り替え前の波形を、前記フィルタ処理ステップで生成されるフィルタ係数切り替え後の波形にクロスフェードさせるよう波高値補間して出力する補間ステップと、
前記補間ステップによる波高値補間が完了した時、前記遅延出力ステップにおける蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ処理ステップが発生するフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力ステップが遅延出力するフィルタ係数切り替え後の波形を選択して出力させる出力選択ステップと
をコンピュータで実行させることを特徴とするフィルタ処理プログラム。
【請求項４】
与えられたフィルタ係数に応じて周波数特性が変化するフィルタ処理ステップを含むフィルタ処理プログラムにおいて、
前記フィルタ処理ステップにて生成されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力ステップと、
フィルタ係数切り替え後、前記遅延出力ステップが遅延出力するフィルタ係数切り替え前の波形と、前記フィルタ処理ステップで生成されるフィルタ係数切り替え後の波形とのレベル差に応じて最適な補間演算形態を選択し、選択した補間演算形態でフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に非線形補間して出力する補間ステップと、
前記補間ステップによる補間が完了した時、前記遅延出力ステップにおける蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ処理ステップが発生するフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力ステップが遅延出力するフィルタ係数切り替え後の波形を選択して出力させる出力選択ステップと
をコンピュータで実行させることを特徴とするフィルタ処理プログラム。
【請求項５】
入力波形を複数の周波数帯域に分割し、分割された各周波数帯域毎のエンベロープレベルを検出する検出手段と、
この検出手段により検出されたエンベロープレベルが所定値を超えた周波数帯域について第１の演算ビット数のフィルタ演算を指示し、所定値以下の周波数帯域について第２の演算ビット数のフィルタ演算を指示する指示手段と、
前記複数の周波数帯域に対応して設けられ、前記指示手段から指示される第１および第２の演算ビット数のいずれかのフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタ手段と
を具備することを特徴とするフィルタ装置。
【請求項６】
入力波形を複数の周波数帯域に分割する帯域分割手段と、
前記複数の周波数帯域毎に、前記入力波形の波形種および音高に対応付けた演算ビット数を予め記憶する記憶手段と、
前記入力波形の波形種および音高を表す楽音パラメータに応じて、前記記憶手段から対応する演算ビット数を読み出して各周波数帯域に割当てる割当て手段と、
前記複数の周波数帯域に対応して設けられ、前記割当て手段により割当てられた演算ビット数のフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタ手段と
を具備することを特徴とするフィルタ装置。
【請求項７】
入力波形を複数の周波数帯域に分割し、分割された各周波数帯域毎のエンベロープレベルを検出する検出ステップと、
この検出ステップにて検出されたエンベロープレベルが所定値を超えた周波数帯域について第１の演算ビット数のフィルタ演算を指示し、所定値以下の周波数帯域について第２の演算ビット数のフィルタ演算を指示する指示ステップと、
前記複数の周波数帯域に対応して実行され、前記指示ステップで指示される第１および第２の演算ビット数のいずれかのフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタリングステップと
をコンピュータで実行させることを特徴とするフィルタ処理プログラム。
【請求項８】
入力波形を複数の周波数帯域に分割する帯域分割ステップと、
前記複数の周波数帯域毎に、前記入力波形の波形種および音高に対応付けた演算ビット数を予め記憶しておき、前記入力波形の波形種および音高を表す楽音パラメータに応じて、対応する演算ビット数を読み出して各周波数帯域に割当てる割当てステップと、
前記複数の周波数帯域に対応して実行され、前記割当てステップにて割当てられた演算ビット数のフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタリングステップと
をコンピュータで実行させることを特徴とするフィルタ処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば電子楽器に用いて好適なフィルタ装置およびフィルタ処理プログラムに関する。
【０００２】
【従来の技術】
電子楽器では楽音生成する態様に応じてフィルタ特性を動的に変更可能なデジタルフィルタを用いる。その為、フィルタ特性とフィルタ係数とを対応付けて記憶した係数テーブルを参照して所望のフィルタ特性となるフィルタ係数を得るようにする場合が多い。
【０００３】
この種の技術として、例えば特許文献１には、カットオフ周波数値を整数部Ｉおよび小数部Ｆで表現し、カットオフ周波数値の整数部Ｉに対応するフィルタ係数を記憶した係数テーブルを設け、カットオフ周波数値の小数部Ｆがゼロの時はカットオフ周波数値の整数部Ｉに対応するフィルタ係数を係数テーブルから読み出してそのまま出力し、小数部Ｆがゼロでない時には係数テーブルから整数部Ｉに対応するフィルタ係数Ａと、整数部Ｉ＋１に対応するフィルタ係数Ｂとを読み出し、読み出したフィルタ係数Ａ，Ｂを小数部Ｆで直線補間Ａ＋Ｆ（Ａ−Ｂ）して得られるフィルタ係数Ｃを出力するフィルタ装置が開示されている。
【０００４】
【特許文献１】
特公平６−９１４１８号公報
【０００５】
【発明が解決しようとする課題】
ところで、上述した従来のフィルタ装置では、フィルタの周波数特性を連続的に変化させる場合、フィルタ係数を急激に変化させると出力が不連続になってノイズ発生要因となる為、フィルタ係数を小刻みに設定したり、フィルタ係数を補間形成するようにしている。
しかしながら、フィルタ係数を小刻みに設定すると係数テーブルの肥大化を招き、一方、フィルタ係数を補間形成するには別途に係数補間器を備えることから、回路規模増大や処理速度低下を招く問題がある。
また、出力の音質向上を図るためには、フィルタ演算する演算ビット数を上げればよいが、演算ビット数を高めると、更なる回路規模増大と処理速度低下を招いてしまう、という問題もある。
【０００６】
そこで本発明の第１の目的は、係数テーブルを肥大化させず、しかも回路規模増大や処理速度低下を招くことなく周波数特性を連続的に変化させることができるフィルタ装置およびフィルタ処理プログラムを提供することにある。
また、本発明の第２の目的は、回路規模増大と処理速度低下を招致することなく音質向上を図ることができるフィルタ装置およびフィルタ処理プログラムを提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、与えられたフィルタ係数に応じて周波数特性が変化するフィルタ手段を備えたフィルタ装置において、前記フィルタ手段から出力されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力手段と、フィルタ係数切り替え後、前記遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形を、前記フィルタ手段から出力されるフィルタ係数切り替え後の波形にクロスフェードさせるよう波高値補間して出力する補間手段と、前記補間手段による波高値補間が完了した時、前記遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ手段から出力されるフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を選択して出力させる出力選択手段とを具備することを特徴とする。
【０００８】
請求項２に記載の発明では、与えられたフィルタ係数に応じて周波数特性が変化するフィルタ手段を備えたフィルタ装置において、前記フィルタ手段から出力されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力手段と、フィルタ係数切り替え後、前記遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形と、前記フィルタ手段から出力されるフィルタ係数切り替え後の波形とのレベル差に応じて最適な補間演算形態を選択し、選択した補間演算形態でフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に非線形補間して出力する補間手段と、前記補間手段による補間が完了した時、前記遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ手段から出力されるフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を選択して出力させる出力選択手段とを具備することを特徴とする。
【０００９】
請求項３に記載の発明では、与えられたフィルタ係数に応じて周波数特性が変化するフィルタ処理ステップを含むフィルタ処理プログラムにおいて、前記フィルタ処理ステップにて生成されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力ステップと、フィルタ係数切り替え後、前記遅延出力ステップが遅延出力するフィルタ係数切り替え前の波形を、前記フィルタ処理ステップで生成されるフィルタ係数切り替え後の波形にクロスフェードさせるよう波高値補間して出力する補間ステップと、前記補間ステップによる波高値補間が完了した時、前記遅延出力ステップにおける蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ処理ステップが発生するフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力ステップが遅延出力するフィルタ係数切り替え後の波形を選択して出力させる出力選択ステップとをコンピュータで実行させることを特徴とする。
【００１０】
請求項４に記載の発明では、与えられたフィルタ係数に応じて周波数特性が変化するフィルタ処理ステップを含むフィルタ処理プログラムにおいて、前記フィルタ処理ステップにて生成されるフィルタ係数切り替え前の波形を蓄積しつつ、それを遅延出力する遅延出力ステップと、フィルタ係数切り替え後、前記遅延出力ステップが遅延出力するフィルタ係数切り替え前の波形と、前記フィルタ処理ステップで生成されるフィルタ係数切り替え後の波形とのレベル差に応じて最適な補間演算形態を選択し、選択した補間演算形態でフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に非線形補間して出力する補間ステップと、前記補間ステップによる補間が完了した時、前記遅延出力ステップにおける蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間は前記フィルタ処理ステップが発生するフィルタ係数切り替え後の波形を選択して出力させ、更新後は前記遅延出力ステップが遅延出力するフィルタ係数切り替え後の波形を選択して出力させる出力選択ステップとをコンピュータで実行させることを特徴とする。
【００１１】
請求項５に記載の発明では、入力波形を複数の周波数帯域に分割し、分割された各周波数帯域毎のエンベロープレベルを検出する検出手段と、この検出手段により検出されたエンベロープレベルが所定値を超えた周波数帯域について第１の演算ビット数のフィルタ演算を指示し、所定値以下の周波数帯域について第２の演算ビット数のフィルタ演算を指示する指示手段と、前記複数の周波数帯域に対応して設けられ、前記指示手段から指示される第１および第２の演算ビット数のいずれかのフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタ手段とを具備することを特徴とする。
【００１２】
請求項６に記載の発明では、入力波形を複数の周波数帯域に分割する帯域分割手段と、前記複数の周波数帯域毎に、前記入力波形の波形種および音高に対応付けた演算ビット数を予め記憶する記憶手段と、前記入力波形の波形種および音高を表す楽音パラメータに応じて、前記記憶手段から対応する演算ビット数を読み出して各周波数帯域に割当てる割当て手段と、前記複数の周波数帯域に対応して設けられ、前記割当て手段により割当てられた演算ビット数のフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタ手段とを具備することを特徴とする。
【００１３】
請求項７に記載の発明では、入力波形を複数の周波数帯域に分割し、分割された各周波数帯域毎のエンベロープレベルを検出する検出ステップと、この検出ステップにて検出されたエンベロープレベルが所定値を超えた周波数帯域について第１の演算ビット数のフィルタ演算を指示し、所定値以下の周波数帯域について第２の演算ビット数のフィルタ演算を指示する指示ステップと、前記複数の周波数帯域に対応して実行され、前記指示ステップで指示される第１および第２の演算ビット数のいずれかのフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタリングステップとをコンピュータで実行させることを特徴とする。
【００１４】
請求項８に記載の発明では、入力波形を複数の周波数帯域に分割する帯域分割ステップと、前記複数の周波数帯域毎に、前記入力波形の波形種および音高に対応付けた演算ビット数を予め記憶しておき、前記入力波形の波形種および音高を表す楽音パラメータに応じて、対応する演算ビット数を読み出して各周波数帯域に割当てる割当てステップと、前記複数の周波数帯域に対応して実行され、前記割当てステップにて割当てられた演算ビット数のフィルタ演算を、対応する周波数帯域の入力波形に施すフィルタリングステップとをコンピュータで実行させることを特徴とする。
【００１５】
本発明では、フィルタ係数が切り替えられると、遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形を、フィルタ手段から出力されるフィルタ係数切り替え後の波形にクロスフェードさせるよう波高値補間して出力し、その波高値補間が完了すると、遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間はフィルタ手段から出力されるフィルタ係数切り替え後の波形を出力し、更新後は遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を出力する。これにより、フィルタ出力の不連続を回避するので、係数テーブルを肥大化させずに回路規模増大や処理速度低下を招くことなく周波数特性を連続的に変化させることが可能になる。
【００１６】
さらに本発明では、入力波形を複数の周波数帯域に分割して各周波数帯域毎のエンベロープレベルを検出し、検出されたエンベロープレベルが所定値を超えた周波数帯域に第１の演算ビット数のフィルタ演算を指示し、所定値以下の周波数帯域に第２の演算ビット数のフィルタ演算を指示すると、各周波数帯域に対応して設けられたフィルタ手段が指示された演算ビット数のフィルタ演算を入力波形に施すので、波形レベルが大きく聴覚的に耳につきやすい周波数帯域では精度の高いフィルタリングを、波形レベルが小さく聴覚的に目立たない周波数帯域では精度の低いフィルタリングを行わせるようにし、これにより回路規模増大と処理速度低下を招致することなく聴感上の音質向上を図ることが可能になる。
【００１７】
【発明の実施の形態】
本発明によるフィルタ装置およびフィルタ処理プログラムは、電子楽器や効果付加装置などに適用される。以下では、電子楽器に搭載されるフィルタ装置（もしくはフィルタ処理プログラム）を実施例とし、これについて図面を参照して説明する。
【００１８】
Ａ．第１実施例
（１）全体構成
図１は第１実施例によるフィルタ装置を備えた電子楽器の全体構成を示すブロック図である。この図において、１は押離鍵操作に応じたキーオン／キーオフイベントおよびノート番号、ベロシティ等からなる演奏情報を発生する鍵盤である。２は楽器パネルに配設される各種スイッチから構成されるスイッチ部であり、操作されたスイッチに対応したスイッチイベントを発生する。３は各種制御プログラムを記憶するＲＯＭである。４はＣＰＵ５のワークエリアとして用いられ、各種レジスタ・フラグデータを一時記憶するＲＡＭである。
【００１９】
ＣＰＵ５はＲＯＭ３に格納される各種制御プログラムを実行し、例えば鍵盤１が発生する演奏情報に対応した楽音パラメータを発生して音源６に送出したり、スイッチ部２が発生するスイッチイベントに応じて動作モードを変更させる等、楽器各部を制御する。なお、ＣＰＵ５が発生する楽音パラメータとは、発音又は消音を指示するノーオン／オフイベントの他、例えば音色切換えや効果付与など発生波形の周波数特性を変化させて波形修飾する為のパラメータを含む。６は上記ＣＰＵ５から供給される楽音パラメータに応じた波形を発生する音源である。音源６は本発明によるフィルタ装置を備えており、その具体的な構成については追って述べる。７は音源６の出力をアナログ形式の波形信号に変換するＤ／Ａ変換器である。８はＤ／Ａ変換器７から供給される波形信号を増幅してスピーカ９から発音させるサウンドシステムである。
【００２０】
（２）音源６の構成
次に、図２〜図５を参照して音源６の構成を説明する。図２は、本発明によるフィルタ装置を含む音源６の部分構成を示すブロック図である。図２において、１０はＣＰＵ５から供給される楽音パラメータに応じて、音色番号ＴＮ、位相データＰＤ、カットオフ周波数データＣＦを発生する制御部である。また、制御部１０は、楽音パラメータに対応して発生するカットオフ周波数データＣＦを切り替えるタイミングで補間開始トリガＴＲを発生する。１１は周知の波形メモリ読み出し方式で構成される波形発生器である。波形発生器１１は、制御部１０から供給される音色番号ＴＮで指定される音色の波形データを、位相データＰＤに応じて読み出して出力する。
【００２１】
１２は波形発生器１１から出力される波形データをフィルタリングして次段の振幅補間器１４に供給するフィルタ部である。フィルタ部１２は、例えば図３に図示するように、入力を１サンプル遅延して出力する遅延素子１２ａ〜１２ｄと、後述のフィルタ係数ａ０〜ａ２およびｂ１〜ｂ２がそれぞれ供給される係数乗算器１２ｅ〜１２ｉと、これら係数乗算器１２ｅ〜１２ｉの各出力を加算する加算器１２ｊとを備える周知の２次ＩＩＲ型デジタルフィルタから構成される。こうした構成のフィルタ部１２は、後述する係数テーブル１３から出力されるフィルタ係数ａ０〜ａ２およびｂ１〜ｂ２に従った周波数特性のフィルタ演算を行う。
具体的には、入力ｘ［ｎ］、遅延素子１２ａの出力ｘ［ｎ−１］、遅延素子１２ｂの出力ｘ［ｎ−２］、遅延素子１２ｃの出力ｙ［ｎ−１］および遅延素子１２ｄの出力ｙ［ｎ−２］とした場合、次式（１）で表現されるフィルタ演算にて出力ｙ［ｎ］を発生する。
ｙ［ｎ］＝ａ０・ｘ［ｎ］＋ａ１・ｘ［ｎ−１］＋ａ２・ｘ［ｎ−２］−ｂ１・ｙ［ｎ−１］−ｂ２・ｙ［ｎ−２］…（１）
【００２２】
係数テーブル１３は、フィルタ部１２をローパスフィルタとして動作させる場合、図４に図示するように、各種カットオフ周波数データＣＦに対応するフィルタ係数ａ０〜ａ２およびｂ１〜ｂ２をＲＯＭに記憶させておき、制御部１０から供給されるカットオフ周波数データＣＦに対応するフィルタ係数ａ０〜ａ２およびｂ１〜ｂ２を読み出してフィルタ部１２の係数乗算器１２ｅ〜１２ｉに供給する。
【００２３】
振幅補間器１４は、図５に図示するように、補間係数発生器１４ａ、リングバッファ１４ｂ、乗算器１４ｃ〜１４ｄおよび加算器１４ｅから構成される。補間係数発生器１４ａは、制御部１０から補間開始トリガＴＲが入力された時点、すなわちフィルタ係数切り替え時点から波形Ｎ周期分の時間に一定レートで経時変化する係数α、βを発生すると共に、係数αが「０」（係数βが「１」）となった時点でリングバッファ１４ｂにバッファクリアおよび書き込み開始を指示する信号ｗｒｉｔｅを発生する。また、振幅補間器１４は、リングバッファ１４ｂが波形Ｎ周期分（Ｎは整数）の波形データを書き込み終えた時点で係数αを「１」、係数βを「０」の初期設定に戻す。
【００２４】
リングバッファ１４ｂは、入力される波形データを波形Ｎ周期分（Ｎは整数）分蓄積しながら、蓄積した波形データを順次読み出して出力する。換言すると、リングバッファ１４ｂは入力される波形データを波形Ｎ周期分遅延して出力するものであり、補間係数発生器１４ａから信号ｗｒｉｔｅが供給された場合、蓄積している波形データを一旦クリアして新たに入力される波形データの書き込みを開始する。
乗算器１４ｃは、リングバッファ１４ｂから出力される波形データに、補間係数発生器１４ａから供給される係数αを乗算して出力する。乗算器１４ｄは、前段のフィルタ部１２が出力する波形データに、補間係数発生器１４ａから供給される係数βを乗算して出力する。加算器１４ｅは、乗算器１４ｃ，１４ｄの各乗算結果を加算して出力する。
【００２５】
（３）振幅補間器１４の動作
次に、本発明の要旨にかかわる振幅補間器１４の動作について図６を参照して説明する。図６は補間係数発生器１４ａが発生する係数αの経時変化（同図（イ））および係数βの経時変化（同図（ロ））の様子を図示している。この図において、（Ａ）は制御部１０から補間開始トリガＴＲが供給される以前の定常状態を表す。定常状態（Ａ）では、補間係数発生器１４ａは係数αを「１」、係数βを「０」とする初期設定下にある為、振幅補間器１４はリングバッファ１４ｂから読み出される波形データだけを出力する。
【００２６】
そして、制御部１０から補間係数発生器１４ａに補間開始トリガＴＲが入力されるフィルタ係数切り替え時点ｔ１になったとする。この時、補間係数発生器１４ａは係数αを「１」、係数βを「０」に設定しているので、振幅補間器１４はリングバッファ１４ｂから読み出される波形データ（フィルタ係数切り替え前に蓄積された波形データ）だけを出力する。したがって、フィルタ係数の切り替えに際してフィルタ部１２の出力に不連続が生じたとしても、そのフィルタ部１２の出力は乗算器１４ｄでミュートされる結果、ノイズ発生を抑止できる。
【００２７】
次に、フィルタ係数切り替え時点ｔ１以後の遷移状態（Ｂ）になると、振幅補間器１４は、波形Ｎ周期分の時間内で「１」から「０」に一定レートで経時変化する係数αを乗算したフィルタ係数切り替え前の波形データと、波形Ｎ周期分の時間内で「０」から「１」に一定レートで経時変化する係数β（＝１−α）を乗算したフィルタ係数切り替え後の波形データとを加算する線形補間を行う。これにより、フィルタ係数切り替え前の波形データからフィルタ係数切り替え後の波形データにクロスフェードさせる形で連続的に振幅レベルを制御する為、ノイズ発生を抑止し得る。
【００２８】
そして、係数αが「０」となってフィルタ係数切り替え前の波形データをミュートする一方、係数βが「１」に達してフィルタ係数切り替え後の波形データだけを出力する時点ｔ２になると、振幅補間器１４では補間係数発生器１４ａより供給される信号ｗｒｉｔｅに従い、リングバッファ１４ｂは蓄積していた波形データを一旦クリアした後、新たに入力される波形データの書き込みを開始する。続いて、リングバッファ１４ｂに波形Ｎ周期分（Ｎは整数）の波形データを書き込み終える時点ｔ３に達すると、補間係数発生器１４ａは係数αを「１」、係数βを「０」の初期設定に戻す。これにより、振幅補間器１４はリングバッファ１４ｂから読み出される波形データだけを出力する定常状態（Ａ）に復帰する。
【００２９】
このように、第１実施例では、フィルタ係数が切り替えられる時点まではフィルタ部１２から出力されるフィルタ係数切り替え前の波形データをリングバッファ１４ｂに蓄積しつつ、当該リングバッファ１４ｂから波形Ｎ周期（Ｎは整数）分遅延させた波形データを読み出して出力する。そして、フィルタ係数切り替え後はリングバッファ１４ｂから読み出すフィルタ係数切り替え前の波形データを、フィルタ係数切り替え後のフィルタ部１２から出力される波形データにクロスフェードさせるよう振幅補間して出力する。
【００３０】
そして、クロスフェードし終えた時点からリングバッファ１４ｂの蓄積内容をフィルタ係数切り替え前の波形データからフィルタ係数切り替え後の波形データに更新させる間はフィルタ部１２から出力されるフィルタ係数切り替え後の波形データを出力し、更新完了後はフィルタ部１２から出力されるフィルタ係数切り替え後の波形データをリングバッファ１４ｂに蓄積しつつ、当該リングバッファ１４ｂから波形Ｎ周期（Ｎは整数）分遅延させた波形データを読み出して出力する。これにより、フィルタ出力の不連続を回避するので、係数テーブルの肥大化あるいは回路規模増大や処理速度低下を招くことなく周波数特性を連続的に変化させることが可能になる。
【００３１】
なお、上述した第１実施例では、説明の簡略化を図るため、振幅補間器１４が線形補間する一例を開示したが、本発明の要旨はこれに限定されず、非線形補間する態様も含む。
例えば、フィルタ係数切り替えの前後でフィルタ部１２が出力する波形データのレベル差に応じて、最適な補間演算形態を選択し、選択した補間演算形態でフィルタ係数切り替え前の波形データからフィルタ係数切り替え後の波形データに非線形補間することも可能である。このようにすれば、フィルタ係数切り替え前後の波形データをより自然な形で滑らかに繋げる為、音質向上に寄与することができる。
【００３２】
また、第１実施例では機能構成を明確にするためにハードウェアイメージとして表現したが、本発明の要旨はそれに限定されず、開示した各機能要素をソフトウェア処理で具現することも勿論可能である。
【００３３】
Ｂ．第２実施例
次に、図７〜図１０を参照して第２実施例について説明する。
（１）構成
図７は第２実施例によるフィルタ装置の構成を示すブロック図であり、上述した第１実施例と共通する要素には同一の番号を付している。図７において、フィルタ部１２は、波形発生器１１（不図示）から供給される入力波形を第１〜第３の周波数帯域に分別するフィルタユニット１２−１〜１２−３から構成される。各フィルタユニット１２−１〜１２−３は、入力波形をそれぞれ第１〜第３の周波数帯域に分別するバンドパスフィルタ２０と、バンドパスフィルタ２０の出力エンベロープを検出するエンベロープ検出器２１と、後述する制御部１０から供給される信号ＷＬにて指定される演算ビット数でフィルタ演算を行うローパスフィルタ２２を備える。
【００３４】
制御部１０は、第１実施例と同様、ＣＰＵ５から供給される楽音パラメータに応じて、音色番号ＴＮや位相データＰＤを発生して図示されていない波形発生器１１に供給する一方、上記エンベロープ検出器２１の検出結果に応じてフィルタ演算時の演算ビット数を指定する信号ＷＬを発生する。信号ＷＬは「１」の場合に１６ビットのフィルタ演算を、「０」の場合に８ビットのフィルタ演算を指示する。
【００３５】
ローパスフィルタ２２は、前述した第１実施例と同様、図３に図示した２次ＩＩＲ型デジタルフィルタで構成され、前述した（１）式、すなわち入力ｘ［ｎ］、遅延素子１２ａの出力ｘ［ｎ−１］、遅延素子１２ｂの出力ｘ［ｎ−２］、遅延素子１２ｃの出力ｙ［ｎ−１］および遅延素子１２ｄの出力ｙ［ｎ−２］とした場合、ｙ［ｎ］＝ａ０・ｘ［ｎ］＋ａ１・ｘ［ｎ−１］＋ａ２・ｘ［ｎ−２］−ｂ１・ｙ［ｎ−１］−ｂ２・ｙ［ｎ−２］で表される積和演算（フィルタ演算）を、演算ビット数１６ビットもしくは８ビットで行う。なお、ローパスフィルタ２２には、対応する周波数帯域に適応させたフィルタ係数ａ０〜ａ２およびｂ１〜ｂ２が予め設定される。
【００３６】
ところで、積和演算ｅ＝ａ×ｃ＋ｂを１６ビットもしくは８ビットで行わせる場合、ａ，ｂ，ｃの各語長を１６ビット、ａの上位／下位８ビットをそれぞれａｈ，ａｌ、ｃの上位／下位８ビットをそれぞれｃｈ，ｃｌとすると、１６ビットの積和演算はｅ＝ａｈ×ｃｈ×１００００ｈ＋ａｈ×ｃｌ×１００ｈ＋ａｌ×ｃｈ×１００ｈ＋ａｌ×ｃｌ＋ｂとなり、８ビット演算の組合せで表現できる。なお、ここで１００００ｈは１６ビット上位シフト、１００ｈは８ビット上位シフトを表す。一方、８ビットの積和演算は、上記１６ビットの積和演算における下位８ビットを省略した形となり、ｅ＝ａｈ×ｃｈ×１００００ｈ＋ｂで表される。
【００３７】
したがって、積和演算ｅ＝ａ×ｃ＋ｂを１６ビットもしくは８ビットで行うには、図８に図示する処理ロジックを実行することになる。図８において、４０はａの上位８ビットａｈ／下位８ビットａｌのいずれかを選択するセレクタ、４１はｃの上位８ビットｃｈ／下位８ビットｃｌのいずれかを選択するセレクタである。４２はセレクタ４０の出力とセレクタ４１の出力とを乗算する乗算器である。４３は乗算器４２の出力を１６ビット上位シフトあるいは８ビット上位シフトするシフタである。４４は乗算結果を累算する加算器である。４５は前回の乗算結果を保持するラッチ、４６は加算器４４が出力する累算値を保持するラッチ、４７はラッチ４６が保持する値にｂを加算する加算器である。
【００３８】
上記処理ロジックにて１６ビットの積和演算を行う場合には、セレクタ４０、４１およびシフタ４３を適宜切り替えながらａｈ×ｃｈ×１００００ｈ、ａｈ×ｃｌ×１００ｈ、ａｌ×ｃｈ×１００ｈおよびａｌ×ｃｌの乗算を行い、その結果を累算した後にｂを加える。一方、８ビットの積和演算は、ａｈ×ｃｈの乗算結果を１６ビット上位シフトした後にｂを加える。
さて、こうした処理ロジックに基づき、ローパスフィルタ２２は、ｙ［ｎ］＝ａ０・ｘ［ｎ］＋ａ１・ｘ［ｎ−１］＋ａ２・ｘ［ｎ−２］−ｂ１・ｙ［ｎ−１］−ｂ２・ｙ［ｎ−２］なるフィルタ演算を行う。つまり、信号ＷＬにて指定される１６ビット／８ビットの処理ロジックに従い、ａ０・ｘ［ｎ］、ａ１・ｘ［ｎ−１］、ａ２・ｘ［ｎ−２］、−ｂ１・ｙ［ｎ−１］および−ｂ２・ｙ［ｎ−２］の各項について積和演算を行う。
【００３９】
（２）動作
次に、上記構成による第２実施例において制御部１０が実行する語長割当処理およびローパスフィルタ２２が実行するフィルタ演算タイマインタラプト処理の各動作を説明する。
【００４０】
▲１▼語長割当処理の動作
制御部１０では、ＣＰＵ５から供給される楽音パラメータが更新される毎に、図９に示す語長割当処理を実行する。本処理が実行されると、制御部１０は図９のステップＳＡ１に処理を進め、ポインタｉに初期値「１」をストアする。ポインタｉは、フィルタユニット１２−ｉが備えるエンベロープ検出器２１の検出結果ＥＮＶ［ｉ］を指定する。次いで、ステップＳＡ２では、ポインタｉに対応する検出結果ＥＮＶ［ｉ］が予め定められる基準値以下であるか否かを判断する。検出結果ＥＮＶ［ｉ］が基準値以下であると、判断結果は「ＹＥＳ」になり、ステップＳＡ３に進み、レジスタＷＬ［ｉ］に「０」をセットし、８ビットのフィルタ演算を行うようローパスフィルタ２２に指示する。
【００４１】
一方、検出結果ＥＮＶ［ｉ］が基準値を超えていれば、判断結果が「ＮＯ」になり、ステップＳＡ４に進み、レジスタＷＬ［ｉ］に「１」をセットし、１６ビットのフィルタ演算を行うようローパスフィルタ２２に指示する。そして、ステップＳＡ５では、ポインタｉをインクリメントして歩進させ、続くステップＳＡ６では、歩進されたポインタｉが「３」を超えたか否か、つまり、フィルタユニット１２−１〜１２−３の各ローパスフィルタ２２にフィルタ演算の演算ビット数を指示し終えたかどうかを判断する。指示し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＡ２以降を繰り返す。そして、演算ビット数を指示し終えると、判断結果が「ＹＥＳ」になり、本処理を完了させる。
【００４２】
このように、制御部１０では、ＣＰＵ５から供給される楽音パラメータが更新される毎に、各周波数帯域のエンベロープレベルが予め定められる基準値を超えるかどうかを判断し、エンベロープレベルが基準値以下であると、その周波数帯域でローパスフィルタリングするローパスフィルタ２２に、８ビット演算を指示し、一方、エンベロープレベルが基準値を超えれば、その周波数帯域でローパスフィルタリングするローパスフィルタ２２に、１６ビット演算を指示するようになっている。
【００４３】
▲２▼フィルタ演算タイマインタラプト処理
ローパスフィルタ２２では、一定周期毎に本処理を割込み実行しており、実行タイミングになると、制御部１０が指示する演算ビット数に従い、図８に図示した処理ロジックに基づくフィルタ演算、すなわちステップＳＢ１〜ＳＢ１６を実行する。
先ずステップＳＢ１では、フィルタユニット１２−１〜１２−３を識別するフィルタ番号ｍに「１」をセットすると共に、加算値ｂをゼロリセットする。次いで、ステップＳＢ２では、項番号ｓに「１」をセットする。項番号ｓとは、前述した（１）式で表されるフィルタ演算式の項を指定する。具体的には、項番号ｓ＝１はａ０・ｘ［ｎ］を、項番号ｓ＝２はａ１・ｘ［ｎ−１］を、項番号ｓ＝３はａ２・ｘ［ｎ−２］を、項番号ｓ＝４は−ｂ１・ｙ［ｎ−１］を、項番号ｓ＝５は−ｂ２・ｙ［ｎ−２］を指定する。
【００４４】
ステップＳＢ３では、項番号ｓの信号値をレジスタａに、項番号ｓのフィルタ係数をレジスタｃにそれぞれストアし、続くステップＳＢ４では、積和演算項ｋに「１」をセットすると共に、レジスタＤＬ１をゼロリセットする。積和演算項ｋは、図８の処理ロジック中のａｈ×ｃｈ×１００００ｈ（ｋ＝１）、ａｈ×ｃｌ×１００ｈ（ｋ＝２）、ａｌ×ｃｈ×１００ｈ（ｋ＝３）およびａｌ×ｃｌ（ｋ＝４）を指定する。レジスタＤＬ１は、図８に図示する処理ロジック中のラッチ４５の値を保持する。
【００４５】
次に、ステップＳＢ５では、積和演算項ｋの値に応じた処理を実行させる。すなわち、積和演算項ｋが「１」の場合、つまり図８の処理ロジック中のａｈ×ｃｈ×１００００ｈを実行するには、ステップＳＢ６に処理を進め、レジスタａ（信号値）の上位８ビットａｈをレジスタＤＳ１に、レジスタｃ（フィルタ係数）の上位８ビットｃｈをレジスタＤＳ２にそれぞれストアすると共に、ビットシフト値を保持するレジスタＬＳに「１６」をセットする。
積和演算項ｋが「２」の場合、つまり図８の処理ロジック中のａｈ×ｃｌ×１００ｈを実行するには、ステップＳＢ７に処理を進め、レジスタａ（信号値）の上位８ビットａｈをレジスタＤＳ１に、レジスタｃ（フィルタ係数）の下位８ビットｃｌをレジスタＤＳ２にそれぞれストアすると共に、ビットシフト値を保持するレジスタＬＳに「８」をセットする。
【００４６】
積和演算項ｋが「３」の場合、つまり図８の処理ロジック中のａｌ×ｃｈ×１００ｈを実行するには、ステップＳＢ８に処理を進め、レジスタａ（信号値）の下位８ビットａｌをレジスタＤＳ１に、レジスタｃ（フィルタ係数）の上位８ビットｃｈをレジスタＤＳ２にそれぞれストアすると共に、ビットシフト値を保持するレジスタＬＳに「８」をセットする。
積和演算項ｋが「４」の場合、つまり図８の処理ロジック中のａｌ×ｃｌを実行するには、ステップＳＢ８に処理を進め、レジスタａ（信号値）の下位８ビットａｌをレジスタＤＳ１に、レジスタｃ（フィルタ係数）の下位８ビットｃｌをレジスタＤＳ２にそれぞれストアすると共に、ビットシフト値を保持するレジスタＬＳをゼロリセットする。
【００４７】
こうして、積和演算項ｋの値に対応したデータをレジスタＤＳ１、ＤＳ２、ＬＳにセットし終えると、ステップＳＢ１０に進む。ステップＳＢ１０では、レジスタＤＳ１の値とレジスタＤＳ２の値とを乗算した結果を、レジスタＬＳの値分上位ビットシフトさせ、その値をレジスタＤＬ１，ＤＬ２に加算する。そして、ステップＳＢ１１に進み、積和演算項ｋをインクリメントして歩進させる。
次に、ステップＳＢ１２では、フィルタ番号ｍに対応するレジスタＷＬ［ｍ］の値が「１」であって、積和演算項ｋが「５」より小さいかどうかを判断する。つまり、制御部１０から１６ビット演算指示を受け、しかもその積和演算の途中であるかどうかを判断する。
【００４８】
１６ビット演算指示に従った積和演算の途中であれば、判断結果は「ＹＥＳ」になり、ステップＳＢ５に処理を戻す。以後、積和演算項ｋ＝４の積和演算を終えるまでステップＳＢ５〜ＳＢ１２を繰り返す。そして、全ての積和演算を終えて積和演算項ｋが「５」になると、ステップＳＢ１２の判断結果は「ＮＯ」になり、ステップＳＢ１３に進む。一方、８ビット演算指示を受けた場合には、上記ステップＳＢ１２の判断結果は「ＮＯ」になり、ステップＳＢ１３に進む。
ステップＳＢ１３では、レジスタＤＬ２に加算値ｂを加算した結果をレジスタｅにセットした後、そのレジスタｅの値を加算値ｂにセットし直す。また、ステップＳＢ１３では、項番号ｓを歩進させる。
【００４９】
続いて、ステップＳＢ１４では、歩進された項番号ｓが「５」を超えたか、つまりフィルタ演算し終えたかどうかを判断する。フィルタ演算し終えていなければ、判断結果は「ＮＯ」になり、上述したステップＳＢ３に処理を戻す。以後、フィルタ演算し終えるまでステップＳＢ３〜ＳＢ１３を繰り返す。そして、ａ０・ｘ［ｎ］から−ｂ２・ｙ［ｎ−２］までの全ての項のフィルタ演算を行うと、ステップＳＢ１４の判断結果が「ＹＥＳ」となり、ステップＳＢ１５に進む。ステップＳＢ１５ではフィルタ番号ｍを歩進させ、続くステップＳＢ１６では歩進されたフィルタ番号ｍが「３」を超えたか否か、すなわち全てのフィルタユニット１２−１〜１２−３においてフィルタ演算を行ったかどうかを判断する。その途中であると、判断結果は「ＮＯ」になり、ステップＳＢ２に処理を戻す。一方、全てのフィルタユニット１２−１〜１２−３においてフィルタ演算を終えると、判断結果が「ＹＥＳ」になり、本処理を完了させる。
【００５０】
以上のように、第２実施例によるフィルタ装置は、波形発生器１１（不図示）から供給される入力波形を第１〜第３の周波数帯域に分別し、それら各周波数帯域毎に入力波形のエンベロープレベルを検出し、検出したエンベロープレベルが予め設定される基準値を超えた場合には１６ビットのフィルタ演算を、基準値以下なら８ビットのフィルタ演算を行う。
つまり換言すると、波形レベルが大きく聴覚的に耳につきやすい周波数帯域では精度の高いフィルタリングを、波形レベルが小さく聴覚的に目立たない周波数帯域では精度の低いフィルタリングを行わせるようにし、これにより回路規模増大と処理速度低下を招致することなく聴感上の音質向上を図るようになっている。
【００５１】
Ｃ．変形例
上述した第２実施例では、入力波形のエンベロープレベルに応じてフィルタ演算の演算ビット数を指示するようにしたが、これに替えて、例えば図１１に示すように、波形種ｎおよび音高ｐに応じて、フィルタユニット１２−１〜１２−３にそれぞれ与える演算ビット数ＷＬ［ｎ，ｐ，１］〜［ｎ，ｐ，３］を読み出す語長割当テーブルＴＢＬを制御部１０に設けておき、ＣＰＵ５から供給される楽音パラメータに従い、制御部１０が語長割当テーブルＴＢＬから対応する演算ビット数ＷＬ［ｎ，ｐ，１］〜［ｎ，ｐ，３］を読み出してフィルタユニット１２−１〜１２−３に供給する態様としてもよい。
【００５２】
具体的には、制御部１０が図１２に図示する語長割当処理を一定周期毎に割込み実行する。実行タイミングになると、ステップＳＣ１に進み、ＣＰＵ５から供給される楽音パラメータが波形または音高の変化を指示するものであるか否かを判断する。波形または音高の変化を指示するものでなければ、判断結果は「ＮＯ」となり、何も行わずに本処理を完了させる。
一方、波形または音高の変化を指示するものであると、判断結果が「ＹＥＳ」になり、ステップＳＣ２に進み、変更された波形種ｎまたは音高ｐに対応する演算ビット数ＷＬ［ｎ，ｐ，１］〜［ｎ，ｐ，３］を語長割当テーブルＴＢＬから読み出し、それぞれをフィルタユニット１２−１〜１２−３に送出して本処理を終える。
このような変形例によれば、波形または音高の変化に対応した最適な演算ビット数のフィルタリングを即座に指示出来、しかもエンベロープ検出する構成を省くことができるから、回路規模増大や処理速度低下を招致することなく聴感上の音質向上を図ることが可能になる。
【００５３】
【発明の効果】
請求項１，３に記載の発明によれば、フィルタ係数が切り替えられると、遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形を、フィルタ手段から出力されるフィルタ係数切り替え後の波形にクロスフェードさせるよう波高値補間して出力し、その波高値補間が完了すると、遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間はフィルタ手段から出力されるフィルタ係数切り替え後の波形を出力し、一方、更新後は遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を出力するようにしてフィルタ出力の不連続を回避する為、係数テーブルを肥大化させずに回路規模増大や処理速度低下を招くことなく周波数特性を連続的に変化させることができる。
請求項２，４に記載の発明によれば、フィルタ係数が切り替えられると、遅延出力手段から遅延出力されるフィルタ係数切り替え前の波形と、フィルタ手段から出力されるフィルタ係数切り替え後の波形とのレベル差に応じて最適な補間演算形態を選択し、選択した補間演算形態でフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に非線形補間して出力し、その補間が完了すると、遅延出力手段の蓄積内容をフィルタ係数切り替え前の波形からフィルタ係数切り替え後の波形に更新させる間はフィルタ手段から出力されるフィルタ係数切り替え後の波形を選択して出力し、一方、更新後は遅延出力手段から遅延出力されるフィルタ係数切り替え後の波形を出力するようにしてフィルタ出力の不連続を回避する為、係数テーブルを肥大化させずに回路規模増大や処理速度低下を招くことなく周波数特性を連続的に変化させることができ、しかもフィルタ係数切り替え前後の波形データをより自然な形で滑らかに繋げるから音質向上に寄与することができる。
請求項５，７に記載の発明によれば、入力波形を複数の周波数帯域に分割して各周波数帯域毎のエンベロープレベルを検出し、検出されたエンベロープレベルが所定値を超えた周波数帯域に第１の演算ビット数のフィルタ演算を指示し、所定値以下の周波数帯域に第２の演算ビット数のフィルタ演算を指示すると、各周波数帯域に対応して設けられたフィルタ手段が指示された演算ビット数のフィルタ演算を入力波形に施すので、波形レベルが大きく聴覚的に耳につきやすい周波数帯域では精度の高いフィルタリングを、波形レベルが小さく聴覚的に目立たない周波数帯域では精度の低いフィルタリングを行わせるので、回路規模増大や処理速度低下を招致することなく聴感上の音質向上を図ることができる。
請求項６，８に記載の発明によれば、複数の周波数帯域毎に、入力波形の波形種および音高に対応付けた演算ビット数を予め記憶しておき、入力波形の波形種および音高を表す楽音パラメータに応じて、対応する演算ビット数を読み出して各周波数帯域のフィルタ手段に割当てると、各フィルタ手段は割当てられた演算ビット数のフィルタ演算を、対応する周波数帯域の入力波形に施すので、波形種または音高の変化に対応した最適な演算ビット数のフィルタリングを即座に指示出来、しかもエンベロープ検出する構成を省くことができるから、回路規模増大や処理速度低下を招致することなく聴感上の音質向上を図ることができる。
【図面の簡単な説明】
【図１】第１実施例によるフィルタ装置を備えた電子楽器の全体構成を示すブロック図である。
【図２】第１実施例によるフィルタ装置を備えた音源６の部分構成を示すブロック図である。
【図３】フィルタ部１２の一構成例を示すブロック図である。
【図４】係数テーブル１３に記憶されるフィルタ係数の一例を示す図である。
【図５】振幅補間器１４の構成を示すブロック図である。
【図６】補間係数発生器１４ａが発生する係数αの経時変化（同図（イ））および係数βの経時変化（同図（ロ））の様子を示す図である。
【図７】第２実施例によるフィルタ装置の構成を示すブロック図である。
【図８】積和演算処理ロジックを示すブロック図である。
【図９】制御部１０が実行する語長割当処理の動作を示すフローチャートである。
【図１０】ローパスフィルタ２２が実行するフィルタ演算タイマインタラプト処理の動作を示すフローチャートである。
【図１１】変形例における語長割当テーブルＴＢＬの構成を示す図である。
【図１２】変形例における制御部１０が実行する語長割当処理の動作を示すフローチャートである。
【符号の説明】
１  鍵盤
２  スイッチ部
３  ＲＯＭ
４  ＲＡＭ
５  ＣＰＵ
６  音源
７  Ｄ／Ａ変換器
８  サウンドシステム
９  スピーカ
１０  制御部
１１  波形発生器
１２  フィルタ部
１３  係数テーブル
１４  振幅補間器
１４ａ  補間係数発生器
１４ｂ  リングバッファ
１４ｃ，１４ｄ  乗算器
１４ｅ  加算器
【図１】
2005012728.tif 000003
【図２】
2005012728.tif 000004
【図３】
2005012728.tif 000005
【図４】
2005012728.tif 000006
【図５】
2005012728.tif 000007
【図６】
2005012728.tif 000008
【図７】
2005012728.tif 000009
【図８】
2005012728.tif 000010
【図９】
2005012728.tif 000011
【図１０】
2005012728.tif 000012
【図１１】
2005012728.tif 000013
【図１２】
2005012728.tif 000014