AD9850 hrá Moon River z filmu Raňajky u Tiffanyho

Zápisník experimentátora

Počas práce na generátore signálov toto vzniklo ako vedľajší produkt. Výstup z generátora AD9850 je zosilňovaný cez LM386 a prehrávaný cez miniatúrny reproduktor.

Momentálne mám rozpracovanú nejakú konštrukciu na báze AD9850 a počas práce na nej ma napadlo, že keď už ten integrovaný obvod dáva taký pekný sínusový signál, či by sa to nedalo aj počúvať. Tak som na jeho výstup pripojil zosilňovač pomocou LM386 v katalógovom zapojení a malý reproduktor. A preladil som AD9850 na počuteľné frekvencie medzi 100-1000 Hz. A z reproduktora sa naozaj ozval pomerne slušný zvuk. Keďže ale ladená konštrukcia nie je určená na počúvanie, urobil som v rámci experimentu malú odbočku od projektu. Jej výsledkom je prehrávanie skladby Moon River od Henry Manciniho.

Skladbu som si vybral preto, lebo mám ku nej noty a je to o niečom úplne inom, než jednoduché skladbičky typu DoReMi. Takže to bola aj výzva, ako zapísať rôzne dĺžky nôt. Za základ mi poslúžil vzorový príklad Tone. Ten som upravil tak, aby sa dali zahrať:

  • Noty s bodkou - Takáto nota sa hrá 1,5 x dlhšie, ako samotná nota.
  • Noty spojené pomocou oblúčika - Netuším, ako sa to označuje v slovenskej hudobnej terminológii, ale angličtina na to používa výraz tie. Podstata toho je, že aj nájdete dve noty takto spojené, ktoré majú rovnakú výšku tónu, hráte len jeden tón a jeho dĺžka je súčtom oboch nôt.

Potom nastala veselá hodinka, počas ktorej som prepisoval tóny do podoby NOTE_C4, NOTE_E4, NOTE_G4 a dĺžky do podoby 4, 2, 8. Noty z bodkou do podoby 4|DOT. Noty s oblúčikmi do podoby 4|TIE. Pri takej činnosti potrebujete najmä kľud. Ten som nemal, lebo nejaký suset vŕtal do panelov. Ale snáď je skladba prepísaná bez chýb.

Algoritmus

Celý algoritmus je založený na tom, že dĺžka noty je uložená ako 16 bitové číslo. V spodnej časti 0x00XX je uložená dĺžka tónu. V hornej časti 0xXX00 sú uložené modifikátory dĺžka. Výsledná dĺžka noty sa vypočíta ako modifikácia pôvodne zapísanej dlžky. Nota s oblúčikom súčasne aj preskakuje nasledovnú notu, pretože je celá dĺžka noty vypoćítana do dĺžky úplne prvej noty takto spojenej.

Skladby

Vo videu je počuť na začiatku klasické DoReMiFaSolLaSiDo (AD9850 DoReMi). Na konci je počuť samotnú Moon River (AD9850 Moon River). Oba zdrojové texty je možné stiahnuť z tejto stránky.

Konštrukcia

Na zapojenie potrebujeme:

  • Arduino UNO - Alebo hocijaké iné.
  • LCD displej - Na displeji sa zobrazujú frekvencie jednotlivých tónov. Ak ho vynecháte, nič sa nedeje. Program bude fungovať aj tak.
  • AD9850 - Arduino do neho posiela jednotlivé frekvencie.
  • Potenciometer - Ten je zapojený na výstup AD9850. Pomocou neho sa dá stlmiť hlasitosť prehrávania. Je to dôležité aj pre to, lebo AD9850 dáva signál 1 V a preto by LM386 veľmi skreslila signál pri jej zosilnení. Taktiež nechcete dráždiť svoje uši, alebo tých, ktorí sú vo vašej blízkosti.
  • LM386  - v základnom zapojení so zosilnením 20x.
  • Malý reproduktor 8 ohmov.


Download
  • AD9850 - Datasheet AD9850 - Complete DDS Synthesizer
  • AD9850 DoReMi Sketch - AD9850 frequency generator plays DoReMi using small speaker.
  • AD9850 Library - Arduino AD9850 Library with examples
  • AD9850 Moon River Sketch - AD9850 frequency generator plays Moon River by Henry Mancini using small speaker.
  • LM386 - Datasheet LM368 - Low Voltage Audio Power Amplifier

07.07.2015


Menu