Autor Instructables pod prezývkou rgco prišiel so štvorhlasovým 1,5-oktávovým syntezátorom Arduino Uno. Na porovnanie, rozšírené detské syntetizátory, ktoré sa od seba líšia iba v dizajne a vyrobené rovnakým čipom, sú trojhlasové. Je pravda, že môžu automaticky sprevádzať hudbu s rytmom, zapamätať si hlasové melódie a napodobňovať hlasy zvierat. Ale potom domáci produkt Znie to krajšie. Prečo?
Je to všetko o parametroch. Vzorkovacia frekvencia 31 kHz, 9-bit, 4 hlasy, FM syntéza s časovo premenlivým cyklom, ADSR obálka, 12 virtuálnych nástrojov, 18 klávesov, ktoré presahujú 1,5 oktávy.
Master zostavuje obvod syntetizátora vo Fritzingu:
V ňom simuluje umiestnenie komponentov na doštičku typu doska a ich vzájomné spojenia:
A zbiera túto schému v reálnom živote:
Iba „nalievanie a používanie“ je to najjednoduchšie, čo môžete s dizajnom urobiť. 18 klávesov (pred štvrtou oktávou až piatou FA) - pri hraní devätnásteho prepína virtuálne nástroje v kruhu: klavír, xylofón, gitara, činely, zvony, funky, vibrato, kov, husle, basa, trúbka, akordeón. Povaha zvuku je ovplyvnená trvaním stlačení klávesov, ale nie úsilím, na rozdiel od profesionálnych syntetizátorov. Vývojár však chce, aby ste vyskúšali aj programovanie svojich virtuálnych nástrojov. Každá z nich je daná desiatimi parametrami. Sprievodca vám povie, na ktorom parametri závisí.
ldness - objem
Ak je tento parameter menší ako 64, je vylúčené preťaženie a súvisiace deformácie. Ak však naprogramujete taký virtuálny nástroj, ktorý neznie dlho pri maximálnej hlasitosti, hodnota tohto parametra môže prekročiť 64, pretože všetky štyri hlasy súčasne znejú zriedka.
pitch0 - pitch shift
Rozsah zodpovedá vyššie uvedenému, ak nastavíte tento parameter na 12. Zníženie sa posunie nadol, zvýši sa. Nulová hodnota zodpovedá posunu presne o jednu oktávu nadol, o 24 - presne o jednu oktávu.
ADSR_a - objemová rýchlosť od nuly po maximum
Čím menšie, tým pomalšie.Napríklad 8192 zodpovedá 4 ms, 256 až 128 ms.
ADSR_d - rýchlosť na zníženie objemu z maxima na objem určený parametrom ADSR_s.
Princíp je rovnaký.
ADSR_s - hodnota, na ktorú sa hlasitosť pri dlhom stlačení tlačidla zníži
Napríklad 256 - hlasitosť zostane maximálna po celú dobu držania tlačidla. 192 - hlasitosť klesne na 80 percent a zostane tak pri stlačení klávesu. 0 - hlasitosť klesne na nulu, aj keď je stlačené tlačidlo.
ADSR_r - rýchlosť zníženia hlasitosti na nulu po uvoľnení tlačidla
Princíp je rovnaký ako pre parametre ADSR_a a ADSR_d.
FM_inc - pomer modulačnej frekvencie k tónu
Pri hodnote 256 je tento pomer 1: 1, pri 512 - 2: 1 a pri 128 - 1: 2 je zvyšok analogický. Ak je tento parameter nastavený na násobok 64, zvuk bude anharmonický.
FM_a1 - rozsah frekvenčnej modulácie na začiatku noty
256 zodpovedá širokému spektru harmonických. S poklesom je tón čistejší a so zvýšením harmonických sa stáva viac.
FM_a2 - zametacia frekvenčná modulácia na konci noty
Princíp je rovnaký. Pre väčšinu skutočných nástrojov sa harmonické kmity rozpadajú rýchlejšie ako základný tón. Ak urobíte opak, získate nezvyčajné zvuky.
FM_dec - rýchlosť prechodu frekvenčného modulačného rozsahu z rozsahu nastaveného pomocou FM_a1 na rýchlosť nastavenú pomocou FM_a2
Princíp je rovnaký ako pre parametre ADSR_a, ADSR_d a ADSR_r.
Frekvencia PWM 31 250 Hz sa získa vydelením taktovacej frekvencie (16 MHz) 512. Program je navrhnutý tak, aby udalosti boli spojené s časom bez prerušenia. Namiesto toho je zahrnutý bit pretečenia časovača. Aby program zvládol urobiť všetko, čo je od neho potrebné, používajú sa iba celé čísla s dĺžkou 8 a 16 bitov. Sínusová vlna je prezentovaná vo forme tabuľky 8-bitových čísel. Pomocné operácie - čítanie kľúčových stavov, zmena virtuálnych nástrojov, výber hlasov, výpočet parametrov bankoviek, ktoré sa menia v čase - sú rozdelené medzi 15 postupov, ktorých dokončenie trvá 0,48 ms. V tomto okamihu sa niektoré operácie vykonávajú s presnosťou na 32 bitov, čo je potrebné na vynásobenie dvoch 16-bitových binárnych čísel.
Jednoduchá sínusová vlna znie nudne, pretože v jej spektre nie sú harmonické. Syntéza FM vám ich umožňuje prijímať a meniť ich spektrum v čase a simulovať zvuk skutočných nástrojov. Viacnásobné frekvencie vydávajú anharmonický zvuk, ktorý sa vyskytuje napríklad v zvoniciach. Prístroj dobre napodobňuje zmenu spektra spojenú s reálnymi nástrojmi v čase, keď sa niektoré harmonické rozpadajú rýchlejšie ako iné.