logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Mikroprocesorowa pozytywka z syntezą Wavetable

lechoo 13 Lis 2011 20:35 13058 13
  • Mikroprocesorowa pozytywka z syntezą Wavetable

    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:

    Mikroprocesorowa pozytywka z syntezą Wavetable

    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:

    Mikroprocesorowa pozytywka z syntezą Wavetable

    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:

    Mikroprocesorowa pozytywka z syntezą Wavetable

    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
    O autorze
    lechoo
    Poziom 39  
    Offline 
    lechoo napisał 5156 postów o ocenie 531, pomógł 377 razy. Mieszka w mieście łódzkie. Jest z nami od 2002 roku.
  • #3 10136808
    lechoo
    Poziom 39  
    VSS napisał:
    mam wrażenie, że to jest starsze od krzemu i już był ten projekt na elektrodzie.

    Witam, tak to prawda - projekt jest sprzed 5 lat, ale jestem na Elektrodzie znacznie dłużej i nie natrafiłem na niego. Jeśli się mylę - to proszę o sprostowanie i podanie linku, być może coś przeoczyłem :)
    Niemniej projekt jest na tyle ciekawy, a jednocześnie prosty, że na pewno wart był zwrócenia na niego uwagi...
  • #4 10138041
    yetihehe
    Poziom 13  
    Mi się bardziej podoba taka pozytywka:



    Ale zrobienie pozytywki w takim mały scalaczku też jest ciekawe.
  • #5 10139762
    lechoo
    Poziom 39  
    @yetihehe
    To co przedstawiłeś jest generatorem dosyć specyficznych dźwięków, naśladującym (niestety trochę nieudolnie, słychać duże zniekształcenia) brzmienie komputerków 8-bitowych sprzed ponad 20 lat...
    Bardzo fajnym formatem utworów muzycznych (melodii) dla wszelkiego rodzaju "pozytywek" jest MOD - znany z komputerów Amiga. Plik w tym formacie zawiera zapis nutowy oraz cyfrowe próbki instrumentów. Popełniłem około 3 lata temu układ wzorowany na podobnym czeskim projekcie, który odtwarzał utworki MOD zapisane w wewnętrznej pamięci flash mikrokontrolera ATMEGA32. Dzięki użyciu zewnętrznego 16-bitowego przetwornika C/A jakość dźwięku jest bardzo dobra. Na poniższym filmiku odtwarzany jest utwór MOD z próbkami instrumentów naśladującymi brzmienie syntezy FM, dźwięk był nagrany poprzez wejście liniowe w komputerze:



  • #6 10142603
    yetihehe
    Poziom 13  
    To ja cię jeszcze przebiję demem (dema są to produkcje artystyczne w postaci najczęściej bardzo małych programów, które pokazują jak wspaniałe efekty można uzyskać korzystając nawet z najmarniejszych procesorów, też były bardzo popularne na amigę i są nadal tworzone, zachęcam do przejrzenia pouet.net). Na atmegę 88. Właściwa akcja zaczyna się od 1:05.




    P.S. też miałem amigę, to było wspaniałe dzieciństwo, uczyłem się na niej programować :D
  • #7 10145534
    lechoo
    Poziom 39  
    Nie wiem czy jest sens tak się licytować... Znam stronę intenetową Linusa i jego opracowania, facet ma łep nie od parady, szczególnie jako programista - trzeba to przyznać :)
  • #8 10183809
    excray
    Poziom 41  
    Tyle że w tamtych czasach programy pisało się w czystym assemblerze i ludzie bardzo dużo przy tworzeniu zadawali sobie pytań "a co się stanie gdy..." gdzięki czemu powstały takie rzeczy jak interlace na C64 i wiele wiele innych. A dzisiaj jest C albo jeszcze lepiej BASCOM i miganie diodą zajmuje 2kB kodu a do tego remedium na problemy to: "skorzystaj z gotowej biblioteki" albo "nie da się".
  • #9 10202587
    blue_17
    Poziom 32  
    lechoo napisał:
    @yetihehe
    Spoiler:
    To co przedstawiłeś jest generatorem dosyć specyficznych dźwięków, naśladującym (niestety trochę nieudolnie, słychać duże zniekształcenia) brzmienie komputerków 8-bitowych sprzed ponad 20 lat...
    Bardzo fajnym formatem utworów muzycznych (melodii) dla wszelkiego rodzaju "pozytywek" jest MOD - znany z komputerów Amiga. Plik w tym formacie zawiera zapis nutowy oraz cyfrowe próbki instrumentów. Popełniłem około 3 lata temu układ wzorowany na podobnym czeskim projekcie, który odtwarzał utworki MOD zapisane w wewnętrznej pamięci flash mikrokontrolera ATMEGA32. Dzięki użyciu zewnętrznego 16-bitowego przetwornika C/A jakość dźwięku jest bardzo dobra. Na poniższym filmiku odtwarzany jest utwór MOD z próbkami instrumentów naśladującymi brzmienie syntezy FM, dźwięk był nagrany poprzez wejście liniowe w komputerze:






    Kolego można prosić o szczegóły tego projektu bo to rewelacja po prostu, przepiękne w stylu retro :)
  • #10 10203777
    lechoo
    Poziom 39  
    blue_17 napisał:
    Kolego można prosić o szczegóły tego projektu bo to rewelacja po prostu, przepiękne w stylu retro :)

    Witam, krótką dokumentację i zdjęcia zamieściłem do pobrania pod tym adresem:
    http://lew.wsinf.edu.pl/~leszek/modplayer
    Bez wyświetlacza LCD też będzie działać.
    Jeśli czas i chęci pozwolą, to być może powstanie bardziej zaawansowana wersja, z wykorzystaniem procesora z rodziny STM32 ;)
  • #13 14418553
    Qszysiek
    Poziom 2  
    Melodie z wykorzystaniem syntezy wavetable brzmią o niebo lepiej niż niektóre projekty pozytywek z melodiami pochodzenia rttl (dzwonki na nokię).
    Czy mógłbym prosić o jakąś wskazówkę jak stworzyć własną melodię z nut?
  • #14 15316458
    m_hauf
    Poziom 10  
    Czy byłby ktoś w stanie wytłumaczyć jak można napisać samodzielnie program w AtmelStudio pozwalający na generowanie takich melodyjek w stylu retro? Oczywiście chodzi też o generowanie własnych melodii?
REKLAMA