Я б припустив, що навіть якщо ви хочете використовувати аналогові етапи фільтрації (вони можуть видавати звук тепла, якого важко досягти за допомогою інших засобів), може бути гарною ідеєю генерувати початкові форми сигналів цифровим шляхом. Багато аркадних машин Williams 'Electronics в 1980-х роках генерують звук, використовуючи плату, що містить 6800 мікропроцесорів, невелику кількість оперативної пам’яті та ПЗУ і трохи вводу / виводу, включаючи ЦАП. Всі звукові ефекти генерувались за допомогою щільних програмних циклів, які генерували зразки та подавали їх у ЦАП. Оскільки процесор використовувався лише для створення звуку, швидкість виконання циклу може використовуватися для синхронізації.
На практиці навіть найпростіші мікроконтролери мають якийсь ресурс таймера, який може бути корисним, якщо ви хочете змінити параметри звуку під час відтворення звуків. Використовуючи щось на зразок коду 6805, почалося б із написання опитування для кожного голосу; для швидкості ці процедури будуть жити в оперативній пам'яті - щось на зразок:
опитування1:
brclr TMR_CONTROL, TMR_READY, опитування; Зачекайте початку наступного "галочки"
bclr TMR_CONTROL, TMR_READY
FRQ1L: lda #PATCH
PH1L: додайте #PATCH
ста PH1L + 1; Значення виправлення для LSB фази
FRQ1M: lda #PATCH
PH1M: додайте #PATCH
ста PH1M + 1; Патч-код
FRQ1H: lda #PATCH
PH1H: додайте #PATCH
ста PH1H + 1; Патч-код
ста FETCH + 2; Виправити LSB мішені
ВЗАЄМО: lda TABLE_BASE; 16-бітна адреса
clr DAC_ENABLES
sta DAC_OUTPUT
lda # ENABLE_1
sta DAC_ENABLES
рц
Далі, є основний цикл, який би неодноразово викликав процедуру опитування для кожного голосу послідовно і, між викликами, виконувати будь-яку іншу логіку, необхідну для виконання (наприклад, бачити, чи потрібно оновлювати параметри голосу). Використовуючи такий підхід, можна оновити неабияку кількість голосів з високою частотою вибірки.
Хоча можна зробити початкову генерацію хвиль повністю за допомогою аналогової схеми, важко мати кілька незалежних аналогових генераторів, частотні характеристики яких абсолютно однакові в частці відсотка. Людське вухо дуже чутливе до змін нахилу - набагато більше, ніж до змін амплітуди - тому все, що використовується для генерації сигналу, повинно бути дуже послідовним. Використання простого мікроконтролера як вихідної точки - хороший спосіб отримати таку узгодженість, навіть якщо потім подається згенерований сигнал за допомогою аналогової схеми формування.