develop開発と成長この広告は、90日以上更新していないブログに表示しています。Processingで楽器を作ろう今回は、Processingでエフェクターを作ろうと思います。エフェクターは入力した音に音響効果を加えて出力するもので、特にエレキギターやエレキベースといった楽器で音を加工するために使われています。エフェクターの種類は多々ありますが、そのうちのいくつかをProcessingのMinimとControlP5で作ってみたいと思います。入力した音をそのまま出力するまずは、第1回で紹介した入力した音をそのままスピーカーから出力する方法を確認しましょう。}}Minimではマイクからの入力を利用するためにLiveInputを使います。このプログラムの入力と出力にPCのマイクとスピーカーで利用するとハウリングが生じる場合があります。そのときは、イヤフォンやヘッドフォンを使ってください。ディストーションまずは、ディストーションを作ってみましょう。ディストーションは、音を歪ませるエフェクターです。入力した音を増幅してから、過大部分をクリッピングすることにより、音を歪ませています。オーバードライブやファズも基本的には同じ処理を行うエフェクターです。MinimとControlP5で作ったディストーションのプログラムは次のようになります。「DISTORTION」ノブで値を大きくするほど、歪みが大きくなります。音を入力すると、上端と下端が平らになっている(クリッピングされている)のが確認できると思います。}}今回はディストーション処理を行うために、WaveShaperクラスを利用しています。WaveShaperクラスはWaveShaperという音響合成のための加工をするクラスです。Shaperは、あらかじめ入力に対する出力の対応関係と入力の増幅度を決めておき、それもとに入力音を増幅してから出力に変換する処理を行います。SoftwareWaveShaperクラスのコンストラクタの引数は、それぞれ次の値を指定しています。出力音」となるようにして、増幅して限界値を超えた値は限界値となるというWaveShaperクラスの特性を利用してクリッピングを行っています。WaveShaperクラスはもともとクリッピングではなく音響合成のためのものなので、工夫次第でこれをもとに面白い音を作り出すことができます。Wikipediaディレイディレイは、入力した音を遅れて出力するエフェクターです。単発ディレイ次のプログラムを入力した音を一度だけ遅れて鳴らすディレイプログラムです。TIME」で遅れ時間を指定します。AMP」で遅れた音の音量を指定します。}}ディレイには、MinimのDelayクラスを指定します。Delayクラスのコンストラクタの第1引数が遅れ時間、第2引数が遅れた音の音量を表しています。Delayフィードバック・ディレイフィードバックディレイは、出力した音を再びディレイに入力する(フィードバック)することにより、音を段々と減衰させていくディレイです。}}Delayクラスでフィードバックを行うには、コンストラクタの第3引数にtrueを設定します。フィードバックをかけた状態で、遅れた音の音量を1より大きくすると、ポジティブフィードバックが発生し、音量が無限大に発散するので注意してください。フィルターフィルターは、入力音のうち特定の周波数帯域のみを出力音にするエフェクターです。フィルターには、次のものがあります。BP)ローパス・フィルターは入力音のうち特定の周波数以下の帯域のみを通します。ハイパス・フィルターは入力音のうち特定の周波数以上の帯域のみを通します。バンドパス・フィルターは入力音のうち特定の周波数の帯域のみを通します。この境界値となる周波数をカットオフ周波数と呼びます。フィルターでは、レゾナンスを設定できることがあります。レゾナンスを設定することにより、カットオフ周波数付近の音を強調することができます。Minimでのフィルターは次のようになります。TYPE」でフィルターの種類を選択できます。0がLP、1がHP、2がBPに対応しています。FREQUENCY」でカットオフ周波数を指定します。「RESONANCE」でレゾナンスの値を指定します。レゾナンスを1に近づけすぎると共鳴が始まり、フィルター自体が音を発してしまいます。}}MinimではMoogFilterクラスを利用することでフィルタリング処理を簡単に行うことができます。MoogFilterトレモロトレモロは音量を周期的に上下させ揺れているような効果を与えるエフェクターです。次のプログラムは、サイン波で入力音を揺らすプログラムです。「RATE」で音を揺らす早さを指定することができます。「DEPTH」で変化する音量の幅を指定することができます。}}このプログラムでは、OscilクラスとMultiplierクラスを利用してトレモロを実現しています。Multiplierは入力音の音量を制御するためのクラスです。Oscilクラスの変数であるtremoloは、音量を揺らすための波を表しています。これをMultiplierインスタンスの音量にパッチしてから、Multiplierインスタンスに入力をパッチしています。この記事はProcessingで楽器をつくろうの第5回目です。15:48ProcessingでエフェクターをつくるTweet広告を非表示にする関連記事2016-11-23Processingでシンセサイザーをつくる「Processingで楽器をつくろう」の最後の記事です。最後は、倍...2016-11-20Processingでリズムマシンをつくる今回は、ProcessingのMinimとControlP5を使ってリズムマシンを...2016-11-12Processingでサンプラーをつくる前回はキーボードを鍵盤にしました。(5)月別アーカイブ最新記事ProcessingでシンセサイザーをつくるProcessingでイージングProcessingでリズムマシンをつくるProcessingでエフェクターをつくるProcessingでサンプラーをつくるリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!aa_debdebさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。