Instructables autors ar segvārdu rgco nāca klajā ar četrbalsīgu 1,5 oktāvu sintezatoru Arduino Uno. Salīdzinājumam - plaši izplatītie bērnu sintezatori, kas viens no otra atšķiras tikai pēc dizaina un izgatavoti ar vienu un to pašu mikroshēmu, ir trīsbalsīgi. Tiesa, viņi var automātiski pavadīt mūziku ar ritmu, iegaumēt vienas balss melodijas un atdarināt dzīvnieku balsis. Bet tad mājās gatavots izklausās jaukāk. Kāpēc?
Tas viss ir saistīts ar parametriem. Paraugu ņemšanas frekvence 31 kHz, 9 bitu, 4 balsis, FM sintēze ar laiku mainīgu slaucīšanu, ADSR aploksne, 12 virtuālie instrumenti, 18 taustiņi, kas aptver 1,5 oktāvas.
Meistars sacer sintezētāja shēmu Fritzingā:
Tajā tas imitē komponentu atrašanās vietu uz maizes dēļa tipa maizes tāfeles un savienojumus starp tām:
Un apkopo shēmu reālajā dzīvē:
Vienkārši "ieliet un lietot" ir vienkāršākā lieta, ko varat darīt ar dizainu. 18 taustiņi (no PIRMS ceturtās oktāvas līdz piektajam FA) - lai spēlētu, deviņpadsmitais pārslēdz virtuālos instrumentus gredzenā: klavieres, ksilofons, ģitāra, simboli, zvani, funky, vibrato, metāls, vijole, bass, trompete, akordeons. Skaņas raksturu ietekmē taustiņsitienu ilgums, bet nevis pūles, atšķirībā no profesionāliem sintezatoriem. Bet izstrādātājs vēlas, lai jūs izmēģinātu arī virtuālo rīku programmēšanu. Katru no tiem piešķir desmit parametri. Vednis jums pateiks, no kura parametra tas ir atkarīgs.
ldness - tilpums
Ja šis parametrs ir mazāks par 64, pārslodze un ar to saistītie kropļojumi tiek izslēgti. Bet, ja jūs ieprogrammējat tādu virtuālu instrumentu, kas ilgi neskan ar maksimālo skaļumu, šī parametra vērtība var pārsniegt 64, jo visas četras balsis vienlaicīgi skan reti.
pitch0 - piķa maiņa
Diapazons atbilst iepriekšminētajam, ja šo parametru iestatāt uz 12. Samazināt pārvietojas uz leju, palielināt - uz augšu. Nulle atbilst nobīdei precīzi par vienu oktāvu, 24 - tieši uz vienu oktāvu.
ADSR_a - tilpuma pagrieziena ātrums no nulles līdz maksimālajam
Jo mazāks, jo lēnāks.Piemēram, 8192 atbilst 4 ms, no 256 līdz 128 ms.
ADSR_d - ātrums, lai samazinātu skaļumu no maksimālā uz ADSR_s norādīto.
Princips ir vienāds.
ADSR_s - vērtība, līdz kurai skaļums samazinās, ilgi nospiežot taustiņu
Piemēram, 256 - skaļums visu laiku paliek maksimāls, kamēr tiek turēts taustiņš. 192 - skaļums samazinās līdz 80 procentiem un paliek tāds, kamēr tiek turēts taustiņš. 0 - skaļums samazinās līdz nullei, pat ja taustiņš tiek turēts nospiests.
ADSR_r - ātrums, lai samazinātu skaļumu līdz nullei pēc atslēgas atlaišanas
Princips ir tāds pats kā parametriem ADSR_a un ADSR_d.
FM_inc - modulācijas frekvences un signāla attiecība
Ar vērtību 256 šī attiecība izrādās 1: 1, ar 512 - 2: 1, ar 128 - 1: 2, pārējais ir pēc analoģijas. Ja šis parametrs ir iestatīts uz 64 reizinājumu, skaņa būs anharmoniska.
FM_a1 - frekvences modulācijas diapazons piezīmes sākumā
256 atbilst plaša spektra harmonikām. Samazinoties tonis ir tīrāks, ar harmoniku palielināšanos tas kļūst arvien lielāks.
FM_a2 - slaucīšanas frekvences modulācija piezīmes beigās
Princips ir vienāds. Lielākajai daļai reālu instrumentu harmonikas noārdās ātrāk nekā pamata tonis. Ja jūs darāt pretējo, jūs saņemat neparastas skaņas.
FM_dec - frekvences modulācijas diapazona pārejas ātrums no FM_a1 iestatītā uz FM_a2 iestatīto
Princips ir tāds pats kā parametriem ADSR_a, ADSR_d un ADSR_r.
PWM frekvenci 31 250 Hz iegūst, dalot takts frekvenci (16 MHz) ar 512. Programma ir izstrādāta tā, lai notikumi būtu saistīti ar laiku bez traucējumiem. Tā vietā tiek iesaistīts taimera pārpildes bits. Lai programma spētu paveikt visu, kas tai nepieciešams, tiek izmantoti tikai veseli skaitļi ar 8 un 16 bitu garumu. Sinusais vilnis tiek parādīts kā 8 bitu skaitļu tabula. Papildu operācijas - atslēgu stāvokļu nolasīšana, virtuālo instrumentu maiņa, balsu izvēle, piezīmju parametru aprēķināšana, kas mainās laikā - tiek sadalītas 15 procedūrās, kuru pabeigšana prasa 0,48 ms. Šajā laikā dažas operācijas tiek veiktas ar 32 bitu precizitāti, kas ir nepieciešama, lai reizinātu divus 16 bitu bināros skaitļus.
Vienkāršs sinusa vilnis izklausās blāvi, jo tā spektrā nav harmoniku. FM sintēze ļauj tos saņemt un laika gaitā mainīt to spektru, imitējot reālu instrumentu skaņu. Vairākas frekvences dod anharmonisku skaņu, kas rodas, piemēram, zvanos. Ierīce labi imitē spektra izmaiņas, kas raksturīgas reāliem instrumentiem laika gaitā, kad dažas harmonikas samazinās ātrāk nekā citas.