すこし補足的雑記

ふだんうちのサイトをご覧になっている方には繰り返しの話となります。
なにぶんブログ形式だと古い記事が埋もれてしまいますんで、重複ご容赦ください。

低音で高域まで出るということ

Sugar BytesのFactoryのレビューにも書いた低音で高域まで出るということについて補足すると(【参考】手持ちの鋸歯波の波形を見てみる – makou’s peephole)、

コンピューターが生成するシンセの音は1個目の音のように低音でもクリアに鳴るのです。これはどの音程で鳴らそうが計算して音を生成してくれるから。これが望ましいシンセ。
既存のシンセ音をサンプリングして鳴らす形式のものは、2個目の音のように低い音程だとこもってしまいがち。”こもってるからよくない”のではなく、本来出るべき音が出てないからよくない。これはサンプリングしたときの音程よりも低い音程で再生されると解像度が下がるためで、言わば写真を拡大したらボヤけるのと大体同じ。
じゃあ低い音程でサンプリングしておけばいいかというと、今度はそれを高い音程で鳴らしたときに情報量が振り切れて(サチって)ノイズとして聞こえたり、一定の再生速度を超えるとループポイントが音程として聞こえ出すため、不協和音が勝手に生成されるリスクがあったり(これを利用した表現はあってもいい)。それじゃあそれを防ぐためにと長〜いループにすると今度は読み込みが重いシンセになり取り回しづらい、と。
だから、好都合なのが計算して音を生成する方式なのですが、これはこれでたとえば特定のヴィンテージシンセの音を生成する計算式があるわけではない(たぶん、もうちょっとでそれができるようになるとは思いますが)。

サンプリングがダメなのではなく、音程ごとにサンプリング(マルチサンプリング)していれば劣化は抑えられます。
あるいは画像処理でいうWaifu2Xみたいな工夫、それがなされず劣化した音がそのまま鳴るんじゃまずいよね、というのが「低音で高域まで出る」の主旨です。
この数年は図太いシンセベースの音を鳴らす風潮ですんで、この点はチェックが必要。
ソフトウェアに限らずハードウェアシンセでも、もし店頭で現物を鳴らして確認できるなら低音の出方をある程度チェックしたほうがいいと思います。

WavetableのIndexの荒れについて

これもSugar BytesのFactoryのレビューに記した内容にちなんだ再度の補足となります(【参考】SerumのWavetable作成手法(補遺) – makou’s peephole)。
既存の(音程が一定の)オーディオデータをWavetableとして登録して美しく使うには位相が整理されている必要があります。
しかし倍音成分の強い音色をWavetable作成意図で数サンプル切り取る際に位相を整理するというのはかなり難しい。

SerumのWavetable Editorに放り込む際に音程を定義しておけばよいかというと十中八九ズレが生じるというのは既述の通り。

SerumのProcessメニューのShift Horizontal to Zero-Crossingコマンドは各Indexに対してでなく全Indexでズルッとシフトさせるもので、各Indexに対して行うにはIndexごとにSingleメニューのShift Horizontal to Zero-Crossingを行う必要があります(いずれSerum側でバッチ処理に対応するとは思うが)。
よってIndexの個数分、手作業でZero-Crossingの調整をしなくてはならない。とっても面倒。なのでIndexの個数を減らす、というのが定石だろうと思います。

では無頓着にやった場合に何が起きるのか。

極端な例としてIndex同士が逆相だった場合、Indexの中間地点ではその波形同士が50:50で混ざり合った無音状態が生まれるので、Wavetableをグリグリ動かすと音量がグリグリ揺れます(これはこれでWobbleっぽい)。

Index間を滑らかに移行させるためのクロスフェードなのに、登録波形の状態次第で、Indexの隙間で思いもよらない状態が生まれ得るのが罠(ここではわかりやすく無音状態を作るように波形登録しましたが、ベースの図太さに当たる成分が消える可能性だってある)。
Index自体は視認できるからいいのですが、Indexの間はこういうWaterfall表示にでもしないと見られませんし、また、Index数が増えれば増えるほどIndexの間も同様に増えますんで、問題が起きる可能性も高くなります。
せめてIndex間が3フレームになる状態であれば問題起きにくいのかなと思わないでもない。でも位相の状態によるか…。

したがって、最低限、基音(倍音でいちばん低い音(そもそも倍音ではないが)で、音程を司るもの)の位相を揃えてやり、そのIndexでの波形状態でその音色らしさを示してる各倍音成分の位相も揃えてやらないと、Index同士の隙間で音がグンと小さくなる箇所が生まれる可能性がある、つまり「荒れ」が起きてしまうということです。
Index間の波形まで含めて平均化する仕組みもSerumには備わっていますが、今度は逆に消えちゃう倍音のぶん他の倍音成分が増幅されてしまうことが起きます。
ノーマライズされた波形同士が必ずしも同じ音圧にならないことを考えると、ことWavetable作成時には下手に平均化処理を行わないほうがいいとも言えますし、ギャンブル的に試してそんな音になっちゃってガッカリするくらいなら初めから位相を揃えて切り出してWavetableに波形登録したほうが安定した音になるとも言えます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください