見出し画像

Wavetableの作成方法 Part3(ウェーブシェイピング)


ウェーブフォールディング

ウェーブフォールディング

ウェーブフォールディングは、複雑な波形を生成するウェーブシェイパーの一種です。モジュラーシンセサイザーや一部のFMおよびウェーブテーブルシンセサイザーで使用されています。

通常、波形の入力振幅がしきい値を超えるとクリッピングが発生しますが、ウェーブフォールディングでは波形が折り返されます。この折り返し動作により、波形のピークや谷が増幅され、歪みが生じ、新しい倍音成分が導入されます。

Octaveによるウェーブフォールディングの実装

サイン関数に閾値を超える振幅の波形を入力することで、ウェーブフォールディングを実行できます。

output = sin(input * Fold_Amount); #インプット波形を乗算する

ウェーブテーブルの作成例

#ウェーブテーブルの作成例

clear;
pkg load signal

FS = 44100;
wl = 2048;
rootname = 'WaveFolder';
extension = '.wav';
input = sin(linspace(0,2*pi,wl+1)); #Waveform to be wave-folded
input = input(1:wl);
FoldAmount = linspace(1,12,256).'; 
table = [];

for r = 1 : 256
 output = sin(input * FoldAmount(r)) ;
 table =[table output];
end

filename = [rootname, extension];
audiowrite(filename,table, FS, 'BitsPerSample' , 32);


番外編- FM シンセでのウェーブフォールディング

Elektron Digitone


Digitone Editor

Operator のRatio Offsetを-1にすることで、Operatorはフォールディングモードになります。
Operator CとOperator Aの関係で言えば、Operator CのRatio Offsetを-1に設定して、Operator Aのレベルを上げることで、Operator Aの波形はフォールディングします。


Digitoneによる例

Ableton Operator

Operatorを固定周波数モードにし、周波数を0Hzにすることで、フォールディングモードになります。
Operator AとOperator Bの関係で言えば、Operator Aの固定周波数を0Hzにし、Operator Bのレベルを上げることで、Operator Bの波形はフォールディングします。


いいなと思ったら応援しよう!