フィードバックFM
フィードバックFMはジャン・クロード・リセなどによって原理が提唱され、ヤマハによりデジタルシンセのために関連特許が取られている合成方法です。
フィードバックFMは、FMのモジュールから出力された信号を再び、モジュレータの変調指数もどすことで一種のループ回路を作りそれによって音作りを行うものです。これをすることにより普通のFMによる変調指数を上げた時のバラバラな倍音の強さをより平坦にし「自然な音」を作ることを可能します。
これをPd上でプログラムすると以下のようになります。
「fexpr~」の中に書かれている式を見て数学の苦手な人は、ちょっとウッと思ったかもしれませんが、Pdでは音信号はブロック単位(デフォルトでは64サンプル)で計算されるので、サンプル単位でのフィードバック処理を行うためには、「fexpr~」などをの若干特殊なオブジェクトを使う必要があります。
「fexpr~」は「expr」と同じように、アーギュメントに書かれた式を処理するオブジェクトです。「expr」には「expr~」というシグナル版がありますが、「fexpr~」は「expr~」がブロック単位の処理を行うのに対して、「fexpr~」はサンプル単位のシグナル処理を行えるものです。式内で「$x1」は左インレットから入力されたサンプル、「$y1」はアウトレットから1サンプル前に出力されたサンプルを意味します。
式内ではphasor~から出力された0から1の範囲のノコギリ波を*6.283195、つまり2piを掛ける事でラジアンに変換し、それに先ほど出力されたサンプルと変調指数($f2)を掛けたものを足しています。尚、変調指数$f2は0から1の範囲で変化させてください。
この時、普通の2つのオシレータを使ったFMとフィードバックFMのスペクトラムを比較すると、普通の2つのオシレータを使ったFMを見てみると、バラバラな倍音の立ち上がりを観測できます。フィードバックFMは下図のように周波数が高くなるにつれ減衰する、キレイな倍音構造をもっているのですが、
どちらの音がいいかは趣味の問題ですが、フィードバックFMというさらなるFMの可能性があることを覚えておいて損はありません。