मेरा सुझाव है कि भले ही आप एनालॉग फ़िल्टरिंग चरणों का उपयोग करना चाहते हैं (वे ध्वनि को एक गर्मी दे सकते हैं जो अन्य साधनों के माध्यम से प्राप्त करना कठिन हो सकता है) यह डिजिटल रूप से शुरुआती तरंगों को उत्पन्न करने के लिए एक अच्छा विचार हो सकता है। 1980 में कई विलियम्स इलेक्ट्रॉनिक्स आर्केड मशीनें एक बोर्ड का उपयोग करके ध्वनि उत्पन्न करती हैं, जिसमें 6800 माइक्रोप्रोसेसर, रैम और रोम की एक छोटी राशि और एक डीएसी सहित आई / ओ का थोड़ा सा हिस्सा होता है। सभी ध्वनि प्रभाव तंग प्रोग्राम लूप का उपयोग करके उत्पन्न किए गए थे जो नमूनों को उत्पन्न करते थे और उन्हें डीएसी को खिलाते थे। चूँकि प्रोसेसर का उपयोग ध्वनि उत्पादन के अलावा और कुछ नहीं के लिए किया जाता था, लूप निष्पादन की गति का उपयोग समय के लिए किया जा सकता था।
व्यवहार में, यहां तक कि सबसे सरल माइक्रोकंट्रोलर्स में कुछ प्रकार के टाइमर संसाधन होते हैं, जो तब मददगार हो सकते हैं, जब आप ध्वनियों को खेलते समय ऑडियो मापदंडों को बदलने में सक्षम होना चाहते हैं। 6805 कोड जैसी किसी चीज़ का उपयोग करके, प्रत्येक आवाज़ के लिए एक पोल रूटीन लिखकर शुरू किया जाएगा; गति के लिए ये रूटीन रैम में रहेंगे - कुछ इस तरह:
poll1:
brclr TMR_CONTROL, TMR_READY, जनमत; अगली 'टिक' की शुरुआत के लिए प्रतीक्षा करें
bclr TMR_CONTROL, TMR_READY
FRQ1L: lda #PATCH
PH1L: #PATCH जोड़ें
sta PH1L + 1; चरण के एलएसबी के लिए पैच मूल्य
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
अगला, एक मुख्य लूप होगा जो बार-बार अनुक्रम में प्रत्येक आवाज के लिए पोल दिनचर्या को कॉल करेगा और, कॉल के बीच, जो भी अन्य तर्क किए जाने की आवश्यकता है उसे निष्पादित करें (उदाहरण के लिए अगर किसी आवाज पैरामीटर को अपडेट करने की आवश्यकता है)। इस दृष्टिकोण का उपयोग करते हुए, उच्च नमूना दर के साथ उचित संख्या में आवाज़ें अपडेट करना संभव है।
हालांकि शुरुआती तरंग पीढ़ी को पूरी तरह से एनालॉग सर्किटरी का उपयोग करना संभव है, लेकिन कई स्वतंत्र एनालॉग जनरेटर होना मुश्किल है, जिनकी आवृत्ति विशेषताओं का प्रतिशत एक अंश के भीतर बिल्कुल समान है। मानव कान पिच में विविधताओं के लिए बहुत संवेदनशील है - आयाम में भिन्नता की तुलना में कहीं अधिक - तो संकेत पीढ़ी के लिए जो कुछ भी उपयोग किया जाता है वह बहुत सुसंगत होना चाहिए। एक प्रारंभिक बिंदु के रूप में एक साधारण माइक्रोकंट्रोलर का उपयोग करना इस तरह की स्थिरता प्राप्त करने का एक अच्छा तरीका है, भले ही कोई तब उत्पन्न होने वाले सिग्नल को एनालॉग शेपिंग सर्किट्री के माध्यम से खिलाता है।