ウェブテーブル音響合成とは
ウェブテーブル音響合成とは最も単純なデジタル音響合成の仕組みの一つであり、繰り返される音波の波形をテーブルと呼ばれる2次元の配列に格納し、再生時にはDACがその数値を参照し電気信号の時間的な変化を作り出す音響合成の仕組みです。実際に正弦波やノコギリ波、サンプリングされた具体音なども一旦このテーブルに波形データを書き込んでから、一定の周期でテーブルの値を順番に解釈し、再生することでピッチを発生させる仕組みが取られており、ほぼすべてがウェブテーブルの原理を利用していると考える事ができます。
ただし、アナログモデリングシンセサイザーなどは、このテーブルが動的に変化する仕組みがとられており、アナログ特有の揺らぎを再現しています。
サンプリングレートとビットの関係
コンピュータを用いて、単位時間あたりの気圧の変化すなわち、音波を数値化する場合にはテーブルを用いてその数値を格納していくと前述しました。実際には上の画像のようにアナログな波動のある地点を採取し、数値として格納していきます。その際横軸のメモリをどれくらいの精度で取るかがサンプリングレート、サンプリング周波数によって決定されます。
例えばサンプリング周波数44.1KHzであった場合、横軸のメモリは一秒あたり44100回データを採取します。つまり赤い矢印が44100本1秒間に引かれます。このことからもサンプリング周波数が高ければ高いほど、音色が忠実にサンプリングされることが予想できると思います。
これに対して、ビットという単位は縦軸のメモリの細かさを表します。
例えば16ビットであれば、2の16乗、65536個分のメモリが取られることになるため、数字が高ければ高いほどこれも元の波形に忠実なサンプリングが行える事がわかると思います。
ただし、過度に高いサンプリング周波数やビットはデータを肥大化させるので注意が必要です。今回のウェブテーブルシンセシスのmax/mspパッチにおいては原音をシミュレートしたりする場合を除いて、低サンプル低ビットであってもその表現を十分に堪能することが可能です。
Palm Products GmbH(PPG)のウェブテーブル
コンピュータ音楽の研究は1950年代から始まっておりますが、この成果の一つであるウェブテーブル音響合成によるシンセサイザーが市販されるのはようやく1970年代に入ってからです。
Tangerine Dreamが使用していたことでも有名なPalm Products GmbHによるThe Waveという1975年のシンセサイザーから市販の歴史は始まります。現在ではReasonのmalstromというシンセサイザーもウェブテーブルの名残を残すシンセサイザーと言えるでしょう。
Max/MSPパッチで再現するウェブテーブル音響合成
音色の変更
音色を決定する要因としては、波形があげられます。Maxにおいて、波形を自由に作る場合にはbuffer~オブジェクトに波形を描き、cycle~やwave~オブジェクトを用いてbuffer~の中身を再生する方法が考えられます。cycle~オブジェクトは512サンプルの固定された波形を再生するのに対して、wave~オブジェクトは可変長の波形テーブルを再生することができます。なお、サイン波を生成するためによくcycle~オブジェクトが利用されますが、この場合でも原理として512サンプルで正弦曲線を描くということは変わらないため、精度は高いとは言えない
波形の描き方は、いくつかありますが、このパッチではペンツールを用いてリアルタイムに書き込みが可能なアプローチを採用しています。
波形の描画はwaveform~オブジェクトを用いて行います。すぐ左側のツールバーの最下部の鉛筆の形をしたツールを選んでから、左のテーブルに波形を描いてください。正弦関数を描けばサイン波の音色が聞こえてくるでしょうし、ノコギリ波やパルス波も同様にドローイングで作り出す事が可能になります。フリーハンドで描く波形はどうしても波形の不連続が発生し、それが原因で高周波ノイズが発生してしまうことがあります。これを避けるにはフィルターなどでノイズ成分をカットするか、描画自体をフリーハンドではなく、一定の関数を生成するアルゴリズムから描画するという方法があります。この波形の違いがそのまま音色の違いとなります。
周波数の変更
ウェブテーブル音響合成で生成される音の周波数はどのように決定されているかというと、それは波形テーブルの長さとサンプリング周波数によって決定されます。ここで言うサンプリング周波数とは一秒間に何回波形テーブルの参照を行うか、すなわち、上記のphasor~オブジェクトがどれくらいの周期を持っているのかで決定されます。波形テーブルの長さはbufferオブジェクトの横軸の数によって決定されます。
phasor~オブジェクトはcounterオブジェクトが接続されたitableオブジェクトによって、変化があたえられています。
もしサンプリング周波数が1000サンプル/秒(Hz)でテーブルに1000個の値が格納されている場合、周波数は1000/1000となり1Hzとなります。これが3000Hzのサンプリング周波数、テーブルが500個の値を持っていた場合、出力周波数は3000/500 = 6Hzとなります。
デモンストレーション映像
ウェブテーブルシーケンサー
itabele
今回のパッチでは出力周波数をitableオブジェクトで動的に変化させています。itableオブジェクトとはtableオブジェクトのインナーフレーム版であり、別ウィンドウを開かずともテーブルの描画が行える特徴があります。この値が直接phasorオブジェクトに送られるため、直接周波数をテーブルに入力していく仕組みになっています。これはピッチベースのシーケンサーではなく、周波数ベースのシーケンサーとなるため、微分音的な表現や連続したグリッサンドもシーケンスとして記録していける点がMIDIシーケンサーとは大きく異なります。
更には再生しながらリアルタイムに変更を加える事ができるため、様々な可能性が開けます。
パッチのダウンロード
wavetable.maxpat (for Max5.x)
max5Runtime(上記のMaxパッチの実行用フリーソフトウェア for Mac)
max5Runtime(上記のMaxパッチの実行用フリーソフトウェア for win)
参考文献
コンピュータ音楽―歴史・テクノロジー・アート | |
東京電機大学出版局 2001-01 売り上げランキング : 241669 おすすめ平均 |
Computer Music: Synthesis, Composition, and Performance | |
Schirmer Books 1997-07-02 売り上げランキング : 10072 おすすめ平均 |
2061:Maxオデッセイ―音楽と映像をダイナミックに創造する!最高の開発環境を徹底解説 | |
リットーミュージック 2006-10 売り上げランキング : 178890 |