(57)【特許請求の範囲】
【請求項１】
入力信号を予め定められたクリップレベルでクリッピングして出力するクリッパ処理と、
前記クリッパ処理により出力された出力信号と、供給されたクリーン信号と、を混合して混合信号を出力する混合処理と、
前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知処理と、
前記エンベロープレベル検知処理により検知された前記エンベロープレベル値が予め定められた範囲内にある場合は、前記クリッパ処理させる前記入力信号のレベルを減少させるとともに、前記減少させる前記入力信号のレベルの変化に応じて、供給する前記クリーン信号のレベルを調整する調整処理と、
を実行するディストーション装置。
【請求項２】
前記混合処理は、前記クリッパ処理された前記出力信号と、前記クリッパ処理されていない前記クリーン信号と、の加算処理である、請求項１に記載のディストーション装置。
【請求項３】
前記調整処理は、前記クリッパ処理させる前記入力信号のレベルを漸次減少させることにより、前記クリッパ処理により出力される出力信号のレベルを漸次減少させる、請求項１または２に記載のディストーション装置。
【請求項４】
入力信号のレベルが予め定められたクリップレベル以上になったときに、当該入力信号をクリッピングして出力するクリッパ部と、前記クリッパ部からの出力信号と前記入力信号とを混合して出力する混合部と、前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知部と、前記クリッパ部と前記混合部に供給される入力信号のレベルを調整するレベル調整部と、を有するディストーション装置に用いられるディストーション制御方法であって、前記ディストーション装置が、
前記エンベロープレベル検知部により検知された前記エンベロープレベル値が前記クリップレベルを含む予め定められた領域内にある場合は、前記クリッパ部に供給される前記入力信号のレベルを減少させるとともに、前記混合部に供給される前記入力信号のレベルを増加させるように前記レベル調整部を制御する、ディストーション制御方法。
【請求項５】
入力信号のレベルが予め定められたクリップレベル以上になったときに、当該入力信号をクリッピングして出力するクリッパ部と、前記クリッパ部からの出力信号と前記入力信号とを混合して出力する混合部と、前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知部と、前記クリッパ部と前記混合部に供給される入力信号のレベルを調整するレベル調整部と、を備えたディストーション装置として用いられるコンピュータに、
前記エンベロープレベル検知部により検知された前記エンベロープレベル値が前記クリップレベルを含む予め定められた領域内にある場合は、前記クリッパ部に供給される前記入力信号のレベルを減少させるとともに、前記混合部に供給される前記入力信号のレベルを増加させるように前記レベル調整部を制御するステップを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力音信号に対して歪み効果を与えるディストーション装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
楽音信号等の入力音信号を増幅した後に、音信号の振幅に制限をかける、いわゆるクリッピングによる歪み効果を得るディストーション装置が良く知られている。このディストーション効果の大きな問題点として、特に和音演奏時のディストーション効果の消え際のクリッピングノイズがある。
【０００３】
図１０は、クリッピングノイズの時間域波形の例を説明する図である。和音演奏時の合成信号は、各構成音のうねりにより、数Ｈｚ（ヘルツ）、数十Ｈｚといった長い周期で、波高値の高い場所が発生する。この信号を入力信号として歪ませたときに、例えば図１０（ａ）に示されるように、入力音信号の振幅レベルが高いときは、クリップが発生する密度が高いので一つ一つのクリップ波形成分はマスキングされず聞こえない。これに対して、例えば図１０（ｂ）に示されるように、入力音信号の振幅レベルが下がっていく過程では、最終的に、図１０（ｂ）の（図中では１００１で代表して表示してある）丸印で示される、各構成音の重ね合わせによる波高値の高い個所（クリップポイント）のみがクリッピングする。この場合、クリップが発生する密度が低く不規則なので、一つ一つのクリップ波形成分が聞こえるようになる。
【０００４】
図１１は、クリッピングノイズの周波数域波形の例を説明する図である。周波数域では、十分なディストーションがかかっている期間では、図１１に示されるように、入力信号のレベルに依存せずに、クリッピングノイズの高調波スペクトラム成分１１０１が、定常的なレベルで発生している。ここで、入力音信号の振幅レベルが高いときは、この高調波スペクトラム成分１１０１は、入力音信号のスペクトラム成分にマスキングされて聞こえない。しかし、入力音信号の振幅レベルがある閾値以下に下がってくると、この高調波スペクトラム成分１１０１によるクリッピングノイズが聞こえるようになる。そして、入力音信号の振幅レベルがさらに下がってクリッピングが無くなった瞬間に、このノイズは全く発生しなくなってしまうという不連続な特性を有している。
【０００５】
しかも、クリッピングノイズの発生間隔は、人間の耳で聞き取れるくらい長いため、歪効果の消え際のクリップの発生密度の変化も、「ジー」、「チリチリ」、「チッチッチ…」のように認識しやすく、この低密度で不連続な動作が非常に不快に感じられる。特にデジタル処理によるディストーションでは、現象を緩和するような連続的要素がなく、不快感を持つ要素がそのまま出力される傾向にある。
【０００６】
従来、ディストーション波形を制御してディストーション効果音の音質を制御する技術は種々知られている（特許文献１〜４に記載の技術）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１５４６７５号公報
【特許文献２】特開２００１−１８４０６９号公報
【特許文献３】特開２００５−２５０３５７号公報
【特許文献４】特許第３１４９４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、クリッピングノイズを低減できるような技術は、従来知られていなかった。
【０００９】
そこで、本発明は、クリッピングノイズを低減することを目的とする。
【課題を解決するための手段】
【００１０】
態様の一例のディストーション装置は、入力信号を予め定められたクリップレベルでクリッピングして出力するクリッパ処理と、前記クリッパ処理により出力された出力信号と、供給されたクリーン信号と、を混合して混合信号を出力する混合処理と、前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知処理と、前記エンベロープレベル検知処理により検知された前記エンベロープレベル値が予め定められた範囲内にある場合は、前記クリッパ処理させる前記入力信号のレベルを減少させるとともに、前記減少させる前記入力信号のレベルの変化に応じて、供給する前記クリーン信号のレベルを調整する調整処理と、を実行する。
【発明の効果】
【００１１】
本発明によれば、クリッピングノイズを低減することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係るディストーション装置の外観図である。
【図２】本実施形態に係るディストーション装置のハードウェア構成例を示す図である。
【図３】ＤＳＰのブロック構成例を示す図である。
【図４】レジスタの説明図である。
【図５】本実施形態の動作説明図（その１）である。
【図６】本実施形態の動作説明図（その２）である。
【図７】ディストーション制御の全体処理の例を示すフローチャートである。
【図８】Ｅｆｆｅｃｔ／Ｂｙｐａｓｓ読込み設定処理の例を示すフローチャートである。
【図９】クリッパレベル調整処理の例を示すフローチャートである。
【図１０】クリッピングノイズの時間域波形の例を説明する図である。
【図１１】クリッピングノイズの周波数域波形の例を説明する図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。本実施形態では、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：デジタル信号処理プロセッサ）によって信号処理を実行するコンパクトエフェクタを例に説明をする。
【００１４】
図１は、本実施形態に係るディストーション装置１００の外観図である。ディストーション装置１００の本体は、例えば楽音信号である入力音信号を入力させる入力端子（Ｉｎｐｕｔ）１０１と、ディストーション効果が付加された出力音信号を出力させる出力端子（Ｏｕｔｐｕｔ）１０２を備える。このほか、ディストーション装置１００は、ディストーション効果がかかっているか否かを表示するエフェクト・バイパスのインジケータ（Ｅｆｆｅｃｔ／Ｂｙｐａｓｓ  Ｉｎｄｉｃａｔｏｒ）１０３を備える。また、ディストーション装置１００は、ディストーション効果のかかり具合を制御するドライブコントロールノブ（Ｄｒｉｖｅ  Ｃｏｎｔｒｏｌ）１０４ディストーション効果の音質を制御するトーンコントロールノブ（Ｔｏｎｅ  Ｃｏｎｔｒｏｌ）１０５、出力音信号の出力レベルを制御するレベルコントロールノブ（Ｌｅｖｅｌ  Ｃｏｎｔｒｏｌ）１０６を備える。さらに、ユーザが足で踏むことによりディストーション効果のオン／オフを制御するペダルスイッチ１０７を備える。
【００１５】
図２は、図１のディストーション装置１００のハードウェア構成例を示す図である。ディストーション装置１００は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＤＳＰ２０４、アンプ２０５、Ａ／Ｄ（アナログ／デジタル）コンバータ２０６、ワークメモリ２０７、Ｄ／Ａ（デジタル／アナログ）コンバータ２０８、アンプ２０９を備える。さらに、ディストーション装置１００は、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）２１４とそれを制御するパラレル・ポート２１５、ペダルスイッチ２１０とそれを制御するフリップ・フロップデジタル回路２１１、およびコントロールノブ２１２とそれを制御するＡ／Ｄコンバータ２１３を備える。ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、パラレル・ポート２１５、フリップ・フロップデジタル回路２１１、およびＡ／Ｄコンバータ２１３は、システムバス２１４によって相互に接続される。ＬＥＤ２１４は、図１のエフェクト・バイパスのインジケータ１０３に対応する。コントロールノブ２１２は、図１の１０４、１０５、１０６のコントロールノブ群に対応する。ペダルスイッチ２１０は、図１のペダルスイッチ１０７に対応する。
【００１６】
入力端子２１５から入力したアナログの入力音信号は、アンプ２０５で増幅された後、Ａ／Ｄコンバータ２０６でデジタルの入力音信号（以下単に「入力音信号」と記載するときはデジタルの入力音信号を指すものとする）に変換された後、ＤＳＰ２０４に入力する。
【００１７】
ＤＳＰ２０４は、ＣＰＵ２０１からの制御に従って、ワークメモリ２０７を作業量領域として使用しながら、入力音信号に対してディストーション効果を付加するための音声処理と、後述するクリッパ入力レベル検知処理とを実行し、デジタルの出力音信号（以下単に「出力音信号」と記載するときはデジタルの出力音信号を指すものとする）を出力する。
【００１８】
ＤＳＰ２０４から出力された出力音信号は、Ｄ／Ａコンバータ２０８でアナログの出力音信号に変換され、アップ２０９で増幅された後に、出力端子１０２から出力される。
【００１９】
コントロールノブ２１２の操作位置のＡ／Ｄコンバータ２１３を介した読込みや、パラレル・ポート２１５を介したＬＥＤ２１４への表示などのユーザインターフェイスは、ＣＰＵ２０１によって処理される。ディストーション効果（以下「エフェクト」と記載）のオン／オフ（エフェクト／バイパス）の切替えは、ペダルスイッチ２１０の操作に基づいてフリップ・フロップデジタル回路２１１でのトグル反転結果をＣＰＵ２０１が読み込んでＤＳＰ２０４に指示を与えることで行なわれる。ＣＰＵ２０１は、後述する各種パラメータをＤＳＰ２０４に与える。
【００２０】
ディストーション効果におけるクリッピング状態の検知と調整は、ＤＳＰ２０４での後述するクリッパ入力レベルの検知結果をＣＰＵ２０１が読み込んで判断し、その判断結果をＤＳＰ２０４に伝えることで実現される。
【００２１】
図３は、図２のＤＳＰ２０４のブロック構成例を示す図である。ＤＳＰ２０４は、基本的な機能構成として、エフェクト／バイパス切替部３０１、ＣＰＵインタフェース部３０２、音声処理部３０３、およびクリッパ入力レベル検知部３０４を備える。
【００２２】
まず、ＣＰＵインタフェース部３０２は、ＣＰＵ２０１とのコミュニケーションに使用されるレジスタ群であり、ＣＰＵ２０１はこれらのレジスタ群に対して読込み、または書込みを行う。ＤＳＰ２０４は、これらのレジスタ群を信号処理の一周期毎に読み出して処理を実行する。
【００２３】
図４は、ＣＰＵインタフェース部３０２のレジスタ群の説明図である。
【００２４】
エフェクトバイパスレジスタＥＦＦＥＣＴは、ＣＰＵ２０１からのエフェクトの有効無効の切替えを制御するエフェクト／バイパス信号３０５を保持する、ビット幅が１ビットの入力レジスタである。エフェクト／バイパス信号３０５は、１ビット値「０」（Ｂｙｐａｓｓ：無効）、または「１」（Ｅｆｆｅｃｔ：有効）をとり得る。
【００２５】
クリッパ入力レベルレジスタＣＩＮＰＵＴは、ＣＰＵ２０１に出力される、入力エンベロープのレベルを絶対値で表したクリッパ入力レベル信号３０６を保持する、ビット幅が１６ビットの出力レジスタである。クリッパ入力レベル信号３０６は、１６ビット値「０」から「ＦＦＦＦ」までの値をとり得る。この値が１０００を越えると、クリッピングが実行される。
【００２６】
クリッパゲインレジスタＣＧＡＩＮは、ＣＰＵ２０１から入力される、クリッパゲインの乗算器の乗数を設定するクリッパゲイン信号３０７を保持する、ビット幅が１６ビットの入力レジスタである。クリッパゲイン信号３０７は、１６ビット値「０」から「８０００」までの値をとり得る。この値が「８０００」のときに、ゲインは１．０倍になる。
【００２７】
クリーンゲインレジスタＬＧＡＩＮは、ＣＰＵ２０１から入力される、クリーンゲインの乗算器の乗数を設定するクリーンゲイン信号３０８を保持する、ビット幅が１６ビットの入力レジスタである。クリーンゲイン信号３０８は、クリッパゲイン信号３０７と同様に、１６ビット値「０」から「８０００」までの値をとり得る。この値が「８０００」のときに、ゲインは１．０倍になる。
【００２８】
ドライブレジスタＤＲＩＶＥは、ＣＰＵ２０１から入力される、ドライブ増幅の増幅率を設定するドライブ信号３０９を保持する、ビット幅が８ビットの入力レジスタである。ドライブ信号３０９は、８ビット値「０」から「ＦＦ」までの値をとり得る。この値が「ＦＦ」のときに、増幅率が最大となる。
【００２９】
トーンレジスタＴＯＮＥは、ＣＰＵ２０１から入力される、音色を設定するトーン信号３１０を保持する、ビット幅が８ビットの入力レジスタである。トーン信号３１０は、８ビット値「０」から「ＦＦ」までの値をとり得る。この値が多いほど遮断する高域の周波数（カットオフ周波数）が高くなり、この値が「ＦＦ」のときにカットオフ周波数が最大となる。
【００３０】
レベルレジスタＬＥＶＥＬは、ＣＰＵ２０１から入力される、最終段増幅器の増幅率を設定するレベル信号３１１を保持する、ビット幅が８ビットの入力レジスタである。レベル信号３１１は、８ビット値「０」から「ＦＦ」までの値をとり得る。この値が「ＦＦ」のときに、増幅率が最大となる。
【００３１】
図３の説明に戻って、エフェクト／バイパス切替部３０１について説明する。エフェクトを有効にするかしないかは、ＣＰＵ２０１がエフェクトバイパスレジスタＥＦＦＥＣＴにエフェクト／バイパス信号３０５を設定することにより切り替えられる。前述したように、エフェクト／バイパス信号３０５として値「０」が設定されると、エフェクト／バイパス切替部３０１は、入力端子３１２をバイパスライン３１３に接続する。この結果、入力端子３１２から入力した入力音信号は、バイパスライン３１３を介してそのまま出力端子３１４から出力され、エフェクトが無効にされる。エフェクト／バイパス信号３０５として値「１」が設定されると、エフェクト／バイパス切替部３０１は、入力端子３１２を音声処理部３０３およびクリッパ入力レベル検知部３０４に接続する。この結果、入力端子３１２から入力した入力音信号に対するエフェクトが有効にされる。
【００３２】
ＣＰＵ２０１は、ユーザが、ペダルスイッチ２１０を踏むごとに、フリップ・フロップデジタル回路２１１を介して入力するトグル反転信号に基づいて、エフェクト／バイパス信号３０５の値を「０」と「１」とで交互に切り替える。このように、ユーザは、ペダルスイッチ２１０を踏むごとに、エフェクトの有効無効を切り替えることができる。
【００３３】
また、ＣＰＵ２０１は、エフェクト／バイパス信号３０５として値「１」を設定すると、パラレル・ポート２１５を介してＬＥＤ２１４を、エフェクト有効を示す点灯状態にし、逆に、エフェクト／バイパス信号３０５として値「０」を設定すると、ＬＥＤ２１４を、エフェクト無効を示す消灯状態にする。
【００３４】
次に、音声処理部３０３について説明する。音声処理部３０３は、ハイパスフィルタ（ＨＰＦ）３１５、ドライブ用乗算器３１６、クリッパゲイン用乗算器３１７、クリッパ３１８、クリーンゲイン用乗算器３１９、加算器３２０、トーン調整用ローパスフィルタ（ＬＰＦ）３２１、レベル乗算器３２２、クリッパゲイン平滑用ＬＰＦ３２３、クリーンゲイン平滑用ＬＰＦ３２４を備える。
【００３５】
まず、ＨＰＦ３１５は、入力端子３１２からエフェクト／バイパス切替部３０１を介して入力した入力音信号の不要な低域周波数成分をカットする。
【００３６】
次に、ディストーション効果の深さに応じた増幅が実施される。本実施形態は、この増幅動作の制御にある。増幅率を決定するための乗算器は、ドライブ用乗算器３１６とクリッパゲイン用乗算器３１７の２段構成になっており、前者でドライブ設定、後者でクリッパゲインの調整が行われる。ここで、ユーザがドライブコントロールノブ１０４（図１参照）に対応するコントロールノブ２１２（図２参照）を操作することにより、Ａ／Ｄコンバータ２１３を介してその操作量がＣＰＵ２０１に通知される。ＣＰＵ２０１は、この操作量情報に基づいて、ドライブ信号３０９の値を決定する。クリッパゲイン信号３０７の制御については後述するが、ＣＰＵ２０１からインタフェース１１０１のクリッパゲインレジスタＣＧＡＩＮに設定されたクリッパゲイン信号３０７は、そのゲイン制御を平滑化するために、クリッパゲイン平滑用ＬＰＦ３２３に入力し、その出力がクリッパゲイン用乗算器３１７に入力する。以上の増幅制御は、後述する。
【００３７】
次に、クリッパゲイン用乗算器３１７の出力はクリッパ３１８に入力する。クリッパ３１８は、入力音信号の波高値に制限を掛けて波形をクリップすることで歪ませる働きを持つ。クリップされる波高値は固定であり、前段のドライブ用乗算器３１６およびクリッパゲイン用乗算器３１７の増幅動作によって、どの程度クリップされるかが決定される。前段の増幅率がより上げられることで、小さい入力音信号でも容易にクリップが行われるようになる。
【００３８】
クリッパ３１８の出力は、加算器３２０において、ＨＰＦ３１５から出力されクリーンゲイン用乗算器３１９でゲイン調整された入力音信号（クリーン信号）と加算（混合）される。その結果加算器３２０から出力される加算出力は、トーン調整用ＬＰＦ３２１で音質調整された後、レベル乗算器３２２でレベル調整され、出力端子３１４から出力音信号として出力される。
【００３９】
トーン調整用ＬＰＦ３２１は、ＣＰＵ２０１からＣＰＵインタフェース部３０２のトーンレジスタＴＯＮＥに設定されたトーン信号３１０によって、そのカットオフ周波数を調整することができ、これにより音質を調整することができる。ここで、ユーザがトーンコントロールノブ１０５（図１参照）に対応するコントロールノブ２１２（図２参照）を操作することにより、Ａ／Ｄコンバータ２１３を介してその操作量がＣＰＵ２０１に通知される。ＣＰＵ２０１は、この操作量情報に基づいて、トーン信号３１０の値を決定する。
【００４０】
レベル乗算器３２２における最終段ゲインは、ＣＰＵ２０１からＣＰＵインタフェース部３０２のレベルレジスタＬＥＶＥＬに設定されたレベル信号３１１によって調整することができ、これによりユーザは最終的な音量レベルを調整することができる。ここで、ユーザがレベルコントロールノブ１０６（図１参照）に対応するコントロールノブ２１２（図２参照）を操作することにより、Ａ／Ｄコンバータ２１３を介してその操作量がＣＰＵ２０１に通知される。ＣＰＵ２０１は、この操作量情報に基づいて、レベル信号３１１の値を決定する。
【００４１】
次に、クリッパ入力レベル検知部３０４について説明する。クリッパ入力レベル検知部３０４は、整流器３２５、ＬＰＦ３２６、および乗算器３２７を備え、音声処理部３０３内のクリッパ３１８への入力レベルを検知する働きを有する。整流器３２５は、エフェクト有効時に入力端子３１２からエフェクト／バイパス切替部３０１を介して入力した入力音信号を整流し、絶対値に変換する。ＬＰＦ３２６は、整流器３２５の絶対値出力を平滑化することで、エンベロープ波高値を得る。エンベロープ波高値は、ドライブ信号３０９によってゲイン調整される乗算器３２７によって、音声処理部３０３内のドライブ用乗算器３１６と同じ増幅率で増幅され、クリッパ３１８に送られる信号のレベルに対応したレベルのエンベロープ波高値に変換される。そして、乗算器３２７の出力が、クリッパ入力レベル信号３０６として、ＣＰＵインタフェース部３０２内のクリッパ入力レベルレジスタＣＩＮＰＵＴに格納され、ＣＰＵ２０１に送られる。
【００４２】
以上の構成を有するＤＳＰ２０４と図２のＣＰＵ２０１により実行される、エフェクト有効時のクリッピングノイズによる不快な歪を抑制する制御処理について、以下に詳細に説明する。この制御処理は、ＤＳＰ２０４内のクリッパ入力レベル検知部３０４からＣＰＵインタフェース部３０２内のクリッパ入力レベルレジスタＣＩＮＰＵＴを介して通知されるクリッパ入力レベル信号３０６を、ＣＰＵ２０１が判断し、その判断結果がＤＳＰ２０４の制御にフィードバックされることにより、実現される。
【００４３】
図５および図６は、本実施形態の動作説明図である。
【００４４】
まず、図５（ａ）の「クリッパ入力レベル調整１」において、ＣＰＵ２０１が、ＤＳＰ２０４の出力するクリッパ入力レベル信号３０６のエンベロープ波高値を定期的にチェックし、そのエンベロープ波高値が不快領域５０１内に入ったか否かを判定する。ＣＰＵ２０１は、エンベロープ波高値が不快領域５０１内に入ったと判定した場合には、ＤＳＰ２０４内の音声処理部３０３において、上記エンベロープ波高値の入力レベルに対応する入力レベルのままクリッパ３１８に入力音信号が送られないように、クリッパゲイン用乗算器３１７のクリッパゲインがクリッパゲイン信号３０７により調整される。これにより、出力音信号が不快領域５０１にとどまっている時間をできるだけ減らすような制御が実行される。
【００４５】
具体的には、エンベロープ波高値が不快領域５０１の範囲に入っている間は、クリッパゲイン用乗算器３１７における増幅率が少し下げられることで、クリッパ３１８に入力する信号ゲインが不快領域５０１に対応するゲイン以下になるように、クリッパゲイン信号３０７が調整される。
【００４６】
実際には、不快領域５０１といっても、エンベロープ波高値が不快領域５０１の中心レベルに近いほど、不快度が高くなる。従って、その中心レベルから適度の範囲のレベル、例えば中心レベルの値を「１．０」としたときに、値「０．８」から「１．２」のレンジが不快領域５０１として設定される。
【００４７】
ＣＰＵ２０１は、クリッパ入力レベル信号３０６に基づくエンベロープ波高値が、上記不快領域５０１に入ると、すぐにクリッパゲイン信号３０７によるゲイン調整を実施し、エンベロープ波高値が不快領域５０１より上に戻る、あるいは不快領域５０１を下回るいずれかの状態になった時に、すぐに上記ゲイン調整を解除する。しかし、この際のレベル変化が急激だと、不自然な音量変化が起こったり、その制御自体で別のノイズが発生したりする。このため、ＣＰＵ２０１からＣＰＵインタフェース部３０２内のクリッパゲインレジスタＣＧＡＩＮに設定されたクリッパゲイン信号３０７は、そのままクリッパゲイン用乗算器３１７に入力されるのではなく、クリーンゲイン平滑用ＬＰＦ３２４を介して入力される。これにより、上記ゲイン調整による反応が緩和される。
【００４８】
次に、不快領域５０１での具体的なゲイン調整について、図５（ｂ）のクリッパ入力レベル調整２で説明する。いま、エンベロープ波高値が減衰してきて、不快領域５０１に入った場合は、ＣＰＵ２０１は不快領域５０１の最低値＝「０．８」をクリッパゲイン信号３０７の値に設定する。そして、このクリーンゲイン信号３０８の値＝「０．８」が、クリーンゲイン平滑用ＬＰＦ３２４を通過することで、図５（ｂ）の５０３の点線で示されるようなクリッパゲイン信号が、クリッパゲイン用乗算器３１７に供給されることになる。
【００４９】
この結果、図３の音声処理部３０３において、クリッパゲイン用乗算器３１７からクリッパ３１８に送られる信号のエンベロープは、図５（ｃ）のクリッパ入力レベル調整３の５０４で示されるようなカーブに変更される。ただし、このままでは不快領域５０１の境界部分におけるレベルの段差がノイズを発生する可能性があるため、加算器３２０で、歪んでいないクリーン信号を加算することで、補正が行われる。クリーン信号としては、クリッパ３１８をバイパスしたＨＰＦ３１５から出力される信号を使用する。なお、クリーンゲイン用乗算器３１９の働きについては、後述する。
【００５０】
次に、クリーンゲイン信号３０８の制御について説明する。図６（ａ）のクリッパ入力レベル調整４において、クリッパ入力レベル信号３０６に基づくエンベロープ波高値が減衰してきて、不快領域５０１に入った場合、ＣＰＵ２０１は、不快領域５０１の最低値＝「０．２」をクリーンゲイン信号３０８の値として設定する。このクリーンゲイン信号３０８は、図３のＣＰＵインタフェース部３０２内のクリーンゲインレジスタＬＧＡＩＮに設定される。このクリーンゲイン信号３０８は、クリーンゲイン平滑用ＬＰＦ３２４を通過することで、図６（ａ）の５０５の点線で示されるようなクリーンゲイン信号が、クリーンゲイン用乗算器３１９に供給されることになる。
【００５１】
この結果、図３の音声処理部３０３において、クリーンゲイン用乗算器３１９から加算器３２０に送られるクリーン信号のエンベロープは、図６（ｂ）のクリッパ入力レベル調整５の５０６で示されるようなカーブに変更される。
【００５２】
さらにこの結果として、図６（ｃ）のクリッパ入力レベル調整６の５０７で示されるように、クリッパ３１８の出力と、クリッパ３１８をバイパスしたクリーンゲイン用乗算器３１９の出力が加算器３２０でミックスされて、ほぼなだらかな音量特性を実現することができる。
【００５３】
以上の制御処理により、図５（ｃ）に示されるように、クリッパ３１８に入力される信号が不快領域５０１の中心付近を通過する時間が大幅に短くなるため、不快を感じる時間も大幅に減少させることが可能となる。
【００５４】
途中で不快領域５０１を超えるレベルに戻ったとしても、同じようにクリッパゲイン平滑用ＬＰＦ３２３の効果により、連続的で滑らかなクリッパゲインを発生させることができ、クリッパ３１８に入力する信号の値を不快領域５０１から遠ざけることが可能となる。
【００５５】
また、入力音信号がクリップしないレベルに突入すれば調整はされない、すなわちクリッパゲインが１．０倍の状態に復帰するので、最終的なサスティーンは変わらない。
【００５６】
以上の制御動作を実現するための図２のＣＰＵ２０１の制御処理の例について、以下に説明する。図７は、ディストーション制御の全体処理の例を示すフローチャートである。この処理は、ＣＰＵ２０１が、ＲＡＭ２０３を作業領域として使いながら、ＲＯＭ２０２に記憶されたディストーション制御処理プログラムを実行する処理である。
【００５７】
まず、ＣＰＵ２０１は、ＲＡＭ２０３の記憶内容を初期化する（ステップＳ７０１）。
【００５８】
次に、ＣＰＵ２０１は、Ｅｆｆｅｃｔ／Ｂｙｐａｓｓ（エフェクト／バイパス）読み込み・設定処理を実行する（ステップＳ７０２）。この処理では、ユーザが図２のペダルスイッチ２１０（図１のペダルスイッチ１０７）を踏んだ操作に対応する制御が実行される。
【００５９】
図８は、図７のステップＳ７０２のＥｆｆｅｃｔ／Ｂｙｐａｓｓ読込み設定処理の例を示すフローチャートである。
【００６０】
ＣＰＵ２０１は、ペダルスイッチ２１０からフリップ・フロップデジタル回路２１１を介して、Ｅｆｆｅｃｔ／Ｂｙｐａｓｓのトグル反転状態を読み込むと、その状態がＥｆｆｅｃｔ（有効）とＢｙｐａｓｓ（無効）のどちらの状態を指定しているかを判定する（ステップＳ８０１）。
【００６１】
ＣＰＵ２０１は、フリップ・フロップデジタル回路２１１からＢｙｐａｓｓ（エフェクト無効）状態が指定されていれば、エフェクト／バイパス信号３０５の値をＢｙｐａｓｓを示す値「０」に設定する（ステップＳ８０２）。
【００６２】
一方、ＣＰＵ２０１は、フリップ・フロップデジタル回路２１１からＥｆｆｅｃｔ（エフェクト有効）状態が指定されていれば、エフェクト／バイパス信号３０５の値をＥｆｆｅｃｔを示す値「１」に設定する（ステップＳ８０３）。
【００６３】
以上のステップＳ８０２またはＳ８０３の処理の後、図８のフローチャートで例示される図７のステップＳ７０２のＥｆｆｅｃｔ／Ｂｙｐａｓｓ読込み設定処理を終了する。
【００６４】
図７の説明に戻って、次にＣＰＵ２０１は、Ｄｒｉｖｅ／Ｔｏｎｅ／Ｌｅｖｅｌ（ドライブ／トーン／レベル）読み込み/設定処理を実行する（ステップＳ７０３）．この処理では、ユーザが図１のドライブコントロールノブ１０４、トーンコントロールノブ１０５、またはレベルコントロールノブ１０６に対応する図２のコントロールノブ２１２を回した操作に対応する制御が実行される。具体的には、ＣＰＵ２０１は、ドライブコントロールノブ１０４に対応するコントロールノブ２１２の位置の値をＡ／Ｄコンバータ２１３から読み込み、「０」から「ＦＦ」の間の８ビット値に変換し、ドライブ信号３０９の値とし、図３のＣＰＵインタフェース部３０２内のドライブレジスタＤＲＩＶＥに設定する。次に、ＣＰＵ２０１は、トーンコントロールノブ１０５に対応するコントロールノブ２１２の位置の値をＡ／Ｄコンバータ２１３から読み込み、「０」から「ＦＦ」の間の８ビット値に変換し、トーン信号３１０の値とし、図３のＣＰＵインタフェース部３０２内のトーンレジスタＴＯＮＥに設定する。さらに、ＣＰＵ２０１は、レベルコントロールノブ１０６に対応するコントロールノブ２１２の位置の値をＡ／Ｄコンバータ２１３から読み込み、「０」から「ＦＦ」の間の８ビット値に変換し、レベル信号３１１の値とし、図３のＣＰＵインタフェース部３０２内のレベルレジスタＬＥＶＥＬに設定する。
【００６５】
上記ステップＳ７０２とＳ７０３の処理の後、ＣＰＵ２０１は、クリッパレベル調整処理を実行する（ステップＳ７０４）。この処理では、クリッパゲイン信号３０７とクリーンゲイン信号３０８を設定するための制御が実行される。
【００６６】
その後、ＣＰＵ２０１は、ステップＳ７０２の処理に戻って、制御動作を繰り返す。
【００６７】
図９は、図７のステップＳ７０４のクリッパレベル調整処理の例を示すフローチャートである。
【００６８】
ＣＰＵ２０１は、ＤＳＰ２０４のＣＰＵインタフェース部３０２内のクリッパ入力レベルレジスタＣＩＮＰＵＴから、クリッパ入力レベル信号３０６の値を読み込む。図４の説明で前述したように、クリッパ入力レベル信号３０６の値が１６進数の１０００を超えた時にちょうどクリップが行われるように、クリッパゲイン信号３０７が設定される。本実施形態では、クリッピング値を「１．０」として表現する。前述したように、これを基準として、「０．８」から「１．２」までのレベルで不快領域が判断される。
【００６９】
すなわち、ＣＰＵ２０１は、クリッパ入力レベル信号３０６を１６進数の１０００で割った値を、ＲＡＭ２０３上の変数ｌ（アルファベットのエル）に格納する（ステップＳ９０９１）。
【００７０】
次に、ＣＰＵ２０１は、変数ｌの値が１．２よりも大きいか否かを判定する（ステップＳ９０２）。
【００７１】
ステップＳ９０２の判定がＮＯならば、ＣＰＵ２０１は、変数ｌの値が０．８よりも小さいか否かを判定する（ステップＳ９０３）。
【００７２】
ステップＳ９０３の判定もＮＯならば、ＣＰＵ２０１は、クリッパ入力レベル信号３０６に基づくエンベロープ波高値が前述した不快領域５０１に入ったと判定する。この場合、ＣＰＵ２０１はすぐに、図３のＤＳＰ２０４内のＣＰＵインタフェース部３０２内のクリッパゲインレジスタＣＧＡＩＮに値「０．８」を、同じくクリーンゲインレジスタＬＧＡＩＮに値「０．２」を設定する。これにより、クリッパゲインレジスタＣＧＡＩＮから出力されるクリッパゲイン信号３０７がクリッパゲイン平滑用ＬＰＦ３２３に入力することにより、図５（ｂ）の５０３の前半に対応するクリッパゲインの波形カーブが生成されて、クリッパゲイン用乗算器３１７に入力する。また、クリーンゲインレジスタＬＧＡＩＮから出力されるクリーンゲイン信号３０８がクリーンゲイン平滑用ＬＰＦ３２４に入力することにより、図６（ａ）の５０５の前半に対応するクリーンゲインの波形カーブが生成されて、クリーンゲイン用乗算器３１９に入力する。
【００７３】
ステップＳ９０２またはステップＳ９０３の判定がＹＥＳならば、ＣＰＵ２０１は、クリッパ入力レベル信号３０６に基づくエンベロープ波高値が前述した不快領域５０１から出たと判定する。この場合、ＣＰＵ２０１はすぐに、図３のＤＳＰ２０４内のＣＰＵインタフェース部３０２内のクリッパゲインレジスタＣＧＡＩＮの値を「１．０」に戻し、同じくクリーンゲインレジスタＬＧＡＩＮの値を「０．０」に戻る。これにより、クリッパゲインレジスタＣＧＡＩＮから出力されるクリッパゲイン信号３０７がクリッパゲイン平滑用ＬＰＦ３２３に入力することにより、図５（ｂ）の５０３の後半に対応するクリッパゲインの波形カーブが生成されて、クリッパゲイン用乗算器３１７に入力する。また、クリーンゲインレジスタＬＧＡＩＮから出力されるクリーンゲイン信号３０８がクリーンゲイン平滑用ＬＰＦ３２４に入力することにより、図６（ａ）の５０５の後半に対応するクリーンゲインの波形カーブが生成されて、クリーンゲイン用乗算器３１９に入力する。
【００７４】
以上のようにして、本実施形態では、クリッパ入力レベル検知部３０４が入力音信号のクリッパ入力レベルのエンベロープ波高値を検出し、クリッピングによる歪み効果の消え際の小レベル領域において、図３の音声処理部３０３内のクリッパ３１８から出力されるディストーション効果のかかった信号と、クリーンゲイン用乗算器３１９から出力されるクリーン信号がクロスフェードするようにレベル制御を行うことで、不連続かつ低密度なクリッピングノイズが発生している区間が一定のスペクトルレベルで保たれてしまうことを防止することが可能となる。
【００７５】
この結果、和音演奏でも心地好い消え際の音色変化が得られるディストーション効果が得られる電子楽器を実現することが可能となる。
【００７６】
本実施形態によるディストーション装置１００は、図７から図９のフローチャート等で実現されるディストーション制御機能を搭載したプログラムをＣＰＵ２０１が実行することで実現される。そのプログラムは、特には図示しない可搬記録媒体に記録して配布してもよく、或いは特には図示しない通信インタフェースによりネットワークから取得できるようにしてもよい。
【００７７】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
入力信号のレベルが予め定められたクリップレベル以上になったときに、当該入力信号をクリッピングして出力するクリッパ部と、
前記クリッパ部からの出力信号と前記入力信号とを混合して出力する混合部と、
前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知部と、
前記エンベロープレベル検知部により検知された前記エンベロープレベルが前記クリップレベルを含む予め定められた領域内にある場合は、前記クリッパ部からの出力信号のレベルを減少させるとともに、前記混合部に供給される前記入力信号のレベルを増加させるように制御する制御部と
を備えたディストーション装置。
（付記２）
前記制御部は、前記クリッパ部からの出力信号のレベルを漸次減少させるとともに、前記混合部に供給される前記入力信号のレベルを漸次増加させるように制御する、付記１に記載のディストーション装置。
（付記３）
前記制御部は、前記クリッパ部に供給される前記入力信号のレベルを漸次減少させることにより、前記クリッパ部からの出力信号のレベルを漸次減少させる、付記１または２に記載のディストーション装置。
（付記４）
入力信号のレベルが予め定められたクリップレベル以上になったときに、当該入力信号をクリッピングして出力するクリッパ部と、前記クリッパ部からの出力信号と前記入力信号とを混合して出力する混合部と、前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知部と、前記クリッパ部と前記混合部に供給される入力信号のレベルを調整するレベル調整部と、を有するディストーション装置に用いられるディストーション制御方法であって、前記ディストーション装置が、
前記エンベロープレベル検知部により検知された前記エンベロープレベルが前記クリップレベルを含む予め定められた領域内にある場合は、前記クリッパ部に供給される前記入力信号のレベルを減少させるとともに、前記混合部に供給される前記入力信号のレベルを増加させるように前記レベル調整部を制御する、ディストーション制御方法。
（付記５）
入力信号のレベルが予め定められたクリップレベル以上になったときに、当該入力信号をクリッピングして出力するクリッパ部と、前記クリッパ部からの出力信号と前記入力信号とを混合して出力する混合部と、前記入力信号のエンベロープレベル値を検知するエンベロープレベル検知部と、前記クリッパ部と前記混合部に供給される入力信号のレベルを調整するレベル調整部と、を備えたディストーション装置として用いられるコンピュータに、
前記エンベロープレベル検知部により検知された前記エンベロープレベルが前記クリップレベルを含む予め定められた領域内にある場合は、前記クリッパ部に供給される前記入力信号のレベルを減少させるとともに、前記混合部に供給される前記入力信号のレベルを増加させるように前記レベル調整部を制御するステップを実行させるプログラム。
【符号の説明】
【００７８】
１００  ディストーション装置
１０１、２１５、３１２  入力端子
１０２、２１６、３１４  出力端子
１０３  エフェクト・バイパスのインジケータ（Ｅｆｆｅｃｔ／Ｂｙｐａｓｓ  Ｉｎｄｉｃａｔｏｒ）
１０４  ドライブコントロールノブ（Ｄｒｉｖｅ  Ｃｏｎｔｒｏｌ）
１０５  トーンコントロールノブ（Ｔｏｎｅ  Ｃｏｎｔｒｏｌ）
１０６  レベルコントロールノブ（Ｌｅｖｅｌ  Ｃｏｎｔｒｏｌ）
１０７、２１０  ペダルスイッチ
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  ＤＳＰ
２０５、２０９  アンプ
２０６、２１３  Ａ／Ｄコンバータ
２０７  ワークメモリ
２０８  Ｄ／Ａコンバータ
２１１  フリップ・フロップデジタル回路
２１２  コントロールノブ
２１４  システムバス
２１５  パラレル・ポート
３０１  エフェクト／バイパス切替部
３０２  ＣＰＵインタフェース部
３０３  音声処理部
３０４  クリッパ入力レベル検知部
３０５  エフェクト／バイパス信号
３０６  クリッパ入力レベル信号
３０７  クリッパゲイン信号
３０８  クリーンゲイン信号
３０９  ドライブ信号
３１０  トーン信号
３１１  レベル信号
３１３  バイパスライン
３１５  ハイパスフィルタ（ＨＰＦ）
３１６  ドライブ用乗算器
３１７  クリッパゲイン用乗算器
３１８  クリッパ
３１９  クリーンゲイン用乗算器
３２０  加算器
３２１  トーン調整用ローパスフィルタ（ＬＰＦ）
３２２  レベル乗算器
３２３  クリッパゲイン平滑用ＬＰＦ
３２４  クリーンゲイン平滑用ＬＰＦ
３２５  整流器
３２６  ＬＰＦ
３２７  乗算器
ＥＦＦＥＣＴ  エフェクトバイパスレジスタ
ＣＩＮＰＵＴ  クリッパ入力レベルレジスタ
ＣＧＡＩＮ  クリッパゲインレジスタ
ＬＧＡＩＮ  クリーンゲインレジスタ
ＤＲＩＶＥ  ドライブレジスタ
ＴＯＮＥ  トーンレジスタ
ＬＥＶＥＬ  レベルレジスタ
【図１】
0006484970.tif 000002
【図２】
0006484970.tif 000003
【図３】
0006484970.tif 000004
【図４】
0006484970.tif 000005
【図５】
0006484970.tif 000006
【図６】
0006484970.tif 000007
【図７】
0006484970.tif 000008
【図８】
0006484970.tif 000009
【図９】
0006484970.tif 000010
【図１０】
0006484970.tif 000011
【図１１】
0006484970.tif 000012