Przeglądając zawartość strony elm-chan.org natrafiłem na interesujący projekt układu naśladującego brzmienie klasycznej mechanicznej pozytywki. Do generowania dźwięku Autor wykorzystał znany już w latach 70 algorytm oparty na tablicy próbek, ang. Wavetable. Ten rodzaj syntezy wykorzystuje próbki brzmień rzeczywistych instrumentów zapisanych w pamięci półprzewodnikowej.
Schemat blokowy najprostszego syntezatora Wavetable wygląda następująco:
Składa się on z generatora fali z próbką instrumentu oraz generatora obwiedni wpływającego na końcowe brzmienie. Aby uzyskać polifonię, czyli wiele dźwięków jednocześnie, należy stworzyć (sprzętowo lub programowo) odpowiednią ilość takich bloków. Autor stwierdził, że do uzyskania dźwięku naśladującego pozytywkę wystarczy 6 kanałów generujących dźwięk z częstotliwością próbkowania wynoszącą 32kHz:
W projekcie został wykorzystany mikrokontroler ATtiny45 pracujący z częstotliwością 16MHz, zaś jako przetwornik C/A pracuje jego Timer1 w trybie fast PWM - częstotliwość nośna wynosi 250kHz. Program został napisany całkowicie w Asemblerze. Głośniczek został podłączony bezpośrednio do wyjść mikrokontrolera:
W załącznikach poniżej zamieszczam kod źródłowy programu oraz próbkę nagranego dźwięku - pozytywka odtwarza znaną melodię "Dla Elizy". Jakość dźwięku jest zaskakująco dobra jak na taką prostotę układu i rzeczywiście do złudzenia przypomina brzmienie mechanicznej pozytywki.
Źródło: http://elm-chan.org/works/mxb/report.html
Fajne? Ranking DIY
