はじめに
先日つくった正弦波を生成するsingen~を拡張して、もう少し複雑なexternにしていきます。正弦波の生成ができたので、それらを複数重ねて音作りをする加算合成シンセにしてみましょう。
とは言ってもいきなり難しいものは無理なので、下図のように基音の周波数、倍音の数、スペクトルのスロープ(傾き)の3つをコントロールできるものにします。一般的な加算合成法ではそれぞれの正弦波を独立してコントロールできるようにするのですが、今日のところは整数倍の成分の合成だけを考えます。つまり各倍音の周波数は基音の周波数によって決まり、独立したコントロールはできません。
これを数式で書くと以下のようになります。音合成の教科書などには必ずと言っていいほど載っている式で、スペクトルの傾きを0にするとすべての成分音のレベルが等しくなります。また、スペクトルの傾きを1にすると鋸歯波になります。(-1)k-1はなくてもいいのですが、時刻ゼロのときに振幅ゼロの鋸歯波の波形が得られるので入れています。
以下が完成したexternを使用しているイメージ。複数(multiple)の正弦波(sin)を生成(generate)するのでmulsingen~と命名しました。出力のあたりがごちゃごちゃしていますが、Pd-extendedのoutput~のようなことをしているだけです。
続きを読む