前回の投稿の続きです。
wave.hatenablog.com
※自分なりの解釈を多分に含みますので、認識齟齬や事実誤認が含まれる可能性もありますのでご注意ください。
何故音域毎に異なる波形を持っているのに音作りに活用していないのか
前回の投稿では、DW-8000のDWGS音源システムでは音域毎に異なる波形を持っているのに、後のPCM音源のマルチサンプルのような活用をしていないのは何故だろうかと疑問が残ったのですが、いただいたコメントとサービスマニュアルの記述を読んでいたら単純な解釈に行きつきました。
これに対する回答としては、「単にアンチエイリアスのために音域毎に波形を持っている。」のであろうと考えられます。
音域毎に異なる音色変化を再現するような意図を連想してしまうのは後のPCM音源を知っているからであって、デジタル黎明期の当時はそんなこと考えてないのです(多分)。
以下に、そう考えられる根拠を記載します。
波形ROMの周期波形の倍音成分
前回の投稿にも記載しましたが、高音域になるほど倍音が減ってサイン波に近い波形がROMに記録されています。これに関連して、英文サービスマニュアルには以下の記述があります。
IC45 and IC46 (HN613256) store digitally encoded harmonic waveforms of the harmonics 2,5,10,20,40,80,160,320.
Here a waveform including the 320th harmonic refers to addition of the sine value 320 times at a particular phase.
KORG DW-8000 SERVICE MANUALより引用
入手できたサービスマニュアルは英語版ですが、京王技研のKORGなので元は日本語のはずです(つまり、英文としてやや怪しいように思えます)。適当に訳すると、以下のような感じで微妙に何言ってるのか正確には解らない日本語になります。
IC45とIC46(HN613256)にはデジタル記録された高調波2,5,10,20,40,80,160,320が記録されています。
ここで320番目の倍音を含む波形は特定の位相のサイン波を320個加算したものです。
都合よく解釈すると、DW-8000が音域毎に持っている波形は8個ですから、それぞれ第2倍音まで、第5倍音まで、・・・、第320倍音までが含まれると言っているように思えます。
実際に、一定時間連続した最低音域のDWGS波形をFFT解析して各整数倍音成分のレベルを抽出し、そのレベルを係数倍したサイン波を加算合成(最低音域では第320倍音まで、最高音域では第2倍音まで)してみたところ、聴感上元のDWGS波形のどの音域とも同じ音が聞こえます。目視する限り波形も概ね同じです*1ので、この解釈で合ってそうです*2。
各音域の倍音成分の最高周波数
仮に、A(ラ)の音で使用波形が切り替わる(A~G#で同一波形を共有)とすると、下表のように整理できます。
Samples/Cycle | RootNote# | RootNoteName | RootNoteFrequency [Hz] | MaxHarmonics | FrequencyOfHighestHarmonics[Hz] |
2048 | 21 | A0 | 27.5 | 320 | 8800 |
2048 | 33 | A1 | 55 | 160 | 8800 |
1024 | 45 | A2 | 110 | 80 | 8800 |
1024 | 57 | A3 | 220 | 40 | 8800 |
512 | 69 | A4 | 440 | 20 | 8800 |
512 | 81 | A5 | 880 | 10 | 8800 |
512 | 93 | A6 | 1760 | 5 | 8800 |
512 | 105 | A7 | 3520 | 2 | 7040 |
つまり、(最高音域を除き)いずれの音域でもA(ラ)の音は8800Hzが倍音の最高周波数となります。
同様に、同じ波形を共有する上限(G#及びNoteNumber=127のG9)の音(と、下端のNoteNumber=0のC-1)を整理すると下表のようになります。
ShiftedNote# | ShiftedNoteName | ShiftedNoteFrequency | FrequencyOfHighestHarmonics[Hz] |
0 | C-1 | 8.18 | 2616.2557 |
32 | G#1 | 51.91 | 16612.1879 |
44 | G#2 | 103.83 | 16612.1879 |
56 | G#3 | 207.65 | 16612.1879 |
68 | G#4 | 415.30 | 16612.1879 |
80 | G#5 | 830.61 | 16612.1879 |
92 | G#6 | 1661.22 | 16612.1879 |
104 | G#7 | 3322.44 | 16612.1879 |
127 | G9 | 12543.85 | 25087.7079 |
G#では16612.1879Hzが倍音の最高周波数となることが解ります(G9のような最高音域ではこれを超えます)。
DW-8000のD/A変換
サービスマニュアルによればDW-8000のD/A変換におけるサンプリング周波数は50kHzのようです。つまりナイキスト周波数は25kHzです。
ということは、最高音域以外の音域に含まれる倍音の最高周波数16612.1879Hzは問題無く再現することができます。ただし、最高音域では25087.7079Hzですから、25kHzを僅かに超過しています。この場合のエイリアスノイズの周波数は、25000-(25087.7079-25000)=24912.2921Hzとなりますが、ヒトの可聴周波数帯域上限の20kHzより高い音ですから聴こえないので実用上問題ありません。
このような理屈で、最低音域では第320倍音まで、最高音域では第2倍音まで加算合成した波形を記録しておくことで、アンチエイリアス処理を不要にしたのがDWGS音源システムだと考えられます。
補足
サービスマニュアル見ると解りますが、後のPCM音源のシンセでは波形ROMに記録されたデータは音源チップやDSPに入力されて処理されますが、DW-8000では波形ROMのデータバスがなんとDACの入力にそのまま繋がっています。つまり、後のPCM方式のシンセサイザーのように音源チップやDSP、或いは専用IC等でデジタルフィルタでアンチエイリアス処理を行うことはできないのです。波形ROMに存在する波形がそのままDACに流れていってしまうので。
このため、最高周波数がナイキスト周波数以下になるように予め加算合成した波形をROMに持たせることにした。と、考えられます。
蛇足
この構成ではデジタルで波形を加算できないため、8音ポリフォニック(各2OSC)を実現するには波形ROMとDACも8×2=16セット必要なのでは?と思うかもしれませんが、そうではありません。波形は時分割多重でDACから出力され、後段に存在するデマルチプレクサで各音を取り出しサンプルホールドして、各音ごとに独立したVCF/VCAで加工された後、ミキシングされた音がゲートアレイ(D65010CW)と2個のRAM(M5M4416P)で構成されたデジタルディレイを経由して出音が作られる構造になっています*3。
後のPCM方式のシンセサイザーでもステレオDACが一般化する前の世代のものは1系統しか出力が無いDACを使って左右2chの信号を時分割多重出力し、デマルチプレクサで元の2つの信号を取り出すようなことは他社シンセでも普通に行われています。基本的な考え方はDW-8000も同様ですが、左右2つではなく、8音×2OSC=16個の信号を流すには高速なDACが必要になります。そんな超高速なDACが存在したのか疑問に思いますが、DW-8000ではAnalog DevicesのDAC08が使われています。データシートによれば、8bitながらもsettling time 85ns(typ)、150ns(max)とされており、つまり最高で1/85ns = 約11.8MHz(!)、最悪でも1/150ns=約6.67MHzものサンプリング周波数に対応できることになります*4。実際にはsettling time経過後にデマルチプレクサが切り替えた先のサンプルホールド回路が安定するまでの時間待機してから次のサンプルを処理といった感じになるので、システム全体ではもっと遅くなるはずです。それでも、サンプリング周波数50kHz×8ポリフォニック×2OSC=800kHzの時分割入力には十分対応できることになります。
*1:FFTの位相を無視して再現を試みたので、DWGS Wave#2のSquareは位相が違うようで、同じ音に聴こえるものの、波形は全く違う。
*2:ベルに適すると取説に記載されたDWGS Wave#15にも非整数倍音は含まれないようです。
*3:内蔵デジタルディレイですが、音源部からフルデジタル処理で出音が得られる構成ではありません
*4:現代のDACと違ってクロック入力はありませんし、そもそもシリアル入力ではなく8bitパラレル入力です。
*5:DW-8000の出音自体はVCF/VCAで加工された音なので、DW-8000を再現するのは単一サンプルだけでは厳しい。
*6:過去のゲーム機の波形メモリ音源はアンチエイリアス処理実装してるんでしょうかね?ゲーム中で使用する最高音域でエイリアスノイズが出ないような波形にしてアンチエイリアス処理自体は無いとか???