Yo sugeriría que incluso si desea utilizar etapas de filtrado analógico (pueden dar a un sonido una calidez que puede ser difícil de lograr por otros medios) puede ser una buena idea generar las formas de onda iniciales digitalmente. Muchas máquinas arcade electrónicas de Williams en la década de 1980 generan sonido utilizando una placa que contenía un microprocesador 6800, una pequeña cantidad de RAM y ROM, y un poco de E / S, incluido un DAC. Todos los efectos de sonido se generaron utilizando bucles de programa ajustados que generaron muestras y los enviaron al DAC. Dado que el procesador no se usó más que para la generación de sonido, la velocidad de ejecución del bucle se podría usar para la sincronización.
En la práctica, incluso los microcontroladores más simples tienen algún tipo de recurso de temporizador, lo que podría ser útil si desea poder cambiar los parámetros de audio mientras reproduce sonidos. Usando algo como el código 6805, uno comenzaría escribiendo una rutina de sondeo para cada voz; para la velocidad, estas rutinas vivirían en la RAM, algo así como:
poll1:
brclr TMR_CONTROL,TMR_READY,poll ; Wait for start of next 'tick'
bclr TMR_CONTROL,TMR_READY
FRQ1L: lda #PATCH
PH1L: add #PATCH
sta PH1L+1 ; Patch value for LSB of phase
FRQ1M: lda #PATCH
PH1M: add #PATCH
sta PH1M+1 ; Patch code
FRQ1H: lda #PATCH
PH1H: add #PATCH
sta PH1H+1 ; Patch code
sta FETCH+2 ; Patch LSB of target
FETCH: lda TABLE_BASE ; 16-bit address
clr DAC_ENABLES
sta DAC_OUTPUT
lda #ENABLE_1
sta DAC_ENABLES
rts
A continuación, uno tendría un bucle principal que repetidamente llamaría a la rutina de sondeo para cada voz en secuencia y, entre las llamadas, realizaría cualquier otra lógica que fuera necesaria (por ejemplo, ver si era necesario actualizar algún parámetro de voz) Usando este enfoque, es posible actualizar un buen número de voces con una alta frecuencia de muestreo.
Si bien es posible realizar la generación de onda inicial completamente utilizando circuitos analógicos, es difícil tener múltiples generadores analógicos independientes cuyas características de frecuencia sean absolutamente idénticas dentro de una fracción del porcentaje. El oído humano es muy sensible a las variaciones en el tono, mucho más que a las variaciones en la amplitud, por lo que todo lo que se use para la generación de señales debe ser muy consistente. El uso de un simple microcontrolador como punto de partida es una buena manera de obtener dicha consistencia, incluso si uno alimenta la señal generada a través de circuitos de conformación analógica.