Ich würde vorschlagen, dass es eine gute Idee ist, die Startwellenformen digital zu erzeugen, selbst wenn Sie analoge Filterstufen verwenden möchten (diese können dem Klang eine Wärme verleihen, die auf andere Weise schwer zu erreichen ist). Viele Arcade-Automaten von Williams 'Electronics in den 1980er Jahren erzeugen Sound mithilfe einer Karte, die einen 6800-Mikroprozessor, eine kleine Menge RAM und ROM sowie ein wenig E / A einschließlich eines DAC enthielt. Alle Soundeffekte wurden mit engen Programmschleifen erzeugt, die Samples erzeugten und dem DAC zuführten. Da der Prozessor nur zur Klangerzeugung verwendet wurde, konnte die Schleifenausführungsgeschwindigkeit für das Timing verwendet werden.
In der Praxis verfügen selbst die einfachsten Mikrocontroller über eine Art Timer-Ressource. Dies kann hilfreich sein, wenn Sie die Audioparameter während der Wiedergabe von Sounds ändern möchten. Wenn man so etwas wie 6805-Code verwendet, schreibt man zunächst eine Abfrageroutine für jede Stimme. Aus Gründen der Geschwindigkeit würden diese Routinen im RAM leben - so etwas wie:
poll1:
brclr TMR_CONTROL, TMR_READY, Umfrage; Warten Sie auf den Beginn des nächsten Ticks.
bclr TMR_CONTROL, TMR_READY
FRQ1L: lda #PATCH
PH1L: #PATCH hinzufügen
sta PH1L + 1; Patch-Wert für LSB der Phase
FRQ1M: lda #PATCH
PH1M: füge #PATCH hinzu
sta PH1M + 1; Patch-Code
FRQ1H: lda #PATCH
PH1H: füge #PATCH hinzu
sta PH1H + 1; Patch-Code
sta FETCH + 2; Patch LSB des Ziels
FETCH: lda TABLE_BASE; 16-Bit-Adresse
clr DAC_ENABLES
sta DAC_OUTPUT
lda # ENABLE_1
sta DAC_ENABLES
rts
Als nächstes würde man eine Hauptschleife haben, die wiederholt die Abfrageroutine für jede Stimme nacheinander aufruft und zwischen den Anrufen jede andere Logik ausführt, die ausgeführt werden muss (z. B. um zu sehen, ob Sprachparameter aktualisiert werden müssen). Mit diesem Ansatz ist es möglich, eine angemessene Anzahl von Stimmen mit einer hohen Abtastrate zu aktualisieren.
Während es möglich ist, die anfängliche Wellenerzeugung vollständig unter Verwendung einer analogen Schaltung durchzuführen, ist es schwierig, mehrere unabhängige analoge Generatoren zu haben, deren Frequenzeigenschaften innerhalb eines Bruchteils eines Prozent absolut identisch sind. Das menschliche Ohr reagiert sehr empfindlich auf Tonhöhenschwankungen - weitaus mehr als auf Amplitudenschwankungen -, daher muss alles, was zur Signalerzeugung verwendet wird, sehr konsistent sein. Die Verwendung eines einfachen Mikrocontrollers als Ausgangspunkt ist ein guter Weg, um eine solche Konsistenz zu erzielen, selbst wenn man das erzeugte Signal dann über eine analoge Formungsschaltung speist.