Serumの Wavetable作成手法

UVI Falcon Wavetable [WaveList]

UVI Falcon Wavetable [WaveList]

Serum 謹製の WaveTable って大量にインストールされているけど、音色のリストって潤沢になればなるほど探したり辿ったりするのが面倒くさくなったり聞かないとわからなかったりで、時間かかって萎えちゃうんですよね。
Novation Ultranova(or Mininova)のエディターやUVI Falconのようなグラフィック表示は、よくできてはいるものの表示時間は多少かかってしまってストレスになります。

 

使いたい音に手っ取り早くリーチできるステキなUI、お待ちしています。

Serum : FormulaによるWavatable生成

さて、その Serumの謹製 WaveTableはMacだと下記のディレクトリに保管されていて、マニュアルもその一つ上の階層にあります。

/Library/Audio/Presets/Xfer Records/Serum Presets/Tables

acCOStingの式をGrapherに突っ込んだもの

acCOStingの式をGrapherに突っ込んだもの

また Systemのフォルダには WaveTable生成用の formula(式)がまとまっていて、たとえば…

[sin(x*pi)+(0.16*(sin(2*x*pi)+sin(3*x*pi)+sin(4*x*pi)))][Organ-ish]

[0.95-sqrt(acos(pi*x*(y-1)))][acCOSting]

という感じ。
acCOStingの式を少しいじってMacのGrapherにためしにブッ込むと右のスクショのようになりました。

この機会に、マニュアルに載っている関数、定数、変数や論理演算子も転載しておきますね。

Name Arguments Explanation
sin 1 sine function
cos 1 cosine function
tan 1 tangens function
asin 1 arcus sine function
acos 1 arcus cosine function
atan 1 arcus tangens function
sinh 1 hyperbolic sine function
cosh 1 hyperbolic cosine
tanh 1 hyperbolic tangens function
asinh 1 hyperbolic arcus sine function
acosh 1 hyperbolic arcus tangens function
atanh 1 hyperbolic arcur tangens function
log2 1 logarithm to the base 2
log10 1 logarithm to the base 10
log 1 logarithm to the base 10
ln 1 logarithm to base e (2.71828…)
exp 1 e raised to the power of x
sqrt 1 square root of a value
sign 1 sign function -1 if x<0; 1 if x>0
rint 1 round to nearest integer
abs 1 absolute value
min var. min of all arguments
max var. max of all arguments
sum var. sum of all arguments
avg var. mean value of all arguments
Operator Meaning Priority
&& logical and 1
|| logical or 2
<= less or equal 4
>= greater or equal 4
!= not equal 4
== equal 4
> greater than 4
< less than 4
+ addition 5
subtraction 5
* multiplication 6
/ division 6
^ raise x to the power of y 7
Name Explanation
pi pi (3.141592658979323846264338)
e e (2.718281828182818281828)
w current time-value getting plotted, from 0.0 to 1.0 same as (x+1)/2
x current time-value getting plotted, from -1.0 to 1.0
y current table number, from 0.0 to 1.0 *See Below
z current table number, from -1.0 to 1.0 *See Below equivalent: (y*2)-1
q When a ‘q’ is preset in the formula, the function plots to the FFT bins instead of plotting the to the waveform display. q iterates from 1 to 512 for the respective harmonics/bins. **
in the current (“old”) visible waveform value of the plotting table (changes to each old table, if using ‘y’ or ‘z’ which plots all tables)
sel Similar to “in”, but only the currently selected wavetable (does not change to each table, uses the selected table when processing the formula begins).
rand a random number from -1.0 to 1.0, stays the same for all tables (precalculated for every time position).

formulaに手を出す人はハナから英語に苦もないと思うんで、formulaに関してはこれで紹介おしまい。
ちなみに遥か昔Photoshopにフィルタを自作できる仕組みがあって、最初の会社を退職してリハビリをしていたときに遊び半分にフィルタを作って過ごしていた僕ですが、かつての退職後のリハビリに匹敵する時間の余裕がないのでこれに関しては手を出さずにおきます。興味はある、だが余裕がない。

Serum : 取り込みによるWavetable作成

波形インポートによるWavetable作成方法もあります。

波形表示ウィンドウへのドラッグ

メイン画面またはWaveTable編集画面の波形表示ウィンドウにオーディオファイルをドラッグしてくる方法で、それをやると勝手にアナライズしてくれる。
問題はそのアナライズ結果を自分が気に入るかどうか。

マニュアルを見ると、fixed frame sizeでのimportが推奨されています。
それと大事なのが、formula入力画面にオーディオファイルのルートノート(C1とかA0とか)を入力しておくこと。
ルートノートって用語は今の時代あまり一般的ではないんですが、もともとはラの鍵盤を叩いてシの音が鳴らないようにそのオーディオサンプルの対応する音程の鍵盤を定めておくもの。
シンセサイザーでルートノートは本来直接関係ないものの、ここではオーディオサンプルを取り込むってことをするので必要になります。

ルートノートを指定しておくと、その音程に対応する1周期分のサンプル数(≒時間)をもとにオーディオサンプルを分析してくれます。
その後もろもろ好き勝手にいじり、つまりIndexの順序変更なりその波形の両端をゼロクロスなりしてWavetableを整理していきます。
なお、マニュアルでは44.1kHz16bitのサンプルが推奨されていますが、44.1kHzにせよ48kHzにせよ波形1周期分のサンプル数は割り切れない数字になることがほとんどなので、そんなにシリアスにやらなくていいと思います。

Indexへのドラッグ

WaveTable編集画面下部のIndex欄にオーディオファイル群をドラッグしてくると、順にIndexに登録してくれます。
元のオーディオファイルを1周期分で切り出しておくと非常に良好な状態でIndex化されますが、そのための下ごしらえは地味に大変です。

ちなみにUVI FalconのWaveTableはFalcon Factory.ufsの中に格納されてる気配で、簡単にはエディットできなそう。
Wavetableを自作できるのは、あとはLogicのRetroSynthくらいかな…。

冒険

和音のWaveTable登録

実験的に和音で鳴らしたサウンドをWaveTableにimportしてみると、再生音を2オクターブ〜4オクターブ下げることで雰囲気が出ました。
AbsynthのWaveTableの在り方に近いかもしれません。
ただこれ、ループでグリッチ乗りやすいのと、最小公倍数がどうしても大きくなってしまってサンプリングレートが低くなりがちなのが残念なところです。

ノイズのWaveTable登録

ノイズとはランダムな発音を指すのでWaveTableには不向き…と思い込んでいたら、PlogueのTableWarp2というプラグインでそれがなされていました。

それを参考にLFOやEGでIndexが切り替わるようにしてノイズを登録したら、難しいけどそれなりな感じでノイズを発音させることもできました。
SerumのNoiseオシレーターに登録できるともっといいんですけどねえ。

Plogue “TableWarp2”

【関連】