JP3743625B2 - 可変遅延装置 - Google Patents
可変遅延装置 Download PDFInfo
- Publication number
- JP3743625B2 JP3743625B2 JP2001335907A JP2001335907A JP3743625B2 JP 3743625 B2 JP3743625 B2 JP 3743625B2 JP 2001335907 A JP2001335907 A JP 2001335907A JP 2001335907 A JP2001335907 A JP 2001335907A JP 3743625 B2 JP3743625 B2 JP 3743625B2
- Authority
- JP
- Japan
- Prior art keywords
- delay
- coefficient
- integer
- output
- sampling period
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Reverberation, Karaoke And Other Acoustics (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、楽音合成装置などに適用して好適な可変遅延装置に関する。
【0002】
【従来の技術】
近年、自然楽器の発音メカニズムをシミュレートしたモデルを動作させ、これにより自然楽器の楽音を合成する楽音合成装置が各種開発されている。この種の楽音合成装置としては、図11に示すような、加算器1101、遅延回路(Delay)1102、オールパスフィルタ(APF)1103、およびフィルタ1104を閉ループ状に接続したループ部を備えた構成が知られている。
【0003】
遅延回路1102は、所定段数のシフトレジスタからなる。各段は、加算器1101の加算結果を記憶できるだけのビット数を持つ。遅延回路1102には所定サンプリング周期ごとにクロックが供給される。そして、サンプリング周期ごとに加算器1101から加算結果が入力し、遅延回路1102の第1段に書き込まれる。遅延回路1102の各段のデータは、サンプリング周期ごとに次の段へとシフトされる。遅延回路1102からのデータ読み出しは、指定された任意の段から読み出し可能である。したがって、サンプリング周期の整数倍の遅延時間だけ遅延したデータを得ることができる。遅延回路1102から読み出した所定の遅延時間だけ遅延されたデータは、APF1103に入力する。
【0004】
上述の遅延回路1102では、サンプリング周期の整数倍の遅延時間しか設定できないので、サンプリング周期の整数倍からずれた遅延時間を設定するためにAPF1103を用いる。図12に、APF1103の典型的なブロック構成を示す。この図のAPF1103は、1次のディジタルフィルタであり、乗算器(乗算係数をaとする)1201,1202、加算器1203,1204、および遅延回路(1段のレジスタ)1205から構成されている。これら各部には、サンプリング周期ごとにクロックが供給される。APF1103は、周波数特性がフラットであるとともに、乗算係数aを適宜設定することにより、自己の遅延時間を調整することが可能である。これにより、サンプリング周期の整数倍からずれた値の遅延時間を設定できる。APF1103の出力は、フィルタ1104に入力する。
【0005】
フィルタ1104は、ローパスフィルタその他のフィルタであり、このループ部内を循環する信号に所望の減衰特性を付与したり、所望の音色となるように加工するためのものである。フィルタ1104の出力は、加算器1101に入力し、入力信号と加算される。
【0006】
図11のループ部では、例えば、ノイズ信号のような多くの周波数成分を含んだアナログ信号をサンプリング周期ごとにPCM符号化し、この結果得られた時系列ディジタル信号を加算器1101への入力信号とする。この入力信号は、加算器1101を介して、遅延回路1102でサンプリング周期の整数倍だけ遅延され、さらにAPF1103でサンプリング周期の整数倍からのずれ分だけ遅延されて、フィルタ1104に入力し、再び加算器1101にフィードバックされて、ループ部内を循環する。
【0007】
このようなループ部の共振周波数は、遅延回路1102およびAPF1103の遅延時間により決定される(フィルタ1104の位相遅れは無視するものとする)。したがって、遅延回路1102およびAPF1103による遅延時間(遅延回路1102で全体の遅延長の整数分の遅延を行ない、APF1103で全体の遅延長の小数分の遅延を行なう)を制御することにより、このループ部を循環する楽音信号の音高を制御することができる。出力は、ループ内のどこから楽音信号を取り出してもよい。図11では、加算器1101から楽音信号を取り出して出力している。
【0008】
ところで、上述したような楽音合成装置において、例えば、遅延量が「9.999」から「10.000」に変化するときなど(遅延量の整数部は「9」から「10」に変化し、小数部は「0.999」から「0」に変化する)、整数部と小数部を不連続に制御せざるを得ない場合がある。このような場合、APFの乗算器の乗算係数が大きく変化し、出力値の不連続が生じてノイズ発生の要因となる。そこで、特許第2727883号では、このようなノイズの発生を防ぐため、整数部と小数部を不連続に制御する際の切り替えの前後で出力値がほぼ等しくなるように、APFの遅延回路(レジスタ)に所定の設定値(「0」や1サンプル前の値)を与え、またAPFの乗算器に与える乗算係数を「0」や「−1」に強制的に設定している。これにより、不要なノイズを生じさせることなく、境界(遅延量の整数部が変化する部分)条件での連続性を保つようにしている。
【0009】
また、特開平11−161275号では、図11および図12で説明したような構成で、入力値が一定であるにもかかわらずAPFの乗算係数が変化したためにノイズが生じてしまうことを防止するため、図12の乗算器1201,1202に係数を与える際に、乗算器1201に与える係数を1サンプリング周期だけ遅れて与えるようにして、ノイズの発生を抑える手法が開示されている。
【0010】
【発明が解決しようとする課題】
しかし、上述の従来技術では、ディレイ長(遅延量)の変化が小さい場合には問題はないが、境界(遅延量の整数部が変化する部分)前後において変化が大きい場合には不都合を生じる場合があった。例えば、特許第2727883号に示されているような整数部と小数部を不連続に制御する際の切り替えの前後でAPFの遅延回路や乗算器に強制的に値を設定するものでは、ピッチ変化が速くて大きいとき、得られる出力値が本来求めたい理想の値とは異なる場合がある。該公報のものでは、例えば整数部が変化した後の乗算器の乗算係数は「0」または「−1」に近い値になるはずだからそれを強制的に設定して出力が理想値に近くなるようにするものであるが、ピッチ変化が速くて大きいときは上記の乗算係数は必ずしも「0」または「−1」に近い値を取るとは限らず、そのため得られる出力値は本来の値とは異なる場合がある。
【0011】
この発明は、上述の従来技術における問題点に鑑み、遅延手段の整数部と小数部を不連続に制御する場合でもノイズの発生を抑え一定の出力値を保持できるような可変遅延装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
この目的を達成するため、請求項1に係る発明は、所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、前記オールパスフィルタは、前記整数分遅延手段から取り出した整数分遅延出力を入力し、1サンプリング周期だけ遅延して出力するフィードフォワード側遅延手段と、前記整数分遅延出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第1の乗算手段と、出力信号を1サンプリング周期だけ遅延して出力するフィードバック側遅延手段と、前記フィードバック側遅延手段の出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第2の乗算手段と、前記フィードフォワード側遅延手段の出力と前記第2の乗算手段の乗算結果とを加算し、さらに前記第1の乗算手段の乗算結果を減算し、その結果を出力信号として出力する加算手段とを備えるとともに、前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記整数分遅延手段からの現在の整数分遅延出力の1サンプリング前の値を、前記フィードフォワード側遅延手段およびフィードバック側遅延手段に設定する手段を備えたことを特徴とする。
【0013】
請求項2に係る発明は、所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、前記オールパスフィルタは、前記整数分遅延手段から取り出した整数分遅延出力を入力し、1サンプリング周期だけ遅延して出力するフィードフォワード側遅延手段と、前記整数分遅延出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第1の乗算手段と、出力信号を1サンプリング周期だけ遅延して出力するフィードバック側遅延手段と、前記フィードバック側遅延手段の出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第2の乗算手段と、前記フィードフォワード側遅延手段の出力と前記第2の乗算手段の乗算結果とを加算し、さらに前記第1の乗算手段の乗算結果を減算し、その結果を出力信号として出力する加算手段とを備えるとともに、前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記整数分遅延手段からの現在の整数分遅延出力の1サンプリング前の値を前記フィードフォワード側遅延手段に設定し、さらに前記フィードバック側遅延手段には、最終的な出力値がディレイ補間による出力値と一致するように算出した値を設定する手段を備えたことを特徴とする。
【0014】
請求項3に係る発明は、所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、前記オールパスフィルタは、前記小数分の遅延量に応じて与えられる係数を1サンプリング周期だけ遅延して出力する係数遅延手段と、前記整数分遅延手段から取り出した整数分遅延出力を入力し、該入力信号に、前記係数遅延手段で遅延された係数を乗算する第1の乗算手段と、出力信号に、前記係数遅延手段を介さずに、前記係数を乗算する第2の乗算手段と、前記入力信号と前記第2の乗算手段の乗算結果とを加算する第1の加算手段と、前記第1の加算手段の加算結果を1サンプリング周期だけ遅延して出力する遅延手段と、前記遅延手段の出力と前記第1の乗算手段の乗算結果とを加算し、その結果を出力信号として出力する第2の加算手段とを備えるとともに、前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記整数分遅延手段からの現在の整数分遅延出力の1サンプリング前の値に、前記小数分の遅延量に応じて与えられる係数に1を加えた値を乗算し、その計算値を前記遅延手段に設定し、さらに前記係数遅延手段に、前記小数分の遅延量に応じて与えられる係数を設定する手段を備えたことを特徴とする。
【0015】
請求項4に係る発明は、所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、前記オールパスフィルタは、前記小数分の遅延量に応じて与えられる係数を1サンプリング周期だけ遅延して出力する係数遅延手段と、前記整数分遅延手段から取り出した整数分遅延出力を入力し、該入力信号に、前記係数遅延手段で遅延された係数を乗算する第1の乗算手段と、出力信号に、前記係数遅延手段を介さずに、前記係数を乗算する第2の乗算手段と、前記入力信号と前記第2の乗算手段の乗算結果とを加算する第1の加算手段と、前記第1の加算手段の加算結果を1サンプリング周期だけ遅延して出力する遅延手段と、前記遅延手段の出力と前記第1の乗算手段の乗算結果とを加算し、その結果を出力信号として出力する第2の加算手段とを備えるとともに、前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記遅延手段には、最終的な出力値がディレイ補間による出力値と一致するように算出した値を設定し、さらに前記係数遅延手段には、前記小数分の遅延量に応じて与えられる係数を設定する手段を備えたことを特徴とする。
【0016】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【0017】
図1は、この発明の実施の形態に係るAPFを用いた楽音信号処理装置の全体構成を示すブロック図である。この装置は、制御プロセッサ101、メモリ102、操作表示部103、ADC(アナログ・ディジタル変換器)104、信号プロセッサ105、信号処理メモリ106、およびDAC(ディジタル・アナログ変換器)107を備える。
【0018】
制御プロセッサ101は、この装置の全体の動作を制御する。メモリ102には、制御プロセッサ101が実行する各種制御プログラムが記憶されるとともに、ワークエリアおよびワークレジスタなどの領域が設けられる。操作表示部103は、各種の情報を設定するためのパネルスイッチなどの操作子と各種の情報を表示するための表示画面である。ADC104は、入力したアナログ楽音信号をディジタル楽音信号に変換する回路である。ディジタル楽音信号が直接入力する場合は、ADC104は不要である。信号プロセッサ105は、ADC104から入力した楽音信号にエフェクト付与などの信号処理を施したり、楽音合成処理を行なう。信号処理メモリ106は、信号プロセッサ105が信号処理を行なう際に、主として信号遅延用として用いられるメモリである。信号プロセッサ105から出力されたデジタル楽音信号は、DAC107によりアナログ楽音信号に変換され、不図示のサウンドシステムへと出力される。
【0019】
図2は、信号プロセッサ105によって実現される楽音信号処理のモデルを示すブロック図である。この信号処理モデルにより、例えば、物理モデル音源、並びに、フランジャー、コーラス、およびリバーブなどの各種信号遅延応用エフェクタが実現される。この楽音信号処理モデルは、上述したように実際には信号プロセッサ105と信号処理メモリ106により実現されている。ここでは信号プロセッサ105はDSP(ディジタル・シグナル・プロセッサ)とし、該DSPが実行するマイクロ・プログラムはあらかじめ制御プロセッサ101の指示によりロードされているものとする。
【0020】
図2において、入力楽音信号は加算器201に入力する。加算器201から出力された楽音信号は、遅延回路(DELAY)202とAPF203からなる信号遅延部206に入力する。信号遅延部206に入力した楽音信号は、遅延回路202でサンプリング周期の整数倍分の遅延を、APF203で小数分の遅延を与えられ、これらにより指定された遅延時間だけ遅延されたのち出力される。信号遅延部206からの出力信号は、フィルタ部(FILTER)204とループゲイン調整部(GAIN)205により所望の音色や減衰となるように特性を与えられる。GAIN205からの出力信号は、加算器201にフィード・バックされ、入力された楽音信号と加算されて出力される。
【0021】
図3は、信号遅延部206の内部構造を示すブロック図である。遅延回路202は、サンプリング周期の整数倍分の遅延を行なう遅延回路であり、所定段数のシフトレジスタから構成されている。図の左側から入力したデータは、サンプリング周期ごとに右側の次の段にシフトされる。intを整数として、int段目の記憶領域をDintで表す。Xnは、サンプリング時刻nにおいて遅延回路202に入力したデータを示す。図3の状態では、Dint段目の内容がXnになっており、ここから取り出したデータをAPF203に入力している。
【0022】
APF203は、乗算器301,304、加算器302、および遅延回路303,305(1サンプリング周期分の遅延を行なう1段のレジスタ)を備えている。遅延回路202から取り出したデータは、乗算器301および遅延回路303に入力する。乗算器301は、入力データに、その時点で与えられた乗数Cmを乗算し、乗算結果を加算器302に出力する。遅延回路303は、入力データを1サンプリング周期遅延させて加算器302に出力する。加算器302は、遅延回路303からの入力データと乗算器304からの入力データとを加算し、さらに乗算器301からの入力データを減算して、その結果を出力する。加算器302の出力データは、遅延回路305に入力する。遅延回路305は、入力データを1サンプリング周期遅延させて乗算器304に出力する。乗算器304は、入力データに、その時点で与えられた乗数Cmを乗算し、乗算結果を加算器302に出力する。最終的な信号遅延部206の出力は、加算器302から取り出されて出力される。
【0023】
図3は、現サンプリング時刻mにおいて、信号遅延部206の設定遅延量がDm=int+fmであったときの状態を示すものとする。ただし、設定遅延量Dmは遅延段数の換算値で表すものとし、intは整数部、fmは小数部を表すものとする。少数部fmを実現する乗数をCmとする。
【0024】
図3の状態から、次のサンプリング時刻m+1で、設定遅延量が変化し、遅延回路202の遅延段数、すなわち整数部が減少し、
Dm+1=(int−1)+fm+1
となる場合を考える。
【0025】
図4は、整数部が減少した場合の、図3の状態から1サンプリング周期後の状態を示す。整数部の減少に応じて、遅延回路202からのデータの取り出し位置は、int−1段目に移行している。ここで、乗算係数Cm+1は、
Cm+1≒fm+1−1
と近似できる。一方、求めたい理想の出力値をDELAYOUTとすると、
DELAYOUT=(1−fm+1)・Xn+2+fm+1・Xn+1
である。これを上記の近似式で書き替えると、
DELAYOUT=−Cm+1・Xn+2+(1+Cm+1)・Xn+1
となる。これより、サンプリング時刻m+1では、APF203の2つの遅延回路303,305には入力値である「Xn+2」の1サンプリング前の値である「Xn+1」を設定すればよいことが分かる。図4は、サンプリング時刻m+1で、強制的に遅延回路303,305に「Xn+1」を設定している様子を示している。
【0026】
次に、図3の状態から、次のサンプリング時刻m+1で、設定遅延量が変化し、遅延回路202の遅延段数、すなわち整数部が増加し、
Dm+1=(int+1)+fm+1
となる場合を考える。
【0027】
図5は、整数部が増加した場合の、図3の状態から1サンプリング周期後の状態を示す。整数部の増加に応じて、遅延回路202からのデータの取り出し位置は、int+1段目に移行している。ここで、乗算係数Cm+1は、
Cm+1≒fm+1−1
と近似できる。一方、求めたい理想の出力値をDELAYOUTとすると、
DELAYOUT=(1−fm+1)・Xn+fm+1・Xn-1
である。これを上記の近似式で書き替えると、
DELAYOUT=−Cm+1・Xn+(1+Cm+1)・Xn-1
となる。これより、サンプリング時刻m+1では、APF203の2つの遅延回路303,305には入力値である「Xn」の1サンプリング前の値である「Xn-1」を設定すればよいことが分かる。図5は、サンプリング時刻m+1で、強制的に遅延回路303,305に「Xn-1」を設定している様子を示している。
【0028】
図3から図5で説明した内容を一般化すると以下のようになる。すなわち、遅延量の整数部がk段変化(k>0の場合に段数増加、k<0の場合に段数減少)した場合(Dm+1=(int+k)+fm+1)、APF203の入力はDint+kから取り出すものとし、2つの遅延回路303,305にはDint+k+1の値(1サンプリング前の値)を設定すればよい。現在のディレイ読み出し位置から1サンプリング前の値をAPFの遅延回路303,305に強制的に設定することにより、所望の出力値を得ることができる。
【0029】
さらに、図3から図5で説明した実施の形態に対し、フィードフォワード側の遅延回路303とフィードバック側の遅延回路305に別々の最適値を設定することにより、より厳密に理想的な遅延出力を得ることができる。以下、このことについて説明する。
【0030】
図4に示した整数部が減少する場合、求めたい理想の出力値であるDELAYOUTは以下の通りであり、これをX’とする。
【0031】
DELAYOUT=(1−fm+1)・Xn+2+fm+1・Xn+1=X’
【0032】
このAPF203の構成で、フィードフォワード側の遅延回路303には、その構成から明らかに「Xn+1」を設定すべきである。一方、フィードバック側の遅延回路305は、その設定値をyとすれば、
X’=−Cm+1・Xn+2+Xn+1+Cm+1・y
となる。したがって、遅延回路305に与えるべき設定値yは、
y=(X’−Xn+1+Cm+1・Xn+2)/Cm+1
となる。同様に、図5に示した整数部が増加する場合は、
y=(X’−Xn-1+Cm+1・Xn)/Cm+1
となる。ただし、
X’=(1−fm+1)・Xn+fm+1・Xn-1
である。
【0033】
以上のように、フィードフォワード側の遅延回路303とフィードバック側の遅延回路305に別々の最適値を設定することにより、より厳密に理想的な遅延出力を得ることができる。
【0034】
図6は、信号遅延部206の内部構造の別の例を示すブロック図である。遅延回路202の構成は、図3と同様であるが、APF203の構成が異なる。図6の信号遅延部206のAPF203は、乗算器601,602、加算器603,604、および遅延回路(1段のレジスタ)605を備えている。さらにフィードフォワード側の乗算器601に与える乗算係数を1ディレイずらして与えるための係数遅延回路606を備えている。係数遅延回路606は、特開平11−161275号に開示されているように、係数変更の効果が出力に波及するタイミングが同じになるように、係数を遅延させてフィードフォワード側の乗算器601に与えるようにするためのものである。
【0035】
図6は、現サンプリング時刻mにおいて、信号遅延部206の設定遅延量がDm=int+fmであったときの状態を示すものとする。図3と同様に、設定遅延量Dmは遅延段数の換算値で表すものとし、intは整数部、fmは小数部を表すものとする。少数部fmを実現する乗数をCmとする。図6の状態から、次のサンプリング時刻m+1で、設定遅延量が変化し、遅延回路202の遅延段数、すなわち整数部が減少し、
Dm+1=(int−1)+fm+1
となる場合を考える。
【0036】
図7は、整数部が減少した場合の、図6の状態から1サンプリング周期後の状態を示す。整数部の減少に応じて、遅延回路202からのデータの取り出し位置は、int−1段目に移行している。求めたい理想の出力値をDELAYOUTとすると、図4で説明したように、
である。図7の時点において、遅延回路605の強制的な設定値をyとし、さらに遅延回路606には乗算係数「Cm+1」が強制的に設定されるとすると、
DELAYOUT=y−Cm+1・Xn+2
となるので、上述の式と比較すると、
y=(1+Cm+1)・Xn+1
となることがわかる。すなわち、遅延回路605に与えるべき設定値yは「(1+Cm+1)・Xn+1」であり、遅延回路606に与えるべき設定値は乗算係数「Cm+1」である。
【0037】
図8は、整数部が増加した場合の、図6の状態から1サンプリング周期後の状態を示す。図7の整数部が減少した場合と同様にして、遅延回路605に与えるべき設定値は「(1+Cm+1)・Xn-1」であり、遅延回路606に与えるべき設定値は「Cm+1」である。
【0038】
図6から図8で説明した内容を一般化すると以下のようになる。すなわち、現在のディレイ読み出し位置から1サンプリング周期前の値をx’とすると、遅延回路605に与えるべき設定値yは以下の式で表すことができる。
【0039】
y=(1+Cm+1)・x’
【0040】
ただし、この構成では、APFの乗算係数が1サンプリング遅れて与えられることになる。ディレイ不連続の場合は、遅延回路606に現在の乗算係数がセットされるので遅延出力は正常に得られる。
【0041】
さらに、図7から図8で説明した実施の形態に対し、より厳密に理想的な遅延出力を得る方法について説明する。
【0042】
図7に示した整数部が減少する場合、求めたい理想の出力値であるDELAYOUTは以下の通りであり、これをX’とする。
【0043】
DELAYOUT=(1−fm+1)・Xn+2+fm+1・Xn+1=X’
【0044】
このAPF203の構成で、遅延回路606には、その構成から明らかに「Cm+1」を設定すべきである。一方、遅延回路605は、その設定値をyとすれば、
y−Cm+1・Xn+2=X’
y=X’+Cm+1・Xn+2
となる。したがって、遅延回路605に与えるべき設定値yは、
y=X’+Cm+1・Xn+2
となる。同様に、図8に示した整数部が増加する場合は、
y=X’+Cm+1・Xn
となる。ただし、
X’=(1−fm+1)・Xn+fm+1・Xn-1
である。
【0045】
なお、シミュレーションの結果では、従来のAPFの構成のまま遅延回路に与える設定値をより正しい値にする本方法が、他の方法に比べて最も良い結果が得られる。
【0046】
図9および図10のフローチャートを参照して、上述した遅延制御手法を実現する動作を説明する。
【0047】
図9は、信号プロセッサ105に入力された楽音信号の信号処理手順を示すフローチャートである。この処理手順は、サンプリング周期ごとに実行される。ステップS901では、入力された楽音信号データを所定の遅延時間だけ遅延する。次に、ステップS902で、遅延された楽音信号を信号処理して楽音を合成する。
【0048】
図10は、図9のステップS901(遅延量制御)の処理手順を示すフローチャートである。ステップS1001で、信号プロセッサ105は、楽音信号の遅延量情報を受信する。ステップS1002では、その遅延量が変化したか否かを判断する。遅延量が変化していないときは、処理を終了してリターンする。遅延量が変化しているときは、ステップS1003に進み、遅延量の整数部が変化したか否かを判断する。遅延量の整数部が変化しないときは、ステップS1007に進み、小数部の遅延を実現するためにAPF203の乗算器に与える乗算係数Cmの変更制御を行ない、リターンする。
【0049】
ステップS1003で、遅延量の整数部に変化があったときは、ステップS1004に進み、整数部の遅延を行なう遅延回路202の出力位置の変更制御を行なう。次に、ステップS1005で、APF203の遅延回路303,305,605,606に上述した方法で求めた設定値を設定する。続いて、ステップS1006で、小数部の遅延を実現するために、ステップS1007と同様にAPFの乗算器に与える乗算係数Cmの変更制御を行ない、リターンする。
【0050】
なお、上記実施の形態では楽音合成に本発明を適用した例を示したが、本発明はエフェクタなどの遅延にも応用できる。特にフィードバックを用いたフランジャなどに用いれば、ディレイ補間で生じるノッチが無いので、ピーク特性のばらつきが無くなるだけでなく、ディレイを大きく振っても安定して動作するため高価なアナログに匹敵する高品質なエフェクタを得るのにも役立つ。
【0051】
【発明の効果】
以上説明したように、この発明によれば、整数分の遅延を行なう遅延手段と小数分の遅延を行なうAPFを備えた可変遅延装置において、整数分の遅延量が変化した場合、ディレイ変化後の出力値をディレイ補間した値に近づけるようにAPFの遅延手段などに強制的に値を設定しているので、現状の境界条件も満足し、かつディレイ変化が大きく遅延手段の整数部と小数部を不連続に制御する場合でも、ノイズの発生を抑え一定の出力値を保持することができる。
【図面の簡単な説明】
【図1】この発明の実施の形態に係るAPFを用いた楽音信号処理装置のブロック図
【図2】楽音信号処理モデルを示すブロック図
【図3】信号遅延部の内部構造を示すブロック図
【図4】整数部が減少した状態を示すブロック図
【図5】整数部が増加した状態を示すブロック図
【図6】信号遅延部の内部構造の別の例を示すブロック図
【図7】整数部が減少した状態を示すブロック図
【図8】整数部が増加した状態を示すブロック図
【図9】信号処理の動作を説明するフローチャート図
【図10】遅延量の制御処理の動作を説明するフローチャート図
【図11】従来の遅延フィードバック音源のループ部のブロック構成図
【図12】APFのブロック構成図
【符号の説明】
101…制御プロセッサ、102…メモリ、103…操作表示部、104…ADC、105…信号プロセッサ、106…信号処理メモリ、107…DAC、201…加算器、202…遅延回路、203…APF、204…フィルタ。
Claims (4)
- 所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、
前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、
前記オールパスフィルタは、
前記整数分遅延手段から取り出した整数分遅延出力を入力し、1サンプリング周期だけ遅延して出力するフィードフォワード側遅延手段と、
前記整数分遅延出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第1の乗算手段と、
出力信号を1サンプリング周期だけ遅延して出力するフィードバック側遅延手段と、
前記フィードバック側遅延手段の出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第2の乗算手段と、
前記フィードフォワード側遅延手段の出力と前記第2の乗算手段の乗算結果とを加算し、さらに前記第1の乗算手段の乗算結果を減算し、その結果を出力信号として出力する加算手段と
を備えるとともに、
前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記整数分遅延手段からの現在の整数分遅延出力の1サンプリング前の値を、前記フィードフォワード側遅延手段およびフィードバック側遅延手段に設定する手段を備えたことを特徴とする可変遅延装置。 - 所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、
前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、
前記オールパスフィルタは、
前記整数分遅延手段から取り出した整数分遅延出力を入力し、1サンプリング周期だけ遅延して出力するフィードフォワード側遅延手段と、
前記整数分遅延出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第1の乗算手段と、
出力信号を1サンプリング周期だけ遅延して出力するフィードバック側遅延手段と、
前記フィードバック側遅延手段の出力に、前記小数分の遅延量に応じて与えられる係数を乗算する第2の乗算手段と、
前記フィードフォワード側遅延手段の出力と前記第2の乗算手段の乗算結果とを加算し、さらに前記第1の乗算手段の乗算結果を減算し、その結果を出力信号として出力する加算手段と
を備えるとともに、
前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記整数分遅延手段からの現在の整数分遅延出力の1サンプリング前の値を前記フィードフォワード側遅延手段に設定し、さらに前記フィードバック側遅延手段には、最終的な出力値がディレイ補間による出力値と一致するように算出した値を設定する手段を備えたことを特徴とする可変遅延装置。 - 所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、
前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、
前記オールパスフィルタは、
前記小数分の遅延量に応じて与えられる係数を1サンプリング周期だけ遅延して出力する係数遅延手段と、
前記整数分遅延手段から取り出した整数分遅延出力を入力し、該入力信号に、前記係数遅延手段で遅延された係数を乗算する第1の乗算手段と、
出力信号に、前記係数遅延手段を介さずに、前記係数を乗算する第2の乗算手段と、
前記入力信号と前記第2の乗算手段の乗算結果とを加算する第1の加算手段と、
前記第1の加算手段の加算結果を1サンプリング周期だけ遅延して出力する遅延手段と、
前記遅延手段の出力と前記第1の乗算手段の乗算結果とを加算し、その結果を出力信号として出力する第2の加算手段と
を備えるとともに、
前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記整数分遅延手段からの現在の整数分遅延出力の1サンプリング前の値に、前記小数分の遅延量に応じて与えられる係数に1を加えた値を乗算し、その計算値を前記遅延手段に設定し、さらに前記係数遅延手段に、前記小数分の遅延量に応じて与えられる係数を設定する手段を備えたことを特徴とする可変遅延装置。 - 所定サンプリング周期ごとに入力するデジタル入力信号を、指定された係数に応じた遅延時間だけ遅延して出力する可変遅延装置であって、
前記係数に応じた遅延時間のうち前記サンプリング周期の整数分の遅延を行なうための複数段の記憶領域を持つ整数分遅延手段と、前記係数に応じた遅延時間のうち前記サンプリング周期の小数分の遅延を行なうオールパスフィルタとを備え、
前記オールパスフィルタは、
前記小数分の遅延量に応じて与えられる係数を1サンプリング周期だけ遅延して出力する係数遅延手段と、
前記整数分遅延手段から取り出した整数分遅延出力を入力し、該入力信号に、前記係数遅延手段で遅延された係数を乗算する第1の乗算手段と、
出力信号に、前記係数遅延手段を介さずに、前記係数を乗算する第2の乗算手段と、
前記入力信号と前記第2の乗算手段の乗算結果とを加算する第1の加算手段と、
前記第1の加算手段の加算結果を1サンプリング周期だけ遅延して出力する遅延手段と、
前記遅延手段の出力と前記第1の乗算手段の乗算結果とを加算し、その結果を出力信号として出力する第2の加算手段と
を備えるとともに、
前記整数分遅延手段で行なう整数分の遅延量が変化した場合、前記遅延手段には、最終的な出力値がディレイ補間による出力値と一致するように算出した値を設定し、さらに前記係数遅延手段には、前記小数分の遅延量に応じて与えられる係数を設定する手段を備えたことを特徴とする可変遅延装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001335907A JP3743625B2 (ja) | 2001-10-31 | 2001-10-31 | 可変遅延装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001335907A JP3743625B2 (ja) | 2001-10-31 | 2001-10-31 | 可変遅延装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003140658A JP2003140658A (ja) | 2003-05-16 |
JP3743625B2 true JP3743625B2 (ja) | 2006-02-08 |
Family
ID=19150831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001335907A Expired - Fee Related JP3743625B2 (ja) | 2001-10-31 | 2001-10-31 | 可変遅延装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3743625B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008111894A (ja) * | 2006-10-30 | 2008-05-15 | Nitto Denko Corp | 防眩フィルム、防眩シート、およびこれらの製造方法、ならびにこれらを用いた画像表示装置 |
-
2001
- 2001-10-31 JP JP2001335907A patent/JP3743625B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008111894A (ja) * | 2006-10-30 | 2008-05-15 | Nitto Denko Corp | 防眩フィルム、防眩シート、およびこれらの製造方法、ならびにこれらを用いた画像表示装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2003140658A (ja) | 2003-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7612281B2 (en) | Reverberation effect adding device | |
JP4702392B2 (ja) | 共鳴音発生装置および電子楽器 | |
JP2576647B2 (ja) | 波形発生装置 | |
JP2833403B2 (ja) | 電子楽器の音源装置 | |
US5451707A (en) | Feed-back loop type musical tone synthesizing apparatus and method | |
JP3743625B2 (ja) | 可変遅延装置 | |
JP3786036B2 (ja) | 残響付与装置、残響付与方法、プログラムおよび記録媒体 | |
JP3282573B2 (ja) | 可変遅延装置および方法 | |
JP2689646B2 (ja) | 電子楽器 | |
JP2996071B2 (ja) | 楽音信号合成装置 | |
JP3727110B2 (ja) | 楽音合成装置 | |
JP2643717B2 (ja) | 楽音合成装置 | |
JP3765280B2 (ja) | 帰還型ディジタルフィルタ | |
JP3692661B2 (ja) | 楽音合成装置 | |
JP3141523B2 (ja) | 有限インパルス応答フィルタ装置 | |
JP3711983B2 (ja) | 楽音合成装置 | |
JPS61204697A (ja) | 楽音信号発生装置 | |
JP3414119B2 (ja) | 楽音合成装置 | |
JP2876986B2 (ja) | 楽音信号合成装置 | |
JP3085801B2 (ja) | 変調信号発生装置 | |
JP3433764B2 (ja) | 波形変更装置 | |
JP3223555B2 (ja) | 波形読出装置 | |
JPH08292764A (ja) | 信号切換装置 | |
JPH07121183A (ja) | 電子楽器の音源装置 | |
JP5035388B2 (ja) | 共鳴音発生装置および電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051025 |
|
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: 20051028 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051110 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091125 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111125 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111125 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121125 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121125 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131125 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |