Pure Data入門講座 vol.6 〜エフェクターを作ろう1〜

By terada, 2016年1月19日


さてこのPd入門講座では3回をかけてシンセサイザーの作り方を紹介してきました。今回からは新しいテーマ〜エフェクターを作ろう〜を投稿して行きます!というわけで初回はギターエフェクターではおなじみのオーバードライブをプログラムで再現しようと思います。オーバードライブとは、ギターなどの信号をアンプに過大に入力して歪んだ状態をシミュレートすることで、エレキギターでは最もポピュラーなエフェクターのひとつです。このオーバードライブの音もPdを使うと簡単に作ることが出来ます。

オーバードライブとは?

オーバードライブの原理はいたってシンプルです。図の左側のように、入力信号を増幅してクリッピングさせて出力させるだけなのです。これだけで、あのエレキギター特有の歪んだ音ができてしまうのです!

ではなぜ歪んだ音が出るのでしょうか?図の右側を見てください。これは左側の波形の周波数特性を表わした図です。入力信号が正弦波なので右上の図は単一の周波数であることを表わしています。中段の図は信号が大きくなっただけなので、周波数成分は変わりません。が、信号をクリップさせると右下の図のように、本来の周波数成分以外に倍音が生じていることがわかります。

このように信号に不連続が生じると、倍音が発生し、本来と異なる音になります。この現象を応用したのがオーバードライブ、ディストーション、ファズなど歪み系のエフェクターの特徴です。

aaa

プログラムを作ってみよう

では早速このディストーションをPdで作ってみましょう。原理も簡単なので、作るのもとても簡単です(笑)。音を加工する部分のパーツは僅かに2, 3個でできてしまいます。図中の水平スライダーで信号を増幅する値を変化させ、入力信号をかけ算し、“clip~ -0.8 0.8”というブロックで信号をクリップさせて出力しているだけです。プログラム中の波形を図示する部分は過去の記事を参考にしてください。

pd06_01

ここでいきなりギターの音を入れる前に、ちゃんと動作しているか確認してみましょう。プログラムを作る時は、自分が意図したように出来ているか確認する作業がとても大事です。この場合は、入力信号にマイクからの音を入力すると信号が複雑で確認出来ないので、正弦波を入力してみましょう。図中の音の入り口“adc~”を正弦波を作る“osc~ 2000”というブロックに変えてみましょう。数値の部分は周波数を表すのでこの場合は2,000 Hzの周波数が出力されます。

pd06_02pd06_03

左図はクリップする数値±0.8に達していない入力信号のときの図です。入力音である正弦波は単一の周波数(この場合2,000 Hz)を持つので、この図でも一箇所にピークが出ていることが見て取れます。一方で右図はスライドバーを変化させ、信号の振幅を増幅し、クリップさせたときの結果です。入力音の周波数以外にも多くの倍音成分が生じていることがわかります。

このようにオーバードライブ系のエフェクターは、非常にシンプルな作りにもかかわらず、多くの倍音を生み出して、ギターの音を変化させていることがわかります。さきほど変更した“osc~ 2000”“adc~”に戻して、ギターをパソコンの入力端子につなぐと、かっこいいオーバードライブの音になるので、試してみてください!

logo2

田園都市線三軒茶屋、セミナー・研修・講座のSoraoto。様々なセミナーやサイエンスカフェなどのイベントを開催しています。また英会話教室を始めとする、大人の学習講座もありますので、ぜひご参加ください。