JP4548516B2 - Firフィルタ装置、音響装置およびfirフィルタプログラム - Google Patents

Firフィルタ装置、音響装置およびfirフィルタプログラム Download PDF

Info

Publication number
JP4548516B2
JP4548516B2 JP2008136911A JP2008136911A JP4548516B2 JP 4548516 B2 JP4548516 B2 JP 4548516B2 JP 2008136911 A JP2008136911 A JP 2008136911A JP 2008136911 A JP2008136911 A JP 2008136911A JP 4548516 B2 JP4548516 B2 JP 4548516B2
Authority
JP
Japan
Prior art keywords
impulse response
coefficient
acoustic signal
crossfade
response coefficient
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.)
Active
Application number
JP2008136911A
Other languages
English (en)
Other versions
JP2009282454A (ja
Inventor
純一 南高
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 JP2008136911A priority Critical patent/JP4548516B2/ja
Priority to US12/470,679 priority patent/US8145693B2/en
Publication of JP2009282454A publication Critical patent/JP2009282454A/ja
Application granted granted Critical
Publication of JP4548516B2 publication Critical patent/JP4548516B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本発明は、FIR(有限インパルス応答)フィルタのインパルス応答係数を算出し、算出されたインパル応答係数を用いたフィルタリング処理を行なうFIRフィルタ装置、当該FIRフィルタ装置を備えた音響装置、および、FIRフィルタプログラムに関する。
電子楽器やオーディオ機器からの音響信号に共鳴音を付加する種々の装置が知られている。ここに、共鳴音には、ホールなど楽音が発生される場所における残響音や、楽器自体の共鳴音などが含まれる。
共鳴音を発生するためには、共鳴音付加装置は、ディジタルの音響信号データを受け入れて、音響信号データにディジタルフィルタによるフィルタ処理を施すのが一般的である。フィルタ処理においては、FIR(有限インパルス応答:Finite Impulse Response)フィルタ或いはIIR(無限インパルス応答:Infinite Impulse
Response)フィルタが利用される。
FIRフィルタを利用する場合には、入力された音響信号データx(n−k)と、音楽ホールの残響特性などから得たインパルス応答hn(k)を畳み込み演算することで、共鳴音y(n)=Σx(n−k)×hn(k)のデータを得ることができる。しかしながら、FIRフィルタにおいては、インパルス応答データの数、つまり、フィルタの次数を高くすることにしたがって、より理想的なフィルタ特性に近づけることができる。その一方、フィルタの次数を上げるにしたがって、演算量も多量となるという問題点がある。
特開2000−163086号公報 特開2006−101461号公報
たとえば、特許文献1には、FIRフィルタにおいて少ないパラメータで多数の反射音を生成するための技術が開示されている。特許文献1においては、FIRフィルタを縦列に接続して、前段のFIRフィルタには、比較的まばら、つまり、時間的に間隔をおいて、かつ、長時間にわたるようなパラメータ(フィルタ係数)が用いられる。その一方、後段のFIRフィルタには、密になるように、狭い時間間隔となるようなパラメータ(フィルタ係数)が用いられる。また、特許文献2においても、同様に、特性の異なる2つのFIRフィルタを設け、前段のFIRフィルタの出力を、後段のFIRフィルタに入力させることが開示されている。
上述したようにFIRフィルタを直列に接続させることで、より多くの反射音など共鳴音を得ることができる。しかしながら、2つ分のフィルタ係数およびフィルタ回路を持つ必要があり、回路規模やデータ量は依然として大きいという問題点があった。
本発明は、回路規模やデータ量を小さくしつつ、自然な共鳴音を得ることができるようなFIRフィルタ装置、音響装置およびFIRフィルタプログラムを提供することを目的とする。
本発明の目的は、時間軸上の一連の音響信号データを格納した音響信号記憶手段と、
インパルス応答特性を表す時間軸上の値であるインパルス応答係数を含むインパルス応答データを記憶するインパルス応答データ記憶手段と、
前記インパルス応答係数の時間軸上において指定された、前記インパルス応答係数の繰り返しの始点に相当するループポイントと、前記インパルス応答係数の時間軸上の最後尾であるエンドポイントで確定される区間を繰り返す際に、前記エンドポイントと前記ループポイントとの間でクロスフェードを行なうクロスフェード区間の始点に相当するクロスフェードポイントと、前記ループポイントとに基づいて、前記クロスフェードポイントと前記エンドポイントとで画定される前記クロスフェード区間における新たな補正されたインパルス応答係数を算出して、インパルス応答データ記憶手段に格納するインパルス応答係数補正手段と、
前記音響信号記憶手段から前記音響信号データを読み出し、かつ、前記インパルス応答データ記憶手段から前記クロスフェード区間における補正されたインパルス応答係数を含むインパルス応答係数を読み出して、前記音響信号データと対応する前記インパルス応答係数とを乗算し、当該乗算結果を累算して、累算結果を出力する積和演算手段と、
を備えたことを特徴とするFIRフィルタ装置により達成される。
好ましい実施態様においては、前記インパルス応答係数補正手段が、
前記時間軸上で、当該ループポイントよりクロスフェード区間に相当する時間長だけ遡った区間における位置のインパルス応答係数に、当該遡った区間において増加するような増加関数にしたがった重みを乗じて第1の重み付け係数を算出するとともに、
前記クロスフェード区間における位置のインパルス応答係数に、前記クロスフェード区間において減少するような減少関数にしたがった重みを乗じて第2の重み付け係数を算出し、
前記第1の重み付け係数と第2の重み付け係数との加算結果を、前記クロスフェード区間における新たな補正されたインパルス応答係数とする。
別の好ましい実施態様においては、前記積和演算手段が、
前記音響信号記憶手段に記憶された音響信号データを遅延させる遅延手段と、
前記音響信号記憶手段の所定の音響信号データを所定の減衰率にて乗算し、当該乗算された音響信号データをフィードバックさせて、前記ループポイントに対応するインパルス応答係数と乗算すべき他の音響信号データに加算する帰還手段と、を有する。
また、本発明の目的は、上述したFIRフィルタ装置と、
時間軸上の一連の音響信号を生成して、前記FIRフィルタ装置の音響信号記憶手段に出力する音響信号発生装置と、
前記音響信号発生装置により生成された音響信号データと、前記FIRフィルタ装置から出力された共鳴音データとを加算する加算装置と、を備えたことを特徴とする音響装置により達成される。
また、本発明の目的は、時間軸上の一連の音響信号データを格納した音響信号記憶装置と、インパルス応答特性を表す時間軸上の値であるインパルス応答係数を含むインパルス応答データを記憶するインパルス応答データ記憶装置と、を備えたコンピュータに、
前記インパルス応答係数の時間軸上において指定された、前記インパルス応答係数の繰り返しの始点に相当するループポイントと、前記インパルス応答係数の時間軸上の最後尾であるエンドポイントとで確定される区間を繰り返す際に、前記エンドポイントと前記ループポイントとの間でクロスフェードを行なうクロスフェード区間の始点に相当するクロスフェードポイントと、前記ループポイントとに基づいて、前記クロスフェードポイントと前記エンドポイントとで画定される前記クロスフェード区間における新たな補正されたインパルス応答係数を算出して、インパルス応答データ記憶手段に格納するインパルス応答係数補正ステップと、
前記音響信号記憶装置から前記音響信号データを読み出し、かつ、前記インパルス応答データ記憶装置から前記クロスフェード区間における補正されたインパルス応答係数を含むインパルス応答係数を読み出して、前記音響信号データと対応する前記インパルス応答係数とを乗算し、当該乗算結果を累算して、累算結果を出力する積和演算ステップと、を実行させることを特徴とするFIRフィルタプログラムにより達成される。
本発明によれば、回路規模やデータ量を小さくしつつ、自然な共鳴音を得ることができるようなFIRフィルタ装置、音響装置およびFIRフィルタプログラムを提供することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本発明の実施の形態にかかる楽音発生装置の構成を示すブロックダイヤグラムである。図1に示すように、楽音発生装置は、CPU11、入力装置12、表示装置13、ROM14、RAM15、サウンドシステム16を備える。サウンドシステム16は、楽音発生回路17、共鳴音付加回路18、A/D変換器、増幅器(図示せず)、スピーカ(図示せず)などを含み、CPU11からの指示にしたがって、所定の楽音信号データを生成し、かつ、楽音信号データに基づいて、その共鳴音を再現した共鳴音データを生成し、生成された共鳴音データと楽音信号データとが合成された合成データに基づく音響を出力する。
本実施の形態においては、楽音発生装置に設けられたCPU11が、インパルス応答係数(FIRフィルタ係数)を補正する。また、CPU11および共鳴音付加回路18が、本発明にかかるFIRフィルタ係数を補正し、かつ、補正されたFIRフィルタ係数を利用したFIRフィルタ装置を構成する。
図1に示すように、楽音発生装置は、通常のパーソナルコンピュータによって実現され得る。或いは、鍵盤(図示せず)を有する鍵盤楽器の形態をとっていても良い。CPU11は、システム制御、FIRフィルタのインパルス応答係数の補正、表示装置13の画面上に表示すべき画像データの生成などの処理を実行する。入力装置12は、たとえば、キーボードやマウスを有し、操作者が所望の指示を入力することができるようになっている。表示装置13の画面上には、インパルス応答係数のグラフ、操作者が入力した指示、インパルス応答係数の補正処理の結果などが表示可能である。
ROM14は、インパルス応答係数の補正のためのプログラム、楽音信号データ生成のためのプログラム、フィルタリング処理のためのプログラム、プログラムの実行の際に使用される定数、FIRフィルタのインパルス応答係数、楽音信号データを生成するための各種音色の波形データなどを記憶する。RAM15は、プログラムの実行の過程で必要な変数、パラメータ、入力データ、出力データなどを一時的に記憶する。また、RAM15には、ユーザにより設定されたフィルタについての設定条件、インパルス応答係数の補正により得られた補正係数が格納される。
図2は、本実施の形態にかかる楽音発生装置において実行される処理の概略を示すフローチャートである。図2に示すように、CPU11は、RAM15中に格納されたパラメータや表示装置13の画面のクリアを含む初期化処理を実行する(ステップ201)。ユーザの入力装置12の操作による終了指示がある(ステップ202でYes)まで、ステップ203以降の処理が実行される。
ユーザの入力装置12の操作により条件設定の指示があった場合には(ステップ203でYes)、CPU11は、条件設定処理を実行する(ステップ204)。また、条件設定処理204により、後述する設定条件メモリ32(図5参照)に、新たな条件を示すデータが格納された場合には(ステップ205でYes)、CPU11は、係数補正処理を実行する(ステップ206)。条件設定処理および係数補正処理については後に詳述する。
CPU11および楽音発生回路17は、楽音発生処理を実行する(ステップ207)。楽音発生処理においては、鍵盤(図示せず)のいずれかの鍵の押鍵や、ROM14に格納された自動演奏データにおけるある音高の楽音のオン(ノートオン)に応答して、CPU11の指示にしたがって、楽音発生回路17が、ROM14から所定の音色の波形データを読み出し、所定の音高の楽音信号データを生成して出力する。
また、CPU11および共鳴音付加回路18は、フィルタリング処理を実行する(ステップ208)。フィルタリング処理においては、共鳴音付加回路18が、楽音信号データにFIRフィルタ処理を施して、共鳴音データを生成し、楽音データと共鳴音データとを加算した合成データを生成して出力する。フィルタリング処理についても後に詳述する。
図3は、本実施の形態にかかる条件設定処理の例を示すフローチャートである。条件設定処理において、ユーザは、FIRフィルタのインパルス応答係数の時間軸上で、所望のループポイントLおよびクロスフェードポイントXPを指定することができる。
より詳細には、CPU11は、ROM14に設けられたインパルス応答係数メモリ31(図5参照)からインパルス応答係数を読み出して(ステップ301)、たとえば、横軸を時間軸として縦軸をインパルス応答係数の値としたグラフを、表示装置13の画面上に表示する(ステップ302)。図4は、インパルス応答係数のグラフの例を示す図である。ユーザは、入力装置12を操作して、表示装置13の画面上に表示されたグラフにおいて、インパルス応答係数のループをスタートさせるループポイントL(符号401参照)を指定することができる。また、本実施の形態においては、インパルス応答係数において、最後尾(第N番)の位置(エンドポイント)のインパルス応答係数と、ループポイントLにおけるインパルス応答係数とを連続させるのではなく、後述するように、クロスフェードポイントXPとエンドポイントNとの間のクロスフェード区間w2において、クロスフェードを行って、ループにおけるインパルス応答係数の繋ぎを円滑にしている。したがって、ユーザは、入力装置12を操作して、クロスフェードポイントXP(符号402参照)も入力する。
ユーザが入力装置12を操作して入力したループポイントLおよびクロスフェードポイントXPが受理されると、受理されたループポイントLおよびクロスフェードポイントXPは、RAM15に一時的に記憶される(ステップ303)。ユーザが入力装置12を操作して、ループポイントLおよびクロスフェードポイントXPを確定させることを指示すると(ステップ304でYes)、CPU11は、ループポイントLおよびクロスフェードポイントXPを設定条件メモリ32に格納する(ステップ305)。
以下、設定条件メモリ32に格納されたループポイントLおよびクロスフェードポイントXPを利用して、インパルス応答係数が補正される。図5は、本実施の形態にかかる楽音発生装置において、係数補正および共鳴音データ生成にかかる構成部分のダイヤグラムである。図5に示すように、本実施の形態にかかる楽音発生装置は、係数補正のための係数補正処理部33を有する。補正係数処理部33は、設定条件メモリ32に格納されたループポイントLおよびクロスフェードポイントXPに基づいて、インパルス応答係数のうち、図4に示すクロスフェード区間w2における補正されたインパルス応答係数を算出する。新たなインパルス応答係数は補正係数メモリ34に格納される。
本実施の形態において、係数補正処理部33の機能は主としてCPU11により実現される。また、インパルス応答係数メモリ31はROM14に、設定条件メモリ32および補正係数メモリ34はRAM15に設けられる。
また、図5に示すように、共鳴音付加回路18は、積和演算部36および加算部37を有する。また、楽音信号バッファ35には、楽音発生回路17から出力された楽音信号データが一時的に記憶される。楽音信号バッファ35はRAM15に設けられる。積和演算部36は、補正係数メモリ34に格納されたインパルス応答係数と、楽音信号バッファ35に格納された楽音信号データとを積和演算して共鳴音データを生成する。また、本実施の形態においては、積和演算部36は、楽音信号データをフィードバックさせる機能を有する。これによりインパルス応答係数をループさせ、ループさせたインパルス応答係数を用いた積和演算を実現している。加算部37は、共鳴音データと楽音信号データとを加算して合成データを出力する。合成データは、A/D変換器(図示せず)や増幅器(図示せず)を経てスピーカ(図示せず)から音響信号として出力される。
図6は、本実施の形態にかかる係数補正処理部33において実行される係数補正処理(図2のステップ206)の例を示すフローチャートである。図6に示すように、係数補正処理部33は、設定条件メモリ32から、ループポイントLおよびクロスフェードポイントXPを取得する(ステップ601)。次いで、係数補正処理部33は、ループポイントLからインパルス応答係数のエンドポイントNとの差Llen、および、ループポイントLからクロスフェードポイントXPとの差XFを算出する(ステップ602)。
次いで、係数補正処理部33は、クロスフェードポイントXPと、インパルス応答係数のエンドポイントNとの間(クロスフェード区間w2)でクロスフェードさせるために、インパルス応答係数の重みを決定する係数を算出する(ステップ603、604)。図7は、インパルス応答係数のクロスフェードを説明する図である。図7(a)において、クロスフェード区間は符号702で示されている。また、図4と同様に、クロスフェード区間702の幅はN−XP=w2=w1である。したがって、位置L−w1からループポイントまでの区間701とクロスフェード区間702とが等しい。クロスフェードにおいては、区間701のインパルス応答係数に、時間の経過とともに値が増加するような増加関数(符号710)を乗じた第1の重み付きの係数と、クロスフェード区間702のインパルス応答係数に、時間の経過とともに値が減少するような減少関数(符号711)を乗じた第2の重み付きの係数とを加算して、加算結果を、クロスフェード区間702における補正されたインパルス応答係数としている。
より詳細には、係数補正処理部33は、区間701のインパルス応答係数に乗ずるための増加関数を算出する(ステップ603)。本実施の形態においては、増加関数および減少関数の双方とも、一次関数としているため、それぞれの関数の傾きおよび切片の値が求められる。ステップ603においては、増加関数の傾きaおよび切片bは以下のように算出される。
傾きa=1/(Llen−XF)
切片b=−a*XF
また、係数補正処理部33は、区間70のインパルス応答係数に乗ずるための減少関数を算出する(ステップ604)。ステップ604においては、減少関数の傾きaおよび切片bは以下のように算出される。
傾きa=1/(XF−Llen)
切片b=1−a*XF
図7(a)において、ループポイントLを、x座標上で「0」であると考えると、増加関数710および減少関数711は、図7(b)に示すようになる。図7(b)においては、増加関数710は、座標(XF,0)から座標(Llen,1)まで増加する一次関数であり、その一方、減少関数711は、座標(XF,1)から座標(Llen,0)まで減少する一次関数である。図7(b)に示す座標に基づいて、上記増加関数の傾きaおよび切片bおよび、減少関数の傾きaおよび切片bが算出される。
次いで、係数補正処理部3は、パラメータjをLに初期化して(ステップ605)、パラメータjがN以上になるまで(ステップ606でYes)、ステップ607〜611の処理を繰り返し実行する。係数補正処理部3は、パラメータjが、L+XF以上、つまり、パラメータjがクロスフェードポイントXP以上であるか否かを判断する(ステップ607)。
ステップ607でNoと判断された場合には、係数補正処理部3は、第1の重み付き係数dat1を「0」にするとともに、第2の重み付き係数dat2を、もとのインパルス応答係数hn[j]とする(ステップ608)。その後、係数補正処理部23は、新たな補正されたインパルス応答係数hn[j]を、第1の重み付き係数dat1および第2の重み付き係数dat2の和とする(ステップ610)。ステップ610で算出されたインパルス応答係数は、補正係数メモリ34に格納される。なお、j<Lの範囲では、補正係数メモリ34に格納されるインパルス応答係数hn[j]は、もとのインパルス応答係数と同じである。
パラメータjがL+XFより小さい場合、つまり、重み付き係数の算出のためにステップ608を経た場合にmo、補正係数メモリ34に格納されるインパルス応答係数hn[j]は、もとのインパルス応答係数と同じである。
その一方、ステップ607でYesと判断された場合には、係数補正処理部33は、第1の重み付き係数dat1および第2の重み付き係数を以下のように算出する(ステップ609)。
dat1=hn[j−Llen]*(a*(j−L)+b
dat2=hn[j]*(a*(j−L)+b
ステップ609においては、第1の重み付き係数dat1は、図7(a)に示す区間701の位置j−Llenのインパルス応答係数hn[j−Llen]に、増加関数である直線710に示す重みを与えた値となっている。また、第2の重み付き係数dat2は、クロスフェード区間702の位置jのインパルス応答係数hn[j]に、減少関数である直線711に示す重みを与えた値となっている。
次いで、係数補正処理部3は、第1の重み付き係数dat1および第2の重み付き係数dat2を加算して、新たな補正されたインパルス応答係数hn[j]を求め、求められたインパルス応答係数を、補正係数メモリ34に格納する(ステップ610)。したがって、パラメータjがL+Xfより大きい場合には、クロスフェードされたインパルス応答係数が得られることになる。
係数補正処理部3は、パラメータjをインクリメントして(ステップ611)、ステップ606に戻る。
次に、補正係数メモリ34に格納された補正されたインパルス応答係数、および、楽音信号バッファに格納された楽音信号データとの積和演算を含むフィルタリング処理について説明する。図8および図9は、本実施の形態にかかるフィルタリング処理の例を示すフローチャートである。共鳴音付加装置18の積和演算部36は、累算値sumを「0」に初期化し(ステップ801)、また、積和演算部36は、演算のためのパラメータjを「0」に初期化する(ステップ802)。次いで、積和演算部36は、パラメータjがN以上となるまで(ステップ803でYes)、ステップ804からステップ807の処理を繰り返す。
積和演算部36は、補正係数メモリ34からインパルス応答係数hn[j]を取得する(ステップ804)とともに、楽音信号バッファから楽音信号データwav[j]を取得する(ステップ806)。なお、本実施の形態において、インパルス応答係数メモリ31および補正係数メモリ34に格納されたインパルス応答係数hn[j]において、パラメータjは時間軸上の値に対応している。また、楽音信号バッファ35に格納される楽音信号データwav[j]においては、wav[0]が最新の楽音信号データであり、パラメータjが大きくなるのにしたがって、より古い(過去の)楽音信号データとなる。
積和演算部36は、インパルス応答係数hn[j]と楽音信号データwav[j]とを乗算して、累算値sumに加え、これを新たな累算値sumとする(ステップ806)。その後、積和演算部36は、パラメータjをインクリメントして(ステップ807)、ステップ803に戻る。
ステップ803でYesと判断された場合には、積和演算部36は、楽音信号バッファ35における楽音信号データのディレイ処理および所定の楽音信号データのフィードバック処理を実行する。図9に示すように、積和演算部36は、パラメータjをNに初期化して(ステップ901)、j=0となるまで(ステップ902でYes)、ステップ903〜906の処理を繰り返す。
積和演算部36は、パラメータjが、ループポイントLであるか否かを判断する(ステップ903)。ステップ903でNoと判断された場合には、積和演算部36は、楽音信号バッファ35において、楽音信号データwav[j−1]を遅延させて、楽音信号データwav[j]とする(ステップ904)。その一方、ステップ903でYesと判断された場合には、積和演算部36は、楽音信号データwav[j−1]に、第N−1番の楽音信号データwav[N−1]にフィードバック係数Rを乗じたものを加算して、これを、楽音信号データwav[j]とする(ステップ905)。ここで、フィードバック係数Rは、1より小さい正の値である。ステップ905により、第N−1番の楽音信号wav[N−1]を、楽音信号データwav[L]にフィードバックさせることができる。
その後、積和演算部36は、jをディクリメントして(ステップ906)、ステップ902に戻る。
上述したように、ステップ903、905において、j=Lのときに、楽音信号データwav[N−1]をフィードバック係数Rに示す減衰率で、wav[L]にフィードバックしている。したがって、ステップ902〜906のループを繰り返すことによって、楽音信号データwav[L]〜wav[N−1]には、フィードバックされた楽音信号データが反映される。したがって、インパルス応答係数との積和演算において、wav[L]〜wav[N−1]と対応するインパルス応答係数とが、ループされていることと同様の効果が得られる。
図10(a)、(b)および図11(a)、(b)は、それぞれ、インパルス応答係数の例を示すグラフである。図10(a)はループをしていないもとのインパルス応答係数の例(第1の比較例)、図10(b)は、ループをしているが、クロスフェードをせずに、インパルス応答係数の末尾に引き続いて、ループポイント以降のインパルス応答係数を配置した例(第2の比較例)である。
これに対して、図11(a)は、クロスフェードをさせた第1の例であり、(XF)/(N−L)=0.893としている。また、図11(b)は、クロスフェードをさせた第2の例であり、(XF)/(N−L)=0.393としている。なお、XF=N−XPである。
また、図12(a)、(b)および図13(a)、(b)は、インパルス応答係数のグラフにおいて、クロスフェードポイントXPおよびエンドポイントN付近の拡大図である。図12(a)、(b)および図13(a)、(b)は、それぞれ、第1の比較例、第2の比較例、クロスフェードさせた第1の例およびクロスフェードさせた第2の例の拡大図である。図12(b)と、図13(a)、(b)とを比較すると、第2の比較例で発生している不連続点が、クロスフェードさせることによりなめらかに繋がっていることがわかる。
本実施の形態によれば、係数補正処理部33は、インパルス応答係数の繰り返しの始点に相当するループポイントLとエンドポイントNで確定される区間を繰り返す際に、エンドポイントNとループポイントLとの連結を円滑にするためにクロスフェードを行なうクロスフェード区間W2の始点に相当するクロスフェードポイントXPと、に基づいて、クロスフェード区間における新たな補正されたインパルス応答係数を算出して、補正係数メモリ34に格納する。
積和演算部36は、補正係数メモリ34に格納されたインパルス応答係数を読み出して、読み出されたインパルス応答係数と、楽音信号データとの積和演算を行なう。したがって、エンドポイントNのインパルス応答係数と、繰り返されたループポイントLのインパルス応答係数との連結は円滑である。したがって、その連結された部分を含むインパル応答係数と、楽音信号データとの積和演算により得られた共鳴音も不自然ではない。また、クロスフェードした上でインパルス応答係数をループさせることにより、インパルス応答係数のデータ量を増大させることなく、十分な共鳴音を得ることが可能となる。
また、本実施の形態においては、係数補正処理部33は、ループポイントLよりクロスフェード区間に相当する時間長W1だけ遡った区間における位置のインパルス応答係数に、当該遡った区間において増加するような増加関数(図7の符号710参照)にしたがった重みを乗じて第1の重み付け係数を算出するとともに、クロスフェード区間における位置のインパルス応答係数に、クロスフェード区間において減少するような減少関数(図7の符号711参照)にしたがった重みを乗じて第2の重み付け係数を算出し、第1の重み付け係数と第2の重み付け係数との加算結果を、クロスフェード区間における新たな補正されたインパルス応答係数とする。このように補正されたインパルス応答係数を算出することで、クロスフェード区間における、インパルス応答係数の円滑なクロスフェードを実現でき、エンドポイントNのインパルス応答係数と、繰り返されたループポイントLのインパルス応答係数との連結を滑らかにすることができる。
また、本実施の形態においては、積和演算部36は、楽音信号バッファ35に記憶された楽音信号データを遅延させ、また、楽音信号バッファ35の所定の楽音信号データを所定の減衰率Rで乗算し、当該乗算された楽音信号データをフィードバックさせて、ループポイントに対応するインパルス応答係数と乗算すべき楽音信号データに加算する。楽音信号バッファに格納された楽音信号データをループポイントに対応する位置にフィードバックさせることで、インパルス応答係数との積和演算において、上記ループポイントに対応する位置の楽音信号データ以降の楽音信号データと、インパルス応答係数とが、繰り返し積和演算され、ループが実現される。したがって、積和演算にて用いる楽音信号データのデータ量を増大させることなく、十分な共鳴音を得ることが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態においては、鍵盤の押鍵や自動演奏データにおけるある音高の楽音のオン(ノートオン)に応じて生成された楽音信号データにFIRフィルタ処理を施して、共鳴音データを生成している。しかしながら、これに限定されるものではなく、オーディオ機器から出力されるデータにFIRフィルタ処理を施して、共鳴音データを生成しても良い。つまり、本件においてフィルタ処理を施す対象は、楽音信号データを含む音響信号データである。
また、前記実施の形態においては、積和演算部36が、楽音信号データwav[L−1]に、第N−1番の楽音信号データwav[N−1]にフィードバック係数Rを乗じたものを加算して、これを、ループポイントに対応する楽音信号データwav[L]としている。すなわち、楽音信号データwav[N−1]をループポイントに対応する楽音信号データwav[L]にフィードバックさせて、ループを実現している。しかしながらこのような構成に限定されるものではなく、楽音信号バッファに格納される楽音信号データの数を、補正係数メモリ34に格納されるインパルス応答係数の数より大きくして、ループされたインパルス応答係数と、楽音信号バッファに格納された楽音信号データとの積和演算が行なわれるように構成しても良い。
また、本実施の形態においては、増大関数および減少関数として、一次関数を利用しているがこれに限定されるものではない。たとえば、増大関数として、0〜π/2の範囲の正弦関数、減少関数として、0〜π/2の範囲の余弦関数を利用しても良い。或いは、他の関数(対数関数や、指数関数)を利用しても良い。
図1は、本発明の実施の形態にかかる共鳴音付加回路を有する楽音発生装置の構成を示すブロックダイヤグラムである。 図2は、本実施の形態にかかる楽音発生装置において実行される処理の概略を示すフローチャートである。 図3は、本実施の形態にかかる条件設定処理の例を示すフローチャートである。 図4は、インパルス応答係数の例を示す図である。 図5は、本実施の形態にかかる楽音発生装置において、係数補正および共鳴音データ生成にかかる構成部分のダイヤグラムである。 図6は、本実施の形態にかかる係数補正処理部において実行される係数補正処理(図2のステップ206)の例を示すフローチャートである。 図7は、インパルス応答係数のクロスフェードを説明する図である。 図8は、本実施の形態にかかるフィルタリング処理の例を示すフローチャートである。 図9は、本実施の形態にかかるフィルタリング処理の例を示すフローチャートである。 図10(a)、(b)は、インパルス応答係数の例を示すグラフである。 図11(a)、(b)は、インパルス応答係数の例を示すグラフである。 図12(a)、(b)は、インパルス応答係数のグラフにおいて、クロスフェードポイントXPおよびエンドポイントN付近の拡大図である。 図13(a)、(b)は、インパルス応答係数のグラフにおいて、クロスフェードポイントXPおよびエンドポイントN付近の拡大図である。
符号の説明
11 CPU
12 入力装置
13 表示装置
14 ROM
15 RAM
16 サウンドシステム
17 楽音発声回路
18 共鳴音付加回路
31 インパルス応答係数メモリ
32 設定条件メモリ
33 係数補正処理部
34 補正係数メモリ
35 楽音信号バッファ
36 積和演算部
37 加算部

Claims (5)

  1. 時間軸上の一連の音響信号データを格納した音響信号記憶手段と、
    インパルス応答特性を表す時間軸上の値であるインパルス応答係数を含むインパルス応答データを記憶するインパルス応答データ記憶手段と、
    前記インパルス応答係数の時間軸上において指定された、前記インパルス応答係数の繰り返しの始点に相当するループポイントと、前記インパルス応答係数の時間軸上の最後尾であるエンドポイントとで確定される区間を繰り返す際に、前記エンドポイントと前記ループポイントとの間でクロスフェードを行なうクロスフェード区間の始点に相当するクロスフェードポイントと、前記ループポイントとに基づいて、前記クロスフェードポイントと前記エンドポイントとで画定される前記クロスフェード区間における新たな補正されたインパルス応答係数を算出して、インパルス応答データ記憶手段に格納するインパルス応答係数補正手段と、
    前記音響信号記憶手段から前記音響信号データを読み出し、かつ、前記インパルス応答データ記憶手段から前記クロスフェード区間における補正されたインパルス応答係数を含むインパルス応答係数を読み出して、前記音響信号データと対応する前記インパルス応答係数とを乗算し、当該乗算結果を累算して、累算結果を出力する積和演算手段と、
    を備えたことを特徴とするFIRフィルタ装置。
  2. 前記インパルス応答係数補正手段が、
    前記時間軸上で、当該ループポイントよりクロスフェード区間に相当する時間長だけ遡った区間における位置のインパルス応答係数に、当該遡った区間において増加するような増加関数にしたがった重みを乗じて第1の重み付け係数を算出するとともに、
    前記クロスフェード区間における位置のインパルス応答係数に、前記クロスフェード区間において減少するような減少関数にしたがった重みを乗じて第2の重み付け係数を算出し、
    前記第1の重み付け係数と第2の重み付け係数との加算結果を、前記クロスフェード区間における新たな補正されたインパルス応答係数とすることを特徴とする請求項1に記載のFIRフィルタ装置。
  3. 前記積和演算手段が、
    前記音響信号記憶手段に記憶された音響信号データを遅延させる遅延手段と、
    前記音響信号記憶手段の所定の音響信号データを所定の減衰率にて乗算し、当該乗算された音響信号データをフィードバックさせて、前記ループポイントに対応するインパルス応答係数と乗算すべき他の音響信号データに加算する帰還手段と、を有することを特徴とする請求項1または2に記載のFIRフィルタ装置。
  4. 請求項1ないし3の何れか一項に記載のFIRフィルタ装置と、
    時間軸上の一連の音響信号を生成して、前記FIRフィルタ装置の音響信号記憶手段に出力する音響信号発生装置と、
    前記音響信号発生装置により生成された音響信号データと、前記FIRフィルタ装置から出力された共鳴音データとを加算する加算装置と、を備えたことを特徴とする音響装置。
  5. 時間軸上の一連の音響信号データを格納した音響信号記憶装置と、
    インパルス応答特性を表す時間軸上の値であるインパルス応答係数を含むインパルス応答データを記憶するインパルス応答データ記憶装置と、を備えたコンピュータに、
    前記インパルス応答係数の時間軸上において指定された、前記インパルス応答係数の繰り返しの始点に相当するループポイントと、前記インパルス応答係数の時間軸上の最後尾であるエンドポイントとで確定される区間を繰り返す際に、前記エンドポイントと前記ループポイントとの間でクロスフェードを行なうクロスフェード区間の始点に相当するクロスフェードポイントと、前記ループポイントとに基づいて、前記クロスフェードポイントと前記エンドポイントとで画定される前記クロスフェード区間における新たな補正されたインパルス応答係数を算出して、インパルス応答データ記憶手段に格納するインパルス応答係数補正ステップと、
    前記音響信号記憶装置から前記音響信号データを読み出し、かつ、前記インパルス応答データ記憶装置から前記クロスフェード区間における補正されたインパルス応答係数を含むインパルス応答係数を読み出して、前記音響信号データと対応する前記インパルス応答係数とを乗算し、当該乗算結果を累算して、累算結果を出力する積和演算ステップと、
    を実行させることを特徴とするFIRフィルタプログラム。
JP2008136911A 2008-05-26 2008-05-26 Firフィルタ装置、音響装置およびfirフィルタプログラム Active JP4548516B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008136911A JP4548516B2 (ja) 2008-05-26 2008-05-26 Firフィルタ装置、音響装置およびfirフィルタプログラム
US12/470,679 US8145693B2 (en) 2008-05-26 2009-05-22 Fir filter apparatus, audio apparatus and fir filter program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008136911A JP4548516B2 (ja) 2008-05-26 2008-05-26 Firフィルタ装置、音響装置およびfirフィルタプログラム

Publications (2)

Publication Number Publication Date
JP2009282454A JP2009282454A (ja) 2009-12-03
JP4548516B2 true JP4548516B2 (ja) 2010-09-22

Family

ID=41342860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008136911A Active JP4548516B2 (ja) 2008-05-26 2008-05-26 Firフィルタ装置、音響装置およびfirフィルタプログラム

Country Status (2)

Country Link
US (1) US8145693B2 (ja)
JP (1) JP4548516B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751554B2 (en) * 2010-04-26 2014-06-10 Aptina Imaging Corporation Systems and methods for an adjustable filter engine

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003263179A (ja) * 2002-03-12 2003-09-19 Yamaha Corp 残響付与装置、残響付与方法、プログラムおよび記録媒体
JP2003263178A (ja) * 2002-03-12 2003-09-19 Yamaha Corp 残響付与装置、残響付与方法、プログラムおよび記録媒体
JP2003271165A (ja) * 2002-03-13 2003-09-25 Yamaha Corp 音場再生装置、プログラム及び記録媒体
JP2004053635A (ja) * 2002-07-16 2004-02-19 Roland Corp 効果装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5532820A (en) * 1990-08-17 1996-07-02 Samsung Electronics Co., Ltd. Digital modulators for use with sub-nyquist sampling of raster-scanned samples of image intensity
WO1997017692A1 (en) * 1995-11-07 1997-05-15 Euphonics, Incorporated Parametric signal modeling musical synthesizer
US5742532A (en) * 1996-05-09 1998-04-21 The Board Of Trustees Of The Leland Stanford Junior University System and method for generating fractional length delay lines in a digital signal processing system
SG65729A1 (en) * 1997-01-31 1999-06-22 Yamaha Corp Tone generating device and method using a time stretch/compression control technique
JP3460602B2 (ja) * 1998-11-25 2003-10-27 ヤマハ株式会社 反射音生成装置
US6978027B1 (en) * 2000-04-11 2005-12-20 Creative Technology Ltd. Reverberation processor for interactive audio applications
JP2006101461A (ja) * 2004-09-30 2006-04-13 Yamaha Corp 立体音響再生装置
US7899678B2 (en) * 2007-01-11 2011-03-01 Edward Theil Fast time-scale modification of digital signals using a directed search technique

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003263179A (ja) * 2002-03-12 2003-09-19 Yamaha Corp 残響付与装置、残響付与方法、プログラムおよび記録媒体
JP2003263178A (ja) * 2002-03-12 2003-09-19 Yamaha Corp 残響付与装置、残響付与方法、プログラムおよび記録媒体
JP2003271165A (ja) * 2002-03-13 2003-09-25 Yamaha Corp 音場再生装置、プログラム及び記録媒体
JP2004053635A (ja) * 2002-07-16 2004-02-19 Roland Corp 効果装置

Also Published As

Publication number Publication date
JP2009282454A (ja) 2009-12-03
US8145693B2 (en) 2012-03-27
US20090292753A1 (en) 2009-11-26

Similar Documents

Publication Publication Date Title
US7612281B2 (en) Reverberation effect adding device
JP6391265B2 (ja) 電子鍵盤楽器
JP4702392B2 (ja) 共鳴音発生装置および電子楽器
US7217879B2 (en) Reverberation sound generating apparatus
JP4548516B2 (ja) Firフィルタ装置、音響装置およびfirフィルタプログラム
JP2009175677A (ja) 共鳴音付加装置および電子楽器
JP4935556B2 (ja) 電子楽器の共鳴音付加装置および電子楽器
JP4877076B2 (ja) 共鳴音付加装置および共鳴音付加プログラム
JP5434120B2 (ja) インパルス応答加工装置、残響付与装置およびプログラム
JP5169753B2 (ja) 共鳴音付加装置および電子楽器
JP4941106B2 (ja) 共鳴音付加装置および共鳴音付加プログラム
JP5593590B2 (ja) 共鳴音発生装置、電子楽器および共鳴音発生プログラム
JP5092902B2 (ja) Firフィルタ係数算出装置、firフィルタ装置、および、firフィルタ係数算出プログラム
JP5169566B2 (ja) 残響付与装置およびプログラム
JP5035388B2 (ja) 共鳴音発生装置および電子楽器
JP2009150920A (ja) エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム
JP4432951B2 (ja) 楽音発生装置および電子楽器
JP3371469B2 (ja) 楽音信号合成装置
JP2001356800A (ja) ホルマント付加装置
JP2002006853A (ja) 共鳴装置
JP4983858B2 (ja) フィルタ装置およびフィルタ処理プログラム
JPH1152950A (ja) 電子楽器
JP2011112815A (ja) 効果音付与装置および電子楽器
JP2005012728A (ja) フィルタ装置およびフィルタ処理プログラム
JP2010191124A (ja) 効果音発生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4548516

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3