Autor Instructables pod přezdívkou rgco přišel se čtyřhlasým 1,5 oktávovým syntezátorem Arduino Uno. Pro srovnání, rozšířené dětské syntezátory, které se od sebe liší pouze designem a vyrobeným stejným čipem, jsou tříhlasé. Je pravda, že mohou hudbu doprovázet rytmem, zapamatovat si hlasové melodie a napodobit hlasy zvířat. Ale pak domácí zní hezčí. Proč?
Je to všechno o parametrech. Vzorkovací frekvence 31 kHz, 9 bitů, 4 hlasy, syntéza FM s časově proměnným rozmítáním, ADSR obálka, 12 virtuálních nástrojů, 18 kláves přes 1,5 oktáv.
Master skládá obvod syntetizátoru ve Fritzingu:
V něm simuluje umístění komponent na prkénku typu prkénko a jejich propojení:
A shromažďuje schéma v reálném životě:
Pouhé „nalít a použít“ je to nejjednodušší, co můžete s designem udělat. 18 kláves (PŘED Čtvrtou oktávou na FA pátou) - hrát, devatenácté přepíná virtuální nástroje v kruhu: klavír, xylofon, kytara, cimbál, zvony, funky, vibrato, kov, housle, basa, trumpeta, akordeon. Povaha zvuku je ovlivněna dobou stisknutí kláves, ale ne úsilím, na rozdíl od profesionálních syntetizátorů. Vývojář však chce, abyste vyzkoušeli také programování virtuálních nástrojů. Každá z nich je dána deseti parametry. Průvodce vám řekne, na kterém parametru závisí.
ldness - objem
Pokud je tento parametr menší než 64, je vyloučeno přetížení a související zkreslení. Pokud však naprogramujete takový virtuální nástroj, který nezní dlouho při maximální hlasitosti, může hodnota tohoto parametru přesáhnout 64, protože všechny čtyři hlasy současně znějí zřídka.
pitch0 - pitch shift
Rozsah odpovídá výše uvedenému, pokud nastavíte tento parametr na 12. Snížení se posouvá dolů, zvyšuje se - nahoru. Nulová hodnota odpovídá posunu přesně o jednu oktávu dolů, 24 - přesně o jednu oktávu.
ADSR_a - objemová rychlost od nuly do maxima
Čím menší, tím pomalejší.Například 8192 odpovídá 4 ms, 256 až 128 ms.
ADSR_d - rychlost pro snížení hlasitosti z maxima na hlasitost zadanou parametrem ADSR_s.
Princip je stejný.
ADSR_s - hodnota, na kterou se hlasitost při dlouhém stisku tlačítka snižuje
Například 256 - hlasitost zůstává maximální po celou dobu podržení klávesy. 192 - hlasitost klesne na 80 procent a zůstává tak při stisknutém tlačítku. 0 - hlasitost klesá na nulu, i když je tlačítko stisknuté.
ADSR_r - rychlost pro snížení hlasitosti na nulu po uvolnění klíče
Princip je stejný jako u parametrů ADSR_a a ADSR_d.
FM_inc - poměr modulační frekvence k tónu
Při hodnotě 256 je tento poměr 1: 1, s 512 - 2: 1, s 128 - 1: 2, zbytek je analogicky. Pokud je tento parametr nastaven na násobek 64, bude zvuk anharmonický.
FM_a1 - rozsah frekvenční modulace na začátku noty
256 odpovídá široké škále harmonických. S poklesem je tón čistší a se zvýšením harmonických se stává více.
FM_a2 - modulace kmitočtu na konci noty
Princip je stejný. U většiny skutečných nástrojů se harmonické kmity rozkládají rychleji než základní tón. Pokud uděláte pravý opak, získáte neobvyklé zvuky.
FM_dec - rychlost přechodu frekvenčního modulačního rozsahu z rozsahu určeného parametrem FM_a1 do rychlosti určeného parametrem FM_a2
Princip je stejný jako u parametrů ADSR_a, ADSR_d a ADSR_r.
Frekvence PWM 31 250 Hz se získá dělením taktovací frekvence (16 MHz) 512. Program je navržen tak, aby události byly spojeny s časem bez přerušení. Místo toho je zahrnut bit přetečení časovače. Aby program zvládl dělat vše, co je od něj požadováno, používají se pouze celá čísla o délce 8 a 16 bitů. Sinusová vlna je prezentována ve formě tabulky 8-bitových čísel. Pomocné operace - čtení klíčových stavů, změna virtuálních nástrojů, výběr hlasů, výpočet parametrů poznámek, které se mění v čase - jsou rozděleny mezi 15 procedur, jejichž dokončení trvá 0,48 ms. V tuto chvíli jsou některé operace prováděny s 32bitovou přesností, což je nutné k vynásobení dvou 16bitových binárních čísel.
Jednoduchá sinusová vlna zní nudně, protože v jejím spektru nejsou žádné harmonické. Syntéza FM vám umožňuje přijímat je a časem měnit jejich spektrum a simulovat zvuk skutečných nástrojů. Více frekvencí dává anharmonický zvuk, který se vyskytuje například ve zvoncích. Zařízení dobře napodobuje změnu spektra vlastní reálným nástrojům v průběhu času, kdy některé harmonické rozpadají rychleji než jiné.