» Muzikos instrumentai »Keturių balsų sintezatorius„ Arduino Uno “

Keturių balsų sintezatorius „Arduino Uno“



„Instructable“, pravarde rgco, autorius sugalvojo keturių balsų 1,5 oktavos sintezatorių Arduino Uno. Palyginimui, plačiai paplitę vaikų sintezatoriai, kurie skiriasi vienas nuo kito tik dizainu ir yra pagaminti to paties lusto, yra trijų balsų. Tiesa, jie gali automatiškai lydėti muziką ritmu, įsiminti vieno balso melodijas ir mėgdžioti gyvūnų balsus. Bet tada naminis skamba gražiau. Kodėl?



Viskas priklauso nuo parametrų. Mėginių ėmimo dažnis 31 kHz, 9 bitų, 4 balsai, FM sintezė keičiant laiką, ADSR vokas, 12 virtualių instrumentų, 18 klavišų, išsiskleidžiančių 1,5 oktavos.

Meistras sudaro sintezatoriaus grandinę Fritzing:



Jame jis modeliuoja komponentų, esančių ant duonos lentos, tipo vietą ir ryšius tarp jų:



Ir renka schemą realiame gyvenime:



Tiesiog „pilk ir naudok“ yra paprasčiausias dalykas, kurį galite padaryti su dizainu. 18 klavišų (nuo BEFORE ketvirtosios oktavos iki FA penktosios) - groti, devynioliktasis perjungia virtualius instrumentus žiedu: fortepijonas, ksilofonas, gitara, cimbolai, varpai, funky, vibrato, metalas, smuikas, bosas, trimitas, akordeonas. Garso prigimčiai įtakos turi klavišų trukmė, bet ne pastangos, skirtingai nuo profesionalių sintezatorių. Tačiau kūrėjas nori, kad išbandytumėte ir virtualius įrankius. Kiekvieną iš jų nurodo dešimt parametrų. Vedlys nurodo, nuo kokio parametro jis priklauso.

ldness - tūris

Jei šis parametras yra mažesnis nei 64, perkrovos ir su ja susiję iškraipymai neįtraukiami. Bet jei užprogramuojate tokį virtualų instrumentą, kuris ilgai neskamba maksimaliu garsu, šio parametro vertė gali viršyti 64, nes visi keturi balsai vienu metu skamba nedažnai.

pitch0 - žingsnio poslinkis

Diapazonas atitinka aukščiau pateiktą, jei nustatysite šį parametrą į 12. Mažinti juda žemyn, padidinti - aukštyn. Nulis reiškia poslinkį tiksliai viena oktava, 24 - tiksliai viena oktava aukštyn.

ADSR_a - apimties nužudymo greitis nuo nulio iki maksimalaus

Kuo mažesnis, tuo lėtesnis.Pavyzdžiui, 8192 atitinka 4 ms, nuo 256 iki 128 ms.

ADSR_d - greitis, skirtas sumažinti garsumą nuo maksimalaus iki tokio, kurį nurodo ADSR_s parametras.

Principas tas pats.

ADSR_ - reikšmė, iki kurios garsumas mažėja ilgai paspaudžiant mygtuką

Pavyzdžiui, 256 - garsas išlieka maksimalus visą laiką, kol paspaudžiamas klavišas. 192 - garsumas sumažėja iki 80 procentų ir išlieka toks, kol paspaudžiamas klavišas. 0 - garsumas sumažėja iki nulio, net jei klavišas laikomas nuspaustas.

ADSR_r - greitis, skirtas sumažinti garsumą iki nulio atleidus raktą

Principas yra toks pat kaip parametrų ADSR_a ir ADSR_d.

FM_inc - moduliacijos dažnio ir tono santykis

Esant 256 vertei, šis santykis pasirodo 1: 1, esant 512 - 2: 1, su 128 - 1: 2, likusi dalis yra pagal analogiją. Jei šis parametras yra 64 kartotinis, garsas bus anharmoninis.

FM_a1 - dažnio moduliacijos diapazonas natos pradžioje

256 atitinka platų harmonikų spektrą. Sumažėjus, tonas yra švaresnis, o padidėjus harmonikai jis tampa daugiau.

FM_a2 - valymo dažnio moduliacija užrašo pabaigoje

Principas tas pats. Daugelio tikrų instrumentų atveju harmonika suyra greičiau nei pagrindinis tonas. Jei elgiatės atvirkščiai, pasigirs neįprasti garsai.

FM_dec - dažnio moduliacijos diapazono perėjimo greitis nuo FM_a1 nustatyto iki FM_a2 nustatyto

Principas yra toks pat kaip parametrų ADSR_a, ADSR_d ir ADSR_r.

31 250 Hz PWM dažnis gaunamas padalijus laikrodžio dažnį (16 MHz) iš 512. Programa sukurta taip, kad įvykiai būtų susieti su laiku be trikdžių. Vietoje to yra įtrauktas laikmačio perpildymo bitas. Kad programa turėtų laiko padaryti viską, ko reikia, naudojami tik 8 ir 16 bitų ilgio sveikieji skaičiai. Sinusinė banga pateikiama kaip 8 bitų skaičių lentelė. Pagalbinės operacijos - raktų būsenų skaitymas, virtualių instrumentų keitimas, balsų parinkimas, laiko kintančių natų parametrų skaičiavimas - paskirstomos 15 procedūrų, kurių atlikimas užtrunka 0,48 ms. Šiuo metu kai kurios operacijos yra atliekamos 32 bitų tikslumu, kuris yra būtinas norint padauginti du 16 bitų dvejetainius skaičius.

Paprasta sinuso banga skamba niūriai, nes jos spektre nėra harmonikų. FM sintezė leidžia juos priimti ir laikui bėgant pakeisti jų spektrą, imituojant realių instrumentų garsą. Keli dažniai skleidžia anharmoninį garsą, kuris atsiranda, pavyzdžiui, varpeliais. Įrenginys gerai imituoja realiems instrumentams būdingą spektro pokytį laikui bėgant, kai kai kurios harmonikos suyra greičiau nei kitos.
10
9.3
8.4

Pridėti komentarą

    • šypsotisšypsosixaxagerainežiniaYahoonea
      viršininkassubraižytikvailystaiptaip-taipagresyvusslapta
      atsiprašaušoktišokis2šokis3atleiskpadėtigėrimai
      sustotidraugaigeraigerašvilpukassupyktiliežuvis
      rūkytiplojimaiklastingaspareikštiniokojantisdon-t_mentionatsisiųsti
      šilumanedrąsusjuoktis1mdasusitikimasmoskingneigiamas
      not_ipopkornasnubaustiskaitytigąsdintigąsdinapaieška
      gundytiačiūtaito_clueumnikūmussusitarti
      blogaibičiųjuoda akisblum3skaistalaipasigirtinuobodulys
      cenzūruotamalonumasslapta2grasintipergalęju„sun_bespectacled“
      šoktipagarbalolišlenktaslaukiamekrutojusya_za
      ya_dobryipagalbininkasne_huliganne_othodifludisuždraustiarti
1 komentaras
kiril_vihrov7892
Įdomus projektas.
Neseniai kaip raktus mačiau projektą „Sintezatorius ant Arduino“, naudojama beveik visa kompiuterio klaviatūra
Iš visų Arduino detalių - garsiakalbis ir kompiuteris.
Kompiuterio programa atlieka visą darbą, ji kontroliuoja „Arduino“ per jungtį
pakartota, viskas veikia gerai. Žvilgsnis gali padėti

Mes patariame perskaityti:

Perduokite jį išmaniajam telefonui ...