ウェーブテーブルとサンプラー
第1章では、オーディオ信号が常にあるサンプルレートで連続的に流れているかのように扱いました。サンプルレートは、オーディオ信号の品質ではなく、個々のサンプルがコンピュータに流入または流出する速さを指定するものです。しかし、オーディオ信号は単なる数字の羅列であり、実際には連続して再生されなければならないということはありません。もう一つの補足的な考え方は、オーディオ信号をメモリーに保存しておき、後になって、前にも後ろにも、前後にも、あるいは全くランダムにも、好きな順序で読み返すことができるというものだ。無尽蔵の新しい可能性が広がっている。
音の記憶媒体は、長い間(1950〜1990年頃)、磁気テープが主流だった。テープを磁気ピックアップに通して、信号をリアルタイムに再生していました。1995年頃からは、音をデジタルオーディオ信号として保存する方法が主流となり、磁気テープよりもはるかに自由度の高い方法で音を読み取ることができるようになった。テープ時代の使用方法は、カット、デュプリケーション、スピードチェンジ、タイムリバーサルなど、多くのモードが現役である。しかし、ウェーブシェイピングのように、デジタル時代になって初めて本領を発揮する技術もある。
例えば、デジタルオーディオ信号が保存されているとします。これは、n = 0,...,N - 1の場合、xnというサンプル(数字)の並びに過ぎません。そして、入力信号yn(これはリアルタイムに流れていると想像できる)があれば、その値を指標にして、格納されている信号xnの値を調べることができる。この操作はウェーブテーブルルックアップと呼ばれ、次のように計算された新しい信号znが得られます。zn = x[yn] となります。 この操作を模式的に表すと、図2.1のようになります。
ここで2つの問題が発生します。まず、入力値ynが0,...,N - 1の範囲外にある場合、ウェーブテーブルxnは値を持たず、出力znの式は不定となります。このような状況では、入力をクリップすることを選択するかもしれません。つまり、負の値には0を、N以上の値にはN - 1を代入するのです。あるいは、入力を端から端まで回り込ませる方法もあります。ここでは、範囲外のサンプルは常にクリップされるという慣習を採用します。ラップアラウンドが必要な場合は、別の信号処理を導入して行います。 図2.1: ウェーブテーブルのルックアップの図。入力はサンプルで,およそ0からウェーブテーブルのサイズNまでの範囲で,補間方式に応じて変化します.
2つ目の複雑な点は、入力値が整数である必要はなく、言い換えれば、ウェーブテーブルのポイントの間に入る可能性があるということです。一般的には、ウェーブテーブルのポイント間を補間する方法を選択することで対処します。しかし、ここでは、入力より最も近い整数に切り捨てることにします。これは非補間ウェーブテーブルルックアップと呼ばれ、その完全な定義は以下の通りです。
ここでbyncは「ynを超えない最大の整数」を意味します)。 図式的には,図2.1に示したウェーブテーブルの横軸の位置をy0(数値)とし,縦軸に出力されるものをz0とする.入力ynの「自然な」範囲は、0≦yn<Nです。これは、コンピュータからの出力に適したオーディオ信号の通常の範囲とは異なり、私たちの単位では-1から1までの範囲です。後ほど,補間しないルックアップでは0からNまでの入力値の範囲が,補間するルックアップを使うと少し狭くなることを説明します. 図2.2(パートa)は、ウェーブテーブルと、そのルックアップインデックスとして2つの異なる入力信号を使用した結果を示しています。ウェーブテーブルには、0から39までの番号が付いた40個のポイントがあります。鋸歯状波とは、ランプ関数を端から端まで繰り返したものにすぎません。この例では、ノコギリ波の範囲は0から40までです(縦軸に表示)。のこぎり波は、ウェーブテーブルを左から右へ、つまり始点の0から終点の39まで走査し、それを繰り返すのです。図2.2(パートb)の50個のポイントで、ノコギリ波は は2.5周します。その周期は20サンプルで、言い換えれば周波数(1秒あたりのサイクル)はR/20です。
図2.2の(c)部分は、信号ynにテーブルxnを使って波動関数のルックアップを適用した結果を示しています。ノコギリ波の入力は、ウェーブテーブルの内容を一定の歳差運動で左から右へと繰り返し読み上げるだけなので、結果として、xnから波形(形状)が得られ、ノコギリ波ynによって周波数が決まる、新しい周期的な信号が得られます。 (d)および(e)は、ウェーブテーブルが不均一に読み込まれる例で、入力信号が0からNまで上昇し、その後0まで下降するので、ウェーブテーブルが最初に前方に現れ、次に終点で静止し、次に後方に現れるのがわかる。テーブルは左から右にスキャンされ、さらに素早く右から左にスキャンされます。前述の例と同様に、入力信号は歳差運動の速度を制御し、出力の振幅はウェーブテーブルのものです。
2.1. ウェーブテーブルオシレーター