アナログフィルタリングステージを使用する場合でも(他の手段では達成するのが難しい暖かさをサウンドに与えることができます)、開始波形をデジタルで生成することをお勧めします。1980年代の多くのウィリアムズエレクトロニクスのアーケードマシンは、6800マイクロプロセッサ、少量のRAMとROM、およびDACを含むわずかなI / Oを含むボードを使用してサウンドを生成します。すべての音響効果は、サンプルを生成してDACに供給するタイトなプログラムループを使用して生成されました。プロセッサはサウンド生成にのみ使用されたため、ループ実行速度をタイミングに使用できました。
実際には、最も単純なマイクロコントローラーでも何らかのタイマーリソースを備えています。これは、サウンドの再生中にオーディオパラメーターを変更できるようにする場合に役立ちます。6805コードのようなものを使用して、各音声に対してポーリングルーチンを作成することから始めます。速度を上げるために、これらのルーチンはRAMに常駐します。
poll1:
brclr TMR_CONTROL、TMR_READY、poll; 次の「ティック」の開始を待つ
bclr TMR_CONTROL、TMR_READY
FRQ1L:lda #PATCH
PH1L:#PATCHを追加
sta PH1L + 1; フェーズのLSBのパッチ値
FRQ1M:lda #PATCH
PH1M:#PATCHを追加
sta PH1M + 1; パッチコード
FRQ1H:lda #PATCH
PH1H:#PATCHを追加
sta PH1H + 1; パッチコード
sta FETCH + 2; ターゲットのLSBをパッチ
FETCH:lda TABLE_BASE; 16ビットアドレス
clr DAC_ENABLES
sta DAC_OUTPUT
lda#ENABLE_1
sta DAC_ENABLES
rts
次に、各音声のポーリングルーチンを順番に繰り返し呼び出すメインループがあり、呼び出しの間に、実行する必要がある他のロジックを実行します(たとえば、更新する必要のある音声パラメーターがあるかどうかを確認します)。このアプローチを使用すると、かなりの数のボイスを高いサンプルレートで更新できます。
完全にアナログ回路を使用して初期波の生成を行うことは可能ですが、周波数特性が数分の1の範囲内で完全に同一である複数の独立したアナログジェネレータを用意することは困難です。人間の耳は、ピッチの変化に対して非常に敏感です。つまり、振幅の変化よりもはるかに敏感であるため、信号生成に使用されるものは、非常に一貫している必要があります。単純なマイクロコントローラーを開始点として使用することは、生成された信号をアナログシェーピング回路を通して供給したとしても、そのような一貫性を得る良い方法です。