Autor Instructables pod nadimkom rgco smislio je četveroglasni 1,5-oktavni sintisajzer na Težak Uno. Za usporedbu, široko rasprostranjeni dječji sintisajzeri koji se međusobno razlikuju samo po dizajnu i čine ih istim čipom, troglasni su. Istina, oni automatski mogu pratiti glazbu ritmom, pamtiti melodije jednog glasa i oponašati glasove životinja. Ali onda domaći proizvod zvuči ljepše. Zašto?
Sve se radi o parametrima. Učestalost uzorkovanja 31 kHz, 9 bit, 4 glasa, FM sinteza s vremenskim promjenama, ADSR omotnicom, 12 virtualnih instrumenata, 18 tipki u rasponu od 1,5 oktave.
Majstor sastavlja krug sintetizatora u Fritzingu:
U njemu se simulira položaj komponenata na ploči tipa šina i veze između njih:
I prikuplja shemu u stvarnom životu:
Jednostavno "izlijte i koristite" najjednostavnija je stvar s dizajnom. 18 tipki (od PRIJE četvrte oktave do pete FA) - za sviranje, devetnaesti virtualni instrumenti prebacuju u ring: klavir, ksilofon, gitara, činele, zvona, funky, vibrato, metal, violina, bas, truba, harmonika. Na prirodu zvuka utječe trajanje pritiska tipki, ali ne i napor, za razliku od profesionalnih sintisajzera. Ali programer želi da isprobate i programiranje svojih virtualnih alata. Svakom od njih dat je po deset parametara. Čarobnjak vam kaže o kojem parametru ovisi.
ldness - volumen
Ako je ovaj parametar manji od 64, isključuju se preopterećenja i povezana iskrivljavanja. Ali ako programirate takav virtualni instrument koji dugo ne zvuči maksimalnom glasnoćom, vrijednost ovog parametra može biti veća od 64, jer sva četiri glasa istovremeno zvuče rijetko.
pitch0 - pomak koraka
Raspon odgovara gore navedenom, ako postavite ovaj parametar na 12. Smanjivanje pomiče prema dolje, povećava - prema gore. Nula odgovara pomiku točno za jednu oktavu, a 24 - za točno jednu oktavu.
ADSR_a - brzina smanjivanja volumena od nule do maksimuma
Što je manje, to je sporije.Na primjer, 8192 odgovara 4 ms, 256 do 128 ms.
ADSR_d - brzina za smanjenje glasnoće s maksimalne na onu navedenu u parametru ADSR_s.
Princip je isti.
ADSR_s - vrijednost na koju se smanjuje glasnoća ako se dugo pritisne tipka
Na primjer, 256 - glasnoća ostaje maksimalno cijelo vrijeme dok se tipka drži. 192 - glasnoća se smanjuje na 80 posto i ostaje tako dok držite tipku. 0 - glasnoća se smanjuje na nulu, čak i ako pritisnete tipku.
ADSR_r - brzina za smanjenje glasnoće na nulu nakon otpuštanja ključa
Princip je isti kao i za parametre ADSR_a i ADSR_d.
FM_inc - omjer frekvencije modulacije prema tonu
S vrijednošću od 256, pokazalo se da je taj omjer 1: 1, sa 512 - 2: 1, sa 128 - 1: 2, a ostatak je po analogiji. Ako je ovaj parametar postavljen na više od 64, zvuk će biti anharmonski.
FM_a1 - raspon frekvencijske modulacije na početku bilješke
256 odgovara širokom rasponu harmonika. S opadanjem, ton je čistiji, s porastom harmonike postaje više.
FM_a2 - frekvencijska modulacija pomicanja na kraju bilješke
Princip je isti. Za većinu stvarnih instrumenata harmonika propada brže od osnovnog tona. Ako učinite suprotno, dobivate neobične zvukove.
FM_dec - brzina prijelaza frekvencijskog modulacijskog raspona od jednog skupa FM_a1 do onog koji je postavio FM_a2
Princip je isti kao i za parametre ADSR_a, ADSR_d i ADSR_r.
PWM frekvencija od 31 250 Hz dobiva se dijeljenjem frekvencije takta (16 MHz) na 512. Program je dizajniran na takav način da događaji vremenski ne ometaju. Umjesto toga, uključen je bit overflow vremena. Da bi program uspio učiniti sve što se od njega traži, koriste se samo cijeli brojevi duljine 8 i 16 bita. Sinusni val predstavljen je u obliku tablice 8-bitnih brojeva. Pomoćne operacije - čitanje ključnih stanja, promjena virtualnih instrumenata, odabir glasova, izračunavanje parametara nota koji se mijenjaju u vremenu - raspoređuju se među 15 postupaka, za što je potrebno 0,48 ms. U ovom trenutku se neke operacije izvode s 32-bitnom preciznošću, što je potrebno za umnožavanje dva 16-bitna binarna broja.
Jednostavan sinusni val zvuči dosadno jer u njegovom spektru nema harmonike. FM sinteza omogućuje vam primanje i mijenjanje njihovog spektra tijekom vremena, simulirajući zvuk stvarnih instrumenata. Više frekvencija daju anharmonski zvuk koji se javlja, na primjer, u zvoncima. Uređaj dobro oponaša promjenu spektra svojstvene stvarnim instrumentima tijekom vremena, kada neke harmonike propadaju brže od drugih.